{"version":3,"sources":["../../../../multi-channel/packages/shared-step-layouts/src/styles/step-progress-bar-styles.js","../../../../multi-channel/packages/shared-step-layouts/src/components/step-progress-bar.js","../../../../multi-channel/packages/shared-step-layouts/src/styles/step-footer-styles.js","../../../../multi-channel/packages/shared-step-layouts/src/components/step-footer.js","../../../../multi-channel/packages/shared-step-layouts/src/styles/step-progress-footer-styles.js","../../../../multi-channel/packages/shared-step-layouts/src/components/step-progress-footer.js","../../../../multi-channel/packages/shared-step-layouts/src/styles/card-wrapper-styles.js","../../../../multi-channel/packages/shared-step-layouts/src/components/card-wrapper.js","../../../../multi-channel/packages/shared-step-layouts/src/styles/card-step-layout-styles.js","../../../../multi-channel/packages/shared-step-layouts/src/card-step-layout.js","../../../../multi-channel/packages/up-data/src/use-audience-budget-suggestion.js","../../../../multi-channel/packages/up-data/src/use-is-m365-premium-user.js","../../../../multi-channel/packages/up-telemetry-helper/src/blocking-telemetry-helper/up-blocking-action-marker-context.js","../../../../multi-channel/packages/up-data/src/use-social-profiles-data.js","../../../../multi-channel/packages/step-manager/src/step-manager-actions.js","../../../../multi-channel/packages/step-manager/src/step-manager-reducer.js","../../../../multi-channel/packages/step-manager/src/step-manager.js","../../../../multi-channel/packages/step-manager/src/use-step-list-renderer.js","../../../../multi-channel/packages/step-manager/src/accordion/get-styles.js","../../../../multi-channel/packages/step-manager/src/accordion/accordion.js","../../../../multi-channel/packages/props-mca/src/ccui-props.js","../../../../multi-channel/packages/props-mca/src/shared-props.js","../../../../multi-channel/packages/up-context/src/up-context.js","../../../../multi-channel/packages/up-context/src/up-wizard-context.js","../../../../multi-channel/packages/up-context/src/up-wizard-callback-context.js","../../../../multi-channel/packages/up-context/src/wizard-requests-sequence-context.js","../../../../multi-channel/packages/up-context/src/overreact-data-fetcher.js","../../../../multi-channel/packages/up-context/src/up-top-nav-context.js","../../../../multi-channel/packages/up-context/src/up-switch-to-expert-context.js","../../../../multi-channel/packages/up-context/src/smart-page-callbacks-context.js","../../../../multi-channel/packages/up-context/src/a11y-announce-message-context.js"],"names":["getStepIndicatorStyle","_","_ref","_ref$palette","palette","stepIndicator","display","border","flexShrink","color","neutralSecondary","currentStep","fontWeight","accent","stepIndicatorIndex","borderRadius","width","height","alignItems","justifyContent","marginRight","stepIndicatorTitle","getStepProgressBarStyle","stepProgressBar","StepIndicator","props","index","title","isCurrentStep","classes","useDefaultStyles","React","createElement","className","classNames","StepProgressBar","steps","map","step","key","getStepFooterStyles","footerContainer","_defineProperty","clear","borderTop","concat","neutralLight","paddingLeft","paddingTop","paddingBottom","background","white","mobileDevice","flexWrap","previousButton","primaryButton","&:focus::after","@media screen and (-ms-high-contrast: active)","cancelButton","marginLeft","skippingLink","errorMessage","red","margin","StepFooter","previousButtonLabel","nextButtonLabel","onPreviousClick","onNextClick","onCancelClick","onSkippingLinkClick","skippingLinkTitle","onRenderLinkContainer","isNextButtonDisabled","disableButtons","i18n","useContext","I18nContext","isReadOnlyUser","useIsReadOnlyUser","isFunction","DefaultButton","onClick","name","disabled","getString","_TL_","PrimaryButton","isEmpty","Link","defaultProps","getStepProgressFooterStyles","padding","footerMiddle","StepProgressFooter","footerLeft","footerRight","getCardWrapperStyles","cardContainer","backgroundColor","boxSizing","boxShadow","marginTop","marginBottom","cardHeaderContainer","position","titleContainer","alignSelf","flexGrow","& .helpbutton","CardWrapper","children","titleHelpTopic","renderCardHeader","useMemo","Fragment","Text","block","variant","InlineHelp","topic","getCardStepLayoutStyles","stepLayoutContainer","flexDirection","neutralLighterAlt","overflow","stepLayoutContentContainer","stepLayoutHeaderContainer","stepContentContainer","& .step-footer","stepLayoutFooterContainer","CardStepLayout","onRenderPageBanner","onRenderPageHeader","onRenderPageFooter","cardBasicProps","Object","assign","_objectSpread","CURRENCY","eur","idr","myr","pen","qar","thb","usd","vef","vnd","McaDefaultAgeTargets","ageRange","@odata.type","McaTargetModel","AgeTarget","AgeRange","McaDefaultGenderTargets","genderType","GenderTarget","GenderType","useIsM365PremiumUser","CurrentAccount","ServerContext","_useState","useState","_useState2","_slicedToArray","isDataLoaded","setIsDataLoaded","_useState3","_useState4","isM365User","setIsM365User","isM365FeatureEnabled","useM365Enabled","variables","useAccountLevelVariables","config","fetch","postponeRead","refetch","onComplete","account","mcaAccountTier","McaAccountTier","result","toLowerCase","None","onError","_useAccount","useAccount","useEffect","Id","createContext","chain","McaSocialChannelTypes","ct","join","value","McaChannelTypes","Internal","STEP_MANAGER_ACTIONS","COLLAPSE","EXPAND","UPDATE_STATUS","UPDATE_DATA","defaultStepStatus","isInitialized","hasUnsavedChange","errorString","stepManagerReducer","state","action","type","expandedStepIndex","newShouldSaveList","Array","stepListSize","fill","shouldSaveList","toExpandedStepIndex","Math","min","_toConsumableArray","status","pickedStatus","pick","keys","newStatus","defaults","statusList","isEqual","splice","data","dataList","Error","shouldSave","shouldScrollToMe","onStatusUpdate","onDataChange","scrollToExpandedStep","initialState","size","undefined","getInitialState","_useReducer","useReducer","_useReducer2","dispatch","firstErrorIndex","findIndex","expand","useCallback","collapse","onExpandClicked","onGoToNextClicked","updateStatus","updateData","s","isExpanded","shouldScrollToStep","onToggle","onGoToNext","stepShouldSave","component","useStepListRenderer","every","any","hasError","getItemStyles","accordionItem","getHeaderStyles","fontSize","getDetailsStyles","accordionDetails","minHeight","spinner","inset","zIndex","getSummaryStyle","_ref2","_ref2$palette","icon","redDark","error","AccordionContext","Item","forwardRef","ref","isBlocking","isToggleHidden","contextValue","Provider","Stack","Header","_useContext","iconProps","iconName","styles","root","transform","transformOrigin","transition","horizontal","horizontalAlign","IconButton","ba-accordion-toggle","is-expanded","Summary","tokens","childrenGap","FontIcon","Details","_useContext3","Spinner","SpinnerSize","large","label","Accordion","seal","paymentInstrumentConfigs","PropTypes","shape","id","number","Name","string","Number","CurrencyType","PaymentType","PaymentOption","TimeZone","TaxInformation","arrayOf","Key","isRequired","Value","BusinessAddress","BusinessName","City","Country","Line1","Line2","PostalCode","StateOrProvince","CountryName","StateOrProvinceName","IsValid","bool","ValidationVersionId","PreferredBillToPaymentInstrumentId","BusinessPhone","UserName","Email","AllowContact","AllowContactByPhone","ContactInfo","Fax","HomePhone","Mobile","Phone1","Phone2","FirstName","LastName","MiddleInitial","Address","Code","currency","countries","ControlledCurrencyCountryId","supportedPaymentType","supportedCurrencies","useSupportedCountryList","supportedCountries","CouponDetailsProps","LocalizationKey","RichTextItems","IsReadonly","Selected","CardCategory","CardType","ExpirationDate","OnHoldDate","Line3","Line4","Timestamp","FinancialStatus","LifecycleStatusId","SupportsPrepay","SupportsPostpay","Type","CTPPIId","CTPAccountId","SupportsRecurringPayment","CanAssociateWithAccount","postpayBillingSummary","Data","summary","AccountId","BalanceDue","BillingCycleDay","BillMeNowFlag","BilltoCustomerId","BilltoCustomerName","CurrencyCode","CurrentBalance","CurrentThresholdBalance","IsStatementConsolidated","LastPaymentAmount","LastPaymentDate","MaxThresholdBalance","MinThresholdBalance","PaymentOptionId","TotalAmount","thresholdBillingSummary","couponBillingSummary","CouponRemainingBalance","CouponConsumedAmount","CouponValue","ClassName","CouponTypeId","PercentOff","ExpiryDate","LimitForDaysToUseFromCustomerCreation","CouponProps","couponString","couponStringType","couponDetails","Amount","CouponCode","CouponType","UpfrontSpendThreshold","CurrentUpfrontSpend","StatusId","permissions","formatDate","func","formatPercent","getCurrencySymbol","isReady","parseDate","parseDecimal","formatTime","scenario","activity","logger","instrumentation","create","trace","objectOf","parentActivityType","CurrentLocale","PageTrackingId","ServicesEndpoints","AdInsightAPI","CampaignAPI","CampaignAPIPath","CurrentUser","UserId","Lcid","CustomerMarket","CurrentCustomer","CustomerId","CustomerNumber","CustomerName","AccountNumber","AdvertiserCustomerId","AccountMode","LifecycleStatus","CountryCode","Token","CCBaseUrl","PidlConfiguration","PidlEnvironment","PidlEnabledCountries","ExcludedCountriesByCardType","ThreatMetrixUrl","MsaDelegateAuthUrl","PidlErrorFormattingStrings","PidlSupportedCultureMapping","FriendlySepaMaxNameLength","CCUIPilots","PaymentInstrumentConfigs","AuthType","CookieDomain","CookiePath","AdvertiserCustomerID","Status","Market","UserPreferences","AccountLevelPreferences","UserLevelPreferences","McaServiceRoot","Permissions","oneOfType","node","AccountsBillingUrl","CentralizedSettingsUrl","NonAzureDomain","SignOutUrl","SupportUrl","UcmSiteUrl","del","find","initialize","set","setAtUserLevel","getPromise","pathname","search","hash","params","oneOf","path","url","isExact","go","goBack","push","route","ActivityType","Message","Likes","Replies","Shares","Profile","ChannelType","ChannelName","From","ChannelUserType","CreatedTime","IsCompleted","campaignCategoriesShape","MediaList","SourceUrl","Target","PreviewUrl","Title","ParentActivity","CanComment","CanHide","CanLike","UserLikes","IsHidden","Url","IsBlocked","ProfileImageUrl","ChannelId","ChannelAccountId","AuthorizationData","AccessToken","CategoryName","socialProfileShape","SkipOfflineProfileInitTaskCreation","budgetProp","Goal","SocialProfiles","Categories","McaBusinessListing","StreetAddress","StreetAddress2","CityName","ProvinceName","IsRequired","PhoneNumber","Website","InternalInfo","SourceId","ModifiedByUserId","CreatedDTim","ModifiedDTime","LocationId","MetricDate","Impressions","Clicks","Spend","Conversions","Calls","Directions","Reactions","Comments","Reach","sameYAxis","granularity","tooltipTitle","metrics","legend","startDate","DailyBudget","MinimumEstimatedClicks","MinimumEstimatedImpressions","MaximumEstimatedClicks","MaximumEstimatedImpressions","MonthlyBudget","MinimumBudget","CompetitorBudgetLowerBound","SuggestedBudget","CompetitorBudgetUpperBound","MaximumBudget","GlobalMaximumBudget","titlePart1","titlePart2","titlePart3","text","textPart2","urlPrefix","destinationUrlWithoutPrefix","description","ChannelTypeId","ChannelData","ExternalAdAccountId","IsSelected","IsSuggested","KeywordText","Bid","MatchType","McaCampaignId","ClientId","KeywordType","EditorialStatus","CreateDateTime","EntitySourceType","ActionType","EditorialInfos","EditorialRejectReason","AppealStatus","ViolatingLocation","ViolatingPolicyId","ViolatingText","openPanel","startLoading","stopLoading","onLoadedRecommendation","markToSaveData","markToDeleteData","startSaving","stopSaving","closePanel","Context","isUnifiedProduct","isUnifiedProductWizard","useIsUnifiedProduct","useIsUnifiedProductWizard","UpWizardContext","Store","showSwitchToExpert"],"mappings":"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","file":"static/js/application.initial~b3ea04b5.422b3e83.chunk.js","sourcesContent":["export const getStepIndicatorStyle = (_, { palette = {} }) => ({\r\n stepIndicator: {\r\n display: 'flex',\r\n border: 'none',\r\n flexShrink: 0,\r\n color: palette.neutralSecondary,\r\n },\r\n currentStep: {\r\n fontWeight: 'bold',\r\n color: palette.accent,\r\n },\r\n stepIndicatorIndex: {\r\n border: '1px solid',\r\n borderRadius: '50%',\r\n width: 20,\r\n height: 20,\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n marginRight: 8,\r\n },\r\n stepIndicatorTitle: {\r\n marginRight: 32,\r\n },\r\n});\r\n\r\nexport const getStepProgressBarStyle = () => ({\r\n stepProgressBar: {\r\n display: 'flex',\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport 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 { getStepIndicatorStyle, getStepProgressBarStyle } from '../styles/step-progress-bar-styles';\r\n\r\nfunction StepIndicator(props) {\r\n const {\r\n index,\r\n title,\r\n isCurrentStep,\r\n } = props;\r\n\r\n const classes = useDefaultStyles(getStepIndicatorStyle);\r\n\r\n return (\r\n \r\n \r\n {index}\r\n \r\n \r\n {title}\r\n \r\n \r\n );\r\n}\r\n\r\nStepIndicator.propTypes = {\r\n index: PropTypes.number.isRequired,\r\n title: PropTypes.string.isRequired,\r\n isCurrentStep: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport const StepProgressBar = (props) => {\r\n const {\r\n steps,\r\n } = props;\r\n const classes = useDefaultStyles(getStepProgressBarStyle);\r\n\r\n return (\r\n
\r\n {_.map(steps, (step, index) => (\r\n \r\n ))}\r\n
\r\n );\r\n};\r\n\r\nStepProgressBar.propTypes = {\r\n steps: PropTypes.arrayOf(PropTypes.shape({\r\n title: PropTypes.string.isRequired,\r\n isCurrentStep: PropTypes.bool.isRequired,\r\n })).isRequired,\r\n};\r\n","import { mobileDevice } from '@bingads-webui-campaign-react/mca-core';\r\n\r\nexport const getStepFooterStyles = (_, { palette = {} }) => ({\r\n footerContainer: {\r\n width: '100%',\r\n display: 'flex',\r\n clear: 'both',\r\n borderTop: `1px solid ${palette.neutralLight}`,\r\n paddingLeft: '32px',\r\n paddingTop: '15px',\r\n paddingBottom: '17px',\r\n background: palette.white,\r\n [mobileDevice]: {\r\n flexWrap: 'wrap',\r\n },\r\n },\r\n previousButton: {\r\n marginRight: '8px',\r\n },\r\n // For primary button border none in high contrast mode in edge\r\n primaryButton: {\r\n '&:focus::after': {\r\n '@media screen and (-ms-high-contrast: active)': {\r\n border: '1px solid white !important',\r\n },\r\n },\r\n },\r\n cancelButton: {\r\n marginLeft: '32px',\r\n },\r\n skippingLink: {\r\n marginLeft: '24px',\r\n },\r\n errorMessage: {\r\n color: palette.red,\r\n marginLeft: '16px',\r\n marginRight: '230px',\r\n alignItems: 'center',\r\n display: 'flex',\r\n [mobileDevice]: {\r\n margin: '8px 24px 0px 0px',\r\n },\r\n },\r\n});\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport _ from 'underscore';\r\nimport React, { useContext } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { DefaultButton, PrimaryButton, Link } from '@bingads-webui-react/fabric-with-signal';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { useIsReadOnlyUser } from '@bingads-webui-campaign-react/mca-core';\r\n\r\nimport { getStepFooterStyles } from '../styles/step-footer-styles';\r\n\r\nexport function StepFooter(props) {\r\n const {\r\n previousButtonLabel,\r\n nextButtonLabel,\r\n onPreviousClick,\r\n onNextClick,\r\n onCancelClick,\r\n onSkippingLinkClick,\r\n skippingLinkTitle,\r\n onRenderLinkContainer,\r\n errorMessage,\r\n isNextButtonDisabled,\r\n disableButtons,\r\n } = props;\r\n const classes = useDefaultStyles(getStepFooterStyles);\r\n const i18n = useContext(I18nContext);\r\n const isReadOnlyUser = useIsReadOnlyUser();\r\n\r\n return (\r\n
\r\n {\r\n _.isFunction(onPreviousClick) &&\r\n \r\n {previousButtonLabel || i18n.getString(_TL_('Back'))}\r\n \r\n }\r\n\r\n {\r\n _.isFunction(onNextClick) &&\r\n \r\n {nextButtonLabel || i18n.getString(_TL_('Next'))}\r\n \r\n }\r\n\r\n {\r\n _.isFunction(onCancelClick) &&\r\n \r\n {i18n.getString(_TL_('Cancel'))}\r\n \r\n }\r\n\r\n {\r\n _.isFunction(onSkippingLinkClick) && !_.isEmpty(skippingLinkTitle) &&\r\n \r\n {skippingLinkTitle}\r\n \r\n }\r\n\r\n {_.isFunction(onRenderLinkContainer) && onRenderLinkContainer()}\r\n\r\n {errorMessage && {errorMessage}}\r\n
\r\n );\r\n}\r\n\r\nStepFooter.propTypes = {\r\n previousButtonLabel: PropTypes.string,\r\n nextButtonLabel: PropTypes.string,\r\n onPreviousClick: PropTypes.func,\r\n onNextClick: PropTypes.func,\r\n onCancelClick: PropTypes.func,\r\n onSkippingLinkClick: PropTypes.func,\r\n skippingLinkTitle: PropTypes.string,\r\n onRenderLinkContainer: PropTypes.func,\r\n errorMessage: PropTypes.string,\r\n isNextButtonDisabled: PropTypes.bool,\r\n disableButtons: PropTypes.bool,\r\n};\r\n\r\nStepFooter.defaultProps = {\r\n previousButtonLabel: null,\r\n nextButtonLabel: null,\r\n onPreviousClick: null,\r\n onNextClick: null,\r\n onCancelClick: null,\r\n onSkippingLinkClick: null,\r\n skippingLinkTitle: null,\r\n onRenderLinkContainer: null,\r\n errorMessage: null,\r\n isNextButtonDisabled: false,\r\n disableButtons: false,\r\n};\r\n","export const getStepProgressFooterStyles = (_, { palette = {} }) => ({\r\n footerContainer: {\r\n width: '100%',\r\n display: 'flex',\r\n clear: 'both',\r\n borderTop: `1px solid ${palette.neutralLight}`,\r\n background: palette.white,\r\n justifyContent: 'space-between',\r\n padding: '15px 24px',\r\n },\r\n footerMiddle: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n previousButton: {\r\n marginRight: '8px',\r\n },\r\n // For primary button border none in high contrast mode in edge\r\n primaryButton: {\r\n '&:focus::after': {\r\n '@media screen and (-ms-high-contrast: active)': {\r\n border: '1px solid white !important',\r\n },\r\n },\r\n },\r\n cancelButton: {\r\n marginLeft: '16px',\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport React, { useContext } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { DefaultButton, PrimaryButton } from '@bingads-webui-react/fabric-with-signal';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { useIsReadOnlyUser } from '@bingads-webui-campaign-react/mca-core';\r\n\r\nimport { getStepProgressFooterStyles } from '../styles/step-progress-footer-styles';\r\nimport { StepProgressBar } from './step-progress-bar';\r\n\r\nexport function StepProgressFooter(props) {\r\n const {\r\n steps,\r\n previousButtonLabel,\r\n nextButtonLabel,\r\n onPreviousClick,\r\n onNextClick,\r\n onCancelClick,\r\n isNextButtonDisabled,\r\n disableButtons,\r\n } = props;\r\n const classes = useDefaultStyles(getStepProgressFooterStyles);\r\n const i18n = useContext(I18nContext);\r\n const isReadOnlyUser = useIsReadOnlyUser();\r\n\r\n return (\r\n
\r\n
\r\n {\r\n _.isFunction(onPreviousClick) &&\r\n \r\n {previousButtonLabel || i18n.getString(_TL_('Back'))}\r\n \r\n }\r\n {\r\n _.isFunction(onNextClick) &&\r\n \r\n {nextButtonLabel || i18n.getString(_TL_('Next'))}\r\n \r\n }\r\n
\r\n\r\n
\r\n {\r\n !_.isEmpty(steps) &&\r\n \r\n }\r\n
\r\n\r\n
\r\n {\r\n _.isFunction(onCancelClick) &&\r\n \r\n {i18n.getString(_TL_('Cancel'))}\r\n \r\n }\r\n
\r\n
\r\n );\r\n}\r\n\r\nStepProgressFooter.propTypes = {\r\n steps: PropTypes.arrayOf(PropTypes.shape({\r\n title: PropTypes.string,\r\n isCurrentStep: PropTypes.bool,\r\n })),\r\n previousButtonLabel: PropTypes.string,\r\n nextButtonLabel: PropTypes.string,\r\n onPreviousClick: PropTypes.func,\r\n onNextClick: PropTypes.func,\r\n onCancelClick: PropTypes.func,\r\n isNextButtonDisabled: PropTypes.bool,\r\n disableButtons: PropTypes.bool,\r\n};\r\n\r\nStepProgressFooter.defaultProps = {\r\n steps: [],\r\n previousButtonLabel: null,\r\n nextButtonLabel: null,\r\n onPreviousClick: null,\r\n onNextClick: null,\r\n onCancelClick: null,\r\n isNextButtonDisabled: false,\r\n disableButtons: false,\r\n};\r\n","import { mobileDevice } from '@bingads-webui-campaign-react/mca-core';\r\n\r\nexport const getCardWrapperStyles = (_, { palette = {} }) => ({\r\n cardContainer: {\r\n backgroundColor: palette.white,\r\n width: 680,\r\n boxSizing: 'border-box',\r\n boxShadow: '0px 0.3px 0.9px rgba(0, 0, 0, 0.1), 0px 1.6px 3.6px rgba(0, 0, 0, 0.13)',\r\n padding: 24,\r\n marginTop: 24,\r\n marginBottom: 32,\r\n [mobileDevice]: {\r\n width: 'auto',\r\n },\r\n },\r\n cardHeaderContainer: {\r\n position: 'relative',\r\n },\r\n titleContainer: {\r\n display: 'flex',\r\n alignSelf: 'flex-start',\r\n flexGrow: 1,\r\n '& .helpbutton': {\r\n paddingBottom: '0px',\r\n paddingTop: '0px',\r\n height: '24px',\r\n },\r\n },\r\n});\r\n","import React, { useMemo } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { Text } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { InlineHelp } from '@bingads-webui-campaign-react/mca-inline-help';\r\n\r\nimport { StepFooter } from './step-footer';\r\nimport { getCardWrapperStyles } from '../styles/card-wrapper-styles';\r\n\r\nexport function CardWrapper(props) {\r\n const {\r\n children,\r\n className,\r\n title,\r\n titleHelpTopic,\r\n\r\n previousButtonLabel,\r\n nextButtonLabel,\r\n onPreviousClick,\r\n onNextClick,\r\n onCancelClick,\r\n isNextButtonDisabled,\r\n disableButtons,\r\n } = props;\r\n const classes = useDefaultStyles(getCardWrapperStyles);\r\n\r\n const renderCardHeader = useMemo(() => (\r\n \r\n { title &&\r\n
\r\n \r\n {title}\r\n \r\n { titleHelpTopic &&\r\n \r\n }\r\n
\r\n }\r\n
\r\n ), [classes.titleContainer, title, titleHelpTopic]);\r\n\r\n return (\r\n
\r\n
\r\n {renderCardHeader}\r\n
\r\n {children}\r\n \r\n
\r\n );\r\n}\r\n\r\nCardWrapper.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.node,\r\n PropTypes.arrayOf(PropTypes.node),\r\n ]),\r\n className: PropTypes.string,\r\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\r\n titleHelpTopic: PropTypes.string,\r\n\r\n previousButtonLabel: PropTypes.string,\r\n nextButtonLabel: PropTypes.string,\r\n onPreviousClick: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\r\n onNextClick: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\r\n onCancelClick: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\r\n isNextButtonDisabled: PropTypes.bool,\r\n disableButtons: PropTypes.bool,\r\n};\r\n\r\nCardWrapper.defaultProps = {\r\n children: null,\r\n className: null,\r\n title: null,\r\n titleHelpTopic: null,\r\n\r\n previousButtonLabel: null,\r\n nextButtonLabel: null,\r\n onPreviousClick: null,\r\n onNextClick: null,\r\n onCancelClick: null,\r\n isNextButtonDisabled: false,\r\n disableButtons: false,\r\n};\r\n","import { mobileDevice } from '@bingads-webui-campaign-react/mca-core';\r\n\r\nexport const getCardStepLayoutStyles = (_, { palette = {} }) => ({\r\n stepLayoutContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n backgroundColor: palette.neutralLighterAlt,\r\n overflow: 'auto',\r\n height: '100%',\r\n width: '100%',\r\n },\r\n stepLayoutContentContainer: {\r\n padding: 40,\r\n [mobileDevice]: {\r\n padding: '30px 0 0',\r\n width: 350,\r\n },\r\n },\r\n stepLayoutHeaderContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n },\r\n stepContentContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n '& .step-footer': {\r\n padding: 0,\r\n border: 'none',\r\n marginTop: 32,\r\n },\r\n },\r\n stepLayoutFooterContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n [mobileDevice]: {\r\n marginBottom: 30,\r\n },\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport 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 { CardWrapper } from './components';\r\nimport { getCardStepLayoutStyles } from './styles/card-step-layout-styles';\r\n\r\nexport function CardStepLayout(props) {\r\n const {\r\n children,\r\n className,\r\n\r\n onRenderPageBanner,\r\n onRenderPageHeader,\r\n onRenderPageFooter,\r\n\r\n cardBasicProps,\r\n previousButtonLabel,\r\n nextButtonLabel,\r\n onPreviousClick,\r\n onNextClick,\r\n onCancelClick,\r\n isNextButtonDisabled,\r\n disableButtons,\r\n } = props;\r\n const classes = useDefaultStyles(getCardStepLayoutStyles);\r\n\r\n return (\r\n
\r\n {_.isFunction(onRenderPageBanner) && onRenderPageBanner()}\r\n
\r\n
\r\n {_.isFunction(onRenderPageHeader) && onRenderPageHeader()}\r\n
\r\n
\r\n \r\n {children}\r\n \r\n
\r\n {_.isFunction(onRenderPageFooter) && onRenderPageFooter()}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nCardStepLayout.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.node,\r\n PropTypes.arrayOf(PropTypes.node),\r\n ]),\r\n className: PropTypes.string,\r\n\r\n onRenderPageBanner: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\r\n onRenderPageHeader: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\r\n onRenderPageFooter: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\r\n\r\n cardBasicProps: PropTypes.shape({\r\n className: PropTypes.string,\r\n title: PropTypes.string,\r\n titleHelpTopic: PropTypes.string,\r\n }),\r\n previousButtonLabel: PropTypes.string,\r\n nextButtonLabel: PropTypes.string,\r\n onPreviousClick: PropTypes.func,\r\n onNextClick: PropTypes.func,\r\n onCancelClick: PropTypes.func,\r\n isNextButtonDisabled: PropTypes.bool,\r\n disableButtons: PropTypes.bool,\r\n};\r\n\r\nCardStepLayout.defaultProps = {\r\n children: null,\r\n className: null,\r\n\r\n onRenderPageBanner: null,\r\n onRenderPageHeader: null,\r\n onRenderPageFooter: null,\r\n\r\n cardBasicProps: null,\r\n previousButtonLabel: null,\r\n nextButtonLabel: null,\r\n onPreviousClick: null,\r\n onNextClick: null,\r\n onCancelClick: null,\r\n isNextButtonDisabled: false,\r\n disableButtons: false,\r\n};\r\n","import _ from 'underscore';\r\nimport { useCallback, useMemo } from 'react';\r\n\r\nimport { McaAgeTargets, McaChannelTypeBudgetRatio, McaChannelTypes, McaDefaultAgeTargets, McaDefaultGenderTargets, McaGenderTargets, McaTargetModel } from '@bingads-webui-campaign-react/mca-core';\r\nimport { useAudienceKPIEstimationV2 } from '@bingads-webui/overreact-ad-insight';\r\nimport { CURRENCY } from '@bingads-webui-multi-channel/locale-and-market-context';\r\n\r\nimport { useAccountLevelVariables, usePostponeReadVariables } from './use-variables';\r\n\r\nexport const DEFAULT_BID = 1;\r\nexport const DEFAULT_CAMPAIGN_SUBTYPE = 0; // StaticAds\r\nexport const DEFAULT_CAMPAIGN_BID_STRATEGY = 1; // Manual\r\n\r\n// AdInsight has a different mapping for some currencies\r\nexport const AdInsightCurrency = {\r\n ...CURRENCY,\r\n eur: 'EURO',\r\n idr: 'Rupiah',\r\n myr: 'MalaysianRinggit',\r\n pen: 'NuevoSol',\r\n qar: 'QatariRial',\r\n thb: 'Baht',\r\n usd: 'USDollar',\r\n vef: 'Bolivar',\r\n vnd: 'Dong',\r\n};\r\n\r\nconst getAdInsightCurrency = currency => _.get(AdInsightCurrency, currency.toLowerCase());\r\n\r\nconst AGE_TARGETS = _.map(McaDefaultAgeTargets, ageRange => ({\r\n '@odata.type': McaTargetModel.AgeTarget, AgeRange: ageRange,\r\n}));\r\n\r\nconst GENDER_TARGETS = _.map(McaDefaultGenderTargets, genderType => ({\r\n '@odata.type': McaTargetModel.GenderTarget, GenderType: genderType,\r\n}));\r\n\r\nconst groupTargetsByType = targets => _.groupBy(targets, target => target['@odata.type']);\r\n\r\nconst isTargetIncluded = (target, targets) => _.where(targets, target).length > 0;\r\n\r\n// All targets in `targetList` are considered as included, the rest are excluded.\r\n// But, if the list doesn't have any age or gender targets, then all of them are included respectively.\r\nexport const getIncludedTargets = (targets) => {\r\n let targetsWithDefaults = targets;\r\n\r\n const hasAgeTargets = isTargetIncluded({ '@odata.type': McaTargetModel.AgeTarget }, targets);\r\n\r\n if (!hasAgeTargets) {\r\n targetsWithDefaults = _.union(targetsWithDefaults, AGE_TARGETS);\r\n }\r\n\r\n const hasGenderTargets = isTargetIncluded({ '@odata.type': McaTargetModel.GenderTarget }, targets);\r\n\r\n if (!hasGenderTargets) {\r\n targetsWithDefaults = _.union(targetsWithDefaults, GENDER_TARGETS);\r\n }\r\n\r\n return targetsWithDefaults;\r\n};\r\n\r\nexport const getAudienceBudgetSuggestionPayload = (budget, targets = []) => {\r\n const { dailyBudget, currency } = budget;\r\n\r\n const includedTargets = getIncludedTargets(targets);\r\n\r\n const {\r\n [McaTargetModel.AgeTarget]: ageTargets,\r\n [McaTargetModel.GenderTarget]: genderTargets,\r\n [McaTargetModel.LocationTarget]: locationTargets,\r\n [McaTargetModel.RadiusTarget]: radiusTargets,\r\n } = groupTargetsByType(includedTargets);\r\n\r\n return {\r\n request: {\r\n DailyBudget: dailyBudget,\r\n Currency: getAdInsightCurrency(currency),\r\n CampaignSubType: DEFAULT_CAMPAIGN_SUBTYPE,\r\n Bid: DEFAULT_BID,\r\n CampaignBiddingStrategy: DEFAULT_CAMPAIGN_BID_STRATEGY,\r\n\r\n Age: {\r\n Includes: _.filter(McaAgeTargets, target => isTargetIncluded({ AgeRange: target }, ageTargets)),\r\n Excludes: _.filter(McaAgeTargets, target => !isTargetIncluded({ AgeRange: target }, ageTargets)),\r\n },\r\n Gender: {\r\n Includes: _.filter(McaGenderTargets, target => isTargetIncluded({ GenderType: target }, genderTargets)),\r\n Excludes: _.filter(McaGenderTargets, target => !isTargetIncluded({ GenderType: target }, genderTargets)),\r\n },\r\n Location: {\r\n Includes: _.map(locationTargets, target => target.BingLocationId),\r\n Excludes: [],\r\n },\r\n RadiusTargets: _.map(radiusTargets, target => ({\r\n Radius: target.RadiusLength,\r\n CenterLatitude: target.Latitude,\r\n CenterLongitude: target.Longitude,\r\n })),\r\n },\r\n };\r\n};\r\n\r\nexport const getAudienceBudgetRatio = (campaign) => {\r\n const servingChannels = _.get(campaign, 'ServingChannels', []);\r\n\r\n if (!_.contains(servingChannels, McaChannelTypes.MSAN)) {\r\n return 0;\r\n }\r\n\r\n const msanRatio = McaChannelTypeBudgetRatio[McaChannelTypes.MSAN];\r\n\r\n const totalRatios = _.chain(servingChannels)\r\n .map(channel => McaChannelTypeBudgetRatio[channel])\r\n .reduce((sum, channelRatio) => (sum + channelRatio))\r\n .value();\r\n\r\n return (msanRatio / totalRatios);\r\n};\r\n\r\nexport const useAudienceBudgetSuggestion = () => {\r\n const variables = useAccountLevelVariables();\r\n const config = usePostponeReadVariables();\r\n\r\n const [{ data, errors }, { refetch }] = useAudienceKPIEstimationV2(variables, config);\r\n\r\n const read = useCallback((budget, targets) => {\r\n refetch({ payload: getAudienceBudgetSuggestionPayload(budget, targets) });\r\n }, [refetch]);\r\n\r\n const debouncedRead = useMemo(() => _.debounce(read, 500), [read]);\r\n\r\n return [{ data, errors }, { read: debouncedRead }];\r\n};\r\n","import _ from 'underscore';\r\nimport { useContext, useEffect, useState, useMemo } from 'react';\r\n\r\nimport { ServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { useAccount } from '@bingads-webui/overreact-odata-campaign';\r\nimport { McaAccountTier, useM365Enabled } from '@bingads-webui-campaign-react/mca-core';\r\n\r\nimport { useAccountLevelVariables } from './use-variables';\r\n\r\nexport const useIsM365PremiumUser = () => {\r\n const serverContext = useContext(ServerContext);\r\n const { CurrentAccount } = serverContext || {};\r\n const [isDataLoaded, setIsDataLoaded] = useState(false);\r\n const [isM365User, setIsM365User] = useState(false);\r\n\r\n const isM365FeatureEnabled = useM365Enabled();\r\n\r\n const variables = useAccountLevelVariables();\r\n const config = useMemo(() => ({\r\n fetch: {\r\n postponeRead: true,\r\n },\r\n refetch: {\r\n onComplete: (account) => {\r\n const { McaAccountTier: mcaAccountTier } = account || {};\r\n const result = !_.isEmpty(mcaAccountTier) &&\r\n mcaAccountTier.toLowerCase() !== McaAccountTier.None.toLowerCase();\r\n\r\n setIsM365User(result);\r\n },\r\n onError: () => {\r\n // TODO: error handling\r\n },\r\n },\r\n }), []);\r\n\r\n const [, { refetch }] = useAccount(variables, config);\r\n\r\n useEffect(() => {\r\n if (isM365FeatureEnabled && CurrentAccount && CurrentAccount.Id && !isDataLoaded) {\r\n setIsDataLoaded(true);\r\n refetch();\r\n }\r\n }, [CurrentAccount, isDataLoaded, isM365FeatureEnabled, refetch]);\r\n\r\n return isM365User;\r\n};\r\n","import React from 'react';\r\n\r\n/**\r\n * Used to store temporary state and dispatch needed for the blocking action marker in UP.\r\n */\r\nexport const UpBlockingActionMarkerContext = React.createContext();\r\n","import _ from 'underscore';\r\nimport { useEffect, useState, useCallback, useMemo } from 'react';\r\nimport { McaChannelTypes, McaSocialChannelTypes } from '@bingads-webui-campaign-react/mca-core';\r\nimport { useSocialProfiles as useSocialProfilesOverreactHook } from '@bingads-webui/overreact-odata-multi-channel';\r\n\r\nimport { useAccountLevelVariables, useSocialProfilesVariablesOptions } from './use-variables';\r\n\r\nconst DEFAULT_CONFIG = {};\r\n\r\nconst socialChannelTypesFilter = _.chain(McaSocialChannelTypes)\r\n .map(ct => `ChannelType eq Enum.ChannelType'${ct}'`)\r\n .join(' or ')\r\n .value();\r\n\r\nconst internalChannelTypeFilter = `ChannelType eq Enum.ChannelType'${McaChannelTypes.Internal}'`;\r\n\r\nexport const useSocialProfiles = (props, config = DEFAULT_CONFIG) => {\r\n const { shouldAutoRead, variables } = props || {};\r\n const [shouldRead, setShouldRead] = useState(shouldAutoRead);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const socialProfileVariables = useSocialProfilesVariablesOptions({\r\n filter: { where: socialChannelTypesFilter },\r\n ...variables,\r\n });\r\n const accountLevelVariables = useAccountLevelVariables(socialProfileVariables);\r\n\r\n const [entityState, actions] = useSocialProfilesOverreactHook(accountLevelVariables, config);\r\n const { data } = entityState;\r\n const { loadMore } = actions;\r\n\r\n const onFetchComplete = useCallback(() => {\r\n setIsLoading(false);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (shouldRead && !data && !isLoading) {\r\n setIsLoading(true);\r\n loadMore({\r\n onComplete: onFetchComplete,\r\n onError: onFetchComplete,\r\n });\r\n setShouldRead(false);\r\n }\r\n }, [data, isLoading, onFetchComplete, loadMore, shouldRead]);\r\n\r\n const dataSet = useMemo(() => _.extend({}, entityState, { isLoading }), [entityState, isLoading]);\r\n\r\n return [dataSet, actions];\r\n};\r\n\r\nexport const useInternalSocialProfiles = (props) => {\r\n const { shouldAutoRead } = props || {};\r\n const [shouldRead, setShouldRead] = useState(shouldAutoRead);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const socialProfileVariables = useSocialProfilesVariablesOptions({\r\n filter: { where: internalChannelTypeFilter },\r\n });\r\n const accountLevelVariables = useAccountLevelVariables(socialProfileVariables);\r\n\r\n const [entityState, actions] = useSocialProfilesOverreactHook(accountLevelVariables);\r\n const { data } = entityState;\r\n const { loadMore } = actions;\r\n\r\n const onFetchComplete = useCallback(() => setIsLoading(false), []);\r\n\r\n useEffect(() => {\r\n if (shouldRead && !data && !isLoading) {\r\n setIsLoading(true);\r\n loadMore({\r\n onComplete: onFetchComplete,\r\n onError: onFetchComplete,\r\n });\r\n setShouldRead(false);\r\n }\r\n }, [data, isLoading, onFetchComplete, loadMore, shouldRead]);\r\n\r\n return [entityState, actions];\r\n};\r\n","export const STEP_MANAGER_ACTIONS = {\r\n COLLAPSE: 'COLLAPSE',\r\n EXPAND: 'EXPAND',\r\n UPDATE_STATUS: 'UPDATE_STATUS',\r\n UPDATE_DATA: 'UPDATE_DATA',\r\n};\r\n","import _ from 'underscore';\r\nimport { STEP_MANAGER_ACTIONS } from './step-manager-actions';\r\n\r\nconst defaultStepStatus = {\r\n isInitialized: false,\r\n hasUnsavedChange: false,\r\n errorString: null,\r\n};\r\n\r\nexport function getInitialState(initialState) {\r\n const { config } = initialState;\r\n const stepListSize = _.size(config);\r\n const statusList = Array(stepListSize).fill(defaultStepStatus);\r\n const dataList = Array(stepListSize).fill(undefined);\r\n return {\r\n stepListSize,\r\n expandedStepIndex: 0,\r\n shouldSaveList: Array(stepListSize).fill(false),\r\n statusList,\r\n dataList,\r\n };\r\n}\r\n\r\nexport function stepManagerReducer(state, action) {\r\n switch (action.type) {\r\n case STEP_MANAGER_ACTIONS.COLLAPSE: {\r\n if (state.expandedStepIndex > -1) {\r\n const newShouldSaveList = Array(state.stepListSize).fill(false);\r\n newShouldSaveList[state.expandedStepIndex] = true;\r\n return {\r\n ...state,\r\n expandedStepIndex: -1,\r\n shouldSaveList: newShouldSaveList,\r\n };\r\n }\r\n\r\n return state;\r\n }\r\n\r\n case STEP_MANAGER_ACTIONS.EXPAND: {\r\n const { toExpandedStepIndex } = action;\r\n const expandedStepIndex = Math.min(toExpandedStepIndex, state.stepListSize - 1);\r\n const shouldSaveList = [...state.shouldSaveList];\r\n shouldSaveList[expandedStepIndex] = false;\r\n return {\r\n ...state,\r\n expandedStepIndex,\r\n shouldSaveList,\r\n };\r\n }\r\n\r\n case STEP_MANAGER_ACTIONS.UPDATE_STATUS: {\r\n const { index, status } = action;\r\n // Make sure unexpected status won't be updated to statusList\r\n const pickedStatus = _.pick(status, _.keys(defaultStepStatus));\r\n const newStatus = _.defaults(pickedStatus, state.statusList[index]);\r\n\r\n if (_.isEqual(newStatus, state.statusList[index])) {\r\n return state;\r\n }\r\n\r\n const statusList = [...state.statusList];\r\n statusList.splice(index, 1, newStatus);\r\n return {\r\n ...state,\r\n statusList,\r\n };\r\n }\r\n\r\n case STEP_MANAGER_ACTIONS.UPDATE_DATA: {\r\n const { index, data } = action;\r\n const dataList = [...state.dataList];\r\n dataList.splice(index, 1, data);\r\n return {\r\n ...state,\r\n dataList,\r\n };\r\n }\r\n\r\n default: throw new Error(`Invalid step manager action: ${action.type}`);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport React, { useEffect, useMemo, useReducer } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { useStepListRenderer } from './use-step-list-renderer';\r\nimport { getInitialState, stepManagerReducer } from './step-manager-reducer';\r\n\r\nexport function StepManager(props) {\r\n const {\r\n config,\r\n shouldSave,\r\n shouldScrollToMe,\r\n onStatusUpdate,\r\n onDataChange,\r\n scrollToExpandedStep,\r\n } = props;\r\n const initialState = useMemo(() => getInitialState({ config }), [config]);\r\n const [state, dispatch] = useReducer(stepManagerReducer, initialState);\r\n const { dataList, statusList } = state;\r\n const steps = useStepListRenderer({\r\n config, dispatch, state, shouldSave, shouldScrollToMe, scrollToExpandedStep,\r\n });\r\n\r\n const isInitialized = useMemo(() =>\r\n _.every(statusList, status => status.isInitialized), [statusList]);\r\n const hasUnsavedChange = useMemo(() =>\r\n _.any(statusList, status => status.hasUnsavedChange), [statusList]);\r\n const hasError = useMemo(() =>\r\n _.any(statusList, status => !_.isEmpty(status.errorString)), [statusList]);\r\n\r\n useEffect(() => {\r\n onDataChange(dataList);\r\n }, [dataList, onDataChange]);\r\n\r\n useEffect(() => {\r\n onStatusUpdate({\r\n isInitialized,\r\n hasUnsavedChange,\r\n hasError,\r\n });\r\n }, [hasError, hasUnsavedChange, isInitialized, onStatusUpdate]);\r\n\r\n return (\r\n
\r\n { steps }\r\n
\r\n );\r\n}\r\n\r\nStepManager.propTypes = {\r\n config: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n shouldSave: PropTypes.bool.isRequired,\r\n shouldScrollToMe: PropTypes.bool.isRequired,\r\n onStatusUpdate: PropTypes.func.isRequired,\r\n onDataChange: PropTypes.func.isRequired,\r\n scrollToExpandedStep: PropTypes.bool,\r\n};\r\n\r\nStepManager.defaultProps = {\r\n scrollToExpandedStep: false,\r\n};\r\n","import React, { useCallback, useMemo } from 'react';\r\nimport _ from 'underscore';\r\n\r\nimport { STEP_MANAGER_ACTIONS } from './step-manager-actions';\r\n\r\nexport function useStepListRenderer({\r\n config, dispatch, state, shouldSave, shouldScrollToMe, scrollToExpandedStep,\r\n}) {\r\n const { expandedStepIndex, shouldSaveList, statusList } = state;\r\n\r\n const firstErrorIndex = useMemo(() =>\r\n _.findIndex(statusList, status => !_.isEmpty(status.errorString)), [statusList]);\r\n\r\n const expand = useCallback(index => () => dispatch({\r\n type: STEP_MANAGER_ACTIONS.EXPAND,\r\n toExpandedStepIndex: index,\r\n }), [dispatch]);\r\n\r\n const collapse = useCallback(() => {\r\n dispatch({\r\n type: STEP_MANAGER_ACTIONS.COLLAPSE,\r\n });\r\n }, [dispatch]);\r\n\r\n const onExpandClicked = useCallback(index => () => {\r\n collapse();\r\n expand(index)();\r\n }, [collapse, expand]);\r\n\r\n const onGoToNextClicked = useCallback(index => () => {\r\n collapse();\r\n expand(index + 1)();\r\n }, [collapse, expand]);\r\n\r\n const updateStatus = useCallback(index => (status) => {\r\n dispatch({\r\n type: STEP_MANAGER_ACTIONS.UPDATE_STATUS,\r\n index,\r\n status,\r\n });\r\n }, [dispatch]);\r\n\r\n const updateData = useCallback(index => (data) => {\r\n dispatch({\r\n type: STEP_MANAGER_ACTIONS.UPDATE_DATA,\r\n index,\r\n data,\r\n });\r\n }, [dispatch]);\r\n\r\n const steps = useMemo(() => {\r\n const stepList = _.map(config, (s, index) => {\r\n const isExpanded = expandedStepIndex === index;\r\n const shouldScrollToStep = (isExpanded && scrollToExpandedStep) ||\r\n (shouldScrollToMe && firstErrorIndex === index);\r\n const onToggle = isExpanded ? collapse : onExpandClicked(index);\r\n const onGoToNext = onGoToNextClicked(index);\r\n const onStatusUpdate = updateStatus(index);\r\n const onDataChange = updateData(index);\r\n const stepShouldSave = (shouldSave || shouldSaveList[index])\r\n && statusList[index].hasUnsavedChange && _.isEmpty(statusList[index].errorString);\r\n\r\n return (\r\n \r\n );\r\n });\r\n return stepList;\r\n }, [collapse, config, expandedStepIndex, firstErrorIndex, onExpandClicked, onGoToNextClicked,\r\n shouldSave, shouldSaveList, shouldScrollToMe, statusList, updateData, updateStatus, scrollToExpandedStep]);\r\n\r\n return steps;\r\n}\r\n","/* istanbul ignore file */\r\n\r\nexport const getItemStyles = (_, { palette = {} }) => ({\r\n accordionItem: {\r\n backgroundColor: palette.white,\r\n boxShadow: '0px 1.6px 3.6px rgb(0 0 0 / 13%)',\r\n borderRadius: '2px',\r\n marginBottom: 12,\r\n padding: '24px 20px',\r\n },\r\n});\r\n\r\nexport const getHeaderStyles = () => ({\r\n title: {\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n },\r\n});\r\n\r\nexport const getDetailsStyles = () => ({\r\n accordionDetails: {\r\n minHeight: 60,\r\n position: 'relative',\r\n },\r\n spinner: {\r\n position: 'absolute',\r\n inset: 0,\r\n backgroundColor: 'rgba(51, 51, 51, 0.15)',\r\n zIndex: 1000,\r\n },\r\n});\r\n\r\nexport const getSummaryStyle = (_, { palette = {} }) => ({\r\n icon: {\r\n color: palette.redDark,\r\n },\r\n error: {\r\n color: palette.redDark,\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport React, { useMemo, 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 {\r\n Stack,\r\n Text,\r\n IconButton,\r\n FontIcon,\r\n Spinner,\r\n SpinnerSize,\r\n} from '@fluentui/react';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { getItemStyles, getHeaderStyles, getDetailsStyles, getSummaryStyle } from './get-styles';\r\n\r\nconst AccordionContext = React.createContext({});\r\n\r\nconst Item = React.forwardRef((props, ref) => {\r\n const {\r\n isExpanded,\r\n isBlocking,\r\n onToggle,\r\n children,\r\n isToggleHidden,\r\n } = props;\r\n const classes = useDefaultStyles(getItemStyles);\r\n\r\n const contextValue = useMemo(() => ({\r\n isBlocking,\r\n isExpanded,\r\n onToggle,\r\n isToggleHidden,\r\n }), [isBlocking, isExpanded, onToggle, isToggleHidden]);\r\n\r\n return (\r\n \r\n
\r\n \r\n {children}\r\n \r\n
\r\n
\r\n );\r\n});\r\n\r\nItem.propTypes = {\r\n onToggle: PropTypes.func.isRequired,\r\n isExpanded: PropTypes.bool.isRequired,\r\n isToggleHidden: PropTypes.bool,\r\n isBlocking: PropTypes.bool,\r\n children: PropTypes.oneOfType([\r\n PropTypes.node,\r\n PropTypes.arrayOf(PropTypes.node),\r\n ]),\r\n};\r\n\r\nItem.defaultProps = {\r\n children: null,\r\n isBlocking: false,\r\n isToggleHidden: false,\r\n};\r\n\r\nconst Header = (props) => {\r\n const {\r\n title,\r\n } = props;\r\n const {\r\n isExpanded,\r\n onToggle,\r\n isToggleHidden,\r\n } = useContext(AccordionContext);\r\n const classes = useDefaultStyles(getHeaderStyles);\r\n\r\n const iconProps = useMemo(() => {\r\n const transform = isExpanded ? 'rotate(0deg)' : 'rotate(180deg)';\r\n\r\n return {\r\n iconName: 'ChevronUp',\r\n styles: {\r\n root: {\r\n transform,\r\n transformOrigin: '50% 50%',\r\n transition: 'transform .1s linear',\r\n },\r\n },\r\n };\r\n }, [isExpanded]);\r\n\r\n return (\r\n
\r\n \r\n {title}\r\n {\r\n !isToggleHidden &&\r\n \r\n }\r\n \r\n
\r\n );\r\n};\r\n\r\nHeader.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n};\r\n\r\nHeader.defaultProps = {\r\n};\r\n\r\nconst Summary = (props) => {\r\n const {\r\n errorMessage,\r\n children,\r\n } = props;\r\n const classes = useDefaultStyles(getSummaryStyle);\r\n const {\r\n isExpanded,\r\n } = useContext(AccordionContext);\r\n\r\n if (isExpanded) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n {!_.isEmpty(errorMessage) ?\r\n \r\n \r\n {errorMessage}\r\n : children}\r\n
\r\n );\r\n};\r\n\r\nSummary.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.node,\r\n PropTypes.arrayOf(PropTypes.node),\r\n ]),\r\n errorMessage: PropTypes.string,\r\n};\r\n\r\nSummary.defaultProps = {\r\n children: null,\r\n errorMessage: undefined,\r\n};\r\n\r\nconst Details = (props) => {\r\n const {\r\n children,\r\n } = props;\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getDetailsStyles);\r\n\r\n const {\r\n isExpanded,\r\n isBlocking,\r\n } = useContext(AccordionContext);\r\n\r\n if (!isExpanded) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {children}\r\n
\r\n {\r\n isBlocking &&\r\n \r\n }\r\n
\r\n );\r\n};\r\n\r\nDetails.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.node,\r\n PropTypes.arrayOf(PropTypes.node),\r\n ]),\r\n};\r\n\r\nDetails.defaultProps = {\r\n children: null,\r\n};\r\n\r\nexport const Accordion = Object.seal({\r\n Item,\r\n Header,\r\n Summary,\r\n Details,\r\n});\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const account = PropTypes.shape({\r\n id: PropTypes.number,\r\n Name: PropTypes.string,\r\n Number: PropTypes.string,\r\n CurrencyType: PropTypes.string,\r\n PaymentType: PropTypes.number,\r\n PaymentOption: PropTypes.string,\r\n TimeZone: PropTypes.number,\r\n TaxInformation: PropTypes.arrayOf(PropTypes.shape({\r\n Key: PropTypes.string.isRequired,\r\n Value: PropTypes.string.isRequired,\r\n })),\r\n BusinessAddress: PropTypes.shape({\r\n Id: PropTypes.number,\r\n BusinessName: PropTypes.string,\r\n City: PropTypes.string,\r\n Country: PropTypes.string,\r\n Line1: PropTypes.string,\r\n Line2: PropTypes.string,\r\n PostalCode: PropTypes.string,\r\n StateOrProvince: PropTypes.string,\r\n CountryName: PropTypes.string,\r\n StateOrProvinceName: PropTypes.string,\r\n IsValid: PropTypes.bool,\r\n ValidationVersionId: PropTypes.number,\r\n }).isRequired,\r\n PreferredBillToPaymentInstrumentId: PropTypes.number,\r\n});\r\n\r\nexport const customer = PropTypes.shape({\r\n id: PropTypes.number,\r\n Name: PropTypes.string,\r\n BusinessPhone: PropTypes.string,\r\n});\r\n\r\nexport const user = PropTypes.shape({\r\n id: PropTypes.number,\r\n UserName: PropTypes.string,\r\n Email: PropTypes.string,\r\n AllowContact: PropTypes.bool,\r\n AllowContactByPhone: PropTypes.bool,\r\n ContactInfo: PropTypes.shape({\r\n Fax: PropTypes.string,\r\n HomePhone: PropTypes.string,\r\n Id: PropTypes.number,\r\n Mobile: PropTypes.string,\r\n Phone1: PropTypes.string,\r\n Phone2: PropTypes.string,\r\n }),\r\n Name: PropTypes.shape({\r\n FirstName: PropTypes.string,\r\n LastName: PropTypes.string,\r\n MiddleInitial: PropTypes.string,\r\n }),\r\n Address: PropTypes.shape({\r\n City: PropTypes.string,\r\n Country: PropTypes.string,\r\n Line1: PropTypes.string,\r\n Line2: PropTypes.string,\r\n PostalCode: PropTypes.string,\r\n StateOrProvince: PropTypes.string,\r\n }),\r\n});\r\n\r\nexport const domainDataCountries = PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.string,\r\n value: PropTypes.shape({\r\n Code: PropTypes.string.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n }),\r\n}));\r\n\r\nexport const domainDataCurrencyCountriesMapping = PropTypes.arrayOf(PropTypes.shape({\r\n currency: PropTypes.string.isRequired,\r\n countries: PropTypes.arrayOf(PropTypes.string.isRequired),\r\n}));\r\n\r\nexport const domainDataCurrencies = PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n value: PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Code: PropTypes.string.isRequired,\r\n ControlledCurrencyCountryId: PropTypes.number,\r\n }),\r\n}));\r\n\r\nexport const paymentInstrumentConfigs = PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n supportedPaymentType: PropTypes.number,\r\n supportedCurrencies: PropTypes.arrayOf(PropTypes.string.isRequired),\r\n useSupportedCountryList: PropTypes.bool.isRequired,\r\n supportedCountries: PropTypes.arrayOf(PropTypes.string.isRequired),\r\n}));\r\n\r\nexport const termsAndConditionsModels = PropTypes.arrayOf(PropTypes.shape({\r\n LocalizationKey: PropTypes.string,\r\n RichTextItems: PropTypes.arrayOf(PropTypes.string),\r\n IsReadonly: PropTypes.bool,\r\n Id: PropTypes.string,\r\n Selected: PropTypes.bool,\r\n}));\r\n\r\nexport const domainDataTimeZones = PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n value: PropTypes.shape({\r\n Name: PropTypes.string.isRequired,\r\n }),\r\n}));\r\n\r\nexport const paymentInstrument = PropTypes.arrayOf(PropTypes.shape({\r\n CardCategory: PropTypes.number,\r\n CardType: PropTypes.string,\r\n ExpirationDate: PropTypes.string,\r\n OnHoldDate: PropTypes.string,\r\n FirstName: PropTypes.string,\r\n LastName: PropTypes.string,\r\n Number: PropTypes.string,\r\n Id: PropTypes.number,\r\n Address: PropTypes.shape({\r\n Id: PropTypes.number,\r\n BusinessName: PropTypes.string,\r\n City: PropTypes.string,\r\n Country: PropTypes.string,\r\n Line1: PropTypes.string,\r\n Line2: PropTypes.string,\r\n Line3: PropTypes.string,\r\n Line4: PropTypes.string,\r\n PostalCode: PropTypes.string,\r\n StateOrProvince: PropTypes.string,\r\n CountryName: PropTypes.string,\r\n StateOrProvinceName: PropTypes.string,\r\n IsValid: PropTypes.bool,\r\n ValidationVersionId: PropTypes.number,\r\n Timestamp: PropTypes.string,\r\n }),\r\n FinancialStatus: PropTypes.number,\r\n LifecycleStatusId: PropTypes.number,\r\n SupportsPrepay: PropTypes.bool,\r\n SupportsPostpay: PropTypes.bool,\r\n Type: PropTypes.number,\r\n CTPPIId: PropTypes.string,\r\n CTPAccountId: PropTypes.string,\r\n Timestamp: PropTypes.string,\r\n SupportsRecurringPayment: PropTypes.bool,\r\n CanAssociateWithAccount: PropTypes.bool,\r\n}));\r\n\r\nexport const creditCard = PropTypes.shape({\r\n CardCategory: PropTypes.number,\r\n CardType: PropTypes.string,\r\n ExpirationDate: PropTypes.string,\r\n OnHoldDate: PropTypes.string,\r\n FirstName: PropTypes.string,\r\n LastName: PropTypes.string,\r\n Number: PropTypes.string,\r\n Id: PropTypes.number,\r\n Address: PropTypes.shape({\r\n Id: PropTypes.number,\r\n BusinessName: PropTypes.string,\r\n City: PropTypes.string,\r\n Country: PropTypes.string,\r\n Line1: PropTypes.string,\r\n Line2: PropTypes.string,\r\n Line3: PropTypes.string,\r\n Line4: PropTypes.string,\r\n PostalCode: PropTypes.string,\r\n StateOrProvince: PropTypes.string,\r\n CountryName: PropTypes.string,\r\n StateOrProvinceName: PropTypes.string,\r\n IsValid: PropTypes.bool,\r\n ValidationVersionId: PropTypes.number,\r\n Timestamp: PropTypes.string,\r\n }),\r\n FinancialStatus: PropTypes.number,\r\n LifecycleStatusId: PropTypes.number,\r\n SupportsPrepay: PropTypes.bool,\r\n SupportsPostpay: PropTypes.bool,\r\n Type: PropTypes.number,\r\n CTPPIId: PropTypes.string,\r\n CTPAccountId: PropTypes.string,\r\n Timestamp: PropTypes.string,\r\n SupportsRecurringPayment: PropTypes.bool,\r\n CanAssociateWithAccount: PropTypes.bool,\r\n});\r\n\r\nexport const billingStatementsProp = PropTypes.arrayOf(PropTypes.shape({\r\n CardCategory: PropTypes.number,\r\n CardType: PropTypes.string,\r\n ExpirationDate: PropTypes.string,\r\n OnHoldDate: PropTypes.string,\r\n FirstName: PropTypes.string,\r\n LastName: PropTypes.string,\r\n Number: PropTypes.string,\r\n Id: PropTypes.number,\r\n Address: PropTypes.shape({\r\n Id: PropTypes.number,\r\n BusinessName: PropTypes.string,\r\n City: PropTypes.string,\r\n Country: PropTypes.string,\r\n Line1: PropTypes.string,\r\n Line2: PropTypes.string,\r\n Line3: PropTypes.string,\r\n Line4: PropTypes.string,\r\n PostalCode: PropTypes.string,\r\n StateOrProvince: PropTypes.string,\r\n CountryName: PropTypes.string,\r\n StateOrProvinceName: PropTypes.string,\r\n IsValid: PropTypes.bool,\r\n ValidationVersionId: PropTypes.number,\r\n Timestamp: PropTypes.string,\r\n }),\r\n FinancialStatus: PropTypes.number,\r\n LifecycleStatusId: PropTypes.number,\r\n SupportsPrepay: PropTypes.bool,\r\n SupportsPostpay: PropTypes.bool,\r\n Type: PropTypes.number,\r\n CTPPIId: PropTypes.string,\r\n CTPAccountId: PropTypes.string,\r\n Timestamp: PropTypes.string,\r\n SupportsRecurringPayment: PropTypes.bool,\r\n CanAssociateWithAccount: PropTypes.bool,\r\n}));\r\n\r\nexport const billingSummaryProps = PropTypes.shape({\r\n postpayBillingSummary: PropTypes.shape({\r\n Data: PropTypes.shape({\r\n summary: PropTypes.shape({\r\n AccountId: PropTypes.number,\r\n BalanceDue: PropTypes.number,\r\n BillingCycleDay: PropTypes.number,\r\n BillMeNowFlag: PropTypes.number,\r\n BilltoCustomerId: PropTypes.number,\r\n BilltoCustomerName: PropTypes.string,\r\n CurrencyCode: PropTypes.string,\r\n CurrentBalance: PropTypes.number,\r\n CurrentThresholdBalance: PropTypes.number,\r\n IsStatementConsolidated: PropTypes.bool,\r\n LastPaymentAmount: PropTypes.number,\r\n LastPaymentDate: PropTypes.string,\r\n MaxThresholdBalance: PropTypes.number,\r\n MinThresholdBalance: PropTypes.number,\r\n PaymentOptionId: PropTypes.number,\r\n TotalAmount: PropTypes.number,\r\n }),\r\n }),\r\n }),\r\n thresholdBillingSummary: PropTypes.shape({\r\n Data: PropTypes.shape({\r\n summary: PropTypes.shape({\r\n AccountId: PropTypes.number,\r\n BalanceDue: PropTypes.number,\r\n BillingCycleDay: PropTypes.number,\r\n BillMeNowFlag: PropTypes.number,\r\n BilltoCustomerId: PropTypes.number,\r\n BilltoCustomerName: PropTypes.string,\r\n CurrencyCode: PropTypes.string,\r\n CurrentBalance: PropTypes.number,\r\n CurrentThresholdBalance: PropTypes.number,\r\n IsStatementConsolidated: PropTypes.bool,\r\n LastPaymentAmount: PropTypes.number,\r\n LastPaymentDate: PropTypes.string,\r\n MaxThresholdBalance: PropTypes.number,\r\n MinThresholdBalance: PropTypes.number,\r\n PaymentOptionId: PropTypes.number,\r\n TotalAmount: PropTypes.number,\r\n }),\r\n }),\r\n }),\r\n couponBillingSummary: PropTypes.shape({\r\n id: PropTypes.string,\r\n summary: PropTypes.arrayOf(PropTypes.shape({\r\n AccountId: PropTypes.number,\r\n BilltoCustomerId: PropTypes.number,\r\n BilltoCustomerName: PropTypes.string,\r\n CouponRemainingBalance: PropTypes.number,\r\n CurrencyCode: PropTypes.string,\r\n IsStatementConsolidated: PropTypes.bool,\r\n LastPaymentAmount: PropTypes.number,\r\n LastPaymentDate: PropTypes.number,\r\n PaymentOptionId: PropTypes.number,\r\n TotalAmount: PropTypes.number,\r\n CouponConsumedAmount: PropTypes.number,\r\n })),\r\n }),\r\n});\r\n\r\nexport const CouponDetailsProps = PropTypes.shape({\r\n CouponValue: PropTypes.number.isRequired,\r\n ClassName: PropTypes.string.isRequired,\r\n CouponTypeId: PropTypes.number.isRequired,\r\n PercentOff: PropTypes.number.isRequired,\r\n ExpiryDate: PropTypes.string.isRequired,\r\n LimitForDaysToUseFromCustomerCreation: PropTypes.number.isRequired,\r\n});\r\n\r\nexport const MultiCouponDetailsProps = PropTypes.shape({\r\n couponString: PropTypes.string.isRequired,\r\n couponStringType: PropTypes.string.isRequired,\r\n couponDetails: CouponDetailsProps.isRequired,\r\n});\r\n\r\nexport const CouponProps = PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n Amount: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n CouponCode: PropTypes.string.isRequired,\r\n CouponType: PropTypes.number.isRequired,\r\n UpfrontSpendThreshold: PropTypes.number.isRequired,\r\n CurrentUpfrontSpend: PropTypes.number.isRequired,\r\n StatusId: PropTypes.number.isRequired,\r\n});\r\n\r\nexport const CouponsProps = PropTypes.arrayOf(CouponProps);\r\n","import PropTypes from 'prop-types';\r\nimport { paymentInstrumentConfigs } from './ccui-props';\r\n\r\nexport const i18n = PropTypes.shape({\r\n formatDate: PropTypes.func.isRequired,\r\n formatPercent: PropTypes.func.isRequired,\r\n getCurrencySymbol: PropTypes.func.isRequired,\r\n getString: PropTypes.func.isRequired,\r\n isReady: PropTypes.func.isRequired,\r\n parseDate: PropTypes.func.isRequired,\r\n parseDecimal: PropTypes.func.isRequired,\r\n});\r\n\r\nexport const legacyI18n = PropTypes.shape({\r\n formatDate: PropTypes.func.isRequired,\r\n formatPercent: PropTypes.func.isRequired,\r\n formatTime: PropTypes.func.isRequired,\r\n getCurrencySymbol: PropTypes.func.isRequired,\r\n getString: PropTypes.func.isRequired,\r\n isReady: PropTypes.func.isRequired,\r\n parseDate: PropTypes.func.isRequired,\r\n parseDecimal: PropTypes.func.isRequired,\r\n});\r\n\r\nexport const instrumentationSchema = PropTypes.shape({\r\n scenario: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n value: PropTypes.any.isRequired,\r\n activity: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n value: PropTypes.any.isRequired,\r\n })).isRequired,\r\n })).isRequired,\r\n});\r\n\r\nexport const instumentationServiceContext = PropTypes.shape({\r\n logger: PropTypes.any.isRequired,\r\n instrumentation: PropTypes.any.isRequired,\r\n});\r\n\r\nexport const instrumentationScenario = PropTypes.shape({\r\n create: PropTypes.func.isRequired,\r\n});\r\n\r\nexport const instrumentationActivity = PropTypes.shape({\r\n trace: PropTypes.func.isRequired,\r\n error: PropTypes.func.isRequired,\r\n});\r\n\r\nexport const permissions = PropTypes.objectOf(PropTypes.bool);\r\n\r\nexport const legacyServerContext = PropTypes.shape({\r\n // Required\r\n CurrentLocale: PropTypes.string.isRequired,\r\n PageTrackingId: PropTypes.string.isRequired,\r\n ServicesEndpoints: PropTypes.shape({\r\n AdInsightAPI: PropTypes.string,\r\n CampaignAPI: PropTypes.string.isRequired,\r\n }).isRequired,\r\n CampaignAPIPath: PropTypes.string.isRequired,\r\n\r\n // Not Required (e.g. not logged in yet)\r\n CurrentUser: PropTypes.shape({\r\n UserId: PropTypes.number,\r\n UserName: PropTypes.string,\r\n Email: PropTypes.string,\r\n Lcid: PropTypes.number,\r\n CustomerMarket: PropTypes.string,\r\n }),\r\n CurrentCustomer: PropTypes.shape({\r\n CustomerId: PropTypes.number.isRequired,\r\n CustomerNumber: PropTypes.string.isRequired,\r\n CustomerName: PropTypes.string.isRequired,\r\n }),\r\n CurrentAccount: PropTypes.shape({\r\n AccountId: PropTypes.number.isRequired,\r\n AccountNumber: PropTypes.string.isRequired,\r\n AdvertiserCustomerId: PropTypes.number,\r\n AccountMode: PropTypes.number,\r\n LifecycleStatus: PropTypes.number,\r\n CurrencyType: PropTypes.string,\r\n CountryCode: PropTypes.string,\r\n }),\r\n Token: PropTypes.string,\r\n CCBaseUrl: PropTypes.string.isRequired,\r\n PidlConfiguration: PropTypes.shape({\r\n PidlEnvironment: PropTypes.string.isRequired,\r\n PidlEnabledCountries: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)).isRequired,\r\n ExcludedCountriesByCardType: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)).isRequired,\r\n ThreatMetrixUrl: PropTypes.string.isRequired,\r\n MsaDelegateAuthUrl: PropTypes.string.isRequired,\r\n PidlErrorFormattingStrings: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)).isRequired,\r\n PidlSupportedCultureMapping: PropTypes.objectOf(PropTypes.string).isRequired,\r\n FriendlySepaMaxNameLength: PropTypes.number.isRequired,\r\n }).isRequired,\r\n CCUIPilots: PropTypes.objectOf(PropTypes.bool).isRequired,\r\n PaymentInstrumentConfigs: paymentInstrumentConfigs.isRequired,\r\n AuthType: PropTypes.string.isRequired,\r\n CookieDomain: PropTypes.string.isRequired,\r\n CookiePath: PropTypes.string.isRequired,\r\n});\r\n\r\nexport const serverContext = PropTypes.shape({\r\n CurrentAccount: PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n AccountNumber: PropTypes.string.isRequired,\r\n AdvertiserCustomerID: PropTypes.number,\r\n CurrencyCode: PropTypes.string.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n Number: PropTypes.string.isRequired,\r\n Status: PropTypes.number,\r\n }),\r\n CurrentCustomer: PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n }),\r\n CurrentLocale: PropTypes.string.isRequired,\r\n CurrentUser: PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Email: PropTypes.string.isRequired,\r\n Market: PropTypes.string.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n }),\r\n PageTrackingId: PropTypes.string.isRequired,\r\n Token: PropTypes.string,\r\n UserPreferences: PropTypes.shape({\r\n AccountLevelPreferences: PropTypes.string,\r\n UserLevelPreferences: PropTypes.string,\r\n }).isRequired,\r\n McaServiceRoot: PropTypes.string.isRequired,\r\n Permissions: permissions,\r\n});\r\n\r\nexport const domChildren = PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n]);\r\n\r\nexport const urls = PropTypes.shape({\r\n AccountsBillingUrl: PropTypes.string.isRequired,\r\n CCBaseUrl: PropTypes.string.isRequired,\r\n CentralizedSettingsUrl: PropTypes.string.isRequired,\r\n NonAzureDomain: PropTypes.string.isRequired,\r\n SignOutUrl: PropTypes.string.isRequired,\r\n SupportUrl: PropTypes.string.isRequired,\r\n UcmSiteUrl: PropTypes.string.isRequired,\r\n});\r\n\r\nexport const preferenceService = PropTypes.shape({\r\n del: PropTypes.func.isRequired,\r\n find: PropTypes.func.isRequired,\r\n initialize: PropTypes.func.isRequired,\r\n set: PropTypes.func.isRequired,\r\n setAtUserLevel: PropTypes.func.isRequired,\r\n});\r\n\r\nexport const legacyPageState = PropTypes.shape({\r\n set: PropTypes.func.isRequired,\r\n getPromise: PropTypes.func.isRequired,\r\n});\r\n\r\nexport const reactRouterLocation = PropTypes.shape({\r\n pathname: PropTypes.string.isRequired,\r\n search: PropTypes.string,\r\n hash: PropTypes.string,\r\n});\r\n\r\nexport const reactRouterMatch = PropTypes.shape({\r\n params: PropTypes.objectOf(PropTypes.oneOf([\r\n PropTypes.string,\r\n PropTypes.number,\r\n ])).isRequired,\r\n path: PropTypes.string.isRequired,\r\n url: PropTypes.string.isRequired,\r\n isExact: PropTypes.bool.isRequired,\r\n});\r\n\r\nexport const reactRouterHistory = PropTypes.shape({\r\n go: PropTypes.func.isRequired,\r\n goBack: PropTypes.func.isRequired,\r\n push: PropTypes.func.isRequired,\r\n});\r\n\r\nexport const navigationItems = PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n route: PropTypes.string.isRequired,\r\n}));\r\n\r\nexport const parentActivityType = PropTypes.shape({\r\n ActivityType: PropTypes.oneOf([1, 2, 3, 4, 5, 6, 41, 42, 43]).isRequired,\r\n Id: PropTypes.string.isRequired,\r\n Message: PropTypes.string.isRequired,\r\n Likes: PropTypes.number.isRequired,\r\n Replies: PropTypes.number.isRequired,\r\n Shares: PropTypes.number,\r\n Profile: PropTypes.shape({\r\n Id: PropTypes.string.isRequired,\r\n // Internal = 1, Facebook = 2, Instagram = 3,\r\n ChannelType: PropTypes.oneOf([1, 2, 3]).isRequired,\r\n ChannelName: PropTypes.string.isRequired,\r\n }),\r\n From: PropTypes.shape({\r\n // FacebookUser = 1, FacebookPage = 2, InstagramUser = 3,\r\n ChannelUserType: 2,\r\n Id: PropTypes.string,\r\n Name: PropTypes.string,\r\n Profile: null,\r\n }),\r\n CreatedTime: PropTypes.string,\r\n IsCompleted: false,\r\n});\r\n\r\nexport const activityItemType = PropTypes.shape({\r\n // FacebookWallPost = 1, FacebookComment = 2, FacebookAdComment = 3,\r\n // FacebookReview = 4, FacebookPost = 5,\r\n // InstagramComment = 41, InstagramAdComment = 42, InstagramPost = 43\r\n ActivityType: PropTypes.oneOf([1, 2, 3, 4, 5, 6, 41, 42, 43]).isRequired,\r\n Id: PropTypes.string.isRequired,\r\n Message: PropTypes.string,\r\n MediaList: PropTypes.arrayOf(PropTypes.shape({\r\n SourceUrl: PropTypes.string,\r\n Target: PropTypes.string,\r\n PreviewUrl: PropTypes.string,\r\n Title: PropTypes.string,\r\n Type: PropTypes.oneOf([1, 2, 3, 4]), // Image = 1, Gif = 2, Video = 3, Share = 4,\r\n })),\r\n ParentActivity: parentActivityType,\r\n CanComment: PropTypes.bool.isRequired,\r\n CanHide: PropTypes.bool.isRequired,\r\n CanLike: PropTypes.bool.isRequired,\r\n UserLikes: PropTypes.bool.isRequired,\r\n IsHidden: PropTypes.bool.isRequired,\r\n Profile: PropTypes.shape({\r\n Id: PropTypes.string.isRequired,\r\n // Internal = 1, Facebook = 2, Instagram = 3,\r\n ChannelType: PropTypes.oneOf([1, 2, 3]).isRequired,\r\n ChannelName: PropTypes.string.isRequired,\r\n }),\r\n CreatedTime: PropTypes.string.isRequired,\r\n From: PropTypes.shape({\r\n // FacebookUser = 1, FacebookPage = 2, InstagramUser = 3,\r\n ChannelUserType: PropTypes.oneOf([1, 2, 3]).isRequired,\r\n Url: PropTypes.string,\r\n IsBlocked: PropTypes.bool,\r\n Id: PropTypes.string,\r\n Name: PropTypes.string,\r\n ProfileImageUrl: PropTypes.string,\r\n }).isRequired,\r\n // Active = 1, Deleted = 2,\r\n Status: PropTypes.oneOf([1, 2]).isRequired,\r\n Url: PropTypes.string,\r\n IsCompleted: PropTypes.bool.isRequired,\r\n});\r\n\r\nexport const profileShape = PropTypes.shape({\r\n Id: PropTypes.string.isRequired,\r\n ChannelType: PropTypes.string.isRequired,\r\n ChannelId: PropTypes.string.isRequired,\r\n ChannelAccountId: PropTypes.string.isRequired,\r\n ChannelName: PropTypes.string.isRequired,\r\n ProfileImageUrl: PropTypes.string.isRequired,\r\n AuthorizationData: PropTypes.shape({\r\n AccessToken: PropTypes.string,\r\n }),\r\n Status: PropTypes.string.isRequired,\r\n});\r\n\r\nexport const campaignCategoriesShape = PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n CategoryName: PropTypes.string.isRequired,\r\n}));\r\n\r\nexport const socialProfileShape = PropTypes.shape({\r\n Id: PropTypes.string,\r\n ChannelType: PropTypes.string,\r\n ChannelId: PropTypes.string,\r\n ChannelAccountId: PropTypes.string,\r\n ChannelName: PropTypes.string,\r\n ProfileImageUrl: PropTypes.string,\r\n SkipOfflineProfileInitTaskCreation: PropTypes.bool,\r\n Status: PropTypes.string,\r\n AccountId: PropTypes.number,\r\n CustomerId: PropTypes.number,\r\n});\r\n\r\nexport const campaignInfoShape = PropTypes.shape({\r\n Id: PropTypes.string.isRequired,\r\n Name: PropTypes.string,\r\n Goal: PropTypes.string.isRequired,\r\n SocialProfiles: PropTypes.arrayOf(socialProfileShape),\r\n Categories: campaignCategoriesShape,\r\n McaBusinessListing: PropTypes.shape({\r\n BusinessName: PropTypes.string.isRequired,\r\n BusinessAddress: PropTypes.shape({\r\n StreetAddress: PropTypes.string.isRequired,\r\n StreetAddress2: PropTypes.string,\r\n CityName: PropTypes.string.isRequired,\r\n ProvinceName: PropTypes.string.isRequired,\r\n PostalCode: PropTypes.string.isRequired,\r\n }).IsRequired,\r\n PhoneNumber: PropTypes.string.isRequired,\r\n }).isRequired,\r\n Website: PropTypes.string.isRequired,\r\n Status: PropTypes.string.isRequired,\r\n InternalInfo: PropTypes.shape({\r\n SourceId: PropTypes.number,\r\n ModifiedByUserId: PropTypes.number,\r\n CreatedDTim: PropTypes.string.isRequired,\r\n ModifiedDTime: PropTypes.string,\r\n }).isRequired,\r\n});\r\n\r\nexport const adsPerformanceMetricsShape = PropTypes.shape({\r\n LocationId: PropTypes.number.isRequired,\r\n MetricDate: PropTypes.string.isRequired,\r\n Impressions: PropTypes.number.isRequired,\r\n Clicks: PropTypes.number.isRequired,\r\n Spend: PropTypes.number.isRequired,\r\n Conversions: PropTypes.number.isRequired,\r\n Calls: PropTypes.number.isRequired,\r\n Directions: PropTypes.number.isRequired,\r\n Reactions: PropTypes.number.isRequired,\r\n Comments: PropTypes.number.isRequired,\r\n Shares: PropTypes.number.isRequired,\r\n Reach: PropTypes.number.isRequired,\r\n});\r\n\r\nexport const adsPerformanceTopMetricsShape = PropTypes.shape({\r\n Impressions: PropTypes.number.isRequired,\r\n Clicks: PropTypes.number.isRequired,\r\n Spend: PropTypes.number.isRequired,\r\n Conversions: PropTypes.number.isRequired,\r\n Calls: PropTypes.number.isRequired,\r\n Directions: PropTypes.number.isRequired,\r\n Reactions: PropTypes.number.isRequired,\r\n Comments: PropTypes.number.isRequired,\r\n Shares: PropTypes.number.isRequired,\r\n});\r\n\r\nexport const mcaLineChartConfigShape = PropTypes.shape({\r\n sameYAxis: PropTypes.bool,\r\n granularity: PropTypes.number.isRequired,\r\n tooltipTitle: PropTypes.string,\r\n metrics: PropTypes.arrayOf(PropTypes.shape({\r\n legend: PropTypes.string.isRequired,\r\n data: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n startDate: PropTypes.number.isRequired,\r\n })).isRequired,\r\n});\r\n\r\nexport const budgetProp = PropTypes.shape({\r\n DailyBudget: PropTypes.number,\r\n MinimumEstimatedClicks: PropTypes.number,\r\n MinimumEstimatedImpressions: PropTypes.number,\r\n MaximumEstimatedClicks: PropTypes.number,\r\n MaximumEstimatedImpressions: PropTypes.number,\r\n MonthlyBudget: PropTypes.number,\r\n});\r\n\r\nexport const budgetSuggestion = PropTypes.shape({\r\n MinimumBudget: budgetProp,\r\n CompetitorBudgetLowerBound: budgetProp,\r\n SuggestedBudget: budgetProp,\r\n CompetitorBudgetUpperBound: budgetProp,\r\n MaximumBudget: budgetProp,\r\n GlobalMaximumBudget: budgetProp,\r\n});\r\n\r\nexport const searchAdDataShape = PropTypes.shape({\r\n titlePart1: PropTypes.string,\r\n titlePart2: PropTypes.string,\r\n titlePart3: PropTypes.string,\r\n text: PropTypes.string,\r\n textPart2: PropTypes.string,\r\n urlPrefix: PropTypes.string,\r\n destinationUrlWithoutPrefix: PropTypes.string,\r\n});\r\n\r\nexport const mediaAdDataShape = PropTypes.shape({\r\n title: PropTypes.string,\r\n description: PropTypes.string,\r\n urlPrefix: PropTypes.string,\r\n destinationUrlWithoutPrefix: PropTypes.string,\r\n});\r\n\r\nexport const fbAdAccountShape = PropTypes.shape({\r\n Id: PropTypes.string.isRequired,\r\n ChannelTypeId: PropTypes.string.isRequired,\r\n ChannelData: PropTypes.shape({\r\n ExternalAdAccountId: PropTypes.string.isRequired,\r\n Status: PropTypes.string.isRequired,\r\n }).isRequired,\r\n});\r\n\r\nexport const keywordSuggestions = PropTypes.arrayOf(PropTypes.shape({\r\n IsSelected: PropTypes.bool,\r\n IsSuggested: PropTypes.bool,\r\n KeywordText: PropTypes.string.isRequired,\r\n SourceId: PropTypes.string,\r\n}));\r\n\r\nexport const keyword = PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.string.isRequired,\r\n KeywordText: PropTypes.string.isRequired,\r\n SourceId: PropTypes.string,\r\n IsSelected: PropTypes.bool,\r\n IsSuggested: PropTypes.bool,\r\n Bid: PropTypes.number,\r\n MatchType: PropTypes.string,\r\n McaCampaignId: PropTypes.number.isRequired,\r\n ClientId: PropTypes.string.isRequired,\r\n KeywordType: PropTypes.string.isRequired,\r\n Status: PropTypes.string.isRequired,\r\n EditorialStatus: PropTypes.string.isRequired,\r\n CreateDateTime: PropTypes.string.isRequired,\r\n EntitySourceType: PropTypes.string,\r\n ActionType: null,\r\n EditorialInfos: PropTypes.arrayOf(PropTypes.shape({\r\n EditorialStatus: PropTypes.string,\r\n EditorialRejectReason: PropTypes.arrayOf(PropTypes.shape({\r\n AppealStatus: PropTypes.string,\r\n ViolatingLocation: PropTypes.string,\r\n ViolatingPolicyId: PropTypes.string,\r\n ViolatingText: PropTypes.string,\r\n })),\r\n })),\r\n}));\r\n\r\nexport const panelActionMarker = PropTypes.shape({\r\n openPanel: PropTypes.func.isRequired,\r\n startLoading: PropTypes.func.isRequired,\r\n stopLoading: PropTypes.func.isRequired,\r\n onLoadedRecommendation: PropTypes.func.isRequired,\r\n markToSaveData: PropTypes.func.isRequired,\r\n markToDeleteData: PropTypes.func.isRequired,\r\n startSaving: PropTypes.func.isRequired,\r\n stopSaving: PropTypes.func.isRequired,\r\n closePanel: PropTypes.func.isRequired,\r\n});\r\n","import React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport {\r\n domChildren as domChildrenProps,\r\n} from '@bingads-webui-campaign-react/props-mca';\r\n\r\nconst Context = React.createContext({\r\n isUnifiedProduct: false,\r\n isUnifiedProductWizard: false,\r\n});\r\n\r\nexport const UnifiedProductProvider = (props) => {\r\n const {\r\n isUnifiedProduct,\r\n isUnifiedProductWizard,\r\n isUpStepWizard,\r\n children,\r\n } = props;\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nUnifiedProductProvider.propTypes = {\r\n isUnifiedProduct: PropTypes.bool.isRequired,\r\n isUnifiedProductWizard: PropTypes.bool,\r\n isUpStepWizard: PropTypes.bool,\r\n children: domChildrenProps.isRequired,\r\n};\r\n\r\nUnifiedProductProvider.defaultProps = {\r\n isUnifiedProductWizard: false,\r\n isUpStepWizard: false,\r\n};\r\n\r\nexport const useIsUnifiedProduct = () => useContext(Context).isUnifiedProduct;\r\n\r\nexport const useIsUnifiedProductWizard = () => useContext(Context).isUnifiedProductWizard;\r\n\r\nexport const useIsUpStepWizard = () => useContext(Context).isUpStepWizard;\r\n","import React from 'react';\r\n\r\n/**\r\n * Used to store any temporary state needed for the signup or campaign creation wizard in UP.\r\n */\r\nexport const UpWizardContext = React.createContext([]);\r\n","import React, { useContext } from 'react';\r\n\r\n/**\r\n * Some callbacks used in UP Wizard may need to be passed down too many levels,\r\n * using this context to hold them.\r\n */\r\n\r\nexport const UpWizardCallbackContext = React.createContext({});\r\n\r\nexport const useUpWizardCallbackContext = () => useContext(UpWizardCallbackContext);\r\n","import React, { useContext } from 'react';\r\n\r\nexport const WizardRequestsSequenceContext = React.createContext({});\r\nexport const useWizardRequestsSequenceContext = () => useContext(WizardRequestsSequenceContext);\r\n","import React, { useCallback, useContext, useMemo } from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n DataFetcher,\r\n Store,\r\n middlewareTypes,\r\n createInstrumentationMiddleware,\r\n createErrorMiddleware,\r\n} from '@bingads-webui-react/overreact';\r\nimport { ServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { getRequestor, middlewares as mcaMiddlewares, getEnvironmentInstance } from '@bingads-webui/overreact-odata-multi-channel';\r\nimport { useCCEnvironment } from '@bingads-webui/overreact-cc';\r\nimport { getRequestor as getCampaignRequestor, getEnvironmentInstance as getCampaignEnvInstance } from '@bingads-webui/overreact-odata-campaign';\r\nimport { getRequestor as getAdInsightRequestor, getEnvironmentInstance as getAdInsightEnvInstance } from '@bingads-webui/overreact-ad-insight';\r\nimport { getRequestor as getSmartRequestor, getEnvironmentInstance as getSmartEnvInstance } from '@bingads-webui/overreact-smart';\r\nimport { getConfig } from '@bingads-webui-campaign/odata-config';\r\nimport { InstrumentationContext, isExpectedErrorCodes, isExpectedErrorString } from '@bingads-webui-campaign-react/mca-instrumentation';\r\nimport { getDefaultHeaderObj } from '@bingads-webui/overreact-bingads';\r\nimport { redirectToLogin } from '@bingads-webui-campaign/global-app-init';\r\n\r\nconst store = new Store();\r\n\r\nfunction useMCAEnvironment(params) {\r\n const {\r\n serviceRoot, token, applicationSource, middlewares,\r\n } = params;\r\n\r\n return useMemo(() => {\r\n const requestor = getRequestor(\r\n serviceRoot,\r\n {\r\n ...getDefaultHeaderObj(),\r\n Authorization: `CCMTSmallToken ${token}`,\r\n 'x-ms-applicationsource': applicationSource,\r\n }\r\n );\r\n\r\n return getEnvironmentInstance(requestor, store, middlewares);\r\n }, [applicationSource, middlewares, serviceRoot, token]);\r\n}\r\n\r\nfunction useAdInsightEnvironment(params) {\r\n const {\r\n serviceRoot, token, middlewares,\r\n } = params;\r\n\r\n return useMemo(() => {\r\n const requestor = getAdInsightRequestor(\r\n serviceRoot,\r\n {\r\n ...getDefaultHeaderObj(),\r\n Authorization: `CCMTSmallToken ${token}`,\r\n }\r\n );\r\n\r\n return getAdInsightEnvInstance(requestor, store, middlewares);\r\n }, [middlewares, serviceRoot, token]);\r\n}\r\n\r\nfunction useCampaignEnvironment(params) {\r\n const {\r\n serviceRoot, token, middlewares,\r\n } = params;\r\n\r\n return useMemo(() => {\r\n const requestor = getCampaignRequestor(\r\n serviceRoot,\r\n {\r\n ...getDefaultHeaderObj(),\r\n Authorization: `CCMTSmallToken ${token}`,\r\n }\r\n );\r\n\r\n return getCampaignEnvInstance(requestor, store, middlewares);\r\n }, [middlewares, serviceRoot, token]);\r\n}\r\n\r\nfunction useSmartEnvironment(params) {\r\n const {\r\n serviceRoot, token, middlewares,\r\n } = params;\r\n\r\n return useMemo(() => {\r\n const requestor = getSmartRequestor({\r\n serviceRoot,\r\n token,\r\n });\r\n\r\n return getSmartEnvInstance(requestor, middlewares);\r\n }, [middlewares, serviceRoot, token]);\r\n}\r\n\r\nexport const OverreactDataFetcher = (props) => {\r\n const serverContext = useContext(ServerContext);\r\n const {\r\n McaServiceRoot,\r\n CampaignAPIPath, // this value only exists in CCUI ServerContext\r\n Token,\r\n CurrentLocale,\r\n ServicesEndpoints: {\r\n ClientCenterUIAPI,\r\n CampaignAPI, // path to ODataApi root, should have trailing slash\r\n AdInsightAPI,\r\n },\r\n PageTrackingId,\r\n CultureLcid,\r\n CurrentUser,\r\n } = serverContext;\r\n\r\n const {\r\n LocaleID,\r\n Locale,\r\n } = CurrentUser || {};\r\n\r\n const lcid = CultureLcid || LocaleID || Locale;\r\n const instrumentationContext = useContext(InstrumentationContext) || [];\r\n const { instrumentation } = instrumentationContext[0] || {};\r\n const activity = useMemo(\r\n () => {\r\n const scenario = instrumentation && instrumentation.overreactRequest.create();\r\n const act = scenario ? scenario.logger.create() : {\r\n trace: _.noop,\r\n error: _.noop,\r\n ajax: _.noop,\r\n };\r\n return act;\r\n },\r\n [instrumentation]\r\n );\r\n\r\n const errorProcessor = useCallback((error) => {\r\n if (error && error.status === 401) {\r\n activity.trace('overreact data fetcher starts sign out redirection');\r\n redirectToLogin(serverContext);\r\n }\r\n }, [activity, serverContext]);\r\n\r\n const instrumentationMiddleware = useMemo(() => ({\r\n [middlewareTypes.ERROR]: createErrorMiddleware({\r\n errorProcessor,\r\n }),\r\n [middlewareTypes.INSTRUMENTATION]: createInstrumentationMiddleware({\r\n pageTrackingId: PageTrackingId,\r\n // traceFunc is called on error and the error is mapped to user error using errorMappers\r\n // errorFunc is called on error (no result - server or network error)\r\n // perfFunc is called pre and post request\r\n loggerFunc: {\r\n traceFunc: ({\r\n requestId, message, api, httpMethod,\r\n }) => {\r\n activity.trace(message || '', api, requestId, httpMethod);\r\n },\r\n errorFunc: ({\r\n requestId, api, httpMethod, message,\r\n }) => {\r\n activity.error(message || '', api, requestId, null /* impact user */, httpMethod);\r\n },\r\n perfFunc: ({\r\n requestId, api, httpMethod, timeTaken, message, isMethodEnter,\r\n }) => {\r\n activity.ajax(\r\n requestId, api, isMethodEnter,\r\n httpMethod, timeTaken, null /* pass */, message\r\n );\r\n },\r\n },\r\n errorMappers: [{\r\n check: (error) => {\r\n if (!error) {\r\n return false;\r\n }\r\n const errorArray = error.responseJSON && Array.isArray(error.responseJSON.value)\r\n ? error.responseJSON.value\r\n : error.responseJSON;\r\n return isExpectedErrorCodes(errorArray) || isExpectedErrorCodes(_.get(error, 'Errors')) || isExpectedErrorString(error);\r\n },\r\n }],\r\n stubOptions: { lcid },\r\n }),\r\n }), [PageTrackingId, activity, errorProcessor, lcid]);\r\n\r\n const allMiddlewares = useMemo(\r\n () => ({ ...mcaMiddlewares, ...instrumentationMiddleware }),\r\n [instrumentationMiddleware]\r\n );\r\n\r\n const campaignOdataRoot = useMemo(() => {\r\n const odataConfig = getConfig();\r\n const odataPath = CampaignAPIPath || odataConfig.odataPath;\r\n return `${CampaignAPI}${odataPath}`;\r\n }, [CampaignAPI, CampaignAPIPath]);\r\n\r\n const overreactMcaEnv = useMCAEnvironment({\r\n serviceRoot: McaServiceRoot,\r\n token: Token,\r\n middlewares: allMiddlewares,\r\n applicationSource: 'up',\r\n });\r\n\r\n const overreactCcEnv = useCCEnvironment({\r\n serviceRoot: ClientCenterUIAPI,\r\n store,\r\n middlewares: allMiddlewares,\r\n locale: CurrentLocale,\r\n });\r\n\r\n const overreactAdInsightEnv = useAdInsightEnvironment({\r\n serviceRoot: `${AdInsightAPI}AdInsight/V2`,\r\n token: Token,\r\n middlewares: allMiddlewares,\r\n });\r\n\r\n const overreactCampaignEnv = useCampaignEnvironment({\r\n serviceRoot: campaignOdataRoot,\r\n token: Token,\r\n middlewares: allMiddlewares,\r\n });\r\n\r\n const overreactSmartEnv = useSmartEnvironment({\r\n serviceRoot: campaignOdataRoot,\r\n token: Token,\r\n middlewares: instrumentationMiddleware,\r\n });\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nOverreactDataFetcher.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n","import React, { useContext, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst TopNavContext = React.createContext();\r\n\r\nexport const TopNavContextProvider = (props) => {\r\n const { children } = props;\r\n const [component, setComponent] = useState(null);\r\n const [hideBackButton, setHideBackButton] = useState(null);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nTopNavContextProvider.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n};\r\n\r\nexport const useTopNavContext = () => useContext(TopNavContext);\r\n","import React, { useContext } from 'react';\r\n\r\nexport const UpSwitchToExpertContext = React.createContext({\r\n showSwitchToExpert: false,\r\n});\r\nexport const useUpSwitchToExpertContext = () => useContext(UpSwitchToExpertContext);\r\n","import React, { useContext } from 'react';\r\n\r\nexport const SmartPageCallbacksContext = React.createContext({});\r\nexport const useSmartPageCallbacksContext = () => useContext(SmartPageCallbacksContext);\r\n","import React, { useContext, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst A11yAnnounceMessageContext = React.createContext();\r\n\r\nexport const A11yAnnounceMessageContextProvider = (props) => {\r\n const { children } = props;\r\n const [a11yAnnouncedMessage, setA11yAnnouncedMessage] = useState('');\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nA11yAnnounceMessageContextProvider.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n};\r\n\r\nexport const useA11yAnnounceMessageContext = () => useContext(A11yAnnounceMessageContext);\r\n"],"sourceRoot":""}