{"version":3,"file":"static/js/application.async.landing~16cafe95.b1e8f88a.chunk.js","mappings":"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U,CACR,CACEjR,KAAM,aACND,MAAO,iBAIb,CACEC,KAAM,qBACND,MAAO,cACPkR,SAAU,CACR,CACEjR,KAAM,aACND,MAAO,iBAIb,CACEC,KAAM,0BACND,MAAO,mBACPkR,SAAU,CACR,CACEjR,KAAM,kBACND,MAAO,sBAIb,CACEC,KAAM,cACND,MAAO,uBACPkR,SAAU,CACR,CACEjR,KAAM,oBACND,MAAO,wBACN,CACDC,KAAM,qBACND,MAAO,2BAIb,CACEC,KAAM,mBACND,MAAO,oBACPkR,SAAU,CACR,CACEjR,KAAM,SACND,MAAO,8BAIb,CACEC,KAAM,kBACND,MAAO,6BACPkR,SAAU,CACR,CACEjR,KAAM,SACND,MAAO,8BAIb,CACEC,KAAM,iBACND,MAAO,4BACPkR,SAAU,CACR,CACEjR,KAAM,QACND,MAAO,uBACN,CACDC,KAAM,iBACND,MAAO,0BACN,CACDC,KAAM,eACND,MAAO,wBACN,CACDC,KAAM,gBACND,MAAO,0BACN,CACDC,KAAM,eACND,MAAO,wBACN,CACDC,KAAM,SACND,MAAO,iBACN,CACDC,KAAM,aACND,MAAO,6BACN,CACDC,KAAM,eACND,MAAO,yBACN,CACDC,KAAM,0BACND,MAAO,qCACN,CACDC,KAAM,sBACND,MAAO,gCACN,CACDC,KAAM,cACND,MAAO,uBACN,CACDC,KAAM,mBACND,MAAO,6BACN,CACDC,KAAM,uBACND,MAAO,iCACN,CACDC,KAAM,yBACND,MAAO,iCACN,CACDC,KAAM,2BACND,MAAO,iCAIb,CACEC,KAAM,mBACND,MAAO,sCACPkR,SAAU,CACR,CACEjR,KAAM,eACND,MAAO,sBAIb,CACEC,KAAM,oBACND,MAAO,sCACPkR,SAAU,CACR,CACEjR,KAAM,oBACND,MAAO,6BAET,CACEC,KAAM,0BACND,MAAO,0BAET,CACEC,KAAM,wBACND,MAAO,0BAIb,CACEC,KAAM,iBACND,MAAO,mCACPkR,SAAU,CACR,CACEjR,KAAM,aACND,MAAO,mBAIb,CACEC,KAAM,yBACND,MAAO,4CACPkR,SAAU,CACR,CACEj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","sources":["../../../../pmax-lite-signup/packages/pmax-common/src/components/step-header.js","../../../../pmax-lite-signup/packages/pmax-common/src/utils/error-handling.js","../../../../pmax-lite-signup/packages/pmax-lite-data/src/use-preference.js","../../../../pmax-lite-signup/packages/pmax-lite-data/src/recommendation.js","../../../../pmax-lite-signup/packages/pmax-lite-data/src/use-search-location-data.js","../../../../pmax-lite-signup/packages/pmax-lite-data/src/use-get-budget-default-value-for-country.js","../../../../pmax-lite-signup/packages/pmax-lite-data/src/use-pmax-campaign-crud.js","../../../../pmax-lite-signup/packages/pmax-lite-data/src/use-odata-options.js","../../../../pmax-lite-signup/packages/pmax-lite-data/src/use-is-estimation-api-supported-locale.js","../../../../pmax-lite-signup/packages/pmax-lite-data/src/use-audience-reach-estimation-v2.js","../../../../pmax-lite-signup/packages/pmax-lite-data/src/use-budget-suggestion.js","../../../../pmax-lite-signup/packages/pmax-lite-data/src/image-data.js","../../../../pmax-lite-signup/packages/pmax-lite-data/src/use-audience-data.js","../../../../pmax-lite-signup/packages/pmax-lite-data/src/use-load-account-info.js","../../../../pmax-lite-signup/packages/pmax-lite-data/src/user-creation-context.js","../../../../pmax-lite-signup/packages/pmax-lite-instrumentation/src/pmax-lite-schemas.js","../../../../pmax-lite-signup/packages/pmax-lite-instrumentation/src/instrumentation.js","../../../../pmax-lite-signup/packages/pmax-lite-instrumentation/src/instrumentation-context.js","../../../../pmax-lite-signup/packages/pmax-lite-instrumentation/src/utils/setup-global.js","../../../../pmax-lite-signup/packages/pmax-lite-shimmers/src/language-country-step-shimmer.js","../../../../pmax-lite-signup/packages/pmax-lite-shimmers/src/website-step-shimmer.js","../../../../pmax-lite-signup/packages/pmax-lite-shimmers/src/campaign-mode-step-shimmer.js","../../../../pmax-lite-signup/packages/pmax-lite-shimmers/src/ad-assets-step-shimmer.js","../../../../pmax-lite-signup/packages/pmax-lite-wizard-utils/src/constants.js","../../../../pmax-lite-signup/packages/pmax-lite-wizard-utils/src/utils.js","../../../../pmax-lite-signup/packages/pmax-lite-wizard-utils/src/use-submit-to-main-bundle.js","../../../../pmax-lite-signup/packages/pmax-lite-wizard-utils/src/init-legacy-odata.js","../../../../pmax-lite-signup/packages/pmax-suggestion-service/src/suggestions-context.js","../../../../pmax-lite-signup/packages/pmax-suggestion-service/src/suggestions-provider.js","../../../../pmax-lite-signup/packages/pmax-suggestion-service/src/services/use-load-bi-suggestions.js","../../../../pmax-lite-signup/packages/pmax-suggestion-service/src/services/use-load-target-suggestions.js","../../../../pmax-lite-signup/packages/pmax-suggestion-service/src/suggestions-resumer.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/utils/common.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/components/targeting-location.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/use-target-instrument.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/utils/validation.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/components/collapsible-location.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/utils/audience-signal.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/components/shimmer-element.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/utils/audience-name-mapping.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/components/audience-interests.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/components/audience-demographics.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/components/collapsible-audience-signal.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/components/collapsible-search-themes.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/utils/format-big-decimal.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/utils/location-targets.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/utils/audience-estimation.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/components/targeting-estimation.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/styles/targeting-step-style.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/components/targeting-step.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/use-target-adapter.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/utils/search-themes.js","../../../../pmax-lite-signup/packages/pmax-targeting/src/use-targeting-repository.js"],"sourcesContent":["import React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useResponsiveStyles } from '@bingads-webui-campaign-react/common-hooks';\r\n\r\nconst getHeaderStyles = () => ({\r\n headerContainer: {\r\n marginBottom: 32,\r\n },\r\n stepTitle: {\r\n fontSize: 26,\r\n marginBottom: 16,\r\n },\r\n stepDescription: {\r\n lineHeight: '20px',\r\n fontSize: 14,\r\n },\r\n});\r\n\r\nexport const StepHeader = ({\r\n title,\r\n description,\r\n}) => {\r\n const i18n = useContext(I18nContext);\r\n const getResponsiveStyles = useResponsiveStyles(getHeaderStyles);\r\n\r\n return (\r\n
\r\n

\r\n {i18n.getString(title)}\r\n

\r\n

\r\n {i18n.getString(description)}\r\n

\r\n
\r\n );\r\n};\r\n\r\nStepHeader.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n description: PropTypes.string.isRequired,\r\n};\r\n","import _ from 'underscore';\r\nimport { getBulkApiErrors, CampaignApiError } from '@bingads-webui-campaign/api-errors';\r\nimport { notificationApi } from '@bingads-webui-react/notification-center';\r\nimport { generalError } from '@bingads-webui-campaign-react/recommendation-prefill';\r\n\r\nexport const ERROR_ENTITY = {\r\n Campaign: 'campaign',\r\n AssetGroup: 'assetGroup',\r\n CampaignLocation: 'campaignLocation',\r\n CampaignRadius: 'campaignRadius',\r\n CampaignNegativeLocation: 'campaignNegativeLocation',\r\n CampaignLocationIntent: 'campaignLocationIntent',\r\n CampaignDayTimeCriterion: 'campaignDayTimeCriterion',\r\n CampaignNegativeWebpage: 'campaignNegativeWebpage',\r\n AudienceGroupAssetGroupAssociation: 'audienceGroupAssetGroupAssociation',\r\n};\r\n\r\nconst getFirstBulkErrorMessage = (response, i18n) => {\r\n if (!response || !response.errors) {\r\n return i18n.getString(generalError);\r\n }\r\n\r\n const errorsObj = getBulkApiErrors(response.errors, null, i18n);\r\n\r\n if (!errorsObj || !errorsObj[0] || !errorsObj[0].message) {\r\n return i18n.getString(generalError);\r\n }\r\n\r\n return errorsObj[0].message;\r\n};\r\n\r\nexport const handleBulkErrors = (response, i18n, log) => {\r\n if (log) {\r\n log(`handleBulkErrors: response: ${JSON.stringify(response)}`);\r\n }\r\n notificationApi.showWarning(getFirstBulkErrorMessage(response, i18n));\r\n};\r\n\r\nexport const showGeneralError = (i18n) => {\r\n notificationApi.showWarning(i18n.getString(generalError));\r\n};\r\n\r\nexport const genericApiError = new CampaignApiError(generalError);\r\n\r\nconst getBulkUploadEntityType = entitySchema =>\r\n (entitySchema.properties['bulk-upload-type'] || {}).value ||\r\n entitySchema.name;\r\n\r\nexport const getBulkUploadErrorType = entitySchema =>\r\n `${getBulkUploadEntityType(entitySchema)} Error`;\r\n\r\nexport const mapBulkUpsertErrors\r\n = (errors, bulkUpsertEntityErrorMap, errorProcessor = _.identity, scenario, i18n, activityLogger) =>\r\n getBulkApiErrors(errors, scenario, i18n, activityLogger).map((error) => {\r\n const errorType = error.type;\r\n const mappedErrorType = _.result(bulkUpsertEntityErrorMap, errorType, errorType);\r\n // eslint-disable-next-line no-param-reassign\r\n error.type = mappedErrorType;\r\n return errorProcessor(error);\r\n });\r\n","import { useMemo } from 'react';\r\nimport { useUserLevelPreference } from '@bingads-webui-campaign-react/common-hooks';\r\nimport { BudgetSuggestionTiers } from '@bingads-webui-campaign-react/budget-suggestion-v2';\r\n\r\nexport const preferenceNames = {\r\n WizardStep: 'PMaxLite.WizardStep',\r\n SelectedLanguage: 'PMaxLite.SelectedLanguage',\r\n SelectedCountry: 'PMaxLite.SelectedCountry',\r\n MarketPrefillEnabled: 'PMaxLite.MarketPrefillEnabled',\r\n BudgetSuggestionTier: 'PMaxLite.BudgetSuggestionTier',\r\n SelectedCurrency: 'PMaxLite.SelectedCurrency',\r\n WebsiteUrl: 'PMaxLite.WebsiteUrl',\r\n SmartPageUrl: 'PMaxLite.SmartPageUrl',\r\n SmartPageTermsAndConditions: 'PMaxLite.SmartPageTermsAndConditions',\r\n LanguageCountryPageTermsAndConditions: 'PMaxLite.LanguageCountryPageTermsAndConditions',\r\n TimezonePrefillEnabled: 'PMaxLite.TimezonePrefillEnabled',\r\n TempImageIdString: 'PMaxLite.TempImageIdString',\r\n PhoneNumberCountryCode: 'PMaxLite.PhoneNumberCountryCode',\r\n BusinessInfoPrefillEnabled: 'PMaxLite.BusinessInfoPrefillEnabled',\r\n BusinessInfoStepTAndC: 'PMaxLite.BusinessInfoStepTAndC',\r\n};\r\n\r\nexport const getPreferenceDefaults = () => ({\r\n [preferenceNames.WizardStep]: {},\r\n [preferenceNames.SelectedLanguage]: 'English',\r\n [preferenceNames.SelectedCountry]: 'US',\r\n [preferenceNames.MarketPrefillEnabled]: true,\r\n [preferenceNames.BudgetSuggestionTier]: BudgetSuggestionTiers.Balanced,\r\n [preferenceNames.SelectedCurrency]: '',\r\n [preferenceNames.SmartPageTermsAndConditions]: {},\r\n [preferenceNames.LanguageCountryPageTermsAndConditions]: false,\r\n [preferenceNames.TimezonePrefillEnabled]: true,\r\n [preferenceNames.TempImageIdString]: '',\r\n [preferenceNames.PhoneNumberCountryCode]: '',\r\n [preferenceNames.BusinessInfoPrefillEnabled]: false,\r\n [preferenceNames.BusinessInfoStepTAndC]: false,\r\n});\r\n\r\nexport function usePreference(preferenceName) {\r\n const preferenceDefaultValue = useMemo(() => {\r\n // load default from list of defaults\r\n const preferenceDefaults = getPreferenceDefaults();\r\n return preferenceDefaults[preferenceName];\r\n }, [preferenceName]);\r\n\r\n return useUserLevelPreference(preferenceName, preferenceDefaultValue);\r\n}\r\n","import { edmCampaign } from '@bingads-webui/edm-campaign';\r\n\r\nconst getEdmEntity = (api, cid, aid, campaignId) => {\r\n if (campaignId) {\r\n return edmCampaign\r\n .Customers.$withKey(cid)\r\n .Accounts.$withKey(aid)\r\n .Campaigns.$withKey(campaignId)[api];\r\n }\r\n return edmCampaign\r\n .Customers.$withKey(cid)\r\n .Accounts.$withKey(aid)[api];\r\n};\r\n\r\nexport const loadBusinessInfoRecommendation = (payload, cid, aid, campaignId) => {\r\n const edmEntity = getEdmEntity('Default.GetExtractedBusinessInfo', cid, aid, campaignId);\r\n return edmEntity.$makeCall({\r\n payload,\r\n }).toPromise();\r\n};\r\n\r\nexport const loadTargetRecommendation = (payload, cid, aid) => {\r\n const edmEntity = getEdmEntity('Default.GetTargetSuggestions', cid, aid);\r\n return edmEntity.$makeCall({\r\n payload,\r\n }).toPromise();\r\n};\r\n","import { useCallback } from 'react';\r\nimport { edmCampaign } from '@bingads-webui/edm-campaign';\r\n\r\nexport const useSearchLocationData = (aid, cid) => {\r\n const getLocation = useCallback(search => edmCampaign.Customers.$withKey(cid).Accounts.$withKey(aid).Locations.get({\r\n select: ['ParentLocations'],\r\n search,\r\n }).toPromise()\r\n .then(response => response)\r\n .catch(error => Promise.reject(error)), [aid, cid]);\r\n\r\n return {\r\n getLocation,\r\n };\r\n};\r\n","import _ from 'underscore';\r\nimport { useCallback, useContext, useMemo } from 'react';\r\nimport { InstrumentationContext } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { useCustomerLevelVariables, usePostponeReadVariables } from '@bingads-webui-campaign-react/basic-context-utils';\r\nimport { DEFAULT_BUDGET_VALUE_FOR_CURRENCY } from '@bingads-webui-campaign/ads-globalization';\r\nimport { useCountryCurrenciesMappings } from '@bingads-webui/overreact-cc';\r\nimport { usePromisify } from '@bingads-webui-react/overreact';\r\n\r\nimport { usePreference, preferenceNames } from './use-preference';\r\n\r\nconst defaultBudgetValue = 25;\r\n\r\nexport function useGetDefaultBudgetValueForCountry() {\r\n const customerLevelVariables = useCustomerLevelVariables();\r\n const postponeReadConfig = usePostponeReadVariables();\r\n\r\n const [, { read: readCountryCurrenciesMappingsFn }]\r\n = useCountryCurrenciesMappings(customerLevelVariables, postponeReadConfig);\r\n const [readCountryCurrenciesMappingsAsync] = usePromisify([readCountryCurrenciesMappingsFn]);\r\n const readCountryCurrenciesMappings = useCallback(\r\n (args = {}, ...rest) => readCountryCurrenciesMappingsAsync(args, ...rest),\r\n [readCountryCurrenciesMappingsAsync]\r\n );\r\n\r\n const instrumentation = useContext(InstrumentationContext);\r\n const readCurrencyActivity = useMemo(() => {\r\n if (instrumentation && instrumentation.pmaxLiteSignup) {\r\n const scenario = instrumentation.pmaxLiteSignup.create();\r\n return scenario.currencyCountryMapping.create();\r\n }\r\n return { trace: _.noop, error: _.noop };\r\n }, [instrumentation]);\r\n\r\n const [{ value: countryPreference }] = usePreference(preferenceNames.SelectedCountry);\r\n\r\n const getDefaultBudgetValueForCountry = useCallback(\r\n (selectedCountry = countryPreference) => readCountryCurrenciesMappings()\r\n .then((countryCurrenciesMappings) => {\r\n if (_.isEmpty(countryCurrenciesMappings) || _.isEmpty(selectedCountry)) {\r\n return defaultBudgetValue;\r\n }\r\n\r\n const c = selectedCountry.toUpperCase();\r\n const countryCurrency = _.findWhere(countryCurrenciesMappings, { country: c });\r\n\r\n const allowedCurrencies = _.get(countryCurrency, 'currencies');\r\n const defaultCurrency = _.get(countryCurrency, 'defaultCurrency');\r\n\r\n const targetCurrency = _.contains(allowedCurrencies, defaultCurrency)\r\n ? defaultCurrency : _.first(allowedCurrencies);\r\n\r\n if (targetCurrency && DEFAULT_BUDGET_VALUE_FOR_CURRENCY[targetCurrency]) {\r\n return DEFAULT_BUDGET_VALUE_FOR_CURRENCY[targetCurrency];\r\n }\r\n\r\n return defaultBudgetValue;\r\n })\r\n .catch((error) => {\r\n readCurrencyActivity.trace(`Error in readCountryCurrenciesMappings: ${JSON.stringify(error)}`);\r\n return defaultBudgetValue;\r\n }),\r\n [countryPreference, readCountryCurrenciesMappings, readCurrencyActivity]\r\n );\r\n\r\n return { getDefaultBudgetValueForCountry };\r\n}\r\n","import _ from 'underscore';\r\nimport { useCallback, useContext } from 'react';\r\nimport { createOrUpdateCampaign, readCampaigns, deleteCampaign } from '@bingads-webui-campaign-react/perf-max-data';\r\nimport { ScopeContext } from '@bingads-webui-react/scope-service';\r\n\r\nimport { usePreference, preferenceNames } from './use-preference';\r\nimport { useGetDefaultBudgetValueForCountry } from './use-get-budget-default-value-for-country';\r\n\r\nexport function usePmaxCampaignCRUD({\r\n onCreateCampaignDone = _.noop,\r\n onCreateCampaignError = _.noop,\r\n} = {}) {\r\n const { scope } = useContext(ScopeContext);\r\n const { cid, aid, campaignId } = scope.values;\r\n\r\n const [{ value: languagePreference }] = usePreference(preferenceNames.SelectedLanguage);\r\n const { getDefaultBudgetValueForCountry } = useGetDefaultBudgetValueForCountry();\r\n\r\n const readCampaignsPromise = useCallback(() => readCampaigns(cid, aid).then((res) => {\r\n const campaigns = res.value;\r\n return Promise.resolve(campaigns);\r\n }), [aid, cid]);\r\n\r\n const deleteCampaignPromise = useCallback((deleteCampaignId) => {\r\n if (deleteCampaignId) {\r\n return deleteCampaign(deleteCampaignId).then(() => {\r\n scope.remove(['campaignId', 'assetGroupId']);\r\n scope.history.replace({\r\n pathname: scope.history.location.pathname,\r\n search: scope.stringify(),\r\n });\r\n });\r\n }\r\n\r\n return Promise.resolve();\r\n }, [scope]);\r\n\r\n const createOrUpdateCampaignPromise = useCallback(\r\n () => getDefaultBudgetValueForCountry().then((defaultBudgetValue) => {\r\n const campaignData = {\r\n Name: `Performance-Max-${Math.floor(Math.random() * 100)}`,\r\n Budget: {\r\n Amount: defaultBudgetValue,\r\n Type: 'DailyStandard',\r\n },\r\n Status: 'Active',\r\n TimeZone: 'PacificTimeUSCanadaTijuana',\r\n CampaignType: 'PerformanceMax',\r\n BiddingScheme: {\r\n Type: 'MaxConversions', // Enhanced CPC will be supported for Performance Max campaigns in Q1\r\n },\r\n Languages: [languagePreference],\r\n };\r\n\r\n let campaignPromise = () => Promise.resolve();\r\n if (!campaignId) {\r\n campaignPromise = () => createOrUpdateCampaign(campaignData).then((campaign) => {\r\n scope.append({ campaignId: campaign.Id });\r\n scope.history.replace({\r\n pathname: scope.history.location.pathname,\r\n search: scope.stringify(),\r\n });\r\n return campaign;\r\n });\r\n }\r\n\r\n return campaignPromise()\r\n .then((campaign) => {\r\n onCreateCampaignDone();\r\n return campaign;\r\n })\r\n .catch((error) => {\r\n onCreateCampaignError(error);\r\n throw new Error(error);\r\n });\r\n }),\r\n [campaignId, getDefaultBudgetValueForCountry, languagePreference,\r\n onCreateCampaignDone, onCreateCampaignError, scope]\r\n );\r\n\r\n return {\r\n createOrUpdateCampaignPromise,\r\n deleteCampaignPromise,\r\n readCampaignsPromise,\r\n };\r\n}\r\n","import { useContext, useMemo } from 'react';\r\nimport { ServerContext } from '@bingads-webui-campaign-react/server-context';\r\n\r\nexport const useOdataOptions = (pathOverride = undefined) => {\r\n const serverContext = useContext(ServerContext);\r\n\r\n const {\r\n CurrentCustomer: currentCustomer,\r\n CurrentAccount: currentAccount,\r\n ServicesEndpoints: { CampaignAPI: host },\r\n CampaignAPIPath: path,\r\n Token: token,\r\n Urls: { SignOutUrl = null } = {},\r\n } = serverContext;\r\n\r\n const cid = currentAccount ? currentCustomer.Id : '';\r\n const aid = currentAccount ? currentAccount.Id : '';\r\n\r\n const oDataOption = useMemo(() => ({\r\n contentType: 'application/json',\r\n host,\r\n path: path || pathOverride,\r\n oDataToken: token,\r\n SignOutUrl,\r\n }), [SignOutUrl, host, path, token, pathOverride]);\r\n\r\n const extraFields = useMemo(() => ({ cid, aid }), [aid, cid]);\r\n\r\n return [oDataOption, extraFields];\r\n};\r\n","import { usePreference, preferenceNames } from './use-preference';\r\n\r\nconst ESTIMATION_API_SUPPORT_LOCALE = ['US', 'ES', 'FR', 'GE', 'IT', 'NE', 'SW', 'DE'];\r\n\r\nexport const useIsEstimationApiSupportedLocale = () => {\r\n const [{ value: countryPreference }] = usePreference(preferenceNames.SelectedCountry);\r\n\r\n if (countryPreference) {\r\n const locale = countryPreference.toUpperCase();\r\n return ESTIMATION_API_SUPPORT_LOCALE.includes(locale);\r\n }\r\n\r\n return false;\r\n};\r\n","import _ from 'underscore';\r\nimport { useCallback, useState, useMemo, useEffect } from 'react';\r\nimport { odata } from '@bingads-webui/http-util';\r\nimport { useDeepMemo } from '@bingads-webui-campaign-react/common-hooks';\r\n\r\nimport { useOdataOptions } from './use-odata-options';\r\nimport { useIsEstimationApiSupportedLocale } from './use-is-estimation-api-supported-locale';\r\n\r\nexport const useAudienceReachEstimationV2 = (targets, isEnabled = false) => {\r\n const [OdataOptions, { aid, cid }] = useOdataOptions();\r\n const isEstimationApiSupportedLocale = useIsEstimationApiSupportedLocale();\r\n\r\n const endPoint = `Customers(${cid})/Accounts(${aid})/Default.AudienceEstimationV2`;\r\n\r\n const options = useMemo(() => ({\r\n ...OdataOptions,\r\n path: 'AdInsight/V2/', // override the default path\r\n url: endPoint,\r\n }), [OdataOptions, endPoint]);\r\n\r\n const payload = useDeepMemo({\r\n request: targets,\r\n });\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [data, setData] = useState(null);\r\n\r\n const getAudienceReachEstimation = useCallback(() => {\r\n if (_.isEmpty(payload.request) || !isEstimationApiSupportedLocale || !isEnabled) {\r\n const defaultData = {\r\n EstAudienceSize: {\r\n Value: 0,\r\n Unit: 'None',\r\n },\r\n };\r\n setData(defaultData);\r\n\r\n return Promise.resolve(defaultData);\r\n }\r\n\r\n setIsLoading(true);\r\n\r\n return odata.post({\r\n ...options,\r\n data: payload,\r\n })\r\n .then((res) => {\r\n setData(res);\r\n return res;\r\n })\r\n .catch(err => Promise.reject(err))\r\n .finally(() => {\r\n setIsLoading(false);\r\n });\r\n }, [isEnabled, isEstimationApiSupportedLocale, options, payload]);\r\n\r\n useEffect(() => {\r\n if (!_.isEmpty(payload.request)) {\r\n getAudienceReachEstimation();\r\n }\r\n }, [getAudienceReachEstimation, payload.request]);\r\n\r\n return [{ isLoading, data }, getAudienceReachEstimation];\r\n};\r\n","import _ from 'underscore';\r\n\r\n// currency minimum value comes from:\r\n// https://microsoft.sharepoint.com/:x:/t/MAPPMteamFTE/EchxuPoGaFROg-tM4pgNVngB45DJBXsBQQilJDSQEWh7fw?e=Fep9xL\r\nconst CURRENCY_FALLBACK_MINIMUM_BUDGET = {\r\n ArgentinePeso: 0.05,\r\n AustralianDollar: 0.05,\r\n BrazilianReal: 0.1,\r\n CanadianDollar: 0.05,\r\n ChileanPeso: 5.1,\r\n ColombianPeso: 18.05,\r\n DanishKrone: 0.06,\r\n Euro: 0.05,\r\n HongKongDollar: 1,\r\n IndianRupee: 0.82,\r\n IndonesianRupiah: 480,\r\n JapaneseYen: 5,\r\n MalaysianRingit: 0.15,\r\n MexicanPeso: 0.14,\r\n NewZealandDollar: 0.05,\r\n NigerianNaira: 0.05,\r\n NorwegianKrone: 0.06,\r\n PeruvianNuevoSol: 0.05,\r\n PhilippinePeso: 2,\r\n PolishZloty: 0.05,\r\n SaudiRiyal: 0.05,\r\n SingaporeDollar: 0.05,\r\n SouthAfricanRand: 0.05,\r\n SwedishKrona: 0.07,\r\n SwissFranc: 0.05,\r\n ThaiBaht: 2,\r\n TurkishLira: 0.05,\r\n UKPound: 0.05,\r\n UsDollar: 0.05,\r\n};\r\n\r\n// this is for fallback value,\r\n// if the getUPBudgetSuggestion api return error, or the api doesn't support the locale.\r\n// for currency that in CURRENCY_FALLBACK_MINIMUM_BUDGET,\r\n// we use the value from CURRENCY_FALLBACK_MINIMUM_BUDGET as minimum budget value.\r\n// if currency not in CURRENCY_FALLBACK_MINIMUM_BUDGET, we use the fixed value 0.001 as minimum budget value.\r\n// all currency has the same maximum budget value 50000.\r\nexport const getFallbackEstimates = (currency) => {\r\n const minimumBudget = _.get(CURRENCY_FALLBACK_MINIMUM_BUDGET, currency);\r\n if (minimumBudget) {\r\n return {\r\n GlobalMinimumBudget: {\r\n DailyBudget: minimumBudget, MonthlyBudget: minimumBudget * 20,\r\n },\r\n MinimumBudget: {\r\n DailyBudget: minimumBudget, MonthlyBudget: minimumBudget * 20,\r\n },\r\n CompetitorBudgetLowerBound: null,\r\n SuggestedBudget: {\r\n DailyBudget: 10, MonthlyBudget: 200,\r\n },\r\n CompetitorBudgetUpperBound: null,\r\n MaximumBudget: {\r\n DailyBudget: 20000, MonthlyBudget: 400000,\r\n },\r\n GlobalMaximumBudget: {\r\n DailyBudget: 50000, MonthlyBudget: 1000000,\r\n },\r\n Currency: currency,\r\n };\r\n }\r\n\r\n return {\r\n GlobalMinimumBudget: {\r\n DailyBudget: 0.001, MonthlyBudget: 0.02,\r\n },\r\n MinimumBudget: {\r\n DailyBudget: 0.001, MonthlyBudget: 0.02,\r\n },\r\n CompetitorBudgetLowerBound: null,\r\n SuggestedBudget: {\r\n DailyBudget: 10, MonthlyBudget: 200,\r\n },\r\n CompetitorBudgetUpperBound: null,\r\n MaximumBudget: {\r\n DailyBudget: 20000, MonthlyBudget: 400000,\r\n },\r\n GlobalMaximumBudget: {\r\n DailyBudget: 50000, MonthlyBudget: 1000000,\r\n },\r\n Currency: currency || 'UsDollar',\r\n };\r\n};\r\n\r\n","import { edmCampaign } from '@bingads-webui/edm-campaign';\r\n\r\nexport const addAsset = (payload, cid, aid) => {\r\n const edmEntity = edmCampaign\r\n .Customers.$withKey(cid)\r\n .Accounts.$withKey(aid)\r\n .Folders['Default.AddAsset'];\r\n\r\n return edmEntity.$makeCall({ payload }).toPromise();\r\n};\r\n","// import _ from 'underscore';\r\nimport { useCallback, useState, useMemo, useEffect } from 'react';\r\nimport { odata } from '@bingads-webui/http-util';\r\n\r\nimport { useOdataOptions } from './use-odata-options';\r\n\r\nexport const useAudienceData = ({ postponeFetch = false, pathOverride = undefined, audienceType = undefined } = {}) => {\r\n const [OdataOptions, { aid, cid }] = useOdataOptions(pathOverride);\r\n\r\n const endPoint = `Customers(${cid})/Accounts(${aid})/Audiences`;\r\n\r\n const options = useMemo(() => ({\r\n ...OdataOptions,\r\n url: endPoint,\r\n data: {\r\n $orderby: 'Name',\r\n audiencetype: audienceType || 'Remessaging,Custom,InMarket,Product,RemarketingSimilar,CustomerList,CombinedList',\r\n deliverychannel: 'BingAds,AIM',\r\n },\r\n }), [OdataOptions, endPoint, audienceType]);\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [data, setData] = useState([]);\r\n\r\n const getAudienceData = useCallback(() => {\r\n setIsLoading(true);\r\n\r\n return odata.get(options)\r\n .then((res) => {\r\n const { value = [] } = res || {};\r\n setData(value);\r\n\r\n return value;\r\n })\r\n .catch(err => Promise.reject(err))\r\n .finally(() => {\r\n setIsLoading(false);\r\n });\r\n }, [options]);\r\n\r\n useEffect(() => {\r\n if (!postponeFetch) {\r\n getAudienceData();\r\n }\r\n }, [getAudienceData, postponeFetch]);\r\n\r\n return [{ isLoading, data }, getAudienceData];\r\n};\r\n","import _ from 'underscore';\r\nimport { useContext, useEffect, useMemo } from 'react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport {\r\n useCustomerLevelVariables,\r\n useAccountLevelVariables,\r\n usePostponeReadVariables,\r\n} from '@bingads-webui-campaign-react/basic-context-utils';\r\nimport { getTimezoneI18nString } from '@bingads-webui-campaign-react/help';\r\nimport { CurrencyUtils } from '@bingads-webui-clientcenter/entity-utils';\r\nimport { usePromisify, FetchPolicy } from '@bingads-webui-react/overreact';\r\nimport {\r\n useCountries,\r\n useAccount,\r\n useTimeZones,\r\n useCurrencyCountriesMappings,\r\n useCurrencies,\r\n useSubGeographies,\r\n useCountryTimeZonesMapping,\r\n} from '@bingads-webui/overreact-cc';\r\n\r\nimport { useGetSupportedCountryList } from './use-get-supported-country-list';\r\n\r\nfunction convertTimeZonesForCcForm(i18n, timeZones) {\r\n return _.map(timeZones, item => ({\r\n Value: item.id,\r\n Text: i18n.getString(getTimezoneI18nString(item.id)),\r\n }));\r\n}\r\n\r\nexport const useLoadAccountInfo = ({ countryCode, timezonePrefillEnabled }) => {\r\n const i18n = useContext(I18nContext);\r\n\r\n const customerLevelVariables = useCustomerLevelVariables();\r\n const accountLevelVariables = useAccountLevelVariables();\r\n const postponeReadConfig = usePostponeReadVariables();\r\n\r\n const [{ data: countries }] = useCountries(customerLevelVariables);\r\n const [{ data: account }] = useAccount(accountLevelVariables);\r\n const [{ data: tZones }] = useTimeZones(customerLevelVariables);\r\n const [{ data: currencyCountriesMappings }] = useCurrencyCountriesMappings(customerLevelVariables);\r\n const [{ data: currencies }] = useCurrencies(customerLevelVariables);\r\n const [{ data: countryTimeZonesMapping }, { read: readCountryTimeZonesMapping }]\r\n = useCountryTimeZonesMapping(customerLevelVariables, postponeReadConfig);\r\n const [{ data: statesOrProvinces }, { read: readStatesOrProvinces }]\r\n = useSubGeographies(customerLevelVariables, postponeReadConfig);\r\n const [readStatesOrProvincesAsync, readCountryTimeZonesMappingAsync]\r\n = usePromisify([readStatesOrProvinces, readCountryTimeZonesMapping]);\r\n\r\n const { supportedCountryList, getSupportedCountryList } = useGetSupportedCountryList();\r\n\r\n const isAccountInfoLoaded = account && countries && tZones\r\n && currencyCountriesMappings && currencies && statesOrProvinces\r\n && (!timezonePrefillEnabled || (timezonePrefillEnabled && countryTimeZonesMapping));\r\n\r\n const prefillTimezone = _.isEmpty(countryTimeZonesMapping) ? undefined :\r\n _.first(_.get(_.findWhere(countryTimeZonesMapping, { country: countryCode }), 'timeZones'));\r\n\r\n const preferredTimeZoneCode = timezonePrefillEnabled ? prefillTimezone : _.get(account, ['TimeZone']);\r\n\r\n const timeZones = useMemo(() => (\r\n convertTimeZonesForCcForm(i18n, tZones)\r\n ), [i18n, tZones]);\r\n\r\n const sortedCurrencies = useMemo(() => {\r\n const sorted = CurrencyUtils.sortCurrencies(_.pluck(currencies, 'value'));\r\n return sorted;\r\n }, [currencies]);\r\n\r\n useEffect(() => {\r\n if (_.isEmpty(supportedCountryList)) {\r\n getSupportedCountryList();\r\n }\r\n }, [getSupportedCountryList, supportedCountryList]);\r\n\r\n useEffect(() => {\r\n if (_.isEmpty(statesOrProvinces) && countryCode) {\r\n readStatesOrProvincesAsync({\r\n variables: {\r\n countryCode,\r\n options: {\r\n fetchPolicy: FetchPolicy.NetworkOnly,\r\n },\r\n },\r\n });\r\n }\r\n }, [statesOrProvinces, readStatesOrProvincesAsync, countryCode]);\r\n\r\n useEffect(() => {\r\n if (timezonePrefillEnabled && _.isEmpty(countryTimeZonesMapping)) {\r\n readCountryTimeZonesMappingAsync();\r\n }\r\n }, [countryTimeZonesMapping, readCountryTimeZonesMappingAsync, timezonePrefillEnabled]);\r\n\r\n return {\r\n account,\r\n countries,\r\n timeZones,\r\n currencies: sortedCurrencies,\r\n preferredTimeZoneCode,\r\n statesOrProvinces,\r\n supportedCountryList,\r\n isAccountInfoLoaded,\r\n };\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext, useState, useMemo, useCallback, useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { InstrumentationContext } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { useCreatePromise } from '@bingads-webui-campaign-react/common-hooks';\r\nimport { SignupUserInfoDialog, useUserInfo } from '@bingads-webui-campaign-react/signup-user-info-form';\r\nimport { usePilotsValue } from '@bingads-webui-campaign-react/basic-context-utils';\r\nimport { useCreateUser } from './use-create-user';\r\n\r\nconst UserCreationContext = React.createContext({\r\n isCreatingUser: false,\r\n createUser: _.noop,\r\n createUserPromise: {},\r\n});\r\n\r\nexport const useUserCreationContext = () => useContext(UserCreationContext);\r\n\r\nexport const UserCreationContextProvider = (props) => {\r\n const {\r\n children,\r\n devConfig,\r\n } = props;\r\n const serverContext = useContext(ServerContext);\r\n const { CurrentAccount, AuthType } = serverContext;\r\n const isChinaSignup = usePilotsValue('isCNMarketExpansionEnabled');\r\n\r\n const createUserPromiseRef = useRef();\r\n const [showUserInfoForm, userInfo, setUserInfo] = useUserInfo(serverContext);\r\n const [isCreatingUser, setIsCreatingUser] = useState(showUserInfoForm);\r\n const [hasError, setHasError] = useState(false);\r\n\r\n const [, {\r\n createPromise,\r\n resolveLastCreatedPromise,\r\n rejectLastCreatedPromise,\r\n }] = useCreatePromise();\r\n\r\n createUserPromiseRef.current = createUserPromiseRef.current || createPromise();\r\n\r\n const instrumentation = useContext(InstrumentationContext);\r\n const uiActivity = useMemo(() => {\r\n if (instrumentation && instrumentation.pmaxLiteSignup) {\r\n const scenario = instrumentation.pmaxLiteSignup.create();\r\n return scenario.userCreation.create();\r\n }\r\n\r\n return { trace: _.noop, error: _.noop };\r\n }, [instrumentation]);\r\n\r\n const onUserCreationStart = useCallback(() => {\r\n setIsCreatingUser(true);\r\n createUserPromiseRef.current = createUserPromiseRef.current || createPromise();\r\n uiActivity.trace('[PMaxLiteSignup] Start creating user');\r\n }, [createPromise, uiActivity]);\r\n\r\n const onUserCreationComplete = useCallback((newServerContext) => {\r\n uiActivity.trace('[PMaxLiteSignup] User created');\r\n resolveLastCreatedPromise(newServerContext);\r\n setIsCreatingUser(false);\r\n }, [resolveLastCreatedPromise, uiActivity]);\r\n\r\n const onUserCreationError = useCallback((error) => {\r\n uiActivity.trace(`[PMaxLiteSignup] User creation failed. Error: ${JSON.stringify(error)}`);\r\n rejectLastCreatedPromise();\r\n createUserPromiseRef.current = undefined;\r\n setHasError(true);\r\n setIsCreatingUser(false);\r\n }, [rejectLastCreatedPromise, uiActivity]);\r\n\r\n const createUser = useCreateUser({\r\n devConfig,\r\n authType: AuthType,\r\n uiActivity,\r\n userInfo,\r\n isChinaSignup,\r\n onUserCreationStart,\r\n onUserCreationComplete,\r\n onUserCreationError,\r\n });\r\n\r\n useEffect(() => {\r\n if (!CurrentAccount && !isCreatingUser && !hasError && !showUserInfoForm) {\r\n createUser();\r\n }\r\n }, [CurrentAccount, createUser, hasError, isCreatingUser, showUserInfoForm]);\r\n\r\n useEffect(() => {\r\n if (CurrentAccount) {\r\n resolveLastCreatedPromise(serverContext);\r\n setIsCreatingUser(false);\r\n }\r\n }, [CurrentAccount, resolveLastCreatedPromise, serverContext, setIsCreatingUser]);\r\n\r\n const onConfirmUserInfo = useCallback((newUserInfo) => {\r\n setUserInfo(newUserInfo);\r\n createUser(newUserInfo);\r\n }, [createUser, setUserInfo]);\r\n\r\n return (\r\n \r\n {children}\r\n {\r\n showUserInfoForm &&\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nUserCreationContextProvider.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n devConfig: PropTypes.shape({}),\r\n};\r\n\r\nUserCreationContextProvider.defaultProps = {\r\n devConfig: {},\r\n};\r\n","export const surveySchema = {\r\n scenario: [{\r\n name: 'appScenario',\r\n value: 'Survey App Activity',\r\n activity: [{\r\n name: 'appActivity',\r\n value: 'Survey Activity logger',\r\n }],\r\n }],\r\n};\r\n\r\nexport const pmaxLiteSchemas = {\r\n scenario: [\r\n {\r\n name: 'defaultScenario',\r\n value: 'Default Scenario',\r\n activity: [{\r\n name: 'logger',\r\n value: 'Default logger of default scenario',\r\n }],\r\n },\r\n {\r\n name: 'appPreloadScenario',\r\n value: 'App preload Scenario',\r\n activity: [\r\n {\r\n name: 'appPreload',\r\n value: 'App preload',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'signupFlowScenario',\r\n value: 'signup flow',\r\n activity: [\r\n {\r\n name: 'signupFlow',\r\n value: 'signup flow',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'customerJourneyScenario',\r\n value: 'customer journey',\r\n activity: [\r\n {\r\n name: 'customerJourney',\r\n value: 'customer journey',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'usageReport',\r\n value: 'UsageReport Scenario',\r\n activity: [\r\n {\r\n name: 'signUpBundleLogin',\r\n value: 'Login sign up bundle',\r\n }, {\r\n name: 'signUpBundleResume',\r\n value: 'Resume sign up bundle',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'overreactRequest',\r\n value: 'Overreact Request',\r\n activity: [\r\n {\r\n name: 'logger',\r\n value: 'Overreact Request logger',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'pmaxLiteLanding',\r\n value: 'Pmax Lite Landing Scenario',\r\n activity: [\r\n {\r\n name: 'logger',\r\n value: 'Pmax Lite Landing logger',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'pmaxLiteSignup',\r\n value: 'Pmax Lite Signup Scenario',\r\n activity: [\r\n {\r\n name: 'scope',\r\n value: 'Scope Change logger',\r\n }, {\r\n name: 'supportControl',\r\n value: 'Support Control logger',\r\n }, {\r\n name: 'userCreation',\r\n value: 'User Creation logger',\r\n }, {\r\n name: 'smartPageStep',\r\n value: 'Smart Page Step logger',\r\n }, {\r\n name: 'cancelDialog',\r\n value: 'Cancel dialog logger',\r\n }, {\r\n name: 'coupon',\r\n value: 'Coupon logger',\r\n }, {\r\n name: 'suggestion',\r\n value: 'Suggestion service logger',\r\n }, {\r\n name: 'addFundsStep',\r\n value: 'Add Funds Step logger',\r\n }, {\r\n name: 'collectBusinessInfoStep',\r\n value: 'Collect Business Info Step logger',\r\n }, {\r\n name: 'languageCountryStep',\r\n value: 'Language Country Step logger',\r\n }, {\r\n name: 'websiteStep',\r\n value: 'Website Step logger',\r\n }, {\r\n name: 'campaignModeStep',\r\n value: 'Campaign Mode Step logger',\r\n }, {\r\n name: 'conversionUpsellStep',\r\n value: 'Conversion Upsell Step logger',\r\n }, {\r\n name: 'currencyCountryMapping',\r\n value: 'CurrencyCountryMapping logger',\r\n }, {\r\n name: 'readSupportedCountryList',\r\n value: 'SupportedCountryList logger',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'pmaxLiteAdAssets',\r\n value: 'Pmax Lite Signup Ad Assets Scenario',\r\n activity: [\r\n {\r\n name: 'adAssetsStep',\r\n value: 'Ad assets logger',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'pmaxLiteTargeting',\r\n value: 'Pmax Lite Signup Targeting Scenario',\r\n activity: [\r\n {\r\n name: 'locationTargeting',\r\n value: 'location targeting logger',\r\n },\r\n {\r\n name: 'audienceSignalTargeting',\r\n value: 'audience signal logger',\r\n },\r\n {\r\n name: 'searchThemesTargeting',\r\n value: 'search themes logger',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'pmaxLiteBudget',\r\n value: 'Pmax Lite Signup Budget Scenario',\r\n activity: [\r\n {\r\n name: 'budgetStep',\r\n value: 'Budget logger',\r\n },\r\n ],\r\n },\r\n {\r\n name: 'pmaxLiteAccountDetails',\r\n value: 'Pmax Lite Signup Account Details Scenario',\r\n activity: [\r\n {\r\n name: 'accountDetailsStep',\r\n value: 'AccountDetails logger',\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n","import { isInternalUrl } from '@bingads-webui/url-util';\r\nimport { AjaxStub, AjaxEventHandler, ErrorStub } from '@bingads-webui/instrumentation-stubs';\r\nimport { getInstrumentation as getInstrumentationInstance } from '@bingads-webui-campaign/instrumentation-setup';\r\nimport {\r\n OdataErrorMapper,\r\n CampaignApiErrorMapper,\r\n UrlErrorMapper,\r\n odataErrorCodes,\r\n campaignApiErrorCodes,\r\n invalidDomains,\r\n} from '@bingads-webui-campaign/instrumentation';\r\nimport { pmaxLiteSchemas } from './pmax-lite-schemas';\r\n\r\nexport const SUB_SYSTEM_NAMES = {\r\n PMaxLiteSignup: 'pmax-lite-signup',\r\n};\r\n\r\nconst errorMappers = {\r\n odataErrorMapper: new OdataErrorMapper(odataErrorCodes),\r\n campaignApiErrorMapper: new CampaignApiErrorMapper(campaignApiErrorCodes),\r\n urlErrorMapper: new UrlErrorMapper(invalidDomains),\r\n};\r\n\r\nfunction stub(instrumentation, serverContext) {\r\n const stubOptions = {\r\n pageTrackingId: serverContext && serverContext.PageTrackingId,\r\n lcid: serverContext && serverContext.CultureLcid,\r\n };\r\n\r\n const shouldAddHeaders = ajaxContext => isInternalUrl(ajaxContext.url);\r\n const eventHandler = new AjaxEventHandler({\r\n errorMappers,\r\n shouldAddHeaders,\r\n });\r\n\r\n const ajaxStub = new AjaxStub({\r\n stubOptions,\r\n eventHandler,\r\n instrumentation,\r\n });\r\n\r\n const errorStub = new ErrorStub({\r\n instrumentation,\r\n });\r\n\r\n ajaxStub.init();\r\n errorStub.init();\r\n}\r\n\r\nexport const getInstrumentationService = ({ instrumentation, serverContext }) => {\r\n instrumentation.addScenario(pmaxLiteSchemas);\r\n const defaultScenario = instrumentation.defaultScenario.create();\r\n const logger = defaultScenario.logger.create();\r\n\r\n stub(instrumentation, serverContext);\r\n\r\n return {\r\n instrumentation,\r\n logger,\r\n };\r\n};\r\n\r\nexport const getInstrumentation = ({\r\n serverContext,\r\n devConfig,\r\n subSystemName = SUB_SYSTEM_NAMES.PMaxLiteSignup,\r\n}) => {\r\n const {\r\n CurrentCustomer,\r\n CurrentAccount,\r\n CurrentUser,\r\n } = serverContext;\r\n\r\n const userContext = {\r\n CurrentCustomer: CurrentCustomer || {},\r\n CurrentAccount: CurrentAccount || {},\r\n CurrentUser: CurrentUser || {},\r\n };\r\n\r\n return getInstrumentationInstance({\r\n pageTrackingId: serverContext.PageTrackingId,\r\n errorMappers,\r\n isInDevelopmentMode: devConfig.isInDevelopmentMode,\r\n userContext,\r\n applicationName: {\r\n systemName: 'campaign',\r\n subSystemName,\r\n },\r\n serverContext: {\r\n // Ui Next is using dynamic permissions config\r\n // We don't have that in sign up bundle context. Enable it for all users to expose errors.\r\n DynamicPermissions: {\r\n EnableLoggingForUnhandledPromiseRejections: true,\r\n },\r\n ...serverContext,\r\n ...userContext,\r\n },\r\n objectsToStub: [],\r\n });\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useState, memo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { InstrumentationContext } from '@bingads-webui-react/hoc-with-instrumentation';\r\n\r\nexport const InstrumentationServiceContext = React.createContext([null, _.noop]);\r\n\r\nexport const InstrumentationWithServiceProvider = memo((props) => {\r\n const {\r\n context,\r\n children,\r\n } = props;\r\n\r\n const [instrumentationService, setInstrumentationService] = useState(context);\r\n const { instrumentation = null } = instrumentationService || {};\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n});\r\n\r\nInstrumentationWithServiceProvider.propTypes = {\r\n context: PropTypes.shape({\r\n logger: PropTypes.shape({}).isRequired,\r\n instrumentation: PropTypes.shape({}).isRequired,\r\n }).isRequired,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n","import { checkUserQueryParams } from '@bingads-webui-campaign/global-app-init';\r\nimport { keepAliveInstance } from '@bingads-webui/keep-alive';\r\nimport { updateGlobalQualtricsData } from '@bingads-webui-campaign/qualtrics';\r\n\r\nimport { getInstrumentation, getInstrumentationService } from '../instrumentation';\r\n\r\nexport function setupInstrumentation({\r\n serverContext,\r\n devConfig,\r\n setInstrumentationService,\r\n subSystemName,\r\n}) {\r\n // Create new instrumentationScenario and make it available to the rest of the wizard\r\n const instrumentation = getInstrumentation({\r\n serverContext,\r\n devConfig,\r\n subSystemName,\r\n });\r\n const instrumentationService = getInstrumentationService({ instrumentation, serverContext });\r\n setInstrumentationService(instrumentationService);\r\n\r\n return instrumentation;\r\n}\r\n\r\nexport function setupGlobal({\r\n serverContext,\r\n devConfig,\r\n setInstrumentationService,\r\n subSystemName,\r\n}) {\r\n // Update url with new User\r\n checkUserQueryParams(serverContext, true);\r\n\r\n // Valid user cookie should be set now, safe to start keep-alive polling\r\n keepAliveInstance.start();\r\n\r\n updateGlobalQualtricsData(serverContext);\r\n\r\n return setupInstrumentation({\r\n serverContext,\r\n devConfig,\r\n setInstrumentationService,\r\n subSystemName,\r\n });\r\n}\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { Shimmer, ShimmerElementType } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { Constants } from '@bingads-webui-theme-2018/theme-fluent';\r\nimport { useResponsiveSize } from '@bingads-webui-react/with-responsive-size';\r\n\r\nconst getStyles = () => ({\r\n shimmerWrapper: {\r\n height: '100%',\r\n padding: '30px 0',\r\n background: '#fff',\r\n display: 'flex',\r\n flexFlow: 'column',\r\n alignItems: 'center',\r\n borderRadius: '2px',\r\n '& .header-shimmer': {\r\n margin: '20px 0',\r\n },\r\n '& .select-shimmer, .label-shimmer': {\r\n marginTop: 5,\r\n },\r\n },\r\n});\r\n\r\nexport const LanguageCountryStepShimmer = () => {\r\n const classes = useDefaultStyles(getStyles);\r\n const displayMode = useResponsiveSize(Constants.ResponsiveSizeBreakpoints);\r\n const isSmallSize = displayMode === 's';\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n","import React, { useMemo } from 'react';\r\nimport classNames from 'classnames';\r\nimport { Shimmer, ShimmerElementType } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { Constants } from '@bingads-webui-theme-2018/theme-fluent';\r\nimport { useResponsiveSize } from '@bingads-webui-react/with-responsive-size';\r\n\r\nconst getStyles = () => ({\r\n shimmerWrapper: {\r\n height: '100%',\r\n padding: '30px 0',\r\n background: '#fff',\r\n display: 'flex',\r\n flexFlow: 'column',\r\n alignItems: 'center',\r\n borderRadius: '2px',\r\n '& .header-shimmer': {\r\n margin: '20px 0',\r\n },\r\n '& .option-container': {\r\n marginBottom: 18,\r\n width: 400,\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n '& .option-shimmer': {\r\n display: 'inline-block',\r\n width: 192,\r\n height: 146,\r\n },\r\n },\r\n '& .input-shimmer, .label-shimmer': {\r\n marginTop: 8,\r\n },\r\n },\r\n 'shimmerWrapper-s': {\r\n '& .option-container': {\r\n width: 280,\r\n '& .option-shimmer': {\r\n display: 'inline-block',\r\n width: 132,\r\n height: 146,\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const WebsiteStepShimmer = () => {\r\n const classes = useDefaultStyles(getStyles);\r\n const displayMode = useResponsiveSize(Constants.ResponsiveSizeBreakpoints);\r\n const isSmallSize = displayMode === 's';\r\n\r\n const optionShimmer = useMemo(() => (\r\n \r\n ), [isSmallSize]);\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n {optionShimmer}\r\n {optionShimmer}\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n","import React, { useMemo } from 'react';\r\nimport classNames from 'classnames';\r\nimport { Shimmer, ShimmerElementType } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { Constants } from '@bingads-webui-theme-2018/theme-fluent';\r\nimport { useResponsiveSize } from '@bingads-webui-react/with-responsive-size';\r\n\r\nconst getStyles = () => ({\r\n shimmerWrapper: {\r\n height: '100%',\r\n padding: '30px 0',\r\n background: '#fff',\r\n display: 'flex',\r\n flexFlow: 'column',\r\n alignItems: 'center',\r\n borderRadius: '2px',\r\n '& .header-shimmer': {\r\n margin: '20px 0',\r\n },\r\n '& .option-container': {\r\n width: 500,\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n '& .option-shimmer': {\r\n display: 'inline-block',\r\n width: 240,\r\n height: 300,\r\n marginBottom: 18,\r\n },\r\n },\r\n },\r\n 'shimmerWrapper-m': {\r\n '& .option-container': {\r\n width: 280,\r\n flexDirection: 'column',\r\n '& .option-shimmer': {\r\n width: 280,\r\n height: 250,\r\n },\r\n },\r\n },\r\n 'shimmerWrapper-s': {\r\n '& .option-container': {\r\n width: 240,\r\n flexDirection: 'column',\r\n '& .option-shimmer': {\r\n width: 240,\r\n height: 200,\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const CampaignModeStepShimmer = () => {\r\n const classes = useDefaultStyles(getStyles);\r\n const displayMode = useResponsiveSize(Constants.ResponsiveSizeBreakpoints);\r\n\r\n const { optionHeight, optionWidth } = useMemo(() => {\r\n if (displayMode === 's') {\r\n return {\r\n optionHeight: 200,\r\n optionWidth: 240,\r\n };\r\n }\r\n if (displayMode === 'm') {\r\n return {\r\n optionHeight: 250,\r\n optionWidth: 280,\r\n };\r\n }\r\n return {\r\n optionHeight: 300,\r\n optionWidth: 240,\r\n };\r\n }, [displayMode]);\r\n\r\n const optionShimmer = useMemo(() => (\r\n \r\n ), [optionHeight, optionWidth]);\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n {optionShimmer}\r\n {optionShimmer}\r\n
\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport { Shimmer, ShimmerElementType } from '@fluentui/react';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nconst getAdAssetsFormShimmer = () => ({\r\n container: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'start',\r\n width: '100%',\r\n gap: '16px',\r\n },\r\n title: {\r\n marginBottom: '8px',\r\n },\r\n description: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'start',\r\n gap: '8px',\r\n width: '100%',\r\n marginBottom: '16px',\r\n\r\n '& div:not(:last-child)': {\r\n width: '100%',\r\n },\r\n },\r\n section: {\r\n width: '100%',\r\n },\r\n});\r\n\r\nexport const AdAssetsFormShimmer = () => {\r\n const classes = useDefaultStyles(getAdAssetsFormShimmer);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst getAdAssetsPreviewerShimmerStyles = () => ({\r\n container: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'start',\r\n width: '400px',\r\n gap: '8px',\r\n },\r\n});\r\n\r\nexport const AdAssetsPreviewerShimmer = () => {\r\n const classes = useDefaultStyles(getAdAssetsPreviewerShimmerStyles);\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\n","export const SMART_PAGE_PATHS = {\r\n // Smart page\r\n SMART_PAGE_SIGNUP: 'SMART_PAGE_SIGNUP',\r\n SMART_PAGE_EDITOR: 'SMART_PAGE_EDITOR',\r\n SMART_PAGE_CUSTOM_DOMAIN: 'SMART_PAGE_CUSTOM_DOMAIN',\r\n};\r\n\r\nexport const ONBOARDING_PATHS = {\r\n CAMPAIGN_CREATION_METHOD: 'CAMPAIGN_CREATION_METHOD',\r\n LANGUAGE_COUNTRY: 'LANGUAGE_COUNTRY',\r\n WEBSITE: 'WEBSITE',\r\n CAMPAIGN_MODE: 'CAMPAIGN_MODE',\r\n\r\n // Import\r\n GOOGLE_IMPORT: 'GOOGLE_IMPORT',\r\n FACEBOOK_IMPORT: 'FACEBOOK_IMPORT',\r\n\r\n ...SMART_PAGE_PATHS,\r\n};\r\n\r\nexport const PREVIEW_TO_NON_PREVIEW_MAPPING = {\r\n PREVIEW_ASSETS: 'AD_ASSETS',\r\n PREVIEW_ACCOUNT: 'ACCOUNT_DETAILS',\r\n PREVIEW_PAYMENT: 'PAYMENT',\r\n PREVIEW_ADD_FUNDS: 'ADD_FUNDS',\r\n};\r\n\r\nexport const NON_PREVIEW_TO_PREVIEW_MAPPING = {\r\n AD_ASSETS: 'PREVIEW_ASSETS',\r\n TARGETING: 'PREVIEW_ASSETS',\r\n BUDGET: 'PREVIEW_ASSETS',\r\n ACCOUNT_DETAILS: 'PREVIEW_ACCOUNT',\r\n PAYMENT: 'PREVIEW_PAYMENT',\r\n ADD_FUNDS: 'PREVIEW_ADD_FUNDS',\r\n};\r\n\r\nexport const CAMPAIGN_CREATION_PATHS = {\r\n // PMAX campaign creation\r\n AD_ASSETS: 'AD_ASSETS',\r\n TARGETING: 'TARGETING',\r\n BUDGET: 'BUDGET',\r\n PREVIEW_ASSETS: 'PREVIEW_ASSETS',\r\n};\r\n\r\nexport const PMAX_LITE_WIZARD_STEP_PATHS = {\r\n ...ONBOARDING_PATHS,\r\n ...CAMPAIGN_CREATION_PATHS,\r\n\r\n // Account and payment\r\n ACCOUNT_DETAILS: 'ACCOUNT_DETAILS',\r\n PAYMENT: 'PAYMENT',\r\n ADD_FUNDS: 'ADD_FUNDS',\r\n\r\n PREVIEW_ACCOUNT: 'PREVIEW_ACCOUNT',\r\n PREVIEW_PAYMENT: 'PREVIEW_PAYMENT',\r\n PREVIEW_ADD_FUNDS: 'PREVIEW_ADD_FUNDS',\r\n\r\n CONVERSION_UPSELL: 'CONVERSION_UPSELL',\r\n IMPORT_COMPLETE: 'IMPORT_COMPLETE',\r\n};\r\n\r\nexport const CARD_STYLE_PATHS = [\r\n ONBOARDING_PATHS.CAMPAIGN_CREATION_METHOD,\r\n ONBOARDING_PATHS.LANGUAGE_COUNTRY,\r\n ONBOARDING_PATHS.WEBSITE,\r\n ONBOARDING_PATHS.CAMPAIGN_MODE,\r\n ONBOARDING_PATHS.SMART_PAGE_SIGNUP,\r\n];\r\n\r\nexport const stepToPage = {\r\n [PMAX_LITE_WIZARD_STEP_PATHS.CAMPAIGN_CREATION_METHOD]: 'pmaxlite010.creationMethod',\r\n // Start Import\r\n [PMAX_LITE_WIZARD_STEP_PATHS.GOOGLE_IMPORT]: 'pmaxlite020.googleImport',\r\n [PMAX_LITE_WIZARD_STEP_PATHS.FACEBOOK_IMPORT]: 'pmaxlite020.facebookImport',\r\n // End Import\r\n [PMAX_LITE_WIZARD_STEP_PATHS.LANGUAGE_COUNTRY]: 'pmaxlite020.languageCountry',\r\n [PMAX_LITE_WIZARD_STEP_PATHS.WEBSITE]: 'pmaxlite030.website',\r\n // Start Smart Page\r\n [PMAX_LITE_WIZARD_STEP_PATHS.SMART_PAGE_SIGNUP]: 'pmaxlite030.smartpage.signup',\r\n [PMAX_LITE_WIZARD_STEP_PATHS.SMART_PAGE_EDITOR]: 'pmaxlite030.smartpage.editor',\r\n [PMAX_LITE_WIZARD_STEP_PATHS.SMART_PAGE_CUSTOM_DOMAIN]: 'pmaxlite030.smartpage.customDomain',\r\n // End Smart Page\r\n [PMAX_LITE_WIZARD_STEP_PATHS.CAMPAIGN_MODE]: 'pmaxlite040.campaignMode',\r\n // Start PMax Campaign\r\n [PMAX_LITE_WIZARD_STEP_PATHS.AD_ASSETS]: 'pmaxlite050.pmax.buildAds',\r\n [PMAX_LITE_WIZARD_STEP_PATHS.TARGETING]: 'pmaxlite050.pmax.targeting',\r\n [PMAX_LITE_WIZARD_STEP_PATHS.BUDGET]: 'pmaxlite050.pmax.budget',\r\n [PMAX_LITE_WIZARD_STEP_PATHS.PREVIEW_ASSETS]: 'pmaxlite050.pmax.buildAds',\r\n // End PMax Campaign\r\n [PMAX_LITE_WIZARD_STEP_PATHS.ACCOUNT_DETAILS]: 'pmaxlite060.accountDetails',\r\n [PMAX_LITE_WIZARD_STEP_PATHS.PAYMENT]: 'pmaxlite070.payment',\r\n [PMAX_LITE_WIZARD_STEP_PATHS.ADD_FUNDS]: 'pmaxlite075.paymentAddFunds',\r\n [PMAX_LITE_WIZARD_STEP_PATHS.PREVIEW_ACCOUNT]: 'pmaxlite060.accountDetails',\r\n [PMAX_LITE_WIZARD_STEP_PATHS.PREVIEW_PAYMENT]: 'pmaxlite070.payment',\r\n [PMAX_LITE_WIZARD_STEP_PATHS.PREVIEW_ADD_FUNDS]: 'pmaxlite075.paymentAddFunds',\r\n [PMAX_LITE_WIZARD_STEP_PATHS.CONVERSION_UPSELL]: 'pmaxlite080.conversionUpsell',\r\n [PMAX_LITE_WIZARD_STEP_PATHS.IMPORT_COMPLETE]: 'pmaxlite085.importComplete',\r\n};\r\n","import { SIGNUP_SUB_FLOW } from '@bingads-webui-campaign-react/shared-app-capi';\r\nimport { PMAX_LITE_WIZARD_STEP_PATHS, PREVIEW_TO_NON_PREVIEW_MAPPING, NON_PREVIEW_TO_PREVIEW_MAPPING } from './constants';\r\n\r\nexport const getFlow = ({\r\n isSmartPage,\r\n isSmartPageCustomDomainSupported,\r\n isSkipCampaign,\r\n isGoogleImport,\r\n isFacebookImport,\r\n isChinaSignup,\r\n psd2Country,\r\n isPreviewFlow,\r\n} = {}) => {\r\n const paymentStep = isPreviewFlow\r\n ? PMAX_LITE_WIZARD_STEP_PATHS.PREVIEW_PAYMENT\r\n : PMAX_LITE_WIZARD_STEP_PATHS.PAYMENT;\r\n\r\n const addFundsStep = isPreviewFlow\r\n ? PMAX_LITE_WIZARD_STEP_PATHS.PREVIEW_ADD_FUNDS\r\n : PMAX_LITE_WIZARD_STEP_PATHS.ADD_FUNDS;\r\n\r\n // psd2Country will be set if user choose prepay + credit card + pds2Country (Eg. Germany)\r\n const paymentSteps = psd2Country ? [\r\n paymentStep,\r\n addFundsStep,\r\n ] : [\r\n paymentStep,\r\n ];\r\n\r\n const accountStep = isPreviewFlow\r\n ? PMAX_LITE_WIZARD_STEP_PATHS.PREVIEW_ACCOUNT\r\n : PMAX_LITE_WIZARD_STEP_PATHS.ACCOUNT_DETAILS;\r\n\r\n const campaignCreationSteps = isPreviewFlow ? [PMAX_LITE_WIZARD_STEP_PATHS.PREVIEW_ASSETS] : [\r\n PMAX_LITE_WIZARD_STEP_PATHS.AD_ASSETS,\r\n PMAX_LITE_WIZARD_STEP_PATHS.TARGETING,\r\n PMAX_LITE_WIZARD_STEP_PATHS.BUDGET,\r\n ];\r\n\r\n if (isFacebookImport) {\r\n return [\r\n PMAX_LITE_WIZARD_STEP_PATHS.CAMPAIGN_CREATION_METHOD,\r\n PMAX_LITE_WIZARD_STEP_PATHS.FACEBOOK_IMPORT,\r\n ];\r\n }\r\n\r\n if (isGoogleImport) {\r\n return [\r\n PMAX_LITE_WIZARD_STEP_PATHS.CAMPAIGN_CREATION_METHOD,\r\n PMAX_LITE_WIZARD_STEP_PATHS.GOOGLE_IMPORT,\r\n ];\r\n }\r\n\r\n if (isChinaSignup) {\r\n return [\r\n PMAX_LITE_WIZARD_STEP_PATHS.CAMPAIGN_CREATION_METHOD,\r\n accountStep,\r\n ];\r\n }\r\n\r\n if (isSmartPage) {\r\n if (isSmartPageCustomDomainSupported) {\r\n return [\r\n PMAX_LITE_WIZARD_STEP_PATHS.CAMPAIGN_CREATION_METHOD,\r\n PMAX_LITE_WIZARD_STEP_PATHS.LANGUAGE_COUNTRY,\r\n PMAX_LITE_WIZARD_STEP_PATHS.WEBSITE,\r\n PMAX_LITE_WIZARD_STEP_PATHS.SMART_PAGE_SIGNUP,\r\n PMAX_LITE_WIZARD_STEP_PATHS.SMART_PAGE_EDITOR,\r\n PMAX_LITE_WIZARD_STEP_PATHS.SMART_PAGE_CUSTOM_DOMAIN,\r\n ...campaignCreationSteps,\r\n accountStep,\r\n ...paymentSteps,\r\n ];\r\n }\r\n return [\r\n PMAX_LITE_WIZARD_STEP_PATHS.CAMPAIGN_CREATION_METHOD,\r\n PMAX_LITE_WIZARD_STEP_PATHS.LANGUAGE_COUNTRY,\r\n PMAX_LITE_WIZARD_STEP_PATHS.WEBSITE,\r\n PMAX_LITE_WIZARD_STEP_PATHS.SMART_PAGE_SIGNUP,\r\n PMAX_LITE_WIZARD_STEP_PATHS.SMART_PAGE_EDITOR,\r\n ...campaignCreationSteps,\r\n accountStep,\r\n ...paymentSteps,\r\n ];\r\n }\r\n\r\n if (isSkipCampaign) {\r\n return [\r\n PMAX_LITE_WIZARD_STEP_PATHS.CAMPAIGN_CREATION_METHOD,\r\n PMAX_LITE_WIZARD_STEP_PATHS.LANGUAGE_COUNTRY,\r\n PMAX_LITE_WIZARD_STEP_PATHS.WEBSITE,\r\n PMAX_LITE_WIZARD_STEP_PATHS.CAMPAIGN_MODE,\r\n accountStep,\r\n ...paymentSteps,\r\n ];\r\n }\r\n\r\n // default is pmax campaign creation flow\r\n return [\r\n PMAX_LITE_WIZARD_STEP_PATHS.CAMPAIGN_CREATION_METHOD,\r\n PMAX_LITE_WIZARD_STEP_PATHS.LANGUAGE_COUNTRY,\r\n PMAX_LITE_WIZARD_STEP_PATHS.WEBSITE,\r\n PMAX_LITE_WIZARD_STEP_PATHS.CAMPAIGN_MODE,\r\n ...campaignCreationSteps,\r\n accountStep,\r\n ...paymentSteps,\r\n PMAX_LITE_WIZARD_STEP_PATHS.CONVERSION_UPSELL,\r\n ];\r\n};\r\n\r\nexport const convertStepIdForPreviewFlow = (isPreviewFlow, currentStepId) => {\r\n if (isPreviewFlow) {\r\n return NON_PREVIEW_TO_PREVIEW_MAPPING[currentStepId] || currentStepId;\r\n }\r\n return PREVIEW_TO_NON_PREVIEW_MAPPING[currentStepId] || currentStepId;\r\n};\r\n\r\nexport const getSubFlowFromCurrentFlow = (currentFlow) => {\r\n // currentFlow is an array of step ids\r\n if (currentFlow.includes(PMAX_LITE_WIZARD_STEP_PATHS.FACEBOOK_IMPORT)) {\r\n return SIGNUP_SUB_FLOW.FacebookImport;\r\n }\r\n if (currentFlow.includes(PMAX_LITE_WIZARD_STEP_PATHS.GOOGLE_IMPORT)) {\r\n return SIGNUP_SUB_FLOW.GoogleImport;\r\n }\r\n if (currentFlow.includes(PMAX_LITE_WIZARD_STEP_PATHS.SMART_PAGE_SIGNUP)) {\r\n return SIGNUP_SUB_FLOW.SmartPage;\r\n }\r\n if (!currentFlow.includes(PMAX_LITE_WIZARD_STEP_PATHS.AD_ASSETS)\r\n && !currentFlow.includes(PMAX_LITE_WIZARD_STEP_PATHS.PREVIEW_ASSETS)) {\r\n return SIGNUP_SUB_FLOW.SkipCampaign;\r\n }\r\n return SIGNUP_SUB_FLOW.CampaignCreation;\r\n};\r\n","import { useCallback, useContext } from 'react';\r\nimport { ScopeContext } from '@bingads-webui-react/scope-service';\r\nimport { ServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { usePilotsValue } from '@bingads-webui-campaign-react/basic-context-utils';\r\nimport { getCampaignPageUrl, getUrlForPath } from '@bingads-webui-campaign-react/shared-app-capi';\r\nimport { isSDK, isFirefoxSDKSignupScenario, getSDKParams } from '@bingads-webui-campaign-react/sdk-utils';\r\n\r\nexport const useSubmitToMainBundle = () => {\r\n const { scope } = useContext(ScopeContext);\r\n const { campaignId, assetGroupId } = scope.values;\r\n const serverContext = useContext(ServerContext);\r\n const isChinaSignup = usePilotsValue('isCNMarketExpansionEnabled');\r\n\r\n const submitToMainBundle = useCallback(({ goToUrl } = {}) => {\r\n let mainBundleUrl;\r\n if (isSDK()) {\r\n const { mkt } = getSDKParams();\r\n mainBundleUrl = getCampaignPageUrl(serverContext, 'sdkcampaignoverview', {\r\n campaignId,\r\n assetGroupId,\r\n isSDK: true,\r\n mkt,\r\n });\r\n\r\n // For firefox, we need to navigate to sdkintermediate who will call document.requestStorageAccess silently\r\n // to gain the storage permission of ui.ads.microsoft.com\r\n if (isFirefoxSDKSignupScenario()) {\r\n mainBundleUrl = getUrlForPath(serverContext, 'campaign/sdkintermediate', {\r\n RURL: mainBundleUrl,\r\n });\r\n }\r\n } else if (isChinaSignup) {\r\n mainBundleUrl = getCampaignPageUrl(serverContext, 'overview');\r\n } else {\r\n mainBundleUrl = campaignId\r\n ? getCampaignPageUrl(serverContext, 'overview', { campaignId })\r\n : getCampaignPageUrl(serverContext, 'createcampaign/objective');\r\n }\r\n if (goToUrl) {\r\n goToUrl(mainBundleUrl);\r\n } else {\r\n window.location.replace(mainBundleUrl);\r\n }\r\n }, [isChinaSignup, serverContext, campaignId, assetGroupId]);\r\n\r\n return submitToMainBundle;\r\n};\r\n","import config from '@bingads-webui-component-legacy/config/index';\r\n\r\nexport const initLegacyOdata = (serverContext) => {\r\n const hostname = document.location.origin.toLowerCase();\r\n const isLocal = () => {\r\n // For sign up local environment, the hostname is ccui.devdev.bingads.microsoft.com\r\n if (hostname.indexOf('devdev') > -1) {\r\n return true;\r\n }\r\n return hostname.indexOf('ads.microsoft.com') === -1 &&\r\n hostname.indexOf('ads-int.microsoft.com') === -1;\r\n };\r\n\r\n const odataPath = isLocal() ? 'Advertiser/V2' : 'Campaign/V2';\r\n\r\n config.set('odata.url', serverContext.ServicesEndpoints.CampaignAPI);\r\n config.set('odata.path', odataPath);\r\n config.set('odata.token', serverContext.Token);\r\n};\r\n","import React, { useContext } from 'react';\r\n\r\nexport const SuggestionsContext = React.createContext({});\r\n\r\nexport const useSuggestionsContext = () => useContext(SuggestionsContext);\r\n","import React, { useContext, useMemo, useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ScopeContext } from '@bingads-webui-react/scope-service';\r\nimport { useSuggestionsService, STATES } from '@bingads-webui-campaign-react/simplified-sign-up-suggestions';\r\n\r\nimport { SuggestionsContext } from './suggestions-context';\r\nimport { useLoadBISuggestions } from './services/use-load-bi-suggestions';\r\nimport { useLoadTargetsSuggestions } from './services/use-load-target-suggestions';\r\n\r\nfunction SuggestionsContextInt(props) {\r\n const {\r\n updateValue,\r\n } = props;\r\n\r\n const { loadBISuggestions } = useLoadBISuggestions();\r\n const { loadTargetsSuggestions } = useLoadTargetsSuggestions();\r\n\r\n const {\r\n state,\r\n send,\r\n } = useSuggestionsService({\r\n loadBISuggestions,\r\n loadTargetsSuggestions,\r\n });\r\n\r\n const {\r\n isRSADone,\r\n isImagesDone,\r\n isTargetsDone,\r\n isBIDone,\r\n allDone,\r\n } = state.context.flags;\r\n const {\r\n rsa,\r\n images,\r\n targets,\r\n bi,\r\n } = state.context.outputs;\r\n\r\n const isInitState = state.matches(STATES.INIT);\r\n\r\n const value = useMemo(() => ({\r\n isRSADone,\r\n isImagesDone,\r\n isTargetsDone,\r\n isBIDone,\r\n allDone,\r\n rsa,\r\n images,\r\n targets,\r\n bi,\r\n send,\r\n isInitState,\r\n }), [allDone, bi, images, isBIDone, isImagesDone, isInitState, isRSADone, isTargetsDone, rsa, send, targets]);\r\n\r\n useEffect(() => {\r\n updateValue(value);\r\n }, [updateValue, value]);\r\n\r\n return null;\r\n}\r\n\r\nSuggestionsContextInt.propTypes = {\r\n updateValue: PropTypes.func.isRequired,\r\n};\r\n\r\nexport function SuggestionsContextProvider(props) {\r\n const {\r\n children,\r\n } = props;\r\n\r\n const { scope } = useContext(ScopeContext);\r\n const { aid } = scope.values;\r\n const [value, updateValue] = useState({});\r\n\r\n return (\r\n \r\n {children}\r\n {aid &&\r\n \r\n }\r\n \r\n );\r\n}\r\n\r\nSuggestionsContextProvider.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n};\r\n","import _ from 'underscore';\r\nimport { useCallback, useContext, useMemo } from 'react';\r\nimport { ScopeContext } from '@bingads-webui-react/scope-service';\r\nimport { InstrumentationContext } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { loadBusinessInfoRecommendation } from '@bingads-webui-campaign-react/pmax-lite-data';\r\n\r\nexport function useLoadBISuggestions() {\r\n const { scope } = useContext(ScopeContext);\r\n const {\r\n cid, aid,\r\n } = scope.values;\r\n\r\n const instrumentation = useContext(InstrumentationContext);\r\n const activity = useMemo(() => {\r\n if (instrumentation && instrumentation.pmaxLiteSignup) {\r\n const scenario = instrumentation.pmaxLiteSignup.create();\r\n return scenario.suggestion.create();\r\n }\r\n return { trace: _.noop, error: _.noop };\r\n }, [instrumentation]);\r\n\r\n const loadBISuggestions = useCallback((context) => {\r\n const {\r\n url,\r\n language,\r\n } = context.inputs;\r\n\r\n if (!url) {\r\n activity.trace('loadBISuggestions - url is empty');\r\n return Promise.resolve();\r\n }\r\n\r\n const payload = { url, language };\r\n\r\n activity.trace(`loadBISuggestions - payload: ${JSON.stringify(payload)}, cid: ${cid}, aid: ${aid}`);\r\n\r\n return loadBusinessInfoRecommendation(payload, cid, aid)\r\n .timeout(5000)\r\n .then((response) => {\r\n const {\r\n BusinessName,\r\n InternationalPhoneNumber,\r\n PhoneNumber,\r\n Addresses,\r\n } = response;\r\n\r\n return {\r\n businessName: BusinessName,\r\n businessAddress: _.first(Addresses),\r\n internationalPhoneNumber: InternationalPhoneNumber,\r\n phoneNumber: PhoneNumber,\r\n };\r\n })\r\n .catch((error) => {\r\n // Do not show error message to user since suggestion is nice to have\r\n activity.trace(`loadBISuggestions failed - error: ${JSON.stringify(error)}. payload: ${JSON.stringify(payload)}`);\r\n });\r\n }, [activity, aid, cid]);\r\n\r\n return {\r\n loadBISuggestions,\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { useCallback, useContext, useMemo } from 'react';\r\nimport { ScopeContext } from '@bingads-webui-react/scope-service';\r\nimport { InstrumentationContext } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { loadTargetRecommendation } from '@bingads-webui-campaign-react/pmax-lite-data';\r\n\r\nexport function useLoadTargetsSuggestions() {\r\n const { scope } = useContext(ScopeContext);\r\n const {\r\n cid, aid,\r\n } = scope.values;\r\n\r\n const instrumentation = useContext(InstrumentationContext);\r\n const activity = useMemo(() => {\r\n if (instrumentation && instrumentation.pmaxLiteSignup) {\r\n const scenario = instrumentation.pmaxLiteSignup.create();\r\n return scenario.suggestion.create();\r\n }\r\n return { trace: _.noop, error: _.noop };\r\n }, [instrumentation]);\r\n\r\n const loadTargetsSuggestions = useCallback((context) => {\r\n const {\r\n url,\r\n } = context.inputs;\r\n\r\n if (!url) {\r\n activity.trace('loadTargetsSuggestions - url is empty');\r\n return Promise.resolve();\r\n }\r\n\r\n const payload = { url };\r\n\r\n activity.trace(`loadTargetRecommendation - payload: ${JSON.stringify(payload)}, cid: ${cid}, aid: ${aid}`);\r\n\r\n return loadTargetRecommendation(payload, cid, aid)\r\n .timeout(5000)\r\n .then(response => response.value)\r\n .catch((error) => {\r\n // Do not show error message to user since suggestion is nice to have\r\n activity.trace(`loadTargetRecommendation failed - error: ${JSON.stringify(error)}. payload: ${JSON.stringify(payload)}`);\r\n });\r\n }, [activity, aid, cid]);\r\n\r\n return {\r\n loadTargetsSuggestions,\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { useEffect, useState } from 'react';\r\nimport { usePreference, preferenceNames } from '@bingads-webui-campaign-react/pmax-lite-data';\r\nimport { useWizardService, getCurrentStepId, getFlowFactor, getWizardData } from '@bingads-webui-react/wizard';\r\nimport { EVENTS } from '@bingads-webui-campaign-react/simplified-sign-up-suggestions';\r\nimport { ONBOARDING_PATHS } from '@bingads-webui-campaign-react/pmax-lite-wizard-utils';\r\n\r\nimport { useSuggestionsContext } from './suggestions-context';\r\n\r\nexport const SuggestionsResumer = () => {\r\n const { state } = useWizardService();\r\n const currentStepId = getCurrentStepId(state);\r\n const isSmartPage = getFlowFactor(state, 'isSmartPage');\r\n const { cache } = getWizardData(state);\r\n const { website: websiteFromCache } = cache || {};\r\n\r\n const [{ value: languagePreference }] = usePreference(preferenceNames.SelectedLanguage);\r\n const [{ value: websitePreference }] = usePreference(preferenceNames.WebsiteUrl);\r\n const [{ value: smartPageUrlPreference }] = usePreference(preferenceNames.SmartPageUrl);\r\n const urlForSuggestionService = isSmartPage ? smartPageUrlPreference : (websitePreference || websiteFromCache);\r\n\r\n const [isSuggestionInitialized, setIsSuggestionInitialized] = useState(false);\r\n const { send, isInitState } = useSuggestionsContext();\r\n\r\n useEffect(() => {\r\n if (!isSuggestionInitialized && isInitState && languagePreference\r\n && !_.contains(ONBOARDING_PATHS, currentStepId)) {\r\n const suggestionsPayload = {\r\n isSmartMode: false,\r\n isPMaxLite: true,\r\n url: urlForSuggestionService,\r\n language: languagePreference,\r\n };\r\n\r\n setIsSuggestionInitialized(true);\r\n send(EVENTS.LOAD, suggestionsPayload);\r\n }\r\n }, [currentStepId, isInitState, isSuggestionInitialized, languagePreference, send, urlForSuggestionService]);\r\n\r\n return null;\r\n};\r\n","/* eslint-disable max-len */\r\nimport _ from 'underscore';\r\nimport { targetOptions } from '@bingads-webui-campaign-react/location-targeting';\r\nimport { formatGenders, formatAgeRanges } from '@bingads-webui-campaign-react/audience-demographic';\r\n\r\nexport const getLocationTargetsEditorStrings = i18n => ({\r\n noResultsMessage: i18n.getString(_TL_('Location does not exist or cannot be targeted. Enter a new location or add a radius around a location.')),\r\n description: i18n.getString(_TL_('For example, coordinates, ZIP/postal code, state/province, or country/region.')),\r\n label: i18n.getString(_TL_('Search for location')),\r\n choiceGroupLabel: i18n.getString(_TL_('I want to target:')),\r\n boundaryOption: i18n.getString(_TL_('Specific location')),\r\n radiusOption: i18n.getString(_TL_('Radius around a point')),\r\n});\r\n\r\nexport const buildLocationTargetingData = ({\r\n isPeopleInLocationChecked,\r\n isPeopleSearchingForLocationChecked,\r\n selectedLocationOption,\r\n negativeLocationTargets,\r\n positiveLocationTargets,\r\n}) => ({\r\n isPeopleInLocationChecked: _.isUndefined(isPeopleInLocationChecked) ? true : isPeopleInLocationChecked,\r\n isPeopleSearchingForLocationChecked: _.isUndefined(isPeopleSearchingForLocationChecked) ? true : isPeopleSearchingForLocationChecked,\r\n selectedLocationOption: selectedLocationOption || targetOptions.specific,\r\n negativeLocationTargets: negativeLocationTargets || [],\r\n positiveLocationTargets: positiveLocationTargets || [],\r\n});\r\n\r\nexport function shouldSelectQuickOption(quickOptionCountry, savedTargets, suggestedTargets) {\r\n const {\r\n positiveLocationTargets = [],\r\n negativeLocationTargets = [],\r\n } = savedTargets || {};\r\n\r\n if (_.isEmpty(suggestedTargets) && _.isEmpty(savedTargets)) {\r\n return true;\r\n }\r\n\r\n if (\r\n quickOptionCountry\r\n && positiveLocationTargets.length === 1\r\n && positiveLocationTargets[0].location\r\n && positiveLocationTargets[0].location.Id === quickOptionCountry.Id\r\n && _.isEmpty(negativeLocationTargets)\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\nexport const getLocationSummary = (targets, i18n) => _.map(targets, (target) => {\r\n const {\r\n radiusDescription,\r\n locationDescription,\r\n } = target.getGridRowText(i18n);\r\n return `${radiusDescription} ${locationDescription}`;\r\n}).join('; ');\r\n\r\nexport const getLocationTargetTitleDetails = (includedLocations, excludedLocations, targetOption, i18n) => {\r\n if (targetOption === targetOptions.everywhere) {\r\n return i18n.getString(_TL_('Targeting everywhere.'));\r\n }\r\n\r\n const includedLocationsString = getLocationSummary(includedLocations, i18n);\r\n const excludedLocationsString = getLocationSummary(excludedLocations, i18n);\r\n\r\n let finalizedString = '';\r\n if (includedLocations.length) {\r\n finalizedString += `${i18n.getString(_TL_('Included locations: '))}${includedLocationsString}. `;\r\n }\r\n if (excludedLocationsString.length) {\r\n finalizedString += `${i18n.getString(_TL_('Excluded locations: '))}${excludedLocationsString}. `;\r\n }\r\n\r\n return finalizedString;\r\n};\r\n\r\nexport const getDemographicsDetails = (ageRanges, genderTypes, i18n) => {\r\n if (_.isEmpty(ageRanges) || _.isEmpty(genderTypes)) {\r\n return '';\r\n }\r\n\r\n const ages = formatAgeRanges(ageRanges, i18n);\r\n const genders = formatGenders(genderTypes, i18n);\r\n\r\n return `${ages}; ${genders}`;\r\n};\r\n\r\nexport const getSearchThemeDetails = (i18n, searchThemes) => {\r\n const selected = searchThemes && searchThemes.filter(item => item.Status !== 'Deleted');\r\n if (selected && selected.length > 0) {\r\n return selected.map(item => item.SearchTheme).join(',');\r\n }\r\n return i18n.getString(_TL_('No search themes added'));\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useCallback, useContext, useMemo, useState, useRef, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { LocationTargeting, targetOptions } from '@bingads-webui-campaign-react/location-targeting';\r\nimport {\r\n isLegacyLocationAndRadiusEqual,\r\n BingMapsContextProvider,\r\n getIsRadiusTarget as defaultGetIsRadiusTarget,\r\n TARGETING_TYPE,\r\n SEARCH_TYPE,\r\n LocationTarget,\r\n} from '@bingads-webui-react/bing-maps';\r\nimport { ServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { ScopeContext } from '@bingads-webui-react/scope-service';\r\nimport { useSearchLocationData } from '@bingads-webui-campaign-react/pmax-lite-data';\r\n\r\nimport { getLocationTargetsEditorStrings } from '../utils/common';\r\n\r\nconst BING_MAPS_API_KEY = 'AgRuCtepgsuuCYV9J6S6w1j8ay2JJwnu8f5EPgv4kkoJoIuka8yui-NzKrvlESTQ';\r\n\r\nexport const TargetingLocation = ({\r\n data,\r\n onDataChange,\r\n quickOption,\r\n logger,\r\n isLoading,\r\n}) => {\r\n const mapRef = useRef();\r\n const i18n = useContext(I18nContext);\r\n const { scope } = useContext(ScopeContext);\r\n const { cid, aid } = scope.values;\r\n\r\n const {\r\n isPeopleInLocationChecked = true,\r\n isPeopleSearchingForLocationChecked = true,\r\n selectedLocationOption,\r\n negativeLocationTargets = [],\r\n positiveLocationTargets = [],\r\n } = data;\r\n\r\n const serverContext = useContext(ServerContext);\r\n const { getLocation } = useSearchLocationData(aid, cid);\r\n\r\n // Save location targets selected under specific location option\r\n const [tempLocationTargets, setTempLocationTargets] = useState({\r\n positiveLocationTargets,\r\n negativeLocationTargets,\r\n });\r\n\r\n const locationTargetsEditorStrings = useMemo(() => (getLocationTargetsEditorStrings(i18n)), [i18n]);\r\n\r\n const optionConfigs = useMemo(() => ([\r\n {\r\n key: targetOptions.quick,\r\n // eslint-disable-next-line max-len\r\n text: quickOption.location && (i18n.getString(quickOption.location.ExpandedName) || quickOption.location.ExpandedName),\r\n },\r\n targetOptions.everywhere,\r\n targetOptions.specific,\r\n ]), [quickOption]);\r\n\r\n const onPositiveLocationTargetsChange = useCallback((newTargets) => {\r\n onDataChange({ positiveLocationTargets: newTargets });\r\n setTempLocationTargets(prev => ({\r\n ...prev,\r\n positiveLocationTargets: newTargets,\r\n }));\r\n }, [onDataChange]);\r\n\r\n const onNegativeLocationTargetsChange = useCallback((newTargets) => {\r\n onDataChange({ negativeLocationTargets: newTargets });\r\n setTempLocationTargets(prev => ({\r\n ...prev,\r\n positiveLocationTargets: newTargets,\r\n }));\r\n }, [onDataChange]);\r\n\r\n const onPeopleInLocationChange = useCallback((checked) => {\r\n onDataChange({\r\n isPeopleInLocationChecked: checked,\r\n });\r\n }, [onDataChange]);\r\n\r\n const onPeopleSearchingForLocationChange = useCallback((checked) => {\r\n onDataChange({\r\n isPeopleSearchingForLocationChecked: checked,\r\n });\r\n }, [onDataChange]);\r\n\r\n const onSelectedLocationOptionChange = useCallback((newOption) => {\r\n if (newOption === targetOptions.quick) {\r\n onDataChange({\r\n selectedLocationOption: newOption,\r\n positiveLocationTargets: [quickOption],\r\n locationsErrorString: null,\r\n isPeopleInLocationChecked: true,\r\n isPeopleSearchingForLocationChecked: true,\r\n });\r\n } else if (newOption === targetOptions.specific) {\r\n onDataChange({\r\n ...tempLocationTargets,\r\n selectedLocationOption: newOption,\r\n isPeopleInLocationChecked: true,\r\n isPeopleSearchingForLocationChecked: true,\r\n });\r\n } else if (newOption === targetOptions.everywhere) {\r\n onDataChange({\r\n positiveLocationTargets: [],\r\n negativeLocationTargets: [],\r\n selectedLocationOption: newOption,\r\n isPeopleInLocationChecked: true,\r\n isPeopleSearchingForLocationChecked: true,\r\n });\r\n }\r\n }, [onDataChange, quickOption, tempLocationTargets]);\r\n\r\n const onValidationComplete = useCallback((errorMessage) => {\r\n onDataChange({\r\n locationsErrorString: errorMessage,\r\n });\r\n }, [onDataChange]);\r\n\r\n const getIsRadiusTarget = useCallback((location, targetingType) => {\r\n if (targetingType) {\r\n return defaultGetIsRadiusTarget(location, targetingType) &&\r\n targetingType === TARGETING_TYPE.Included;\r\n }\r\n return defaultGetIsRadiusTarget(location, targetingType);\r\n }, []);\r\n\r\n const searchOptions = useMemo(() => ({\r\n getLocations: search => getLocation(search).then((result) => {\r\n logger.trace(`search location \"${search}\": ${JSON.stringify(result)}`);\r\n return result;\r\n }).catch((err) => {\r\n logger.error(`search location \"${search}\" with error: ${JSON.stringify(err)}`);\r\n throw new Error(err);\r\n }),\r\n }), [getLocation, logger]);\r\n\r\n useEffect(() => {\r\n if (\r\n selectedLocationOption === targetOptions.specific\r\n && (\r\n tempLocationTargets.positiveLocationTargets.length !== positiveLocationTargets.length\r\n || tempLocationTargets.negativeLocationTargets.length !== negativeLocationTargets.length\r\n )\r\n ) {\r\n setTempLocationTargets({\r\n positiveLocationTargets,\r\n negativeLocationTargets,\r\n });\r\n }\r\n }, [negativeLocationTargets, positiveLocationTargets, selectedLocationOption, tempLocationTargets]);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nTargetingLocation.propTypes = {\r\n data: PropTypes.shape({\r\n isPeopleInLocationChecked: PropTypes.bool,\r\n isPeopleSearchingForLocationChecked: PropTypes.bool,\r\n selectedLocationOption: PropTypes.string,\r\n negativeLocationTargets: PropTypes.arrayOf(PropTypes.instanceOf(LocationTarget)),\r\n positiveLocationTargets: PropTypes.arrayOf(PropTypes.instanceOf(LocationTarget)),\r\n }),\r\n onDataChange: PropTypes.func,\r\n quickOption: PropTypes.instanceOf(LocationTarget),\r\n logger: PropTypes.shape({\r\n trace: PropTypes.func.isRequired,\r\n error: PropTypes.func.isRequired,\r\n }),\r\n isLoading: PropTypes.bool,\r\n};\r\n\r\nTargetingLocation.defaultProps = {\r\n data: {\r\n isPeopleInLocationChecked: true,\r\n isPeopleSearchingForLocationChecked: true,\r\n selectedLocationOption: targetOptions.specific,\r\n negativeLocationTargets: [],\r\n positiveLocationTargets: [],\r\n },\r\n onDataChange: _.noop,\r\n quickOption: {},\r\n logger: {\r\n trace: _.noop,\r\n error: _.noop,\r\n },\r\n isLoading: false,\r\n};\r\n","import _ from 'underscore';\r\nimport { useContext, useMemo } from 'react';\r\nimport { InstrumentationContext } from '@bingads-webui-react/hoc-with-instrumentation';\r\n\r\nexport const useTargetInstrument = () => {\r\n const instrumentation = useContext(InstrumentationContext);\r\n\r\n const backupLogger = useMemo(() => ({\r\n trace: _.noop,\r\n error: _.noop,\r\n }), []);\r\n\r\n return useMemo(() => {\r\n if (instrumentation && instrumentation.pmaxLiteTargeting) {\r\n const scenario = instrumentation.pmaxLiteTargeting.create();\r\n return {\r\n locationLogger: scenario.locationTargeting.create(),\r\n audienceSignalLogger: scenario.audienceSignalTargeting.create(),\r\n searchThemesLogger: scenario.searchThemesTargeting.create(),\r\n };\r\n }\r\n return {\r\n locationLogger: backupLogger,\r\n audienceSignalLogger: backupLogger,\r\n searchThemesLogger: backupLogger,\r\n };\r\n }, [backupLogger, instrumentation]);\r\n};\r\n","import _ from 'underscore';\r\nimport { targetOptions } from '@bingads-webui-campaign-react/location-targeting';\r\n\r\nconst ERROR_MAP = {\r\n LOCATION_CONFLICT: {\r\n type: 'LOCATION_CONFLICT',\r\n errorString: _TL_('There are conflicts between your included and excluded locations. '),\r\n },\r\n NO_INTENT_SELECTED: {\r\n type: 'NO_INTENT_SELECTED',\r\n errorString: _TL_('Please select at least one intent. '),\r\n },\r\n EMPTY_LOCATION: {\r\n type: 'EMPTY_LOCATION',\r\n errorString: _TL_('Please select at least one location. '),\r\n },\r\n};\r\n\r\nexport const validateConflictLocations = (includedLocations, excludedLocations) => {\r\n let exclusiveIds = [];\r\n _.forEach(includedLocations, (locationTarget) => {\r\n const parentIds = _.pluck(locationTarget.ParentLocations, 'Id');\r\n exclusiveIds.push(locationTarget.LocationId, ...parentIds);\r\n });\r\n // TODO: Check if we need to remove duplicates, for example, targeting \"new york\" and \"US\" will cause duplication.\r\n exclusiveIds = _.uniq(exclusiveIds);\r\n\r\n const negativeIds = _.uniq(_.map(excludedLocations, locationTarget => locationTarget.LocationId));\r\n\r\n // exclusiveIds can't be shown in negativeIds\r\n if (_.union(exclusiveIds, negativeIds).length < exclusiveIds.length + negativeIds.length) {\r\n return ERROR_MAP.LOCATION_CONFLICT;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const validateIntent = (peopleInLocation, peopleSearchingForLocation) => {\r\n if (!peopleInLocation && !peopleSearchingForLocation) {\r\n return ERROR_MAP.NO_INTENT_SELECTED;\r\n }\r\n\r\n return false;\r\n};\r\n\r\n/**\r\n * Validate location targeting.\r\n * 1. Targeted locations can't be shown in excluded locations.\r\n * 2. At least one intent should be selected.\r\n * 3. At least one location should be selected.\r\n * @param {object} targets location targeting data\r\n * @returns {string} validation result\r\n */\r\nexport const validateLocations = ({\r\n negativeLocationTargets,\r\n positiveLocationTargets,\r\n isPeopleInLocationChecked,\r\n isPeopleSearchingForLocationChecked,\r\n selectedLocationOption,\r\n} = {}) => {\r\n const conflictError = validateConflictLocations(positiveLocationTargets, negativeLocationTargets);\r\n if (conflictError) {\r\n return conflictError.errorString;\r\n }\r\n\r\n const intentError = validateIntent(isPeopleInLocationChecked, isPeopleSearchingForLocationChecked);\r\n if (intentError) {\r\n return intentError.errorString;\r\n }\r\n\r\n if (\r\n selectedLocationOption === targetOptions.specific\r\n && _.isEmpty(negativeLocationTargets)\r\n && _.isEmpty(positiveLocationTargets)\r\n ) {\r\n return ERROR_MAP.EMPTY_LOCATION.errorString;\r\n }\r\n\r\n return '';\r\n};\r\n","import React, { useContext, useCallback, useEffect, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Collapse, TextTitle, TitleBarError, useCollapseState } from '@bingads-webui-campaign/wizard-jumbo-card';\r\n\r\nimport LocationIcon from '../media/location.svg';\r\n\r\nimport { TargetingLocation } from './targeting-location';\r\nimport { getLocationTargetTitleDetails } from '../utils/common';\r\nimport { useTargetInstrument } from '../use-target-instrument';\r\nimport { validateLocations } from '../utils/validation';\r\n\r\nexport const CollapsibleLocation = ({\r\n data,\r\n onDataChange,\r\n isLoading,\r\n}) => {\r\n const i18n = useContext(I18nContext);\r\n const { locationLogger } = useTargetInstrument();\r\n\r\n const { targets, quickOptionCountry } = data || {};\r\n const {\r\n negativeLocationTargets = [],\r\n positiveLocationTargets = [],\r\n selectedLocationOption,\r\n } = targets || {};\r\n\r\n const [\r\n allSections,\r\n expandedSections,\r\n setExpandedSections,\r\n ] = useCollapseState(['locations'], ['locations']);\r\n\r\n const locationDetails = useMemo(() => getLocationTargetTitleDetails(\r\n positiveLocationTargets,\r\n negativeLocationTargets,\r\n selectedLocationOption,\r\n i18n\r\n ), [i18n, negativeLocationTargets, positiveLocationTargets, selectedLocationOption]);\r\n\r\n const onLocationChange = useCallback((newTargets) => {\r\n onDataChange({\r\n data: prevData => ({\r\n ...prevData,\r\n targets: {\r\n ...prevData.targets,\r\n ...newTargets,\r\n },\r\n }),\r\n });\r\n }, [onDataChange]);\r\n\r\n const locationsErrorString = useMemo(() => {\r\n const errorString = validateLocations(targets);\r\n return errorString ? i18n.getString(errorString) : '';\r\n }, [i18n, targets]);\r\n\r\n // Update error string into state machine context\r\n useEffect(() => {\r\n onLocationChange({ locationError: locationsErrorString });\r\n }, [locationsErrorString, onLocationChange]);\r\n\r\n return (\r\n \r\n }\r\n error={!isLoading && }\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nCollapsibleLocation.propTypes = {\r\n data: PropTypes.shape({}).isRequired,\r\n onDataChange: PropTypes.func.isRequired,\r\n isLoading: PropTypes.bool,\r\n};\r\n\r\nCollapsibleLocation.defaultProps = {\r\n isLoading: false,\r\n};\r\n","/* eslint-disable max-len */\r\nimport _ from 'underscore';\r\nimport { AgeRanges, Genders } from '@bingads-webui-campaign-react/audience-demographic';\r\n\r\nconst ROOT = 'root';\r\n\r\nexport const getInterestNames = (name = '') => {\r\n if (typeof name !== 'string') {\r\n return { isValid: false };\r\n }\r\n\r\n const levels = name.split('/');\r\n\r\n // Name might start with \"/\", so the first element of levels might be empty string\r\n if (levels[0] === '') {\r\n levels.shift();\r\n }\r\n\r\n // If there are only one element after split, then it is a leaf node\r\n if (levels.length === 1) {\r\n return {\r\n name: `${ROOT}/${levels[0]}`,\r\n parent: undefined,\r\n isValid: true,\r\n };\r\n }\r\n\r\n // If there are more than one element after split, pick up the parent node and leaf node\r\n if (levels.length > 1) {\r\n return {\r\n name: `${levels[0]}/${levels[levels.length - 1]}`,\r\n parent: levels[0],\r\n isValid: true,\r\n };\r\n }\r\n\r\n return { isValid: false };\r\n};\r\n\r\nexport const getAudienceValue = (name = '') => {\r\n const array = name.split('/');\r\n return array[array.length - 1];\r\n};\r\n\r\nexport const formatAudienceListToFlatTree = (audiences = []) => {\r\n const hierarchy = {\r\n root: [],\r\n };\r\n const valueToAudience = {};\r\n const valueToFlatItem = {};\r\n\r\n audiences.forEach((audience) => {\r\n const {\r\n Reach, Name, Description, Id,\r\n } = audience;\r\n // The name includes parent value to avoid the a certain value is both child and parent, this will make Tree structure incorrect.\r\n // For example, \"Food\" is parent node and contains 6 children, it's also the child for \"Food & Groceries\"\r\n const { name, parent, isValid } = getInterestNames(Name);\r\n\r\n if (!isValid) {\r\n return;\r\n }\r\n\r\n const structure = {\r\n value: name,\r\n content: name,\r\n parentValue: parent,\r\n allowedCheck: true,\r\n showTips: true,\r\n description: Description,\r\n reachEstimation: Reach,\r\n id: Id,\r\n };\r\n\r\n if (parent === undefined) {\r\n hierarchy.root.push(structure);\r\n } else {\r\n if (!hierarchy[parent]) {\r\n hierarchy[parent] = [];\r\n }\r\n\r\n hierarchy[parent].push(structure);\r\n }\r\n\r\n valueToAudience[name] = audience;\r\n valueToFlatItem[name] = structure;\r\n });\r\n\r\n const formattedItems = [];\r\n Object.keys(hierarchy).forEach((parent) => {\r\n if (parent !== 'root') {\r\n // Push parent first\r\n formattedItems.push({\r\n value: parent,\r\n content: parent,\r\n allowedCheck: false,\r\n showTips: false,\r\n });\r\n // Push all children\r\n formattedItems.push(...hierarchy[parent]);\r\n } else {\r\n formattedItems.push(...hierarchy[parent]);\r\n }\r\n });\r\n\r\n return [formattedItems, valueToAudience, valueToFlatItem];\r\n};\r\n\r\nexport const dimensionFormatter = {\r\n ageRanges: ageRanges => (_.isEmpty(ageRanges) ? _.keys(AgeRanges) : ageRanges),\r\n genderTypes: genderTypes => (_.isEmpty(genderTypes) ? _.keys(Genders) : genderTypes),\r\n};\r\n\r\nexport const modelToViewModelForAudienceGroup = (audienceGroupModel) => {\r\n const audiences = _.chain(audienceGroupModel)\r\n .result('Dimensions', [])\r\n .filter(dimension => dimension.Type === 'Audience')\r\n .map(dimension => _.result(dimension, 'Audiences'))\r\n .flatten()\r\n .compact();\r\n\r\n // Leave for later features\r\n // const customerData = audiences\r\n // .filter(audience => audience.Type !== 'InMarket')\r\n // .value();\r\n\r\n const interests = audiences\r\n .filter(audience => audience.Type === 'InMarket')\r\n .map(audience => getInterestNames(audience.Name).name)\r\n .value();\r\n\r\n const ageRanges = _.chain(audienceGroupModel)\r\n .result('Dimensions', [])\r\n .filter(dimension => dimension.Type === 'Age')\r\n .first()\r\n .result('AgeRanges')\r\n .value();\r\n\r\n const genderTypes = _.chain(audienceGroupModel)\r\n .result('Dimensions', [])\r\n .filter(dimension => dimension.Type === 'Gender')\r\n .first()\r\n .result('GenderTypes')\r\n .value();\r\n\r\n return {\r\n interests,\r\n ageRanges: dimensionFormatter.ageRanges(ageRanges),\r\n genderTypes: dimensionFormatter.genderTypes(genderTypes),\r\n };\r\n};\r\n","import React from 'react';\r\nimport { Shimmer, ShimmerElementType } from '@fluentui/react';\r\n\r\nexport const radiusShimmerElement = [\r\n { type: ShimmerElementType.line, width: 20, height: 20 },\r\n { type: ShimmerElementType.gap, width: 5 },\r\n { type: ShimmerElementType.line, height: 16, width: 300 },\r\n { type: ShimmerElementType.gap, height: 20, width: '100%' },\r\n];\r\n\r\nexport const SectionShimmer = () => (\r\n
\r\n \r\n \r\n \r\n
\r\n);\r\n","/* eslint-disable max-lines */\r\n/* eslint-disable quote-props */\r\n/* eslint-disable quotes */\r\nexport const AUDIENCE_MAP = {\r\n \"Apparel & Accessories\": _TL_(\"Apparel & Accessories\"),\r\n \"Autos & Vehicles\": _TL_(\"Autos & Vehicles\"),\r\n \"Business Owner\": _TL_(\"Business Owner\"),\r\n \"Home & Garden\": _TL_(\"Home & Garden\"),\r\n \"Home & Garden Services\": _TL_(\"Home & Garden Services\"),\r\n \"Home Inspection Services\": _TL_(\"Home Inspection Services\"),\r\n \"Job Title\": _TL_(\"Job Title\"),\r\n \"Consultant\": _TL_(\"Consultant\"),\r\n \"Real Estate\": _TL_(\"Real Estate\"),\r\n \"Residential Properties\": _TL_(\"Residential Properties\"),\r\n \"Residential Properties (For Rent)\": _TL_(\"Residential Properties (For Rent)\"),\r\n \"Sports & Fitness\": _TL_(\"Sports & Fitness\"),\r\n \"Business and Industrial\": _TL_(\"Business and Industrial\"),\r\n \"Agriculture\": _TL_(\"Agriculture\"),\r\n \"Building Construction and Maintenance\": _TL_(\"Building Construction and Maintenance\"),\r\n \"Building Materials and Supplies\": _TL_(\"Building Materials and Supplies\"),\r\n \"Hardware Tools and Accessories\": _TL_(\"Hardware Tools and Accessories\"),\r\n \"Business Management\": _TL_(\"Business Management\"),\r\n \"Advertising and Marketing\": _TL_(\"Advertising and Marketing\"),\r\n \"Design and Engineering\": _TL_(\"Design and Engineering\"),\r\n \"Food Service Industry\": _TL_(\"Food Service Industry\"),\r\n \"Industrial Goods and Manufacturing\": _TL_(\"Industrial Goods and Manufacturing\"),\r\n \"Industrial Manufacturing\": _TL_(\"Industrial Manufacturing\"),\r\n \"Metals\": _TL_(\"Metals\"),\r\n \"Precious Metals\": _TL_(\"Precious Metals\"),\r\n \"Office\": _TL_(\"Office\"),\r\n \"Business Cards, Stationery and Forms\": _TL_(\"Business Cards, Stationery and Forms\"),\r\n \"Office Appliances\": _TL_(\"Office Appliances\"),\r\n \"Desktop Printers\": _TL_(\"Desktop Printers\"),\r\n \"Retail Trade\": _TL_(\"Retail Trade\"),\r\n \"Computers and Consumer Electronics\": _TL_(\"Computers and Consumer Electronics\"),\r\n \"Computers\": _TL_(\"Computers\"),\r\n \"Computer Hardware\": _TL_(\"Computer Hardware\"),\r\n \"Software\": _TL_(\"Software\"),\r\n \"Business and Productivity Software\": _TL_(\"Business and Productivity Software\"),\r\n \"E-Commerce and Retail Software\": _TL_(\"E-Commerce and Retail Software\"),\r\n \"Device Drivers\": _TL_(\"Device Drivers\"),\r\n \"Graphics and Multimedia Software\": _TL_(\"Graphics and Multimedia Software\"),\r\n \"Internet Software and Web Goodies\": _TL_(\"Internet Software and Web Goodies\"),\r\n \"Network Security Software\": _TL_(\"Network Security Software\"),\r\n \"Anti-Virus Software\": _TL_(\"Anti-Virus Software\"),\r\n \"Web Browsers\": _TL_(\"Web Browsers\"),\r\n \"Consumer Electronics\": _TL_(\"Consumer Electronics\"),\r\n \"Dining and Nightlife\": _TL_(\"Dining and Nightlife\"),\r\n \"Dining and Nightlife Reviews, Guides and Listings\": _TL_(\"Dining and Nightlife Reviews, Guides and Listings\"),\r\n \"Restaurants\": _TL_(\"Restaurants\"),\r\n \"Restaurant Take-out and Delivery\": _TL_(\"Restaurant Take-out and Delivery\"),\r\n \"Family and Community\": _TL_(\"Family and Community\"),\r\n \"Community Service and Social Organizations\": _TL_(\"Community Service and Social Organizations\"),\r\n \"Romance and Relationships\": _TL_(\"Romance and Relationships\"),\r\n \"Finance\": _TL_(\"Finance\"),\r\n \"Accounting and Auditing\": _TL_(\"Accounting and Auditing\"),\r\n \"Tax Preparation and Planning\": _TL_(\"Tax Preparation and Planning\"),\r\n \"Credit and Lending\": _TL_(\"Credit and Lending\"),\r\n \"Credit Cards\": _TL_(\"Credit Cards\"),\r\n \"Loans\": _TL_(\"Loans\"),\r\n \"Insurance\": _TL_(\"Insurance\"),\r\n \"Health Insurance\": _TL_(\"Health Insurance\"),\r\n \"Supplemental Health Insurance\": _TL_(\"Supplemental Health Insurance\"),\r\n \"Vehicle Insurance\": _TL_(\"Vehicle Insurance\"),\r\n \"Car Insurance\": _TL_(\"Car Insurance\"),\r\n \"Investing\": _TL_(\"Investing\"),\r\n \"Food and Groceries\": _TL_(\"Food and Groceries\"),\r\n \"Food\": _TL_(\"Food\"),\r\n \"Health\": _TL_(\"Health\"),\r\n \"Health Care Services\": _TL_(\"Health Care Services\"),\r\n \"Health Conditions and Concerns\": _TL_(\"Health Conditions and Concerns\"),\r\n \"Digestive Health and Disorders\": _TL_(\"Digestive Health and Disorders\"),\r\n \"Headache and Pain Management\": _TL_(\"Headache and Pain Management\"),\r\n \"Pharmacy\": _TL_(\"Pharmacy\"),\r\n \"Hobbies and Leisure\": _TL_(\"Hobbies and Leisure\"),\r\n \"Antiques and Collectibles\": _TL_(\"Antiques and Collectibles\"),\r\n \"Pets and Animals\": _TL_(\"Pets and Animals\"),\r\n \"Toys and Games\": _TL_(\"Toys and Games\"),\r\n \"Games\": _TL_(\"Games\"),\r\n \"Card Games\": _TL_(\"Card Games\"),\r\n \"Online Games and Puzzles\": _TL_(\"Online Games and Puzzles\"),\r\n \"Table Games\": _TL_(\"Table Games\"),\r\n \"Pool and Billiards\": _TL_(\"Pool and Billiards\"),\r\n \"Video Games, Consoles and Accessories\": _TL_(\"Video Games, Consoles and Accessories\"),\r\n \"Computer and Video Games\": _TL_(\"Computer and Video Games\"),\r\n \"Casual Games\": _TL_(\"Casual Games\"),\r\n \"Free-To-Play Games\": _TL_(\"Free-To-Play Games\"),\r\n \"Toys\": _TL_(\"Toys\"),\r\n \"Children's Dolls, Dress-Up Toys and Costumes\": _TL_(\"Children's Dolls, Dress-Up Toys and Costumes\"),\r\n \"Online Doll Dress-Up and Girl Games\": _TL_(\"Online Doll Dress-Up and Girl Games\"),\r\n \"Home and Garden\": _TL_(\"Home and Garden\"),\r\n \"Home Decor and Interior Decorating\": _TL_(\"Home Decor and Interior Decorating\"),\r\n \"Home Furniture\": _TL_(\"Home Furniture\"),\r\n \"Kitchen and Dining\": _TL_(\"Kitchen and Dining\"),\r\n \"Yard, Garden and Patio\": _TL_(\"Yard, Garden and Patio\"),\r\n \"Yard and Garden Equipment and Supplies\": _TL_(\"Yard and Garden Equipment and Supplies\"),\r\n \"Internet and Telecom\": _TL_(\"Internet and Telecom\"),\r\n \"Internet\": _TL_(\"Internet\"),\r\n \"Telephony\": _TL_(\"Telephony\"),\r\n \"Jobs and Education\": _TL_(\"Jobs and Education\"),\r\n \"Education and Training\": _TL_(\"Education and Training\"),\r\n \"Jobs and Careers\": _TL_(\"Jobs and Careers\"),\r\n \"Job Listings\": _TL_(\"Job Listings\"),\r\n \"Retail Jobs\": _TL_(\"Retail Jobs\"),\r\n \"Law and Government\": _TL_(\"Law and Government\"),\r\n \"Legal\": _TL_(\"Legal\"),\r\n \"Occasions and Gifts\": _TL_(\"Occasions and Gifts\"),\r\n \"Cards and Greetings\": _TL_(\"Cards and Greetings\"),\r\n \"Gifts\": _TL_(\"Gifts\"),\r\n \"Gift Delivery\": _TL_(\"Gift Delivery\"),\r\n \"Real Estate Listings\": _TL_(\"Real Estate Listings\"),\r\n \"Bank-Owned and Foreclosed Listings\": _TL_(\"Bank-Owned and Foreclosed Listings\"),\r\n \"Rental Listings\": _TL_(\"Rental Listings\"),\r\n \"Apartment Rentals\": _TL_(\"Apartment Rentals\"),\r\n \"Retailers and General Merchandise\": _TL_(\"Retailers and General Merchandise\"),\r\n \"Coupons and Rebates\": _TL_(\"Coupons and Rebates\"),\r\n \"Sports and Fitness\": _TL_(\"Sports and Fitness\"),\r\n \"Sporting Goods\": _TL_(\"Sporting Goods\"),\r\n \"Sports\": _TL_(\"Sports\"),\r\n \"Travel and Tourism\": _TL_(\"Travel and Tourism\"),\r\n \"Accommodations\": _TL_(\"Accommodations\"),\r\n \"Hotels, Motels and Resorts\": _TL_(\"Hotels, Motels and Resorts\"),\r\n \"Hotels\": _TL_(\"Hotels\"),\r\n \"Resorts\": _TL_(\"Resorts\"),\r\n \"Vacation Rentals\": _TL_(\"Vacation Rentals\"),\r\n \"Air Travel\": _TL_(\"Air Travel\"),\r\n \"Airline Tickets, Fares and Flights\": _TL_(\"Airline Tickets, Fares and Flights\"),\r\n \"Cruises and Cruise Services\": _TL_(\"Cruises and Cruise Services\"),\r\n \"Last Minute Travel\": _TL_(\"Last Minute Travel\"),\r\n \"Last Minute Airfares and Flights\": _TL_(\"Last Minute Airfares and Flights\"),\r\n \"Specialty Travel\": _TL_(\"Specialty Travel\"),\r\n \"Tourist Attractions and Destinations\": _TL_(\"Tourist Attractions and Destinations\"),\r\n \"Transportation and Excursions\": _TL_(\"Transportation and Excursions\"),\r\n \"Car Rental Services\": _TL_(\"Car Rental Services\"),\r\n \"Travel Booking Services\": _TL_(\"Travel Booking Services\"),\r\n \"Travel Media and Publications\": _TL_(\"Travel Media and Publications\"),\r\n \"City and Local Guides\": _TL_(\"City and Local Guides\"),\r\n \"Vehicles\": _TL_(\"Vehicles\"),\r\n \"Motor Vehicles\": _TL_(\"Motor Vehicles\"),\r\n \"Cars and Trucks\": _TL_(\"Cars and Trucks\"),\r\n \"Used Motor Vehicles\": _TL_(\"Used Motor Vehicles\"),\r\n \"Vehicle Parts and Accessories\": _TL_(\"Vehicle Parts and Accessories\"),\r\n \"Car Parts and Accessories\": _TL_(\"Car Parts and Accessories\"),\r\n \"Replacement Car Parts\": _TL_(\"Replacement Car Parts\"),\r\n \"Vehicle Tires and Tire Parts\": _TL_(\"Vehicle Tires and Tire Parts\"),\r\n \"Car and Truck Tires\": _TL_(\"Car and Truck Tires\"),\r\n \"Activewear\": _TL_(\"Activewear\"),\r\n \"Running Apparel\": _TL_(\"Running Apparel\"),\r\n \"Yoga Apparel\": _TL_(\"Yoga Apparel\"),\r\n \"Backpacks\": _TL_(\"Backpacks\"),\r\n \"Clothing\": _TL_(\"Clothing\"),\r\n \"Apparel\": _TL_(\"Apparel\"),\r\n \"Costumes\": _TL_(\"Costumes\"),\r\n \"Eyewear\": _TL_(\"Eyewear\"),\r\n \"Eyeglasses & Contact Lenses\": _TL_(\"Eyeglasses & Contact Lenses\"),\r\n \"Sunglasses\": _TL_(\"Sunglasses\"),\r\n \"Formal Wear\": _TL_(\"Formal Wear\"),\r\n \"Bridal Wear\": _TL_(\"Bridal Wear\"),\r\n \"Suits & Business Attire\": _TL_(\"Suits & Business Attire\"),\r\n \"Handbags\": _TL_(\"Handbags\"),\r\n \"Hats\": _TL_(\"Hats\"),\r\n \"Jewelry & Watches\": _TL_(\"Jewelry & Watches\"),\r\n \"Fine Jewelry\": _TL_(\"Fine Jewelry\"),\r\n \"Necklaces\": _TL_(\"Necklaces\"),\r\n \"Watches\": _TL_(\"Watches\"),\r\n \"Wedding & Engagement Rings\": _TL_(\"Wedding & Engagement Rings\"),\r\n \"Lingerie\": _TL_(\"Lingerie\"),\r\n \"Luggage\": _TL_(\"Luggage\"),\r\n \"Men's Apparel\": _TL_(\"Men's Apparel\"),\r\n \"Outerwear\": _TL_(\"Outerwear\"),\r\n \"Pants\": _TL_(\"Pants\"),\r\n \"Perfumes & Fragrances\": _TL_(\"Perfumes & Fragrances\"),\r\n \"Shirts & Tops\": _TL_(\"Shirts & Tops\"),\r\n \"Shoes\": _TL_(\"Shoes\"),\r\n \"Athletic Shoes\": _TL_(\"Athletic Shoes\"),\r\n \"Boots\": _TL_(\"Boots\"),\r\n \"Dress Shoes\": _TL_(\"Dress Shoes\"),\r\n \"Socks\": _TL_(\"Socks\"),\r\n \"Swimwear\": _TL_(\"Swimwear\"),\r\n \"Underwear\": _TL_(\"Underwear\"),\r\n \"Wallets, Briefcases & Leather Goods\": _TL_(\"Wallets, Briefcases & Leather Goods\"),\r\n \"Wallets\": _TL_(\"Wallets\"),\r\n \"Women's Apparel\": _TL_(\"Women's Apparel\"),\r\n \"Women's Clothing\": _TL_(\"Women's Clothing\"),\r\n \"Dresses\": _TL_(\"Dresses\"),\r\n \"Arts & Crafts Supplies\": _TL_(\"Arts & Crafts Supplies\"),\r\n \"Arts & Entertainment\": _TL_(\"Arts & Entertainment\"),\r\n \"Comics & Graphic Novels\": _TL_(\"Comics & Graphic Novels\"),\r\n \"Comic Strips\": _TL_(\"Comic Strips\"),\r\n \"Manga\": _TL_(\"Manga\"),\r\n \"Entertainment Industry\": _TL_(\"Entertainment Industry\"),\r\n \"Film & TV Industry\": _TL_(\"Film & TV Industry\"),\r\n \"TV Broadcasting\": _TL_(\"TV Broadcasting\"),\r\n \"TV Shows & Programs\": _TL_(\"TV Shows & Programs\"),\r\n \"TV Comedies\": _TL_(\"TV Comedies\"),\r\n \"TV Game Shows\": _TL_(\"TV Game Shows\"),\r\n \"TV Reality Shows\": _TL_(\"TV Reality Shows\"),\r\n \"TV Talk Shows\": _TL_(\"TV Talk Shows\"),\r\n \"Event Entertainment\": _TL_(\"Event Entertainment\"),\r\n \"Movies & Films\": _TL_(\"Movies & Films\"),\r\n \"Arts and Entertainment\": _TL_(\"Arts and Entertainment\"),\r\n \"Movies and Films\": _TL_(\"Movies and Films\"),\r\n \"Action & Adventure Films\": _TL_(\"Action & Adventure Films\"),\r\n \"Superhero Films\": _TL_(\"Superhero Films\"),\r\n \"Animated Films\": _TL_(\"Animated Films\"),\r\n \"Bollywood & South Asian Film\": _TL_(\"Bollywood & South Asian Film\"),\r\n \"Drama Films\": _TL_(\"Drama Films\"),\r\n \"Musical Films\": _TL_(\"Musical Films\"),\r\n \"Science Fiction & Fantasy Films\": _TL_(\"Science Fiction & Fantasy Films\"),\r\n \"Music & Audio\": _TL_(\"Music & Audio\"),\r\n \"Music and Audio\": _TL_(\"Music and Audio\"),\r\n \"Classical Music\": _TL_(\"Classical Music\"),\r\n \"Country Music\": _TL_(\"Country Music\"),\r\n \"Dance & Electronic Music\": _TL_(\"Dance & Electronic Music\"),\r\n \"Jazz & Blues\": _TL_(\"Jazz & Blues\"),\r\n \"Blues\": _TL_(\"Blues\"),\r\n \"Jazz\": _TL_(\"Jazz\"),\r\n \"Music Videos\": _TL_(\"Music Videos\"),\r\n \"Musical Instruments & Equipment\": _TL_(\"Musical Instruments & Equipment\"),\r\n \"Drums & Percussion\": _TL_(\"Drums & Percussion\"),\r\n \"Guitars\": _TL_(\"Guitars\"),\r\n \"Pop Music\": _TL_(\"Pop Music\"),\r\n \"Religious Music\": _TL_(\"Religious Music\"),\r\n \"Christian & Gospel Music\": _TL_(\"Christian & Gospel Music\"),\r\n \"Rock Music\": _TL_(\"Rock Music\"),\r\n \"Metal (Music)\": _TL_(\"Metal (Music)\"),\r\n \"Urban & Hip-Hop\": _TL_(\"Urban & Hip-Hop\"),\r\n \"Rap & Hip-Hop\": _TL_(\"Rap & Hip-Hop\"),\r\n \"Soul & R&B\": _TL_(\"Soul & R&B\"),\r\n \"Sports Entertainment\": _TL_(\"Sports Entertainment\"),\r\n \"Visual Art & Design\": _TL_(\"Visual Art & Design\"),\r\n \"Painting\": _TL_(\"Painting\"),\r\n \"Auto Parts & Accessories\": _TL_(\"Auto Parts & Accessories\"),\r\n \"Auto Exterior Parts & Accessories\": _TL_(\"Auto Exterior Parts & Accessories\"),\r\n \"Auto Interior Parts & Accessories\": _TL_(\"Auto Interior Parts & Accessories\"),\r\n \"Automotive Electronic Components\": _TL_(\"Automotive Electronic Components\"),\r\n \"Car Batteries\": _TL_(\"Car Batteries\"),\r\n \"Car Brakes\": _TL_(\"Car Brakes\"),\r\n \"Engine & Transmission\": _TL_(\"Engine & Transmission\"),\r\n \"High Performance & Aftermarket Auto Parts\": _TL_(\"High Performance & Aftermarket Auto Parts\"),\r\n \"Replacement Auto Parts\": _TL_(\"Replacement Auto Parts\"),\r\n \"Wheels & Tires\": _TL_(\"Wheels & Tires\"),\r\n \"Auto Repair & Maintenance\": _TL_(\"Auto Repair & Maintenance\"),\r\n \"Brake Service & Repair\": _TL_(\"Brake Service & Repair\"),\r\n \"Collision & Auto Body Repair\": _TL_(\"Collision & Auto Body Repair\"),\r\n \"Glass Repair & Replacement\": _TL_(\"Glass Repair & Replacement\"),\r\n \"Oil Changes\": _TL_(\"Oil Changes\"),\r\n \"Transmission Repair\": _TL_(\"Transmission Repair\"),\r\n \"Cars & Trucks\": _TL_(\"Cars & Trucks\"),\r\n \"Motor Vehicles (New)\": _TL_(\"Motor Vehicles (New)\"),\r\n \"Motor Vehicles (Used)\": _TL_(\"Motor Vehicles (Used)\"),\r\n \"Motor Vehicles by Brand\": _TL_(\"Motor Vehicles by Brand\"),\r\n \"Acura\": _TL_(\"Acura\"),\r\n \"Alfa Romeo\": _TL_(\"Alfa Romeo\"),\r\n \"Audi\": _TL_(\"Audi\"),\r\n \"BMW\": _TL_(\"BMW\"),\r\n \"Buick\": _TL_(\"Buick\"),\r\n \"Cadillac\": _TL_(\"Cadillac\"),\r\n \"Chevrolet\": _TL_(\"Chevrolet\"),\r\n \"Chrysler\": _TL_(\"Chrysler\"),\r\n \"Citroën\": _TL_(\"Citroën\"),\r\n \"Dacia\": _TL_(\"Dacia\"),\r\n \"Dodge\": _TL_(\"Dodge\"),\r\n \"Fiat\": _TL_(\"Fiat\"),\r\n \"Ford\": _TL_(\"Ford\"),\r\n \"GMC\": _TL_(\"GMC\"),\r\n \"Honda\": _TL_(\"Honda\"),\r\n \"Hyundai\": _TL_(\"Hyundai\"),\r\n \"Infiniti\": _TL_(\"Infiniti\"),\r\n \"Isuzu\": _TL_(\"Isuzu\"),\r\n \"Jaguar\": _TL_(\"Jaguar\"),\r\n \"Jeep\": _TL_(\"Jeep\"),\r\n \"Kia\": _TL_(\"Kia\"),\r\n \"Land Rover\": _TL_(\"Land Rover\"),\r\n \"Lexus\": _TL_(\"Lexus\"),\r\n \"Lincoln\": _TL_(\"Lincoln\"),\r\n \"Maserati\": _TL_(\"Maserati\"),\r\n \"Mazda\": _TL_(\"Mazda\"),\r\n \"Mercedes-Benz\": _TL_(\"Mercedes-Benz\"),\r\n \"Mini\": _TL_(\"Mini\"),\r\n \"Mitsubishi\": _TL_(\"Mitsubishi\"),\r\n \"Nissan\": _TL_(\"Nissan\"),\r\n \"Peugeot\": _TL_(\"Peugeot\"),\r\n \"Porsche\": _TL_(\"Porsche\"),\r\n \"Ram Trucks\": _TL_(\"Ram Trucks\"),\r\n \"Renault\": _TL_(\"Renault\"),\r\n \"SEAT\": _TL_(\"SEAT\"),\r\n \"Skoda\": _TL_(\"Skoda\"),\r\n \"Smart\": _TL_(\"Smart\"),\r\n \"Subaru\": _TL_(\"Subaru\"),\r\n \"Suzuki\": _TL_(\"Suzuki\"),\r\n \"Toyota\": _TL_(\"Toyota\"),\r\n \"Vauxhall-Opel\": _TL_(\"Vauxhall-Opel\"),\r\n \"Volkswagen\": _TL_(\"Volkswagen\"),\r\n \"Volvo\": _TL_(\"Volvo\"),\r\n \"Motor Vehicles by Type\": _TL_(\"Motor Vehicles by Type\"),\r\n \"Classic Vehicles\": _TL_(\"Classic Vehicles\"),\r\n \"Compact Cars\": _TL_(\"Compact Cars\"),\r\n \"Compact Cars (New)\": _TL_(\"Compact Cars (New)\"),\r\n \"Compact Cars (Used)\": _TL_(\"Compact Cars (Used)\"),\r\n \"Convertibles\": _TL_(\"Convertibles\"),\r\n \"Convertibles (New)\": _TL_(\"Convertibles (New)\"),\r\n \"Convertibles (Used)\": _TL_(\"Convertibles (Used)\"),\r\n \"Coupes\": _TL_(\"Coupes\"),\r\n \"Coupes (New)\": _TL_(\"Coupes (New)\"),\r\n \"Coupes (Used)\": _TL_(\"Coupes (Used)\"),\r\n \"Crossovers\": _TL_(\"Crossovers\"),\r\n \"Crossovers (New)\": _TL_(\"Crossovers (New)\"),\r\n \"Crossovers (Used)\": _TL_(\"Crossovers (Used)\"),\r\n \"Diesel Vehicles\": _TL_(\"Diesel Vehicles\"),\r\n \"Hatchbacks\": _TL_(\"Hatchbacks\"),\r\n \"Hatchbacks (New)\": _TL_(\"Hatchbacks (New)\"),\r\n \"Hatchbacks (Used)\": _TL_(\"Hatchbacks (Used)\"),\r\n \"Hybrid & Alternative Vehicles\": _TL_(\"Hybrid & Alternative Vehicles\"),\r\n \"Hybrid & Alternative Vehicles (New)\": _TL_(\"Hybrid & Alternative Vehicles (New)\"),\r\n \"Hybrid & Alternative Vehicles (Used)\": _TL_(\"Hybrid & Alternative Vehicles (Used)\"),\r\n \"Luxury Vehicles\": _TL_(\"Luxury Vehicles\"),\r\n \"Luxury Vehicles (New)\": _TL_(\"Luxury Vehicles (New)\"),\r\n \"Luxury Vehicles (Used)\": _TL_(\"Luxury Vehicles (Used)\"),\r\n \"Microcars & Subcompacts\": _TL_(\"Microcars & Subcompacts\"),\r\n \"Microcars & Subcompacts (New)\": _TL_(\"Microcars & Subcompacts (New)\"),\r\n \"Microcars & Subcompacts (Used)\": _TL_(\"Microcars & Subcompacts (Used)\"),\r\n \"Motorcycles\": _TL_(\"Motorcycles\"),\r\n \"Motorcycles (New)\": _TL_(\"Motorcycles (New)\"),\r\n \"Motorcycles (Used)\": _TL_(\"Motorcycles (Used)\"),\r\n \"Off-Road Vehicles\": _TL_(\"Off-Road Vehicles\"),\r\n \"Off-Road Vehicles (New)\": _TL_(\"Off-Road Vehicles (New)\"),\r\n \"Off-Road Vehicles (Used)\": _TL_(\"Off-Road Vehicles (Used)\"),\r\n \"Pickup Trucks\": _TL_(\"Pickup Trucks\"),\r\n \"Pickup Trucks (New)\": _TL_(\"Pickup Trucks (New)\"),\r\n \"Pickup Trucks (Used)\": _TL_(\"Pickup Trucks (Used)\"),\r\n \"Scooters & Mopeds\": _TL_(\"Scooters & Mopeds\"),\r\n \"Scooters & Mopeds (New)\": _TL_(\"Scooters & Mopeds (New)\"),\r\n \"Scooters & Mopeds (Used)\": _TL_(\"Scooters & Mopeds (Used)\"),\r\n \"Sedans\": _TL_(\"Sedans\"),\r\n \"Sedans (New)\": _TL_(\"Sedans (New)\"),\r\n \"Sports Cars\": _TL_(\"Sports Cars\"),\r\n \"Sports Cars (New)\": _TL_(\"Sports Cars (New)\"),\r\n \"Sports Cars (Used)\": _TL_(\"Sports Cars (Used)\"),\r\n \"Station Wagons\": _TL_(\"Station Wagons\"),\r\n \"Station Wagons (New)\": _TL_(\"Station Wagons (New)\"),\r\n \"Station Wagons (Used)\": _TL_(\"Station Wagons (Used)\"),\r\n \"SUVs\": _TL_(\"SUVs\"),\r\n \"SUVs (New)\": _TL_(\"SUVs (New)\"),\r\n \"Vans & Minivans\": _TL_(\"Vans & Minivans\"),\r\n \"Vans & Minivans (New)\": _TL_(\"Vans & Minivans (New)\"),\r\n \"Vans & Minivans (Used)\": _TL_(\"Vans & Minivans (Used)\"),\r\n \"Vehicle Parts & Accessories\": _TL_(\"Vehicle Parts & Accessories\"),\r\n \"Car Parts & Accessories\": _TL_(\"Car Parts & Accessories\"),\r\n \"Vehicles (Other)\": _TL_(\"Vehicles (Other)\"),\r\n \"Bicycles & Accessories\": _TL_(\"Bicycles & Accessories\"),\r\n \"Boats & Watercraft\": _TL_(\"Boats & Watercraft\"),\r\n \"Campers & RVs\": _TL_(\"Campers & RVs\"),\r\n \"Commercial Vehicles\": _TL_(\"Commercial Vehicles\"),\r\n \"Baby & Children's Products\": _TL_(\"Baby & Children's Products\"),\r\n \"Baby & Children's Apparel\": _TL_(\"Baby & Children's Apparel\"),\r\n \"Baby & Toddler Apparel\": _TL_(\"Baby & Toddler Apparel\"),\r\n \"Children's Apparel\": _TL_(\"Children's Apparel\"),\r\n \"Child Car Seats\": _TL_(\"Child Car Seats\"),\r\n \"Childcare & Education\": _TL_(\"Childcare & Education\"),\r\n \"Childcare\": _TL_(\"Childcare\"),\r\n \"Early Childhood Education\": _TL_(\"Early Childhood Education\"),\r\n \"Diapers & Baby Hygiene Products\": _TL_(\"Diapers & Baby Hygiene Products\"),\r\n \"Infant & Toddler Feeding\": _TL_(\"Infant & Toddler Feeding\"),\r\n \"Infant Feeding Supplies\": _TL_(\"Infant Feeding Supplies\"),\r\n \"Toddler Meals\": _TL_(\"Toddler Meals\"),\r\n \"Strollers & Baby Carriages\": _TL_(\"Strollers & Baby Carriages\"),\r\n \"Toys & Games\": _TL_(\"Toys & Games\"),\r\n \"Beauty & Personal Care\": _TL_(\"Beauty & Personal Care\"),\r\n \"Body Art\": _TL_(\"Body Art\"),\r\n \"Fashion & Style\": _TL_(\"Fashion & Style\"),\r\n \"Fashion Designers & Collections\": _TL_(\"Fashion Designers & Collections\"),\r\n \"Beauty Products & Services\": _TL_(\"Beauty Products & Services\"),\r\n \"Bath & Body Products\": _TL_(\"Bath & Body Products\"),\r\n \"Hair Care Products\": _TL_(\"Hair Care Products\"),\r\n \"Makeup & Cosmetics\": _TL_(\"Makeup & Cosmetics\"),\r\n \"Eye Makeup\": _TL_(\"Eye Makeup\"),\r\n \"Face Makeup\": _TL_(\"Face Makeup\"),\r\n \"Lip Makeup\": _TL_(\"Lip Makeup\"),\r\n \"Nail Care Products\": _TL_(\"Nail Care Products\"),\r\n \"Skin Care Products\": _TL_(\"Skin Care Products\"),\r\n \"Anti-Aging Skin Care Products\": _TL_(\"Anti-Aging Skin Care Products\"),\r\n \"Face Lotions & Moisturizers\": _TL_(\"Face Lotions & Moisturizers\"),\r\n \"Facial Cleansers & Makeup Removers\": _TL_(\"Facial Cleansers & Makeup Removers\"),\r\n \"Spas & Beauty Services\": _TL_(\"Spas & Beauty Services\"),\r\n \"Manicures & Pedicures\": _TL_(\"Manicures & Pedicures\"),\r\n \"Tanning & Sun Care Products\": _TL_(\"Tanning & Sun Care Products\"),\r\n \"Business & Industrial Products\": _TL_(\"Business & Industrial Products\"),\r\n \"Food Service Equipment\": _TL_(\"Food Service Equipment\"),\r\n \"Industrial Goods & Manufacturing\": _TL_(\"Industrial Goods & Manufacturing\"),\r\n \"Material Handling Equipment\": _TL_(\"Material Handling Equipment\"),\r\n \"Signage\": _TL_(\"Signage\"),\r\n \"Work Safety Protective Gear\": _TL_(\"Work Safety Protective Gear\"),\r\n \"Business & Industrial\": _TL_(\"Business & Industrial\"),\r\n \"Aerospace & Defense\": _TL_(\"Aerospace & Defense\"),\r\n \"Design & Engineering\": _TL_(\"Design & Engineering\"),\r\n \"Graphic Design\": _TL_(\"Graphic Design\"),\r\n \"Scientific Equipment & Services\": _TL_(\"Scientific Equipment & Services\"),\r\n \"Business Services\": _TL_(\"Business Services\"),\r\n \"Advertising & Marketing Services\": _TL_(\"Advertising & Marketing Services\"),\r\n \"Email Marketing Services\": _TL_(\"Email Marketing Services\"),\r\n \"SEO & SEM Services\": _TL_(\"SEO & SEM Services\"),\r\n \"Building Construction & Maintenance\": _TL_(\"Building Construction & Maintenance\"),\r\n \"Building Materials & Supplies\": _TL_(\"Building Materials & Supplies\"),\r\n \"Business Financial Services\": _TL_(\"Business Financial Services\"),\r\n \"Business Printing & Document Services\": _TL_(\"Business Printing & Document Services\"),\r\n \"Business Technology\": _TL_(\"Business Technology\"),\r\n \"Business & Productivity Software\": _TL_(\"Business & Productivity Software\"),\r\n \"E-Commerce & Retail Software\": _TL_(\"E-Commerce & Retail Software\"),\r\n \"Enterprise Software\": _TL_(\"Enterprise Software\"),\r\n \"Collaboration & Conferencing Tools\": _TL_(\"Collaboration & Conferencing Tools\"),\r\n \"CRM Solutions\": _TL_(\"CRM Solutions\"),\r\n \"ERP Solutions\": _TL_(\"ERP Solutions\"),\r\n \"Helpdesk & Customer Support Solutions\": _TL_(\"Helpdesk & Customer Support Solutions\"),\r\n \"Network Systems & Services\": _TL_(\"Network Systems & Services\"),\r\n \"Hosted Data & Cloud Storage\": _TL_(\"Hosted Data & Cloud Storage\"),\r\n \"Network & Enterprise Security\": _TL_(\"Network & Enterprise Security\"),\r\n \"Network Equipment & Virtualization\": _TL_(\"Network Equipment & Virtualization\"),\r\n \"Network Management\": _TL_(\"Network Management\"),\r\n \"Web Services\": _TL_(\"Web Services\"),\r\n \"Domain Registration\": _TL_(\"Domain Registration\"),\r\n \"Web Design & Development\": _TL_(\"Web Design & Development\"),\r\n \"Web Hosting\": _TL_(\"Web Hosting\"),\r\n \"Corporate Event Planning\": _TL_(\"Corporate Event Planning\"),\r\n \"Office Supplies\": _TL_(\"Office Supplies\"),\r\n \"Business Cards, Stationery & Forms\": _TL_(\"Business Cards, Stationery & Forms\"),\r\n \"Office Furniture\": _TL_(\"Office Furniture\"),\r\n \"Payment Processing & Merchant Services\": _TL_(\"Payment Processing & Merchant Services\"),\r\n \"Payroll Services\": _TL_(\"Payroll Services\"),\r\n \"Physical Security & Access Control\": _TL_(\"Physical Security & Access Control\"),\r\n \"Staffing & Recruitment Services\": _TL_(\"Staffing & Recruitment Services\"),\r\n \"Company Size\": _TL_(\"Company Size\"),\r\n \"1-10 Employees\": _TL_(\"1-10 Employees\"),\r\n \"Company size\": _TL_(\"Company size\"),\r\n \"1-10 employees\": _TL_(\"1-10 employees\"),\r\n \"10,001+ Employees\": _TL_(\"10,001+ Employees\"),\r\n \"10,001+ employees\": _TL_(\"10,001+ employees\"),\r\n \"1001-5000 Employees\": _TL_(\"1001-5000 Employees\"),\r\n \"1001-5000 employees\": _TL_(\"1001-5000 employees\"),\r\n \"11-50 Employees\": _TL_(\"11-50 Employees\"),\r\n \"11-50 employees\": _TL_(\"11-50 employees\"),\r\n \"201-500 Employees\": _TL_(\"201-500 Employees\"),\r\n \"201-500 employees\": _TL_(\"201-500 employees\"),\r\n \"5001-10,000 Employees\": _TL_(\"5001-10,000 Employees\"),\r\n \"5001-10,000 employees\": _TL_(\"5001-10,000 employees\"),\r\n \"501-1000 Employees\": _TL_(\"501-1000 Employees\"),\r\n \"501-1000 employees\": _TL_(\"501-1000 employees\"),\r\n \"51-200 Employees\": _TL_(\"51-200 Employees\"),\r\n \"51-200 employees\": _TL_(\"51-200 employees\"),\r\n \"Self-Employed\": _TL_(\"Self-Employed\"),\r\n \"Self-employed\": _TL_(\"Self-employed\"),\r\n \"Computers & Consumer Electronics\": _TL_(\"Computers & Consumer Electronics\"),\r\n \"Computer Components\": _TL_(\"Computer Components\"),\r\n \"Computer Processors\": _TL_(\"Computer Processors\"),\r\n \"Computer Memory & Storage Devices\": _TL_(\"Computer Memory & Storage Devices\"),\r\n \"External Hard Drives\": _TL_(\"External Hard Drives\"),\r\n \"Computer Monitors & Projectors\": _TL_(\"Computer Monitors & Projectors\"),\r\n \"Electronic Projectors\": _TL_(\"Electronic Projectors\"),\r\n \"Computer Servers\": _TL_(\"Computer Servers\"),\r\n \"Freeware & Shareware\": _TL_(\"Freeware & Shareware\"),\r\n \"Internet Software & Web Goodies\": _TL_(\"Internet Software & Web Goodies\"),\r\n \"GPS & Navigation\": _TL_(\"GPS & Navigation\"),\r\n \"GPS Devices\": _TL_(\"GPS Devices\"),\r\n \"Portable Media Devices\": _TL_(\"Portable Media Devices\"),\r\n \"Digital Book Readers\": _TL_(\"Digital Book Readers\"),\r\n \"Computers & Peripherals\": _TL_(\"Computers & Peripherals\"),\r\n \"Computer Accessories & Components\": _TL_(\"Computer Accessories & Components\"),\r\n \"Computer Monitors\": _TL_(\"Computer Monitors\"),\r\n \"Memory & Storage\": _TL_(\"Memory & Storage\"),\r\n \"Desktop Computers\": _TL_(\"Desktop Computers\"),\r\n \"Laptops & Notebooks\": _TL_(\"Laptops & Notebooks\"),\r\n \"Tablets & Ultraportable Devices\": _TL_(\"Tablets & Ultraportable Devices\"),\r\n \"Printers, Scanners & Faxes\": _TL_(\"Printers, Scanners & Faxes\"),\r\n \"Printers\": _TL_(\"Printers\"),\r\n \"Audio\": _TL_(\"Audio\"),\r\n \"Car Audio\": _TL_(\"Car Audio\"),\r\n \"Headphones & Headsets\": _TL_(\"Headphones & Headsets\"),\r\n \"MP3 Players\": _TL_(\"MP3 Players\"),\r\n \"Pro Musician & DJ Equipment\": _TL_(\"Pro Musician & DJ Equipment\"),\r\n \"Speakers\": _TL_(\"Speakers\"),\r\n \"Stereo Systems\": _TL_(\"Stereo Systems\"),\r\n \"Batteries\": _TL_(\"Batteries\"),\r\n \"Camcorders\": _TL_(\"Camcorders\"),\r\n \"Cameras\": _TL_(\"Cameras\"),\r\n \"Camera Lenses\": _TL_(\"Camera Lenses\"),\r\n \"Digital SLRs\": _TL_(\"Digital SLRs\"),\r\n \"Point & Shoots\": _TL_(\"Point & Shoots\"),\r\n \"DVD & Blu-Ray Players\": _TL_(\"DVD & Blu-Ray Players\"),\r\n \"Game Consoles\": _TL_(\"Game Consoles\"),\r\n \"Nintendo Consoles\": _TL_(\"Nintendo Consoles\"),\r\n \"Nintendo (Wii)\": _TL_(\"Nintendo (Wii)\"),\r\n \"Sony PlayStation\": _TL_(\"Sony PlayStation\"),\r\n \"Xbox\": _TL_(\"Xbox\"),\r\n \"Home Theater Systems\": _TL_(\"Home Theater Systems\"),\r\n \"Mobile Phones\": _TL_(\"Mobile Phones\"),\r\n \"Android Phones\": _TL_(\"Android Phones\"),\r\n \"iOS Phones\": _TL_(\"iOS Phones\"),\r\n \"Power Adapters & Chargers\": _TL_(\"Power Adapters & Chargers\"),\r\n \"Televisions\": _TL_(\"Televisions\"),\r\n \"HDTVs\": _TL_(\"HDTVs\"),\r\n \"LCD TVs\": _TL_(\"LCD TVs\"),\r\n \"Plasma TVs\": _TL_(\"Plasma TVs\"),\r\n \"Dating Services\": _TL_(\"Dating Services\"),\r\n \"Dining & Nightlife\": _TL_(\"Dining & Nightlife\"),\r\n \"Nightclubs, Bars & Music Clubs\": _TL_(\"Nightclubs, Bars & Music Clubs\"),\r\n \"Dine-In Restaurants\": _TL_(\"Dine-In Restaurants\"),\r\n \"Fast Food Restaurants\": _TL_(\"Fast Food Restaurants\"),\r\n \"Education\": _TL_(\"Education\"),\r\n \"Foreign Language Study\": _TL_(\"Foreign Language Study\"),\r\n \"Post-Secondary Education\": _TL_(\"Post-Secondary Education\"),\r\n \"Arts & Design Education\": _TL_(\"Arts & Design Education\"),\r\n \"Business Education\": _TL_(\"Business Education\"),\r\n \"Cosmetology Education & Training\": _TL_(\"Cosmetology Education & Training\"),\r\n \"Health Care Education\": _TL_(\"Health Care Education\"),\r\n \"Nursing Education\": _TL_(\"Nursing Education\"),\r\n \"Technology Education\": _TL_(\"Technology Education\"),\r\n \"Primary & Secondary Schools (K-12)\": _TL_(\"Primary & Secondary Schools (K-12)\"),\r\n \"Study Abroad Programs\": _TL_(\"Study Abroad Programs\"),\r\n \"Test Preparation & Tutoring\": _TL_(\"Test Preparation & Tutoring\"),\r\n \"Employment\": _TL_(\"Employment\"),\r\n \"Accounting & Finance Jobs\": _TL_(\"Accounting & Finance Jobs\"),\r\n \"Career Consulting Services\": _TL_(\"Career Consulting Services\"),\r\n \"Clerical & Administrative Jobs\": _TL_(\"Clerical & Administrative Jobs\"),\r\n \"Education Jobs\": _TL_(\"Education Jobs\"),\r\n \"Executive & Management Jobs\": _TL_(\"Executive & Management Jobs\"),\r\n \"Government & Public Sector Jobs\": _TL_(\"Government & Public Sector Jobs\"),\r\n \"Health & Medical Jobs\": _TL_(\"Health & Medical Jobs\"),\r\n \"Internships\": _TL_(\"Internships\"),\r\n \"IT & Technical Jobs\": _TL_(\"IT & Technical Jobs\"),\r\n \"Jobs & Careers\": _TL_(\"Jobs & Careers\"),\r\n \"Legal Jobs\": _TL_(\"Legal Jobs\"),\r\n \"Resumes & Portfolios\": _TL_(\"Resumes & Portfolios\"),\r\n \"Sales & Marketing Jobs\": _TL_(\"Sales & Marketing Jobs\"),\r\n \"Temporary & Seasonal Jobs\": _TL_(\"Temporary & Seasonal Jobs\"),\r\n \"Event Tickets\": _TL_(\"Event Tickets\"),\r\n \"Concert & Music Festival Tickets\": _TL_(\"Concert & Music Festival Tickets\"),\r\n \"Performing Arts Tickets\": _TL_(\"Performing Arts Tickets\"),\r\n \"Broadway & Theater Tickets\": _TL_(\"Broadway & Theater Tickets\"),\r\n \"Sports Tickets\": _TL_(\"Sports Tickets\"),\r\n \"Family & Community\": _TL_(\"Family & Community\"),\r\n \"Baby, Parenting & Family\": _TL_(\"Baby, Parenting & Family\"),\r\n \"Parenting & Family\": _TL_(\"Parenting & Family\"),\r\n \"Community Service & Social Organizations\": _TL_(\"Community Service & Social Organizations\"),\r\n \"Community Outreach\": _TL_(\"Community Outreach\"),\r\n \"Environmentalism\": _TL_(\"Environmentalism\"),\r\n \"Social Issues & Advocacy\": _TL_(\"Social Issues & Advocacy\"),\r\n \"Environmental Activism\": _TL_(\"Environmental Activism\"),\r\n \"Volunteer Opportunities\": _TL_(\"Volunteer Opportunities\"),\r\n \"Faith & Belief\": _TL_(\"Faith & Belief\"),\r\n \"Meditation\": _TL_(\"Meditation\"),\r\n \"Romance & Relationships\": _TL_(\"Romance & Relationships\"),\r\n \"Dating & Marriage Matching\": _TL_(\"Dating & Marriage Matching\"),\r\n \"Banking\": _TL_(\"Banking\"),\r\n \"Bank Accounts\": _TL_(\"Bank Accounts\"),\r\n \"Private Banking\": _TL_(\"Private Banking\"),\r\n \"Business Finance\": _TL_(\"Business Finance\"),\r\n \"Investment Banking\": _TL_(\"Investment Banking\"),\r\n \"Mutual Funds\": _TL_(\"Mutual Funds\"),\r\n \"Securities\": _TL_(\"Securities\"),\r\n \"Stocks\": _TL_(\"Stocks\"),\r\n \"Financial Services\": _TL_(\"Financial Services\"),\r\n \"Accounting & Auditing\": _TL_(\"Accounting & Auditing\"),\r\n \"Banking Services\": _TL_(\"Banking Services\"),\r\n \"Debit & Checking Services\": _TL_(\"Debit & Checking Services\"),\r\n \"Savings Accounts\": _TL_(\"Savings Accounts\"),\r\n \"Credit & Lending\": _TL_(\"Credit & Lending\"),\r\n \"Auto Loans\": _TL_(\"Auto Loans\"),\r\n \"Business Loans\": _TL_(\"Business Loans\"),\r\n \"Credit Reports & Monitoring Services\": _TL_(\"Credit Reports & Monitoring Services\"),\r\n \"Mortgage\": _TL_(\"Mortgage\"),\r\n \"Home Equity Loans\": _TL_(\"Home Equity Loans\"),\r\n \"Home Purchase Loans\": _TL_(\"Home Purchase Loans\"),\r\n \"Mortgage Refinancing\": _TL_(\"Mortgage Refinancing\"),\r\n \"Personal Loans\": _TL_(\"Personal Loans\"),\r\n \"Student Loans\": _TL_(\"Student Loans\"),\r\n \"Financial Planning\": _TL_(\"Financial Planning\"),\r\n \"Estate Planning\": _TL_(\"Estate Planning\"),\r\n \"Retirement Planning\": _TL_(\"Retirement Planning\"),\r\n \"Auto Insurance\": _TL_(\"Auto Insurance\"),\r\n \"Home Insurance\": _TL_(\"Home Insurance\"),\r\n \"Life Insurance\": _TL_(\"Life Insurance\"),\r\n \"Travel Insurance\": _TL_(\"Travel Insurance\"),\r\n \"Investment Services\": _TL_(\"Investment Services\"),\r\n \"Tax Services\": _TL_(\"Tax Services\"),\r\n \"Food & Groceries\": _TL_(\"Food & Groceries\"),\r\n \"Beverages\": _TL_(\"Beverages\"),\r\n \"Alcoholic Beverages\": _TL_(\"Alcoholic Beverages\"),\r\n \"Beer\": _TL_(\"Beer\"),\r\n \"Liquor\": _TL_(\"Liquor\"),\r\n \"Wine\": _TL_(\"Wine\"),\r\n \"Non-Alcoholic Beverages\": _TL_(\"Non-Alcoholic Beverages\"),\r\n \"Coffee\": _TL_(\"Coffee\"),\r\n \"Energy Drinks\": _TL_(\"Energy Drinks\"),\r\n \"Juice\": _TL_(\"Juice\"),\r\n \"Soft Drinks\": _TL_(\"Soft Drinks\"),\r\n \"Tea\": _TL_(\"Tea\"),\r\n \"Desserts\": _TL_(\"Desserts\"),\r\n \"Fish & Seafood\": _TL_(\"Fish & Seafood\"),\r\n \"Organic & Natural Foods\": _TL_(\"Organic & Natural Foods\"),\r\n \"Baked Goods\": _TL_(\"Baked Goods\"),\r\n \"Candy & Chocolate\": _TL_(\"Candy & Chocolate\"),\r\n \"Condiments & Sauces\": _TL_(\"Condiments & Sauces\"),\r\n \"Cooking & Baking Ingredients\": _TL_(\"Cooking & Baking Ingredients\"),\r\n \"Grocery Delivery\": _TL_(\"Grocery Delivery\"),\r\n \"Restaurant Delivery & Takeout\": _TL_(\"Restaurant Delivery & Takeout\"),\r\n \"Gifts & Occasions\": _TL_(\"Gifts & Occasions\"),\r\n \"Cards & Greetings\": _TL_(\"Cards & Greetings\"),\r\n \"Flowers\": _TL_(\"Flowers\"),\r\n \"Gift Baskets\": _TL_(\"Gift Baskets\"),\r\n \"Holiday & Seasonal Items\": _TL_(\"Holiday & Seasonal Items\"),\r\n \"Christmas Items & Decor\": _TL_(\"Christmas Items & Decor\"),\r\n \"Halloween Items & Decor\": _TL_(\"Halloween Items & Decor\"),\r\n \"Valentine's Day Items & Decor\": _TL_(\"Valentine's Day Items & Decor\"),\r\n \"Party Supplies & Planning\": _TL_(\"Party Supplies & Planning\"),\r\n \"Event Planning Services\": _TL_(\"Event Planning Services\"),\r\n \"Party Supplies\": _TL_(\"Party Supplies\"),\r\n \"Personalized Gifts\": _TL_(\"Personalized Gifts\"),\r\n \"Photo & Video Services\": _TL_(\"Photo & Video Services\"),\r\n \"Event Photographers & Studios\": _TL_(\"Event Photographers & Studios\"),\r\n \"Photo Printing Services\": _TL_(\"Photo Printing Services\"),\r\n \"Wedding Planning\": _TL_(\"Wedding Planning\"),\r\n \"Hospice & Home Nursing Care\": _TL_(\"Hospice & Home Nursing Care\"),\r\n \"Hobbies & Leisure\": _TL_(\"Hobbies & Leisure\"),\r\n \"Camping & Outdoor Recreation\": _TL_(\"Camping & Outdoor Recreation\"),\r\n \"Cooking\": _TL_(\"Cooking\"),\r\n \"Cuisines\": _TL_(\"Cuisines\"),\r\n \"Asian Cuisine\": _TL_(\"Asian Cuisine\"),\r\n \"Chinese Cuisine\": _TL_(\"Chinese Cuisine\"),\r\n \"French Cuisine\": _TL_(\"French Cuisine\"),\r\n \"Indian Cuisine\": _TL_(\"Indian Cuisine\"),\r\n \"Latin American Cuisine\": _TL_(\"Latin American Cuisine\"),\r\n \"Mexican Cuisine\": _TL_(\"Mexican Cuisine\"),\r\n \"Mediterranean Cuisine\": _TL_(\"Mediterranean Cuisine\"),\r\n \"Spanish Cuisine\": _TL_(\"Spanish Cuisine\"),\r\n \"Vegetarian Cuisine\": _TL_(\"Vegetarian Cuisine\"),\r\n \"Vegetarian & Vegan Foods\": _TL_(\"Vegetarian & Vegan Foods\"),\r\n \"Pets & Animals\": _TL_(\"Pets & Animals\"),\r\n \"Pet Food & Supplies\": _TL_(\"Pet Food & Supplies\"),\r\n \"Pet Food & Treats\": _TL_(\"Pet Food & Treats\"),\r\n \"Photo & Video\": _TL_(\"Photo & Video\"),\r\n \"Photographic & Digital Arts\": _TL_(\"Photographic & Digital Arts\"),\r\n \"Board Games\": _TL_(\"Board Games\"),\r\n \"Online Games & Puzzles\": _TL_(\"Online Games & Puzzles\"),\r\n \"Massive Multiplayer Online Games\": _TL_(\"Massive Multiplayer Online Games\"),\r\n \"Puzzles & Brainteasers\": _TL_(\"Puzzles & Brainteasers\"),\r\n \"Roleplaying Games\": _TL_(\"Roleplaying Games\"),\r\n \"Strategy Games\": _TL_(\"Strategy Games\"),\r\n \"Pool & Billiards\": _TL_(\"Pool & Billiards\"),\r\n \"Video Games, Consoles & Accessories\": _TL_(\"Video Games, Consoles & Accessories\"),\r\n \"Computer & Video Games\": _TL_(\"Computer & Video Games\"),\r\n \"Driving & Racing Games\": _TL_(\"Driving & Racing Games\"),\r\n \"Shooter Games\": _TL_(\"Shooter Games\"),\r\n \"Simulation Games\": _TL_(\"Simulation Games\"),\r\n \"Sports Games\": _TL_(\"Sports Games\"),\r\n \"Children's Dolls, Dress-Up Toys & Costumes\": _TL_(\"Children's Dolls, Dress-Up Toys & Costumes\"),\r\n \"Online Doll Dress-Up & Girl Games\": _TL_(\"Online Doll Dress-Up & Girl Games\"),\r\n \"Cookware & Bakeware\": _TL_(\"Cookware & Bakeware\"),\r\n \"Architectural Services\": _TL_(\"Architectural Services\"),\r\n \"Carpet Installation\": _TL_(\"Carpet Installation\"),\r\n \"Door & Window Installation\": _TL_(\"Door & Window Installation\"),\r\n \"Electrician Services\": _TL_(\"Electrician Services\"),\r\n \"Flooring Services\": _TL_(\"Flooring Services\"),\r\n \"General Contracting & Remodeling Services\": _TL_(\"General Contracting & Remodeling Services\"),\r\n \"Home Cleaning Services\": _TL_(\"Home Cleaning Services\"),\r\n \"Interior Design & Decorating Services\": _TL_(\"Interior Design & Decorating Services\"),\r\n \"Landscape Design\": _TL_(\"Landscape Design\"),\r\n \"Lawn & Garden Maintenance\": _TL_(\"Lawn & Garden Maintenance\"),\r\n \"Locksmith Services\": _TL_(\"Locksmith Services\"),\r\n \"Painting Services\": _TL_(\"Painting Services\"),\r\n \"Pest Control Services\": _TL_(\"Pest Control Services\"),\r\n \"Pest Control\": _TL_(\"Pest Control\"),\r\n \"Plumbing Services\": _TL_(\"Plumbing Services\"),\r\n \"Roofing Services\": _TL_(\"Roofing Services\"),\r\n \"Yard Garden & Patio\": _TL_(\"Yard Garden & Patio\"),\r\n \"Yard Garden and Patio\": _TL_(\"Yard Garden and Patio\"),\r\n \"Yard & Garden Equipment & Supplies\": _TL_(\"Yard & Garden Equipment & Supplies\"),\r\n \"Home Appliances\": _TL_(\"Home Appliances\"),\r\n \"Climate Control Appliances\": _TL_(\"Climate Control Appliances\"),\r\n \"Air Conditioners\": _TL_(\"Air Conditioners\"),\r\n \"Fans\": _TL_(\"Fans\"),\r\n \"Cooking Ranges & Stoves\": _TL_(\"Cooking Ranges & Stoves\"),\r\n \"Dishwashers\": _TL_(\"Dishwashers\"),\r\n \"Kitchen Appliance Accessories\": _TL_(\"Kitchen Appliance Accessories\"),\r\n \"Coffee Maker & Espresso Machine Accessories\": _TL_(\"Coffee Maker & Espresso Machine Accessories\"),\r\n \"Mixer & Blender Accessories\": _TL_(\"Mixer & Blender Accessories\"),\r\n \"Refrigerator Accessories\": _TL_(\"Refrigerator Accessories\"),\r\n \"Microwaves\": _TL_(\"Microwaves\"),\r\n \"Refrigerators\": _TL_(\"Refrigerators\"),\r\n \"Small Appliances\": _TL_(\"Small Appliances\"),\r\n \"Coffee & Espresso Makers\": _TL_(\"Coffee & Espresso Makers\"),\r\n \"Juicers & Blenders\": _TL_(\"Juicers & Blenders\"),\r\n \"Mixers\": _TL_(\"Mixers\"),\r\n \"Vacuums\": _TL_(\"Vacuums\"),\r\n \"Washers & Dryers\": _TL_(\"Washers & Dryers\"),\r\n \"Home Decor\": _TL_(\"Home Decor\"),\r\n \"Bedding\": _TL_(\"Bedding\"),\r\n \"Curtains & Window Treatments\": _TL_(\"Curtains & Window Treatments\"),\r\n \"Curtains & Drapes\": _TL_(\"Curtains & Drapes\"),\r\n \"Window Blinds & Shades\": _TL_(\"Window Blinds & Shades\"),\r\n \"Fine Art\": _TL_(\"Fine Art\"),\r\n \"Fireplaces\": _TL_(\"Fireplaces\"),\r\n \"Lights & Fixtures\": _TL_(\"Lights & Fixtures\"),\r\n \"Ceiling Light Fixtures\": _TL_(\"Ceiling Light Fixtures\"),\r\n \"Wall Light Fixtures\": _TL_(\"Wall Light Fixtures\"),\r\n \"Linens\": _TL_(\"Linens\"),\r\n \"Rugs & Carpets\": _TL_(\"Rugs & Carpets\"),\r\n \"Home Furnishings\": _TL_(\"Home Furnishings\"),\r\n \"Antiques & Collectibles\": _TL_(\"Antiques & Collectibles\"),\r\n \"Bedroom\": _TL_(\"Bedroom\"),\r\n \"Beds & Bed Frames\": _TL_(\"Beds & Bed Frames\"),\r\n \"Mattresses\": _TL_(\"Mattresses\"),\r\n \"Home Office\": _TL_(\"Home Office\"),\r\n \"Desks\": _TL_(\"Desks\"),\r\n \"Office Chairs\": _TL_(\"Office Chairs\"),\r\n \"Home Storage & Shelving\": _TL_(\"Home Storage & Shelving\"),\r\n \"Kitchen & Dining Room\": _TL_(\"Kitchen & Dining Room\"),\r\n \"Kitchen & Dining Room Tables\": _TL_(\"Kitchen & Dining Room Tables\"),\r\n \"Stools\": _TL_(\"Stools\"),\r\n \"Living Room\": _TL_(\"Living Room\"),\r\n \"Accent Tables\": _TL_(\"Accent Tables\"),\r\n \"Sofas\": _TL_(\"Sofas\"),\r\n \"Nursery\": _TL_(\"Nursery\"),\r\n \"Home Improvement\": _TL_(\"Home Improvement\"),\r\n \"Flooring\": _TL_(\"Flooring\"),\r\n \"Kitchen & Bathroom Cabinets\": _TL_(\"Kitchen & Bathroom Cabinets\"),\r\n \"Kitchen & Bathroom Counters\": _TL_(\"Kitchen & Bathroom Counters\"),\r\n \"Paint\": _TL_(\"Paint\"),\r\n \"Plumbing Fixture Hardware & Parts\": _TL_(\"Plumbing Fixture Hardware & Parts\"),\r\n \"Plumbing Fixtures\": _TL_(\"Plumbing Fixtures\"),\r\n \"Power & Electrical Supplies\": _TL_(\"Power & Electrical Supplies\"),\r\n \"Tools\": _TL_(\"Tools\"),\r\n \"Measuring Tools & Sensors\": _TL_(\"Measuring Tools & Sensors\"),\r\n \"Home Security\": _TL_(\"Home Security\"),\r\n \"Household Supplies\": _TL_(\"Household Supplies\"),\r\n \"Household Cleaning Supplies\": _TL_(\"Household Cleaning Supplies\"),\r\n \"Pest Control Supplies\": _TL_(\"Pest Control Supplies\"),\r\n \"Kitchen & Dining\": _TL_(\"Kitchen & Dining\"),\r\n \"Kitchen Tools & Utensils\": _TL_(\"Kitchen Tools & Utensils\"),\r\n \"Outdoor Items\": _TL_(\"Outdoor Items\"),\r\n \"BBQ & Grill Accessories\": _TL_(\"BBQ & Grill Accessories\"),\r\n \"BBQs & Grills\": _TL_(\"BBQs & Grills\"),\r\n \"Garden & Outdoor Furniture\": _TL_(\"Garden & Outdoor Furniture\"),\r\n \"Outdoor Furniture Sets\": _TL_(\"Outdoor Furniture Sets\"),\r\n \"Garden Sheds & Outdoor Structures\": _TL_(\"Garden Sheds & Outdoor Structures\"),\r\n \"Lawn Care & Gardening Supplies\": _TL_(\"Lawn Care & Gardening Supplies\"),\r\n \"Lawn Mowers\": _TL_(\"Lawn Mowers\"),\r\n \"Pools & Spas\": _TL_(\"Pools & Spas\"),\r\n \"Pet Supplies\": _TL_(\"Pet Supplies\"),\r\n \"Cat Food & Supplies\": _TL_(\"Cat Food & Supplies\"),\r\n \"Dog Food & Supplies\": _TL_(\"Dog Food & Supplies\"),\r\n \"Tableware\": _TL_(\"Tableware\"),\r\n \"Internet & Telecom\": _TL_(\"Internet & Telecom\"),\r\n \"Social Networks & Online Communities\": _TL_(\"Social Networks & Online Communities\"),\r\n \"Mobile Social Networks\": _TL_(\"Mobile Social Networks\"),\r\n \"3d Artist\": _TL_(\"3d Artist\"),\r\n \"3d Designer\": _TL_(\"3d Designer\"),\r\n \"Accountant\": _TL_(\"Accountant\"),\r\n \"Accounts Payable Clerk\": _TL_(\"Accounts Payable Clerk\"),\r\n \"Accounts Receivable Clerk\": _TL_(\"Accounts Receivable Clerk\"),\r\n \"Actuary\": _TL_(\"Actuary\"),\r\n \"Administrative Employee\": _TL_(\"Administrative Employee\"),\r\n \"Advertising Specialist\": _TL_(\"Advertising Specialist\"),\r\n \"Agriculturist\": _TL_(\"Agriculturist\"),\r\n \"Alternative Medicine Practitioner\": _TL_(\"Alternative Medicine Practitioner\"),\r\n \"Animator\": _TL_(\"Animator\"),\r\n \"Archaeology and History Researcher\": _TL_(\"Archaeology and History Researcher\"),\r\n \"Architect\": _TL_(\"Architect\"),\r\n \"Art Curator\": _TL_(\"Art Curator\"),\r\n \"Arts Professional\": _TL_(\"Arts Professional\"),\r\n \"Asset Manager\": _TL_(\"Asset Manager\"),\r\n \"Audio-Visual Specialist\": _TL_(\"Audio-Visual Specialist\"),\r\n \"Auditor\": _TL_(\"Auditor\"),\r\n \"Author\": _TL_(\"Author\"),\r\n \"Automotive Salesperson\": _TL_(\"Automotive Salesperson\"),\r\n \"Avionics and Flight Engineer\": _TL_(\"Avionics and Flight Engineer\"),\r\n \"Banking Consultant\": _TL_(\"Banking Consultant\"),\r\n \"Banking Sales Consultant\": _TL_(\"Banking Sales Consultant\"),\r\n \"Benefits Specialist\": _TL_(\"Benefits Specialist\"),\r\n \"Bioinformatician\": _TL_(\"Bioinformatician\"),\r\n \"Branch Bank Employee\": _TL_(\"Branch Bank Employee\"),\r\n \"Business Analyst\": _TL_(\"Business Analyst\"),\r\n \"Business Development Specialist\": _TL_(\"Business Development Specialist\"),\r\n \"Business Intelligence Consultant\": _TL_(\"Business Intelligence Consultant\"),\r\n \"Business Intern\": _TL_(\"Business Intern\"),\r\n \"business intern\": _TL_(\"business intern\"),\r\n \"Business Strategist\": _TL_(\"Business Strategist\"),\r\n \"Buyer\": _TL_(\"Buyer\"),\r\n \"Buyer Sourcing\": _TL_(\"Buyer Sourcing\"),\r\n \"Camp Counselor\": _TL_(\"Camp Counselor\"),\r\n \"Campaign Coordinator\": _TL_(\"Campaign Coordinator\"),\r\n \"Capital Markets Specialist\": _TL_(\"Capital Markets Specialist\"),\r\n \"Career Counselor\": _TL_(\"Career Counselor\"),\r\n \"Caregiver\": _TL_(\"Caregiver\"),\r\n \"Category Manager\": _TL_(\"Category Manager\"),\r\n \"Chemical Process Engineer\": _TL_(\"Chemical Process Engineer\"),\r\n \"Chemist\": _TL_(\"Chemist\"),\r\n \"Chief Information Officer\": _TL_(\"Chief Information Officer\"),\r\n \"Chief of Department\": _TL_(\"Chief of Department\"),\r\n \"chief of department\": _TL_(\"chief of department\"),\r\n \"Chief Technology Officer\": _TL_(\"Chief Technology Officer\"),\r\n \"Civil Engineer\": _TL_(\"Civil Engineer\"),\r\n \"Claims Specialist\": _TL_(\"Claims Specialist\"),\r\n \"Clinical Research Specialist\": _TL_(\"Clinical Research Specialist\"),\r\n \"Commercial Banker\": _TL_(\"Commercial Banker\"),\r\n \"Commercial Loan Officer\": _TL_(\"Commercial Loan Officer\"),\r\n \"Commercial Real Estate Specialist\": _TL_(\"Commercial Real Estate Specialist\"),\r\n \"Community Development Specialist\": _TL_(\"Community Development Specialist\"),\r\n \"Compensation Specialist\": _TL_(\"Compensation Specialist\"),\r\n \"Compliance Specialist\": _TL_(\"Compliance Specialist\"),\r\n \"Computer Aided Designer\": _TL_(\"Computer Aided Designer\"),\r\n \"Construction Engineer\": _TL_(\"Construction Engineer\"),\r\n \"Construction Project Planner\": _TL_(\"Construction Project Planner\"),\r\n \"Contract Administrator\": _TL_(\"Contract Administrator\"),\r\n \"Contract Worker\": _TL_(\"Contract Worker\"),\r\n \"contract worker\": _TL_(\"contract worker\"),\r\n \"Control Systems Engineer\": _TL_(\"Control Systems Engineer\"),\r\n \"Corporate Board Member\": _TL_(\"Corporate Board Member\"),\r\n \"Corporate Finance Specialist\": _TL_(\"Corporate Finance Specialist\"),\r\n \"Corporate Merger Specialist\": _TL_(\"Corporate Merger Specialist\"),\r\n \"Corporate Tax Specialist\": _TL_(\"Corporate Tax Specialist\"),\r\n \"Corporate Trainer\": _TL_(\"Corporate Trainer\"),\r\n \"Creative Designer\": _TL_(\"Creative Designer\"),\r\n \"Credit Analyst\": _TL_(\"Credit Analyst\"),\r\n \"Customer Service Specialist\": _TL_(\"Customer Service Specialist\"),\r\n \"Data Analyst\": _TL_(\"Data Analyst\"),\r\n \"Data Entry Clerk\": _TL_(\"Data Entry Clerk\"),\r\n \"Database Developer\": _TL_(\"Database Developer\"),\r\n \"Database Marketing Specialist\": _TL_(\"Database Marketing Specialist\"),\r\n \"Datacenter Manager\": _TL_(\"Datacenter Manager\"),\r\n \"Dentist\": _TL_(\"Dentist\"),\r\n \"Dietitian\": _TL_(\"Dietitian\"),\r\n \"Document Controller\": _TL_(\"Document Controller\"),\r\n \"E-Commerce Specialist\": _TL_(\"E-Commerce Specialist\"),\r\n \"Economist\": _TL_(\"Economist\"),\r\n \"Education Administrator\": _TL_(\"Education Administrator\"),\r\n \"Electrical Engineer\": _TL_(\"Electrical Engineer\"),\r\n \"Embedded Software Engineer\": _TL_(\"Embedded Software Engineer\"),\r\n \"Engineer\": _TL_(\"Engineer\"),\r\n \"Entertainment Administrator\": _TL_(\"Entertainment Administrator\"),\r\n \"Environmental Specialist\": _TL_(\"Environmental Specialist\"),\r\n \"Equity Analyst\": _TL_(\"Equity Analyst\"),\r\n \"Equity Research Analyst\": _TL_(\"Equity Research Analyst\"),\r\n \"ERP Consultant\": _TL_(\"ERP Consultant\"),\r\n \"Event Planner\": _TL_(\"Event Planner\"),\r\n \"Executive Director\": _TL_(\"Executive Director\"),\r\n \"Export Sales Specialist\": _TL_(\"Export Sales Specialist\"),\r\n \"Facilities Manager\": _TL_(\"Facilities Manager\"),\r\n \"Factory Worker\": _TL_(\"Factory Worker\"),\r\n \"Fashion Designer\": _TL_(\"Fashion Designer\"),\r\n \"Federal Salesperson\": _TL_(\"Federal Salesperson\"),\r\n \"Finance Specialist\": _TL_(\"Finance Specialist\"),\r\n \"Financial Advisor\": _TL_(\"Financial Advisor\"),\r\n \"Financial Aid Specialist\": _TL_(\"Financial Aid Specialist\"),\r\n \"Financial Research Analyst\": _TL_(\"Financial Research Analyst\"),\r\n \"Flight Crew\": _TL_(\"Flight Crew\"),\r\n \"Food Service Professional\": _TL_(\"Food Service Professional\"),\r\n \"Food Technologist\": _TL_(\"Food Technologist\"),\r\n \"Founder\": _TL_(\"Founder\"),\r\n \"Fraud Analyst\": _TL_(\"Fraud Analyst\"),\r\n \"Fund Accountant\": _TL_(\"Fund Accountant\"),\r\n \"Fundraiser\": _TL_(\"Fundraiser\"),\r\n \"Game Designer\": _TL_(\"Game Designer\"),\r\n \"Geologist\": _TL_(\"Geologist\"),\r\n \"GIS Specialist\": _TL_(\"GIS Specialist\"),\r\n \"Global Financial Representative\": _TL_(\"Global Financial Representative\"),\r\n \"global financial representative\": _TL_(\"global financial representative\"),\r\n \"Government Policy Specialist\": _TL_(\"Government Policy Specialist\"),\r\n \"Graphic Designer\": _TL_(\"Graphic Designer\"),\r\n \"graphic designer\": _TL_(\"graphic designer\"),\r\n \"Hardware Engineer\": _TL_(\"Hardware Engineer\"),\r\n \"Health Specialist\": _TL_(\"Health Specialist\"),\r\n \"Healthcare Administrator\": _TL_(\"Healthcare Administrator\"),\r\n \"Heavy Equipment Supervisor\": _TL_(\"Heavy Equipment Supervisor\"),\r\n \"Homemaker\": _TL_(\"Homemaker\"),\r\n \"homemaker\": _TL_(\"homemaker\"),\r\n \"Hospitality Professional\": _TL_(\"Hospitality Professional\"),\r\n \"Human Resources Information System Consultant\": _TL_(\"Human Resources Information System Consultant\"),\r\n \"Human Resources Legal Consultant\": _TL_(\"Human Resources Legal Consultant\"),\r\n \"Human Resources Specialist\": _TL_(\"Human Resources Specialist\"),\r\n \"Illustrator\": _TL_(\"Illustrator\"),\r\n \"Industrial Designer\": _TL_(\"Industrial Designer\"),\r\n \"Information Security Specialist\": _TL_(\"Information Security Specialist\"),\r\n \"Information Technology Auditor\": _TL_(\"Information Technology Auditor\"),\r\n \"Information Technology Consultant\": _TL_(\"Information Technology Consultant\"),\r\n \"Information Technology Engineer\": _TL_(\"Information Technology Engineer\"),\r\n \"Information Technology Support Specialist\": _TL_(\"Information Technology Support Specialist\"),\r\n \"Information Technology System Administrator\": _TL_(\"Information Technology System Administrator\"),\r\n \"Innovation Manager\": _TL_(\"Innovation Manager\"),\r\n \"Institutional Investment Salesperson\": _TL_(\"Institutional Investment Salesperson\"),\r\n \"Instructional Designer\": _TL_(\"Instructional Designer\"),\r\n \"Insurance Agent\": _TL_(\"Insurance Agent\"),\r\n \"Intellectual Property Specialist\": _TL_(\"Intellectual Property Specialist\"),\r\n \"Interim Executive\": _TL_(\"Interim Executive\"),\r\n \"interim executive\": _TL_(\"interim executive\"),\r\n \"Interior Designer\": _TL_(\"Interior Designer\"),\r\n \"International Trade Specialist\": _TL_(\"International Trade Specialist\"),\r\n \"Investment Banking Analyst\": _TL_(\"Investment Banking Analyst\"),\r\n \"Investment Portfolio Manager\": _TL_(\"Investment Portfolio Manager\"),\r\n \"Investment Trader\": _TL_(\"Investment Trader\"),\r\n \"Jeweler\": _TL_(\"Jeweler\"),\r\n \"Journalist\": _TL_(\"Journalist\"),\r\n \"Judge\": _TL_(\"Judge\"),\r\n \"Laboratory Scientist\": _TL_(\"Laboratory Scientist\"),\r\n \"Laboratory Technician\": _TL_(\"Laboratory Technician\"),\r\n \"Laborer\": _TL_(\"Laborer\"),\r\n \"laborer\": _TL_(\"laborer\"),\r\n \"Landscape Designer\": _TL_(\"Landscape Designer\"),\r\n \"Language and Localization Specialist\": _TL_(\"Language and Localization Specialist\"),\r\n \"Lawyer\": _TL_(\"Lawyer\"),\r\n \"Legal Administrative Professional\": _TL_(\"Legal Administrative Professional\"),\r\n \"Legal Contract Administrator\": _TL_(\"Legal Contract Administrator\"),\r\n \"Librarian\": _TL_(\"Librarian\"),\r\n \"Life Sciences and Medical Researcher\": _TL_(\"Life Sciences and Medical Researcher\"),\r\n \"Loan Officer\": _TL_(\"Loan Officer\"),\r\n \"Logistics Specialist\": _TL_(\"Logistics Specialist\"),\r\n \"Loss Prevention Specialist\": _TL_(\"Loss Prevention Specialist\"),\r\n \"Managed Services Specialist\": _TL_(\"Managed Services Specialist\"),\r\n \"Manufacturing Operations Manager\": _TL_(\"Manufacturing Operations Manager\"),\r\n \"Mariner\": _TL_(\"Mariner\"),\r\n \"Market Research Manager\": _TL_(\"Market Research Manager\"),\r\n \"Marketing Communications Specialist\": _TL_(\"Marketing Communications Specialist\"),\r\n \"Marketing Creative Designer\": _TL_(\"Marketing Creative Designer\"),\r\n \"Marketing Operations Specialist\": _TL_(\"Marketing Operations Specialist\"),\r\n \"Marketing Product Manager\": _TL_(\"Marketing Product Manager\"),\r\n \"Marketing Project Manager\": _TL_(\"Marketing Project Manager\"),\r\n \"Marketing Research Specialist\": _TL_(\"Marketing Research Specialist\"),\r\n \"Marketing Specialist\": _TL_(\"Marketing Specialist\"),\r\n \"Mechanic and Maintenance Tradesperson\": _TL_(\"Mechanic and Maintenance Tradesperson\"),\r\n \"Medical Advisor\": _TL_(\"Medical Advisor\"),\r\n \"Medical Assistant\": _TL_(\"Medical Assistant\"),\r\n \"Medical Representative\": _TL_(\"Medical Representative\"),\r\n \"Medical Research Advisor\": _TL_(\"Medical Research Advisor\"),\r\n \"Medical Researcher\": _TL_(\"Medical Researcher\"),\r\n \"Medical Salesperson\": _TL_(\"Medical Salesperson\"),\r\n \"Medical Writer\": _TL_(\"Medical Writer\"),\r\n \"Membership Director\": _TL_(\"Membership Director\"),\r\n \"Mental Health Professional\": _TL_(\"Mental Health Professional\"),\r\n \"Merchandiser\": _TL_(\"Merchandiser\"),\r\n \"Military Officer\": _TL_(\"Military Officer\"),\r\n \"Minister\": _TL_(\"Minister\"),\r\n \"Motion Graphics Designer\": _TL_(\"Motion Graphics Designer\"),\r\n \"Multimedia Specialist\": _TL_(\"Multimedia Specialist\"),\r\n \"Music Manager\": _TL_(\"Music Manager\"),\r\n \"Musician\": _TL_(\"Musician\"),\r\n \"Network Engineer\": _TL_(\"Network Engineer\"),\r\n \"New Home Salesperson\": _TL_(\"New Home Salesperson\"),\r\n \"Non-profit Board Member\": _TL_(\"Non-profit Board Member\"),\r\n \"Nurse\": _TL_(\"Nurse\"),\r\n \"Occupational Therapist\": _TL_(\"Occupational Therapist\"),\r\n \"Office Worker\": _TL_(\"Office Worker\"),\r\n \"Online Marketing Manager\": _TL_(\"Online Marketing Manager\"),\r\n \"Operations Specialist\": _TL_(\"Operations Specialist\"),\r\n \"Packaging Specialist\": _TL_(\"Packaging Specialist\"),\r\n \"Partner\": _TL_(\"Partner\"),\r\n \"Payroll Specialist\": _TL_(\"Payroll Specialist\"),\r\n \"Payroll Specialist Accounting\": _TL_(\"Payroll Specialist Accounting\"),\r\n \"Pension Manager\": _TL_(\"Pension Manager\"),\r\n \"Performer\": _TL_(\"Performer\"),\r\n \"Personal Banker\": _TL_(\"Personal Banker\"),\r\n \"Personal Stylist\": _TL_(\"Personal Stylist\"),\r\n \"Personal Tax Specialist\": _TL_(\"Personal Tax Specialist\"),\r\n \"Pet Services Specialist\": _TL_(\"Pet Services Specialist\"),\r\n \"Pharmaceutical Scientist\": _TL_(\"Pharmaceutical Scientist\"),\r\n \"Pharmacist\": _TL_(\"Pharmacist\"),\r\n \"Photographer\": _TL_(\"Photographer\"),\r\n \"Physical Therapist\": _TL_(\"Physical Therapist\"),\r\n \"Physician\": _TL_(\"Physician\"),\r\n \"Physicist\": _TL_(\"Physicist\"),\r\n \"Political Staff\": _TL_(\"Political Staff\"),\r\n \"Postal Worker\": _TL_(\"Postal Worker\"),\r\n \"Pricing Specialist\": _TL_(\"Pricing Specialist\"),\r\n \"Print Specialist\": _TL_(\"Print Specialist\"),\r\n \"Process Specialist\": _TL_(\"Process Specialist\"),\r\n \"Product Developer\": _TL_(\"Product Developer\"),\r\n \"Product Development Engineer\": _TL_(\"Product Development Engineer\"),\r\n \"Product Manager\": _TL_(\"Product Manager\"),\r\n \"Product Researcher\": _TL_(\"Product Researcher\"),\r\n \"Production Crew\": _TL_(\"Production Crew\"),\r\n \"Production Editor\": _TL_(\"Production Editor\"),\r\n \"Program Administrator\": _TL_(\"Program Administrator\"),\r\n \"Program Analyst\": _TL_(\"Program Analyst\"),\r\n \"Program Manager\": _TL_(\"Program Manager\"),\r\n \"Project Administrator\": _TL_(\"Project Administrator\"),\r\n \"Project Manager\": _TL_(\"Project Manager\"),\r\n \"Property Manager\": _TL_(\"Property Manager\"),\r\n \"Proposal Writer\": _TL_(\"Proposal Writer\"),\r\n \"Public Health Specialist\": _TL_(\"Public Health Specialist\"),\r\n \"Public Relations Specialist\": _TL_(\"Public Relations Specialist\"),\r\n \"Public Safety Professional\": _TL_(\"Public Safety Professional\"),\r\n \"Public Speaker\": _TL_(\"Public Speaker\"),\r\n \"Publisher\": _TL_(\"Publisher\"),\r\n \"Purchaser\": _TL_(\"Purchaser\"),\r\n \"Quality Assurance Tester\": _TL_(\"Quality Assurance Tester\"),\r\n \"Real Estate Broker\": _TL_(\"Real Estate Broker\"),\r\n \"Real Estate Specialist\": _TL_(\"Real Estate Specialist\"),\r\n \"Recreation Professional\": _TL_(\"Recreation Professional\"),\r\n \"Recruiter\": _TL_(\"Recruiter\"),\r\n \"Regulatory Specialist\": _TL_(\"Regulatory Specialist\"),\r\n \"Reporter\": _TL_(\"Reporter\"),\r\n \"Research Analyst\": _TL_(\"Research Analyst\"),\r\n \"Research Development Software Engineer\": _TL_(\"Research Development Software Engineer\"),\r\n \"research development software engineer\": _TL_(\"research development software engineer\"),\r\n \"Research Fellow\": _TL_(\"Research Fellow\"),\r\n \"Retail Salesperson\": _TL_(\"Retail Salesperson\"),\r\n \"Retired\": _TL_(\"Retired\"),\r\n \"retired\": _TL_(\"retired\"),\r\n \"Revenue Manager\": _TL_(\"Revenue Manager\"),\r\n \"Risk Management Specialist\": _TL_(\"Risk Management Specialist\"),\r\n \"Safety Specialist\": _TL_(\"Safety Specialist\"),\r\n \"Sales Engineer\": _TL_(\"Sales Engineer\"),\r\n \"Sales Specialist\": _TL_(\"Sales Specialist\"),\r\n \"Salesperson\": _TL_(\"Salesperson\"),\r\n \"School Teacher\": _TL_(\"School Teacher\"),\r\n \"Service Delivery Specialist\": _TL_(\"Service Delivery Specialist\"),\r\n \"Social Media Specialist\": _TL_(\"Social Media Specialist\"),\r\n \"Social Worker\": _TL_(\"Social Worker\"),\r\n \"Software Developer\": _TL_(\"Software Developer\"),\r\n \"Software Tester\": _TL_(\"Software Tester\"),\r\n \"Staff Manager\": _TL_(\"Staff Manager\"),\r\n \"Strategic Alliance Specialist\": _TL_(\"Strategic Alliance Specialist\"),\r\n \"Student\": _TL_(\"Student\"),\r\n \"Surgeon\": _TL_(\"Surgeon\"),\r\n \"Surveyor\": _TL_(\"Surveyor\"),\r\n \"Technical Sales Professional\": _TL_(\"Technical Sales Professional\"),\r\n \"Technical Support Representative\": _TL_(\"Technical Support Representative\"),\r\n \"Technical Writer\": _TL_(\"Technical Writer\"),\r\n \"Technician\": _TL_(\"Technician\"),\r\n \"Technology Instructor\": _TL_(\"Technology Instructor\"),\r\n \"Technology Manager\": _TL_(\"Technology Manager\"),\r\n \"Telecommunications Engineering Specialist\": _TL_(\"Telecommunications Engineering Specialist\"),\r\n \"Telecommunications Specialist\": _TL_(\"Telecommunications Specialist\"),\r\n \"Test Development Engineer\": _TL_(\"Test Development Engineer\"),\r\n \"Tour Guide\": _TL_(\"Tour Guide\"),\r\n \"tour guide\": _TL_(\"tour guide\"),\r\n \"Transportation Specialist\": _TL_(\"Transportation Specialist\"),\r\n \"Travel and Tourism Professional\": _TL_(\"Travel and Tourism Professional\"),\r\n \"Treasurer\": _TL_(\"Treasurer\"),\r\n \"Trust Officer\": _TL_(\"Trust Officer\"),\r\n \"Underwriter\": _TL_(\"Underwriter\"),\r\n \"University Professor\": _TL_(\"University Professor\"),\r\n \"Urban Planner\": _TL_(\"Urban Planner\"),\r\n \"User Experience Designer\": _TL_(\"User Experience Designer\"),\r\n \"Volunteer\": _TL_(\"Volunteer\"),\r\n \"volunteer\": _TL_(\"volunteer\"),\r\n \"Wealth Manager\": _TL_(\"Wealth Manager\"),\r\n \"Web Designer\": _TL_(\"Web Designer\"),\r\n \"Website Manager\": _TL_(\"Website Manager\"),\r\n \"Jobs & Education\": _TL_(\"Jobs & Education\"),\r\n \"Education & Training\": _TL_(\"Education & Training\"),\r\n \"Community & Continuing Education\": _TL_(\"Community & Continuing Education\"),\r\n \"Law & Government\": _TL_(\"Law & Government\"),\r\n \"Military\": _TL_(\"Military\"),\r\n \"Politics\": _TL_(\"Politics\"),\r\n \"Media\": _TL_(\"Media\"),\r\n \"Audio Streaming Subscription Services\": _TL_(\"Audio Streaming Subscription Services\"),\r\n \"Books\": _TL_(\"Books\"),\r\n \"Video Games\": _TL_(\"Video Games\"),\r\n \"Video Streaming Subscription Services\": _TL_(\"Video Streaming Subscription Services\"),\r\n \"Musical Instruments & Accessories\": _TL_(\"Musical Instruments & Accessories\"),\r\n \"News, Media & Publications\": _TL_(\"News, Media & Publications\"),\r\n \"Books & Literature\": _TL_(\"Books & Literature\"),\r\n \"E-Books\": _TL_(\"E-Books\"),\r\n \"Celebrities & Entertainment News\": _TL_(\"Celebrities & Entertainment News\"),\r\n \"Magazines & Magazine Subscriptions\": _TL_(\"Magazines & Magazine Subscriptions\"),\r\n \"Newspapers\": _TL_(\"Newspapers\"),\r\n \"Personal Services\": _TL_(\"Personal Services\"),\r\n \"Commercial Properties\": _TL_(\"Commercial Properties\"),\r\n \"Commercial Properties (For Rent)\": _TL_(\"Commercial Properties (For Rent)\"),\r\n \"Commercial Properties (For Sale)\": _TL_(\"Commercial Properties (For Sale)\"),\r\n \"Moving & Relocation\": _TL_(\"Moving & Relocation\"),\r\n \"Bank-Owned & Foreclosed Listings\": _TL_(\"Bank-Owned & Foreclosed Listings\"),\r\n \"Relocation & Household Moving\": _TL_(\"Relocation & Household Moving\"),\r\n \"Apartments (For Rent)\": _TL_(\"Apartments (For Rent)\"),\r\n \"Furnished Apartments\": _TL_(\"Furnished Apartments\"),\r\n \"Unfurnished Apartments\": _TL_(\"Unfurnished Apartments\"),\r\n \"Houses (For Rent)\": _TL_(\"Houses (For Rent)\"),\r\n \"Residential Properties (For Sale)\": _TL_(\"Residential Properties (For Sale)\"),\r\n \"Apartments (For Sale)\": _TL_(\"Apartments (For Sale)\"),\r\n \"New Apartments (For Sale)\": _TL_(\"New Apartments (For Sale)\"),\r\n \"Preowned Apartments (For Sale)\": _TL_(\"Preowned Apartments (For Sale)\"),\r\n \"Houses (For Sale)\": _TL_(\"Houses (For Sale)\"),\r\n \"New Houses (For Sale)\": _TL_(\"New Houses (For Sale)\"),\r\n \"Preowned Houses (For Sale)\": _TL_(\"Preowned Houses (For Sale)\"),\r\n \"Retailers & General Merchandise\": _TL_(\"Retailers & General Merchandise\"),\r\n \"Coupons & Rebates\": _TL_(\"Coupons & Rebates\"),\r\n \"Shopping Portals & Search Engines\": _TL_(\"Shopping Portals & Search Engines\"),\r\n \"Wholesalers & Liquidators\": _TL_(\"Wholesalers & Liquidators\"),\r\n \"Seasonal Shopping\": _TL_(\"Seasonal Shopping\"),\r\n \"Back-to-School Shopping\": _TL_(\"Back-to-School Shopping\"),\r\n \"Back-to-School Apparel & Accessories\": _TL_(\"Back-to-School Apparel & Accessories\"),\r\n \"Black Friday Shopping\": _TL_(\"Black Friday Shopping\"),\r\n \"In-Store Black Friday Shopping\": _TL_(\"In-Store Black Friday Shopping\"),\r\n \"Online Black Friday Shopping\": _TL_(\"Online Black Friday Shopping\"),\r\n \"Christmas Shopping\": _TL_(\"Christmas Shopping\"),\r\n \"After-Christmas Sale Shopping\": _TL_(\"After-Christmas Sale Shopping\"),\r\n \"In-Store Christmas Shopping\": _TL_(\"In-Store Christmas Shopping\"),\r\n \"Online Christmas Shopping\": _TL_(\"Online Christmas Shopping\"),\r\n \"India Independence Day\": _TL_(\"India Independence Day\"),\r\n \"Mother's Day Shopping\": _TL_(\"Mother's Day Shopping\"),\r\n \"Rakhi (Rakshabandhan) Festival\": _TL_(\"Rakhi (Rakshabandhan) Festival\"),\r\n \"Valentine's Day Shopping\": _TL_(\"Valentine's Day Shopping\"),\r\n \"Social\": _TL_(\"Social\"),\r\n \"Dining & Nightlife Reviews, Guides & Listings\": _TL_(\"Dining & Nightlife Reviews, Guides & Listings\"),\r\n \"Antivirus & Security Software\": _TL_(\"Antivirus & Security Software\"),\r\n \"Audio & Music Software\": _TL_(\"Audio & Music Software\"),\r\n \"Business Management Software\": _TL_(\"Business Management Software\"),\r\n \"Design Software\": _TL_(\"Design Software\"),\r\n \"Drawing & Animation Software\": _TL_(\"Drawing & Animation Software\"),\r\n \"Photo Software\": _TL_(\"Photo Software\"),\r\n \"Graphics & Multimedia Software\": _TL_(\"Graphics & Multimedia Software\"),\r\n \"Tax & Accounting Software\": _TL_(\"Tax & Accounting Software\"),\r\n \"Video Software\": _TL_(\"Video Software\"),\r\n \"Boating & Water Recreation\": _TL_(\"Boating & Water Recreation\"),\r\n \"Surfing & Windsurfing Gear\": _TL_(\"Surfing & Windsurfing Gear\"),\r\n \"Fitness\": _TL_(\"Fitness\"),\r\n \"Fitness Products & Services\": _TL_(\"Fitness Products & Services\"),\r\n \"Exercise Equipment\": _TL_(\"Exercise Equipment\"),\r\n \"Fitness Technology Products\": _TL_(\"Fitness Technology Products\"),\r\n \"Weights & Strength Training Equipment\": _TL_(\"Weights & Strength Training Equipment\"),\r\n \"Fitness Classes & Personal Training Services\": _TL_(\"Fitness Classes & Personal Training Services\"),\r\n \"Gyms & Athletic Clubs\": _TL_(\"Gyms & Athletic Clubs\"),\r\n \"Yoga & Pilates\": _TL_(\"Yoga & Pilates\"),\r\n \"Outdoor Recreational Equipment\": _TL_(\"Outdoor Recreational Equipment\"),\r\n \"Camping & Hiking Equipment\": _TL_(\"Camping & Hiking Equipment\"),\r\n \"Fishing Equipment\": _TL_(\"Fishing Equipment\"),\r\n \"Baseball Equipment\": _TL_(\"Baseball Equipment\"),\r\n \"Golf Equipment\": _TL_(\"Golf Equipment\"),\r\n \"Hockey Equipment\": _TL_(\"Hockey Equipment\"),\r\n \"Skateboarding Equipment\": _TL_(\"Skateboarding Equipment\"),\r\n \"Soccer Equipment\": _TL_(\"Soccer Equipment\"),\r\n \"Water Activities Equipment & Accessories\": _TL_(\"Water Activities Equipment & Accessories\"),\r\n \"Winter Sports Equipment & Accessories\": _TL_(\"Winter Sports Equipment & Accessories\"),\r\n \"American Football\": _TL_(\"American Football\"),\r\n \"Baseball\": _TL_(\"Baseball\"),\r\n \"Basketball\": _TL_(\"Basketball\"),\r\n \"College Sports\": _TL_(\"College Sports\"),\r\n \"Cycling\": _TL_(\"Cycling\"),\r\n \"Equestrian Sports\": _TL_(\"Equestrian Sports\"),\r\n \"Golf\": _TL_(\"Golf\"),\r\n \"Hunting & Shooting\": _TL_(\"Hunting & Shooting\"),\r\n \"Motor Sports\": _TL_(\"Motor Sports\"),\r\n \"Qatar 2022 football\": _TL_(\"Qatar 2022 football\"),\r\n \"World Cup Fans\": _TL_(\"World Cup Fans\"),\r\n \"Running & Walking\": _TL_(\"Running & Walking\"),\r\n \"Soccer\": _TL_(\"Soccer\"),\r\n \"Swimming & Aquatic Sports\": _TL_(\"Swimming & Aquatic Sports\"),\r\n \"Tennis\": _TL_(\"Tennis\"),\r\n \"Volleyball\": _TL_(\"Volleyball\"),\r\n \"Winter Sports\": _TL_(\"Winter Sports\"),\r\n \"Skiing\": _TL_(\"Skiing\"),\r\n \"Snowboarding\": _TL_(\"Snowboarding\"),\r\n \"Telecom\": _TL_(\"Telecom\"),\r\n \"Cable & Satellite TV Providers\": _TL_(\"Cable & Satellite TV Providers\"),\r\n \"Internet Service Providers\": _TL_(\"Internet Service Providers\"),\r\n \"Mobile Phone Service Providers\": _TL_(\"Mobile Phone Service Providers\"),\r\n \"Travel\": _TL_(\"Travel\"),\r\n \"Travel & Tourism\": _TL_(\"Travel & Tourism\"),\r\n \"Adventure Travel\": _TL_(\"Adventure Travel\"),\r\n \"Ecotourism\": _TL_(\"Ecotourism\"),\r\n \"Family Vacations & Travel\": _TL_(\"Family Vacations & Travel\"),\r\n \"Tourist Attractions & Destinations\": _TL_(\"Tourist Attractions & Destinations\"),\r\n \"Beaches & Islands\": _TL_(\"Beaches & Islands\"),\r\n \"Lakes & Rivers\": _TL_(\"Lakes & Rivers\"),\r\n \"Theme Parks\": _TL_(\"Theme Parks\"),\r\n \"Hotels, Motels & Resorts\": _TL_(\"Hotels, Motels & Resorts\"),\r\n \"Air Travel by Class\": _TL_(\"Air Travel by Class\"),\r\n \"Business & First Class\": _TL_(\"Business & First Class\"),\r\n \"Economy Class\": _TL_(\"Economy Class\"),\r\n \"Air Travel by Destination\": _TL_(\"Air Travel by Destination\"),\r\n \"Airline Tickets, Fares & Flights\": _TL_(\"Airline Tickets, Fares & Flights\"),\r\n \"Bus & Rail Travel\": _TL_(\"Bus & Rail Travel\"),\r\n \"Car Rental\": _TL_(\"Car Rental\"),\r\n \"Economy, Compact & Mid-size Car Rental\": _TL_(\"Economy, Compact & Mid-size Car Rental\"),\r\n \"Economy Compact & Mid-size Car Rental\": _TL_(\"Economy Compact & Mid-size Car Rental\"),\r\n \"Full-size & Standard Car Rental\": _TL_(\"Full-size & Standard Car Rental\"),\r\n \"Luxury, Convertible & Specialty Car Rental\": _TL_(\"Luxury, Convertible & Specialty Car Rental\"),\r\n \"Luxury Convertible & Specialty Car Rental\": _TL_(\"Luxury Convertible & Specialty Car Rental\"),\r\n \"Minivan & SUV Rental\": _TL_(\"Minivan & SUV Rental\"),\r\n \"Cruises\": _TL_(\"Cruises\"),\r\n \"Hotels & Accommodations\": _TL_(\"Hotels & Accommodations\"),\r\n \"Hotels Motels and Resorts\": _TL_(\"Hotels Motels and Resorts\"),\r\n \"Hotels by Star Rating\": _TL_(\"Hotels by Star Rating\"),\r\n \"1 & 2 Star Hotels\": _TL_(\"1 & 2 Star Hotels\"),\r\n \"3 Star Hotels\": _TL_(\"3 Star Hotels\"),\r\n \"4 Star Hotels\": _TL_(\"4 Star Hotels\"),\r\n \"5 Star Hotels\": _TL_(\"5 Star Hotels\"),\r\n \"Last Minute Airfares & Flights\": _TL_(\"Last Minute Airfares & Flights\"),\r\n \"Sightseeing Tours & Tourist Attractions\": _TL_(\"Sightseeing Tours & Tourist Attractions\"),\r\n \"Transportation & Excursions\": _TL_(\"Transportation & Excursions\"),\r\n \"Travel Media & Publications\": _TL_(\"Travel Media & Publications\"),\r\n \"City & Local Guides\": _TL_(\"City & Local Guides\"),\r\n \"Trips by Destination\": _TL_(\"Trips by Destination\"),\r\n \"Trips to Asia-Pacific\": _TL_(\"Trips to Asia-Pacific\"),\r\n \"Trips to Australia\": _TL_(\"Trips to Australia\"),\r\n \"Trips to Brisbane\": _TL_(\"Trips to Brisbane\"),\r\n \"Trips to Melbourne\": _TL_(\"Trips to Melbourne\"),\r\n \"Trips to Perth\": _TL_(\"Trips to Perth\"),\r\n \"Trips to Sydney\": _TL_(\"Trips to Sydney\"),\r\n \"Trips to China\": _TL_(\"Trips to China\"),\r\n \"Trips to Beijing\": _TL_(\"Trips to Beijing\"),\r\n \"Trips to Chengdu\": _TL_(\"Trips to Chengdu\"),\r\n \"Trips to Guangzhou\": _TL_(\"Trips to Guangzhou\"),\r\n \"Trips to Shanghai\": _TL_(\"Trips to Shanghai\"),\r\n \"Trips to Hong Kong\": _TL_(\"Trips to Hong Kong\"),\r\n \"Trips to India\": _TL_(\"Trips to India\"),\r\n \"Trips to Ahmedabad\": _TL_(\"Trips to Ahmedabad\"),\r\n \"Trips to Bangalore\": _TL_(\"Trips to Bangalore\"),\r\n \"Trips to Chennai\": _TL_(\"Trips to Chennai\"),\r\n \"Trips to Delhi\": _TL_(\"Trips to Delhi\"),\r\n \"Trips to Goa\": _TL_(\"Trips to Goa\"),\r\n \"Trips to Hyderabad\": _TL_(\"Trips to Hyderabad\"),\r\n \"Trips to Jaipur\": _TL_(\"Trips to Jaipur\"),\r\n \"Trips to Kochi (India)\": _TL_(\"Trips to Kochi (India)\"),\r\n \"Trips to Kolkata\": _TL_(\"Trips to Kolkata\"),\r\n \"Trips to Mumbai\": _TL_(\"Trips to Mumbai\"),\r\n \"Trips to Pune\": _TL_(\"Trips to Pune\"),\r\n \"Trips to Indonesia\": _TL_(\"Trips to Indonesia\"),\r\n \"Trips to Bali\": _TL_(\"Trips to Bali\"),\r\n \"Trips to Bandung\": _TL_(\"Trips to Bandung\"),\r\n \"Trips to Jakarta\": _TL_(\"Trips to Jakarta\"),\r\n \"Trips to Japan\": _TL_(\"Trips to Japan\"),\r\n \"Trips to Fukuoka\": _TL_(\"Trips to Fukuoka\"),\r\n \"Trips to Kyoto-Osaka-Kobe\": _TL_(\"Trips to Kyoto-Osaka-Kobe\"),\r\n \"Trips to Nagoya\": _TL_(\"Trips to Nagoya\"),\r\n \"Trips to Okinawa\": _TL_(\"Trips to Okinawa\"),\r\n \"Trips to Sapporo\": _TL_(\"Trips to Sapporo\"),\r\n \"Trips to Tokyo\": _TL_(\"Trips to Tokyo\"),\r\n \"Trips to Malaysia\": _TL_(\"Trips to Malaysia\"),\r\n \"Trips to Kuala Lumpur\": _TL_(\"Trips to Kuala Lumpur\"),\r\n \"Trips to Penang\": _TL_(\"Trips to Penang\"),\r\n \"Trips to Nepal\": _TL_(\"Trips to Nepal\"),\r\n \"Trips to New Zealand\": _TL_(\"Trips to New Zealand\"),\r\n \"Trips to Seoul\": _TL_(\"Trips to Seoul\"),\r\n \"Trips to Singapore\": _TL_(\"Trips to Singapore\"),\r\n \"Trips to Sri Lanka\": _TL_(\"Trips to Sri Lanka\"),\r\n \"Trips to Taipei\": _TL_(\"Trips to Taipei\"),\r\n \"Trips to Thailand\": _TL_(\"Trips to Thailand\"),\r\n \"Trips to Bangkok\": _TL_(\"Trips to Bangkok\"),\r\n \"Trips to Chiang Mai\": _TL_(\"Trips to Chiang Mai\"),\r\n \"Trips to Phuket\": _TL_(\"Trips to Phuket\"),\r\n \"Trips to the Philippines\": _TL_(\"Trips to the Philippines\"),\r\n \"Trips to Vietnam\": _TL_(\"Trips to Vietnam\"),\r\n \"Trips to Hanoi\": _TL_(\"Trips to Hanoi\"),\r\n \"Trips to Ho Chi Minh City\": _TL_(\"Trips to Ho Chi Minh City\"),\r\n \"Trips to Europe\": _TL_(\"Trips to Europe\"),\r\n \"Trips to Amsterdam\": _TL_(\"Trips to Amsterdam\"),\r\n \"Trips to Brussels\": _TL_(\"Trips to Brussels\"),\r\n \"Trips to Croatia\": _TL_(\"Trips to Croatia\"),\r\n \"Trips to Denmark\": _TL_(\"Trips to Denmark\"),\r\n \"Trips to Copenhagen\": _TL_(\"Trips to Copenhagen\"),\r\n \"Trips to France\": _TL_(\"Trips to France\"),\r\n \"Trips to Bordeaux\": _TL_(\"Trips to Bordeaux\"),\r\n \"Trips to Lyon\": _TL_(\"Trips to Lyon\"),\r\n \"Trips to Marseille\": _TL_(\"Trips to Marseille\"),\r\n \"Trips to Nice\": _TL_(\"Trips to Nice\"),\r\n \"Trips to Paris\": _TL_(\"Trips to Paris\"),\r\n \"Trips to Toulouse\": _TL_(\"Trips to Toulouse\"),\r\n \"Trips to Germany\": _TL_(\"Trips to Germany\"),\r\n \"Trips to Berlin\": _TL_(\"Trips to Berlin\"),\r\n \"Trips to Cologne\": _TL_(\"Trips to Cologne\"),\r\n \"Trips to Dusseldorf\": _TL_(\"Trips to Dusseldorf\"),\r\n \"Trips to Frankfurt\": _TL_(\"Trips to Frankfurt\"),\r\n \"Trips to Hamburg\": _TL_(\"Trips to Hamburg\"),\r\n \"Trips to Munich\": _TL_(\"Trips to Munich\"),\r\n \"Trips to Stuttgart\": _TL_(\"Trips to Stuttgart\"),\r\n \"Trips to Greece\": _TL_(\"Trips to Greece\"),\r\n \"Trips to Helsinki\": _TL_(\"Trips to Helsinki\"),\r\n \"Trips to Hungary\": _TL_(\"Trips to Hungary\"),\r\n \"Trips to Budapest\": _TL_(\"Trips to Budapest\"),\r\n \"Trips to Iceland\": _TL_(\"Trips to Iceland\"),\r\n \"Trips to Ireland\": _TL_(\"Trips to Ireland\"),\r\n \"Trips to Dublin\": _TL_(\"Trips to Dublin\"),\r\n \"Trips to Italy\": _TL_(\"Trips to Italy\"),\r\n \"Trips to Bologna\": _TL_(\"Trips to Bologna\"),\r\n \"Trips to Florence\": _TL_(\"Trips to Florence\"),\r\n \"Trips to Milan\": _TL_(\"Trips to Milan\"),\r\n \"Trips to Naples\": _TL_(\"Trips to Naples\"),\r\n \"Trips to Rome\": _TL_(\"Trips to Rome\"),\r\n \"Trips to Sicily\": _TL_(\"Trips to Sicily\"),\r\n \"Trips to Venice\": _TL_(\"Trips to Venice\"),\r\n \"Trips to Kiev\": _TL_(\"Trips to Kiev\"),\r\n \"Trips to Malta\": _TL_(\"Trips to Malta\"),\r\n \"Trips to Moscow\": _TL_(\"Trips to Moscow\"),\r\n \"Trips to Oslo\": _TL_(\"Trips to Oslo\"),\r\n \"Trips to Poland\": _TL_(\"Trips to Poland\"),\r\n \"Trips to Krakow\": _TL_(\"Trips to Krakow\"),\r\n \"Trips to Warsaw\": _TL_(\"Trips to Warsaw\"),\r\n \"Trips to Portugal\": _TL_(\"Trips to Portugal\"),\r\n \"Trips to Faro\": _TL_(\"Trips to Faro\"),\r\n \"Trips to Lisbon\": _TL_(\"Trips to Lisbon\"),\r\n \"Trips to Porto\": _TL_(\"Trips to Porto\"),\r\n \"Trips to Prague\": _TL_(\"Trips to Prague\"),\r\n \"Trips to Romania\": _TL_(\"Trips to Romania\"),\r\n \"Trips to Sofia\": _TL_(\"Trips to Sofia\"),\r\n \"Trips to Spain\": _TL_(\"Trips to Spain\"),\r\n \"Trips to Alicante\": _TL_(\"Trips to Alicante\"),\r\n \"Trips to Barcelona\": _TL_(\"Trips to Barcelona\"),\r\n \"Trips to Bilbao\": _TL_(\"Trips to Bilbao\"),\r\n \"Trips to Cordoba\": _TL_(\"Trips to Cordoba\"),\r\n \"Trips to Granada\": _TL_(\"Trips to Granada\"),\r\n \"Trips to Madrid\": _TL_(\"Trips to Madrid\"),\r\n \"Trips to Malaga\": _TL_(\"Trips to Malaga\"),\r\n \"Trips to Mallorca, Ibiza & Balearic Islands\": _TL_(\"Trips to Mallorca, Ibiza & Balearic Islands\"),\r\n \"Trips to Seville\": _TL_(\"Trips to Seville\"),\r\n \"Trips to the Canary Islands\": _TL_(\"Trips to the Canary Islands\"),\r\n \"Trips to Valencia\": _TL_(\"Trips to Valencia\"),\r\n \"Trips to St. Petersburg\": _TL_(\"Trips to St. Petersburg\"),\r\n \"Trips to Sweden\": _TL_(\"Trips to Sweden\"),\r\n \"Trips to Stockholm\": _TL_(\"Trips to Stockholm\"),\r\n \"Trips to Switzerland\": _TL_(\"Trips to Switzerland\"),\r\n \"Trips to Geneva\": _TL_(\"Trips to Geneva\"),\r\n \"Trips to Zurich\": _TL_(\"Trips to Zurich\"),\r\n \"Trips to the UK\": _TL_(\"Trips to the UK\"),\r\n \"Trips to Birmingham, UK\": _TL_(\"Trips to Birmingham, UK\"),\r\n \"Trips to Edinburgh\": _TL_(\"Trips to Edinburgh\"),\r\n \"Trips to Glasgow\": _TL_(\"Trips to Glasgow\"),\r\n \"Trips to London, UK\": _TL_(\"Trips to London, UK\"),\r\n \"Trips to Manchester, UK\": _TL_(\"Trips to Manchester, UK\"),\r\n \"Trips to Turkey\": _TL_(\"Trips to Turkey\"),\r\n \"Trips to Ankara\": _TL_(\"Trips to Ankara\"),\r\n \"Trips to Antalya\": _TL_(\"Trips to Antalya\"),\r\n \"Trips to Istanbul\": _TL_(\"Trips to Istanbul\"),\r\n \"Trips to Izmir\": _TL_(\"Trips to Izmir\"),\r\n \"Trips to Vienna\": _TL_(\"Trips to Vienna\"),\r\n \"Trips to Latin America\": _TL_(\"Trips to Latin America\"),\r\n \"Trips to Bogota\": _TL_(\"Trips to Bogota\"),\r\n \"Trips to Brazil\": _TL_(\"Trips to Brazil\"),\r\n \"Trips to Rio de Janeiro\": _TL_(\"Trips to Rio de Janeiro\"),\r\n \"Trips to Salvador\": _TL_(\"Trips to Salvador\"),\r\n \"Trips to São Paulo\": _TL_(\"Trips to São Paulo\"),\r\n \"Trips to Buenos Aires\": _TL_(\"Trips to Buenos Aires\"),\r\n \"Trips to Costa Rica\": _TL_(\"Trips to Costa Rica\"),\r\n \"Trips to Guatemala\": _TL_(\"Trips to Guatemala\"),\r\n \"Trips to Lima\": _TL_(\"Trips to Lima\"),\r\n \"Trips to Mexico\": _TL_(\"Trips to Mexico\"),\r\n \"Trips to Acapulco\": _TL_(\"Trips to Acapulco\"),\r\n \"Trips to Cancun & Playa del Carmen\": _TL_(\"Trips to Cancun & Playa del Carmen\"),\r\n \"Trips to Guadalajara\": _TL_(\"Trips to Guadalajara\"),\r\n \"Trips to Los Cabos\": _TL_(\"Trips to Los Cabos\"),\r\n \"Trips to Mexico City\": _TL_(\"Trips to Mexico City\"),\r\n \"Trips to Monterrey\": _TL_(\"Trips to Monterrey\"),\r\n \"Trips to Puerto Vallarta\": _TL_(\"Trips to Puerto Vallarta\"),\r\n \"Trips to Panama\": _TL_(\"Trips to Panama\"),\r\n \"Trips to Santiago\": _TL_(\"Trips to Santiago\"),\r\n \"Trips to the Caribbean\": _TL_(\"Trips to the Caribbean\"),\r\n \"Trips to Aruba\": _TL_(\"Trips to Aruba\"),\r\n \"Trips to Cuba\": _TL_(\"Trips to Cuba\"),\r\n \"Trips to Jamaica\": _TL_(\"Trips to Jamaica\"),\r\n \"Trips to Nassau\": _TL_(\"Trips to Nassau\"),\r\n \"Trips to Puerto Rico\": _TL_(\"Trips to Puerto Rico\"),\r\n \"Trips to the Dominican Republic\": _TL_(\"Trips to the Dominican Republic\"),\r\n \"Trips to North America\": _TL_(\"Trips to North America\"),\r\n \"Trips to Canada\": _TL_(\"Trips to Canada\"),\r\n \"Trips to Calgary\": _TL_(\"Trips to Calgary\"),\r\n \"Trips to Montreal\": _TL_(\"Trips to Montreal\"),\r\n \"Trips to Ottawa\": _TL_(\"Trips to Ottawa\"),\r\n \"Trips to Toronto\": _TL_(\"Trips to Toronto\"),\r\n \"Trips to Vancouver\": _TL_(\"Trips to Vancouver\"),\r\n \"Trips to the US\": _TL_(\"Trips to the US\"),\r\n \"Trips to Alaska\": _TL_(\"Trips to Alaska\"),\r\n \"Trips to Albuquerque\": _TL_(\"Trips to Albuquerque\"),\r\n \"Trips to Atlanta\": _TL_(\"Trips to Atlanta\"),\r\n \"Trips to Atlantic City\": _TL_(\"Trips to Atlantic City\"),\r\n \"Trips to Austin\": _TL_(\"Trips to Austin\"),\r\n \"Trips to Baltimore\": _TL_(\"Trips to Baltimore\"),\r\n \"Trips to Birmingham, AL\": _TL_(\"Trips to Birmingham, AL\"),\r\n \"Trips to Boston\": _TL_(\"Trips to Boston\"),\r\n \"Trips to Buffalo-Rochester Area\": _TL_(\"Trips to Buffalo-Rochester Area\"),\r\n \"Trips to California\": _TL_(\"Trips to California\"),\r\n \"Trips to Los Angeles\": _TL_(\"Trips to Los Angeles\"),\r\n \"Trips to Orange County, CA\": _TL_(\"Trips to Orange County, CA\"),\r\n \"Trips to San Diego\": _TL_(\"Trips to San Diego\"),\r\n \"Trips to San Francisco Bay Area\": _TL_(\"Trips to San Francisco Bay Area\"),\r\n \"Trips to Charleston, SC\": _TL_(\"Trips to Charleston, SC\"),\r\n \"Trips to Charlotte\": _TL_(\"Trips to Charlotte\"),\r\n \"Trips to Chicago\": _TL_(\"Trips to Chicago\"),\r\n \"Trips to Cincinnati\": _TL_(\"Trips to Cincinnati\"),\r\n \"Trips to Cleveland\": _TL_(\"Trips to Cleveland\"),\r\n \"Trips to Columbus\": _TL_(\"Trips to Columbus\"),\r\n \"Trips to Dallas-Fort Worth\": _TL_(\"Trips to Dallas-Fort Worth\"),\r\n \"Trips to Denver\": _TL_(\"Trips to Denver\"),\r\n \"Trips to Detroit\": _TL_(\"Trips to Detroit\"),\r\n \"Trips to Florida\": _TL_(\"Trips to Florida\"),\r\n \"Trips to Fort Lauderdale\": _TL_(\"Trips to Fort Lauderdale\"),\r\n \"Trips to Fort Myers\": _TL_(\"Trips to Fort Myers\"),\r\n \"Trips to Jacksonville\": _TL_(\"Trips to Jacksonville\"),\r\n \"Trips to Key West\": _TL_(\"Trips to Key West\"),\r\n \"Trips to Miami\": _TL_(\"Trips to Miami\"),\r\n \"Trips to Orlando\": _TL_(\"Trips to Orlando\"),\r\n \"Trips to Pensacola\": _TL_(\"Trips to Pensacola\"),\r\n \"Trips to Tampa Bay Area\": _TL_(\"Trips to Tampa Bay Area\"),\r\n \"Trips to Gatlinburg\": _TL_(\"Trips to Gatlinburg\"),\r\n \"Trips to Greenville, SC\": _TL_(\"Trips to Greenville, SC\"),\r\n \"Trips to Hartford\": _TL_(\"Trips to Hartford\"),\r\n \"Trips to Hawaii\": _TL_(\"Trips to Hawaii\"),\r\n \"Trips to Maui\": _TL_(\"Trips to Maui\"),\r\n \"Trips to Oahu\": _TL_(\"Trips to Oahu\"),\r\n \"Trips to the Big Island\": _TL_(\"Trips to the Big Island\"),\r\n \"Trips to Houston\": _TL_(\"Trips to Houston\"),\r\n \"Trips to Indianapolis\": _TL_(\"Trips to Indianapolis\"),\r\n \"Trips to Kansas City\": _TL_(\"Trips to Kansas City\"),\r\n \"Trips to Las Vegas\": _TL_(\"Trips to Las Vegas\"),\r\n \"Trips to Little Rock\": _TL_(\"Trips to Little Rock\"),\r\n \"Trips to Louisville\": _TL_(\"Trips to Louisville\"),\r\n \"Trips to Memphis\": _TL_(\"Trips to Memphis\"),\r\n \"Trips to Milwaukee\": _TL_(\"Trips to Milwaukee\"),\r\n \"Trips to Minneapolis-Saint Paul\": _TL_(\"Trips to Minneapolis-Saint Paul\"),\r\n \"Trips to Myrtle Beach & Grand Strand\": _TL_(\"Trips to Myrtle Beach & Grand Strand\"),\r\n \"Trips to Nashville\": _TL_(\"Trips to Nashville\"),\r\n \"Trips to New Orleans\": _TL_(\"Trips to New Orleans\"),\r\n \"Trips to New York City\": _TL_(\"Trips to New York City\"),\r\n \"Trips to Norfolk-Virginia Beach Region\": _TL_(\"Trips to Norfolk-Virginia Beach Region\"),\r\n \"Trips to Ocean City, MD\": _TL_(\"Trips to Ocean City, MD\"),\r\n \"Trips to Oklahoma City\": _TL_(\"Trips to Oklahoma City\"),\r\n \"Trips to Omaha\": _TL_(\"Trips to Omaha\"),\r\n \"Trips to Philadelphia\": _TL_(\"Trips to Philadelphia\"),\r\n \"Trips to Phoenix\": _TL_(\"Trips to Phoenix\"),\r\n \"Trips to Pittsburgh\": _TL_(\"Trips to Pittsburgh\"),\r\n \"Trips to Portland, OR\": _TL_(\"Trips to Portland, OR\"),\r\n \"Trips to Raleigh-Durham Area\": _TL_(\"Trips to Raleigh-Durham Area\"),\r\n \"Trips to Reno\": _TL_(\"Trips to Reno\"),\r\n \"Trips to Richmond, VA\": _TL_(\"Trips to Richmond, VA\"),\r\n \"Trips to Salt Lake City\": _TL_(\"Trips to Salt Lake City\"),\r\n \"Trips to San Antonio\": _TL_(\"Trips to San Antonio\"),\r\n \"Trips to Savannah\": _TL_(\"Trips to Savannah\"),\r\n \"Trips to Seattle\": _TL_(\"Trips to Seattle\"),\r\n \"Trips to St. Louis\": _TL_(\"Trips to St. Louis\"),\r\n \"Trips to Tucson\": _TL_(\"Trips to Tucson\"),\r\n \"Trips to Washington, D.C.\": _TL_(\"Trips to Washington, D.C.\"),\r\n \"Trips to the Middle East & Africa\": _TL_(\"Trips to the Middle East & Africa\"),\r\n \"Trips to Doha\": _TL_(\"Trips to Doha\"),\r\n \"Trips to Egypt\": _TL_(\"Trips to Egypt\"),\r\n \"Trips to Israel\": _TL_(\"Trips to Israel\"),\r\n \"Trips to Jeddah\": _TL_(\"Trips to Jeddah\"),\r\n \"Trips to Jordan\": _TL_(\"Trips to Jordan\"),\r\n \"Trips to Kenya\": _TL_(\"Trips to Kenya\"),\r\n \"Trips to Kuwait\": _TL_(\"Trips to Kuwait\"),\r\n \"Trips to Lebanon\": _TL_(\"Trips to Lebanon\"),\r\n \"Trips to Morocco\": _TL_(\"Trips to Morocco\"),\r\n \"Trips to Riyadh\": _TL_(\"Trips to Riyadh\"),\r\n \"Trips to South Africa\": _TL_(\"Trips to South Africa\"),\r\n \"Trips to Cape Town\": _TL_(\"Trips to Cape Town\"),\r\n \"Trips to Johannesburg\": _TL_(\"Trips to Johannesburg\"),\r\n \"Trips to Tehran\": _TL_(\"Trips to Tehran\"),\r\n \"Trips to the United Arab Emirates\": _TL_(\"Trips to the United Arab Emirates\"),\r\n \"Trips to Abu Dhabi\": _TL_(\"Trips to Abu Dhabi\"),\r\n \"Trips to Dubai\": _TL_(\"Trips to Dubai\"),\r\n \"Vacation Packages\": _TL_(\"Vacation Packages\"),\r\n \"Vehicle Tires & Tire Parts\": _TL_(\"Vehicle Tires & Tire Parts\"),\r\n};\r\n","import { map } from 'underscore';\r\nimport React, { useContext, useCallback, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { DropdownTreeSelect } from '@bingads-webui-campaign-react/dropdown-tree-select';\r\nimport { ActionButton, IconButton } from '@fluentui/react';\r\nimport { Tooltip } from '@fluentui/react-components';\r\nimport { formatReachEstimation } from '@bingads-webui-campaign-react/ima-reach-representation';\r\n\r\nimport { getAudienceValue } from '../utils/audience-signal';\r\nimport { SectionShimmer } from './shimmer-element';\r\nimport { AUDIENCE_MAP } from '../utils/audience-name-mapping';\r\n\r\nconst getAudienceI18nName = (i18n, audienceName) => {\r\n const key = getAudienceValue(audienceName);\r\n return AUDIENCE_MAP[key] ? i18n.getString(AUDIENCE_MAP[key]) : key;\r\n};\r\n\r\nexport const AudienceInterests = React.memo(({\r\n isLoading,\r\n data,\r\n onDataChange,\r\n classes,\r\n customHeadline,\r\n}) => {\r\n const i18n = useContext(I18nContext);\r\n\r\n const { audienceListInFlatTree, interests = [], valueToFlatItem = {} } = data || {};\r\n\r\n const [openItems, setOpenItems] = useState([]);\r\n\r\n const onChangeInterests = useCallback((newInterests) => {\r\n onDataChange({ interests: newInterests });\r\n }, [onDataChange]);\r\n\r\n const onRemoveInterests = useCallback((index) => {\r\n const newInterest = [\r\n ...interests.slice(0, index),\r\n ...interests.slice(index + 1),\r\n ];\r\n onChangeInterests(newInterest);\r\n }, [interests, onChangeInterests]);\r\n\r\n const onRemoveAllInterests = useCallback(() => {\r\n onChangeInterests([]);\r\n }, [onChangeInterests]);\r\n\r\n const onRenderTreeItem = useCallback(item => getAudienceI18nName(i18n, item.value), [i18n]);\r\n const customTreeItemFilter = useCallback((item, searchQuery) => {\r\n const audienceI18nName = getAudienceI18nName(i18n, item.value) || '';\r\n\r\n return audienceI18nName.toLowerCase().includes(searchQuery.toLowerCase());\r\n }, [i18n]);\r\n\r\n const onRenderTooltip = useCallback((item = {}) => {\r\n const {\r\n value,\r\n parentValue,\r\n reachEstimation,\r\n itemType,\r\n 'aria-level': ariaLevel,\r\n } = item;\r\n\r\n const isRootLeaf = (ariaLevel === 1 && itemType === 'leaf') || (parentValue === undefined && value);\r\n\r\n return (\r\n
\r\n
\r\n {!isRootLeaf &&
{getAudienceI18nName(i18n, parentValue)}
}\r\n
{getAudienceI18nName(i18n, value)}
\r\n
\r\n
\r\n {i18n.getString(_TL_('List size: '))}\r\n {formatReachEstimation(reachEstimation, i18n)}\r\n
\r\n
\r\n );\r\n }, [classes, i18n]);\r\n\r\n if (isLoading) {\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
{customHeadline || i18n.getString(_TL_('Add interests'))}
\r\n \r\n {i18n.getString(_TL_('Remove all'))}\r\n \r\n
\r\n {\r\n interests.length > 0 && (\r\n
\r\n {\r\n map(interests, (name, index) => (\r\n \r\n
\r\n {getAudienceI18nName(i18n, name)}\r\n onRemoveInterests(index)}\r\n />\r\n
\r\n \r\n ))\r\n }\r\n
\r\n )\r\n }\r\n \r\n
\r\n );\r\n});\r\n\r\nAudienceInterests.propTypes = {\r\n isLoading: PropTypes.bool.isRequired,\r\n data: PropTypes.shape({}).isRequired,\r\n onDataChange: PropTypes.func.isRequired,\r\n customHeadline: PropTypes.string,\r\n classes: PropTypes.shape({\r\n interestsHeader: PropTypes.string.isRequired,\r\n tooltip: PropTypes.string.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nAudienceInterests.defaultProps = {\r\n customHeadline: null,\r\n};\r\n","import React, { useContext, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { FontIcon } from '@fluentui/react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Alert } from '@bingads-webui-react/alert';\r\nimport {\r\n Demographic,\r\n AgeRanges,\r\n Genders,\r\n formatAgeRange,\r\n formatGender\r\n} from '@bingads-webui-campaign-react/audience-demographic';\r\n\r\nimport { SectionShimmer } from './shimmer-element';\r\n\r\nexport const AudienceDemographics = React.memo(({\r\n isLoading,\r\n data,\r\n onDataChange,\r\n classes,\r\n}) => {\r\n const i18n = useContext(I18nContext);\r\n\r\n const { ageRanges = [], genderTypes = [] } = data || {};\r\n\r\n const onChangeAgeTypes = useCallback(newAgeRanges => onDataChange({ ageRanges: newAgeRanges }), [onDataChange]);\r\n const onChangeGenderTypes = useCallback(newGenderTypes => (\r\n onDataChange({ genderTypes: newGenderTypes })\r\n ), [onDataChange]);\r\n\r\n if (isLoading) {\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n )}\r\n message={i18n.getString(_TL_('We recommend you leave demographics set broadly, but you can adjust here.'))}\r\n />\r\n \r\n \r\n
\r\n );\r\n});\r\n\r\nAudienceDemographics.propTypes = {\r\n isLoading: PropTypes.bool.isRequired,\r\n data: PropTypes.shape({}).isRequired,\r\n onDataChange: PropTypes.func.isRequired,\r\n classes: PropTypes.shape({\r\n demographicsContainer: PropTypes.string.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nAudienceDemographics.defaultProps = {};\r\n","/* eslint-disable max-len */\r\nimport React, { useContext, useCallback, useMemo } from 'react';\r\nimport _ from 'underscore';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { FontIcon } from '@fluentui/react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Collapse, TextTitle, useCollapseState, TitleBarError } from '@bingads-webui-campaign/wizard-jumbo-card';\r\n\r\nimport InterestIcon from '../media/interest.svg';\r\nimport DemographicIcon from '../media/demographic.svg';\r\nimport SparkleImg from '../media/sparkle.svg';\r\n\r\nimport { AudienceInterests } from './audience-interests';\r\nimport { AudienceDemographics } from './audience-demographics';\r\nimport { useTargetInstrument } from '../use-target-instrument';\r\nimport { getDemographicsDetails } from '../utils/common';\r\n\r\nexport const CollapsibleAudienceSignal = ({\r\n classes,\r\n isLoading,\r\n data,\r\n onDataChange,\r\n}) => {\r\n const i18n = useContext(I18nContext);\r\n const { audienceSignalLogger } = useTargetInstrument();\r\n\r\n const { audiencesSignal } = data || {};\r\n const {\r\n interests = [],\r\n ageRanges = [],\r\n genderTypes = [],\r\n genderErrors,\r\n ageErrors,\r\n } = audiencesSignal || {};\r\n\r\n const [\r\n allSections,\r\n expandedSections,\r\n setExpandedSections,\r\n ] = useCollapseState(\r\n ['interests', 'demographics'],\r\n ['interests', 'demographics']\r\n );\r\n\r\n const interestDetails = useMemo(() => (\r\n
\r\n {\r\n _.map(interests, interest => (\r\n {interest}\r\n ))\r\n }\r\n
\r\n ), [classes, interests]);\r\n\r\n const demographicsDetails = useMemo(() => {\r\n const details = getDemographicsDetails(ageRanges, genderTypes, i18n);\r\n if (!details) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n \r\n {details}\r\n
\r\n );\r\n }, [ageRanges, genderTypes, i18n, classes]);\r\n\r\n const onAudienceChange = useCallback((newAudiences) => {\r\n onDataChange({\r\n data: prevData => ({\r\n ...prevData,\r\n audiencesSignal: {\r\n ...prevData.audiencesSignal,\r\n ...newAudiences,\r\n },\r\n }),\r\n });\r\n }, [onDataChange]);\r\n\r\n return (\r\n
\r\n
\r\n

\r\n {i18n.getString(_TL_('Audience signals'))} \r\n {i18n.getString(_TL_('(OPTIONAL)'))}\r\n

\r\n
\r\n \"\"\r\n {i18n.getString(_TL_('Performance Max finds the right audience for you'))}\r\n {i18n.getString(_TL_('We’ll use an audience signal to use as a starting point to reach the right customers.'))}\r\n
\r\n
\r\n \r\n }\r\n >\r\n \r\n \r\n }\r\n error={!_.contains(expandedSections, 'demographics') && }\r\n >\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nCollapsibleAudienceSignal.propTypes = {\r\n isLoading: PropTypes.bool.isRequired,\r\n data: PropTypes.shape({}).isRequired,\r\n onDataChange: PropTypes.func.isRequired,\r\n classes: PropTypes.shape({\r\n descriptionContainer: PropTypes.string.isRequired,\r\n h3LabelOptional: PropTypes.string.isRequired,\r\n audienceSignalDescription: PropTypes.string.isRequired,\r\n interestDetails: PropTypes.string.isRequired,\r\n demographicsDetails: PropTypes.string.isRequired,\r\n }).isRequired,\r\n};\r\n\r\nCollapsibleAudienceSignal.defaultProps = {};\r\n","import React, { useContext, useCallback } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { Collapse, TextTitle, useCollapseState } from '@bingads-webui-campaign/wizard-jumbo-card';\r\nimport { SearchThemeSelector } from '@bingads-webui-campaign-react/search-theme-selector';\r\n\r\nimport SearchThemesIcon from '../media/search-themes.svg';\r\n\r\nimport { SectionShimmer } from './shimmer-element';\r\nimport { getSearchThemeDetails } from '../utils/common';\r\nimport { useTargetInstrument } from '../use-target-instrument';\r\n\r\nconst getSearchThemeSelectorStyle = () => ({\r\n searchThemes: {\r\n '& .search-theme-selector-alert .alert-warning': {\r\n '& .alert-image': {\r\n marginRight: '0.5rem',\r\n },\r\n '& .close': {\r\n marginLeft: '0.5rem',\r\n fontSize: 'inherit',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const CollapsibleSearchThemes = ({\r\n data,\r\n onDataChange,\r\n isLoading,\r\n}) => {\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getSearchThemeSelectorStyle);\r\n const { searchThemesLogger } = useTargetInstrument();\r\n\r\n const { searchThemes } = data || {};\r\n\r\n const [\r\n allSections,\r\n expandedSections,\r\n setExpandedSections,\r\n ] = useCollapseState(['search-themes'], ['search-themes']);\r\n\r\n const searchThemesDetails = getSearchThemeDetails(i18n, searchThemes);\r\n\r\n const onSearchThemesChange = useCallback((newSearchThemes) => {\r\n searchThemesLogger.trace(`Change search themes: ${JSON.stringify(newSearchThemes)}`);\r\n onDataChange({\r\n data: prevData => ({\r\n ...prevData,\r\n searchThemes: newSearchThemes,\r\n }),\r\n });\r\n }, [onDataChange, searchThemesLogger]);\r\n\r\n return (\r\n \r\n }\r\n >\r\n {\r\n isLoading &&\r\n \r\n }\r\n {\r\n !isLoading &&\r\n
\r\n \r\n
\r\n }\r\n \r\n
\r\n );\r\n};\r\n\r\nCollapsibleSearchThemes.propTypes = {\r\n data: PropTypes.shape({}).isRequired,\r\n onDataChange: PropTypes.func.isRequired,\r\n isLoading: PropTypes.bool,\r\n};\r\n\r\nCollapsibleSearchThemes.defaultProps = {\r\n isLoading: false,\r\n};\r\n","/**\r\n * For impressions and clicks, 0-2 decimal places\r\n */\r\nexport const impreAndClicksOptions = {\r\n compact: 'short',\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: 2,\r\n};\r\n\r\n/**\r\n * For no decimals, 0 decimal places\r\n */\r\nexport const noDecimalOptions = {\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: 0,\r\n};\r\n\r\nexport const formatBigDecimal = (value, i18n, boundary = 999999) => {\r\n if (value > boundary) {\r\n return i18n.formatDecimal(value, impreAndClicksOptions);\r\n }\r\n return i18n.formatDecimal(value, noDecimalOptions);\r\n};\r\n","import _ from 'underscore';\r\nimport { LocationTarget } from '@bingads-webui-react/bing-maps';\r\n\r\nexport const McaTargetModel = {\r\n LocationTarget: '#Model.LocationTarget',\r\n RadiusTarget: '#Model.RadiusTarget',\r\n AgeTarget: '#Model.AgeTarget',\r\n GenderTarget: '#Model.GenderTarget',\r\n};\r\n\r\nexport const DEFAULT_RADIUS_SIZE = 25;\r\nexport const DEFAULT_RADIUS_UNIT = 'mi';\r\nexport const MIN_LOCATION_TARGETS = 1;\r\nexport const MAX_LOCATION_TARGETS = 100;\r\nexport const MI_RADIUS_UNIT = 'mi';\r\nexport const KM_RADIUS_UNIT = 'km';\r\n\r\nexport const McaRadiusUnit = {\r\n Miles: 'Miles',\r\n Kilometers: 'Kilometers',\r\n};\r\n\r\nexport const formatSuggestedLocation = (location) => {\r\n const {\r\n LocationType,\r\n CountryCode,\r\n Latitude,\r\n Longitude,\r\n BingLocationId,\r\n Name,\r\n localizationKey,\r\n } = location;\r\n\r\n const locationData = {\r\n Type: LocationType,\r\n CountryCode,\r\n ExpandedName: !_.isEmpty(localizationKey) ? localizationKey : Name,\r\n GeoPoint: {\r\n Latitude,\r\n Longitude,\r\n },\r\n Id: BingLocationId,\r\n };\r\n\r\n return LocationTarget.CreateIncludedLocationTarget(locationData);\r\n};\r\n\r\nexport const convertFromLocationTarget = (locationTarget) => {\r\n // see: private/MultiChannelAds/BusinessMT/Model/Ads/Target.cs\r\n const mcaTarget = {\r\n Name: locationTarget.ExpandedName,\r\n Latitude: locationTarget.Latitude,\r\n Longitude: locationTarget.Longitude,\r\n BingLocationId: locationTarget.LocationId,\r\n CountryCode: locationTarget.CountryCode,\r\n };\r\n\r\n // set Id if it is available\r\n if (locationTarget.Id) {\r\n mcaTarget.Id = locationTarget.Id;\r\n }\r\n\r\n // find City and State values in locationTarget.location.ParentLocations array\r\n _.each(_.get(locationTarget, ['location', 'ParentLocations']), (parent) => {\r\n if (!mcaTarget.City && parent.Type === 'City') {\r\n mcaTarget.City = parent.ExpandedName;\r\n } else if (!mcaTarget.State && parent.Type === 'SubGeography') {\r\n mcaTarget.State = parent.ExpandedName;\r\n }\r\n });\r\n\r\n if (locationTarget.isRadiusLocationTarget) {\r\n // see: private/MultiChannelAds/BusinessMT/Model/Ads/RadiusTarget.cs\r\n _.extend(mcaTarget, {\r\n '@odata.type': McaTargetModel.RadiusTarget,\r\n BingLocationId: 0,\r\n RadiusLength: locationTarget.radiusSize,\r\n RadiusUnit: locationTarget.radiusUnit === KM_RADIUS_UNIT ? McaRadiusUnit.Kilometers : McaRadiusUnit.Miles,\r\n });\r\n } else {\r\n // see: private/MultiChannelAds/BusinessMT/Model/Ads/LocationTarget.cs\r\n _.extend(mcaTarget, {\r\n '@odata.type': McaTargetModel.LocationTarget,\r\n LocationType: locationTarget.LocationType,\r\n });\r\n }\r\n\r\n return mcaTarget;\r\n};\r\n","import _ from 'underscore';\r\nimport { convertFromLocationTarget } from './location-targets';\r\n\r\nexport const unitValueMap = {\r\n None: {\r\n value: 1,\r\n unit: '',\r\n },\r\n Thousand: {\r\n value: 1000,\r\n unit: 'K',\r\n },\r\n Million: {\r\n value: 1000000,\r\n unit: 'M',\r\n },\r\n Billion: {\r\n value: 1000000000,\r\n unit: 'B',\r\n },\r\n};\r\n\r\nexport const getEstimationAudienceValueV2 = (estimationDataV2) => {\r\n const estimationAudienceUnit = _.get(estimationDataV2, ['EstAudienceSize', 'Unit']) || 'None';\r\n const estimationAudienceValue = unitValueMap[estimationAudienceUnit].value * (_.get(estimationDataV2, ['EstAudienceSize', 'Value']) || 0);\r\n return estimationAudienceValue;\r\n};\r\n\r\nexport const getFormattedTargetsPayload = (data, isV2) => {\r\n const {\r\n targets = {},\r\n audiencesSignal = {},\r\n } = data || {};\r\n\r\n const {\r\n ageRanges = [],\r\n genderTypes = [],\r\n audienceListInFlatTree = [],\r\n interests = [],\r\n } = audiencesSignal;\r\n\r\n if (isV2) {\r\n return ({\r\n Age: {\r\n Includes: ageRanges,\r\n Excludes: [],\r\n },\r\n Gender: {\r\n Includes: genderTypes,\r\n Excludes: [],\r\n },\r\n Audience: {\r\n Includes: _.map(_.map(interests, interest => _.find(audienceListInFlatTree, aud => _.get(aud, 'value', '') === interest)), o => _.get(o, 'id')),\r\n Excludes: [],\r\n },\r\n Location: {\r\n Includes: _.compact(_.get(targets, 'positiveLocationTargets', []).map(locationTarget => _.get(locationTarget, ['location', 'Id']))),\r\n Excludes: _.compact(_.get(targets, 'negativeLocationTargets', []).map(locationTarget => _.get(locationTarget, ['location', 'Id']))),\r\n },\r\n // comment out the following fields as pmax campaign type is not supported in the API\r\n // CampaignBiddingStrategy: null,\r\n // AutoTargeting: true,\r\n // CampaignSubType: null,\r\n });\r\n }\r\n\r\n return _.map(\r\n _.get(targets, 'positiveLocationTargets', []),\r\n (locationTarget) => {\r\n const formattedTarget = convertFromLocationTarget(locationTarget);\r\n formattedTarget.Id = String(formattedTarget.Id);\r\n\r\n return formattedTarget;\r\n }\r\n );\r\n};\r\n","import React, { useContext, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { PerformanceTile } from '@bingads-webui-campaign-react/performance-tile';\r\nimport {\r\n useAudienceReachEstimationV2,\r\n} from '@bingads-webui-campaign-react/pmax-lite-data';\r\n\r\nimport { formatBigDecimal } from '../utils/format-big-decimal';\r\nimport { getEstimationAudienceValueV2, getFormattedTargetsPayload } from '../utils/audience-estimation';\r\n\r\nexport const TargetingEstimation = ({ data }) => {\r\n const i18n = useContext(I18nContext);\r\n\r\n const formattedTargets = useMemo(() => (\r\n getFormattedTargetsPayload(data, true)\r\n ), [data]);\r\n\r\n const [{\r\n isLoading: isRecommendationDataLoadingV2,\r\n data: estimationDataV2,\r\n }] = useAudienceReachEstimationV2(formattedTargets, !!data);\r\n\r\n const estimations = useMemo(() => {\r\n const estimationAudienceValue = getEstimationAudienceValueV2(estimationDataV2);\r\n if (estimationAudienceValue === 0) {\r\n return null;\r\n }\r\n return [{\r\n className: 'audience-reach',\r\n title: i18n.getString(_TL_('Audience size')),\r\n dashColor: '#00188F',\r\n estimation: formatBigDecimal(estimationAudienceValue, i18n),\r\n }];\r\n }, [estimationDataV2, i18n]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nTargetingEstimation.propTypes = {\r\n data: PropTypes.shape({}),\r\n};\r\n\r\nTargetingEstimation.defaultProps = {\r\n data: undefined,\r\n};\r\n","export const getTargetingStepStyle = (_, { palette }) => ({\r\n stepShell: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n '& .step-title': {\r\n margin: 0,\r\n fontWeight: 'bold',\r\n fontSize: 26,\r\n lineHeight: '36px',\r\n },\r\n '& .step-description': {\r\n margin: '16px 0 0 0',\r\n fontSize: 14,\r\n color: palette.neutralSecondary,\r\n lineHeight: '20px',\r\n },\r\n '& .collapse-panel:not(.isCollapse)': {\r\n '& .collapse-title-bar': {\r\n borderBottom: `1px solid ${palette.neutralLight}`,\r\n },\r\n },\r\n },\r\n 'stepShell-s': {\r\n '& .step-title': {\r\n fontSize: 20,\r\n lineHeight: '26px',\r\n },\r\n },\r\n mainContent: {\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n minWidth: 300,\r\n },\r\n 'mainContent-l': {\r\n flexDirection: 'column',\r\n '& .performance-tile-container': {\r\n position: 'static',\r\n },\r\n },\r\n 'mainContent-m': {\r\n flexDirection: 'column',\r\n maxWidth: 480,\r\n '& .performance-tile-container': {\r\n position: 'static',\r\n },\r\n },\r\n 'mainContent-s': {\r\n flexDirection: 'column',\r\n maxWidth: 400,\r\n '& .performance-tile-container': {\r\n position: 'absolute',\r\n },\r\n },\r\n estimationPart: {\r\n minWidth: 300,\r\n position: 'sticky',\r\n top: 24,\r\n },\r\n targetsPart: {\r\n marginRight: 26,\r\n flex: 1,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n maxWidth: 680,\r\n '& .title-item': {\r\n width: 'auto',\r\n maxWidth: '100%',\r\n },\r\n '& .error-string-wrapper': {\r\n left: '160px',\r\n right: '46px',\r\n display: 'flex',\r\n '& span': {\r\n marginLeft: 'auto',\r\n },\r\n },\r\n '& .collapse-panel': {\r\n padding: 0,\r\n '& .collapse-title-bar': {\r\n padding: 24,\r\n },\r\n '& .helpbutton': {\r\n '&::before': {\r\n verticalAlign: 'initial',\r\n },\r\n },\r\n '& .collapse-content.content-show': {\r\n padding: '16px 24px',\r\n },\r\n },\r\n '& .interests': {\r\n '& .collapse-content.content-show': {\r\n overflow: 'visible',\r\n },\r\n },\r\n '& .audience-dimensions': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flexWrap: 'wrap',\r\n gap: '4px',\r\n margin: '8px 0',\r\n\r\n '& .audience-dimension': {\r\n alignItems: 'center',\r\n backgroundColor: palette.neutralLighter,\r\n borderRadius: 3,\r\n display: 'flex',\r\n flexDirection: 'row',\r\n gap: '6px',\r\n fontWeight: 600,\r\n padding: '6px 2px 6px 12px',\r\n\r\n '& button': {\r\n color: palette.neutralSecondary,\r\n height: 'auto',\r\n\r\n '& .ms-Icon': {\r\n fontSize: 12,\r\n },\r\n },\r\n },\r\n },\r\n },\r\n 'targetsPart-l': {\r\n marginRight: 0,\r\n },\r\n 'targetsPart-m': {\r\n marginRight: 0,\r\n width: '100%',\r\n },\r\n 'targetsPart-s': {\r\n marginRight: 0,\r\n width: '100%',\r\n },\r\n 'estimationPart-m': {\r\n width: '100%',\r\n },\r\n 'estimationPart-s': {\r\n width: '100%',\r\n },\r\n\r\n interestsHeader: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n fontSize: 14,\r\n },\r\n\r\n demographicsContainer: {\r\n '& .alert-info .ms-Icon': {\r\n marginRight: 8,\r\n },\r\n },\r\n\r\n descriptionContainer: {\r\n marginBottom: '16px',\r\n\r\n '& .section-title': {\r\n marginBottom: '16px',\r\n },\r\n },\r\n\r\n h3LabelOptional: {\r\n fontSize: 14,\r\n color: palette.neutralSecondary,\r\n },\r\n\r\n audienceSignalDescription: {\r\n display: 'grid',\r\n gridTemplateColumns: 'auto 1fr',\r\n columnGap: 12,\r\n fontSize: 14,\r\n\r\n '& > img': {\r\n gridRow: '1 / 3',\r\n },\r\n\r\n '& .audience-signal-main-description': {\r\n fontWeight: 600,\r\n },\r\n\r\n '& .audience-signal-sub-description': {\r\n color: palette.neutralSecondary,\r\n },\r\n },\r\n\r\n tooltip: {\r\n padding: '12px 5px',\r\n\r\n '& .tooltip-header': {\r\n paddingBottom: 8,\r\n borderBottom: `1px solid ${palette.neutralLight}`,\r\n marginBottom: 8,\r\n\r\n '& .interest-category': {\r\n fontSize: 10,\r\n lineHeight: '14px',\r\n },\r\n\r\n '& .interest-name': {\r\n fontSize: 16,\r\n fontWeight: 600,\r\n lineHeight: '22px',\r\n },\r\n },\r\n\r\n '& .interest-reach': {\r\n fontSize: 14,\r\n lineHeight: '20px',\r\n\r\n '& span': {\r\n fontWeight: 600,\r\n },\r\n },\r\n },\r\n\r\n demographicsDetails: {\r\n '& i': {\r\n marginRight: 8,\r\n },\r\n },\r\n\r\n interestDetails: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n fontSize: 13,\r\n gap: '4px',\r\n\r\n '& .audience-interest': {\r\n backgroundColor: palette.neutralLighter,\r\n borderRadius: 4,\r\n padding: '4px 8px',\r\n wordBreak: 'break-word',\r\n },\r\n },\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { useResponsiveSize } from '@bingads-webui-react/with-responsive-size';\r\nimport { Constants } from '@bingads-webui-theme-2018/theme-fluent';\r\nimport { useFormService, FORM_STATES } from '@bingads-webui-react/form';\r\nimport { StepHeader } from '@bingads-webui-campaign-react/pmax-common';\r\nimport { useIsEstimationApiSupportedLocale } from '@bingads-webui-campaign-react/pmax-lite-data';\r\nimport { isSDK } from '@bingads-webui-campaign-react/sdk-utils';\r\n\r\nimport { CollapsibleLocation } from './collapsible-location';\r\nimport { CollapsibleAudienceSignal } from './collapsible-audience-signal';\r\nimport { CollapsibleSearchThemes } from './collapsible-search-themes';\r\nimport { TargetingEstimation } from './targeting-estimation';\r\nimport { getTargetingStepStyle } from '../styles/targeting-step-style';\r\n\r\nexport const TargetingStep = ({\r\n data,\r\n onDataChange,\r\n hideStepInfo,\r\n hideEstimationTile,\r\n}) => {\r\n const isAudienceSignalEnabled = !isSDK();\r\n const isSearchThemesEnabled = !isSDK();\r\n\r\n const classes = useDefaultStyles(getTargetingStepStyle);\r\n const displayMode = useResponsiveSize(Constants.ResponsiveSizeBreakpoints);\r\n const { state } = useFormService();\r\n\r\n const isLoading = state.matches(FORM_STATES.LOADING);\r\n const showEstimationTile = useIsEstimationApiSupportedLocale() && !hideEstimationTile;\r\n\r\n return (\r\n
\r\n {!hideStepInfo && }\r\n
\r\n
\r\n \r\n {\r\n isAudienceSignalEnabled && (\r\n \r\n )\r\n }\r\n {\r\n (isSearchThemesEnabled &&\r\n \r\n )\r\n }\r\n
\r\n {showEstimationTile &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n
\r\n );\r\n};\r\n\r\nTargetingStep.propTypes = {\r\n data: PropTypes.shape({}).isRequired,\r\n onDataChange: PropTypes.func.isRequired,\r\n hideStepInfo: PropTypes.bool,\r\n hideEstimationTile: PropTypes.bool,\r\n};\r\n\r\nTargetingStep.defaultProps = {\r\n hideStepInfo: false,\r\n hideEstimationTile: false,\r\n};\r\n","/* eslint-disable prefer-destructuring */\r\nimport _ from 'underscore';\r\nimport { useCallback, useContext, useMemo, useState } from 'react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { ScopeContext } from '@bingads-webui-react/scope-service';\r\nimport { handleBulkErrors } from '@bingads-webui-campaign-react/pmax-common';\r\nimport {\r\n ENTITY_ACTION_TYPES,\r\n targetOptions,\r\n LocationTargetTypes,\r\n getIntentValue,\r\n getIntentCriterionValues,\r\n getIntentCriterion,\r\n getLocationsToSave,\r\n generateIntentTargetValues,\r\n fromLocationCriterionToBingMapTarget,\r\n fromBingMapTargetToLocationTargetEDM\r\n} from '@bingads-webui-campaign-react/location-targeting';\r\nimport { readLocationCriterions, createOrUpdateCampaign } from '@bingads-webui-campaign-react/perf-max-data';\r\n\r\nexport function useTargetAdapter(logger) {\r\n const { scope } = useContext(ScopeContext);\r\n const { cid, aid, campaignId } = scope.values;\r\n\r\n const i18n = useContext(I18nContext);\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n // Maintain internal states to do comparison\r\n const [internalLocationTargets, setInternalLocationTargets] = useState([]);\r\n const [internalNegativeLocationTargets, setInternalNegativeLocationTargets] = useState([]);\r\n\r\n const [internalIntentCriterion, setInternalIntentCriterion] = useState(null);\r\n const [internalPeopleInLocation, setInternalPeopleInLocation] = useState(null);\r\n const [internalPeopleSearchingForLocation, setInternalPeopleSearchingForLocation] = useState(null);\r\n\r\n const internalPeopleInOrSearchingForLocation = internalPeopleInLocation && internalPeopleSearchingForLocation;\r\n\r\n const readTargets = useCallback(() => {\r\n setIsLoading(true);\r\n\r\n logger.trace('Start reading location criterions');\r\n return readLocationCriterions(cid, aid, campaignId).then((res) => {\r\n const criterions = res.value;\r\n logger.trace(`read location criterions: ${JSON.stringify(criterions)}`);\r\n\r\n if (_.isEmpty(criterions)) {\r\n return {};\r\n }\r\n\r\n const initialTargets = fromLocationCriterionToBingMapTarget(criterions);\r\n const intentCriterion = getIntentCriterion(criterions);\r\n\r\n const initialLocationTargets = _.filter(\r\n initialTargets,\r\n target => target.targetingType === LocationTargetTypes.Included\r\n );\r\n const initialNegativeLocationTargets = _.filter(\r\n initialTargets,\r\n target => target.targetingType === LocationTargetTypes.Excluded\r\n );\r\n\r\n const { peopleInLocation, peopleSearchingForLocation } = getIntentCriterionValues(intentCriterion);\r\n\r\n setInternalLocationTargets(initialLocationTargets);\r\n setInternalNegativeLocationTargets(initialNegativeLocationTargets);\r\n\r\n setInternalPeopleInLocation(peopleInLocation);\r\n setInternalPeopleSearchingForLocation(peopleSearchingForLocation);\r\n setInternalIntentCriterion(intentCriterion);\r\n\r\n const selectedLocationOption = (!_.isEmpty(initialLocationTargets) || !_.isEmpty(initialNegativeLocationTargets))\r\n ? targetOptions.specific\r\n : targetOptions.everywhere;\r\n\r\n return {\r\n positiveLocationTargets: initialLocationTargets,\r\n negativeLocationTargets: initialNegativeLocationTargets,\r\n isPeopleInLocationChecked: peopleInLocation,\r\n isPeopleSearchingForLocationChecked: peopleSearchingForLocation,\r\n selectedLocationOption,\r\n };\r\n }).catch((e) => {\r\n logger.error(`read location failed, body: ${campaignId}, error: ${JSON.stringify(e)}`);\r\n throw new Error(e);\r\n }).finally(() => {\r\n setIsLoading(false);\r\n logger.trace('Finish reading location criterions');\r\n });\r\n }, [aid, campaignId, cid, logger]);\r\n\r\n // Calculate the difference between currentTargets and initialTargets and create/delete as needed\r\n const writeLocationTargetChanges = useCallback(({\r\n positiveLocationTargets,\r\n negativeLocationTargets,\r\n selectedLocationOption,\r\n isPeopleInLocationChecked,\r\n isPeopleSearchingForLocationChecked,\r\n }) => {\r\n let locationsToAdd = [];\r\n let locationsToDelete = [];\r\n\r\n const currentLocationTargets = _.union(positiveLocationTargets, negativeLocationTargets);\r\n const initialLocationTargets = _.union(internalLocationTargets, internalNegativeLocationTargets);\r\n\r\n if (selectedLocationOption === targetOptions.everywhere) {\r\n // if everywhere is selected, set all locations for delete\r\n locationsToDelete = initialLocationTargets;\r\n } else {\r\n const locationsToSave = getLocationsToSave(initialLocationTargets, currentLocationTargets);\r\n locationsToAdd = locationsToSave.locationsToAdd;\r\n locationsToDelete = locationsToSave.locationsToDelete;\r\n }\r\n\r\n locationsToAdd = fromBingMapTargetToLocationTargetEDM(\r\n locationsToAdd,\r\n campaignId,\r\n ENTITY_ACTION_TYPES.Add\r\n );\r\n locationsToDelete = fromBingMapTargetToLocationTargetEDM(\r\n locationsToDelete,\r\n campaignId,\r\n ENTITY_ACTION_TYPES.Delete\r\n );\r\n\r\n locationsToDelete = _.map(\r\n locationsToDelete,\r\n deletedValue => _.extend(deletedValue, { Status: 'Deleted' })\r\n );\r\n\r\n const internalIntent = getIntentValue({\r\n peopleInLocation: internalPeopleInLocation,\r\n peopleSearchingForLocation: internalPeopleSearchingForLocation,\r\n peopleInOrSearchingForLocation: internalPeopleInOrSearchingForLocation,\r\n });\r\n\r\n const newIntent = getIntentValue({\r\n peopleInLocation: isPeopleInLocationChecked,\r\n peopleSearchingForLocation: isPeopleSearchingForLocationChecked,\r\n peopleInOrSearchingForLocation: isPeopleSearchingForLocationChecked && isPeopleInLocationChecked,\r\n });\r\n\r\n const isIntentValueChanged = internalIntent !== newIntent;\r\n\r\n const intentTargets = generateIntentTargetValues(newIntent, internalIntentCriterion, campaignId);\r\n\r\n if (_.isEmpty(locationsToAdd) && _.isEmpty(locationsToDelete) && !isIntentValueChanged) {\r\n return Promise.resolve();\r\n }\r\n\r\n const modelToSave = {\r\n Id: campaignId,\r\n CampaignCriterions: _.union(\r\n locationsToAdd,\r\n locationsToDelete,\r\n intentTargets\r\n ),\r\n };\r\n\r\n logger.trace(`Start writing location targets: ${JSON.stringify(modelToSave)}`);\r\n\r\n return createOrUpdateCampaign(modelToSave).then(() => {\r\n logger.trace(`Write location targets successfully: ${JSON.stringify(modelToSave)}`);\r\n }).catch((error) => {\r\n logger.error(`Write location targets failed, body: ${JSON.stringify(modelToSave)}, error: ${JSON.stringify(error)}`);\r\n\r\n handleBulkErrors(error, i18n);\r\n\r\n return Promise.reject(error);\r\n }).finally(() => {\r\n setIsLoading(false);\r\n logger.trace('Finish writing location targets');\r\n });\r\n }, [\r\n campaignId, internalLocationTargets, internalNegativeLocationTargets,\r\n internalIntentCriterion, internalPeopleInLocation, internalPeopleInOrSearchingForLocation,\r\n internalPeopleSearchingForLocation, i18n, logger,\r\n ]);\r\n\r\n const entityState = useMemo(() => ({\r\n isLoading,\r\n }), [isLoading]);\r\n\r\n return [entityState, {\r\n readTargets,\r\n writeLocationTargetChanges,\r\n }];\r\n}\r\n","import _ from 'underscore';\r\n\r\nconst AssetGroupNegativeReferenceId = -21;\r\n\r\nexport const viewModelToBulkModelForSearchThemes = (searchThemes, assetGroupId = AssetGroupNegativeReferenceId) => {\r\n const searchThemesresult =\r\n _.compact(searchThemes.map((item) => {\r\n if (item.Status === 'Deleted') {\r\n return ({\r\n AssetGroupId: assetGroupId,\r\n SearchTheme: item.SearchTheme,\r\n AssetGroupSearchThemeId: item.Id,\r\n Status: item.Status,\r\n });\r\n }\r\n\r\n if (item.Id) {\r\n return '';\r\n }\r\n\r\n return ({\r\n AssetGroupId: assetGroupId,\r\n SearchTheme: item.SearchTheme,\r\n });\r\n }));\r\n return { AssetGroupSearchThemes: searchThemesresult };\r\n};\r\n","/* eslint-disable no-unused-vars */\r\nimport _ from 'underscore';\r\nimport { useCallback, useContext } from 'react';\r\nimport { useCreateHookResultPromise } from '@bingads-webui-campaign-react/common-hooks';\r\nimport { useSuggestionsContext } from '@bingads-webui-campaign-react/pmax-suggestion-service';\r\nimport { ScopeContext } from '@bingads-webui-react/scope-service';\r\nimport { edmCampaign } from '@bingads-webui/edm-campaign';\r\nimport {\r\n useSearchLocationData,\r\n usePreference,\r\n preferenceNames,\r\n useAudienceData,\r\n} from '@bingads-webui-campaign-react/pmax-lite-data';\r\nimport { LocationTarget } from '@bingads-webui-react/bing-maps';\r\nimport { targetOptions } from '@bingads-webui-campaign-react/location-targeting';\r\nimport { readAssetGroup, createOrUpdateAssetGroup } from '@bingads-webui-campaign-react/perf-max-data';\r\nimport { isSDK } from '@bingads-webui-campaign-react/sdk-utils';\r\nimport { usePilotsValue } from '@bingads-webui-campaign-react/basic-context-utils';\r\n\r\nimport { useTargetInstrument } from './use-target-instrument';\r\nimport { useTargetAdapter } from './use-target-adapter';\r\nimport { buildLocationTargetingData, shouldSelectQuickOption } from './utils/common';\r\nimport { formatAudienceListToFlatTree, modelToViewModelForAudienceGroup, dimensionFormatter } from './utils/audience-signal';\r\nimport { formatSuggestedLocation } from './utils/location-targets';\r\nimport { viewModelToBulkModelForSearchThemes } from './utils/search-themes';\r\n\r\nexport const createOrUpdateAudienceGroup = (data) => {\r\n const audienceGroupEDM = edmCampaign.types.resolve('Model.AudienceGroup');\r\n const audienceGroupResource = new audienceGroupEDM.ResourceIdentifier();\r\n const createOrUpdateCall = data && data.Id > 0 ?\r\n audienceGroupResource.bulkUpdate.bind(audienceGroupResource) :\r\n audienceGroupResource.bulkCreate.bind(audienceGroupResource);\r\n\r\n return createOrUpdateCall(data);\r\n};\r\n\r\nexport const useTargetingRepository = () => {\r\n const { scope } = useContext(ScopeContext);\r\n const isAudienceSignalEnabled = !isSDK();\r\n const isSearchThemesEnabled = !isSDK();\r\n\r\n const { locationLogger, audienceSignalLogger } = useTargetInstrument();\r\n const {\r\n cid, aid, campaignId, assetGroupId,\r\n } = scope.values;\r\n\r\n const {\r\n isTargetsDone,\r\n targets: preLoadedTargetsSuggestions,\r\n } = useSuggestionsContext();\r\n\r\n const [, getAudienceData] = useAudienceData({ postponeFetch: true });\r\n\r\n const createSuggestionPromise = useCreateHookResultPromise({\r\n result: isTargetsDone && (preLoadedTargetsSuggestions || []),\r\n });\r\n\r\n const [, { readTargets, writeLocationTargetChanges }] = useTargetAdapter(locationLogger);\r\n const { getLocation } = useSearchLocationData(aid, cid);\r\n\r\n const [{ value: countryPreference }] = usePreference(preferenceNames.SelectedCountry);\r\n\r\n const loadQuickOptionCountry = useCallback(() => getLocation(countryPreference).then((result) => {\r\n locationLogger.trace(`Load quick option location ${countryPreference}: ${JSON.stringify(result)}`);\r\n\r\n const bundleCountries = _.filter(result.value, item => item.Type === 'Country' && item.CountryCode === countryPreference);\r\n\r\n return bundleCountries[0];\r\n }).catch((error) => {\r\n locationLogger.error(`Load quick option location ${countryPreference} failed: ${JSON.stringify(error)}`);\r\n return Promise.reject(error);\r\n }), [countryPreference, getLocation, locationLogger]);\r\n\r\n const loadAssetGroup = useCallback(\r\n () => readAssetGroup(cid, aid, campaignId, assetGroupId, isSearchThemesEnabled)\r\n .then((assetGroup) => {\r\n locationLogger.trace(`Load website URL: ${JSON.stringify(assetGroup)}`);\r\n\r\n return {\r\n website: _.first(assetGroup.FinalUrls),\r\n audienceGroup: assetGroup.AudienceGroup || {},\r\n searchThemes: assetGroup.AssetGroupSearchThemes || [],\r\n };\r\n }).catch((error) => {\r\n locationLogger.error(`Load website URL Failed: ${JSON.stringify(error)}`);\r\n\r\n return Promise.reject(error);\r\n })\r\n , [aid, assetGroupId, campaignId, cid, locationLogger, isSearchThemesEnabled]\r\n );\r\n\r\n const loadAudienceData = useCallback(() => {\r\n if (isAudienceSignalEnabled) {\r\n return getAudienceData().then((audienceList) => {\r\n audienceSignalLogger.trace(`Load audience data: ${JSON.stringify(audienceList)}`);\r\n\r\n return audienceList;\r\n }).catch((error) => {\r\n audienceSignalLogger.error(`Load audience data failed: ${JSON.stringify(error)}`);\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n return new Promise(resolve => resolve([]));\r\n }, [isAudienceSignalEnabled, getAudienceData, audienceSignalLogger]);\r\n\r\n const load = useCallback(() => {\r\n const initialRequests = [\r\n loadQuickOptionCountry(),\r\n readTargets(), // Load user saved targets\r\n createSuggestionPromise(), // Load suggested targets\r\n loadAssetGroup(),\r\n loadAudienceData(), // Load audience data\r\n ];\r\n\r\n return Promise.all(initialRequests).then((res) => {\r\n const [quickOptionCountry, savedTargets, targetsSuggestion, assetGroup, audienceList] = res;\r\n const { website, audienceGroup, searchThemes } = assetGroup;\r\n\r\n const formattedSuggestedTargets = _.map(targetsSuggestion, item => formatSuggestedLocation(item));\r\n const suggestedLocationTargets = buildLocationTargetingData({\r\n positiveLocationTargets: formattedSuggestedTargets,\r\n });\r\n\r\n const shouldCheckQuickOption = shouldSelectQuickOption(\r\n quickOptionCountry,\r\n savedTargets,\r\n targetsSuggestion\r\n );\r\n const targets = _.isEmpty(savedTargets) ? suggestedLocationTargets : savedTargets;\r\n const quickOptionLocationTarget = LocationTarget.CreateIncludedLocationTarget(quickOptionCountry);\r\n const [audienceListInFlatTree, valueToAudience, valueToFlatItem] = formatAudienceListToFlatTree(audienceList);\r\n\r\n return {\r\n targets: {\r\n ...targets,\r\n selectedLocationOption: shouldCheckQuickOption ? targetOptions.quick : targets.selectedLocationOption,\r\n positiveLocationTargets: shouldCheckQuickOption\r\n ? [quickOptionLocationTarget]\r\n : targets.positiveLocationTargets,\r\n },\r\n quickOptionCountry: quickOptionLocationTarget,\r\n website,\r\n audiencesSignal: {\r\n audienceGroupId: audienceGroup.Id,\r\n audienceGroupName: audienceGroup.Name,\r\n valueToAudience,\r\n valueToFlatItem,\r\n audienceListInFlatTree,\r\n ...modelToViewModelForAudienceGroup(audienceGroup),\r\n },\r\n searchThemes,\r\n };\r\n });\r\n }, [createSuggestionPromise, loadAssetGroup, loadAudienceData, loadQuickOptionCountry, readTargets]);\r\n\r\n const save = ({ data }) => {\r\n const { targets = {}, audiencesSignal = {}, searchThemes = {} } = data || {};\r\n const {\r\n positiveLocationTargets,\r\n negativeLocationTargets,\r\n isPeopleInLocationChecked,\r\n isPeopleSearchingForLocationChecked,\r\n selectedLocationOption,\r\n locationError,\r\n } = targets;\r\n const {\r\n interests,\r\n ageRanges,\r\n genderTypes,\r\n valueToAudience,\r\n audienceGroupId,\r\n audienceGroupName,\r\n } = audiencesSignal;\r\n\r\n if (locationError) {\r\n return Promise.reject(locationError);\r\n }\r\n\r\n const audienceData = {\r\n AgeRanges: dimensionFormatter.ageRanges(ageRanges),\r\n GenderTypes: dimensionFormatter.genderTypes(genderTypes),\r\n Audiences: interests.map(interest => valueToAudience[interest]),\r\n Id: audienceGroupId || -100,\r\n Name: audienceGroupName || `Default-${Date.now()}`,\r\n };\r\n\r\n const updateAudience = () => {\r\n if (isAudienceSignalEnabled) {\r\n return createOrUpdateAudienceGroup(audienceData).then((result) => {\r\n const patchData = {\r\n AudienceGroupAssetGroupAssociations: [{\r\n AudienceGroupId: result.Id,\r\n AssetGroupId: assetGroupId,\r\n Status: 'Active',\r\n }],\r\n Id: assetGroupId,\r\n Campaign: { Id: campaignId },\r\n };\r\n\r\n return patchData;\r\n });\r\n }\r\n\r\n return new Promise(resolve => resolve({}));\r\n };\r\n\r\n const updateAssetGroup = () => {\r\n if (isSearchThemesEnabled) {\r\n return updateAudience().then((audiencePatchData) => {\r\n const patchData = {\r\n ...(!_.isEmpty(audiencePatchData) ? audiencePatchData : {}),\r\n ...(!_.isEmpty(searchThemes) ? viewModelToBulkModelForSearchThemes(searchThemes, assetGroupId) : {}),\r\n };\r\n\r\n if (_.isEmpty(patchData)) {\r\n return new Promise(resolve => resolve({}));\r\n }\r\n\r\n return createOrUpdateAssetGroup(patchData);\r\n });\r\n }\r\n\r\n return updateAudience().then((audiencePatchData) => {\r\n if (_.isEmpty(audiencePatchData)) {\r\n return new Promise(resolve => resolve({}));\r\n }\r\n\r\n return createOrUpdateAssetGroup(audiencePatchData);\r\n });\r\n };\r\n\r\n const updateLocations = () => writeLocationTargetChanges({\r\n positiveLocationTargets,\r\n negativeLocationTargets,\r\n isPeopleInLocationChecked,\r\n isPeopleSearchingForLocationChecked,\r\n selectedLocationOption,\r\n });\r\n\r\n const saveRequests = [\r\n updateAssetGroup(),\r\n updateLocations(),\r\n ];\r\n\r\n return Promise.all(saveRequests);\r\n };\r\n\r\n return {\r\n load,\r\n save,\r\n };\r\n};\r\n"],"names":["getHeaderStyles","headerContainer","marginBottom","stepTitle","fontSize","stepDescription","lineHeight","StepHeader","_ref","title","description","i18n","useContext","I18nContext","getResponsiveStyles","useResponsiveStyles","_jsxs","className","classNames","children","_jsx","getString","ERROR_ENTITY","Campaign","AssetGroup","CampaignLocation","CampaignRadius","CampaignNegativeLocation","CampaignLocationIntent","CampaignDayTimeCriterion","CampaignNegativeWebpage","AudienceGroupAssetGroupAssociation","handleBulkErrors","response","log","concat","JSON","stringify","notificationApi","showWarning","errors","generalError","errorsObj","getBulkApiErrors","message","getFirstBulkErrorMessage","genericApiError","CampaignApiError","getBulkUploadErrorType","entitySchema","properties","value","name","getBulkUploadEntityType","mapBulkUpsertErrors","bulkUpsertEntityErrorMap","errorProcessor","arguments","length","undefined","_","scenario","activityLogger","map","error","errorType","type","mappedErrorType","preferenceNames","WizardStep","SelectedLanguage","SelectedCountry","MarketPrefillEnabled","BudgetSuggestionTier","SelectedCurrency","WebsiteUrl","SmartPageUrl","SmartPageTermsAndConditions","LanguageCountryPageTermsAndConditions","TimezonePrefillEnabled","TempImageIdString","PhoneNumberCountryCode","BusinessInfoPrefillEnabled","BusinessInfoStepTAndC","getPreferenceDefaults","_defineProperty","BudgetSuggestionTiers","Balanced","usePreference","preferenceName","preferenceDefaultValue","useMemo","useUserLevelPreference","getEdmEntity","api","cid","aid","campaignId","edmCampaign","Customers","$withKey","Accounts","Campaigns","loadBusinessInfoRecommendation","payload","$makeCall","toPromise","loadTargetRecommendation","useSearchLocationData","getLocation","useCallback","search","Locations","get","select","then","catch","Promise","reject","defaultBudgetValue","usePmaxCampaignCRUD","_ref$onCreateCampaign","onCreateCampaignDone","_ref$onCreateCampaign2","onCreateCampaignError","scope","ScopeContext","_scope$values","values","_usePreference","languagePreference","_slicedToArray","_useGetDefaultBudgetV","customerLevelVariables","useCustomerLevelVariables","postponeReadConfig","usePostponeReadVariables","_useCountryCurrencies","useCountryCurrenciesMappings","readCountryCurrenciesMappingsFn","read","_usePromisify","usePromisify","readCountryCurrenciesMappingsAsync","readCountryCurrenciesMappings","args","_len","rest","Array","_key","apply","instrumentation","InstrumentationContext","readCurrencyActivity","pmaxLiteSignup","create","currencyCountryMapping","trace","countryPreference","getDefaultBudgetValueForCountry","selectedCountry","countryCurrenciesMappings","c","toUpperCase","countryCurrency","country","allowedCurrencies","defaultCurrency","targetCurrency","DEFAULT_BUDGET_VALUE_FOR_CURRENCY","useGetDefaultBudgetValueForCountry","readCampaignsPromise","readCampaigns","res","campaigns","resolve","deleteCampaignPromise","deleteCampaignId","deleteCampaign","remove","history","replace","pathname","location","createOrUpdateCampaignPromise","campaignData","Name","Math","floor","random","Budget","Amount","Type","Status","TimeZone","CampaignType","BiddingScheme","Languages","campaignPromise","createOrUpdateCampaign","campaign","append","Id","Error","useOdataOptions","pathOverride","serverContext","ServerContext","currentCustomer","CurrentCustomer","currentAccount","CurrentAccount","host","ServicesEndpoints","CampaignAPI","path","CampaignAPIPath","token","Token","_serverContext$Urls","Urls","_serverContext$Urls2$","SignOutUrl","contentType","oDataToken","ESTIMATION_API_SUPPORT_LOCALE","useIsEstimationApiSupportedLocale","locale","includes","useAudienceReachEstimationV2","targets","isEnabled","_useOdataOptions","_useOdataOptions2","OdataOptions","_useOdataOptions2$","isEstimationApiSupportedLocale","endPoint","options","_objectSpread","url","useDeepMemo","request","_useState","useState","_useState2","isLoading","setIsLoading","_useState3","_useState4","data","setData","getAudienceReachEstimation","defaultData","EstAudienceSize","Value","Unit","odata","post","err","finally","useEffect","CURRENCY_FALLBACK_MINIMUM_BUDGET","ArgentinePeso","AustralianDollar","BrazilianReal","CanadianDollar","ChileanPeso","ColombianPeso","DanishKrone","Euro","HongKongDollar","IndianRupee","IndonesianRupiah","JapaneseYen","MalaysianRingit","MexicanPeso","NewZealandDollar","NigerianNaira","NorwegianKrone","PeruvianNuevoSol","PhilippinePeso","PolishZloty","SaudiRiyal","SingaporeDollar","SouthAfricanRand","SwedishKrona","SwissFranc","ThaiBaht","TurkishLira","UKPound","UsDollar","getFallbackEstimates","currency","minimumBudget","GlobalMinimumBudget","DailyBudget","MonthlyBudget","MinimumBudget","CompetitorBudgetLowerBound","SuggestedBudget","CompetitorBudgetUpperBound","MaximumBudget","GlobalMaximumBudget","Currency","addAsset","Folders","useAudienceData","_ref$postponeFetch","postponeFetch","_ref$pathOverride","_ref$audienceType","audienceType","$orderby","audiencetype","deliverychannel","getAudienceData","_ref2$value","UserCreationContext","React","isCreatingUser","createUser","createUserPromise","useUserCreationContext","pmaxLiteSchemas","activity","SUB_SYSTEM_NAMES","PMaxLiteSignup","errorMappers","odataErrorMapper","OdataErrorMapper","odataErrorCodes","campaignApiErrorMapper","CampaignApiErrorMapper","campaignApiErrorCodes","urlErrorMapper","UrlErrorMapper","invalidDomains","getInstrumentationService","addScenario","logger","defaultScenario","stubOptions","pageTrackingId","PageTrackingId","lcid","CultureLcid","eventHandler","AjaxEventHandler","shouldAddHeaders","ajaxContext","isInternalUrl","ajaxStub","AjaxStub","errorStub","ErrorStub","init","stub","getInstrumentation","_ref2","devConfig","_ref2$subSystemName","subSystemName","userContext","CurrentUser","getInstrumentationInstance","isInDevelopmentMode","applicationName","systemName","DynamicPermissions","EnableLoggingForUnhandledPromiseRejections","objectsToStub","InstrumentationServiceContext","InstrumentationWithServiceProvider","memo","props","context","instrumentationService","setInstrumentationService","_ref$instrumentation","Provider","setupGlobal","checkUserQueryParams","keepAliveInstance","start","updateGlobalQualtricsData","setupInstrumentation","getStyles","shimmerWrapper","height","padding","background","display","flexFlow","alignItems","borderRadius","margin","marginTop","LanguageCountryStepShimmer","classes","useDefaultStyles","isSmallSize","useResponsiveSize","Constants","ResponsiveSizeBreakpoints","Shimmer","shimmerElements","ShimmerElementType","line","width","justifyContent","WebsiteStepShimmer","displayMode","optionShimmer","flexDirection","CampaignModeStepShimmer","_useMemo","optionHeight","optionWidth","getAdAssetsFormShimmer","container","gap","section","AdAssetsFormShimmer","getAdAssetsPreviewerShimmerStyles","AdAssetsPreviewerShimmer","ONBOARDING_PATHS","CAMPAIGN_CREATION_METHOD","LANGUAGE_COUNTRY","WEBSITE","CAMPAIGN_MODE","GOOGLE_IMPORT","FACEBOOK_IMPORT","SMART_PAGE_SIGNUP","SMART_PAGE_EDITOR","SMART_PAGE_CUSTOM_DOMAIN","PMAX_LITE_WIZARD_STEP_PATHS","AD_ASSETS","TARGETING","BUDGET","PREVIEW_ASSETS","ACCOUNT_DETAILS","PAYMENT","ADD_FUNDS","PREVIEW_ACCOUNT","PREVIEW_PAYMENT","PREVIEW_ADD_FUNDS","CONVERSION_UPSELL","IMPORT_COMPLETE","stepToPage","_stepToPage","getFlow","isSmartPage","isSmartPageCustomDomainSupported","isSkipCampaign","isGoogleImport","isFacebookImport","isChinaSignup","psd2Country","isPreviewFlow","paymentStep","addFundsStep","paymentSteps","accountStep","campaignCreationSteps","getSubFlowFromCurrentFlow","currentFlow","SIGNUP_SUB_FLOW","FacebookImport","GoogleImport","SmartPage","CampaignCreation","SkipCampaign","useSubmitToMainBundle","assetGroupId","usePilotsValue","submitToMainBundle","mainBundleUrl","goToUrl","isSDK","mkt","getSDKParams","getCampaignPageUrl","isFirefoxSDKSignupScenario","getUrlForPath","RURL","window","initLegacyOdata","hostname","document","origin","toLowerCase","odataPath","indexOf","config","set","SuggestionsContext","useSuggestionsContext","SuggestionsContextInt","updateValue","loadBISuggestions","suggestion","_context$inputs","inputs","language","timeout","BusinessName","InternationalPhoneNumber","PhoneNumber","Addresses","businessName","businessAddress","internationalPhoneNumber","phoneNumber","useLoadBISuggestions","loadTargetsSuggestions","useLoadTargetsSuggestions","_useSuggestionsServic","useSuggestionsService","state","send","_state$context$flags","flags","isRSADone","isImagesDone","isTargetsDone","isBIDone","allDone","_state$context$output","outputs","rsa","images","bi","isInitState","matches","STATES","INIT","SuggestionsContextProvider","propTypes","PropTypes","isRequired","SuggestionsResumer","useWizardService","currentStepId","getCurrentStepId","getFlowFactor","websiteFromCache","getWizardData","cache","website","_usePreference3","websitePreference","_usePreference5","smartPageUrlPreference","urlForSuggestionService","isSuggestionInitialized","setIsSuggestionInitialized","_useSuggestionsContex","suggestionsPayload","isSmartMode","isPMaxLite","EVENTS","LOAD","shouldSelectQuickOption","quickOptionCountry","savedTargets","suggestedTargets","_ref2$positiveLocatio","positiveLocationTargets","_ref2$negativeLocatio","negativeLocationTargets","getLocationSummary","target","_target$getGridRowTex","getGridRowText","radiusDescription","locationDescription","join","TargetingLocation","onDataChange","quickOption","mapRef","useRef","_data$isPeopleInLocat","isPeopleInLocationChecked","_data$isPeopleSearchi","isPeopleSearchingForLocationChecked","selectedLocationOption","_data$negativeLocatio","_data$positiveLocatio","tempLocationTargets","setTempLocationTargets","locationTargetsEditorStrings","noResultsMessage","_TL_","label","choiceGroupLabel","boundaryOption","radiusOption","getLocationTargetsEditorStrings","optionConfigs","key","targetOptions","quick","text","ExpandedName","everywhere","specific","onPositiveLocationTargetsChange","newTargets","prev","onNegativeLocationTargetsChange","onPeopleInLocationChange","checked","onPeopleSearchingForLocationChange","onSelectedLocationOptionChange","newOption","locationsErrorString","onValidationComplete","errorMessage","getIsRadiusTarget","targetingType","defaultGetIsRadiusTarget","TARGETING_TYPE","Included","searchOptions","getLocations","result","BingMapsContextProvider","campaignApiToken","bingMapsApiKey","LocationTargeting","allowPositiveLocationTargeting","allowNegativeLocationTargeting","showSearchTypeOptions","strings","defaultSelectedSearchType","SEARCH_TYPE","Boundary","isRadiusExcludeEnabled","maxLocationTargets","maxNegativeLocationTargets","customizedLocationEqual","isLegacyLocationAndRadiusEqual","locationTargets","onLocationTargetsChange","useInternalValidation","onNotifyValidationResult","optionsConfig","onChangeLocationOption","shouldShowTargetingIntent","defaultProps","useTargetInstrument","backupLogger","pmaxLiteTargeting","locationLogger","locationTargeting","audienceSignalLogger","audienceSignalTargeting","searchThemesLogger","searchThemesTargeting","ERROR_MAP","errorString","validateLocations","conflictError","includedLocations","excludedLocations","exclusiveIds","locationTarget","_exclusiveIds","parentIds","ParentLocations","push","LocationId","_toConsumableArray","negativeIds","validateConflictLocations","peopleSearchingForLocation","intentError","CollapsibleLocation","_ref3","_ref3$negativeLocatio","_ref3$positiveLocatio","_useCollapseState","useCollapseState","_useCollapseState2","allSections","expandedSections","setExpandedSections","locationDetails","targetOption","includedLocationsString","excludedLocationsString","finalizedString","getLocationTargetTitleDetails","onLocationChange","prevData","locationError","Collapse","allPanelItems","checkItems","activeKeys","setActiveKeys","Panel","TextTitle","titleKey","icon","LocationIcon","details","topicKey","TitleBarError","getInterestNames","isValid","levels","split","shift","parent","formatAudienceListToFlatTree","hierarchy","root","valueToAudience","valueToFlatItem","forEach","audience","Reach","Description","_getInterestNames","structure","content","parentValue","allowedCheck","showTips","reachEstimation","id","formattedItems","Object","keys","dimensionFormatter","ageRanges","AgeRanges","genderTypes","Genders","modelToViewModelForAudienceGroup","audienceGroupModel","interests","filter","dimension","flatten","compact","first","radiusShimmerElement","SectionShimmer","AUDIENCE_MAP","getAudienceI18nName","audienceName","array","getAudienceValue","AudienceInterests","customHeadline","audienceListInFlatTree","_ref2$interests","_ref2$valueToFlatItem","openItems","setOpenItems","onChangeInterests","newInterests","onRemoveInterests","index","newInterest","slice","onRemoveAllInterests","onRenderTreeItem","item","customTreeItemFilter","searchQuery","onRenderTooltip","itemType","isRootLeaf","tooltip","formatReachEstimation","interestsHeader","ActionButton","iconProps","iconName","disabled","onClick","Tooltip","withArrow","positioning","relationship","IconButton","DropdownTreeSelect","items","checkedItems","onChange","onOpenChange","placeholder","onRenderContent","customFilter","AudienceDemographics","_ref2$ageRanges","_ref2$genderTypes","onChangeAgeTypes","newAgeRanges","onChangeGenderTypes","newGenderTypes","demographicsContainer","Alert","level","dismissible","FontIcon","Demographic","dimensions","formatter","formatAgeRange","availableDimensions","onChangeDimensions","popupId","formatGender","CollapsibleAudienceSignal","audiencesSignal","_ref3$interests","_ref3$ageRanges","_ref3$genderTypes","genderErrors","ageErrors","interestDetails","interest","demographicsDetails","ages","formatAgeRanges","genders","formatGenders","getDemographicsDetails","onAudienceChange","newAudiences","descriptionContainer","h3LabelOptional","audienceSignalDescription","src","SparkleImg","alt","InterestIcon","DemographicIcon","getSearchThemeSelectorStyle","searchThemes","marginRight","marginLeft","CollapsibleSearchThemes","searchThemesDetails","selected","SearchTheme","getSearchThemeDetails","onSearchThemesChange","newSearchThemes","SearchThemesIcon","SearchThemeSelector","onUpdateSearchThemes","impreAndClicksOptions","minimumFractionDigits","maximumFractionDigits","noDecimalOptions","formatBigDecimal","formatDecimal","McaTargetModel","McaRadiusUnit","unitValueMap","None","unit","Thousand","Million","Billion","getFormattedTargetsPayload","isV2","_ref$targets","_ref$audiencesSignal","_audiencesSignal$ageR","_audiencesSignal$gend","_audiencesSignal$audi","_audiencesSignal$inte","Age","Includes","Excludes","Gender","Audience","aud","o","Location","formattedTarget","mcaTarget","Latitude","Longitude","BingLocationId","CountryCode","City","State","isRadiusLocationTarget","RadiusLength","radiusSize","RadiusUnit","radiusUnit","LocationType","convertFromLocationTarget","String","TargetingEstimation","formattedTargets","_useAudienceReachEsti","_useAudienceReachEsti3","isRecommendationDataLoadingV2","estimationDataV2","estimations","estimationAudienceValue","estimationAudienceUnit","getEstimationAudienceValueV2","dashColor","estimation","PerformanceTile","heading","note","showShimmer","getTargetingStepStyle","palette","stepShell","fontWeight","color","neutralSecondary","borderBottom","neutralLight","mainContent","minWidth","position","maxWidth","estimationPart","top","targetsPart","flex","left","right","verticalAlign","overflow","flexWrap","backgroundColor","neutralLighter","gridTemplateColumns","columnGap","gridRow","paddingBottom","wordBreak","TargetingStep","hideStepInfo","hideEstimationTile","isAudienceSignalEnabled","isSearchThemesEnabled","useFormService","FORM_STATES","LOADING","showEstimationTile","useTargetAdapter","internalLocationTargets","setInternalLocationTargets","_useState5","_useState6","internalNegativeLocationTargets","setInternalNegativeLocationTargets","_useState7","_useState8","internalIntentCriterion","setInternalIntentCriterion","_useState9","_useState10","internalPeopleInLocation","setInternalPeopleInLocation","_useState11","_useState12","internalPeopleSearchingForLocation","setInternalPeopleSearchingForLocation","internalPeopleInOrSearchingForLocation","readTargets","readLocationCriterions","criterions","initialTargets","fromLocationCriterionToBingMapTarget","intentCriterion","getIntentCriterion","initialLocationTargets","LocationTargetTypes","initialNegativeLocationTargets","Excluded","_getIntentCriterionVa","getIntentCriterionValues","peopleInLocation","e","writeLocationTargetChanges","locationsToAdd","locationsToDelete","currentLocationTargets","locationsToSave","getLocationsToSave","fromBingMapTargetToLocationTargetEDM","ENTITY_ACTION_TYPES","Add","Delete","deletedValue","internalIntent","getIntentValue","peopleInOrSearchingForLocation","newIntent","isIntentValueChanged","intentTargets","generateIntentTargetValues","modelToSave","CampaignCriterions","useTargetingRepository","_useTargetInstrument","preLoadedTargetsSuggestions","_useAudienceData","createSuggestionPromise","useCreateHookResultPromise","_useTargetAdapter","_useTargetAdapter2$","loadQuickOptionCountry","loadAssetGroup","readAssetGroup","assetGroup","FinalUrls","audienceGroup","AudienceGroup","AssetGroupSearchThemes","loadAudienceData","audienceList","load","initialRequests","all","_res","targetsSuggestion","suggestedLocationTargets","buildLocationTargetingData","localizationKey","locationData","GeoPoint","LocationTarget","CreateIncludedLocationTarget","formatSuggestedLocation","shouldCheckQuickOption","quickOptionLocationTarget","_formatAudienceListTo","_formatAudienceListTo2","audienceGroupId","audienceGroupName","save","_ref2$targets","_ref2$audiencesSignal","_ref2$searchThemes","audienceData","GenderTypes","Audiences","Date","now","updateAudience","audienceGroupResource","types","ResourceIdentifier","bulkUpdate","bind","bulkCreate","createOrUpdateAudienceGroup","AudienceGroupAssetGroupAssociations","AudienceGroupId","AssetGroupId","saveRequests","audiencePatchData","patchData","AssetGroupSearchThemeId","viewModelToBulkModelForSearchThemes","createOrUpdateAssetGroup"],"sourceRoot":""}