{"version":3,"file":"static/js/application.async.landing~89abf0c0.695069b8.chunk.js","mappings":"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","sources":["../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/utils/router-helper.ts","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/utils/handle-errors.ts","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/utils/validations.ts","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/utils/ads-repository.ts","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/utils/pricing-model-range-map.ts","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/ad-creation/mock.ts","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/campaign-settings/campaign-settings-styles.ts","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/campaign-settings/campaign-information.tsx","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/hooks/use-recommendation-fetch.ts","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/campaign-settings/campaign-setting-types.ts","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/campaign-settings/budget-bid.tsx","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/step-footer.tsx","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/components/error-view.tsx","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/campaign-settings/campaign-settings-container.tsx","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/store/audience-creation-flow-actions.ts","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/store/audience-creation-flow-reducer.ts","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/store/audience-campaign-creation-context.tsx","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/ad-creation/ad-creation-style.ts","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/ad-creation/ad-preview.tsx","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/ad-creation/ad-editor-panel.tsx","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/ad-creation/ad-preview-card.tsx","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/ad-creation/recommended-ads-panel.tsx","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/ad-creation/custom-ads-panel.tsx","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/ad-creation/targeting.tsx","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/ad-creation/ad-creation.tsx","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/summary/summary-styles.ts","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/summary/summary-container.tsx","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/audience-creation-flow-styles.ts","../../../../audience-campaign-react/packages/static-audience-campaign-creation/src/app.tsx"],"sourcesContent":["import { getRoutePathById } from '@bingads-webui-campaign-react/with-site-map';\r\n\r\nexport function navigateToRoute(routeStore, siteMap, id) {\r\n const pathname = getRoutePathById(siteMap, id);\r\n\r\n if (routeStore.state.history) {\r\n routeStore.state.history.push({\r\n pathname,\r\n search: routeStore.state.location.search,\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { getBulkErrorsLogMessage } from '@bingads-webui-campaign/audience-campaign-shared';\r\nimport { DependencyResolver } from '@bingads-webui-campaign/dependency-resolver';\r\n\r\nexport function handleErrors(activityLogger, response, setErrors) {\r\n const i18nErrors = DependencyResolver.get('component/api-errors-campaign/index');\r\n const i18n = DependencyResolver.get('component/i18n/loader!campaignui/feature/audience-campaign');\r\n\r\n if (response && response.entity) {\r\n const hasErrors = response && !_.isUndefined(response.errors);\r\n\r\n if (hasErrors) {\r\n if (response.errors.length) {\r\n const bulkApiErrors = i18nErrors.getBulkApiErrors(response.errors);\r\n const noMappedErrors = _.every(bulkApiErrors, error => error.code === error.message);\r\n\r\n if (_.isEmpty(bulkApiErrors) || noMappedErrors) {\r\n setErrors([{ message: i18n.getString('GenericErrorMessage_Short') }]);\r\n activityLogger.error(`${getBulkErrorsLogMessage(response.errors)}, Entity:${JSON.stringify(response.entity)}`);\r\n } else {\r\n setErrors(bulkApiErrors);\r\n\r\n activityLogger.trace(getBulkErrorsLogMessage(response.errors));\r\n _.each(response.errors, (error) => {\r\n activityLogger.signal(error.Error, 'audience campaign creation api error');\r\n });\r\n }\r\n }\r\n } else {\r\n // Unexpected case. Log Error.\r\n activityLogger.error(JSON.stringify(response));\r\n }\r\n } else {\r\n // Ajax error\r\n setErrors(i18nErrors.getODataErrors(response.errors));\r\n }\r\n}\r\n","import { result } from 'underscore';\r\nimport { isValidUrl } from '@bingads-webui/url-util';\r\nimport { DependencyResolver } from '@bingads-webui-campaign/dependency-resolver';\r\nimport { PricingModelToRangeKey } from '@bingads-webui-campaign/audience-campaign-shared';\r\n\r\nconst CampaignNameLength = 128;\r\n\r\nexport function campaignNameValidation(name?: string) {\r\n if (!name) {\r\n return false;\r\n }\r\n\r\n return name.length <= CampaignNameLength;\r\n}\r\n\r\nexport function finalUrlValidation(url?: string) {\r\n if (!url) {\r\n return false;\r\n }\r\n\r\n return isValidUrl(url);\r\n}\r\n\r\nexport function MaxCostValidation(value?: number) {\r\n if (!value) {\r\n return false;\r\n }\r\n\r\n return Number(value) > 0;\r\n}\r\n\r\nexport function budgetValidation(value?: number) {\r\n if (!value) {\r\n return false;\r\n }\r\n\r\n return Number(value) > 0;\r\n}\r\n\r\nexport function targetCPAValidation(value?: number) {\r\n if (!value) {\r\n return false;\r\n }\r\n\r\n return Number(value) > 0;\r\n}\r\n\r\nexport function bidValueValidation(rangeKey: string, value?: number) {\r\n if (!value) {\r\n return false;\r\n }\r\n\r\n const config = DependencyResolver.get('component/config/index');\r\n\r\n const ceilingValue = result(config.get(PricingModelToRangeKey[rangeKey]), 'CeilingValue');\r\n const floorValue = result(config.get(PricingModelToRangeKey[rangeKey]), 'FloorValue');\r\n\r\n if (ceilingValue && floorValue) {\r\n if (value > ceilingValue || value < floorValue) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n","import { ResponsiveAdRepository } from '@bingads-webui-campaign/responsive-ad-editor';\r\nimport { IAdModel } from '../store';\r\n\r\nexport function removeAds(ads: IAdModel[], { viewContext }) {\r\n const adsRepository = new ResponsiveAdRepository({ viewContext });\r\n\r\n const promises = ads.map(ad => adsRepository.removeAdAsync(ad.Id));\r\n\r\n return Promise.all(promises);\r\n}\r\n\r\nexport function getAds(adIds: number[], {\r\n viewContext,\r\n extraExpand = ',Model.ResponsiveAd/Headlines,Model.ResponsiveAd/LongHeadlines,Model.ResponsiveAd/Descriptions,Model.ResponsiveAd/Images',\r\n}) {\r\n const adsRepository = new ResponsiveAdRepository({ viewContext });\r\n\r\n const promises = adIds.map(id => adsRepository.getAdAsync(id, extraExpand));\r\n\r\n return Promise.all(promises);\r\n}\r\n","export const pricingModelToRangeKeyMap = {\r\n EnhancedCpc: 'CPC',\r\n ManualCpc: 'CPC',\r\n ManualCpm: 'CPM',\r\n};\r\n","export const previews = [{\r\n images: [[{\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n type: 'Image191x100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceX: 0, SourceY: 258, SourceWidth: 1080, SourceHeight: 565,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 565, SourceX: 0, SourceY: 258,\r\n },\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n type: null,\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: null,\r\n effectSettings: null,\r\n baseId: null,\r\n metadata: null,\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 565, SourceX: 0, SourceY: 258,\r\n },\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n type: 'Image178x100',\r\n associationType: 'ImageMedia178X100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 607, SourceX: 0, SourceY: 237,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 607, SourceX: 0, SourceY: 237,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', type: null, associationType: 'ImageMedia178X100', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n type: 'Image150x100',\r\n associationType: 'ImageMedia15X10',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 720, SourceX: 0, SourceY: 180,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 720, SourceX: 0, SourceY: 180,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', type: null, associationType: 'ImageMedia15X10', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n type: 'Image133x100',\r\n associationType: 'ImageMedia133X100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 0, SourceY: 134,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 0, SourceY: 134,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', type: null, associationType: 'ImageMedia133X100', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 1080, SourceX: 0, SourceY: 0,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 1080, SourceX: 0, SourceY: 0,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', type: null, associationType: 'SquareImageMedia', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: true, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }], [{\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n type: 'Image191x100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceX: 0, SourceY: 258, SourceWidth: 1080, SourceHeight: 565,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 565, SourceX: 0, SourceY: 258,\r\n },\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n type: null,\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: null,\r\n effectSettings: null,\r\n baseId: null,\r\n metadata: null,\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 565, SourceX: 0, SourceY: 258,\r\n },\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n type: 'Image178x100',\r\n associationType: 'ImageMedia178X100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 607, SourceX: 0, SourceY: 237,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 607, SourceX: 0, SourceY: 237,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', type: null, associationType: 'ImageMedia178X100', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n type: 'Image150x100',\r\n associationType: 'ImageMedia15X10',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 720, SourceX: 0, SourceY: 180,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 720, SourceX: 0, SourceY: 180,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', type: null, associationType: 'ImageMedia15X10', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n type: 'Image133x100',\r\n associationType: 'ImageMedia133X100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 0, SourceY: 134,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 0, SourceY: 134,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', type: null, associationType: 'ImageMedia133X100', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 1080, SourceX: 0, SourceY: 0,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 1080, SourceX: 0, SourceY: 0,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', type: null, associationType: 'SquareImageMedia', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: true, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }], [{\r\n id: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n idString: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n src: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n type: 'Image191x100',\r\n width: 2400,\r\n height: 1290,\r\n cropSettings: {\r\n SourceX: 0, SourceY: 17, SourceWidth: 2400, SourceHeight: 1257,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 2400, SourceHeight: 1257, SourceX: 0, SourceY: 17,\r\n },\r\n baseImage: {\r\n id: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n idString: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n src: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n type: null,\r\n width: 2400,\r\n height: 1290,\r\n cropSettings: null,\r\n effectSettings: null,\r\n baseId: null,\r\n metadata: null,\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 2400, SourceHeight: 1257, SourceX: 0, SourceY: 17,\r\n },\r\n },\r\n }, {\r\n id: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n idString: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n src: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n type: 'Image178x100',\r\n associationType: 'ImageMedia178X100',\r\n width: 2400,\r\n height: 1290,\r\n cropSettings: {\r\n SourceWidth: 2296, SourceHeight: 1290, SourceX: 52, SourceY: 0,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 2296, SourceHeight: 1290, SourceX: 52, SourceY: 0,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png', idString: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png', src: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png', type: null, associationType: 'ImageMedia178X100', width: 2400, height: 1290, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n idString: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n src: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n type: 'Image150x100',\r\n associationType: 'ImageMedia15X10',\r\n width: 2400,\r\n height: 1290,\r\n cropSettings: {\r\n SourceWidth: 1935, SourceHeight: 1290, SourceX: 233, SourceY: 0,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1935, SourceHeight: 1290, SourceX: 233, SourceY: 0,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png', idString: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png', src: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png', type: null, associationType: 'ImageMedia15X10', width: 2400, height: 1290, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n idString: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n src: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n type: 'Image133x100',\r\n associationType: 'ImageMedia133X100',\r\n width: 2400,\r\n height: 1290,\r\n cropSettings: {\r\n SourceWidth: 1716, SourceHeight: 1290, SourceX: 342, SourceY: 0,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1716, SourceHeight: 1290, SourceX: 342, SourceY: 0,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png', idString: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png', src: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png', type: null, associationType: 'ImageMedia133X100', width: 2400, height: 1290, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n idString: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n src: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n width: 2400,\r\n height: 1290,\r\n cropSettings: {\r\n SourceWidth: 1290, SourceHeight: 1290, SourceX: 555, SourceY: 0,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1290, SourceHeight: 1290, SourceX: 555, SourceY: 0,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png', idString: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png', src: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png', type: null, associationType: 'SquareImageMedia', width: 2400, height: 1290, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }]],\r\n shortHeadline: 'Maps Bing Maps',\r\n longHeadline: 'Make it faster and easier to go from Browsing to doing Things Online.',\r\n description: 'Make it faster and easier to go from Browsing to doing Things Online.',\r\n businessName: 'Bing',\r\n url: 'https://bing.com',\r\n}, {\r\n images: [[{\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n type: 'Image191x100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceX: 0, SourceY: 258, SourceWidth: 1080, SourceHeight: 565,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 565, SourceX: 0, SourceY: 258,\r\n },\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n type: null,\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: null,\r\n effectSettings: null,\r\n baseId: null,\r\n metadata: null,\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 565, SourceX: 0, SourceY: 258,\r\n },\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n type: 'Image178x100',\r\n associationType: 'ImageMedia178X100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 607, SourceX: 0, SourceY: 237,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 607, SourceX: 0, SourceY: 237,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', type: null, associationType: 'ImageMedia178X100', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n type: 'Image150x100',\r\n associationType: 'ImageMedia15X10',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 720, SourceX: 0, SourceY: 180,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 720, SourceX: 0, SourceY: 180,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', type: null, associationType: 'ImageMedia15X10', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n type: 'Image133x100',\r\n associationType: 'ImageMedia133X100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 0, SourceY: 134,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 0, SourceY: 134,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', type: null, associationType: 'ImageMedia133X100', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 1080, SourceX: 0, SourceY: 0,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 1080, SourceX: 0, SourceY: 0,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg', type: null, associationType: 'SquareImageMedia', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: true, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }], [{\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n type: 'Image191x100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceX: 0, SourceY: 258, SourceWidth: 1080, SourceHeight: 565,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 565, SourceX: 0, SourceY: 258,\r\n },\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n type: null,\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: null,\r\n effectSettings: null,\r\n baseId: null,\r\n metadata: null,\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 565, SourceX: 0, SourceY: 258,\r\n },\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n type: 'Image178x100',\r\n associationType: 'ImageMedia178X100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 607, SourceX: 0, SourceY: 237,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 607, SourceX: 0, SourceY: 237,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', type: null, associationType: 'ImageMedia178X100', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n type: 'Image150x100',\r\n associationType: 'ImageMedia15X10',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 720, SourceX: 0, SourceY: 180,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 720, SourceX: 0, SourceY: 180,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', type: null, associationType: 'ImageMedia15X10', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n type: 'Image133x100',\r\n associationType: 'ImageMedia133X100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 0, SourceY: 134,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 0, SourceY: 134,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', type: null, associationType: 'ImageMedia133X100', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 1080, SourceX: 0, SourceY: 0,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 1080, SourceX: 0, SourceY: 0,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg', type: null, associationType: 'SquareImageMedia', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: true, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }], [{\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n type: 'Image191x100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceX: 0, SourceY: 258, SourceWidth: 1080, SourceHeight: 565,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 565, SourceX: 0, SourceY: 258,\r\n },\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n type: null,\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: null,\r\n effectSettings: null,\r\n baseId: null,\r\n metadata: null,\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 565, SourceX: 0, SourceY: 258,\r\n },\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n type: 'Image178x100',\r\n associationType: 'ImageMedia178X100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 607, SourceX: 0, SourceY: 237,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 607, SourceX: 0, SourceY: 237,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg', type: null, associationType: 'ImageMedia178X100', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n type: 'Image150x100',\r\n associationType: 'ImageMedia15X10',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 720, SourceX: 0, SourceY: 180,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 720, SourceX: 0, SourceY: 180,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg', type: null, associationType: 'ImageMedia15X10', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n type: 'Image133x100',\r\n associationType: 'ImageMedia133X100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 0, SourceY: 134,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 0, SourceY: 134,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg', type: null, associationType: 'ImageMedia133X100', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 1080, SourceX: 0, SourceY: 0,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 1080, SourceX: 0, SourceY: 0,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg', type: null, associationType: 'SquareImageMedia', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: true, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }]],\r\n shortHeadline: 'Bing Photo Search',\r\n longHeadline: 'Make it faster and easier to go from Browsing to doing the Things you Love.',\r\n description: 'Make it faster and easier to go from Browsing to doing the Things you Love.',\r\n businessName: 'Bing',\r\n url: 'https://bing.com',\r\n}, {\r\n images: [[{\r\n id: '7146826138370',\r\n idString: '7146826138370',\r\n src: 'https://www.bing-exp.com/th?id=OADD2.7146826138370_17CZ8MCZKY4MKLZWVI&pid=21.2',\r\n type: 'Image191x100',\r\n associationType: 'LandscapeImageMedia',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 565, SourceX: 0, SourceY: 258,\r\n },\r\n isIncluded: false,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 565, SourceX: 0, SourceY: 258,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: '7146826138370', idString: '7146826138370', src: 'https://www.bing-exp.com/th?id=OADD2.7146826138370_17CZ8MCZKY4MKLZWVI&pid=21.2', type: null, associationType: 'LandscapeImageMedia', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: '7146826138370',\r\n idString: '7146826138370',\r\n src: 'https://www.bing-exp.com/th?id=OADD2.7146826138370_17CZ8MCZKY4MKLZWVI&pid=21.2',\r\n type: 'Image178x100',\r\n associationType: 'ImageMedia178X100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 607, SourceX: 0, SourceY: 237,\r\n },\r\n isIncluded: false,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 607, SourceX: 0, SourceY: 237,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: '7146826138370', idString: '7146826138370', src: 'https://www.bing-exp.com/th?id=OADD2.7146826138370_17CZ8MCZKY4MKLZWVI&pid=21.2', type: null, associationType: 'ImageMedia178X100', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: '7146826138370',\r\n idString: '7146826138370',\r\n src: 'https://www.bing-exp.com/th?id=OADD2.7146826138370_17CZ8MCZKY4MKLZWVI&pid=21.2',\r\n type: 'Image150x100',\r\n associationType: 'ImageMedia15X10',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 720, SourceX: 0, SourceY: 180,\r\n },\r\n isIncluded: false,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 720, SourceX: 0, SourceY: 180,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: '7146826138370', idString: '7146826138370', src: 'https://www.bing-exp.com/th?id=OADD2.7146826138370_17CZ8MCZKY4MKLZWVI&pid=21.2', type: null, associationType: 'ImageMedia15X10', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: '7146826138370',\r\n idString: '7146826138370',\r\n src: 'https://www.bing-exp.com/th?id=OADD2.7146826138370_17CZ8MCZKY4MKLZWVI&pid=21.2',\r\n type: 'Image133x100',\r\n associationType: 'ImageMedia133X100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 0, SourceY: 134,\r\n },\r\n isIncluded: false,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 0, SourceY: 134,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: '7146826138370', idString: '7146826138370', src: 'https://www.bing-exp.com/th?id=OADD2.7146826138370_17CZ8MCZKY4MKLZWVI&pid=21.2', type: null, associationType: 'ImageMedia133X100', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: '7146826138370',\r\n idString: '7146826138370',\r\n src: 'https://www.bing-exp.com/th?id=OADD2.7146826138370_17CZ8MCZKY4MKLZWVI&pid=21.2',\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 1080, SourceX: 0, SourceY: 0,\r\n },\r\n isIncluded: false,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 1080, SourceX: 0, SourceY: 0,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: '7146826138370', idString: '7146826138370', src: 'https://www.bing-exp.com/th?id=OADD2.7146826138370_17CZ8MCZKY4MKLZWVI&pid=21.2', type: null, associationType: 'SquareImageMedia', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: true, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }], [{\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n type: 'Image191x100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceX: 0, SourceY: 258, SourceWidth: 1080, SourceHeight: 565,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 565, SourceX: 0, SourceY: 258,\r\n },\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n type: null,\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: null,\r\n effectSettings: null,\r\n baseId: null,\r\n metadata: null,\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 565, SourceX: 0, SourceY: 258,\r\n },\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n type: 'Image178x100',\r\n associationType: 'ImageMedia178X100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 607, SourceX: 0, SourceY: 237,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 607, SourceX: 0, SourceY: 237,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg', type: null, associationType: 'ImageMedia178X100', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n type: 'Image150x100',\r\n associationType: 'ImageMedia15X10',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 720, SourceX: 0, SourceY: 180,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 720, SourceX: 0, SourceY: 180,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg', type: null, associationType: 'ImageMedia15X10', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n type: 'Image133x100',\r\n associationType: 'ImageMedia133X100',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 0, SourceY: 134,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 0, SourceY: 134,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg', type: null, associationType: 'ImageMedia133X100', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg',\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n width: 1080,\r\n height: 1080,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 1080, SourceX: 0, SourceY: 0,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 1080, SourceX: 0, SourceY: 0,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg', idString: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg', src: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1xZL420knQHMs_-TvANTgp33NWP_XeKZI.jpg', type: null, associationType: 'SquareImageMedia', width: 1080, height: 1080, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: true, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }], [{\r\n id: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n idString: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n src: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n type: 'Image191x100',\r\n width: 1920,\r\n height: 812,\r\n cropSettings: {\r\n SourceX: 185, SourceY: 0, SourceWidth: 1551, SourceHeight: 812,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 1551, SourceHeight: 812, SourceX: 185, SourceY: 0,\r\n },\r\n baseImage: {\r\n id: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n idString: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n src: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n type: null,\r\n width: 1920,\r\n height: 812,\r\n cropSettings: null,\r\n effectSettings: null,\r\n baseId: null,\r\n metadata: null,\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: true,\r\n originCropSetting: {\r\n SourceWidth: 1551, SourceHeight: 812, SourceX: 185, SourceY: 0,\r\n },\r\n },\r\n }, {\r\n id: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n idString: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n src: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n type: 'Image178x100',\r\n associationType: 'ImageMedia178X100',\r\n width: 1920,\r\n height: 812,\r\n cropSettings: {\r\n SourceWidth: 1445, SourceHeight: 812, SourceX: 238, SourceY: 0,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1445, SourceHeight: 812, SourceX: 238, SourceY: 0,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg', idString: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg', src: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg', type: null, associationType: 'ImageMedia178X100', width: 1920, height: 812, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n idString: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n src: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n type: 'Image150x100',\r\n associationType: 'ImageMedia15X10',\r\n width: 1920,\r\n height: 812,\r\n cropSettings: {\r\n SourceWidth: 1218, SourceHeight: 812, SourceX: 351, SourceY: 0,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1218, SourceHeight: 812, SourceX: 351, SourceY: 0,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg', idString: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg', src: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg', type: null, associationType: 'ImageMedia15X10', width: 1920, height: 812, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n idString: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n src: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n type: 'Image133x100',\r\n associationType: 'ImageMedia133X100',\r\n width: 1920,\r\n height: 812,\r\n cropSettings: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 420, SourceY: 0,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 1080, SourceHeight: 812, SourceX: 420, SourceY: 0,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg', idString: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg', src: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg', type: null, associationType: 'ImageMedia133X100', width: 1920, height: 812, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }, {\r\n id: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n idString: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n src: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg',\r\n type: 'Image1x1',\r\n associationType: 'SquareImageMedia',\r\n width: 1920,\r\n height: 812,\r\n cropSettings: {\r\n SourceWidth: 812, SourceHeight: 812, SourceX: 554, SourceY: 0,\r\n },\r\n isIncluded: true,\r\n isLogo: false,\r\n isRecommendedImage: false,\r\n originCropSetting: {\r\n SourceWidth: 812, SourceHeight: 812, SourceX: 554, SourceY: 0,\r\n },\r\n isAutoCropping: true,\r\n baseImage: {\r\n id: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg', idString: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg', src: 'https://blogs.bing.com/BingBlogs/files/b6/b6b1efa2-e24a-447d-8ec2-076a9ba7c4f2.jpg', type: null, associationType: 'SquareImageMedia', width: 1920, height: 812, cropSettings: null, effectSettings: null, baseId: null, metadata: null, isIncluded: false, isLogo: false, isRecommendedImage: false, originCropSetting: null,\r\n },\r\n }]],\r\n shortHeadline: 'Bing Images Search',\r\n longHeadline: 'Turn information into action. Make it faster & easier to go from Browsing to doing Things.',\r\n description: 'Turn information into action. Make it faster & easier to go from Browsing to doing Things.',\r\n businessName: 'Bing',\r\n url: 'https://bing.com',\r\n}];\r\n\r\n\r\nexport const ads = [{\r\n '@odata.type': '#Model.ResponsiveAd',\r\n Text: 'Make it faster and easier to go from Browsing to doing Things Online.',\r\n FinalUrls: ['https://bing.com'],\r\n Headline: 'Maps Bing Maps',\r\n LongHeadline: 'Make it faster and easier to go from Browsing to doing Things Online.',\r\n BusinessName: 'Bing',\r\n Images: [{\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.ImageAsset', Id: 0, Name: null, AssetType: 'Empty', Text: null, TracingId: null, SubType: 'None', IdString: '0', CropX: 0, CropY: 0, CropHeight: 1080, CropWidth: 1080, ImageUrl: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n },\r\n PerformanceMetrics: null,\r\n }, {\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.ImageAsset', Id: 0, Name: null, AssetType: 'Empty', Text: null, TracingId: null, SubType: 'None', IdString: '0', CropX: 0, CropY: 0, CropHeight: 1080, CropWidth: 1080, ImageUrl: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n },\r\n PerformanceMetrics: null,\r\n }, {\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.ImageAsset', Id: 0, Name: null, AssetType: 'Empty', Text: null, TracingId: null, SubType: 'None', IdString: '0', CropX: 0, CropY: 0, CropHeight: 1290, CropWidth: 2400, ImageUrl: 'https://blogs.bing.com/BingBlogs/files/50/50be2ce8-de70-4b33-8aa6-43abf774d114.png',\r\n },\r\n PerformanceMetrics: null,\r\n }],\r\n Headlines: [{\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset', Id: 0, Name: null, AssetType: 'Text', Text: 'Maps Bing Maps', TracingId: null,\r\n },\r\n PerformanceMetrics: null,\r\n }],\r\n LongHeadlines: [{\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset', Id: 0, Name: null, AssetType: 'Text', Text: 'Make it faster and easier to go from Browsing to doing Things Online.', TracingId: null,\r\n },\r\n PerformanceMetrics: null,\r\n }, {\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset', Id: 0, Name: null, AssetType: 'Text', Text: 'Bing helps you turn information into action, making it faster & easier to go from Browsing', TracingId: null,\r\n },\r\n PerformanceMetrics: null,\r\n }],\r\n Descriptions: [{\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset', Id: 0, Name: null, AssetType: 'Text', Text: 'Make it faster and easier to go from Browsing to doing Things Online.', TracingId: null,\r\n },\r\n PerformanceMetrics: null,\r\n }, {\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset', Id: 0, Name: null, AssetType: 'Text', Text: 'Bing helps you turn information into action, making it faster & easier to go from Browsing', TracingId: null,\r\n },\r\n PerformanceMetrics: null,\r\n }],\r\n}, {\r\n '@odata.type': '#Model.ResponsiveAd',\r\n Text: 'Make it faster and easier to go from Browsing to doing the Things you Love.',\r\n FinalUrls: ['https://bing.com'],\r\n Headline: 'Bing Photo Search',\r\n LongHeadline: 'Make it faster and easier to go from Browsing to doing the Things you Love.',\r\n BusinessName: 'Bing',\r\n Images: [{\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.ImageAsset', Id: 0, Name: null, AssetType: 'Empty', Text: null, TracingId: null, SubType: 'None', IdString: '0', CropX: 0, CropY: 0, CropHeight: 1080, CropWidth: 1080, ImageUrl: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1-HWpcPamxFHV1xYBSKHbKKD-kCAwRAi1.jpg',\r\n },\r\n PerformanceMetrics: null,\r\n }, {\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.ImageAsset', Id: 0, Name: null, AssetType: 'Empty', Text: null, TracingId: null, SubType: 'None', IdString: '0', CropX: 0, CropY: 0, CropHeight: 1080, CropWidth: 1080, ImageUrl: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/16KVMOQPeJU2laynni3k-c6CORdmpobSZ.jpg',\r\n },\r\n PerformanceMetrics: null,\r\n }, {\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.ImageAsset', Id: 0, Name: null, AssetType: 'Empty', Text: null, TracingId: null, SubType: 'None', IdString: '0', CropX: 0, CropY: 0, CropHeight: 1080, CropWidth: 1080, ImageUrl: 'https://aggsvcstorage.z13.web.core.windows.net/stock-images/1A9HiRm2AhPL6u0sgct0ku6nxDSPoHZhb.jpg',\r\n },\r\n PerformanceMetrics: null,\r\n }],\r\n Headlines: [{\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset', Id: 0, Name: null, AssetType: 'Text', Text: 'Bing Photo Search', TracingId: null,\r\n },\r\n PerformanceMetrics: null,\r\n }],\r\n LongHeadlines: [{\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset', Id: 0, Name: null, AssetType: 'Text', Text: 'Make it faster and easier to go from Browsing to doing the Things you Love.', TracingId: null,\r\n },\r\n PerformanceMetrics: null,\r\n }, {\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset', Id: 0, Name: null, AssetType: 'Text', Text: 'Turn information into action, making it faster and easier to go from Browsing to doing.', TracingId: null,\r\n },\r\n PerformanceMetrics: null,\r\n }],\r\n Descriptions: [{\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset', Id: 0, Name: null, AssetType: 'Text', Text: 'Make it faster and easier to go from Browsing to doing the Things you Love.', TracingId: null,\r\n },\r\n PerformanceMetrics: null,\r\n }, {\r\n Id: '',\r\n PinnedField: 'None',\r\n EditorialStatus: null,\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n PerformanceLabel: null,\r\n RecommendationId: null,\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset', Id: 0, Name: null, AssetType: 'Text', Text: 'Turn information into action, making it faster and easier to go from Browsing to doing.', TracingId: null,\r\n },\r\n PerformanceMetrics: null,\r\n }],\r\n}];\r\n","export const getCampaignSettingsStyles = () => ({\r\n campaignSettingsWrapper: {\r\n backgroundColor: '#FAF9F8',\r\n display: 'flex',\r\n height: '100%',\r\n minWidth: 1000,\r\n flexDirection: 'column',\r\n '& .conversion-wizard-footer': {\r\n flexBasis: 50,\r\n borderTop: '1px solid #edebe9',\r\n padding: '16px 24px',\r\n },\r\n },\r\n\r\n switchToAdvance: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n background: '#EFF6FC',\r\n padding: '5px 20px',\r\n alignItems: 'center',\r\n '& .welcome-text': {\r\n\r\n },\r\n '& .welcome-bold': {\r\n fontWeight: 600,\r\n marginLeft: 10,\r\n marginRight: 5,\r\n },\r\n },\r\n\r\n campaignSettingContainer: {\r\n padding: 30,\r\n flex: 1,\r\n overflow: 'auto',\r\n '& h2': {\r\n margin: 0,\r\n },\r\n '& .campaign-message': {\r\n color: '#605E5C',\r\n margin: '30px 0',\r\n },\r\n },\r\n campaignInformationContainer: {\r\n backgroundColor: 'white',\r\n padding: '16px 24px',\r\n maxWidth: 928,\r\n '& .title': {\r\n marginBottom: 10,\r\n },\r\n },\r\n budgetBid: {\r\n backgroundColor: 'white',\r\n padding: '16px 24px',\r\n marginTop: 10,\r\n maxWidth: 928,\r\n '& .max-cost-checkbox .ms-Checkbox-label': {\r\n display: 'flex !important',\r\n },\r\n '& .title': {\r\n marginBottom: 10,\r\n },\r\n '& .sub-title': {\r\n fontWeight: 600,\r\n },\r\n '& .bid-strategy-desc': {\r\n fontWeight: 400,\r\n marginBottom: 20,\r\n color: '#605E5C',\r\n },\r\n '& .bid-strategy': {\r\n marginTop: 20,\r\n },\r\n },\r\n budget: {\r\n position: 'relative',\r\n '& .currency': {\r\n position: 'absolute',\r\n left: 125,\r\n top: 27,\r\n },\r\n },\r\n bidValue: {\r\n position: 'relative',\r\n '& .currency': {\r\n position: 'absolute',\r\n left: 89,\r\n top: 27,\r\n },\r\n },\r\n});\r\n","import React, { useState } from 'react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { TextField, ITextFieldStyles } from '@fluentui/react';\r\nimport { useRecommendationFetch } from '../hooks';\r\nimport { useAudienceCampaignCreationWizardStore, WIZARD_ACTIONS } from '../store';\r\nimport { campaignNameValidation, finalUrlValidation } from '../utils';\r\nimport { getCampaignSettingsStyles } from './campaign-settings-styles';\r\n\r\n// eslint-disable-next-line no-underscore-dangle\r\ndeclare let _TL_: any;\r\n\r\nfunction remainingWarning(text: string, limit: number, i18n: any): string {\r\n if (text.length > limit) {\r\n return '';\r\n }\r\n return `${limit - text.length} ${i18n.getString(_TL_('characters remaining'))}`;\r\n}\r\n\r\nfunction getErrorMessage(text: string, limit: number, i18n: any, validationAfterBlur: boolean): string {\r\n if (validationAfterBlur) {\r\n return '';\r\n }\r\n\r\n if (!campaignNameValidation(text)) {\r\n return i18n.getString(_TL_('Field should not exceed 128 characters or empty'));\r\n }\r\n\r\n return '';\r\n}\r\n\r\nfunction finalURLErrorMessage(url: string, i18n: any, validationAfterBlur: boolean): string {\r\n if (validationAfterBlur) {\r\n return '';\r\n }\r\n\r\n if (finalUrlValidation(url)) {\r\n return '';\r\n }\r\n\r\n return i18n.getString(_TL_('One or more of the URLs are not valid.'));\r\n}\r\n\r\nexport function CampaignInformation() {\r\n const classes = useDefaultStyles(getCampaignSettingsStyles) as any;\r\n const setRecommendation = useRecommendationFetch();\r\n const {\r\n dispatch,\r\n i18n,\r\n state: {\r\n validations,\r\n currentCampaign: {\r\n name: campaignName,\r\n },\r\n finalURL,\r\n },\r\n } = useAudienceCampaignCreationWizardStore();\r\n const [name, setName] = useState(campaignName);\r\n const [url, setFinalURL] = useState(finalURL);\r\n\r\n const textFieldStyles: Partial = { fieldGroup: { width: 435 } };\r\n\r\n function changeCampaignName(_, value?: string) {\r\n setName(value);\r\n }\r\n\r\n function blurCampaignName(e: React.FocusEvent) {\r\n dispatch({\r\n type: WIZARD_ACTIONS.CAMPAIGN_NAME_CHANGE,\r\n payload: e.target.value,\r\n });\r\n }\r\n\r\n function changeFinalURL(_, value?: string) {\r\n setFinalURL(value);\r\n }\r\n\r\n function fetchRecommendation() {\r\n let formattedURL: string | undefined;\r\n\r\n if (url && !url.startsWith('http')) {\r\n formattedURL = `https://${url}`;\r\n setFinalURL(formattedURL);\r\n } else {\r\n formattedURL = url;\r\n }\r\n\r\n if (formattedURL === finalURL) {\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.FINALURL_CHANGE,\r\n payload: formattedURL,\r\n });\r\n\r\n if (url) {\r\n setRecommendation(url);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n

{i18n.getString(_TL_('Campaign Information'))}

\r\n\r\n \r\n \r\n
\r\n );\r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport _ from 'underscore';\r\nimport { isValidUrl } from '@bingads-webui/url-util';\r\nimport { scopeStore } from '@bingads-webui-campaign/global-context-store';\r\nimport {\r\n AdRecommendRepository,\r\n} from '@bingads-webui-campaign/responsive-ad-editor';\r\nimport { convertAdunitsToImageList } from '@bingads-webui-campaign/responsive-ad-editor/src/utils/ad-recommend-util';\r\n\r\nimport { getRecommendCacheByUrl, setRecommendCache } from '../utils';\r\n\r\nimport { LoadingState, useAudienceCampaignCreationWizardStore, WIZARD_ACTIONS } from '../store';\r\n\r\nimport { ads } from '../ad-creation/mock';\r\n\r\nexport const useRecommendationFetch = () => {\r\n const { dispatch } = useAudienceCampaignCreationWizardStore();\r\n const [url, setUrl] = useState('');\r\n const {\r\n aid,\r\n cid,\r\n } = _.chain(scopeStore.state).result('scope').result('values', {}).value() as any;\r\n\r\n const baseURL = `/Customers(${cid})/Accounts(${aid})/`;\r\n const repository = new AdRecommendRepository({ baseURL });\r\n\r\n useEffect(() => {\r\n if (!isValidUrl(url)) {\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.LOADING_RECOMMENDATION_STATE_UPDATE,\r\n payload: LoadingState.Loading,\r\n });\r\n\r\n const fetchData = async () => {\r\n try {\r\n let res = { value: [] };\r\n if ((window as any).e2eTestEnvironment) {\r\n res.value = ads;\r\n } else {\r\n const resultFromCache = getRecommendCacheByUrl(url);\r\n if (resultFromCache) {\r\n res = resultFromCache;\r\n } else {\r\n res = await repository.getRecommendAds(url);\r\n }\r\n }\r\n setRecommendCache(url, res);\r\n const result = convertAdunitsToImageList(res.value);\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.LOADING_RECOMMENDATION_STATE_UPDATE,\r\n payload: LoadingState.Sucess,\r\n });\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.FETCH_RECOMMENDATION,\r\n payload: {\r\n recommendations: res.value,\r\n adsForPreview: result,\r\n },\r\n });\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.RECOMMENDADS_SELECTED,\r\n payload: {\r\n recommmendationsSelected: Array(res.value.length).fill(true),\r\n savedRecommendations: Array(res.value.length).fill(null),\r\n },\r\n });\r\n } catch (error) {\r\n dispatch({\r\n type: WIZARD_ACTIONS.LOADING_RECOMMENDATION_STATE_UPDATE,\r\n payload: LoadingState.Failed,\r\n });\r\n }\r\n };\r\n\r\n fetchData();\r\n }, [url]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n\r\n return setUrl;\r\n};\r\n","export const enum BidStrategy {\r\n EnhancedCpc = 'EnhancedCpc',\r\n ManualCpc = 'ManualCpc',\r\n ManualCpm = 'ManualCpm',\r\n MaxConversions = 'MaxConversions',\r\n}\n","import React, { useState, useEffect } from 'react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { result } from 'underscore';\r\nimport { TextField,\r\n Dropdown,\r\n Stack,\r\n IDropdownOption,\r\n DropdownMenuItemType,\r\n Checkbox,\r\n} from '@fluentui/react';\r\nimport { HelpPopup } from '@bingads-webui-react/help-popup';\r\nimport { PricingModelToRangeKey } from '@bingads-webui-campaign/audience-campaign-shared';\r\n\r\nimport { DependencyResolver } from '@bingads-webui-campaign/dependency-resolver';\r\nimport {\r\n MaxCostValidation,\r\n budgetValidation,\r\n targetCPAValidation,\r\n bidValueValidation,\r\n pricingModelToRangeKeyMap\r\n} from '../utils';\r\nimport { useAudienceCampaignCreationWizardStore, WIZARD_ACTIONS } from '../store';\r\nimport { getCampaignSettingsStyles } from './campaign-settings-styles';\r\nimport { BidStrategy } from './campaign-setting-types';\r\n\r\n// eslint-disable-next-line no-underscore-dangle\r\ndeclare let _TL_: any;\r\n\r\nfunction getErrorMessage(key: string, value: number, i18n: any, validationAfterBlur: boolean) {\r\n if (validationAfterBlur) {\r\n return '';\r\n }\r\n\r\n if (bidValueValidation(key, value)) {\r\n return '';\r\n }\r\n const config = DependencyResolver.get('component/config/index');\r\n\r\n const ceilingValue = result(config.get(PricingModelToRangeKey[key]), 'CeilingValue');\r\n const floorValue = result(config.get(PricingModelToRangeKey[key]), 'FloorValue');\r\n\r\n return i18n.getString(_TL_('The bid value should be between {{floorValue}} and {{ceilingValue}}'), { ceilingValue, floorValue });\r\n}\r\n\r\nfunction getBudgetErrorMessage(validationAfterBlur: boolean, value: number, i18n: any) {\r\n if (validationAfterBlur) {\r\n return '';\r\n }\r\n\r\n if (!budgetValidation(value)) {\r\n return i18n.getString(_TL_('Budget should be larger than 0'));\r\n }\r\n\r\n return '';\r\n}\r\n\r\nfunction getMaxCostErrorMessage(validationAfterBlur: boolean, i18n: any, value?: number): string {\r\n if (validationAfterBlur) {\r\n return '';\r\n }\r\n\r\n if (!MaxCostValidation(value)) {\r\n return i18n.getString(_TL_('Max Cost must larger than 0'));\r\n }\r\n\r\n return '';\r\n}\r\n\r\nfunction getTargetCPAErrorMessage(i18n: any, value: number, validationAfterBlur: boolean) {\r\n if (validationAfterBlur) {\r\n return '';\r\n }\r\n\r\n if (!targetCPAValidation(value)) {\r\n return i18n.getString(_TL_('Target CPA must larger than 0'));\r\n }\r\n\r\n return '';\r\n}\r\n\r\nexport function BudgetBid() {\r\n const {\r\n viewContext, dispatch, i18n,\r\n state: {\r\n budget,\r\n validations,\r\n bidStrategy,\r\n bidValue,\r\n maxCost,\r\n targetCpa,\r\n },\r\n } = useAudienceCampaignCreationWizardStore();\r\n const [budgetState, setBudget] = useState(String(budget));\r\n const [bidValueState, setBidValue] = useState(String(bidValue));\r\n const [maxCostCheck, setMaxCostCheck] = useState(!!maxCost);\r\n const [maxCostState, setMaxCost] = useState(String(maxCost));\r\n const [targetCPAState, setTargetCPA] = useState(String(targetCpa));\r\n\r\n useEffect(() => {\r\n setBidValue(String(bidValue));\r\n }, [bidValue]);\r\n\r\n const permissionConfig = DependencyResolver.get('component/config/index');\r\n const permissions = permissionConfig.get('Permissions');\r\n const autoBiddingEnabled = permissions.IsAudienceCampaignAutoBiddingV2Enabled;\r\n const classes = useDefaultStyles(getCampaignSettingsStyles) as any;\r\n const { accountCurrencyCode } = viewContext;\r\n const options: IDropdownOption[] = [autoBiddingEnabled && {\r\n key: 'Automated',\r\n text: i18n.getString(_TL_('Automated')),\r\n itemType: DropdownMenuItemType.Header,\r\n }, {\r\n key: BidStrategy.EnhancedCpc,\r\n text: i18n.getString(_TL_('Enhanced CPC')),\r\n }, permissions.IsAudienceCampaignAutoBiddingV2Enabled && {\r\n key: BidStrategy.MaxConversions,\r\n text: i18n.getString(_TL_('Maximize Conversions')),\r\n }, autoBiddingEnabled && {\r\n key: 'divider_1',\r\n text: '-',\r\n itemType: DropdownMenuItemType.Divider,\r\n }, {\r\n key: 'Manual',\r\n text: i18n.getString(_TL_('Manual')),\r\n itemType: DropdownMenuItemType.Header,\r\n }, {\r\n key: BidStrategy.ManualCpc,\r\n text: i18n.getString(_TL_('Manual CPC')),\r\n }, {\r\n key: BidStrategy.ManualCpm,\r\n text: i18n.getString(_TL_('Manual CPM')),\r\n }].filter(option => !!option);\r\n\r\n const bidStrategyMap = {\r\n EnhancedCpc: {\r\n desc: i18n.getString(_TL_('Adjust my bid to get more conversions')),\r\n },\r\n ManualCpc: {\r\n desc: i18n.getString(_TL_('Cost per click')),\r\n },\r\n ManualCpm: {\r\n desc: i18n.getString(_TL_('Cost per thousand viewable impressions')),\r\n },\r\n MaxConversions: {\r\n desc: i18n.getString(_TL_('Set my bids to get the most conversion value')),\r\n },\r\n };\r\n\r\n function changeBudget(_, value?: string) {\r\n setBudget(value);\r\n }\r\n\r\n function changeBidStrategy(_, item?: IDropdownOption) {\r\n dispatch({\r\n type: WIZARD_ACTIONS.BIDSTRATEGY_CHANGE,\r\n payload: item!.key,\r\n });\r\n }\r\n\r\n function changeBidValue(_, value?: string) {\r\n setBidValue(value);\r\n }\r\n\r\n function blurBudget(e: React.FocusEvent) {\r\n dispatch({\r\n type: WIZARD_ACTIONS.BUDGET_CHANGE,\r\n payload: e.target.value,\r\n });\r\n }\r\n\r\n function blurBidValue(e: React.FocusEvent) {\r\n dispatch({\r\n type: WIZARD_ACTIONS.BIDVALUE_CHNAGE,\r\n payload: {\r\n rangeKey: pricingModelToRangeKeyMap[bidStrategy],\r\n value: e.target.value,\r\n },\r\n });\r\n }\r\n\r\n function maxCostCheckChange(_, checked?: boolean) {\r\n setMaxCostCheck(checked);\r\n\r\n if (!checked) {\r\n setMaxCost(undefined);\r\n dispatch({\r\n type: WIZARD_ACTIONS.MAXCOST_CHANGE,\r\n payload: undefined,\r\n });\r\n }\r\n }\r\n\r\n function changeMaxCost(_, value?: string) {\r\n setMaxCost(value);\r\n }\r\n\r\n function blurMaxCost() {\r\n dispatch({\r\n type: WIZARD_ACTIONS.MAXCOST_CHANGE,\r\n payload: maxCostState,\r\n });\r\n }\r\n\r\n function changeTargetCPA(_, value?: string) {\r\n setTargetCPA(value);\r\n }\r\n\r\n function blurTargetCPA() {\r\n dispatch({\r\n type: WIZARD_ACTIONS.TARGETCPA_CHANGE,\r\n payload: targetCPAState,\r\n });\r\n }\r\n\r\n return (\r\n
\r\n

