{"version":3,"file":"static/js/application.async.landing~1b06caa0.acce0bbc.chunk.js","mappings":"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","sources":["../../../../account-reparenting/packages/account-reparenting-errors/src/error-codes.js","../../../../account-reparenting/packages/account-reparenting-errors/src/constants.js","../../../../account-reparenting/packages/account-reparenting-errors/src/bulk-error-view.js","../../../../account-reparenting/packages/account-reparenting-errors/src/bulk-error-view-with-modal.js","../../../../account-reparenting/packages/account-reparenting-errors/src/error-handler.js","../../../../account-reparenting/packages/account-reparenting-localization/src/common.js","../../../../account-reparenting/packages/account-reparenting-localization/src/errors.js","../../../../account-reparenting/packages/account-reparenting-localization/src/final-review.js","../../../../account-reparenting/packages/account-reparenting-localization/src/legacy-localization.js","../../../../account-reparenting/packages/account-reparenting-localization/src/manager-account.js","../../../../account-reparenting/packages/account-reparenting-localization/src/pending-transfer-request-summary.js","../../../../account-reparenting/packages/account-reparenting-localization/src/review-billing.js","../../../../account-reparenting/packages/account-reparenting-localization/src/review-linking.js","../../../../account-reparenting/packages/account-reparenting-localization/src/setup-billing.js","../../../../account-reparenting/packages/account-reparenting-localization/src/takeover-billing.js","../../../../account-reparenting/packages/account-reparenting-localization/src/transfer-summary.js","../../../../account-reparenting/packages/account-reparenting-props/src/ccui-props.js","../../../../account-reparenting/packages/account-reparenting-props/src/uet-props.js","../../../../account-reparenting/packages/account-reparenting-props/src/shared-props.js","../../../../account-reparenting/packages/account-reparenting-props/src/error-props.js","../../../../account-reparenting/packages/account-reparenting-styles/src/common-styles.js","../../../../account-reparenting/packages/account-reparenting-styles/src/footer-styles.js","../../../../account-reparenting/packages/account-reparenting-styles/src/progress-styles.js","../../../../account-reparenting/packages/account-reparenting-styles/src/wizard-styles.js","../../../../account-reparenting/packages/account-reparenting-styles/src/grid-styles/variables.js","../../../../account-reparenting/packages/account-reparenting-styles/src/grid-styles/header.js","../../../../account-reparenting/packages/account-reparenting-styles/src/grid-styles/body.js","../../../../account-reparenting/packages/account-reparenting-styles/src/grid-styles/columns.js","../../../../account-reparenting/packages/account-reparenting-styles/src/grid-styles/table.js","../../../../account-reparenting/packages/account-reparenting-styles/src/grid-styles/footer.js","../../../../account-reparenting/packages/account-reparenting-styles/src/grid-styles/global.js","../../../../account-reparenting/packages/account-reparenting-styles/src/grid-styles.js","../../../../account-reparenting/packages/account-reparenting-styles/src/grid-styles/sub-component.js","../../../../account-reparenting/packages/account-reparenting-styles/src/step-styles.js","../../../../account-reparenting/packages/account-reparenting-styles/src/account-popover-styles.js","../../../../account-reparenting/packages/account-reparenting-styles/src/entity-popover-styles.js","../../../../account-reparenting/packages/account-reparenting-styles/src/reparenting-theme.js","../../../../account-reparenting/packages/account-reparenting-utils/src/account-model-mapper.js","../../../../account-reparenting/packages/account-reparenting-utils/src/io-utils.js","../../../../account-reparenting/packages/account-reparenting-utils/src/billing-setting-utils.js","../../../../account-reparenting/packages/account-reparenting-utils/src/constants.js","../../../../account-reparenting/packages/account-reparenting-utils/src/payment-utils.js","../../../../account-reparenting/packages/account-reparenting-utils/src/string-utils.js","../../../../account-summary-tabs/packages/accounts-welcome-bar/src/accounts-welcome-bar.js","../../../../account-summary-tabs/packages/accounts-welcome-bar/src/styles/accounts-welcome-bar-styles.js","../../account-inactive-reasons/src/constants.js","../../account-inactive-reasons/i18n/legacy-keys.js","../../account-inactive-reasons/src/index.js","../../account-inactive-reasons/src/get-style.js","../../accounts-grid-factory/src/constants.js","../../accounts-grid-factory/src/accounts-grid-callout.js","../../accounts-grid-factory/src/common-events.js","../../accounts-grid-factory/src/accounts-grid-factory.js","../../accounts-grid-factory/src/filter-config.js","../../accounts-grid-factory/src/accounts-grid-factory-rjs.js","../../accounts-grid-factory/src/common-styles.js","../../accounts-summary-common/src/components/popover.js","../../accounts-summary-common/src/components/popover-with-lock.js","../../accounts-summary-common/src/components/action-callout.js","../../accounts-summary-common/src/components/direct-managers-callout.js","../../accounts-summary-common/src/style/common-grid-style.js","../../accounts-summary-common/src/style/direct-managers-callout-style.js","../../accounts-summary-common/src/style/toolbar-blocked-icon-style.js","../../accounts-summary-common/src/style/action-callout-style.js","../../accounts-summary-common/src/style/link-account-button-style.js","../../accounts-summary-common/src/navigation.js","../../accounts-summary-common/src/utils.js","../../accounts-summary-common/src/toolbar-configs.js"],"sourcesContent":["import _ from 'underscore';\r\nimport React from 'react';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\n\r\nimport { ErrorLocStrings } from '@bingads-webui-campaign-react/account-reparenting-localization';\r\n\r\nconst warningErrorCodes = ['ERROR1', 'ERROR2'];\r\nconst ccmtErrorPrefx = 'CCMTErrorNumber_';\r\nconst defaultErrorParams = {\r\n params: '',\r\n count: 1,\r\n sourceCustomerName: '',\r\n targetCustomerName: '',\r\n link: text => ({text}),\r\n};\r\n\r\nexport const isWarning = (errorCode) => {\r\n const code = errorCode.replace(ccmtErrorPrefx, '');\r\n return _.contains(warningErrorCodes, code);\r\n};\r\n\r\nexport const getErrorMessage = (i18n, errorCode, params = {}) => {\r\n const code = errorCode.replace(ccmtErrorPrefx, '');\r\n const errorKey = (code in ErrorLocStrings) ?\r\n ErrorLocStrings[code] :\r\n ErrorLocStrings.GenericErrorMessage;\r\n const errorParams = _.extend(defaultErrorParams, params);\r\n\r\n return i18n ? i18n.getString(errorKey, errorParams) : errorKey;\r\n};\r\n\r\nexport const ErrorMessage = (i18n, errorCode, params = {}) => {\r\n const code = errorCode.replace(ccmtErrorPrefx, '');\r\n const errorKey = (code in ErrorLocStrings) ?\r\n ErrorLocStrings[code] :\r\n ErrorLocStrings.GenericErrorMessage;\r\n const errorParams = _.extend(defaultErrorParams, params);\r\n const errorMessage = i18n.getString(errorKey);\r\n\r\n return (\r\n \r\n );\r\n};\r\n","export const ErrorHelpPopupIds = {\r\n AccountReparentingHotelAdsValidationFailed: 'ext60047',\r\n AccountReparentingUETRemarketingValidationFailed: 'ext60047',\r\n AccountReparentingBMCValidationFailed: 'ext60047',\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport _ from 'underscore';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { bulkErrorViewClassesProps, getBulkErrorViewStyles } from '@bingads-webui-campaign-react/account-reparenting-styles';\r\nimport { BulkErrorDetailsPropTypes, I18nPropTypes } from '@bingads-webui-campaign-react/account-reparenting-props';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { LearnMoreLink } from '@bingads-webui-campaign-react/help';\r\n\r\nimport { ErrorMessage, isWarning } from './error-codes';\r\nimport { ErrorHelpPopupIds } from './constants';\r\n\r\nexport const ARWUnthemedBulkErrorView = ({\r\n classes,\r\n errorDetails,\r\n i18n,\r\n sourceCustomer,\r\n targetCustomer,\r\n}) => {\r\n const errorCodes = _.keys(errorDetails);\r\n\r\n return (\r\n
\r\n {errorDetails && errorCodes && _.map(errorCodes, (errorCode) => {\r\n // support parameterized error message, populated in target\r\n const error = errorDetails[errorCode];\r\n const count = (error.entityIds || error).length;\r\n const params = error.target || '';\r\n const errorMessage = ErrorMessage(i18n, errorCode, {\r\n count,\r\n params,\r\n sourceCustomerName: sourceCustomer.Name,\r\n targetCustomerName: targetCustomer.Name,\r\n });\r\n const isWarningCode = isWarning(errorCode);\r\n const helpTopicId = ErrorHelpPopupIds[errorCode] || null;\r\n\r\n const iconClass = isWarningCode ? 'iconba-Warning' : 'iconba-Error';\r\n const cssClass = isWarningCode ? 'warning-info' : 'error-info';\r\n\r\n return (\r\n
\r\n \r\n \r\n {errorMessage}\r\n {helpTopicId && }\r\n \r\n
\r\n );\r\n })\r\n }\r\n
\r\n );\r\n};\r\n\r\nARWUnthemedBulkErrorView.propTypes = {\r\n errorDetails: BulkErrorDetailsPropTypes,\r\n classes: bulkErrorViewClassesProps.isRequired,\r\n i18n: I18nPropTypes.isRequired,\r\n sourceCustomer: PropTypes.shape({\r\n Name: PropTypes.string,\r\n }),\r\n targetCustomer: PropTypes.shape({\r\n Name: PropTypes.string,\r\n }),\r\n};\r\n\r\nARWUnthemedBulkErrorView.defaultProps = {\r\n errorDetails: null,\r\n sourceCustomer: { Name: '' },\r\n targetCustomer: { Name: '' },\r\n};\r\n\r\nexport const ARWBulkErrorView =\r\n withI18nConsumer(withDefaultStyles(\r\n ARWUnthemedBulkErrorView,\r\n getBulkErrorViewStyles\r\n ));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { Modal, Button } from '@bingads-webui-react/primitive';\r\nimport { BulkErrorDetailsPropTypes, I18nPropTypes } from '@bingads-webui-campaign-react/account-reparenting-props';\r\nimport { CommonLocStrings } from '@bingads-webui-campaign-react/account-reparenting-localization';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\n\r\nimport { ARWBulkErrorView } from './bulk-error-view';\r\n\r\n/* istanbul ignore next */\r\nconst BulkErrorViewWithModalDialog = ({\r\n errorDetails,\r\n i18n,\r\n onCancelClick,\r\n onEnablePilotsClick,\r\n onUpgradeServiceLevelClick,\r\n sourceCustomer,\r\n targetCustomer,\r\n}) => (\r\n \r\n \r\n \r\n \r\n \r\n {_.has(errorDetails, 'ReparentingRequireEnableTargetCustomerPilot') &&\r\n \r\n }\r\n {_.has(errorDetails, 'ReparentingRequireUpgradeTargetCustomerLevel') &&\r\n \r\n }\r\n \r\n \r\n \r\n);\r\n\r\nBulkErrorViewWithModalDialog.propTypes = {\r\n errorDetails: BulkErrorDetailsPropTypes.isRequired,\r\n i18n: I18nPropTypes.isRequired,\r\n onCancelClick: PropTypes.func.isRequired,\r\n onUpgradeServiceLevelClick: PropTypes.func.isRequired,\r\n onEnablePilotsClick: PropTypes.func.isRequired,\r\n sourceCustomer: PropTypes.shape({\r\n Name: PropTypes.string,\r\n }),\r\n targetCustomer: PropTypes.shape({\r\n Name: PropTypes.string,\r\n }),\r\n};\r\n\r\nBulkErrorViewWithModalDialog.defaultProps = {\r\n sourceCustomer: { Name: '' },\r\n targetCustomer: { Name: '' },\r\n};\r\n\r\nexport const ARWBulkErrorViewWithModalDialog = withI18nConsumer(BulkErrorViewWithModalDialog);\r\n","import _ from 'underscore';\r\nimport { notificationApi } from '@bingads-webui-react/notification-center';\r\nimport { getErrorMessage } from './error-codes';\r\n\r\nexport const handleAjaxAuthFailure = _.noop;\r\n\r\nexport const appendJsDataErrorSummary = (errors) => {\r\n if (_.isArray(errors)) {\r\n _.each(errors, (error) => {\r\n if (error) {\r\n const errorCode = _.isString(error.Code) ? error.Code : 'GenericErrorMessage';\r\n const params = _.isString(error.Target) ? error.Target : '';\r\n notificationApi.showWarning(getErrorMessage(null, errorCode, { params }));\r\n }\r\n });\r\n }\r\n};\r\n","import { Constants } from '@bingads-webui-clientcenter/entity-utils';\r\nimport { notSetPaymentOptionId } from '@bingads-webui-campaign-react/account-reparenting-utils';\r\n\r\nexport const CommonLocStrings = {\r\n Loading: _TL_('Loading ...'),\r\n ErrorsLabel: _TL_('Errors'),\r\n AccountNameNumberFormat: _TL_('{{name}}({{number}})'),\r\n BackLabel: _TL_('Back'),\r\n NextLabel: _TL_('Save & next'),\r\n OkLabel: _TL_('Ok'),\r\n GotitLabel: _TL_('Got it'),\r\n CancelLabel: _TL_('Exit'),\r\n CloseLabel: _TL_('Close'),\r\n SubmitLabel: _TL_('Submit request'),\r\n SaveAndExitLabel: _TL_('Save & exit'),\r\n TakeoverBillingSectionHeader: _TL_('Billing & payments'),\r\n TransferResourcesHeader: _TL_('Transfer resources'),\r\n NotSet: _TL_('Not Set'),\r\n Prepay: _TL_('Prepay'),\r\n Threshold: _TL_('Threshold'),\r\n MonthlyInvoice: _TL_('Monthly Invoice'),\r\n Grid_ShowRows: _TL_('Show rows:'),\r\n Grid_PageOf: _TL_('of'),\r\n UETSectionHeader: _TL_('UET tags'),\r\n EnablePilotsLabel: _TL_('Enable pilots'),\r\n UpgradeLabel: _TL_('Upgrade'),\r\n};\r\n\r\nexport const paymentOptionIdToKeyMap = {\r\n [notSetPaymentOptionId]: CommonLocStrings.NotSet,\r\n [Constants.PaymentOptionId.Prepay]: CommonLocStrings.Prepay,\r\n [Constants.PaymentOptionId.Threshold]: CommonLocStrings.Threshold,\r\n [Constants.PaymentOptionId.Invoice]: CommonLocStrings.MonthlyInvoice,\r\n};\r\n","export const ErrorLocStrings = {\r\n GenericErrorMessage: _TL_('We\\'ve encountered an error and can\\'t continue. Please contact support for further assistance.'),\r\n MandatorySelection: _TL_('Please make a selection.'),\r\n\r\n AccountIsUnderReparenting: _TL_('Account is in process of transferring to new owner, we are not able to support users to operate these tasks on the account during account transfer process.'),\r\n ReparentingNotAllowedForAdultAdsCustomer: _TL_('Manager account is in Adult Ads Pilot (Pilot ID 21), we are not able to support account transfer for this manager account.'),\r\n\r\n ReparentingNotAllowedForThresholdAccountsWithOverdueBalance: _TL_('{{count}} account(s) have an overdue balance.'),\r\n ReparentingNotAllowedForOnHoldAccounts: _TL_('{{count}} account(s) are on hold.'),\r\n ReparentingNotAllowedForAccountsAlreadyUnderReparenting: _TL_('{{count}} account(s) are pending a reparenting request.'),\r\n ReparentingNotAllowedForAccountsCrossCustomers: _TL_('{{count}} account(s) are not currently owned by the Manager account.'),\r\n ReparentingNotAllowedForUnderSAPPOR: _TL_('The manager account is under billing processing. We are not able to support account transfer request. Please try it again later.'),\r\n ReparentingNotAllowedForUnderBillingMigration: _TL_('The manager account is under billing migration. We are not able to support account transfer request. Please try it later.'),\r\n ReparentingNotAllowedForFraudAccount: _TL_('{{count}} account(s) are suspended.'),\r\n ReparentingNotAllowedForAccountsMaxLimit: _TL_('Reparenting_SelectedAccountsMaxLimit'),\r\n InvalidAccount: _TL_('{{count}} account(s) are not valid.'),\r\n\r\n ReparentingScheduledLinksBlocked: _TL_('This account has a scheduled delink for this agency. The scheduled delink must be removed prior to Account Reparenting.'),\r\n ReparentingAgencyNotLinkedToAccount: _TL_('LinkSettings not provided for Account with Agency Links'),\r\n ReparentingAgencySettingMissing: _TL_('Setting for Agency missing from Account.'),\r\n ReparentingMustDelinkTargetCustomer: _TL_('Account must delink agency'),\r\n ReparentingTargetCustomerCannotBeSourceCustomer: _TL_('The manager account is same as current owner of accounts you are transferring. Please enter a different manager account.'),\r\n SourceTargetCustomerNotInReparentingPilot: _TL_('The manager account is not enabled in account transfer pilot. We are not able to process this account transfer request.'),\r\n ReparentingNotAllowedForFraudCustomer: _TL_('The manager account is in suspended status. We are not able to process this account transfer request.'),\r\n ReparentingNotAllowedForInactiveCustomer: _TL_('The manager account is in suspended status. We are not able to process this account transfer request.'),\r\n ReparentingNotAllowedForCrossDomain: _TL_('The manager account is owned by Yahoo/Microsoft. We are not able to support account transfer between different domain.'),\r\n ReparentingNotAllowedForMarketMismatch: _TL_('The manager account has market restriction, and can’t accept accounts which are in different market. We are not able to process this account transfer request.'),\r\n ReparentingNotAllowedForExceedTotalAccountNumber: _TL_('Due to account number limitation, the manager account could not accept all accounts being transferred to it. We are not able to process this account transfer request.'),\r\n ReparentingNotAllowedForMissingCustomerLevelPilotInTarget: _TL_('The manager account are not enabled in Pilots {{params}} while {{sourceCustomerName}} are enabled, we are not able to process this account transfer request.'),\r\n ReparentingNotAllowedForNewBillToCustomerStayTheSame: _TL_(\"We've encountered an error and can't continue. New bill-to can't be set as same as account's current bill-to customer. Please go back and choose 'Keep current bill-to'.\"),\r\n ReparentingCustomerHierarchyCycleDetected: _TL_('This link will cause a Hierarchy error after account transfer. Please remove the link to continue the account transfer request.'),\r\n AccountReparentingFailedByMovedCustomerLevelGoal: _TL_('Some of your selected accounts cannot be transferred to {{targetCustomerName}} because they contain manager-account-level conversion goals that are being used by campaigns in other accounts. Please update the campaign-level goal associations and try transferring again.'),\r\n AccountReparentingFailedByRemainingCustomerLevelGoal: _TL_('Some of your selected accounts cannot be transferred to {{targetCustomerName}} because you have campaign goal associations that are linked with manager-account-level goals that remain under the original manager account. Please update your account accordingly and try transferring again.'),\r\n AccountReparentingFailedByCvrlWithCustomerLevelAudience: _TL_('Some of the selected accounts cannot be transferred to {{targetCustomerName}} because there are manager-account-level audiences under the current manager account which are being used to set conversion value rules. Please remove the audiences from the conversion value rules and try transferring again.'),\r\n\r\n AccountNameDuplicate: _TL_('Sorry, the account name {{params}} is duplicate with other accounts under manager account {{sourceCustomerName}}. Please update the account name before account transfer.'),\r\n ReparentingNotAllowedForTargetCustomerNotInPilot: _TL_('The manager account {{targetCustomerName}} are not enabled in Pilot(s) {{params}} while {{sourceCustomerName}} are enabled. We are not able to process this account transfer request. Go to the UCM pilot tab to add {{targetCustomerName}} to the pilot(s). Once the pilot(s) are enabled by their owners, return here to continue.'),\r\n ReparentingNotAllowedForSourceCustomerNotInPilot: _TL_('The {{sourceCustomerName}} are not enabled in Pilot(s) {{params}} while manager account {{targetCustomerName}} are enabled. We are not able to process this account transfer request. Go to the UCM pilot tab to add {{sourceCustomerName}} to the pilot(s). Once the pilot(s) are enabled by their owners, return here to continue.'),\r\n ReparentingRequireEnableTargetCustomerPilot: _TL_(\"{{targetCustomerName}} is not enabled in Pilots {{params}} while {{sourceCustomerName}} is enabled. To process your account transfer request, we're enabling the pilots above in {{targetCustomerName}}.\"),\r\n ReparentingRequireUpgradeTargetCustomerLevel: _TL_(\"We're upgrading {{targetCustomerName}} service level to {{params}} to proceed with account transfer.\"),\r\n PaymentInstrumentControlledCurrencyNotMatched: _TL_('The payment method is not accepted in this account’s country or region.'),\r\n PaymentMethodNotSupportedByAccount: _TL_('The payment method is not accepted in this account’s country or region.'),\r\n AccountsPerPaymentInstrumentLimitReached: _TL_('The payment method is associated with too many accounts, and exceeds the account number limitation.'),\r\n PaymentMethodAssociatedWithManyAccounts: _TL_('The payment method is associated with too many accounts, and exceeds the account number limitation.'),\r\n PostPayAccountCantAssociateWithPrepaidCard: _TL_('The payment method is a prepaid card, it can’t be used for a postpay threshold account.'),\r\n ReparentingAccountFinanceSettleFail: _TL_('Due to {{params}} failed to settle balance, we are not able to submit account transfer request.'),\r\n BillToCustomerFinancialStatusIsSoldToOnly: _TL_('This SAP ID is SoldTo Only, please choose other payment option or payment method.'),\r\n DeleteAllReparentingAccountsNotAllowed: _TL_('Account transfer request must include at least one account. If you want to cancel this request, please go to request tab to cancel it.'),\r\n ReparentingNotAllowedForNonAdvertiserCustomer: _TL_('The manager account belongs to publisher customer, we are not able to support account transfer to publisher customer.'),\r\n ReparentingNotAllowedForAggregatorCustomer: _TL_('The manager account is aggregator customer, we are not able to support account transfer to aggregator customer.'),\r\n PaymentInstrumentIdNotFound: _TL_('This payment method is not valid. Please select a new payment method.'),\r\n TargetCustomerIdInvalid: _TL_('The manager account number is invalid. Please enter a valid manager account number.'),\r\n TargetCustomerNumberInvalid: _TL_('The manager account number is invalid. Please enter a valid manager account number.'),\r\n CustomerLifecycleStatusInvalid: _TL_('The manager account is not active. We are not able to support account transfer to inactive manager account.'),\r\n NewBillToCustomerNotManageAccount: _TL_('This manager account can’t serve as bill-to customer. Please select a new bill-to customer.'),\r\n PaymentInstrumentIdInvalid: _TL_('This payment method is not valid. Please select a new payment method.'),\r\n InvoiceMustBePremiumOrInternalCustomer: _TL_('We are not able to support monthly invoice payment option for this customer.'),\r\n ReparentingAccountIdInvalid: _TL_('{{params}} is not a valid account, please remove it from account transfer request.'),\r\n AccountReparentingCampaignLimitValidationFailed: _TL_('The account being transferred has exceeded the allowable campaign resources limit (keywords, ads extensions, campaigns, etc.) under the new manager account. We are not able to process this account transfer request.'),\r\n AccountReparentingCustomerExclusionValidationFailed: _TL_('We are not able to process this request, due to manager account {{targetCustomerName}} has different customer exclusion setting with current account owner.'),\r\n AccountReparentingFailedByUnmovedAudiences: _TL_('This account has conversion value rules with audiences that weren’t transferred. Please remove such audience associations from your conversion value rules before proceeding.'),\r\n AccountReparentingFailedByMovedAudiences: _TL_('The customer has conversion value rules under other accounts that are using audiences that will be moved as part of reparenting. Please un-associate those audiences first before continuing.'),\r\n AccountReparentingHotelAdsValidationFailed: _TL_('{{count}} accounts contains Hotel ads which can’t be transferred.'),\r\n AccountReparentingUETRemarketingValidationFailed: _TL_('{{count}} accounts contains Audiences or Conversion Goals which can’t be transfered.'),\r\n AccountReparentingBMCValidationFailed: _TL_('{{count}} accounts are ineligible for transfer because it contains shopping campaigns, search campaigns with shopping settings, and/or flyer extensions with associated stores. Please update your account accordingly and try transferring again.'),\r\n CustomerLevelAccountCreationIsSuspended: _TL_('The manager account is blocked for this action. For more information, please contact Support.'),\r\n};\r\n","export const FinalReviewLocStrings = {\r\n FinalReviewPageHeader: _TL_('Final review'),\r\n FinalReviewPageTitle: _TL_('This is important:'),\r\n FinalReviewSummaryText1: _TL_('Once this transfer has completed, {{targetCustomer}} will be the new owner and can manage the transferred accounts and {{sourceCustomer}} will no longer have access to them.'),\r\n FinalReviewSummaryText2: _TL_('Going forward, the bill-to customer you set up will be financially responsible for the transferred accounts. Any new bill-to payment method that is not properly set up could cause ads to stop serving.'),\r\n FinalReviewSummaryText3: _TL_('If any campaigns are paused as a result of this transfer, you can re-set them after the account transfer is completed.'),\r\n FinalReviewSummaryText4: _TL_('You can check the status of your account transfer from the Requests tab on the Accounts Summary page.'),\r\n FinalReviewSummaryText5: _TL_('We will send notifications to users on both {{targetCustomer}} and {{sourceCustomer}} to update them about these changes.'),\r\n FinalReviewSummaryText6: _TL_('After checking the box that confirms you understand these conditions, click the Submit this request button.'),\r\n FinalReviewConfirmationQuestion: _TL_('Are you sure you would start this account transfer?'),\r\n FinalReviewConfirmationText: _TL_('Yes, start the transfer'),\r\n FinalReviewSummaryText101: _TL_('It may take 20mins to 24 hours to complete the transfer, based on the amount of data in the request.'),\r\n FinalReviewSummaryText102: _TL_('If you set up a new bill-to customer, they won\\'t be responsible for the charges until the transfer is completed.'),\r\n FinalReviewSummaryText103: _TL_('Once complete {{sourceCustomer}} will no longer have access to the transferred accounts.'),\r\n FinalReviewSummaryText104: _TL_('After the transfer is completed, please ask new account owner ({{targetCustomer}}) to review various scheduled tasks, like Automated Rules, Scripts, etc., as those may have been paused after account transfer.'),\r\n FinalReviewSummaryText105: _TL_('Please confirm if you would like to start the transfer.'),\r\n FinalReviewSubmitSuccess: _TL_('Done! Your account transfer request has been submitted. To track the status of this request, go to Request tab'),\r\n};\r\n\r\nexport const SubmitJobProgressStrings = {\r\n StepIndex: _TL_('Step {{index}}'),\r\n StepTitle: _TL_('{{index}}: {{title}}'),\r\n SubmittedStepTitle: _TL_('Submitted'),\r\n TransferringStepTitle: _TL_('Transferring accounts to new owner'),\r\n DoneStepTitle: _TL_('Done!'),\r\n SubmitProgressTitle: _TL_('Transfer account to a new owner'),\r\n SubmitProgressSubTitle1: _TL_('Thank you! We\\'ve got it from here...'),\r\n SubmitProgressSubTitle2: _TL_('You can still explore other parts of Microsoft Advertisign while we transfer accounts.'),\r\n};\r\n","export const simpleFormLegacyLocStrings = {\r\n SimpleForm_Button_Save: _TL_('Save'),\r\n SimpleForm_Button_Cancel: _TL_('Cancel'),\r\n Grid_Edit_Cell: _TL_('Edit'),\r\n KoSchema_String_RemainingCharactersText: _TL_('{{count}} characters remaining'),\r\n};\r\n","export const ManagerAccountLocStrings = {\r\n ManagerAccountPageHeader: _TL_('Transfer accounts to a new owner'),\r\n ManagerAccountTitle1: _TL_('We\\'ll guide you as you transfer accounts to a new owner. You should set aside 10 minutes to complete this form. You can also save your work and come back to complete your draft.'),\r\n ManagerAccountInputLabel: _TL_('Enter the manager account number you want to transfer the accounts to'),\r\n ManagerAccountInputPlaceholder: _TL_('Enter manager account number'),\r\n PreApprovalWarningMessage: _TL_('If you require an insertion order pre-approval, you will need to set up billing first before you can migrate campaign resources.'),\r\n IdentifyRecipientStepTitle: _TL_('Identify your recipient'),\r\n IdentifyRecipientStepDetails: _TL_('Provide the manager account number that\\'ll be the new home of the accounts you\\'re transferring. If you don\\'t have it, you can get it from the recipient (or the new owner)'),\r\n SetUpBillingStepTitle: _TL_('Set up billing'),\r\n SetUpBillingStepDetails: _TL_('The final step is to set up billing. For monthly invoice accounts, be sure to include an insertion order. Without one, ads won\\'t serve once the transfer is done.'),\r\n TakeLeaveStepTitle: _TL_('Take it or leave it'),\r\n TakeLeaveStepDetails: _TL_('For your selected accounts, choose whether or not to retain the direct manager links as part of the account transfer.'),\r\n TakeLeaveStepDetailsOfUET: _TL_('Meanwhile, review all UET tags, Audiences and Conversion goals on manager account {{sourceManagerAccountName}} to choose whether to move these resources together with account transfer.'),\r\n TakeLeaveStepDetailsNote: _TL_('We\\'ll skip this section if its not relevant'),\r\n NoteLabel: _TL_('Note'),\r\n ProcessingTimeStepTitle: _TL_('Processing time'),\r\n ProcessingTimeStepDetails: _TL_('We\\'ll start once you submit the transfer. Simple transfers are done in about 20 minutes, but complex setups can take up to 48 hours. When it\\'s done, the former owner won\\'t have access to the transferred accounts.'),\r\n NotAValidManagerAccount: _TL_('Please enter a valid Microsoft Advertising manager account number'),\r\n};\r\n","export const PendingTransferRequestSummaryLocStrings = {\r\n PendingTransferPageTitle: _TL_('View pending transfer request'),\r\n CompletedTransferPageTitle: _TL_('View transfer request'),\r\n PendingTransferPageMessage: _TL_('View the details of the transfer request'),\r\n};\r\n","export const ReviewBillingLocStrings = {\r\n Header: _TL_('Review billing'),\r\n NoPIGridData: _TL_('No payment instruments to review'),\r\n Description: _TL_('Review your setup for each account and make any necessary changes.'),\r\n IoApprovalDialogTitle: _TL_('Your insertion order requires customer approval'),\r\n IoApprovalDialogLine1: _TL_('The bill-to customer must approve your insertion order.'),\r\n IoApprovalDialogLine2: _TL_('Choose how you want to proceed.'),\r\n IoApprovalDialogOption1: _TL_('[Recommended] Send the insertion order for customer approval and wait with the transfer until the IO is approved. This recommended option keeps the account from going dark when the transfer takes place.'),\r\n IoApprovalDialogOption2: _TL_('Start the transfer without an approved insertion order. Although the IO will still be routed for customer approval, the account will go dark and stay dark until the IO is approved or added.'),\r\n IoApprovalDialogConfirm: _TL_('Confirm'),\r\n IoApprovalDialogGoBack: _TL_('Go back'),\r\n PiBulkFixDialogTitle: _TL_('Invalid payment method'),\r\n PiBulkFixDialogLine1: _TL_('Unfortunately, you need to select a different payment method for {{numberOfAccountsWithSameError}} accounts, because it\\'s invalid for the account currency and country/region. Do you want to apply this payment method to those accounts as well?'),\r\n PiBulkFixDialogLine2: _TL_('Note: If you proceed without a valid payment method, the account will go dark once the transfer is complete.'),\r\n PiBulkFixDialogApply: _TL_('Apply payment method'),\r\n PiBulkFixDialogNo: _TL_('No'),\r\n On: _TL_('On'),\r\n Off: _TL_('Off'),\r\n};\r\n","export const ReviewLinkingLocStrings = {\r\n NoGridData: _TL_('No direct manager review needed. Proceed to next step.'),\r\n ReviewAccountLinkingHeader: _TL_('Review direct managers'),\r\n ReviewAccountPageDescription: _TL_('The accounts you’re transferring can be fully accessed and controlled by direct managers because of pre-existing links to other manager accounts. Please decide if these direct managers need to retain access to the transferred accounts.'),\r\n KeepAllLinksLabel: _TL_('Keep link for all'),\r\n UnlinkAllLabel: _TL_('Remove link for all'),\r\n KeepLinkLabel: _TL_('Keep this link'),\r\n UnlinkLabel: _TL_('Unlink this account'),\r\n SelectLabel: _TL_('Select'),\r\n AccountLabel: _TL_('Account'),\r\n ActionLabel: _TL_('Transfer decision'),\r\n SearchAccounts: _TL_('Search accounts'),\r\n LinkedManagerAccountLabel: _TL_('Direct manager'),\r\n AccountLinkAction: _TL_('Account link action'),\r\n LinkConfirmationMissingTitle: _TL_('You\\'re not done yet!'),\r\n LinkConfirmationMissingMessage: _TL_('It looks like you\\'ve got a few decisions left to make. Check the Transfer decision column for next steps.'),\r\n PleaseMakeASelection: _TL_('Please make a selection.'),\r\n};\r\n","export const SetupBillingLocStrings = {\r\n Header: _TL_('Set up billing'),\r\n Description: _TL_('Choose the payment setting and payment method for {{ count }} accounts. Keep in mind:'),\r\n BulletPoint1: _TL_('All accounts need a payment method.'),\r\n BulletPoint2: _TL_('For prepay accounts, you should add funds as part of this transfer.'),\r\n BulletPoint3: _TL_('For monthly invoice accounts, you should add an insertion order. Add one now and we will route it to the customer for approval.'),\r\n WhoPays: _TL_('Who pays'),\r\n HowYouPay: _TL_('How you pay'),\r\n Prepay: _TL_('Prepay'),\r\n MonthlyInvoice: _TL_('Monthly invoice'),\r\n PostpayThreshold: _TL_('Postpay threshold'),\r\n WhatYouPayWith: _TL_('What you pay with'),\r\n NotSet: _TL_('Not set'),\r\n InsertionOrderWarning: _TL_('We recommend that you create an insertion order so that these accounts can continue to serve.'),\r\n AutoRechargeWarning: _TL_('You have auto-recharge set to off. We strongly recommend that you set auto-recharge for these accounts as you may exhaust your funds before data migration is completed.'),\r\n AccountsWillGoDarkDialogTitle: _TL_('Accounts will go dark'),\r\n AccountsWillGoDarkDialogMessage: _TL_('Your accounts will go dark as soon as the account transfer is complete because no payment instrument is selected.'),\r\n RetainBillingSettingsDialogTitle: _TL_('Retain billing settings'),\r\n RetainBillingSettingsDialogMessage: _TL_('Would you like to apply billing settings to all the accounts?'),\r\n Accept: _TL_('Accept'),\r\n Cancel: _TL_('Cancel'),\r\n ApplyAll: _TL_('Apply to all accounts'),\r\n Decline: _TL_('Remain saved record'),\r\n WhoPaysError: _TL_('There is no available payment method in the new owner manager account. Please set up an available payment method in the new owner manager account, then come back to this page to proceed.'),\r\n};\r\n","export const TakeoverBillingLocStrings = {\r\n NoGridData: _TL_('No current bill-to managers need review, please go to next step'),\r\n TakeoverBillingHeader: _TL_('Confirm bill-to customer'),\r\n TakeoverBillingNonePageDescription: _TL_('None of the accounts you\\'ve selected to transfer could keep their current bill-to. Please set up new bill-to customers in the next step'),\r\n TakeoverBillingPageDescription: _TL_('Of the {{totalCount}} you\\'ve selected to transfer, {{retainCount}} can keep their current bill-to and {{newCount}} need a new bill-to. Please decide whether to keep the current bill-to or if you want to set up a new bill-to in the next step.'),\r\n TakeoverBillingNote: _TL_('You\\'ll set up billing for {{totalCount}} when you click Next'),\r\n SearchAccounts: _TL_('Search accounts'),\r\n KeepCurrentBillToForAll: _TL_('Keep current bill-to for all'),\r\n SetupNewBillToForAll: _TL_('Set up new bill-to for all'),\r\n SetupNewBillTo: _TL_('Set up new bill-to'),\r\n KeepCurrentBillTo: _TL_('Keep current bill-to'),\r\n Select: _TL_('Select'),\r\n Account: _TL_('Account'),\r\n WhoPays: _TL_('Who pays'),\r\n CurrentPaymentSetting: _TL_('Current payment setting'),\r\n CurrentPaymentMethod: _TL_('Current payment method'),\r\n TransferDecision: _TL_('Transfer decision'),\r\n};\r\n","export const TransferSummaryLocStrings = {\r\n SummaryPaneHeader: _TL_('Summary'),\r\n DownloadSummaryLinkLabel: _TL_('Download summary'),\r\n CurrentManagerAccountLabel: _TL_('Current owner'),\r\n NewManagerAccountLabel: _TL_('New owner'),\r\n AccountsSelectedLabel: _TL_('Accounts selected for transfer'),\r\n NumberOfAccounts: _TL_('{{count}} Accounts'),\r\n RemoveAccount: _TL_('Remove'),\r\n SearchAccounts: _TL_('Search accounts'),\r\n SelectedAccountsLabel: _TL_('Selected Accounts'),\r\n RatinedAccountLinksLabel: _TL_('Retained direct manager links'),\r\n UnlinkedAccountLinksLabel: _TL_('Unlinked direct manager links'),\r\n RetainedBillToAccountsLabel: _TL_('Retained bill-to accounts'),\r\n NewBillToAccountsLabel: _TL_('New bill-to accounts'),\r\n BillingSetupLabel: _TL_('Billing setup'),\r\n PaymentSetting: _TL_('Payment setting'),\r\n PreapprovedIOLabel: _TL_('Pre-approved insertion orders'),\r\n InsertionOrderStatus: _TL_('{{count}} insertion orders'),\r\n AccountLinksLabel: _TL_('Account links'),\r\n UnlinkedAccountsLabel: _TL_('{{count}} accounts unlinked'),\r\n RetainedAccountsLabel: _TL_('{{count}} account links retained'),\r\n NewBillToLabel: _TL_('{{count}} accounts with new bill-to'),\r\n RetainedBillToLabel: _TL_('{{count}} accounts retains bill-to'),\r\n PaymentOption: _TL_('Payment option'),\r\n InsertionOrders: _TL_('Insertion orders'),\r\n InsertionOrdersApproved: _TL_('{{count}} insertion order(s) approved'),\r\n InsertionOrdersDeclined: _TL_('{{count}} insertion order(s) declined'),\r\n InsertionOrdersPending: _TL_('{{count}} insertion order(s) pending'),\r\n UETTagLabel: _TL_('UET tags'),\r\n UETTagTransfered: _TL_('1 UET tag transfered'),\r\n AccountLoseAccess: _TL_('1 account loses access'),\r\n UETTagsTransfered: _TL_('{{count}} UET tags transfered'),\r\n AccountsLoseAccess: _TL_('{{count}} accounts lose access'),\r\n UETPopoverTitle: _TL_('Transfered UET tags'),\r\n LoseAccessAccountPopoverTitle: _TL_('Lost access accounts'),\r\n SearchUETTags: _TL_('Search UET tags'),\r\n};\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const BasicAccountPropType = PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n Number: PropTypes.string.isRequired,\r\n});\r\n\r\nexport const AccountPropType = PropTypes.shape({\r\n Id: PropTypes.number,\r\n Name: PropTypes.string,\r\n Number: PropTypes.string,\r\n CurrencyType: PropTypes.string,\r\n PaymentType: PropTypes.number,\r\n PaymentOption: PropTypes.string,\r\n TimeZone: PropTypes.number,\r\n TaxInformation: PropTypes.arrayOf(PropTypes.shape({\r\n Key: PropTypes.string.isRequired,\r\n Value: PropTypes.string.isRequired,\r\n })),\r\n BusinessAddress: PropTypes.shape({\r\n Id: PropTypes.number,\r\n BusinessName: PropTypes.string,\r\n City: PropTypes.string,\r\n Country: PropTypes.string,\r\n Line1: PropTypes.string,\r\n Line2: PropTypes.string,\r\n PostalCode: PropTypes.string,\r\n StateOrProvince: PropTypes.string,\r\n CountryName: PropTypes.string,\r\n StateOrProvinceName: PropTypes.string,\r\n IsValid: PropTypes.bool,\r\n ValidationVersionId: PropTypes.number,\r\n }).isRequired,\r\n PreferredBillToPaymentInstrumentId: PropTypes.number,\r\n});\r\n\r\nexport const BasicCustomerPropType = PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n Number: PropTypes.string.isRequired,\r\n});\r\n\r\nexport const CustomerPropType = PropTypes.shape({\r\n Id: PropTypes.number,\r\n Name: PropTypes.string,\r\n Number: PropTypes.string,\r\n BusinessPhone: PropTypes.string,\r\n});\r\n\r\nexport const UserPropType = PropTypes.shape({\r\n Id: PropTypes.number,\r\n Name: PropTypes.string,\r\n Email: PropTypes.string,\r\n});\r\n\r\nexport const NewBillToPropType = PropTypes.shape({\r\n Customer: CustomerPropType,\r\n PaymentOptionId: PropTypes.number,\r\n});\r\n\r\nexport const DomainDataCountriesPropType = PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.string,\r\n value: PropTypes.shape({\r\n Code: PropTypes.string.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n }),\r\n}));\r\n\r\nexport const DomainDataCurrencyCountriesMapPropType = PropTypes.arrayOf(PropTypes.shape({\r\n currency: PropTypes.string.isRequired,\r\n countries: PropTypes.arrayOf(PropTypes.string.isRequired),\r\n}));\r\n\r\nexport const DomainDataCurrenciesPropType = PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n value: PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Code: PropTypes.string.isRequired,\r\n ControlledCurrencyCountryId: PropTypes.number,\r\n }),\r\n}));\r\n\r\nexport const DomainDataTimeZonesPropType = PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n value: PropTypes.shape({\r\n Name: PropTypes.string.isRequired,\r\n }),\r\n}));\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const AccountPropTypes = PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n Number: PropTypes.string.isRequired,\r\n});\r\n\r\nexport const TagInfoPropType = PropTypes.shape({\r\n Account: AccountPropTypes,\r\n OwnedAudience: PropTypes.number,\r\n SharedAudience: PropTypes.number,\r\n ConversionGoal: PropTypes.number,\r\n AudienceAssociation: PropTypes.number,\r\n});\r\n\r\nexport const UETTagsPropTypes = PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n Move: PropTypes.bool,\r\n Accounts: PropTypes.arrayOf(AccountPropTypes),\r\n Audiences: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n })),\r\n Goals: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n })),\r\n TagUsedByInfosImpactedByTransfer: PropTypes.arrayOf(TagInfoPropType),\r\n TagUsedByInfosImpactedByKeep: PropTypes.arrayOf(TagInfoPropType),\r\n});\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const InstrumentationSchemaPropTypes = PropTypes.shape({\r\n scenario: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n value: PropTypes.any.isRequired,\r\n activity: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n value: PropTypes.any.isRequired,\r\n })).isRequired,\r\n })).isRequired,\r\n});\r\n\r\nexport const InstumentationServiceContextPropTypes = PropTypes.shape({\r\n logger: PropTypes.any.isRequired,\r\n instrumentation: PropTypes.any.isRequired,\r\n});\r\n\r\nexport const I18nPropTypes = PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n});\r\n\r\nexport const ServerContextPropTypes = PropTypes.shape({\r\n Accounts: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n Number: PropTypes.string.isRequired,\r\n })),\r\n AccountIds: PropTypes.arrayOf(PropTypes.number),\r\n CurrentCustomer: PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n Number: PropTypes.string.isRequired,\r\n }).isRequired,\r\n CurrentUser: PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Email: PropTypes.string.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n }).isRequired,\r\n SourceCustomerId: PropTypes.number,\r\n CurrentLocale: PropTypes.string.isRequired,\r\n Token: PropTypes.string.isRequired,\r\n PageTrackingId: PropTypes.string.isRequired,\r\n ServicesEndpoints: PropTypes.shape({\r\n ClientCenterUIAPI: PropTypes.string.isRequired,\r\n AccountsSummaryUrl: PropTypes.string.isRequired,\r\n }).isRequired,\r\n ReparentingId: PropTypes.number.isRequired,\r\n});\r\n\r\nexport const DomChildrenPropTypes = PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n]);\r\n\r\nexport const ServerContextProviderPropTypes = {\r\n serverContext: ServerContextPropTypes,\r\n children: DomChildrenPropTypes,\r\n};\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const BulkErrorDetailsPropTypes = PropTypes.shape({});\r\n","export const gridSelectEditorStyles = {\r\n paddingTop: '8px',\r\n borderWidth: '0px 0px 1px 0px',\r\n paddingBottom: '8px',\r\n borderBottomColor: 'transparent',\r\n display: 'block',\r\n};\r\n\r\nexport const gridInlineErrorStyle = ({ palette = {}, iconFontFamily = 'MsAds MDL2 Assets' }) => ({\r\n '& .inline-editor-errors': {\r\n '& .error-messages': {\r\n color: palette.red,\r\n listStyleType: 'none',\r\n marginBottom: 0,\r\n '& .error': {\r\n fontFamily: iconFontFamily,\r\n padding: '10px',\r\n fontSize: '10pt',\r\n '&:before': {\r\n content: '\"\\\\EA39\"',\r\n color: palette.red,\r\n },\r\n },\r\n '& .error-message': {\r\n fontSize: '12px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nconst getBlockerStyle = (size, palette) => ({\r\n width: size,\r\n height: size,\r\n border: '2px solid',\r\n borderLeftColor: palette.themePrimary,\r\n borderRightColor: palette.themeLight,\r\n borderTopColor: palette.themeLight,\r\n borderBottomColor: palette.themeLight,\r\n borderRadius: '50%',\r\n animation: 'spinner 1s linear infinite',\r\n});\r\n\r\nexport const legacyUIBlockerStyle = (components, { palette = {} }) => ({\r\n '.blocker-container': {\r\n '& .blocker': {\r\n position: 'absolute',\r\n backgroundColor: 'rgba(255,255,255,0.4)',\r\n },\r\n '& .blocker-indicator': {\r\n top: '50%',\r\n left: '50%',\r\n position: 'absolute',\r\n outline: 'none',\r\n padding: '10px',\r\n backgroundColor: palette.white,\r\n color: palette.themePrimary,\r\n\r\n '& .blocker-image': {\r\n ...getBlockerStyle(28, palette),\r\n position: 'absolute',\r\n },\r\n\r\n '& .blocker-text': {\r\n margin: '2px 0 0 35px',\r\n },\r\n },\r\n },\r\n});\r\n","export const getWizardFooterStyles = (components, { palette = {} }) => ({\r\n borderTop: `1px solid ${palette.neutralLight}`,\r\n paddingLeft: '16px',\r\n paddingTop: '16px',\r\n paddingBottom: '16px',\r\n\r\n '& button.arw-step-submit': { marginRight: '8px', backgroundColor: palette.themePrimary, color: palette.white },\r\n '& button.arw-step-submit[disabled]': { marginRight: '8px', backgroundColor: palette.neutralLighter, color: palette.neutralPrimary },\r\n '& button.arw-step-next': { marginRight: '8px', backgroundColor: palette.themePrimary, color: palette.white },\r\n '& button.arw-step-next[disabled]': { marginRight: '8px', backgroundColor: palette.neutralLighter, color: palette.neutralPrimary },\r\n '& button.arw-step-saveandexit': { marginRight: '50px', float: 'right' },\r\n '& button.arw-step-saveandexit[disabled]': { marginRight: '50px', float: 'right' },\r\n '& button.arw-step-previous': { marginRight: '8px' },\r\n '& button.arw-step-cancel': { marginLeft: '48px' },\r\n});\r\n","const borderWidth = '2px';\r\n\r\nconst getColors = palette => ({\r\n completedBorder: palette.themePrimary,\r\n completedIcon: palette.themePrimary,\r\n inProgressIcon: '#c0def6',\r\n incompleteBorder: '#ebebeb',\r\n incompleteIcon: palette.neutralLight,\r\n\r\n background: palette.white,\r\n stepContentBorder: palette.neutralQuaternaryAlt,\r\n});\r\n\r\nexport const getStepProgressItemGlyphicon = (step) => {\r\n // sub steps\r\n if (step.path.indexOf('.') >= 0) {\r\n return 'ba-RadioBullet';\r\n }\r\n\r\n if (step.isSelected || step.containsSelected) {\r\n return 'ba-RadioBtnOn'; // current step\r\n } else if (step.isBehind) {\r\n return 'ba-CompletedSolid';\r\n }\r\n\r\n // default\r\n return 'ba-RadioBtnOff';\r\n};\r\n\r\nexport const getWizardProgressListContainerStyles = (components, { palette = {} }) => {\r\n const color = getColors(palette);\r\n\r\n return {\r\n minWidth: '228px',\r\n width: '228px',\r\n borderRight: `1px solid ${color.stepContentBorder}`,\r\n marginLeft: '38px',\r\n paddingTop: '15px',\r\n\r\n '& ol': {\r\n margin: 0,\r\n padding: 0,\r\n listStyle: 'none',\r\n },\r\n\r\n // Styles for drawing the vertical line\r\n '& .step-progress-list-item': {\r\n borderLeft: `${borderWidth} solid ${color.completedBorder}`,\r\n '&.step-progress-list-item-ahead': { borderLeftColor: color.incompleteBorder },\r\n },\r\n\r\n // top level list items\r\n '& ol.step-progress-list>.step-progress-list-item': {\r\n paddingTop: '24px',\r\n\r\n '&:first-child': { borderLeftColor: color.background, paddingTop: 0 },\r\n\r\n '&>.step-progress-list-item-glyphicon': {\r\n marginLeft: '-8px',\r\n marginRight: '8px',\r\n background: color.background,\r\n paddingTop: '5px',\r\n paddingBottom: '4px',\r\n },\r\n },\r\n\r\n // nested list items\r\n '& ol.step-progress-list-item-list>.step-progress-list-item': {\r\n lineHeight: '16px',\r\n paddingTop: '24px',\r\n marginLeft: `-${borderWidth}`,\r\n\r\n '&>.step-progress-list-item-glyphicon': {\r\n marginLeft: '-8px',\r\n marginRight: '12px',\r\n background: color.background,\r\n paddingBottom: '1px',\r\n },\r\n },\r\n\r\n '& .step-progress-list-item-selected': { fontWeight: '600' },\r\n\r\n // glyphicon colors\r\n '& .step-progress-list-item-behind .step-progress-list-item-glyphicon': {\r\n color: color.completedIcon,\r\n },\r\n '& .step-progress-list-item-selected .step-progress-list-item-glyphicon, & .step-progress-list-item-contains-selected>.step-progress-list-item-glyphicon': {\r\n color: color.inProgressIcon,\r\n },\r\n '& .step-progress-list-item-ahead .step-progress-list-item-glyphicon': {\r\n color: color.incompleteIcon,\r\n },\r\n };\r\n};\r\n","import _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport { datePickerStyle } from '@bingads-webui-campaign-react/common-styles';\r\n\r\nimport { legacyUIBlockerStyle } from './common-styles';\r\nimport { getWizardFooterStyles } from './footer-styles';\r\nimport { getWizardProgressListContainerStyles } from './progress-styles';\r\n\r\nconst getWizardStepsContainerStyles = (components, { palette = {} }) => ({\r\n display: 'flex',\r\n flex: '1 1 auto',\r\n '& .step-container': {\r\n width: '100%',\r\n },\r\n '& .arw-wizard-steps-content': {\r\n marginTop: '30px',\r\n display: 'flex',\r\n '& .arw-wizard-steps-main': {\r\n marginRight: '40px',\r\n flex: '1 1 auto',\r\n },\r\n '& .arw-wizard-steps-summary': {\r\n padding: '10px',\r\n float: 'right',\r\n width: '400px',\r\n minWidth: '400px',\r\n backgroundColor: palette.neutralLighter,\r\n },\r\n },\r\n '& .arw-step-footer': getWizardFooterStyles(components, { palette }),\r\n});\r\n\r\nexport const bulkErrorViewModalStyles = () => ({\r\n '#arw-bulk-error-view-dialog .modal-content': {\r\n width: '600px',\r\n },\r\n});\r\n\r\nexport const getWizardStyles = (components, { palette = {} }) => ({\r\n '@global': _.extend(\r\n {},\r\n bulkErrorViewModalStyles(),\r\n legacyUIBlockerStyle(components, { palette }),\r\n datePickerStyle({ palette })\r\n ),\r\n wizardListContainer: getWizardProgressListContainerStyles(components, { palette }),\r\n wizardStepsContainer: getWizardStepsContainerStyles(components, { palette }),\r\n arWizardContainer: {\r\n display: 'flex',\r\n height: '100%',\r\n\r\n '& .btn-link': {\r\n background: 'none!important',\r\n border: 'none!important',\r\n color: palette.themePrimary,\r\n cursor: 'pointer',\r\n },\r\n\r\n '& .arw-page-header': {\r\n fontSize: '20px',\r\n fontWeight: '600',\r\n marginBottom: '10px',\r\n },\r\n\r\n '& .arw-div-details': {\r\n marginTop: '5px',\r\n marginBottom: '15px',\r\n display: 'flex',\r\n fontWeight: 'normal',\r\n },\r\n },\r\n});\r\n\r\nexport const wizardClassesProps =\r\n PropTypes.shape(_.mapObject(getWizardStyles({}, {}), () => PropTypes.string));\r\n","export const headerRowBackgroundColor = '#FFFFFF';\r\nexport const headerRowBorderTop = '2px solid #81868B';\r\nexport const headerRowBorderBottom = '2px solid #81868B';\r\nexport const totalRowBackgroundColor = '#FFFFFF';\r\nexport const totalRowBorderTop = 'none'; // `1px solid ${palette.neutralLighter}`\r\nexport const tableBorder = '1px solid #EDEBE9';\r\n\r\nexport const gridPaddingLeft = '32px';\r\nexport const gridPaddingComponsation = '0px'; // These two should add up to 32px\r\n","import { tableBorder, headerRowBorderBottom, headerRowBackgroundColor, headerRowBorderTop } from './variables';\r\n\r\nexport default (_, { palette }) => ({\r\n '& tr': {\r\n '& th.column-header': {\r\n borderTop: headerRowBorderTop,\r\n borderBottom: headerRowBorderBottom,\r\n '& .helpbutton::before': {\r\n position: 'static',\r\n },\r\n },\r\n '& th': {\r\n verticalAlign: 'middle',\r\n fontWeight: '600',\r\n backgroundColor: headerRowBackgroundColor,\r\n color: palette.neutralPrimary,\r\n border: tableBorder,\r\n padding: '8px 10px',\r\n },\r\n\r\n '& th:first-child': {\r\n paddingLeft: '32px',\r\n },\r\n\r\n '& th:first-child, & th:nth-child(2), & th:nth-child(3)': {\r\n borderLeft: 'none',\r\n },\r\n\r\n '& th:first-child, & th:nth-child(2), & th:last-child': {\r\n borderRight: 'none',\r\n },\r\n\r\n '& th.column-header-sortable': {\r\n cursor: 'pointer',\r\n },\r\n\r\n '&.grid-cross-page-select-all': {\r\n '& th': {\r\n padding: '0',\r\n border: 'none',\r\n },\r\n },\r\n '& .glyphicon-arrow-up:before': {\r\n fontFamily: '\"MsAds MDL2 Assets\"',\r\n content: '\"\\\\EE68\"',\r\n },\r\n '& .glyphicon-arrow-down:before': {\r\n fontFamily: '\"MsAds MDL2 Assets\"',\r\n content: '\"\\\\EE69\"',\r\n },\r\n\r\n // this temporary style for grid POP before we got UI from designer\r\n '& th span.pop-toggle-icon.clickable': {\r\n height: '14px',\r\n width: '14px',\r\n border: '1px solid transparent',\r\n display: 'inline-block',\r\n float: 'none',\r\n marginTop: '3px',\r\n\r\n '&:hover': {\r\n border: '1px solid black',\r\n },\r\n\r\n '& span': {\r\n display: 'block',\r\n fontSize: '10px',\r\n fontFamily: 'MsAds MDL2 Assets',\r\n fontWeight: 'bold',\r\n '-webkit-font-smoothing': 'antialiased',\r\n height: '12px',\r\n lineHeight: '12px',\r\n textAlign: 'center',\r\n width: '12px',\r\n\r\n '&.pop-expand:before': {\r\n content: '\"\\\\E710\"',\r\n color: 'black',\r\n },\r\n\r\n '&.pop-collapse:before': {\r\n content: '\"\\\\E738\"',\r\n color: 'black',\r\n },\r\n },\r\n },\r\n },\r\n\r\n '& tr.pop-enabled th.column-header.pop-column-header > div.column-header-container': {\r\n display: 'inline-block',\r\n },\r\n});\r\n","import getColumnsStyles from './columns';\r\n\r\nexport default (components, { palette }) => ({\r\n '& tr': {\r\n backgroundColor: '#FFFFFF',\r\n color: palette.neutralPrimary,\r\n\r\n // hide extra border between header and body, the first filler tr in grid need to be excluded\r\n '&[data-key]:first-child, &:not([data-key]) + tr[data-key]': {\r\n '& td': {\r\n borderTop: 'none',\r\n },\r\n },\r\n\r\n '&:hover': {\r\n backgroundColor: palette.neutralLighter,\r\n },\r\n\r\n '&.row-selected': {\r\n backgroundColor: palette.neutralLight,\r\n\r\n '&:hover': {\r\n backgroundColor: palette.neutralQuaternaryAlt,\r\n },\r\n },\r\n\r\n '&:hover, &.row-selected, &.row-selected:hover': {\r\n '& td': {\r\n borderRight: '1px solid #FFFFFF',\r\n '&:first-child, &:nth-child(2), &:last-child': {\r\n borderRight: 'none',\r\n },\r\n },\r\n },\r\n\r\n '&.grid-error-row': {\r\n '& td': {\r\n '& ul.grid-error-list': {\r\n listStyle: 'none',\r\n paddingLeft: 0,\r\n margin: '0.5em 0',\r\n color: palette.red,\r\n '& .grid-error': {\r\n paddingRight: 5,\r\n },\r\n },\r\n },\r\n },\r\n\r\n '& td.has-error': {\r\n '& ul.error-messages': {\r\n color: palette.red,\r\n listStyle: 'none',\r\n marginTop: '5px',\r\n paddingLeft: '0px',\r\n },\r\n '& select': {\r\n border: `1px solid ${palette.red}`,\r\n },\r\n },\r\n\r\n '& td div.has-error': {\r\n '& span.error-message': {\r\n color: palette.red,\r\n marginTop: '5px',\r\n paddingLeft: '0px',\r\n },\r\n '& select': {\r\n border: `1px solid ${palette.red}`,\r\n },\r\n },\r\n\r\n '& td div.cell-with-error': {\r\n display: 'inline-block',\r\n\r\n '& .error-text': {\r\n color: palette.red,\r\n fontSize: '12px',\r\n },\r\n },\r\n\r\n '& td div.cell-with-error.has-error': {\r\n '& .cell-text': {\r\n borderBottom: `1px solid ${palette.red}`,\r\n },\r\n },\r\n\r\n '& td': getColumnsStyles(components, { palette }),\r\n\r\n '& .grid-column-IOEndDate, & .grid-column-IOStartDate, & .grid-column-IOBudget, & .grid-column-PrepayAmount': {\r\n whiteSpace: 'nowrap',\r\n },\r\n },\r\n});\r\n","import { tableBorder } from './variables';\r\n\r\nexport default () => ({\r\n '&': {\r\n padding: '8px 10px',\r\n verticalAlign: 'middle',\r\n // NOTE: updated from 'palette.neutralLighter' for fit and finish experiments\r\n border: tableBorder,\r\n },\r\n\r\n '&:first-child': {\r\n paddingLeft: '32px',\r\n },\r\n\r\n '&:first-child, &:nth-child(2), &:nth-child(3)': {\r\n borderLeft: 'none',\r\n },\r\n\r\n '&:first-child, &:nth-child(2), &:last-child': {\r\n borderRight: 'none',\r\n },\r\n\r\n '& span': {\r\n lineHeight: '16px',\r\n },\r\n\r\n\r\n '& .labels-cell-container': {\r\n '& .labels-cell-item': {\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n height: '20px',\r\n width: '70px',\r\n padding: '1px 7px 3px 8px',\r\n borderRadius: '2px',\r\n display: 'inline-block',\r\n margin: '0 10px 5px 0',\r\n verticalAlign: 'top',\r\n },\r\n\r\n '& > a': {\r\n fontSize: '14px',\r\n },\r\n },\r\n\r\n '&.text-left .grid-editable-cell-container': {\r\n display: 'flex',\r\n justifyContent: 'flex-start',\r\n alignItems: 'center',\r\n },\r\n\r\n '&.text-right .grid-editable-cell-container': {\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n alignItems: 'center',\r\n },\r\n\r\n '.status-image': {\r\n clear: 'none',\r\n float: 'right',\r\n },\r\n});\r\n","import getHeaderStyles from './header';\r\nimport getBodyStyles from './body';\r\nimport getFooterStyles from './footer';\r\n\r\nexport default (components, { palette }) => ({\r\n '& thead.header': getHeaderStyles(components, { palette }),\r\n '& tbody': getBodyStyles(components, { palette }),\r\n '& tfoot.footer': getFooterStyles(components, { palette }),\r\n '&': {\r\n borderLeft: 'none',\r\n borderRight: 'none',\r\n borderBottom: 'none',\r\n },\r\n '& .glyphicon': {\r\n position: 'static',\r\n },\r\n\r\n '& .iconba': {\r\n position: 'static',\r\n },\r\n\r\n '& .grid-disabled': {\r\n color: palette.neutralSecondaryAlt,\r\n },\r\n});\r\n","import { gridPaddingComponsation } from './variables';\r\n\r\nexport default () => ({\r\n '& tr.noborder': {\r\n '& td': {\r\n border: 'none',\r\n paddingLeft: '0px',\r\n paddingTop: '24px',\r\n '& .pagination-control': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginTop: '5px',\r\n marginBottom: '5px',\r\n marginLeft: gridPaddingComponsation,\r\n\r\n '& .form-control.page-size-selector': {\r\n marginLeft: '5px',\r\n },\r\n '& .pager': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginTop: '0',\r\n marginBottom: '0',\r\n marginLeft: '20px',\r\n '& .nav-button': {\r\n border: 'none',\r\n padding: '0',\r\n minWidth: '20px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n '&.prev': {\r\n marginRight: '10px',\r\n },\r\n '&.next': {\r\n marginLeft: '10px',\r\n },\r\n '&:disabled': {\r\n backgroundColor: '#fff',\r\n },\r\n },\r\n '& .page-number-input': {\r\n marginRight: '5px',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n});\r\n","export default (_, { palette }) => ({\r\n '[role=\"dialog\"].popup-editor': {\r\n padding: '24px 16px',\r\n zIndex: '10',\r\n backgroundColor: '#FFFFFF',\r\n boxShadow: '0px 0px 6px rgba(0, 0, 0, 0.2)',\r\n\r\n '& .form-validation-container[data-property=\"Name\"]': {\r\n width: '200px',\r\n },\r\n },\r\n '[role=\"dialog\"].popup-editor .form-inline .form-group': {\r\n display: 'block !important',\r\n },\r\n '.form-group ~ .form-group': {\r\n marginTop: 16,\r\n },\r\n '.popup-editor .btn ~ .btn': {\r\n marginLeft: 8,\r\n },\r\n '.grid-popupeditor': {\r\n position: 'absolute',\r\n zIndex: '10',\r\n backgroundColor: '#FFFFFF',\r\n boxShadow: '0px 0px 6px rgba(0, 0, 0, 0.2)',\r\n minHeight: 50,\r\n padding: '24px 16px',\r\n },\r\n '.grid-popupeditor.inline-budget-editor-popup': {\r\n paddingTop: '16px',\r\n paddingBottom: '16px',\r\n paddingLeft: '24px',\r\n paddingRight: '16px',\r\n },\r\n '.grid-popupeditor .btn ~ .btn': {\r\n marginLeft: 8,\r\n },\r\n '.grid-popupeditor label': {\r\n display: 'inline-block',\r\n },\r\n '.grid-popupeditor .campaigns-date-picker': {\r\n marginBottom: 16,\r\n position: 'relative',\r\n\r\n '& label': {\r\n position: 'relative',\r\n top: '-5px',\r\n },\r\n\r\n '& input': {\r\n marginRight: '7.5px',\r\n },\r\n\r\n '& > div': {\r\n width: '8em',\r\n },\r\n },\r\n '.grid-popupeditor.final-url-suffix-inline-edit-popup': {\r\n width: 310,\r\n },\r\n '.grid-popupeditor .custom-content': {\r\n marginBottom: 16,\r\n },\r\n '.grid-popupeditor .custom-params-template': {\r\n marginBottom: 16,\r\n width: 456,\r\n '& .flex-row-fixed, & .flex-row-dynamic': {\r\n display: 'inline-block',\r\n\r\n '& .custom-param__key-field': {\r\n display: 'inline-block',\r\n width: '150px',\r\n },\r\n\r\n '& label.control-label': {\r\n margin: '0 5px',\r\n },\r\n },\r\n '& .custom-param-entry': {\r\n display: 'block',\r\n marginBottom: 10,\r\n '& .iconba-Cancel': {\r\n fontSize: '16px',\r\n marginLeft: 5,\r\n cursor: 'pointer',\r\n },\r\n },\r\n },\r\n '.grid-popupeditor.tracking-template-inline-edit-popup': {\r\n width: 450,\r\n '& .charactersRemaining': {\r\n marginTop: 5,\r\n marginBottom: 5,\r\n },\r\n '& .font-error': {\r\n marginTop: 5,\r\n marginBottom: 5,\r\n },\r\n },\r\n '.font-error': {\r\n '& > ul': {\r\n listStyle: 'none',\r\n paddingLeft: 0,\r\n margin: 0,\r\n '& > li': {\r\n margin: '5px 0px 0px 0px',\r\n },\r\n '& > li:empty': {\r\n margin: 0,\r\n },\r\n },\r\n },\r\n '.popup-editor, .grid-popupeditor': {\r\n '& ul.help-block.error, ul[role=\"alert\"]': {\r\n listStyle: 'none',\r\n paddingLeft: 0,\r\n margin: 0,\r\n '& > li': {\r\n margin: '5px 0px 0px 0px',\r\n },\r\n '& > li:empty': {\r\n margin: 0,\r\n },\r\n },\r\n },\r\n '.table-container .grid-editable-cell': {\r\n cursor: 'pointer',\r\n },\r\n '.table-container .glyphicon.glyphicon-pencil': {\r\n fontFamily: '\"MsAds MDL2 Assets\"',\r\n fontStyle: 'normal',\r\n '-webkit-font-smoothing': 'antialiased',\r\n '-moz-osx-font-smoothing': 'grayscale',\r\n fontWeight: 'normal',\r\n fontSize: 16,\r\n lineHeight: 16,\r\n marginLeft: '8px',\r\n },\r\n '.table-container .glyphicon.glyphicon-pencil::before': {\r\n content: '\"\\\\E70F\"',\r\n color: palette.themeDark,\r\n },\r\n '#rejectionContainer > div': {\r\n zIndex: '300',\r\n },\r\n '.table-container .mark-container': {\r\n width: 14,\r\n },\r\n '.table-container .status-row': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n '& .decorated-element': {\r\n marginLeft: 8,\r\n marginRight: 8,\r\n },\r\n },\r\n '.grid-edit-icon.glyphicon-pencil': {\r\n verticalAlign: 'middle',\r\n },\r\n\r\n '#rejectionContainer .popover-view.rejection-reason-container': {\r\n backgroundColor: '#FFFFFF',\r\n boxShadow: '0px 0px 6px rgba(0, 0, 0, 0.2)',\r\n padding: '24px 16px',\r\n width: 300,\r\n },\r\n '#contextual-attribute': {\r\n maxWidth: '350px',\r\n '& .popover-title': {\r\n padding: 'unset',\r\n },\r\n '& .popover-content': {\r\n padding: 'unset',\r\n '& .contextual-content': {\r\n paddingLeft: '10px',\r\n paddingRight: '10px',\r\n paddingTop: '5px',\r\n paddingBottom: '5px',\r\n '& div': {\r\n fontFamily: 'inherit',\r\n fontWeight: 'inherit',\r\n lineHeight: '1.1',\r\n color: '#323130',\r\n paddingTop: '5px',\r\n paddingBottom: '5px',\r\n fontSize: '12px',\r\n '& .iconba-Warning': {\r\n marginLeft: '5px',\r\n marginRight: '5px',\r\n color: '#D83B01',\r\n },\r\n '& .iconba-Completed': {\r\n marginLeft: '5px',\r\n marginRight: '5px',\r\n color: '#107C10',\r\n },\r\n },\r\n },\r\n '& .popover-paged-content__pager': {\r\n margin: 'unset',\r\n },\r\n },\r\n },\r\n // body has default height of 0 as components in it has position: absolute\r\n // give it a height of view port so that grid inline-edit popup can be positioned correctly\r\n body: {\r\n height: '100vh',\r\n },\r\n '.popup-editor .error, .grid-popupeditor .error, .grid-popupeditor .font-error, .k-widget .error, .popup-editor .is-error': {\r\n color: '#A80000',\r\n fontSize: 12,\r\n },\r\n '.bingadsgrid': {\r\n '& .grid-noresult, & .grid-noresult-empty, & .noresult': {\r\n color: palette.neutralSecondary,\r\n fontSize: 26,\r\n lineHeight: '36px',\r\n padding: '20px 0 20px 40px',\r\n whiteSpace: 'nowrap',\r\n },\r\n },\r\n '.table-container .glyphicon.glyphicon-triangle-left': {\r\n fontFamily: '\"MsAds MDL2 Assets\"',\r\n },\r\n '.table-container .glyphicon.glyphicon-triangle-left::before': {\r\n content: '\"\\\\E76B\"',\r\n color: palette.neutralSecondary,\r\n },\r\n '.table-container .btn:disabled .glyphicon.glyphicon-triangle-left::before': {\r\n color: '#BEBBB8',\r\n },\r\n '.table-container .glyphicon.glyphicon-triangle-right': {\r\n fontFamily: '\"MsAds MDL2 Assets\"',\r\n },\r\n '.table-container .glyphicon.glyphicon-triangle-right::before': {\r\n content: '\"\\\\E76C\"',\r\n color: palette.neutralSecondary,\r\n },\r\n '.table-container .btn:disabled .glyphicon.glyphicon-triangle-right::before': {\r\n color: '#BEBBB8',\r\n },\r\n '.table-container .glyphicon.glyphicon-triangle-bottom': {\r\n fontFamily: '\"MsAds MDL2 Assets\"',\r\n },\r\n '.table-container .glyphicon.glyphicon-triangle-bottom::before': {\r\n content: '\"\\\\E70D\"',\r\n color: palette.neutralSecondary,\r\n },\r\n '.table-container .btn:disabled .glyphicon.glyphicon-triangle-bottom::before': {\r\n color: '#BEBBB8',\r\n },\r\n '.k-window-content.k-content': {\r\n outline: 'none',\r\n },\r\n});\r\n","// TODO: Move to a shared location: https://msasg.visualstudio.com/Bing_Ads/_workitems/edit/2318865\r\n// This is temporary and styles are a copy of the styles defined on Campaign/GridViewWrapper,\r\n// which is coupled to campaignUI.\r\nimport getTableStyles from './grid-styles/table';\r\nimport getSubComponentStyles from './grid-styles/sub-component';\r\nimport getGlobalStyles from './grid-styles/global';\r\nimport { gridPaddingLeft } from './grid-styles/variables';\r\n\r\nexport const getGridStyles = (components, { palette = {} }) =>\r\n ({\r\n grid: {\r\n fontFamily: 'Segoe UI',\r\n '& .bingadsgrid': {\r\n paddingLeft: gridPaddingLeft,\r\n },\r\n '& .table-container': {\r\n '& table.table': getTableStyles(components, { palette }),\r\n '&': getSubComponentStyles(components, { palette }),\r\n },\r\n },\r\n '@global': getGlobalStyles(components, { palette }),\r\n });\r\n","export default () => ({\r\n '& tr': {\r\n '& .grid-edit-icon': {\r\n fontSize: '16px',\r\n lineHeight: '16px',\r\n color: '#005A9E', // @shade20: #005a9e;\r\n visibility: 'visible',\r\n position: 'static',\r\n opacity: 0,\r\n\r\n '&:hover': {\r\n cursor: 'pointer',\r\n },\r\n '&:focus': {\r\n visibility: 'visible',\r\n opacity: 100,\r\n },\r\n },\r\n\r\n '&:hover .grid-edit-icon': {\r\n visibility: 'visible',\r\n opacity: 100,\r\n },\r\n },\r\n});\r\n","import PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nimport { gridSelectEditorStyles, gridInlineErrorStyle } from './common-styles';\r\nimport { getGridStyles } from './grid-styles';\r\nimport { tableBorder } from './grid-styles/variables';\r\n\r\nconst getARWGridStyles = (palette = {}) => ({\r\n '& .grid-toolbar .toolbar': {\r\n display: 'flex',\r\n fontWeight: 'normal',\r\n flexDirection: 'row',\r\n alignItems: 'stretch',\r\n '& .toolbar-item:first-child': {\r\n flex: '1 1 auto',\r\n },\r\n '& .toolbar-item': {\r\n width: 'fit-content',\r\n },\r\n '& #filter_quickFilterContainer input': {\r\n paddingLeft: '5px',\r\n width: '250px',\r\n height: '32px',\r\n },\r\n '& #filter_quickFilterContainer button': {\r\n display: 'none',\r\n },\r\n },\r\n '& .editor-control.select-editor': gridSelectEditorStyles,\r\n '& .arw-grid-container': {\r\n fontWeight: 'normal',\r\n ...gridInlineErrorStyle({ palette }),\r\n '& .error-placeholder': {\r\n fontSize: '12px',\r\n color: palette.red,\r\n },\r\n },\r\n '& .grid-nodata-container': {\r\n textAlign: 'center',\r\n fontSize: '20px',\r\n },\r\n});\r\n\r\nconst getARWModalViewStyles = (components, { palette = {} }) => ({\r\n '& span.iconba': {\r\n color: palette.themePrimary,\r\n },\r\n '& .progress-steps-message': {\r\n color: palette.themePrimary,\r\n },\r\n '& .modal-footer': {\r\n paddingTop: '25px',\r\n },\r\n '& .message': {\r\n marginBottom: '15px',\r\n },\r\n});\r\n\r\nconst getErrorLabelStyles = (components, { palette = {} }) => ({\r\n '& div.error': {\r\n fontWeight: 'normal',\r\n color: palette.red,\r\n },\r\n});\r\n\r\nexport const getFinalReviewPageStyles = (components, { palette = {} }) => ({\r\n finalReviewPageContainer: {\r\n padding: '15px',\r\n '& .review-summary-info': {\r\n paddingTop: '10px',\r\n },\r\n },\r\n arwModalViewContainer: getARWModalViewStyles(components, { palette }),\r\n});\r\n\r\nexport const getManagerInputPageStyles = (components, { palette = {} }) => ({\r\n managerAccountInputContainer: {\r\n padding: '15px',\r\n '& .arw-info-tile-container': {\r\n justifyContent: 'space-between',\r\n maxWidth: '95%',\r\n },\r\n ...getErrorLabelStyles(components, { palette }),\r\n },\r\n});\r\n\r\nexport const getSetupBillingPageStyles = (components, { palette = {} }) => ({\r\n ...getGridStyles(components, { palette }),\r\n setupBillingPageContainer: {\r\n padding: '15px',\r\n\r\n '& .title': {\r\n fontWeight: 600,\r\n margin: '5px 0',\r\n },\r\n\r\n '& .dropdown-container': {\r\n position: 'relative',\r\n\r\n '& span': {\r\n fontWeight: 'normal',\r\n },\r\n },\r\n\r\n '& #insertion-order-container': {\r\n fontSize: '12px',\r\n '& .bulk-create-row': {\r\n display: 'flex',\r\n },\r\n '& .bingads-popover-wrapper': {\r\n display: 'inline-block',\r\n },\r\n },\r\n },\r\n arwModalViewContainer: {\r\n ...getARWModalViewStyles(components, { palette }),\r\n '& .modal-content': {\r\n maxWidth: '550px',\r\n width: '550px',\r\n },\r\n },\r\n});\r\n\r\nexport const getReviewBillingPageStyles = (components, { palette = {} }) => ({\r\n ...getGridStyles(components, { palette }),\r\n arwModalViewContainer: {\r\n ...getARWModalViewStyles(components, { palette }),\r\n '& .modal-content': {\r\n maxWidth: '650px',\r\n width: '600px',\r\n },\r\n },\r\n reviewBillingPageContainer: {\r\n padding: '15px',\r\n ...getARWGridStyles(palette),\r\n '& .title': {\r\n fontWeight: 600,\r\n margin: '5px 0',\r\n },\r\n },\r\n});\r\n\r\nexport const getReviewLinkingPageStyles = (components, { palette = {} }) => ({\r\n ...getGridStyles(components, { palette }),\r\n reviewLinkingPageContainer: {\r\n padding: '15px',\r\n ...getARWGridStyles(palette),\r\n '& .review-linking-actions label': {\r\n display: 'inline-block',\r\n paddingLeft: '5px',\r\n verticalAlign: 'top',\r\n fontWeight: 'normal',\r\n },\r\n '& input[type=\"radio\"]::before, input[type=\"radio\"]::after': {\r\n content: 'none',\r\n },\r\n },\r\n arwModalViewContainer: getARWModalViewStyles(components, { palette }),\r\n});\r\n\r\nexport const getTakeoverBillingPageStyles = (components, { palette = {} }) => ({\r\n ...getGridStyles(components, { palette }),\r\n takeoverBillingPageContainer: {\r\n padding: '15px',\r\n ...getARWGridStyles(palette),\r\n '& .takeover-billing-actions label': {\r\n display: 'inline-block',\r\n paddingLeft: '5px',\r\n verticalAlign: 'top',\r\n fontWeight: 'normal',\r\n },\r\n '& input[type=\"radio\"]::before, input[type=\"radio\"]::after': {\r\n content: 'none',\r\n },\r\n },\r\n});\r\n\r\nexport const getReviewUETTagsPageStyles = (components, { palette = {} }) => ({\r\n ...getGridStyles(components, { palette }),\r\n reviewUETTagsPageContainer: {\r\n padding: '15px',\r\n ...getARWGridStyles(palette),\r\n '& .table-container table.table tbody tr': {\r\n '& td:nth-child(1), td:nth-child(2)': {\r\n borderRight: tableBorder,\r\n },\r\n },\r\n '& .table-container table.table thead.header tr': {\r\n '& th:nth-child(1), th:nth-child(2)': {\r\n borderRight: tableBorder,\r\n },\r\n },\r\n '& .title': {\r\n fontWeight: 600,\r\n margin: '5px 0',\r\n },\r\n '& .glyphicon-alert': {\r\n color: '#ffa500',\r\n },\r\n '& .impact-lose-access-account': {\r\n lineHeight: '32px',\r\n },\r\n '& .uet-warning-msg': {\r\n marginBottom: 15,\r\n },\r\n '& .impackt-list': {\r\n marginBottom: 0,\r\n 'padding-inline-start': '20px',\r\n '& li': {\r\n whiteSpace: 'nowrap',\r\n },\r\n },\r\n '& .button-list': {\r\n lineHeight: '32px',\r\n },\r\n },\r\n});\r\n\r\nexport const getSummaryPaneStyles = (components, { palette = {} }) => ({\r\n summaryPaneContainer: {\r\n padding: '15px',\r\n backgroundColor: palette.white,\r\n '& .btn-link': {\r\n background: 'none!important',\r\n border: 'none!important',\r\n color: palette.themePrimary,\r\n cursor: 'pointer',\r\n },\r\n '& .form-group': {\r\n display: 'flex',\r\n },\r\n '& .arw-label-title': {\r\n fontWeight: 'normal',\r\n flex: '1 1 auto',\r\n },\r\n '& .arw-label-value': {\r\n fontWeight: 'normal',\r\n float: 'right',\r\n },\r\n '& .download-summary-link': {\r\n listStyle: 'none',\r\n '& .glyphicon-download': {\r\n paddingRight: '5px',\r\n },\r\n },\r\n '& .popover-btn': {\r\n padding: '0 4px',\r\n },\r\n },\r\n});\r\n\r\nexport const getInfoTileStyles = (components, { palette = {} }) => ({\r\n infoTileContainer: {\r\n padding: '5px',\r\n outline: `solid 1px ${palette.neutralQuaternaryAlt}`,\r\n boxShadow: '0px 4.8px 10px rgba(0, 0, 0, 0.2), 0px 25.6px 57.6px rgba(0, 0, 0, 0)',\r\n textAlign: 'center',\r\n width: '250px',\r\n maxWidth: '22%',\r\n flex: '1 1 auto',\r\n\r\n '& .glyphicon': {\r\n color: palette.themePrimary,\r\n paddingTop: '10px',\r\n fontSize: '20px',\r\n },\r\n '& .info-tile-title': {\r\n padding: '10px',\r\n textAlign: 'left',\r\n },\r\n '& .info-tile-details': {\r\n padding: '10px',\r\n fontWeight: 'normal',\r\n textAlign: 'left',\r\n },\r\n },\r\n});\r\n\r\nexport const getBulkErrorViewStyles = (components, { palette = {} }) => ({\r\n bulkErrorViewContainer: {\r\n marginBottom: '15px',\r\n marginTop: '15px',\r\n '& .alert-info': {\r\n margin: '2px',\r\n '& span': {\r\n marginRight: '10px',\r\n },\r\n },\r\n '& .error-info': {\r\n color: palette.red,\r\n },\r\n },\r\n});\r\n\r\nexport const bulkErrorViewClassesProps =\r\n PropTypes.shape(_.mapObject(getBulkErrorViewStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const infoTileClassesProps =\r\n PropTypes.shape(_.mapObject(getInfoTileStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const managerInputPageClassesProps =\r\n PropTypes.shape(_.mapObject(getManagerInputPageStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const reviewLinkingPageClassesProps =\r\n PropTypes.shape(_.mapObject(getReviewLinkingPageStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const takeoverBillingPageClassesProps =\r\n PropTypes.shape(_.mapObject(getTakeoverBillingPageStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const finalReviewPageClassesProps =\r\n PropTypes.shape(_.mapObject(getFinalReviewPageStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const setupBillingPageClassesProps =\r\n PropTypes.shape(_.mapObject(getSetupBillingPageStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const reviewBillingPageClassesProps =\r\n PropTypes.shape(_.mapObject(getReviewBillingPageStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const reviewUETTagsPageClassesProps =\r\n PropTypes.shape(_.mapObject(getReviewUETTagsPageStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const summaryPaneClassesProps =\r\n PropTypes.shape(_.mapObject(getSummaryPaneStyles({}, {}), () => PropTypes.string));\r\n","import PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nexport const getAccountsPopoverStyles = (components, { palette = {} }) => ({\r\n accountsPopover: {\r\n position: 'absolute!important',\r\n top: '0',\r\n right: '10px',\r\n\r\n '& .ba-search-box': {\r\n marginBottom: '15px',\r\n marginTop: '15px',\r\n },\r\n\r\n '& .modal-dialog': {\r\n width: '400px',\r\n padding: '15px',\r\n position: 'absolute!important',\r\n right: '0',\r\n left: 'auto',\r\n top: '0',\r\n height: 'calc(100vh - 60px)',\r\n pointerEvents: 'auto',\r\n\r\n '& .cancel-button': {\r\n marginTop: '25px',\r\n },\r\n\r\n '& .account-info-tile': {\r\n padding: '5px',\r\n display: 'flex',\r\n\r\n '& .account-name': {\r\n textOverflow: 'ellipsis',\r\n maxWidth: '180px',\r\n flex: '1 1 auto',\r\n overflow: 'hidden',\r\n listStyle: 'none',\r\n paddingTop: '7px',\r\n },\r\n\r\n '& .manager-name': {\r\n float: 'right',\r\n flex: '1 1 auto',\r\n textOverflow: 'ellipsis',\r\n maxWidth: '180px',\r\n textAlign: 'right',\r\n overflow: 'hidden',\r\n listStyle: 'none',\r\n paddingTop: '7px',\r\n },\r\n\r\n '& .remove-account': {\r\n float: 'right',\r\n flex: '1 1 auto',\r\n listStyle: 'none',\r\n background: 'none!important',\r\n border: 'none!important',\r\n color: palette.themePrimary,\r\n cursor: 'pointer',\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const accountsPopoverClassesProps =\r\n PropTypes.shape(_.mapObject(getAccountsPopoverStyles({}, {}), () => PropTypes.string));\r\n","import PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nexport const getEntityPopoverStyles = width => ({\r\n entityPopover: {\r\n position: 'absolute!important',\r\n top: '0',\r\n right: '10px',\r\n\r\n '& .ba-search-box': {\r\n marginBottom: '15px',\r\n marginTop: '15px',\r\n },\r\n\r\n '& .modal-dialog': {\r\n width: width || '400px',\r\n maxWidth: width || '450px',\r\n padding: '15px',\r\n position: 'absolute!important',\r\n right: '0',\r\n left: 'auto',\r\n top: '0',\r\n height: 'calc(100vh - 60px)',\r\n pointerEvents: 'auto',\r\n\r\n '& .cancel-button': {\r\n marginTop: '25px',\r\n },\r\n\r\n '& .entity-info-tile': {\r\n padding: '7px 0',\r\n\r\n '& .enity-name': {\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const entityPopoverClassesProps =\r\n PropTypes.shape(_.mapObject(getEntityPopoverStyles({}, {}), () => PropTypes.string));\r\n","export const themePalette = {\r\n neutralLight: '#edebe9',\r\n neutralLighter: '#f3f2f1',\r\n neutralPrimary: '#323130',\r\n neutralQuaternaryAlt: '#e1dfdd',\r\n neutralSecondary: '#605e5c',\r\n neutralSecondaryAlt: '#8a8886',\r\n neutralTertiary: '#a19f9d',\r\n themeDark: '#005a9e',\r\n themeDarkAlt: '#106ebe',\r\n themeDarker: '#004578',\r\n themePrimary: '#0078d4',\r\n themeLight: '#c7e0f4',\r\n white: '#ffffff',\r\n red: '#d80026',\r\n};\r\n","import _ from 'underscore';\r\n\r\nexport const convertAccountModelToServerContext = (account) => {\r\n /* eslint-disable max-len */\r\n const linkedManagers = _.filter(account.AccountCustomerRelations, rel => rel.isManagingCustomer === true);\r\n const billToManager = _.find(account.AccountCustomerRelations, rel => rel.isBillToCustomer === true);\r\n const parentManager = _.find(account.AccountCustomerRelations, rel => rel.isParentCustomer === true);\r\n\r\n return {\r\n Id: account.id,\r\n Name: account.Name,\r\n Number: account.Number,\r\n CurrencyType: account.CurrencyType,\r\n ParentManager: {\r\n Id: parentManager.RelatedToCustomerId,\r\n Name: parentManager.RelatedToCustomerName,\r\n Number: parentManager.RelatedToCustomerNumber,\r\n },\r\n BillToManager: {\r\n Id: billToManager.RelatedToCustomerId,\r\n Name: billToManager.RelatedToCustomerName,\r\n Number: billToManager.RelatedToCustomerNumber,\r\n PaymentSettingText: account.PaymentOption,\r\n PaymentMethodText: account.PreferredBillToPaymentInstrumentId,\r\n BillTo: true,\r\n },\r\n BillToChange: {\r\n PaymentInstrumentId: null,\r\n InsertionOrder: null,\r\n PrepayConfig: null,\r\n },\r\n LinkedManagers: _.map(linkedManagers, manager => ({\r\n Id: manager.RelatedToCustomerId,\r\n Name: manager.RelatedToCustomerName,\r\n Number: manager.RelatedToCustomerNumber,\r\n Unlink: null,\r\n })),\r\n };\r\n};\r\n","import { Constants } from '@bingads-webui-clientcenter/entity-utils';\r\n\r\nexport const transformMtIoToUIFormat = ({\r\n FromDate,\r\n ThruDate,\r\n SpendCapAmount,\r\n AgencyIdOrPo,\r\n FriendlyName,\r\n Comment,\r\n Status,\r\n}) => ({\r\n ioStartDate: FromDate,\r\n ioEndDate: ThruDate,\r\n ioBudget: SpendCapAmount,\r\n ioPurchaseOrder: AgencyIdOrPo,\r\n ioOrderName: FriendlyName,\r\n ioNotes: Comment,\r\n ioStatus: Status,\r\n});\r\n\r\nexport const transformIoUIToMtFormat = ({\r\n ioStartDate,\r\n ioEndDate,\r\n ioBudget,\r\n ioPurchaseOrder,\r\n ioOrderName,\r\n ioNotes,\r\n}) => ({\r\n FromDate: ioStartDate,\r\n ThruDate: ioEndDate,\r\n SpendCapAmount: ioBudget,\r\n AgencyIdOrPo: ioPurchaseOrder,\r\n FriendlyName: ioOrderName,\r\n Comment: ioNotes,\r\n});\r\n\r\nexport const areUiInsertionOrdersEqual = (ioA, ioB) =>\r\n ioA.ioStartDate.getTime() === ioB.ioStartDate.getTime() &&\r\n ioA.ioEndDate.getTime() === ioB.ioEndDate.getTime() &&\r\n ioA.ioBudget === ioB.ioBudget &&\r\n ioA.ioNotes === ioB.ioNotes &&\r\n ioA.ioOrderName === ioB.ioOrderName &&\r\n ioA.ioPurchaseOrder === ioB.ioPurchaseOrder;\r\n\r\nexport const isUiIoSet = io =>\r\n io.ioStartDate ||\r\n io.ioEndDate ||\r\n io.ioBudget ||\r\n io.ioNotes ||\r\n io.ioOrderName ||\r\n io.ioPurchaseOrder;\r\n\r\nexport const areIoRequiredFieldsSet = io =>\r\n io.ioStartDate &&\r\n io.ioEndDate &&\r\n io.ioBudget;\r\n\r\nexport const couldSetInsertionOrder = (paymentOptionId, paymentInstrumentId) =>\r\n paymentOptionId === Constants.PaymentOptionId.Invoice &&\r\n !!paymentInstrumentId;\r\n","import _ from 'underscore';\r\nimport { transformMtIoToUIFormat, transformIoUIToMtFormat } from './io-utils';\r\n\r\nexport const toClientSideBillingSetting = (billingSetting) => {\r\n if (!billingSetting) {\r\n return {};\r\n }\r\n\r\n const {\r\n NewBillToCustomerId,\r\n NewBillToCustomerName,\r\n NewBillToCustomerNumber,\r\n NewPaymentInstrumentId,\r\n NewPaymentOptionId,\r\n InsertionOrder,\r\n TopUpAmount,\r\n EstimatedTaxRate,\r\n IsRecurringPayment,\r\n } = billingSetting.BillToChangeSetting;\r\n\r\n if (InsertionOrder &&\r\n _.isString(InsertionOrder.FromDate) &&\r\n _.isString(InsertionOrder.ThruDate)\r\n ) {\r\n InsertionOrder.FromDate = new Date(InsertionOrder.FromDate);\r\n InsertionOrder.ThruDate = new Date(InsertionOrder.ThruDate);\r\n }\r\n const formattedInsertionOrder = InsertionOrder ? transformMtIoToUIFormat(InsertionOrder) : null;\r\n\r\n return {\r\n billToCustomer: {\r\n Id: NewBillToCustomerId,\r\n Name: NewBillToCustomerName,\r\n Number: NewBillToCustomerNumber,\r\n },\r\n paymentOptionId: NewPaymentOptionId,\r\n paymentInstrumentId: NewPaymentInstrumentId,\r\n insertionOrder: formattedInsertionOrder,\r\n prepayConfig: {\r\n addFundsAmount: TopUpAmount,\r\n estimatedTaxRate: EstimatedTaxRate || 0,\r\n isAutoRechargeEnabled: IsRecurringPayment,\r\n isValid: true,\r\n },\r\n };\r\n};\r\n\r\nexport const toServerSideBillingSetting = ({\r\n billToCustomer,\r\n paymentOptionId,\r\n paymentInstrumentId,\r\n insertionOrder,\r\n prepayConfig,\r\n}) => {\r\n const { Id, Name, Number } = billToCustomer;\r\n return {\r\n NewBillToCustomerId: Id,\r\n NewBillToCustomerName: Name,\r\n NewBillToCustomerNumber: Number,\r\n NewPaymentOptionId: paymentOptionId,\r\n NewPaymentInstrumentId: paymentInstrumentId || 0,\r\n InsertionOrder: insertionOrder ? transformIoUIToMtFormat(insertionOrder) : null,\r\n TopUpAmount: prepayConfig ? prepayConfig.addFundsAmount : 0,\r\n IsRecurringPayment: prepayConfig ? prepayConfig.isAutoRechargeEnabled : false,\r\n };\r\n};\r\n","export const BillToActionTypes = {\r\n SELECT: 0,\r\n CURRENT: 1,\r\n NEW: 2,\r\n};\r\n\r\nexport const LinkActionTypes = {\r\n SELECT: 0,\r\n UNLINK: 1,\r\n LINK: 2,\r\n};\r\n\r\n// Should be consistent with AccountReparentingJobStatus on Server Side\r\nexport const JobStatusTypes = {\r\n Draft: 0,\r\n WaitingAccept: 1,\r\n Accepted: 51,\r\n Declined: 52,\r\n WaitingIOApproval: 53,\r\n IOApproved: 54,\r\n IODeclined: 55,\r\n Created: 81,\r\n InProgress: 82,\r\n Failed: 83,\r\n Succeeded: 84,\r\n Deleted: 85,\r\n PostProcessingInProgress: 86,\r\n PostProcessingFailure: 87,\r\n};\r\n\r\n// Should be consistent with AccountReparentingJobUpdateType on Server Side\r\nexport const JobUpdateTypes = {\r\n StatusUpdate: 1,\r\n TargetCustomerUpdate: 2,\r\n CustomerErrorsUpdate: 4,\r\n AccountSettingsUpdate: 8,\r\n ReparentingAccountDelete: 16,\r\n DefaultBillingSettingUpdate: 32,\r\n};\r\n\r\nexport const notSetPaymentOptionId = 0;\r\nexport const notSetPaymentInstrumentId = null; // be consistent with the one in what-you-pay-with\r\n\r\nexport const defaultPrepayConfig = {\r\n addFundsAmount: 0,\r\n estimatedTaxRate: 0,\r\n isAutoRechargeEnabled: false,\r\n isValid: true,\r\n};\r\n\r\nexport const INSTRUMENTATION_SYSTEM_NAME = 'campaign';\r\nexport const INSTRUMENTATION_SUB_SYSTEM = 'accountreparenting';\r\n","import { Constants } from '@bingads-webui-clientcenter/entity-utils';\r\n\r\nexport const isInvoicePaymentOption = paymentOptionId =>\r\n paymentOptionId === Constants.PaymentOptionId.Invoice;\r\n\r\nexport const isPrepayPaymentOption = paymentOptionId =>\r\n paymentOptionId === Constants.PaymentOptionId.Prepay;\r\n\r\nexport const isThresholdPaymentOption = paymentOptionId =>\r\n paymentOptionId === Constants.PaymentOptionId.Threshold;\r\n","export const stringContains = (textValue, searchValue) =>\r\n textValue.indexOf(searchValue) !== -1;\r\n","/* eslint-disable no-script-url */\r\n/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { mapObject, constant, noop } from 'underscore';\r\nimport {\r\n Panel,\r\n PanelGroup,\r\n} from '@bingads-webui-react/primitive';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { withPreference } from '@bingads-webui-react/preference-context';\r\nimport { HelpLink } from '@bingads-webui-react/help-link';\r\nimport { curlyTemplate } from '@bingads-webui-universal/primitive-utilities';\r\nimport { getAccountsWelcomeBarStyles } from './styles/accounts-welcome-bar-styles';\r\n\r\nconst preferenceName = 'WebApp.CampaignUI.ShowHierarchyPanel';\r\n\r\nconst AccountsWelcomeBar = ({\r\n i18n,\r\n classes: { welcomePanelAccordion },\r\n customerName,\r\n permissions: { IsAccountLevelImportStatusGridEnabled },\r\n preferenceService,\r\n onExpanded,\r\n onCollapsed,\r\n}) => {\r\n const defaultPreference = { showHierarchyPanel: true };\r\n const preference = preferenceService.findByNameAtUserLevel(preferenceName);\r\n const { showHierarchyPanel } = preference ? preference.Data : /* istanbul ignore next */ defaultPreference;\r\n const [expanded, setExpanded] = useState(showHierarchyPanel);\r\n const titleFormatter = curlyTemplate(i18n.getString(_TL_('Welcome back {{customerName}}! Here\\'s your Microsoft Advertising Accounts page')));\r\n const formattedTitle = titleFormatter({ customerName });\r\n\r\n const onSelect = () => {\r\n setExpanded(!expanded);\r\n preferenceService.setAtUserLevel({ Name: preferenceName, Data: { showHierarchyPanel: !expanded } });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {formattedTitle}\r\n \r\n \r\n
\r\n
\r\n {i18n.getString(_TL_('The Accounts page is the centralized view of your ad accounts and the manager accounts they belong to. Here, you can:'))}\r\n
    \r\n
  • {i18n.getString(_TL_('Build your hierarchy by creating new accounts and by linking to existing accounts and manager accounts'))}
  • \r\n
  • {IsAccountLevelImportStatusGridEnabled ?\r\n /* istanbul ignore next */ i18n.getString(_TL_('See top-level performance, notifications, and imports by account')) :\r\n i18n.getString(_TL_('See top-level performance and notifications by account'))}\r\n
  • \r\n
  • {i18n.getString(_TL_('Drill down to individual accounts to view campaign details'))}
  • \r\n
\r\n {i18n.getString(_TL_('Learn more about the Accounts page'))}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nAccountsWelcomeBar.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n classes: PropTypes.shape(mapObject(\r\n getAccountsWelcomeBarStyles({}, {}),\r\n constant(PropTypes.string.isRequired)\r\n )).isRequired,\r\n customerName: PropTypes.string.isRequired,\r\n permissions: PropTypes.shape({\r\n IsAccountLevelImportStatusGridEnabled: PropTypes.bool,\r\n }).isRequired,\r\n preferenceService: PropTypes.shape({\r\n setAtUserLevel: PropTypes.func,\r\n findByNameAtUserLevel: PropTypes.func,\r\n }).isRequired,\r\n onExpanded: PropTypes.func,\r\n onCollapsed: PropTypes.func,\r\n};\r\n\r\nAccountsWelcomeBar.defaultProps = {\r\n onExpanded: noop,\r\n onCollapsed: noop,\r\n};\r\n\r\nexport const StyledAccountsWelcomeBar = withDefaultStyles(withPreference(AccountsWelcomeBar), getAccountsWelcomeBarStyles);\r\n","import HierarchyVisualizationImg from '../../media/HierarchyVisualization.svg';\r\n\r\nexport const getAccountsWelcomeBarStyles = (_, { palette = {} }) => ({\r\n welcomePanelAccordion: {\r\n paddingLeft: 32,\r\n paddingRight: 32,\r\n marginBottom: 0,\r\n '& .panel-heading > .panel-title > a': {\r\n position: 'relative',\r\n color: palette.themePrimary,\r\n fontSize: 18,\r\n paddingLeft: 38,\r\n textDecoration: 'none',\r\n\r\n '&:after': {\r\n position: 'absolute',\r\n top: 8,\r\n left: 0,\r\n float: 'none',\r\n fontSize: 18,\r\n padding: 0,\r\n marginRight: 20,\r\n },\r\n },\r\n\r\n '& .panel-collapse': {\r\n '& .instruction-body-text': {\r\n marginTop: 27,\r\n marginBottom: 27,\r\n width: '60%',\r\n float: 'left',\r\n fontSize: 14,\r\n lineHeight: '24px',\r\n color: palette.black,\r\n\r\n '& ul': {\r\n marginTop: 24,\r\n marginBottom: 24,\r\n paddingLeft: 20,\r\n },\r\n },\r\n\r\n '& .instruction-visualization-image': {\r\n backgroundImage: `url(\"${HierarchyVisualizationImg}\")`,\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'right center',\r\n marginTop: 20,\r\n marginBottom: 20,\r\n marginLeft: '60%',\r\n height: 211,\r\n },\r\n },\r\n '& .clearfix::after': {\r\n content: '',\r\n clear: 'both',\r\n display: 'table',\r\n },\r\n },\r\n});\r\n","import _ from 'underscore';\r\n\r\nexport const learnMoreHelpIds = {\r\n Hold: 'app50043',\r\n PendingPaymentMethod: 'app50054',\r\n PausedZeroBalance: 'app50053',\r\n PausedNoValidIO: 'app50035',\r\n PendingNewCustomer: 'app54626',\r\n Processing: 'app50051',\r\n AccountVerificationHold: 'app54799',\r\n};\r\n\r\nexport const contactSupport = [\r\n 'BillToCustomerTradeScreeningUnderReview_BillTo',\r\n 'BillToCustomerTradeScreeningDataIssue_BillTo',\r\n 'BillToCustomerTradeScreeningLicenseRequired_BillTo',\r\n];\r\n\r\nexport const externalLinkReasons = [\r\n 'BillToCustomerTradeScreeningDataIssue_Own',\r\n 'AccountTradeScreeningDataIssue',\r\n];\r\n\r\nexport const getAlertActionUrl = ({\r\n ccUrlBuilders: {\r\n BaseUrlBuilder,\r\n CreditHoldUrlBuilder,\r\n PaymentmethodsUrlBuilder,\r\n PaymentUrlBuilder,\r\n InsertionOrderUrlBuilder,\r\n AccountSettingsUrlBuilder,\r\n AccountUrlBuilder,\r\n TradeScreeningTransformationUrlBuilder,\r\n },\r\n aid,\r\n}) => ({\r\n // cc/CreditHold/Dashboard\r\n Hold: new CreditHoldUrlBuilder().action('dashboard').params({ aid }).url,\r\n // cc/PaymentMethods\r\n PendingPaymentMethod: new PaymentmethodsUrlBuilder().params({ aid }).url,\r\n // cc/Payment/Prepay\r\n PausedZeroBalance: new PaymentUrlBuilder().action('prepay').params({ aid }).url,\r\n // cc/InsertionOrder, extra params isPendingFilterSet=False\r\n PausedNoValidIO: new InsertionOrderUrlBuilder().params({ aid, isPendingFilterSet: 'False' }).url,\r\n // cc/Settings/Account/edit\r\n AccountMissingVATId: new AccountSettingsUrlBuilder().action('edit').params({ aid }).url,\r\n AccountMissingABL: new AccountSettingsUrlBuilder().action('edit').params({ aid }).url,\r\n // cc/settings/VerificationHub\r\n AccountVerificationHold: new BaseUrlBuilder('settings/VerificationHub').params({ aid }).url,\r\n // cc/Account/TakeOverBilling\r\n BillToCustomerTradeScreeningUnderReview_BillTo: new AccountUrlBuilder().action('TakeOverBilling').params({ aid }).url,\r\n BillToCustomerTradeScreeningDataIssue_BillTo: new AccountUrlBuilder().action('TakeOverBilling').params({ aid }).url,\r\n BillToCustomerTradeScreeningLicenseRequired_BillTo: new AccountUrlBuilder().action('TakeOverBilling').params({ aid }).url,\r\n // cc/MasterData/ManagementPortal\r\n AccountTradeScreeningDataIssue: new TradeScreeningTransformationUrlBuilder().action('ManagementPortal').params({ from: 'aid_accountSummary' }).url,\r\n BillToCustomerTradeScreeningDataIssue_Own: new TradeScreeningTransformationUrlBuilder().action('ManagementPortal').params({ from: 'cid_accountSummary' }).url,\r\n});\r\n\r\nconst alertReasonIdList = [\r\n 'NotSet',\r\n 'PausedDueToSystemIssue',\r\n 'PausedZeroBalance',\r\n 'PausedNoValidIO',\r\n 'Processing',\r\n 'PendingPaymentMethod',\r\n 'PendingNewCustomer',\r\n 'Inactive',\r\n 'Hold',\r\n 'Deleted',\r\n 'SystemNoSpendDeactivated',\r\n 'AccountMissingVATId',\r\n 'AccountVerificationHold',\r\n 'AccountTradeScreeningUnderReview',\r\n 'AccountTradeScreeningDataIssue',\r\n 'BillToCustomerTradeScreeningUnderReview',\r\n 'BillToCustomerTradeScreeningDataIssue',\r\n 'AccountTradeScreeningLicenseRequired',\r\n 'BillToCustomerTradeScreeningLicenseRequired',\r\n 'AccountMissingABL',\r\n];\r\n\r\nconst accountInactiveCauseCodeList = [\r\n 'NotSet',\r\n 'PausedDueToSystemIssue',\r\n 'PausedZeroBalance',\r\n 'PausedNoValidIO',\r\n 'Processing',\r\n 'PendingPaymentMethod',\r\n 'PendingNewCustomer',\r\n 'Inactive',\r\n 'Hold',\r\n 'AccountLifecycleStatusSuspended',\r\n 'AccountLifecycleStatusDraft',\r\n 'AccountLifecycleStatusDeleted',\r\n 'AccountLifecycleStatusUserPause',\r\n 'AccountFinancialStatusProposed',\r\n 'AccountFinancialStatusWriteOff',\r\n 'AccountFinancialStatusTaxOnHold',\r\n 'AccountFinancialStatusUserHold',\r\n 'AccountFinancialStatusPendingCreditCheck',\r\n 'AccountFinancialStatusSoldToOnly',\r\n 'AdvertiserCustomerLifecycleStatusDraft',\r\n 'AdvertiserCustomerLifecycleStatusInactive',\r\n 'AdvertiserCustomerLifecycleStatusDeleted',\r\n 'AdvertiserCustomerFraudStatusFraud',\r\n 'BillToCustomerLifecycleStatusDraft',\r\n 'BillToCustomerLifecycleStatusInactive',\r\n 'BillToCustomerLifecycleStatusDeleted',\r\n 'BillToCustomerFinancialStatusProposalsOnly',\r\n 'BillToCustomerFinancialStatusSoldToOnly',\r\n 'BillToCustomerFraudStatusFraud',\r\n 'AccountLifecycleStatusNotSet',\r\n 'AccountFinancialStatusNotSet',\r\n 'AdvertiserCustomerLifecycleStatusNotSet',\r\n 'AdvertiserCustomerFraudStatusNotSet',\r\n 'BillToCustomerLifecycleStatusNotSet',\r\n 'BillToCustomerFinancialStatusNotSet',\r\n 'BillToCustomerFraudStatusNotSet',\r\n 'UserDeleted',\r\n 'SystemNoSpendDeactivated',\r\n 'AccountMissingVATId',\r\n 'AccountVerificationHold',\r\n 'PolicyViolation',\r\n];\r\n\r\nexport const alertReasonId = _.invert(alertReasonIdList);\r\n\r\nexport const alertPausedReasons = ['Inactive', 'PausedDueToSystemIssue', 'Deleted'];\r\n\r\nexport const accountInactiveCauseCode = _.invert(accountInactiveCauseCodeList);\r\n\r\nexport const i18nPrefixes = {\r\n alertCategoryPrefix: 'AccountAlertCategory',\r\n alertDescriptionPrefix: 'AccountAlertDescription',\r\n alertReasonPrefix: 'AccountAlertReason',\r\n alertActionPrefix: 'AccountAlertAction',\r\n};\r\n\r\nexport const popupId = 'accountAlertDetailsContainer';\r\n","export const legacyKeysMap = {\r\n AccountAlertCategory_1: _TL_('Paused: System issue.'),\r\n AccountAlertCategory_2: _TL_('Paused: Zero balance.'),\r\n AccountAlertCategory_3: _TL_('Paused: No valid IO.'),\r\n AccountAlertCategory_4: _TL_('Processing.'),\r\n AccountAlertCategory_5: _TL_('Pending: Add payment method.'),\r\n AccountAlertCategory_6: _TL_('Pending: New manager account.'),\r\n AccountAlertCategory_7: _TL_('Inactive account.'),\r\n AccountAlertCategory_8: _TL_('Hold.'),\r\n AccountAlertCategory_9: _TL_('Deleted.'),\r\n AccountAlertCategory_11: _TL_('No valid VAT ID.'),\r\n AccountAlertCategory_12: _TL_('On hold: Advertiser identity verification'),\r\n AccountAlertCategory_12_CN: _TL_('On hold: Update your verification status'),\r\n AccountAlertCategory_13: _TL_('On hold: Wait for up to 48 hours.'),\r\n AccountAlertCategory_14: _TL_('On hold: Edit your information.'),\r\n AccountAlertCategory_15: _TL_('On hold.'),\r\n AccountAlertCategory_16: _TL_('On hold: Need your action.'),\r\n AccountAlertCategory_17: _TL_('On hold: Subject to mandates.'),\r\n AccountAlertCategory_18: _TL_('On hold: Subject to mandates (MA).'),\r\n AccountAlertCategory_19: _TL_('On hold: Missing ABL.'),\r\n AccountAlertDescription_Hold: _TL_('We tried to process a payment for your account, but the charges were not authorized. You need to remove the hold before your ads can run.'),\r\n AccountAlertDescription_Inactive: _TL_('This account is inactive. To reactivate the account, please contact support.'),\r\n AccountAlertDescription_PausedDueToSystemIssue: _TL_('Your account has been paused because of a system issue. To fix this issue, please contact support.'),\r\n AccountAlertDescription_PausedNoValidIO: _TL_('You need an active insertion order before your ads can run.'),\r\n AccountAlertDescription_PausedZeroBalance: _TL_('You need to add funds to this prepay account before your ads can run.'),\r\n AccountAlertDescription_PendingNewCustomer: _TL_('As a new customer, please make sure that you have completed account set up, including creating a campaign and adding a payment method. Note: After you complete set up, it can take up to 15 minutes before your ads can run.'),\r\n AccountAlertDescription_PendingPaymentMethod: _TL_('You need to add a primary payment method before your ads can run.'),\r\n AccountAlertDescription_Processing: _TL_('You have unlinked from an agency, and we are settling any outstanding charges. This can take up to 3 hours. During this time, your ads are not running and you cannot make changes to your accounts.'),\r\n AccountAlertDescription_Deleted: _TL_('This account has been deleted. To activate the account, please contact support.'),\r\n AccountAlertDescription_AccountMissingVATId: _TL_('You need a VAT ID to ensure your ads can run.'),\r\n AccountAlertDescription_AccountVerificationHold: _TL_('You need to update your advertiser identity verification request.'),\r\n AccountAlertDescription_AccountVerificationHold_CN: _TL_('You need to update your advertiser identity verification status or other required qualifications to remove the account hold.'),\r\n AccountAlertDescription_AccountTradeScreeningUnderReview: _TL_('The financial status of this account is on hold. It could take up to 48 hours for us to complete your account’s review process. Please wait and try again later.'),\r\n AccountAlertDescription_AccountTradeScreeningLicenseRequired: _TL_('Your account has been identified as subject to mandates and Microsoft Advertising is obligated by law to take action and put you on hold. If you require any further information on this, we recommend you seek external counsel.'),\r\n AccountAlertDescription_AccountTradeScreeningDataIssue: _TL_('The financial status of this account is on hold. To remove this hold, please edit or complete your account information.'),\r\n AccountAlertDescription_BillToCustomerTradeScreeningUnderReview_BillTo: _TL_('This account and its associated ads are paused because the bill-to customer is on hold. To enable your ads, please change the bill-to customer or contact Support.'),\r\n AccountAlertDescription_BillToCustomerTradeScreeningUnderReview_Own: _TL_('One or more of your accounts are under review and have been placed on hold. It could take up to 48 hours for us to complete your account’s review process. During this time, no ads will run. Please wait and try again later.'),\r\n AccountAlertDescription_BillToCustomerTradeScreeningLicenseRequired_BillTo: _TL_('This account and its associated ads are paused because the bill-to customer is on hold. To enable your ads, please change the bill-to customer or contact Support.'),\r\n AccountAlertDescription_BillToCustomerTradeScreeningLicenseRequired_Own: _TL_('Your manager account has been identified as subject to mandates and Microsoft Advertising is obligated by law to take action and put you on hold. If you require any further information on this, we recommend you seek external counsel.'),\r\n AccountAlertDescription_BillToCustomerTradeScreeningDataIssue_BillTo: _TL_('This account and its associated ads are paused because the bill-to customer is on hold. To enable your ads, please change the bill-to customer or contact Support.'),\r\n AccountAlertDescription_BillToCustomerTradeScreeningDataIssue_Own: _TL_('This account and all associated ads are on hold. To remove this hold and allow ads to run, please edit or complete your account information.'),\r\n AccountAlertDescription_AccountMissingABL: _TL_('The financial status of this account is on hold. To remove the hold, please go to complete your account business location (ABL).'),\r\n AccountAlertReason_9: _TL_('Account is in suspended lifecycle status.'),\r\n AccountAlertReason_10: _TL_('Account is in draft lifecycle status.'),\r\n AccountAlertReason_11: _TL_('Account is in deleted lifecycle status.'),\r\n AccountAlertReason_13: _TL_('Account financial status is proposed.'),\r\n AccountAlertReason_14: _TL_('Account financial status is write-off.'),\r\n AccountAlertReason_15: _TL_('Account financial status is hold.'),\r\n AccountAlertReason_16: _TL_('Account financial status is user hold.'),\r\n AccountAlertReason_17: _TL_('Account financial status is in pending credit check.'),\r\n AccountAlertReason_18: _TL_('Account financial status is sold to only.'),\r\n AccountAlertReason_19: _TL_('Advertiser lifecycle status is draft.'),\r\n AccountAlertReason_21: _TL_('Advertiser lifecycle status is deleted.'),\r\n AccountAlertReason_23: _TL_('Lifecycle status of the bill-to customer is draft.'),\r\n AccountAlertReason_24: _TL_('Lifecycle status of the bill-to customer is inactive.'),\r\n AccountAlertReason_28: _TL_('Bill-to customer status is fraud.'),\r\n AccountAlertReason_29: _TL_('Account lifecycle status is not set.'),\r\n AccountAlertReason_30: _TL_('Account financial status is not set.'),\r\n AccountAlertReason_31: _TL_('Advertiser lifecycle status is not set.'),\r\n AccountAlertReason_32: _TL_('Advertiser fraud status is not set.'),\r\n AccountAlertReason_33: _TL_('Bill-to customer status is not set.'),\r\n AccountAlertReason_34: _TL_('Bill-to customer financial status is not set.'),\r\n AccountAlertReason_35: _TL_('Bill-to customer fraud status is not set.'),\r\n AccountAlertReason_40: _TL_('Account is inactive due to policy violation.'),\r\n AccountAlertAction_Hold: _TL_('{0}Remove hold{1}'),\r\n AccountAlertAction_InactivePaused: _TL_('{0}Contact support{1}'),\r\n AccountAlertAction_PausedNoValidIO: _TL_('{0}Create order{1}'),\r\n AccountAlertAction_PausedZeroBalance: _TL_('{0}Add funds{1}'),\r\n AccountAlertAction_PendingPaymentMethod: _TL_('{0}Add payment method{1}'),\r\n AccountAlertAction_AccountMissingVATId: _TL_('{0}Add VAT ID{1}'),\r\n AccountAlertAction_AccountVerificationHold: _TL_('{0}Update verification status{1}'),\r\n AccountAlertAction_AccountTradeScreeningDataIssue: _TL_('{0}Remove the hold{1}'),\r\n AccountAlertAction_BillToCustomerTradeScreeningDataIssue_BillTo: _TL_('{0}Change bill-to customer{1}'),\r\n AccountAlertAction_BillToCustomerTradeScreeningDataIssue_Own: _TL_('{0}Remove the hold{1}'),\r\n AccountAlertAction_BillToCustomerTradeScreeningUnderReview_BillTo: _TL_('{0}Change bill-to customer{1}'),\r\n AccountAlertAction_BillToCustomerTradeScreeningLicenseRequired_BillTo: _TL_('{0}Change bill-to customer{1}'),\r\n AccountAlertAction_AccountMissingABL: _TL_('{0}Remove the hold{1}'),\r\n LearnMore: _TL_('Learn more'),\r\n Contact_Support: _TL_('Contact support'),\r\n AccountGrid_Alerts: _TL_('Errors'),\r\n ModalPopup_BizLoc_Close: _TL_('Close'),\r\n Format_CustomerNameAndId: _TL_('{0} ({1})'),\r\n};\r\n\r\n","import React, { Fragment, useCallback, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nimport { getUrlBuilders } from '@bingads-webui-clientcenter/url-builder-base';\r\nimport { buildLegacyI18n } from '@bingads-webui/build-legacy-i18n';\r\nimport { HelpLink } from '@bingads-webui-react/help-link';\r\nimport { useFooterConfig } from '@bingads-webui-campaign-react/content-footer';\r\n\r\nimport * as popupConstants from './constants';\r\nimport { legacyKeysMap } from '../i18n/legacy-keys';\r\n\r\nconst getLearnMore = reason => popupConstants.learnMoreHelpIds[reason] || null;\r\n\r\nconst transformReasonCode = (reason, opts) => {\r\n const rules = {\r\n BillToCustomerTradeScreeningLicenseRequired: ({ isCustomerBillToCustomer }) =>\r\n `BillToCustomerTradeScreeningLicenseRequired_${isCustomerBillToCustomer ? 'Own' : 'BillTo'}`,\r\n BillToCustomerTradeScreeningUnderReview: ({ isCustomerBillToCustomer }) =>\r\n `BillToCustomerTradeScreeningUnderReview_${isCustomerBillToCustomer ? 'Own' : 'BillTo'}`,\r\n BillToCustomerTradeScreeningDataIssue: ({ isCustomerBillToCustomer }) =>\r\n `BillToCustomerTradeScreeningDataIssue_${isCustomerBillToCustomer ? 'Own' : 'BillTo'}`,\r\n AccountVerificationHold: ({ isChinaAccount }) => (isChinaAccount ? 'AccountVerificationHold_CN' : 'AccountVerificationHold'),\r\n };\r\n const transformer = rules[reason];\r\n return transformer ? transformer(opts) : reason;\r\n};\r\n\r\nconst getContactSupport = (reason, opts) => (popupConstants.contactSupport.includes(transformReasonCode(reason, opts)) ? opts.url : null);\r\n\r\nexport const AccountInactiveReasons = ({\r\n accountInactiveReasons,\r\n isCustomerBillToCustomer,\r\n i18n: vnextI18n,\r\n serverContext,\r\n preferenceService,\r\n scope,\r\n permissions,\r\n siteMap,\r\n aid,\r\n}) => {\r\n const { locSettings, supportUrlConfigKey } = useFooterConfig({\r\n i18n: vnextI18n,\r\n serverContext,\r\n preferenceService,\r\n scope,\r\n permissions,\r\n siteMap,\r\n });\r\n const i18n = useMemo(() => buildLegacyI18n(vnextI18n, [legacyKeysMap]), [vnextI18n]);\r\n const isChinaAivPhase3Enabled = _.get(permissions, ['dynamic', 'CNMarketExpansion'], false) && _.get(permissions, ['dynamic', 'ChinaAivPhase3'], false);\r\n\r\n // because we're dynamically generating the i18n key from server data\r\n // need to ensure i18n contains the key, otherwise i18n will throw exception\r\n const safeTranslate = useCallback(\r\n key => (_.has(legacyKeysMap, key) ? i18n.getString(key) : null),\r\n [i18n]\r\n );\r\n\r\n const getAlertCategory = useCallback(\r\n (reason) => {\r\n if (popupConstants.alertReasonId[reason]) {\r\n const i18nPrefix = popupConstants.i18nPrefixes.alertCategoryPrefix;\r\n const reasonId = popupConstants.alertReasonId[reason];\r\n const suffix = reason === 'AccountVerificationHold' && isChinaAivPhase3Enabled ? '_CN' : '';\r\n\r\n return safeTranslate(`${i18nPrefix}_${reasonId}${suffix}`);\r\n }\r\n return null;\r\n },\r\n [safeTranslate, isChinaAivPhase3Enabled]\r\n );\r\n\r\n const getAlertDescription = useCallback(\r\n (reason) => {\r\n const i18nPrefix = popupConstants.i18nPrefixes.alertDescriptionPrefix;\r\n const transformedReason = transformReasonCode(reason, { isCustomerBillToCustomer, isChinaAccount: isChinaAivPhase3Enabled });\r\n\r\n return safeTranslate(`${i18nPrefix}_${transformedReason}`);\r\n },\r\n [safeTranslate, isCustomerBillToCustomer, isChinaAivPhase3Enabled]\r\n );\r\n\r\n const getAlertCauses = useCallback(\r\n (causes) => {\r\n const causeExplinations = [];\r\n\r\n _.each(causes, (cause) => {\r\n const i18nPrefix = popupConstants.i18nPrefixes.alertReasonPrefix;\r\n const causeCodeId = popupConstants.accountInactiveCauseCode[cause];\r\n const causeExplination = safeTranslate(`${i18nPrefix}_${causeCodeId}`);\r\n\r\n if (causeExplination) {\r\n causeExplinations.push(causeExplination);\r\n }\r\n });\r\n return causeExplinations;\r\n },\r\n [safeTranslate]\r\n );\r\n\r\n const getAlertActionText = useCallback(\r\n (reason) => {\r\n const i18nPrefix = popupConstants.i18nPrefixes.alertActionPrefix;\r\n const transformedReason = transformReasonCode(reason, { isCustomerBillToCustomer });\r\n const alertActionText = safeTranslate(`${i18nPrefix}_${transformedReason}`);\r\n\r\n return alertActionText.replace(/\\{\\d{1}\\}/g, '');\r\n },\r\n [safeTranslate, isCustomerBillToCustomer]\r\n );\r\n\r\n const uid = serverContext.CurrentUser.Id;\r\n const cid = serverContext.CurrentCustomer.Id;\r\n const ccUrlBuilders = useMemo(\r\n () =>\r\n getUrlBuilders({\r\n ccBaseUrl: serverContext.Urls.ClientCenterBaseUrl,\r\n cidFetcher: _.constant(cid),\r\n uidFetcher: _.constant(uid),\r\n getDefaultIsShortUrl: _.constant(false),\r\n }),\r\n [cid, serverContext.Urls.ClientCenterBaseUrl, uid]\r\n );\r\n\r\n const getAlertAction = useCallback(\r\n (reason) => {\r\n const transformedReason = transformReasonCode(reason, { isCustomerBillToCustomer });\r\n if (_.includes(popupConstants.alertPausedReasons, transformedReason)) {\r\n return {\r\n linkText: getAlertActionText('InactivePaused'),\r\n url: locSettings[supportUrlConfigKey],\r\n isExternal: true,\r\n };\r\n }\r\n\r\n const url = popupConstants.getAlertActionUrl({ ccUrlBuilders, aid })[transformedReason];\r\n\r\n if (!url) {\r\n return null;\r\n }\r\n\r\n return {\r\n linkText: getAlertActionText(transformedReason),\r\n url,\r\n isExternal: _.includes(popupConstants.externalLinkReasons, transformedReason),\r\n };\r\n },\r\n [isCustomerBillToCustomer, ccUrlBuilders, aid, getAlertActionText, locSettings, supportUrlConfigKey]\r\n );\r\n\r\n const alerts = _.chain(accountInactiveReasons)\r\n .map(reason => ({\r\n category: getAlertCategory(reason.Reason),\r\n description: getAlertDescription(reason.Reason),\r\n causes: getAlertCauses(reason.Causes),\r\n action: getAlertAction(reason.Reason),\r\n learnMore: getLearnMore(reason.Reason),\r\n contactSupport: getContactSupport(reason.Reason, { isCustomerBillToCustomer, url: locSettings[supportUrlConfigKey] }),\r\n }))\r\n .filter(alert => alert.category && alert.description)\r\n .value();\r\n\r\n /* eslint-disable jsx-a11y/anchor-is-valid */\r\n return (\r\n
\r\n {_.map(alerts, alert => (\r\n
\r\n
\r\n
\r\n
{alert.category}
\r\n
{alert.description}
\r\n
\r\n {_.map(alert.causes, cause => (\r\n
{cause}
\r\n ))}\r\n
\r\n
\r\n {alert.action &&\r\n \r\n {alert.action.linkText}\r\n }\r\n {/* Button that comes after action link, they are mutually exclusive */}\r\n {(() => {\r\n if (alert.learnMore) {\r\n return (\r\n \r\n {alert.action && |}\r\n {i18n.getString('LearnMore')}\r\n \r\n );\r\n }\r\n if (alert.contactSupport) {\r\n return (\r\n \r\n {alert.action && |}\r\n \r\n {i18n.getString('Contact_Support')}\r\n \r\n \r\n );\r\n }\r\n return null;\r\n })()}\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n );\r\n};\r\n\r\n/* eslint-disable react/forbid-prop-types */\r\nAccountInactiveReasons.propTypes = {\r\n accountInactiveReasons: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n isCustomerBillToCustomer: PropTypes.bool.isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n serverContext: PropTypes.shape({\r\n CurrentUser: PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n }).isRequired,\r\n CurrentCustomer: PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n }).isRequired,\r\n Urls: PropTypes.shape({\r\n ClientCenterBaseUrl: PropTypes.string.isRequired,\r\n }).isRequired,\r\n }).isRequired,\r\n preferenceService: PropTypes.object.isRequired,\r\n scope: PropTypes.object.isRequired,\r\n permissions: PropTypes.object.isRequired,\r\n siteMap: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.string,\r\n })).isRequired,\r\n aid: PropTypes.number.isRequired,\r\n};\r\n","import { getActionCalloutStyle } from '@bingads-webui-campaign-react/accounts-summary-common';\r\n\r\nexport const getStyle = (components, { palette } = {}) => ({\r\n '& .popover-title': {\r\n fontWeight: 600,\r\n },\r\n\r\n '& .account-inactive-reasons': {\r\n fontSize: 14,\r\n },\r\n '& .alert-row': {\r\n display: 'flex',\r\n },\r\n '& .alert-row + .alert-row': {\r\n marginTop: '1em',\r\n },\r\n '& .status-error': {\r\n color: palette.red,\r\n marginRight: 10,\r\n lineHeight: '21px',\r\n },\r\n '& .alert-category': {\r\n fontWeight: 600,\r\n },\r\n '& .alert-links': {\r\n display: 'flex',\r\n\r\n '& .separator': {\r\n padding: {\r\n left: '1ex',\r\n right: '1ex',\r\n },\r\n },\r\n '& .iconba': {\r\n marginLeft: '1ex',\r\n },\r\n },\r\n\r\n '@global': {\r\n '#account-inactive-reasons-fallback-callout': {\r\n ...getActionCalloutStyle(components, { palette }),\r\n },\r\n },\r\n});\r\n","/**\r\n * Common popover class name to check in mouse leaving event handler, all popovers that relies on the mouseleave behavior should add this\r\n */\r\nexport const ACCOUNTS_GRID_POPOVER_CLASSNAME = 'accounts-grid-callout';\r\n\r\n/**\r\n * Common callout component mounting DOM\r\n */\r\nexport const ACCOUNTS_GRID_CALLOUT_MOUNTING_DOM = 'call-out-container';\r\n\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport classNames from 'classnames';\r\n\r\nimport { Popover } from '@bingads-webui-campaign-react/accounts-summary-common';\r\n\r\nimport { ACCOUNTS_GRID_CALLOUT_MOUNTING_DOM, ACCOUNTS_GRID_POPOVER_CLASSNAME } from './constants';\r\n\r\nexport function getAutoPlacement(target, calloutMaxWidth = 325) { // this value is defined in global style\r\n const { right } = target.getBoundingClientRect();\r\n const placement = right + calloutMaxWidth > window.innerWidth ? 'left' : 'right';\r\n\r\n return placement;\r\n}\r\n\r\nexport const dismissCallout = () => {\r\n ReactDOM.unmountComponentAtNode(document.getElementById(ACCOUNTS_GRID_CALLOUT_MOUNTING_DOM));\r\n};\r\n\r\nexport const renderCallout = ({\r\n target,\r\n title,\r\n popoverId,\r\n popoverClassName,\r\n contentView,\r\n contentProps,\r\n placement = 'right',\r\n closeButtonAriaLabel = '',\r\n}) => {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(ACCOUNTS_GRID_CALLOUT_MOUNTING_DOM)\r\n );\r\n};\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport URI from 'urijs';\r\n\r\nimport {\r\n Navigation,\r\n DirectManagersCallout,\r\n Utils,\r\n} from '@bingads-webui-campaign-react/accounts-summary-common';\r\nimport { AccountInactiveReasons } from '@bingads-webui-campaign-react/account-inactive-reasons';\r\n\r\nimport { ACCOUNTS_GRID_POPOVER_CLASSNAME, ACCOUNTS_GRID_CALLOUT_MOUNTING_DOM } from './constants';\r\nimport { renderCallout, dismissCallout } from './accounts-grid-callout';\r\n\r\nconst isDeletedMatcher = _.matcher({ Reason: 'Deleted' });\r\n\r\nconst getSwitchCustomerShellLink = cid =>\r\n new URI(window.location.href)\r\n .setSearch('cid', String(cid))\r\n .removeSearch('uid')\r\n .removeSearch('aid')\r\n .hash('')\r\n .toString();\r\n\r\nconst showInactiveReasonCallout = ({\r\n account,\r\n i18n,\r\n serverContext,\r\n scope,\r\n siteMap,\r\n preferenceService,\r\n permissions,\r\n event,\r\n}) => {\r\n const contentProps = {\r\n accountInactiveReasons: _.reject(account.AccountInactiveReasons, isDeletedMatcher),\r\n isCustomerBillToCustomer: account.OwnerId === account.BillToCustomerId,\r\n i18n,\r\n serverContext,\r\n scope,\r\n siteMap,\r\n preferenceService,\r\n permissions,\r\n aid: account.Id,\r\n };\r\n\r\n renderCallout({\r\n target: event.currentTarget,\r\n title: i18n.getString(_TL_('Account error')),\r\n popoverId: 'account-status-callout',\r\n popoverClassName: 'account-status-callout',\r\n contentView: AccountInactiveReasons,\r\n contentProps,\r\n closeButtonAriaLabel: i18n.getString(_TL_('Close')),\r\n });\r\n};\r\n\r\nconst showDirectManagersCallout = ({\r\n account, event, i18n, view, isInternal,\r\n}) => {\r\n const data = _.map(account.ManagerAccounts, customer => ({\r\n name: customer.Name,\r\n number: customer.CustomerNumber,\r\n id: customer.Id,\r\n link: isInternal ? getSwitchCustomerShellLink(customer.Id) : '',\r\n }));\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(ACCOUNTS_GRID_CALLOUT_MOUNTING_DOM)\r\n );\r\n};\r\n\r\nexport const getCommonEvents = ({\r\n scope,\r\n siteMap,\r\n i18n,\r\n serverContext,\r\n preferenceService,\r\n permissions,\r\n}) => (view) => {\r\n const handleDirectManagersCalloutEvent = (event) => {\r\n event.stopPropagation();\r\n const key = view.gridView.keyOfElement(event.target);\r\n const account = view.gridView.itemWithKey(key);\r\n\r\n showDirectManagersCallout({\r\n account,\r\n i18n,\r\n event,\r\n view,\r\n isInternal: permissions.IsInternalUser,\r\n });\r\n };\r\n\r\n return {\r\n 'click .with-account-inactive-reasons.clickable': (event) => {\r\n event.stopPropagation();\r\n const key = view.gridView.keyOfElement(event.target);\r\n const account = view.gridView.itemWithKey(key);\r\n\r\n showInactiveReasonCallout({\r\n account,\r\n i18n,\r\n serverContext,\r\n scope,\r\n siteMap,\r\n preferenceService,\r\n permissions,\r\n event,\r\n view,\r\n });\r\n },\r\n 'mouseenter .manager-account-count.clickable': _.debounce(handleDirectManagersCalloutEvent, 50),\r\n 'keydown .manager-account-count.clickable': Utils.filterEnterKeyDown(handleDirectManagersCalloutEvent),\r\n 'click .account-name-column-template a.customer-scope-navigator': (event) => {\r\n event.preventDefault();\r\n const target = $(event.currentTarget);\r\n const cid = target.data('cid');\r\n\r\n Navigation.toCustomerScopeLandingPage({ cid, scope, siteMap });\r\n },\r\n 'mouseleave td': (event) => {\r\n if ($(event.relatedTarget).closest(`.${ACCOUNTS_GRID_POPOVER_CLASSNAME}`).length === 0) {\r\n view.trigger('closePopup');\r\n }\r\n },\r\n };\r\n};\r\n","import Promise from 'bluebird';\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\n\r\nimport { DataSourceStore } from '@bingads-webui-campaign/data-source-store';\r\nimport { cloneDeep } from '@bingads-webui-universal/primitive-utilities';\r\nimport { FilterService } from '@bingads-webui/filter-service';\r\nimport { projectionGridScopeNavigator } from '@bingads-webui-campaign/projection-grid-scope-navigator';\r\nimport { WaterfallFilterStorage, WaterfallFilterType, waterfallDateFilterProcessor } from '@bingads-webui-campaign/filter-storage';\r\nimport { getGridPreferences } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { getPGridColumnResizePlugin } from '@bingads-webui-campaign/projection-grid-column-resize-helper';\r\nimport { buildNameToPropertyMapping, flattenEntitySchema } from '@bingads-webui/filter-schema';\r\n\r\nimport { getCommonEvents } from './common-events';\r\nimport { getFilterConfig } from './filter-config';\r\n\r\nfunction getGridFilterConfig({\r\n cachedFilterService,\r\n AccountSummaryFilterImprovementEnabled,\r\n gridName,\r\n preferenceService,\r\n updateAccountEntitySchemaForFilterConfig,\r\n deps: {\r\n appConfig,\r\n accountSchema,\r\n schemaI18nCampaign,\r\n legacyGlobalI18n,\r\n accountSummaryi18n,\r\n preferenceStoreFactory,\r\n customColumnPreference,\r\n dataContextManager,\r\n jsData,\r\n sessionStore,\r\n cacheService,\r\n edm,\r\n state,\r\n },\r\n}) {\r\n let entitySchema;\r\n if (_.isFunction(updateAccountEntitySchemaForFilterConfig)) {\r\n entitySchema = updateAccountEntitySchemaForFilterConfig(accountSchema);\r\n } else if (!AccountSummaryFilterImprovementEnabled || !cachedFilterService) {\r\n entitySchema = cloneDeep(accountSchema);\r\n }\r\n\r\n const filterConfig = getFilterConfig({\r\n cachedEntitySchema: AccountSummaryFilterImprovementEnabled && cachedFilterService && !_.isFunction(updateAccountEntitySchemaForFilterConfig) ? cachedFilterService.entitySchema : null,\r\n entitySchema,\r\n featureName: gridName,\r\n i18n: accountSummaryi18n,\r\n sessionStore,\r\n preferenceStoreFactory: preferenceStoreFactory.getFilters,\r\n customColumnPreference,\r\n legacyGlobalI18n,\r\n schemaI18nCampaign,\r\n dataContextManager,\r\n preferenceService,\r\n appConfig,\r\n jsData,\r\n cacheService,\r\n edm,\r\n state,\r\n });\r\n\r\n return filterConfig;\r\n}\r\n\r\nexport function createFactory({\r\n serverContext,\r\n scope,\r\n pageName,\r\n preexecuteFlag = false,\r\n permissions,\r\n preferenceService,\r\n perfMarker,\r\n addDateChangeListener,\r\n gridName,\r\n gridType,\r\n pageElementSelector,\r\n crossPageSelectPlugin,\r\n toolbarPlugin,\r\n i18n,\r\n getEvents = () => () => ({}),\r\n siteMap,\r\n updateAccountEntitySchemaForFilterConfig,\r\n loadAccountsGridFactory,\r\n lazyLoadDep,\r\n}) {\r\n return new Promise((resolve) => {\r\n loadAccountsGridFactory().then(({ createAccountsGridView }) => {\r\n const {\r\n dateUtil,\r\n appState,\r\n getSegPreference,\r\n getSegType,\r\n segmentTimeChecker,\r\n fetchPaginationConfig,\r\n appConfig,\r\n accountSchema,\r\n schemaI18nCampaign,\r\n legacyGlobalI18n,\r\n accountSummaryi18n,\r\n preferenceStoreFactory,\r\n customColumnPreference,\r\n dataContextManager,\r\n jsData,\r\n sessionStore,\r\n azureUrlRewrite,\r\n CacheService,\r\n edm,\r\n } = lazyLoadDep();\r\n\r\n const waterfallFilterStorage = new WaterfallFilterStorage({\r\n preferenceService,\r\n });\r\n\r\n getGridPreferences({\r\n gridName,\r\n dateUtil,\r\n state: appState,\r\n getSegPreference,\r\n getSegType,\r\n segmentTimeChecker,\r\n fetchPaginationConfig,\r\n customColumnPreference,\r\n }).then((preferenceConfig) => {\r\n const { AccountSummaryFilterImprovementEnabled } = permissions.dynamic;\r\n const existingDataSource = DataSourceStore.get(gridName);\r\n let cachedFilterService;\r\n if (existingDataSource) {\r\n cachedFilterService = existingDataSource.filterService ;\r\n }\r\n\r\n const filterConfig = getGridFilterConfig({\r\n cachedFilterService,\r\n AccountSummaryFilterImprovementEnabled,\r\n gridType,\r\n gridName,\r\n preferenceService,\r\n updateAccountEntitySchemaForFilterConfig,\r\n deps: {\r\n appConfig,\r\n accountSchema,\r\n schemaI18nCampaign,\r\n legacyGlobalI18n,\r\n accountSummaryi18n,\r\n preferenceStoreFactory,\r\n customColumnPreference,\r\n dataContextManager,\r\n jsData,\r\n sessionStore,\r\n cacheService: CacheService,\r\n edm,\r\n state: appState,\r\n },\r\n });\r\n let filterService;\r\n\r\n if (AccountSummaryFilterImprovementEnabled && existingDataSource) {\r\n if (_.isFunction(updateAccountEntitySchemaForFilterConfig) || !AccountSummaryFilterImprovementEnabled || !cachedFilterService) {\r\n cachedFilterService.entitySchema = filterConfig.schemaProcessor(flattenEntitySchema(filterConfig.entitySchema));\r\n } else {\r\n cachedFilterService.entitySchema = filterConfig.schemaProcessor(filterConfig.entitySchema);\r\n }\r\n\r\n filterService = cachedFilterService;\r\n\r\n filterService.filterEntityOptions = {\r\n entitySchema: filterService.entitySchema,\r\n odata: filterConfig.odataOptionsProcessor({\r\n fieldMap: buildNameToPropertyMapping(filterService.entitySchema),\r\n ignoreCase: filterService.odataOptions.ignoreCase,\r\n custom: filterService.odataOptions.custom,\r\n }, filterService.entitySchema),\r\n };\r\n\r\n const basicStorageOptions = {\r\n filterEntityOptions: filterService.filterEntityOptions\r\n };\r\n\r\n filterService.editableFilterStorage = filterConfig.storageFactory.create(\r\n 'editableFilter',\r\n _.extend({}, basicStorageOptions)\r\n );\r\n } else {\r\n filterService = new FilterService(filterConfig);\r\n }\r\n const hasUnifiedSmartAccount = serverContext.CurrentCustomer.HasUnifiedSmartAccount;\r\n\r\n resolve({\r\n grid: createAccountsGridView({\r\n gridType,\r\n preferenceConfig,\r\n parentPerfMarker: perfMarker,\r\n addDateChangeListener,\r\n viewport: $(pageElementSelector),\r\n filterService,\r\n isForVNext: true,\r\n pageName,\r\n preexecuteFlag,\r\n hasUnifiedSmartAccount,\r\n scope,\r\n i18n,\r\n getAdditionalPlugins: () => _.compact([\r\n crossPageSelectPlugin,\r\n toolbarPlugin,\r\n { plugin: projectionGridScopeNavigator, config: scope },\r\n // adding a dummy filterSate plugin here because aggregatedRows plugin has dependencies in the reference to filterState plugin\r\n {\r\n plugin: definePlugin => definePlugin('filterState', [], _.noop),\r\n },\r\n getPGridColumnResizePlugin({\r\n gridName,\r\n preferenceService,\r\n permissions,\r\n }),\r\n ]),\r\n getAdditionalEvents: view => ({\r\n ...getCommonEvents({\r\n scope, siteMap, i18n, serverContext, preferenceService, permissions,\r\n })(view),\r\n // To adapt to performance page getFluctuationEvents() dependency issue, we add one more layer of function here.\r\n ...getEvents({\r\n accountSummaryi18n,\r\n azureUrlRewrite,\r\n })(view),\r\n }),\r\n p$daterange: () => Promise.resolve(waterfallDateFilterProcessor(\r\n waterfallFilterStorage.getFilters([WaterfallFilterType.DateFilter]),\r\n serverContext\r\n )),\r\n permissions,\r\n }),\r\n filterConfig,\r\n filterService,\r\n });\r\n });\r\n });\r\n });\r\n}\r\n","import { getCommonFilterConfig } from '@bingads-webui-campaign/common-grid-config';\r\n\r\nexport function getFilterConfig({\r\n entitySchema,\r\n cachedEntitySchema,\r\n featureName,\r\n i18n,\r\n sessionStore,\r\n preferenceStoreFactory,\r\n legacyGlobalI18n,\r\n schemaI18nCampaign,\r\n dataContextManager,\r\n preferenceService,\r\n customColumnPreference,\r\n appConfig,\r\n jsData,\r\n cacheService,\r\n edm,\r\n state,\r\n}) {\r\n const filterConfig = getCommonFilterConfig({\r\n preferenceService,\r\n customColumnPreference,\r\n featureName,\r\n entitySchema,\r\n cachedEntitySchema,\r\n i18n,\r\n legacyGlobalI18n,\r\n sessionStore,\r\n preferenceStoreFactory,\r\n globalConfig: appConfig,\r\n schemaI18nCampaign,\r\n dataContextManager,\r\n jsdata: jsData,\r\n cacheService,\r\n edm,\r\n state,\r\n editor: {},\r\n searchbox: {\r\n placeholder: i18n.getString('ColumnName_AccountName'),\r\n searchProperty: 'Name',\r\n searchOperator: '$contains',\r\n },\r\n });\r\n\r\n return filterConfig;\r\n}\r\n","import Promise from 'bluebird';\r\nimport _ from 'underscore';\r\n\r\nimport { getAccountsGridFactory } from '@bingads-webui-campaign/accounts-grid';\r\nimport { createFactory } from './accounts-grid-factory';\r\n\r\nfunction loadAccountsGridFactoryWebpack(contexts) {\r\n return new Promise((resolve) => {\r\n getAccountsGridFactory()(contexts.accountsGridLegacyDepsListWebpack)\r\n .then(resolve);\r\n });\r\n}\r\n\r\nexport function createAccountsGridForUiNext({\r\n serverContext,\r\n scope,\r\n pageName,\r\n preexecuteFlag = false,\r\n permissions,\r\n preferenceService,\r\n perfMarker,\r\n addDateChangeListener,\r\n gridName,\r\n gridType,\r\n pageElementSelector,\r\n crossPageSelectPlugin,\r\n toolbarPlugin,\r\n i18n,\r\n getEvents = () => ({}),\r\n siteMap,\r\n updateAccountEntitySchemaForFilterConfig,\r\n accountsGridLegacyDepsListWebpack = null,\r\n lazyLoadDep,\r\n}) {\r\n const loadAccountsGridFactoryFunc = loadAccountsGridFactoryWebpack;\r\n const loadAccountsGridFactory = _.partial(loadAccountsGridFactoryFunc, {\r\n serverContext,\r\n scope,\r\n permissions,\r\n preferenceService,\r\n accountsGridLegacyDepsListWebpack,\r\n });\r\n\r\n return createFactory({\r\n serverContext,\r\n scope,\r\n pageName,\r\n preexecuteFlag,\r\n permissions,\r\n preferenceService,\r\n perfMarker,\r\n addDateChangeListener,\r\n gridName,\r\n gridType,\r\n pageElementSelector,\r\n crossPageSelectPlugin,\r\n toolbarPlugin,\r\n i18n,\r\n getEvents,\r\n siteMap,\r\n updateAccountEntitySchemaForFilterConfig,\r\n loadAccountsGridFactory,\r\n lazyLoadDep,\r\n });\r\n}\r\n","import {\r\n getOverflowEllipsisStyle,\r\n getGridPopoverTargetStyle,\r\n getDirectManagersCalloutStyle,\r\n} from '@bingads-webui-campaign-react/accounts-summary-common';\r\n\r\nimport { getFluctuationGridCellStyle, getBudgetCenterEntryValueStyle } from '@bingads-webui-campaign-react/common-styles';\r\n\r\nimport { getStyle as getAccountInactiveReasonsStyle } from '@bingads-webui-campaign-react/account-inactive-reasons';\r\n\r\nexport const getGridStyles = (_, { palette = {} }) => ({\r\n ...getOverflowEllipsisStyle({ palette }),\r\n ...getGridPopoverTargetStyle(_, { palette }),\r\n ...getFluctuationGridCellStyle({ palette }),\r\n ...getBudgetCenterEntryValueStyle({ palette }),\r\n\r\n '& .account-import-table p': {\r\n margin: 0,\r\n },\r\n\r\n // account status\r\n '& .status-error': {\r\n color: palette.red,\r\n },\r\n '& .status-success': {\r\n color: palette.green,\r\n },\r\n '& .with-account-inactive-reasons': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n '& .error-count': {\r\n marginLeft: '0.25ex',\r\n },\r\n },\r\n // account name\r\n '& .account-name-column-template .iconba-More': {\r\n transform: 'rotate(90deg)',\r\n },\r\n '& .account-name-column-template': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n '& .account-inactive-label': {\r\n flexShrink: 0,\r\n },\r\n\r\n '& .account-number': {\r\n flexShrink: 0,\r\n flexGrow: 1,\r\n marginLeft: 8,\r\n },\r\n },\r\n // deleted account row\r\n '&&&&&&&& .deleted-account': {\r\n color: '#797775', // @gray120, no alias in palette yet\r\n },\r\n // overriding account status column\r\n '&& .table-container colgroup.column-group .col-AccountInactiveReasons': {\r\n width: 80,\r\n '&:first-child': {\r\n width: 100, // when status is the first column, it needs more space due to padding-left for each grid's first column. Bug 2416422\r\n },\r\n },\r\n // Ensure all .iconba icons in the header alignment consistency\r\n '&&& .column-header-container .iconba': {\r\n position: 'relative',\r\n },\r\n\r\n // direct managers column single account case\r\n '& .manager-accounts-cell > div': {\r\n display: 'flex',\r\n\r\n '& > a': {\r\n display: 'flex',\r\n overflow: 'hidden',\r\n },\r\n\r\n '& .manager-account-name': {\r\n flexShrink: 1,\r\n },\r\n },\r\n});\r\n\r\nexport const getCalloutStyles = (_, { palette = {} }) => ({\r\n '#account-status-callout': {\r\n maxWidth: 400,\r\n\r\n ...getAccountInactiveReasonsStyle(_, { palette }),\r\n },\r\n\r\n '#direct-managers-callout': {\r\n ...getDirectManagersCalloutStyle(_, { palette }),\r\n },\r\n});\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport $ from 'jquery';\r\n\r\nimport { Callout } from '@bingads-webui-react/callout';\r\n\r\n/**\r\n * Wrapper of Callout component, serving as Popover (mouseover only)\r\n * @param {object} props react property\r\n * @param {object} props.parentGrid backbone grid isntance of the grid, used as event bus to pass the `closePopup` event\r\n * @param {function} props.onClose onClose callback, usually it is unmounting the component\r\n * @param {React.ComponentType} props.contentView component to be put into content, it should accept a `onReady` if it it will be updated later\r\n * @param {object} props.contentProps props to passed to the content component\r\n * @param {object} props.isClickInteractive is the callout triggered by click\r\n * @param {object} props.enableAutoFixPlacement is the placement of callout auto fix\r\n * @param {object} props.calloutMinWidth min width of callout used to calculate placement\r\n * @returns {React.ElementType} render result\r\n */\r\nexport const Popover = ({\r\n target,\r\n parentGrid,\r\n onClose,\r\n contentView: ContentView,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n isLazy,\r\n contentProps,\r\n placement,\r\n hasCloseButton,\r\n isClickInteractive,\r\n enableAutoFixPlacement,\r\n calloutMinWidth,\r\n ...props\r\n}) => {\r\n const [autoFixPlacement, setAutoFixPlacement] = useState(placement);\r\n\r\n useEffect(() => {\r\n if (parentGrid) {\r\n parentGrid.on('closePopup', onClose);\r\n }\r\n\r\n return () => {\r\n if (parentGrid) {\r\n parentGrid.off('closePopup');\r\n }\r\n };\r\n }, [onClose, parentGrid]);\r\n\r\n useEffect(() => {\r\n $('.table-page-container').on('scroll.actionCallout', onClose);\r\n $('.table-page-container .scrollbars-view').on('scroll.actionCallout', onClose);\r\n\r\n return () => {\r\n $('.table-page-container').off('scroll.actionCallout', onClose);\r\n $('.table-page-container .scrollbars-view').off('scroll.actionCallout', onClose);\r\n };\r\n }, [onClose]);\r\n\r\n const handleMouseLeave = useCallback(() => {\r\n if (isClickInteractive) {\r\n return;\r\n }\r\n onClose();\r\n }, [isClickInteractive, onClose]);\r\n\r\n // Auto placement\r\n useEffect(() => {\r\n if (enableAutoFixPlacement && target) {\r\n let fixedPlacement = autoFixPlacement;\r\n const { left, right } = target.getBoundingClientRect();\r\n switch (autoFixPlacement) {\r\n case 'right':\r\n fixedPlacement = right + calloutMinWidth > window.innerWidth ? 'left' : 'right';\r\n break;\r\n case 'left':\r\n fixedPlacement = left - calloutMinWidth < 0 ? 'right' : 'left';\r\n break;\r\n default:\r\n break;\r\n }\r\n setAutoFixPlacement(fixedPlacement);\r\n }\r\n }, [autoFixPlacement, calloutMinWidth, enableAutoFixPlacement, placement, target]);\r\n\r\n return (\r\n
\r\n \r\n }\r\n />\r\n
\r\n );\r\n};\r\n\r\nPopover.propTypes = {\r\n parentGrid: PropTypes.shape(),\r\n onClose: PropTypes.func.isRequired,\r\n contentView: PropTypes.elementType.isRequired,\r\n isLazy: PropTypes.bool,\r\n contentProps: PropTypes.objectOf(PropTypes.any),\r\n placement: PropTypes.string,\r\n hasCloseButton: PropTypes.bool,\r\n isClickInteractive: PropTypes.bool,\r\n target: PropTypes.instanceOf(Element),\r\n enableAutoFixPlacement: PropTypes.bool,\r\n calloutMinWidth: PropTypes.number,\r\n};\r\n\r\nPopover.defaultProps = {\r\n target: null,\r\n parentGrid: null,\r\n isLazy: false,\r\n contentProps: {},\r\n placement: 'right',\r\n hasCloseButton: false,\r\n isClickInteractive: false,\r\n enableAutoFixPlacement: false,\r\n calloutMinWidth: 320,\r\n};\r\n\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withLock, keyVault } from '@bingads-webui-react/popup-manager';\r\nimport { Popover } from './popover';\r\n\r\nexport const PopoverWithLock = ({ lockKey, ...props }) => {\r\n const PopoverWithLockInner = withLock(Popover, {\r\n lockKey,\r\n force: true,\r\n });\r\n\r\n return ();\r\n};\r\n\r\nPopoverWithLock.propTypes = {\r\n lockKey: PropTypes.string,\r\n};\r\n\r\nPopoverWithLock.defaultProps = {\r\n lockKey: keyVault.hoveringPopup,\r\n};\r\n\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Callout } from '@bingads-webui-react/callout';\r\nimport { Button, Glyphicon } from '@bingads-webui-react/primitive';\r\n\r\n// the horizontal space is chosen to be a bit large that callout's width\r\nconst CALLOUT_HORIZONTAL_SPACE = 300;\r\n\r\nconst FallbackCallOutContent = ({ i18n, onClick }) => (\r\n \r\n
\r\n {i18n.getString(_TL_(\"This feature isn't available in the new version yet.\"))}\r\n
\r\n
\r\n \r\n \r\n {i18n.getString(_TL_('Go to this feature in previous Microsoft Advertising.'))}\r\n \r\n
\r\n
\r\n);\r\n\r\nFallbackCallOutContent.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n};\r\n\r\n/**\r\n * Wrapper of Callout component, serving for Old-UI-only action\r\n * @param {object} props react property\r\n * @param {object} props.i18n new i18n\r\n * @param {object} props.target instance of the element clicked\r\n * @param {string} props.title component to be put into content, it should accept a `onReady` if it it will be updated later\r\n * @param {string} props.link link that will be open in new window after clicking button\r\n * @param {function} props.onClick function executed after clicking button\r\n * @param {function} props.onClose function executed after callout close (from clicking outside or clicking close button)\r\n * @param {string} props.popoverId id of the popover DOM\r\n * @param {string} props.placement direction for the callout\r\n * @returns {React.ElementType} render result\r\n */\r\nexport const ActionCallout = ({\r\n i18n,\r\n link,\r\n onClick,\r\n onClose,\r\n placement: expectedPlacement,\r\n target,\r\n ...props\r\n}) => {\r\n const handleClick = () => {\r\n if (onClick) {\r\n onClick();\r\n }\r\n if (link) {\r\n window.open(link);\r\n }\r\n onClose(); // we need to dismiss the callout as the page is opened in new window\r\n };\r\n\r\n useEffect(() => {\r\n $('.table-page-container').on('scroll.actionCallout', onClose);\r\n $('.table-page-container .scrollbars-view').on('scroll.actionCallout', onClose);\r\n\r\n return () => {\r\n $('.table-page-container').off('scroll.actionCallout', onClose);\r\n $('.table-page-container .scrollbars-view').off('scroll.actionCallout', onClose);\r\n };\r\n }, [onClose]);\r\n\r\n // auto re-position callout if no enough space\r\n const [placement, setPlacement] = useState(expectedPlacement);\r\n\r\n useEffect(() => {\r\n if (expectedPlacement === 'right') {\r\n const { right } = target.getBoundingClientRect();\r\n setPlacement(right + CALLOUT_HORIZONTAL_SPACE > window.innerWidth ? 'left' : 'right');\r\n }\r\n if (expectedPlacement === 'left') {\r\n const { left } = target.getBoundingClientRect();\r\n setPlacement(left - CALLOUT_HORIZONTAL_SPACE < 0 ? 'right' : 'left');\r\n }\r\n }, [expectedPlacement, target]);\r\n\r\n return (\r\n }\r\n show\r\n closeButton\r\n classes={{ calloutCloseButton: 'callout-close-button' }}\r\n focusLockContent\r\n />\r\n );\r\n};\r\n\r\nActionCallout.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n target: PropTypes.instanceOf(Element).isRequired,\r\n title: PropTypes.string,\r\n link: PropTypes.string,\r\n onClick: PropTypes.func,\r\n onClose: PropTypes.func,\r\n popoverId: PropTypes.string.isRequired,\r\n placement: PropTypes.string,\r\n};\r\n\r\nActionCallout.defaultProps = {\r\n onClick: _.noop,\r\n onClose: _.noop,\r\n title: '',\r\n link: '',\r\n placement: 'right',\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { Popover } from './popover';\r\n\r\nconst DirectManagersContent = ({ data }) => (\r\n
\r\n {_.map(data, (item) => {\r\n const content = (\r\n \r\n \r\n {item.name}\r\n \r\n ({item.number})\r\n \r\n );\r\n return (\r\n
\r\n {item.link ? (\r\n \r\n {content}\r\n \r\n ) : (\r\n content\r\n )}\r\n
\r\n );\r\n })}\r\n
\r\n);\r\n\r\nDirectManagersContent.propTypes = {\r\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n};\r\n\r\nexport const DirectManagersCallout = ({\r\n i18n,\r\n target,\r\n parentGrid,\r\n popoverClassName,\r\n data,\r\n onClose,\r\n}) => (\r\n \r\n);\r\n\r\nDirectManagersCallout.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n target: PropTypes.instanceOf(Element).isRequired,\r\n parentGrid: PropTypes.shape({\r\n on: PropTypes.func.isRequired,\r\n off: PropTypes.func.isRequired,\r\n }).isRequired,\r\n popoverClassName: PropTypes.string,\r\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n onClose: PropTypes.func,\r\n};\r\n\r\nDirectManagersCallout.defaultProps = {\r\n popoverClassName: '',\r\n onClose: _.noop,\r\n};\r\n","export const getOverflowEllipsisStyle = () => ({\r\n '& .text-overflow-ellipsis': {\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n },\r\n});\r\n\r\nexport const getGridPopoverTargetStyle = (_, { palette = {} }) => ({\r\n '& .grid-popover-target': {\r\n borderBottom: `1px dashed ${palette.themePrimary}`,\r\n },\r\n});\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { getOverflowEllipsisStyle } from './common-grid-style';\r\n\r\nexport const getDirectManagersCalloutStyle = ({ palette = {}, iconFontFamily = 'MsAds MDL2 Assets' }) => ({\r\n '& .popover-content': {\r\n padding: '16px 20px',\r\n\r\n '& .direct-manager-list': {\r\n fontSize: 12,\r\n lineHeight: '18px',\r\n\r\n '& .direct-manager-item': {\r\n marginBottom: 4,\r\n display: 'flex',\r\n\r\n '& :last-child': {\r\n marginBottom: 0,\r\n },\r\n\r\n ...getOverflowEllipsisStyle(),\r\n\r\n '& > a': {\r\n display: 'flex',\r\n overflow: 'hidden',\r\n },\r\n\r\n '& .manager-account-name': {\r\n flexShrink: 1,\r\n paddingRight: '1ex',\r\n },\r\n },\r\n },\r\n },\r\n});\r\n","/**\r\n * Style to override the !important rule defined in toolbar-container\r\n * @param {string} buttonId id for the button\r\n * @returns {function} jss style function\r\n */\r\nexport const getToolbarBlockedIconStyle = buttonId => (components, { palette }) => ({\r\n [`& .toolbar-edit #${buttonId} .iconba-Blocked`]: {\r\n color: `${palette.white} !important`,\r\n },\r\n});\r\n\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nexport const getActionCalloutStyle = ({ palette = {}, iconFontFamily = 'MsAds MDL2 Assets' }) => ({\r\n '& .popover-title': {\r\n minWidth: 232,\r\n lineHeight: '28px',\r\n paddingBottom: 10,\r\n fontWeight: 600,\r\n },\r\n\r\n '& .popover-content': {\r\n '& .callout-message': {\r\n minWidth: 232,\r\n fontSize: 12,\r\n lineHeight: '22px',\r\n paddingBottom: 10,\r\n },\r\n\r\n '& .callout-link': {\r\n fontSize: 16,\r\n lineHeight: '19px',\r\n color: palette.themePrimary,\r\n padding: 5,\r\n height: 'auto',\r\n whiteSpace: 'normal',\r\n textAlign: 'left',\r\n minWidth: 232,\r\n\r\n '& :active': {\r\n color: palette.themePrimary,\r\n },\r\n },\r\n\r\n '& .callout-close-button': {\r\n top: 9,\r\n width: 12,\r\n right: 8,\r\n border: 0,\r\n height: 13,\r\n padding: 0,\r\n position: 'absolute',\r\n minWidth: 12,\r\n background: 'inherit',\r\n },\r\n },\r\n});\r\n","/**\r\n * Style for link account button in toolbar-container in performance and management tab\r\n * @returns {object} jss style\r\n */\r\nexport const getLinkAccountButtonStyle = () => ({\r\n '& #link-account': {\r\n marginLeft: 12,\r\n },\r\n '& #link-account-with-fallback': {\r\n marginLeft: 12,\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport { getRoutePathById } from '@bingads-webui-campaign-react/with-site-map';\r\n\r\n/**\r\n * Navigate to customer scope default page by given cid and uid or original ciu and uid\r\n * @param {object} conf the configuration\r\n * @param {string} conf.cid target customer id or current customer id if not provided\r\n * @param {object} conf.uid target user id or current user id if not provided\r\n * @param {object} conf.scope scope from context\r\n * @param {object} conf.siteMap siteMap from context\r\n * @returns {null} null\r\n */\r\nconst toCustomerScopeLandingPage = ({\r\n cid, uid, scope, siteMap,\r\n}) => {\r\n const defaultRouteForCustomerScope = getRoutePathById(siteMap, 'accounts');\r\n const search = _.defaults({ cid, uid }, _.omit(scope.values, 'aid'));\r\n\r\n scope.history.push({\r\n pathname: defaultRouteForCustomerScope,\r\n search: `?${scope.stringify(search)}`,\r\n });\r\n};\r\n\r\nconst LinkingReturnPageId = {\r\n requestsSent: 'requests-sent',\r\n requestsReceived: 'requests-received',\r\n management: 'management',\r\n performance: 'performance',\r\n};\r\n\r\nconst toResendRequestPage = ({\r\n requestId, linkType, scope, siteMap,\r\n}) => {\r\n const resendRequestRoute = getRoutePathById(siteMap, 'account-linking-resend');\r\n const search = _.defaults({ requestId, linkType }, _.pick(scope.values, 'cid', 'uid'));\r\n\r\n scope.history.push({\r\n pathname: resendRequestRoute,\r\n search: `?${scope.stringify(search)}`,\r\n linkingReturnPageId: LinkingReturnPageId.requestsSent,\r\n });\r\n};\r\n\r\nconst toRequestPage = ({\r\n cid, uid, scope, siteMap, isSent,\r\n}) => {\r\n const defaultRouteForCustomerScope = getRoutePathById(siteMap, 'requests');\r\n const search = _.defaults({ cid, uid, isSent }, _.pick(scope.values, ['cid', 'uid']));\r\n scope.history.push({\r\n pathname: defaultRouteForCustomerScope,\r\n search: `?${scope.stringify(search)}`,\r\n });\r\n};\r\n\r\nconst toPendingTransferRequestPage = ({\r\n rpid, sourceCid, scope, siteMap,\r\n}) => {\r\n const defaultRouteForCustomerScope = getRoutePathById(siteMap, 'pending-transfer-request');\r\n const search = _.defaults({ rpid, sourcecid: sourceCid }, _.pick(scope.values, 'cid', 'uid'));\r\n scope.history.push({\r\n pathname: defaultRouteForCustomerScope,\r\n search: `?${scope.stringify(search)}`,\r\n });\r\n};\r\n\r\nconst toAccountTransferPage = ({\r\n rpid, sourceCid, scope, siteMap,\r\n}) => {\r\n const defaultRouteForCustomerScope = getRoutePathById(siteMap, 'accounts-transfer');\r\n const search = _.defaults({ rpid, sourcecid: sourceCid }, _.pick(scope.values, 'cid', 'uid'));\r\n scope.history.push({\r\n pathname: defaultRouteForCustomerScope,\r\n search: `?${scope.stringify(search)}`,\r\n });\r\n};\r\n\r\nexport const Navigation = {\r\n toCustomerScopeLandingPage,\r\n toRequestPage,\r\n toResendRequestPage,\r\n toAccountTransferPage,\r\n toPendingTransferRequestPage,\r\n LinkingReturnPageId,\r\n};\r\n","import { keyCode } from '@bingads-webui/keycode';\r\nimport jsdataCampaign from '@bingads-webui-component-legacy/js-data-campaign/index';\r\n\r\nconst invalidateAccountsData = () => {\r\n if (jsdataCampaign) {\r\n return jsdataCampaign.Account.destroyAll();\r\n }\r\n return Promise.resolve(null);\r\n};\r\n\r\nconst forceAccountsGridRefresh = ({\r\n gridView,\r\n getjsDataCampaign,\r\n}) => {\r\n // To refresh the grid, we actually need to destroy the accounts from jsdata cache, so a new oData call get trigger to the server and new data get updated\r\n // gridView.refresh(true); needs to be call after data is invalidated otherwise the same set of data will be returned, without any network call\r\n // We also need to deselect the current grid selection to avoid unexpected behavior with selected items not updated in the model, even though the checkboxes are unselected correctly\r\n invalidateAccountsData(getjsDataCampaign).then(() => {\r\n gridView.deselectAll();\r\n gridView.refresh(true);\r\n });\r\n};\r\n\r\n/**\r\n * filter keydown events to make the event handler only respond to enter keys\r\n * @param {function} eventHandler original event handler\r\n * @returns {function} patched event handler\r\n */\r\nconst filterEnterKeyDown = eventHandler => (event, ...args) => {\r\n if (event.keyCode === keyCode.Enter) {\r\n eventHandler(event, ...args);\r\n }\r\n};\r\n\r\nexport const Utils = {\r\n forceAccountsGridRefresh,\r\n filterEnterKeyDown,\r\n invalidateAccountsData,\r\n};\r\n","import _ from 'underscore';\r\n\r\nimport { getRoutePathById } from '@bingads-webui-campaign-react/with-site-map';\r\nimport { Constants } from '@bingads-webui-clientcenter/entity-utils';\r\nimport { getUrlBuilders } from '@bingads-webui-clientcenter/url-builder-base';\r\n\r\nimport { Navigation } from './navigation';\r\nimport { Utils } from './utils';\r\n\r\nconst { AccountMode, EnforcementActionType } = Constants;\r\nconst { LinkingReturnPageId } = Navigation;\r\n\r\n/* global Map */\r\n\r\n/**\r\n * turn toolbar items into a Map\r\n * @param {Item[]} items toolbar item configuration, any falsy values will be removed\r\n * @returns {Map} toolbar config\r\n */\r\nexport const buildToobarConfig = items => _.reduce(\r\n _.compact(items),\r\n (map, [key, value]) => {\r\n map.set(key, value);\r\n return map;\r\n },\r\n new Map()\r\n);\r\n\r\nconst validaDependencies = (deps) => {\r\n if (_.any(deps, _.isEmpty)) {\r\n throw new Error('Missing dependency.');\r\n }\r\n};\r\n\r\n/**\r\n * Creates a toolbar config with navigation\r\n * @param {object} conf the configuration\r\n * @param {object} conf.config the configuration that would override the defaults\r\n * @param {string} conf.routeId the id in site map for the destination, if it goes to legacy, pass an empty string\r\n * @param {object} conf.context contextual object passed to the page\r\n * @returns {array} toolbar config\r\n */\r\nconst getNavigationToolbarConfig = ({\r\n config,\r\n routeId,\r\n context: {\r\n siteMap,\r\n scope,\r\n },\r\n}) => {\r\n validaDependencies([siteMap, scope]);\r\n return config.displayActionButton && [config.id, {\r\n type: 'button',\r\n onClick: () => {\r\n scope.history.push({\r\n pathname: getRoutePathById(siteMap, routeId),\r\n search: scope.history.location.search,\r\n linkingReturnPageId: config.linkingReturnPageId,\r\n });\r\n },\r\n ...config,\r\n }];\r\n};\r\n\r\n/**\r\n * Factory for navigation toolbar item creator\r\n * @param {object} conf factory conf\r\n * @param {string} conf.routeId the id in site map for the destination\r\n * @param {function} conf.getDefaultConfig default config getter for this type of toolbar item\r\n * @returns {function} the toolbar item creator\r\n */\r\nconst createNavigationToolbarItemFactory = ({ routeId, getDefaultConfig }) => ({\r\n config: configOverride = {},\r\n context,\r\n}) => {\r\n const config = _.defaults(configOverride, getDefaultConfig(context));\r\n return getNavigationToolbarConfig({\r\n config,\r\n context,\r\n routeId,\r\n });\r\n};\r\n\r\nconst isDeletedAccount = account => _.isObject(account)\r\n && !_.isEmpty(account.AccountInactiveReasons)\r\n && _.contains(_.pluck(account.AccountInactiveReasons, 'Reason'), 'Deleted');\r\n\r\nconst getDefaultAccountCreateButtonConfig = ({ i18n, permissions, serverContext }) => ({\r\n id: 'account-create',\r\n classes: ['btn-primary'],\r\n disabled: Boolean(permissions.dynamic\r\n && permissions.dynamic.DSAEnforcement\r\n && serverContext.CurrentUser.EnforcementActionId === EnforcementActionType.SuspendAccountCreation),\r\n text: i18n.getString(_TL_('Create account', { comment: 'The label of the button that allows customers to create an account for current customer' })),\r\n iconLeftGlyphName: 'ba-Add',\r\n noResponsive: true,\r\n displayActionButton: (permissions.IsManagementDashboardEnabled || permissions.IsCustomerHierarchyEnabled)\r\n && permissions.IsCreateAccountEnabled\r\n && !(permissions.IsCustomerHierarchyEnabled && !permissions.IsNewBillToCustomerHierarchyEnabled && serverContext.CurrentUser.ParentCustomerId !== 0 && serverContext.CurrentUser.ParentCustomerId !== serverContext.CurrentCustomer.Id),\r\n});\r\n\r\nconst getCCUrlBuilders = serverContext => getUrlBuilders({\r\n ccBaseUrl: serverContext.Urls.ClientCenterBaseUrl,\r\n cidFetcher: _.constant(serverContext.CurrentCustomer.Id),\r\n uidFetcher: _.constant(serverContext.CurrentUser.Id),\r\n getDefaultIsShortUrl: _.constant(false),\r\n});\r\n\r\nconst getDefaultAccountCreateOBOButtonConfig = (context) => {\r\n const { serverContext } = context;\r\n const { CustomersUrlBuilder } = getCCUrlBuilders(serverContext);\r\n\r\n const pathToCreateOBO = new CustomersUrlBuilder().action('createcustomer').rurl(location.href).url;\r\n\r\n return {\r\n ...getDefaultAccountCreateButtonConfig(context),\r\n siteMapId: null,\r\n onClick: () => {\r\n location.href = pathToCreateOBO;\r\n },\r\n };\r\n};\r\n\r\nconst getLinkingReturnPageId = (scope) => {\r\n const { location } = scope;\r\n const extractPattern = new RegExp('campaign/vnext/accounts/(.+)$', 'i');\r\n const currentLocation = _.last(location.pathname.match(extractPattern));\r\n if (currentLocation === 'requests') {\r\n return scope.values.isSent === 'true' ? LinkingReturnPageId.requestsSent : LinkingReturnPageId.requestsReceived;\r\n }\r\n return currentLocation;\r\n};\r\n\r\n// Send request (Create link to accounts) are shared in perf, mgmt and requests page, but they have different style\r\nconst getDefaultSendRequestSharedConfig = ({ i18n, permissions, scope }) => ({\r\n text: i18n.getString(_TL_('Link to accounts', { comment: 'The label of the button that allows customers to create a request to link to another customer or accounts' })),\r\n iconLeftGlyphName: 'ba-Link',\r\n displayActionButton: permissions.IsCustomerHierarchyEnabled && permissions.IsLinkAccountEnabled,\r\n linkingReturnPageId: getLinkingReturnPageId(scope),\r\n noResponsive: true,\r\n});\r\n\r\n// Used in Requests page as main button\r\nconst getDefaultSendRequestButtonConfig = context => ({\r\n ...getDefaultSendRequestSharedConfig(context),\r\n id: 'account-linking',\r\n classes: ['btn-primary'],\r\n disabled: false,\r\n});\r\n\r\n// Used in perf and mgmt pages as a nav item\r\nconst getDefaultSendRequestNavItemConfig = context => ({\r\n ...getDefaultSendRequestSharedConfig(context),\r\n id: 'link-account',\r\n type: 'nav-item',\r\n classes: [],\r\n});\r\n\r\nconst getMandateAgreementRequiredNavItemConfig = ({ i18n, serverContext }) => {\r\n const { MandateAgreementRequiredUrlBuilder } = getCCUrlBuilders(serverContext);\r\n const mandateAgreementRequiredUrl = new MandateAgreementRequiredUrlBuilder().url;\r\n\r\n return {\r\n displayActionButton: true,\r\n text: i18n.getString(_TL_('Upload Mandate Agreement', { comment: 'The label of the button that allows customers to create a request to upload to mandate agreement' })),\r\n iconLeftGlyphName: 'ba-Upload',\r\n noResponsive: true,\r\n id: 'mandate-agreement-required',\r\n type: 'nav-item',\r\n classes: [],\r\n siteMapId: null,\r\n onClick: () => {\r\n location.href = mandateAgreementRequiredUrl;\r\n },\r\n };\r\n};\r\n\r\nconst getCreateAccountButton = createNavigationToolbarItemFactory({ routeId: 'account-create', getDefaultConfig: getDefaultAccountCreateButtonConfig });\r\n\r\nconst getCreateAccountOBOButton = createNavigationToolbarItemFactory({ routeId: '', getDefaultConfig: getDefaultAccountCreateOBOButtonConfig });\r\n\r\nconst getSendRequestButton = createNavigationToolbarItemFactory({ routeId: 'account-linking', getDefaultConfig: getDefaultSendRequestButtonConfig });\r\n\r\nconst getSendRequestNavItem = createNavigationToolbarItemFactory({ routeId: 'account-linking', getDefaultConfig: getDefaultSendRequestNavItemConfig });\r\n\r\nconst getMandateAgreementRequiredNavItem = createNavigationToolbarItemFactory({ routeId: '', getDefaultConfig: getMandateAgreementRequiredNavItemConfig });\r\n\r\nconst getDeleteAccountNavItem = ({\r\n key = 'delete-account',\r\n context: {\r\n i18n, serverContext, permissions,\r\n },\r\n gridView,\r\n getBulkActionAccountsGrid,\r\n getjsDataCampaign,\r\n}) => {\r\n const selectedAccounts = gridView ? gridView.selectedItems() : null;\r\n const hasNoDeletedAccounts = selectedAccounts && _.every(selectedAccounts, account => !isDeletedAccount(account));\r\n const isSmartAccount = selectedAccounts && _.every(selectedAccounts, account => _.isObject(account) && AccountMode.Smart === account.AccountMode);\r\n // For customers on smart campaign pilot, delete button is available if the user internal users or the account is not smart\r\n const canDeleteAccounts = !permissions.IsSmartUIEnabled || !isSmartAccount || serverContext.CurrentUser.IsInternal;\r\n\r\n return permissions.IsManagementDashboardEnabled && permissions.IsDeleteAccountEnabled && [key, {\r\n id: key,\r\n type: 'nav-item',\r\n text: i18n.getString(_TL_('Deactivate')),\r\n iconLeftGlyphName: 'ba-Blocked',\r\n onClick: () => {\r\n const { bulkDeleteAccounts } = getBulkActionAccountsGrid();\r\n\r\n bulkDeleteAccounts({\r\n selectedAccounts,\r\n successCallback: () => {\r\n Utils.forceAccountsGridRefresh({ gridView, getjsDataCampaign });\r\n },\r\n });\r\n },\r\n disabled: !hasNoDeletedAccounts || !canDeleteAccounts,\r\n }];\r\n};\r\n\r\nconst getReactivateAccountNavItem = ({\r\n key = 'reactivate-account',\r\n context: { i18n, permissions },\r\n gridView,\r\n getBulkActionAccountsGrid,\r\n getjsDataCampaign,\r\n}) => {\r\n const selectedAccounts = gridView.selectedItems();\r\n const hasAllDeletedAccounts = selectedAccounts && _.every(selectedAccounts, account => isDeletedAccount(account));\r\n\r\n return permissions.IsManagementDashboardEnabled && permissions.IsReactivateAccountEnabled && [key, {\r\n id: key,\r\n type: 'nav-item',\r\n text: i18n.getString(_TL_('Re-activate')),\r\n iconLeftGlyphName: 'ba-Refresh',\r\n onClick: () => {\r\n const { bulkReactivateAccounts } = getBulkActionAccountsGrid();\r\n\r\n bulkReactivateAccounts({\r\n i18n,\r\n selectedAccounts,\r\n successCallback: () => {\r\n Utils.forceAccountsGridRefresh({ gridView, getjsDataCampaign });\r\n },\r\n });\r\n },\r\n disabled: !hasAllDeletedAccounts,\r\n }];\r\n};\r\n\r\nconst getUnlinkAccountNavItem = ({\r\n key = 'unlink-account',\r\n context: {\r\n i18n, scope, siteMap, permissions,\r\n },\r\n gridView,\r\n getBulkUnlinkAccounts,\r\n}) => {\r\n const selectedAccounts = gridView ? gridView.selectedItems() : null;\r\n const isSmartAccount = selectedAccounts && _.every(selectedAccounts, account => _.isObject(account) && AccountMode.Smart === account.AccountMode);\r\n const canUnlinkAccount = !(permissions.IsSmartUIEnabled && isSmartAccount);\r\n\r\n return (permissions.IsManagementDashboardEnabled || permissions.IsCustomerHierarchyEnabled) && permissions.IsUnlinkAccountEnabled && [key, {\r\n id: key,\r\n type: 'nav-item',\r\n text: i18n.getString(_TL_('Unlink from accounts')),\r\n iconLeftGlyphName: 'ba-RemoveLink',\r\n onClick: () => {\r\n const bulkUnlinkAccounts = getBulkUnlinkAccounts();\r\n\r\n bulkUnlinkAccounts({\r\n selectedAccounts: gridView.selectedItems(),\r\n customerId: scope.values.cid,\r\n userId: scope.values.uid,\r\n onConfirm: ({ accounts }) => {\r\n scope.history.push({\r\n pathname: getRoutePathById(siteMap, 'accounts-unlinking'),\r\n search: `?${scope.stringify(_.pick(scope.values, 'cid', 'uid'))}`,\r\n state: { accounts, cancelRedirectData: scope.history.location },\r\n });\r\n },\r\n });\r\n },\r\n disabled: !canUnlinkAccount,\r\n }];\r\n};\r\n\r\nconst getTransferAccountNavItem = ({\r\n key = 'transfer-account',\r\n context: {\r\n i18n, scope, siteMap, permissions,\r\n },\r\n gridView,\r\n getBulkTransferAccounts,\r\n}) => permissions.IsManagementDashboardEnabled &&\r\n permissions.IsTransferAccountEnabled &&\r\n permissions.IsInternalUser &&\r\n [key, {\r\n id: key,\r\n type: 'nav-item',\r\n text: i18n.getString(_TL_('Transfer accounts')),\r\n iconLeftGlyphName: 'ba-Sync',\r\n onClick: () => {\r\n const bulkTransferAccounts = getBulkTransferAccounts();\r\n\r\n bulkTransferAccounts({\r\n i18n,\r\n selectedAccounts: gridView.selectedItems(),\r\n customerId: scope.values.cid,\r\n userId: scope.values.uid,\r\n onSuccessCallBack: ({ rpid }) => {\r\n scope.history.push({\r\n pathname: getRoutePathById(siteMap, 'accounts-transfer'),\r\n search: `?${scope.stringify(_.pick(scope.values, 'cid', 'uid'))}&rpid=${rpid}`,\r\n state: { cancelRedirectData: scope.history.location },\r\n });\r\n },\r\n });\r\n },\r\n }];\r\n\r\nexport const ToolbarConfigs = {\r\n getCreateAccountButton,\r\n getCreateAccountOBOButton,\r\n getSendRequestButton,\r\n getSendRequestNavItem,\r\n getDeleteAccountNavItem,\r\n getReactivateAccountNavItem,\r\n getUnlinkAccountNavItem,\r\n getTransferAccountNavItem,\r\n getMandateAgreementRequiredNavItem,\r\n};\r\n"],"names":["warningErrorCodes","ccmtErrorPrefx","defaultErrorParams","params","count","sourceCustomerName","targetCustomerName","link","text","_jsx","href","children","getErrorMessage","i18n","errorCode","arguments","length","undefined","code","replace","errorKey","ErrorLocStrings","GenericErrorMessage","errorParams","_","getString","ErrorHelpPopupIds","AccountReparentingHotelAdsValidationFailed","AccountReparentingUETRemarketingValidationFailed","AccountReparentingBMCValidationFailed","ARWUnthemedBulkErrorView","_ref","classes","errorDetails","sourceCustomer","targetCustomer","errorCodes","className","classnames","bulkErrorViewContainer","error","entityIds","target","errorMessage","ReactTemplate","model","template","ErrorMessage","Name","isWarningCode","isWarning","helpTopicId","iconClass","cssClass","_jsxs","LearnMoreLink","linkText","_TL_","topic","concat","defaultProps","ARWBulkErrorView","withI18nConsumer","withDefaultStyles","getBulkErrorViewStyles","BulkErrorViewWithModalDialog","onCancelClick","onEnablePilotsClick","onUpgradeServiceLevelClick","Modal","id","show","backdrop","onHide","bsSize","Body","Footer","Button","btnStyle","onClick","CommonLocStrings","EnablePilotsLabel","UpgradeLabel","CloseLabel","ARWBulkErrorViewWithModalDialog","handleAjaxAuthFailure","appendJsDataErrorSummary","errors","Code","Target","notificationApi","showWarning","Loading","ErrorsLabel","AccountNameNumberFormat","BackLabel","NextLabel","OkLabel","GotitLabel","CancelLabel","SubmitLabel","SaveAndExitLabel","TakeoverBillingSectionHeader","TransferResourcesHeader","NotSet","Prepay","Threshold","MonthlyInvoice","Grid_ShowRows","Grid_PageOf","UETSectionHeader","paymentOptionIdToKeyMap","_defineProperty","notSetPaymentOptionId","Constants","PaymentOptionId","Invoice","MandatorySelection","AccountIsUnderReparenting","ReparentingNotAllowedForAdultAdsCustomer","ReparentingNotAllowedForThresholdAccountsWithOverdueBalance","ReparentingNotAllowedForOnHoldAccounts","ReparentingNotAllowedForAccountsAlreadyUnderReparenting","ReparentingNotAllowedForAccountsCrossCustomers","ReparentingNotAllowedForUnderSAPPOR","ReparentingNotAllowedForUnderBillingMigration","ReparentingNotAllowedForFraudAccount","ReparentingNotAllowedForAccountsMaxLimit","InvalidAccount","ReparentingScheduledLinksBlocked","ReparentingAgencyNotLinkedToAccount","ReparentingAgencySettingMissing","ReparentingMustDelinkTargetCustomer","ReparentingTargetCustomerCannotBeSourceCustomer","SourceTargetCustomerNotInReparentingPilot","ReparentingNotAllowedForFraudCustomer","ReparentingNotAllowedForInactiveCustomer","ReparentingNotAllowedForCrossDomain","ReparentingNotAllowedForMarketMismatch","ReparentingNotAllowedForExceedTotalAccountNumber","ReparentingNotAllowedForMissingCustomerLevelPilotInTarget","ReparentingNotAllowedForNewBillToCustomerStayTheSame","ReparentingCustomerHierarchyCycleDetected","AccountReparentingFailedByMovedCustomerLevelGoal","AccountReparentingFailedByRemainingCustomerLevelGoal","AccountReparentingFailedByCvrlWithCustomerLevelAudience","AccountNameDuplicate","ReparentingNotAllowedForTargetCustomerNotInPilot","ReparentingNotAllowedForSourceCustomerNotInPilot","ReparentingRequireEnableTargetCustomerPilot","ReparentingRequireUpgradeTargetCustomerLevel","PaymentInstrumentControlledCurrencyNotMatched","PaymentMethodNotSupportedByAccount","AccountsPerPaymentInstrumentLimitReached","PaymentMethodAssociatedWithManyAccounts","PostPayAccountCantAssociateWithPrepaidCard","ReparentingAccountFinanceSettleFail","BillToCustomerFinancialStatusIsSoldToOnly","DeleteAllReparentingAccountsNotAllowed","ReparentingNotAllowedForNonAdvertiserCustomer","ReparentingNotAllowedForAggregatorCustomer","PaymentInstrumentIdNotFound","TargetCustomerIdInvalid","TargetCustomerNumberInvalid","CustomerLifecycleStatusInvalid","NewBillToCustomerNotManageAccount","PaymentInstrumentIdInvalid","InvoiceMustBePremiumOrInternalCustomer","ReparentingAccountIdInvalid","AccountReparentingCampaignLimitValidationFailed","AccountReparentingCustomerExclusionValidationFailed","AccountReparentingFailedByUnmovedAudiences","AccountReparentingFailedByMovedAudiences","CustomerLevelAccountCreationIsSuspended","FinalReviewLocStrings","FinalReviewPageHeader","FinalReviewPageTitle","FinalReviewSummaryText1","FinalReviewSummaryText2","FinalReviewSummaryText3","FinalReviewSummaryText4","FinalReviewSummaryText5","FinalReviewSummaryText6","FinalReviewConfirmationQuestion","FinalReviewConfirmationText","FinalReviewSummaryText101","FinalReviewSummaryText102","FinalReviewSummaryText103","FinalReviewSummaryText104","FinalReviewSummaryText105","FinalReviewSubmitSuccess","simpleFormLegacyLocStrings","SimpleForm_Button_Save","SimpleForm_Button_Cancel","Grid_Edit_Cell","KoSchema_String_RemainingCharactersText","ManagerAccountLocStrings","ManagerAccountPageHeader","ManagerAccountTitle1","ManagerAccountInputLabel","ManagerAccountInputPlaceholder","PreApprovalWarningMessage","IdentifyRecipientStepTitle","IdentifyRecipientStepDetails","SetUpBillingStepTitle","SetUpBillingStepDetails","TakeLeaveStepTitle","TakeLeaveStepDetails","TakeLeaveStepDetailsOfUET","TakeLeaveStepDetailsNote","NoteLabel","ProcessingTimeStepTitle","ProcessingTimeStepDetails","NotAValidManagerAccount","PendingTransferRequestSummaryLocStrings","PendingTransferPageTitle","CompletedTransferPageTitle","PendingTransferPageMessage","ReviewBillingLocStrings","Header","NoPIGridData","Description","IoApprovalDialogTitle","IoApprovalDialogLine1","IoApprovalDialogLine2","IoApprovalDialogOption1","IoApprovalDialogOption2","IoApprovalDialogConfirm","IoApprovalDialogGoBack","PiBulkFixDialogTitle","PiBulkFixDialogLine1","PiBulkFixDialogLine2","PiBulkFixDialogApply","PiBulkFixDialogNo","On","Off","ReviewLinkingLocStrings","NoGridData","ReviewAccountLinkingHeader","ReviewAccountPageDescription","KeepAllLinksLabel","UnlinkAllLabel","KeepLinkLabel","UnlinkLabel","SelectLabel","AccountLabel","ActionLabel","SearchAccounts","LinkedManagerAccountLabel","AccountLinkAction","LinkConfirmationMissingTitle","LinkConfirmationMissingMessage","PleaseMakeASelection","SetupBillingLocStrings","BulletPoint1","BulletPoint2","BulletPoint3","WhoPays","HowYouPay","PostpayThreshold","WhatYouPayWith","InsertionOrderWarning","AutoRechargeWarning","AccountsWillGoDarkDialogTitle","AccountsWillGoDarkDialogMessage","RetainBillingSettingsDialogTitle","RetainBillingSettingsDialogMessage","Accept","Cancel","ApplyAll","Decline","WhoPaysError","TakeoverBillingLocStrings","TakeoverBillingHeader","TakeoverBillingNonePageDescription","TakeoverBillingPageDescription","TakeoverBillingNote","KeepCurrentBillToForAll","SetupNewBillToForAll","SetupNewBillTo","KeepCurrentBillTo","Select","Account","CurrentPaymentSetting","CurrentPaymentMethod","TransferDecision","TransferSummaryLocStrings","SummaryPaneHeader","DownloadSummaryLinkLabel","CurrentManagerAccountLabel","NewManagerAccountLabel","AccountsSelectedLabel","NumberOfAccounts","RemoveAccount","SelectedAccountsLabel","RatinedAccountLinksLabel","UnlinkedAccountLinksLabel","RetainedBillToAccountsLabel","NewBillToAccountsLabel","BillingSetupLabel","PaymentSetting","PreapprovedIOLabel","InsertionOrderStatus","AccountLinksLabel","UnlinkedAccountsLabel","RetainedAccountsLabel","NewBillToLabel","RetainedBillToLabel","PaymentOption","InsertionOrders","InsertionOrdersApproved","InsertionOrdersDeclined","InsertionOrdersPending","UETTagLabel","UETTagTransfered","AccountLoseAccess","UETTagsTransfered","AccountsLoseAccess","UETPopoverTitle","LoseAccessAccountPopoverTitle","SearchUETTags","CustomerPropType","PropTypes","Id","isRequired","Number","CurrencyType","PaymentType","TimeZone","TaxInformation","Key","Value","BusinessAddress","BusinessName","City","Country","Line1","Line2","PostalCode","StateOrProvince","CountryName","StateOrProvinceName","IsValid","ValidationVersionId","PreferredBillToPaymentInstrumentId","BusinessPhone","AccountPropTypes","Email","Customer","value","currency","countries","ControlledCurrencyCountryId","scenario","name","activity","logger","instrumentation","Accounts","AccountIds","CurrentCustomer","CurrentUser","SourceCustomerId","CurrentLocale","Token","PageTrackingId","ServicesEndpoints","ClientCenterUIAPI","AccountsSummaryUrl","ReparentingId","TagInfoPropType","OwnedAudience","SharedAudience","ConversionGoal","AudienceAssociation","Move","Audiences","Goals","TagUsedByInfosImpactedByTransfer","TagUsedByInfosImpactedByKeep","gridSelectEditorStyles","paddingTop","borderWidth","paddingBottom","borderBottomColor","display","gridInlineErrorStyle","_ref$palette","palette","_ref$iconFontFamily","iconFontFamily","color","red","listStyleType","marginBottom","fontFamily","padding","fontSize","content","getBlockerStyle","size","width","height","border","borderLeftColor","themePrimary","borderRightColor","themeLight","borderTopColor","borderRadius","animation","legacyUIBlockerStyle","components","_ref2","_ref2$palette","position","backgroundColor","top","left","outline","white","_objectSpread","margin","getWizardFooterStyles","borderTop","neutralLight","paddingLeft","marginRight","neutralLighter","neutralPrimary","float","marginLeft","getStepProgressItemGlyphicon","step","path","indexOf","isSelected","containsSelected","isBehind","getWizardProgressListContainerStyles","completedBorder","completedIcon","inProgressIcon","incompleteBorder","incompleteIcon","background","stepContentBorder","neutralQuaternaryAlt","getColors","minWidth","borderRight","listStyle","borderLeft","lineHeight","fontWeight","getWizardStepsContainerStyles","flex","marginTop","getWizardStyles","datePickerStyle","wizardListContainer","wizardStepsContainer","arWizardContainer","cursor","tableBorder","borderBottom","verticalAlign","textAlign","paddingRight","textOverflow","overflow","whiteSpace","justifyContent","alignItems","clear","getHeaderStyles","getBodyStyles","neutralSecondaryAlt","zIndex","boxShadow","minHeight","fontStyle","themeDark","maxWidth","body","neutralSecondary","getGridStyles","grid","getTableStyles","visibility","opacity","getGlobalStyles","getARWGridStyles","flexDirection","getARWModalViewStyles","getErrorLabelStyles","getFinalReviewPageStyles","_ref3","_ref3$palette","finalReviewPageContainer","arwModalViewContainer","getManagerInputPageStyles","_ref4","_ref4$palette","managerAccountInputContainer","getSetupBillingPageStyles","_ref5","_ref5$palette","setupBillingPageContainer","getReviewBillingPageStyles","_ref6","_ref6$palette","reviewBillingPageContainer","getReviewLinkingPageStyles","_ref7","_ref7$palette","reviewLinkingPageContainer","getTakeoverBillingPageStyles","_ref8","_ref8$palette","takeoverBillingPageContainer","getReviewUETTagsPageStyles","_ref9","_ref9$palette","reviewUETTagsPageContainer","getSummaryPaneStyles","_ref10","_ref10$palette","summaryPaneContainer","getInfoTileStyles","_ref11","_ref11$palette","infoTileContainer","_ref12","_ref12$palette","getAccountsPopoverStyles","accountsPopover","right","pointerEvents","getEntityPopoverStyles","entityPopover","themePalette","neutralTertiary","themeDarkAlt","themeDarker","convertAccountModelToServerContext","account","linkedManagers","AccountCustomerRelations","rel","isManagingCustomer","billToManager","isBillToCustomer","parentManager","isParentCustomer","ParentManager","RelatedToCustomerId","RelatedToCustomerName","RelatedToCustomerNumber","BillToManager","PaymentSettingText","PaymentMethodText","BillTo","BillToChange","PaymentInstrumentId","InsertionOrder","PrepayConfig","LinkedManagers","manager","Unlink","transformMtIoToUIFormat","ioStartDate","FromDate","ioEndDate","ThruDate","ioBudget","SpendCapAmount","ioPurchaseOrder","AgencyIdOrPo","ioOrderName","FriendlyName","ioNotes","Comment","ioStatus","Status","transformIoUIToMtFormat","areUiInsertionOrdersEqual","ioA","ioB","getTime","isUiIoSet","io","areIoRequiredFieldsSet","couldSetInsertionOrder","paymentOptionId","paymentInstrumentId","toClientSideBillingSetting","billingSetting","_billingSetting$BillT","BillToChangeSetting","NewBillToCustomerId","NewBillToCustomerName","NewBillToCustomerNumber","NewPaymentInstrumentId","NewPaymentOptionId","TopUpAmount","EstimatedTaxRate","IsRecurringPayment","Date","billToCustomer","insertionOrder","prepayConfig","addFundsAmount","estimatedTaxRate","isAutoRechargeEnabled","isValid","toServerSideBillingSetting","BillToActionTypes","SELECT","CURRENT","NEW","LinkActionTypes","UNLINK","LINK","JobStatusTypes","Draft","WaitingAccept","Accepted","Declined","WaitingIOApproval","IOApproved","IODeclined","Created","InProgress","Failed","Succeeded","Deleted","PostProcessingInProgress","PostProcessingFailure","JobUpdateTypes","StatusUpdate","TargetCustomerUpdate","CustomerErrorsUpdate","AccountSettingsUpdate","ReparentingAccountDelete","DefaultBillingSettingUpdate","notSetPaymentInstrumentId","defaultPrepayConfig","INSTRUMENTATION_SYSTEM_NAME","INSTRUMENTATION_SUB_SYSTEM","isInvoicePaymentOption","isPrepayPaymentOption","stringContains","textValue","searchValue","preferenceName","AccountsWelcomeBar","welcomePanelAccordion","customerName","IsAccountLevelImportStatusGridEnabled","permissions","preferenceService","onExpanded","onCollapsed","preference","findByNameAtUserLevel","showHierarchyPanel","Data","_useState","useState","_useState2","_slicedToArray","expanded","setExpanded","formattedTitle","curlyTemplate","titleFormatter","PanelGroup","accordion","classNames","activeKey","onSelect","setAtUserLevel","Panel","eventKey","role","Heading","Title","toggle","Collapse","onEntered","onExited","HelpLink","query","noop","StyledAccountsWelcomeBar","withPreference","textDecoration","black","backgroundImage","HierarchyVisualizationImg","backgroundRepeat","backgroundPosition","learnMoreHelpIds","Hold","PendingPaymentMethod","PausedZeroBalance","PausedNoValidIO","PendingNewCustomer","Processing","AccountVerificationHold","contactSupport","externalLinkReasons","alertReasonId","alertPausedReasons","accountInactiveCauseCode","i18nPrefixes","legacyKeysMap","AccountAlertCategory_1","AccountAlertCategory_2","AccountAlertCategory_3","AccountAlertCategory_4","AccountAlertCategory_5","AccountAlertCategory_6","AccountAlertCategory_7","AccountAlertCategory_8","AccountAlertCategory_9","AccountAlertCategory_11","AccountAlertCategory_12","AccountAlertCategory_12_CN","AccountAlertCategory_13","AccountAlertCategory_14","AccountAlertCategory_15","AccountAlertCategory_16","AccountAlertCategory_17","AccountAlertCategory_18","AccountAlertCategory_19","AccountAlertDescription_Hold","AccountAlertDescription_Inactive","AccountAlertDescription_PausedDueToSystemIssue","AccountAlertDescription_PausedNoValidIO","AccountAlertDescription_PausedZeroBalance","AccountAlertDescription_PendingNewCustomer","AccountAlertDescription_PendingPaymentMethod","AccountAlertDescription_Processing","AccountAlertDescription_Deleted","AccountAlertDescription_AccountMissingVATId","AccountAlertDescription_AccountVerificationHold","AccountAlertDescription_AccountVerificationHold_CN","AccountAlertDescription_AccountTradeScreeningUnderReview","AccountAlertDescription_AccountTradeScreeningLicenseRequired","AccountAlertDescription_AccountTradeScreeningDataIssue","AccountAlertDescription_BillToCustomerTradeScreeningUnderReview_BillTo","AccountAlertDescription_BillToCustomerTradeScreeningUnderReview_Own","AccountAlertDescription_BillToCustomerTradeScreeningLicenseRequired_BillTo","AccountAlertDescription_BillToCustomerTradeScreeningLicenseRequired_Own","AccountAlertDescription_BillToCustomerTradeScreeningDataIssue_BillTo","AccountAlertDescription_BillToCustomerTradeScreeningDataIssue_Own","AccountAlertDescription_AccountMissingABL","AccountAlertReason_9","AccountAlertReason_10","AccountAlertReason_11","AccountAlertReason_13","AccountAlertReason_14","AccountAlertReason_15","AccountAlertReason_16","AccountAlertReason_17","AccountAlertReason_18","AccountAlertReason_19","AccountAlertReason_21","AccountAlertReason_23","AccountAlertReason_24","AccountAlertReason_28","AccountAlertReason_29","AccountAlertReason_30","AccountAlertReason_31","AccountAlertReason_32","AccountAlertReason_33","AccountAlertReason_34","AccountAlertReason_35","AccountAlertReason_40","AccountAlertAction_Hold","AccountAlertAction_InactivePaused","AccountAlertAction_PausedNoValidIO","AccountAlertAction_PausedZeroBalance","AccountAlertAction_PendingPaymentMethod","AccountAlertAction_AccountMissingVATId","AccountAlertAction_AccountVerificationHold","AccountAlertAction_AccountTradeScreeningDataIssue","AccountAlertAction_BillToCustomerTradeScreeningDataIssue_BillTo","AccountAlertAction_BillToCustomerTradeScreeningDataIssue_Own","AccountAlertAction_BillToCustomerTradeScreeningUnderReview_BillTo","AccountAlertAction_BillToCustomerTradeScreeningLicenseRequired_BillTo","AccountAlertAction_AccountMissingABL","LearnMore","Contact_Support","AccountGrid_Alerts","ModalPopup_BizLoc_Close","Format_CustomerNameAndId","getLearnMore","reason","popupConstants","transformReasonCode","opts","transformer","BillToCustomerTradeScreeningLicenseRequired","isCustomerBillToCustomer","BillToCustomerTradeScreeningUnderReview","BillToCustomerTradeScreeningDataIssue","isChinaAccount","getContactSupport","includes","url","AccountInactiveReasons","accountInactiveReasons","vnextI18n","serverContext","scope","siteMap","aid","_useFooterConfig","useFooterConfig","locSettings","supportUrlConfigKey","useMemo","buildLegacyI18n","isChinaAivPhase3Enabled","safeTranslate","useCallback","key","getAlertCategory","i18nPrefix","reasonId","suffix","getAlertDescription","transformedReason","getAlertCauses","causes","causeExplinations","cause","causeCodeId","causeExplination","push","getAlertActionText","uid","cid","ccUrlBuilders","getUrlBuilders","ccBaseUrl","Urls","ClientCenterBaseUrl","cidFetcher","uidFetcher","getDefaultIsShortUrl","getAlertAction","isExternal","_ref$ccUrlBuilders","BaseUrlBuilder","CreditHoldUrlBuilder","PaymentmethodsUrlBuilder","PaymentUrlBuilder","InsertionOrderUrlBuilder","AccountSettingsUrlBuilder","AccountUrlBuilder","TradeScreeningTransformationUrlBuilder","action","isPendingFilterSet","AccountMissingVATId","AccountMissingABL","BillToCustomerTradeScreeningUnderReview_BillTo","BillToCustomerTradeScreeningDataIssue_BillTo","BillToCustomerTradeScreeningLicenseRequired_BillTo","AccountTradeScreeningDataIssue","from","BillToCustomerTradeScreeningDataIssue_Own","alerts","map","category","Reason","description","Causes","learnMore","filter","alert","Fragment","getStyle","getActionCalloutStyle","ACCOUNTS_GRID_POPOVER_CLASSNAME","ACCOUNTS_GRID_CALLOUT_MOUNTING_DOM","getAutoPlacement","calloutMaxWidth","getBoundingClientRect","window","innerWidth","dismissCallout","ReactDOM","document","getElementById","renderCallout","title","popoverId","popoverClassName","contentView","contentProps","_ref$placement","placement","_ref$closeButtonAriaL","closeButtonAriaLabel","Popover","onClose","focusLockContent","isClickInteractive","hasCloseButton","isDeletedMatcher","getCommonEvents","view","handleDirectManagersCalloutEvent","event","stopPropagation","gridView","keyOfElement","isInternal","data","ManagerAccounts","customer","number","CustomerNumber","URI","location","setSearch","String","removeSearch","hash","toString","DirectManagersCallout","currentTarget","parentGrid","showDirectManagersCallout","itemWithKey","IsInternalUser","OwnerId","BillToCustomerId","showInactiveReasonCallout","Utils","filterEnterKeyDown","preventDefault","$","Navigation","toCustomerScopeLandingPage","relatedTarget","closest","trigger","getGridFilterConfig","entitySchema","cachedFilterService","AccountSummaryFilterImprovementEnabled","gridName","updateAccountEntitySchemaForFilterConfig","_ref$deps","deps","appConfig","accountSchema","schemaI18nCampaign","legacyGlobalI18n","accountSummaryi18n","preferenceStoreFactory","customColumnPreference","dataContextManager","jsData","sessionStore","cacheService","edm","state","cloneDeep","filterConfig","cachedEntitySchema","featureName","getCommonFilterConfig","globalConfig","jsdata","editor","searchbox","placeholder","searchProperty","searchOperator","getFilterConfig","getFilters","loadAccountsGridFactoryWebpack","contexts","Promise","resolve","getAccountsGridFactory","accountsGridLegacyDepsListWebpack","then","createAccountsGridForUiNext","pageName","_ref$preexecuteFlag","preexecuteFlag","perfMarker","addDateChangeListener","gridType","pageElementSelector","crossPageSelectPlugin","toolbarPlugin","_ref$getEvents","getEvents","_ref$accountsGridLega","lazyLoadDep","loadAccountsGridFactoryFunc","_ref2$preexecuteFlag","_ref2$getEvents","loadAccountsGridFactory","createAccountsGridView","_lazyLoadDep","dateUtil","appState","getSegPreference","getSegType","segmentTimeChecker","fetchPaginationConfig","azureUrlRewrite","CacheService","waterfallFilterStorage","WaterfallFilterStorage","getGridPreferences","preferenceConfig","dynamic","existingDataSource","DataSourceStore","get","filterService","schemaProcessor","flattenEntitySchema","filterEntityOptions","odata","odataOptionsProcessor","fieldMap","buildNameToPropertyMapping","ignoreCase","odataOptions","custom","basicStorageOptions","editableFilterStorage","storageFactory","create","FilterService","hasUnifiedSmartAccount","HasUnifiedSmartAccount","parentPerfMarker","viewport","isForVNext","getAdditionalPlugins","plugin","projectionGridScopeNavigator","config","definePlugin","getPGridColumnResizePlugin","getAdditionalEvents","p$daterange","waterfallDateFilterProcessor","WaterfallFilterType","DateFilter","createFactory","getOverflowEllipsisStyle","getGridPopoverTargetStyle","getFluctuationGridCellStyle","getBudgetCenterEntryValueStyle","green","transform","flexShrink","flexGrow","getCalloutStyles","getAccountInactiveReasonsStyle","getDirectManagersCalloutStyle","ContentView","isLazy","enableAutoFixPlacement","calloutMinWidth","props","_objectWithoutProperties","_excluded","autoFixPlacement","setAutoFixPlacement","useEffect","on","off","handleMouseLeave","fixedPlacement","_target$getBoundingCl","onMouseLeave","Callout","closeButton","PopoverWithLock","lockKey","PopoverWithLockInner","withLock","force","keyVault","hoveringPopup","FallbackCallOutContent","React","Glyphicon","glyph","ActionCallout","expectedPlacement","setPlacement","open","calloutCloseButton","DirectManagersContent","item","getToolbarBlockedIconStyle","buttonId","getLinkAccountButtonStyle","LinkingReturnPageId","requestsSent","requestsReceived","management","performance","defaultRouteForCustomerScope","getRoutePathById","search","values","history","pathname","stringify","toRequestPage","isSent","toResendRequestPage","requestId","linkType","resendRequestRoute","linkingReturnPageId","toAccountTransferPage","rpid","sourceCid","sourcecid","toPendingTransferRequestPage","invalidateAccountsData","jsdataCampaign","destroyAll","forceAccountsGridRefresh","getjsDataCampaign","deselectAll","refresh","eventHandler","keyCode","Enter","_len","args","Array","_key","apply","AccountMode","EnforcementActionType","buildToobarConfig","items","set","Map","getNavigationToolbarConfig","routeId","_ref3$context","context","Error","validaDependencies","displayActionButton","type","createNavigationToolbarItemFactory","getDefaultConfig","_ref5$config","configOverride","isDeletedAccount","getDefaultAccountCreateButtonConfig","disabled","Boolean","DSAEnforcement","EnforcementActionId","SuspendAccountCreation","iconLeftGlyphName","noResponsive","IsManagementDashboardEnabled","IsCustomerHierarchyEnabled","IsCreateAccountEnabled","IsNewBillToCustomerHierarchyEnabled","ParentCustomerId","getCCUrlBuilders","getLinkingReturnPageId","extractPattern","RegExp","currentLocation","match","getDefaultSendRequestSharedConfig","IsLinkAccountEnabled","ToolbarConfigs","getCreateAccountButton","getCreateAccountOBOButton","pathToCreateOBO","CustomersUrlBuilder","rurl","siteMapId","getSendRequestButton","getSendRequestNavItem","getDeleteAccountNavItem","_ref9$key","_ref9$context","getBulkActionAccountsGrid","selectedAccounts","selectedItems","hasNoDeletedAccounts","isSmartAccount","Smart","canDeleteAccounts","IsSmartUIEnabled","IsInternal","IsDeleteAccountEnabled","bulkDeleteAccounts","successCallback","getReactivateAccountNavItem","_ref10$key","_ref10$context","hasAllDeletedAccounts","IsReactivateAccountEnabled","bulkReactivateAccounts","getUnlinkAccountNavItem","_ref11$key","_ref11$context","getBulkUnlinkAccounts","canUnlinkAccount","IsUnlinkAccountEnabled","bulkUnlinkAccounts","customerId","userId","onConfirm","accounts","cancelRedirectData","getTransferAccountNavItem","_ref13","_ref13$key","_ref13$context","getBulkTransferAccounts","IsTransferAccountEnabled","bulkTransferAccounts","onSuccessCallBack","_ref14","getMandateAgreementRequiredNavItem","mandateAgreementRequiredUrl","MandateAgreementRequiredUrlBuilder"],"sourceRoot":""}