{"version":3,"sources":["../../../../component-react/packages/image-experience-model/src/constants.js","../../../../component-react/packages/image-experience-model/src/aspect-ratios-for-display-ads.js","../../../../component-react/packages/image-experience-model/src/aspect-ratios-for-linkedin-ads.js","../../../../component-react/packages/image-experience-utils/src/get-smart-cropped-image.js","../../../../component-react/packages/image-experience-utils/src/get-generic-image-object.js","../../../../component-react/packages/image-experience-utils/src/image-size-validation.js","../../../../component-react/packages/static-local-image-selector/src/local-images/estate_appraiser.jpg","../../../../component-react/packages/common-styles/media/DiamondDotted.svg","../../../../component-react/packages/goals-and-website-tile/media/no-website-icon.svg","../../../../component-react-fluent/packages/smart-page-url-suffix-provider/src/smart-page-url-suffix-provider.js","../../../../component-react/packages/goals-and-website-tile/media/no-website-img.svg","../../../../component-react/packages/campaign-creation-method-selection/media/GoogleImport.svg","../../../../component-react/packages/common-styles/media/CircleDotted.svg","../../../../component-react/packages/goals-and-website-tile/media/goal-phone-img.svg","../../../../component-react/packages/goals-and-website-tile/media/www-website.svg","../../../../component-react/packages/campaign-creation-method-selection/media/FacebookImport.svg","../../../../component-react/packages/processing-animation/media/animation.gif","../../../../component-react/packages/static-local-image-selector/src/local-images/attorney.jpg","../../../../component-react/packages/goals-and-website-tile/media/goal-phone.svg","../../../../component-react/packages/goals-and-website-tile/media/advertising-icon.svg","../../../../component-react/packages/common-styles/media/CircleSolid.svg","../../../../component-react/packages/goals-and-website-tile/media/website-img.svg","../../../../component-react/packages/static-local-image-selector/src/local-image-loader.js","../../../../component-react/packages/static-local-image-selector/src/mobile-local-images/estate_appraiser.jpg","../../../../component-react/packages/goals-and-website-tile/media/website-icon.svg","../../../../component-react/packages/url-utils/src/helpers.js","../../../../component-react/packages/common-styles/media/TriangleDownSolidSmall.svg","../../../../component-react/packages/static-local-image-selector/src/local-images/design_agency.jpg","../../../../component-react/packages/static-local-image-selector/src/local-images/food.jpg","../../../../component-react/packages/floating-banner-utils/src/use-floating-banner-api.js","../../../../component-react/packages/campaign-creation-method-selection/media/RebrandingFacebookImport.svg","../../../../component-react/packages/server-context/src/server-context.js","../../../../component-react/packages/server-context/src/server-context-props.js","../../../../component-react/packages/server-context/src/convert-legacy-context.js","../../../../component-react/packages/server-context/src/use-update-server-context.js","../../../../component-react/packages/common-styles/media/BingSearch.png","../../../../component-react/packages/campaign-creation-method-selection/media/NewCampaign.svg","../../../../component-react/packages/static-local-image-selector/src/mobile-local-images/food.jpg","../../../../component-react/packages/campaign-creation-method-selection/src/components/campaign-creation-method-constants.js","../../../../component-react/packages/campaign-creation-method-selection/src/styles/campaign-creation-method-item-styles.js","../../../../component-react/packages/campaign-creation-method-selection/src/components/campaign-creation-method-item.js","../../../../component-react/packages/campaign-creation-method-selection/src/campaign-creation-method-selection.js","../../../../component-react/packages/goals-and-website-tile/src/styles.js","../../../../component-react/packages/goals-and-website-tile/src/tile-header.js","../../../../component-react/packages/goals-and-website-tile/src/tile.js","../../../../component-react/packages/goals-and-website-tile/src/goals/consts.js","../../../../component-react/packages/goals-and-website-tile/src/goals/styles.js","../../../../component-react/packages/goals-and-website-tile/src/goals/goal-item.js","../../../../component-react/packages/goals-and-website-tile/src/goals/goal-selection.js","../../../../component-react/packages/goals-and-website-tile/src/website/styles.js","../../../../component-react/packages/goals-and-website-tile/src/website/consts.js","../../../../component-react/packages/goals-and-website-tile/src/website/website-input.js","../../../../component-react/packages/goals-and-website-tile/src/website/validation-schema.js","../../../../component-react/packages/goals-and-website-tile/src/website/website-and-business.js","../../../../component-react/packages/goals-and-website-tile/src/website/website-item.js","../../../../component-react/packages/goals-and-website-tile/src/website/helpers.js","../../../../component-react/packages/goals-and-website-tile/src/website/website-and-smart-pages.js","../../../../component-react/packages/goals-and-website-tile/src/consts.js","../../../../component-react/packages/goals-and-website-tile/src/language/styles.js","../../../../component-react/packages/goals-and-website-tile/src/language/searchable-dropdown.js","../../../../component-react/packages/goals-and-website-tile/src/language/language-and-country-selection.js","../../../../component-react/packages/goals-and-website-tile/src/language/language-and-country-selection-tile.js","../../../../component-react/packages/goals-and-website-tile/src/website/website-only-option.js","../../../../component-react/packages/goals-and-website-tile/src/creation-method/styles.js","../../../../component-react/packages/goals-and-website-tile/src/creation-method/creation-method-sub-title.js","../../../../component-react/packages/goals-and-website-tile/src/index.js","../../../../component-react/packages/goals-and-website-tile/src/helper.js","../../../../component-react/packages/goals-and-website-tile/src/account-mode/styles.js","../../../../component-react/packages/goals-and-website-tile/src/account-mode/consts.js","../../../../component-react/packages/goals-and-website-tile/src/account-mode/bullet-item.js","../../../../component-react/packages/goals-and-website-tile/src/account-mode/mode-item.js","../../../../component-react/packages/goals-and-website-tile/src/account-mode/intro-texts.js","../../../../component-react/packages/goals-and-website-tile/src/account-mode/account-mode-selection.js","../../../../component-react/packages/processing-animation/src/styles.js","../../../../component-react/packages/processing-animation/src/processing-animation.js","../../../../component-react/packages/static-local-image-selector/src/local-images/family_doctor.jpg","../../../../component-react/packages/static-local-image-selector/src/mobile-local-images/attorney.jpg","../../../../component-react/packages/common-styles/media/SquareSolidSmall.svg","../../../../component-react/packages/campaign-creation-method-selection/media/RebrandingNewCampaign.svg","../../../../component-react/packages/static-local-image-selector/src/local-images/consultant.jpg","../../../../component-react/packages/common-styles/media/TriangleUpSolidSmall.svg","../../../../component-react/packages/goals-and-website-tile/media/goal-location.svg","../../../../component-react/packages/common-styles/media/DiamondSolid.svg","../../../../component-react/packages/static-local-image-selector/src/mobile-local-images/family_doctor.jpg","../../../../component-react/packages/static-local-image-selector/src/mobile-local-images/design_agency.jpg","../../../../component-react/packages/common-styles/media/CircleSolidSmall.svg","../../../../component-react/packages/static-local-image-selector/src/mobile-local-images/car_dealer.jpg","../../../../component-react/packages/goals-and-website-tile/media/expert.svg","../../../../component-react/packages/common-hooks/src/use-media-query.js","../../../../component-react/packages/common-hooks/src/use-confirm-dialog/confirm-dialog.js","../../../../component-react/packages/common-hooks/src/use-confirm-dialog/confirm-dialog-styles.js","../../../../component-react/packages/common-hooks/src/use-confirm-dialog/use-confirm-dialog.js","../../../../component-react/packages/common-hooks/src/use-deep-memo.js","../../../../component-react/packages/common-hooks/src/use-user-level-preference.js","../../../../component-react/packages/common-hooks/src/use-open-popup-and-wait-for-message.js","../../../../component-react/packages/common-hooks/src/use-open-popup-and-wait-for-auth.js","../../../../component-react/packages/common-hooks/src/use-instrument-logger.js","../../../../component-react-fluent/packages/shared-app-capi/src/urls.js","../../../../component-react-fluent/packages/shared-app-capi/src/wizard-scope-context.js","../../../../component-react-fluent/packages/shared-app-capi/src/wizard-context.js","../../../../component-react-fluent/packages/shared-app-capi/src/wizard-server-context.js","../../../../component-react-fluent/packages/shared-app-capi/src/shared-wizard-context.js","../../../../component-react-fluent/packages/shared-app-capi/src/customer-name-prefix.js","../../../../component-react-fluent/packages/shared-app-capi/src/ab-testing-event-log.js","../../../../component-react-fluent/packages/shared-app-capi/src/ab-testing-flight-log.js","../../../../component-react-fluent/packages/shared-app-capi/src/customer-journey-provider.js","../../../../component-react-fluent/packages/shared-app-capi/src/signup-flow-provider.js","../../../../component-react-fluent/packages/shared-app-capi/src/signup-flow-logger.js","../../../../component-react/packages/goals-and-website-tile/media/goal-website.svg","../../../../component-react/packages/goals-and-website-tile/media/rebranding-no-website-img.svg","../../../../component-react/packages/custom-jss-config/src/global-this.js","../../../../component-react/packages/custom-jss-config/src/module-id.js","../../../../component-react/packages/custom-jss-config/src/create-generate-id.js","../../../../component-react/packages/basic-context-utils/src/use-overreact-variables.js","../../../../component-react/packages/basic-context-utils/src/use-pilot-value.js","../../../../component-react/packages/static-local-image-selector/src/local-images/car_dealer.jpg","../../../../component-react-fluent/packages/fluent-with-validation/src/with-error.js","../../../../component-react-fluent/packages/fluent-with-validation/src/controls-with-server-error.js","../../../../component-react-fluent/packages/fluent-with-validation/src/error-dialog.js","../../../../component-react/packages/goals-and-website-tile/media/checkmark.svg","../../../../component-react/packages/common-styles/media/DiamondSolidSmall.svg","../../../../component-react/packages/goals-and-website-tile/media/goal-location-img.svg","../../../../component-react/packages/goals-and-website-tile/media/smart.svg","../../../../component-react/packages/help/src/learn-more-link.js","../../../../component-react/packages/help/src/i18n-mapper.js","../../../../component-react/packages/help/src/disclaimer-banner-style.js","../../../../component-react/packages/help/src/disclaimer-banner.js","../../../../component-react/packages/help/src/help-icon.js","../../../../component-react/packages/goals-and-website-tile/media/goal-website-img.svg","../../../../component-react/packages/static-local-image-selector/src/mobile-local-images/consultant.jpg","../../../../component-react/packages/campaign-creation-method-selection/media/RebrandingGoogleImport.svg","../../../../component-react/packages/common-styles/src/shared-styles-from-theme-fluent.js","../../../../component-react/packages/common-styles/src/summary-page-style.js","../../../../component-react/packages/common-styles/src/competition-card-style.js","../../../../component-react/packages/common-styles/src/inline-download-style.js","../../../../component-react/packages/common-styles/src/inline-help-button-styles.js","../../../../component-react/packages/common-styles/src/ad-extensions/new-ad-extensions-associations-container-styles.js","../../../../component-react/packages/common-styles/src/ad-extensions/ad-extensions-associations-container-styles.js","../../../../component-react/packages/coupon-context/src/coupon-context.js","../../../../component-react/packages/goals-and-website-tile/media/rebranding-website-img.svg"],"names":["constants","brandkitMinSize","aspectRatios","Image191x100","aspectRatio","type","associationType","stringKey","previewTypeStringKey","previewTypeString","_TL_","imagePreviewHeight","previewWidth","previewHeight","simplifiedType","isRequired","minimumRequirements","minSize","maxSize","previewSettings","previewContentClassName","showShortHeadline","showDescription","showAdditionalDisclaimer","isLogo","Image178x100","showGradient","Image172x100","showLongHeadline","Image169x100","Image155x100","Image150x100","Image133x100","Image1x1","Image93x100","aspectRatiosForMMAV2","OriginalImage","shouldIgnoreCropSetting","Image201x100","Image200x100","showAdsIcon","Image153x100","Image124x100","Image120x100","aspectRatiosForDisplayAds","Image300x250","Image728x90","Image160x600","Image300x600","Image120x600","Image468x60","Image336x280","Image250x250","Image180x150","Image970x250","Image234x60","Image970x90","Image320x50","Image300x50","Image320x480","Image480x320","Image320x100","Image216x36","Image168x28","Image120x20","aspectRatiosForBoostPortrait","Image1x2","isPortrait","aspectRatiosForBoost200x100","showAction","showBusinessName","aspectRatiosForBoostNewSupport","Image122x100","Image159x100","Image180x100","Image233x100","Image57x100","videoAspectRatios","VideoMedia16X9","ratio","text","cropSetting","width","height","thumbnailCropSetting","VideoMedia5X4","VideoMedia1X1","VideoMedia4X5","VideoMedia9X16","minCropSize","aspectRatiosForAppCampaign","ImagePRONG","ImageSPOTLIGHT","TransparentLogo","aspectRatiosForLinkedInAds","Image4x5","videoPreviewsSettings","videoType","previewContainerHeight","previewContainerWidth","hideTextWhenPlay","showProgressText","className","videoPreviewDefaultWidth","videoPreviewDefaultHeight","resizeImageHeightInList","sortBySelections","recentUpload","id","enum","query","imageText","videoSortBySelections","edmDefinition","UploadedTime","description","Text","imageTypesWithOrder","videoTypesWithOrder","videoTypeToThumbnailType","subTypeToType","ImageMedia4X1","LandscapeImageMedia","ImageMedia178X100","ImageMedia172X100","ImageMedia169X100","ImageMedia155X100","ImageMedia15X10","ImageMedia133X100","SquareImageMedia","ImageMedia93X100","ImageMedia1X2","LandscapeLogoMedia","SquareLogoMedia","ImageMedia201X100","ImageMedia200X100","ImageMedia153X100","ImageMedia124X100","ImageMedia120X100","ImageMedia122X100","ImageMedia159X100","ImageMedia180X100","ImageMedia233X100","ImageMedia320X100","ImageMedia57X100","PortraitImageMedia","pageSize","imageAdExtSettings","MobileMultiImage","BingDesktopImage","BingSingleImage","showUrl","minWidth","minHeight","isMultimediaAd","arguments","length","undefined","imageOption","defaultImageOption","isCombinedMsanAndMmaAspectRatios","isMMAV2Enabled","isDisplayAds","isPortraitImage","isBoost200x100ImageEnabled","isBoostNewAspectRatioSupportEnabled","isStoreAppProng","isStoreAppSpotLight","isStoreAppTransparentLogo","isLinkedInAd","isUnifiedAppCampaignWindowsStore","isPMaxAspectRatiosV2Enabled","isBrandKit","imageOptionKeys","Logo","DefaultImageMinimumSize","getAspectRatios","GenericImage","_","reduce","memo","val","Number","MAX_SAFE_INTEGER","getMmaAspectRatios","requiredRatios","filter","minSizeForMMA","getMinSizeForRequiredRatios","minSizeForOther","Math","max","isRefreshedExtensionRatiosEnabled","chain","sortBy","abs","first","value","logoAspectRatios","Image4x1","showAdsLabel","_ref","isMultimediaAdinMSANEnabled","_ref$imageOption","_ref$isCombinedMsanAn","_ref$isBoost200x100Im","_ref$isBoostNewAspect","_ref$isMMAV2Enabled","_ref$isDisplayAds","_ref$isPortraitImage","_ref$isStoreAppProng","_ref$isStoreAppSpotLi","_ref$isStoreAppTransp","_ref$isUnifiedAppCamp","_ref$isLinkedInAd","_ref$isPMaxAspectRati","_objectSpread","Portrait","pmaxV2Ratios","pick","pmaxMsanRatios","pmaxMmaRatios","multimediaAdinMSANRatios","extend","audienceMMAV2AspectRatios","SupportedCaptionLocales","Lcid","FullName","Tag","LcidToFullName","locale","find","loc","toString","TagToLcid","tag","toLowerCase","DEFAULT_MAX_IMAGE","DEFAULT_MAX_LOGO","DEFAULT_MAX_PORTRAIT","audienceMMAV2WithDiffAspectRatio","boostMultimediaAdinMSANRatios","concat","boostMultimediaAdinMSANRatiosNewSupport","audienceMMAV2AspectRatiosWithoutOriginalImage","imageSources","Website","WebsiteCarousel","Upload","Existing","Stock","AdRecommendation","Social","AIGenerated","Invest","BackgroundChangeGenerated","sourceTypes","TwitterImported","WebsiteImported","UserUploaded","AIGeneratedByRecraft","getSourceTypeFromImageSource","imageSource","preferenceFlags","MMATeachingBubble","MMAWebsiteImageOptIn","MMAInMSANTeachingBubble","MMAInMSANWebsiteImageOptIn","Image","getImageOptions","_ref2","_ref2$i18n","i18n","getString","noop","_ref2$disableImage","disableImage","_ref2$disableLogo","disableLogo","_ref2$disablePortrait","disablePortrait","key","disabled","getAspectRatioOptions","logoSubtypes","labelId","defaultAspectRatioOption","getBoostAspectRatios","windowsSpotlight","multipleLineLongHeadline","multipleDescription","hideLabel","showHotspots","discoverCard","startMeno","logoHeight","showLogo","showImage","showDismiss","actionCenter","banner","coachmark","ImageExpansionType","UAPImageExpansionType","CroppingType","UAPCroppingType","ImageExpansionDataSource","ImageFittingAPI","getGenericImageObjectAsync","genericImageSource","nativeImageObject","resolver","getImagePromise","Promise","resolve","onload","Src","src","Width","naturalWidth","Height","naturalHeight","Type","Error","module","exports","__webpack_require__","p","SmartPageUrlSuffix","PROD","BETA","SI","CI","BETASI","SmartPageUrlSuffixMapping","ui.ads.microsoft.com","ui.aks.ads.microsoft.com","ui.bingads.microsoft.com","ads.microsoft.com","bingads.microsoft.com","ui.tip.ads.microsoft.com","ui.aks.tip.ads.microsoft.com","ui.tip.bingads.microsoft.com","tip.ads.microsoft.com","tip.bingads.microsoft.com","ui.beta.ads.microsoft.com","ui.aks.beta.ads.microsoft.com","ui.beta.bingads.microsoft.com","beta.ads.microsoft.com","beta.bingads.microsoft.com","ui.ads-int.microsoft.com","ui.aks2.ads-int.microsoft.com","ui.aks3.ads-int.microsoft.com","app1.ui.ads-int.microsoft.com","ui.si.bingads.microsoft.com","app1.ui.si.bingads.microsoft.com","ads-int.microsoft.com","app1.ads-int.microsoft.com","si.bingads.microsoft.com","app1.si.bingads.microsoft.com","ui.beta.ads-int.microsoft.com","ui.beta.si.bingads.microsoft.com","beta.ads-int.microsoft.com","beta.si.bingads.microsoft.com","localhost.redmond.corp.microsoft.com","app1.localhost.redmond.corp.microsoft.com","ccui.devdev.bingads.microsoft.com","localhost","127.0.0.1","getSmartPageUrlSuffix","domain","result","getInstrumentationKeyByEnv","indexOf","LocalImageNames","localImageSrcs","attorney","consultant","car_dealer","carDealer","design_agency","designAgency","estate_appraiser","estateAppraiser","family_doctor","familyDoctor","food","mobile_attorney","mobileAttorney","mobile_consultant","mobileConsultant","mobile_car_dealer","mobileCarDealer","mobile_design_agency","mobileDesignAgency","mobile_estate_appraiser","mobileEstateAppraiser","mobile_family_doctor","mobileFamilyDoctor","mobile_food","mobileFood","DefaultLocalImageName","loadLocalImage","imageName","isMobile","name","split","prefix","URL_PROTOCOL_OPTIONS","getValidProtocol","protocol","protocolOptionsKeys","pluck","contains","getWebsiteByParts","website","uri","URI","protocolRegex","RegExp","websiteWithoutProtocol","replace","getIsWebsiteChanged","oldWebsite","newWebsite","formatUrl","url","newUrl","trim","substring","FLOATING_BANNER_ID","DEFAULT_ERROR","ERROR_MAPPING","useFloatingBannerApi","errorMapping","useContext","I18nContext","showWarning","useCallback","error","errorCode","Code","errorMessage","notificationApi","showInfo","showWarningMessage","warningMsg","obj","showInfoMessage","infoMsg","showCustomizedWarning","warningObj","showCustomizedInfo","infoObj","dismissFloatingBanner","dismiss","ServerContext","PropTypes","shape","CurrentLocale","string","PageTrackingId","ServicesEndpoints","AdInsightAPI","CampaignAPI","CampaignAPIPath","CurrentUser","UserId","number","UserName","Email","CustomerMarket","CurrentCustomer","CustomerId","CustomerNumber","CustomerName","CurrentAccount","AccountId","AccountNumber","AdvertiserCustomerId","AccountMode","LifecycleStatus","CurrencyType","CountryCode","Token","CCBaseUrl","PidlConfiguration","PidlEnvironment","PidlEnabledCountries","objectOf","arrayOf","ExcludedCountriesByCardType","ThreatMetrixUrl","MsaDelegateAuthUrl","PidlErrorFormattingStrings","PidlSupportedCultureMapping","FriendlySepaMaxNameLength","CCUIPilots","bool","PaymentInstrumentConfigs","supportedPaymentType","supportedCurrencies","useSupportedCountryList","supportedCountries","AuthType","CookieDomain","CookiePath","Id","AdvertiserCustomerID","CurrencyCode","Name","Status","Market","UserPreferences","AccountLevelPreferences","UserLevelPreferences","McaServiceRoot","Permissions","React","createContext","ServerContextAction","convertLegacyContext","accountMode","rest","_objectWithoutProperties","_excluded","isFinite","AppScope","LocaleID","IsInternal","useUpdateServerContext","serverContext","setServerContext","isValidServerContext","response","logActivity","overrideProperties","functions","JSON","stringify","newContext","context","isFunction","get","trace","window","seleniumTestContext","CampaignCreationMethod","NEW_CAMPAIGN","GOOGLE_IMPORT","FACEBOOK_IMPORT","getCampaignCreationMethodItemStyles","_ref$palette","palette","itemContainer","background","white","boxShadow","borderRadius","border","borderColor","cursor","textAlign","display","flexDirection","alignItems","&:hover, &:focus","verticalItemContainer","justifyContent","selectedItemContainer","disabledItemContainer","imageContainerStyle","paddingTop","paddingBottom","& img","marginLeft","marginRight","verticalImageContainer","content","paddingLeft","color","neutralPrimary","fontSize","lineHeight","fontWeight","contentInTwoLines","disableText","red","marginTop","maxWidth","CampaignCreationMethodSelectionStyles","itemContainerTokens","childrenGap","itemContainerVerticalTokens","CampaignCreationMethodItem","props","itemIndex","onMethodItemClick","shouldForceContentInTwoLines","method","imageSrc","alt","label","isVertical","selected","classes","useDefaultStyles","onClickItem","itemProps","useMemo","aria-disabled","data-is-focusable","data-selection-invoke","data-selection-index","tabIndex","role","onClick","onKeyDown","submitEvent","createElement","Object","assign","classNames","aria-label","title","aria-describedby","imageFit","ImageFit","contain","_defineProperty","CampaignCreationMethodSelection","onClickCreateNewCampaign","onClickGoogleImport","onClickFacebookImport","disableImports","isRebranding","isHideImports","selectedItem","hiddenMethod","campaignCreationMethods","RebrandingNewCampaign","NewCampaign","forceContentInTwoLines","RebrandingGoogleImport","GoogleImport","RebrandingFacebookImport","FacebookImport","getCampaignCreationMethod","item","selection","renderSelectionItem","map","Stack","horizontal","disableShrink","tokens","defaultProps","getStyles","getTileHeaderStyles","tileHeader","flexFlow","headerTitle","marginBottom","tileHeader-s","headerTitle-s","tileHeader-m","tileHeader-l","getTileStyles","tile","padding","navigationButtons","tile-s","tile-m","tile-l","tileStyles","image","root","back","TileHeader","subtitle","displayMode","hideIcon","goalWebsiteImg","aria-hidden","styles","variant","block","as","Tile","children","onBack","onNext","backBtnText","nextBtnText","ActionButton","iconProps","iconName","PrimaryButton","Goals","IncreaseWebsiteVisit","isRecommended","IncreaseCallToBusiness","IncreaseBusinessLocationVisit","getStepGoalOptionsImages","isShowIcon","goalWebsiteIcon","goalPhoneIcon","goalPhoneImg","goalLocationIcon","goalLocationImg","GoalSelected","goalSelectedImg","campaignGoals","campaignGoalItemContainer","position","paddingRight","@media screen and (-ms-high-contrast: active)","&:focus","outline","&.is-selected","outlineColor","& .non-hover-check-icon","& .hovered-check-icon","&:hover","neutralSecondary","&:focus:hover","themePrimary","backgroundColor","themeLighterAlt","themeLighter","themeDark","campaignGoalItemContainerWithIcon","campaignGoalItemContainerWithoutIcon","goalTitle","black","goalDescription","iconImage","nonIconImage","checkIcon","alignSelf","top","right","checkIconHightLight","blue","checkIconNonHightLight","neutralTertiaryAlt","checkIconUncheckHover","GoalItem","selectedCampaignGoals","campaignGoal","isSelected","stepGoalOptionsImages","goalImage","is-selected","aria-checked","Icon","GoalSelection","onCampaignGoalSelectionChange","multiSelect","Selection","canSelectItem","getKey","selectionMode","SelectionMode","multiple","single","items","onSelectionChanged","getSelection","changeGoalSelection","selectedValue","isKeySelected","setKeySelected","useEffect","isEmpty","each","SelectionZone","onItemInvoked","isSelectedOnFocus","selectionPreservedOnEmptyClick","index","getWebsiteAndBusinessStyles","container","& .error","businessName","websiteAndBusinessStyles","titleWithMargin","getWebsiteAndSmartPagesStyles","websiteItemContainer","selectedOptionContainer","smartPageErrors","websiteAndSmartPagesStyles","websiteInput","link","getWebsiteItemStyles","itemContainerRebranding","& .ms-Image-image","itemContainerWithIcon","itemContainerWithoutIcon","optionSelected","optionNotSelected","imgContainer","icon","iconNotSelected","websiteItemStyles","getWebsiteInputStyles","websiteInputContainer","businessNameValidationErrors","required","maxLength","minLength","websiteValidationErrors","pattern","OPTIONS","optionTitles","selectedText","WebsiteInput","setWebsite","alwaysShowError","style","onWebsiteChange","target","handleWebsiteError","errors","errorStrings","oldError","has","last","Input","aria-labelledby","data-clarity-unmask","validationProps","field","errorProcessor","debounce","onChange","placeholder","UrlRegexWithOptionalProtocol","websiteSchema","properties","websiteAndBusinessSchema","business","WebsiteAndBusiness","setBusinessName","setIsValid","legacyI18n","LegacyI18nContext","onValidate","e","isValid","onChangeBusinessName","ValidationGroup","schema","WebsiteItem","selectedIcon","unselectedIcon","optionImages","signupWebsiteImg","websiteIcon","websiteImg","signupNoWebsiteImg","noWebsiteIcon","noWebsiteImg","rebrandingWebsiteImg","rebrandingNoWebsiteImg","wwwImage","getOptionImages","_useMemo","classname","ariaLabel","iconClass","FontIcon","getIsWebsiteSocialPlatform","site","host","hostname","includes","WebsiteAndSmartPages","existingWebsiteSelected","setExistingWebsiteSelected","websiteLabel","websiteHelpTopic","isWebsiteSocialPlatform","setIsWebsiteSocialPlatform","unsupportedDomainMessage","websiteOptionType","smartPageOptionType","smartPageLearnMoreLink","showWebsiteOptions","customError","onCustomValidate","onClickExistingWebsite","onClickSmartPages","optionText","HelpPopupInline","topic","ErrorMessages","messages","Link","href","rel","VIEWS","CREATION_METHOD","GOALS","WEBSITE","LANGUAGE","languageCountryContainer","noShadow","languageContainer","searchableDropdownSearchBox","left","transform","zIndex","RESERVED_SEARCH_KEY","getSearchableOptions","initialOptions","optionsWithSearch","push","itemType","SelectableOptionMenuItemType","Header","_toConsumableArray","SearchableDropdown","options","searchableOptions","_useState","useState","_useState2","_slicedToArray","filteredOptions","setFilteredOptions","onSearchValueChanged","searchValue","matchedOptions","option","onChangeSearchBox","event","onClearSearchBox","onRenderOption","renderFunc","SearchBox","onSearch","onClear","autoFocus","searchableDropdownContainer","Dropdown","onDismiss","calloutProps","directionalHint","DirectionalHint","bottomCenter","directionalHintFixed","LanguageCountrySelection","selectedLanguage","onLanguageSelected","languages","countryOptions","selectedCountry","onCountrySelected","isCountrySelectDisabled","countryContainer","selectedKey","LanguageCountrySelectionTile","onLanguageSelectionChange","campaign","useConfirmDialog","initCountryCode","shouldShowCountryChangedWarning","uiActivity","shouldShowLanguageChangedWarning","setIsCampaignDeleteConfirmed","confirmDialogClassName","setError","campaignLanguage","onLanguageBack","onConfirmNext","onCancelDialog","_useConfirmDialog","confirmText","onConfirm","cancelText","onCancel","activity","dialogName","_useConfirmDialog2","changeDialog","showChangeDialog","isChangeDialogVisible","onLanguageNext","_event","WebsiteOnlyOption","subTitleContainer","CreationMethodSubTitle","subTitle","goalsSubtitle","websiteSubtitle","withBusinessName","goalTileFooter","initStep","isSignUp","shouldShowSmartPageOption","isLanguageEnabled","languageSubtitle","isCreationMethodEnabled","creationMethodTitle","customizedInitStep","getInitStep","currentView","setView","_useState3","_useState4","setAlwaysShowError","_useState5","_useState6","goalError","setGoalError","hasLanguageSelection","isArray","size","showSwitchToExpertTile","onCreationMethodNext","onGoalNext","onGoalBack","onWebsiteBack","onWebsiteNext","creationMethodSubTitle","getWebsiteOptions","getIntroStyles","introContainer","& .intro-title","& .intro-body","& ul","introContainer-s","introContainer-m","getBulletItemStyles","bulletItem","iconContainer","bulletItemStyles","getModeItemStyles","recommended","recommendedNotSelected","recommendedNotVisible","visibility","flex","& > span","itemRecommended","margin","rebrandingSelectedDescription","rebrandingNotSelectedDescription","divider","itemContainer-s","& .item","itemContainer-m","itemContainer-l","modeItemStyles","bulletsTitle","ACCOUNT_MODE","EXPERT","UNIFIED_SMART","ACCOUNT_MODE_NAME","BulletItem","imgSrc","expertImg","imgAlt","introTitle","introTexts","smartImg","renderIcon","ReactTemplate","model","bold","t","template","ModeItem","bulletItems","Fragment","isString","IntroTexts","animationContainer","& .ms-ProgressIndicator","@media (max-width:600px)","getStylesForFluentUi","mobileDeviceQuery","animationImage","maxHeight","animationLabel","ProcessingAnimation","rollingTexts","rollingInterval","customImg","showIcon","useProgressIndicator","rollingTextIndex","setRollingTextIndex","timerRef","useRef","stopRolling","current","clearInterval","startRolling","setInterval","ProgressIndicator","animationImg","Label","mobileDevice","useMediaQuery","screenWidth","screenHeight","matchMedia","matches","innerWidth","innerHeight","ConfirmDialog","hidden","isConfirmButtonDisabled","secondaryButtons","hideCancelButton","helpLinkText","onHelpLink","dialogContentProps","modalProps","mobileDeviceMediaQuery","confirmDialog","& .ms-Dialog-content","& p, & div","& .ms-Dialog-action","&:first-child","& button.dialog-help","Dialog","main","closeButtonAriaLabel","showCloseButton","DialogType","normal","DialogFooter","DefaultButton","SecondaryButton","buttonKey","dismissDialog","originalOnClick","shouldDismissDialog","apply","instrumentationInfo","additionalProps","setAdditionalProps","_defaultProps$additio","originalOnCancel","originalOnDismiss","_defaultProps$additio2","onDisplay","passThroughProps","showDialog","periodProps","internalOnCancel","internalOnDismiss","onConfirmClicked","buttonProps","useDeepMemo","ref","isEqual","useUserLevelPreference","preferenceName","preferenceDefaultValue","preferenceService","PreferenceContext","getPreferenceValue","pref","findByNameAtUserLevel","isUndefined","Data","preferenceValue","setPreferenceValue","read","newValue","update","setAtUserLevel","WIZARD_MODE","SMART","SMART_GOOGLE_IMPORT","NONE","isSwitchFromSmartMidSignup","wizardMode","useOnceEffect","callFn","called","setCalled","nullableValue","isNull","getSharedValues","Omniture","Identity","UserRegion","SessionId","HashedUserName","CryptoJS","MD5","AID","CID","Mode","getDescriptorIds","_ref4","aid","cid","uid","customer_id","account_id","postponeRead","fetch","usePostABTestingEventLog","logTrace","accountLevelVariables","locator","descriptor","_useOverreactPostABTe","useOverreactPostABTestingEventLog","postABTestingEventLog","args","UniqueId","EventName","EventValue","isObject","payload","data","toArray","usePostABTestingFlightLog","useOverreactPostABTestingFlightLog","postABTestingFlightLog","dataList","flight","RandomizationIdType","RandomizationId","ExperimentName","Flight","usePostPageIdUserNameFlight","_getSharedValues","flights","compact","CUSTOMER_JOURNEY_PRODUCT","None","SC","ESC","Expert","StreamlinedSignup","PMaxLite","CUSTOMER_JOURNEY_SUB_PRODUCT","SubscriptionAds","M365","CUSTOMER_JOURNEY_INTERFACE","userAgent","navigator","CustomerJourneyProvider","postEventLog","logWarning","postFlightLog","product","subProduct","customerInterface","shouldPost","shouldPostFlights","eventValues","postEventLogRef","sharedValues","postEvent","logValidationError","message","postFlight","Product","SubProduct","Interface","OS","ResolutionWidth","ResolutionHeight","PixelRatio","propTypes","func","oneOfType","node","SIGNUP_FLOW","Smart","UP","NewExpert","SubscriptionAds2","PmaxLiteSignup","MSAdsSDK","SIGNUP_SUB_FLOW","SkipCampaign","CampaignCreation","SmartPage","SIGNUP_PAGE_NONE","NoOpContext","signupComplete","changedChannel","enteredPage","SignupFlowContext","SignupFlowProvider","deviceInfo","preCIDFlights","prevAccount","cache","usePrevious","_useStateWithPrevious","initialValue","state","setState","Flow","SubFlow","Page","prev","useStateWithPrevious","_useStateWithPrevious2","_useStateWithPrevious3","setContext","prevContext","PageId","isPreCIDCreation","allflights","HasPayment","_ref3","Before","After","FromFlow","ToFlow","FromPage","ToPage","prevHasAID","nowHasAID","FromMode","ToMode","Provider","useLogEnteredPage","_ref$SubFlow","LogEnteredPageOnRender","LogEnteredPageOnStep","StepsContext","PathToPage","currentPath","global_this","self","Function","ns","globalThis","createGenerateId","ruleCounter","rule","sheet","console","warn","jssId","classNamePrefix","jss","String","minify","moduleId","DEFAULT_OPTIONS","useCustomerLevelVariables","customerId","userId","useAccountLevelVariables","accountId","useAccountLevelVariablesWithAdvertiserCustomerId","_ref8","currentCustomerId","usePostponeReadVariables","lookupCacheByVariables","refetch","mutation","getPilotValueWithSignUp","ccuiPilotKey","ccDynamicPilotKey","ccuiPilotValue","ccuiPilotValueWithDynamic","getPilotValue","cmuiPilotKey","uflPilotKey","cmuiPilotValue","uflPilotValue","signupPilotValue","usePilotsValue","onlySignup","getPilot","useIsInternalUser","useIsReadOnlyUser","isReadOnly","isDSAEnforcementEnabled","enforcementActionId","isDSAReadOnly","Constants","EnforcementActionType","ReadOnly","ValidatedInput","Component","HOC","passiveMessages","suppressError","isDirty","onValidateFn","err","slice","withError","withValidation","TextField","withServerError","ValidatedSelect","buttonText","dialogClass","subText","isBlocking","UnStyledLearnMoreLink","_PureComponent","_classCallCheck","this","_callSuper","_inherits","_createClass","_this$props","linkText","linkType","onLinkClick","noLink","helpTopic","aria","learnMoreLink","helpPopup","fwdLink","delegate","directLink","PureComponent","internalLinkStyle","ComponentSettings","underlineLinkStyle","getUnderlineLinkStyle","isGreyBackground","elementLocator","getInternalLinkStyle","GreyBackgroundUnderlineLink","withDefaultStyles","NonGreyBackgroundUnderlineLink","_ref2$palette","GreyBackgroundInternalLink","_ref3$palette","NonGreyBackgroundInternalLink","_ref4$palette","LearnMoreLink","_ref5","isUnderlineLink","StyledLearnMoreLink","i18nTimezoneMap","TimezoneId_1","TimezoneId_2","TimezoneId_3","TimezoneId_4","TimezoneId_5","TimezoneId_6","TimezoneId_7","TimezoneId_8","TimezoneId_9","TimezoneId_10","TimezoneId_11","TimezoneId_12","TimezoneId_13","TimezoneId_14","TimezoneId_15","TimezoneId_16","TimezoneId_17","TimezoneId_18","TimezoneId_19","TimezoneId_20","TimezoneId_21","TimezoneId_22","TimezoneId_23","TimezoneId_24","TimezoneId_25","TimezoneId_26","TimezoneId_27","TimezoneId_28","TimezoneId_29","TimezoneId_30","TimezoneId_31","TimezoneId_32","TimezoneId_33","TimezoneId_34","TimezoneId_35","TimezoneId_36","TimezoneId_37","TimezoneId_38","TimezoneId_39","TimezoneId_40","TimezoneId_41","TimezoneId_42","TimezoneId_43","TimezoneId_44","TimezoneId_45","TimezoneId_46","TimezoneId_47","TimezoneId_48","TimezoneId_49","TimezoneId_50","TimezoneId_51","TimezoneId_52","TimezoneId_53","TimezoneId_54","TimezoneId_55","TimezoneId_56","TimezoneId_57","TimezoneId_58","TimezoneId_59","TimezoneId_60","TimezoneId_61","TimezoneId_62","TimezoneId_63","TimezoneId_64","TimezoneId_65","TimezoneId_66","TimezoneId_67","TimezoneId_68","TimezoneId_69","TimezoneId_70","TimezoneId_71","TimezoneId_72","TimezoneId_73","TimezoneId_74","TimezoneId_75","getTimezoneI18nString","timezoneId","isNumber","getDisclaimerBannerStyle","disclaimer","& span","& a.HelpTopic","textDecoration","themeDarker","onLinkMRCAccreditedClick","open","DisclaimerBannerUnStyledWrapper","instore","finalText","instoreText","DisclaimerBannerUnStyled","timezone","timeZoneStr","mrcAccreditedText","timeZoneText","withI18nConsumer","DisclaimerBannerWithoutTimezoneUnStyled","_React$PureComponent","HelpIcon","_this","stopPropagation","preventDefault","PopupController","PopupJsClick","element","createRef","alertStyle","buttonInputStyle","btnStyle","btnInteractStyle","closeImageStyle","controlStyle","datePickerStyle","dropDownEditorStyle","entitySelectorStyle","floatButtonStyle","getBlockerStyle","gridInlineErrorStyle","helpbuttonStyle","InlineEditorStyle","inlineErrorStyle","legacyUIBlockerStyle","paginationStyle","scrollbarStyle","searchboxStyle","spinnerKeyframe","statusStyle","toggleButtonStyle","uiblockerStyle","reactUIBlockerStyle","CircleSolidSmall","DiamondSolidSmall","TriangleDownSolidSmall","TriangleUpSolidSmall","SquareSolidSmall","getInlineHelpButtonStyles","& .helpbutton","&::before","fontFamily","iconFontFamily","verticalAlign","neutralLighter","&:active","neutralLight","adExtensionsAssociationsContainerLayoutType","layoutColumnsContainerGridTemplateColumns","listBoxWidthPx","CouponContext","coupon","updateCoupon","resetCouponStore","useCouponContext"],"mappings":"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AiB,EACjBb,kBAAkB,mBC9Fde,EAAkB,CACtBC,aAAc75C,yBACd85C,aAAc95C,4CACd+5C,aAAc/5C,mCACdg6C,aAAch6C,kDACdi6C,aAAcj6C,0BACdk6C,aAAcl6C,qBACdm6C,aAAcn6C,iCACdo6C,aAAcp6C,0CACdq6C,aAAcr6C,uBACds6C,cAAet6C,qBACfu6C,cAAev6C,uBACfw6C,cAAex6C,sBACfy6C,cAAez6C,oBACf06C,cAAe16C,oCACf26C,cAAe36C,qBACf46C,cAAe56C,oBACf66C,cAAe76C,sCACf86C,cAAe96C,oCACf+6C,cAAe/6C,oDACfg7C,cAAeh7C,0BACfi7C,cAAej7C,sCACfk7C,cAAel7C,qBACfm7C,cAAen7C,kCACfo7C,cAAep7C,gCACfq7C,cAAer7C,kCACfs7C,cAAet7C,wBACfu7C,cAAev7C,kDACfw7C,cAAex7C,2CACfy7C,cAAez7C,2BACf07C,cAAe17C,oBACf27C,cAAe37C,qCACf47C,cAAe57C,gCACf67C,cAAe77C,qBACf87C,cAAe97C,sBACf+7C,cAAe/7C,gDACfg8C,cAAeh8C,6BACfi8C,cAAej8C,sBACfk8C,cAAel8C,wBACfm8C,cAAen8C,4DACfo8C,cAAep8C,+BACfq8C,cAAer8C,oBACfs8C,cAAet8C,wBACfu8C,cAAev8C,sCACfw8C,cAAex8C,kCACfy8C,cAAez8C,+CACf08C,cAAe18C,kDACf28C,cAAe38C,gEACf48C,cAAe58C,+DACf68C,cAAe78C,6BACf88C,cAAe98C,gEACf+8C,cAAe/8C,qBACfg9C,cAAeh9C,yBACfi9C,cAAej9C,2BACfk9C,cAAel9C,uBACfm9C,cAAen9C,uCACfo9C,cAAep9C,wBACfq9C,cAAer9C,2BACfs9C,cAAet9C,qCACfu9C,cAAev9C,8BACfw9C,cAAex9C,uBACfy9C,cAAez9C,kCACf09C,cAAe19C,2CACf29C,cAAe39C,6BACf49C,cAAe59C,8BACf69C,cAAe79C,2CACf89C,cAAe99C,kDACf+9C,cAAe/9C,2BACfg+C,cAAeh+C,sBACfi+C,cAAej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","file":"static/js/application.initial~9493849f.1929f2b0.chunk.js","sourcesContent":["import _ from 'underscore';\r\nimport { UAPCroppingType, UAPImageExpansionType } from '@bingads-webui-campaign-react/unified-ad-preview-library-util';\r\nimport { AspectRatiosForDisplayAds } from './aspect-ratios-for-display-ads';\r\nimport { AspectRatiosForLinkedInAds } from './aspect-ratios-for-linkedin-ads';\r\n\r\nconst constants = {\r\n brandkitMinSize: [128, 128],\r\n aspectRatios: {\r\n Image191x100: {\r\n aspectRatio: 1.91,\r\n type: 'Image191x100',\r\n associationType: 'LandscapeImageMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_191x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_191x100',\r\n previewTypeString: _TL_('MSN feed'),\r\n imagePreviewHeight: 200,\r\n previewWidth: '191px',\r\n previewHeight: '100px',\r\n simplifiedType: 'Image191x100',\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [703, 368],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'audience-network-wide',\r\n showShortHeadline: true,\r\n showDescription: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image178x100: {\r\n aspectRatio: 1.78,\r\n type: 'Image178x100',\r\n associationType: 'ImageMedia178X100',\r\n stringKey: 'ImageExperience_Image_Ratio_178x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_178x100',\r\n previewTypeString: _TL_('Microsoft Edge single carousel'),\r\n imagePreviewHeight: 350,\r\n minimumRequirements: 0,\r\n minSize: [624, 350],\r\n previewSettings: {\r\n previewContentClassName: 'edge-single-carousel',\r\n showShortHeadline: true,\r\n showDescription: false,\r\n showGradient: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image172x100: {\r\n aspectRatio: 1.72,\r\n type: 'Image172x100',\r\n associationType: 'ImageMedia172X100',\r\n stringKey: 'ImageExperience_Image_Ratio_172x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_172x100',\r\n previewTypeString: _TL_('Microsoft Edge medium headline'),\r\n imagePreviewHeight: 174,\r\n minimumRequirements: 0,\r\n minSize: [300, 174],\r\n previewSettings: {\r\n previewContentClassName: 'edge-medium-headline',\r\n showShortHeadline: false,\r\n showLongHeadline: true,\r\n showDescription: false,\r\n showGradient: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image169x100: {\r\n aspectRatio: 1.69,\r\n type: 'Image169x100',\r\n associationType: 'ImageMedia169X100',\r\n stringKey: 'ImageExperience_Image_Ratio_169x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_169x100',\r\n previewTypeString: _TL_('MSN carousel'),\r\n imagePreviewHeight: 368,\r\n minimumRequirements: 0,\r\n minSize: [622, 368],\r\n previewSettings: {\r\n previewContentClassName: 'msn-single-carousel',\r\n showShortHeadline: false,\r\n showLongHeadline: true,\r\n showDescription: false,\r\n showGradient: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image155x100: {\r\n aspectRatio: 1.55,\r\n type: 'Image155x100',\r\n associationType: 'ImageMedia155X100',\r\n stringKey: 'ImageExperience_Image_Ratio_155x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_155x100',\r\n previewTypeString: _TL_('MSN medium headline'),\r\n imagePreviewHeight: 194,\r\n minimumRequirements: 0,\r\n minSize: [300, 194],\r\n previewSettings: {\r\n previewContentClassName: 'msn-medium-headline',\r\n showShortHeadline: false,\r\n showLongHeadline: true,\r\n showDescription: false,\r\n },\r\n isLogo: false,\r\n },\r\n Image150x100: {\r\n aspectRatio: 1.50,\r\n type: 'Image150x100',\r\n associationType: 'ImageMedia15X10',\r\n stringKey: 'ImageExperience_Image_Ratio_150x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_150x100',\r\n previewTypeString: _TL_('MSN in-article ad'),\r\n imagePreviewHeight: 200,\r\n minimumRequirements: 0,\r\n minSize: [300, 200],\r\n previewSettings: {\r\n previewContentClassName: 'msn-in-article',\r\n showShortHeadline: true,\r\n showDescription: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image133x100: {\r\n aspectRatio: 1.33,\r\n type: 'Image133x100',\r\n associationType: 'ImageMedia133X100',\r\n stringKey: 'ImageExperience_Image_Ratio_133x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_133x100',\r\n previewTypeString: _TL_('MSN small headline'),\r\n imagePreviewHeight: 75,\r\n minimumRequirements: 0,\r\n minSize: [100, 75],\r\n previewSettings: {\r\n previewContentClassName: 'msn-small-headline',\r\n showShortHeadline: true,\r\n showDescription: false,\r\n },\r\n isLogo: false,\r\n },\r\n Image1x1: {\r\n aspectRatio: 1,\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_1x1',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_1x1',\r\n previewTypeString: _TL_('MSN square image'),\r\n imagePreviewHeight: 75,\r\n previewWidth: '200px',\r\n previewHeight: '200px',\r\n simplifiedType: 'Image1x1',\r\n isRequired: true,\r\n minimumRequirements: 0,\r\n minSize: [300, 300],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'audience-network-square-image',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: false,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image93x100: {\r\n aspectRatio: 0.93,\r\n type: 'Image93x100',\r\n associationType: 'ImageMedia93X100',\r\n stringKey: 'ImageExperience_Image_Ratio_93x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_93x100',\r\n previewTypeString: _TL_('MSN double carousel'),\r\n imagePreviewHeight: 333,\r\n minimumRequirements: 0,\r\n minSize: [311, 333],\r\n previewSettings: {\r\n previewContentClassName: 'msn-double-carousel',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: false,\r\n showGradient: true,\r\n },\r\n isLogo: false,\r\n },\r\n },\r\n aspectRatiosForMMAV2: {\r\n OriginalImage: {\r\n aspectRatio: 1.91, // this is just a placeholder since we will not show original image in UI.\r\n type: 'OriginalImage',\r\n associationType: 'OriginalImage',\r\n stringKey: 'ImageExperience_Image_Ratio_ImageOriginal',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_ImageOriginal',\r\n previewTypeString: _TL_('Original image'),\r\n imagePreviewHeight: 200,\r\n previewWidth: '380px',\r\n previewHeight: '200px',\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [703, 368],\r\n previewSettings: {\r\n previewContentClassName: 'original-image',\r\n showShortHeadline: true,\r\n showDescription: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n shouldIgnoreCropSetting: true,\r\n },\r\n Image201x100: {\r\n aspectRatio: 2.01,\r\n type: 'Image201x100',\r\n associationType: 'ImageMedia201X100',\r\n stringKey: 'ImageExperience_Image_Ratio_201x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_201x100',\r\n previewTypeString: _TL_('Microsoft Edge carousel'),\r\n imagePreviewHeight: 304,\r\n minimumRequirements: 0,\r\n minSize: [612, 304],\r\n previewSettings: {\r\n previewContentClassName: 'edge-carousel ',\r\n showShortHeadline: true,\r\n showDescription: false,\r\n showGradient: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image200x100: {\r\n aspectRatio: 2,\r\n type: 'Image200x100',\r\n associationType: 'ImageMedia200X100',\r\n stringKey: 'ImageExperience_Image_Ratio_200x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_200x100',\r\n previewTypeString: _TL_('MSN banner'),\r\n imagePreviewHeight: 90,\r\n minimumRequirements: 0,\r\n minSize: [200, 100],\r\n previewSettings: {\r\n previewContentClassName: 'audience-network-banner ',\r\n showShortHeadline: true,\r\n showDescription: false,\r\n showGradient: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image191x100: {\r\n aspectRatio: 1.91,\r\n type: 'Image191x100',\r\n associationType: 'LandscapeImageMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_191x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_191x100_V2',\r\n previewTypeString: _TL_('MSN feed'),\r\n imagePreviewHeight: 157,\r\n minimumRequirements: 0,\r\n minSize: [300, 157],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'audience-network-wide-v2',\r\n showShortHeadline: true,\r\n showDescription: true,\r\n showGradient: true,\r\n showAdsIcon: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image169x100: {\r\n aspectRatio: 1.69,\r\n type: 'Image169x100',\r\n associationType: 'ImageMedia169X100',\r\n stringKey: 'ImageExperience_Image_Ratio_169x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_169x100_V2',\r\n previewTypeString: _TL_('MSN carousel'),\r\n imagePreviewHeight: 372,\r\n minimumRequirements: 0,\r\n minSize: [628, 372],\r\n previewSettings: {\r\n previewContentClassName: 'msn-single-carousel-v2',\r\n showShortHeadline: false,\r\n showLongHeadline: true,\r\n showDescription: false,\r\n showGradient: true,\r\n showAdsIcon: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image153x100: {\r\n aspectRatio: 1.53,\r\n type: 'Image153x100',\r\n associationType: 'ImageMedia153X100',\r\n stringKey: 'ImageExperience_Image_Ratio_153x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_153x100',\r\n previewTypeString: _TL_('MSN partner stripe'),\r\n imagePreviewHeight: 197,\r\n minimumRequirements: 0,\r\n minSize: [306, 200],\r\n previewSettings: {\r\n previewContentClassName: 'msn-partner-stripe',\r\n showShortHeadline: false,\r\n showLongHeadline: true,\r\n showDescription: false,\r\n },\r\n isLogo: false,\r\n },\r\n Image124x100: {\r\n aspectRatio: 1.24,\r\n type: 'Image124x100',\r\n associationType: 'ImageMedia124X100',\r\n stringKey: 'ImageExperience_Image_Ratio_124x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_124x100',\r\n previewTypeString: _TL_('MSN Restoday'),\r\n imagePreviewHeight: 84,\r\n minimumRequirements: 0,\r\n minSize: [104, 84],\r\n previewSettings: {\r\n previewContentClassName: 'msn-restoday',\r\n showShortHeadline: true,\r\n showDescription: false,\r\n showAdsIcon: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image120x100: {\r\n aspectRatio: 1.2,\r\n type: 'Image120x100',\r\n associationType: 'ImageMedia120X100',\r\n stringKey: 'ImageExperience_Image_Ratio_120x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_120x100',\r\n previewTypeString: _TL_('MSN rectangle image'),\r\n imagePreviewHeight: 250,\r\n minimumRequirements: 0,\r\n minSize: [300, 250],\r\n previewSettings: {\r\n previewContentClassName: 'audience-network-rectangle',\r\n showShortHeadline: true,\r\n showDescription: false,\r\n showGradient: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image1x1: {\r\n aspectRatio: 1,\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_1x1',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_1x1_V2',\r\n previewTypeString: _TL_('Edge Mobile'),\r\n imagePreviewHeight: 75,\r\n previewWidth: '150',\r\n previewHeight: '150',\r\n simplifiedType: 'Image1x1',\r\n isRequired: true,\r\n minimumRequirements: 0,\r\n minSize: [114, 114],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'audience-network-square-image-v2',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: false,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n },\r\n aspectRatiosForDisplayAds: AspectRatiosForDisplayAds,\r\n aspectRatiosForBoostPortrait: {\r\n Image1x2: {\r\n aspectRatio: 0.5,\r\n type: 'Image1x2',\r\n associationType: 'ImageMedia1x2',\r\n stringKey: 'ImageExperience_Image_Ratio_1x2',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_MultimediaAd_1x2',\r\n previewTypeString: _TL_('Vertical image'),\r\n imagePreviewHeight: 400,\r\n previewWidth: '200px',\r\n previewHeight: '400px',\r\n simplifiedType: 'Image1x2',\r\n isRequired: true,\r\n minimumRequirements: 0,\r\n minSize: [470, 940],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'boost-ad-portrait-image',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: false,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n isPortrait: true,\r\n },\r\n },\r\n aspectRatiosForBoost200x100: {\r\n Image200x100: {\r\n aspectRatio: 2,\r\n type: 'Image200x100',\r\n associationType: 'ImageMedia200X100',\r\n stringKey: 'ImageExperience_Image_Ratio_200x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_200x100_Boost',\r\n previewTypeString: _TL_('Hero Image Carousel 200x100'),\r\n imagePreviewHeight: 320,\r\n minimumRequirements: 0,\r\n minSize: [200, 100],\r\n previewSettings: {\r\n previewContentClassName: 'boost-ad-preview-200',\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showAction: true,\r\n showBusinessName: false,\r\n },\r\n },\r\n },\r\n aspectRatiosForBoostNewSupport: {\r\n Image122x100: {\r\n aspectRatio: 1.225,\r\n type: 'Image122x100',\r\n associationType: 'ImageMedia122X100',\r\n stringKey: 'ImageExperience_Image_Ratio_122x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_122x100',\r\n previewTypeString: _TL_('Hero Image Carousel 122x100'),\r\n imagePreviewHeight: 320,\r\n minimumRequirements: 0,\r\n minSize: [450, 368],\r\n previewSettings: {\r\n previewContentClassName: 'boost-ad-preview-122',\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showAction: true,\r\n showBusinessName: false,\r\n },\r\n },\r\n Image159x100: {\r\n aspectRatio: 1.59,\r\n type: 'Image159x100',\r\n associationType: 'ImageMedia159X100',\r\n stringKey: 'ImageExperience_Image_Ratio_159x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_159x100',\r\n previewTypeString: _TL_('Hero Image Carousel 159x100'),\r\n imagePreviewHeight: 320,\r\n minimumRequirements: 0,\r\n minSize: [585, 368],\r\n previewSettings: {\r\n previewContentClassName: 'boost-ad-preview-159',\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showAction: true,\r\n showBusinessName: false,\r\n },\r\n },\r\n Image180x100: {\r\n aspectRatio: 1.805,\r\n type: 'Image180x100',\r\n associationType: 'ImageMedia180X100',\r\n stringKey: 'ImageExperience_Image_Ratio_180x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_180x100',\r\n previewTypeString: _TL_('Hero Image Carousel 180x100'),\r\n imagePreviewHeight: 320,\r\n minimumRequirements: 0,\r\n minSize: [664, 368],\r\n previewSettings: {\r\n previewContentClassName: 'boost-ad-preview-180',\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showAction: true,\r\n showBusinessName: false,\r\n },\r\n },\r\n Image233x100: {\r\n aspectRatio: 2.33,\r\n type: 'Image233x100',\r\n associationType: 'ImageMedia233X100',\r\n stringKey: 'ImageExperience_Image_Ratio_233x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_233x100',\r\n previewTypeString: _TL_('Hero Image Carousel 233x100'),\r\n imagePreviewHeight: 250,\r\n minimumRequirements: 0,\r\n minSize: [703, 301],\r\n previewSettings: {\r\n previewContentClassName: 'boost-ad-preview-233',\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showAction: true,\r\n showBusinessName: false,\r\n },\r\n },\r\n Image320x100: {\r\n aspectRatio: 3.20,\r\n type: 'Image320x100',\r\n associationType: 'ImageMedia320X100',\r\n stringKey: 'ImageExperience_Image_Ratio_320x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_320x100',\r\n previewTypeString: _TL_('Hero Image Carousel 320x100'),\r\n imagePreviewHeight: 180,\r\n minimumRequirements: 0,\r\n minSize: [703, 219],\r\n previewSettings: {\r\n previewContentClassName: 'boost-ad-preview-320',\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showAction: true,\r\n showBusinessName: false,\r\n },\r\n },\r\n Image57x100: {\r\n aspectRatio: 0.57,\r\n type: 'Image57x100',\r\n associationType: 'ImageMedia57X100',\r\n stringKey: 'ImageExperience_Image_Ratio_57x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_57x100',\r\n previewTypeString: _TL_('Hero Image Carousel 57x100'),\r\n imagePreviewHeight: 320,\r\n minimumRequirements: 0,\r\n minSize: [210, 368],\r\n previewSettings: {\r\n previewContentClassName: 'boost-ad-preview-57',\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showAction: true,\r\n showBusinessName: false,\r\n },\r\n },\r\n },\r\n videoAspectRatios: {\r\n VideoMedia16X9: {\r\n ratio: 16 / 9,\r\n text: '16 : 9',\r\n stringKey: 'ImageExperience_Video_Ratio_16x9',\r\n cropSetting: {\r\n minSize: {\r\n width: 160,\r\n height: 90,\r\n },\r\n },\r\n thumbnailCropSetting: {\r\n minSize: [224, 126],\r\n },\r\n },\r\n VideoMedia5X4: {\r\n ratio: 1.25,\r\n text: '5 : 4',\r\n stringKey: 'ImageExperience_Video_Ratio_5x4',\r\n cropSetting: {\r\n minSize: {\r\n width: 100,\r\n height: 80,\r\n },\r\n },\r\n thumbnailCropSetting: {\r\n minSize: [150, 120],\r\n },\r\n },\r\n VideoMedia1X1: {\r\n ratio: 1,\r\n text: '1 : 1',\r\n stringKey: 'ImageExperience_Video_Ratio_1x1',\r\n cropSetting: {\r\n minSize: {\r\n width: 100,\r\n height: 100,\r\n },\r\n },\r\n thumbnailCropSetting: {\r\n minSize: [120, 120],\r\n },\r\n },\r\n VideoMedia4X5: {\r\n ratio: 0.8,\r\n text: '4 : 5',\r\n stringKey: 'ImageExperience_Video_Ratio_4x5',\r\n cropSetting: {\r\n minSize: {\r\n width: 80,\r\n height: 100,\r\n },\r\n },\r\n thumbnailCropSetting: {\r\n minSize: [120, 150],\r\n },\r\n },\r\n VideoMedia9X16: {\r\n ratio: 9 / 16,\r\n text: '9 : 16',\r\n stringKey: 'ImageExperience_Video_Ratio_9x16',\r\n cropSetting: {\r\n minCropSize: {\r\n width: 90,\r\n height: 160,\r\n },\r\n },\r\n thumbnailCropSetting: {\r\n minSize: [126, 224],\r\n },\r\n },\r\n },\r\n aspectRatiosForAppCampaign: {\r\n ImagePRONG: {\r\n aspectRatio: 300 / 304,\r\n type: 'ImagePRONG',\r\n associationType: 'ImagePRONG',\r\n stringKey: 'ImageExperience_Image_Ratio_1x1',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_1x1',\r\n previewTypeString: _TL_('MSN square image'),\r\n imagePreviewHeight: 75,\r\n previewWidth: '200px',\r\n previewHeight: '200px',\r\n simplifiedType: 'ImagePRONG',\r\n isRequired: false,\r\n minimumRequirements: 0,\r\n minSize: [300, 304],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'audience-network-square-image',\r\n // showShortHeadline: true,\r\n // showLongHeadline: false,\r\n // showDescription: false,\r\n // showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n ImageSPOTLIGHT: {\r\n aspectRatio: 1.78,\r\n type: 'ImageSPOTLIGHT',\r\n associationType: 'ImageSPOTLIGHT',\r\n stringKey: 'ImageExperience_Image_Ratio_178x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_178x100',\r\n previewTypeString: _TL_('Microsoft Edge single carousel'),\r\n imagePreviewHeight: 350,\r\n minimumRequirements: 0,\r\n minSize: [1920, 1080],\r\n previewSettings: {\r\n // previewContentClassName: 'edge-single-carousel',\r\n // showShortHeadline: true,\r\n // showDescription: false,\r\n // showGradient: true,\r\n },\r\n isLogo: false,\r\n },\r\n TransparentLogo: {\r\n aspectRatio: 1,\r\n type: 'TransparentLogo',\r\n associationType: 'TransparentLogo',\r\n stringKey: 'ImageExperience_Image_Ratio_1x1',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_178x100',\r\n previewTypeString: _TL_('Microsoft Edge single carousel'),\r\n imagePreviewHeight: 350,\r\n minimumRequirements: 0,\r\n minSize: [300, 300],\r\n maxSize: [1000, 1000],\r\n previewSettings: {\r\n // previewContentClassName: 'edge-single-carousel',\r\n // showShortHeadline: true,\r\n // showDescription: false,\r\n // showGradient: true,\r\n },\r\n isLogo: false,\r\n },\r\n },\r\n aspectRatiosForLinkedInAds: AspectRatiosForLinkedInAds,\r\n videoPreviewsSettings: [\r\n {\r\n type: '16X9-Homepage',\r\n videoType: 'VideoMedia16X9',\r\n text: '16 : 9',\r\n stringKey: 'ImageExperience_Video_Ratio_16x9',\r\n previewContainerHeight: 360,\r\n previewContainerWidth: 640,\r\n hideTextWhenPlay: true,\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: false,\r\n showAdditionalDisclaimer: false,\r\n showProgressText: true,\r\n className: 'preview-16-9-homepage',\r\n },\r\n {\r\n type: '16X9-Infopane',\r\n videoType: 'VideoMedia16X9',\r\n text: '16 : 9',\r\n stringKey: 'ImageExperience_Video_Ratio_16x9',\r\n previewContainerHeight: 360,\r\n previewContainerWidth: 640,\r\n hideTextWhenPlay: true,\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: false,\r\n showAdditionalDisclaimer: false,\r\n showProgressText: true,\r\n className: 'preview-16-9-infopane',\r\n },\r\n {\r\n type: '16X9-InArticleAd',\r\n videoType: 'VideoMedia16X9',\r\n text: '16 : 9',\r\n stringKey: 'ImageExperience_Video_Ratio_16x9',\r\n previewContainerHeight: 296,\r\n previewContainerWidth: 318,\r\n hideTextWhenPlay: false,\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: false,\r\n showAdditionalDisclaimer: false,\r\n showProgressText: false,\r\n className: 'preview-16-9-inarticlead',\r\n },\r\n ],\r\n videoPreviewDefaultWidth: 640,\r\n videoPreviewDefaultHeight: 300,\r\n resizeImageHeightInList: 80,\r\n sortBySelections: {\r\n recentUpload: {\r\n id: 1,\r\n enum: 'recentUpload',\r\n stringKey: 'ImageExperience_SortBy_RecentUpload',\r\n query: '$orderby=UploadedTime desc',\r\n },\r\n imageText: {\r\n id: 2,\r\n enum: 'imageText',\r\n stringKey: 'ImageExperience_SortBy_ImageText',\r\n query: '$orderby=Text asc',\r\n },\r\n },\r\n videoSortBySelections: {\r\n recentUpload: {\r\n id: 1,\r\n enum: 'recentUpload',\r\n stringKey: 'ImageExperience_Sort_Recent_Upload',\r\n query: '$orderby=UploadedTime desc',\r\n edmDefinition: { UploadedTime: -1 },\r\n },\r\n description: {\r\n id: 2,\r\n enum: 'description',\r\n stringKey: 'ImageExperience_Sort_Video_Text',\r\n query: '$orderby=Text asc',\r\n edmDefinition: { Text: 1 },\r\n },\r\n },\r\n imageTypesWithOrder: [\r\n 'Image191x100',\r\n 'Image178x100',\r\n 'Image172x100',\r\n 'Image169x100',\r\n 'Image155x100',\r\n 'Image150x100',\r\n 'Image133x100',\r\n 'Image1x1',\r\n 'Image93x100',\r\n ],\r\n videoTypesWithOrder: [\r\n 'VideoMedia16X9',\r\n 'VideoMedia5X4',\r\n 'VideoMedia1X1',\r\n 'VideoMedia4X5',\r\n 'VideoMedia9X16',\r\n ],\r\n videoTypeToThumbnailType: {\r\n VideoMedia16X9: 'VideoMedia16X9Thumbnail',\r\n VideoMedia5X4: 'VideoMedia5X4Thumbnail',\r\n VideoMedia1X1: 'VideoMedia1X1Thumbnail',\r\n VideoMedia4X5: 'VideoMedia4X5Thumbnail',\r\n VideoMedia9X16: 'VideoMedia9X16Thumbnail',\r\n },\r\n subTypeToType: {\r\n // notice that 'X' is in capital\r\n ImageMedia4X1: 'Image4x1',\r\n LandscapeImageMedia: 'Image191x100',\r\n ImageMedia178X100: 'Image178x100',\r\n ImageMedia172X100: 'Image172x100',\r\n ImageMedia169X100: 'Image169x100',\r\n ImageMedia155X100: 'Image155x100',\r\n ImageMedia15X10: 'Image150x100',\r\n ImageMedia133X100: 'Image133x100',\r\n SquareImageMedia: 'Image1x1',\r\n ImageMedia93X100: 'Image93x100',\r\n ImageMedia1X2: 'Image1x2',\r\n LandscapeLogoMedia: 'Image4x1',\r\n SquareLogoMedia: 'Image1x1',\r\n OriginalImage: 'OriginalImage',\r\n ImageMedia201X100: 'Image201x100',\r\n ImageMedia200X100: 'Image200x100',\r\n ImageMedia153X100: 'Image153x100',\r\n ImageMedia124X100: 'Image124x100',\r\n ImageMedia120X100: 'Image120x100',\r\n ImageMedia122X100: 'Image122x100',\r\n ImageMedia159X100: 'Image159x100',\r\n ImageMedia180X100: 'Image180x100',\r\n ImageMedia233X100: 'Image233x100',\r\n ImageMedia320X100: 'Image320x100',\r\n ImageMedia57X100: 'Image57x100',\r\n ImagePRONG: 'ImagePRONG',\r\n ImageSPOTLIGHT: 'ImageSPOTLIGHT',\r\n TransparentLogo: 'TransparentLogo',\r\n PortraitImageMedia: 'Image4x5',\r\n },\r\n pageSize: 12,\r\n imageAdExtSettings: {\r\n MobileMultiImage: {\r\n previewContentClassName: 'mobile-multi-img',\r\n imagePreviewHeight: 310,\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_MobileMulti',\r\n previewTypeString: _TL_('Bing mobile multi-image extension'),\r\n },\r\n BingDesktopImage: {\r\n previewContentClassName: 'bing-desktop-img',\r\n imagePreviewHeight: 100,\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_BingDeskMulti',\r\n previewTypeString: _TL_('Bing desktop multi-image extension'),\r\n },\r\n BingSingleImage: {\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_BingSingleImage',\r\n previewTypeString: _TL_('Bing desktop single-image extension'),\r\n imagePreviewHeight: 45,\r\n previewSettings: {\r\n previewContentClassName: 'bing-single-image',\r\n showShortHeadline: false,\r\n showLongHeadline: true,\r\n showDescription: true,\r\n showBusinessName: false,\r\n showUrl: true,\r\n },\r\n },\r\n },\r\n};\r\n\r\nconstants.GenericImage = {\r\n minWidth: 128,\r\n minHeight: 128,\r\n};\r\n\r\nconstants.DefaultImageMinimumSize = [703, 368];\r\n\r\nconstants.getMinimumSizeForImage = (\r\n type,\r\n isMultimediaAd = false,\r\n imageOption = constants.defaultImageOption,\r\n isCombinedMsanAndMmaAspectRatios = false,\r\n isMMAV2Enabled = false,\r\n isDisplayAds = false,\r\n isPortraitImage = false,\r\n isBoost200x100ImageEnabled = false,\r\n isBoostNewAspectRatioSupportEnabled = false,\r\n isStoreAppProng = false,\r\n isStoreAppSpotLight = false,\r\n isStoreAppTransparentLogo = false,\r\n isLinkedInAd = false,\r\n isUnifiedAppCampaignWindowsStore = false,\r\n isPMaxAspectRatiosV2Enabled = false,\r\n isBrandKit = false\r\n) => {\r\n // if type is undefined or null , then it is for all aspect ratio minimum size.\r\n // if type is not undefined or not null, then it is to return minimum size for a certain aspect ratio.\r\n\r\n if (isLinkedInAd && !type) {\r\n return [0, 0];\r\n }\r\n\r\n if (isBrandKit) {\r\n return constants.brandkitMinSize;\r\n }\r\n\r\n if (isStoreAppProng) {\r\n return constants.aspectRatiosForAppCampaign.ImagePRONG.minSize;\r\n }\r\n\r\n if (isStoreAppSpotLight) {\r\n return constants.aspectRatiosForAppCampaign.ImageSPOTLIGHT.minSize;\r\n }\r\n\r\n if (isStoreAppTransparentLogo) {\r\n return constants.aspectRatiosForAppCampaign.TransparentLogo.minSize;\r\n }\r\n\r\n if (isUnifiedAppCampaignWindowsStore) {\r\n return constants.aspectRatiosForAppCampaign.ImagePRONG.minSize;\r\n }\r\n\r\n if (isMMAV2Enabled && !type && imageOption !== constants.imageOptionKeys.Logo) {\r\n // we want to return the minimum size for the default image (703x368)\r\n // but in V2 images, 1.69 aspecr ratio is 703x372, which is a corner case\r\n // hard code here to return 703x368\r\n return constants.DefaultImageMinimumSize;\r\n }\r\n\r\n if (isCombinedMsanAndMmaAspectRatios && !type) {\r\n // Minimum uploaded image dimensions for PMax\r\n return constants.DefaultImageMinimumSize;\r\n }\r\n\r\n const aspectRatios = constants.getAspectRatios({\r\n imageOption,\r\n isMultimediaAd,\r\n isCombinedMsanAndMmaAspectRatios,\r\n isMMAV2Enabled,\r\n isDisplayAds,\r\n isPortraitImage,\r\n isBoost200x100ImageEnabled,\r\n isBoostNewAspectRatioSupportEnabled,\r\n isLinkedInAd,\r\n isUnifiedAppCampaignWindowsStore,\r\n isPMaxAspectRatiosV2Enabled,\r\n });\r\n\r\n if (type) {\r\n return aspectRatios[type].minSize;\r\n } else if (isMultimediaAd) {\r\n return [constants.GenericImage.minWidth, constants.GenericImage.minHeight];\r\n }\r\n\r\n if (isDisplayAds || imageOption === constants.imageOptionKeys.Logo) {\r\n // pick the smallest size for display ads and for logo, since logo can be square or landscape.\r\n return _.reduce(aspectRatios, (memo, val) => [\r\n memo[0] < val.minSize[0] ? memo[0] : val.minSize[0],\r\n memo[1] < val.minSize[1] ? memo[1] : val.minSize[1],\r\n ], [Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER]);\r\n }\r\n\r\n return _.reduce(aspectRatios, (memo, val) => [\r\n memo[0] > val.minSize[0] ? memo[0] : val.minSize[0],\r\n memo[1] > val.minSize[1] ? memo[1] : val.minSize[1],\r\n ], [0, 0]);\r\n};\r\n\r\nconstants.getMinSizeForRequiredRatios = (isMultimediaAd) => {\r\n const aspectRatios = isMultimediaAd ?\r\n constants.getMmaAspectRatios() :\r\n constants.aspectRatios;\r\n\r\n const requiredRatios = _.filter(aspectRatios, ratio => ratio.minimumRequirements > 0);\r\n\r\n return _.reduce(requiredRatios, (memo, val) => [\r\n memo[0] > val.minSize[0] ? memo[0] : val.minSize[0],\r\n memo[1] > val.minSize[1] ? memo[1] : val.minSize[1],\r\n ], [0, 0]);\r\n};\r\n\r\nconstants.getMinSizeForAllRequiredRatios = () => {\r\n const minSizeForMMA = constants.getMinSizeForRequiredRatios(true);\r\n const minSizeForOther = constants.getMinSizeForRequiredRatios(false);\r\n\r\n return [\r\n Math.max(minSizeForMMA[0], minSizeForOther[0]),\r\n Math.max(minSizeForMMA[1], minSizeForOther[1]),\r\n ];\r\n};\r\n\r\nconstants.getImageTypesWithOrder = (\r\n isMultimediaAd = false,\r\n isCombinedMsanAndMmaAspectRatios = false,\r\n isStoreAppProng = false,\r\n isStoreAppSpotLight = false,\r\n isStoreAppTransparentLogo = false,\r\n isLinkedInAd = false,\r\n isPMaxAspectRatiosV2Enabled = false,\r\n isRefreshedExtensionRatiosEnabled = false\r\n) => {\r\n if (isLinkedInAd) {\r\n return [\r\n 'Image191x100',\r\n 'Image1x1',\r\n 'Image4x5',\r\n ];\r\n }\r\n\r\n if (isStoreAppProng) {\r\n return [\r\n 'ImagePRONG',\r\n ];\r\n }\r\n if (isStoreAppSpotLight) {\r\n return [\r\n 'ImageSPOTLIGHT',\r\n ];\r\n }\r\n if (isStoreAppTransparentLogo) {\r\n return [\r\n 'TransparentLogo',\r\n ];\r\n }\r\n if (isCombinedMsanAndMmaAspectRatios) {\r\n return isPMaxAspectRatiosV2Enabled\r\n ? [\r\n 'Image4x1',\r\n 'Image191x100',\r\n 'Image201x100',\r\n 'Image169x100',\r\n 'Image153x100',\r\n 'Image124x100',\r\n 'Image1x1',\r\n 'Image1x2',\r\n ]\r\n : [\r\n 'Image4x1',\r\n 'Image191x100',\r\n 'Image178x100',\r\n 'Image150x100',\r\n 'Image133x100',\r\n 'Image1x1',\r\n 'Image1x2',\r\n ];\r\n }\r\n\r\n if (isMultimediaAd) {\r\n return [\r\n 'Image4x1',\r\n 'Image191x100',\r\n 'Image1x1',\r\n 'Image1x2',\r\n ];\r\n }\r\n\r\n if (isRefreshedExtensionRatiosEnabled) {\r\n return [\r\n 'Image191x100',\r\n 'Image178x100',\r\n 'Image133x100',\r\n 'Image169x100',\r\n 'Image1x1',\r\n 'Image155x100',\r\n 'Image172x100',\r\n 'Image150x100',\r\n 'Image93x100',\r\n ];\r\n }\r\n\r\n return constants.imageTypesWithOrder;\r\n};\r\n\r\nconstants.getDefaultRatio = (width, height, aspectRatios) =>\r\n _.chain(aspectRatios)\r\n .filter(ratio => width >= ratio.minSize[0] && height >= ratio.minSize[1])\r\n .sortBy(ratio => Math.abs(ratio.aspectRatio - (width / height)))\r\n .first()\r\n .value();\r\n\r\nconstants.logoSubtypes = {\r\n LandscapeLogoMedia: 'Image4x1',\r\n SquareLogoMedia: 'Image1x1',\r\n};\r\n\r\nconstants.portraitSubtypes = {\r\n ImageMedia1X2: 'Image1x2',\r\n};\r\n\r\nconst logoAspectRatios = {\r\n Image4x1: {\r\n aspectRatio: 4,\r\n type: 'Image4x1',\r\n associationType: 'LandscapeLogoMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_4x1',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_MultimediaAd_4x1',\r\n imagePreviewHeight: 152,\r\n previewWidth: '608px',\r\n previewHeight: '152px',\r\n simplifiedType: 'Image4x1',\r\n isRequired: true,\r\n minimumRequirements: 0,\r\n minSize: [512, 128],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'multimedia-ad-wide-image',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: true,\r\n showBusinessName: false,\r\n showUrl: true,\r\n showAction: true,\r\n showAdsLabel: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: true,\r\n },\r\n Image1x1: {\r\n aspectRatio: 1,\r\n type: 'Image1x1',\r\n associationType: 'SquareLogoMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_1x1',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_MultimediaAd_1x1',\r\n imagePreviewHeight: 400,\r\n previewWidth: '400px',\r\n previewHeight: '400px',\r\n simplifiedType: 'Image1x1',\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [128, 128],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'multimedia-ad-square-image',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: true,\r\n showBusinessName: false,\r\n showUrl: true,\r\n showAction: true,\r\n showAdsLabel: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: true,\r\n },\r\n};\r\n\r\nconstants.getMmaAspectRatios = (imageOption) => {\r\n if (imageOption === constants.imageOptionKeys.Logo) {\r\n return logoAspectRatios;\r\n }\r\n return {\r\n Image191x100: {\r\n aspectRatio: 1.91,\r\n type: 'Image191x100',\r\n associationType: 'LandscapeImageMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_191x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_MultimediaAd_191x100',\r\n previewTypeString: _TL_('Landscape image'),\r\n imagePreviewHeight: 244,\r\n previewWidth: '600px',\r\n previewHeight: '244px',\r\n simplifiedType: 'Image191x100',\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [703, 368],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'multimedia-ad-landscape-image',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: true,\r\n showBusinessName: false,\r\n showUrl: true,\r\n showAction: true,\r\n showAdsLabel: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image4x1: {\r\n aspectRatio: 4,\r\n type: 'Image4x1',\r\n associationType: 'ImageMedia4x1',\r\n stringKey: 'ImageExperience_Image_Ratio_4x1',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_MultimediaAd_4x1',\r\n previewTypeString: _TL_('Wide image'),\r\n imagePreviewHeight: 152,\r\n previewWidth: '608px',\r\n previewHeight: '152px',\r\n simplifiedType: 'Image4x1',\r\n isRequired: true,\r\n minimumRequirements: 0,\r\n minSize: [608, 152],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'multimedia-ad-wide-image',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: true,\r\n showBusinessName: false,\r\n showUrl: true,\r\n showAction: true,\r\n showAdsLabel: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image1x1: {\r\n aspectRatio: 1,\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_1x1',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_MultimediaAd_1x1',\r\n previewTypeString: _TL_('Square image'),\r\n imagePreviewHeight: 400,\r\n previewWidth: '400px',\r\n previewHeight: '400px',\r\n simplifiedType: 'Image1x1',\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [470, 470],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'multimedia-ad-square-image',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: true,\r\n showBusinessName: false,\r\n showUrl: true,\r\n showAction: true,\r\n showAdsLabel: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image1x2: {\r\n aspectRatio: 0.5,\r\n type: 'Image1x2',\r\n associationType: 'ImageMedia1x2',\r\n stringKey: 'ImageExperience_Image_Ratio_1x2',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_MultimediaAd_1x2',\r\n previewTypeString: _TL_('Vertical image'),\r\n imagePreviewHeight: 400,\r\n previewWidth: '200px',\r\n previewHeight: '400px',\r\n simplifiedType: 'Image1x2',\r\n isRequired: true,\r\n minimumRequirements: 0,\r\n minSize: [470, 940],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'multimedia-ad-vertical-image',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: true,\r\n showBusinessName: false,\r\n showUrl: true,\r\n showAction: true,\r\n showAdsLabel: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n };\r\n};\r\n\r\nconstants.getAspectRatios = ({\r\n isMultimediaAd,\r\n isMultimediaAdinMSANEnabled,\r\n imageOption = constants.defaultImageOption,\r\n isCombinedMsanAndMmaAspectRatios = false,\r\n isBoost200x100ImageEnabled = false,\r\n isBoostNewAspectRatioSupportEnabled = false,\r\n isMMAV2Enabled = false,\r\n isDisplayAds = false,\r\n isPortraitImage = false,\r\n isStoreAppProng = false,\r\n isStoreAppSpotLight = false,\r\n isStoreAppTransparentLogo = false,\r\n isUnifiedAppCampaignWindowsStore = false,\r\n isLinkedInAd = false,\r\n isPMaxAspectRatiosV2Enabled = false,\r\n}) => {\r\n if (isLinkedInAd) {\r\n return constants.aspectRatiosForLinkedInAds;\r\n }\r\n if (isStoreAppProng) {\r\n return { ImagePRONG: { ...constants.aspectRatiosForAppCampaign.ImagePRONG } };\r\n }\r\n if (isStoreAppSpotLight) {\r\n return { ImageSPOTLIGHT: { ...constants.aspectRatiosForAppCampaign.ImageSPOTLIGHT } };\r\n }\r\n if (isStoreAppTransparentLogo) {\r\n return { TransparentLogo: { ...constants.aspectRatiosForAppCampaign.TransparentLogo } };\r\n }\r\n\r\n if (isUnifiedAppCampaignWindowsStore) {\r\n return { ImagePRONG: { ...constants.aspectRatiosForAppCampaign.ImagePRONG }, ImageSPOTLIGHT: { ...constants.aspectRatiosForAppCampaign.ImageSPOTLIGHT } };\r\n }\r\n // old boost portrait uses separate image experience and they pass in isPotraitImage prop.\r\n // for new boost campaigns in display plus we reuse pmax image experience and for that we need to rely on imageOptionstate.\r\n if (isPortraitImage || imageOption === constants.imageOptionKeys.Portrait) {\r\n return constants.aspectRatiosForBoostPortrait;\r\n }\r\n if (isDisplayAds) {\r\n return constants.aspectRatiosForDisplayAds;\r\n }\r\n\r\n if (imageOption === constants.imageOptionKeys.Logo) {\r\n return logoAspectRatios;\r\n }\r\n\r\n if (isCombinedMsanAndMmaAspectRatios) {\r\n return isPMaxAspectRatiosV2Enabled\r\n ? constants.pmaxV2Ratios\r\n : { ..._.pick(constants.aspectRatios, constants.pmaxMsanRatios), ..._.pick(constants.getMmaAspectRatios(), constants.pmaxMmaRatios) };\r\n }\r\n\r\n let aspectRatios = isMultimediaAd ? constants.getMmaAspectRatios() : constants.aspectRatios;\r\n\r\n if (isMultimediaAdinMSANEnabled) {\r\n aspectRatios = _.pick(aspectRatios, constants.multimediaAdinMSANRatios);\r\n }\r\n\r\n if (isBoost200x100ImageEnabled || isBoostNewAspectRatioSupportEnabled) {\r\n _.extend(aspectRatios, constants.aspectRatiosForBoost200x100);\r\n\r\n if (isBoostNewAspectRatioSupportEnabled) {\r\n _.extend(aspectRatios, constants.aspectRatiosForBoostNewSupport);\r\n }\r\n }\r\n\r\n if (isMMAV2Enabled) {\r\n aspectRatios = _.pick(constants.aspectRatiosForMMAV2, constants.audienceMMAV2AspectRatios);\r\n }\r\n\r\n return aspectRatios;\r\n};\r\n\r\nconstants.SupportedCaptionLocales = [\r\n {\r\n Lcid: 1033,\r\n FullName: 'English (US): en_US',\r\n Tag: 'en_US',\r\n },\r\n];\r\n\r\nconstants.LcidToFullName = (Lcid) => {\r\n const locale = constants.SupportedCaptionLocales.find(loc => loc.Lcid === Lcid);\r\n return locale ? locale.FullName : Lcid.toString();\r\n};\r\n\r\nconstants.TagToLcid = (tag) => {\r\n const locale = constants.SupportedCaptionLocales\r\n .find(loc => loc.Tag.toLowerCase() === tag.toLowerCase());\r\n return locale ? locale.Lcid : null;\r\n};\r\n\r\nconstants.DEFAULT_MAX_IMAGE = 16;\r\nconstants.DEFAULT_MAX_LOGO = 5;\r\nconstants.DEFAULT_MAX_PORTRAIT = 1;\r\n\r\nconstants.audienceMMAV2WithDiffAspectRatio = ['Image191x100', 'Image169x100', 'Image1x1'];\r\n\r\nconstants.multimediaAdinMSANRatios = ['Image191x100', 'Image178x100', 'Image150x100', 'Image133x100', 'Image1x1'];\r\nconstants.boostMultimediaAdinMSANRatios = constants.multimediaAdinMSANRatios.concat('Image200x100');\r\nconstants.boostMultimediaAdinMSANRatiosNewSupport = constants.boostMultimediaAdinMSANRatios\r\n .concat('Image122x100', 'Image159x100', 'Image180x100', 'Image233x100', 'Image320x100', 'Image57x100');\r\nconstants.pmaxMsanRatios = ['Image191x100', 'Image178x100', 'Image150x100', 'Image133x100', 'Image1x1'];\r\nconstants.pmaxMmaRatios = ['Image4x1', 'Image1x2'];\r\n\r\nconstants.pmaxV2Ratios = {\r\n Image191x100: {\r\n aspectRatio: 1.91,\r\n type: 'Image191x100',\r\n associationType: 'LandscapeImageMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_191x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_MultimediaAd_191x100',\r\n previewTypeString: _TL_('Landscape image'),\r\n imagePreviewHeight: 244,\r\n previewWidth: '600px',\r\n previewHeight: '244px',\r\n simplifiedType: 'Image191x100',\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [703, 368],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'multimedia-ad-landscape-image',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: true,\r\n showBusinessName: false,\r\n showUrl: true,\r\n showAction: true,\r\n showAdsLabel: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image4x1: {\r\n aspectRatio: 4,\r\n type: 'Image4x1',\r\n associationType: 'ImageMedia4x1',\r\n stringKey: 'ImageExperience_Image_Ratio_4x1',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_MultimediaAd_4x1',\r\n previewTypeString: _TL_('Wide image'),\r\n imagePreviewHeight: 152,\r\n previewWidth: '608px',\r\n previewHeight: '152px',\r\n simplifiedType: 'Image4x1',\r\n isRequired: true,\r\n minimumRequirements: 0,\r\n minSize: [608, 152],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'multimedia-ad-wide-image',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: true,\r\n showBusinessName: false,\r\n showUrl: true,\r\n showAction: true,\r\n showAdsLabel: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image1x1: {\r\n aspectRatio: 1,\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_1x1',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_MultimediaAd_1x1',\r\n previewTypeString: _TL_('Square image'),\r\n imagePreviewHeight: 400,\r\n previewWidth: '400px',\r\n previewHeight: '400px',\r\n simplifiedType: 'Image1x1',\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [470, 470],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'multimedia-ad-square-image',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: true,\r\n showBusinessName: false,\r\n showUrl: true,\r\n showAction: true,\r\n showAdsLabel: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image1x2: {\r\n aspectRatio: 0.5,\r\n type: 'Image1x2',\r\n associationType: 'ImageMedia1x2',\r\n stringKey: 'ImageExperience_Image_Ratio_1x2',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_MultimediaAd_1x2',\r\n previewTypeString: _TL_('Vertical image'),\r\n imagePreviewHeight: 400,\r\n previewWidth: '200px',\r\n previewHeight: '400px',\r\n simplifiedType: 'Image1x2',\r\n isRequired: true,\r\n minimumRequirements: 0,\r\n minSize: [470, 940],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'multimedia-ad-vertical-image',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: true,\r\n showBusinessName: false,\r\n showUrl: true,\r\n showAction: true,\r\n showAdsLabel: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image201x100: {\r\n aspectRatio: 2.01,\r\n type: 'Image201x100',\r\n associationType: 'ImageMedia201X100',\r\n stringKey: 'ImageExperience_Image_Ratio_201x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_201x100',\r\n previewTypeString: _TL_('Microsoft Edge carousel'),\r\n imagePreviewHeight: 304,\r\n minimumRequirements: 0,\r\n minSize: [612, 304],\r\n previewSettings: {\r\n previewContentClassName: 'edge-carousel ', // ???\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: true,\r\n showBusinessName: false,\r\n showUrl: true,\r\n showAction: true,\r\n showAdsLabel: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image169x100: {\r\n aspectRatio: 1.69,\r\n type: 'Image169x100',\r\n associationType: 'ImageMedia169X100',\r\n stringKey: 'ImageExperience_Image_Ratio_169x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_169x100_V2',\r\n previewTypeString: _TL_('MSN Single Carousel'),\r\n imagePreviewHeight: 372,\r\n minimumRequirements: 0,\r\n minSize: [628, 372],\r\n previewSettings: {\r\n previewContentClassName: 'msn-single-carousel-v2', // ???\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: true,\r\n showBusinessName: false,\r\n showUrl: true,\r\n showAction: true,\r\n showAdsLabel: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image153x100: {\r\n aspectRatio: 1.53,\r\n type: 'Image153x100',\r\n associationType: 'ImageMedia153X100',\r\n stringKey: 'ImageExperience_Image_Ratio_153x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_153x100',\r\n previewTypeString: _TL_('MSN partner stripe'),\r\n imagePreviewHeight: 197,\r\n minimumRequirements: 0,\r\n minSize: [306, 200],\r\n previewSettings: {\r\n previewContentClassName: 'msn-partner-stripe', // ???\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: true,\r\n showBusinessName: false,\r\n showUrl: true,\r\n showAction: true,\r\n showAdsLabel: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n Image124x100: {\r\n aspectRatio: 1.24,\r\n type: 'Image124x100',\r\n associationType: 'ImageMedia124X100',\r\n stringKey: 'ImageExperience_Image_Ratio_124x100',\r\n previewTypeStringKey: 'ImageExperience_Preview_Type_124x100',\r\n previewTypeString: _TL_('MSN Restoday'),\r\n imagePreviewHeight: 84,\r\n minimumRequirements: 0,\r\n minSize: [104, 84],\r\n previewSettings: {\r\n previewContentClassName: 'msn-restoday', // ???\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showDescription: true,\r\n showBusinessName: false,\r\n showUrl: true,\r\n showAction: true,\r\n showAdsLabel: true,\r\n showAdditionalDisclaimer: true,\r\n },\r\n isLogo: false,\r\n },\r\n};\r\n\r\nconstants.audienceMMAV2AspectRatiosWithoutOriginalImage =\r\n ['Image201x100', 'Image200x100', 'Image191x100',\r\n 'Image169x100', 'Image153x100', 'Image124x100', 'Image120x100', 'Image1x1'];\r\n\r\nconstants.audienceMMAV2AspectRatios =\r\n ['OriginalImage', constants.audienceMMAV2AspectRatiosWithoutOriginalImage];\r\n\r\nconstants.imageSources = {\r\n Website: 'Website',\r\n WebsiteCarousel: 'WebsiteCarousel',\r\n Upload: 'Upload',\r\n Existing: 'Existing',\r\n Stock: 'Stock',\r\n AdRecommendation: 'AdRecommendation',\r\n Social: 'Social',\r\n AIGenerated: 'AIGenerated',\r\n Invest: 'Invest',\r\n BackgroundChangeGenerated: 'BackgroundChangeGenerated',\r\n};\r\n\r\n// image asset from MT\r\nconstants.sourceTypes = {\r\n TwitterImported: 'TwitterImported',\r\n WebsiteImported: 'WebsiteImported',\r\n UserUploaded: 'UserUploaded',\r\n AIGenerated: 'AIGenerated',\r\n BackgroundChangeGenerated: 'BackgroundChangeGenerated',\r\n AIGeneratedByRecraft: 'AIGeneratedByRecraft',\r\n};\r\n\r\nconstants.getSourceTypeFromImageSource = (imageSource) => {\r\n if (imageSource === constants.imageSources.Website || imageSource === constants.imageSources.WebsiteCarousel) {\r\n return constants.sourceTypes.WebsiteImported;\r\n }\r\n if (imageSource === constants.imageSources.Social) {\r\n return constants.sourceTypes.TwitterImported;\r\n }\r\n if (imageSource === constants.imageSources.BackgroundChangeGenerated) {\r\n return constants.sourceTypes.BackgroundChangeGenerated;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nconstants.preferenceFlags = {\r\n MMATeachingBubble: 'WebApp.CampaignUI.ShowAdCreatorEditImageBubble',\r\n MMAWebsiteImageOptIn: 'WebApp.CampaignUI.MMAWebsiteImageOptIn',\r\n MMAInMSANTeachingBubble: 'WebApp.CampaignUI.ShowAdCreatorEditImageBubbleInMSAN',\r\n MMAInMSANWebsiteImageOptIn: 'WebApp.CampaignUI.MMAInMSANWebsiteImageOptIn',\r\n};\r\n\r\nconstants.imageOptionKeys = {\r\n Image: 'Image',\r\n Logo: 'Logo',\r\n Portrait: 'Portrait',\r\n};\r\n\r\nconstants.getImageOptions = ({\r\n i18n = {\r\n getString: _.noop,\r\n },\r\n disableImage = false,\r\n disableLogo = false,\r\n disablePortrait = false,\r\n}) => [{\r\n key: constants.imageOptionKeys.Image,\r\n text: i18n.getString(`ImageOptionDropdown_${constants.imageOptionKeys.Image}`),\r\n disabled: disableImage,\r\n}, {\r\n key: constants.imageOptionKeys.Logo,\r\n text: i18n.getString(`ImageOptionDropdown_${constants.imageOptionKeys.Logo}`),\r\n disabled: disableLogo,\r\n}, {\r\n key: constants.imageOptionKeys.Portrait,\r\n text: i18n.getString(`ImageOptionDropdown_${constants.imageOptionKeys.Portrait}`),\r\n disabled: disablePortrait,\r\n}];\r\n\r\nconstants.defaultImageOption = _.first(constants.getImageOptions({})).key;\r\n\r\nconstants.getAspectRatioOptions = (i18n = {\r\n getString: _.noop,\r\n}) => [{\r\n key: constants.logoSubtypes.SquareLogoMedia,\r\n labelId: constants.logoSubtypes.SquareLogoMedia,\r\n text: i18n.getString(`AspectRatioChoiceGroup_${constants.logoSubtypes.SquareLogoMedia}`),\r\n}, {\r\n key: constants.logoSubtypes.LandscapeLogoMedia,\r\n labelId: constants.logoSubtypes.LandscapeLogoMedia,\r\n text: i18n.getString(`AspectRatioChoiceGroup_${constants.logoSubtypes.LandscapeLogoMedia}`),\r\n}];\r\n\r\nconstants.defaultAspectRatioOption = _.first(constants.getAspectRatioOptions()).key;\r\n\r\nconstants.getBoostAspectRatios = i18n => ({\r\n windowsSpotlight: {\r\n aspectRatio: 1.9,\r\n type: 'Image191x100',\r\n associationType: 'LandscapeImageMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_191x100',\r\n previewTypeStringKey: i18n.getString(_TL_('Windows Spotlight')),\r\n previewTypeString: '',\r\n imagePreviewHeight: 400,\r\n simplifiedType: 'Image191x100',\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [268, 140],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'boost-windows',\r\n showLongHeadline: true,\r\n showBusinessName: false,\r\n multipleLineLongHeadline: true,\r\n multipleDescription: true,\r\n showDescription: true,\r\n hideLabel: true,\r\n showHotspots: true,\r\n },\r\n },\r\n discoverCard: {\r\n aspectRatio: 1,\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_1x1',\r\n previewTypeStringKey: i18n.getString(_TL_('Discover card')),\r\n previewTypeString: _TL_('MSN square image'),\r\n imagePreviewHeight: 250,\r\n previewWidth: '200px',\r\n previewHeight: '200px',\r\n simplifiedType: 'Image1x1',\r\n isRequired: true,\r\n minimumRequirements: 0,\r\n minSize: [300, 300],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'boost-discover-card',\r\n showShortHeadline: true,\r\n showLongHeadline: false,\r\n showBusinessName: false,\r\n multipleDescription: true,\r\n showDescription: true,\r\n showAction: true,\r\n },\r\n },\r\n startMeno: {\r\n aspectRatio: 1.75,\r\n type: 'Image178x100',\r\n previewTypeString: '',\r\n previewTypeStringKey: i18n.getString(_TL_('Start Menu')),\r\n imagePreviewHeight: 160,\r\n logoHeight: 24,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [280, 160],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'boost-start-menu',\r\n showLogo: true,\r\n showShortHeadline: true,\r\n multipleLineLongHeadline: true,\r\n showLongHeadline: true,\r\n showAction: false,\r\n showBusinessName: false,\r\n showImage: false,\r\n showDismiss: true,\r\n },\r\n },\r\n actionCenter: {\r\n aspectRatio: 1.75,\r\n type: 'Image178x100',\r\n previewTypeString: '',\r\n previewTypeStringKey: i18n.getString(_TL_('Action Center')),\r\n imagePreviewHeight: 160,\r\n logoHeight: 48,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [280, 160],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'boost-actionCenter',\r\n showLogo: true,\r\n showShortHeadline: true,\r\n multipleDescription: true,\r\n showDescription: true,\r\n showAction: true,\r\n showBusinessName: false,\r\n showImage: false,\r\n showDismiss: true,\r\n },\r\n },\r\n banner: {\r\n aspectRatio: 1.75,\r\n type: 'Image178x100',\r\n previewTypeString: '',\r\n previewTypeStringKey: i18n.getString(_TL_('Banner')),\r\n imagePreviewHeight: 160,\r\n logoHeight: 20,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [280, 160],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'boost-banner',\r\n showLogo: true,\r\n showShortHeadline: true,\r\n showAction: true,\r\n showBusinessName: false,\r\n showImage: false,\r\n showDismiss: true,\r\n },\r\n },\r\n Image191x100: {\r\n aspectRatio: 1.914,\r\n type: 'Image191x100',\r\n associationType: 'LandscapeImageMedia',\r\n stringKey: 'ImageExperience_Image_Ratio_191x100',\r\n previewTypeStringKey: i18n.getString(_TL_('Prong 1 / Prong 2 / Feed')),\r\n previewTypeString: '',\r\n imagePreviewHeight: 140,\r\n simplifiedType: 'Image191x100',\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [268, 140],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'boost-191X1',\r\n showBusinessName: true,\r\n showLongHeadline: true,\r\n multipleLineLongHeadline: true,\r\n hideLabel: true,\r\n },\r\n },\r\n coachmark: {\r\n aspectRatio: 1.75,\r\n type: 'Image178x100',\r\n previewTypeString: '',\r\n previewTypeStringKey: i18n.getString(_TL_('CoachMark')),\r\n imagePreviewHeight: 160,\r\n isRequired: true,\r\n minimumRequirements: 1,\r\n minSize: [280, 160],\r\n maxSize: [0, 0],\r\n previewSettings: {\r\n previewContentClassName: 'boost-coachmark',\r\n showDescription: true,\r\n showShortHeadline: true,\r\n showBusinessName: false,\r\n multipleLineLongHeadline: true,\r\n multipleDescription: true,\r\n showAction: true,\r\n },\r\n },\r\n});\r\n\r\n//\r\n// Image expansion/Fitting - Begin\r\n// None/WhitePadding/Blur/Outpainting/SingleColorPadding\r\nconstants.ImageExpansionType = UAPImageExpansionType;\r\n\r\nconstants.CroppingType = UAPCroppingType;\r\nconstants.ImageExpansionDataSource = {\r\n Existing: 'Existing', // the data is loaded from image assets\r\n ImageFittingAPI: 'ImageFittingAPI', // the data is created by calling image fitting API\r\n};\r\n// Image expansion/Fitting - End\r\n\r\nexport default constants;\r\n","export const AspectRatiosForDisplayAds = {\r\n Image300x250: {\r\n aspectRatio: 1.2,\r\n type: 'Image300x250',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image300x250',\r\n minSize: [300, 250],\r\n },\r\n Image728x90: {\r\n aspectRatio: 8.088888888888889,\r\n type: 'Image728x90',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image728x90',\r\n minSize: [728, 90],\r\n },\r\n Image160x600: {\r\n aspectRatio: 0.26666666666666666,\r\n type: 'Image160x600',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image160x600',\r\n minSize: [160, 600],\r\n },\r\n Image300x600: {\r\n aspectRatio: 0.5,\r\n type: 'Image300x600',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image300x600',\r\n minSize: [300, 600],\r\n },\r\n Image120x600: {\r\n aspectRatio: 0.2,\r\n type: 'Image120x600',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image120x600',\r\n minSize: [120, 600],\r\n },\r\n Image468x60: {\r\n aspectRatio: 7.8,\r\n type: 'Image468x60',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image468x60',\r\n minSize: [468, 60],\r\n },\r\n Image336x280: {\r\n aspectRatio: 1.2,\r\n type: 'Image336x280',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image336x280',\r\n minSize: [336, 280],\r\n },\r\n Image250x250: {\r\n aspectRatio: 1,\r\n type: 'Image250x250',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image250x250',\r\n minSize: [250, 250],\r\n },\r\n Image180x150: {\r\n aspectRatio: 1.2,\r\n type: 'Image180x150',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image180x150',\r\n minSize: [180, 150],\r\n },\r\n Image970x250: {\r\n aspectRatio: 3.88,\r\n type: 'Image970x250',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image970x250',\r\n minSize: [970, 250],\r\n },\r\n Image234x60: {\r\n aspectRatio: 3.9,\r\n type: 'Image234x60',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image234x60',\r\n minSize: [234, 60],\r\n },\r\n Image970x90: {\r\n aspectRatio: 10.777777777777779,\r\n type: 'Image970x90',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image970x90',\r\n minSize: [970, 90],\r\n },\r\n\r\n Image320x50: {\r\n aspectRatio: 6.4,\r\n type: 'Image320x50',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image320x50',\r\n minSize: [320, 50],\r\n },\r\n Image300x50: {\r\n aspectRatio: 6,\r\n type: 'Image300x50',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image300x50',\r\n minSize: [300, 50],\r\n },\r\n Image320x480: {\r\n aspectRatio: 0.6666666666666666,\r\n type: 'Image320x480',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image320x480',\r\n minSize: [320, 480],\r\n },\r\n Image480x320: {\r\n aspectRatio: 1.5,\r\n type: 'Image480x320',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image480x320',\r\n minSize: [480, 320],\r\n },\r\n Image320x100: {\r\n aspectRatio: 3.2,\r\n type: 'Image320x100',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image320x100',\r\n minSize: [320, 100],\r\n },\r\n Image216x36: {\r\n aspectRatio: 6,\r\n type: 'Image216x36',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image216x36',\r\n minSize: [216, 36],\r\n },\r\n Image168x28: {\r\n aspectRatio: 6,\r\n type: 'Image168x28',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image168x28',\r\n minSize: [168, 28],\r\n },\r\n Image120x20: {\r\n aspectRatio: 6,\r\n type: 'Image120x20',\r\n imagePreviewHeight: 75,\r\n simplifiedType: 'Image120x20',\r\n minSize: [120, 20],\r\n },\r\n};\r\n","export const AspectRatiosForLinkedInAds = {\r\n Image191x100: {\r\n aspectRatio: 1.91,\r\n type: 'Image191x100',\r\n associationType: 'LandscapeImageMedia',\r\n minSize: [690, 360],\r\n maxSize: [7680, 4320],\r\n isLogo: false,\r\n },\r\n Image1x1: {\r\n aspectRatio: 1,\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n minSize: [360, 360],\r\n maxSize: [4320, 4320],\r\n isLogo: false,\r\n },\r\n Image4x5: {\r\n aspectRatio: 0.8,\r\n type: 'Image4x5',\r\n associationType: 'PortraitImageMedia',\r\n minSize: [512, 640],\r\n maxSize: [2430, 4320],\r\n isLogo: false,\r\n },\r\n};\r\n","import _ from 'underscore';\r\nimport Promise from 'bluebird';\r\n\r\nimport { convertAspectRatioToDecimal } from '@bingads-webui-campaign/media-common-utils';\r\nimport {\r\n ImageExperienceImage, constants as C\r\n} from '@bingads-webui-campaign-react/image-experience-model';\r\n\r\nimport {\r\n getAutoCroppedImages,\r\n getAutoCroppedImagesForRatios,\r\n processCroppedImages\r\n} from './get-cropped-image';\r\nimport { validateSmartCropSettings } from './validate-crop-settings';\r\n\r\n\r\n/**\r\n * Return the image objects\r\n *\r\n * @param {Object} mediaRepository - Media repository to get smart crop settings\r\n * @param {Object} originalImageToCrop - ImageExperienceImage Object\r\n * @param {string} originalImageToCrop.Src - source of the image\r\n * @param {Number} originalImageToCrop.width - width of the image\r\n * @param {Number} originalImageToCrop.height - height of the image\r\n * @param {Object} smartCropActivity - instrumentation for smart crop\r\n * @param {Object} isMultimediaAd - true if current is mma\r\n * @param {Object} isMultimediaAdinMSANEnabled - true if current is msan mma\r\n * @returns {Array} - Array of image objects\r\n */\r\nexport const getSmartCroppedImagesAsync = ({\r\n mediaRepository,\r\n originalImageToCrop,\r\n smartCropActivity,\r\n isMultimediaAd,\r\n isMultimediaAdinMSANEnabled,\r\n imageOption = C.defaultImageOption,\r\n aspectRatioOption = C.defaultAspectRatioOption,\r\n isImageAdExtensionMode,\r\n isCombinedMsanAndMmaAspectRatios,\r\n isMMAV2Enabled,\r\n isMSANBoostEnabled,\r\n isBoost200x100ImageEnabled,\r\n isBoostNewAspectRatioSupportEnabled,\r\n isAudienceAdSmartCropEnabled,\r\n isPmaxSmartCropEnabled,\r\n isDisplayAds,\r\n isAudienceAd,\r\n isStoreAppProng = false,\r\n isStoreAppSpotLight = false,\r\n isStoreAppTransparentLogo = false,\r\n isLinkedInAd = false,\r\n isUnifiedAppCampaignWindowsStore = false,\r\n setCroppingType = false,\r\n isPMaxAspectRatiosV2Enabled = false,\r\n}) => {\r\n if (!(\r\n (isMultimediaAd) ||\r\n (isAudienceAdSmartCropEnabled && isDisplayAds) ||\r\n (isAudienceAdSmartCropEnabled && isMultimediaAdinMSANEnabled && isAudienceAd) ||\r\n (isAudienceAdSmartCropEnabled && isImageAdExtensionMode) ||\r\n (isPmaxSmartCropEnabled && isCombinedMsanAndMmaAspectRatios)\r\n ) || isMSANBoostEnabled || isStoreAppProng || isStoreAppSpotLight || isStoreAppTransparentLogo\r\n || isLinkedInAd || isUnifiedAppCampaignWindowsStore) {\r\n return Promise.resolve(getAutoCroppedImages({\r\n originalImageToCrop,\r\n isMultimediaAd,\r\n isMultimediaAdinMSANEnabled,\r\n imageOption,\r\n aspectRatioOption,\r\n isCombinedMsanAndMmaAspectRatios,\r\n isMMAV2Enabled,\r\n isBoost200x100ImageEnabled,\r\n isBoostNewAspectRatioSupportEnabled,\r\n isDisplayAds,\r\n isStoreAppProng,\r\n isStoreAppSpotLight,\r\n isStoreAppTransparentLogo,\r\n isLinkedInAd,\r\n isUnifiedAppCampaignWindowsStore,\r\n isPMaxAspectRatiosV2Enabled,\r\n }));\r\n }\r\n\r\n const aspectRatios = C.getAspectRatios({\r\n isMultimediaAd,\r\n isMultimediaAdinMSANEnabled,\r\n isCombinedMsanAndMmaAspectRatios,\r\n imageOption,\r\n isDisplayAds,\r\n isBoost200x100ImageEnabled,\r\n isBoostNewAspectRatioSupportEnabled,\r\n isMMAV2Enabled,\r\n isPMaxAspectRatiosV2Enabled,\r\n });\r\n const defaultRatio = imageOption === C.imageOptionKeys.Logo && aspectRatioOption ?\r\n _.result(aspectRatios, aspectRatioOption) :\r\n C.getDefaultRatio(originalImageToCrop.Width, originalImageToCrop.Height, aspectRatios);\r\n\r\n const placementSettings = _.map(aspectRatios, cropInfo => ({\r\n aspectRatio: cropInfo.aspectRatio,\r\n type: cropInfo.type,\r\n associationType: cropInfo.associationType,\r\n stringKey: cropInfo.stringKey,\r\n previewTypeStringKey: cropInfo.previewTypeStringKey,\r\n imagePreviewHeight: cropInfo.imagePreviewHeight,\r\n minSize: cropInfo.minSize,\r\n previewSettings: cropInfo.previewSettings,\r\n }));\r\n let imagesToReturn = [];\r\n const aspectRatiosWithSmartCrop = {};\r\n\r\n return mediaRepository.generateSmartCrop({\r\n imageUrl: originalImageToCrop.Src,\r\n placementSettings: _.reject(placementSettings, i => i.type === 'OriginalImage'),\r\n }).then((assets) => {\r\n imagesToReturn = _.compact(_.map(assets, (asset) => {\r\n const croppedImageData = {\r\n id: originalImageToCrop.Id,\r\n idString: originalImageToCrop.IdString,\r\n src: originalImageToCrop.Src,\r\n width: originalImageToCrop.width,\r\n height: originalImageToCrop.height,\r\n source: originalImageToCrop.source,\r\n originalSourceType: originalImageToCrop.originalSourceType,\r\n };\r\n const cropSettings = {\r\n SourceWidth: asset.Width,\r\n SourceHeight: asset.Height,\r\n SourceX: asset.X,\r\n SourceY: asset.Y,\r\n };\r\n if (setCroppingType) {\r\n cropSettings.CroppingType = 'SmartCrop';\r\n }\r\n\r\n croppedImageData.cropSettings = cropSettings;\r\n const ratioDecimalStr = convertAspectRatioToDecimal(asset.AspectRatio);\r\n const placementSetting = _.find(aspectRatios, ratio =>\r\n ratio.aspectRatio.toString() === ratioDecimalStr);\r\n const minSize = _.propertyOf(placementSetting)('minSize') || [];\r\n\r\n croppedImageData.type = _.propertyOf(placementSetting)('type');\r\n croppedImageData.associationType = _.propertyOf(placementSetting)('associationType');\r\n croppedImageData.isLogo = _.propertyOf(placementSetting)('isLogo');\r\n croppedImageData.isPortrait = _.propertyOf(placementSetting)('isPortrait');\r\n croppedImageData.isIncluded = defaultRatio &&\r\n ratioDecimalStr === _.result(defaultRatio, 'aspectRatio').toString();\r\n\r\n if (!validateSmartCropSettings({\r\n cropSettings,\r\n originalImage: originalImageToCrop,\r\n aspectRatio: _.propertyOf(placementSetting)('aspectRatio'),\r\n minWidth: minSize.length === 2 && minSize[0],\r\n minHeight: minSize.length === 2 && minSize[1],\r\n smartCropActivity,\r\n })) {\r\n return null;\r\n }\r\n\r\n aspectRatiosWithSmartCrop[croppedImageData.type] = true;\r\n\r\n return new ImageExperienceImage(croppedImageData);\r\n }));\r\n }).catch(() => {\r\n // swallow the error\r\n }).then(() => {\r\n if (imagesToReturn.length < Object.keys(aspectRatios).length) {\r\n const missingAspectRatios =\r\n _.pick(aspectRatios, ({ type }) => !aspectRatiosWithSmartCrop[type]);\r\n const autoCropSettings =\r\n getAutoCroppedImagesForRatios({\r\n originalImageToCrop,\r\n aspectRatios: missingAspectRatios,\r\n defaultRatioToInclude: defaultRatio,\r\n setCroppingType,\r\n });\r\n\r\n imagesToReturn = imagesToReturn.concat(autoCropSettings);\r\n }\r\n\r\n processCroppedImages({\r\n croppedImages: imagesToReturn,\r\n isMultimediaAdinMSANEnabled,\r\n aspectRatios,\r\n });\r\n\r\n return imagesToReturn;\r\n });\r\n};\r\n","import Promise from 'bluebird';\r\n\r\nexport const getGenericImageObjectAsync = (genericImageSource) => {\r\n const nativeImageObject = new Image();\r\n\r\n let resolver = null;\r\n\r\n const getImagePromise = new Promise((resolve) => {\r\n resolver = resolve;\r\n });\r\n\r\n nativeImageObject.onload = () => {\r\n resolver({\r\n Src: nativeImageObject.src,\r\n Width: nativeImageObject.naturalWidth,\r\n Height: nativeImageObject.naturalHeight,\r\n Type: 'Image191x100',\r\n });\r\n };\r\n\r\n nativeImageObject.src = genericImageSource;\r\n\r\n return getImagePromise;\r\n};\r\n","import Promise from 'bluebird';\r\nimport _ from 'underscore';\r\n\r\nimport { constants as C } from '@bingads-webui-campaign-react/image-experience-model';\r\n\r\nclass ImageSizeValidationError extends Error {\r\n constructor({\r\n imageWidth,\r\n imageHeight,\r\n minWidth,\r\n minHeight,\r\n }) {\r\n super('SizeValidationError'); // if you change this, please update getMultiAddedImageErrorMessage\r\n\r\n this.imageWidthInternal = imageWidth;\r\n this.imageHeightInternal = imageHeight;\r\n this.minWidthInternal = minWidth;\r\n this.minHeightInternal = minHeight;\r\n }\r\n\r\n get imageWidth() {\r\n return this.imageWidthInternal;\r\n }\r\n\r\n get imageHeight() {\r\n return this.imageHeightInternal;\r\n }\r\n\r\n get minWidth() {\r\n return this.minWidthInternal;\r\n }\r\n\r\n get minHeight() {\r\n return this.minHeightInternal;\r\n }\r\n}\r\n\r\nclass ImageLoadError extends Error {\r\n constructor() {\r\n super('ImageLoadError');\r\n }\r\n}\r\n\r\nconst getImageDetailAsync = (url) => {\r\n const img = new Image();\r\n\r\n let imageLoadedResolve = null;\r\n let imageLoadedReject = null;\r\n const imageLoadedPromise = new Promise((resolve, reject) => {\r\n imageLoadedResolve = resolve;\r\n imageLoadedReject = reject;\r\n });\r\n\r\n img.src = url;\r\n\r\n img.onload = () => {\r\n imageLoadedResolve(img);\r\n };\r\n\r\n img.onerror = (err) => {\r\n imageLoadedReject(new ImageLoadError(err));\r\n };\r\n\r\n return imageLoadedPromise;\r\n};\r\n\r\nconst validateImageWithDimension = function (\r\n width,\r\n height,\r\n imageType,\r\n isMultimediaAd = false,\r\n imageOption = C.defaultImageOption,\r\n isMMAV2Enabled = false,\r\n isCombinedMsanAndMmaAspectRatios = false,\r\n isDisplayAds = false,\r\n isPortraitImage = false,\r\n isStoreAppProng = false,\r\n isStoreAppSpotLight = false,\r\n isStoreAppTransparentLogo = false,\r\n isUnifiedAppCampaignWindowsStore = false,\r\n isLinkedInAd = false,\r\n isPMaxAspectRatiosV2Enabled = false,\r\n isBrandKit = false\r\n) {\r\n const minimumSizeForImage =\r\n C.getMinimumSizeForImage(\r\n imageType,\r\n isMultimediaAd,\r\n imageOption,\r\n isCombinedMsanAndMmaAspectRatios,\r\n isMMAV2Enabled,\r\n isDisplayAds,\r\n isPortraitImage,\r\n false /* isBoost200x100ImageEnabled */,\r\n false /* isBoostNewAspectRatioSupportEnabled */,\r\n isStoreAppProng,\r\n isStoreAppSpotLight,\r\n isStoreAppTransparentLogo,\r\n isLinkedInAd,\r\n isUnifiedAppCampaignWindowsStore,\r\n isPMaxAspectRatiosV2Enabled,\r\n isBrandKit\r\n );\r\n\r\n if (width < minimumSizeForImage[0] ||\r\n height < minimumSizeForImage[1]) {\r\n return new ImageSizeValidationError({\r\n imageWidth: width,\r\n imageHeight: height,\r\n minWidth: minimumSizeForImage[0],\r\n minHeight: minimumSizeForImage[1],\r\n });\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst validateImageSyncAsyncWithDimensionParams = ({\r\n imageSource,\r\n minimumHeight,\r\n minimumWidth,\r\n}) => {\r\n const img = new Image();\r\n\r\n let imageLoadedResolve = null;\r\n let imageLoadedReject = null;\r\n const imageLoadedPromise = new Promise((resolve, reject) => {\r\n imageLoadedResolve = resolve;\r\n imageLoadedReject = reject;\r\n });\r\n\r\n img.src = imageSource;\r\n\r\n img.onload = () => {\r\n if (img.naturalWidth < minimumWidth ||\r\n img.naturalHeight < minimumHeight) {\r\n imageLoadedReject(new ImageSizeValidationError({\r\n imageWidth: img.naturalWidth,\r\n imageHeight: img.naturalHeight,\r\n minWidth: minimumWidth,\r\n minHeight: minimumHeight,\r\n }));\r\n } else {\r\n imageLoadedResolve();\r\n }\r\n };\r\n\r\n img.onerror = (err) => {\r\n imageLoadedReject(new ImageLoadError(err));\r\n };\r\n\r\n return imageLoadedPromise;\r\n};\r\n\r\nconst validateImageSizeAsync = function (\r\n imageSource,\r\n imageType,\r\n isMultimediaAd = false,\r\n imageOption = C.defaultImageOption,\r\n isMMAV2Enabled = false,\r\n isCombinedMsanAndMmaAspectRatios = false,\r\n isDisplayAds = false,\r\n isPortraitImage = false,\r\n isStoreAppProng = false,\r\n isStoreAppSpotLight = false,\r\n isStoreAppTransparentLogo = false,\r\n isLinkedInAd = false,\r\n isPMaxAspectRatiosV2Enabled = false,\r\n isBrandKit = false\r\n) {\r\n const minimumSize = C.getMinimumSizeForImage(imageType, isMultimediaAd, imageOption, isCombinedMsanAndMmaAspectRatios, isMMAV2Enabled, isDisplayAds, isPortraitImage, false /* isBoost200x100ImageEnabled */, false /* isBoostNewAspectRatioSupportEnabled */, isStoreAppProng, isStoreAppSpotLight, isStoreAppTransparentLogo, isLinkedInAd, false /* isUnifiedAppCampaignWindowsStore */, isPMaxAspectRatiosV2Enabled, isBrandKit);\r\n\r\n return validateImageSyncAsyncWithDimensionParams({\r\n imageSource,\r\n minimumHeight: minimumSize[1],\r\n minimumWidth: minimumSize[0],\r\n });\r\n};\r\n\r\nfunction getImageValidationErrorMessage(e, i18n, isMultiple = false, skipDimension = false) {\r\n const error = _.result(e, 'message', '');\r\n\r\n // If image failed in upscale, we also treat them as validation error.\r\n if (e instanceof ImageSizeValidationError || error === 'ImageAIUpScaleFailed') {\r\n let stringTemplateKey = isMultiple ? 'ImageExperience_MultipleUpload_SizeValidationFailTemplate' : 'ImageExperience_SizeValidationFailTemplate';\r\n if (skipDimension) {\r\n stringTemplateKey = isMultiple ? 'ImageExperience_MultipleUpload_SizeValidationFailTemplate_WithoutDimension' : 'ImageExperience_SizeValidationFailTemplate_WithoutDimension';\r\n }\r\n /* istanbul ignore else */\r\n if (e.isDueToResizing) {\r\n stringTemplateKey = skipDimension ? 'ImageExperience_SizeValidationFailTemplate_WithDetail_WithoutDimension' : 'ImageExperience_SizeValidationFailTemplate_WithDetail';\r\n }\r\n\r\n return i18n.getString(stringTemplateKey, {\r\n width: e.minWidth,\r\n height: e.minHeight,\r\n });\r\n }\r\n\r\n if (error) {\r\n return i18n.getString(`ImageExperience_Error_${error}`) || error;\r\n }\r\n return null;\r\n}\r\n\r\nfunction getMultiAddedImageErrorMessage(errors, i18n) {\r\n const uniqErrors = _.chain(errors).uniq().filter(e => _.isString(e)).value();\r\n const hasValidateError = _.some(uniqErrors, e => e.indexOf('SizeValidationError') > -1);\r\n const hasApiError = _.some(uniqErrors, e => e.indexOf('SizeValidationError') === -1);\r\n\r\n if (hasValidateError && hasApiError) {\r\n return i18n.getString('ImageExperience_Error_MixedError');\r\n } else if (hasValidateError) {\r\n return i18n.getString('ImageExperience_Error_ValidationError');\r\n } else if (hasApiError) {\r\n return i18n.getString('ImageExperience_Error_APIError');\r\n }\r\n\r\n return '';\r\n}\r\n\r\n\r\nconst validateMultipleImagesSizesAsync = ({\r\n imageSources,\r\n minimumHeight,\r\n minimumWidth,\r\n}) => {\r\n const validations = [];\r\n\r\n _.each(imageSources, (imageSource) => {\r\n validations.push(validateImageSyncAsyncWithDimensionParams({\r\n imageSource,\r\n minimumHeight,\r\n minimumWidth,\r\n }));\r\n });\r\n\r\n return Promise.all(validations);\r\n};\r\n\r\nexport {\r\n ImageSizeValidationError, ImageLoadError,\r\n validateImageSizeAsync,\r\n validateImageWithDimension,\r\n validateImageSyncAsyncWithDimensionParams,\r\n validateMultipleImagesSizesAsync,\r\n getImageValidationErrorMessage,\r\n getMultiAddedImageErrorMessage,\r\n getImageDetailAsync,\r\n};\r\n","module.exports = __webpack_public_path__ + \"static/media/estate_appraiser.9f97d39d.jpg\";","module.exports = __webpack_public_path__ + \"static/media/DiamondDotted.4ebad774.svg\";","module.exports = __webpack_public_path__ + \"static/media/no-website-icon.b5bfba22.svg\";","import _ from 'underscore';\r\n\r\nexport const SmartPageUrlSuffix = {\r\n PROD: '.biz.site',\r\n BETA: '.beta.smartpage.microsoft.com',\r\n SI: '.si.smartpage.microsoft.com',\r\n CI: '.ci.smartpage.microsoft.com',\r\n BETASI: '.betasi.smartpage.microsoft.com',\r\n};\r\n\r\n// always update here and the test copy in\r\n// private\\smart-page\\packages\\smart-page-wizard-step-website-tapi\\src\\url-suffix-helper.js\r\nconst SmartPageUrlSuffixMapping = {\r\n // prod\r\n 'ui.ads.microsoft.com': SmartPageUrlSuffix.PROD,\r\n 'ui.aks.ads.microsoft.com': SmartPageUrlSuffix.PROD,\r\n 'ui.bingads.microsoft.com': SmartPageUrlSuffix.PROD,\r\n 'ads.microsoft.com': SmartPageUrlSuffix.PROD,\r\n 'bingads.microsoft.com': SmartPageUrlSuffix.PROD,\r\n\r\n // tip\r\n 'ui.tip.ads.microsoft.com': SmartPageUrlSuffix.PROD,\r\n 'ui.aks.tip.ads.microsoft.com': SmartPageUrlSuffix.PROD,\r\n 'ui.tip.bingads.microsoft.com': SmartPageUrlSuffix.PROD,\r\n 'tip.ads.microsoft.com': SmartPageUrlSuffix.PROD,\r\n 'tip.bingads.microsoft.com': SmartPageUrlSuffix.PROD,\r\n\r\n // beta prod\r\n 'ui.beta.ads.microsoft.com': SmartPageUrlSuffix.BETA,\r\n 'ui.aks.beta.ads.microsoft.com': SmartPageUrlSuffix.BETA,\r\n 'ui.beta.bingads.microsoft.com': SmartPageUrlSuffix.BETA,\r\n 'beta.ads.microsoft.com': SmartPageUrlSuffix.BETA,\r\n 'beta.bingads.microsoft.com': SmartPageUrlSuffix.BETA,\r\n\r\n // si and proxy\r\n 'ui.ads-int.microsoft.com': SmartPageUrlSuffix.SI,\r\n // For AKS test domain\r\n 'ui.aks2.ads-int.microsoft.com': SmartPageUrlSuffix.SI,\r\n 'ui.aks3.ads-int.microsoft.com': SmartPageUrlSuffix.SI,\r\n 'app1.ui.ads-int.microsoft.com': SmartPageUrlSuffix.SI,\r\n 'ui.si.bingads.microsoft.com': SmartPageUrlSuffix.SI,\r\n 'app1.ui.si.bingads.microsoft.com': SmartPageUrlSuffix.SI,\r\n 'ads-int.microsoft.com': SmartPageUrlSuffix.SI,\r\n 'app1.ads-int.microsoft.com': SmartPageUrlSuffix.SI,\r\n 'si.bingads.microsoft.com': SmartPageUrlSuffix.SI,\r\n 'app1.si.bingads.microsoft.com': SmartPageUrlSuffix.SI,\r\n\r\n // beta si\r\n 'ui.beta.ads-int.microsoft.com': SmartPageUrlSuffix.BETASI,\r\n 'ui.beta.si.bingads.microsoft.com': SmartPageUrlSuffix.BETASI,\r\n 'beta.ads-int.microsoft.com': SmartPageUrlSuffix.BETASI,\r\n 'beta.si.bingads.microsoft.com': SmartPageUrlSuffix.BETASI,\r\n\r\n // ci and proxy\r\n 'localhost.redmond.corp.microsoft.com': SmartPageUrlSuffix.CI,\r\n 'app1.localhost.redmond.corp.microsoft.com': SmartPageUrlSuffix.CI,\r\n 'ccui.devdev.bingads.microsoft.com': SmartPageUrlSuffix.CI,\r\n\r\n // localhost\r\n localhost: SmartPageUrlSuffix.BETASI,\r\n '127.0.0.1': SmartPageUrlSuffix.BETASI,\r\n};\r\n\r\nexport function getSmartPageUrlSuffix(domain) {\r\n // do not provide default\r\n // return undefined to let it fail if a domain cannot be found in the mapping\r\n return _.result(SmartPageUrlSuffixMapping, domain.toLowerCase());\r\n}\r\n\r\nexport const getInstrumentationKeyByEnv = (domain) => {\r\n if (domain.indexOf(SmartPageUrlSuffix.PROD) >= 0 ||\r\n domain.indexOf(SmartPageUrlSuffix.BETA) >= 0) {\r\n return 'd89e7cb1-db18-4986-a90d-f4d0708ee049'; // bingadssmartpage-westus key\r\n } else if (domain.indexOf(SmartPageUrlSuffix.SI) >= 0) {\r\n return 'ac759439-be7b-48ee-8b2c-e6900773c211'; // bingadssmartpagetest-si key\r\n } else if (domain.indexOf(SmartPageUrlSuffix.BETASI) >= 0) {\r\n return '03d0714e-5f17-49bb-9b72-dc8d92486ce8'; // bingadssmartpagetest-betasi key\r\n }\r\n\r\n return '21163d5d-6e09-432d-844e-0a32087ffac1'; // bingadssmartpagetest-ci key\r\n};\r\n","module.exports = __webpack_public_path__ + \"static/media/no-website-img.b8b16bd5.svg\";","module.exports = __webpack_public_path__ + \"static/media/GoogleImport.e00abd76.svg\";","module.exports = __webpack_public_path__ + \"static/media/CircleDotted.149db90d.svg\";","module.exports = __webpack_public_path__ + \"static/media/goal-phone-img.8180e6bf.svg\";","module.exports = __webpack_public_path__ + \"static/media/www-website.a97e31b9.svg\";","module.exports = __webpack_public_path__ + \"static/media/FacebookImport.f7031b50.svg\";","module.exports = __webpack_public_path__ + \"static/media/animation.7c7b48fd.gif\";","module.exports = __webpack_public_path__ + \"static/media/attorney.07d8986a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/goal-phone.4b1a5d3c.svg\";","module.exports = __webpack_public_path__ + \"static/media/advertising-icon.2678f0dc.svg\";","module.exports = __webpack_public_path__ + \"static/media/CircleSolid.65d09796.svg\";","module.exports = __webpack_public_path__ + \"static/media/website-img.9b0785fb.svg\";","import { Promise } from 'bluebird';\r\n\r\nimport attorney from './local-images/attorney.jpg';\r\nimport consultant from './local-images/consultant.jpg';\r\nimport carDealer from './local-images/car_dealer.jpg';\r\nimport designAgency from './local-images/design_agency.jpg';\r\nimport estateAppraiser from './local-images/estate_appraiser.jpg';\r\nimport familyDoctor from './local-images/family_doctor.jpg';\r\nimport food from './local-images/food.jpg';\r\n\r\nimport mobileAttorney from './mobile-local-images/attorney.jpg';\r\nimport mobileConsultant from './mobile-local-images/consultant.jpg';\r\nimport mobileCarDealer from './mobile-local-images/car_dealer.jpg';\r\nimport mobileDesignAgency from './mobile-local-images/design_agency.jpg';\r\nimport mobileEstateAppraiser from './mobile-local-images/estate_appraiser.jpg';\r\nimport mobileFamilyDoctor from './mobile-local-images/family_doctor.jpg';\r\nimport mobileFood from './mobile-local-images/food.jpg';\r\n\r\nexport const LocalImageNames = [\r\n 'consultant.jpg',\r\n 'attorney.jpg',\r\n 'car_dealer.jpg',\r\n 'design_agency.jpg',\r\n 'estate_appraiser.jpg',\r\n 'family_doctor.jpg',\r\n 'food.jpg',\r\n];\r\n\r\nconst localImageSrcs = {\r\n attorney,\r\n consultant,\r\n car_dealer: carDealer,\r\n design_agency: designAgency,\r\n estate_appraiser: estateAppraiser,\r\n family_doctor: familyDoctor,\r\n food,\r\n\r\n mobile_attorney: mobileAttorney,\r\n mobile_consultant: mobileConsultant,\r\n mobile_car_dealer: mobileCarDealer,\r\n mobile_design_agency: mobileDesignAgency,\r\n mobile_estate_appraiser: mobileEstateAppraiser,\r\n mobile_family_doctor: mobileFamilyDoctor,\r\n mobile_food: mobileFood,\r\n};\r\n\r\nexport const DefaultLocalImageName = LocalImageNames[0];\r\n\r\nexport const loadLocalImage = (imageName, isMobile = false) => {\r\n const name = imageName.split('.')[0];\r\n\r\n const prefix = isMobile ? 'mobile_' : '';\r\n return Promise.resolve(localImageSrcs[`${prefix}${name}`]);\r\n};\r\n","module.exports = __webpack_public_path__ + \"static/media/estate_appraiser.a4d84038.jpg\";","module.exports = __webpack_public_path__ + \"static/media/website-icon.761aace0.svg\";","import _ from 'underscore';\r\nimport URI from 'urijs';\r\n\r\nexport const URL_PROTOCOL_OPTIONS = [\r\n { key: 'https', text: 'https://' },\r\n { key: 'http', text: 'http://' },\r\n];\r\n\r\nexport const DEFAULT_URL_PROTOCOL = 'https';\r\n\r\nexport const getValidProtocol = (protocol) => {\r\n const protocolOptionsKeys = _.pluck(URL_PROTOCOL_OPTIONS, 'key');\r\n return _.contains(protocolOptionsKeys, protocol) ? protocol : DEFAULT_URL_PROTOCOL;\r\n};\r\n\r\nexport const getWebsiteByParts = (website) => {\r\n const uri = new URI(website);\r\n const protocol = getValidProtocol(uri.protocol());\r\n const protocolRegex = new RegExp(`${protocol}://`, 'g');\r\n const websiteWithoutProtocol = website.replace(protocolRegex, '') || '';\r\n return { protocol, websiteWithoutProtocol };\r\n};\r\n\r\nexport const getWebsiteWithProtocol = (website, protocol) => {\r\n const { websiteWithoutProtocol } = getWebsiteByParts(website);\r\n const validProtocol = getValidProtocol(protocol);\r\n return `${validProtocol}://${websiteWithoutProtocol}`;\r\n};\r\n\r\n// By default use https as protocol\r\nexport function getUrlWithProtocol(website) {\r\n if (!website) {\r\n return '';\r\n }\r\n\r\n const site = website.trim();\r\n const uri = new URI(site);\r\n\r\n if (uri.protocol()) {\r\n return uri.toString().replace(/\\/$/g, '');\r\n }\r\n\r\n return URI(site).protocol('https').toString().replace(/\\/$/g, '');\r\n}\r\n\r\nexport function getIsWebsiteChanged(oldWebsite, newWebsite) {\r\n const formatUrl = (url) => {\r\n let newUrl = (url || '').toLowerCase().trim();\r\n if (newUrl[newUrl.length - 1] === '/') {\r\n newUrl = newUrl.substring(0, newUrl.length - 1);\r\n }\r\n return newUrl.replace(/^https?:\\/\\//, '');\r\n };\r\n\r\n const oldUrl = formatUrl(oldWebsite);\r\n const newUrl = formatUrl(newWebsite);\r\n\r\n return oldUrl !== newUrl;\r\n}\r\n","module.exports = __webpack_public_path__ + \"static/media/TriangleDownSolidSmall.97f5618d.svg\";","module.exports = __webpack_public_path__ + \"static/media/design_agency.de168d48.jpg\";","module.exports = __webpack_public_path__ + \"static/media/food.c63b095e.jpg\";","import { useContext, useCallback } from 'react';\r\nimport { notificationApi } from '@bingads-webui-react/notification-center';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\n\r\nconst FLOATING_BANNER_ID = 'floatingBannerId';\r\nconst DEFAULT_ERROR = _TL_('An unidentified error has occurred. Please try again later.');\r\nconst ERROR_MAPPING = {};\r\n\r\nexport function useFloatingBannerApi(errorMapping = ERROR_MAPPING) {\r\n const i18n = useContext(I18nContext);\r\n\r\n const showWarning = useCallback((error) => {\r\n const errorCode = error && (error.Code || error.Error);\r\n const errorMessage = errorMapping[errorCode] || DEFAULT_ERROR;\r\n notificationApi.showWarning(i18n.getString(errorMessage));\r\n }, [errorMapping, i18n]);\r\n\r\n const showInfo = useCallback((error) => {\r\n const errorCode = error && (error.Code || error.Error);\r\n const errorMessage = errorMapping[errorCode] || DEFAULT_ERROR;\r\n notificationApi.showInfo(i18n.getString(errorMessage));\r\n }, [errorMapping, i18n]);\r\n\r\n const showWarningMessage = useCallback((warningMsg, obj = {}) => {\r\n notificationApi.showWarning(i18n.getString(warningMsg, obj));\r\n }, [i18n]);\r\n\r\n const showInfoMessage = useCallback((infoMsg, obj = {}) => {\r\n notificationApi.showInfo(i18n.getString(infoMsg, obj));\r\n }, [i18n]);\r\n\r\n const showCustomizedWarning = useCallback((warningObj) => {\r\n notificationApi.showWarning(warningObj);\r\n }, []);\r\n\r\n const showCustomizedInfo = useCallback((infoObj) => {\r\n notificationApi.showInfo(infoObj);\r\n }, []);\r\n\r\n const dismissFloatingBanner = useCallback((id) => {\r\n notificationApi.dismiss(id || FLOATING_BANNER_ID);\r\n }, []);\r\n\r\n return {\r\n showWarning,\r\n showInfo,\r\n showWarningMessage,\r\n showInfoMessage,\r\n showCustomizedWarning,\r\n showCustomizedInfo,\r\n dismissFloatingBanner,\r\n };\r\n}\r\n","module.exports = __webpack_public_path__ + \"static/media/RebrandingFacebookImport.79ad702a.svg\";","import _ from 'underscore';\r\nimport React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { serverContextProps } from './server-context-props';\r\n\r\nexport const ServerContext = React.createContext();\r\n\r\nexport const withServerContext = WrappedComponent => (\r\n props => (\r\n \r\n {(serverContext =>\r\n ())}\r\n \r\n )\r\n);\r\n\r\nexport const ServerContextAction = React.createContext(_.noop);\r\n\r\nexport const ServerContextWithActionProvider = (props) => {\r\n const {\r\n context,\r\n children,\r\n } = props;\r\n\r\n const [serverContext, setServerContext] = useState(context);\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nServerContextWithActionProvider.propTypes = {\r\n context: serverContextProps.isRequired,\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n};\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const legacyServerContextProps = 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: 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 })).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 serverContextProps = 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: PropTypes.objectOf(PropTypes.bool),\r\n});\r\n","import _ from 'underscore';\r\n\r\nconst convertAccountMode = accountMode => (_.isFinite(accountMode) ? Number(accountMode) : null);\r\n\r\n/**\r\n * Convert a legacy ServerContext from CCUI server\r\n * to a new ServerContext that modern bundle uses\r\n * @param {Object} context - legacy server context\r\n * @returns {Object} - new server context\r\n */\r\nexport const convertLegacyContext = ({\r\n CurrentCustomer,\r\n CurrentAccount,\r\n CurrentUser,\r\n ...rest\r\n}) => ({\r\n ...rest,\r\n CurrentAccount: CurrentAccount ? {\r\n Id: Number(CurrentAccount.AccountId),\r\n AccountNumber: CurrentAccount.AccountNumber,\r\n AccountMode: convertAccountMode(CurrentAccount.AccountMode),\r\n AdvertiserCustomerID: Number(CurrentAccount.AdvertiserCustomerId),\r\n CountryCode: CurrentAccount.CountryCode,\r\n CurrencyCode: CurrentAccount.CurrencyType,\r\n Name: CurrentCustomer.CustomerName,\r\n Number: CurrentAccount.AccountNumber,\r\n } : null,\r\n CurrentCustomer: CurrentCustomer ? {\r\n Id: Number(CurrentCustomer.CustomerId),\r\n Name: CurrentCustomer.CustomerName,\r\n AppScope: Number(CurrentCustomer.AppScope),\r\n } : null,\r\n CurrentUser: CurrentUser ? {\r\n Id: Number(CurrentUser.UserId),\r\n Email: CurrentUser.Email,\r\n Market: CurrentUser.CustomerMarket,\r\n Name: CurrentUser.UserName,\r\n LocaleID: CurrentUser.Lcid,\r\n IsInternal: rest.IsInternal,\r\n } : null,\r\n});\r\n","import _ from 'underscore';\r\nimport { useContext, useCallback } from 'react';\r\n\r\nimport { convertLegacyContext } from './convert-legacy-context';\r\nimport { ServerContextAction, ServerContext } from './server-context';\r\n\r\n// This updateServerContextFn should be used for the response from user creation API CustomerAccountUserSignup\r\nexport function useUpdateServerContext() {\r\n const serverContext = useContext(ServerContext);\r\n const setServerContext = useContext(ServerContextAction);\r\n\r\n const isValidServerContext = useCallback((response) => {\r\n const isValid = response && response.CurrentAccount && response.CurrentAccount.AccountId\r\n && response.CurrentCustomer && response.CurrentCustomer.CustomerId\r\n && response.CurrentUser && response.CurrentUser.UserId\r\n && response.Token;\r\n return !!isValid;\r\n }, []);\r\n\r\n const updateServerContextFn = useCallback((response, logActivity, overrideProperties = {}) => {\r\n if (!isValidServerContext(response) && logActivity && _.functions(logActivity.error)) {\r\n logActivity.error(`Invalid server context response. response: ${JSON.stringify(_.pick(response, 'CurrentAccount', 'CurrentCustomer', 'CurrentUser', 'Token'))}`);\r\n }\r\n\r\n const newContext = convertLegacyContext(response);\r\n const context = {\r\n ...serverContext,\r\n ...newContext,\r\n ...overrideProperties,\r\n };\r\n\r\n setServerContext(context);\r\n if (_.isFunction(_.get(logActivity, 'trace'))) {\r\n logActivity.trace(`delta newContext: ${JSON.stringify(newContext)}`);\r\n }\r\n\r\n if (window.seleniumTestContext) {\r\n window.seleniumTestContext = {\r\n Token: context.Token,\r\n CustomerId: context.CurrentCustomer.Id,\r\n AccountId: context.CurrentAccount.Id,\r\n AdvertiserCustomerId: context.CurrentAccount.AdvertiserCustomerID,\r\n };\r\n }\r\n return context;\r\n }, [isValidServerContext, serverContext, setServerContext]);\r\n\r\n return updateServerContextFn;\r\n}\r\n","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/NewCampaign.36862996.svg\";","module.exports = __webpack_public_path__ + \"static/media/food.77ffe5f5.jpg\";","import NewCampaign from '../../media/NewCampaign.svg';\r\nimport GoogleImport from '../../media/GoogleImport.svg';\r\nimport FacebookImport from '../../media/FacebookImport.svg';\r\nimport RebrandingNewCampaign from '../../media/RebrandingNewCampaign.svg';\r\nimport RebrandingGoogleImport from '../../media/RebrandingGoogleImport.svg';\r\nimport RebrandingFacebookImport from '../../media/RebrandingFacebookImport.svg';\r\n\r\nexport const CampaignCreationMethod = {\r\n NEW_CAMPAIGN: 'NEW_CAMPAIGN',\r\n GOOGLE_IMPORT: 'GOOGLE_IMPORT',\r\n FACEBOOK_IMPORT: 'FACEBOOK_IMPORT',\r\n};\r\n\r\nexport function getCampaignCreationMethod(disableImports, isVertical, isRebranding, isHideImports) {\r\n if (isHideImports) {\r\n return [{\r\n method: CampaignCreationMethod.NEW_CAMPAIGN,\r\n imageSrc: isRebranding ? RebrandingNewCampaign : NewCampaign,\r\n content: _TL_('Create account'),\r\n forceContentInTwoLines: false,\r\n alt: _TL_('Create account'),\r\n label: _TL_('Option of create new account'),\r\n disabled: false,\r\n }];\r\n }\r\n\r\n return [{\r\n method: CampaignCreationMethod.NEW_CAMPAIGN,\r\n imageSrc: isRebranding ? RebrandingNewCampaign : NewCampaign,\r\n content: _TL_('Create account'),\r\n forceContentInTwoLines: false,\r\n alt: _TL_('Create account'),\r\n label: _TL_('Option of create new account'),\r\n disabled: false,\r\n }, {\r\n method: CampaignCreationMethod.GOOGLE_IMPORT,\r\n imageSrc: isRebranding ? RebrandingGoogleImport : GoogleImport,\r\n content: _TL_('Import from Google Ads'),\r\n forceContentInTwoLines: !isVertical,\r\n alt: _TL_('Import from Google Ads'),\r\n label: _TL_('Option of import from Google Ads'),\r\n disabled: disableImports,\r\n disableText: _TL_('This option is only available on desktop'),\r\n }, {\r\n method: CampaignCreationMethod.FACEBOOK_IMPORT,\r\n imageSrc: isRebranding ? RebrandingFacebookImport : FacebookImport,\r\n content: _TL_('Import from Meta Ads'),\r\n forceContentInTwoLines: !isVertical,\r\n alt: _TL_('Import from Meta Ads'),\r\n label: _TL_('Option of import from Meta Ads'),\r\n disabled: disableImports,\r\n disableText: _TL_('This option is only available on desktop'),\r\n }];\r\n}\r\n","export const getCampaignCreationMethodItemStyles = (_, { palette = {} }) => ({\r\n itemContainer: {\r\n width: 176,\r\n height: 197,\r\n background: palette.white,\r\n boxShadow: '0px 1.6px 3.6px rgba(0, 0, 0, 0.132), 0px 0.3px 0.9px rgba(0, 0, 0, 0.108)',\r\n borderRadius: 4,\r\n border: '2px solid',\r\n borderColor: 'transparent',\r\n cursor: 'pointer',\r\n textAlign: 'center',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n '&:hover, &:focus': {\r\n borderColor: '#0078D4',\r\n },\r\n },\r\n verticalItemContainer: {\r\n width: 280,\r\n height: 200,\r\n justifyContent: 'center',\r\n },\r\n selectedItemContainer: {\r\n borderColor: '#0078D4',\r\n },\r\n disabledItemContainer: {\r\n background: '#F0F0F0',\r\n '&:hover, &:focus': {\r\n borderColor: 'transparent',\r\n },\r\n },\r\n imageContainerStyle: {\r\n width: '100%',\r\n paddingTop: 29,\r\n paddingBottom: 18,\r\n height: 136,\r\n '& img': {\r\n width: 'auto',\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n },\r\n },\r\n verticalImageContainer: {\r\n paddingTop: 12,\r\n paddingBottom: 12,\r\n height: 120,\r\n },\r\n content: {\r\n display: 'block',\r\n paddingLeft: 3,\r\n color: palette.neutralPrimary,\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n fontWeight: 600,\r\n },\r\n contentInTwoLines: {\r\n marginLeft: 25,\r\n marginRight: 25,\r\n },\r\n disableText: {\r\n color: palette.red,\r\n fontSize: 12,\r\n marginTop: 8,\r\n maxWidth: 140,\r\n },\r\n});\r\n\r\nexport const CampaignCreationMethodSelectionStyles = {\r\n itemContainerTokens: {\r\n childrenGap: '24px',\r\n },\r\n itemContainerVerticalTokens: {\r\n childrenGap: '16px',\r\n },\r\n};\r\n","/* eslint-disable jsx-a11y/role-has-required-aria-props */\r\nimport React, { useCallback, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { Image, ImageFit, Text } from '@fluentui/react';\r\nimport { submitEvent } from '@bingads-webui-universal/accessibility-helper';\r\n\r\nimport { getCampaignCreationMethodItemStyles } from '../styles/campaign-creation-method-item-styles';\r\n\r\nexport function CampaignCreationMethodItem(props) {\r\n const {\r\n i18n,\r\n itemIndex,\r\n onMethodItemClick,\r\n shouldForceContentInTwoLines,\r\n method,\r\n imageSrc,\r\n content,\r\n alt,\r\n label,\r\n isVertical,\r\n disabled,\r\n disableText,\r\n selected,\r\n } = props;\r\n\r\n const classes = useDefaultStyles(getCampaignCreationMethodItemStyles);\r\n\r\n const onClickItem = useCallback(() => {\r\n onMethodItemClick(method);\r\n }, [method, onMethodItemClick]);\r\n\r\n const itemProps = useMemo(() => {\r\n if (disabled) {\r\n return {\r\n 'aria-disabled': true,\r\n };\r\n }\r\n return {\r\n 'data-is-focusable': true,\r\n 'data-selection-invoke': true,\r\n 'data-selection-index': itemIndex,\r\n tabIndex: 0,\r\n role: 'option',\r\n onClick: onClickItem,\r\n onKeyDown: submitEvent(onClickItem),\r\n };\r\n }, [disabled, itemIndex, onClickItem]);\r\n\r\n return (\r\n \r\n \r\n \r\n {i18n.getString(content)}\r\n \r\n {disabled && disableText && isVertical &&\r\n
\r\n {i18n.getString(disableText)}\r\n
\r\n }\r\n \r\n );\r\n}\r\n\r\nCampaignCreationMethodItem.propTypes = {\r\n i18n: PropTypes.shape({ getString: PropTypes.func.isRequired }).isRequired,\r\n itemIndex: PropTypes.number.isRequired,\r\n onMethodItemClick: PropTypes.func.isRequired,\r\n\r\n method: PropTypes.string.isRequired,\r\n imageSrc: PropTypes.string.isRequired,\r\n content: PropTypes.string.isRequired,\r\n alt: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n\r\n shouldForceContentInTwoLines: PropTypes.bool,\r\n isVertical: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n disableText: PropTypes.string,\r\n selected: PropTypes.bool,\r\n};\r\n\r\nCampaignCreationMethodItem.defaultProps = {\r\n shouldForceContentInTwoLines: false,\r\n isVertical: false,\r\n disabled: false,\r\n disableText: '',\r\n selected: false,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useCallback, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Stack } from '@fluentui/react';\r\n\r\nimport { getCampaignCreationMethod, CampaignCreationMethod } from './components/campaign-creation-method-constants';\r\nimport { CampaignCreationMethodSelectionStyles } from './styles/campaign-creation-method-item-styles';\r\nimport { CampaignCreationMethodItem } from './components/campaign-creation-method-item';\r\n\r\nexport function CampaignCreationMethodSelection(props) {\r\n const {\r\n i18n,\r\n\r\n onClickCreateNewCampaign,\r\n onClickGoogleImport,\r\n onClickFacebookImport,\r\n\r\n isVertical,\r\n disableImports,\r\n isRebranding,\r\n isHideImports,\r\n\r\n selectedItem,\r\n hiddenMethod,\r\n } = props;\r\n\r\n const campaignCreationMethods = useMemo(\r\n () => getCampaignCreationMethod(disableImports, isVertical, isRebranding, isHideImports).filter(item => hiddenMethod.indexOf(item.method) === -1),\r\n [disableImports, isVertical, isRebranding, isHideImports, hiddenMethod]\r\n );\r\n const onMethodItemClick = useCallback((selection) => {\r\n if (selection === CampaignCreationMethod.GOOGLE_IMPORT) {\r\n onClickGoogleImport();\r\n } else if (selection === CampaignCreationMethod.FACEBOOK_IMPORT) {\r\n onClickFacebookImport();\r\n } else {\r\n onClickCreateNewCampaign();\r\n }\r\n }, [onClickCreateNewCampaign, onClickFacebookImport, onClickGoogleImport]);\r\n\r\n const renderSelectionItem = useMemo(() => _.map(campaignCreationMethods, (item, itemIndex) => (\r\n \r\n )), [campaignCreationMethods, i18n, isVertical, onMethodItemClick, selectedItem]);\r\n\r\n return (\r\n
\r\n \r\n {renderSelectionItem}\r\n \r\n
\r\n );\r\n}\r\n\r\nCampaignCreationMethodSelection.propTypes = {\r\n i18n: PropTypes.shape({ getString: PropTypes.func.isRequired }),\r\n\r\n onClickCreateNewCampaign: PropTypes.func.isRequired,\r\n onClickGoogleImport: PropTypes.func.isRequired,\r\n onClickFacebookImport: PropTypes.func.isRequired,\r\n\r\n isVertical: PropTypes.bool,\r\n disableImports: PropTypes.bool,\r\n isRebranding: PropTypes.bool,\r\n isHideImports: PropTypes.bool,\r\n\r\n selectedItem: PropTypes.string,\r\n hiddenMethod: PropTypes.arrayOf(PropTypes.string),\r\n};\r\n\r\nCampaignCreationMethodSelection.defaultProps = {\r\n i18n: { getString: value => value },\r\n isVertical: false,\r\n disableImports: false,\r\n isRebranding: false,\r\n isHideImports: false,\r\n selectedItem: '',\r\n hiddenMethod: [],\r\n};\r\n","export const getStyles = () => ({\r\n error: { color: '#a80000', marginTop: '8px' },\r\n});\r\n\r\nexport const getTileHeaderStyles = () => ({\r\n tileHeader: {\r\n display: 'flex',\r\n flexFlow: 'column',\r\n alignItems: 'center',\r\n width: '530px',\r\n },\r\n headerTitle: {\r\n textAlign: 'center',\r\n marginTop: '4px',\r\n marginBottom: '8px',\r\n },\r\n // size s classes\r\n 'tileHeader-s': { width: '283px' },\r\n 'headerTitle-s': { fontSize: '18px' },\r\n\r\n // size m classes\r\n 'tileHeader-m': { width: '382px' },\r\n\r\n // size l classes\r\n 'tileHeader-l': { width: '552px' },\r\n});\r\n\r\nexport const getTileStyles = (_, { palette = {} }) => ({\r\n tile: {\r\n width: '700px',\r\n display: 'flex',\r\n flexFlow: 'column',\r\n alignItems: 'center',\r\n padding: '30px 0',\r\n background: palette.white,\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 borderRadius: '2px',\r\n },\r\n navigationButtons: {\r\n marginTop: '24px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n // size s classes\r\n 'tile-s': { width: '321px' },\r\n\r\n // size m classes\r\n 'tile-m': { width: '424px' },\r\n\r\n // size l classes\r\n 'tile-l': { width: '618px' },\r\n});\r\n\r\nexport const tileStyles = {\r\n image: { root: { marginBottom: '8px', height: 45 } },\r\n back: { root: { marginRight: '28px', color: '#1375DC' } },\r\n};\r\n","import React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { Image, Text } from '@fluentui/react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport goalWebsiteImg from '../media/advertising-icon.svg';\r\nimport { getTileHeaderStyles, tileStyles } from './styles';\r\n\r\nexport function TileHeader(props) {\r\n const {\r\n id,\r\n title,\r\n subtitle,\r\n displayMode,\r\n hideIcon,\r\n } = props;\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getTileHeaderStyles);\r\n\r\n return (\r\n
\r\n { !hideIcon &&\r\n \r\n }\r\n \r\n {title}\r\n \r\n {subtitle}\r\n
\r\n );\r\n}\r\n\r\nTileHeader.propTypes = {\r\n id: PropTypes.string,\r\n title: PropTypes.string.isRequired,\r\n subtitle: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),\r\n displayMode: PropTypes.string,\r\n hideIcon: PropTypes.bool,\r\n};\r\n\r\nTileHeader.defaultProps = {\r\n id: '',\r\n subtitle: null,\r\n displayMode: '',\r\n hideIcon: false,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { PrimaryButton, ActionButton } from '@fluentui/react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { TileHeader } from './tile-header';\r\nimport { getTileStyles as getStyles, tileStyles } from './styles';\r\n\r\nexport function Tile(props) {\r\n const {\r\n children,\r\n title,\r\n subtitle,\r\n onBack,\r\n onNext,\r\n backBtnText,\r\n nextBtnText,\r\n displayMode,\r\n } = props;\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n return (\r\n
\r\n \r\n {children}\r\n {\r\n (_.isFunction(onBack) || _.isFunction(onNext)) &&\r\n
\r\n {_.isFunction(onBack) &&\r\n \r\n {backBtnText || i18n.getString(_TL_('Back'))}\r\n \r\n }\r\n \r\n {nextBtnText || i18n.getString(_TL_('Next'))}\r\n \r\n
\r\n }\r\n
\r\n );\r\n}\r\n\r\nTile.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n title: PropTypes.string.isRequired,\r\n subtitle: PropTypes.node.isRequired,\r\n onBack: PropTypes.func,\r\n onNext: PropTypes.func,\r\n backBtnText: PropTypes.string,\r\n nextBtnText: PropTypes.string,\r\n displayMode: PropTypes.string,\r\n};\r\n\r\nTile.defaultProps = {\r\n onBack: undefined,\r\n onNext: undefined,\r\n backBtnText: '',\r\n nextBtnText: '',\r\n displayMode: '',\r\n};\r\n","\r\nimport goalWebsiteIcon from '../../media/goal-website.svg';\r\nimport goalPhoneIcon from '../../media/goal-phone.svg';\r\nimport goalLocationIcon from '../../media/goal-location.svg';\r\nimport goalWebsiteImg from '../../media/goal-website-img.svg';\r\nimport goalPhoneImg from '../../media/goal-phone-img.svg';\r\nimport goalLocationImg from '../../media/goal-location-img.svg';\r\nimport goalSelectedImg from '../../media/checkmark.svg';\r\n\r\nexport const Goals = {\r\n IncreaseWebsiteVisit: {\r\n value: 'IncreaseWebsiteVisit',\r\n title: _TL_('Visits to my website'),\r\n isRecommended: true,\r\n },\r\n IncreaseCallToBusiness: {\r\n value: 'IncreaseCallToBusiness',\r\n title: _TL_('Phone calls to my business'),\r\n isRecommended: false,\r\n },\r\n IncreaseBusinessLocationVisit: {\r\n value: 'IncreaseBusinessLocationVisit',\r\n title: _TL_('Visits to my physical business locations'),\r\n isRecommended: false,\r\n },\r\n};\r\n\r\nexport const getStepGoalOptionsImages = isShowIcon => ({\r\n IncreaseWebsiteVisit: {\r\n imageSrc: isShowIcon? goalWebsiteIcon : goalWebsiteImg,\r\n alt: _TL_('increase website visits icon'),\r\n },\r\n IncreaseCallToBusiness: {\r\n imageSrc: isShowIcon ? goalPhoneIcon: goalPhoneImg,\r\n alt: _TL_('increase phone calls icon'),\r\n },\r\n IncreaseBusinessLocationVisit: {\r\n imageSrc: isShowIcon? goalLocationIcon: goalLocationImg,\r\n alt: _TL_('increase location visits icon'),\r\n },\r\n GoalSelected: {\r\n imageSrc: goalSelectedImg,\r\n alt: _TL_('goal selected icon'),\r\n },\r\n});\r\n\r\nexport const campaignGoals = ['IncreaseWebsiteVisit', 'IncreaseCallToBusiness', 'IncreaseBusinessLocationVisit'];\r\n","export const getStyles = (_, { palette = {} }) => ({\r\n campaignGoalItemContainer: {\r\n width: 176,\r\n height: 160,\r\n background: palette.white,\r\n position: 'relative',\r\n paddingLeft: 15,\r\n paddingRight: 15,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n borderRadius: '2px',\r\n boxShadow: '0px 0.6px 1.8px rgba(0, 0, 0, 0.1), 0px 3.2px 7.2px rgba(0, 0, 0, 0.13)',\r\n '@media screen and (-ms-high-contrast: active)': {\r\n '&:focus': {\r\n border: `1px solid ${palette.white}`,\r\n },\r\n outline: '1px solid windowText !important',\r\n '&.is-selected': {\r\n outlineColor: 'highlight !important',\r\n },\r\n },\r\n '& .non-hover-check-icon': {\r\n display: 'inline-block',\r\n },\r\n '& .hovered-check-icon': {\r\n display: 'none',\r\n },\r\n '&:hover': {\r\n boxShadow: '0px 1.2px 3.6px rgba(0, 0, 0, 0.1), 0px 6.4px 14.4px rgba(0, 0, 0, 0.13)',\r\n cursor: 'pointer',\r\n },\r\n '&:focus': {\r\n outline: `2px solid ${palette.neutralSecondary}`,\r\n },\r\n '&:focus:hover': {\r\n outline: `3px solid ${palette.neutralSecondary}`,\r\n\r\n },\r\n '&:hover, &:focus': {\r\n '& .non-hover-check-icon': {\r\n display: 'none',\r\n },\r\n '& .hovered-check-icon': {\r\n display: 'inline-block',\r\n },\r\n },\r\n '&.is-selected': {\r\n outline: `1px solid ${palette.themePrimary}`,\r\n backgroundColor: palette.themeLighterAlt,\r\n '&:hover': {\r\n backgroundColor: palette.themeLighter,\r\n outline: `1px solid ${palette.themeDark}`,\r\n },\r\n '&:focus': {\r\n outline: `3px solid ${palette.themeDark}`,\r\n },\r\n },\r\n },\r\n campaignGoalItemContainerWithIcon: {\r\n paddingTop: 44,\r\n },\r\n campaignGoalItemContainerWithoutIcon: {\r\n paddingTop: 10,\r\n },\r\n goalTitle: {\r\n fontSize: 14,\r\n color: palette.black,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n },\r\n goalDescription: {\r\n fontSize: 14,\r\n color: palette.neutralPrimary,\r\n },\r\n image: {\r\n minHeight: '32px',\r\n },\r\n iconImage: {\r\n marginBottom: '16px',\r\n },\r\n nonIconImage: {\r\n width: 120,\r\n height: 108,\r\n marginBottom: -20,\r\n },\r\n checkIcon: {\r\n width: '20px',\r\n height: '20px',\r\n alignSelf: 'auto',\r\n position: 'absolute',\r\n top: 10,\r\n right: 10,\r\n },\r\n checkIconHightLight: {\r\n color: palette.blue,\r\n },\r\n checkIconNonHightLight: {\r\n color: palette.neutralTertiaryAlt,\r\n },\r\n checkIconUncheckHover: {\r\n color: palette.neutralSecondary,\r\n },\r\n});\r\n","/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\r\nimport _ from 'underscore';\r\nimport React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { Image, ImageFit, Icon } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { Goals, getStepGoalOptionsImages } from './consts';\r\n\r\nimport { getStyles } from './styles';\r\n\r\nexport function GoalItem(props) {\r\n const {\r\n i18n,\r\n id,\r\n itemIndex,\r\n selectedCampaignGoals,\r\n isShowIcon,\r\n } = props;\r\n\r\n const classes = useDefaultStyles(getStyles);\r\n const campaignGoal = useMemo(() => Goals[id], [id]);\r\n const isSelected = useMemo(() => _.contains(selectedCampaignGoals, id), [id, selectedCampaignGoals]);\r\n const stepGoalOptionsImages = useMemo(() => getStepGoalOptionsImages(isShowIcon), [isShowIcon]);\r\n const goalImage = useMemo(() => (\r\n isSelected && isShowIcon ? stepGoalOptionsImages.GoalSelected : stepGoalOptionsImages[id]\r\n ), [id, isSelected, isShowIcon, stepGoalOptionsImages]);\r\n\r\n return (\r\n \r\n \r\n {\r\n !isShowIcon &&\r\n \r\n }\r\n\r\n {\r\n !isShowIcon && !isSelected &&\r\n \r\n }\r\n\r\n
\r\n {i18n.getString(campaignGoal.title)}\r\n
\r\n {\r\n campaignGoal.isRecommended &&\r\n
\r\n {i18n.getString(_TL_('(recommended)'))}\r\n
\r\n }\r\n \r\n );\r\n}\r\n\r\nGoalItem.propTypes = {\r\n i18n: PropTypes.shape({ getString: PropTypes.func.isRequired }).isRequired,\r\n id: PropTypes.string.isRequired,\r\n itemIndex: PropTypes.number.isRequired,\r\n selectedCampaignGoals: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n isShowIcon: PropTypes.bool.isRequired,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useMemo, useContext, useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { SelectionZone, Selection, SelectionMode, Stack } from '@fluentui/react';\r\n\r\nimport { GoalItem } from './goal-item';\r\nimport { campaignGoals } from './consts';\r\n\r\nexport function GoalSelection(props) {\r\n const i18n = useContext(I18nContext);\r\n\r\n const {\r\n selectedCampaignGoals,\r\n onCampaignGoalSelectionChange,\r\n multiSelect,\r\n isShowIcon,\r\n } = props;\r\n\r\n const selection = useMemo(() => new Selection({\r\n canSelectItem: () => true,\r\n getKey: item => item,\r\n selectionMode: multiSelect ? SelectionMode.multiple : SelectionMode.single,\r\n items: campaignGoals,\r\n onSelectionChanged: () => {\r\n onCampaignGoalSelectionChange(selection.getSelection());\r\n },\r\n }), [onCampaignGoalSelectionChange, multiSelect]);\r\n\r\n const changeGoalSelection = useCallback((item) => {\r\n const selectedValue = !selection.isKeySelected(item);\r\n selection.setKeySelected(item, selectedValue, true);\r\n }, [selection]);\r\n\r\n useEffect(() => {\r\n if (selection && !_.isEmpty(selectedCampaignGoals)) {\r\n _.each(selectedCampaignGoals, (item) => {\r\n selection.setKeySelected(item, true, true);\r\n });\r\n }\r\n }, [selection, selectedCampaignGoals]);\r\n\r\n return (\r\n
\r\n \r\n \r\n {_.map(campaignGoals, (campaignGoal, index) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nGoalSelection.propTypes = {\r\n selectedCampaignGoals: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n onCampaignGoalSelectionChange: PropTypes.func.isRequired,\r\n isShowIcon: PropTypes.bool.isRequired,\r\n multiSelect: PropTypes.bool,\r\n};\r\n\r\nGoalSelection.defaultProps = {\r\n multiSelect: true,\r\n};\r\n","export const getWebsiteAndBusinessStyles = () => ({\r\n container: {\r\n width: '440px',\r\n marginTop: '30px',\r\n '& .error': { color: '#a80000' },\r\n },\r\n businessName: { maxWidth: '440px' },\r\n});\r\n\r\nexport const websiteAndBusinessStyles = {\r\n title: { root: { fontWeight: 600, marginBottom: '5px', textAlign: 'center' } },\r\n titleWithMargin: { root: { fontWeight: 600, marginBottom: '5px', marginTop: '16px' } },\r\n website: { maxWidth: '440px' },\r\n};\r\n\r\nexport const getWebsiteAndSmartPagesStyles = () => ({\r\n container: {\r\n width: '100%',\r\n maxWidth: 400,\r\n marginTop: '30px',\r\n display: 'flex',\r\n flexFlow: 'column',\r\n '& .error': { color: '#a80000' },\r\n },\r\n websiteItemContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n marginBottom: 18,\r\n },\r\n selectedOptionContainer: {\r\n borderColor: 'transparent',\r\n boxShadow: '0px 1.6px 3.6px rgba(0, 0, 0, 0.132), 0px 0.3px 0.9px rgba(0, 0, 0, 0.108)',\r\n padding: '20px',\r\n },\r\n smartPageErrors: {\r\n paddingTop: '5px',\r\n },\r\n});\r\n\r\nconst websiteItemMarginRight = '16px';\r\n\r\nexport const websiteAndSmartPagesStyles = {\r\n websiteInput: { maxWidth: '320px', marginTop: '8px' },\r\n title: { root: { fontWeight: 600 } },\r\n link: { root: { fontWeight: 400 } },\r\n};\r\n\r\nexport const getWebsiteItemStyles = () => ({\r\n item: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexFlow: 'column',\r\n width: `calc((100% - ${websiteItemMarginRight}) / 2)`,\r\n backgroundColor: '#fff !important',\r\n border: '2px solid',\r\n position: 'relative',\r\n },\r\n itemContainerRebranding: {\r\n '& .ms-Image-image': {\r\n marginTop: '20px',\r\n },\r\n },\r\n itemContainerWithIcon: {\r\n padding: '34px 20px 20px',\r\n },\r\n itemContainerWithoutIcon: {\r\n padding: '0px 20px 20px',\r\n },\r\n optionSelected: {\r\n borderColor: '#0078D4',\r\n },\r\n optionNotSelected: {\r\n borderColor: 'transparent',\r\n boxShadow: '0px 1.6px 3.6px rgba(0, 0, 0, 0.132), 0px 0.3px 0.9px rgba(0, 0, 0, 0.108)',\r\n },\r\n imgContainer: {\r\n marginBottom: '-25px',\r\n height: '126px',\r\n },\r\n icon: {\r\n color: '#0078D4',\r\n fontSize: '20px',\r\n position: 'absolute',\r\n top: '9px',\r\n right: '14px',\r\n },\r\n iconNotSelected: {\r\n color: '#323130',\r\n fontSize: '20px',\r\n position: 'absolute',\r\n top: '9px',\r\n right: '14px',\r\n },\r\n});\r\n\r\nexport const websiteItemStyles = {\r\n title: { root: { fontWeight: 600 } },\r\n image: { root: { marginBottom: 10 } },\r\n};\r\n\r\nexport const getWebsiteInputStyles = () => ({\r\n websiteInputContainer: {\r\n display: 'flex',\r\n flexFlow: 'column',\r\n alignItems: 'start',\r\n width: '100%',\r\n },\r\n});\r\n","import websiteIcon from '../../media/website-icon.svg';\r\nimport noWebsiteIcon from '../../media/no-website-icon.svg';\r\nimport websiteImg from '../../media/website-img.svg';\r\nimport noWebsiteImg from '../../media/no-website-img.svg';\r\nimport wwwImage from '../../media/www-website.svg';\r\nimport rebrandingWebsiteImg from '../../media/rebranding-website-img.svg';\r\nimport rebrandingNoWebsiteImg from '../../media/rebranding-no-website-img.svg';\r\n\r\nexport const businessNameValidationErrors = {\r\n required: _TL_('Field must not be empty'),\r\n type: _TL_('Invalid Character'),\r\n maxLength: _TL_('Maximum length exceeded'),\r\n minLength: _TL_('Minimum length not met'),\r\n};\r\n\r\nexport const websiteValidationErrors = {\r\n required: _TL_('Business website is required'),\r\n maxLength: _TL_('Business website exceeds the maximum allowed length'),\r\n pattern: _TL_('Enter a valid business website'),\r\n};\r\n\r\nexport const OPTIONS = {\r\n SIGNUP_EXISTING_WEBSITE: 'existing-website',\r\n SIGNUP_SMART_PAGES: 'smart-pages',\r\n USE_MY_WEBSITE: 'use-my-website',\r\n USE_SMART_PAGES: 'use-smart-pages',\r\n};\r\n\r\nexport const optionTitles = {\r\n [OPTIONS.SIGNUP_EXISTING_WEBSITE]: _TL_('I have a website'),\r\n [OPTIONS.SIGNUP_SMART_PAGES]: _TL_('I don\\'t have a website'),\r\n [OPTIONS.USE_MY_WEBSITE]: _TL_('Use my website'),\r\n [OPTIONS.USE_SMART_PAGES]: _TL_('Use my Smart Pages'),\r\n};\r\n\r\nexport const getOptionImages = (isShowIcon, isRebranding) => {\r\n let signupWebsiteImg = isShowIcon ? websiteIcon : websiteImg;\r\n let signupNoWebsiteImg = isShowIcon ? noWebsiteIcon : noWebsiteImg;\r\n if (isRebranding) {\r\n signupWebsiteImg = rebrandingWebsiteImg;\r\n signupNoWebsiteImg = rebrandingNoWebsiteImg;\r\n }\r\n return {\r\n [OPTIONS.SIGNUP_EXISTING_WEBSITE]: {\r\n imageSrc: signupWebsiteImg,\r\n alt: _TL_('website icon'),\r\n },\r\n [OPTIONS.SIGNUP_SMART_PAGES]: {\r\n imageSrc: signupNoWebsiteImg,\r\n alt: _TL_('no website icon'),\r\n },\r\n [OPTIONS.USE_MY_WEBSITE]: {\r\n imageSrc: websiteImg,\r\n alt: _TL_('website icon'),\r\n },\r\n [OPTIONS.USE_SMART_PAGES]: {\r\n imageSrc: wwwImage,\r\n alt: _TL_('www website icon'),\r\n },\r\n };\r\n};\r\n\r\nexport const selectedText = {\r\n [OPTIONS.SIGNUP_SMART_PAGES]: _TL_('No worries, you can use Microsoft Smart Pages to create a free webpage.'),\r\n [OPTIONS.USE_SMART_PAGES]: _TL_('Use my website created using Microsoft Smart Pages.'),\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Input } from '@bingads-webui-react/primitive-validation';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getWebsiteInputStyles as getStyles } from './styles';\r\n\r\nimport { websiteValidationErrors } from './consts';\r\n\r\nexport const WebsiteInput = (props) => {\r\n const {\r\n website, setWebsite, alwaysShowError, style, labelId,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const onWebsiteChange = useCallback(({ target: { value } }) => {\r\n setWebsite(value);\r\n }, [setWebsite]);\r\n\r\n const handleWebsiteError = useCallback((errors) => {\r\n const errorStrings = _.map(\r\n errors,\r\n (oldError, key) => (\r\n _.has(websiteValidationErrors, key) ?\r\n i18n.getString(websiteValidationErrors[key]) : oldError)\r\n );\r\n return _.isEmpty(errorStrings) ? [] : [_.last(errorStrings)];\r\n }, [i18n]);\r\n\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nWebsiteInput.propTypes = {\r\n website: PropTypes.string,\r\n setWebsite: PropTypes.func.isRequired,\r\n alwaysShowError: PropTypes.bool,\r\n style: PropTypes.shape({}),\r\n labelId: PropTypes.string,\r\n};\r\n\r\nWebsiteInput.defaultProps = {\r\n website: undefined,\r\n alwaysShowError: false,\r\n style: {},\r\n labelId: undefined,\r\n};\r\n","const UrlRegexWithOptionalProtocol = /^(?:http(s)?:\\/\\/)?([a-z0-9-_]+\\.)*[a-z0-9-_]+\\.[a-z]{2,63}(\\/[^\\s]*\\/?)*$/i;\r\n\r\nexport const websiteSchema = {\r\n name: 'Website schema',\r\n type: 'object',\r\n properties: {\r\n website: {\r\n required: true,\r\n type: 'string',\r\n pattern: UrlRegexWithOptionalProtocol,\r\n maxLength: 253,\r\n },\r\n },\r\n};\r\n\r\nexport const websiteAndBusinessSchema = {\r\n name: 'Website and business schema',\r\n type: 'object',\r\n properties: {\r\n website: {\r\n required: true,\r\n type: 'string',\r\n pattern: UrlRegexWithOptionalProtocol,\r\n maxLength: 253,\r\n },\r\n business: {\r\n type: 'string',\r\n maxLength: 40,\r\n minLength: 3,\r\n required: true,\r\n },\r\n },\r\n};\r\n","import _ from 'underscore';\r\nimport 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 { LegacyI18nContext } from '@bingads-webui-react/legacy-i18n-context';\r\nimport { Text } from '@fluentui/react';\r\nimport { ValidationGroup, Input } from '@bingads-webui-react/primitive-validation';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { WebsiteInput } from './website-input';\r\nimport { websiteAndBusinessSchema } from './validation-schema';\r\nimport { businessNameValidationErrors } from './consts';\r\nimport { getWebsiteAndBusinessStyles as getStyles, websiteAndBusinessStyles as styles } from './styles';\r\n\r\nexport const WebsiteAndBusiness = (props) => {\r\n const {\r\n website,\r\n setWebsite,\r\n businessName,\r\n setBusinessName,\r\n setIsValid,\r\n alwaysShowError,\r\n } = props;\r\n const i18n = useContext(I18nContext);\r\n const legacyI18n = useContext(LegacyI18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const onValidate = useCallback((e) => {\r\n setIsValid(e.isValid);\r\n }, [setIsValid]);\r\n\r\n const onChangeBusinessName = useCallback(({ target: { value } }) => {\r\n setBusinessName(value);\r\n }, [setBusinessName]);\r\n const errorProcessor = useCallback((errors) => {\r\n const errorStrings = _.map(\r\n errors,\r\n (oldError, key) => (\r\n _.has(businessNameValidationErrors, key) ?\r\n i18n.getString(businessNameValidationErrors[key]) : oldError)\r\n );\r\n return _.isEmpty(errorStrings) ? [] : [_.last(errorStrings)];\r\n }, [i18n]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n {i18n.getString(_TL_('What\\'s the name of your business?'))}\r\n \r\n \r\n
\r\n \r\n {i18n.getString(_TL_('What\\'s your business website?'))}\r\n \r\n \r\n \r\n
);\r\n};\r\n\r\nWebsiteAndBusiness.propTypes = {\r\n website: PropTypes.string,\r\n setWebsite: PropTypes.func.isRequired,\r\n businessName: PropTypes.string,\r\n setBusinessName: PropTypes.func.isRequired,\r\n setIsValid: PropTypes.func,\r\n alwaysShowError: PropTypes.bool,\r\n};\r\n\r\nWebsiteAndBusiness.defaultProps = {\r\n website: undefined,\r\n businessName: undefined,\r\n setIsValid: _.noop,\r\n alwaysShowError: false,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext, useMemo } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Text, FontIcon, Image } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { OPTIONS, optionTitles, getOptionImages } from './consts';\r\nimport { getWebsiteItemStyles as getStyles, websiteItemStyles } from './styles';\r\n\r\nexport const WebsiteItem = (props) => {\r\n const {\r\n selected,\r\n onClick,\r\n type,\r\n isShowIcon,\r\n isRebranding,\r\n selectedIcon,\r\n unselectedIcon,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n const optionImages = useMemo(() => getOptionImages(isShowIcon, isRebranding), [isShowIcon, isRebranding]);\r\n\r\n const { ariaLabel, iconName, iconClass } = useMemo(() => {\r\n let label = null;\r\n let name = null;\r\n let classname = null;\r\n\r\n if (selected) {\r\n label = i18n.getString(_TL_('Selected option'));\r\n name = selectedIcon || 'CompletedSolid';\r\n classname = classes.icon;\r\n } else if (unselectedIcon) {\r\n label = i18n.getString(_TL_('Unselected option'));\r\n name = unselectedIcon;\r\n classname = classes.iconNotSelected;\r\n }\r\n\r\n return { ariaLabel: label, iconName: name, iconClass: classname };\r\n }, [selected, unselectedIcon, i18n, selectedIcon, classes]);\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n {i18n.getString(optionTitles[type])}\r\n \r\n {iconName && }\r\n \r\n );\r\n};\r\n\r\nWebsiteItem.propTypes = {\r\n selected: PropTypes.bool.isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n type: PropTypes.oneOf(_.values(OPTIONS)).isRequired,\r\n isShowIcon: PropTypes.bool.isRequired,\r\n isRebranding: PropTypes.bool,\r\n selectedIcon: PropTypes.string,\r\n unselectedIcon: PropTypes.string,\r\n};\r\n\r\nWebsiteItem.defaultProps = {\r\n isRebranding: false,\r\n selectedIcon: null,\r\n unselectedIcon: null,\r\n};\r\n","import URI from 'urijs';\r\n\r\nexport function getIsWebsiteSocialPlatform(website) {\r\n if (!website) {\r\n return false;\r\n }\r\n const site = website.toLowerCase().trim();\r\n let uri = new URI(site);\r\n\r\n if (!uri.protocol()) {\r\n uri = new URI(uri.protocol('https').toString());\r\n }\r\n\r\n const host = uri.hostname();\r\n return (host && (host.includes('facebook.com') || host.includes('instagram.com') || host.includes('fb.me')));\r\n}\r\n","import _ from 'underscore';\r\nimport React, { useContext, useCallback, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { LegacyI18nContext } from '@bingads-webui-react/legacy-i18n-context';\r\nimport { Text, Link } from '@fluentui/react';\r\nimport { ErrorMessages } from '@bingads-webui-react/validation';\r\nimport { ValidationGroup } from '@bingads-webui-react/primitive-validation';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { HelpPopupInline } from '@bingads-webui-react/help-popup';\r\n\r\nimport { WebsiteInput } from './website-input';\r\nimport { WebsiteItem } from './website-item';\r\nimport { websiteSchema } from './validation-schema';\r\nimport { selectedText } from './consts';\r\nimport { getWebsiteAndSmartPagesStyles as getStyles, websiteAndSmartPagesStyles as styles } from './styles';\r\nimport { getIsWebsiteSocialPlatform } from './helpers';\r\n\r\nexport const WebsiteAndSmartPages = (props) => {\r\n const {\r\n website,\r\n setWebsite,\r\n existingWebsiteSelected,\r\n setExistingWebsiteSelected,\r\n setIsValid,\r\n websiteLabel,\r\n websiteHelpTopic,\r\n isWebsiteSocialPlatform,\r\n setIsWebsiteSocialPlatform,\r\n unsupportedDomainMessage,\r\n alwaysShowError,\r\n websiteOptionType,\r\n smartPageOptionType,\r\n smartPageErrors,\r\n smartPageLearnMoreLink,\r\n isShowIcon,\r\n selectedIcon,\r\n unselectedIcon,\r\n showWebsiteOptions,\r\n customError,\r\n onCustomValidate,\r\n isRebranding,\r\n } = props;\r\n const i18n = useContext(I18nContext);\r\n const legacyI18n = useContext(LegacyI18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const onValidate = useCallback((e) => {\r\n setIsValid(e.isValid);\r\n setIsWebsiteSocialPlatform(e.isValid && getIsWebsiteSocialPlatform(_.get(e, ['data', 'website'])));\r\n onCustomValidate(_.get(e, ['data', 'website']));\r\n }, [setIsValid, setIsWebsiteSocialPlatform, onCustomValidate]);\r\n\r\n const onClickExistingWebsite\r\n = useCallback(() => setExistingWebsiteSelected(true), [setExistingWebsiteSelected]);\r\n const onClickSmartPages\r\n = useCallback(() => setExistingWebsiteSelected(false), [setExistingWebsiteSelected]);\r\n\r\n const optionText = useMemo(() => i18n.getString(selectedText[smartPageOptionType]), [i18n, smartPageOptionType]);\r\n const websiteLabelId = 'websiteLabel';\r\n\r\n return (\r\n
\r\n {showWebsiteOptions &&\r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n {\r\n existingWebsiteSelected ?\r\n \r\n \r\n {websiteLabel || i18n.getString(_TL_('Your business website you want customers to visit'))}\r\n {websiteHelpTopic && }\r\n \r\n \r\n {isWebsiteSocialPlatform && }\r\n {customError && }\r\n\r\n \r\n :\r\n \r\n {optionText} \r\n \r\n {i18n.getString(_TL_('Learn more'))}\r\n \r\n \r\n \r\n }\r\n
\r\n
);\r\n};\r\n\r\nWebsiteAndSmartPages.propTypes = {\r\n website: PropTypes.string,\r\n setWebsite: PropTypes.func.isRequired,\r\n existingWebsiteSelected: PropTypes.bool.isRequired,\r\n setExistingWebsiteSelected: PropTypes.func.isRequired,\r\n setIsValid: PropTypes.func,\r\n websiteLabel: PropTypes.string,\r\n websiteHelpTopic: PropTypes.string,\r\n isWebsiteSocialPlatform: PropTypes.bool,\r\n setIsWebsiteSocialPlatform: PropTypes.func,\r\n unsupportedDomainMessage: PropTypes.string,\r\n alwaysShowError: PropTypes.bool,\r\n websiteOptionType: PropTypes.string.isRequired,\r\n smartPageOptionType: PropTypes.string.isRequired,\r\n smartPageErrors: PropTypes.arrayOf(PropTypes.string),\r\n smartPageLearnMoreLink: PropTypes.string.isRequired,\r\n isShowIcon: PropTypes.bool,\r\n selectedIcon: PropTypes.string,\r\n unselectedIcon: PropTypes.string,\r\n showWebsiteOptions: PropTypes.bool,\r\n customError: PropTypes.string,\r\n onCustomValidate: PropTypes.func,\r\n isRebranding: PropTypes.bool,\r\n};\r\n\r\nWebsiteAndSmartPages.defaultProps = {\r\n unsupportedDomainMessage: null,\r\n website: undefined,\r\n isWebsiteSocialPlatform: false,\r\n setIsWebsiteSocialPlatform: _.noop,\r\n setIsValid: _.noop,\r\n websiteLabel: undefined,\r\n websiteHelpTopic: undefined,\r\n alwaysShowError: false,\r\n smartPageErrors: [],\r\n isShowIcon: true,\r\n selectedIcon: null,\r\n unselectedIcon: null,\r\n showWebsiteOptions: true,\r\n customError: undefined,\r\n onCustomValidate: _.noop,\r\n isRebranding: false,\r\n};\r\n","export const VIEWS = {\r\n CREATION_METHOD: 'CREATION_METHOD',\r\n GOALS: 'GOALS',\r\n WEBSITE: 'WEBSITE',\r\n LANGUAGE: 'LANGUAGE',\r\n};\r\n","/* istanbul ignore file */\r\nexport const getStyles = () => ({\r\n error: { color: '#a80000', marginTop: '8px' },\r\n languageCountryContainer: ({ noShadow }) => ({\r\n borderColor: 'transparent',\r\n boxShadow: noShadow ? 'none' :'0px 1.6px 3.6px rgba(0, 0, 0, 0.132), 0px 0.3px 0.9px rgba(0, 0, 0, 0.108)',\r\n padding: '20px',\r\n width: '100%',\r\n maxWidth: '400px',\r\n }),\r\n languageContainer: {\r\n marginBottom: '24px',\r\n },\r\n searchableDropdownSearchBox: {\r\n position: 'fixed',\r\n top: '0px',\r\n left: '50%',\r\n transform: 'translateX(-50%)',\r\n width: '100%',\r\n zIndex: '100',\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { Dropdown, SearchBox, SelectableOptionMenuItemType, DirectionalHint } from '@fluentui/react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getStyles } from './styles';\r\n\r\nconst RESERVED_SEARCH_KEY = 'search-key-c6581d02-80fb-4657-bc8d-95850a15a868';\r\n\r\nconst getSearchableOptions = (initialOptions) => {\r\n if (_.isEmpty(initialOptions)) {\r\n return initialOptions;\r\n }\r\n\r\n const optionsWithSearch = [];\r\n optionsWithSearch.push({\r\n key: RESERVED_SEARCH_KEY,\r\n text: '',\r\n itemType: SelectableOptionMenuItemType.Header,\r\n });\r\n\r\n return optionsWithSearch.concat([...initialOptions]);\r\n};\r\n\r\nexport function SearchableDropdown(props) {\r\n const {\r\n options,\r\n } = props;\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const searchableOptions = useMemo(() => getSearchableOptions(options), [options]);\r\n const [filteredOptions, setFilteredOptions] = useState(searchableOptions);\r\n\r\n const onSearchValueChanged = useCallback((searchValue) => {\r\n if (_.isEmpty(searchValue)) {\r\n setFilteredOptions(searchableOptions);\r\n return;\r\n }\r\n\r\n const matchedOptions = _.filter(\r\n searchableOptions,\r\n option => (option.key === RESERVED_SEARCH_KEY || option.text.toLowerCase().includes(searchValue.toLowerCase()))\r\n );\r\n\r\n setFilteredOptions(matchedOptions);\r\n }, [searchableOptions]);\r\n\r\n const onChangeSearchBox = useCallback((event, searchValue) => {\r\n onSearchValueChanged(searchValue);\r\n }, [onSearchValueChanged]);\r\n\r\n const onClearSearchBox = useCallback(() => {\r\n onSearchValueChanged('');\r\n }, [onSearchValueChanged]);\r\n\r\n const onRenderOption = useCallback((option = {}, renderFunc = _.noop) => {\r\n if (option.key === RESERVED_SEARCH_KEY) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return renderFunc(option);\r\n }, [classes.searchableDropdownSearchBox, i18n, onChangeSearchBox, onClearSearchBox, onSearchValueChanged]);\r\n\r\n useEffect(() => setFilteredOptions(getSearchableOptions(options)), [options]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nSearchableDropdown.propTypes = {\r\n options: PropTypes.arrayOf(PropTypes.shape({ key: PropTypes.string, text: PropTypes.string })),\r\n};\r\n\r\nSearchableDropdown.defaultProps = {\r\n options: [],\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getStyles } from './styles';\r\nimport { SearchableDropdown } from './searchable-dropdown';\r\n\r\nexport function LanguageCountrySelection(props) {\r\n const {\r\n selectedLanguage,\r\n onLanguageSelected,\r\n languages,\r\n countryOptions,\r\n selectedCountry,\r\n onCountrySelected,\r\n isCountrySelectDisabled,\r\n error,\r\n noShadow,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles, { noShadow });\r\n\r\n return (\r\n
\r\n {countryOptions &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n \r\n
\r\n {error &&

{error}

}\r\n
\r\n );\r\n}\r\n\r\nLanguageCountrySelection.propTypes = {\r\n selectedLanguage: PropTypes.string,\r\n onLanguageSelected: PropTypes.func.isRequired,\r\n uiActivity: PropTypes.shape({\r\n trace: PropTypes.func,\r\n }).isRequired,\r\n languages: PropTypes.arrayOf(PropTypes.shape({ key: PropTypes.string, text: PropTypes.string })),\r\n countryOptions: PropTypes.arrayOf(PropTypes.shape({ key: PropTypes.string, text: PropTypes.string })),\r\n selectedCountry: PropTypes.string,\r\n onCountrySelected: PropTypes.func,\r\n isCountrySelectDisabled: PropTypes.bool,\r\n error: PropTypes.string,\r\n noShadow: PropTypes.bool,\r\n};\r\n\r\nLanguageCountrySelection.defaultProps = {\r\n selectedLanguage: null,\r\n languages: [],\r\n countryOptions: null,\r\n selectedCountry: null,\r\n onCountrySelected: _.noop,\r\n isCountrySelectDisabled: false,\r\n error: '',\r\n noShadow: false,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useState, useContext, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\n\r\nimport { LanguageCountrySelection } from './language-and-country-selection';\r\nimport { VIEWS } from '../consts';\r\nimport { Tile } from '../tile';\r\n\r\n\r\nexport function LanguageCountrySelectionTile(props) {\r\n const {\r\n selectedLanguage,\r\n onLanguageSelectionChange,\r\n campaign,\r\n useConfirmDialog,\r\n languages,\r\n countryOptions,\r\n selectedCountry,\r\n onCountrySelected,\r\n initCountryCode,\r\n isCountrySelectDisabled,\r\n shouldShowCountryChangedWarning,\r\n uiActivity,\r\n shouldShowLanguageChangedWarning,\r\n setIsCampaignDeleteConfirmed,\r\n subtitle,\r\n onNext,\r\n onBack,\r\n confirmDialogClassName,\r\n } = props;\r\n\r\n const [error, setError] = useState();\r\n\r\n const i18n = useContext(I18nContext);\r\n const campaignLanguage = _.get(campaign, 'Language');\r\n\r\n const onLanguageBack = useCallback(() => {\r\n onBack(VIEWS.GOALS);\r\n setError(null);\r\n }, [onBack]);\r\n\r\n const onConfirmNext = useCallback(() => {\r\n if (initCountryCode !== selectedCountry) {\r\n uiActivity.trace(`User update country from ${initCountryCode} to ${selectedCountry}`);\r\n }\r\n setIsCampaignDeleteConfirmed(true);\r\n onNext(VIEWS.WEBSITE);\r\n }, [initCountryCode, selectedCountry, setIsCampaignDeleteConfirmed, onNext, uiActivity]);\r\n\r\n const onCancelDialog = useCallback(() => {\r\n const previousLanguage = campaignLanguage || selectedLanguage;\r\n onLanguageSelectionChange(previousLanguage);\r\n onCountrySelected(null, {\r\n key: initCountryCode,\r\n });\r\n }, [onLanguageSelectionChange, campaignLanguage, onCountrySelected, initCountryCode, selectedLanguage]);\r\n\r\n const [\r\n changeDialog,\r\n showChangeDialog,\r\n isChangeDialogVisible,\r\n ] = useConfirmDialog({\r\n title: i18n.getString(_TL_('Confirm changes')),\r\n content: i18n.getString(_TL_('When you confirm a change to either your language or business location, you\\'ll have to create a new campaign.')),\r\n confirmText: i18n.getString(_TL_('Confirm')),\r\n onConfirm: onConfirmNext,\r\n cancelText: i18n.getString(_TL_('Discard changes')),\r\n onCancel: onCancelDialog,\r\n className: confirmDialogClassName,\r\n }, {\r\n activity: uiActivity,\r\n dialogName: 'UpWizardChangeLanguageOrCountryDialog',\r\n });\r\n\r\n const onLanguageNext = useCallback(() => {\r\n if (_.isEmpty(selectedLanguage)) {\r\n setError(i18n.getString(_TL_('Please select a language.')));\r\n } else if (shouldShowLanguageChangedWarning || shouldShowCountryChangedWarning) {\r\n showChangeDialog();\r\n } else {\r\n onNext(VIEWS.WEBSITE);\r\n }\r\n }, [selectedLanguage, shouldShowLanguageChangedWarning, shouldShowCountryChangedWarning, i18n, showChangeDialog, onNext]);\r\n\r\n const onLanguageSelected = useCallback((_event, selection) => {\r\n setError(null);\r\n onLanguageSelectionChange(selection.key);\r\n if (uiActivity) {\r\n uiActivity.trace(`LanguageSelection: change to ${selection.key}`);\r\n }\r\n }, [onLanguageSelectionChange, uiActivity]);\r\n\r\n return (\r\n \r\n \r\n {isChangeDialogVisible && changeDialog}\r\n \r\n );\r\n}\r\n\r\nLanguageCountrySelectionTile.propTypes = {\r\n selectedLanguage: PropTypes.string,\r\n onLanguageSelectionChange: PropTypes.func.isRequired,\r\n useConfirmDialog: PropTypes.func.isRequired,\r\n campaign: PropTypes.shape({}),\r\n uiActivity: PropTypes.shape({\r\n trace: PropTypes.func,\r\n }).isRequired,\r\n languages: PropTypes.arrayOf(PropTypes.shape({ key: PropTypes.string, text: PropTypes.string })),\r\n countryOptions: PropTypes.arrayOf(PropTypes.shape({ key: PropTypes.string, text: PropTypes.string })),\r\n selectedCountry: PropTypes.string,\r\n onCountrySelected: PropTypes.func,\r\n initCountryCode: PropTypes.string,\r\n isCountrySelectDisabled: PropTypes.bool,\r\n shouldShowCountryChangedWarning: PropTypes.bool.isRequired,\r\n shouldShowLanguageChangedWarning: PropTypes.bool.isRequired,\r\n setIsCampaignDeleteConfirmed: PropTypes.func.isRequired,\r\n subtitle: PropTypes.node,\r\n onBack: PropTypes.func.isRequired,\r\n onNext: PropTypes.func.isRequired,\r\n confirmDialogClassName: PropTypes.string,\r\n};\r\n\r\nLanguageCountrySelectionTile.defaultProps = {\r\n campaign: null,\r\n selectedLanguage: null,\r\n languages: [],\r\n countryOptions: null,\r\n selectedCountry: null,\r\n onCountrySelected: _.noop,\r\n initCountryCode: null,\r\n isCountrySelectDisabled: false,\r\n subtitle: null,\r\n confirmDialogClassName: 'up-wizard-change-language-or-country-dialog',\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { LegacyI18nContext } from '@bingads-webui-react/legacy-i18n-context';\r\nimport { Text } from '@fluentui/react';\r\nimport { ValidationGroup } from '@bingads-webui-react/primitive-validation';\r\nimport { ErrorMessages } from '@bingads-webui-react/validation';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { WebsiteInput } from './website-input';\r\nimport { websiteSchema } from './validation-schema';\r\nimport { getWebsiteAndSmartPagesStyles as getStyles, websiteAndSmartPagesStyles as styles } from './styles';\r\nimport { getIsWebsiteSocialPlatform } from './helpers';\r\n\r\nexport const WebsiteOnlyOption = (props) => {\r\n const {\r\n website,\r\n setWebsite,\r\n setIsValid,\r\n alwaysShowError,\r\n isWebsiteSocialPlatform,\r\n setIsWebsiteSocialPlatform,\r\n unsupportedDomainMessage,\r\n } = props;\r\n const i18n = useContext(I18nContext);\r\n const legacyI18n = useContext(LegacyI18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const onValidate = useCallback((e) => {\r\n setIsValid(e.isValid);\r\n setIsWebsiteSocialPlatform(e.isValid && getIsWebsiteSocialPlatform(_.get(e, ['data', 'website'])));\r\n }, [setIsValid, setIsWebsiteSocialPlatform]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {i18n.getString(_TL_('Your business website you want customers to visit'))}\r\n \r\n \r\n {isWebsiteSocialPlatform && }\r\n \r\n
\r\n
);\r\n};\r\n\r\nWebsiteOnlyOption.propTypes = {\r\n website: PropTypes.string,\r\n setWebsite: PropTypes.func.isRequired,\r\n setIsValid: PropTypes.func,\r\n alwaysShowError: PropTypes.bool,\r\n isWebsiteSocialPlatform: PropTypes.bool,\r\n setIsWebsiteSocialPlatform: PropTypes.func,\r\n unsupportedDomainMessage: PropTypes.string,\r\n};\r\n\r\nWebsiteOnlyOption.defaultProps = {\r\n website: undefined,\r\n setIsValid: _.noop,\r\n alwaysShowError: false,\r\n unsupportedDomainMessage: null,\r\n isWebsiteSocialPlatform: false,\r\n setIsWebsiteSocialPlatform: _.noop,\r\n};\r\n","export const getStyles = (_, { palette = {} }) => ({\r\n subTitleContainer: {\r\n fontWeight: 400,\r\n fontSize: '16px',\r\n lineHeight: '21px',\r\n marginBottom: 32,\r\n color: palette.neutralPrimary,\r\n textAlign: 'center',\r\n },\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getStyles } from './styles';\r\n\r\nexport function CreationMethodSubTitle(props) {\r\n const {\r\n i18n,\r\n subTitle,\r\n } = props;\r\n\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n return (\r\n \r\n {i18n.getString(subTitle)}\r\n \r\n );\r\n}\r\n\r\nCreationMethodSubTitle.propTypes = {\r\n i18n: PropTypes.shape({ getString: PropTypes.func.isRequired }).isRequired,\r\n subTitle: PropTypes.string,\r\n};\r\n\r\nCreationMethodSubTitle.defaultProps = {\r\n subTitle: _TL_('You can create new campaign from scratch, or import your previous campaign from Google or Facebook.'),\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useCallback, useContext, useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { CampaignCreationMethodSelection } from '@bingads-webui-campaign-react/campaign-creation-method-selection';\r\n\r\nimport { Tile } from './tile';\r\nimport { GoalSelection } from './goals/goal-selection';\r\nimport { WebsiteAndBusiness } from './website/website-and-business';\r\nimport { WebsiteAndSmartPages } from './website/website-and-smart-pages';\r\n\r\nimport { getStyles } from './styles';\r\nimport { VIEWS } from './consts';\r\nimport { LanguageCountrySelectionTile } from './language/language-and-country-selection-tile';\r\nimport { WebsiteOnlyOption } from './website/website-only-option';\r\nimport { OPTIONS } from './website/consts';\r\nimport { CreationMethodSubTitle } from './creation-method/creation-method-sub-title';\r\nimport { getInitStep } from './helper';\r\n\r\nexport const GoalsAndWebsiteTile = (props) => {\r\n const {\r\n selectedCampaignGoals,\r\n onCampaignGoalSelectionChange,\r\n website,\r\n setWebsite,\r\n businessName,\r\n setBusinessName,\r\n existingWebsiteSelected,\r\n setExistingWebsiteSelected,\r\n setIsValid,\r\n isWebsiteSocialPlatform,\r\n setIsWebsiteSocialPlatform,\r\n unsupportedDomainMessage,\r\n goalTitle,\r\n goalsSubtitle,\r\n websiteSubtitle,\r\n onNext,\r\n withBusinessName,\r\n multiSelect,\r\n goalTileFooter,\r\n languages,\r\n selectedLanguage,\r\n onLanguageSelectionChange,\r\n countryOptions,\r\n selectedCountry,\r\n onCountrySelected,\r\n initCountryCode,\r\n shouldShowCountryChangedWarning,\r\n initStep,\r\n campaign,\r\n useConfirmDialog,\r\n isSignUp,\r\n shouldShowSmartPageOption,\r\n smartPageErrors,\r\n isLanguageEnabled,\r\n uiActivity,\r\n shouldShowLanguageChangedWarning,\r\n setIsCampaignDeleteConfirmed,\r\n languageSubtitle,\r\n isCreationMethodEnabled,\r\n creationMethodTitle,\r\n onClickGoogleImport,\r\n onClickFacebookImport,\r\n onClickCreateNewCampaign,\r\n } = props;\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const [currentView, setView] = useState(getInitStep({ customizedInitStep: initStep, isCreationMethodEnabled }));\r\n const [alwaysShowError, setAlwaysShowError] = useState(false);\r\n const [goalError, setGoalError] = useState();\r\n const hasLanguageSelection\r\n = useMemo(() => isLanguageEnabled && _.isArray(languages) && _.size(languages) > 1, [languages, isLanguageEnabled]);\r\n\r\n // Currently we want to show the switch to expert footer in all steps if we have goals/language/website\r\n // because it's needed for the first two, and it'd feel inconsistent if website step doesn't have it.\r\n // If we only have two steps goals/website, we'll keep it only in the first step\r\n const showSwitchToExpertTile = isLanguageEnabled || (currentView !== VIEWS.WEBSITE && currentView !== VIEWS.CREATION_METHOD);\r\n\r\n const onCreationMethodNext = useCallback(() => {\r\n if (_.isFunction(onClickCreateNewCampaign)) {\r\n onClickCreateNewCampaign();\r\n }\r\n setView(VIEWS.GOALS);\r\n }, [onClickCreateNewCampaign]);\r\n\r\n const onGoalNext = useCallback(() => {\r\n if (!_.isEmpty(selectedCampaignGoals)) {\r\n setView(hasLanguageSelection ? VIEWS.LANGUAGE : VIEWS.WEBSITE);\r\n } else {\r\n setGoalError(multiSelect ?\r\n i18n.getString(_TL_('Please select at least one goal.'))\r\n : i18n.getString(_TL_('Please select a goal.')));\r\n }\r\n }, [hasLanguageSelection, i18n, multiSelect, selectedCampaignGoals]);\r\n\r\n const onGoalBack = useCallback(() => {\r\n setView(VIEWS.CREATION_METHOD);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!_.isEmpty(selectedCampaignGoals) && goalError) {\r\n setGoalError(null);\r\n }\r\n }, [goalError, selectedCampaignGoals]);\r\n\r\n const onWebsiteBack = useCallback(() => {\r\n setView(hasLanguageSelection ? VIEWS.LANGUAGE : VIEWS.GOALS);\r\n }, [hasLanguageSelection]);\r\n\r\n const onWebsiteNext = useCallback(() => {\r\n setAlwaysShowError(true);\r\n onNext();\r\n }, [onNext]);\r\n\r\n const creationMethodSubTitle = useMemo(() => (\r\n \r\n ), [i18n]);\r\n\r\n const getWebsiteOptions = useCallback(() => {\r\n if (shouldShowSmartPageOption) {\r\n const websiteOptionType = isSignUp ? OPTIONS.SIGNUP_EXISTING_WEBSITE : OPTIONS.USE_MY_WEBSITE;\r\n const smartPageOptionType = isSignUp ? OPTIONS.SIGNUP_SMART_PAGES : OPTIONS.USE_SMART_PAGES;\r\n\r\n return ();\r\n }\r\n // user doesn't have smart page setup. We only ask for\r\n // website details\r\n return ();\r\n }, [\r\n alwaysShowError, existingWebsiteSelected, isCreationMethodEnabled, isSignUp,\r\n isWebsiteSocialPlatform, setExistingWebsiteSelected, setIsValid, setIsWebsiteSocialPlatform,\r\n setWebsite, shouldShowSmartPageOption, smartPageErrors, unsupportedDomainMessage, website,\r\n ]);\r\n\r\n return (\r\n
\r\n {\r\n currentView === VIEWS.CREATION_METHOD &&\r\n \r\n \r\n \r\n }\r\n\r\n {currentView === VIEWS.GOALS &&\r\n \r\n \r\n {goalError &&

{goalError}

}\r\n \r\n }\r\n {isLanguageEnabled && currentView === VIEWS.LANGUAGE && (\r\n \r\n )}\r\n {currentView === VIEWS.WEBSITE &&\r\n \r\n {withBusinessName ?\r\n \r\n : getWebsiteOptions()\r\n }\r\n \r\n }\r\n {showSwitchToExpertTile && goalTileFooter}\r\n
);\r\n};\r\n\r\nGoalsAndWebsiteTile.propTypes = {\r\n selectedCampaignGoals: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n uiActivity: PropTypes.shape({}),\r\n onCampaignGoalSelectionChange: PropTypes.func.isRequired,\r\n website: PropTypes.string,\r\n setWebsite: PropTypes.func.isRequired,\r\n businessName: PropTypes.string,\r\n setBusinessName: PropTypes.func,\r\n existingWebsiteSelected: PropTypes.bool,\r\n setExistingWebsiteSelected: PropTypes.func,\r\n setIsValid: PropTypes.func,\r\n isWebsiteSocialPlatform: PropTypes.bool,\r\n setIsWebsiteSocialPlatform: PropTypes.func,\r\n unsupportedDomainMessage: PropTypes.string,\r\n goalTitle: PropTypes.string.isRequired,\r\n goalsSubtitle: PropTypes.node.isRequired,\r\n websiteSubtitle: PropTypes.node.isRequired,\r\n onNext: PropTypes.func.isRequired,\r\n withBusinessName: PropTypes.bool,\r\n multiSelect: PropTypes.bool,\r\n goalTileFooter: PropTypes.node,\r\n languages: PropTypes.arrayOf(PropTypes.shape({ key: PropTypes.string, text: PropTypes.string })),\r\n selectedLanguage: PropTypes.string,\r\n onLanguageSelectionChange: PropTypes.func,\r\n countryOptions: PropTypes.arrayOf(PropTypes.shape({ key: PropTypes.string, text: PropTypes.string })),\r\n selectedCountry: PropTypes.string,\r\n onCountrySelected: PropTypes.func,\r\n initCountryCode: PropTypes.string,\r\n shouldShowCountryChangedWarning: PropTypes.bool,\r\n initStep: PropTypes.string,\r\n campaign: PropTypes.shape({}),\r\n useConfirmDialog: PropTypes.func,\r\n isLanguageEnabled: PropTypes.bool,\r\n isSignUp: PropTypes.bool,\r\n shouldShowSmartPageOption: PropTypes.bool,\r\n isCreationMethodEnabled: PropTypes.bool,\r\n creationMethodTitle: PropTypes.string,\r\n onClickGoogleImport: PropTypes.func,\r\n onClickFacebookImport: PropTypes.func,\r\n onClickCreateNewCampaign: PropTypes.func,\r\n smartPageErrors: PropTypes.arrayOf(PropTypes.string),\r\n shouldShowLanguageChangedWarning: PropTypes.bool,\r\n setIsCampaignDeleteConfirmed: PropTypes.func,\r\n languageSubtitle: PropTypes.node,\r\n};\r\n\r\nGoalsAndWebsiteTile.defaultProps = {\r\n website: undefined,\r\n businessName: undefined,\r\n existingWebsiteSelected: true,\r\n useConfirmDialog: null,\r\n isLanguageEnabled: false,\r\n shouldShowLanguageChangedWarning: false,\r\n setExistingWebsiteSelected: _.noop,\r\n setIsCampaignDeleteConfirmed: _.noop,\r\n setBusinessName: _.noop,\r\n setIsValid: _.noop,\r\n setIsWebsiteSocialPlatform: _.noop,\r\n unsupportedDomainMessage: undefined,\r\n isWebsiteSocialPlatform: false,\r\n withBusinessName: false,\r\n multiSelect: true,\r\n goalTileFooter: null,\r\n uiActivity: null,\r\n languages: [],\r\n selectedLanguage: null,\r\n onLanguageSelectionChange: _.noop,\r\n countryOptions: null,\r\n selectedCountry: null,\r\n onCountrySelected: _.noop,\r\n initCountryCode: null,\r\n shouldShowCountryChangedWarning: false,\r\n initStep: null,\r\n campaign: null,\r\n isSignUp: true,\r\n shouldShowSmartPageOption: false,\r\n isCreationMethodEnabled: false,\r\n creationMethodTitle: '',\r\n onClickGoogleImport: _.noop,\r\n onClickFacebookImport: _.noop,\r\n onClickCreateNewCampaign: _.noop,\r\n smartPageErrors: [],\r\n languageSubtitle: null,\r\n};\r\n\r\n","import { VIEWS } from './consts';\r\n\r\nexport function getInitStep(props) {\r\n const { customizedInitStep, isCreationMethodEnabled } = props;\r\n if (customizedInitStep) {\r\n return customizedInitStep;\r\n } else if (isCreationMethodEnabled) {\r\n return VIEWS.CREATION_METHOD;\r\n }\r\n return VIEWS.GOALS;\r\n}\r\n","export const getStyles = () => ({\r\n accountModeSubtitle: {\r\n textAlign: 'center',\r\n lineHeight: '19px',\r\n margin: 0,\r\n '& a.account-mode-comparison-link': {\r\n textDecoration: 'underline',\r\n },\r\n '& a.account-mode-comparison-link:hover': {\r\n color: '#0078d4',\r\n },\r\n },\r\n accountModeContainer: {\r\n width: '530px',\r\n marginTop: 32,\r\n '& a:hover': {\r\n textDecoration: 'none',\r\n color: '#0078d4',\r\n },\r\n },\r\n accountModeSelectionContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n\r\n accountModeSkipContainer: {\r\n width: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n borderTop: '1px solid #F2F2F2',\r\n padding: '4px 0',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n textAlign: 'center',\r\n flexWrap: 'wrap',\r\n justifyContent: 'center',\r\n '& .account-mode-skip-link': {\r\n textDecoration: 'underline',\r\n margin: '0 4px',\r\n },\r\n '& .account-mode-skip-link:hover': {\r\n color: '#0078d4',\r\n },\r\n },\r\n\r\n // size s classes\r\n 'accountModeSelectionContainer-s': { flexDirection: 'column' },\r\n 'accountModeContainer-s': { width: '272px' },\r\n 'accountModeSkipContainer-s': {\r\n display: 'block',\r\n '& .account-mode-skip-link': {\r\n margin: 0,\r\n marginRright: '4px',\r\n },\r\n },\r\n // size m classes\r\n 'accountModeSelectionContainer-m': { flexDirection: 'column' },\r\n 'accountModeContainer-m': { width: '382px' },\r\n});\r\n\r\nexport const getIntroStyles = () => ({\r\n introContainer: {\r\n marginTop: 32,\r\n marginBottom: 16,\r\n\r\n '& .intro-title': {\r\n fontWeight: 600,\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n },\r\n\r\n '& .intro-body': {\r\n marginTop: 10,\r\n paddingRight: 15,\r\n fontSize: '14px',\r\n lineHeight: '25px',\r\n\r\n '& ul': {\r\n paddingLeft: '25px',\r\n },\r\n },\r\n 'introContainer-s': { width: '272px' },\r\n 'introContainer-m': { width: '382px' },\r\n },\r\n});\r\n\r\nconst modeItemMarginRight = '16px';\r\n\r\nexport const getBulletItemStyles = () => ({\r\n bulletItem: {\r\n display: 'flex',\r\n marginTop: 8,\r\n },\r\n iconContainer: {\r\n marginRight: '10px',\r\n width: '20px',\r\n height: '20px',\r\n },\r\n});\r\n\r\nexport const bulletItemStyles = {\r\n text: {\r\n root: {\r\n textAlign: 'start',\r\n fontSize: '14px',\r\n color: '#616161',\r\n lineHeight: '18px',\r\n },\r\n },\r\n};\r\n\r\nexport const getModeItemStyles = () => ({\r\n itemContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: `calc((100% - ${modeItemMarginRight}) / 2)`,\r\n },\r\n recommended: {\r\n width: 'fit-content',\r\n display: 'inline-block',\r\n padding: '0px 14px',\r\n fontSize: '10px',\r\n lineHeight: '20px',\r\n height: '20px',\r\n fontWeight: 600,\r\n borderRadius: '4px 4px 0 0',\r\n color: '#fff',\r\n background: 'linear-gradient(102.36deg, #0A1B45 17.63%, rgba(27, 62, 115, 0.882169) 63.53%, rgba(43, 88, 156, 0.775808) 96.63%), #0A1B45',\r\n },\r\n recommendedNotSelected: {\r\n background: '#828282 !important',\r\n },\r\n recommendedNotVisible: {\r\n visibility: 'hidden',\r\n },\r\n item: {\r\n width: '100%',\r\n flex: '1',\r\n display: 'flex',\r\n alignItems: 'start',\r\n flexFlow: 'column',\r\n backgroundColor: '#fff !important',\r\n padding: '16px',\r\n border: '2px solid',\r\n borderRadius: '4px',\r\n position: 'relative',\r\n minHeight: 151,\r\n '& > span': {\r\n fontSize: 14,\r\n },\r\n },\r\n itemRecommended: {\r\n borderRadius: '0px 4px 4px 4px',\r\n },\r\n optionSelected: {\r\n borderColor: '#0078D4',\r\n },\r\n optionNotSelected: {\r\n borderColor: 'transparent',\r\n boxShadow: '0px 1.6px 3.6px rgba(0, 0, 0, 0.132), 0px 0.3px 0.9px rgba(0, 0, 0, 0.108)',\r\n },\r\n description: {\r\n fontSize: '14px',\r\n textAlign: 'start',\r\n color: '#616161',\r\n lineHeight: '18px',\r\n margin: '8px 0px',\r\n },\r\n rebrandingSelectedDescription: {\r\n border: '1px solid #B4D6FA',\r\n borderRadius: '4px',\r\n padding: '4px 8px',\r\n color: '#115EA3',\r\n backgroundColor: '#EBF3FC',\r\n },\r\n rebrandingNotSelectedDescription: {\r\n border: '1px solid #E0E0E0',\r\n borderRadius: '4px',\r\n padding: '4px 8px',\r\n color: '#616161',\r\n backgroundColor: '#F0F0F0',\r\n },\r\n icon: {\r\n color: '#0078D4',\r\n fontSize: '25px',\r\n position: 'absolute',\r\n top: '11px',\r\n right: '14px',\r\n },\r\n divider: {\r\n backgroundColor: '#EDEBE9',\r\n height: 1,\r\n width: '100%',\r\n margin: '7px 0px',\r\n },\r\n // size s classes\r\n 'itemContainer-s': {\r\n width: '100%',\r\n '& .item': {\r\n minHeight: 0,\r\n },\r\n },\r\n\r\n // size m classes\r\n 'itemContainer-m': {\r\n width: '100%',\r\n '& .item': {\r\n minHeight: 0,\r\n },\r\n },\r\n\r\n // size l classes\r\n 'itemContainer-l': {\r\n width: '100%',\r\n '& .item': {\r\n minHeight: 0,\r\n },\r\n },\r\n\r\n});\r\n\r\nexport const modeItemStyles = {\r\n title: { root: { fontWeight: 600, fontSize: '18px', lineHeight: '24px' } },\r\n image: { root: { marginBottom: 4, minHeight: 40 } },\r\n bulletsTitle: {\r\n root: {\r\n fontWeight: 600,\r\n marginTop: 4,\r\n textAlign: 'start',\r\n fontSize: '14px',\r\n color: '#616161',\r\n lineHeight: '18px',\r\n },\r\n },\r\n text: {\r\n root: {\r\n marginTop: 4,\r\n textAlign: 'start',\r\n fontSize: '14px',\r\n color: '#616161',\r\n lineHeight: '18px',\r\n },\r\n },\r\n};\r\n","import smartImg from '../../media/smart.svg';\r\nimport expertImg from '../../media/expert.svg';\r\n\r\nexport const ACCOUNT_MODE = {\r\n EXPERT: 0,\r\n UNIFIED_SMART: 2,\r\n};\r\n\r\nexport const ACCOUNT_MODE_NAME = {\r\n EXPERT: 'expert',\r\n UNIFIED_SMART: 'unifiedsmart',\r\n};\r\n\r\nexport const ACCOUNT_MODE_INFO = {\r\n [ACCOUNT_MODE.EXPERT]: {\r\n name: ACCOUNT_MODE_NAME.EXPERT,\r\n title: _TL_('Take full control'),\r\n description: _TL_('Best for experienced advertisers and marketing professionals.'),\r\n imgSrc: expertImg,\r\n imgAlt: _TL_('Expert mode'),\r\n introTitle: _TL_('With Expert mode, you can:'),\r\n introTexts: [\r\n _TL_('Fine-tune every aspect of your ad campaigns.'),\r\n _TL_('Access advanced, detailed performance reporting and tracking.'),\r\n _TL_('Choose from multiple campaign types (shopping, video, and more).'),\r\n _TL_('Run standalone audience campaigns across Bing, MSN, Outlook, and Microsoft Edge.')],\r\n },\r\n [ACCOUNT_MODE.UNIFIED_SMART]: {\r\n name: ACCOUNT_MODE_NAME.UNIFIED_SMART,\r\n title: _TL_('Streamlined, simple experience'),\r\n description: _TL_('Best for novice advertisers and those who want to save time and effort.'),\r\n imgSrc: smartImg,\r\n imgAlt: _TL_('Smart mode'),\r\n introTitle: _TL_('With Smart mode, you can:'),\r\n introTexts: [\r\n _TL_('Get started quickly with a streamlined campaign setup experience.'),\r\n _TL_('Benefit from automated optimizations and a time-saving approach.'),\r\n _TL_('Expand your customer reach easily by running your ads on Facebook, Google, and Instagram.'),\r\n _TL_('Track performance with key metrics, including conversion tracking.')],\r\n },\r\n};\r\n","import 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 { Text } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\n\r\nimport { getBulletItemStyles, bulletItemStyles } from './styles';\r\n\r\nexport const BulletItem = (props) => {\r\n const {\r\n text,\r\n renderIcon,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getBulletItemStyles);\r\n\r\n return (\r\n
\r\n {renderIcon &&\r\n
\r\n {renderIcon()}\r\n
\r\n }\r\n \r\n {t} }}\r\n template={i18n.getString(text)}\r\n />\r\n \r\n
\r\n );\r\n};\r\n\r\nBulletItem.propTypes = {\r\n renderIcon: PropTypes.string,\r\n text: PropTypes.string.isRequired,\r\n};\r\n\r\nBulletItem.defaultProps = {\r\n renderIcon: undefined,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext, Fragment } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Text, FontIcon, Image } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\n\r\nimport { BulletItem } from './bullet-item';\r\nimport { getModeItemStyles, modeItemStyles } from './styles';\r\n\r\nexport const ModeItem = (props) => {\r\n const {\r\n selected,\r\n onClick,\r\n item,\r\n isRecommended,\r\n displayMode,\r\n isRebranding,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getModeItemStyles);\r\n const {\r\n name, imgSrc, imgAlt, title, description, bulletsTitle, bulletItems,\r\n } = item;\r\n\r\n return (\r\n
\r\n
\r\n {i18n.getString(_TL_('Recommended'))}\r\n
\r\n \r\n \r\n \r\n {i18n.getString(title)}\r\n \r\n {selected && }\r\n \r\n {i18n.getString(description)}\r\n \r\n {!_.isEmpty(bulletItems) &&\r\n \r\n
\r\n \r\n {i18n.getString(bulletsTitle)}\r\n \r\n {!isRebranding &&\r\n
    \r\n {bulletItems.map((bulletItem) => {\r\n const text = _.isString(bulletItem) ? bulletItem : bulletItem.text;\r\n return (\r\n
  • \r\n \r\n {t} }}\r\n template={i18n.getString(text)}\r\n />\r\n \r\n
  • \r\n );\r\n })}\r\n
\r\n }\r\n {isRebranding &&\r\n
\r\n {bulletItems.map((bulletItem) => {\r\n const { key, text, renderIcon } = bulletItem;\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\nModeItem.propTypes = {\r\n selected: PropTypes.bool.isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n item: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n imgSrc: PropTypes.string.isRequired,\r\n imgAlt: PropTypes.string.isRequired,\r\n title: PropTypes.string.isRequired,\r\n description: PropTypes.string.isRequired,\r\n bulletsTitle: PropTypes.string,\r\n bulletItems: PropTypes.arrayOf(PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.shape({}),\r\n ])),\r\n }).isRequired,\r\n isRecommended: PropTypes.bool,\r\n isRebranding: PropTypes.bool,\r\n displayMode: PropTypes.string,\r\n};\r\n\r\nModeItem.defaultProps = {\r\n isRecommended: false,\r\n isRebranding: false,\r\n displayMode: '',\r\n};\r\n","import React, { useContext, } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getIntroStyles } from './styles';\r\n\r\nexport function IntroTexts(props) {\r\n const {\r\n introTitle,\r\n introTexts,\r\n displayMode,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getIntroStyles);\r\n\r\n return (\r\n
\r\n
\r\n {i18n.getString(introTitle)}\r\n
\r\n
\r\n
    \r\n {introTexts.map(text => (
  • {i18n.getString(text)}
  • ))}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nIntroTexts.propTypes = {\r\n introTitle: PropTypes.string.isRequired,\r\n introTexts: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n displayMode: PropTypes.string,\r\n};\r\n\r\nIntroTexts.defaultProps = {\r\n displayMode: '',\r\n};\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport _ from 'underscore';\r\nimport React, { useContext, useCallback, useMemo, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { Link } from '@fluentui/react';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getStyles } from './styles';\r\nimport { Tile } from '../tile';\r\nimport { ACCOUNT_MODE, ACCOUNT_MODE_INFO } from './consts';\r\nimport { ModeItem } from './mode-item';\r\nimport { IntroTexts } from './intro-texts';\r\n\r\nexport function AccountModeSelection(props) {\r\n const {\r\n initSelectedMode,\r\n selectedMode,\r\n onModeSelectionChange,\r\n useConfirmDialog,\r\n uiActivity,\r\n shouldShowAccountModeChangedWarning,\r\n shouldShowAccountModeChangedWarningForSkip,\r\n subtitle,\r\n onNext,\r\n onBack,\r\n onSkip,\r\n displayMode,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n const [isSkip, setIsSkip] = useState(false);\r\n\r\n const subtitleText = i18n.getString(_TL_('Choose the account mode that will best help you achieve your goals. {{a}}Learn more about Smart mode vs. Expert mode{{/a}}'));\r\n const subtitleNode = useMemo(() => subtitle || (\r\n

\r\n (\r\n \r\n {text}\r\n ),\r\n }}\r\n template={subtitleText}\r\n />\r\n

\r\n ), [classes.accountModeSubtitle, subtitle, subtitleText]);\r\n\r\n const onConfirmNext = useCallback(() => {\r\n if (initSelectedMode !== selectedMode) {\r\n uiActivity.trace(`User update accountMode from ${initSelectedMode} to ${selectedMode}`);\r\n }\r\n\r\n if (isSkip) {\r\n onSkip();\r\n } else {\r\n onNext(selectedMode);\r\n }\r\n }, [initSelectedMode, selectedMode, onNext, uiActivity, isSkip, onSkip]);\r\n\r\n const onCancelDialog = useCallback(() => {\r\n setIsSkip(false);\r\n }, []);\r\n\r\n const [\r\n changeDialog,\r\n showChangeDialog,\r\n isChangeDialogVisible,\r\n ] = useConfirmDialog({\r\n title: i18n.getString(_TL_('Confirm changes')),\r\n content: initSelectedMode === ACCOUNT_MODE.UNIFIED_SMART ?\r\n i18n.getString(_TL_('When you confirm a change to the account mode, the associated campaign and social profile will be deleted.')) :\r\n i18n.getString(_TL_('When you confirm a change to the account mode, the associated campaign will be deleted.')),\r\n confirmText: i18n.getString(_TL_('Confirm')),\r\n onConfirm: onConfirmNext,\r\n cancelText: i18n.getString(_TL_('Discard changes')),\r\n onCancel: onCancelDialog,\r\n className: 'wizard-change-account-mode-dialog',\r\n }, {\r\n activity: uiActivity,\r\n dialogName: 'WizardChangeAccountModeDialog',\r\n });\r\n\r\n const onSkipClicked = useCallback(() => {\r\n if (shouldShowAccountModeChangedWarningForSkip) {\r\n setIsSkip(true);\r\n showChangeDialog();\r\n } else {\r\n onSkip();\r\n }\r\n }, [shouldShowAccountModeChangedWarningForSkip, showChangeDialog, onSkip]);\r\n\r\n const skipText = i18n.getString(_TL_('Do you want to create another campaign? {{a}}Create an account first.{{/a}}'));\r\n const skipNode = useMemo(() => (\r\n (\r\n \r\n {text}\r\n ),\r\n }}\r\n template={skipText}\r\n />\r\n ), [skipText, onSkipClicked]);\r\n\r\n const onBackClicked = useCallback(() => {\r\n onBack(selectedMode);\r\n }, [onBack, selectedMode]);\r\n\r\n const onNextClicked = useCallback(() => {\r\n if (shouldShowAccountModeChangedWarning && selectedMode !== initSelectedMode) {\r\n showChangeDialog();\r\n } else {\r\n onNext(selectedMode);\r\n }\r\n }, [selectedMode, initSelectedMode, shouldShowAccountModeChangedWarning, showChangeDialog, onNext]);\r\n\r\n const onSmartModeClicked = useCallback(() => {\r\n onModeSelectionChange(ACCOUNT_MODE.UNIFIED_SMART);\r\n }, [onModeSelectionChange]);\r\n\r\n const onExpertModeClicked = useCallback(() => {\r\n onModeSelectionChange(ACCOUNT_MODE.EXPERT);\r\n }, [onModeSelectionChange]);\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {selectedMode === ACCOUNT_MODE.EXPERT &&\r\n
\r\n {skipNode}\r\n
}\r\n
\r\n {isChangeDialogVisible && changeDialog}\r\n \r\n );\r\n}\r\n\r\nAccountModeSelection.propTypes = {\r\n initSelectedMode: PropTypes.oneOf(_.values(ACCOUNT_MODE)),\r\n selectedMode: PropTypes.oneOf(_.values(ACCOUNT_MODE)),\r\n onModeSelectionChange: PropTypes.func.isRequired,\r\n useConfirmDialog: PropTypes.func.isRequired,\r\n uiActivity: PropTypes.shape({\r\n trace: PropTypes.func,\r\n }).isRequired,\r\n shouldShowAccountModeChangedWarning: PropTypes.bool.isRequired,\r\n shouldShowAccountModeChangedWarningForSkip: PropTypes.bool.isRequired,\r\n subtitle: PropTypes.node,\r\n onBack: PropTypes.func.isRequired,\r\n onNext: PropTypes.func.isRequired,\r\n onSkip: PropTypes.func.isRequired,\r\n displayMode: PropTypes.string,\r\n};\r\n\r\nAccountModeSelection.defaultProps = {\r\n initSelectedMode: ACCOUNT_MODE.UNIFIED_SMART,\r\n selectedMode: ACCOUNT_MODE.UNIFIED_SMART,\r\n subtitle: null,\r\n displayMode: '',\r\n};\r\n","export const getStyles = () => ({\r\n animationContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n '& .ms-ProgressIndicator': {\r\n width: 370,\r\n marginTop: 30,\r\n '@media (max-width:600px)': {\r\n width: 200,\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const getStylesForFluentUi = mobileDeviceQuery => ({\r\n animationImage: {\r\n root: {\r\n minHeight: 240,\r\n marginTop: 34,\r\n },\r\n image: {\r\n maxHeight: 310,\r\n [mobileDeviceQuery]: {\r\n width: '100%',\r\n },\r\n },\r\n },\r\n animationLabel: {\r\n root: {\r\n textAlign: 'center',\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n});\r\n","import React, { useCallback, useContext, useState, useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Label, Image, ProgressIndicator } from '@fluentui/react';\r\nimport { TileHeader } from '@bingads-webui-campaign-react/goals-and-website-tile';\r\n\r\nimport { getStyles, getStylesForFluentUi } from './styles';\r\nimport animationImg from '../media/animation.gif';\r\n\r\nconst TEXT_SWITCHING_INTERVAL = 3 * 1000;\r\n\r\nexport function ProcessingAnimation(props) {\r\n const {\r\n title,\r\n description,\r\n rollingTexts,\r\n rollingInterval,\r\n mobileDeviceQuery,\r\n customImg,\r\n showIcon,\r\n useProgressIndicator,\r\n displayMode,\r\n } = props;\r\n const classes = useDefaultStyles(getStyles);\r\n const i18n = useContext(I18nContext);\r\n\r\n const [rollingTextIndex, setRollingTextIndex] = useState(0);\r\n const timerRef = useRef(null);\r\n\r\n const styles = getStylesForFluentUi(mobileDeviceQuery);\r\n\r\n const stopRolling = useCallback(() => {\r\n if (timerRef && timerRef.current) {\r\n clearInterval(timerRef.current);\r\n }\r\n setRollingTextIndex(0);\r\n }, []);\r\n\r\n const startRolling = useCallback(() => {\r\n if (timerRef && timerRef.current) {\r\n clearInterval(timerRef.current);\r\n }\r\n timerRef.current = setInterval(() => {\r\n if (rollingTextIndex === rollingTexts.length - 1) {\r\n setRollingTextIndex(0);\r\n } else {\r\n setRollingTextIndex(rollingTextIndex + 1);\r\n }\r\n }, rollingInterval);\r\n }, [rollingInterval, rollingTextIndex, rollingTexts.length]);\r\n\r\n useEffect(() => {\r\n startRolling();\r\n }, [startRolling]);\r\n\r\n useEffect(() => () => {\r\n stopRolling();\r\n }, [stopRolling]);\r\n\r\n return (\r\n
\r\n {description}}\r\n displayMode={displayMode}\r\n hideIcon={!showIcon}\r\n />\r\n
\r\n {useProgressIndicator && }\r\n {!useProgressIndicator && }\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nProcessingAnimation.propTypes = {\r\n title: PropTypes.string,\r\n description: PropTypes.string,\r\n rollingTexts: PropTypes.arrayOf(PropTypes.string),\r\n rollingInterval: PropTypes.number,\r\n mobileDeviceQuery: PropTypes.string,\r\n customImg: PropTypes.string,\r\n displayMode: PropTypes.string,\r\n showIcon: PropTypes.bool,\r\n useProgressIndicator: PropTypes.bool,\r\n};\r\n\r\nProcessingAnimation.defaultProps = {\r\n title: '',\r\n description: '',\r\n rollingTexts: [],\r\n rollingInterval: TEXT_SWITCHING_INTERVAL,\r\n mobileDeviceQuery: '@media (max-width:600px)',\r\n customImg: null,\r\n displayMode: '',\r\n showIcon: false,\r\n useProgressIndicator: false,\r\n};\r\n","module.exports = __webpack_public_path__ + \"static/media/family_doctor.20eb0195.jpg\";","module.exports = __webpack_public_path__ + \"static/media/attorney.6b7e17cc.jpg\";","module.exports = __webpack_public_path__ + \"static/media/SquareSolidSmall.ee0390d2.svg\";","module.exports = __webpack_public_path__ + \"static/media/RebrandingNewCampaign.21c03197.svg\";","module.exports = __webpack_public_path__ + \"static/media/consultant.ec2f7ac9.jpg\";","module.exports = __webpack_public_path__ + \"static/media/TriangleUpSolidSmall.4c620019.svg\";","module.exports = __webpack_public_path__ + \"static/media/goal-location.3a97984d.svg\";","module.exports = __webpack_public_path__ + \"static/media/DiamondSolid.8cb1af9d.svg\";","module.exports = __webpack_public_path__ + \"static/media/family_doctor.cbefe6e2.jpg\";","module.exports = __webpack_public_path__ + \"static/media/design_agency.19508811.jpg\";","module.exports = __webpack_public_path__ + \"static/media/CircleSolidSmall.87a8ad71.svg\";","module.exports = __webpack_public_path__ + \"static/media/car_dealer.f451e7fa.jpg\";","module.exports = __webpack_public_path__ + \"static/media/expert.c9c05665.svg\";","export const mobileMaxWidth = 600;\r\nexport const mobileDeviceQuery = `(max-width:${mobileMaxWidth}px)`;\r\nexport const mobileDevice = `@media ${mobileDeviceQuery}`;\r\n\r\nexport function useMediaQuery() {\r\n let isMobile = false;\r\n let screenWidth = 0;\r\n let screenHeight = 0;\r\n if (typeof window !== 'undefined') {\r\n isMobile = window.matchMedia(mobileDeviceQuery).matches;\r\n // innerWidth provides the actual width of the browser window\r\n screenWidth = window.innerWidth;\r\n screenHeight = window.innerHeight;\r\n }\r\n return {\r\n isMobile,\r\n screenWidth,\r\n screenHeight,\r\n };\r\n}\r\n","/* eslint-disable react/forbid-prop-types */\r\n/* eslint-disable jsx-a11y/anchor-is-valid */\r\n\r\nimport React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Dialog, DialogFooter, DialogType,\r\n PrimaryButton, DefaultButton,\r\n Link,\r\n} from '@fluentui/react';\r\n\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getStyles } from './confirm-dialog-styles';\r\nimport { mobileDevice } from '../use-media-query';\r\n\r\nexport const ConfirmDialog = (props) => {\r\n const i18n = useContext(I18nContext);\r\n\r\n const {\r\n hidden,\r\n title,\r\n\r\n onConfirm,\r\n confirmText,\r\n isConfirmButtonDisabled,\r\n\r\n secondaryButtons,\r\n\r\n hideCancelButton,\r\n cancelText,\r\n onCancel,\r\n\r\n helpLinkText,\r\n onHelpLink,\r\n\r\n children,\r\n className,\r\n onDismiss,\r\n dialogContentProps,\r\n modalProps,\r\n minWidth,\r\n mobileDeviceMediaQuery,\r\n } = props;\r\n\r\n const classes = useDefaultStyles(() => getStyles(mobileDeviceMediaQuery));\r\n\r\n return (\r\n