{i18n.getString(_TL_('Budget & Bid Strategy'))}

\r\n
\r\n (\r\n \r\n {i18n.getString(_TL_('How much would you like to spend each day?'))}\r\n \r\n \r\n )}\r\n styles={{ fieldGroup: { width: 110 } }}\r\n />\r\n
{accountCurrencyCode}
\r\n
\r\n\r\n \r\n
{i18n.getString(_TL_('Bid strategy'))}
\r\n \r\n
\r\n\r\n (\r\n \r\n {i18n.getString(_TL_('How do you want to manage your bids?'))}\r\n {i18n.getString(_TL_('Learn more'))}\r\n \r\n )}\r\n styles={{ dropdown: { width: 240 } }}\r\n />\r\n
{bidStrategyMap[bidStrategy].desc}
\r\n\r\n {\r\n bidStrategy === BidStrategy.MaxConversions ?\r\n
\r\n
\r\n (\r\n \r\n
{i18n.getString(_TL_('Target CPA'))}
\r\n \r\n
\r\n )}\r\n value={String(targetCPAState)}\r\n styles={{ fieldGroup: { width: 80 } }}\r\n />\r\n
{accountCurrencyCode}
\r\n
\r\n \r\n {\r\n maxCostCheck &&\r\n \r\n }\r\n
:\r\n
\r\n (\r\n \r\n
{i18n.getString(_TL_('Bid value'))}
\r\n \r\n
\r\n )}\r\n value={String(bidValueState)}\r\n styles={{ fieldGroup: { width: 80 } }}\r\n />\r\n
{accountCurrencyCode}
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","// import _ from 'underscore';\r\nimport React from 'react';\r\nimport { Stack, DefaultButton, PrimaryButton } from '@fluentui/react';\r\n\r\ninterface IProps {\r\n // config: any;\r\n buttons: {\r\n type: string;\r\n text: string;\r\n onClick: () => void;\r\n disabled?: boolean,\r\n }[];\r\n}\r\n\r\nfunction getButton(type: string) {\r\n if (type === 'Primary') {\r\n return PrimaryButton;\r\n } else if (type === 'Default') {\r\n return DefaultButton;\r\n }\r\n\r\n return DefaultButton;\r\n}\r\n\r\nexport function StepFooter(props: IProps) {\r\n const { buttons } = props;\r\n\r\n return (\r\n
\r\n \r\n {buttons.map((button) => {\r\n const { onClick, text, type, disabled = false } = button;\r\n const Button = getButton(type);\r\n\r\n return
\r\n );\r\n}\r\n","import React from 'react';\r\n\r\ninterface IProps {\r\n errors: string[];\r\n}\r\n\r\nexport function ErrorView(props: IProps) {\r\n const { errors } = props;\r\n\r\n return (\r\n
\r\n {errors.map(error => (\r\n
{error}
\r\n ))}\r\n
\r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { routeStore, siteMapStore } from '@bingads-webui-campaign/global-context-store';\r\nimport { DependencyResolver } from '@bingads-webui-campaign/dependency-resolver';\r\nimport { CrudAudienceAdgroup } from '@bingads-webui-campaign/crud-audience-adgroup';\r\nimport { FontIcon, DefaultButton, Spinner, SpinnerSize } from '@fluentui/react';\r\nimport BlockUi from 'react-block-ui';\r\nimport { AudienceTargetInfo } from '@bingads-webui-campaign/audience-target-info';\r\nimport { schema } from '@bingads-webui-campaign/audience-campaign-shared';\r\n\r\nimport { CampaignInformation } from './campaign-information';\r\nimport { BudgetBid } from './budget-bid';\r\nimport { useAudienceCampaignCreationWizardStore, WIZARD_ACTIONS, LoadingState } from '../store';\r\nimport { getCampaignSettingsStyles } from './campaign-settings-styles';\r\nimport { StepFooter } from '../step-footer';\r\nimport {\r\n navigateToRoute,\r\n handleErrors,\r\n campaignNameValidation,\r\n finalUrlValidation,\r\n MaxCostValidation,\r\n pricingModelToRangeKeyMap,\r\n targetCPAValidation,\r\n bidValueValidation,\r\n budgetValidation\r\n} from '../utils';\r\nimport { ErrorView } from '../components';\r\nimport { BidStrategy } from './campaign-setting-types';\r\n\r\nconst pricingModelAdgroupBidAttributeMapping = {\r\n EnhancedCpc: 'SearchBid',\r\n MaxConversions: 'SearchBid',\r\n ManualCpm: 'CpmBid',\r\n ManualCpc: 'SearchBid',\r\n};\r\n\r\n// eslint-disable-next-line no-underscore-dangle\r\ndeclare let _TL_: any;\r\n\r\nexport function CampaignSettingsContainer() {\r\n const classes = useDefaultStyles(getCampaignSettingsStyles) as any;\r\n\r\n const {\r\n dispatch,\r\n viewContext,\r\n i18n,\r\n deps,\r\n perfMarker,\r\n activities: {\r\n campaignSettingActivity,\r\n },\r\n state: {\r\n budget,\r\n validations,\r\n bidStrategy,\r\n bidValue,\r\n maxCost,\r\n targetCpa,\r\n adgroupBackboneView,\r\n finalURL,\r\n currentAdgroup: {\r\n id: adgroupId,\r\n },\r\n loadingState: {\r\n saveCampaign,\r\n },\r\n currentCampaign: {\r\n name: campaignName,\r\n id: campaignId,\r\n },\r\n },\r\n } = useAudienceCampaignCreationWizardStore();\r\n const [errors, setErrors] = useState([]);\r\n\r\n const setupAdgroupView = () => {\r\n if (adgroupBackboneView) {\r\n return adgroupBackboneView;\r\n }\r\n const instr = DependencyResolver.get('campaignui/feature/instrumentation/index');\r\n instr.addScenario(schema);\r\n const logScenario = instr.aimCampaignCreationWizard.create();\r\n\r\n const currentLevelTargetInfo = new AudienceTargetInfo({\r\n resourceName: 'AdGroupCriterion',\r\n deps,\r\n isForVNext: true,\r\n isAudienceCreationWorkflow: true,\r\n });\r\n\r\n const options = {\r\n perfMarker,\r\n logScenario,\r\n deps: {\r\n ...deps,\r\n i18nNewDesign: i18n,\r\n },\r\n viewContext,\r\n newI18n: i18n,\r\n currentLevelTargetInfo,\r\n scenario: 'simplify-campaign-creation',\r\n };\r\n\r\n return new CrudAudienceAdgroup(options);\r\n };\r\n\r\n const validate = () => {\r\n const validationErrors = validations;\r\n if (!campaignNameValidation(campaignName)) {\r\n validationErrors.campaignName = false;\r\n }\r\n\r\n if (!finalUrlValidation(finalURL)) {\r\n validationErrors.finalUrl = false;\r\n }\r\n\r\n if (!budgetValidation(budget)) {\r\n validationErrors.budget = false;\r\n }\r\n\r\n if (bidStrategy === BidStrategy.MaxConversions) {\r\n if (!targetCPAValidation(targetCpa)) {\r\n validationErrors.targetCpa = false;\r\n }\r\n // bypass bidvalue validation if max conversion\r\n validationErrors.bidValue = true;\r\n\r\n if (maxCost) {\r\n if (!MaxCostValidation(maxCost)) {\r\n validationErrors.maxCost = false;\r\n }\r\n } else {\r\n validationErrors.maxCost = true;\r\n }\r\n } else {\r\n if (!bidValueValidation(pricingModelToRangeKeyMap[bidStrategy], bidValue)) {\r\n validationErrors.bidValue = false;\r\n }\r\n // bypass max cost and target cpa validation if not max conversion\r\n validationErrors.maxCost = true;\r\n validationErrors.targetCpa = true;\r\n }\r\n\r\n if (Object.values(validationErrors).some(error => error === false)) {\r\n dispatch({\r\n type: WIZARD_ACTIONS.VALIDATION_CHANGE,\r\n payload: validationErrors,\r\n });\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const save = async () => {\r\n dispatch({\r\n type: WIZARD_ACTIONS.CAMPAIGN_SAVING_STATE_UPDATE,\r\n payload: LoadingState.Loading,\r\n });\r\n\r\n const jsdata = DependencyResolver.get('component/js-data-campaign/index');\r\n const timeZoneMapper = DependencyResolver.get('component/timezonemapper/index');\r\n\r\n const params = {\r\n TimeZone: timeZoneMapper.getAccountTimeZone(),\r\n CampaignType: 'Audience',\r\n Languages: ['All'],\r\n Name: campaignName,\r\n Status: 'Paused',\r\n BiddingScheme: {\r\n Type: bidStrategy,\r\n },\r\n Budget: {\r\n Amount: budget,\r\n Type: 'DailyStandard',\r\n },\r\n AdScheduleUseSearcherTimeZone: false,\r\n };\r\n\r\n if (bidStrategy === BidStrategy.MaxConversions) {\r\n params.BiddingScheme = {\r\n Type: bidStrategy,\r\n // @ts-ignore\r\n TargetCpa: targetCpa,\r\n // @ts-ignore\r\n MaxCpc: {\r\n Amount: maxCost,\r\n },\r\n };\r\n }\r\n\r\n let campaignRes;\r\n let adgroupRes;\r\n\r\n try {\r\n const requestOptions = { adapter: 'bulk', cacheResponse: false };\r\n if (campaignId) {\r\n campaignRes = await jsdata.Campaign.update(campaignId, params, requestOptions);\r\n } else {\r\n campaignRes = await jsdata.Campaign.create(params, requestOptions);\r\n campaignSettingActivity.signal(`campaign Id: ${campaignRes.Id}`);\r\n }\r\n\r\n const adgroupParmas = {\r\n PricingModel: bidStrategy,\r\n Name: 'Adgroup 1',\r\n [pricingModelAdgroupBidAttributeMapping[bidStrategy]]: bidValue,\r\n Campaign: {\r\n Id: campaignRes.Id,\r\n },\r\n };\r\n\r\n if (adgroupId) {\r\n adgroupRes = await jsdata.AdGroup.update(\r\n adgroupId,\r\n adgroupParmas,\r\n requestOptions\r\n );\r\n } else {\r\n adgroupRes = await jsdata.AdGroup.create(adgroupParmas, requestOptions);\r\n campaignSettingActivity.signal(`ad group Id: ${adgroupRes.Id}`);\r\n }\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.CAMPAIGN_SAVING_STATE_UPDATE,\r\n payload: LoadingState.Sucess,\r\n });\r\n\r\n viewContext.currentCampaign = campaignRes;\r\n viewContext.currentAdGroup = adgroupRes;\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.CAMPAIGN_UPDATE,\r\n payload: {\r\n id: campaignRes.Id,\r\n },\r\n });\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.ADGROUP_UPDATE,\r\n payload: {\r\n id: adgroupRes.Id,\r\n name: adgroupRes.Name,\r\n },\r\n });\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.INIT_ADGOURPBACKBONE_VIEW,\r\n payload: setupAdgroupView(),\r\n });\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.NAVIGATE_TO_ADS,\r\n });\r\n } catch (error) {\r\n handleErrors(campaignSettingActivity, error, (errorMsgs: {message: string}[]) => {\r\n setErrors(errorMsgs.map(errorMsg => errorMsg.message));\r\n });\r\n dispatch({\r\n type: WIZARD_ACTIONS.CAMPAIGN_SAVING_STATE_UPDATE,\r\n payload: LoadingState.Failed,\r\n });\r\n }\r\n };\r\n\r\n const footButtons = [{\r\n type: 'Primary',\r\n text: i18n.getString(_TL_('Save & go to next step')),\r\n onClick: () => {\r\n if (validate()) {\r\n save();\r\n }\r\n },\r\n }, {\r\n type: 'Default',\r\n text: i18n.getString(_TL_('Cancel')),\r\n onClick: () => {\r\n if (window.confirm('Do you really want to cancel and leave?')) { // eslint-disable-line no-alert\r\n navigateToRoute(routeStore, siteMapStore.state.siteMap, 'campaigns');\r\n }\r\n },\r\n }];\r\n\r\n function handleSwitch() {\r\n navigateToRoute(routeStore, siteMapStore.state.siteMap, 'campaign-create-audience');\r\n }\r\n\r\n return (\r\n } >\r\n
\r\n
\r\n
\r\n \r\n {i18n.getString(_TL_('Welcome to Simplified audience setup.'))}\r\n {i18n.getString(_TL_('You are in Pilot mode. Your campaigns and ads will be set up for increased performance using automated bidding, targeting and ad recommendation capabilities.'))}\r\n
\r\n \r\n
\r\n
\r\n

{i18n.getString(_TL_('Campaign Settings'))}

\r\n
{i18n.getString(_TL_('Tell us about your campaign and how much you want to spend.'))}
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","export enum WIZARD_ACTIONS {\r\n WIZARD_NAVIGATE_NEXT = 'WIZARD_NAVIGATE_NEXT',\r\n CAMPAIGN_NAME_CHANGE = 'CAMPAIGN_NAME_CHANGE',\r\n FINALURL_CHANGE = 'FINALURL_CHANGE',\r\n BUDGET_CHANGE = 'BUDGET_CHANGE',\r\n BIDSTRATEGY_CHANGE = 'BIDSTRATEGY_CHANGE',\r\n BIDVALUE_CHNAGE = 'BIDVALUE_CHNAGE',\r\n SUGGESTEDBIDMAP_UPDATE = 'SUGGESTEDBIDMAP_UPDATE',\r\n NAVIGATE_TO_ADS = 'NAVIGATE_TO_ADS',\r\n NAVIGATE_TO_SUMMARY = 'NAVIGATE_TO_SUMMARY',\r\n NAVIGATE_TO_CAMPAIGNSETTINGS = 'NAVIGATE_TO_CAMPAIGNSETTINGS',\r\n FETCH_RECOMMENDATION = 'FETCH_RECOMMENDATION',\r\n FETCH_ADS = 'FETCH_ADS',\r\n CAMPAIGN_SAVING_STATE_UPDATE = 'CAMPAIGN_SAVING_STATE_UPDATE',\r\n LOADING_SUGGESTED_BID_STATE_UPDATE = 'LOADING_SUGGESTED_BID_STATE_UPDATE',\r\n LOADING_ADS_STATE_UPDATE = 'LOADING_ADS_STATE_UPDATE',\r\n EDITING_AD_STATE_UPDATE = 'EDITING_AD_STATE_UPDATE',\r\n LOADING_RECOMMENDATION_STATE_UPDATE = 'LOADING_RECOMMENDATION_STATE_UPDATE',\r\n CAMPAIGN_UPDATE = 'CAMPAIGN_UPDATE',\r\n ADGROUP_UPDATE = 'ADGROUP_UPDATE',\r\n RECOMMENDADS_SELECTED = 'RECOMMENDADS_SELECTED',\r\n SAVE_ADS_STATE_UPDATE = 'SAVE_ADS_STATE_UPDATE',\r\n INIT_ADGOURPBACKBONE_VIEW = 'INIT_ADGOURPBACKBONE_VIEW',\r\n MAXCOST_CHANGE = 'MAXCOST_CHANGE',\r\n CHANGE_ADGROUP_TARGET_DOM = 'CHANGE_ADGROUP_TARGET_DOM',\r\n TARGETCPA_CHANGE = 'TARGETCPA_CHANGE',\r\n VALIDATION_CHANGE = 'VALIDATION_CHANGE',\r\n UPDATE_SAVEDADS = 'UPDATE_SAVEDADS',\r\n CUSTOMADS_SELECTED = 'CUSTOMADS_SELECTED',\r\n FINISH_CREATION = 'FINISH_CREATION',\r\n}\r\n","// import _ from 'underscore';\r\nimport { IRecommendAd } from '@bingads-webui-campaign-react/audience-shared';\r\nimport { WIZARD_ACTIONS } from './audience-creation-flow-actions';\r\nimport { BidStrategy } from '../campaign-settings';\r\nimport {\r\n campaignNameValidation,\r\n finalUrlValidation,\r\n MaxCostValidation,\r\n bidValueValidation,\r\n targetCPAValidation,\r\n budgetValidation\r\n} from '../utils';\r\n\r\nexport enum Step {\r\n campaignSettings = 'campaignSettings',\r\n ads = 'ads',\r\n summary = 'summary'\r\n}\r\n\r\nexport interface IAction {\r\n type: WIZARD_ACTIONS;\r\n payload?: any;\r\n}\r\n\r\nexport interface IAdModel extends IRecommendAd {\r\n Id: number;\r\n}\r\n\r\ninterface ICurrentCampaign {\r\n name: string;\r\n id: string;\r\n type: string;\r\n}\r\n\r\ninterface ICurrentAdgroup {\r\n name: string;\r\n id: string;\r\n}\r\n\r\nexport enum LoadingState {\r\n Init = 'Init',\r\n Loading = 'Loading',\r\n Sucess = 'Sucess',\r\n Failed = 'Failed'\r\n}\r\n\r\nexport interface IState {\r\n currentStep: Step;\r\n finalURL: string;\r\n budget: number;\r\n bidStrategy: BidStrategy;\r\n bidValue: number;\r\n maxCost?: number;\r\n targetCpa?: number;\r\n cid: number;\r\n aid: number;\r\n recommmendationsSelected: boolean[];\r\n customAdsSelected: boolean[];\r\n adgroupBackboneView?: any;\r\n adgroupTargetDom?: any;\r\n validations: {\r\n campaignName: boolean,\r\n finalUrl: boolean,\r\n bidValue: boolean,\r\n maxCost: boolean,\r\n budget: boolean,\r\n targetCpa: boolean,\r\n },\r\n loadingState: {\r\n saveCampaign: LoadingState;\r\n saveAds: LoadingState;\r\n loadingRecommendation: LoadingState;\r\n editingAd: LoadingState;\r\n loadingAds: LoadingState;\r\n loadingSuggestedBid: LoadingState;\r\n finishCreation: LoadingState;\r\n },\r\n currentCampaign: ICurrentCampaign;\r\n currentAdgroup: ICurrentAdgroup;\r\n bidSuggestionMap?: Record;\r\n recommendations: IRecommendAd[];\r\n savedRecommendations: (IAdModel | null)[];\r\n customAds: IAdModel[];\r\n}\r\n\r\nexport const initialState: IState = {\r\n currentStep: Step.campaignSettings,\r\n finalURL: '',\r\n aid: 0,\r\n cid: 0,\r\n customAdsSelected: [],\r\n recommmendationsSelected: [],\r\n loadingState: {\r\n saveCampaign: LoadingState.Init,\r\n loadingRecommendation: LoadingState.Init,\r\n saveAds: LoadingState.Init,\r\n editingAd: LoadingState.Init,\r\n loadingSuggestedBid: LoadingState.Init,\r\n loadingAds: LoadingState.Init,\r\n finishCreation: LoadingState.Init,\r\n },\r\n validations: {\r\n campaignName: true,\r\n finalUrl: true,\r\n bidValue: true,\r\n budget: true,\r\n maxCost: true,\r\n targetCpa: true,\r\n },\r\n currentCampaign: {\r\n name: '',\r\n id: '',\r\n type: 'Audience',\r\n },\r\n currentAdgroup: {\r\n name: 'Adgroup 1',\r\n id: '',\r\n },\r\n budget: 0,\r\n bidValue: 0,\r\n bidStrategy: BidStrategy.EnhancedCpc,\r\n recommendations: [],\r\n customAds: [],\r\n savedRecommendations: [],\r\n};\r\n\r\nexport const AudienceCreationWizardReducer = (state: IState, action: IAction) => {\r\n switch (action.type) {\r\n case WIZARD_ACTIONS.CAMPAIGN_NAME_CHANGE:\r\n return {\r\n ...state,\r\n validations: {\r\n ...state.validations,\r\n campaignName: campaignNameValidation(action.payload),\r\n },\r\n currentCampaign: {\r\n ...state.currentCampaign,\r\n name: action.payload,\r\n },\r\n };\r\n case WIZARD_ACTIONS.FINALURL_CHANGE:\r\n return {\r\n ...state,\r\n validations: {\r\n ...state.validations,\r\n finalUrl: finalUrlValidation(action.payload),\r\n },\r\n finalURL: action.payload,\r\n };\r\n case WIZARD_ACTIONS.BUDGET_CHANGE:\r\n return {\r\n ...state,\r\n validations: {\r\n ...state.validations,\r\n budget: budgetValidation(action.payload),\r\n },\r\n budget: action.payload,\r\n };\r\n case WIZARD_ACTIONS.BIDSTRATEGY_CHANGE:\r\n return {\r\n ...state,\r\n bidStrategy: action.payload,\r\n };\r\n case WIZARD_ACTIONS.BIDVALUE_CHNAGE:\r\n return {\r\n ...state,\r\n validations: {\r\n ...state.validations,\r\n bidValue: bidValueValidation(action.payload.rangeKey, action.payload.value),\r\n },\r\n bidValue: action.payload.value,\r\n };\r\n case WIZARD_ACTIONS.SUGGESTEDBIDMAP_UPDATE:\r\n return {\r\n ...state,\r\n bidSuggestionMap: action.payload,\r\n };\r\n case WIZARD_ACTIONS.NAVIGATE_TO_ADS:\r\n return {\r\n ...state,\r\n currentStep: Step.ads,\r\n };\r\n case WIZARD_ACTIONS.NAVIGATE_TO_CAMPAIGNSETTINGS:\r\n return {\r\n ...state,\r\n currentStep: Step.campaignSettings,\r\n };\r\n case WIZARD_ACTIONS.NAVIGATE_TO_SUMMARY:\r\n return {\r\n ...state,\r\n currentStep: Step.summary,\r\n };\r\n case WIZARD_ACTIONS.FETCH_RECOMMENDATION:\r\n return {\r\n ...state,\r\n ...action.payload,\r\n };\r\n case WIZARD_ACTIONS.FETCH_ADS:\r\n return {\r\n ...state,\r\n customAds: action.payload,\r\n };\r\n case WIZARD_ACTIONS.CAMPAIGN_SAVING_STATE_UPDATE:\r\n return {\r\n ...state,\r\n loadingState: {\r\n ...state.loadingState,\r\n saveCampaign: action.payload,\r\n },\r\n };\r\n case WIZARD_ACTIONS.LOADING_SUGGESTED_BID_STATE_UPDATE:\r\n return {\r\n ...state,\r\n loadingState: {\r\n ...state.loadingState,\r\n loadingSuggestedBid: action.payload,\r\n },\r\n };\r\n case WIZARD_ACTIONS.LOADING_ADS_STATE_UPDATE:\r\n return {\r\n ...state,\r\n loadingState: {\r\n ...state.loadingState,\r\n loadingAds: action.payload,\r\n },\r\n };\r\n case WIZARD_ACTIONS.EDITING_AD_STATE_UPDATE:\r\n return {\r\n ...state,\r\n loadingState: {\r\n ...state.loadingState,\r\n editingAd: action.payload,\r\n },\r\n };\r\n case WIZARD_ACTIONS.LOADING_RECOMMENDATION_STATE_UPDATE:\r\n return {\r\n ...state,\r\n loadingState: {\r\n ...state.loadingState,\r\n loadingRecommendation: action.payload,\r\n },\r\n };\r\n case WIZARD_ACTIONS.FINISH_CREATION:\r\n return {\r\n ...state,\r\n loadingState: {\r\n ...state.loadingState,\r\n finishCreation: action.payload,\r\n },\r\n };\r\n case WIZARD_ACTIONS.CAMPAIGN_UPDATE:\r\n return {\r\n ...state,\r\n currentCampaign: {\r\n ...state.currentCampaign,\r\n ...action.payload,\r\n },\r\n };\r\n case WIZARD_ACTIONS.ADGROUP_UPDATE:\r\n return {\r\n ...state,\r\n currentAdgroup: {\r\n ...state.currentAdgroup,\r\n ...action.payload,\r\n },\r\n };\r\n case WIZARD_ACTIONS.RECOMMENDADS_SELECTED:\r\n return {\r\n ...state,\r\n recommmendationsSelected: action.payload.recommmendationsSelected,\r\n savedRecommendations: action.payload.savedRecommendations,\r\n };\r\n case WIZARD_ACTIONS.CUSTOMADS_SELECTED:\r\n return {\r\n ...state,\r\n customAds: action.payload.customAds,\r\n customAdsSelected: action.payload.customAdsSelected,\r\n };\r\n case WIZARD_ACTIONS.SAVE_ADS_STATE_UPDATE:\r\n return {\r\n ...state,\r\n loadingState: {\r\n ...state.loadingState,\r\n saveAds: action.payload,\r\n },\r\n };\r\n case WIZARD_ACTIONS.INIT_ADGOURPBACKBONE_VIEW:\r\n return {\r\n ...state,\r\n adgroupBackboneView: action.payload,\r\n };\r\n case WIZARD_ACTIONS.MAXCOST_CHANGE:\r\n return {\r\n ...state,\r\n validations: {\r\n ...state.validations,\r\n maxCost: MaxCostValidation(action.payload),\r\n },\r\n maxCost: action.payload,\r\n };\r\n case WIZARD_ACTIONS.CHANGE_ADGROUP_TARGET_DOM:\r\n return {\r\n ...state,\r\n adgroupTargetDom: action.payload,\r\n };\r\n case WIZARD_ACTIONS.TARGETCPA_CHANGE:\r\n return {\r\n ...state,\r\n validations: {\r\n ...state.validations,\r\n targetCpa: targetCPAValidation(action.payload),\r\n },\r\n targetCpa: action.payload,\r\n };\r\n case WIZARD_ACTIONS.VALIDATION_CHANGE:\r\n return {\r\n ...state,\r\n validations: {\r\n ...state.validations,\r\n ...action.payload,\r\n },\r\n };\r\n case WIZARD_ACTIONS.UPDATE_SAVEDADS:\r\n if (action.payload.type === 'custome') {\r\n const ads = state.customAds;\r\n const selects = state.customAdsSelected;\r\n\r\n selects[action.payload.index] = true;\r\n ads[action.payload.index] = action.payload.savedAd;\r\n return {\r\n ...state,\r\n customAds: [...ads],\r\n customAdsSelected: [...selects],\r\n };\r\n } else if (action.payload.type === 'recommend') {\r\n const ads = state.savedRecommendations;\r\n const selects = state.recommmendationsSelected;\r\n\r\n selects[action.payload.index] = true;\r\n ads[action.payload.index] = action.payload.savedAd;\r\n return {\r\n ...state,\r\n savedRecommendations: [...ads],\r\n recommmendationsSelected: [...selects],\r\n };\r\n } else if (action.payload.type === 'add') {\r\n return {\r\n ...state,\r\n customAds: [...state.customAds, action.payload.savedAd],\r\n customAdsSelected: [...state.customAdsSelected, true],\r\n };\r\n }\r\n return {\r\n ...state,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import React, { useEffect, useMemo } from 'react';\r\nimport _ from 'underscore';\r\n// @ts-ignore\r\nimport { getBudgetRange } from '@bingads-webui-campaign-legacy/common-grid-config/budget/get-budget-range';\r\nimport { DependencyResolver } from '@bingads-webui-campaign/dependency-resolver';\r\nimport { AudienceTargetInfo } from '@bingads-webui-campaign/audience-target-info';\r\nimport { scopeStore } from '@bingads-webui-campaign/global-context-store';\r\nimport { schema, BidStrategy as EstimateBidStrategy } from '@bingads-webui-campaign/audience-campaign-shared';\r\nimport { EstimateRequestFactory } from '@bingads-webui-campaign/reach-estimate-control';\r\nimport { BidStrategy } from '../campaign-settings';\r\nimport { AudienceCreationWizardReducer, initialState, IAction, IState, LoadingState } from './audience-creation-flow-reducer';\r\nimport { WIZARD_ACTIONS } from './audience-creation-flow-actions';\r\nimport { pricingModelToRangeKeyMap } from '../utils';\r\n\r\nfunction getEstimatePromise(data): Promise {\r\n const odata = DependencyResolver.get('component/http/channel/odata');\r\n\r\n return odata.post('Customers()/Accounts()/Default.AudienceEstimationV2', {\r\n host: 'adinsight.odata.url',\r\n path: 'AdInsight/V2/',\r\n data: { request: data },\r\n customHeader: {\r\n name: 'x-ms-scenarioname',\r\n },\r\n });\r\n}\r\n\r\ninterface Context {\r\n permissions: any;\r\n startToFinishMarker: any;\r\n viewContext: any;\r\n activities: {\r\n campaignSettingActivity: any,\r\n summaryActivity: any,\r\n adCreationActivity: any,\r\n logScenario: any,\r\n };\r\n i18n: any;\r\n deps: any;\r\n perfMarker: any;\r\n dispatch: React.Dispatch;\r\n state: IState;\r\n}\r\n\r\nfunction setupInstrumentation() {\r\n const instr = DependencyResolver.get('campaignui/feature/instrumentation/index');\r\n instr.addScenario(schema);\r\n const logScenario = instr.simplifiedCampaignCreationWizard.create();\r\n\r\n return {\r\n logScenario,\r\n campaignSettingActivity: logScenario.campaignSetting.create(),\r\n adCreationActivity: logScenario.adCreation.create(),\r\n summaryActivity: logScenario.summary.create(),\r\n };\r\n}\r\n\r\nfunction setupInitialState(currencyCode: string) {\r\n const {\r\n aid,\r\n cid,\r\n } = _.chain(scopeStore.state).result('scope').result('values', {}).value() as any;\r\n const permissionConfig = DependencyResolver.get('component/config/index');\r\n const permissions = permissionConfig.get('Permissions');\r\n\r\n const realDefaultBudget = getBudgetRange(currencyCode).Daily.Default;\r\n const defaultBudget = currencyCode === 'USD' ? 25 : realDefaultBudget;\r\n\r\n let defaultBidStrategy = BidStrategy.ManualCpm;\r\n if (permissions.IsAudienceCampaignAutoBiddingV2Enabled) {\r\n defaultBidStrategy = BidStrategy.MaxConversions;\r\n }\r\n\r\n return {\r\n ...initialState,\r\n bidStrategy: defaultBidStrategy,\r\n budget: defaultBudget,\r\n cid,\r\n aid,\r\n };\r\n}\r\n\r\ninterface IProps {\r\n children: any;\r\n context: {\r\n deps: any;\r\n perfMarker: any;\r\n i18n: any;\r\n viewContext: any;\r\n permissions: any;\r\n }\r\n}\r\n\r\nconst AudienceCampaignCreationWizardContext = React.createContext(null);\r\n\r\nexport const useAudienceCampaignCreationWizardStore = () => React.useContext(AudienceCampaignCreationWizardContext);\r\n\r\nexport const AudienceCampaignCreationWizardProvider = (props: IProps) => {\r\n const {\r\n context,\r\n children,\r\n } = props;\r\n\r\n const [state, dispatch] = React.useReducer(\r\n AudienceCreationWizardReducer,\r\n setupInitialState(context.viewContext.accountCurrencyCode)\r\n );\r\n\r\n useEffect(() => {\r\n const currentLevelTargetInfo = new AudienceTargetInfo({\r\n resourceName: 'AdGroupCriterion',\r\n deps: context.deps,\r\n isForVNext: true,\r\n isAudienceCreationWorkflow: true,\r\n });\r\n\r\n const estimateRequestFactory = new EstimateRequestFactory({\r\n currentLevelTargetInfo: state.adgroupBackboneView ?\r\n state.adgroupBackboneView.currentLevelTargetInfo : currentLevelTargetInfo,\r\n });\r\n\r\n const subType = 'AudienceStatic';\r\n const targetsCPCData =\r\n estimateRequestFactory.create(\r\n EstimateBidStrategy.ManualCpc,\r\n subType,\r\n {},\r\n true\r\n );\r\n\r\n const targetsCPMData =\r\n estimateRequestFactory.create(\r\n EstimateBidStrategy.ManualCpm,\r\n subType,\r\n {},\r\n true\r\n );\r\n\r\n const fetchSuggestionBidMapping = async () => {\r\n const promises = [\r\n getEstimatePromise(targetsCPCData),\r\n getEstimatePromise(targetsCPMData),\r\n ];\r\n\r\n try {\r\n dispatch({\r\n type: WIZARD_ACTIONS.LOADING_SUGGESTED_BID_STATE_UPDATE,\r\n payload: LoadingState.Loading,\r\n });\r\n\r\n const [cpcEstimateData, cpmEstimateData] = await Promise.all(promises);\r\n\r\n const bidMap = {\r\n [BidStrategy.EnhancedCpc]: cpcEstimateData.SuggestedBid,\r\n [BidStrategy.ManualCpc]: cpcEstimateData.SuggestedBid,\r\n [BidStrategy.ManualCpm]: cpmEstimateData.SuggestedBid,\r\n [BidStrategy.MaxConversions]: cpcEstimateData.SuggestedBid,\r\n };\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.SUGGESTEDBIDMAP_UPDATE,\r\n payload: bidMap,\r\n });\r\n\r\n const defaultBidValue = context.i18n.formatDecimal(bidMap[state.bidStrategy] || 0, {\r\n maximumFractionDigits: 2,\r\n minimumFractionDigits: 2,\r\n });\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.BIDVALUE_CHNAGE,\r\n payload: { value: defaultBidValue, rangeKey: pricingModelToRangeKeyMap[state.bidStrategy] },\r\n });\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.LOADING_SUGGESTED_BID_STATE_UPDATE,\r\n payload: LoadingState.Sucess,\r\n });\r\n } catch (error) {\r\n dispatch({\r\n type: WIZARD_ACTIONS.LOADING_SUGGESTED_BID_STATE_UPDATE,\r\n payload: LoadingState.Failed,\r\n });\r\n }\r\n };\r\n\r\n fetchSuggestionBidMapping();\r\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const wizardContext = useMemo(() => (\r\n {\r\n dispatch,\r\n startToFinishMarker: context.perfMarker.createChild('simplifyAudienceCampaignCreationTimeSpend'),\r\n activities: setupInstrumentation(),\r\n ...context,\r\n }\r\n ), []); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n","import { getMsanPreviewStyles } from '@bingads-webui-campaign-react/shared-image-preview-styles';\r\n\r\nexport const getAdCreationStyles = () => ({\r\n adCell: {\r\n '& .mask': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n borderRadius: 6,\r\n height: '100%',\r\n width: '100%',\r\n background: 'linear-gradient(360deg, #000000 0%, rgba(0, 0, 0, 0) 74.88%), url(image.png)',\r\n },\r\n },\r\n adLabel: {\r\n position: 'absolute',\r\n background: 'white',\r\n color: 'black',\r\n width: 26,\r\n height: 20,\r\n borderRadius: 5,\r\n top: 5,\r\n left: 5,\r\n textAlign: 'center',\r\n fontSize: 11,\r\n },\r\n adEditorPanel: {\r\n '& .ms-Panel-main': {\r\n width: 1300,\r\n height: 'calc(100% - 97px)',\r\n top: 97,\r\n },\r\n '& .ms-Panel-scrollableContent': {\r\n overflowX: 'hidden',\r\n },\r\n },\r\n predictiveTarget: {\r\n background: '#EFF6FC',\r\n margin: 10,\r\n padding: 10,\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n border: '1px solid #0078D4',\r\n '& .targeting-text': {\r\n alignItems: 'center',\r\n display: 'flex',\r\n '& .welcome-bold': {\r\n fontWeight: 600,\r\n marginLeft: 10,\r\n marginRight: 5,\r\n },\r\n '& .turnon': {\r\n marginRight: 5,\r\n color: '#0078D4',\r\n fontWeight: 'bold',\r\n },\r\n },\r\n },\r\n targeting: {\r\n background: 'white',\r\n width: 1300,\r\n marginBottom: 50,\r\n padding: 10,\r\n marginTop: 40,\r\n '& .title': {\r\n padding: 10,\r\n justifyContent: 'space-between',\r\n display: 'flex',\r\n borderBottom: '1px solid #EDEBE9',\r\n },\r\n '& .crud-audience-target-selector': {\r\n padding: '0 !important',\r\n },\r\n // hide optimize targeting in new flow, but reuse the logic\r\n '& .optimized-toggle-container': {\r\n visibility: 'hidden',\r\n width: 1,\r\n height: 1,\r\n },\r\n },\r\n previews: {\r\n width: 670,\r\n ...getMsanPreviewStyles(),\r\n '& .preview-header': {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n '& .new-responsive-ad-preview-container': {\r\n height: 500,\r\n position: 'relative',\r\n },\r\n '& .responsive-ad-preview-content': {\r\n border: 'none',\r\n left: '50%',\r\n top: 200,\r\n transform: 'translate(-50%, -50%)',\r\n position: 'absolute',\r\n },\r\n '& .carousel-indicators': {\r\n left: 50,\r\n },\r\n '& .carousel-control.right': {\r\n backgroundColor: 'transparent',\r\n color: '#0078d4',\r\n top: 480,\r\n },\r\n '& .carousel-control.left': {\r\n backgroundColor: 'transparent',\r\n color: '#0078d4',\r\n left: 620,\r\n top: 480,\r\n },\r\n '& .preview-type-string': {\r\n left: '50%',\r\n top: 440,\r\n transform: 'translate(-50%, -50%)',\r\n position: 'absolute',\r\n },\r\n '& .additional-disclaimer': {\r\n display: 'none',\r\n },\r\n },\r\n textInline: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n position: 'absolute',\r\n top: 0,\r\n bottom: 0,\r\n right: 0,\r\n left: 0,\r\n '& .headline': {\r\n fontWeight: 400,\r\n fontSize: 24,\r\n color: 'white',\r\n },\r\n '& .url': {\r\n color: '#9FCCAE',\r\n whiteSpace: 'nowrap',\r\n width: 200,\r\n textAlign: 'center',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n },\r\n previewModal: {\r\n padding: '12px 12px 14px 24px',\r\n '& .header': {\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n display: 'flex',\r\n '& button': {\r\n color: '#605E5C',\r\n },\r\n },\r\n },\r\n addCustomAd: {\r\n width: 226,\r\n height: 202,\r\n display: 'flex',\r\n marginTop: 46,\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n background: 'rgba(0, 0, 0, 0.03)',\r\n border: '1px solid #E1E1E1',\r\n borderRadius: 6,\r\n cursor: 'pointer',\r\n },\r\n adsContainerWrapper: {\r\n display: 'flex',\r\n backgroundColor: '#FAF9F8',\r\n height: '100%',\r\n flexDirection: 'column',\r\n '& .conversion-wizard-footer': {\r\n flexBasis: 50,\r\n borderTop: '1px solid #edebe9',\r\n padding: '16px 24px',\r\n },\r\n },\r\n adsContainer: {\r\n padding: 30,\r\n height: '100%',\r\n backgroundColor: '#FAF9F8',\r\n flex: 1,\r\n overflowX: 'hidden !important',\r\n '& .alert': {\r\n margin: '10px 0',\r\n },\r\n },\r\n crudAudienceAdgroup: {\r\n height: 1,\r\n visibility: 'hidden',\r\n '& .crud-audience-adgroup': {\r\n height: 1,\r\n },\r\n },\r\n recommendCard: {\r\n '& .recommend-ad-checkbox': {\r\n padding: '0 12px',\r\n },\r\n '& .image-asset-grid-cell': {\r\n height: 250,\r\n width: 250,\r\n position: 'relative',\r\n },\r\n },\r\n\r\n});\r\n","import React, { useState, useMemo } from 'react';\r\nimport _ from 'underscore';\r\nimport { DefaultButton } from '@fluentui/react';\r\nimport classnames from 'classnames';\r\nimport { ResponsiveAdForPreview } from '@bingads-webui-campaign-react/audience-shared';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { DependencyResolver } from '@bingads-webui-campaign/dependency-resolver';\r\nimport { PreviewGeneral, constants } from '@bingads-webui-campaign-react/image-experience';\r\nimport { Carousel } from '@bingads-webui-react/primitive-unthemed';\r\n\r\nimport { getAdCreationStyles } from './ad-creation-style';\r\n\r\n// eslint-disable-next-line no-underscore-dangle\r\ndeclare let _TL_: any;\r\n\r\ninterface IProps {\r\n onEdit: () => void;\r\n hideModal: () => void;\r\n preview: ResponsiveAdForPreview;\r\n}\r\n\r\nexport function AdPreview(props: IProps) {\r\n const { preview, onEdit, hideModal } = props;\r\n const classes = useDefaultStyles(getAdCreationStyles) as any;\r\n const [carouselIndex, setCarouselIndex] = useState(0);\r\n const {\r\n longHeadline, shortHeadline, businessName, url, description,\r\n } = preview;\r\n\r\n function handleSelect(selectedIndex) {\r\n setCarouselIndex(selectedIndex);\r\n }\r\n const i18n = DependencyResolver.get('component/i18n/loader!campaignui/feature/audience-campaign');\r\n\r\n const responsivePreviewTitle: string[] = useMemo(() => _.map(\r\n constants.multimediaAdinMSANRatios,\r\n typeKey => i18n.getString(\r\n 'ImageExperience_Ad_Preview_Title_Template',\r\n {\r\n // eslint-disable-next-line\r\n ratio: i18n.getString(constants.aspectRatios[typeKey].stringKey),\r\n }\r\n )\r\n ), [i18n]);\r\n\r\n function onEditInPreview() {\r\n hideModal();\r\n onEdit();\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {responsivePreviewTitle[carouselIndex]}\r\n \r\n
\r\n
\r\n \r\n {\r\n preview.images[0].map((imageObj, i) => (\r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n
\r\n
\r\n );\r\n}\r\n","/* eslint-disable react/require-default-props */\r\nimport React, { useMemo } from 'react';\r\nimport { BackboneViewWrapper } from '@bingads-webui-react/backbone-view-wrapper';\r\nimport { ResponsiveAdEditor } from '@bingads-webui-campaign/responsive-ad-editor';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { DependencyResolver } from '@bingads-webui-campaign/dependency-resolver';\r\nimport { schema } from '@bingads-webui-campaign/audience-campaign-shared';\r\n\r\nimport { Panel } from '@fluentui/react';\r\nimport { getAdCreationStyles } from './ad-creation-style';\r\nimport { getAds } from '../utils';\r\nimport { useAudienceCampaignCreationWizardStore, IAdModel, WIZARD_ACTIONS, LoadingState } from '../store';\r\n\r\n// eslint-disable-next-line no-underscore-dangle\r\ndeclare let _TL_: any;\r\n\r\ninterface IProps {\r\n isOpen: boolean;\r\n dismissPanel: () => void;\r\n adModel?: IAdModel;\r\n type: string;\r\n index?: number\r\n}\r\n\r\nexport function AdEditorPanel(props: IProps) {\r\n const {\r\n isOpen, dismissPanel, adModel, type, index,\r\n } = props;\r\n\r\n const {\r\n perfMarker,\r\n deps,\r\n dispatch,\r\n i18n,\r\n viewContext,\r\n activities: {\r\n adCreationActivity,\r\n },\r\n viewContext: {\r\n currentCampaign,\r\n currentAdGroup,\r\n },\r\n state: {\r\n finalURL,\r\n },\r\n } = useAudienceCampaignCreationWizardStore();\r\n const classes = useDefaultStyles(getAdCreationStyles) as any;\r\n\r\n const initializeOptions = useMemo(() => {\r\n // : instrumentation.aimAdCreation.create();\r\n const instr = DependencyResolver.get('campaignui/feature/instrumentation/index');\r\n instr.addScenario(schema);\r\n\r\n const adModelToView = {\r\n ...adModel,\r\n FinalUrls: [finalURL],\r\n } || { FinalUrls: [finalURL] };\r\n\r\n const logScenario = instr.aimCampaignCreationWizard.create();\r\n return {\r\n logScenario,\r\n viewContext: {\r\n currentCampaign,\r\n currentAdGroup,\r\n },\r\n isForVNext: true,\r\n newI18n: i18n,\r\n ad: adModelToView,\r\n pageContext: deps.pageContext,\r\n perfMarker,\r\n scenario: 'new-audience-static-creation',\r\n };\r\n }, [adModel, finalURL]); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const logRecommendEditAds = (ad: IAdModel) => {\r\n adCreationActivity.signal(`Edit or create: ad Id: ${ad.Id}, type: ${type}`);\r\n };\r\n\r\n async function onSave({ savedAd, imageUrl }) {\r\n dismissPanel();\r\n let ad: IAdModel[] = [];\r\n try {\r\n dispatch({\r\n type: WIZARD_ACTIONS.LOADING_ADS_STATE_UPDATE,\r\n payload: LoadingState.Loading,\r\n });\r\n\r\n ad = await getAds([savedAd.Id], { viewContext });\r\n\r\n ad[0].Images.forEach((image) => {\r\n // eslint-disable-next-line no-param-reassign\r\n image.Asset.ImageUrl = imageUrl;\r\n });\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.LOADING_ADS_STATE_UPDATE,\r\n payload: LoadingState.Sucess,\r\n });\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.UPDATE_SAVEDADS,\r\n payload: {\r\n savedAd: ad[0],\r\n type,\r\n index,\r\n },\r\n });\r\n\r\n logRecommendEditAds(savedAd);\r\n } catch (error) {\r\n dispatch({\r\n type: WIZARD_ACTIONS.LOADING_ADS_STATE_UPDATE,\r\n payload: LoadingState.Failed,\r\n });\r\n }\r\n }\r\n\r\n return (\r\n {}}\r\n closeButtonAriaLabel=\"Close\"\r\n layerProps={{ styles: { root: { zIndex: 100 } } }}\r\n isOpen={isOpen}\r\n >\r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable react/require-default-props */\r\nimport React from 'react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { useBoolean } from '@fluentui/react-hooks';\r\n// @ts-ignore\r\nimport { AssetLibraryImageAssetsGridCellBase } from '@bingads-webui-campaign-react/asset-library-landing-page-content';\r\nimport { Checkbox, Modal, IconButton } from '@fluentui/react';\r\n// @ts-ignore\r\nimport { TilesGridCellActionButton as ActionButton } from '@bingads-webui-campaign-react/asset-library-components';\r\nimport { uploadRecommendImage } from '@bingads-webui-campaign/responsive-ad-editor';\r\nimport { ResponsiveAdForPreview } from '@bingads-webui-campaign-react/audience-shared';\r\nimport { AdPreview } from './ad-preview';\r\nimport { AdEditorPanel } from './ad-editor-panel';\r\nimport { getAdCreationStyles } from './ad-creation-style';\r\nimport { useAudienceCampaignCreationWizardStore, IAdModel, WIZARD_ACTIONS, LoadingState } from '../store';\r\n\r\n// eslint-disable-next-line no-underscore-dangle\r\ndeclare let _TL_: any;\r\n\r\ninterface IProps {\r\n index: number;\r\n preview: ResponsiveAdForPreview;\r\n type: string;\r\n checked?: boolean;\r\n hideEdit?: boolean;\r\n adModel?: IAdModel;\r\n onChange?: (index: number, checked?: boolean) => void;\r\n}\r\n\r\nexport function AdPreviewCard(props: IProps) {\r\n const {\r\n index, preview, onChange, type, adModel, hideEdit, checked,\r\n } = props;\r\n\r\n const {\r\n dispatch,\r\n i18n,\r\n state: {\r\n cid,\r\n aid,\r\n },\r\n } = useAudienceCampaignCreationWizardStore();\r\n\r\n const classes = useDefaultStyles(getAdCreationStyles) as any;\r\n\r\n const [previewOpen, { setTrue: showModal, setFalse: hideModal }] = useBoolean(false);\r\n const [isOpen, { setTrue: openPanel, setFalse: dismissPanel }] = useBoolean(false);\r\n async function onEdit() {\r\n dispatch({\r\n type: WIZARD_ACTIONS.EDITING_AD_STATE_UPDATE,\r\n payload: LoadingState.Loading,\r\n });\r\n\r\n try {\r\n if (type === 'recommend') {\r\n await uploadRecommendImage(adModel!.Images, { cid, aid }, {});\r\n }\r\n dispatch({\r\n type: WIZARD_ACTIONS.EDITING_AD_STATE_UPDATE,\r\n payload: LoadingState.Sucess,\r\n });\r\n } catch (error) {\r\n dispatch({\r\n type: WIZARD_ACTIONS.EDITING_AD_STATE_UPDATE,\r\n payload: LoadingState.Failed,\r\n });\r\n }\r\n openPanel();\r\n }\r\n\r\n return (\r\n
\r\n {onChange && onChange(index, c)} />}\r\n
\r\n (\r\n
\r\n {defaultContent}\r\n
\r\n
Ad
\r\n
\r\n
{preview.shortHeadline}
\r\n
{preview.url}
\r\n
\r\n
\r\n )}\r\n renderOverlayContent={() => {\r\n if (hideEdit) {\r\n return null;\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n }}\r\n />\r\n
\r\n\r\n
\r\n );\r\n}\r\n","import React, { useMemo } from 'react';\r\nimport { convertAdunitsToImageList } from '@bingads-webui-campaign/responsive-ad-editor/src/utils/ad-recommend-util';\r\nimport { Stack, Spinner } from '@fluentui/react';\r\nimport BlockUi from 'react-block-ui';\r\n\r\nimport { IAdModel, LoadingState, useAudienceCampaignCreationWizardStore, WIZARD_ACTIONS } from '../store';\r\nimport { AdPreviewCard } from './ad-preview-card';\r\n\r\nexport function RecommendedAdsPanel() {\r\n const {\r\n dispatch,\r\n state: {\r\n recommmendationsSelected,\r\n recommendations,\r\n savedRecommendations,\r\n loadingState: {\r\n loadingRecommendation,\r\n },\r\n },\r\n } = useAudienceCampaignCreationWizardStore();\r\n\r\n function onChange(index: number, checked?: boolean) {\r\n recommmendationsSelected[index] = !!checked;\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.RECOMMENDADS_SELECTED,\r\n payload: {\r\n recommmendationsSelected: [...recommmendationsSelected],\r\n savedRecommendations,\r\n },\r\n });\r\n }\r\n\r\n const previews = useMemo(() => convertAdunitsToImageList(recommendations), [recommendations]);\r\n\r\n return (\r\n } >\r\n \r\n {previews.map((preview, index) =>\r\n ())}\r\n \r\n \r\n );\r\n}\r\n\r\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\nimport React, { useMemo } from 'react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { FontIcon, Stack } from '@fluentui/react';\r\nimport { useBoolean } from '@fluentui/react-hooks';\r\nimport { convertAdunitsToImageList } from '@bingads-webui-campaign/responsive-ad-editor/src/utils/ad-recommend-util';\r\n\r\nimport { useAudienceCampaignCreationWizardStore, WIZARD_ACTIONS } from '../store';\r\nimport { AdPreviewCard } from './ad-preview-card';\r\nimport { AdEditorPanel } from './ad-editor-panel';\r\nimport { getAdCreationStyles } from './ad-creation-style';\r\n\r\nexport function CustomAdsPanel() {\r\n const classes = useDefaultStyles(getAdCreationStyles) as any;\r\n const [isOpen, { setTrue: openPanel, setFalse: dismissPanel }] = useBoolean(false);\r\n\r\n const {\r\n dispatch,\r\n state: {\r\n customAdsSelected,\r\n customAds,\r\n },\r\n } = useAudienceCampaignCreationWizardStore();\r\n\r\n function onChange(index: number, checked?: boolean) {\r\n customAdsSelected[index] = !!checked;\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.CUSTOMADS_SELECTED,\r\n payload: {\r\n customAdsSelected: [...customAdsSelected],\r\n customAds,\r\n },\r\n });\r\n }\r\n\r\n const previews = useMemo(() => convertAdunitsToImageList(customAds), [customAds]);\r\n\r\n return (\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n\r\n {previews.map((preview, index) =>\r\n ())}\r\n\r\n
\r\n );\r\n}\r\n","/* eslint-disable react/require-default-props */\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { FontIcon, DefaultButton } from '@fluentui/react';\r\nimport { useAudienceCampaignCreationWizardStore, WIZARD_ACTIONS } from '../store';\r\nimport { getAdCreationStyles } from './ad-creation-style';\r\n\r\ninterface IPredictiveTargetProps {\r\n isExpand?: boolean;\r\n setCollapse?: (val: boolean) => void;\r\n}\r\n\r\n// eslint-disable-next-line no-underscore-dangle\r\ndeclare let _TL_: any;\r\n\r\nexport function PredictiveTargetText(props: IPredictiveTargetProps) {\r\n const {\r\n i18n,\r\n } = useAudienceCampaignCreationWizardStore();\r\n\r\n const {\r\n isExpand,\r\n setCollapse,\r\n } = props;\r\n const classes = useDefaultStyles(getAdCreationStyles) as any;\r\n\r\n return (\r\n
\r\n
\r\n \r\n {i18n.getString(_TL_('Predictive Targeting is turned'))}\r\n {i18n.getString(_TL_('On'))}\r\n {i18n.getString(_TL_('We will try to find the best audience for your ads to increase performance.'))}\r\n
\r\n {!isExpand && setCollapse(true)} />}\r\n
\r\n );\r\n}\r\n\r\nexport function Targeting() {\r\n const {\r\n i18n,\r\n dispatch,\r\n state: {\r\n adgroupTargetDom,\r\n adgroupBackboneView,\r\n },\r\n } = useAudienceCampaignCreationWizardStore();\r\n\r\n let containerRef;\r\n\r\n const classes = useDefaultStyles(getAdCreationStyles) as any;\r\n const [isExpand, setCollapse] = useState(false);\r\n useEffect(() => {\r\n let adgroupDom;\r\n if (adgroupTargetDom) {\r\n adgroupDom = adgroupTargetDom;\r\n } else {\r\n adgroupDom = adgroupBackboneView.render().$el;\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.CHANGE_ADGROUP_TARGET_DOM,\r\n payload: adgroupDom,\r\n });\r\n }\r\n adgroupDom.appendTo(containerRef);\r\n adgroupBackboneView.willShow();\r\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n return (\r\n
\r\n

\r\n {i18n.getString(_TL_('Targeting'))}\r\n setCollapse(!isExpand)}\r\n className=\"delete-hotspot\"\r\n style={{ cursor: 'pointer' }}\r\n iconName={isExpand ? 'ChevronDown' : 'ChevronUp'}\r\n />\r\n

\r\n \r\n
{ containerRef = container; }} />\r\n
\r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { Alert } from '@bingads-webui-react/alert';\r\nimport BlockUi from 'react-block-ui';\r\nimport { Spinner } from '@fluentui/react';\r\nimport { IImageExperienceImage, IRecommendAd } from '@bingads-webui-campaign-react/audience-shared';\r\nimport { DependencyResolver } from '@bingads-webui-campaign/dependency-resolver';\r\nimport { uploadRecommendImage, getMultiImagesFromMTAssetsAsync } from '@bingads-webui-campaign/responsive-ad-editor';\r\n\r\n\r\nimport { useAudienceCampaignCreationWizardStore, WIZARD_ACTIONS, LoadingState, IAdModel } from '../store';\r\nimport { getAdCreationStyles } from './ad-creation-style';\r\nimport { RecommendedAdsPanel } from './recommended-ads-panel';\r\nimport { CustomAdsPanel } from './custom-ads-panel';\r\nimport { StepFooter } from '../step-footer';\r\nimport { Targeting } from './targeting';\r\nimport { handleErrors, removeAds, getAds } from '../utils';\r\nimport { ErrorView } from '../components';\r\n\r\n// eslint-disable-next-line no-underscore-dangle\r\ndeclare let _TL_: any;\r\n\r\nexport function AdCreationContainer() {\r\n const {\r\n dispatch,\r\n i18n,\r\n viewContext,\r\n activities: {\r\n adCreationActivity,\r\n },\r\n state: {\r\n cid,\r\n aid,\r\n customAds,\r\n adgroupBackboneView,\r\n currentAdgroup: {\r\n id: adgroupId,\r\n },\r\n currentCampaign: {\r\n id: campaignId,\r\n },\r\n recommmendationsSelected,\r\n recommendations,\r\n customAdsSelected,\r\n savedRecommendations,\r\n loadingState: {\r\n editingAd,\r\n saveAds,\r\n loadingAds,\r\n loadingRecommendation,\r\n },\r\n },\r\n } = useAudienceCampaignCreationWizardStore();\r\n const [errors, setErrors] = useState([]);\r\n\r\n const classes = useDefaultStyles(getAdCreationStyles) as any;\r\n\r\n async function save(selectedRecommendations: IRecommendAd[]) {\r\n const jsdata = DependencyResolver.get('component/js-data-campaign/index');\r\n const odata = DependencyResolver.get('component/http/channel/odata');\r\n const baseURL = `/Customers(${cid})/Accounts(${aid})/`;\r\n\r\n const uploadPromises = selectedRecommendations.map(recommendation =>\r\n uploadRecommendImage(recommendation.Images, { cid, aid }, {})\r\n .then(() => getMultiImagesFromMTAssetsAsync(odata, baseURL, recommendation.Images)));\r\n\r\n const imagesByAds: IImageExperienceImage[][][] = await Promise.all(uploadPromises);\r\n const promises = selectedRecommendations.map((recommendation, index) => {\r\n const croppedImages: IImageExperienceImage[][] = imagesByAds[index];\r\n\r\n const params = {\r\n AdGroup: {\r\n Id: adgroupId,\r\n },\r\n BusinessName: recommendation.BusinessName,\r\n FinalUrls: recommendation.FinalUrls,\r\n Descriptions: JSON.stringify(recommendation.Descriptions.map(desc => ({ Text: desc.Asset.Text }))),\r\n Headlines: JSON.stringify(recommendation.Headlines.map(desc => ({ Text: desc.Asset.Text }))),\r\n LongHeadlines: JSON.stringify(recommendation.LongHeadlines.map(desc => ({ Text: desc.Asset.Text }))),\r\n Images: JSON.stringify(croppedImages.map(imageList => ({\r\n id: imageList[0].Id,\r\n idString: imageList[0].IdString,\r\n subType: 'LandscapeImageMedia',\r\n cropX: imageList[0].CropSettings!.SourceX,\r\n cropY: imageList[0].CropSettings!.SourceY,\r\n cropWidth: imageList[0].CropSettings!.SourceWidth,\r\n cropHeight: imageList[0].CropSettings!.SourceHeight,\r\n }))),\r\n };\r\n\r\n return jsdata.ResponsiveAd.create(params, { adapter: 'bulk', cacheResponse: false });\r\n });\r\n\r\n const adgroupUpdatePromise = adgroupBackboneView.validateAndSave();\r\n\r\n const selectedTargets = Object.values(adgroupBackboneView.audienceTargetSelector.selectionStates).filter(selectState => selectState);\r\n adCreationActivity.signal(`campaign id: ${campaignId}, selected target count: ${selectedTargets.length}`, 'AutoTargeting');\r\n\r\n const response = await Promise.all([...promises, adgroupUpdatePromise]);\r\n return response;\r\n }\r\n\r\n const footButtons = [{\r\n type: 'Primary',\r\n text: i18n.getString(_TL_('Save & go to next step')),\r\n onClick: async () => {\r\n try {\r\n const recommendationsNeedToSave: IRecommendAd[] = [];\r\n recommmendationsSelected.forEach((selected, index) => {\r\n if (selected && !savedRecommendations[index]) {\r\n recommendationsNeedToSave.push(recommendations[index]);\r\n }\r\n });\r\n\r\n if (recommmendationsSelected.filter(select => !!select).length === 0 &&\r\n customAdsSelected.filter(select => !!select).length === 0) {\r\n const validationErrors: any = [];\r\n\r\n validationErrors.push(i18n.getString(_TL_('Please add at least one ad.')));\r\n\r\n setErrors(validationErrors);\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.SAVE_ADS_STATE_UPDATE,\r\n payload: LoadingState.Loading,\r\n });\r\n\r\n const response: any = await save(recommendationsNeedToSave);\r\n\r\n // remove last element which is adgroup response\r\n const savedAdModels: IAdModel[] = await getAds(response.slice(0, -1).map(ad => ad.Id), { viewContext });\r\n\r\n savedAdModels.forEach((ad) => {\r\n adCreationActivity.signal(`Recommended ad Id: ${ad.Id}, type: recommend`);\r\n });\r\n\r\n savedAdModels.forEach((ad, index) => {\r\n ad.Images.forEach((image, imageIndex) => {\r\n // eslint-disable-next-line no-param-reassign\r\n image.Asset.ImageUrl = recommendationsNeedToSave[index].Images[imageIndex].Asset.ImageUrl;\r\n });\r\n });\r\n\r\n const tmpSavedRecommendations = [...savedRecommendations];\r\n const tmpSavedCustomAds = [...customAds];\r\n const tmpCustomAdsSelected = [...customAdsSelected];\r\n const removedAds: IAdModel[] = [];\r\n\r\n recommmendationsSelected.forEach((selected, index) => {\r\n // the ads need to be saved in onclick save event\r\n if (selected && !tmpSavedRecommendations[index]) {\r\n if (savedAdModels.length > 0) {\r\n tmpSavedRecommendations[index] = savedAdModels.shift()!;\r\n } else {\r\n adCreationActivity.error(`tmpSavedRecommendations setting failed by: ${JSON.stringify(savedAdModels)}`);\r\n }\r\n }\r\n // the ads need to be removed in onclick save event\r\n if (!selected && tmpSavedRecommendations[index]) {\r\n removedAds.push(tmpSavedRecommendations[index] as IAdModel);\r\n tmpSavedRecommendations[index] = null;\r\n }\r\n });\r\n\r\n customAdsSelected.forEach((selected, index) => {\r\n if (!selected && tmpSavedCustomAds[index]) {\r\n removedAds.push(tmpSavedCustomAds.splice(index, 1)[0]);\r\n tmpCustomAdsSelected.splice(index, 1);\r\n }\r\n });\r\n\r\n removeAds(removedAds, { viewContext });\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.RECOMMENDADS_SELECTED,\r\n payload: {\r\n recommmendationsSelected,\r\n savedRecommendations: tmpSavedRecommendations,\r\n },\r\n });\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.CUSTOMADS_SELECTED,\r\n payload: {\r\n customAdsSelected: tmpCustomAdsSelected,\r\n customAds: tmpSavedCustomAds,\r\n },\r\n });\r\n dispatch({\r\n type: WIZARD_ACTIONS.SAVE_ADS_STATE_UPDATE,\r\n payload: LoadingState.Sucess,\r\n });\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.NAVIGATE_TO_SUMMARY,\r\n });\r\n } catch (error) {\r\n handleErrors(adCreationActivity, error, (errorMsgs) => {\r\n setErrors(errorMsgs.map(errorMsg => errorMsg.message));\r\n });\r\n dispatch({\r\n type: WIZARD_ACTIONS.SAVE_ADS_STATE_UPDATE,\r\n payload: LoadingState.Failed,\r\n });\r\n }\r\n },\r\n }, {\r\n type: 'Default',\r\n text: i18n.getString(_TL_('Back')),\r\n onClick: () => {\r\n dispatch({\r\n type: WIZARD_ACTIONS.NAVIGATE_TO_CAMPAIGNSETTINGS,\r\n });\r\n },\r\n }];\r\n\r\n return (\r\n
\r\n }\r\n style={{ flex: 1 }}\r\n >\r\n
\r\n {\r\n (loadingRecommendation === LoadingState.Loading ||\r\n // @ts-ignore\r\n (recommendations.length !== 0 && loadingRecommendation !== LoadingState.Loading)) &&\r\n
\r\n

{i18n.getString(_TL_('Recommended Ads'))}

\r\n
\r\n )}\r\n dismissible={false}\r\n />\r\n
\r\n \r\n
\r\n }\r\n\r\n

