{"version":3,"file":"static/js/application.async.non-landing~a97549ed.760a0e9e.chunk.js","mappings":"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","sources":["../../../../account-reparenting/packages/account-reparenting-actions/src/arw-js-data-context-provider.js","../../../../account-reparenting/packages/account-reparenting-actions/src/use-data-actions.js","../../../../account-reparenting/packages/account-reparenting-actions/src/account-actions.js","../../../../account-reparenting/packages/account-reparenting-actions/src/customer-actions.js","../../../../account-reparenting/packages/account-reparenting-actions/src/payment-instrument-actions.js","../../../../account-reparenting/packages/account-reparenting-actions/src/billing-actions.js","../../../../account-reparenting/packages/account-reparenting-actions/src/reparenting-job-actions.js","../../../../account-reparenting/packages/account-reparenting-actions/src/reparenting-validate-actions.js","../../../../account-reparenting/packages/account-reparenting-actions/src/uet-tag-actions.js","../../../../account-reparenting/packages/account-reparenting-context-provider/src/arw-server-context.js","../../../../account-reparenting/packages/account-reparenting-context-provider/src/arw-context-provider.js","../../../../account-reparenting/packages/account-reparenting-context-provider/src/hooks.js","../../../../account-reparenting/packages/account-reparenting-instrumentation/src/schemas.js","../../../../account-reparenting/packages/account-reparenting-instrumentation/src/instrumentation.js","../../../../account-reparenting/packages/account-reparenting-instrumentation/src/instrumentation-context.js","../../../../account-reparenting/packages/account-reparenting-popover/src/index.js","../../../../account-reparenting/packages/account-reparenting-step-base-layout/src/arw-step-footer.js","../../../../account-reparenting/packages/account-reparenting-step-base-layout/src/arw-step-base-layout.js","../../../../account-reparenting/packages/transfer-request-summary/src/accounts-popover.js","../../../../account-reparenting/packages/transfer-request-summary/src/account-manager-popover.js","../../../../account-reparenting/packages/transfer-request-summary/src/button-or-static.js","../../../../account-reparenting/packages/transfer-request-summary/src/icons.js","../../../../account-reparenting/packages/transfer-request-summary/src/accountlinks-summary.js","../../../../account-reparenting/packages/transfer-request-summary/src/accountbilling-summary.js","../../../../account-reparenting/packages/transfer-request-summary/src/account-payment-summary.js","../../../../account-reparenting/packages/transfer-request-summary/src/insertion-orders-summary.js","../../../../account-reparenting/packages/transfer-request-summary/src/uet-tags-summary.js","../../../../account-reparenting/packages/transfer-request-summary/src/index.js","../../../../account-reparenting/packages/account-reparenting-step-summary/src/index.js","../../../../account-summary-tabs/packages/accounts-page-description/src/page-description.js","../../../../account-summary-tabs/packages/accounts-page-description/src/styles/page-description-styles.js","../../../../ad-extensions/packages/ad-extensions-associations-factory/src/styles/ad-extension-editors-common-styles.js","../../../../ad-extensions/packages/ad-extensions-associations-factory/src/styles/ad-extensions-associations-styles.js","../../../../ad-extensions/packages/ad-extensions-associations-factory/src/ad-extensions-associations-wrapper.js","../../../../ad-extensions/packages/ad-extensions-associations-factory/src/styles/ad-extension-editor-global-styles.js","../../../../ad-extensions/packages/ad-extensions-associations-factory/src/ad-extension-associations.js","../../ad-extensions-data/src/adextension-schema-processor.js","../../ad-extensions-data/src/filter-config.js","../../ad-extensions-data/src/data-fetch-config.js","../../ad-extensions-data/src/column-config.js","../../ad-extensions-data/src/data-fetch-source.js"],"sourcesContent":["import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { CcJsDataContextProvider } from '@bingads-webui-cc-react/js-data-rest';\r\nimport { DomChildrenPropTypes } from '@bingads-webui-campaign-react/account-reparenting-props';\r\nimport { appendJsDataErrorSummary, handleAjaxAuthFailure } from '@bingads-webui-campaign-react/account-reparenting-errors';\r\n\r\nexport const ARWJsDataContextProvider = ({\r\n  children,\r\n  serverContext: {\r\n    CurrentUser,\r\n    CurrentCustomer,\r\n    ServicesEndpoints,\r\n  },\r\n}) => (\r\n  <CcJsDataContextProvider\r\n    userId={CurrentUser.Id}\r\n    customerId={CurrentCustomer.Id}\r\n    appendErrorSummary={appendJsDataErrorSummary}\r\n    handleAjaxAuthFailure={handleAjaxAuthFailure}\r\n    clientCenterBaseUrl={ServicesEndpoints.ClientCenterUIAPI}\r\n  >\r\n    {children}\r\n  </CcJsDataContextProvider>\r\n);\r\n\r\nARWJsDataContextProvider.propTypes = {\r\n  children: DomChildrenPropTypes.isRequired,\r\n  serverContext: PropTypes.shape({\r\n    CurrentCustomer: PropTypes.shape({\r\n      Id: PropTypes.number.isRequired,\r\n    }).isRequired,\r\n    CurrentUser: PropTypes.shape({\r\n      Id: PropTypes.number.isRequired,\r\n    }).isRequired,\r\n    ServicesEndpoints: PropTypes.shape({\r\n      ClientCenterUIAPI: PropTypes.string.isRequired,\r\n    }).isRequired,\r\n  }).isRequired,\r\n};\r\n","import { useMemo } from 'react';\r\nimport { useARWContextValue } from '@bingads-webui-campaign-react/account-reparenting-context-provider';\r\nimport { useJsDataContext } from '@bingads-webui-cc-react/js-data-rest';\r\n\r\nexport const useAction = (Action) => {\r\n  const serverContext = useARWContextValue();\r\n  const jsData = useJsDataContext();\r\n\r\n  const action = useMemo(() => new Action({\r\n    reparentingId: serverContext.ReparentingId,\r\n    sourceCustomerId: serverContext.SourceCustomer.Id,\r\n    targetCustomerId: serverContext.TargetCustomer.Id,\r\n    jsData,\r\n  }), [Action, serverContext, jsData]);\r\n\r\n  return action;\r\n};\r\n","import { useAction } from './use-data-actions';\r\n\r\nclass AccountActions {\r\n  constructor({ jsData }) {\r\n    this.jsData = jsData;\r\n  }\r\n\r\n  fetch = id => this.jsData.Account.find(id);\r\n\r\n  fetchAll = ids => this.jsData.Account.findAll({ accountIds: ids });\r\n}\r\n\r\nexport const useAccountActions = () => useAction(AccountActions);\r\n","import { useAction } from './use-data-actions';\r\n\r\nclass CustomerActions {\r\n  constructor({ jsData }) {\r\n    this.jsData = jsData;\r\n  }\r\n\r\n  fetch = id => this.jsData.Customer.find(id);\r\n  updateServiceLevel = ({ id, serviceLevel }) =>\r\n    this.jsData.ServiceLevel.update(id, { serviceLevel }, { cacheResponse: false });\r\n  updatePilotFeatures = ({ id, pilotFeatures }) =>\r\n    this.jsData.PilotFeatures.update(id, { pilotFeatures }, { cacheResponse: false });\r\n}\r\n\r\nexport const useCustomerActions = () => useAction(CustomerActions);\r\n","import { usePromise } from '@bingads-webui-react/async-utils';\r\n\r\nimport { useAction } from './use-data-actions';\r\n\r\nclass PaymentInstrumentActions {\r\n  constructor({ jsData }) {\r\n    this.jsData = jsData;\r\n  }\r\n\r\n  fetch = billToCustomerId =>\r\n    this.jsData.PaymentInstrument.findAll({ customerId: billToCustomerId });\r\n\r\n  fetchWithId = piId =>\r\n    this.jsData.PaymentInstrument.find(piId);\r\n}\r\n\r\nexport const usePaymentInstrumentActions = () => useAction(PaymentInstrumentActions);\r\n\r\nexport const usePaymentInstruments = (billToCustomerId) => {\r\n  const paymentInstrumentActions = usePaymentInstrumentActions();\r\n\r\n  const { data: paymentInstruments = [] } = usePromise(\r\n    () => paymentInstrumentActions.fetch(billToCustomerId),\r\n    [paymentInstrumentActions, billToCustomerId]\r\n  );\r\n\r\n  return paymentInstruments;\r\n};\r\n","import { useAction } from './use-data-actions';\r\n\r\nclass BillingActions {\r\n  constructor({ jsData }) {\r\n    this.jsData = jsData;\r\n  }\r\n\r\n  fetchBulkTaxEstimates = accountIds =>\r\n    this.jsData.BulkEstimateTaxes.findAll({ accountIds });\r\n}\r\n\r\nexport const useBillingActions = () => useAction(BillingActions);\r\n","import { useAction } from './use-data-actions';\r\n\r\nclass ReparentingJobActions {\r\n  constructor({\r\n    reparentingId,\r\n    sourceCustomerId,\r\n    targetCustomerId,\r\n    jsData,\r\n  }) {\r\n    this.reparentingId = reparentingId;\r\n    this.sourceCustomerId = sourceCustomerId;\r\n    this.targetCustomerId = targetCustomerId;\r\n    this.jsData = jsData;\r\n  }\r\n\r\n  add = ({ accountIds }) =>\r\n    this.jsData.AccountReparentingJobAdd.create({ accountIds });\r\n\r\n  update = ({\r\n    updateType,\r\n    lifeCycleStatus,\r\n    targetCustomerId,\r\n    accountIds,\r\n    accountLinkingSettings,\r\n    accountBillingSettings,\r\n    defaultBillingSetting,\r\n  }) =>\r\n    this.jsData.AccountReparentingJobUpdate.update(this.reparentingId, {\r\n      updateType,\r\n      lifeCycleStatus,\r\n      accountIds,\r\n      sourceCid: this.sourceCustomerId,\r\n      targetCid: targetCustomerId || this.targetCustomerId,\r\n      accountLinkingSettings,\r\n      accountBillingSettings,\r\n      defaultBillingSetting,\r\n    });\r\n\r\n  load = () =>\r\n    this.jsData.AccountReparentingJobLoad.find(this.reparentingId, {\r\n      params: {\r\n        sourceCid: this.sourceCustomerId,\r\n        targetCid: this.targetCustomerId,\r\n      },\r\n    });\r\n\r\n  loadAccounts = ids => this.jsData.AccountReparentingLoadAccounts.findAll({ accountIds: ids });\r\n\r\n  submit = () =>\r\n    this.jsData.AccountReparentingJobSubmit.create({\r\n      id: this.reparentingId,\r\n      sourceCid: this.sourceCustomerId,\r\n    });\r\n}\r\n\r\nexport const useReparentingJobActions = () => useAction(ReparentingJobActions);\r\n","import { useAction } from './use-data-actions';\r\n\r\nclass ReparentingValidateActions {\r\n  constructor({ reparentingId, sourceCustomerId, jsData }) {\r\n    this.reparentingId = reparentingId;\r\n    this.sourceCustomerId = sourceCustomerId;\r\n    this.jsData = jsData;\r\n  }\r\n\r\n  accountIds = ({ accountIds }) =>\r\n    this.jsData.AccountReparentingValidateAccounts.create({ accountIds });\r\n\r\n  targetCustomer = ({ targetCustomerNumber }) =>\r\n    this.jsData.AccountReparentingValidateTargetCustomer.create({\r\n      targetCustomerNumber,\r\n      id: this.reparentingId,\r\n      sourceCid: this.sourceCustomerId,\r\n    }, { cacheResponse: false });\r\n\r\n  linkSettings = ({ accountLinkingSettings }) =>\r\n    this.jsData.AccountReparentingValidateLinkInfo.create({\r\n      id: this.reparentingId,\r\n      sourceCid: this.sourceCustomerId,\r\n      accountLinkingSettings,\r\n    }, { cacheResponse: false });\r\n\r\n  billingSettings = ({ accountBillingSettings }) =>\r\n    this.jsData.AccountReparentingValidateBillingInfo.create({\r\n      id: this.reparentingId,\r\n      sourceCid: this.sourceCustomerId,\r\n      accountBillingSettings,\r\n    }, { cacheResponse: false });\r\n\r\n  fullValidate = () =>\r\n    this.jsData.AccountReparentingFullValidate.create({\r\n      id: this.reparentingId,\r\n      sourceCid: this.sourceCustomerId,\r\n    });\r\n}\r\n\r\nexport const useReparentingValidateActions = () => useAction(ReparentingValidateActions);\r\n","import { edmCampaign } from '@bingads-webui/edm-campaign';\r\nimport { odata } from '@bingads-webui/http-util';\r\nimport { useAction } from './use-data-actions';\r\n\r\nclass UETTagActions {\r\n  constructor({\r\n    reparentingId,\r\n    sourceCustomerId,\r\n  }) {\r\n    this.reparentingId = reparentingId;\r\n    const edmCustomer = edmCampaign.Customers.$withKey(sourceCustomerId);\r\n    this.userSettings = edmCustomer.ReparentingUserSettings.$withKey(this.reparentingId);\r\n  }\r\n\r\n  load = () => this.userSettings.get().toPromise();\r\n\r\n  submit = UETTags => this.userSettings['Default.PostReparentingUserSetting'].$makeCall({\r\n    payload: { TagSettings: UETTags },\r\n  }).toPromise();\r\n\r\n  download = () =>\r\n    odata.get(this.userSettings['Default.DownloadSummary'].odataURL, {\r\n      xhrFields: {\r\n        responseType: 'blob',\r\n      },\r\n      dataType: 'binary',\r\n      oDataToken: window.campaignODataConfigs ? window.campaignODataConfigs.Token : '',\r\n    });\r\n}\r\n\r\nexport const useUETTagActions = () => useAction(UETTagActions);\r\n","import React, { useContext } from 'react';\r\n\r\nexport const ARWServerContext = React.createContext({\r\n  Value: {},\r\n  Actions: {},\r\n  Permissions: {},\r\n});\r\n\r\nexport const useARWContextValue = () => useContext(ARWServerContext).Value;\r\nexport const useARWContextActions = () => useContext(ARWServerContext).Actions;\r\nexport const useARWContextPermissions = () => useContext(ARWServerContext).Permissions;\r\n","import React from 'react';\r\nimport _ from 'underscore';\r\nimport { Constants } from '@bingads-webui-clientcenter/entity-utils';\r\nimport { ServerContextProviderPropTypes } from '@bingads-webui-campaign-react/account-reparenting-props';\r\nimport { areUiInsertionOrdersEqual, convertAccountModelToServerContext, toClientSideBillingSetting } from '@bingads-webui-campaign-react/account-reparenting-utils';\r\nimport { ARWServerContext } from './arw-server-context';\r\n\r\nexport class ARWContextProvider extends React.Component {\r\n  constructor(props) {\r\n    super(props);\r\n    const {\r\n      serverContext: {\r\n        Accounts,\r\n        AccountIds,\r\n        CurrentCustomer,\r\n        SourceCustomerId,\r\n      },\r\n    } = props;\r\n    const sourceCustomerId = SourceCustomerId && _.isNumber(SourceCustomerId) ?\r\n      SourceCustomerId :\r\n      CurrentCustomer.Id;\r\n\r\n    // TargetCustomer and SourceCustomer are loaded during JobLoad Call\r\n    this.state = {\r\n      TargetCustomer: {},\r\n      SourceCustomer: { Id: sourceCustomerId },\r\n      NewBillTo: {\r\n        Customer: null,\r\n        PaymentOptionId: null,\r\n        PaymentInstrumentId: null,\r\n        InsertionOrder: null,\r\n        PrepayConfig: null,\r\n      },\r\n      Timestamp: null,\r\n      AccountIds,\r\n      Accounts,\r\n      MandatoryNewBillToAccountIds: [],\r\n      AccountBillToCustomersMap: {},\r\n      IOPreApprovalRequired: false,\r\n      UETTags: null,\r\n      ShowSummaryPaneLinkSettings: false,\r\n      ShowSummaryPaneBillingSetting: false,\r\n    };\r\n    this.contextActions = {\r\n      UpdateJobTimestamp: this.updateJobTimestamp,\r\n      DeleteAccount: this.deleteAccount,\r\n      UpdateTargetCustomer: this.updateTargetCustomer,\r\n      UpdateSourceCustomer: this.updateSourceCustomer,\r\n      UpdateSelectedAccountIds: this.updateSelectedAccountIds,\r\n      UpdateSelectedAccounts: this.updateSelectedAccounts,\r\n      UpdateJobLoadAccounts: this.updateJobLoadAccounts,\r\n      UpdateAccountLinks: this.updateAccountLinks,\r\n      UpdateAccountBilling: this.updateAccountBilling,\r\n      UpdateAccountsBillingSettings: this.updateAccountsBillingSettings,\r\n      SetIOPreApprovalRequired: this.setIOPreApprovalRequired,\r\n      UpdateNewBillToSettings: this.updateNewBillToSettings,\r\n      UpdateAccountBillToCustomersMap: this.updateAccountBillToCustomersMap,\r\n      UpdateUETTags: this.updateUETTags,\r\n      SetShowSummaryPaneLinkSettings: this.setShowSummaryPaneLinkSettings,\r\n      SetShowSummaryPaneBillingSetting: this.setShowSummaryPaneBillingSetting,\r\n    };\r\n  }\r\n\r\n  setShowSummaryPaneLinkSettings = (showSummaryPaneLinkSettings) => {\r\n    this.setState({ ShowSummaryPaneLinkSettings: showSummaryPaneLinkSettings });\r\n  }\r\n\r\n  setShowSummaryPaneBillingSetting = (showSummaryPaneBillingSetting) => {\r\n    this.setState({ ShowSummaryPaneBillingSetting: showSummaryPaneBillingSetting });\r\n  }\r\n\r\n  setIOPreApprovalRequired = ({ ioPreApprovalRequired }) => {\r\n    this.setState({ IOPreApprovalRequired: ioPreApprovalRequired });\r\n  }\r\n\r\n  updateAccountBillToCustomersMap = (accountBillToCustomersMap) => {\r\n    this.setState({ AccountBillToCustomersMap: accountBillToCustomersMap });\r\n  };\r\n\r\n  updateAccountLinks = (accountLinks, mandatoryNewBillToAccountIds) => {\r\n    const updatedAccounts = this.state.Accounts;\r\n\r\n    // set unlink flags for broken agency links\r\n    _.each(accountLinks, (accLink) => {\r\n      const accountIndex = _.findIndex(updatedAccounts, acc => acc.Id === accLink.Id);\r\n      const updatedAccount = updatedAccounts[accountIndex];\r\n      const linkIndex = _.findIndex(\r\n        updatedAccount.LinkedManagers,\r\n        manager => manager.Id === accLink.LinkedManager.Id\r\n      );\r\n      updatedAccount.LinkedManagers[linkIndex].Unlink = accLink.LinkedManager.Unlink;\r\n    });\r\n\r\n    // break bill-to links based on CCMT response\r\n    _.each(updatedAccounts, (acc) => {\r\n      if (_.contains(mandatoryNewBillToAccountIds, acc.Id)) {\r\n        acc.BillToManager.BillTo = null;\r\n      }\r\n    });\r\n\r\n    this.setState({\r\n      Accounts: updatedAccounts.slice(),\r\n      MandatoryNewBillToAccountIds: mandatoryNewBillToAccountIds || [],\r\n    });\r\n  }\r\n\r\n  updateAccountBilling = (accountsBilling) => {\r\n    const updatedAccounts = this.state.Accounts;\r\n    _.each(accountsBilling, (accBilling) => {\r\n      const accountIndex = _.findIndex(updatedAccounts, acc => acc.Id === accBilling.Id);\r\n      const updatedAccount = updatedAccounts[accountIndex];\r\n      updatedAccount.BillToManager.BillTo = accBilling.BillToManager.BillTo;\r\n    });\r\n\r\n    this.setState({ Accounts: updatedAccounts.slice() });\r\n  }\r\n\r\n  updateNewBillToSettings = ({\r\n    billToCustomer,\r\n    paymentOptionId,\r\n    paymentInstrumentId,\r\n    insertionOrder,\r\n    prepayConfig,\r\n  }) => {\r\n    this.setState({\r\n      NewBillTo: {\r\n        Customer: billToCustomer,\r\n        PaymentOptionId: paymentOptionId,\r\n        PaymentInstrumentId: paymentInstrumentId,\r\n        InsertionOrder: insertionOrder,\r\n        PrepayConfig: prepayConfig,\r\n      },\r\n    });\r\n  }\r\n\r\n  updateAccountsBillingSettings = ({\r\n    updatedAccountsBillingSettings,\r\n  }) => {\r\n    const toUpdateIds = _.pluck(updatedAccountsBillingSettings, 'accountId');\r\n\r\n    const updatedAccounts = _.map(\r\n      this.state.Accounts,\r\n      (account) => {\r\n        const updatedSettingsIndex = _.findIndex(toUpdateIds, aid => aid === account.Id);\r\n\r\n        if (updatedSettingsIndex < 0) {\r\n          return account;\r\n        }\r\n\r\n        const {\r\n          billToCustomer,\r\n          paymentOptionId,\r\n          paymentInstrumentId,\r\n          insertionOrder,\r\n          prepayConfig,\r\n        } = updatedAccountsBillingSettings[updatedSettingsIndex];\r\n\r\n        const isInvoicePaymentOption = paymentOptionId === Constants.PaymentOptionId.Invoice;\r\n\r\n        if (isInvoicePaymentOption) {\r\n          if (account.BillToChange && account.BillToChange.InsertionOrder && insertionOrder) {\r\n            const contextInsertionOrder = account.BillToChange.InsertionOrder;\r\n\r\n            const shouldResetStatus =\r\n              account.BillToChange.PaymentInstrumentId !== paymentInstrumentId ||\r\n              !areUiInsertionOrdersEqual(contextInsertionOrder, insertionOrder);\r\n\r\n            if (shouldResetStatus) {\r\n              // We had one created and was submitted again for review.\r\n              if (contextInsertionOrder.ioStatus !== null) {\r\n                insertionOrder.ioStatus =\r\n                  Constants.InsertionOrderStatus.PendingBillToPartyChangeAndUserReview;\r\n              } else {\r\n                insertionOrder.ioStatus = null;\r\n              }\r\n            } else {\r\n              insertionOrder.ioStatus = contextInsertionOrder.ioStatus;\r\n            }\r\n          }\r\n        }\r\n\r\n        return {\r\n          ...account,\r\n          BillToCustomer: billToCustomer,\r\n          BillToChange: {\r\n            PaymentOptionId: paymentOptionId,\r\n            PaymentInstrumentId: paymentInstrumentId,\r\n            InsertionOrder: insertionOrder,\r\n            PrepayConfig: prepayConfig,\r\n          },\r\n        };\r\n      }\r\n    );\r\n\r\n    this.setState({\r\n      Accounts: updatedAccounts,\r\n    });\r\n  };\r\n\r\n  // Update Accounts information from JobLoad Response\r\n  updateJobLoadAccounts = (accounts) => {\r\n    let showSummaryPaneLinkSettings = false;\r\n    let showSummaryPaneBillingSetting = false;\r\n    const updatedAccounts = _.map(this.state.Accounts, (acc) => {\r\n      const updatedAccount = acc;\r\n      const jobAccount = _.find(accounts, jobAcc => jobAcc.AccountId === updatedAccount.Id);\r\n\r\n      _.each(jobAccount.LinkSettings, (linkSetting) => {\r\n        const linkIndex = _.findIndex(\r\n          updatedAccount.LinkedManagers,\r\n          linkedManager => linkedManager.Id === linkSetting.AgencyCustomerId\r\n        );\r\n        // ignore the links which might have been deleted since previous visit\r\n        if (linkIndex !== -1) {\r\n          updatedAccount.LinkedManagers[linkIndex].Unlink = !linkSetting.KeepLink;\r\n        }\r\n        showSummaryPaneLinkSettings = true; // set to true even if there is one setting available\r\n      });\r\n\r\n      if (!jobAccount.BillingSetting) {\r\n        updatedAccount.BillToManager.BillTo = null;\r\n      } else if (jobAccount.BillingSetting && !jobAccount.BillingSetting.BillToChangeSetting) {\r\n        updatedAccount.BillToManager.BillTo = true;\r\n      } else if (jobAccount.BillingSetting && jobAccount.BillingSetting.BillToChangeSetting) {\r\n        updatedAccount.BillToManager.BillTo = false;\r\n        const {\r\n          billToCustomer,\r\n          paymentOptionId,\r\n          paymentInstrumentId,\r\n          insertionOrder,\r\n          prepayConfig,\r\n        } = toClientSideBillingSetting(jobAccount.BillingSetting);\r\n\r\n        updatedAccount.BillToCustomer = billToCustomer;\r\n        updatedAccount.BillToChange = {\r\n          PaymentOptionId: paymentOptionId,\r\n          PaymentInstrumentId: paymentInstrumentId,\r\n          InsertionOrder: insertionOrder,\r\n          PrepayConfig: prepayConfig,\r\n        };\r\n      }\r\n\r\n      if (jobAccount.BillingSetting) {\r\n        showSummaryPaneBillingSetting = true; // set to true even if there is one setting available\r\n      }\r\n\r\n      return updatedAccount;\r\n    });\r\n\r\n    this.setState({\r\n      Accounts: updatedAccounts,\r\n      ShowSummaryPaneBillingSetting: showSummaryPaneBillingSetting,\r\n      ShowSummaryPaneLinkSettings: showSummaryPaneLinkSettings,\r\n    });\r\n  }\r\n\r\n  updateTargetCustomer = (customer) => {\r\n    this.setState({ TargetCustomer: customer });\r\n  }\r\n\r\n  updateJobTimestamp = (timestamp) => {\r\n    this.setState({ Timestamp: timestamp });\r\n  }\r\n\r\n  updateSourceCustomer = (customer) => {\r\n    this.setState({ SourceCustomer: customer });\r\n  }\r\n\r\n  updateSelectedAccountIds = (accountIds) => {\r\n    this.setState({ AccountIds: accountIds });\r\n  }\r\n\r\n  updateSelectedAccounts = (accounts) => {\r\n    const updatedAccounts = _.map(accounts, acc => convertAccountModelToServerContext(acc));\r\n    this.setState({ Accounts: updatedAccounts });\r\n  }\r\n\r\n  updateUETTags = (uetTags) => {\r\n    this.setState({ UETTags: uetTags || [] });\r\n  }\r\n\r\n  deleteAccount = (accountId, newUETTags) => {\r\n    this.setState(prevState => ({\r\n      Accounts: _.reject(prevState.Accounts, acc => acc.Id === accountId),\r\n    }));\r\n\r\n    // update uet tags\r\n    if (this.props.serverContext.Permissions.IsAccountReparentingUETEnabled &&\r\n      this.state.UETTags) {\r\n      this.setState({\r\n        UETTags: newUETTags,\r\n      });\r\n    }\r\n  }\r\n\r\n  render = () => {\r\n    const {\r\n      Accounts,\r\n      AccountIds,\r\n      AccountBillToCustomersMap,\r\n      MandatoryNewBillToAccountIds,\r\n      TargetCustomer,\r\n      SourceCustomer,\r\n      IOPreApprovalRequired,\r\n      ShowSummaryPaneBillingSetting,\r\n      ShowSummaryPaneLinkSettings,\r\n      NewBillTo,\r\n      Timestamp,\r\n      UETTags,\r\n    } = this.state;\r\n    const {\r\n      CurrentUser,\r\n      CurrentCustomer,\r\n      ReparentingId,\r\n      ServicesEndpoints,\r\n      Permissions,\r\n    } = this.props.serverContext;\r\n    return (\r\n      <ARWServerContext.Provider\r\n        value={{\r\n          Value: {\r\n            Accounts,\r\n            AccountIds,\r\n            AccountBillToCustomersMap,\r\n            CurrentUser,\r\n            CurrentCustomer,\r\n            MandatoryNewBillToAccountIds,\r\n            ServicesEndpoints,\r\n            SourceCustomer,\r\n            TargetCustomer,\r\n            IOPreApprovalRequired,\r\n            ReparentingId,\r\n            NewBillTo,\r\n            Timestamp,\r\n            UETTags,\r\n            ShowSummaryPaneBillingSetting,\r\n            ShowSummaryPaneLinkSettings,\r\n          },\r\n          Actions: this.contextActions,\r\n          Permissions,\r\n        }}\r\n      >\r\n        {this.props.children}\r\n      </ARWServerContext.Provider>\r\n    );\r\n  }\r\n}\r\n\r\nARWContextProvider.propTypes = ServerContextProviderPropTypes;\r\n","import _ from 'underscore';\r\nimport { useARWContextValue } from './arw-server-context';\r\n\r\n/*\r\n * return true if existing BillToCustomer is either Unlinked or chooses\r\n * to have new BillTo PI after takeover billing step\r\n */\r\nexport const useAccountsWithNewBillTo = () => {\r\n  const accounts = useARWContextValue().Accounts;\r\n  return _.filter(accounts, acc => !acc.BillToManager.BillTo);\r\n};\r\n\r\n/*\r\n * return true if existing link between existing BillToCustomer\r\n * and Account is retained after review linking step,\r\n * can be true/ false based on decisions previously made on this step\r\n */\r\nexport const useAccountsForBillingSetup = () => {\r\n  const { Accounts, MandatoryNewBillToAccountIds } = useARWContextValue();\r\n  return _.filter(Accounts, acc => !_.contains(MandatoryNewBillToAccountIds, acc.Id));\r\n};\r\n\r\nconst findIntersection = (list1, list2) => {\r\n  if (list1.length === 0) return list2;\r\n  return _.filter(list1, item1 =>\r\n    _.any(list2, item2 => _.isEqual(item1, item2)));\r\n};\r\n\r\n/*\r\n * return intersection of all eligible Bill To Customers, pass null for all accounts\r\n */\r\nexport const useEligibleBillToCustomers = (accountId = null) => {\r\n  const billToCustomersMap = useARWContextValue().AccountBillToCustomersMap;\r\n  const allAccountIds = accountId ? [accountId] : _.keys(billToCustomersMap);\r\n  return _.reduce(\r\n    allAccountIds,\r\n    (billToCustomersList, accId) =>\r\n      findIntersection(billToCustomersList, billToCustomersMap[accId])\r\n    , []\r\n  );\r\n};\r\n\r\n/*\r\n * Returns the payment option configured for the accounts with new bill to.\r\n */\r\nexport const usePaymentOptionId = () => {\r\n  const contextAccounts = useAccountsWithNewBillTo();\r\n  const { PaymentOptionId } = useARWContextValue().NewBillTo;\r\n\r\n  const firstAccountWithBillToChange = _.find(\r\n    contextAccounts,\r\n    account => account.BillToChange && account.BillToChange.PaymentOptionId\r\n  );\r\n\r\n  return firstAccountWithBillToChange ?\r\n    firstAccountWithBillToChange.BillToChange.PaymentOptionId :\r\n    PaymentOptionId;\r\n};\r\n","export const defaultSchema = {\r\n  scenario: [{\r\n    name: 'default',\r\n    value: 'Account Reparenting Scenario',\r\n    activity: [{\r\n      name: 'logger',\r\n      value: 'Account Reparenting Logger for default scenario',\r\n    }],\r\n  }],\r\n};\r\n","import _ from 'underscore';\r\nimport { INSTRUMENTATION_SYSTEM_NAME, INSTRUMENTATION_SUB_SYSTEM } from '@bingads-webui-campaign-react/account-reparenting-utils';\r\nimport { getInstrumentation as getInstrumentationInstance } from '@bingads-webui-campaign/instrumentation-setup';\r\n\r\nimport { defaultSchema } from './schemas';\r\n\r\nexport const getInstrumentation = ({ serverContext }) => {\r\n  const applicationName = {\r\n    systemName: INSTRUMENTATION_SYSTEM_NAME,\r\n    subSystemName: INSTRUMENTATION_SUB_SYSTEM,\r\n  };\r\n\r\n  const userContext = _.pick(serverContext, 'CurrentUser', 'CurrentCustomer');\r\n\r\n  return getInstrumentationInstance({\r\n    pageTrackingId: serverContext.PageTrackingId,\r\n    errorMappers: {},\r\n    userContext,\r\n    serverContext,\r\n    applicationName,\r\n    isInDevelopmentMode: true,\r\n  });\r\n};\r\n\r\nexport const getInstrumentationService = ({ instrumentation }) => {\r\n  instrumentation.addScenario(defaultSchema);\r\n  const defaultScenario = instrumentation.default.create();\r\n  const logger = defaultScenario.logger.create();\r\n\r\n  return {\r\n    instrumentation,\r\n    logger,\r\n  };\r\n};\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport { DomChildrenPropTypes, InstumentationServiceContextPropTypes } from '@bingads-webui-campaign-react/account-reparenting-props';\r\n\r\nexport const InstrumentationContext = React.createContext({\r\n  logger: _.noop,\r\n  instrumentation: _.noop,\r\n});\r\n\r\nexport const InstrumentationContextProvider = props => (\r\n  <InstrumentationContext.Provider value={props.context}>\r\n    {props.children}\r\n  </InstrumentationContext.Provider>\r\n);\r\n\r\nInstrumentationContextProvider.propTypes = {\r\n  context: InstumentationServiceContextPropTypes.isRequired,\r\n  children: DomChildrenPropTypes.isRequired,\r\n};\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport classNames from 'classnames';\r\n\r\nimport { Button, NavItem } from '@bingads-webui-react/primitive';\r\nimport { SearchBox } from '@bingads-webui-react/search-box';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { FocusLock } from '@bingads-webui-react/focus-lock';\r\n\r\nimport { CommonLocStrings } from '@bingads-webui-campaign-react/account-reparenting-localization';\r\nimport { entityPopoverClassesProps, getEntityPopoverStyles } from '@bingads-webui-campaign-react/account-reparenting-styles';\r\nimport { I18nPropTypes } from '@bingads-webui-campaign-react/account-reparenting-props';\r\n\r\nconst ListItem = ({\r\n  Name,\r\n  Url,\r\n}) => (\r\n  Url ?\r\n    <NavItem\r\n      className=\"entity-item link-item\"\r\n      target=\"_blank\"\r\n      href={Url}\r\n    >\r\n      {Name}\r\n    </NavItem> :\r\n    <span className=\"static-item entity-item\">{Name}</span>\r\n);\r\n\r\nListItem.propTypes = {\r\n  Name: PropTypes.string.isRequired,\r\n  Url: PropTypes.string,\r\n};\r\n\r\nListItem.defaultProps = {\r\n  Url: '',\r\n};\r\n\r\nconst EntityPopover = ({\r\n  i18n,\r\n  classes,\r\n  popoverId,\r\n  entities,\r\n  matchSearch,\r\n  isShowing,\r\n  onCancelClick,\r\n  title,\r\n  searchboxPlaceholder,\r\n}) => {\r\n  const [searchText, setSearchText] = useState('');\r\n  const entityList = _.filter(\r\n    entities,\r\n    entity => matchSearch(entity, searchText.toLowerCase().trim())\r\n  );\r\n\r\n  const className = classNames(\r\n    classes.entityPopover,\r\n    isShowing ? 'open' : ''\r\n  );\r\n\r\n  return (\r\n    <div className={className} id={popoverId} >\r\n      <div className=\"dropdown-menu react-dropdown-menu modal-dialog\">\r\n        <FocusLock\r\n          onExit={onCancelClick}\r\n          focusFirstItemOnMount\r\n          isControlledFocusLock\r\n          isFocusLock={isShowing}\r\n        >\r\n          <React.Fragment>\r\n            {title && <h3>{i18n.getString(title)}</h3>}\r\n            <SearchBox\r\n              onQueryChange={setSearchText}\r\n              onSearch={setSearchText}\r\n              placeholder={searchboxPlaceholder && i18n.getString(searchboxPlaceholder)}\r\n              value={searchText}\r\n            />\r\n            {\r\n              _.map(entityList, entity => (\r\n                <div key={entity.Id} className=\"entity-info-tile level-1\">\r\n                  <ListItem {...entity} />\r\n                  {\r\n                    _.map(entity.Children, child => (\r\n                      <div key={child.Id} className=\"details-info-tile level-2\">\r\n                        <ListItem {...child} />\r\n                      </div>\r\n                    ))\r\n                  }\r\n                </div>\r\n              ))\r\n            }\r\n            <Button className=\"cancel-button\" onClick={onCancelClick}>\r\n              {i18n.getString(CommonLocStrings.CloseLabel)}\r\n            </Button>\r\n          </React.Fragment>\r\n        </FocusLock>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nEntityPopover.propTypes = {\r\n  classes: entityPopoverClassesProps.isRequired,\r\n  i18n: I18nPropTypes.isRequired,\r\n  popoverId: PropTypes.string.isRequired,\r\n  isShowing: PropTypes.bool.isRequired,\r\n  onCancelClick: PropTypes.func.isRequired,\r\n  matchSearch: PropTypes.func.isRequired,\r\n  entities: PropTypes.arrayOf(PropTypes.shape({\r\n    Name: PropTypes.string.isRequired,\r\n    Id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n    Url: PropTypes.string,\r\n    Children: PropTypes.arrayOf(PropTypes.shape({\r\n      Name: PropTypes.string.isRequired,\r\n      Id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n      Url: PropTypes.string,\r\n    })),\r\n  })).isRequired,\r\n  searchboxPlaceholder: PropTypes.string,\r\n  title: PropTypes.string,\r\n};\r\n\r\nEntityPopover.defaultProps = {\r\n  searchboxPlaceholder: '',\r\n  title: '',\r\n};\r\n\r\nexport const ARWEntityPopover = withI18nConsumer(withDefaultStyles(\r\n  EntityPopover,\r\n  getEntityPopoverStyles\r\n));\r\n","import React, { useContext, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Button } from '@bingads-webui-react/primitive';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { CommonLocStrings } from '@bingads-webui-campaign-react/account-reparenting-localization';\r\n\r\nexport function ARWStepFooter(props) {\r\n  const {\r\n    saveAndProceed,\r\n    onPreviousClick,\r\n    onNextClick,\r\n    onSubmitClick,\r\n    onCancelClick,\r\n    nextButtonDisabled,\r\n  } = props;\r\n  const i18n = useContext(I18nContext);\r\n\r\n  const onNextButtonClick = useCallback(() => {\r\n    if (saveAndProceed) {\r\n      saveAndProceed(onNextClick);\r\n    } else {\r\n      onNextClick();\r\n    }\r\n  }, [onNextClick, saveAndProceed]);\r\n\r\n  const onSaveAndExit = useCallback(() => {\r\n    saveAndProceed(onCancelClick);\r\n  }, [onCancelClick, saveAndProceed]);\r\n\r\n  return (\r\n    <div className=\"arw-step-footer\">\r\n      { onPreviousClick &&\r\n        <Button className=\"arw-step-previous\" onClick={onPreviousClick}>\r\n          {i18n.getString(CommonLocStrings.BackLabel)}\r\n        </Button>\r\n      }\r\n      { onNextClick && (\r\n        <Button className=\"arw-step-next\" disabled={nextButtonDisabled} onClick={onNextButtonClick}>\r\n          {i18n.getString(CommonLocStrings.NextLabel)}\r\n        </Button>\r\n      )}\r\n      { onSubmitClick && (\r\n        <Button className=\"arw-step-submit\" disabled={nextButtonDisabled} onClick={onSubmitClick}>\r\n          {i18n.getString(CommonLocStrings.SubmitLabel)}\r\n        </Button>\r\n      )}\r\n      <Button className=\"arw-step-cancel\" onClick={onCancelClick}>\r\n        {i18n.getString(CommonLocStrings.CancelLabel)}\r\n      </Button>\r\n      { saveAndProceed && (\r\n        <Button className=\"arw-step-saveandexit\" disabled={nextButtonDisabled} onClick={onSaveAndExit}>\r\n          {i18n.getString(CommonLocStrings.SaveAndExitLabel)}\r\n        </Button>\r\n      )}\r\n    </div>\r\n  );\r\n}\r\n\r\nARWStepFooter.propTypes = {\r\n  saveAndProceed: PropTypes.func,\r\n  onPreviousClick: PropTypes.func,\r\n  onNextClick: PropTypes.func,\r\n  onSubmitClick: PropTypes.func,\r\n  onCancelClick: PropTypes.func,\r\n  nextButtonDisabled: PropTypes.bool,\r\n};\r\n\r\nARWStepFooter.defaultProps = {\r\n  saveAndProceed: null,\r\n  onPreviousClick: null,\r\n  onNextClick: null,\r\n  onSubmitClick: null,\r\n  onCancelClick: null,\r\n  nextButtonDisabled: true,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { ARWStepFooter } from './arw-step-footer';\r\n\r\n/**\r\n * Base layout for ARW wizard steps. Includes UIBlocker, header and footer.\r\n * @param {*} props - See propTypes definition.\r\n * @returns {ReactNode} - Base layout component.\r\n */\r\nexport function ARWStepBaseLayout(props) {\r\n  const {\r\n    className,\r\n    children,\r\n    saveAndProceed,\r\n    onCancelClick,\r\n    onNextClick,\r\n    onSubmitClick,\r\n    onPreviousClick,\r\n    nextButtonDisabled,\r\n  } = props;\r\n\r\n  return (\r\n    <React.Fragment>\r\n      <div className={classNames('arw-step-container', className)}>\r\n        {children}\r\n      </div>\r\n\r\n      <ARWStepFooter\r\n        saveAndProceed={saveAndProceed}\r\n        onCancelClick={onCancelClick}\r\n        onPreviousClick={onPreviousClick}\r\n        onSubmitClick={onSubmitClick}\r\n        onNextClick={onNextClick}\r\n        nextButtonDisabled={nextButtonDisabled}\r\n      />\r\n    </React.Fragment>\r\n  );\r\n}\r\n\r\nARWStepBaseLayout.propTypes = {\r\n  children: PropTypes.oneOfType([\r\n    PropTypes.node,\r\n    PropTypes.arrayOf(PropTypes.node),\r\n  ]),\r\n  className: PropTypes.string,\r\n  saveAndProceed: PropTypes.func,\r\n  onPreviousClick: PropTypes.func,\r\n  onSubmitClick: PropTypes.func,\r\n  onNextClick: PropTypes.func,\r\n  onCancelClick: PropTypes.func,\r\n  nextButtonDisabled: PropTypes.bool,\r\n};\r\n\r\nARWStepBaseLayout.defaultProps = {\r\n  children: null,\r\n  className: null,\r\n  saveAndProceed: null,\r\n  onPreviousClick: null,\r\n  onSubmitClick: null,\r\n  onCancelClick: null,\r\n  onNextClick: null,\r\n  nextButtonDisabled: true,\r\n};\r\n","import React, { useState, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport URI from 'urijs';\r\nimport classNames from 'classnames';\r\n\r\nimport { Button, NavItem } from '@bingads-webui-react/primitive';\r\nimport { SearchBox } from '@bingads-webui-react/search-box';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { FocusLock } from '@bingads-webui-react/focus-lock';\r\n\r\nimport { TransferSummaryLocStrings as LocStrings, CommonLocStrings } from '@bingads-webui-campaign-react/account-reparenting-localization';\r\nimport { accountsPopoverClassesProps, getAccountsPopoverStyles } from '@bingads-webui-campaign-react/account-reparenting-styles';\r\nimport { BasicAccountPropType, I18nPropTypes, CustomerPropType, UserPropType } from '@bingads-webui-campaign-react/account-reparenting-props';\r\nimport { stringContains } from '@bingads-webui-campaign-react/account-reparenting-utils';\r\n\r\nconst matchSearchAccount = (account, srcText) =>\r\n  _.isEmpty(srcText) ||\r\n  stringContains(account.Name.toLowerCase(), srcText) ||\r\n  stringContains(account.Number.toLowerCase(), srcText) ||\r\n  stringContains(account.Id.toString().toLowerCase(), srcText);\r\n\r\nconst AccountsPopover = ({\r\n  i18n,\r\n  classes,\r\n  sourceCustomer,\r\n  currentUser,\r\n  accounts,\r\n  onAccountDelete,\r\n  isShowing,\r\n  onCancelClick,\r\n}) => {\r\n  const [searchText, setSearchText] = useState('');\r\n  const accountsList = _.filter(\r\n    accounts,\r\n    acc => matchSearchAccount(acc, searchText.toLowerCase().trim())\r\n  );\r\n  const onAccountDeleteCb = useCallback((accountId) => {\r\n    onAccountDelete(accountId);\r\n  }, [onAccountDelete]);\r\n\r\n  const buildCampaignsUrl = useCallback(aid =>\r\n    new URI(`${window.location.origin}/campaign/vnext/campaigns`)\r\n      .search({ uid: currentUser.Id, cid: sourceCustomer.Id, aid })\r\n      .href(), [currentUser, sourceCustomer]);\r\n\r\n  const className = classNames(\r\n    classes.accountsPopover,\r\n    isShowing ? 'open' : '',\r\n    'accounts-list-popover-dialog'\r\n  );\r\n\r\n  return (\r\n    <div className={className} >\r\n      <div className=\"dropdown-menu react-dropdown-menu modal-dialog\">\r\n        <FocusLock\r\n          onExit={onCancelClick}\r\n          focusFirstItemOnMount\r\n          isControlledFocusLock\r\n          isFocusLock={isShowing}\r\n        >\r\n          <React.Fragment>\r\n            <h3>{i18n.getString(LocStrings.SelectedAccountsLabel)}</h3>\r\n            <SearchBox\r\n              onQueryChange={setSearchText}\r\n              onSearch={setSearchText}\r\n              placeholder={i18n.getString(LocStrings.SearchAccounts)}\r\n              value={searchText}\r\n            />\r\n            {\r\n              _.map(accountsList, acc => (\r\n                <div key={acc.Id} className=\"account-info-tile\">\r\n                  <NavItem\r\n                    className=\"account-name\"\r\n                    target=\"_blank\"\r\n                    href={buildCampaignsUrl(acc.Id)}\r\n                  >\r\n                    {acc.Name}\r\n                  </NavItem>\r\n                  <Button\r\n                    className=\"btn-link remove-account\"\r\n                    onClick={() => onAccountDeleteCb(acc.Id)}\r\n                  >\r\n                    {i18n.getString(LocStrings.RemoveAccount)}\r\n                  </Button>\r\n                </div>\r\n              ))\r\n            }\r\n            <Button className=\"cancel-button\" onClick={onCancelClick}>\r\n              {i18n.getString(CommonLocStrings.CloseLabel)}\r\n            </Button>\r\n          </React.Fragment>\r\n        </FocusLock>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nAccountsPopover.propTypes = {\r\n  classes: accountsPopoverClassesProps.isRequired,\r\n  i18n: I18nPropTypes.isRequired,\r\n  sourceCustomer: CustomerPropType.isRequired,\r\n  currentUser: UserPropType.isRequired,\r\n  accounts: PropTypes.arrayOf(BasicAccountPropType).isRequired,\r\n  onAccountDelete: PropTypes.func.isRequired,\r\n  isShowing: PropTypes.bool.isRequired,\r\n  onCancelClick: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const ARWAccountsPopover = withI18nConsumer(withDefaultStyles(\r\n  AccountsPopover,\r\n  getAccountsPopoverStyles\r\n));\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport classNames from 'classnames';\r\n\r\nimport { Button, NavItem } from '@bingads-webui-react/primitive';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { SearchBox } from '@bingads-webui-react/search-box';\r\nimport { FocusLock } from '@bingads-webui-react/focus-lock';\r\n\r\nimport { TransferSummaryLocStrings as LocStrings, CommonLocStrings } from '@bingads-webui-campaign-react/account-reparenting-localization';\r\nimport { accountsPopoverClassesProps, getAccountsPopoverStyles } from '@bingads-webui-campaign-react/account-reparenting-styles';\r\nimport { I18nPropTypes } from '@bingads-webui-campaign-react/account-reparenting-props';\r\nimport { stringContains } from '@bingads-webui-campaign-react/account-reparenting-utils';\r\n\r\nconst matchSearchAccount = (account, srcText) =>\r\n  _.isEmpty(srcText) ||\r\n  stringContains(account.Account.Name.toLowerCase(), srcText) ||\r\n  stringContains(account.Account.Number.toLowerCase(), srcText) ||\r\n  stringContains(account.Account.Id.toString().toLowerCase(), srcText) ||\r\n  stringContains(account.Manager.Name.toLowerCase(), srcText) ||\r\n  stringContains(account.Manager.Number.toLowerCase(), srcText) ||\r\n  stringContains(account.Manager.Id.toString().toLowerCase(), srcText);\r\n\r\nconst AccountManagerPopover = ({\r\n  i18n,\r\n  classes,\r\n  accounts,\r\n  isShowing,\r\n  popoverTitle,\r\n  onCancelClick,\r\n  onAccountClickUrl,\r\n  onManagerClickUrl,\r\n}) => {\r\n  const [searchText, setSearchText] = useState('');\r\n  const accountsList = _.filter(\r\n    accounts,\r\n    acc => matchSearchAccount(acc, searchText.toLowerCase().trim())\r\n  );\r\n  const className = classNames(\r\n    classes.accountsPopover,\r\n    isShowing ? 'open' : '',\r\n    'accounts-managers-popover-dialog'\r\n  );\r\n\r\n  return (\r\n    <div className={className} >\r\n      <div className=\"dropdown-menu react-dropdown-menu modal-dialog\">\r\n        <FocusLock\r\n          onExit={onCancelClick}\r\n          focusFirstItemOnMount\r\n          isControlledFocusLock\r\n          isFocusLock={isShowing}\r\n        >\r\n          <React.Fragment>\r\n            <h3>{popoverTitle}</h3>\r\n            <SearchBox\r\n              onQueryChange={setSearchText}\r\n              onSearch={setSearchText}\r\n              placeholder={i18n.getString(LocStrings.SearchAccounts)}\r\n              value={searchText}\r\n            />\r\n            {\r\n              accountsList && _.map(accountsList, acc => (\r\n                <div key={acc.Id} className=\"account-info-tile\">\r\n                  <NavItem key=\"1\" className=\"account-name\" target=\"_blank\" href={onAccountClickUrl(acc.Account.Id)}>\r\n                    {acc.Account.Name}\r\n                  </NavItem>\r\n                  <NavItem key=\"2\" className=\"manager-name\" target=\"_blank\" href={onManagerClickUrl(acc.Manager.Id)}>\r\n                    {acc.Manager.Name}\r\n                  </NavItem>\r\n                </div>\r\n              ))\r\n            }\r\n            <Button className=\"cancel-button\" onClick={onCancelClick}>\r\n              {i18n.getString(CommonLocStrings.CloseLabel)}\r\n            </Button>\r\n          </React.Fragment>\r\n        </FocusLock>\r\n      </div>\r\n    </div>\r\n  );\r\n};\r\n\r\nAccountManagerPopover.propTypes = {\r\n  classes: accountsPopoverClassesProps.isRequired,\r\n  i18n: I18nPropTypes.isRequired,\r\n  popoverTitle: PropTypes.string.isRequired,\r\n  accounts: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n  isShowing: PropTypes.bool.isRequired,\r\n  onCancelClick: PropTypes.func.isRequired,\r\n  onAccountClickUrl: PropTypes.func.isRequired,\r\n  onManagerClickUrl: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const ARWAccountManagerPopover =\r\n  withI18nConsumer(withDefaultStyles(AccountManagerPopover, getAccountsPopoverStyles));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nimport { Button } from '@bingads-webui-react/primitive';\r\n\r\nconst StaticText = (props) => {\r\n  const classes = props.className.replace('btn-link', '');\r\n  const withouEvents = _.omit(props, 'onClick');\r\n  return (<span {...withouEvents} className={classes}>{props.children}</span>);\r\n};\r\n\r\nStaticText.propTypes = {\r\n  children: PropTypes.oneOfType([\r\n    PropTypes.node,\r\n    PropTypes.arrayOf(PropTypes.node),\r\n  ]),\r\n  className: PropTypes.string,\r\n};\r\n\r\nStaticText.defaultProps = {\r\n  children: null,\r\n  className: {},\r\n};\r\n\r\nexport const ButtonOrStatic = (props) => {\r\n  const Component = props.isButton ? Button : StaticText;\r\n  const newProps = _.omit(props, 'isButton');\r\n  return (\r\n    <Component {...newProps} >{props.children}</Component>\r\n  );\r\n};\r\n\r\nButtonOrStatic.propTypes = {\r\n  isButton: PropTypes.bool,\r\n  children: PropTypes.oneOfType([\r\n    PropTypes.node,\r\n    PropTypes.arrayOf(PropTypes.node),\r\n  ]),\r\n};\r\n\r\nButtonOrStatic.defaultProps = {\r\n  isButton: true,\r\n  children: null,\r\n};\r\n","import React from 'react';\r\nimport { Glyphicon } from '@bingads-webui-react/primitive';\r\n\r\nconst iconStyle = {\r\n  fontWeight: '600',\r\n  margin: '0 4px',\r\n  fontSize: '16px',\r\n};\r\n\r\nexport const OkIcon = () => <Glyphicon glyph=\"ok-sign\" style={{ color: '#006400', ...iconStyle }} />;\r\nexport const WarningIcon = () => <Glyphicon glyph=\"alert\" style={{ color: '#ffa500', ...iconStyle }} />;\r\n","import React, { useMemo, useState, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport URI from 'urijs';\r\n\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { I18nPropTypes, CustomerPropType, UserPropType } from '@bingads-webui-campaign-react/account-reparenting-props';\r\nimport { TransferSummaryLocStrings as LocStrings } from '@bingads-webui-campaign-react/account-reparenting-localization';\r\n\r\nimport { ARWAccountManagerPopover } from './account-manager-popover';\r\nimport { ButtonOrStatic } from './button-or-static';\r\nimport { WarningIcon, OkIcon } from './icons';\r\n\r\nconst AccountLinksSummary = ({\r\n  i18n,\r\n  accounts,\r\n  currentUser,\r\n  sourceCustomer,\r\n}) => {\r\n  const [isUnlinkedAccountsModalDisplayed, setIsUnlinkedAccountsModalDisplayed] = useState(false);\r\n  const [isRetainedAccountsModalDisplayed, setIsRetainedAccountsModalDisplayed] = useState(false);\r\n\r\n  const showUnlinkedAccountsModal = useCallback(() => {\r\n    setIsUnlinkedAccountsModalDisplayed(true);\r\n  }, [setIsUnlinkedAccountsModalDisplayed]);\r\n  const hideUnlinkedAccountsModal = useCallback(() => {\r\n    setIsUnlinkedAccountsModalDisplayed(false);\r\n  }, [setIsUnlinkedAccountsModalDisplayed]);\r\n\r\n  const showRetainedAccountsModal = useCallback(() => {\r\n    setIsRetainedAccountsModalDisplayed(true);\r\n  }, [setIsRetainedAccountsModalDisplayed]);\r\n  const hideRetainedAccountsModal = useCallback(() => {\r\n    setIsRetainedAccountsModalDisplayed(false);\r\n  }, [setIsRetainedAccountsModalDisplayed]);\r\n\r\n  const buildCampaignsUrl = useCallback(aid =>\r\n    new URI(`${window.location.origin}/campaign/vnext/campaigns`)\r\n      .search({ uid: currentUser.Id, cid: sourceCustomer.Id, aid })\r\n      .href(), [currentUser, sourceCustomer]);\r\n  const buildAccountsUrl = useCallback(cid =>\r\n    new URI(`${window.location.origin}/campaign/vnext/accounts/management`)\r\n      .search({ uid: currentUser.Id, cid: cid || sourceCustomer.Id })\r\n      .href(), [currentUser, sourceCustomer]);\r\n\r\n  const { unlinkedAccounts, retainedAccounts } = useMemo(() => {\r\n    const retained = [];\r\n    const unlinked = [];\r\n    _.each(accounts, (acc) => {\r\n      _.each(acc.LinkedManagers, (manager) => {\r\n        const accountManager = {\r\n          Id: `${acc.Id}-${manager.Id}`,\r\n          Account: acc,\r\n          Manager: manager,\r\n        };\r\n        if (manager.Unlink) {\r\n          unlinked.push(accountManager);\r\n        } else {\r\n          retained.push(accountManager);\r\n        }\r\n      });\r\n    });\r\n    return { unlinkedAccounts: unlinked, retainedAccounts: retained };\r\n  }, [accounts]);\r\n\r\n  return (\r\n    <div className=\"accountlinks-summary\">\r\n      <ButtonOrStatic\r\n        className=\"btn-link arw-label-value accounts-popover-btn popover-btn\"\r\n        onClick={showRetainedAccountsModal}\r\n        isButton={!!retainedAccounts.length}\r\n      >\r\n        {i18n.getString(LocStrings.RetainedAccountsLabel, { count: retainedAccounts.length })}\r\n        <OkIcon />\r\n      </ButtonOrStatic>\r\n      <ButtonOrStatic\r\n        className=\"btn-link arw-label-value accounts-popover-btn popover-btn\"\r\n        onClick={showUnlinkedAccountsModal}\r\n        isButton={!!unlinkedAccounts.length}\r\n      >\r\n        {i18n.getString(LocStrings.UnlinkedAccountsLabel, { count: unlinkedAccounts.length })}\r\n        <WarningIcon />\r\n      </ButtonOrStatic>\r\n      <ARWAccountManagerPopover\r\n        key=\"1\"\r\n        popoverTitle={LocStrings.UnlinkedAccountLinksLabel}\r\n        accounts={unlinkedAccounts}\r\n        isShowing={isUnlinkedAccountsModalDisplayed}\r\n        onCancelClick={hideUnlinkedAccountsModal}\r\n        onAccountClickUrl={aid => buildCampaignsUrl(aid)}\r\n        onManagerClickUrl={cid => buildAccountsUrl(cid)}\r\n      />\r\n      <ARWAccountManagerPopover\r\n        key=\"2\"\r\n        popoverTitle={LocStrings.RatinedAccountLinksLabel}\r\n        accounts={retainedAccounts}\r\n        isShowing={isRetainedAccountsModalDisplayed}\r\n        onCancelClick={hideRetainedAccountsModal}\r\n        onAccountClickUrl={aid => buildCampaignsUrl(aid)}\r\n        onManagerClickUrl={cid => buildAccountsUrl(cid)}\r\n      />\r\n    </div>\r\n  );\r\n};\r\n\r\nAccountLinksSummary.propTypes = {\r\n  i18n: I18nPropTypes.isRequired,\r\n  sourceCustomer: CustomerPropType.isRequired,\r\n  currentUser: UserPropType.isRequired,\r\n  accounts: PropTypes.arrayOf(PropTypes.shape({\r\n    LinkedManagers: PropTypes.arrayOf(PropTypes.shape({\r\n      Unlink: PropTypes.bool,\r\n    })),\r\n  })).isRequired,\r\n};\r\n\r\nexport const ARWAccountLinksSummary = withI18nConsumer(AccountLinksSummary);\r\n","import React, { useMemo, useState, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport URI from 'urijs';\r\n\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { I18nPropTypes, CustomerPropType, UserPropType } from '@bingads-webui-campaign-react/account-reparenting-props';\r\nimport { TransferSummaryLocStrings as LocStrings } from '@bingads-webui-campaign-react/account-reparenting-localization';\r\n\r\nimport { ARWAccountManagerPopover } from './account-manager-popover';\r\nimport { ButtonOrStatic } from './button-or-static';\r\nimport { OkIcon } from './icons';\r\n\r\nconst AccountBillingSummary = ({\r\n  i18n,\r\n  accounts,\r\n  sourceCustomer,\r\n  currentUser,\r\n  clientCenterUIAPI,\r\n}) => {\r\n  const [isNewBillToAccountsModalDisplayed, setIsNewBillToAccountsModalDisplayed] = useState(false);\r\n  const [isRetainedAccountsModalDisplayed, setIsRetainedAccountsModalDisplayed] = useState(false);\r\n\r\n  const showNewBillToAccountsModal = useCallback(() => {\r\n    setIsNewBillToAccountsModalDisplayed(true);\r\n  }, [setIsNewBillToAccountsModalDisplayed]);\r\n  const hideNewBillToAccountsModal = useCallback(() => {\r\n    setIsNewBillToAccountsModalDisplayed(false);\r\n  }, [setIsNewBillToAccountsModalDisplayed]);\r\n\r\n  const showRetainedAccountsModal = useCallback(() => {\r\n    setIsRetainedAccountsModalDisplayed(true);\r\n  }, [setIsRetainedAccountsModalDisplayed]);\r\n  const hideRetainedAccountsModal = useCallback(() => {\r\n    setIsRetainedAccountsModalDisplayed(false);\r\n  }, [setIsRetainedAccountsModalDisplayed]);\r\n\r\n  const { retainedAccounts, newBillToAccounts } = useMemo(() => {\r\n    const retained = _.filter(\r\n      accounts,\r\n      acc => acc.BillToManager && acc.BillToManager.BillTo\r\n    );\r\n    const newBillTo = _.filter(\r\n      accounts,\r\n      acc => !acc.BillToManager || !acc.BillToManager.BillTo\r\n    );\r\n    return { newBillToAccounts: newBillTo, retainedAccounts: retained };\r\n  }, [accounts]);\r\n\r\n  const toAccountManagerMap = useCallback(account => ({\r\n    Id: `${account.Id}-${account.BillToManager.Id}`,\r\n    Account: account,\r\n    Manager: account.BillToManager,\r\n  }), []);\r\n\r\n  const buildBillingUrl = useCallback((cid, aid) =>\r\n    new URI(`${clientCenterUIAPI}billing`)\r\n      .search({ uid: currentUser.Id, cid: cid || sourceCustomer.Id, aid })\r\n      .href(), [currentUser, sourceCustomer, clientCenterUIAPI]);\r\n\r\n  return (\r\n    <div className=\"accountbilling-summary\">\r\n      <ButtonOrStatic\r\n        className=\"btn-link arw-label-value accounts-popover-btn popover-btn\"\r\n        onClick={showNewBillToAccountsModal}\r\n        isButton={!!newBillToAccounts.length}\r\n      >\r\n        {i18n.getString(LocStrings.NewBillToLabel, { count: newBillToAccounts.length })}\r\n        <OkIcon />\r\n      </ButtonOrStatic>\r\n      <ButtonOrStatic\r\n        className=\"btn-link arw-label-value accounts-popover-btn popover-btn\"\r\n        onClick={showRetainedAccountsModal}\r\n        isButton={!!retainedAccounts.length}\r\n      >\r\n        {i18n.getString(LocStrings.RetainedBillToLabel, { count: retainedAccounts.length })}\r\n        <OkIcon />\r\n      </ButtonOrStatic>\r\n      <ARWAccountManagerPopover\r\n        key=\"1\"\r\n        popoverTitle={LocStrings.NewBillToAccountsLabel}\r\n        accounts={_.map(newBillToAccounts || [], acc => toAccountManagerMap(acc))}\r\n        isShowing={isNewBillToAccountsModalDisplayed}\r\n        onCancelClick={hideNewBillToAccountsModal}\r\n        onAccountClickUrl={aid => buildBillingUrl(null, aid)}\r\n        onManagerClickUrl={cid => buildBillingUrl(cid)}\r\n      />\r\n      <ARWAccountManagerPopover\r\n        key=\"2\"\r\n        popoverTitle={LocStrings.RetainedBillToAccountsLabel}\r\n        accounts={_.map(retainedAccounts || [], acc => toAccountManagerMap(acc))}\r\n        isShowing={isRetainedAccountsModalDisplayed}\r\n        onCancelClick={hideRetainedAccountsModal}\r\n        onAccountClickUrl={aid => buildBillingUrl(null, aid)}\r\n        onManagerClickUrl={cid => buildBillingUrl(cid)}\r\n      />\r\n    </div>\r\n  );\r\n};\r\n\r\nAccountBillingSummary.propTypes = {\r\n  i18n: I18nPropTypes.isRequired,\r\n  sourceCustomer: CustomerPropType.isRequired,\r\n  currentUser: UserPropType.isRequired,\r\n  clientCenterUIAPI: PropTypes.string.isRequired,\r\n  accounts: PropTypes.arrayOf(PropTypes.shape({\r\n    BillToManager: PropTypes.shape({\r\n      BillTo: PropTypes.bool,\r\n    }),\r\n  })).isRequired,\r\n};\r\n\r\nexport const ARWAccountBillingSummary = withI18nConsumer(AccountBillingSummary);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { Label, FormGroup } from '@bingads-webui-react/primitive';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { I18nPropTypes } from '@bingads-webui-campaign-react/account-reparenting-props';\r\nimport { paymentOptionIdToKeyMap, TransferSummaryLocStrings as LocStrings } from '@bingads-webui-campaign-react/account-reparenting-localization';\r\n\r\nexport const AccountPaymentSummary = ({ i18n, paymentOptionId }) => {\r\n  const paymentOptionKey = paymentOptionIdToKeyMap[paymentOptionId];\r\n\r\n  return (\r\n    <FormGroup className=\"accounts-payments-info\">\r\n      <Label className=\"arw-label-title\">\r\n        {i18n.getString(LocStrings.PaymentOption)}\r\n      </Label>\r\n      <Label className=\"arw-label-value\">\r\n        {i18n.getString(paymentOptionKey)}\r\n      </Label>\r\n    </FormGroup>\r\n  );\r\n};\r\n\r\nAccountPaymentSummary.propTypes = {\r\n  i18n: I18nPropTypes.isRequired,\r\n  paymentOptionId: PropTypes.number,\r\n};\r\n\r\nAccountPaymentSummary.defaultProps = {\r\n  paymentOptionId: null,\r\n};\r\n\r\nexport const ARWAccountPaymentSummary = withI18nConsumer(AccountPaymentSummary);\r\n","import React, { useMemo, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport URI from 'urijs';\r\nimport { Constants } from '@bingads-webui-clientcenter/entity-utils';\r\nimport { Label, FormGroup } from '@bingads-webui-react/primitive';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { CustomerPropType, I18nPropTypes, UserPropType } from '@bingads-webui-campaign-react/account-reparenting-props';\r\nimport { TransferSummaryLocStrings as LocStrings } from '@bingads-webui-campaign-react/account-reparenting-localization';\r\nimport { WarningIcon, OkIcon } from './icons';\r\nimport { ButtonOrStatic } from './button-or-static';\r\n\r\nconst InsertionOrdersSummary = ({\r\n  accounts,\r\n  clientCenterUIAPI,\r\n  currentUser,\r\n  i18n,\r\n  reparentingId,\r\n  sourceCustomer,\r\n}) => {\r\n  // TODO: Move construction to client center repo (its repeated in a few places)\r\n  const preApprovalIOPageUrl = useMemo(\r\n    () => new URI(`${clientCenterUIAPI}InsertionOrder/PreApprove`)\r\n      .search({\r\n        rpid: reparentingId,\r\n        iosrc: Constants.IOCreationSource.Reparenting,\r\n        uid: currentUser.Id,\r\n        cid: sourceCustomer.Id,\r\n      }).href(),\r\n    [reparentingId, currentUser.Id, sourceCustomer.Id, clientCenterUIAPI]\r\n  );\r\n\r\n  const ioStatusCounts = useMemo(\r\n    () => {\r\n      const accountsBillToChange = _.filter(\r\n        _.pluck(\r\n          accounts,\r\n          'BillToChange'\r\n        ),\r\n        billToChange => !!billToChange\r\n      );\r\n\r\n      return _.reduce(\r\n        accountsBillToChange,\r\n        (counts, { InsertionOrder }) => {\r\n          if (!InsertionOrder) {\r\n            return counts;\r\n          }\r\n\r\n          switch (InsertionOrder.ioStatus) {\r\n            case Constants.InsertionOrderStatus.PendingBillToPartyChangeAndUserReview:\r\n              return { ...counts, pending: counts.pending + 1 };\r\n\r\n            case Constants.InsertionOrderStatus.PendingBillToPartyChange:\r\n              return { ...counts, approved: counts.approved + 1 };\r\n\r\n            case Constants.InsertionOrderStatus.Declined:\r\n              return { ...counts, declined: counts.declined + 1 };\r\n\r\n            default:\r\n              return counts;\r\n          }\r\n        },\r\n        { approved: 0, declined: 0, pending: 0 }\r\n      );\r\n    },\r\n    [accounts]\r\n  );\r\n\r\n  const navigateToIOApprovalPage = useCallback(\r\n    /* istanbul ignore next */\r\n    () => {\r\n      window.location.href = preApprovalIOPageUrl;\r\n    },\r\n    [preApprovalIOPageUrl]\r\n  );\r\n\r\n  const renderCountsRow = (locKey, count, icon) => (\r\n    <ButtonOrStatic className=\"btn-link arw-label-value popover-btn\" onClick={navigateToIOApprovalPage} isButton={!!count}>\r\n      {\r\n        i18n.getString(locKey, { count })\r\n      }\r\n\r\n      {icon}\r\n    </ButtonOrStatic>\r\n  );\r\n\r\n  const approvedLabel = ioStatusCounts.approved > 0 ? (\r\n    renderCountsRow(LocStrings.InsertionOrdersApproved, ioStatusCounts.approved, <OkIcon />)\r\n  ) : null;\r\n\r\n  const declinedLabel = ioStatusCounts.declined > 0 ? (\r\n    renderCountsRow(LocStrings.InsertionOrdersDeclined, ioStatusCounts.declined, <WarningIcon />)\r\n  ) : null;\r\n\r\n  const pendingLabel = ioStatusCounts.pending > 0 ? (\r\n    renderCountsRow(LocStrings.InsertionOrdersPending, ioStatusCounts.pending, <WarningIcon />)\r\n  ) : null;\r\n\r\n  if (!approvedLabel && !pendingLabel && !declinedLabel) {\r\n    return null;\r\n  }\r\n\r\n  return (\r\n    <FormGroup className=\"insertion-orders-info\">\r\n      <Label className=\"arw-label-title\">\r\n        {i18n.getString(LocStrings.InsertionOrders)}\r\n      </Label>\r\n\r\n      <div className=\"arw-label-value\">\r\n        {approvedLabel}\r\n        {declinedLabel}\r\n        {pendingLabel}\r\n      </div>\r\n    </FormGroup>\r\n  );\r\n};\r\n\r\n\r\nInsertionOrdersSummary.propTypes = {\r\n  i18n: I18nPropTypes.isRequired,\r\n  sourceCustomer: CustomerPropType.isRequired,\r\n  currentUser: UserPropType.isRequired,\r\n  clientCenterUIAPI: PropTypes.string.isRequired,\r\n  reparentingId: PropTypes.number.isRequired,\r\n  accounts: PropTypes.arrayOf(PropTypes.shape({\r\n    BillToChange: PropTypes.object,\r\n  })).isRequired,\r\n};\r\n\r\nexport const ARWInsertionOrdersSummary = withI18nConsumer(InsertionOrdersSummary);\r\n","import React, { useState, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport URI from 'urijs';\r\n\r\nimport { getRoutePathById, allSiteMap } from '@bingads-webui-react/with-site-map';\r\nimport { FormGroup, Label } from '@bingads-webui-react/primitive';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { I18nPropTypes, CustomerPropType, UserPropType, UETTagsPropTypes } from '@bingads-webui-campaign-react/account-reparenting-props';\r\nimport { TransferSummaryLocStrings as LocStrings } from '@bingads-webui-campaign-react/account-reparenting-localization';\r\nimport { stringContains } from '@bingads-webui-campaign-react/account-reparenting-utils';\r\nimport { ARWEntityPopover } from '@bingads-webui-campaign-react/account-reparenting-popover';\r\n\r\nimport { ButtonOrStatic } from './button-or-static';\r\nimport { WarningIcon, OkIcon } from './icons';\r\n\r\nconst matchSearchAccount = (account, srcText) =>\r\n  _.isEmpty(srcText) ||\r\n  stringContains(account.Name.toLowerCase(), srcText) ||\r\n  stringContains(account.Number.toLowerCase(), srcText) ||\r\n  stringContains(account.Id.toString().toLowerCase(), srcText);\r\n\r\nconst matchSearchTag = (tag, srcText) =>\r\n  _.isEmpty(srcText) ||\r\n  stringContains(tag.Name.toLowerCase(), srcText) ||\r\n  stringContains(tag.Id.toString().toLowerCase(), srcText);\r\n\r\nconst UETTagsSummary = ({\r\n  i18n,\r\n  currentUser,\r\n  sourceCustomer,\r\n  uetTags,\r\n}) => {\r\n  const [isUETPanelDisplayed, setIsUETPanelDisplayed] = useState(false);\r\n  const [isAccountPanelDisplayed, setIsAccountPanelDisplayed] = useState(false);\r\n  const showUETPanel = useCallback(() => {\r\n    setIsUETPanelDisplayed(true);\r\n  }, [setIsUETPanelDisplayed]);\r\n  const hideUETPanel = useCallback(() => {\r\n    setIsUETPanelDisplayed(false);\r\n  }, [setIsUETPanelDisplayed]);\r\n\r\n  const showAccountsPanel = useCallback(() => {\r\n    setIsAccountPanelDisplayed(true);\r\n  }, [setIsAccountPanelDisplayed]);\r\n  const hideAccountsPanel = useCallback(() => {\r\n    setIsAccountPanelDisplayed(false);\r\n  }, [setIsAccountPanelDisplayed]);\r\n\r\n  const transferTags = _.filter(uetTags, tag => tag.Move);\r\n  const loseAccessAccounts = _.map(_.uniq(_.reduce(\r\n    uetTags, (memo, tag) => [\r\n      ...memo,\r\n      ...(tag.Move ? tag.TagUsedByInfosImpactedByTransfer : tag.TagUsedByInfosImpactedByKeep),\r\n    ],\r\n    []\r\n  ), false, accounts => accounts.Account.Id), obj => obj.Account);\r\n\r\n\r\n  const buildCampaignsUrl = useCallback(({ Id }) =>\r\n    new URI(`${window.location.origin}${getRoutePathById(allSiteMap, 'campaigns')}`)\r\n      .search({ uid: currentUser.Id, cid: sourceCustomer.Id, aid: Id })\r\n      // TODO not sourceCustomer for cid-cid link\r\n      .href(), [currentUser, sourceCustomer]);\r\n\r\n  const buildUETUrl = useCallback(({ Id }) =>\r\n    new URI(`${window.location.origin}${getRoutePathById(allSiteMap, 'uet-tag')}`)\r\n      .search({\r\n        uid: currentUser.Id,\r\n        cid: sourceCustomer.Id,\r\n        filterExpressions: JSON.stringify([{\r\n          SelectedColumn: 'Id',\r\n          SelectedOperator: 'Equal',\r\n          Values: [Id],\r\n        }]),\r\n      })\r\n      .href(), [currentUser, sourceCustomer]);\r\n  const uets = _.map(transferTags, item => _.extend({}, item, {\r\n    Url: buildUETUrl(item),\r\n  }));\r\n  const accounts = _.map(loseAccessAccounts, item => _.extend({}, item, {\r\n    Url: buildCampaignsUrl(item),\r\n  }));\r\n\r\n  return (\r\n    <FormGroup className=\"uet-tags-info\">\r\n      <Label className=\"arw-label-title\">{i18n.getString(LocStrings.UETTagLabel)}</Label>\r\n      <div className=\"arw-label-value\">\r\n        <div className=\"uet-tags-summary\">\r\n          <ButtonOrStatic\r\n            className=\"btn-link arw-label-value uet-tags-popover-btn popover-btn\"\r\n            onClick={showUETPanel}\r\n            isButton={!!transferTags.length}\r\n          >\r\n            {\r\n              transferTags.length !== 1 ?\r\n                i18n.getString(LocStrings.UETTagsTransfered, { count: transferTags.length }) :\r\n                i18n.getString(LocStrings.UETTagTransfered)\r\n            }\r\n            <OkIcon />\r\n          </ButtonOrStatic>\r\n          <ButtonOrStatic\r\n            className=\"btn-link arw-label-value uet-tags-accounts-popover-btn popover-btn\"\r\n            onClick={showAccountsPanel}\r\n            isButton={!!loseAccessAccounts.length}\r\n          >\r\n            {\r\n              loseAccessAccounts.length !== 1 ?\r\n                i18n.getString(LocStrings.AccountsLoseAccess, {\r\n                  count: loseAccessAccounts.length,\r\n                }) :\r\n                i18n.getString(LocStrings.AccountLoseAccess)\r\n            }\r\n            <WarningIcon />\r\n          </ButtonOrStatic>\r\n          <ARWEntityPopover\r\n            key=\"1\"\r\n            popoverId=\"uet-tags-popover\"\r\n            isShowing={isUETPanelDisplayed}\r\n            onCancelClick={hideUETPanel}\r\n            matchSearch={matchSearchTag}\r\n            entities={uets}\r\n            searchboxPlaceholder={LocStrings.SearchUETTags}\r\n            title={LocStrings.UETPopoverTitle}\r\n          />\r\n          <ARWEntityPopover\r\n            key=\"2\"\r\n            popoverId=\"lose-access-accounts-popover\"\r\n            isShowing={isAccountPanelDisplayed}\r\n            onCancelClick={hideAccountsPanel}\r\n            matchSearch={matchSearchAccount}\r\n            entities={accounts}\r\n            searchboxPlaceholder={LocStrings.SearchAccounts}\r\n            title={LocStrings.LoseAccessAccountPopoverTitle}\r\n          />\r\n        </div>\r\n      </div>\r\n    </FormGroup>\r\n  );\r\n};\r\n\r\nUETTagsSummary.propTypes = {\r\n  i18n: I18nPropTypes.isRequired,\r\n  sourceCustomer: CustomerPropType.isRequired,\r\n  currentUser: UserPropType.isRequired,\r\n  uetTags: PropTypes.arrayOf(UETTagsPropTypes).isRequired,\r\n};\r\n\r\nexport const ARWUETTagsSummary = withI18nConsumer(UETTagsSummary);\r\n","import React, { useState, useCallback } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport URI from 'urijs';\r\n\r\nimport { downloadifyBlob } from '@bingads-webui/download-service';\r\nimport { FormGroup, Label, NavItem, Glyphicon, Button } from '@bingads-webui-react/primitive';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { Constants } from '@bingads-webui-clientcenter/entity-utils';\r\nimport {\r\n  I18nPropTypes,\r\n  BasicAccountPropType,\r\n  CustomerPropType,\r\n  UserPropType,\r\n  NewBillToPropType,\r\n  UETTagsPropTypes,\r\n} from '@bingads-webui-campaign-react/account-reparenting-props';\r\nimport { TransferSummaryLocStrings as LocStrings } from '@bingads-webui-campaign-react/account-reparenting-localization';\r\nimport { useUETTagActions } from '@bingads-webui-campaign-react/account-reparenting-actions';\r\nimport { useARWContextPermissions } from '@bingads-webui-campaign-react/account-reparenting-context-provider';\r\n\r\nimport { ARWAccountsPopover } from './accounts-popover';\r\nimport { ARWAccountLinksSummary } from './accountlinks-summary';\r\nimport { ARWAccountBillingSummary } from './accountbilling-summary';\r\nimport { ARWAccountPaymentSummary } from './account-payment-summary';\r\nimport { ARWInsertionOrdersSummary } from './insertion-orders-summary';\r\nimport { ARWUETTagsSummary } from './uet-tags-summary';\r\nimport { ButtonOrStatic } from './button-or-static';\r\n\r\nconst RequestSummaryPane = ({\r\n  i18n,\r\n  currentUser,\r\n  sourceCustomer,\r\n  targetCustomer,\r\n  accounts,\r\n  newBillTo,\r\n  onAccountDelete,\r\n  reparentingId,\r\n  clientCenterUIAPI,\r\n  paymentOptionId,\r\n  uetTags,\r\n  showSummaryPaneLinkSettings,\r\n  showSummaryPaneBillingSetting,\r\n}) => {\r\n  const [isAccountsListPopoverDisplayed, setIsAccountsListPopoverDisplayed] = useState(false);\r\n  const showAccountsListPopover = useCallback(() => {\r\n    setIsAccountsListPopoverDisplayed(true);\r\n  }, [setIsAccountsListPopoverDisplayed]);\r\n  const hideAccountsListPopover = useCallback(() => {\r\n    setIsAccountsListPopoverDisplayed(false);\r\n  }, [setIsAccountsListPopoverDisplayed]);\r\n  const uetActions = useUETTagActions();\r\n  const isUETEnabled = useARWContextPermissions().IsAccountReparentingUETEnabled;\r\n  const downloadSummary = useCallback(() => {\r\n    uetActions.download().then((response) => {\r\n      downloadifyBlob(response, 'AccountTransferSummary.xlsx');\r\n    }).catch((e) => {\r\n      throw e;\r\n    });\r\n  }, [uetActions]);\r\n\r\n  const buildTransferSummaryDownloadUrl = useCallback(() =>\r\n    new URI(`${clientCenterUIAPI}api/reparenting/RenderAccountTransferSummaryExcel`)\r\n      .search({\r\n        id: reparentingId,\r\n        uid: currentUser.Id,\r\n        cid: sourceCustomer.Id,\r\n        sourceCid: sourceCustomer.Id,\r\n      })\r\n      .href(), [currentUser, clientCenterUIAPI, sourceCustomer, reparentingId]);\r\n\r\n  return (\r\n    <div className={classNames('transfer-request-summary')}>\r\n      <div className=\"arw-page-header\">\r\n        {i18n.getString(LocStrings.SummaryPaneHeader)}\r\n      </div>\r\n      { sourceCustomer && sourceCustomer.Name && (\r\n        <FormGroup className=\"current-owner-info\">\r\n          <Label className=\"arw-label-title\">{i18n.getString(LocStrings.CurrentManagerAccountLabel)}</Label>\r\n          <Label className=\"arw-label-value\">{sourceCustomer.Name}</Label>\r\n        </FormGroup>\r\n      )}\r\n      { accounts && accounts.length && (\r\n        <FormGroup className=\"selected-accounts-info\">\r\n          <Label className=\"arw-label-title\">{i18n.getString(LocStrings.AccountsSelectedLabel)}</Label>\r\n          <ButtonOrStatic\r\n            className=\"btn-link arw-label-value accounts-popover-btn popover-btn\"\r\n            onClick={showAccountsListPopover}\r\n            isButton={!!accounts.length}\r\n          >\r\n            {i18n.getString(LocStrings.NumberOfAccounts, { count: accounts.length })}\r\n          </ButtonOrStatic>\r\n          <ARWAccountsPopover\r\n            accounts={accounts}\r\n            currentUser={currentUser}\r\n            sourceCustomer={sourceCustomer}\r\n            onAccountDelete={onAccountDelete}\r\n            isShowing={isAccountsListPopoverDisplayed}\r\n            onCancelClick={hideAccountsListPopover}\r\n            clientCenterUIAPI={clientCenterUIAPI}\r\n          />\r\n        </FormGroup>\r\n      )}\r\n      { targetCustomer && targetCustomer.Name && (\r\n        <FormGroup className=\"target-owner-info\">\r\n          <Label className=\"arw-label-title\">{i18n.getString(LocStrings.NewManagerAccountLabel)}</Label>\r\n          <Label className=\"arw-label-value\">{targetCustomer.Name}</Label>\r\n        </FormGroup>\r\n      )}\r\n      { accounts && showSummaryPaneLinkSettings && (\r\n        <FormGroup className=\"accounts-linking-info\">\r\n          <Label className=\"arw-label-title\">{i18n.getString(LocStrings.AccountLinksLabel)}</Label>\r\n          <div className=\"arw-label-value\">\r\n            <ARWAccountLinksSummary\r\n              accounts={accounts}\r\n              currentUser={currentUser}\r\n              sourceCustomer={sourceCustomer}\r\n              clientCenterUIAPI={clientCenterUIAPI}\r\n            />\r\n          </div>\r\n        </FormGroup>\r\n      )}\r\n      { accounts && showSummaryPaneBillingSetting && (\r\n        <FormGroup className=\"accounts-billing-info\">\r\n          <Label className=\"arw-label-title\">{i18n.getString(LocStrings.BillingSetupLabel)}</Label>\r\n          <div className=\"arw-label-value\">\r\n            <ARWAccountBillingSummary\r\n              accounts={accounts}\r\n              currentUser={currentUser}\r\n              sourceCustomer={sourceCustomer}\r\n              clientCenterUIAPI={clientCenterUIAPI}\r\n            />\r\n          </div>\r\n        </FormGroup>\r\n      )}\r\n      { newBillTo && newBillTo.Customer && _.isNumber(paymentOptionId) &&\r\n        <ARWAccountPaymentSummary paymentOptionId={paymentOptionId} />\r\n      }\r\n      {\r\n        sourceCustomer &&\r\n        newBillTo &&\r\n        newBillTo.Customer &&\r\n        paymentOptionId === Constants.PaymentOptionId.Invoice &&\r\n          <ARWInsertionOrdersSummary\r\n            clientCenterUIAPI={clientCenterUIAPI}\r\n            accounts={accounts}\r\n            currentUser={currentUser}\r\n            sourceCustomer={sourceCustomer}\r\n            reparentingId={reparentingId}\r\n          />\r\n      }\r\n      {\r\n        uetTags && uetTags.saved &&\r\n          <ARWUETTagsSummary\r\n            currentUser={currentUser}\r\n            sourceCustomer={sourceCustomer}\r\n            uetTags={uetTags}\r\n          />\r\n      }\r\n      {\r\n        isUETEnabled ?\r\n          <Button\r\n            onClick={downloadSummary}\r\n            className=\"download-summary-link btn-link\"\r\n          >\r\n            <Glyphicon glyph=\"download\" />\r\n            {i18n.getString(LocStrings.DownloadSummaryLinkLabel)}\r\n          </Button> :\r\n          <NavItem href={buildTransferSummaryDownloadUrl()} className=\"download-summary-link\">\r\n            <Glyphicon glyph=\"download\" />\r\n            {i18n.getString(LocStrings.DownloadSummaryLinkLabel)}\r\n          </NavItem>\r\n      }\r\n    </div>\r\n  );\r\n};\r\n\r\nRequestSummaryPane.propTypes = {\r\n  i18n: I18nPropTypes.isRequired,\r\n  sourceCustomer: CustomerPropType.isRequired,\r\n  targetCustomer: CustomerPropType,\r\n  currentUser: UserPropType.isRequired,\r\n  accounts: PropTypes.arrayOf(BasicAccountPropType),\r\n  newBillTo: NewBillToPropType,\r\n  onAccountDelete: PropTypes.func,\r\n  reparentingId: PropTypes.number.isRequired,\r\n  clientCenterUIAPI: PropTypes.string.isRequired,\r\n  paymentOptionId: PropTypes.number,\r\n  uetTags: PropTypes.arrayOf(UETTagsPropTypes),\r\n  showSummaryPaneBillingSetting: PropTypes.bool,\r\n  showSummaryPaneLinkSettings: PropTypes.bool,\r\n};\r\n\r\nRequestSummaryPane.defaultProps = {\r\n  onAccountDelete: _.noop,\r\n  targetCustomer: null,\r\n  accounts: null,\r\n  newBillTo: null,\r\n  paymentOptionId: null,\r\n  uetTags: [],\r\n  showSummaryPaneBillingSetting: false,\r\n  showSummaryPaneLinkSettings: false,\r\n};\r\n\r\nexport const TransferRequestSummary = withI18nConsumer(RequestSummaryPane);\r\n","import React, { useCallback } from 'react';\r\nimport classNames from 'classnames';\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\n\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\n\r\nimport { useARWContextValue, useARWContextActions, usePaymentOptionId, useARWContextPermissions } from '@bingads-webui-campaign-react/account-reparenting-context-provider';\r\nimport { summaryPaneClassesProps, getSummaryPaneStyles } from '@bingads-webui-campaign-react/account-reparenting-styles';\r\nimport { useReparentingJobActions, useUETTagActions } from '@bingads-webui-campaign-react/account-reparenting-actions';\r\nimport { JobUpdateTypes } from '@bingads-webui-campaign-react/account-reparenting-utils';\r\nimport { TransferRequestSummary } from '@bingads-webui-campaign-react/transfer-request-summary';\r\n\r\nconst SummaryPane = ({ classes }) => {\r\n  const serverContext = useARWContextValue();\r\n  const contextActions = useARWContextActions();\r\n  const jobActions = useReparentingJobActions();\r\n  const paymentOptionId = usePaymentOptionId();\r\n  const uetActions = useUETTagActions();\r\n  const {\r\n    Accounts,\r\n    SourceCustomer,\r\n    TargetCustomer,\r\n    CurrentUser,\r\n    NewBillTo,\r\n    ReparentingId,\r\n    ServicesEndpoints,\r\n    UETTags,\r\n    ShowSummaryPaneLinkSettings,\r\n    ShowSummaryPaneBillingSetting,\r\n  } = serverContext;\r\n  const isUETEnabled = useARWContextPermissions().IsAccountReparentingUETEnabled;\r\n  const { UpdateUETTags } = contextActions;\r\n\r\n  const onAccountDelete = useCallback((accountId) => {\r\n    const updatedAccounts = _.reject(Accounts, acc => acc.Id === accountId);\r\n    jobActions.update({\r\n      updateType: JobUpdateTypes.ReparentingAccountDelete,\r\n      accountIds: _.pluck(updatedAccounts, 'Id'),\r\n    })\r\n      .then(() => {\r\n        contextActions.DeleteAccount(accountId);\r\n        if (isUETEnabled) {\r\n          uetActions.load()\r\n            .then(({ UetSetting }) => {\r\n              const tagInfos = _.extend([], UetSetting.TagInfos, {\r\n                saved: UetSetting.IsSaved,\r\n              });\r\n              UpdateUETTags(tagInfos);\r\n            })\r\n            .catch(() => {\r\n              // TODO, error handling\r\n            })\r\n            .finally(withUiBlock($('.accounts-list-popover-dialog')));\r\n        }\r\n      })\r\n      .finally(withUiBlock($('.accounts-list-popover-dialog')));\r\n  }, [Accounts, jobActions, contextActions, isUETEnabled, uetActions, UpdateUETTags]);\r\n\r\n  return (\r\n    <div className={classNames('summary-pane', classes.summaryPaneContainer)}>\r\n      <TransferRequestSummary\r\n        sourceCustomer={SourceCustomer}\r\n        targetCustomer={TargetCustomer}\r\n        reparentingId={ReparentingId}\r\n        currentUser={CurrentUser}\r\n        accounts={Accounts}\r\n        newBillTo={NewBillTo}\r\n        onAccountDelete={onAccountDelete}\r\n        clientCenterUIAPI={ServicesEndpoints.ClientCenterUIAPI}\r\n        paymentOptionId={paymentOptionId}\r\n        uetTags={UETTags}\r\n        showSummaryPaneLinkSettings={ShowSummaryPaneLinkSettings}\r\n        showSummaryPaneBillingSetting={ShowSummaryPaneBillingSetting}\r\n      />\r\n    </div>\r\n  );\r\n};\r\n\r\nSummaryPane.propTypes = {\r\n  classes: summaryPaneClassesProps.isRequired,\r\n};\r\n\r\nexport const ARWSummaryPane = withDefaultStyles(SummaryPane, getSummaryPaneStyles);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { getPageDescriptionStyles } from './styles/page-description-styles';\r\n\r\nconst UnstyledPageDescription = ({\r\n  children,\r\n  classes: { accountsSummaryPageDescription },\r\n}) => (\r\n  <div className={accountsSummaryPageDescription}>\r\n    <p>\r\n      {children}\r\n    </p>\r\n  </div>\r\n);\r\n\r\nUnstyledPageDescription.propTypes = {\r\n  children: PropTypes.string.isRequired,\r\n  classes: PropTypes.shape({\r\n    accountsSummaryPageDescription: PropTypes.string,\r\n  }).isRequired,\r\n};\r\n\r\nexport const AccountsPageDescription = withDefaultStyles(UnstyledPageDescription, getPageDescriptionStyles);\r\n","export const getPageDescriptionStyles = (_, { palette = {} }) => ({\r\n  accountsSummaryPageDescription: {\r\n    padding: {\r\n      top: 20,\r\n      bottom: 10,\r\n      left: 32,\r\n    },\r\n    fontFamily: 'Segoe UI',\r\n    fontSize: 14,\r\n    lineHeight: '16px',\r\n    color: palette.neutralPrimary,\r\n\r\n    '& p': {\r\n      margin: 0,\r\n    },\r\n  },\r\n});\r\n","import {\r\n  extensionEditorStyles,\r\n  helpbuttonStyle,\r\n  messageBarStyle,\r\n  selectElementStyle,\r\n  scrollbarStyle,\r\n  glyphIconStyle,\r\n  validationErrorsStyle,\r\n  convertToLocalStyle,\r\n  mergeStyles,\r\n} from '@bingads-webui-campaign-react/common-styles';\r\n\r\nexport const getAdExtensionEditorStyles = (components, theme) => mergeStyles(\r\n  { theme },\r\n  convertToLocalStyle(mergeStyles(\r\n    { theme },\r\n    helpbuttonStyle,\r\n    extensionEditorStyles,\r\n    messageBarStyle,\r\n    scrollbarStyle,\r\n    glyphIconStyle\r\n  )),\r\n  components.searchboxStyle,\r\n  selectElementStyle({ ...theme, includeSelector: true }),\r\n  validationErrorsStyle(components, theme)\r\n);\r\n","import {\r\n  helpbuttonStyle,\r\n  scrollbarStyle,\r\n  glyphIconStyle,\r\n  convertToLocalStyle,\r\n  adExtensionsAssociationsContainerLayoutType,\r\n  adExtensionsAssociationsContainer,\r\n  mergeStyles,\r\n} from '@bingads-webui-campaign-react/common-styles';\r\n\r\nexport const getAdExtensionsAssociationsStyles = (components, theme) => mergeStyles(\r\n  { theme },\r\n  convertToLocalStyle(mergeStyles(\r\n    { theme },\r\n    helpbuttonStyle,\r\n    scrollbarStyle,\r\n    glyphIconStyle\r\n  )),\r\n  components.searchboxStyle,\r\n  components.buttonInputStyle,\r\n  adExtensionsAssociationsContainer(adExtensionsAssociationsContainerLayoutType.ExpandHorizontallyToContainer)(components, theme)\r\n);\r\n","import { clone, isFunction } from 'underscore';\r\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Backbone from 'backbone';\r\nimport classNames from 'classnames';\r\nimport { DefaultButton } from '@bingads-webui-react/fabric-control';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport {\r\n  adExtensionItemTemplateStyles,\r\n  mergeStyles,\r\n} from '@bingads-webui-campaign-react/common-styles';\r\nimport { adExtensionEditorsGlobalStyles } from './styles/ad-extension-editor-global-styles';\r\nimport { getAdExtensionEditorStyles } from './styles/ad-extension-editors-common-styles';\r\nimport { getAdExtensionsAssociationsStyles } from './styles/ad-extensions-associations-styles';\r\n\r\nconst Extension = ({ classes, template, extension }) => (\r\n  <div\r\n    className={classNames('extension-container', classes.extensionContainer)}\r\n    // eslint-disable-next-line react/no-danger\r\n    dangerouslySetInnerHTML={{ __html: template({ data: extension }) }}\r\n  />\r\n);\r\n\r\nExtension.propTypes = {\r\n  classes: PropTypes.shape({\r\n    extensionContainer: PropTypes.string.isRequired,\r\n  }).isRequired,\r\n  extension: PropTypes.shape({}).isRequired,\r\n  template: PropTypes.func.isRequired,\r\n};\r\n\r\n\r\nconst getExtensionsStyles = ({ type = 'flex', itemsPerRow = 4 } = {}) => (components, theme = {}) => ({\r\n  extensionsContainer: {\r\n    ...mergeStyles(\r\n      { theme },\r\n      {\r\n        ...type === 'flex' ? {\r\n          display: 'flex',\r\n          flexDirection: 'row',\r\n          flexWrap: 'wrap',\r\n          gap: '8px',\r\n        } : {\r\n          display: 'grid',\r\n          gridGap: '8px',\r\n          gridTemplateColumns: `repeat(${itemsPerRow}, minmax(0px, 1fr))`,\r\n        },\r\n\r\n        '& .itemTemplate-text ul': {\r\n          marginBottom: 'unset',\r\n        },\r\n      }\r\n    ),\r\n  },\r\n  extensionContainer: {\r\n    ...mergeStyles(\r\n      { theme },\r\n      {\r\n        border: '1px solid #E1DFDD',\r\n        borderRadius: 4,\r\n        padding: [12, 14],\r\n\r\n        display: 'flex',\r\n        alignContent: 'center',\r\n        flexWrap: 'wrap',\r\n      },\r\n      adExtensionItemTemplateStyles({ withEllipsisItemText: true })(theme)\r\n    ),\r\n  },\r\n});\r\n\r\nconst Extensions = ({\r\n  layoutOptions,\r\n  associations,\r\n  template,\r\n}) => {\r\n  const classes = useDefaultStyles(getExtensionsStyles(layoutOptions));\r\n\r\n  return (\r\n    <div className={classNames('extensions-container', classes.extensionsContainer)}>\r\n      {associations.map((association, index) => (\r\n        <Extension\r\n          key={association.Id || index}\r\n          classes={classes}\r\n          template={template}\r\n          extension={association}\r\n        />\r\n      ))}\r\n    </div>\r\n  );\r\n};\r\n\r\nExtensions.propTypes = {\r\n  layoutOptions: PropTypes.shape({}),\r\n  template: PropTypes.func.isRequired,\r\n  associations: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n};\r\n\r\nExtensions.defaultProps = {\r\n  layoutOptions: undefined,\r\n};\r\n\r\nconst getEditorStyles = (components, theme = {}) => ({\r\n  ...adExtensionEditorsGlobalStyles(components, theme),\r\n\r\n  extensionsAssociations: {\r\n    ...getAdExtensionsAssociationsStyles(components, theme),\r\n    ...adExtensionItemTemplateStyles({ withEllipsisItemText: true })(theme),\r\n  },\r\n  editorPanel: {\r\n    ...getAdExtensionEditorStyles(components, theme),\r\n  },\r\n});\r\n\r\nconst Editor = ({\r\n  campaignId,\r\n  campaignName,\r\n  associationEditor: AssociationEditor,\r\n  dynamicFeatures,\r\n  onSave: onEditorSave,\r\n  onCancel: onEditorCancel,\r\n  onChange: onEditorChange,\r\n}) => {\r\n  const classes = useDefaultStyles(getEditorStyles);\r\n  const view = useRef();\r\n  const viewListener = useMemo(() => clone(Backbone.Events), []);\r\n  let container;\r\n\r\n  useEffect(() => {\r\n    view.current = new AssociationEditor({\r\n      useNewDlbLayout: true,\r\n      showSaveButtonAsDefaultButton: true,\r\n      allowSelectAll: false,\r\n      allowDeselectAll: true,\r\n      campaignId,\r\n      campaignName,\r\n      entityType: 'campaign',\r\n      hasSubTitle: true,\r\n      showErrorsInline: true,\r\n      popupFront: '.navbar-fixed-top',\r\n      usePanel: true,\r\n      panelClassName: classes.editorPanel,\r\n      isForVNext: true,\r\n      vnextContext: { dynamicFeatures },\r\n      // perfMarker: showAdAndExtensionMarker,\r\n      // activityLogger: this.activityLogger,\r\n    });\r\n\r\n    view.current.render();\r\n    view.current.$el.appendTo(container);\r\n\r\n    return () => {\r\n      view.current.remove();\r\n    };\r\n    // We want the view to be created only once,\r\n    // hence ignoring all dependencies of this \"effect\".\r\n    // This means that the view will ignore changes to all props.\r\n    // If need be to make view pick props updates, the view\r\n    // need to provide a way to communicate such updates to it.\r\n    // eslint-disable-next-line react-hooks/exhaustive-deps\r\n  }, []);\r\n\r\n  const onSave = useCallback((associations) => {\r\n    console.log('[DWD] Extension association editor onSave, associations=_', associations);\r\n    if (isFunction(onEditorSave)) {\r\n      onEditorSave(associations);\r\n    }\r\n  }, [onEditorSave]);\r\n\r\n  const onCancel = useCallback(() => {\r\n    console.log('[DWD] Extension association editor onCancel');\r\n    if (isFunction(onEditorCancel)) {\r\n      onEditorCancel();\r\n    }\r\n  }, [onEditorCancel]);\r\n\r\n  const onChange = useCallback(() => {\r\n    console.log('[DWD] Extension association editor onChange');\r\n    if (isFunction(onEditorChange)) {\r\n      onEditorChange();\r\n    }\r\n  }, [onEditorChange]);\r\n\r\n  useEffect(() => {\r\n    viewListener.listenTo(view.current, 'save', onSave);\r\n    viewListener.listenTo(view.current, 'cancel', onCancel);\r\n    viewListener.listenTo(view.current, 'extensions:changed', onChange);\r\n\r\n    return () => viewListener.stopListening(view.current);\r\n  }, [viewListener, onSave, onCancel, onChange]);\r\n\r\n  return (\r\n    <div className={classes.extensionsAssociations}>\r\n      <div ref={((ref) => { container = ref; })} />\r\n    </div>\r\n  );\r\n};\r\n\r\nEditor.propTypes = {\r\n  campaignId: PropTypes.number.isRequired,\r\n  campaignName: PropTypes.string.isRequired,\r\n  associationEditor: PropTypes.func.isRequired,\r\n  dynamicFeatures: PropTypes.shape({}),\r\n  onChange: PropTypes.func,\r\n  onSave: PropTypes.func,\r\n  onCancel: PropTypes.func,\r\n};\r\n\r\nEditor.defaultProps = {\r\n  dynamicFeatures: undefined,\r\n  onChange: undefined,\r\n  onSave: undefined,\r\n  onCancel: undefined,\r\n};\r\n\r\nconst getAdExtensionsAssociationsWrapperStyles = (components, theme) => ({\r\n  controlsBar: {\r\n    paddingTop: 16,\r\n  },\r\n  iconButtonColor: {\r\n    color: theme.palette.themePrimary,\r\n  },\r\n  extensionDescription: {\r\n    '& > ul > li': {\r\n      lineHeight: '32px',\r\n    },\r\n  },\r\n});\r\n\r\nexport const AdExtensionsAssociationsWrapper = ({\r\n  extensionType,\r\n  campaignId,\r\n  campaignName,\r\n  renderDescription,\r\n  associationEditor,\r\n  staticFeatures,\r\n  dynamicFeatures,\r\n  selectedExtensionsLayoutOptions,\r\n\r\n  // ...renderTimeProps\r\n  i18n,\r\n  extensionsAssociations,\r\n  onUpdateExtensionsAssociations,\r\n}) => {\r\n  const classes = useDefaultStyles(getAdExtensionsAssociationsWrapperStyles);\r\n  const [isEditorOpen, setIsEditorOpen] = useState(false);\r\n\r\n  const onOpenEditor = useCallback(() => {\r\n    setIsEditorOpen(true);\r\n  }, []);\r\n\r\n  const onEditorSave = useCallback((associations) => {\r\n    onUpdateExtensionsAssociations(extensionType, associations);\r\n    setIsEditorOpen(false);\r\n  }, [extensionType, onUpdateExtensionsAssociations]);\r\n\r\n  const onEditorCancel = useCallback(() => {\r\n    setIsEditorOpen(false);\r\n  }, []);\r\n\r\n  const associations = extensionsAssociations[extensionType] || [];\r\n\r\n  if (isEditorOpen) {\r\n    return (\r\n      <Editor\r\n        campaignId={campaignId}\r\n        campaignName={campaignName}\r\n        associationEditor={associationEditor}\r\n        dynamicFeatures={dynamicFeatures}\r\n        onSave={onEditorSave}\r\n        onCancel={onEditorCancel}\r\n      />\r\n    );\r\n  }\r\n\r\n  if (associations.length === 0) {\r\n    return (\r\n      <>\r\n        {renderDescription({ i18n, classes })}\r\n        <div className={classes.controlsBar}>\r\n          <DefaultButton\r\n            className={classNames('add-button')}\r\n            iconProps={{ iconName: 'Add', className: classes.iconButtonColor }}\r\n            title={i18n.getString(_TL_('Add'))}\r\n            text={i18n.getString(_TL_('Add'))}\r\n            onClick={onOpenEditor}\r\n          />\r\n        </div>\r\n      </>\r\n    );\r\n  }\r\n\r\n  const dynamicTemplate = dynamicFeatures && dynamicFeatures.universalItemTemplate;\r\n  const staticTemplate = staticFeatures && staticFeatures.universalItemTemplate;\r\n  return (\r\n    <>\r\n      <Extensions\r\n        layoutOptions={selectedExtensionsLayoutOptions}\r\n        template={dynamicTemplate || staticTemplate}\r\n        associations={associations}\r\n      />\r\n      <div className={classes.controlsBar}>\r\n        <DefaultButton\r\n          className={classNames('edit-button')}\r\n          iconProps={{ iconName: 'Edit', className: classes.iconButtonColor }}\r\n          title={i18n.getString(_TL_('Edit'))}\r\n          text={i18n.getString(_TL_('Edit'))}\r\n          onClick={onOpenEditor}\r\n        />\r\n      </div>\r\n    </>\r\n  );\r\n};\r\n\r\nAdExtensionsAssociationsWrapper.propTypes = {\r\n  extensionType: PropTypes.string.isRequired,\r\n  campaignId: PropTypes.number.isRequired,\r\n  campaignName: PropTypes.string.isRequired,\r\n  renderDescription: PropTypes.func.isRequired,\r\n  associationEditor: PropTypes.func.isRequired,\r\n  extensionsAssociations: PropTypes.shape({}).isRequired,\r\n  staticFeatures: PropTypes.shape({\r\n    universalItemTemplate: PropTypes.func,\r\n  }),\r\n  dynamicFeatures: PropTypes.shape({\r\n    universalItemTemplate: PropTypes.func,\r\n  }),\r\n  selectedExtensionsLayoutOptions: PropTypes.shape({}),\r\n  i18n: PropTypes.shape({\r\n    getString: PropTypes.func.isRequired,\r\n  }).isRequired,\r\n  onUpdateExtensionsAssociations: PropTypes.func.isRequired,\r\n};\r\n\r\nAdExtensionsAssociationsWrapper.defaultProps = {\r\n  staticFeatures: undefined,\r\n  dynamicFeatures: undefined,\r\n  selectedExtensionsLayoutOptions: undefined,\r\n};\r\n","import { datePickerStyle } from '@bingads-webui-campaign-react/common-styles';\r\n\r\nexport const adExtensionEditorsGlobalStyles = (components, theme) => ({\r\n  '@global': {\r\n    ...datePickerStyle(theme),\r\n  },\r\n});\r\n","import { chain, difference, intersection, result } from 'underscore';\r\nimport React from 'react';\r\nimport classNames from 'classnames';\r\nimport { campaignTypeExtensionTypeFilter } from '@bingads-webui-campaign/ad-extensions-shared';\r\nimport appAssociationsEditor from '@bingads-webui-campaign-legacy/adextension-app/view/associationsEditor';\r\nimport { universalItemTemplate as appUniversalItemTemplate } from '@bingads-webui-campaign-legacy/adextension-app/template';\r\nimport callAssociationsEditor from '@bingads-webui-campaign-legacy/adextension-call/view/associationsEditor';\r\nimport { universalItemTemplate as callUniversalItemTemplate } from '@bingads-webui-campaign-legacy/adextension-call/template';\r\nimport calloutAssociationsEditor from '@bingads-webui-campaign-legacy/adextension-callout/view/associationsEditor';\r\nimport { universalItemTemplate as calloutUniversalItemTemplate } from '@bingads-webui-campaign-legacy/adextension-callout/template';\r\nimport locationAssociationsEditor from '@bingads-webui-campaign-legacy/adextension-location/view/associationsEditor';\r\nimport { universalItemTemplate as locationUniversalItemTemplate } from '@bingads-webui-campaign-legacy/adextension-location/template';\r\nimport priceAssociationsEditor from '@bingads-webui-campaign-legacy/adextension-price/view/associationsEditor';\r\nimport { universalItemTemplate as priceUniversalItemTemplate } from '@bingads-webui-campaign-legacy/adextension-price/template';\r\nimport reviewAssociationsEditor from '@bingads-webui-campaign-legacy/adextension-review/view/associationsEditor';\r\nimport { universalItemTemplate as reviewUniversalItemTemplate } from '@bingads-webui-campaign-legacy/adextension-review/template';\r\nimport sitelinkAssociationsEditor from '@bingads-webui-campaign-legacy/adextension-sitelink/view/associationsEditor';\r\nimport { universalItemTemplate as sitelinkUniversalItemTemplate } from '@bingads-webui-campaign-legacy/adextension-sitelink/template';\r\nimport structuredsnippetAssociationsEditor from '@bingads-webui-campaign-legacy/adextension-structuredsnippet/view/associationsEditor';\r\nimport { universalItemTemplate as structuredsnippetUniversalItemTemplate } from '@bingads-webui-campaign-legacy/adextension-structuredsnippet/template';\r\nimport promotionAssociationsEditor from '@bingads-webui-campaign-legacy/adextension-promotion/view/associationsEditor';\r\nimport filterLinkAssociationsEditor from '@bingads-webui-campaign-legacy/adextension-filter-link/view/associationsEditor';\r\nimport flyerAssociationsEditor from '@bingads-webui-campaign-legacy/adextension-flyer/view/associationsEditor';\r\nimport actionlinkAssociationsEditor from '@bingads-webui-campaign-legacy/adextension-actionlink/view/associationsEditor';\r\nimport { universalItemTemplate as actionUniversalItemTemplate } from '@bingads-webui-campaign-legacy/adextension-actionlink/template';\r\nimport { AdExtensionsAssociationsWrapper } from './ad-extensions-associations-wrapper';\r\n\r\nconst detailsFuncFactory = ([hasAssociationsKeySingular, hasAssociationsKeyPlural], noAssociationsKey) =>\r\n  (i18n, associations = []) => (associations.length > 0 ?\r\n    i18n.getString(associations.length > 1 ? hasAssociationsKeyPlural : hasAssociationsKeySingular, { number: associations.length }) :\r\n    i18n.getString(noAssociationsKey));\r\n\r\nconst editorViewMapper = {\r\n  App: {\r\n    editor: appAssociationsEditor,\r\n    title: _TL_('App extensions'),\r\n    details: detailsFuncFactory([_TL_('1 app extension set'), _TL_('{{number}} app extensions set')], _TL_('No app extensions set')),\r\n    renderDescription: ({ i18n }) => (\r\n      <span>{i18n.getString(_TL_('App extensions'))}</span>\r\n    ),\r\n  },\r\n  Call: {\r\n    editor: callAssociationsEditor,\r\n    title: _TL_('Call extensions'),\r\n    details: detailsFuncFactory([_TL_('1 call extension set'), _TL_('{{number}} call exensions set')], _TL_('No call extensions set')),\r\n    renderDescription: ({ i18n, classes }) => (\r\n      <article className={classNames('extension-description', 'call-description', classes.extensionDescription)} aria-label={i18n.getString(_TL_('Call extensions description'))}>\r\n        <p>{i18n.getString(_TL_('Show your business’s phone number in your ads to let customers know they can click to call.'))}</p>\r\n      </article>\r\n    ),\r\n    topic: 'pop_BA_CampaignCreate_Ads_CallExtensions',\r\n  },\r\n  Callout: {\r\n    editor: calloutAssociationsEditor,\r\n    title: _TL_('Callout extensions'),\r\n    details: detailsFuncFactory([_TL_('1 callout extension set'), _TL_('{{number}} callout extensions set')], _TL_('No callout extensions set')),\r\n    renderDescription: ({ i18n, classes }) => (\r\n      <article className={classNames('extension-description', 'callout-description', classes.extensionDescription)} aria-label={i18n.getString(_TL_('Callout extensions description'))}>\r\n        <p>{i18n.getString(_TL_('Show extra details about your website’s products or offers in your ads.'))}</p>\r\n      </article>\r\n    ),\r\n    topic: 'pop_BA_CampaignCreate_Ads_CalloutExtensions',\r\n  },\r\n  Location: {\r\n    editor: locationAssociationsEditor,\r\n    title: _TL_('Location extensions'),\r\n    details: detailsFuncFactory([_TL_('1 location extension set'), _TL_('{{number}} location extensions set')], _TL_('No location extensions set')),\r\n    renderDescription: ({ i18n, classes }) => (\r\n      <article className={classNames('extension-description', 'location-description', classes.extensionDescription)} aria-label={i18n.getString(_TL_('Location extensions description'))}>\r\n        <p>{i18n.getString(_TL_('Show the address and phone number of your closest business location in your ads.'))}</p>\r\n      </article>\r\n    ),\r\n    selectedExtensionsLayoutOptions: {\r\n      type: 'grid',\r\n      itemsPerRow: 3,\r\n    },\r\n    topic: 'pop_BA_CampaignCreate_Ads_LocationExtensions',\r\n  },\r\n  Review: {\r\n    editor: reviewAssociationsEditor,\r\n    title: _TL_('Review extensions'),\r\n    details: detailsFuncFactory([_TL_('1 review extension set'), _TL_('{{number}} review extensions set')], _TL_('No review extensions set')),\r\n    renderDescription: ({ i18n, classes }) => (\r\n      <article className={classNames('extension-description', 'review-description', classes.extensionDescription)} aria-label={i18n.getString(_TL_('Review extensions description'))}>\r\n        <p>{i18n.getString(_TL_('Show a positive review from a third-party source in your ads.'))}</p>\r\n      </article>\r\n    ),\r\n    selectedExtensionsLayoutOptions: {\r\n      type: 'grid',\r\n      itemsPerRow: 4,\r\n    },\r\n    topic: 'pop_BA_CampaignCreate_Ads_ReviewExtensions',\r\n  },\r\n  SiteLink: {\r\n    editor: sitelinkAssociationsEditor,\r\n    title: _TL_('Sitelink extensions'),\r\n    details: detailsFuncFactory([_TL_('1 sitelink extension set'), _TL_('{{number}} sitelink extensions set')], _TL_('No sitelink extensions set')),\r\n    renderDescription: ({ i18n, classes }) => (\r\n      <article className={classNames('extension-description', 'sitelink-description', classes.extensionDescription)} aria-label={i18n.getString(_TL_('Sitelink extensions description'))}>\r\n        <p>{i18n.getString(_TL_('Show additional sitelinks in your ads that take customers to specific pages of your website'))}</p>\r\n      </article>\r\n    ),\r\n    selectedExtensionsLayoutOptions: {\r\n      type: 'grid',\r\n      itemsPerRow: 4,\r\n    },\r\n    topic: 'pop_BA_CampaignCreate_Ads_SitelinkExtensions',\r\n  },\r\n  StructuredSnippet: {\r\n    editor: structuredsnippetAssociationsEditor,\r\n    title: _TL_('Structured snippet extensions'),\r\n    details: detailsFuncFactory([_TL_('1 structured snippet extension set'), _TL_('{{number}} structured snippet extensions set')], _TL_('No structured snippet extensions set')),\r\n    renderDescription: ({ i18n, classes }) => (\r\n      <article className={classNames('extension-description', 'structured-snippet-description', classes.extensionDescription)} aria-label={i18n.getString(_TL_('Structured snippet extensions description'))}>\r\n        <p>{i18n.getString(_TL_('Highlight specific aspects of your products and services using structured snippets.'))}</p>\r\n      </article>\r\n    ),\r\n    selectedExtensionsLayoutOptions: {\r\n      type: 'grid',\r\n      itemsPerRow: 4,\r\n    },\r\n    topic: 'pop_BA_CampaignCreate_Ads_StructuredSnippetExtensions',\r\n  },\r\n  Price: {\r\n    editor: priceAssociationsEditor,\r\n    title: _TL_('Price extensions'),\r\n    details: detailsFuncFactory([_TL_('1 price extension set'), _TL_('{{number}} price extensions set')], _TL_('No price extensions set')),\r\n    renderDescription: ({ i18n, classes }) => (\r\n      <article className={classNames('extension-description', 'prices-description', classes.extensionDescription)} aria-label={i18n.getString(_TL_('Price extensions description'))}>\r\n        <p>{i18n.getString(_TL_('Provide valuable price information to your prospective customers before they click on your ad.'))}</p>\r\n      </article>\r\n    ),\r\n    selectedExtensionsLayoutOptions: {\r\n      type: 'grid',\r\n      itemsPerRow: 3,\r\n    },\r\n    topic: 'pop_BA_CampaignCreate_Ads_PriceExtensions',\r\n  },\r\n  Promotion: {\r\n    editor: promotionAssociationsEditor,\r\n    title: _TL_('Promotion extensions'),\r\n    details: detailsFuncFactory([_TL_('1 promotion extension set'), _TL_('{{number}} promotion extensions set')], _TL_('No promotion extensions set')),\r\n    renderDescription: ({ i18n, classes }) => (\r\n      <article className={classNames('extension-description', 'promotion-description', classes.extensionDescription)} aria-label={i18n.getString(_TL_('Promotion extensions description'))}>\r\n        <p>{i18n.getString(_TL_('Show deals for holidays and other special occasions in your ads.'))}</p>\r\n      </article>\r\n    ),\r\n    selectedExtensionsLayoutOptions: {\r\n      type: 'grid',\r\n      itemsPerRow: 4,\r\n    },\r\n    topic: 'pop_BA_CampaignCreate_Ads_PromotionExtensions',\r\n  },\r\n  FilterLink: {\r\n    editor: filterLinkAssociationsEditor,\r\n    title: _TL_('Filter link extensions'),\r\n    details: detailsFuncFactory([_TL_('1 filter link extension set'), _TL_('{{number}} filter link extensions set')], _TL_('No filter link extensions set')),\r\n    renderDescription: ({ i18n, classes }) => (\r\n      <article className={classNames('extension-description', 'filter-link-description', classes.extensionDescription)} aria-label={i18n.getString(_TL_('Filter link extensions description'))}>\r\n        <p>{i18n.getString(_TL_('Show links to specific products and services using filter links.'))}</p>\r\n      </article>\r\n    ),\r\n    selectedExtensionsLayoutOptions: {\r\n      type: 'grid',\r\n      itemsPerRow: 4,\r\n    },\r\n    topic: 'pop_BA_CampaignCreate_Ads_FilteredLinkExtensions',\r\n  },\r\n  Flyer: {\r\n    editor: flyerAssociationsEditor,\r\n    title: _TL_('Flyer extensions'),\r\n    details: detailsFuncFactory([_TL_('1 flyer extension set'), _TL_('{{number}} flyer extensions set')], _TL_('No flyer extensions set')),\r\n    renderDescription: ({ i18n, classes }) => (\r\n      <article className={classNames('extension-description', 'flyer-description', classes.extensionDescription)} aria-label={i18n.getString(_TL_('Flyer extensions description'))}>\r\n        <p>{i18n.getString(_TL_('Showcase flyers of your chosen products and promotions, providing potential customers with more information before they buy.'))}</p>\r\n      </article>\r\n    ),\r\n    selectedExtensionsLayoutOptions: {\r\n      type: 'grid',\r\n      itemsPerRow: 2,\r\n    },\r\n    topic: 'pop_BA_CampaignCreate_Ads_FlyerExtensions',\r\n  },\r\n  Action: {\r\n    editor: actionlinkAssociationsEditor,\r\n    title: _TL_('Action extensions'),\r\n    details: detailsFuncFactory([_TL_('1 action extension set'), _TL_('{{number}} action extensions set')], _TL_('No action extensions set')),\r\n    renderDescription: ({ i18n, classes }) => (\r\n      <article className={classNames('extension-description', 'action-description', classes.extensionDescription)} aria-label={i18n.getString(_TL_('Action extensions description'))}>\r\n        <p>{i18n.getString(_TL_('Show an action button in your ads.'))}</p>\r\n      </article>\r\n    ),\r\n    topic: 'pop_BA_CampaignCreate_Ads_ActionExtensions',\r\n  },\r\n};\r\n\r\nexport const extensionEntityMapping = {\r\n  Action: 'ActionAdExtension',\r\n  App: 'AppAdExtension',\r\n  Call: 'CallAdExtension',\r\n  Callout: 'CalloutAdExtension',\r\n  Image: 'ImageAdExtension',\r\n  Location: 'LocationAdExtension',\r\n  Price: 'PriceAdExtension',\r\n  Review: 'ReviewAdExtension',\r\n  SiteLink: 'Sitelink2AdExtension',\r\n  StructuredSnippet: 'StructuredSnippetAdExtension',\r\n  Automated: 'AutomatedAdExtension',\r\n  Promotion: 'PromotionAdExtension',\r\n  FilterLink: 'FilterLinkAdExtension',\r\n  Flyer: 'FlyerAdExtension',\r\n  Video: 'VideoAdExtension',\r\n  LeadForm: 'LeadFormAdExtension',\r\n  BusinessInfo: 'LogoAdExtension',\r\n};\r\n\r\nexport const extensionNameMapping = {\r\n  ActionAdExtension: 'Action',\r\n  AppAdExtension: 'App',\r\n  CallAdExtension: 'Call',\r\n  CalloutAdExtension: 'Callout',\r\n  ImageAdExtension: 'Image',\r\n  LocationAdExtension: 'Location',\r\n  PriceAdExtension: 'Price',\r\n  ReviewAdExtension: 'Review',\r\n  Sitelink2AdExtension: 'SiteLink',\r\n  StructuredSnippetAdExtension: 'StructuredSnippet',\r\n  AutomatedAdExtension: 'Automated',\r\n  PromotionAdExtension: 'Promotion',\r\n  FilterLinkAdExtension: 'FilterLink',\r\n  FlyerAdExtension: 'Flyer',\r\n  VideoAdExtension: 'Video',\r\n  LeadFormAdExtension: 'LeadForm',\r\n  LogoAdExtension: 'BusinessInfo',\r\n};\r\n\r\nexport const getAvailableExtensions = (permissions, campaignType) => {\r\n  const campaignTypeFilter = campaignTypeExtensionTypeFilter(campaignType);\r\n\r\n  return chain([\r\n    ['Action', permissions.IsActionLinkExtensionAllowed],\r\n    ['Price', permissions.IsPriceExtensionAllowed && !permissions.IsDomesticSimplifiedChineseEnabled],\r\n    ['Location', permissions.IsLocationExtensionAllowed && !permissions.IsDomesticSimplifiedChineseEnabled],\r\n    ['App', permissions.IsAppExtensionAllowed && !permissions.IsDomesticSimplifiedChineseEnabled],\r\n    ['SiteLink', permissions.IsSiteLinkExtensionsAllowed],\r\n    ['Call', permissions.IsCallExtensionAllowed && !permissions.IsDomesticSimplifiedChineseEnabled],\r\n    ['Callout', permissions.IsCalloutExtensionAllowed && !permissions.IsDomesticSimplifiedChineseEnabled],\r\n    ['Review', permissions.IsReviewExtensionAllowed && !permissions.IsDomesticSimplifiedChineseEnabled],\r\n    ['StructuredSnippet', permissions.IsStructuredSnippetExtensionAllowed && !permissions.IsDomesticSimplifiedChineseEnabled],\r\n    ['Promotion', permissions.IsPromotionAdExtensionEnabled],\r\n    ['FilterLink', permissions.IsFilterLinkAdExtensionEnabled],\r\n    ['Flyer', permissions.IsFlyerAdExtensionEnabled && !permissions.IsDomesticSimplifiedChineseEnabled],\r\n  ]).filter(([type, allowed]) => allowed && campaignTypeFilter(type))\r\n    .map(([name]) => name)\r\n    .value();\r\n};\r\n\r\nconst getObjectiveExtensionMap = availableExtensions => ({\r\n  WebsiteVisits: {\r\n    suggestedExtensions: ['SiteLink', 'Action', 'Callout', 'Promotion'],\r\n    otherExtensions: ['Price', 'StructuredSnippet', 'FilterLink', 'Review', 'Call', 'Location', 'Flyer'],\r\n  },\r\n  LocationVisits: {\r\n    suggestedExtensions: ['Location', 'Call', 'Action', 'Promotion'],\r\n    otherExtensions: ['Review', 'Callout', 'StructuredSnippet', 'FilterLink', 'Price', 'SiteLink', 'Flyer'],\r\n  },\r\n  WebsiteConversions: {\r\n    suggestedExtensions: ['Action', 'Price', 'Promotion', 'SiteLink'],\r\n    otherExtensions: ['Callout', 'StructuredSnippet', 'FilterLink', 'Review', 'Location', 'Call', 'Flyer'],\r\n  },\r\n  PhoneCalls: {\r\n    suggestedExtensions: ['Call', 'Callout', 'Review', 'SiteLink'],\r\n    otherExtensions: ['StructuredSnippet', 'FilterLink', 'Price', 'Promotion', 'Action', 'Flyer'],\r\n  },\r\n  AppInstalls: {\r\n    suggestedExtensions: ['App', 'Review'],\r\n    otherExtensions: difference(availableExtensions, ['App', 'Review']),\r\n  },\r\n});\r\n\r\nexport const getObjectiveExtensions = (permissions, { campaignType, campaignObjective }) => {\r\n  const availableExtensions = getAvailableExtensions(permissions, campaignType);\r\n  const { suggestedExtensions, otherExtensions } = result(\r\n    getObjectiveExtensionMap(availableExtensions),\r\n    campaignObjective,\r\n    { suggestedExtensions: [], otherExtensions: [] }\r\n  );\r\n  const suggestedObjectiveExtensions = intersection(suggestedExtensions, availableExtensions);\r\n  const otherObjectiveExtensions = intersection(otherExtensions, availableExtensions);\r\n\r\n  return { suggestedObjectiveExtensions, otherObjectiveExtensions };\r\n};\r\n\r\nconst adExtensionsStaticFeatures = {\r\n  Action: {\r\n    universalItemTemplate: actionUniversalItemTemplate,\r\n  },\r\n  App: {\r\n    universalItemTemplate: appUniversalItemTemplate,\r\n  },\r\n  Call: {\r\n    universalItemTemplate: callUniversalItemTemplate,\r\n  },\r\n  Callout: {\r\n    universalItemTemplate: calloutUniversalItemTemplate,\r\n  },\r\n  Location: {\r\n    universalItemTemplate: locationUniversalItemTemplate,\r\n  },\r\n  Price: {\r\n    universalItemTemplate: priceUniversalItemTemplate,\r\n  },\r\n  Review: {\r\n    universalItemTemplate: reviewUniversalItemTemplate,\r\n  },\r\n  SiteLink: {\r\n    universalItemTemplate: sitelinkUniversalItemTemplate,\r\n  },\r\n  StructuredSnippet: {\r\n    universalItemTemplate: structuredsnippetUniversalItemTemplate,\r\n  },\r\n};\r\n\r\nexport const extensionsAssociationsFactory = (campaignId, campaignName, extensionTypes = [], adExtensionsDynamicFeatures) =>\r\n  extensionTypes.map((extensionType) => {\r\n    const {\r\n      editor,\r\n      title,\r\n      topic,\r\n      details,\r\n      renderDescription,\r\n      selectedExtensionsLayoutOptions,\r\n    } = editorViewMapper[extensionType];\r\n    const staticFeatures = adExtensionsStaticFeatures[extensionType];\r\n    const dynamicFeatures = adExtensionsDynamicFeatures(extensionType);\r\n\r\n    return {\r\n      extensionType,\r\n      editor,\r\n      title,\r\n      topic,\r\n      details,\r\n      renderDescription,\r\n      staticFeatures,\r\n      dynamicFeatures,\r\n      selectedExtensionsLayoutOptions,\r\n    };\r\n  }).map(({\r\n    extensionType,\r\n    editor,\r\n    title,\r\n    topic,\r\n    details,\r\n    renderDescription,\r\n    staticFeatures,\r\n    dynamicFeatures,\r\n    selectedExtensionsLayoutOptions,\r\n  }) => {\r\n    const AssociationPanel = React.memo((renderTimeProps = {}) => (\r\n      <AdExtensionsAssociationsWrapper\r\n        extensionType={extensionType}\r\n        campaignId={campaignId}\r\n        campaignName={campaignName}\r\n        renderDescription={renderDescription}\r\n        associationEditor={editor}\r\n        staticFeatures={staticFeatures}\r\n        dynamicFeatures={dynamicFeatures}\r\n        selectedExtensionsLayoutOptions={selectedExtensionsLayoutOptions}\r\n        {...renderTimeProps}\r\n      />\r\n    ));\r\n    return {\r\n      extensionType,\r\n      title,\r\n      topic,\r\n      details,\r\n      AssociationPanel,\r\n    };\r\n  });\r\n","\r\nimport { BaseSchemaProcessor, addCampaignTypePropertyForFilter } from '@bingads-webui-campaign/common-grid-config';\r\nimport * as putil from '@bingads-webui-universal/primitive-utilities';\r\nimport globalConfig from '@bingads-webui-component-legacy/config/index';\r\nimport cacheService from '@bingads-webui-static-legacy/cache-service';\r\nimport dataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport _ from 'underscore';\r\nimport { updateDeliveryStatusOptionForFilter } from '@bingads-webui-campaign-legacy/common-grid-config/filter/update-delivery-status-option-for-filter';\r\n\r\nexport class AdExtensionSchemaProcessor extends BaseSchemaProcessor {\r\n  constructor(adextensionType, hasCampaignColumn, hasAdGroupColumn, disableScheduling, isForVNext, i18n, schemaI18nCampaign) {\r\n    super({\r\n      globalConfig,\r\n      schemaI18nCampaign,\r\n      i18n,\r\n      cacheService,\r\n      dataContextManager,\r\n      jsdata,\r\n    });\r\n    this.adextensionType = adextensionType;\r\n    this.hasCampaignColumn = hasCampaignColumn;\r\n    this.hasAdGroupColumn = hasAdGroupColumn;\r\n    this.disableScheduling = disableScheduling;\r\n    this.isForVNext = isForVNext;\r\n    this.i18n = i18n;\r\n  }\r\n\r\n  updateEntitySchemaForFeatures(entitySchema) {\r\n    const updatedSchema = super.updateEntitySchemaForFeatures(entitySchema);\r\n\r\n    // update schema to remove labels property\r\n    updatedSchema.properties = _.omit(updatedSchema.properties, 'Labels');\r\n\r\n    // update schema to reflect all conv metrics filters\r\n    const allConvMetrics = [\r\n      'PerformanceMetricsAllConversionCPA',\r\n      'PerformanceMetricsAllConversions',\r\n      'PerformanceMetricsAllConversionRate',\r\n      'PerformanceMetricsAllConversionAdvertiserReportedRevenue',\r\n      'PerformanceMetricsAllConversionRevenueOnAdSpend',\r\n      'PerformanceMetricsAllPartialConversionCPA',\r\n      'PerformanceMetricsAllConversionsCredit',\r\n      'PerformanceMetricsAllPartialConversionRate',\r\n    ];\r\n\r\n    _.each(allConvMetrics, (allConvMetric) => {\r\n      if (putil.get(updatedSchema.properties, allConvMetric)) {\r\n        updatedSchema.properties[allConvMetric].filterable = true;\r\n      }\r\n    });\r\n\r\n    // AdExtension does not support ViewThroughConversions\r\n    updatedSchema.properties = _.omit(updatedSchema.properties, [\r\n      'PerformanceMetricsViewThroughConversions',\r\n      'PerformanceMetricsViewThroughConversionsCredit',\r\n    ]);\r\n\r\n    const deliveryStatusProperty = updatedSchema.properties.AdExtensionDelivery;\r\n\r\n    let deliveryEnum = ['Eligible',\r\n      'EditorialApprovedLimited',\r\n      'InvalidFinancialStatusOther',\r\n      'CampaignDeleted',\r\n      'CampaignBudgetPaused',\r\n      'EditorialRejected',\r\n      'CampaignSuspended',\r\n      'EditorialUnderAppeal',\r\n      'EditorialPending',\r\n      'CampaignUserPaused',\r\n      'AssociationDeleted'];\r\n\r\n    if (this.adextensionType === 'PriceAdExtension') {\r\n      deliveryEnum.splice(6, 0, 'StoreIdNotAssociated');\r\n    }\r\n\r\n    if (this.adextensionType === 'AppAdExtension') {\r\n      deliveryEnum = deliveryEnum.concat(['ApplicationNotFound', 'UrlInvalid', 'ApplicationDestinationUrlMismatch']);\r\n    }\r\n    if (this.adextensionType === 'VideoAdExtension') {\r\n      deliveryEnum = deliveryEnum.concat([\r\n        'VideoExtensionProcessing',\r\n        'VideoExtensionVideoProcessingFailed',\r\n        'VideoExtensionVideoTooSmall',\r\n        'VideoExtensionVideoAspectRatioInvalid',\r\n        'VideoExtensionVideoDurationInvalid',\r\n        'VideoExtensionThumbnailProcessingFailed',\r\n        'VideoExtensionThumbnailTooSmall',\r\n        'VideoExtensionThumbnailAspectInvalid',\r\n      ]);\r\n    }\r\n    if (!_.isEmpty(deliveryStatusProperty)) {\r\n      updateDeliveryStatusOptionForFilter(deliveryStatusProperty, deliveryEnum, this.i18n);\r\n    }\r\n\r\n    if (!this.hasCampaignColumn) {\r\n      updatedSchema.properties.CampaignName.filterable = false;\r\n    }\r\n\r\n    if (!this.hasAdGroupColumn) {\r\n      updatedSchema.properties.AdGroupName.filterable = false;\r\n    }\r\n\r\n    if (this.isForVNext) {\r\n      addCampaignTypePropertyForFilter({ entitySchema, permissions: this.Permissions });\r\n\r\n      updatedSchema.properties.CampaignType.filterable = false;\r\n\r\n      updatedSchema.properties.AdExtensionSchedulingEndDate.filterable = false;\r\n      updatedSchema.properties.AdExtensionSchedulingStartDate.filterable = false;\r\n    }\r\n\r\n    // Hide global filters from UI\r\n    updatedSchema.properties.CampaignStatus.filterable = false;\r\n    updatedSchema.properties.AdGroupStatus.filterable = false;\r\n\r\n    updatedSchema.properties = _.omit(updatedSchema.properties, 'PerformanceMetricsAveragePosition');\r\n\r\n    if (this.adextensionType === 'CalloutAdExtension' || this.adextensionType === 'StructuredSnippetAdExtension') {\r\n      updatedSchema.properties = _.omit(updatedSchema.properties, [\r\n        'PerformanceMetricsClicks',\r\n        'PerformanceMetricsCTR',\r\n      ]);\r\n    }\r\n\r\n    // Exclude entity columns for AutomatedExtensions\r\n    if (this.adextensionType === 'AutomatedAdExtension') {\r\n      updatedSchema.properties = _.omit(updatedSchema.properties, [\r\n        'AdExtensionDelivery',\r\n        'AdExtensionId',\r\n        'AdExtensionSchedulingEndDate',\r\n        'AdExtensionSchedulingStartDate',\r\n        'AdExtensionStatus',\r\n        'AdExtensionUpdatedOnLastImport',\r\n        'AdGroupName',\r\n        'CampaignName',\r\n        'CampaignIsExperiment',\r\n      ]);\r\n    }\r\n\r\n    if (this.disableScheduling) {\r\n      updatedSchema.properties = _.omit(updatedSchema.properties, [\r\n        'AdExtensionSchedulingStartDate',\r\n        'AdExtensionSchedulingEndDate',\r\n      ]);\r\n    }\r\n\r\n    return updatedSchema;\r\n  }\r\n\r\n  updateOdataOptions(odataOptions) {\r\n    super.updateOdataOptions(odataOptions);\r\n\r\n    _.extendOwn(odataOptions.custom, {\r\n      'AdExtension/UpdatedOnLastImport': {\r\n        eq: (value) => {\r\n          const url = `AdExtension/UpdatedOnLastImport eq ${value}`;\r\n\r\n          return url.replace(/Enum.AdExtensionUpdatedOnLastImport'1'/g, '1');\r\n        },\r\n      },\r\n    });\r\n\r\n    return odataOptions;\r\n  }\r\n}\r\n","import _ from 'underscore';\r\nimport { getCommonFilterConfig } from '@bingads-webui-campaign/common-grid-config';\r\nimport cacheService from '@bingads-webui-static-legacy/cache-service';\r\nimport dataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\nimport { getFilters } from '@bingads-webui-component-legacy/bingads-grid/service/filter-preferences';\r\nimport globalConfig from '@bingads-webui-component-legacy/config/index';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport sessionStore from '@bingads-webui-component-legacy/js-data-storage/session-storage';\r\nimport * as customColumnPreference from '@bingads-webui-component-legacy/bingads-grid/service/custom-column-preferences';\r\nimport { AdExtensionSchemaProcessor } from './adextension-schema-processor';\r\n\r\n\r\nconst AdExtensionAssociationSchema = window.globalLegacySchema.get('AdExtensionAssociation');\r\n\r\nexport const mockI18n = {\r\n  get: _.identity,\r\n  getString: _.identity,\r\n  type: _.identity,\r\n  enum: _.identity,\r\n  value: _.identity,\r\n  enumMappedString: _.identity,\r\n  enumDescription: _.identity,\r\n  valueDescription: _.identity,\r\n  parseInt: _.identity,\r\n  property: _.identity,\r\n};\r\nconst i18nCache = {\r\n  i18n: mockI18n,\r\n  newI18n: mockI18n,\r\n  legacyGlobalI18n: mockI18n,\r\n  schemaI18nCampaign: mockI18n,\r\n};\r\n\r\nexport function getFilterConfig(featureName, adextensionType, associationType, hasCampaignColumn, hasAdGroupColumn, disableScheduling, preferenceService, extraPerformanceColumns) {\r\n  const isForVNext = true;\r\n  const adExtensionSchemaProcessor = new AdExtensionSchemaProcessor(adextensionType, hasCampaignColumn, hasAdGroupColumn, disableScheduling, isForVNext, i18nCache.i18n, i18nCache.schemaI18nCampaign);\r\n\r\n  const filterConfig = {\r\n    featureName,\r\n    preferenceService,\r\n    customColumnPreference,\r\n    schemaProcessor: adExtensionSchemaProcessor,\r\n    enableCampaignWaterfall: true,\r\n    enableAdGroupWaterfall: true,\r\n    editor: {},\r\n    selector: [{\r\n      property: 'AdExtensionStatus',\r\n      items: [{\r\n        text: i18nCache.i18n.getString('AdExtensions_Quickfilter_ButDeleted'),\r\n        value: ['Enum.AdExtensionStatus\\'Active\\''],\r\n      }, {\r\n        text: i18nCache.i18n.getString('AdExtensions_Quickfilter_All'),\r\n        value: null,\r\n      }],\r\n      removable: false,\r\n      defaultValue: ['Enum.AdExtensionStatus\\'Active\\''],\r\n    }],\r\n    ...i18nCache,\r\n    entitySchema: AdExtensionAssociationSchema,\r\n    sessionStore,\r\n    preferenceStoreFactory: getFilters,\r\n    globalConfig,\r\n    cacheService,\r\n    dataContextManager,\r\n    jsdata,\r\n    extraPerformanceColumns,\r\n  };\r\n  return getCommonFilterConfig(filterConfig);\r\n}\r\n\r\n","import _ from 'underscore';\r\nimport { getColumnsConversionMap } from '@bingads-webui-campaign/column-conversions';\r\nimport { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport { adextensionGridColumn } from '@bingads-webui-campaign-legacy/adextension-shared/viewmodel/adextension-grid-column';\r\nimport { getUseTotalsPlugin } from '@bingads-webui-campaign-legacy/adextension-shared/util/feature-control';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport DataStore from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport appConfig from '@bingads-webui-component-legacy/config/index';\r\nimport dateUtil from '@bingads-webui-component-legacy/humanize/date';\r\nimport * as customColumnPreference from '@bingads-webui-component-legacy/bingads-grid/service/custom-column-preferences';\r\nimport * as ColumnChooserPreference from '@bingads-webui-component-legacy/bingads-grid/service/column-chooser-preferences';\r\nimport * as SegmentationPreference from '@bingads-webui-component-legacy/bingads-grid/service/segmentation-preferences';\r\nimport { fetchPaginationConfig } from '@bingads-webui-component-legacy/bingads-grid/service/fetch-pagination';\r\nimport { fetchSortInfo } from '@bingads-webui-component-legacy/bingads-grid/service/fetch-sortinfo';\r\nimport { getGridDataParams } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { FilterService } from '@bingads-webui/filter-service';\r\nimport * as putil from '@bingads-webui/primitive-utilities';\r\nimport { getNewColumnChooserConfig } from './column-config';\r\nimport { getFilterConfig } from './filter-config';\r\n\r\nfunction specificAggRowText(item, property) {\r\n  const prop = property.replace(/\\//g, '.');\r\n\r\n  if (item.isAggregateRow || item.$total) {\r\n    return '-';\r\n  }\r\n  return putil.get(item, prop);\r\n}\r\nconst AdExtensionAssociationSchema = window.globalLegacySchema.get('AdExtensionAssociation');\r\nconst isOdataActionSource = true;\r\nconst refreshCampaignCache = 'x-ms-refreshcampaigncache';\r\n\r\nexport function getDataSourceConfig({\r\n  logActivity,\r\n  scope,\r\n  preferenceService,\r\n  adextensionType,\r\n  associationType,\r\n  gridName,\r\n  filter,\r\n}) {\r\n  const permissions = appConfig.get('Permissions');\r\n  const {campaignId} = scope.values;\r\n  const {adGroupId} = scope.values;\r\n  const headerRefreshCache = 'x-ms-refreshcampaigncache';\r\n\r\n\r\n  let columns = [];\r\n  let completeColumns = [];\r\n  let excludedColumns = [];\r\n  let extraPerformanceColumns = [];\r\n  let campaignNameColumnExist;\r\n  let adgroupNameColumnExist;\r\n\r\n  const useTotalsPlugin = getUseTotalsPlugin(permissions);\r\n\r\n  if (adextensionType === 'AutomatedAdExtension') {\r\n    columns = [useTotalsPlugin ? adextensionGridColumn({\r\n      property: _.identity,\r\n    }) : bingadsGridColumn({\r\n      name: 'AdExtension',\r\n      property: {\r\n        get: _.identity,\r\n        key: 'Id',\r\n      },\r\n    })];\r\n    excludedColumns = ['Status', 'AdExtensionId', 'StartDate', 'EndDate', 'TimeZone', 'Schedule', 'Delivery'];\r\n  } else if (adextensionType === 'StructuredSnippetAdExtension') {\r\n    columns = [useTotalsPlugin ? adextensionGridColumn({\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.AdExtension, 'Category', 'Texts');\r\n      },\r\n    }) : bingadsGridColumn({\r\n      name: 'AdExtension',\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.AdExtension, 'Category', 'Texts');\r\n      },\r\n      title: 'ErrorGrid_AdExtension_Column',\r\n    })];\r\n    excludedColumns = ['Clicks', 'CTR'];\r\n  } else if (adextensionType === 'ReviewAdExtension') {\r\n    columns = [useTotalsPlugin ? adextensionGridColumn({\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.AdExtension, 'Text', 'Source');\r\n      },\r\n    }) : bingadsGridColumn({\r\n      name: 'AdExtension',\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.AdExtension, 'Text', 'Source');\r\n      },\r\n      title: 'ErrorGrid_AdExtension_Column',\r\n    })];\r\n  } else if (adextensionType === 'PriceAdExtension') {\r\n    columns = [useTotalsPlugin ? adextensionGridColumn({\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.AdExtension, 'TableRows');\r\n      },\r\n    }) : bingadsGridColumn({\r\n      name: 'AdExtension',\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.AdExtension, 'TableRows');\r\n      },\r\n      title: 'ErrorGrid_AdExtension_Column',\r\n    })];\r\n  } else if (adextensionType === 'LocationAdExtension') {\r\n    columns = [useTotalsPlugin ? adextensionGridColumn({\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.formatData, 'CompanyName', 'Address', 'PhoneNumber');\r\n      },\r\n    }) : bingadsGridColumn({\r\n      name: 'AdExtension',\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.formatData, 'CompanyName', 'Address', 'PhoneNumber');\r\n      },\r\n      title: 'ErrorGrid_AdExtension_Column',\r\n    })];\r\n  } else if (adextensionType === 'ImageAdExtension') {\r\n    columns = [useTotalsPlugin ? adextensionGridColumn({\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.AdExtension, 'DisplayText', 'AltText', 'Images', 'DestinationUrl', 'FinalUrls');\r\n      },\r\n    }) : bingadsGridColumn({\r\n      name: 'AdExtension',\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.AdExtension, 'DisplayText', 'AltText', 'Images', 'DestinationUrl', 'FinalUrls');\r\n      },\r\n      title: 'ErrorGrid_AdExtension_Column',\r\n    })];\r\n  } else if (adextensionType === 'CalloutAdExtension') {\r\n    columns = [useTotalsPlugin ? adextensionGridColumn({\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.AdExtension, 'Text');\r\n      },\r\n    }) : bingadsGridColumn({\r\n      name: 'AdExtension',\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.AdExtension, 'Text');\r\n      },\r\n      title: 'ErrorGrid_AdExtension_Column',\r\n    })];\r\n    excludedColumns = ['Clicks', 'CTR'];\r\n  } else if (adextensionType === 'CallAdExtension') {\r\n    columns = [useTotalsPlugin ? adextensionGridColumn({\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.AdExtension, 'PhoneNumber', 'IsCallTrackingEnabled');\r\n      },\r\n    }) : bingadsGridColumn({\r\n      name: 'AdExtension',\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.AdExtension, 'PhoneNumber', 'IsCallTrackingEnabled');\r\n      },\r\n      title: 'ErrorGrid_AdExtension_Column',\r\n    })];\r\n  } else if (adextensionType === 'AppAdExtension') {\r\n    columns = [useTotalsPlugin ? adextensionGridColumn({\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.AdExtension, 'AppPlatform', 'DisplayText');\r\n      },\r\n    }) : bingadsGridColumn({\r\n      name: 'AdExtension',\r\n      property: (item) => {\r\n        if (item.isAggregateRow) {\r\n          return item.AdExtension;\r\n        }\r\n        return _.pick(item.AdExtension, 'AppPlatform', 'DisplayText');\r\n      },\r\n      title: 'ErrorGrid_AdExtension_Column',\r\n    })];\r\n  } else {\r\n    if (adextensionType === 'VideoAdExtension') {\r\n      extraPerformanceColumns = permissions.IsVideoAdExtensionsPerfMetricsEnabled ? [\r\n        'VideoViews',\r\n        'ViewThroughRate',\r\n        'AverageCPV',\r\n        'TotalWatchTimeInMS',\r\n        'AverageWatchTimePerImpression',\r\n        'AverageWatchTimePerVideoView',\r\n        'VideoViewsAt25Percent',\r\n        'VideoViewsAt50Percent',\r\n        'VideoViewsAt75Percent',\r\n        'CompletedVideoViews',\r\n        'VideoCompletionRate'] : [];\r\n    }\r\n    columns = [useTotalsPlugin ? adextensionGridColumn({\r\n      property: item => item.AdExtension,\r\n    }) : bingadsGridColumn({\r\n      name: 'AdExtension',\r\n      property: item => item.AdExtension,\r\n    })];\r\n  }\r\n\r\n  const hasCampaignNameColumn = _.isUndefined(campaignNameColumnExist) ?\r\n    !campaignId && associationType !== 'Account' :\r\n    campaignNameColumnExist;\r\n  const hasAdGroupNameColumn = _.isUndefined(adgroupNameColumnExist) ?\r\n    !adGroupId && associationType === 'AdGroup' :\r\n    adgroupNameColumnExist;\r\n\r\n  const BaseCols = [bingadsGridColumn({\r\n    name: 'Status',\r\n    property: {\r\n      get(item) {\r\n        return specificAggRowText(item, 'AdExtension/Status');\r\n      },\r\n      key: 'AdExtension',\r\n    },\r\n  }), bingadsGridColumn({\r\n    name: 'AdExtensionId',\r\n    property: {\r\n      get(item) {\r\n        return specificAggRowText(item, 'AdExtension/Id');\r\n      },\r\n      key: 'AdExtension',\r\n    },\r\n  }), bingadsGridColumn({\r\n    name: 'StartDate',\r\n    property: {\r\n      get(item) {\r\n        return specificAggRowText(item, 'AdExtension/Scheduling/StartDate');\r\n      },\r\n      key: 'AdExtension',\r\n    },\r\n  }), bingadsGridColumn({\r\n    name: 'EndDate',\r\n    property: {\r\n      get(item) {\r\n        return specificAggRowText(item, 'AdExtension/Scheduling/EndDate');\r\n      },\r\n      key: 'AdExtension',\r\n    },\r\n  }), bingadsGridColumn({\r\n    name: 'TimeZone',\r\n    property: {\r\n      get(item) {\r\n        return specificAggRowText(item, 'AdExtension/Scheduling/UseSearcherTimeZone');\r\n      },\r\n      key: 'AdExtension',\r\n    },\r\n  }), bingadsGridColumn({\r\n    name: 'Schedule',\r\n    property: {\r\n      get(item) {\r\n        return specificAggRowText(item, 'AdExtension/Scheduling/DayTimeRanges');\r\n      },\r\n      key: 'AdExtension',\r\n    },\r\n  })];\r\n\r\n  let PerformanceColumns = [bingadsGridColumn({\r\n    name: 'Clicks',\r\n    property: 'PerformanceMetrics/Clicks',\r\n  }),\r\n  bingadsGridColumn({\r\n    name: 'Impressions',\r\n    property: 'PerformanceMetrics/Impressions',\r\n  }), bingadsGridColumn({\r\n    name: 'CTR',\r\n    property: 'PerformanceMetrics/CTR',\r\n  }), bingadsGridColumn({\r\n    name: 'AverageCPC',\r\n    property: 'PerformanceMetrics/AverageCPC',\r\n  }),\r\n  bingadsGridColumn({\r\n    name: 'AverageCPM',\r\n    property: 'PerformanceMetrics/AverageCPM',\r\n  }), bingadsGridColumn({\r\n    name: 'Spend',\r\n    property: 'PerformanceMetrics/Spend',\r\n  })];\r\n\r\n\r\n  const usePartialConversions = permissions.dynamic.PartialConversions && permissions.dynamic.ColumnConversion;\r\n  let ConversionColumns = [\r\n    usePartialConversions ? bingadsGridColumn({\r\n      name: 'PartialConversionCPA',\r\n      property: 'PerformanceMetrics/PartialConversionCPA',\r\n    }) : bingadsGridColumn({\r\n      name: 'CPA',\r\n      property: 'PerformanceMetrics/CPA',\r\n    }), usePartialConversions ? bingadsGridColumn({\r\n      name: 'ConversionsCredit',\r\n      property: 'PerformanceMetrics/ConversionsCredit',\r\n    }) : bingadsGridColumn({\r\n      name: 'Conversions',\r\n      property: 'PerformanceMetrics/Conversions',\r\n    }),\r\n    bingadsGridColumn({\r\n      name: 'RevenueOnAdSpend',\r\n      property: 'PerformanceMetrics/RevenueOnAdSpend',\r\n    }), bingadsGridColumn({\r\n      name: 'AdvertiserReportedRevenue',\r\n      property: 'PerformanceMetrics/AdvertiserReportedRevenue',\r\n    }), usePartialConversions ?\r\n      bingadsGridColumn({\r\n        name: 'PartialConversionRate',\r\n        property: 'PerformanceMetrics/PartialConversionRate',\r\n      }) : bingadsGridColumn({\r\n        name: 'ConversionRate',\r\n        property: 'PerformanceMetrics/ConversionRate',\r\n      }),\r\n    usePartialConversions ?\r\n      bingadsGridColumn({\r\n        name: 'AllConversionsCredit',\r\n        property: 'PerformanceMetrics/AllConversionsCredit',\r\n      }) : bingadsGridColumn({\r\n        name: 'AllConversions',\r\n        property: 'PerformanceMetrics/AllConversions',\r\n      }),\r\n    usePartialConversions ?\r\n      bingadsGridColumn({\r\n        name: 'AllPartialConversionCPA',\r\n        property: 'PerformanceMetrics/AllPartialConversionCPA',\r\n      }) : bingadsGridColumn({\r\n        name: 'AllConversionCPA',\r\n        property: 'PerformanceMetrics/AllConversionCPA',\r\n      }),\r\n    usePartialConversions ?\r\n      bingadsGridColumn({\r\n        name: 'AllPartialConversionRate',\r\n        property: 'PerformanceMetrics/AllPartialConversionRate',\r\n      }) : bingadsGridColumn({\r\n        name: 'AllConversionRate',\r\n        property: 'PerformanceMetrics/AllConversionRate',\r\n      }),\r\n    bingadsGridColumn({\r\n      name: 'AllConversionAdvertiserReportedRevenue',\r\n      property: 'PerformanceMetrics/AllConversionAdvertiserReportedRevenue',\r\n    }), bingadsGridColumn({\r\n      name: 'AllConversionRevenueOnAdSpend',\r\n      property: 'PerformanceMetrics/AllConversionRevenueOnAdSpend',\r\n    }),\r\n  ];\r\n  const ExtraPerfCol = [bingadsGridColumn({\r\n    name: 'VideoViews',\r\n    property: 'PerformanceMetrics/VideoViews',\r\n  }), bingadsGridColumn({\r\n    name: 'ViewThroughRate',\r\n    property: 'PerformanceMetrics/ViewThroughRate',\r\n  }), bingadsGridColumn({\r\n    name: 'AverageCPV',\r\n    property: 'PerformanceMetrics/AverageCPV',\r\n  }), bingadsGridColumn({\r\n    name: 'TotalWatchTimeInMS',\r\n    property: 'PerformanceMetrics/TotalWatchTimeInMS',\r\n  }), bingadsGridColumn({\r\n    name: 'AverageWatchTimePerImpression',\r\n    property: 'PerformanceMetrics/AverageWatchTimePerImpression',\r\n  }), bingadsGridColumn({\r\n    name: 'AverageWatchTimePerVideoView',\r\n    property: 'PerformanceMetrics/AverageWatchTimePerVideoView',\r\n  }), bingadsGridColumn({\r\n    name: 'VideoViewsAt25Percent',\r\n    property: 'PerformanceMetrics/VideoViewsAt25Percent',\r\n  }), bingadsGridColumn({\r\n    name: 'VideoViewsAt50Percent',\r\n    property: 'PerformanceMetrics/VideoViewsAt50Percent',\r\n  }), bingadsGridColumn({\r\n    name: 'VideoViewsAt75Percent',\r\n    property: 'PerformanceMetrics/VideoViewsAt75Percent',\r\n  }), bingadsGridColumn({\r\n    name: 'CompletedVideoViews',\r\n    property: 'PerformanceMetrics/CompletedVideoViews',\r\n  }), bingadsGridColumn({\r\n    name: 'VideoCompletionRate',\r\n    property: 'PerformanceMetrics/VideoCompletionRate',\r\n  })];\r\n\r\n  const EntityCampaignColumn = [bingadsGridColumn({\r\n    name: 'CampaignName',\r\n    property: item => _.extend(_.pick(item.Campaign, 'Id', 'Name', 'BaseCampaignName'), {\r\n      IsDeleted: _.result(item.AdExtension, 'Delivery', '') === 'CampaignDeleted',\r\n    }),\r\n  })];\r\n\r\n  const EntityAdGroupColumn = [bingadsGridColumn({\r\n    name: 'AdGroupName',\r\n    property: item => _.defaults(_.pick(item.AdGroup, 'Id', 'Name'), {\r\n      CampaignId: _.result(item.Campaign, 'Id', ''),\r\n      IsDeleted: _.result(item.AdExtension, 'Delivery', '') === 'AdGroupDeleted' || _.result(item.AdExtension, 'Delivery', '') === 'CampaignDeleted',\r\n    }),\r\n  })];\r\n\r\n  const DeliveryColumn = [bingadsGridColumn({\r\n    name: 'Delivery',\r\n    property: 'AdExtension',\r\n  })];\r\n\r\n  let SharedColumns = [\r\n    bingadsGridColumn({\r\n      name: 'TopImpressionRate',\r\n      property: 'PerformanceMetrics/TopImpressionRate',\r\n    }), bingadsGridColumn({\r\n      name: 'AbsoluteTopImpressionRate',\r\n      property: 'PerformanceMetrics/AbsoluteTopImpressionRate',\r\n    })];\r\n\r\n  SharedColumns = SharedColumns.concat(BaseCols);\r\n  SharedColumns = SharedColumns.concat(ExtraPerfCol);\r\n\r\n  if (excludedColumns !== []) {\r\n    columns = _.reject(columns, col => _.contains(excludedColumns, col.name));\r\n    SharedColumns = _.reject(SharedColumns, col => _.contains(excludedColumns, col.name));\r\n    ConversionColumns = _.reject(ConversionColumns, col => _.contains(excludedColumns, col.name));\r\n    PerformanceColumns = _.reject(PerformanceColumns, col => _.contains(excludedColumns, col.name));\r\n  }\r\n\r\n  completeColumns = completeColumns.concat(columns);\r\n  completeColumns = completeColumns.concat(SharedColumns);\r\n  completeColumns = completeColumns.concat(DeliveryColumn);\r\n  completeColumns = completeColumns.concat(ConversionColumns);\r\n  completeColumns = completeColumns.concat(PerformanceColumns);\r\n\r\n  if (adextensionType === 'VideoAdExtension') { PerformanceColumns = PerformanceColumns.concat(ExtraPerfCol); }\r\n\r\n  const perfColumns = _.map(PerformanceColumns, colObj => colObj.name);\r\n\r\n  if (hasCampaignNameColumn) {\r\n    completeColumns = completeColumns.concat(EntityCampaignColumn);\r\n  }\r\n  if (hasAdGroupNameColumn) {\r\n    completeColumns = completeColumns.concat(EntityAdGroupColumn);\r\n  }\r\n\r\n  const disableScheduling = false;\r\n\r\n  const filterConfig = filter || getFilterConfig(gridName, adextensionType, associationType, hasCampaignNameColumn, hasAdGroupNameColumn, disableScheduling, preferenceService, extraPerformanceColumns);\r\n  const automatedType = adextensionType === 'AutomatedAdExtension';\r\n\r\n  const columnConfig = getNewColumnChooserConfig({\r\n    columnsConfig: completeColumns,\r\n    performanceCols: perfColumns,\r\n    associationType,\r\n    permissions,\r\n  });\r\n\r\n  const extraImgExpand = adextensionType === 'ImageAdExtension' ? '($expand=Model.ImageAdExtension/Images)' : '';\r\n\r\n  const { dynamic = {} } = permissions;\r\n  const { ColumnConversion: IsColumnConversionEnabled } = dynamic;\r\n  const initialQuery = isOdataActionSource ? { gridDataParameters: getGridDataParams(appConfig), query: { nullifynotapplybidamounts: true, $expand: `AdExtension${extraImgExpand},Campaign,AdGroup` } } : {};\r\n\r\n\r\n  let edmEntity = edm.currentAccount;\r\n\r\n  if (!_.isUndefined(campaignId)) {\r\n    edmEntity = edmEntity.Campaigns.$withKey(campaignId);\r\n  }\r\n\r\n  if (!_.isUndefined(adGroupId)) {\r\n    edmEntity = edmEntity.AdGroups.$withKey(adGroupId);\r\n  }\r\n\r\n  const entitySet = automatedType ? edmEntity.AutomatedExtensions['Default.GridData'] : edmEntity.AdExtensionAssociations['Default.GridData'];\r\n\r\n  const filterService = new FilterService(filterConfig);\r\n\r\n  const quickFilterName = `quick-filter-storage-campaignwebui-${filterConfig.featureName}-undefined/QuickFilter`;\r\n  const quickFilterValue = preferenceService.findByNameAtUserLevel(quickFilterName);\r\n\r\n  if (!quickFilterValue) {\r\n    const defaultFilter = {\r\n      query:\r\n      {\r\n        AdExtensionStatus:\r\n        {\r\n          $in: ['Enum.AdExtensionStatus\\'Active\\''],\r\n        },\r\n      },\r\n    };\r\n    filterService.setQuickFilter('', defaultFilter);\r\n  }\r\n  const gridDataParameterDecorator = { name: 'gridDataParameters', entitySet };\r\n  const decorators = [\r\n    {\r\n      ...columnConfig,\r\n      name: 'columnChooser',\r\n      customColumnsEnabled: true,\r\n      addPoPColumnsOnComparisonEnabled: true,\r\n      IsAvgPositionDeprecationPhase2Enabled: permissions.IsAvgPositionDeprecationPhase2Enabled,\r\n      comparisonPoPColumns: [\r\n        'PeriodPerformanceMetrics',\r\n        'PerformanceMetricsChange',\r\n        'PerformanceMetricsChangePercentage',\r\n      ],\r\n    },\r\n    { name: 'dateFilter' },\r\n    { name: 'segment' },\r\n    { name: 'pagination', defaultPageSize: 50 },\r\n    { name: 'sorting' },\r\n    { name: 'filter', filterService },\r\n  ];\r\n  gridDataParameterDecorator.associationType = associationType;\r\n  gridDataParameterDecorator.adExtensionTypes = [adextensionType];\r\n  decorators.push(gridDataParameterDecorator);\r\n\r\n  return {\r\n    dataSource: {\r\n      type: 'jsdata',\r\n      primaryKey: 'Id',\r\n      entity: DataStore[AdExtensionAssociationSchema.name],\r\n      options:\r\n        {\r\n          entitySet: edmEntity.AdExtensionAssociations,\r\n          usePendingFindAll: false,\r\n          useDfmCache: false,\r\n          cacheResponse: false,\r\n          headers: {\r\n            [refreshCampaignCache]: true,\r\n            [headerRefreshCache]: true,\r\n          },\r\n        },\r\n      query: {\r\n        $expand: `AdExtension${extraImgExpand},Campaign,AdGroup`,\r\n      },\r\n      schema: AdExtensionAssociationSchema,\r\n    },\r\n    queryBuilder: {\r\n      decorators,\r\n      commonConfig: {\r\n        featureName: gridName,\r\n        isOdataActionSource,\r\n        deps: {\r\n          dateUtil,\r\n          state,\r\n          ColumnChooserPreference,\r\n          CustomColumnPreference: customColumnPreference,\r\n          SegmentationPreference,\r\n          fetchPaginationConfig,\r\n          fetchSortInfo,\r\n        },\r\n        IsColumnConversionEnabled,\r\n        ...IsColumnConversionEnabled ? {\r\n          columnConversions: getColumnsConversionMap('AdExtensionsGrid', permissions),\r\n        } : {},\r\n      },\r\n      logActivity,\r\n      initialQuery,\r\n    },\r\n  };\r\n}\r\n","import _ from 'underscore';\r\nimport { applyPartialConversionColumnName } from '@bingads-webui-campaign/column-conversions';\r\n\r\n\r\nexport function getNewColumnChooserConfig({\r\n  columnsConfig,\r\n  performanceCols,\r\n  associationType,\r\n  permissions,\r\n}) {\r\n  const columnPropertyMap = {};\r\n\r\n  _.each(columnsConfig, (column) => {\r\n    columnPropertyMap[column.name] = column.property;\r\n  });\r\n\r\n  const columnsMap = _.object(_.map(columnsConfig, column => [column.name, column.property]));\r\n\r\n  const perfColumns = performanceCols;\r\n\r\n  const selectedColumns = _.chain(applyPartialConversionColumnName(permissions, ['AdExtension', 'Delivery', 'Conversions']))\r\n    .concat((associationType === 'Campaign' || associationType === 'AdGroup') && 'CampaignName')\r\n    .concat((associationType === 'AdGroup') && 'AdGroupName')\r\n    .concat(perfColumns)\r\n    .compact()\r\n    .value();\r\n\r\n  const lockedColumns = _.chain(['AdExtension', 'AdExtensionId'])\r\n    .concat((associationType === 'Campaign' || associationType === 'AdGroup') && 'CampaignName')\r\n    .concat((associationType === 'AdGroup') && 'AdGroupName')\r\n    .compact()\r\n    .value();\r\n\r\n  return {\r\n    lockedColumns,\r\n    defaultColumns: selectedColumns,\r\n    columnsMap,\r\n  };\r\n}\r\n","/* eslint-disable no-param-reassign */\r\nimport Promise from 'bluebird';\r\nimport { getGridName } from '@bingads-webui-campaign/inline-download-grids-metadata';\r\nimport DataStore from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport logger from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport { connect } from '@bingads-webui-campaign/dqb-grid-datasource-connector';\r\nimport { DataSourceStore } from '@bingads-webui-campaign/data-source-store';\r\nimport { QueryBuilderFactory } from '@bingads-webui-campaign/query-builder';\r\nimport { dataSource as AdExtensionsGridDataSource } from '@bingads-webui-component-legacy/github/modules/projection-grid/module/projection-grid';\r\nimport { QueryErrorFactory } from '@bingads-webui-campaign/dqb-grid-datasource-error-handler';\r\nimport { getDataSourceConfig } from './data-fetch-config';\r\n\r\nconst extensionItems = {\r\n  ActionAdExtension: { associationType: 'Account', typeString: _TL_('Action Extensions'), schema: window.globalLegacySchema.get('ActionAdExtension') },\r\n  AppAdExtension: { associationType: 'Account', typeString: _TL_('App Extensions'), schema: window.globalLegacySchema.get('AppAdExtension') },\r\n  CallAdExtension: { associationType: 'Campaign', typeString: _TL_('Call Extensions'), schema: window.globalLegacySchema.get('CallAdExtension') },\r\n  CalloutAdExtension: { associationType: 'Account', typeString: _TL_('Callout Extensions'), schema: window.globalLegacySchema.get('CalloutAdExtension') },\r\n  ImageAdExtension: { associationType: 'Account', typeString: _TL_('Image Extensions'), schema: window.globalLegacySchema.get('ImageAdExtension') },\r\n  LocationAdExtension: { associationType: 'Account', typeString: _TL_('Location Extensions'), schema: window.globalLegacySchema.get('LocationAdExtension') },\r\n  PriceAdExtension: { associationType: 'Account', typeString: _TL_('Price Extensions'), schema: window.globalLegacySchema.get('PriceAdExtension') },\r\n  ReviewAdExtension: { associationType: 'Account', typeString: _TL_('Review Extensions'), schema: window.globalLegacySchema.get('ReviewAdExtension') },\r\n  Sitelink2AdExtension: { associationType: 'Account', typeString: _TL_('Sitelink Extensions'), schema: window.globalLegacySchema.get('Sitelink2AdExtension') },\r\n  StructuredSnippetAdExtension: { associationType: 'Account', typeString: _TL_('Structured Snippet Extensions'), schema: window.globalLegacySchema.get('StructuredSnippetAdExtension') },\r\n  AutomatedAdExtension: { associationType: 'Account', typeString: _TL_('Automated Extensions Report'), schema: window.globalLegacySchema.get('AutomatedExtension') },\r\n  PromotionAdExtension: { associationType: 'Account', typeString: _TL_('Promotion Extensions'), schema: window.globalLegacySchema.get('PromotionAdExtension') },\r\n  FilterLinkAdExtension: { associationType: 'Account', typeString: _TL_('Filter Link Extensions'), schema: window.globalLegacySchema.get('FilterLinkAdExtension') },\r\n  FlyerAdExtension: { associationType: 'Account', typeString: _TL_('Flyer Extensions'), schema: window.globalLegacySchema.get('FlyerAdExtension') },\r\n  VideoAdExtension: { associationType: 'Account', typeString: _TL_('Video Extensions'), schema: window.globalLegacySchema.get('VideoAdExtension') },\r\n  LeadFormAdExtension: { associationType: 'Account', typeString: _TL_('Lead form Extensions'), schema: window.globalLegacySchema.get('LeadFormAdExtension') },\r\n  BusinessInfoAdExtension: { associationType: 'Account', typeString: _TL_('Logo Extensions'), schema: window.globalLegacySchema.get('LogoAdExtension') },\r\n  // TODO CHANGE TO BusinessInfoAdExtension\r\n};\r\nconst AdExtensionAssociationSchema = window.globalLegacySchema.get('AdExtensionAssociation');\r\nexport function getDataSource({\r\n  logActivity,\r\n  scope,\r\n  adextensionType,\r\n  preferenceService,\r\n  associationType,\r\n  useCache,\r\n  filter,\r\n}) {\r\n  const { campaignId } = scope.values;\r\n  const { adGroupId } = scope.values;\r\n  // eslint-disable-next-line no-nested-ternary\r\n  const associationScope = adGroupId ? 'AdGroup' : (campaignId ? 'Campaign' : undefined);\r\n\r\n  const gridName = adextensionType === 'AutomatedAdExtension' ?\r\n    getGridName('AutomatedExtension', {\r\n      CampaignId: campaignId,\r\n      AdGroupId: adGroupId,\r\n    }) :\r\n    getGridName('AdExtensionAssociation', {\r\n      AdExtensionType: adextensionType,\r\n      AssociationType: associationType || associationScope || extensionItems[adextensionType].associationType,\r\n      CampaignId: campaignId,\r\n      AdGroupId: adGroupId,\r\n    });\r\n\r\n  if (useCache) {\r\n    const existingDataSource = DataSourceStore.get(gridName);\r\n    if (existingDataSource) {\r\n      return existingDataSource;\r\n    }\r\n  }\r\n\r\n  const configParams = {\r\n    logActivity,\r\n    scope,\r\n    preferenceService,\r\n    gridName,\r\n    adextensionType,\r\n    associationType: associationType || associationScope || extensionItems[adextensionType].associationType,\r\n    filter,\r\n  };\r\n\r\n  const dataFetchConfig = getDataSourceConfig(configParams);\r\n  let afterFindAllPromiseResolve = null;\r\n  const { featureName } = dataFetchConfig.queryBuilder.commonConfig;\r\n  const queryBuilder = QueryBuilderFactory.make(dataFetchConfig.queryBuilder);\r\n  const queryErrors = QueryErrorFactory.make(dataFetchConfig.dataSource);\r\n  const customDataSource = new AdExtensionsGridDataSource.JSData(dataFetchConfig.dataSource.entity, dataFetchConfig.dataSource.options);\r\n  const usingCacheManager = false;\r\n  const useJSGridChartDataSource = false;\r\n  const afterFindAllPromise = new Promise((res) => {\r\n    afterFindAllPromiseResolve = res;\r\n  });\r\n  const dataSource = connect(\r\n    dataFetchConfig.dataSource,\r\n    queryBuilder,\r\n    featureName,\r\n    logger,\r\n    usingCacheManager,\r\n    useJSGridChartDataSource,\r\n    customDataSource,\r\n    afterFindAllPromiseResolve\r\n  );\r\n  dataSource.queryErrors = queryErrors;\r\n  dataSource.entity = DataStore[AdExtensionAssociationSchema.name];\r\n  dataSource.afterFindAllPromise = afterFindAllPromise;\r\n\r\n  DataSourceStore.set(featureName, dataSource);\r\n\r\n  return dataSource;\r\n}\r\n"],"names":["ARWJsDataContextProvider","_ref","children","_ref$serverContext","serverContext","CurrentUser","CurrentCustomer","ServicesEndpoints","_jsx","CcJsDataContextProvider","userId","Id","customerId","appendErrorSummary","appendJsDataErrorSummary","handleAjaxAuthFailure","clientCenterBaseUrl","ClientCenterUIAPI","useAction","Action","useARWContextValue","jsData","useJsDataContext","useMemo","reparentingId","ReparentingId","sourceCustomerId","SourceCustomer","targetCustomerId","TargetCustomer","AccountActions","_createClass","_this","_classCallCheck","fetch","id","Account","find","fetchAll","ids","findAll","accountIds","this","useAccountActions","CustomerActions","Customer","updateServiceLevel","_ref2","serviceLevel","ServiceLevel","update","cacheResponse","updatePilotFeatures","_ref3","pilotFeatures","PilotFeatures","useCustomerActions","PaymentInstrumentActions","billToCustomerId","PaymentInstrument","fetchWithId","piId","usePaymentInstrumentActions","usePaymentInstruments","paymentInstrumentActions","_usePromise$data","usePromise","data","BillingActions","fetchBulkTaxEstimates","BulkEstimateTaxes","useBillingActions","ReparentingJobActions","add","AccountReparentingJobAdd","create","updateType","lifeCycleStatus","accountLinkingSettings","accountBillingSettings","defaultBillingSetting","AccountReparentingJobUpdate","sourceCid","targetCid","load","AccountReparentingJobLoad","params","loadAccounts","AccountReparentingLoadAccounts","submit","AccountReparentingJobSubmit","useReparentingJobActions","ReparentingValidateActions","AccountReparentingValidateAccounts","targetCustomer","targetCustomerNumber","AccountReparentingValidateTargetCustomer","linkSettings","_ref4","AccountReparentingValidateLinkInfo","billingSettings","_ref5","AccountReparentingValidateBillingInfo","fullValidate","AccountReparentingFullValidate","useReparentingValidateActions","UETTagActions","userSettings","get","toPromise","UETTags","$makeCall","payload","TagSettings","download","odata","odataURL","xhrFields","responseType","dataType","oDataToken","window","campaignODataConfigs","Token","edmCustomer","edmCampaign","Customers","$withKey","ReparentingUserSettings","useUETTagActions","ARWServerContext","React","Value","Actions","Permissions","useContext","useARWContextActions","useARWContextPermissions","ARWContextProvider","_React$Component","props","_callSuper","setShowSummaryPaneLinkSettings","showSummaryPaneLinkSettings","setState","ShowSummaryPaneLinkSettings","setShowSummaryPaneBillingSetting","showSummaryPaneBillingSetting","ShowSummaryPaneBillingSetting","setIOPreApprovalRequired","ioPreApprovalRequired","IOPreApprovalRequired","updateAccountBillToCustomersMap","accountBillToCustomersMap","AccountBillToCustomersMap","updateAccountLinks","accountLinks","mandatoryNewBillToAccountIds","updatedAccounts","state","Accounts","_","accLink","accountIndex","acc","updatedAccount","linkIndex","LinkedManagers","manager","LinkedManager","Unlink","BillToManager","BillTo","slice","MandatoryNewBillToAccountIds","updateAccountBilling","accountsBilling","accBilling","updateNewBillToSettings","billToCustomer","paymentOptionId","paymentInstrumentId","insertionOrder","prepayConfig","NewBillTo","PaymentOptionId","PaymentInstrumentId","InsertionOrder","PrepayConfig","updateAccountsBillingSettings","updatedAccountsBillingSettings","toUpdateIds","account","updatedSettingsIndex","aid","_updatedAccountsBilli","Constants","Invoice","BillToChange","contextInsertionOrder","areUiInsertionOrdersEqual","ioStatus","InsertionOrderStatus","PendingBillToPartyChangeAndUserReview","_objectSpread","BillToCustomer","updateJobLoadAccounts","accounts","jobAccount","jobAcc","AccountId","LinkSettings","linkSetting","linkedManager","AgencyCustomerId","KeepLink","BillingSetting","BillToChangeSetting","_toClientSideBillingS","toClientSideBillingSetting","updateTargetCustomer","customer","updateJobTimestamp","timestamp","Timestamp","updateSourceCustomer","updateSelectedAccountIds","AccountIds","updateSelectedAccounts","convertAccountModelToServerContext","updateUETTags","uetTags","deleteAccount","accountId","newUETTags","prevState","IsAccountReparentingUETEnabled","render","_this$state","_this$props$serverCon","Provider","value","contextActions","_props$serverContext","SourceCustomerId","UpdateJobTimestamp","DeleteAccount","UpdateTargetCustomer","UpdateSourceCustomer","UpdateSelectedAccountIds","UpdateSelectedAccounts","UpdateJobLoadAccounts","UpdateAccountLinks","UpdateAccountBilling","UpdateAccountsBillingSettings","SetIOPreApprovalRequired","UpdateNewBillToSettings","UpdateAccountBillToCustomersMap","UpdateUETTags","SetShowSummaryPaneLinkSettings","SetShowSummaryPaneBillingSetting","_inherits","useAccountsWithNewBillTo","useAccountsForBillingSetup","_useARWContextValue","useEligibleBillToCustomers","arguments","length","undefined","billToCustomersMap","allAccountIds","billToCustomersList","accId","list1","list2","item1","item2","usePaymentOptionId","contextAccounts","firstAccountWithBillToChange","defaultSchema","scenario","name","activity","getInstrumentation","applicationName","systemName","INSTRUMENTATION_SYSTEM_NAME","subSystemName","INSTRUMENTATION_SUB_SYSTEM","userContext","getInstrumentationInstance","pageTrackingId","PageTrackingId","errorMappers","isInDevelopmentMode","getInstrumentationService","instrumentation","addScenario","defaultScenario","default","logger","InstrumentationContext","InstrumentationContextProvider","context","ListItem","Name","Url","NavItem","className","target","href","defaultProps","EntityPopover","i18n","classes","popoverId","entities","matchSearch","isShowing","onCancelClick","title","searchboxPlaceholder","_useState","useState","_useState2","_slicedToArray","searchText","setSearchText","entityList","entity","toLowerCase","trim","classNames","entityPopover","FocusLock","onExit","focusFirstItemOnMount","isControlledFocusLock","isFocusLock","_jsxs","getString","SearchBox","onQueryChange","onSearch","placeholder","Children","child","Button","onClick","CommonLocStrings","CloseLabel","ARWEntityPopover","withI18nConsumer","withDefaultStyles","getEntityPopoverStyles","ARWStepFooter","saveAndProceed","onPreviousClick","onNextClick","onSubmitClick","nextButtonDisabled","I18nContext","onNextButtonClick","useCallback","onSaveAndExit","BackLabel","disabled","NextLabel","SubmitLabel","CancelLabel","SaveAndExitLabel","ARWStepBaseLayout","ARWAccountsPopover","sourceCustomer","currentUser","onAccountDelete","accountsList","srcText","stringContains","Number","toString","onAccountDeleteCb","buildCampaignsUrl","URI","concat","location","origin","search","uid","cid","accountsPopover","LocStrings","SelectedAccountsLabel","SearchAccounts","RemoveAccount","getAccountsPopoverStyles","ARWAccountManagerPopover","popoverTitle","onAccountClickUrl","onManagerClickUrl","Manager","StaticText","replace","withouEvents","ButtonOrStatic","Component","isButton","newProps","iconStyle","fontWeight","margin","fontSize","OkIcon","Glyphicon","glyph","style","color","WarningIcon","ARWAccountLinksSummary","isUnlinkedAccountsModalDisplayed","setIsUnlinkedAccountsModalDisplayed","_useState3","_useState4","isRetainedAccountsModalDisplayed","setIsRetainedAccountsModalDisplayed","showUnlinkedAccountsModal","hideUnlinkedAccountsModal","showRetainedAccountsModal","hideRetainedAccountsModal","buildAccountsUrl","_useMemo","retained","unlinked","accountManager","push","unlinkedAccounts","retainedAccounts","RetainedAccountsLabel","count","UnlinkedAccountsLabel","UnlinkedAccountLinksLabel","RatinedAccountLinksLabel","ARWAccountBillingSummary","clientCenterUIAPI","isNewBillToAccountsModalDisplayed","setIsNewBillToAccountsModalDisplayed","showNewBillToAccountsModal","hideNewBillToAccountsModal","newBillToAccounts","toAccountManagerMap","buildBillingUrl","NewBillToLabel","RetainedBillToLabel","NewBillToAccountsLabel","RetainedBillToAccountsLabel","AccountPaymentSummary","paymentOptionKey","paymentOptionIdToKeyMap","FormGroup","Label","PaymentOption","ARWAccountPaymentSummary","ARWInsertionOrdersSummary","preApprovalIOPageUrl","rpid","iosrc","IOCreationSource","Reparenting","ioStatusCounts","accountsBillToChange","billToChange","counts","pending","PendingBillToPartyChange","approved","Declined","declined","navigateToIOApprovalPage","renderCountsRow","locKey","icon","approvedLabel","InsertionOrdersApproved","declinedLabel","InsertionOrdersDeclined","pendingLabel","InsertionOrdersPending","InsertionOrders","matchSearchAccount","matchSearchTag","tag","ARWUETTagsSummary","isUETPanelDisplayed","setIsUETPanelDisplayed","isAccountPanelDisplayed","setIsAccountPanelDisplayed","showUETPanel","hideUETPanel","showAccountsPanel","hideAccountsPanel","transferTags","Move","loseAccessAccounts","memo","_toConsumableArray","TagUsedByInfosImpactedByTransfer","TagUsedByInfosImpactedByKeep","obj","getRoutePathById","allSiteMap","buildUETUrl","filterExpressions","JSON","stringify","SelectedColumn","SelectedOperator","Values","uets","item","UETTagLabel","UETTagsTransfered","UETTagTransfered","AccountsLoseAccess","AccountLoseAccess","SearchUETTags","UETPopoverTitle","LoseAccessAccountPopoverTitle","RequestSummaryPane","newBillTo","isAccountsListPopoverDisplayed","setIsAccountsListPopoverDisplayed","showAccountsListPopover","hideAccountsListPopover","uetActions","isUETEnabled","downloadSummary","then","response","downloadifyBlob","catch","e","buildTransferSummaryDownloadUrl","SummaryPaneHeader","CurrentManagerAccountLabel","AccountsSelectedLabel","NumberOfAccounts","NewManagerAccountLabel","AccountLinksLabel","BillingSetupLabel","saved","DownloadSummaryLinkLabel","TransferRequestSummary","ARWSummaryPane","jobActions","JobUpdateTypes","ReparentingAccountDelete","UetSetting","tagInfos","TagInfos","IsSaved","finally","withUiBlock","$","summaryPaneContainer","getSummaryPaneStyles","AccountsPageDescription","accountsSummaryPageDescription","_ref$palette","palette","padding","top","bottom","left","fontFamily","lineHeight","neutralPrimary","getAdExtensionEditorStyles","components","theme","mergeStyles","convertToLocalStyle","helpbuttonStyle","extensionEditorStyles","messageBarStyle","scrollbarStyle","glyphIconStyle","searchboxStyle","selectElementStyle","includeSelector","validationErrorsStyle","getAdExtensionsAssociationsStyles","buttonInputStyle","adExtensionsAssociationsContainer","adExtensionsAssociationsContainerLayoutType","ExpandHorizontallyToContainer","Extension","template","extension","extensionContainer","dangerouslySetInnerHTML","__html","Extensions","layoutOptions","associations","useDefaultStyles","_ref2$type","type","_ref2$itemsPerRow","itemsPerRow","extensionsContainer","display","flexDirection","flexWrap","gap","gridGap","gridTemplateColumns","marginBottom","border","borderRadius","alignContent","adExtensionItemTemplateStyles","withEllipsisItemText","getExtensionsStyles","map","association","index","getEditorStyles","datePickerStyle","adExtensionEditorsGlobalStyles","extensionsAssociations","editorPanel","Editor","container","campaignId","campaignName","AssociationEditor","associationEditor","dynamicFeatures","onEditorSave","onSave","onEditorCancel","onCancel","onEditorChange","onChange","view","useRef","viewListener","clone","Backbone","useEffect","current","useNewDlbLayout","showSaveButtonAsDefaultButton","allowSelectAll","allowDeselectAll","entityType","hasSubTitle","showErrorsInline","popupFront","usePanel","panelClassName","isForVNext","vnextContext","$el","appendTo","remove","console","log","isFunction","listenTo","stopListening","ref","getAdExtensionsAssociationsWrapperStyles","controlsBar","paddingTop","iconButtonColor","themePrimary","extensionDescription","AdExtensionsAssociationsWrapper","_ref6","extensionType","renderDescription","staticFeatures","selectedExtensionsLayoutOptions","onUpdateExtensionsAssociations","isEditorOpen","setIsEditorOpen","onOpenEditor","_Fragment","DefaultButton","iconProps","iconName","_TL_","text","dynamicTemplate","universalItemTemplate","staticTemplate","detailsFuncFactory","noAssociationsKey","hasAssociationsKeySingular","hasAssociationsKeyPlural","number","editorViewMapper","App","editor","appAssociationsEditor","details","Call","callAssociationsEditor","topic","Callout","calloutAssociationsEditor","Location","locationAssociationsEditor","Review","reviewAssociationsEditor","_ref7","SiteLink","sitelinkAssociationsEditor","_ref8","StructuredSnippet","structuredsnippetAssociationsEditor","_ref9","Price","priceAssociationsEditor","_ref10","Promotion","promotionAssociationsEditor","_ref11","FilterLink","filterLinkAssociationsEditor","_ref12","Flyer","flyerAssociationsEditor","_ref13","actionlinkAssociationsEditor","_ref14","extensionEntityMapping","Image","Automated","Video","LeadForm","BusinessInfo","extensionNameMapping","ActionAdExtension","AppAdExtension","CallAdExtension","CalloutAdExtension","ImageAdExtension","LocationAdExtension","PriceAdExtension","ReviewAdExtension","Sitelink2AdExtension","StructuredSnippetAdExtension","AutomatedAdExtension","PromotionAdExtension","FilterLinkAdExtension","FlyerAdExtension","VideoAdExtension","LeadFormAdExtension","LogoAdExtension","getAvailableExtensions","permissions","campaignType","campaignTypeFilter","campaignTypeExtensionTypeFilter","chain","IsActionLinkExtensionAllowed","IsPriceExtensionAllowed","IsDomesticSimplifiedChineseEnabled","IsLocationExtensionAllowed","IsAppExtensionAllowed","IsSiteLinkExtensionsAllowed","IsCallExtensionAllowed","IsCalloutExtensionAllowed","IsReviewExtensionAllowed","IsStructuredSnippetExtensionAllowed","IsPromotionAdExtensionEnabled","IsFilterLinkAdExtensionEnabled","IsFlyerAdExtensionEnabled","filter","_ref15","_ref16","_ref17","getObjectiveExtensions","_ref19","campaignObjective","availableExtensions","_result","result","WebsiteVisits","suggestedExtensions","otherExtensions","LocationVisits","WebsiteConversions","PhoneCalls","AppInstalls","difference","getObjectiveExtensionMap","suggestedObjectiveExtensions","intersection","otherObjectiveExtensions","adExtensionsStaticFeatures","actionUniversalItemTemplate","appUniversalItemTemplate","callUniversalItemTemplate","calloutUniversalItemTemplate","locationUniversalItemTemplate","priceUniversalItemTemplate","reviewUniversalItemTemplate","sitelinkUniversalItemTemplate","structuredsnippetUniversalItemTemplate","extensionsAssociationsFactory","adExtensionsDynamicFeatures","_editorViewMapper$ext","_ref20","AssociationPanel","renderTimeProps","AdExtensionSchemaProcessor","_BaseSchemaProcessor","adextensionType","hasCampaignColumn","hasAdGroupColumn","disableScheduling","schemaI18nCampaign","globalConfig","cacheService","dataContextManager","jsdata","key","entitySchema","updatedSchema","_superPropGet","properties","allConvMetric","putil","filterable","deliveryStatusProperty","AdExtensionDelivery","deliveryEnum","splice","updateDeliveryStatusOptionForFilter","CampaignName","AdGroupName","addCampaignTypePropertyForFilter","CampaignType","AdExtensionSchedulingEndDate","AdExtensionSchedulingStartDate","CampaignStatus","AdGroupStatus","odataOptions","custom","eq","BaseSchemaProcessor","AdExtensionAssociationSchema","globalLegacySchema","mockI18n","enum","enumMappedString","enumDescription","valueDescription","parseInt","property","i18nCache","newI18n","legacyGlobalI18n","specificAggRowText","prop","isAggregateRow","$total","isOdataActionSource","refreshCampaignCache","getDataSourceConfig","campaignNameColumnExist","adgroupNameColumnExist","logActivity","scope","preferenceService","associationType","gridName","appConfig","values","adGroupId","columns","completeColumns","excludedColumns","extraPerformanceColumns","useTotalsPlugin","getUseTotalsPlugin","adextensionGridColumn","bingadsGridColumn","AdExtension","formatData","IsVideoAdExtensionsPerfMetricsEnabled","hasCampaignNameColumn","hasAdGroupNameColumn","BaseCols","PerformanceColumns","usePartialConversions","dynamic","PartialConversions","ColumnConversion","ConversionColumns","ExtraPerfCol","EntityCampaignColumn","Campaign","IsDeleted","EntityAdGroupColumn","AdGroup","CampaignId","DeliveryColumn","SharedColumns","col","perfColumns","colObj","filterConfig","featureName","adExtensionSchemaProcessor","customColumnPreference","schemaProcessor","enableCampaignWaterfall","enableAdGroupWaterfall","selector","items","removable","defaultValue","sessionStore","preferenceStoreFactory","getFilters","getCommonFilterConfig","getFilterConfig","automatedType","columnConfig","columnsConfig","performanceCols","columnPropertyMap","column","columnsMap","selectedColumns","applyPartialConversionColumnName","compact","lockedColumns","defaultColumns","getNewColumnChooserConfig","extraImgExpand","_permissions$dynamic","IsColumnConversionEnabled","initialQuery","gridDataParameters","getGridDataParams","query","nullifynotapplybidamounts","$expand","edmEntity","edm","currentAccount","Campaigns","AdGroups","entitySet","AutomatedExtensions","AdExtensionAssociations","filterService","FilterService","quickFilterName","findByNameAtUserLevel","setQuickFilter","AdExtensionStatus","$in","gridDataParameterDecorator","decorators","customColumnsEnabled","addPoPColumnsOnComparisonEnabled","IsAvgPositionDeprecationPhase2Enabled","comparisonPoPColumns","defaultPageSize","adExtensionTypes","dataSource","primaryKey","DataStore","options","usePendingFindAll","useDfmCache","headers","_defineProperty","schema","queryBuilder","commonConfig","deps","dateUtil","ColumnChooserPreference","CustomColumnPreference","SegmentationPreference","fetchPaginationConfig","fetchSortInfo","columnConversions","getColumnsConversionMap","extensionItems","typeString","BusinessInfoAdExtension","getDataSource","useCache","associationScope","getGridName","AdGroupId","AdExtensionType","AssociationType","existingDataSource","DataSourceStore","dataFetchConfig","afterFindAllPromiseResolve","QueryBuilderFactory","make","queryErrors","QueryErrorFactory","customDataSource","AdExtensionsGridDataSource","JSData","afterFindAllPromise","Promise","res","connect","set"],"sourceRoot":""}