{i18n.getString(_TL_('Custom Ads'))}

\r\n \r\n\r\n \r\n \r\n
\r\n \r\n\r\n \r\n
\r\n );\r\n}\r\n","export const getSummaryStyles = () => ({\r\n summaryContainerWrapper: {\r\n display: 'flex',\r\n height: '100%',\r\n backgroundColor: '#FAF9F8',\r\n flexDirection: 'column',\r\n '& .conversion-wizard-footer': {\r\n flexBasis: 50,\r\n borderTop: '1px solid #edebe9',\r\n padding: '16px 24px',\r\n },\r\n '& .summary-container': {\r\n flex: 1,\r\n padding: 30,\r\n overflow: 'auto',\r\n },\r\n '& .title': {\r\n position: 'relative',\r\n '& h2': {\r\n marginBottom: 20,\r\n },\r\n '& .review-image': {\r\n position: 'absolute',\r\n top: 0,\r\n left: 380,\r\n },\r\n },\r\n '& .summary-section': {\r\n backgroundColor: 'white',\r\n marginTop: 40,\r\n '& .campaign-summary-item-wrapper': {\r\n display: 'flex',\r\n padding: '10px 0',\r\n '& .campaign-summary-item-key': {\r\n color: '#605E5C',\r\n width: 150,\r\n },\r\n '& .campaign-summary-item-value': {\r\n color: '#323130',\r\n },\r\n },\r\n },\r\n },\r\n});\r\n","import React, { useMemo, useState } from 'react';\r\nimport { Stack, IStackStyles, DefaultButton, Spinner } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { setClarityTag } from '@bingads-webui-universal/clarity';\r\nimport { routeStore, siteMapStore } from '@bingads-webui-campaign/global-context-store';\r\nimport { getLocalStorage } from '@bingads-webui/storage';\r\n// @ts-ignore\r\nimport { objectivesConfig } from '@bingads-webui-campaign-react/campaign-adgroup-creation/src/helper/objectives-config';\r\nimport { convertAdunitsToImageList } from '@bingads-webui-campaign/responsive-ad-editor/src/utils/ad-recommend-util';\r\nimport BlockUi from 'react-block-ui';\r\nimport { DependencyResolver } from '@bingads-webui-campaign/dependency-resolver';\r\nimport { IRecommendAd } from '@bingads-webui-campaign-react/audience-shared';\r\n\r\nimport { AdPreviewCard, PredictiveTargetText } from '../ad-creation';\r\nimport { LoadingState, useAudienceCampaignCreationWizardStore, WIZARD_ACTIONS } from '../store';\r\nimport { getSummaryStyles } from './summary-styles';\r\nimport { StepFooter } from '../step-footer';\r\nimport { navigateToRoute, handleErrors } from '../utils';\r\nimport { ErrorView } from '../components';\r\n\r\n// @ts-ignore\r\nimport TestImage from './image.svg';\r\nimport { BidStrategy } from '../campaign-settings';\r\n\r\n// eslint-disable-next-line no-underscore-dangle\r\ndeclare let _TL_: any;\r\n\r\nexport function SummaryContainer() {\r\n const {\r\n i18n,\r\n permissions,\r\n dispatch,\r\n startToFinishMarker,\r\n activities: {\r\n summaryActivity,\r\n },\r\n viewContext: {\r\n accountCurrencyCode,\r\n },\r\n state: {\r\n currentCampaign: {\r\n name: campaignName,\r\n id: campaignId,\r\n },\r\n currentAdgroup: {\r\n id: adgroupId,\r\n },\r\n loadingState: {\r\n saveAds,\r\n finishCreation,\r\n loadingAds,\r\n },\r\n adgroupBackboneView,\r\n customAds,\r\n finalURL,\r\n savedRecommendations,\r\n budget,\r\n bidValue,\r\n targetCpa,\r\n bidStrategy,\r\n },\r\n } = useAudienceCampaignCreationWizardStore();\r\n const classes = useDefaultStyles(getSummaryStyles) as any;\r\n const [errors, setErrors] = useState([]);\r\n\r\n const logOnSave = () => {\r\n startToFinishMarker.done();\r\n summaryActivity.signal('finish creating campaign');\r\n summaryActivity.signal(`ad group Id: ${adgroupId}, campaign Id: ${campaignId}, bidStrategy: ${bidStrategy}, bidValue: ${bidValue}, targetCpa: ${targetCpa}`, 'AutoBidding');\r\n };\r\n\r\n const getAdGroupLocations = () => {\r\n try {\r\n return adgroupBackboneView.locationSetting.getTargetedLocations();\r\n } catch (error) {\r\n summaryActivity.error('getAdGroupLocations: could not get locations');\r\n }\r\n\r\n return [];\r\n };\r\n const adGroupLocations = getAdGroupLocations();\r\n\r\n const footButtons = [{\r\n type: 'Primary',\r\n text: i18n.getString(_TL_('Save campaign')),\r\n onClick: async () => {\r\n const jsdata = DependencyResolver.get('component/js-data-campaign/index');\r\n\r\n const params = {\r\n Id: campaignId,\r\n Status: 'Active',\r\n };\r\n const requestOptions = { adapter: 'bulk', cacheResponse: false };\r\n try {\r\n dispatch({\r\n type: WIZARD_ACTIONS.FINISH_CREATION,\r\n payload: LoadingState.Loading,\r\n });\r\n await jsdata.Campaign.update(campaignId, params, requestOptions);\r\n\r\n dispatch({\r\n type: WIZARD_ACTIONS.FINISH_CREATION,\r\n payload: LoadingState.Sucess,\r\n });\r\n logOnSave();\r\n setClarityTag({ finishAudienceCampaign: 'true' });\r\n\r\n navigateToRoute(routeStore, siteMapStore.state.siteMap, 'campaigns');\r\n } catch (error) {\r\n dispatch({\r\n type: WIZARD_ACTIONS.FINISH_CREATION,\r\n payload: LoadingState.Failed,\r\n });\r\n\r\n handleErrors(summaryActivity, error, (errorMsgs) => {\r\n setErrors(errorMsgs.map(errorMsg => errorMsg.message));\r\n });\r\n }\r\n },\r\n }, {\r\n type: 'Default',\r\n text: i18n.getString(_TL_('Back')),\r\n onClick: () => {\r\n dispatch({\r\n type: WIZARD_ACTIONS.NAVIGATE_TO_ADS,\r\n });\r\n },\r\n }];\r\n\r\n const stackStyles: IStackStyles = {\r\n root: {\r\n padding: 10,\r\n borderBottom: '1px solid #EDEBE9',\r\n },\r\n };\r\n\r\n const bidStrategyValueMapping = {\r\n EnhancedCpc: i18n.getString(_TL_('Enhanced CPC')),\r\n ManualCpc: i18n.getString(_TL_('Manual CPC')),\r\n ManualCpm: i18n.getString(_TL_('Manual CPM')),\r\n MaxConversions: i18n.getString(_TL_('Maximize Conversions')),\r\n };\r\n\r\n const campaignObjective: any = objectivesConfig({ i18n, permissions }).find(config => config.id === getLocalStorage().get('CampaignObjective')) || {};\r\n\r\n const summaryItems = [{\r\n key: 'Campaign objective',\r\n keyName: i18n.getString(_TL_('Campaign objective: ')),\r\n value: campaignObjective.descriptionLine || i18n.getString(_TL_('Visit my website')),\r\n }, {\r\n key: 'Campaign name',\r\n keyName: i18n.getString(_TL_('Campaign name: ')),\r\n value: campaignName,\r\n }, {\r\n key: 'Final URL',\r\n keyName: i18n.getString(_TL_('Final URL: ')),\r\n value: finalURL,\r\n }, {\r\n key: 'Budget',\r\n keyName: i18n.getString(_TL_('Budget: ')),\r\n value: `${budget} ${accountCurrencyCode} / ${i18n.getString(_TL_('day'))}`,\r\n }, {\r\n key: 'Bidding',\r\n keyName: i18n.getString(_TL_('Bidding: ')),\r\n value: `${bidStrategyValueMapping[bidStrategy]}: ${bidValue} ${accountCurrencyCode}`,\r\n }, {\r\n key: 'TargetValue',\r\n keyName: i18n.getString(_TL_('Target CPA: ')),\r\n value: `Maximize Conversions: ${targetCpa} ${accountCurrencyCode}`,\r\n }, {\r\n key: 'Locations',\r\n keyName: i18n.getString(_TL_('Location selected for the Ad Group: ')),\r\n // value: i18n.getString('All available countries/regions'),\r\n // eslint-disable-next-line no-nested-ternary\r\n value: adGroupLocations.length === 0 ?\r\n i18n.getString('All available countries/regions') :\r\n (adGroupLocations.length > 3 ?\r\n `${adGroupLocations.join(',')} and More...` :\r\n adGroupLocations.join(',')),\r\n }];\r\n\r\n const previews = useMemo(() => convertAdunitsToImageList([\r\n ...customAds.filter(ad => !!ad),\r\n ...savedRecommendations.filter(ad => !!ad)] as IRecommendAd[]), [customAds, savedRecommendations]);\r\n\r\n return (\r\n }>\r\n
\r\n
\r\n
\r\n

{i18n.getString(_TL_('Prepare for success!'))}

\r\n
{i18n.getString(_TL_('Your campaign is looking great. Sit back and watch it grow.'))}
\r\n
{i18n.getString(_TL_('Review the details of your campaign before you publish.'))}
\r\n \"\"\r\n
\r\n\r\n
\r\n \r\n

{i18n.getString(_TL_('Campaign settings'))}

\r\n dispatch({ type: WIZARD_ACTIONS.NAVIGATE_TO_CAMPAIGNSETTINGS })}\r\n />\r\n
\r\n \r\n {['Campaign objective', 'Campaign name', 'Final URL'].map((key) => {\r\n const summaryItem = summaryItems.find(item => item.key === key)!;\r\n return (\r\n
\r\n
{summaryItem.keyName}
\r\n
{summaryItem.value}
\r\n
\r\n );\r\n })}\r\n
\r\n \r\n {['Budget', bidStrategy === BidStrategy.MaxConversions ? 'TargetValue' : 'Bidding'].map((key) => {\r\n const summaryItem = summaryItems.find(item => item.key === key)!;\r\n return (\r\n
\r\n
{summaryItem.keyName}
\r\n
{summaryItem.value}
\r\n
\r\n );\r\n })}\r\n
\r\n \r\n {['Locations'].map((key) => {\r\n const summaryItem = summaryItems.find(item => item.key === key)!;\r\n return (\r\n
\r\n
{summaryItem.keyName}
\r\n
{summaryItem.value}
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n\r\n }>\r\n
\r\n \r\n

{i18n.getString(_TL_('Selected Ads'))}

\r\n dispatch({ type: WIZARD_ACTIONS.NAVIGATE_TO_ADS })}\r\n />\r\n
\r\n \r\n {previews.map((preview, index) => )}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n );\r\n}\r\n","export const getStyles = (components, { palette = {} as any } = {}) => {\r\n const color = {\r\n completedBorder: palette.blue,\r\n completedIcon: palette.blue,\r\n inProgressIcon: '#c0def6',\r\n incompleteBorder: '#ebebeb',\r\n incompleteIcon: palette.neutralLight,\r\n background: palette.white,\r\n stepContentBorder: palette.neutralQuaternaryAlt,\r\n stepFooterBorder: palette.neutralLight,\r\n };\r\n return {\r\n wizardContentContainer: {\r\n display: 'flex',\r\n height: '100%',\r\n '& h2': {\r\n margin: 0,\r\n },\r\n '& h3': {\r\n margin: 0,\r\n },\r\n '& .step-container': {\r\n flex: 1,\r\n position: 'relative',\r\n '& .step': {\r\n height: '100%',\r\n position: 'absolute',\r\n width: '100%',\r\n top: 0,\r\n left: 0,\r\n },\r\n },\r\n '& .react-blocker': {\r\n height: '100%',\r\n width: '100%',\r\n },\r\n },\r\n wizardListContainer: {\r\n width: '228px',\r\n minWidth: '228px',\r\n borderRight: `1px solid ${color.stepContentBorder}`,\r\n paddingLeft: '32px',\r\n paddingTop: '32px',\r\n paddingBottom: '32px',\r\n overflow: 'hidden',\r\n minHeight: 450,\r\n\r\n '& ol': {\r\n margin: 0,\r\n padding: 0,\r\n listStyle: 'none',\r\n },\r\n\r\n // Styles for drawing the vertical line\r\n '& .step-progress-list-item': {\r\n borderLeft: `2px solid ${color.completedBorder}`,\r\n '&.step-progress-list-item-ahead': { borderLeftColor: color.incompleteBorder },\r\n },\r\n\r\n // top level list items\r\n '& ol.step-progress-list>.step-progress-list-item': {\r\n paddingTop: '24px',\r\n\r\n '&:first-child': { borderLeftColor: color.background, paddingTop: 0 },\r\n\r\n '&>.step-progress-list-item-glyphicon': {\r\n marginLeft: '-8px',\r\n marginRight: '8px',\r\n background: color.background,\r\n paddingTop: '5px',\r\n paddingBottom: '4px',\r\n },\r\n\r\n '&>.step-progress-list-item-glyphicon.iconba-RadioBullet2': {\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n transform: 'scale(1.52)',\r\n },\r\n },\r\n\r\n // nested list items\r\n '& ol.step-progress-list-item-list>.step-progress-list-item': {\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n paddingTop: '24px',\r\n marginLeft: '-2px',\r\n\r\n '&>.step-progress-list-item-glyphicon': {\r\n marginLeft: '-8px',\r\n marginRight: '12px',\r\n background: color.background,\r\n paddingBottom: '1px',\r\n },\r\n },\r\n\r\n '& .step-progress-list-item-selected, & .step-progress-list-item-contains-selected': { fontWeight: '600' },\r\n\r\n // glyphicon colors\r\n '& .step-progress-list-item-behind .step-progress-list-item-glyphicon': {\r\n color: color.completedIcon,\r\n },\r\n '& .step-progress-list-item-selected .step-progress-list-item-glyphicon, & .step-progress-list-item-contains-selected>.step-progress-list-item-glyphicon': {\r\n color: color.inProgressIcon,\r\n },\r\n '& .step-progress-list-item-ahead .step-progress-list-item-glyphicon': {\r\n color: color.incompleteIcon,\r\n },\r\n },\r\n };\r\n};\r\n","import React, { useEffect } from 'react';\r\nimport { VerticalSeparatedLayout } from '@bingads-webui-react/steps';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { setClarityTag } from '@bingads-webui-universal/clarity';\r\nimport 'react-block-ui/style.css';\r\n\r\nimport { AudienceCampaignCreationWizardProvider, useAudienceCampaignCreationWizardStore, Step as CreationStep } from './store';\r\nimport { AdCreationContainer } from './ad-creation';\r\nimport { CampaignSettingsContainer } from './campaign-settings';\r\nimport { SummaryContainer } from './summary';\r\nimport { getStyles } from './audience-creation-flow-styles';\r\n\r\n// eslint-disable-next-line no-underscore-dangle\r\ndeclare let _TL_: any;\r\n\r\nconst {\r\n StepsContextProvider,\r\n StepContainer,\r\n Step,\r\n StepProgressList,\r\n} = VerticalSeparatedLayout;\r\n\r\ninterface IProps {\r\n perfMarker: any;\r\n deps: any;\r\n newI18n: any;\r\n viewContext: any;\r\n}\r\n\r\nexport function App() {\r\n const {\r\n i18n,\r\n startToFinishMarker,\r\n activities: {\r\n campaignSettingActivity,\r\n },\r\n state: {\r\n currentStep,\r\n },\r\n } = useAudienceCampaignCreationWizardStore();\r\n\r\n useEffect(() => {\r\n startToFinishMarker.willInit();\r\n campaignSettingActivity.signal('setup campaign');\r\n\r\n setClarityTag({ startSimplifyAudienceCampaign: 'true' });\r\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n const classes = useDefaultStyles(getStyles) as any;\r\n const getStepProgressItemGlyphicon = () => 'ba-RadioBullet2';\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport const StaticAudienceCampaignCreation = React.memo((props: IProps) => {\r\n const {\r\n perfMarker,\r\n deps,\r\n newI18n,\r\n viewContext,\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n});\r\n"],"names":["navigateToRoute","routeStore","siteMap","id","pathname","getRoutePathById","state","history","push","search","location","handleErrors","activityLogger","response","setErrors","i18nErrors","get","i18n","entity","errors","length","bulkApiErrors","getBulkApiErrors","noMappedErrors","error","code","message","getString","JSON","stringify","trace","signal","Error","getODataErrors","campaignNameValidation","name","finalUrlValidation","url","isValidUrl","MaxCostValidation","value","Number","budgetValidation","targetCPAValidation","bidValueValidation","rangeKey","config","ceilingValue","result","floorValue","getAds","adIds","viewContext","extraExpand","adsRepository","ResponsiveAdRepository","promises","map","getAdAsync","Promise","all","pricingModelToRangeKeyMap","EnhancedCpc","ManualCpc","ManualCpm","ads","Text","FinalUrls","Headline","LongHeadline","BusinessName","Images","Id","PinnedField","EditorialStatus","AssociationType","UiDisplayStatus","PerformanceLabel","RecommendationId","Asset","Name","AssetType","TracingId","SubType","IdString","CropX","CropY","CropHeight","CropWidth","ImageUrl","PerformanceMetrics","Headlines","LongHeadlines","Descriptions","getCampaignSettingsStyles","campaignSettingsWrapper","backgroundColor","display","height","minWidth","flexDirection","flexBasis","borderTop","padding","switchToAdvance","justifyContent","background","alignItems","fontWeight","marginLeft","marginRight","campaignSettingContainer","flex","overflow","margin","color","campaignInformationContainer","maxWidth","marginBottom","budgetBid","marginTop","budget","position","left","top","bidValue","remainingWarning","text","limit","getErrorMessage","validationAfterBlur","finalURLErrorMessage","CampaignInformation","classes","useDefaultStyles","setRecommendation","dispatch","useAudienceCampaignCreationWizardStore","setUrl","useState","aid","cid","baseURL","repository","AdRecommendRepository","useEffect","type","WIZARD_ACTIONS","LOADING_RECOMMENDATION_STATE_UPDATE","payload","LoadingState","Loading","async","res","window","e2eTestEnvironment","getRecommendAds","Sucess","FETCH_RECOMMENDATION","recommendations","adsForPreview","RECOMMENDADS_SELECTED","recommmendationsSelected","Array","fill","savedRecommendations","Failed","fetchData","useRecommendationFetch","validations","currentCampaign","campaignName","finalURL","setName","setFinalURL","textFieldStyles","fieldGroup","width","className","TextField","label","styles","onChange","_","onBlur","e","CAMPAIGN_NAME_CHANGE","target","errorMessage","description","formattedURL","startsWith","FINALURL_CHANGE","finalUrl","BidStrategy","key","getBudgetErrorMessage","getMaxCostErrorMessage","getTargetCPAErrorMessage","BudgetBid","bidStrategy","maxCost","targetCpa","budgetState","setBudget","String","bidValueState","setBidValue","maxCostCheck","setMaxCostCheck","maxCostState","setMaxCost","targetCPAState","setTargetCPA","permissions","autoBiddingEnabled","IsAudienceCampaignAutoBiddingV2Enabled","accountCurrencyCode","options","itemType","Header","MaxConversions","Divider","filter","option","bidStrategyMap","desc","BUDGET_CHANGE","onRenderLabel","Stack","horizontal","verticalAlign","tokens","childrenGap","HelpPopup","topic","Dropdown","selectedKey","item","BIDSTRATEGY_CHANGE","dropdown","TARGETCPA_CHANGE","Checkbox","checked","undefined","MAXCOST_CHANGE","BIDVALUE_CHNAGE","StepFooter","props","buttons","button","onClick","disabled","Button","PrimaryButton","DefaultButton","getButton","ErrorView","style","pricingModelAdgroupBidAttributeMapping","CampaignSettingsContainer","deps","perfMarker","activities","campaignSettingActivity","adgroupBackboneView","currentAdgroup","adgroupId","loadingState","saveCampaign","campaignId","setupAdgroupView","instr","addScenario","logScenario","aimCampaignCreationWizard","create","currentLevelTargetInfo","resourceName","isForVNext","isAudienceCreationWorkflow","i18nNewDesign","newI18n","scenario","footButtons","validationErrors","Object","values","some","VALIDATION_CHANGE","validate","CAMPAIGN_SAVING_STATE_UPDATE","jsdata","params","TimeZone","getAccountTimeZone","CampaignType","Languages","Status","BiddingScheme","Type","Budget","Amount","AdScheduleUseSearcherTimeZone","campaignRes","adgroupRes","TargetCpa","MaxCpc","requestOptions","adapter","cacheResponse","Campaign","update","adgroupParmas","PricingModel","AdGroup","currentAdGroup","CAMPAIGN_UPDATE","ADGROUP_UPDATE","INIT_ADGOURPBACKBONE_VIEW","NAVIGATE_TO_ADS","errorMsgs","errorMsg","save","confirm","blocking","loader","Spinner","size","large","FontIcon","iconName","Step","initialState","currentStep","campaignSettings","customAdsSelected","Init","loadingRecommendation","saveAds","editingAd","loadingSuggestedBid","loadingAds","finishCreation","customAds","AudienceCreationWizardReducer","action","SUGGESTEDBIDMAP_UPDATE","bidSuggestionMap","NAVIGATE_TO_CAMPAIGNSETTINGS","NAVIGATE_TO_SUMMARY","summary","FETCH_ADS","LOADING_SUGGESTED_BID_STATE_UPDATE","LOADING_ADS_STATE_UPDATE","EDITING_AD_STATE_UPDATE","FINISH_CREATION","CUSTOMADS_SELECTED","SAVE_ADS_STATE_UPDATE","CHANGE_ADGROUP_TARGET_DOM","adgroupTargetDom","UPDATE_SAVEDADS","selects","index","savedAd","getEstimatePromise","data","post","host","path","request","customHeader","setupInstrumentation","simplifiedCampaignCreationWizard","campaignSetting","adCreationActivity","adCreation","summaryActivity","AudienceCampaignCreationWizardContext","AudienceCampaignCreationWizardProvider","context","children","currencyCode","realDefaultBudget","Daily","Default","defaultBudget","defaultBidStrategy","setupInitialState","estimateRequestFactory","subType","targetsCPCData","targetsCPMData","cpcEstimateData","cpmEstimateData","bidMap","SuggestedBid","defaultBidValue","formatDecimal","maximumFractionDigits","minimumFractionDigits","fetchSuggestionBidMapping","wizardContext","useMemo","startToFinishMarker","createChild","Provider","getAdCreationStyles","adCell","borderRadius","adLabel","textAlign","fontSize","adEditorPanel","overflowX","predictiveTarget","border","targeting","borderBottom","visibility","previews","transform","textInline","bottom","right","whiteSpace","textOverflow","previewModal","addCustomAd","cursor","adsContainerWrapper","adsContainer","crudAudienceAdgroup","recommendCard","AdPreview","preview","onEdit","hideModal","carouselIndex","setCarouselIndex","longHeadline","shortHeadline","businessName","responsivePreviewTitle","multimediaAdinMSANRatios","typeKey","ratio","aspectRatios","stringKey","Carousel","controls","onSelect","selectedIndex","activeIndex","images","imageObj","i","Item","image","previewTexts","AdEditorPanel","isOpen","dismissPanel","adModel","initializeOptions","adModelToView","ad","pageContext","Panel","onDismiss","headerText","onOuterClick","closeButtonAriaLabel","layerProps","root","zIndex","BackboneViewWrapper","View","ResponsiveAdEditor","eventsToActions","event","imageUrl","forEach","logRecommendEditAds","AdPreviewCard","hideEdit","previewOpen","setTrue","showModal","setFalse","useBoolean","openPanel","uploadRecommendImage","c","FinalSrc","isOverlayEnabled","renderCellContent","defaultContent","renderOverlayContent","Modal","IconButton","iconProps","ariaLabel","RecommendedAdsPanel","wrap","CustomAdsPanel","PredictiveTargetText","isExpand","setCollapse","Targeting","containerRef","adgroupDom","render","$el","appendTo","willShow","ref","container","AdCreationContainer","recommendationsNeedToSave","selected","select","selectedRecommendations","odata","uploadPromises","recommendation","then","getMultiImagesFromMTAssetsAsync","imagesByAds","croppedImages","imageList","idString","cropX","CropSettings","SourceX","cropY","SourceY","cropWidth","SourceWidth","cropHeight","SourceHeight","ResponsiveAd","adgroupUpdatePromise","validateAndSave","selectedTargets","audienceTargetSelector","selectionStates","selectState","savedAdModels","slice","imageIndex","tmpSavedRecommendations","tmpSavedCustomAds","tmpCustomAdsSelected","removedAds","shift","splice","removeAdAsync","removeAds","Alert","level","icon","dismissible","getSummaryStyles","summaryContainerWrapper","SummaryContainer","adGroupLocations","locationSetting","getTargetedLocations","getAdGroupLocations","done","setClarityTag","finishAudienceCampaign","stackStyles","bidStrategyValueMapping","campaignObjective","find","getLocalStorage","summaryItems","keyName","descriptionLine","join","src","alt","horizontalAlign","summaryItem","getStyles","components","palette","completedBorder","blue","completedIcon","inProgressIcon","incompleteBorder","incompleteIcon","neutralLight","white","stepContentBorder","neutralQuaternaryAlt","stepFooterBorder","wizardContentContainer","wizardListContainer","borderRight","paddingLeft","paddingTop","paddingBottom","minHeight","listStyle","borderLeft","borderLeftColor","lineHeight","StepsContextProvider","StepContainer","StepProgressList","VerticalSeparatedLayout","App","willInit","startSimplifyAudienceCampaign","currentPath","getItemGlyphicon","title","StaticAudienceCampaignCreation","Permissions"],"sourceRoot":""}