{"version":3,"file":"static/js/application.async.non-landing~ca4185a0.ee75f370.chunk.js","mappings":"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GAA8B,CAClCnX,GACAS,IAGI2W,GAA0B,CAC9BnW,GACAsT,GACAlT,GACAE,IAGI8V,GAA6B,CACjCpW,GACAvS,GACA6lB,GACAlT,GACAE,IAGI+V,GAAgC,SAAC38C,EAAakD,GAClD,IAAMqN,EAAU,GAahB,OAZAA,EAAQnB,KAAK40B,IACbzzB,EAAQnB,KAAK2sB,IACbxrB,EAAQnB,KAAK8jB,IACTlzB,EAAY48C,wDACdrsC,EAAQnB,KAAK27B,IAEX7nC,GACFqN,EAAQnB,KAAK2kB,IAEfxjB,EAAQnB,KAAK23B,IACbx2B,EAAQnB,KAAK63B,IACb12B,EAAQnB,KAAK43B,IACNz2B,CACT,EAEMssC,GAA0B,CAC9Bjd,GACA1D,GACAa,IAGI+f,GAA2B,CAC/B5V,GACAG,GACAE,GACAG,IAGIqV,GAA8B,CAClC7V,GACAG,GACAtT,GACAwT,GACAG,IAGIsV,GAA4C,CAChDnT,GACAQ,IAGI4S,GAA+B,CACnCxS,GACAC,IAGIwS,GAAmC,CACvCjS,GACAoH,GACA5G,GACA8D,GACAM,IAGIsN,GAA8B,CAClClS,GACAK,GACAuG,GACA7B,GACAH,IAGIuN,GAAwB,CAC5B5K,GACAhV,GACAtB,GACAa,IAGIsgB,GAAuB,CAC3B5K,GACA1W,GACA7I,GACA6X,GACAhE,GACAE,GACAD,IAGIsW,GAA0B,CAC9B7K,GACA1W,GACA7I,GACA6X,GACAhX,GACAgT,GACAE,GACAD,IAGIuW,GAA8B,CAClCtE,GACAld,GACA7I,GACAsK,GACAtB,GACAa,IAGIygB,GAAiC,CACrCvE,GACAld,GACA7I,GACAa,GACAyJ,GACAtB,GACAa,IAGI0gB,GAAwB,CAC5BhK,GACAvgB,GACA6I,GACAqY,GACAlY,IAGIwhB,GAA2B,CAC/BjK,GACAvgB,GACA6I,GACAhI,GACAqgB,GACAlY,IAGIyhB,GAAoC,CACxChgB,GACA0W,GACAC,GACAe,GACAniB,GACA6I,GACAyB,IAGIogB,GAAuC,CAC3CjgB,GACA0W,GACAC,GACAe,GACAniB,GACA6I,GACAhI,GACAyJ,IAGIqgB,GAA4B,CA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","sources":["../../../../advisor/packages/recommendation-details-view/src/additional-pitching.js","../../../../advisor/packages/recommendation-details-view/src/details-summary.js","../../../../advisor/packages/recommendation-details-view/src/user-inputs-mapping-config.js","../../../../advisor/packages/recommendation-details-view/src/label-decorator.js","../../../../advisor/packages/recommendation-details-view/src/form-action-with-estimates.js","../../../../advisor/packages/recommendation-details-view/src/uneditable-label-decorator.js","../../../../advisor/packages/recommendation-details-view/src/uneditable-simple-form.js","../../../../advisor/packages/recommendation-details-view/src/grid-panel.js","../../../../advisor/packages/recommendation-details-view/src/grid-action-with-estimates.js","../../../../advisor/packages/recommendation-details-view/src/individual-recommendation.js","../../../../advisor/packages/recommendation-details-view/src/details-recommendations.js","../../../../advisor/packages/recommendation-details-view/src/details-toolbar.js","../../../../advisor/packages/recommendation-details-view/src/details-view.js","../../../../advisor/packages/recommendation-grid-container/src/grid-container.js","../../../../advisor/packages/recommendation-grid-container/src/toolbar-config.js","../../../../advisor/packages/recommendation-inline-view-factory/src/view.js","../../../../advisor/packages/recommendation-inline-action/src/plugin.js","../../../../advisor/packages/recommendation-inline-action/src/external-feature.js","../../../../advisor/packages/recommendation-grid/src/const.js","../../../../advisor/packages/recommendation-grid/src/columns/action-apply-only-column.js","../../../../advisor/packages/recommendation-grid/src/columns/action-edit-apply-column.js","../../../../advisor/packages/recommendation-grid/src/columns/action-edit-resubmit-column.js","../../../../advisor/packages/recommendation-grid/src/columns/action-edit-only-column.js","../../../../advisor/packages/recommendation-grid/src/columns/action-external-column.js","../../../../advisor/packages/recommendation-grid/src/columns/action-panel-edit-apply-column.js","../../../../advisor/packages/recommendation-grid/src/columns/action-repair-column.js","../../../../advisor/packages/recommendation-grid/src/columns/action-setup-conversion-tracking-column.js","../../../../advisor/packages/recommendation-grid/src/columns/campaign-column.js","../../../../advisor/packages/recommendation-grid/src/columns/account-column.js","../../../../advisor/packages/recommendation-popupeditor/src/bid-editor-model.js","../../../../advisor/packages/recommendation-popupeditor/src/bid-editor.js","../../../../advisor/packages/recommendation-popupeditor/src/ad-group-editor-model.js","../../../../advisor/packages/recommendation-popupeditor/src/ad-group-editor.js","../../../../advisor/packages/recommendation-grid/src/columns/campaign-ad-group-column.js","../../../../advisor/packages/recommendation-grid/src/columns/ad-group-column.js","../../../../advisor/packages/recommendation-grid/src/columns/click-delta-column.js","../../../../advisor/packages/recommendation-grid/src/columns/cost-delta-column.js","../../../../advisor/packages/recommendation-grid/src/columns/impression-delta-column.js","../../../../advisor/packages/recommendation-grid/src/columns/keyword-column.js","../../../../advisor/packages/recommendation-grid/src/columns/match-type-column.js","../../../../advisor/packages/recommendation-grid/src/columns/google-import-todo-column.js","../../../../advisor/packages/recommendation-grid/src/columns/budget-delta-column.js","../../../../advisor/packages/recommendation-grid/src/columns/shared-budget-delta-column.js","../../../../advisor/packages/recommendation-grid/src/columns/conversion-delta-column.js","../../../../advisor/packages/recommendation-grid/src/columns/bid-adjustment-todo-column.js","../../../../advisor/packages/recommendation-grid/src/columns/ctr-delta-column.js","../../../../advisor/packages/recommendation-grid/src/columns/current-match-type-column.js","../../../../advisor/packages/recommendation-grid/src/columns/suggested-bid-column.js","../../../../advisor/packages/recommendation-grid/src/columns/suggested-keyword-column.js","../../../../advisor/packages/recommendation-grid/src/columns/top-search-term-column.js","../../../../advisor/packages/recommendation-grid/src/columns/recommended-because-column.js","../../../../advisor/packages/recommendation-grid/src/columns/match-type-selector-column.js","../../../../advisor/packages/recommendation-grid/src/columns/match-type-inline-editable/prompt.js","../../../../advisor/packages/recommendation-grid/src/columns/match-type-inline-editable/save.js","../../../../advisor/packages/recommendation-grid/src/columns/match-type-selector-column-vnext.js","../../../../advisor/packages/recommendation-grid/src/columns/preview-rsa-column.js","../../../../advisor/packages/recommendation-grid/src/columns/remove-negative-keyword-column.js","../../../../advisor/packages/recommendation-grid/src/columns/blocked-keywords-column.js","../../../../advisor/packages/recommendation-grid/src/columns/suggested-campaign-column.js","../../../../advisor/packages/recommendation-grid/src/columns/estimate-search-column.js","../../../../advisor/packages/recommendation-grid/src/columns/search-example-column.js","../../../../advisor/packages/recommendation-grid/src/columns/current-click-column.js","../../../../advisor/packages/recommendation-grid/src/columns/current-cost-column.js","../../../../advisor/packages/recommendation-grid/src/columns/current-impression-column.js","../../../../advisor/packages/recommendation-grid/src/columns/landing-page-url-column.js","../../../../advisor/packages/recommendation-grid/src/columns/rejection-type-column.js","../../../../advisor/packages/recommendation-grid/src/columns/number-rejected-ads-column.js","../../../../advisor/packages/recommendation-grid/src/columns/number-rejected-keywords-column.js","../../../../advisor/packages/recommendation-grid/src/columns/rejected-ads-keywords-column.js","../../../../advisor/packages/recommendation-grid/src/columns/rejected-ads-column.js","../../../../advisor/packages/recommendation-grid/src/columns/rejected-keywords-column.js","../../../../advisor/packages/recommendation-grid/src/columns/policy-column.js","../../../../advisor/packages/recommendation-grid/src/columns/setup-conversion-tracking-todo-column.js","../../../../advisor/packages/recommendation-grid/src/columns/number-clicks-column.js","../../../../advisor/packages/recommendation-grid/src/columns/number-impressions-column.js","../../../../advisor/packages/recommendation-grid/src/columns/performance-summary-column.js","../../../../advisor/packages/recommendation-grid/src/columns/fix-conversion-tracking-todo-column.js","../../../../advisor/packages/recommendation-grid/src/columns/fix-conversion-tracking-summary-column.js","../../../../advisor/packages/recommendation-grid/src/columns/asset-generated-from.js","../../../../advisor/packages/recommendation-grid/src/columns/goal-column.js","../../../../advisor/packages/recommendation-grid/src/columns/goal-type-column.js","../../../../advisor/packages/recommendation-grid/src/columns/current-setting-column.js","../../../../advisor/packages/recommendation-grid/src/columns/suggested-setting-column.js","../../../../advisor/packages/recommendation-grid/src/columns/missed-conversion-column.js","../../../../advisor/packages/recommendation-grid/src/columns/search-volume-delta-column.js","../../../../advisor/packages/recommendation-grid/src/columns/search-volume-column.js","../../../../advisor/packages/recommendation-grid/src/columns/goal-setting-column.js","../../../../advisor/packages/recommendation-grid/src/columns/generated-from-column.js","../../../../advisor/packages/recommendation-grid/src/columns/issue-type-column.js","../../../../advisor/packages/recommendation-grid/src/columns/action-hybrid-column.js","../../../../advisor/packages/recommendation-grid/src/columns/facebook-import-todo-column.js","../../../../advisor/packages/recommendation-grid/src/columns/preview-mma-column.js","../../../../advisor/packages/recommendation-grid/src/columns/preview-image-extension-column.js","../../../../advisor/packages/recommendation-grid/src/columns/action-image-extension-column.js","../../../../advisor/packages/recommendation-grid/src/columns/image-extension-source-column.js","../../../../advisor/packages/recommendation-grid/src/columns/match-type-new-column.js","../../../../advisor/packages/recommendation-grid/src/columns/param-column.js","../../../../advisor/packages/recommendation-grid/src/columns/param-inline-editable/prompt.js","../../../../advisor/packages/recommendation-grid/src/columns/param-inline-editable/save.js","../../../../advisor/packages/recommendation-grid/src/columns/suggested-param-value-column.js","../../../../advisor/packages/recommendation-grid/src/columns/preview-improve-rsa-column.js","../../../../advisor/packages/recommendation-grid/src/columns/product-group-column.js","../../../../advisor/packages/recommendation-grid/src/columns/campaign-budget-column.js","../../../../advisor/packages/recommendation-grid/src/columns/campaign-priority-column.js","../../../../advisor/packages/recommendation-grid/src/columns/store-country-column.js","../../../../advisor/packages/recommendation-grid/src/columns/product-targeted-column.js","../../../../advisor/packages/recommendation-grid/src/columns/suggested-bid-product-group-column.js","../../../../advisor/packages/recommendation-grid/src/columns/suggested-shopping-campaign-column.js","../../../../advisor/packages/recommendation-grid/src/columns/suggested-shopping-adgroup-column.js","../../../../advisor/packages/recommendation-grid/src/columns/preview-improve-mma-column.js","../../../../advisor/packages/recommendation-grid/src/columns/dsa-level-type-column.js","../../../../advisor/packages/recommendation-grid/src/columns/store-column.js","../../../../advisor/packages/recommendation-grid/src/columns/country-or-region-column.js","../../../../advisor/packages/recommendation-grid/src/columns/performance-max-import-description-column.js","../../../../advisor/packages/recommendation-grid/src/columns/performance-max-import-todo-column.js","../../../../advisor/packages/recommendation-grid/src/columns/upgraded-campaign-column.js","../../../../advisor/packages/recommendation-grid/src/columns/cpc-avg-delta-column.js","../../../../advisor/packages/recommendation-grid/src/columns/cpa-delta-column.js","../../../../advisor/packages/recommendation-grid/src/columns/index.js","../../../../advisor/packages/recommendation-grid/src/filter-helper.js","../../../../advisor/packages/recommendation-grid/src/grid-service.js","../../../../advisor/packages/recommendation-grid/src/grid-config.js","../../../../advisor/packages/recommendation-grid/src/grid-toolbar-plugin.js","../../../../advisor/packages/recommendation-grid/src/reject-button/grid-reject-button.js","../../../../advisor/packages/recommendation-grid/src/view.js","../../../../advisor/packages/recommendation-grid/src/new-additional-plugins.js","../../../../advisor/packages/recommendation-grid/src/new-grid.js","../../../../advisor/packages/recommendation-grid/src/recommendation-details-list.tsx","../../../../advisor/packages/recommendation-grid/src/columns/health-check/account-name.js","../../../../advisor/packages/recommendation-grid/src/columns/health-check/failed-check-points.js","../../../../advisor/packages/recommendation-grid/src/columns/health-check/status.js","../../../../advisor/packages/recommendation-grid/src/columns/health-check/spend.js","../../../../advisor/packages/recommendation-grid/src/columns/health-check/budget-in-search.js","../../../../advisor/packages/recommendation-grid/src/columns/health-check/spend-in-search.js","../../../../advisor/packages/recommendation-grid/src/columns/health-check/budget-in-audience-pmax.js","../../../../advisor/packages/recommendation-grid/src/columns/health-check/spend-in-audience-pmax.js","../../../../advisor/packages/recommendation-grid/src/grid-column-builder.js","../../../../advisor/packages/recommendation-inline-action/src/const.js","../../../../advisor/packages/recommendation-inline-action/src/create-conversion-goal/index.js","../../../../advisor/packages/recommendation-inline-action/src/image-extension/index.js","../../../../advisor/packages/recommendation-inline-action/src/new-ads-view/index.js","../../../../advisor/packages/recommendation-inline-ad-extension-view/src/viewmodel/AdExtensionEditorModel.js","../../../../advisor/packages/recommendation-inline-ad-extension-view/src/view/AdExtensionEditorView.js","../../../../advisor/packages/recommendation-inline-ad-extension-view/src/view/index.js","../../../../advisor/packages/recommendation-inline-create-conversion-goal-view/src/shared/instrumentation-schema.js","../../../../advisor/packages/recommendation-inline-create-conversion-goal-view/src/shared/util.js","../../../../advisor/packages/recommendation-inline-create-conversion-goal-view/src/shared/goal-creation-editor.js","../../../../advisor/packages/recommendation-inline-create-conversion-goal-view/src/viewmodel/create-coversion-goal-model.js","../../../../advisor/packages/recommendation-inline-create-conversion-goal-view/src/view/create-coversion-goal.js","../../../../advisor/packages/recommendation-inline-dynamic-search-ads-view/src/const.js","../../../../advisor/packages/recommendation-inline-dynamic-search-ads-view/src/viewmodel/dynamic-search-ads-inline-view-model.js","../../../../advisor/packages/recommendation-inline-dynamic-search-ads-view/src/view/adgroup-editor.js","../../../../advisor/packages/recommendation-inline-dynamic-search-ads-view/src/view/editors-container.js","../../../../advisor/packages/recommendation-inline-dynamic-search-ads-view/src/view/dynamic-search-ads-inline-view.js","../../../../advisor/packages/recommendation-inline-fix-ad-destination-view/src/viewmodel/index.js","../../../../advisor/packages/recommendation-inline-fix-ad-destination-view/src/view/index.js","../../../../advisor/packages/recommendation-inline-fix-conversion-goal-setting-view/src/viewmodel/fix-coversion-goal-setting-model.js","../../../../advisor/packages/recommendation-inline-fix-conversion-goal-setting-view/src/view/fix-coversion-goal-setting.js","../../../../advisor/packages/recommendation-inline-new-ads-view/src/new-ads-preview-model.js","../../../../advisor/packages/recommendation-inline-new-ads-view/src/model/rsa-model.js","../../../../advisor/packages/recommendation-inline-new-ads-view/src/model/mma-model.js","../../../../advisor/packages/recommendation-inline-new-ads-view/src/model/improve-rsa-model.js","../../../../advisor/packages/recommendation-inline-new-ads-view/src/model/improve-mma-model.js","../../../../advisor/packages/recommendation-inline-new-ads-view/src/const.js","../../../../advisor/packages/recommendation-inline-new-ads-view/src/ads-editor-container.js","../../../../advisor/packages/recommendation-inline-new-ads-view/src/new-ads-preview.js","../../../../advisor/packages/recommendation-inline-reallocate-budget-view/src/const.js","../../../../advisor/packages/recommendation-inline-reallocate-budget-view/src/viewmodel/index.js","../../../../advisor/packages/recommendation-inline-reallocate-budget-view/src/view/index.js","../../../../advisor/packages/recommendation-inline-repair-keywords-view/src/view/index.js","../../../../advisor/packages/recommendation-inline-setup-conversion-tracking-view/src/view/index.js","../../../../advisor/packages/recommendation-inline-setup-conversion-tracking-view/index.js","../../../../advisor/packages/recommendation-status-lightbox/src/viewmodel/index.js","../../../../advisor/packages/recommendation-status-lightbox/src/view/filterBanner.js","../../../../advisor/packages/recommendation-status-lightbox/src/view/index.js","../../../../advisor/packages/recommendation-tab/index.js","../../../../advisor/packages/recommendation-tab/src/recommendation-tab-view.js","../../../../advisor/packages/recommendation-tab/src/instrumentation-schema.js","../../../../advisor/packages/recommendation-tab/src/with-navigation.js","../../../../advisor/packages/recommendation-tab/src/recommendation-tab-container.js","../../../../advisor/packages/recommendation-tab/src/teaching-bubble.js","../../../../advisor/packages/recommendation-tab/src/optimization-score-teacching-bubble.js","../../../../advisor/packages/recommendation-tab/src/recommendations-auto-apply-settings.js","../../../../advisor/packages/recommendation-tab/src/style/apply-settings-style.js","../../../../advisor/packages/recommendation-tab/src/recommendation-tab.js","../../../../advisor/packages/recommendation-tab/src/recommendations-bulk-aar.js","../../../../advisor/packages/recommendation-tab/src/recommendations-details-header.js","../../../../advisor/packages/recommendation-tab/src/recommendations-details-view.js","../../../../advisor/packages/recommendation-history-header/src/index.js","../../../../advisor/packages/recommendation-history-grid/src/columns/edited-by.js","../../../../advisor/packages/recommendation-history-grid/src/columns/number-of-recommendation.js","../../../../advisor/packages/recommendation-history-grid/src/columns/recommendation-type.js","../../../../advisor/packages/recommendation-history-grid/src/columns/start-time.js","../../../../advisor/packages/recommendation-history-grid/src/columns/status.js","../../../../advisor/packages/recommendation-history-grid/src/grid-service.js","../../../../advisor/packages/recommendation-history-grid/src/grid-config.js","../../../../advisor/packages/recommendation-history-grid/src/index.js","../../../../advisor/packages/recommendation-tab/src/recommendations-history.js","../../../../advisor/packages/recommendation-tab/style/history-page-style.js","../../../../advisor/packages/recommendation-grid/src/columns/account-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/action-apply-only-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/action-edit-apply-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/action-edit-only-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/action-edit-resubmit-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/action-external-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/action-hybrid-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/action-image-extension-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/action-panel-edit-apply-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/action-repair-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/action-setup-conversion-tracking-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/ad-group-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/bid-adjustment-todo.pug","../../../../advisor/packages/recommendation-grid/src/columns/blocked-keywords-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/budget-delta.pug","../../../../advisor/packages/recommendation-grid/src/columns/campaign-ad-group-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/campaign-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/country-or-region-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/current-setting-column-dest-url.pug","../../../../advisor/packages/recommendation-grid/src/columns/current-setting-column-event.pug","../../../../advisor/packages/recommendation-grid/src/columns/delta.pug","../../../../advisor/packages/recommendation-grid/src/columns/estimate-search-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/fix-conversion-tracking-summary-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/fix-conversion-tracking-todo-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/generated-from-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/goal-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/goal-setting-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/keyword-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/landing-page-url-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/match-type-selector-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/number-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/policy-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/preview-image-extension-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/preview-improve-mma-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/preview-improve-rsa-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/preview-mma-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/preview-rsa-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/rejected-ads-keywords-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/rejection-type-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/remove-negative-keyword-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/setting-column-UET.pug","../../../../advisor/packages/recommendation-grid/src/columns/setting-column-revenue-value.pug","../../../../advisor/packages/recommendation-grid/src/columns/shared-budget-delta.pug","../../../../advisor/packages/recommendation-grid/src/columns/store-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/suggested-bid-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/suggested-bid-product-group-column.pug","../../../../advisor/packages/recommendation-grid/src/columns/suggested-setting-column-dest-url.pug","../../../../advisor/packages/recommendation-grid/src/columns/suggested-setting-column-event.pug","../../../../advisor/packages/recommendation-grid/src/columns/top-search-term.pug","../../../../advisor/packages/recommendation-grid/src/reject-button/grid-reject-button.pug","../../../../advisor/packages/recommendation-grid/src/template.pug","../../../../advisor/packages/recommendation-history-grid/src/columns/one-line-text.pug","../../../../advisor/packages/recommendation-history-grid/src/columns/status.pug","../../../../advisor/packages/recommendation-history-grid/src/template.pug","../../../../advisor/packages/recommendation-inline-action/src/container.pug","../../../../advisor/packages/recommendation-inline-ad-extension-view/src/template/adextension.pug","../../../../advisor/packages/recommendation-inline-ad-extension-view/src/template/increaseArrow.pug","../../../../advisor/packages/recommendation-inline-ad-extension-view/src/template/index.pug","../../../../advisor/packages/recommendation-inline-ad-extension-view/src/template/strong.pug","../../../../advisor/packages/recommendation-inline-create-conversion-goal-view/src/template/create-conversion-goal.pug","../../../../advisor/packages/recommendation-inline-dynamic-search-ads-view/src/template/adgroup-editor.pug","../../../../advisor/packages/recommendation-inline-dynamic-search-ads-view/src/template/dynamic-search-ads-inline-view.pug","../../../../advisor/packages/recommendation-inline-dynamic-search-ads-view/src/template/editors-container.pug","../../../../advisor/packages/recommendation-inline-fix-ad-destination-view/src/template/adsPreview.pug","../../../../advisor/packages/recommendation-inline-fix-ad-destination-view/src/template/index.pug","../../../../advisor/packages/recommendation-inline-fix-ad-destination-view/src/template/urlEditor.pug","../../../../advisor/packages/recommendation-inline-fix-conversion-goal-setting-view/src/template/destinationGoalType.pug","../../../../advisor/packages/recommendation-inline-fix-conversion-goal-setting-view/src/template/eventGoalType.pug","../../../../advisor/packages/recommendation-inline-fix-conversion-goal-setting-view/src/template/fix-conversion-goal-setting-dest-url.pug","../../../../advisor/packages/recommendation-inline-fix-conversion-goal-setting-view/src/template/fix-conversion-goal-setting-event.pug","../../../../advisor/packages/recommendation-inline-fix-conversion-goal-setting-view/src/template/fix-conversion-goal-setting-revenue-value.pug","../../../../advisor/packages/recommendation-inline-new-ads-view/src/ads-editor-container.pug","../../../../advisor/packages/recommendation-inline-new-ads-view/src/new-ads-preview.pug","../../../../advisor/packages/recommendation-inline-reallocate-budget-view/src/template/index.pug","../../../../advisor/packages/recommendation-inline-repair-keywords-view/src/template/index.pug","../../../../advisor/packages/recommendation-inline-setup-conversion-tracking-view/src/template/index.pug","../../../../advisor/packages/recommendation-inline-setup-conversion-tracking-view/src/template/performance-summary.pug","../../../../advisor/packages/recommendation-inline-setup-conversion-tracking-view/src/template/setup-conversion-tracking-todo.pug","../../../../advisor/packages/recommendation-inline-view-factory/src/template.pug","../../../../advisor/packages/recommendation-popupeditor/src/ad-group-editor.pug","../../../../advisor/packages/recommendation-popupeditor/src/bid-editor.pug","../../../../advisor/packages/recommendation-status-lightbox/src/template/filterBanner.pug","../../../../advisor/packages/recommendation-status-lightbox/src/template/index.pug"],"sourcesContent":["import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n RECOMMENDATION_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport const AdditionalPitching = props => (\r\n
\r\n {props.additionDetailPitchingConfig[props.type] &&\r\n
\r\n {props.i18n.getString(props.additionDetailPitchingConfig[props.type].detailPitching)}\r\n
\r\n }\r\n {props.needNRTDisclaimer &&\r\n
\r\n {props.i18n.getString(`Details_View_NRT_Disclaimer_${props.type}`) || props.i18n.getString('Details_View_NRT_Disclaimer')}\r\n
\r\n }\r\n {props.inProductUpdateConfig &&\r\n props.isDefinedAdditionalPitching &&\r\n props.isRSARecAutoApplyNotOptIn &&\r\n
\r\n {props.i18n.getString(props.inProductUpdateConfig.additionalPitching)}\r\n
\r\n }\r\n {props.type === RECOMMENDATION_TYPES.SSC_2_PMAX_MIGRATION &&\r\n
\r\n {props.newI18n.getString(_TL_('Expand your ad reach and drive your performance by upgrading your smart shopping campaigns to Performance Max campaigns. We\\'ll use your existing assets, settings, and budgets to create new Performance Max campaigns while maintaining performance insights from previous campaigns. This update usually takes about one day to complete.'))}\r\n
\r\n }\r\n {props.permissions.IsAccountEnabledForCrawlImagesFromLandingPage &&\r\n props.type === RECOMMENDATION_TYPES.IMAGE_EXTENSION &&\r\n
\r\n
\r\n {props.newI18n.getString(_TL_('Turning on the auto-retrieve image tool allows your ads to use images from your website, and you agree that all images belong to you under the'))}\r\n  \r\n \r\n {props.newI18n.getString(_TL_('Microsoft Advertising Agreement'))}\r\n \r\n .\r\n
\r\n
\r\n {props.newI18n.getString(_TL_('You can change your image auto-retrieval settings anytime'))}\r\n  \r\n \r\n {props.newI18n.getString(_TL_('here'))}\r\n \r\n .\r\n
\r\n
\r\n }\r\n
\r\n);\r\n\r\nAdditionalPitching.propTypes = {\r\n additionDetailPitchingConfig: PropTypes.objectOf(PropTypes.any),\r\n aid: PropTypes.number,\r\n cid: PropTypes.number,\r\n i18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func,\r\n }),\r\n inProductUpdateConfig: PropTypes.objectOf(PropTypes.any),\r\n isDefinedAdditionalPitching: PropTypes.bool,\r\n isRSARecAutoApplyNotOptIn: PropTypes.bool,\r\n needNRTDisclaimer: PropTypes.bool,\r\n newI18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func,\r\n }),\r\n permissions: PropTypes.objectOf(PropTypes.any),\r\n type: PropTypes.string,\r\n uid: PropTypes.number,\r\n};\r\n\r\nAdditionalPitching.defaultProps = {\r\n additionDetailPitchingConfig: {},\r\n aid: null,\r\n cid: null,\r\n i18n: {\r\n getString: _.noop,\r\n },\r\n inProductUpdateConfig: {},\r\n isDefinedAdditionalPitching: false,\r\n isRSARecAutoApplyNotOptIn: false,\r\n needNRTDisclaimer: false,\r\n newI18n: {\r\n getString: _.noop,\r\n },\r\n permissions: {},\r\n type: null,\r\n uid: null,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nimport { EstimationTile, SummaryEstimation } from '@bingads-webui-campaign-react/recommendation-estimation-tile';\r\nimport { LearnMoreLink } from '@bingads-webui-campaign-react/help';\r\nimport {\r\n withAdsAutoApply,\r\n RECOMMENDATION_TYPES,\r\n recommendationInProductUpdateConfigs,\r\n additionDetailPitchingConfig,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport {\r\n isInProductUpdateBannerAvailable,\r\n isAdditionalPitchingAvailable,\r\n InProdUpdateNotificationBanner,\r\n WarnNotificationBanner\r\n} from '@bingads-webui-campaign/recommendation-notification';\r\nimport { CouponTagNew } from '@bingads-webui-react/feature-adoption-coupon';\r\nimport { RecommendationOptimizationScoreTag } from '@bingads-webui-campaign-react/recommendation-os-tag';\r\nimport { StyledRecommendationAutpApplyBanner } from '@bingads-webui-campaign-react/recommendation-auto-apply-banner';\r\nimport { MessageBar, MessageBarType } from '@bingads-webui-react/fabric-control';\r\nimport { AdditionalPitching } from './additional-pitching';\r\n\r\nexport class DetailsSummary extends React.PureComponent {\r\n static propTypes = {\r\n iconClasses: PropTypes.string.isRequired,\r\n iconClassesVNext: PropTypes.string.isRequired,\r\n title: PropTypes.string.isRequired,\r\n description: PropTypes.string.isRequired,\r\n pitching: PropTypes.string.isRequired,\r\n helpId: PropTypes.string.isRequired,\r\n estimates: PropTypes.objectOf(PropTypes.any),\r\n coupon: PropTypes.objectOf(PropTypes.any),\r\n i18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n cid: PropTypes.number,\r\n uid: PropTypes.number,\r\n aid: PropTypes.number,\r\n odata: PropTypes.PropTypes.shape({\r\n get: PropTypes.func.isRequired,\r\n }),\r\n type: PropTypes.string,\r\n optInStatus: PropTypes.bool,\r\n applyDate: PropTypes.number,\r\n recommendationsCount: PropTypes.number,\r\n isEstimate: PropTypes.bool,\r\n needNRTDisclaimer: PropTypes.bool,\r\n appConfig: PropTypes.objectOf(PropTypes.any),\r\n isMCC: PropTypes.bool,\r\n isNrt: PropTypes.bool,\r\n hasAIAssetRecommendation: PropTypes.bool,\r\n accounts: PropTypes.arrayOf(PropTypes.shape({\r\n accountId: PropTypes.string,\r\n accountName: PropTypes.string,\r\n optInStatus: PropTypes.bool,\r\n adsByBingAutoApply: PropTypes.string,\r\n })),\r\n permissions: PropTypes.objectOf(PropTypes.any),\r\n optimizationScore: PropTypes.number,\r\n preferencesService: PropTypes.objectOf(PropTypes.any),\r\n overallOptimizationScoreBar: PropTypes.shape({\r\n Gained: PropTypes.number,\r\n Dismissed: PropTypes.number,\r\n Available: PropTypes.number,\r\n }),\r\n linkType: PropTypes.string,\r\n isOptimizationScoreOn: PropTypes.bool,\r\n newI18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func,\r\n }),\r\n isDismissedCategory: PropTypes.bool,\r\n showAutoApplyBanner: PropTypes.bool,\r\n isAutoApplyRecommendationEnabled: PropTypes.bool,\r\n viewSettings: PropTypes.func,\r\n thirdPartyInfos: PropTypes.arrayOf(PropTypes.shape({\r\n Level: PropTypes.number,\r\n ThirdPartyName: PropTypes.string,\r\n })),\r\n isAutoApplyOptIn: PropTypes.bool,\r\n };\r\n\r\n static defaultProps = {\r\n estimates: null,\r\n cid: null,\r\n uid: null,\r\n aid: null,\r\n odata: null,\r\n type: null,\r\n optInStatus: false,\r\n applyDate: 0,\r\n recommendationsCount: 0,\r\n appConfig: null,\r\n isEstimate: true,\r\n needNRTDisclaimer: false,\r\n coupon: null,\r\n isMCC: false,\r\n isNrt: false,\r\n hasAIAssetRecommendation: false,\r\n accounts: [],\r\n permissions: {},\r\n optimizationScore: null,\r\n preferencesService: null,\r\n overallOptimizationScoreBar: null,\r\n linkType: 'helpPopup',\r\n isOptimizationScoreOn: false,\r\n newI18n: {\r\n getString: _.noop,\r\n },\r\n isDismissedCategory: false,\r\n showAutoApplyBanner: false,\r\n isAutoApplyRecommendationEnabled: false,\r\n viewSettings: _.noop,\r\n thirdPartyInfos: undefined,\r\n isAutoApplyOptIn: false,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n campaignAutoApplyStatus: {},\r\n };\r\n }\r\n\r\n render() {\r\n const {\r\n iconClasses,\r\n iconClassesVNext,\r\n description,\r\n estimates,\r\n pitching,\r\n helpId,\r\n i18n,\r\n title,\r\n cid,\r\n aid,\r\n uid,\r\n odata,\r\n type,\r\n optInStatus,\r\n applyDate,\r\n recommendationsCount,\r\n appConfig,\r\n isEstimate,\r\n needNRTDisclaimer,\r\n coupon,\r\n permissions,\r\n optimizationScore,\r\n isNrt,\r\n hasAIAssetRecommendation,\r\n preferencesService,\r\n overallOptimizationScoreBar,\r\n linkType,\r\n isOptimizationScoreOn,\r\n newI18n,\r\n isDismissedCategory,\r\n showAutoApplyBanner,\r\n isAutoApplyRecommendationEnabled,\r\n viewSettings,\r\n thirdPartyInfos,\r\n isMCC,\r\n isAutoApplyOptIn,\r\n } = this.props;\r\n\r\n const AutoApplyBanner = isAutoApplyRecommendationEnabled ?\r\n StyledRecommendationAutpApplyBanner : withAdsAutoApply(StyledRecommendationAutpApplyBanner);\r\n const withEstimateTileStyle = !isOptimizationScoreOn && estimates ? 'details-summary-with-estimate' : '';\r\n const withOptimizationScore = isOptimizationScoreOn ? 'with-optimization-score' : '';\r\n const summary = { isNrt, hasAIAssetRecommendation };\r\n const inProductUpdateConfig = recommendationInProductUpdateConfigs[type];\r\n const isDefinedAdditionalPitching = isAdditionalPitchingAvailable(type, permissions, summary);\r\n const isRSARecAutoApplyNotOptIn = type === RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS ?\r\n this.state.campaignAutoApplyStatus[RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS] !== 'true' :\r\n true;\r\n\r\n const tagManager = thirdPartyInfos && thirdPartyInfos.length > 0 ?\r\n thirdPartyInfos[0].ThirdPartyName : null;\r\n const additionalArgs = _.isNull(tagManager) ? {} : { tagManager };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{title}
\r\n {coupon && (\r\n \r\n )}\r\n {isOptimizationScoreOn && !_.isEmpty(overallOptimizationScoreBar) &&\r\n !isDismissedCategory &&\r\n \r\n }\r\n
\r\n {inProductUpdateConfig && inProductUpdateConfig.warnNotification &&\r\n \r\n }\r\n {isInProductUpdateBannerAvailable(type, permissions, summary) &&\r\n \r\n }\r\n {type === RECOMMENDATION_TYPES.CREATE_CONVERSION_GOAL &&\r\n \r\n {newI18n.getString(_TL_('In the default setting, conversions from recommended goals will appear in the “Conversions” column and will affect any enabled automated bidding strategies.'))}\r\n \r\n }\r\n \r\n \r\n
\r\n
\r\n \r\n {type === RECOMMENDATION_TYPES.CREATE_CONVERSION_GOAL &&\r\n
\r\n \r\n
\r\n }\r\n \r\n
\r\n {isOptimizationScoreOn && estimates &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n {isEstimate && estimates && i18n.getString('Details_View_Past_Performance_Blurb')}\r\n {type === RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS &&\r\n
\r\n {isEstimate && estimates && newI18n.getString(_TL_('We recommend using these ad texts, headlines, and images generated from your websites.'))}\r\n
\r\n }\r\n
\r\n
\r\n {!isOptimizationScoreOn && estimates &&\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n }\r\n {showAutoApplyBanner &&\r\n {\r\n if (campaignAutoApplyStatus[type] !== this.state.campaignAutoApplyStatus[type]) {\r\n this.setState({ campaignAutoApplyStatus });\r\n }\r\n }}\r\n permissions={permissions}\r\n type={type}\r\n campaignAutoApplyStatus={isAutoApplyRecommendationEnabled ? { [type]: 'true' } : {}}\r\n optInStatus={optInStatus}\r\n isAutoApplyRecommendationEnabled={isAutoApplyRecommendationEnabled}\r\n viewSettings={viewSettings}\r\n />}\r\n
\r\n );\r\n }\r\n}\r\n\r\n","import {\r\n RECOMMENDATION_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nconst defaultParser = (i18n, value) => i18n.parseDecimal(value);\r\n\r\n// for each type, key is MT field, value is UI property name used in recommendation-config.js.\r\nexport const userInputsMappingConfigForForm = {\r\n [RECOMMENDATION_TYPES.BUDGET]: {\r\n NewBudget: {\r\n property: 'budgetSuggested',\r\n parser: defaultParser,\r\n },\r\n },\r\n // deprecated in Oct 2023\r\n [RECOMMENDATION_TYPES.NEW_KEYWORD]: {\r\n NewBid: {\r\n property: 'suggestedBid',\r\n parser: defaultParser,\r\n },\r\n MatchType: {\r\n property: 'matchType',\r\n parser: defaultParser,\r\n },\r\n TargetAdGroupId: {\r\n property: 'AdGroupId',\r\n isFromTarget: true,\r\n },\r\n },\r\n};\r\n\r\nexport const userInputsMappingConfigForGrid = {\r\n [RECOMMENDATION_TYPES.COMPETITIVE_BID]: {\r\n selected: {\r\n nameInRequest: 'NewBid',\r\n property: 'suggestedBid',\r\n },\r\n },\r\n [RECOMMENDATION_TYPES.DEVICE_BID_BOOST]: {\r\n selected: {\r\n nameInRequest: 'NewBidBoost',\r\n property: 'suggestedBidAdjustmentPercent',\r\n },\r\n },\r\n [RECOMMENDATION_TYPES.LOCATION_BID_BOOST]: {\r\n selected: {\r\n nameInRequest: 'NewBidBoost',\r\n property: 'suggestedBidAdjustmentPercent',\r\n },\r\n },\r\n [RECOMMENDATION_TYPES.NEW_LOCATION]: {\r\n // no inputs besides opportunity id\r\n },\r\n [RECOMMENDATION_TYPES.SYNDICATION]: {\r\n // no inputs besides opportunity id\r\n },\r\n};\r\n","/* eslint-disable jsx-a11y/label-has-for */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const LabelDecorator = props => (\r\n
\r\n \r\n
\r\n {props.children}\r\n
\r\n
);\r\n\r\nLabelDecorator.propTypes = {\r\n label: PropTypes.string,\r\n children: PropTypes.element.isRequired,\r\n};\r\n\r\nLabelDecorator.defaultProps = {\r\n label: '',\r\n};\r\n","/* eslint-disable jsx-a11y/label-has-for */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nimport {\r\n APPLY_USERINPUT_TYPES,\r\n CHANNEL_TYPES,\r\n APPLY_ACTION_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { EstimationTile } from '@bingads-webui-campaign-react/recommendation-estimation-tile';\r\n\r\nimport { ErrorMessages } from '@bingads-webui-react/validation';\r\nimport { ValidatedInputLite } from '@bingads-webui-react/validation-controls';\r\nimport { RadioGroup } from '@bingads-webui-react/radio';\r\nimport { LearnMoreLink } from '@bingads-webui-campaign-react/help';\r\n\r\nimport { userInputsMappingConfigForForm } from './user-inputs-mapping-config';\r\nimport { LabelDecorator } from './label-decorator';\r\n\r\nexport class FormActionWithEstimates extends React.PureComponent {\r\n static propTypes = {\r\n title: PropTypes.string,\r\n fields: PropTypes.arrayOf(PropTypes.shape({\r\n type: PropTypes.string,\r\n label: PropTypes.string,\r\n text: PropTypes.string,\r\n value: PropTypes.string,\r\n enum: PropTypes.array,\r\n helpTopic: PropTypes.string,\r\n helpText: PropTypes.string,\r\n helpQuery: PropTypes.string,\r\n })).isRequired,\r\n i18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n estimates: PropTypes.objectOf(PropTypes.any).isRequired,\r\n track: PropTypes.func.isRequired,\r\n type: PropTypes.string.isRequired,\r\n model: PropTypes.objectOf(PropTypes.any).isRequired,\r\n target: PropTypes.objectOf(PropTypes.any).isRequired,\r\n rowClass: PropTypes.string.isRequired,\r\n schema: PropTypes.objectOf(PropTypes.any).isRequired,\r\n currency: PropTypes.string.isRequired,\r\n logOpportunityEvent: PropTypes.func.isRequired,\r\n readOnly: PropTypes.bool.isRequired,\r\n context: PropTypes.shape({\r\n Level: PropTypes.string.isRequired,\r\n }).isRequired,\r\n guid: PropTypes.string.isRequired,\r\n logExpInfo: PropTypes.func.isRequired,\r\n };\r\n\r\n static defaultProps = {\r\n title: '',\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {};\r\n this.validationPropsDict = {};\r\n this.formattedFieldsDict = {};\r\n\r\n props.logOpportunityEvent({\r\n opportunityId: props.model.opportunityId,\r\n campaignId: props.target.CampaignId,\r\n context: props.context,\r\n });\r\n _.each(props.fields, (field) => {\r\n const {\r\n type, property, value, items,\r\n } = field;\r\n this.formattedFieldsDict[property] = field;\r\n\r\n if (type === 'input') {\r\n this.state[property] = { radio: items[0], suggested: true };\r\n\r\n // initalize error processor\r\n const propertySchema = props.schema.properties[property];\r\n const errorProcessor = errors => _.map(\r\n errors,\r\n (oldError, key) => {\r\n if (key === 'range') {\r\n return props.i18n.getString(`Validation_Number_Range_Between_${property}`, {\r\n min: propertySchema.minimum,\r\n max: propertySchema.maximum,\r\n currency: props.currency,\r\n });\r\n }\r\n return oldError;\r\n }\r\n );\r\n this.validationPropsDict[property] = {\r\n i18n: props.i18n,\r\n schema: props.schema,\r\n field: property,\r\n errorProcessor,\r\n onValidate: this.onValidate(property),\r\n };\r\n } else if (type === 'select') {\r\n this.state[property] = { suggested: true, value };\r\n }\r\n });\r\n }\r\n\r\n onUpdateState = (property, val) => {\r\n let input = val;\r\n\r\n this.setState((prevState) => {\r\n input = _.extend({}, prevState[property], val);\r\n\r\n return {\r\n [property]: input,\r\n };\r\n });\r\n }\r\n\r\n onInputChange = (e) => {\r\n const { name, value } = e.target;\r\n const { items } = this.formattedFieldsDict[name];\r\n\r\n this.onUpdateState(name, {\r\n radio: items[1],\r\n suggested: false,\r\n value,\r\n });\r\n }\r\n\r\n onRadioChange = property => (item) => {\r\n const { items } = this.formattedFieldsDict[property];\r\n\r\n this.onUpdateState(property, {\r\n radio: item,\r\n suggested: item === items[0],\r\n });\r\n }\r\n\r\n onSelectChange = (e) => {\r\n const { name, value } = e.target;\r\n const defaultSelectedValue = this.formattedFieldsDict[name].value;\r\n\r\n this.onUpdateState(name, {\r\n value,\r\n suggested: value === defaultSelectedValue,\r\n });\r\n }\r\n\r\n onValidate = property => ({ messages, isValid }) => {\r\n this.onUpdateState(property, {\r\n messages,\r\n isValid,\r\n });\r\n }\r\n\r\n getUserInputs(isApply, returnOnlyWhenModified = false) {\r\n let modified = false;\r\n\r\n const defaultUserInputObject = {\r\n OpportunityId: this.props.model.opportunityId,\r\n };\r\n\r\n const userInputObject = {};\r\n\r\n if (isApply) {\r\n const odataType = APPLY_USERINPUT_TYPES[this.props.type];\r\n if (odataType) {\r\n defaultUserInputObject['@odata.type'] = odataType;\r\n }\r\n\r\n const config = userInputsMappingConfigForForm[this.props.type];\r\n _.each(config, ({ property, parser, isFromTarget }, key) => {\r\n let value;\r\n if (isFromTarget) {\r\n value = this.props.target[property];\r\n } else {\r\n const propertyState = this.state[property];\r\n if (propertyState.suggested) {\r\n value = this.props.model[property];\r\n } else {\r\n value = parser(this.props.i18n, propertyState.value);\r\n modified = true;\r\n }\r\n }\r\n userInputObject[key] = value;\r\n });\r\n }\r\n\r\n if (returnOnlyWhenModified && !modified) return null;\r\n\r\n if (modified) {\r\n return [_.extend({}, defaultUserInputObject, userInputObject)];\r\n }\r\n return [defaultUserInputObject];\r\n }\r\n\r\n buildRequestOptions(isApply) {\r\n const campaignAdGroups = [{\r\n Key: this.props.target.CampaignId,\r\n Value: this.props.target.AdGroupId ? [this.props.target.AdGroupId] : [],\r\n }];\r\n\r\n const userAction = isApply ? APPLY_ACTION_TYPES.ACCEPT : APPLY_ACTION_TYPES.DISMISS;\r\n const userInputs = this.getUserInputs(isApply);\r\n\r\n return {\r\n userInputs,\r\n userAction,\r\n type: this.props.type,\r\n campaignAdGroups,\r\n channel: CHANNEL_TYPES.COMPETITION,\r\n context: this.props.context,\r\n guid: this.props.guid,\r\n };\r\n }\r\n\r\n hasError() {\r\n return _.some(this.state, ({\r\n suggested,\r\n isValid,\r\n }) => (!suggested && isValid === false));\r\n }\r\n\r\n apply = () => {\r\n if (this.hasError()) return;\r\n\r\n this.props.logExpInfo('1 recommendation applied');\r\n\r\n const ops = this.buildRequestOptions(true);\r\n this.props.track(ops);\r\n }\r\n\r\n dismiss = () => {\r\n if (this.hasError()) return;\r\n\r\n const ops = this.buildRequestOptions(false);\r\n this.props.track(ops);\r\n }\r\n\r\n renderRadioGroupItem = field => (item, index) => {\r\n const { property, value } = field;\r\n const propertyState = this.state[property];\r\n\r\n if (index === 0) {\r\n return this.props.i18n.getString('Details_View_Suggested_Suffix', {\r\n suggested_value: item,\r\n });\r\n }\r\n return (\r\n \r\n \r\n {!propertyState.suggested &&\r\n !propertyState.isValid &&\r\n }\r\n );\r\n };\r\n\r\n renderRadioGroup = field =>\r\n ();\r\n\r\n renderField = (field, index) => {\r\n let control = (\r\n \r\n
\r\n \r\n
\r\n
);\r\n\r\n switch (field.type) {\r\n case 'input': {\r\n control = (\r\n \r\n {this.renderRadioGroup(field)}\r\n );\r\n break;\r\n }\r\n case 'select': {\r\n const options = _.map(field.enum, ({ value, text }, key) => (\r\n \r\n ));\r\n control = (\r\n \r\n \r\n {options}\r\n \r\n );\r\n break;\r\n }\r\n case 'info':\r\n control = (\r\n
\r\n {field.text}\r\n
\r\n
\r\n \r\n
\r\n
);\r\n break;\r\n default:\r\n break;\r\n }\r\n return control;\r\n }\r\n\r\n renderFields = fields => _.map(fields, this.renderField)\r\n\r\n render() {\r\n const {\r\n i18n,\r\n title,\r\n fields,\r\n rowClass,\r\n readOnly,\r\n } = this.props;\r\n\r\n let suggested = true;\r\n _.each(this.state, (value, property) => {\r\n if (this.state[property] && this.state[property].suggested === false) {\r\n suggested = false;\r\n }\r\n });\r\n\r\n return (\r\n \r\n
\r\n
{title}
\r\n
\r\n {this.renderFields(fields)}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {suggested &&\r\n }\r\n
\r\n \r\n );\r\n }\r\n}\r\n","/* eslint-disable jsx-a11y/label-has-for */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const UnEditableLabelDecorator = props => (\r\n
\r\n
\r\n \r\n
\r\n
{props.text}
\r\n {props.children}\r\n
);\r\n\r\nUnEditableLabelDecorator.propTypes = {\r\n label: PropTypes.string.isRequired,\r\n text: PropTypes.string,\r\n children: PropTypes.objectOf(PropTypes.any),\r\n};\r\n\r\nUnEditableLabelDecorator.defaultProps = {\r\n children: null,\r\n text: '',\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nimport { ProgressBar } from '@bingads-webui-campaign-react/recommendation-visuals';\r\n\r\nimport { UnEditableLabelDecorator } from './uneditable-label-decorator';\r\n\r\nexport const UnEditableSimpleForm = (props) => {\r\n const groups = _.map(props.fields, (field, index) => {\r\n let text = null;\r\n let children = null;\r\n if (field.useProgressBar) {\r\n children = ;\r\n } else {\r\n text = field.text || field.value;\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n );\r\n });\r\n\r\n return {groups};\r\n};\r\n\r\nUnEditableSimpleForm.propTypes = {\r\n fields: PropTypes.arrayOf(PropTypes.shape({\r\n label: PropTypes.string,\r\n text: PropTypes.string,\r\n value: PropTypes.string,\r\n })).isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const GridPanel = props => (\r\n
\r\n
{props.title}{props.titleForm}
\r\n
\r\n {props.headers}\r\n {props.bodies}\r\n
\r\n
\r\n {props.children}\r\n
\r\n
\r\n);\r\n\r\nGridPanel.propTypes = {\r\n title: PropTypes.string.isRequired,\r\n headers: PropTypes.arrayOf(PropTypes.element).isRequired,\r\n bodies: PropTypes.arrayOf(PropTypes.element).isRequired,\r\n children: PropTypes.arrayOf(PropTypes.element),\r\n titleForm: PropTypes.element,\r\n};\r\n\r\nGridPanel.defaultProps = {\r\n children: null,\r\n titleForm: null,\r\n};\r\n","/* eslint-disable jsx-a11y/label-has-for */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nimport {\r\n APPLY_USERINPUT_TYPES,\r\n CHANNEL_TYPES,\r\n APPLY_ACTION_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nimport { Checkbox } from '@bingads-webui-react/checkbox';\r\nimport { HelpPopup } from '@bingads-webui-react/help-popup';\r\n\r\nimport { GridPanel } from './grid-panel';\r\nimport { userInputsMappingConfigForGrid } from './user-inputs-mapping-config';\r\n\r\nconst PLUS_CHARACTER = '+';\r\nconst formatIncreasedValue = (value, checker) => {\r\n if (checker && value[0] !== '-' && value[0] !== '0') {\r\n return `${PLUS_CHARACTER}${value}`;\r\n }\r\n return value;\r\n};\r\n\r\nexport class GridActionWithEstimates extends React.PureComponent {\r\n static propTypes = {\r\n title: PropTypes.string.isRequired,\r\n headers: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n bodies: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)).isRequired,\r\n columns: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n hasLastRowAsCurrent: PropTypes.bool,\r\n singleSelection: PropTypes.bool,\r\n i18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n selectedRow: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired,\r\n helpTopics: PropTypes.arrayOf(PropTypes.string),\r\n children: PropTypes.element,\r\n model: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n track: PropTypes.func.isRequired,\r\n type: PropTypes.string.isRequired,\r\n target: PropTypes.objectOf(PropTypes.any).isRequired,\r\n rowClass: PropTypes.string.isRequired,\r\n logOpportunityEvent: PropTypes.func.isRequired,\r\n readOnly: PropTypes.bool.isRequired,\r\n context: PropTypes.shape({\r\n Level: PropTypes.string.isRequired,\r\n }).isRequired,\r\n guid: PropTypes.string.isRequired,\r\n logExpInfo: PropTypes.func.isRequired,\r\n };\r\n\r\n static defaultProps = {\r\n hasLastRowAsCurrent: false,\r\n singleSelection: false,\r\n helpTopics: [],\r\n children: null,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n _.each(props.model, ({\r\n opportunityId,\r\n }) => {\r\n props.logOpportunityEvent({\r\n opportunityId,\r\n campaignId: props.target.CampaignId,\r\n context: props.context,\r\n });\r\n });\r\n }\r\n\r\n state = {\r\n // this only applies to single selection grid.\r\n selectedRow: this.props.selectedRow,\r\n rowState: _.map(this.props.bodies, () => true),\r\n }\r\n\r\n getUserInputs(isApply, returnOnlyWhenModified = false) {\r\n let modified = false;\r\n\r\n const config = userInputsMappingConfigForGrid[this.props.type];\r\n const userInputs = [];\r\n if (this.props.singleSelection) {\r\n const selectedIndex = parseInt(this.state.selectedRow, 10);\r\n const selectedOpportunityModel = this.props.model[selectedIndex];\r\n const selectConfig = config.selected;\r\n\r\n modified = (this.state.selectedRow !== this.props.selectedRow);\r\n userInputs.push(_.extend({}, {\r\n OpportunityId: selectedOpportunityModel.opportunityId,\r\n }, isApply && modified && {\r\n [selectConfig.nameInRequest]: selectedOpportunityModel[selectConfig.property],\r\n }));\r\n } else {\r\n _.each(this.state.rowState, (checked, index) => {\r\n if (checked === true) {\r\n userInputs.push({\r\n OpportunityId: this.props.model[index].opportunityId,\r\n });\r\n } else {\r\n modified = true;\r\n }\r\n });\r\n }\r\n\r\n if (returnOnlyWhenModified && !modified) return null;\r\n\r\n const odataType = APPLY_USERINPUT_TYPES[this.props.type];\r\n\r\n if (isApply) {\r\n return _.map(userInputs, userInput => _.extend(userInput, odataType && {\r\n '@odata.type': odataType,\r\n }));\r\n }\r\n return userInputs;\r\n }\r\n\r\n handleRadioChange = (e) => {\r\n this.setState({\r\n selectedRow: e.target.value,\r\n });\r\n }\r\n\r\n handleCheckboxChange = (e) => {\r\n const rowIndex = parseInt(e.target.name, 10);\r\n\r\n if (rowIndex === -1) {\r\n this.setState({\r\n rowState: _.map(this.props.bodies, () => e.target.checked),\r\n });\r\n } else {\r\n this.setState(({ rowState }) => {\r\n const newState = [...rowState];\r\n newState[rowIndex] = !newState[rowIndex];\r\n\r\n return {\r\n rowState: newState,\r\n };\r\n });\r\n }\r\n }\r\n\r\n buildRequestOptions(isApply) {\r\n const campaignAdGroups = [{\r\n Key: this.props.target.CampaignId,\r\n Value: this.props.target.AdGroupId ? [this.props.target.AdGroupId] : [],\r\n }];\r\n\r\n const userAction = isApply ? APPLY_ACTION_TYPES.ACCEPT : APPLY_ACTION_TYPES.DISMISS;\r\n const userInputs = this.getUserInputs(isApply);\r\n\r\n return {\r\n userInputs,\r\n userAction,\r\n type: this.props.type,\r\n campaignAdGroups,\r\n channel: CHANNEL_TYPES.COMPETITION,\r\n context: this.props.context,\r\n guid: this.props.guid,\r\n };\r\n }\r\n\r\n apply = () => {\r\n this.props.logExpInfo('1 recommendation applied');\r\n const ops = this.buildRequestOptions(true);\r\n this.props.track(ops);\r\n }\r\n\r\n dismiss = () => {\r\n const ops = this.buildRequestOptions(false);\r\n this.props.track(ops);\r\n }\r\n\r\n isTheRowCurrent(rowIndex) {\r\n return this.props.hasLastRowAsCurrent &&\r\n rowIndex === this.props.bodies.length - 1;\r\n }\r\n\r\n generateInputId(index) {\r\n return `${this.props.name}_${index}`;\r\n }\r\n\r\n buildHeaders(hidenIndexes, end = this.props.headers.length) {\r\n const { headers, helpTopics, singleSelection } = this.props;\r\n const headersElements = [];\r\n _.each(\r\n headers.slice(0, end),\r\n (headerText, index) => {\r\n if (_.contains(hidenIndexes, index)) {\r\n return;\r\n }\r\n const originalIndex = index;\r\n const help = helpTopics[originalIndex] ?\r\n () : null;\r\n let header = null;\r\n\r\n if (originalIndex !== 0 || singleSelection) {\r\n header = headerText;\r\n } else {\r\n const inputId = this.generateInputId(-1);\r\n header = (\r\n \r\n {headerText}\r\n );\r\n }\r\n headersElements.push(
{header}{help}
);\r\n }\r\n );\r\n\r\n return headersElements;\r\n }\r\n\r\n buildActionPanel() {\r\n const {\r\n title, bodies, i18n, singleSelection, columns, children, readOnly,\r\n } = this.props;\r\n const currentString = `(${i18n.getString('Details_View_Current')})`;\r\n\r\n const bodiesElements = _.map(bodies, (row, rowIndex) => {\r\n const config = columns[0];\r\n let input = null;\r\n let value = formatIncreasedValue(row[0], config.isIncrease);\r\n let className = 'cell';\r\n\r\n const inputId = this.generateInputId(rowIndex);\r\n\r\n if (this.isTheRowCurrent(rowIndex)) {\r\n value = `${value} ${currentString}`;\r\n } else if (singleSelection) {\r\n input = ();\r\n className += ' radio';\r\n } else {\r\n input = (\r\n );\r\n className += ' checkbox';\r\n }\r\n\r\n return (\r\n
\r\n {input ? (\r\n ) : {value}\r\n }\r\n
\r\n );\r\n });\r\n\r\n const disabled = readOnly || (!singleSelection && !_.some(this.state.rowState));\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n buildEstimatesGridCell(rowIndex, colIndex, cellContent, config) {\r\n const isCurrentRow = this.isTheRowCurrent(rowIndex);\r\n\r\n let icon = null;\r\n if (config.enableCheckedIcon && this.props.singleSelection) {\r\n const hasIcon = rowIndex >= this.state.selectedRow;\r\n icon = ;\r\n }\r\n const cell = (\r\n
\r\n \r\n {cellContent && icon}\r\n {formatIncreasedValue(cellContent, config.isIncrease && !isCurrentRow)}\r\n \r\n
);\r\n\r\n return cell;\r\n }\r\n\r\n buildEstimatesPanel() {\r\n // Set auto hide columns\r\n const configs = this.props.columns;\r\n const hidenIndexes = [0];\r\n _.each(configs, (config, index) => {\r\n if (config && config.autoHide && _.every(this.props.bodies, body => body[index] === '0')) {\r\n hidenIndexes.push(index);\r\n }\r\n });\r\n\r\n const title = this.props.i18n.getString('Details_View_Weekly_Estimates');\r\n const bodiesElements = _.map(this.props.bodies, (row, rowIndex) => {\r\n const cells = [];\r\n _.each(row, (cell, col) => {\r\n if (!_.contains(hidenIndexes, col)) {\r\n cells.push(this.buildEstimatesGridCell(rowIndex, cells.length + 1, cell, configs[col]));\r\n }\r\n });\r\n return (\r\n \r\n {cells}\r\n \r\n );\r\n });\r\n\r\n return (\r\n } // this is for align action and estimates tables\r\n />);\r\n }\r\n\r\n render() {\r\n const { rowClass } = this.props;\r\n return (\r\n \r\n
\r\n {this.buildActionPanel()}\r\n
\r\n
\r\n {this.buildEstimatesPanel()}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { BingMapView } from '@bingads-webui-campaign-react/recommendation-visuals';\r\nimport { AdvisorChart } from '@bingads-webui-campaign-react/advisor-chart';\r\nimport {\r\n VISUAL_TYPES,\r\n withTrack,\r\n ADINSIGHT_LOG_API_NAME,\r\n ADINSIGHT_LOG_ACTION_TYPE,\r\n isCompetition,\r\n RECOMMENDATION_IDS,\r\n CHANNEL_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nimport { FormActionWithEstimates } from './form-action-with-estimates';\r\nimport { UnEditableSimpleForm } from './uneditable-simple-form';\r\nimport { GridActionWithEstimates } from './grid-action-with-estimates';\r\n\r\nclass individualRecommendation extends React.PureComponent {\r\n static propTypes = {\r\n actionTitle: PropTypes.string,\r\n insightTitle: PropTypes.string.isRequired,\r\n visualType: PropTypes.string.isRequired,\r\n visualData: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.objectOf(PropTypes.any),\r\n ]).isRequired,\r\n estimates: PropTypes.objectOf(PropTypes.any),\r\n actionDataInForm: PropTypes.objectOf(PropTypes.any),\r\n actionDataInGrid: PropTypes.objectOf(PropTypes.any),\r\n actionTitleExtraForm: PropTypes.arrayOf(PropTypes.object),\r\n name: PropTypes.string.isRequired,\r\n deps: PropTypes.shape({\r\n i18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n locationMap: PropTypes.func.isRequired,\r\n }).isRequired,\r\n track: PropTypes.func.isRequired,\r\n type: PropTypes.string.isRequired,\r\n index: PropTypes.number.isRequired,\r\n currency: PropTypes.string.isRequired,\r\n currentActivity: PropTypes.objectOf(PropTypes.any).isRequired,\r\n readOnly: PropTypes.bool.isRequired,\r\n context: PropTypes.shape({\r\n Level: PropTypes.string.isRequired,\r\n }).isRequired,\r\n guid: PropTypes.string.isRequired, // for adinsight view event log in aria\r\n logExpInfo: PropTypes.func.isRequired,\r\n };\r\n\r\n static defaultProps = {\r\n estimates: null,\r\n actionDataInForm: null,\r\n actionDataInGrid: null,\r\n actionTitleExtraForm: null,\r\n actionTitle: '',\r\n };\r\n\r\n constructor() {\r\n super();\r\n this.actionRef = React.createRef();\r\n }\r\n\r\n getUserInputs() {\r\n return this.actionRef.current.getUserInputs(true, true);\r\n }\r\n\r\n // this is for adinsight aria listener\r\n logOpportunityEvent = ({ opportunityId, campaignId }) => {\r\n let api = ADINSIGHT_LOG_API_NAME.RECOMMENDATION;\r\n let channel = CHANNEL_TYPES.RECOMMENDATION;\r\n if (isCompetition(this.props.type)) {\r\n api = ADINSIGHT_LOG_API_NAME.COMPETITION;\r\n channel = CHANNEL_TYPES.COMPETITION;\r\n }\r\n\r\n this.props.currentActivity.trace({\r\n id: opportunityId,\r\n type: this.props.type,\r\n typeId: RECOMMENDATION_IDS[this.props.type],\r\n action: ADINSIGHT_LOG_ACTION_TYPE.VIEW,\r\n campaignId,\r\n channel,\r\n context: JSON.stringify(this.props.context),\r\n guid: this.props.guid,\r\n }, api);\r\n }\r\n\r\n initializeChart() {\r\n const {\r\n visualType,\r\n visualData,\r\n deps: { locationMap, i18n },\r\n } = this.props;\r\n\r\n let chart = null;\r\n switch (visualType) {\r\n case VISUAL_TYPES.LINE_WEEKLY_CHART:\r\n case VISUAL_TYPES.COLUMN_CHART:\r\n case VISUAL_TYPES.LINE_CHART:\r\n case VISUAL_TYPES.LINE_COLUMN_CHART:\r\n case VISUAL_TYPES.SEARCH_TERMS_CHART:\r\n chart = ();\r\n break;\r\n case VISUAL_TYPES.TABLE:\r\n chart = ;\r\n break;\r\n case VISUAL_TYPES.MAP:\r\n chart = ;\r\n break;\r\n default:\r\n break;\r\n }\r\n return chart;\r\n }\r\n\r\n render() {\r\n const {\r\n deps: { i18n },\r\n insightTitle,\r\n actionTitle,\r\n actionDataInForm,\r\n estimates,\r\n actionDataInGrid,\r\n actionTitleExtraForm,\r\n name,\r\n type,\r\n track,\r\n currency,\r\n readOnly,\r\n context,\r\n guid,\r\n logExpInfo,\r\n } = this.props;\r\n\r\n const gridRowIndex = (this.props.index + 1) * 2;\r\n const gridSeparatorRowIndex = gridRowIndex + 1;\r\n const rowClass = `action-details-row-${gridRowIndex}`;\r\n const separatorRowClass = `action-details-row-${gridSeparatorRowIndex}`;\r\n\r\n const commonOptionsForActionAndEstimates = {\r\n title: actionTitle,\r\n i18n,\r\n track,\r\n type,\r\n ref: this.actionRef,\r\n logOpportunityEvent: this.logOpportunityEvent,\r\n readOnly,\r\n context,\r\n guid,\r\n logExpInfo,\r\n };\r\n let actionAndEstimates = null;\r\n if (actionDataInGrid) {\r\n actionAndEstimates = (\r\n \r\n {actionTitleExtraForm &&\r\n }\r\n );\r\n } else {\r\n actionAndEstimates = (\r\n );\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n {this.initializeChart()}\r\n
\r\n
\r\n {actionAndEstimates}\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport const IndividualRecommendation = withTrack(/* withAll */ false)(individualRecommendation);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nimport {\r\n savePreferences,\r\n COMPETITION_RECOMMENDATION_PAGE_SIZES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { Pagination } from '@bingads-webui-react/pagination';\r\n\r\nimport { IndividualRecommendation } from './individual-recommendation';\r\n\r\nconst childName = index => `reco-${index}`;\r\n\r\nexport class DetailsRecommendations extends React.PureComponent {\r\n static propTypes = {\r\n data: PropTypes.arrayOf(PropTypes.any).isRequired,\r\n deps: PropTypes.shape({\r\n i18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n locationMap: PropTypes.func.isRequired,\r\n preferencesService: PropTypes.objectOf(PropTypes.any).isRequired,\r\n }).isRequired,\r\n type: PropTypes.string.isRequired,\r\n dataService: PropTypes.objectOf(PropTypes.any).isRequired,\r\n reload: PropTypes.func.isRequired,\r\n el: PropTypes.string.isRequired,\r\n preferencesName: PropTypes.string.isRequired,\r\n pageSize: PropTypes.number.isRequired,\r\n pageNumber: PropTypes.number.isRequired,\r\n total: PropTypes.number.isRequired,\r\n currency: PropTypes.string.isRequired,\r\n currentActivity: PropTypes.objectOf(PropTypes.any).isRequired,\r\n readOnly: PropTypes.bool.isRequired,\r\n context: PropTypes.shape({\r\n Level: PropTypes.string.isRequired,\r\n }).isRequired,\r\n guid: PropTypes.string.isRequired, // for adinsight view event log in aria\r\n };\r\n\r\n constructor() {\r\n super();\r\n this.recommendationRefs = {};\r\n this.storeCurrentPageRecommendationRef = (ref) => {\r\n if (ref !== null) {\r\n const {\r\n props: { name },\r\n } = ref;\r\n this.recommendationRefs[name] = ref;\r\n }\r\n };\r\n }\r\n\r\n getUserInputs() {\r\n const inputs = [];\r\n _.each(this.props.data, (recommendation, index) => {\r\n const recommendationRef = this.recommendationRefs[childName(index)];\r\n const inputsArr = recommendationRef.getUserInputs();\r\n if (inputsArr) {\r\n inputs.push(...inputsArr);\r\n }\r\n });\r\n\r\n return _.isEmpty(inputs) ? null : inputs;\r\n }\r\n\r\n savePageInformationToPreference(pageSize) {\r\n savePreferences(\r\n this.props.deps.preferencesService,\r\n this.props.preferencesName,\r\n {\r\n pageSize,\r\n }\r\n );\r\n }\r\n\r\n handlePageSizeChange = (e) => {\r\n this.savePageInformationToPreference(parseInt(e.target.value, 10));\r\n this.props.reload({\r\n pageNumber: 0,\r\n });\r\n }\r\n\r\n handlePageNumberChange = (pageNumber) => {\r\n this.props.reload({\r\n pageNumber,\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n data, deps, reload, pageNumber, pageSize, total,\r\n } = this.props;\r\n const { i18n } = deps;\r\n\r\n const passThroughPropsToIndividual = [\r\n 'deps', 'type', 'dataService', 'el', 'currency',\r\n 'currentActivity', 'readOnly', 'context', 'guid',\r\n 'logExpInfo',\r\n ];\r\n const recommendationsInCurrentPage =\r\n _.map(data, (recommendation, index) =>\r\n ());\r\n\r\n const pageSizeOption = _.map(COMPETITION_RECOMMENDATION_PAGE_SIZES, (pageSizeVal, index) => (\r\n ));\r\n\r\n const pagination = (\r\n
\r\n
\r\n {i18n.getString('Details_View_Show_Rows')}\r\n
\r\n
\r\n \r\n
\r\n {total > pageSize &&\r\n
\r\n \r\n
\r\n }\r\n
);\r\n\r\n const isFormAction = !_.isEmpty(data[0].actionDataInForm);\r\n const gridStyle = isFormAction ? 'form-action-details-grid' : 'grid-action-details-grid';\r\n\r\n return (\r\n
\r\n
\r\n {i18n.getString('Details_View_Whats_Going_On')}\r\n
\r\n
\r\n
\r\n {i18n.getString('Details_View_What_You_Can_Do')}\r\n
\r\n\r\n
\r\n
\r\n {i18n.getString('Details_View_Whats_You_Could_Get')}\r\n
\r\n {recommendationsInCurrentPage}\r\n {pagination}\r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nimport { FeedbackModal } from '@bingads-webui-campaign-react/recommendation-feedback-modal';\r\nimport {\r\n CHANNEL_TYPES,\r\n APPLY_ACTION_TYPES,\r\n withTrack,\r\n isCompetition,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport {\r\n ToolbarButton,\r\n DownloadToolbarButton,\r\n} from '@bingads-webui-campaign-react/recommendation-visuals';\r\n\r\nclass detailsToolbar extends React.PureComponent {\r\n static propTypes = {\r\n title: PropTypes.string,\r\n i18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n viewSummary: PropTypes.func.isRequired,\r\n getUserInputs: PropTypes.func.isRequired,\r\n type: PropTypes.string.isRequired,\r\n aggregateLevel: PropTypes.string,\r\n campaignAdGroups: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n track: PropTypes.func.isRequired,\r\n callback: PropTypes.func.isRequired,\r\n children: PropTypes.element,\r\n total: PropTypes.number.isRequired,\r\n readOnly: PropTypes.bool.isRequired,\r\n context: PropTypes.shape({\r\n Level: PropTypes.string.isRequired,\r\n }).isRequired,\r\n guid: PropTypes.string.isRequired,\r\n logExpInfo: PropTypes.func.isRequired,\r\n updateToolbar: PropTypes.func,\r\n initialToolbarConfig: PropTypes.objectOf(PropTypes.any),\r\n scope: PropTypes.string,\r\n };\r\n\r\n static defaultProps = {\r\n title: '',\r\n children: null,\r\n aggregateLevel: null,\r\n updateToolbar: _.noop,\r\n initialToolbarConfig: null,\r\n scope: null,\r\n };\r\n\r\n state = {\r\n modal: {\r\n isOpen: false,\r\n },\r\n };\r\n\r\n componentDidMount() {\r\n const {\r\n i18n,\r\n viewSummary,\r\n total,\r\n readOnly,\r\n updateToolbar,\r\n initialToolbarConfig,\r\n scope,\r\n } = this.props;\r\n const shouldDisable = total === 0;\r\n const channel = isCompetition(this.props.type) ?\r\n CHANNEL_TYPES.COMPETITION : CHANNEL_TYPES.RECOMMENDATION;\r\n const enableToolbarVNext = initialToolbarConfig;\r\n if (enableToolbarVNext) {\r\n let toolbarItems = [{\r\n id: 'back-to-summary',\r\n content: this.getBackToSummaryButton(viewSummary, i18n),\r\n }];\r\n if (scope === 'AdGroup') {\r\n toolbarItems.push({\r\n id: 'expander',\r\n content:
,\r\n });\r\n }\r\n toolbarItems = toolbarItems.concat([\r\n {\r\n id: 'apply-all',\r\n content: this.getApplyAllButton(shouldDisable, readOnly, i18n),\r\n },\r\n {\r\n id: 'dismiss-all',\r\n content: this.getDismissAllButton(shouldDisable, readOnly, i18n),\r\n },\r\n {\r\n id: 'button-download',\r\n content: this.getDownloadButton(shouldDisable, channel),\r\n },\r\n {\r\n id: 'reject-all',\r\n content: this.getRejectAllButton(shouldDisable, i18n),\r\n },\r\n ]);\r\n updateToolbar(toolbarItems, true);\r\n }\r\n }\r\n\r\n getBackToSummaryButton = (viewSummary, i18n) => (\r\n \r\n {}\r\n {i18n.getString('Details_View_Back_To_Summary')}\r\n \r\n )\r\n\r\n getApplyAllButton = (shouldDisable, readOnly, i18n) => (\r\n \r\n { }\r\n {i18n.getString('Details_View_Apply_All')}\r\n \r\n )\r\n\r\n getDismissAllButton = (shouldDisable, readOnly, i18n) => (\r\n \r\n {}\r\n {i18n.getString('Details_View_Dismiss_All')}\r\n \r\n )\r\n\r\n getDownloadButton = (shouldDisable, channel) => (\r\n \r\n )\r\n\r\n getRejectAllButton = (shouldDisable, i18n) => (\r\n \r\n { }\r\n {i18n.getString('Details_View_Reject_All')}\r\n \r\n )\r\n\r\n buildDefaultRequestOptions = () => (\r\n {\r\n type: this.props.type,\r\n campaignAdGroups: this.props.campaignAdGroups,\r\n channel: isCompetition(this.props.type) ?\r\n CHANNEL_TYPES.COMPETITION : CHANNEL_TYPES.RECOMMENDATION,\r\n applyOpportunitiesLevel: this.props.aggregateLevel,\r\n context: this.props.context,\r\n guid: this.props.guid,\r\n }\r\n )\r\n\r\n applyAll = () => {\r\n const defaultOptions = this.buildDefaultRequestOptions();\r\n const userInputs = this.props.getUserInputs();\r\n const ops = _.extend(defaultOptions, {\r\n userAction: APPLY_ACTION_TYPES.ACCEPT,\r\n }, userInputs && { userInputs });\r\n\r\n // eslint-disable-next-line no-alert, no-restricted-globals\r\n if (!confirm(this.props.i18n.getString('Recommendation_Apply_All_Confirm', {\r\n count: this.props.total,\r\n }))) {\r\n return;\r\n }\r\n\r\n const action = `${this.props.total} recommendations applied`;\r\n this.props.logExpInfo(action);\r\n\r\n this.props.track(ops);\r\n }\r\n\r\n dismissAll = () => {\r\n const defaultOptions = this.buildDefaultRequestOptions();\r\n const ops = _.extend(defaultOptions, {\r\n userAction: APPLY_ACTION_TYPES.DISMISS,\r\n });\r\n\r\n // eslint-disable-next-line no-alert, no-restricted-globals\r\n if (!confirm(this.props.i18n.getString('Recommendation_Dismiss_All_Confirm', {\r\n count: this.props.total,\r\n }))) {\r\n return;\r\n }\r\n\r\n this.props.track(ops);\r\n }\r\n\r\n handleReject = () => {\r\n const defaultOptions = this.buildDefaultRequestOptions();\r\n\r\n this.setState({\r\n modal: {\r\n isOpen: true,\r\n recommendationDescription: this.props.title,\r\n isProvideFeedbackOnly: false,\r\n data: defaultOptions,\r\n },\r\n });\r\n }\r\n\r\n handleFeedbackSubmit = () => {\r\n this.setState({ modal: { isOpen: false } }, () => {\r\n this.props.callback();\r\n });\r\n };\r\n\r\n handleFeedbackCancel = () => {\r\n this.setState({ modal: { isOpen: false } });\r\n };\r\n\r\n render() {\r\n const {\r\n i18n,\r\n viewSummary,\r\n children,\r\n total,\r\n readOnly,\r\n initialToolbarConfig,\r\n } = this.props;\r\n const shouldDisable = total === 0;\r\n const channel = isCompetition(this.props.type) ?\r\n CHANNEL_TYPES.COMPETITION : CHANNEL_TYPES.RECOMMENDATION;\r\n const enableToolbarVNext = initialToolbarConfig;\r\n const toolbar = enableToolbarVNext ? (\r\n
\r\n {children}\r\n
\r\n ) : (\r\n
\r\n {this.getBackToSummaryButton(viewSummary, i18n)}\r\n {this.getApplyAllButton(shouldDisable, readOnly, i18n)}\r\n {this.getDismissAllButton(shouldDisable, readOnly, i18n)}\r\n {this.getDownloadButton(shouldDisable, channel)}\r\n { /* reject is not disabled for readOnly but the modal submit button is */ }\r\n {this.getRejectAllButton(shouldDisable, i18n)}\r\n {children}\r\n
\r\n );\r\n return (\r\n
\r\n {toolbar}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport const DetailsToolbar = withTrack(/* withAll */ true)(detailsToolbar);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nimport { OverridableToolbarView } from '@bingads-webui/toolbar';\r\nimport {\r\n CampaignAdgroupSelectorFilterAgent,\r\n EmptyFilterView,\r\n} from '@bingads-webui-campaign-react/campaign-adgroup-selector-filter';\r\n\r\nimport {\r\n withGetSummary,\r\n getDetailsViewModel,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nimport { DetailsSummary } from './details-summary';\r\nimport { DetailsRecommendations } from './details-recommendations';\r\n\r\nimport { DetailsToolbar } from './details-toolbar';\r\n\r\nclass detailsView extends React.PureComponent {\r\n static propTypes = {\r\n context: PropTypes.shape({\r\n Level: PropTypes.string.isRequired,\r\n }).isRequired,\r\n data: PropTypes.objectOf(PropTypes.any),\r\n campaignAdGroups: PropTypes.arrayOf(PropTypes.object),\r\n deps: PropTypes.shape({\r\n sessionStore: PropTypes.object.isRequired,\r\n i18n: PropTypes.object.isRequired,\r\n filterPreferences: PropTypes.shape({\r\n getFilters: PropTypes.func,\r\n }).isRequired,\r\n cacheService: PropTypes.object.isRequired,\r\n jsdata: PropTypes.object.isRequired,\r\n edmCampaign: PropTypes.object.isRequired,\r\n dataContextManager: PropTypes.object.isRequired,\r\n locationMap: PropTypes.func.isRequired,\r\n preferencesService: PropTypes.objectOf(PropTypes.any).isRequired,\r\n appConfig: PropTypes.objectOf(PropTypes.any).isRequired,\r\n constants: PropTypes.shape({\r\n imagePath: PropTypes.string.isRequired,\r\n }).isRequired,\r\n permissions: PropTypes.object.isRequired,\r\n }).isRequired,\r\n currency: PropTypes.string.isRequired,\r\n scope: PropTypes.shape({\r\n levelAt: PropTypes.string.isRequired,\r\n }).isRequired,\r\n type: PropTypes.string.isRequired,\r\n reload: PropTypes.func.isRequired,\r\n dataService: PropTypes.objectOf(PropTypes.any).isRequired,\r\n viewSummary: PropTypes.func.isRequired,\r\n el: PropTypes.string.isRequired,\r\n filterConfig: PropTypes.objectOf(PropTypes.any).isRequired,\r\n filterService: PropTypes.objectOf(PropTypes.any).isRequired,\r\n preferencesName: PropTypes.string.isRequired,\r\n pageSize: PropTypes.number,\r\n pageNumber: PropTypes.number,\r\n currentActivity: PropTypes.objectOf(PropTypes.any).isRequired,\r\n hasFilter: PropTypes.bool.isRequired,\r\n readOnly: PropTypes.bool,\r\n guid: PropTypes.string.isRequired, // for adinsight view event log in aria\r\n initialToolbarConfig: PropTypes.objectOf(PropTypes.any),\r\n // eslint-disable-next-line react/forbid-prop-types\r\n toolbar: PropTypes.any,\r\n };\r\n\r\n static defaultProps = {\r\n data: null,\r\n campaignAdGroups: null,\r\n pageSize: null,\r\n pageNumber: null,\r\n readOnly: false,\r\n initialToolbarConfig: null,\r\n toolbar: null,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.upperToolBarInstance = new OverridableToolbarView({\r\n items: [{\r\n type: 'dropdown',\r\n id: 'filter-menu',\r\n }],\r\n });\r\n this.recommendationsRef = React.createRef();\r\n this.state = {\r\n toolbarConfig: props.initialToolbarConfig,\r\n hideToolbar: false,\r\n appliedFilter: undefined,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.upperToolBarInstance.render();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.type !== prevProps.type) {\r\n this.logMessage(`reload page: props.type changed from ${prevProps.type} to ${this.props.type}`);\r\n this.props.reload();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.upperToolBarInstance.remove();\r\n }\r\n\r\n onFilterStateChanged = () => {\r\n this.logMessage('reload page: filter state changed');\r\n this.props.reload();\r\n }\r\n\r\n getUserInputs = () => {\r\n const instance = this.recommendationsRef.current;\r\n return instance.getUserInputs();\r\n }\r\n\r\n updateToolbar = (values, forceUpdate) => {\r\n _.each(_.isArray(values) ? values : [values], (value) => {\r\n const { id } = value;\r\n\r\n if (this.state.toolbarConfig.has(id)) {\r\n this.state.toolbarConfig.set(id, _.extend(this.state.toolbarConfig.get(id), value));\r\n this.setState({\r\n toolbarConfig: this.state.toolbarConfig,\r\n });\r\n if (id === 'predicate-list' && !_.isEqual(this.state.appliedFilter, this.props.filterService.editableFilter)) {\r\n this.setState({\r\n appliedFilter: this.props.filterService.editableFilter,\r\n });\r\n this.forceUpdate();\r\n } else if (forceUpdate) {\r\n this.forceUpdate();\r\n }\r\n }\r\n });\r\n }\r\n\r\n resetToolbarVisibility = ({ forceHideToolbar }) => {\r\n this.setState({\r\n hideToolbar: forceHideToolbar,\r\n });\r\n }\r\n\r\n logMessage(msg) {\r\n this.props.currentActivity.trace(msg, 'recommendation/details');\r\n }\r\n\r\n render() {\r\n this.logMessage(`view detailed competition recommendations for opportunity type ${this.props.type}`);\r\n\r\n const hasData = this.props.data && this.props.data[this.props.type];\r\n let summaryView = null;\r\n let detailsRecommendationsView = null;\r\n let emptyView = null;\r\n let opForToolBar = _.extend({\r\n i18n: this.props.deps.i18n,\r\n getUserInputs: this.getUserInputs,\r\n callback: this.props.viewSummary,\r\n total: 0,\r\n initialToolbarConfig: this.props.initialToolbarConfig,\r\n }, _.pick(this.props, 'context', 'dataService', 'downloadService', 'el', 'filterService', 'type', 'viewSummary', 'campaignAdGroups', 'readOnly', 'guid'));\r\n\r\n if (hasData) {\r\n const normalizedData = this.props.data[this.props.type];\r\n const {\r\n deps: {\r\n locationMap, i18n, preferencesService, appConfig,\r\n },\r\n } = this.props;\r\n const { summary, recommendations } = getDetailsViewModel(_.extend(\r\n {},\r\n normalizedData, {\r\n i18n,\r\n currency: this.props.currency,\r\n scope: this.props.scope.levelAt,\r\n appConfig,\r\n permissions: this.props.deps.permissions,\r\n }\r\n ));\r\n const op = _.defaults({\r\n data: recommendations,\r\n deps: { locationMap, i18n, preferencesService },\r\n total: normalizedData.recommendationsCount,\r\n }, _.pick(\r\n this.props,\r\n 'context',\r\n 'dataService',\r\n 'el',\r\n 'preferencesName',\r\n 'reload',\r\n 'type',\r\n 'pageSize',\r\n 'pageNumber',\r\n 'currency',\r\n 'currentActivity',\r\n 'readOnly',\r\n 'guid',\r\n 'logExpInfo'\r\n ));\r\n\r\n summaryView = ;\r\n detailsRecommendationsView = ();\r\n\r\n opForToolBar = _.extend(opForToolBar, {\r\n scope: this.props.scope.levelAt,\r\n aggregateLevel: normalizedData.level,\r\n total: op.total,\r\n logExpInfo: op.logExpInfo,\r\n updateToolbar: this.updateToolbar,\r\n }, summary);\r\n } else if (this.props.hasFilter) {\r\n this.logMessage('there is no filter result, will show empty filter view');\r\n emptyView = ();\r\n } else {\r\n this.logMessage('there is no data, will direct to summary view');\r\n this.props.viewSummary();\r\n }\r\n\r\n if (this.props.filterService) {\r\n this.props.filterService.on('filter-state-changed', this.onFilterStateChanged);\r\n }\r\n let toolbarVNext = null;\r\n if (this.props.initialToolbarConfig) {\r\n const ToolbarFilterbarSet = this.props.toolbar;\r\n toolbarVNext = ();\r\n }\r\n\r\n return (\r\n
\r\n {summaryView}\r\n \r\n {this.props.initialToolbarConfig ? toolbarVNext : (\r\n \r\n )}\r\n \r\n {detailsRecommendationsView}\r\n {emptyView}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport const DetailsView = withGetSummary(/* withDetails */ true)(detailsView);\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport { levelAtConstant } from '@bingads-webui-campaign/scope-constants';\r\nimport {\r\n RECOMMENDATIOIN_SUMMARY_APPLY_FAILED_RESULTS,\r\n ADINSIGHT_LOG_API_NAME,\r\n CHANNEL_TYPES,\r\n RECOMMENDATION_IDS,\r\n ADINSIGHT_LOG_ACTION_TYPE,\r\n CONTEXTUAL_ENTITY_TYPE,\r\n DOWNLOAD_SCOPE,\r\n RECOMMENDATION_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { formatNotificationLocalizedKey } from '@bingads-webui-campaign/recommendation-notification';\r\nimport { RecommendationStatusLightbox } from '@bingads-webui-campaign/recommendation-status-lightbox';\r\nimport { getSessionStorage } from '@bingads-webui/storage';\r\n\r\nimport {\r\n NewRecommendationsGrid,\r\n getConfig,\r\n isPopupEditorEnabledRecommendationType,\r\n filterByOpportunityId,\r\n removeFilter,\r\n} from '@bingads-webui-campaign/recommendation-grid';\r\n\r\nimport { getToolbarConfig } from './toolbar-config';\r\n\r\nexport class RecommendationsGridContainer extends React.Component {\r\n static propTypes = {\r\n recommendationService: PropTypes.shape({\r\n getSummary: PropTypes.func.isRequired,\r\n getCount: PropTypes.func.isRequired,\r\n track: PropTypes.func.isRequired,\r\n }).isRequired,\r\n downloadService: PropTypes.objectOf(PropTypes.any),\r\n scope: PropTypes.shape({\r\n customerId: PropTypes.number.isRequired,\r\n accountId: PropTypes.number.isRequired,\r\n levelAt: PropTypes.string.isRequired,\r\n campaignId: PropTypes.number,\r\n }).isRequired,\r\n vnextDeps: PropTypes.shape({\r\n newI18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n getCrossPageSelectPlugin: PropTypes.func.isRequired,\r\n getToolbarPlugin: PropTypes.func.isRequired,\r\n StyledGridViewWrapper: PropTypes.objectOf(PropTypes.any),\r\n StyledTablePageContainer: PropTypes.objectOf(PropTypes.any),\r\n ToolbarContainer: PropTypes.objectOf(PropTypes.any),\r\n GoalCreationRecommendationWizard: PropTypes.objectOf(PropTypes.any),\r\n }).isRequired,\r\n deps: PropTypes.objectOf(PropTypes.any),\r\n recommendationType: PropTypes.string,\r\n campaignType: PropTypes.number,\r\n onEvent: PropTypes.func.isRequired,\r\n context: PropTypes.shape({\r\n Level: PropTypes.string.isRequired,\r\n }).isRequired,\r\n i18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n guid: PropTypes.string, // for adinsight view event log in aria\r\n version: PropTypes.number.isRequired,\r\n primaryEstimate: PropTypes.string,\r\n // eslint-disable-next-line react/forbid-prop-types, react/require-default-props\r\n perfMarker: PropTypes.object,\r\n isMCC: PropTypes.bool,\r\n topOfGridContent: PropTypes.node,\r\n readOnly: PropTypes.bool,\r\n channel: PropTypes.string,\r\n compact: PropTypes.bool,\r\n overallOptimizationScoreBar: PropTypes.shape({\r\n Gained: PropTypes.number,\r\n Dismissed: PropTypes.number,\r\n Available: PropTypes.number,\r\n }),\r\n viewDetails: PropTypes.func,\r\n recommendationTypesAvailable: PropTypes.arrayOf(PropTypes.string),\r\n newI18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func,\r\n }),\r\n s$i18n: PropTypes.PropTypes.shape({\r\n value: PropTypes.func,\r\n }),\r\n data: PropTypes.objectOf(PropTypes.any),\r\n isOptimizationScoreOn: PropTypes.bool,\r\n serverContext: PropTypes.shape({}),\r\n setData: PropTypes.func.isRequired,\r\n setDataFromDetails: PropTypes.func.isRequired,\r\n viewUET: PropTypes.func,\r\n };\r\n\r\n static defaultProps = {\r\n deps: {},\r\n downloadService: null,\r\n recommendationType: null,\r\n campaignType: null,\r\n isMCC: false,\r\n guid: null,\r\n primaryEstimate: '',\r\n topOfGridContent: null,\r\n readOnly: false,\r\n channel: undefined,\r\n compact: false,\r\n overallOptimizationScoreBar: false,\r\n viewDetails: _.noop,\r\n recommendationTypesAvailable: [],\r\n newI18n: {\r\n getString: _.noop,\r\n },\r\n s$i18n: {\r\n value: _.noop,\r\n },\r\n data: {},\r\n isOptimizationScoreOn: false,\r\n serverContext: {},\r\n viewUET: _.noop,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n const {\r\n deps,\r\n i18n,\r\n recommendationType,\r\n recommendationService,\r\n downloadService,\r\n onEvent,\r\n context,\r\n guid,\r\n version,\r\n perfMarker,\r\n primaryEstimate,\r\n isMCC,\r\n vnextDeps,\r\n readOnly,\r\n channel,\r\n compact,\r\n } = props;\r\n\r\n if (perfMarker) {\r\n this.perfMarker = perfMarker.createChild('RecommendationDetailsGrid', { autoEnd: true });\r\n this.perfMarker.willInit();\r\n }\r\n\r\n this.crossPageSelectPlugin = vnextDeps.getCrossPageSelectPlugin({\r\n updateGridSelectionState: this.updateGridSelectionState,\r\n });\r\n this.onSelectCrossPage = this.crossPageSelectPlugin.onSelectCrossPage;\r\n\r\n // toolbar settings begin\r\n this.toolbarConfig = this.getNewToolbarConfig();\r\n\r\n this.state = {\r\n showToolbarUnselected: true,\r\n showToolbarSelected: false,\r\n toolbarSelectedConfig: this.toolbarConfig.toolbarSelectedConfig,\r\n toolbarUnselectedConfig: this.toolbarConfig.toolbarUnselectedConfig,\r\n forceHideToolbar: false,\r\n backboneGridView: null,\r\n recommendationsGrid: null,\r\n };\r\n\r\n this.filterState = {};\r\n\r\n this.newToolBarPlugin = vnextDeps.getToolbarPlugin({\r\n resetVisibility: ({ forceHideToolbar }) => {\r\n this.setState({\r\n forceHideToolbar,\r\n toolbarSelectedConfig: this.toolbarConfig.toolbarSelectedConfig,\r\n toolbarUnselectedConfig: this.toolbarConfig.toolbarUnselectedConfig,\r\n });\r\n },\r\n resetToolbarMode: ({ showToolbarSelected, showToolbarUnselected }) => {\r\n this.updateToolbarConfig({ showToolbarSelected, showToolbarUnselected });\r\n },\r\n toolbarConfig: {\r\n toolbarSelectedConfig: this.state.toolbarSelectedConfig,\r\n toolbarUnselectedConfig: this.state.toolbarUnselectedConfig,\r\n },\r\n updateToolbar: () => {\r\n this.updateToolbarConfig();\r\n },\r\n }).plugin;\r\n // toolbar settings end\r\n\r\n this.deps = deps;\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n this.recommendationService = recommendationService;\r\n this.downloadService = downloadService;\r\n this.onEvent = onEvent;\r\n this.isMCC = isMCC;\r\n this.context = context;\r\n this.guid = guid;\r\n this.version = version;\r\n this.primaryEstimate = primaryEstimate || '';\r\n this.readOnly = readOnly;\r\n this.channel = channel;\r\n this.compact = compact;\r\n }\r\n\r\n componentDidMount() {\r\n const { StyledGridViewWrapper, GoalCreationRecommendationWizard } = this.props.vnextDeps;\r\n\r\n const config = getConfig({\r\n deps: this.deps,\r\n i18n: this.i18n,\r\n newI18n: this.props.newI18n,\r\n s$i18n: this.props.s$i18n,\r\n recommendationType: this.recommendationType,\r\n recommendationService: this.recommendationService,\r\n campaignType: this.props.campaignType,\r\n el: $('.grid-and-disclaim-container'),\r\n downloadService: this.downloadService,\r\n onEvent: this.onEvent,\r\n view: this,\r\n logOpportunityEvent: this.logOpportunityEvent,\r\n perfMarker: this.perfMarker,\r\n context: this.props.context,\r\n guid: this.guid,\r\n primaryEstimate: this.primaryEstimate,\r\n isMCC: this.isMCC,\r\n router: this.router.bind(this),\r\n readOnly: this.readOnly,\r\n channel: this.channel,\r\n compact: this.compact,\r\n isOptimizationScoreOn: this.props.isOptimizationScoreOn,\r\n viewDetails: this.props.viewDetails,\r\n recommendationTypesAvailable: this.props.recommendationTypesAvailable,\r\n scope: this.props.scope,\r\n filterState: this.filterState,\r\n data: this.props.data && this.props.data[this.recommendationType],\r\n serverContext: this.props.serverContext,\r\n setData: this.props.setData,\r\n setDataFromDetails: this.props.setDataFromDetails,\r\n getGoalCreationRecommendationWizard: GoalCreationRecommendationWizard,\r\n viewUET: this.props.viewUET,\r\n });\r\n\r\n const backboneGridView = new NewRecommendationsGrid({\r\n i18n: this.i18n,\r\n deps: this.deps,\r\n config,\r\n logOpportunityEvent: this.logOpportunityEvent,\r\n recommendationType: this.recommendationType,\r\n recommendationService: this.recommendationService,\r\n downloadService: this.downloadService,\r\n crossPageSelectPlugin: this.crossPageSelectPlugin,\r\n newToolBarPlugin: this.newToolBarPlugin,\r\n onEvent: this.onEvent,\r\n readOnly: this.readOnly,\r\n isMCC: this.isMCC,\r\n compact: this.compact,\r\n s$i18n: this.props.s$i18n,\r\n newI18n: this.props.newI18n,\r\n });\r\n\r\n this.grid = backboneGridView.grid;\r\n\r\n // eslint-disable-next-line react/no-did-mount-set-state\r\n this.setState({\r\n recommendationsGrid: (),\r\n backboneGridView,\r\n });\r\n\r\n\r\n // notification lightbox\r\n const applyFailedResults = getSessionStorage().get(RECOMMENDATIOIN_SUMMARY_APPLY_FAILED_RESULTS); // eslint-disable-line\r\n const applyFailed = applyFailedResults !== null && applyFailedResults.recommendationType === this.recommendationType; // eslint-disable-line\r\n\r\n this.statusLightBox = new RecommendationStatusLightbox({\r\n results: applyFailed ? applyFailedResults.results : null,\r\n i18n: this.i18n,\r\n newI18n: this.props.newI18n,\r\n view: backboneGridView,\r\n filterByOpportunityId,\r\n removeFilter,\r\n recommendationType: this.recommendationType,\r\n formatNotificationLocalizedKey,\r\n currentActivity: this.recommendationService.currentActivity,\r\n });\r\n this.statusLightBox.render();\r\n\r\n if (applyFailed) {\r\n this.statusLightBox.trigger('show');\r\n } else {\r\n getSessionStorage().clear();\r\n }\r\n\r\n $('.notification-container').append(this.statusLightBox.$el);\r\n }\r\n\r\n getNewToolbarConfig = () => {\r\n const {\r\n deps,\r\n i18n,\r\n newI18n,\r\n recommendationType,\r\n onEvent,\r\n readOnly,\r\n compact,\r\n context,\r\n } = this.props;\r\n\r\n const newToolbarConfig = getToolbarConfig({\r\n recommendationType,\r\n gridView: this.grid && this.grid.gridView,\r\n i18n,\r\n newI18n,\r\n onSelectCrossPage: this.onSelectCrossPage,\r\n onEvent,\r\n readOnly,\r\n compact,\r\n permissions: deps.permissions,\r\n context,\r\n });\r\n\r\n if (_.isUndefined(this.toolbarConfig)) {\r\n return newToolbarConfig;\r\n }\r\n\r\n // Save original dropdown date filter button text in dropdownDateFilterButtonText\r\n const dropdownDateFilter =\r\n this.toolbarConfig.toolbarUnselectedConfig.get('dropdown-date-filter');\r\n let dropdownDateFilterButtonText;\r\n if (!_.isUndefined(dropdownDateFilter)) {\r\n dropdownDateFilterButtonText = dropdownDateFilter.button.text;\r\n }\r\n\r\n // Merge new toolbar config into the current one\r\n this.toolbarConfig.toolbarSelectedConfig.forEach((component, key) =>\r\n _.merge(component, newToolbarConfig.toolbarSelectedConfig.get(key)));\r\n this.toolbarConfig.toolbarUnselectedConfig.forEach((component, key) =>\r\n _.merge(component, newToolbarConfig.toolbarUnselectedConfig.get(key)));\r\n\r\n // Restore the original dropdowm date filter button text\r\n if (!_.isUndefined(dropdownDateFilterButtonText)) {\r\n this.toolbarConfig.toolbarUnselectedConfig.get('dropdown-date-filter').button.text =\r\n dropdownDateFilterButtonText;\r\n }\r\n\r\n return this.toolbarConfig;\r\n }\r\n\r\n updateToolbarConfig = (state) => {\r\n const {\r\n toolbarSelectedConfig,\r\n toolbarUnselectedConfig,\r\n } = this.getNewToolbarConfig();\r\n this.setState({\r\n toolbarSelectedConfig,\r\n toolbarUnselectedConfig,\r\n ...state,\r\n });\r\n }\r\n\r\n updateGridSelectionState = ({\r\n selectionCount,\r\n totalCount,\r\n isMultiPage,\r\n isSinglePageAllSelected,\r\n isCrossPageAllSelected,\r\n }) => {\r\n this.setState({\r\n selectionCount,\r\n totalCount,\r\n isMultiPage,\r\n isSinglePageAllSelected,\r\n isCrossPageAllSelected,\r\n });\r\n }\r\n\r\n router(e, data = null) { // data for panelEdit\r\n const target = $(e.target);\r\n // only account or campaign or adgroup contextual attribute can be clicked to redirect\r\n if (!_.contains([\r\n CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n CONTEXTUAL_ENTITY_TYPE.ADGROUP,\r\n CONTEXTUAL_ENTITY_TYPE.ACCOUNT,\r\n ], target.data('type'))) { // eslint-disable-line\r\n return;\r\n }\r\n const levelAt = target.data('type');\r\n const entityid = target.data('entityid');\r\n const campaignId = target.data('entitycampaignid');\r\n const { scope } = this.recommendationService;\r\n const key = $(e.target).parents('tr[data-key]').data('key') || $(e.target).parents('tr[key]').attr('key');\r\n const recommendation = this.grid.gridView.itemWithKey(key) || data; // data for panelEdit\r\n const accountId = recommendation.Target.AccountId;\r\n\r\n if (isPopupEditorEnabledRecommendationType(this.recommendationType)\r\n && levelAt === levelAtConstant.ADGROUP) {\r\n return;\r\n }\r\n if (levelAt !== scope.levelAt) {\r\n const scopedata = {\r\n ...scope,\r\n levelAt,\r\n adGroupId: entityid,\r\n campaignId: campaignId || entityid,\r\n accountId,\r\n };\r\n this.onEvent('updateScope', scopedata);\r\n }\r\n }\r\n\r\n logOpportunityEvent = ({\r\n opportunityId = null,\r\n campaignId = null,\r\n input = null,\r\n type,\r\n action,\r\n accountId,\r\n context = {},\r\n }) => {\r\n this.recommendationService.currentActivity.trace({\r\n id: opportunityId,\r\n type,\r\n typeId: RECOMMENDATION_IDS[type],\r\n action,\r\n campaignId,\r\n channel: this.props.isMCC ? CHANNEL_TYPES.MCCRECOMMENDATION : CHANNEL_TYPES.RECOMMENDATION,\r\n context: action === ADINSIGHT_LOG_ACTION_TYPE.DOWNLOAD ?\r\n JSON.stringify(_.extend({\r\n Version: this.version,\r\n DownloadScope: DOWNLOAD_SCOPE.INDIVIDUAL,\r\n }, this.props.context)) :\r\n JSON.stringify(_.extend({}, this.props.context, context)),\r\n guid: this.guid,\r\n input,\r\n accountId,\r\n }, ADINSIGHT_LOG_API_NAME.RECOMMENDATION);\r\n }\r\n\r\n render() {\r\n const {\r\n forceHideToolbar,\r\n isCrossPageAllSelected,\r\n isMultiPage,\r\n isSinglePageAllSelected,\r\n selectionCount,\r\n showToolbarSelected,\r\n showToolbarUnselected,\r\n toolbarSelectedConfig,\r\n toolbarUnselectedConfig,\r\n totalCount,\r\n } = this.state;\r\n\r\n const {\r\n StyledTablePageContainer,\r\n ToolbarContainer,\r\n } = this.props.vnextDeps;\r\n\r\n const stickyTopOfGridContent = (\r\n \r\n
\r\n {\r\n this.setState({\r\n showToolbarSelected: false,\r\n showToolbarUnselected: true,\r\n });\r\n this.state.backboneGridView.grid.gridView.deselectAll();\r\n }}\r\n />\r\n
\r\n \r\n );\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport {\r\n SUPPORT_APPLY_TYPES,\r\n SUPPORT_DOWNLOAD_TYPES,\r\n SUPPORT_DISMISS_TYPES,\r\n SUPPORT_RESUBMIT_TYPES,\r\n SUPPORT_DATE_FILTER_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-grid';\r\nimport {\r\n RECOMMENDATION_CATEGORIES,\r\n RECOMMENDATION_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport function getToolbarConfig({\r\n onSelectCrossPage,\r\n onEvent,\r\n newI18n,\r\n i18n,\r\n recommendationType,\r\n gridView,\r\n readOnly,\r\n compact,\r\n context,\r\n}) {\r\n const dismissBtnId = 'button-dismiss';\r\n const undismissBtnId = 'button-undismiss';\r\n const applyBtnId = 'button-apply';\r\n // eslint-disable-next-line\r\n const toolbarUnselectedConfig = new Map();\r\n if (!compact) {\r\n toolbarUnselectedConfig.set('button-recommendation-more', {\r\n id: 'button-more',\r\n type: 'button',\r\n iconLeftGlyphName: 'ba-Back',\r\n text: i18n.getString('Recommendation_More'),\r\n classes: ['btn', 'btn-navigate-back'],\r\n noResponsive: true,\r\n onClick: () => {\r\n onEvent('back');\r\n },\r\n });\r\n toolbarUnselectedConfig.set('expander', {\r\n type: 'expander',\r\n });\r\n }\r\n\r\n if (_.contains(SUPPORT_DATE_FILTER_TYPES, recommendationType)) {\r\n toolbarUnselectedConfig.set('dropdown-date-filter', {\r\n type: 'dropdown',\r\n button: {\r\n text: i18n.getString('Dropdown_Button_LastSixMonth'),\r\n },\r\n id: 'dropdown-date-filter',\r\n menu: {\r\n items: [{\r\n text: i18n.getString('Dropdown_Menu_LastThreeMonth'),\r\n id: 'dropdown-item-lastthreemonth',\r\n },\r\n {\r\n text: i18n.getString('Dropdown_Menu_LastSixMonth'),\r\n id: 'dropdown-item-lastsixmonth',\r\n }],\r\n },\r\n });\r\n }\r\n\r\n if (_.contains(SUPPORT_DOWNLOAD_TYPES, recommendationType)) {\r\n toolbarUnselectedConfig.set('button-download', {\r\n type: 'nav-item',\r\n id: 'button-download',\r\n iconLeftGlyphName: 'ba-Download',\r\n text: i18n.getString('Details_View_Download_All'),\r\n noResponsive: true,\r\n });\r\n }\r\n\r\n if (!compact) {\r\n if (_.result(context, 'Category', '') === RECOMMENDATION_CATEGORIES.DISMISSED) {\r\n toolbarUnselectedConfig.set('button-undismiss-all', {\r\n type: 'nav-item',\r\n id: 'button-undismiss-all',\r\n iconLeftGlyphName: 'ba-Undo',\r\n text: newI18n.getString(_TL_('Undismiss all')),\r\n noResponsive: true,\r\n disabled: readOnly,\r\n });\r\n } else {\r\n toolbarUnselectedConfig.set('reject-help-popup', {\r\n type: 'custom',\r\n id: 'reject-help-popup',\r\n disabled: readOnly,\r\n });\r\n }\r\n }\r\n\r\n // eslint-disable-next-line\r\n const toolbarSelectedConfig = new Map();\r\n toolbarSelectedConfig.set('selection-widget', {\r\n type: 'selection-widget',\r\n onSelectCrossPage,\r\n });\r\n\r\n if (_.contains(SUPPORT_APPLY_TYPES, recommendationType) ||\r\n _.contains(SUPPORT_RESUBMIT_TYPES, recommendationType)) {\r\n toolbarSelectedConfig.set('divider', {\r\n type: 'divider',\r\n });\r\n }\r\n\r\n if (_.contains(SUPPORT_APPLY_TYPES, recommendationType)) {\r\n toolbarSelectedConfig.set(applyBtnId, {\r\n type: 'button',\r\n id: applyBtnId,\r\n iconLeftGlyphName: 'ba-Accept',\r\n text: i18n.getString('Button_Apply'),\r\n classes: ['btn-primary'],\r\n disabled: readOnly,\r\n });\r\n }\r\n\r\n if (_.contains(SUPPORT_RESUBMIT_TYPES, recommendationType)) {\r\n toolbarSelectedConfig.set(applyBtnId, {\r\n type: 'button',\r\n id: applyBtnId,\r\n iconLeftGlyphName: 'ba-Accept',\r\n text: i18n.getString('Button_Resubmit'),\r\n classes: ['btn-primary'],\r\n disabled: readOnly || (!_.isUndefined(gridView) && !_.some(\r\n gridView.selectedItems(),\r\n selectedItem => _.first(selectedItem.Opportunities).IsAppealable\r\n )),\r\n });\r\n }\r\n\r\n if (recommendationType === RECOMMENDATION_TYPES.IMAGE_EXTENSION) {\r\n let disabled = false;\r\n if (!_.isUndefined(gridView) && !readOnly) {\r\n _.each(gridView.selectedItems(), (selectedItem) => {\r\n const opporunity = _.first(selectedItem.Opportunities);\r\n const stockImages = opporunity.StockImages;\r\n if ((!_.isEmpty(stockImages) && _.isEmpty(_.first(stockImages).ThumbnailURL))) {\r\n disabled = true;\r\n }\r\n });\r\n } else {\r\n disabled = true;\r\n }\r\n\r\n toolbarSelectedConfig.set(applyBtnId, {\r\n type: 'button',\r\n id: applyBtnId,\r\n iconLeftGlyphName: 'ba-Accept',\r\n text: i18n.getString('Button_Apply'),\r\n classes: ['btn-primary'],\r\n disabled,\r\n });\r\n }\r\n\r\n if (_.contains(SUPPORT_APPLY_TYPES, recommendationType) ||\r\n _.contains(SUPPORT_RESUBMIT_TYPES, recommendationType)) {\r\n toolbarSelectedConfig.set('expander', {\r\n type: 'expander',\r\n });\r\n }\r\n\r\n if (_.contains(SUPPORT_DISMISS_TYPES, recommendationType)) {\r\n if (_.result(context, 'Category', '') === RECOMMENDATION_CATEGORIES.DISMISSED) {\r\n toolbarSelectedConfig.set(undismissBtnId, {\r\n type: 'button',\r\n id: undismissBtnId,\r\n iconLeftGlyphName: 'ba-Undo',\r\n text: newI18n.getString(_TL_('Undismiss')),\r\n classes: ['btn-primary'],\r\n disabled: readOnly,\r\n });\r\n } else {\r\n toolbarSelectedConfig.set(dismissBtnId, {\r\n type: 'button',\r\n id: dismissBtnId,\r\n iconLeftGlyphName: 'ba-RemoveContent',\r\n text: i18n.getString('Button_Dismiss'),\r\n classes: ['btn-primary'],\r\n disabled: readOnly,\r\n });\r\n }\r\n }\r\n\r\n toolbarSelectedConfig.set('button-clear-selection', {\r\n type: 'button-clear-selection',\r\n });\r\n\r\n return {\r\n toolbarSelectedConfig,\r\n toolbarUnselectedConfig,\r\n };\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ReactDOM from 'react-dom';\r\nimport { RECOMMENDATION_TYPES, ADINSIGHT_LOG_ACTION_TYPE } from '@bingads-webui-campaign/recommendation-core';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\n\r\nimport template from './template.pug';\r\n\r\nexport class RecommendationInlineViewFactory extends Backbone.View {\r\n initialize({\r\n i18n,\r\n newI18n,\r\n deps,\r\n gridService,\r\n recommendation,\r\n logOpportunityEvent,\r\n router,\r\n gridView,\r\n readOnly,\r\n isMCC,\r\n perfMarker,\r\n serverContext,\r\n getGoalCreationRecommendationWizard,\r\n s$i18n,\r\n viewUET,\r\n }) {\r\n this.deps = deps;\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n this.gridService = gridService;\r\n this.recommendation = recommendation;\r\n this.logOpportunityEvent = logOpportunityEvent;\r\n this.router = router;\r\n this.gridView = gridView;\r\n this.childView = null;\r\n this.opportunityType = this.recommendation.OpportunityType;\r\n this.readOnly = readOnly;\r\n this.isMCC = isMCC;\r\n this.perfMarker = perfMarker;\r\n this.serverContext = serverContext;\r\n this.getGoalCreationRecommendationWizard = getGoalCreationRecommendationWizard;\r\n this.s$i18n = s$i18n;\r\n this.viewUET = viewUET;\r\n }\r\n\r\n render() {\r\n if (this.isMCC) {\r\n this.deps.appState.set({ account_id: this.recommendation.Target.AccountId });\r\n }\r\n switch (this.opportunityType) {\r\n // [TODO] support more opportunity type\r\n case RECOMMENDATION_TYPES.BUDGET_OPPORTUNITY:\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/recommendation-inline-budget-view').then(({ RecommendationInlineBudgetView }) => {\r\n this.childView = new RecommendationInlineBudgetView({\r\n deps: this.deps,\r\n data: this.recommendation,\r\n i18n: this.i18n,\r\n router: this.router,\r\n gridView: this.gridView,\r\n readOnly: this.readOnly,\r\n isMCC: this.isMCC,\r\n gridService: this.gridService,\r\n });\r\n this.renderInlineContent();\r\n });\r\n break;\r\n case RECOMMENDATION_TYPES.ADJUST_SHARED_BUDGET_OPPORTUNITY:\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/recommendation-inline-budget-view').then(({ RecommendationInlineBudgetView }) => {\r\n this.childView = new RecommendationInlineBudgetView({\r\n deps: this.deps,\r\n data: this.recommendation,\r\n i18n: this.i18n,\r\n router: this.router,\r\n gridView: this.gridView,\r\n readOnly: this.readOnly,\r\n isSharedBudget: true,\r\n isMCC: this.isMCC,\r\n gridService: this.gridService,\r\n });\r\n this.renderInlineContent();\r\n });\r\n break;\r\n case RECOMMENDATION_TYPES.REPAIR_KEYWORD:\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/recommendation-inline-repair-keywords-view').then(({ RepairKeywordsInlineView }) => {\r\n this.childView = new RepairKeywordsInlineView({\r\n deps: this.deps,\r\n data: this.recommendation,\r\n i18n: this.i18n,\r\n router: this.router,\r\n gridView: this.gridView,\r\n readOnly: this.readOnly,\r\n isMCC: this.isMCC,\r\n gridService: this.gridService,\r\n });\r\n this.renderInlineContent();\r\n });\r\n break;\r\n case RECOMMENDATION_TYPES.SITE_LINK:\r\n case RECOMMENDATION_TYPES.CALLOUT:\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/recommendation-inline-ad-extension-view').then(({ AdExtensionInlineView }) => {\r\n this.childView = new AdExtensionInlineView({\r\n deps: this.deps,\r\n data: this.recommendation,\r\n i18n: this.i18n,\r\n type: this.opportunityType,\r\n router: this.router,\r\n gridView: this.gridView,\r\n readOnly: this.readOnly,\r\n isMCC: this.isMCC,\r\n gridService: this.gridService,\r\n });\r\n this.renderInlineContent();\r\n });\r\n break;\r\n case RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS:\r\n case RECOMMENDATION_TYPES.MULTIMEDIA_ADS:\r\n case RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS:\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/recommendation-inline-new-ads-view').then(({ NewAdsInlineView }) => {\r\n this.childView = new NewAdsInlineView({\r\n deps: this.deps,\r\n data: this.recommendation,\r\n i18n: this.i18n,\r\n newI18n: this.newI18n,\r\n router: this.router,\r\n type: this.opportunityType,\r\n gridView: this.gridView,\r\n readOnly: this.readOnly,\r\n isMCC: this.isMCC,\r\n gridService: this.gridService,\r\n });\r\n this.renderInlineContent();\r\n });\r\n break;\r\n case RECOMMENDATION_TYPES.DYNAMIC_SEARCH_ADS:\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/recommendation-inline-dynamic-search-ads-view').then(({ DynamicSearchAdsInlineView }) => {\r\n this.childView = new DynamicSearchAdsInlineView({\r\n deps: this.deps,\r\n data: this.recommendation,\r\n i18n: this.i18n,\r\n readOnly: this.readOnly,\r\n isMCC: this.isMCC,\r\n router: this.router,\r\n gridView: this.gridView,\r\n gridService: this.gridService,\r\n });\r\n this.renderInlineContent();\r\n });\r\n break;\r\n case RECOMMENDATION_TYPES.REALLOCATE_BUDGET:\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/recommendation-inline-reallocate-budget-view').then(({ RecommendationReallocateBudgetView }) => {\r\n this.childView = new RecommendationReallocateBudgetView({\r\n deps: this.deps,\r\n data: this.recommendation,\r\n i18n: this.i18n,\r\n router: this.router,\r\n type: this.opportunityType,\r\n gridView: this.gridView,\r\n readOnly: this.readOnly,\r\n isMCC: this.isMCC,\r\n gridService: this.gridService,\r\n });\r\n this.renderInlineContent();\r\n });\r\n break;\r\n case RECOMMENDATION_TYPES.FIX_AD_DESTINATION:\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/recommendation-inline-fix-ad-destination-view').then(({ RecommendationFixAdDestinationView }) => {\r\n import(/* webpackMode: 'eager' */'@bingads-webui-component-legacy/upgraded-url/view/urlTestTool').then((UrlTestTool) => {\r\n this.childView = new RecommendationFixAdDestinationView({\r\n deps: this.deps,\r\n data: this.recommendation,\r\n i18n: this.i18n,\r\n router: this.router,\r\n type: this.opportunityType,\r\n gridView: this.gridView,\r\n readOnly: this.readOnly,\r\n isMCC: this.isMCC,\r\n UrlTestTool: UrlTestTool.default,\r\n });\r\n this.renderInlineContent();\r\n });\r\n });\r\n break;\r\n case RECOMMENDATION_TYPES.SETUP_CONVERSION_TRACKING_OPPORTUNITY:\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/recommendation-inline-setup-conversion-tracking-view').then(({ RecommendationSetupConversionTrackingView }) => {\r\n this.childView = new RecommendationSetupConversionTrackingView({\r\n deps: this.deps,\r\n data: this.recommendation,\r\n i18n: this.i18n,\r\n router: this.router,\r\n type: this.opportunityType,\r\n gridView: this.gridView,\r\n readOnly: this.readOnly,\r\n isMCC: this.isMCC,\r\n gridService: this.gridService,\r\n isRecommendationThirdPartyTaggingEnabled:\r\n this.deps.permissions.IsRecommendationThirdPartyTaggingEnabled,\r\n });\r\n this.renderInlineContent();\r\n });\r\n break;\r\n case RECOMMENDATION_TYPES.FIX_CONVERSION_GOAL_SETTINGS:\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/recommendation-inline-fix-conversion-goal-setting-view').then(({ FixConversionGoalSettingView }) => {\r\n this.childView = new FixConversionGoalSettingView({\r\n deps: this.deps,\r\n data: this.recommendation,\r\n i18n: this.i18n,\r\n router: this.router,\r\n type: this.opportunityType,\r\n gridView: this.gridView,\r\n readOnly: this.readOnly,\r\n isMCC: this.isMCC,\r\n scope: this.gridService.recommendationService.scope,\r\n gridService: this.gridService,\r\n s$i18n: this.s$i18n,\r\n newI18n: this.newI18n,\r\n viewUET: this.viewUET,\r\n });\r\n this.renderInlineContent();\r\n });\r\n break;\r\n case RECOMMENDATION_TYPES.CREATE_CONVERSION_GOAL:\r\n import(/* webpackMode: 'eager' */'@bingads-webui-campaign/recommendation-inline-create-conversion-goal-view').then(({ CreateConversionGoalView }) => {\r\n this.childView = new CreateConversionGoalView({\r\n deps: this.deps,\r\n data: this.recommendation,\r\n i18n: this.i18n,\r\n newI18n: this.newI18n,\r\n router: this.router,\r\n type: this.opportunityType,\r\n gridView: this.gridView,\r\n readOnly: this.readOnly,\r\n isMCC: this.isMCC,\r\n scope: this.gridService.recommendationService.scope,\r\n gridService: this.gridService,\r\n permissions: this.deps.permissions,\r\n perfMarker: this.perfMarker,\r\n serverContext: this.serverContext,\r\n getGoalCreationRecommendationWizard: this.getGoalCreationRecommendationWizard,\r\n });\r\n this.renderInlineContent();\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n // [TODO] may be add something parent template.\r\n this.$el.html(template());\r\n\r\n _.each(this.recommendation.Opportunities, (opportunity) => {\r\n const rejectedAd = _.first(opportunity.RejectedAds) || _.first(opportunity.RejectedKeywords)\r\n || {};\r\n this.logOpportunityEvent({\r\n opportunityId: opportunity.OpportunityId,\r\n campaignId: opportunity.Target.CampaignId,\r\n type: this.opportunityType,\r\n action: ADINSIGHT_LOG_ACTION_TYPE.VIEWEDIT,\r\n accountId: opportunity.Target.AccountId,\r\n context: {\r\n FlagId: _.chain(opportunity)\r\n .result('FlagId')\r\n .value(),\r\n OldFinalUrl: rejectedAd.FinalUrl,\r\n OldTrackingTemplate: rejectedAd.TrackingTemplate,\r\n },\r\n });\r\n });\r\n\r\n return this;\r\n }\r\n\r\n hasChanged() {\r\n // backbone view\r\n if (this.childView instanceof Backbone.View && this.childView.hasChanged) {\r\n return this.childView.hasChanged();\r\n }\r\n\r\n // [TODO] react view\r\n return false;\r\n }\r\n\r\n apply({ opportunities, userInputs, context = {} }) {\r\n const { IsRecommendationInlineErrorEnabled } = this.deps.permissions;\r\n\r\n if (IsRecommendationInlineErrorEnabled) {\r\n return this.gridService.apply({\r\n opportunities,\r\n userInputs,\r\n context,\r\n hasInlineError: this.childView.hasInlineError || _.noop,\r\n })\r\n .then(() => {\r\n this.trigger('didApply');\r\n // scroll to top to see feedbacks\r\n $('html, body').scrollTop(0);\r\n })\r\n .catch((errors) => {\r\n if (_.isFunction(this.childView.dealWithInlineError)) {\r\n this.childView.dealWithInlineError(errors);\r\n }\r\n })\r\n .finally(withUiBlock(this.$el));\r\n }\r\n const closeBlocker = withUiBlock(this.$el);\r\n\r\n return this.gridService.apply({ opportunities, userInputs, context }).finally(() => {\r\n closeBlocker();\r\n this.trigger('didApply');\r\n });\r\n }\r\n\r\n dismiss({ opportunities }) {\r\n const closeBlocker = withUiBlock(this.$el);\r\n\r\n return this.gridService.dismiss({ opportunities }).finally(() => {\r\n closeBlocker();\r\n this.trigger('didDismiss');\r\n });\r\n }\r\n\r\n remove() {\r\n if (this.childView instanceof Backbone.View) {\r\n this.childView.remove();\r\n } else {\r\n ReactDOM.unmountComponentAtNode(this.el);\r\n }\r\n }\r\n\r\n cancel() {\r\n this.remove();\r\n this.trigger('cancel');\r\n }\r\n\r\n renderInlineContent() {\r\n if (_.isNull(this.childView)) {\r\n return;\r\n }\r\n if (this.childView instanceof Backbone.View) {\r\n this.childView.render();\r\n this.childView.on('apply', _.bind(this.apply, this));\r\n this.childView.on('dismiss', _.bind(this.dismiss, this));\r\n this.childView.on('cancel', _.bind(this.cancel, this));\r\n this.$el.append(this.childView.$el);\r\n } else {\r\n ReactDOM.render(this.childView, this.el);\r\n }\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { levelAtConstant } from '@bingads-webui-campaign/scope-constants';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { RecommendationInlineViewFactory } from '@bingads-webui-campaign/recommendation-inline-view-factory';\r\nimport {\r\n RECOMMENDATION_TYPES,\r\n ADINSIGHT_LOG_ACTION_TYPE,\r\n CHANNEL_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport {\r\n showApplyFeedbackPopup,\r\n} from '@bingads-webui-campaign-react/recommendation-feedback-modal';\r\nimport containerTemplate from './container.pug';\r\nimport {\r\n getGoogleImportUri,\r\n getSetupConvTrackingUri,\r\n getUETTagUri,\r\n getFacebookImportUri,\r\n getCreateAdUri,\r\n} from './external-feature';\r\n\r\nfunction getRowByKey(gridView, key) {\r\n return gridView.$(`tr[data-key=${key}]`);\r\n}\r\n\r\nfunction preventConfirm(i18n) {\r\n return window.confirm(i18n.getString('Recommendation_On_Blur_Confirm_Message')); // eslint-disable-line\r\n}\r\n\r\nexport const recommendationInlineAction = definePlugin => definePlugin('recommendationInlineAction', [\r\n 'config',\r\n 'gridView',\r\n], ({\r\n selection,\r\n columns,\r\n plugins: {\r\n recommendationInlineAction: {\r\n i18n,\r\n newI18n,\r\n deps,\r\n gridService,\r\n logOpportunityEvent,\r\n router,\r\n isMCC,\r\n readOnly,\r\n el,\r\n perfMarker,\r\n serverContext,\r\n getGoalCreationRecommendationWizard,\r\n s$i18n,\r\n viewUET,\r\n },\r\n },\r\n}, gridView) => {\r\n const currentInlineView = {\r\n key: null,\r\n view: null,\r\n $inlineViewContainer: null,\r\n };\r\n\r\n function initCurrentInlineView() {\r\n if (currentInlineView.view) {\r\n currentInlineView.view.remove();\r\n currentInlineView.view = null;\r\n if (!gridView.$('input.select-all').prop('checked')) { // if user click select-all checkbox, do not deselect current expanding view\r\n gridView.deselectRow(currentInlineView.key);\r\n }\r\n }\r\n if (currentInlineView.$inlineViewContainer) {\r\n currentInlineView.$inlineViewContainer.remove();\r\n currentInlineView.$inlineViewContainer = null;\r\n }\r\n currentInlineView.key = '';\r\n gridView.$('tr[data-key]').show();\r\n }\r\n gridView.on('willUpdate', initCurrentInlineView);\r\n\r\n\r\n function preventUserAction(e) {\r\n const anyChanged = currentInlineView.view ? currentInlineView.view.hasChanged() : false;\r\n\r\n if (anyChanged && !preventConfirm(i18n)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n function inlineActionHandler(e) {\r\n if (!preventUserAction(e)) {\r\n return;\r\n }\r\n e.stopPropagation();\r\n initCurrentInlineView();\r\n\r\n const colspan = columns.length;\r\n const key = $(e.target).parents('tr[data-key]').data('key');\r\n const recommendation = gridView.itemWithKey(key);\r\n const $inlineViewContainer = $(containerTemplate({ key, colspan, selection }));\r\n $inlineViewContainer.bind('DOMSubtreeModified', () => {\r\n gridView.trigger('didUpdate');\r\n });\r\n\r\n function appendView() {\r\n // insert view and hide row.\r\n const $row = gridView.$(`tr[data-key=${key}]`);\r\n const view = new RecommendationInlineViewFactory({\r\n deps,\r\n i18n,\r\n newI18n,\r\n gridService,\r\n recommendation,\r\n logOpportunityEvent,\r\n router,\r\n isMCC,\r\n gridView,\r\n readOnly,\r\n perfMarker,\r\n serverContext,\r\n getGoalCreationRecommendationWizard,\r\n s$i18n,\r\n viewUET,\r\n }).render();\r\n $inlineViewContainer.find('td.inline-content').append(view.$el);\r\n\r\n currentInlineView.view = view;\r\n currentInlineView.key = key;\r\n currentInlineView.$inlineViewContainer = $inlineViewContainer;\r\n $row.after($inlineViewContainer);\r\n $row.hide();\r\n\r\n view.on('cancel', () => {\r\n getRowByKey(gridView, currentInlineView.key).show();\r\n initCurrentInlineView();\r\n });\r\n\r\n view.on('didApply', () => {\r\n initCurrentInlineView();\r\n gridView.refresh({ force: true });\r\n });\r\n\r\n view.on('didDismiss', () => {\r\n initCurrentInlineView();\r\n gridView.refresh({ force: true });\r\n });\r\n gridView.trigger('didUpdate');\r\n }\r\n\r\n\r\n const selectedKeys = gridView.selectedKeys();\r\n if (_.size(selectedKeys) === 0) {\r\n appendView();\r\n } else {\r\n gridView.deselectAll();\r\n gridView.once('didUpdate', appendView);\r\n }\r\n // [TODO] delete code after confirm with PM\r\n // if (_.isEmpty(gridView.selectedKeys())) {\r\n // appendView();\r\n // } else {\r\n // gridView.deselectAll();\r\n // gridView.once('didUpdate', appendView);\r\n // }\r\n }\r\n\r\n function applyRecommendation(opportunities, userInputs = [], context = {}, editor = null) {\r\n if (!_.isNull(editor)) {\r\n editor.remove();\r\n }\r\n return gridService.apply({ opportunities, userInputs, context }).then(() => {\r\n gridView.refresh({ force: true });\r\n }).finally(withUiBlock(el));\r\n }\r\n\r\n function imageExtensionApplyConfirmHandler(opportunities, userInputs = [], editor = null) {\r\n const { scope } = gridService.recommendationService;\r\n const level = scope ? scope.levelAt : levelAtConstant.ACCOUNT;\r\n const adGroupIdVNext = scope && scope.adGroupId ? [scope.adGroupId] : [];\r\n const campaignAdGroups = level !== levelAtConstant.ACCOUNT ? [{\r\n Key: scope.campaignId,\r\n Value: adGroupIdVNext,\r\n }] : [];\r\n const options = {\r\n odata: deps.odata,\r\n cid: scope.advertiserCustomerId,\r\n aid: scope.accountId,\r\n permissions: deps.permissions,\r\n isFromImgExtV2: true,\r\n i18n,\r\n el: '.recommendation-apply-feedback-popup',\r\n data: {\r\n type: RECOMMENDATION_TYPES.IMAGE_EXTENSION,\r\n channel: CHANNEL_TYPES.RECOMMENDATION,\r\n campaignAdGroups,\r\n },\r\n dataService: gridService.recommendationService,\r\n callback: !_.isEmpty(userInputs) && !_.isNull(editor) ?\r\n _.partial(applyRecommendation, _, userInputs, _, editor) : applyRecommendation,\r\n newI18n,\r\n opportunities,\r\n };\r\n showApplyFeedbackPopup(options);\r\n }\r\n\r\n function applyHandler(e) {\r\n if (!preventUserAction(e)) {\r\n return null;\r\n }\r\n e.stopPropagation();\r\n const $row = $(e.target).parents('tr[data-key]');\r\n const key = $row.data('key');\r\n const recommendation = gridView.itemWithKey(key);\r\n const opportunities = recommendation.Opportunities;\r\n\r\n if (gridService.recommendationType === RECOMMENDATION_TYPES.IMAGE_EXTENSION &&\r\n opportunities[0].ImageSourceStr === 'Website'\r\n && deps.permissions.IsAccountEnabledForCrawlImagesFromLandingPage) {\r\n imageExtensionApplyConfirmHandler(opportunities);\r\n return null;\r\n }\r\n\r\n return applyRecommendation(opportunities);\r\n }\r\n\r\n function externalHandler(e) {\r\n const $row = $(e.target).parents('tr[data-key]');\r\n const $inlineContainer = $(e.target).parents('tr[data-inlinekey]');\r\n const key = $row.data('key') || $inlineContainer.data('inlinekey');\r\n const recommendation = gridView.itemWithKey(key);\r\n const opportunities = recommendation.Opportunities;\r\n const opportunityId = opportunities[0].OpportunityId;\r\n const targetAccountId = opportunities[0].Target.AccountId;\r\n const statusId = opportunities[0].StatusId;\r\n const campaignId = opportunities[0].Target.CampaignId;\r\n const adGroupId = opportunities[0].Target.AdGroupId;\r\n\r\n const actionName = {\r\n [RECOMMENDATION_TYPES.GOOGLE_IMPORT]: 'Get Started',\r\n [RECOMMENDATION_TYPES.GOOGLE_IMPORT_SCHEDULED]: 'Get Started',\r\n [RECOMMENDATION_TYPES.SETUP_CONVERSION_TRACKING_OPPORTUNITY]: isMCC ? 'Check details' : 'Get Started',\r\n [RECOMMENDATION_TYPES.FIX_CONVERSION_TRACKING_OPPORTUNITY]: 'View UET Tags',\r\n [RECOMMENDATION_TYPES.FACEBOOK_IMPORT]: 'Get Started',\r\n [RECOMMENDATION_TYPES.REPAIR_ADS]: 'Create ad',\r\n };\r\n\r\n const context = {\r\n ButtonName: actionName[gridService.recommendationType],\r\n };\r\n\r\n logOpportunityEvent({\r\n type: gridService.recommendationType,\r\n action: ADINSIGHT_LOG_ACTION_TYPE.CUSTOM,\r\n opportunityId,\r\n context,\r\n });\r\n\r\n switch (gridService.recommendationType) {\r\n case RECOMMENDATION_TYPES.GOOGLE_IMPORT:\r\n case RECOMMENDATION_TYPES.GOOGLE_IMPORT_SCHEDULED:\r\n window.location = getGoogleImportUri(\r\n gridService.recommendationType,\r\n gridService.recommendationService.scope.customerId,\r\n gridService.recommendationService.scope.userId,\r\n targetAccountId,\r\n opportunityId\r\n );\r\n break;\r\n case RECOMMENDATION_TYPES.SETUP_CONVERSION_TRACKING_OPPORTUNITY:\r\n window.open(getSetupConvTrackingUri({\r\n recommendationType: gridService.recommendationType,\r\n customerId: gridService.recommendationService.scope.customerId,\r\n userId: gridService.recommendationService.scope.userId,\r\n accountId: targetAccountId,\r\n opportunityId,\r\n statusId,\r\n }));\r\n break;\r\n case RECOMMENDATION_TYPES.FIX_CONVERSION_TRACKING_OPPORTUNITY:\r\n window.open(getUETTagUri(\r\n gridService.recommendationService.scope.customerId,\r\n gridService.recommendationService.scope.userId,\r\n targetAccountId,\r\n opportunityId,\r\n isMCC\r\n ));\r\n break;\r\n case RECOMMENDATION_TYPES.FACEBOOK_IMPORT:\r\n window.location = getFacebookImportUri(\r\n gridService.recommendationType,\r\n gridService.recommendationService.scope.customerId,\r\n gridService.recommendationService.scope.userId,\r\n targetAccountId,\r\n opportunityId\r\n );\r\n break;\r\n case RECOMMENDATION_TYPES.REPAIR_ADS:\r\n window.open(getCreateAdUri(\r\n gridService.recommendationService.scope.customerId,\r\n gridService.recommendationService.scope.userId,\r\n targetAccountId,\r\n campaignId,\r\n adGroupId\r\n ), '_blank');\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n function panelHandler(e, dataKey = null) {\r\n let $row;\r\n let $inlineContainer;\r\n let key;\r\n if (!_.isNull(dataKey)) {\r\n key = dataKey;\r\n } else {\r\n $row = $(e.target).parents('tr[data-key]');\r\n $inlineContainer = $(e.target).parents('tr[data-inlinekey]');\r\n key = $row.data('key') || $inlineContainer.data('inlinekey');\r\n }\r\n const recommendation = gridView.itemWithKey(key);\r\n const opportunities = recommendation.Opportunities;\r\n const targetAccountId = opportunities[0].Target.AccountId;\r\n const campaignId = opportunities[0].Target.CampaignId;\r\n const adGroupId = opportunities[0].Target.AdGroupId;\r\n const opportunityId = opportunities[0].OpportunityId;\r\n const type = gridService.recommendationType;\r\n switch (gridService.recommendationType) {\r\n case RECOMMENDATION_TYPES.IMAGE_EXTENSION: {\r\n const context = recommendation.ImageSourceStr === 'StockImage' ? {\r\n ImageSource: recommendation.ImageSourceStr,\r\n ShutterstockQuery: _.first(_.first(opportunities).StockImages).Query,\r\n ShutterstockTotalCount: _.first(_.first(opportunities).StockImages).TotalCount,\r\n ShutterstockImageId: _.first(_.first(opportunities).StockImages).ImageId,\r\n } : {\r\n ImageSource: recommendation.ImageSourceStr,\r\n };\r\n logOpportunityEvent({\r\n opportunityId,\r\n campaignId,\r\n type,\r\n action: ADINSIGHT_LOG_ACTION_TYPE.VIEWEDIT,\r\n accountId: targetAccountId,\r\n context,\r\n });\r\n gridView.deselectAll();\r\n const apply = (userInputs, editor) => {\r\n if (gridService.recommendationType === RECOMMENDATION_TYPES.IMAGE_EXTENSION &&\r\n opportunities[0].ImageSourceStr === 'Website'\r\n && _.some(_.first(userInputs).Images, item => _.isUndefined(item.ImageAssetId))\r\n && deps.permissions.IsAccountEnabledForCrawlImagesFromLandingPage) {\r\n imageExtensionApplyConfirmHandler(opportunities, userInputs, editor);\r\n } else {\r\n applyRecommendation(opportunities, userInputs, {}, editor);\r\n }\r\n };\r\n import(/* webpackMode: 'eager' */'./image-extension').then(({ openImageExtensionEditor }) => {\r\n openImageExtensionEditor(\r\n opportunities,\r\n targetAccountId,\r\n campaignId,\r\n adGroupId,\r\n type,\r\n i18n,\r\n newI18n,\r\n this.editor,\r\n apply,\r\n readOnly\r\n );\r\n });\r\n break;\r\n }\r\n case RECOMMENDATION_TYPES.MULTIMEDIA_ADS:\r\n case RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS:\r\n case RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS:\r\n case RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS: {\r\n logOpportunityEvent({\r\n opportunityId,\r\n campaignId,\r\n type,\r\n action: ADINSIGHT_LOG_ACTION_TYPE.VIEWEDIT,\r\n accountId: targetAccountId,\r\n });\r\n gridView.deselectAll();\r\n const apply = (data, userInputs, context, editor) => {\r\n applyRecommendation(data, userInputs, context, editor);\r\n };\r\n import(/* webpackMode: 'eager' */'./new-ads-view').then(({ openNewAdsViewEditor }) => {\r\n openNewAdsViewEditor(\r\n deps,\r\n i18n,\r\n newI18n,\r\n type,\r\n gridService,\r\n recommendation,\r\n router,\r\n isMCC,\r\n gridView,\r\n readOnly,\r\n gridView.editor,\r\n apply\r\n );\r\n });\r\n break;\r\n }\r\n case RECOMMENDATION_TYPES.CREATE_CONVERSION_GOAL: {\r\n logOpportunityEvent({\r\n opportunityId,\r\n campaignId,\r\n type,\r\n action: ADINSIGHT_LOG_ACTION_TYPE.VIEWEDIT,\r\n accountId: targetAccountId,\r\n });\r\n gridView.deselectAll();\r\n const apply = (data, userInputs, context, editor) => {\r\n applyRecommendation(data, userInputs, context, editor);\r\n };\r\n import(/* webpackMode: 'eager' */'./create-conversion-goal').then(({ openCreateConversionGoalEditor }) => {\r\n openCreateConversionGoalEditor(\r\n deps,\r\n i18n,\r\n newI18n,\r\n type,\r\n gridService,\r\n recommendation,\r\n router,\r\n isMCC,\r\n gridView,\r\n readOnly,\r\n this.editor,\r\n apply,\r\n perfMarker,\r\n serverContext,\r\n getGoalCreationRecommendationWizard\r\n );\r\n });\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n gridView.on('openEditPanel', key => panelHandler(null, key));\r\n\r\n const actionColumnProjection = {\r\n name: 'actionColumnProjection',\r\n handler: function actionColumn(state) {\r\n const patch = {};\r\n patch.events = _.defaults({\r\n 'click .inline-action-view': inlineActionHandler,\r\n 'click .inline-action-apply': applyHandler,\r\n 'click .inline-action-external': externalHandler,\r\n 'click .inline-action-panel': panelHandler,\r\n }, state.events);\r\n\r\n return _.defaults(patch, state);\r\n },\r\n };\r\n\r\n const preventGridActionProjection = {\r\n name: 'preventGridActionProjection',\r\n handler: function testContent(state) {\r\n const events = _.defaults({\r\n 'click th input.select-all': preventUserAction,\r\n 'click tbody tr[data-key] td': preventUserAction,\r\n }, state.events);\r\n\r\n return _.defaults({ events }, state);\r\n },\r\n };\r\n\r\n gridView.pipeStructureProjections(actionColumnProjection);\r\n gridView.pipeContentProjections(preventGridActionProjection);\r\n\r\n return currentInlineView;\r\n});\r\n","export const getGoogleImportUri = (\r\n recommendationType,\r\n customerId,\r\n userId,\r\n accountId,\r\n opportunityId\r\n) => {\r\n const googleImportUri = '/campaign/vnext/googleimport';\r\n const opportunityType = recommendationType;\r\n return [\r\n googleImportUri,\r\n `?cid=${customerId}`,\r\n `&uid=${userId}`,\r\n `&aid=${accountId}`,\r\n `&opportunityType=${opportunityType}`,\r\n `&opportunityId=${opportunityId}`,\r\n '&source=webui',\r\n ].join('');\r\n};\r\n\r\nexport const getSetupConvTrackingUri = ({\r\n recommendationType,\r\n customerId,\r\n userId,\r\n accountId,\r\n opportunityId,\r\n statusId,\r\n}) => {\r\n let uri = '/campaign/vnext/conversiongoals?filterAlias=unverifiedGoals&';\r\n if (statusId === 0) {\r\n uri = '/campaign/vnext/uettag?';\r\n } else if (statusId === 1) {\r\n uri = '/campaign/vnext/conversiongoals/create?';\r\n }\r\n\r\n return [\r\n uri,\r\n `cid=${customerId}`,\r\n `&uid=${userId}`,\r\n `&aid=${accountId}`,\r\n `&opportunityType=${recommendationType}`,\r\n `&opportunityId=${opportunityId}`,\r\n '&source=webui',\r\n ].join('');\r\n};\r\n\r\nexport const getUETTagUri = (\r\n customerId,\r\n userId,\r\n accountId,\r\n opportunityId,\r\n isMCC\r\n) => [\r\n '/campaign/vnext/uettag',\r\n `?cid=${customerId}`,\r\n `&uid=${userId}`,\r\n `${isMCC ? '' : `&aid=${accountId}`}`,\r\n `&opportunityId=${opportunityId}`,\r\n '&source=webui',\r\n '&filterAlias=recommendationUetinactive',\r\n].join('');\r\n\r\nexport const getFacebookImportUri = (\r\n recommendationType,\r\n customerId,\r\n userId,\r\n accountId,\r\n opportunityId\r\n) => {\r\n const googleImportUri = '/campaign/vnext/facebookimport';\r\n return [\r\n googleImportUri,\r\n `?cid=${customerId}`,\r\n `&uid=${userId}`,\r\n `&aid=${accountId}`,\r\n `&opportunityType=${recommendationType}`,\r\n `&opportunityId=${opportunityId}`,\r\n '&source=webui',\r\n ].join('');\r\n};\r\n\r\nexport const getCreateAdUri = (\r\n customerId,\r\n userId,\r\n accountId,\r\n campaignId,\r\n adGroupId\r\n) => {\r\n const createAdUri = '/campaign/vnext/ads';\r\n return [\r\n createAdUri,\r\n `?cid=${customerId}`,\r\n `&uid=${userId}`,\r\n `&aid=${accountId}`,\r\n `&campaignId=${campaignId}`,\r\n `&adGroupId=${adGroupId}`,\r\n ].join('');\r\n};\r\n","import _ from 'underscore';\r\n\r\nimport { RECOMMENDATION_TYPES, formatBid, NOT_SUPPORT_DOWNLOAD_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\nimport { RECOMMENDATION_INLINE_ACTION_TYPE } from '@bingads-webui-campaign/recommendation-inline-action';\r\n\r\nexport const INLINE_ACTION_MAP = {\r\n [RECOMMENDATION_TYPES.BUDGET_OPPORTUNITY]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_EDIT,\r\n [RECOMMENDATION_TYPES.ADJUST_SHARED_BUDGET_OPPORTUNITY]:\r\n RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_EDIT,\r\n [RECOMMENDATION_TYPES.REALLOCATE_BUDGET]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_EDIT,\r\n [RECOMMENDATION_TYPES.IMAGE_EXTENSION]: RECOMMENDATION_INLINE_ACTION_TYPE.IMAGE_EXTENSION,\r\n\r\n [RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_ONLY,\r\n [RECOMMENDATION_TYPES.NEW_KEYWORD_OPPORTUNITY]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_ONLY,\r\n [RECOMMENDATION_TYPES.TRENDING_QUERY]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_ONLY,\r\n [RECOMMENDATION_TYPES.REMOVE_CONFLICTING_NEGATIVE_KEYWORD]:\r\n RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_ONLY,\r\n [RECOMMENDATION_TYPES.REPAIR_MISSING_KEYWORD_PARAMS]:\r\n RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_ONLY,\r\n [RECOMMENDATION_TYPES.FIX_NO_IMPRESSION_BID]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_ONLY,\r\n [RECOMMENDATION_TYPES.REPAIR_UNTARGETED_OFFER]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_ONLY,\r\n [RECOMMENDATION_TYPES.SSC_2_PMAX_MIGRATION]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_ONLY,\r\n [RECOMMENDATION_TYPES.PMAX_IMPORT]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_ONLY,\r\n [RECOMMENDATION_TYPES.DSA_2_PMAX_MIGRATION]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_ONLY,\r\n [RECOMMENDATION_TYPES.SYNDICATION_GAP]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_ONLY,\r\n\r\n [RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_PANEL_EDIT,\r\n [RECOMMENDATION_TYPES.MULTIMEDIA_ADS]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_PANEL_EDIT,\r\n [RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_PANEL_EDIT,\r\n [RECOMMENDATION_TYPES.CREATE_CONVERSION_GOAL]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_PANEL_EDIT,\r\n [RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS]: RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_PANEL_EDIT,\r\n\r\n [RECOMMENDATION_TYPES.CALLOUT]: RECOMMENDATION_INLINE_ACTION_TYPE.EDIT_ONLY,\r\n [RECOMMENDATION_TYPES.SITE_LINK]: RECOMMENDATION_INLINE_ACTION_TYPE.EDIT_ONLY,\r\n [RECOMMENDATION_TYPES.DYNAMIC_SEARCH_ADS]: RECOMMENDATION_INLINE_ACTION_TYPE.EDIT_ONLY,\r\n\r\n [RECOMMENDATION_TYPES.REPAIR_KEYWORD]: RECOMMENDATION_INLINE_ACTION_TYPE.REPAIR,\r\n\r\n [RECOMMENDATION_TYPES.FIX_AD_DESTINATION]: RECOMMENDATION_INLINE_ACTION_TYPE.RESUBMIT_EDIT,\r\n\r\n\r\n [RECOMMENDATION_TYPES.SETUP_CONVERSION_TRACKING_OPPORTUNITY]:\r\n RECOMMENDATION_INLINE_ACTION_TYPE.SETUP_CONV,\r\n\r\n [RECOMMENDATION_TYPES.FIX_CONVERSION_GOAL_SETTINGS]: RECOMMENDATION_INLINE_ACTION_TYPE.HYBRID,\r\n\r\n [RECOMMENDATION_TYPES.GOOGLE_IMPORT]: RECOMMENDATION_INLINE_ACTION_TYPE.EXTERNAL,\r\n [RECOMMENDATION_TYPES.GOOGLE_IMPORT_SCHEDULED]: RECOMMENDATION_INLINE_ACTION_TYPE.EXTERNAL,\r\n [RECOMMENDATION_TYPES.FACEBOOK_IMPORT]: RECOMMENDATION_INLINE_ACTION_TYPE.EXTERNAL,\r\n [RECOMMENDATION_TYPES.FIX_CONVERSION_TRACKING_OPPORTUNITY]:\r\n RECOMMENDATION_INLINE_ACTION_TYPE.EXTERNAL,\r\n [RECOMMENDATION_TYPES.REPAIR_ADS]: RECOMMENDATION_INLINE_ACTION_TYPE.EXTERNAL,\r\n};\r\n\r\nexport const NO_ACTION_RECOMMENDATION_TYPES = [\r\n RECOMMENDATION_TYPES.FIX_AD_TEXT,\r\n];\r\n\r\nexport const isGoogleRecommendationType = recommendationType =>\r\n recommendationType === RECOMMENDATION_TYPES.GOOGLE_IMPORT ||\r\n recommendationType === RECOMMENDATION_TYPES.GOOGLE_IMPORT_SCHEDULED;\r\n\r\nexport const isSelectableType = (recommendationType, isMCC = false) => {\r\n const withoutSelection =\r\n isGoogleRecommendationType(recommendationType) ||\r\n recommendationType === RECOMMENDATION_TYPES.FIX_CONVERSION_TRACKING_OPPORTUNITY ||\r\n (recommendationType === RECOMMENDATION_TYPES.SETUP_CONVERSION_TRACKING_OPPORTUNITY && !isMCC) ||\r\n recommendationType === RECOMMENDATION_TYPES.FACEBOOK_IMPORT ||\r\n recommendationType === RECOMMENDATION_TYPES.PMAX_IMPORT;\r\n return !withoutSelection;\r\n};\r\n\r\nexport const isDownloadableType = recommendationType =>\r\n !_.contains(NOT_SUPPORT_DOWNLOAD_TYPES, recommendationType);\r\n\r\nexport const isAdExtensionRecommendationType = recommendationType =>\r\n recommendationType === RECOMMENDATION_TYPES.SITE_LINK ||\r\n recommendationType === RECOMMENDATION_TYPES.CALLOUT;\r\n\r\nexport const isPopupEditorEnabledRecommendationType = recommendationType =>\r\n recommendationType === RECOMMENDATION_TYPES.NEW_KEYWORD_OPPORTUNITY ||\r\n recommendationType === RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD ||\r\n recommendationType === RECOMMENDATION_TYPES.TRENDING_QUERY ||\r\n recommendationType === RECOMMENDATION_TYPES.REPAIR_MISSING_KEYWORD_PARAMS ||\r\n recommendationType === RECOMMENDATION_TYPES.FIX_NO_IMPRESSION_BID ||\r\n recommendationType === RECOMMENDATION_TYPES.REPAIR_UNTARGETED_OFFER;\r\n\r\nexport const SUGGESTED_ADS_COLUMN_MAX_ADS_COUNT = 4;\r\n\r\nexport const SUPPORT_APPLY_TYPES = [\r\n RECOMMENDATION_TYPES.BUDGET_OPPORTUNITY,\r\n RECOMMENDATION_TYPES.ADJUST_SHARED_BUDGET_OPPORTUNITY,\r\n RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD,\r\n RECOMMENDATION_TYPES.NEW_KEYWORD_OPPORTUNITY,\r\n RECOMMENDATION_TYPES.TRENDING_QUERY,\r\n RECOMMENDATION_TYPES.REMOVE_CONFLICTING_NEGATIVE_KEYWORD,\r\n RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS,\r\n RECOMMENDATION_TYPES.REALLOCATE_BUDGET,\r\n RECOMMENDATION_TYPES.MULTIMEDIA_ADS,\r\n RECOMMENDATION_TYPES.IMAGE_EXTENSION,\r\n RECOMMENDATION_TYPES.REPAIR_MISSING_KEYWORD_PARAMS,\r\n RECOMMENDATION_TYPES.FIX_NO_IMPRESSION_BID,\r\n RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS,\r\n RECOMMENDATION_TYPES.REPAIR_UNTARGETED_OFFER,\r\n RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS,\r\n RECOMMENDATION_TYPES.SSC_2_PMAX_MIGRATION,\r\n RECOMMENDATION_TYPES.DSA_2_PMAX_MIGRATION,\r\n RECOMMENDATION_TYPES.SYNDICATION_GAP,\r\n];\r\n\r\nexport const SUPPORT_RESUBMIT_TYPES = [\r\n RECOMMENDATION_TYPES.FIX_AD_DESTINATION,\r\n];\r\n\r\nexport const SUPPORT_DISMISS_TYPES = [\r\n RECOMMENDATION_TYPES.CALLOUT,\r\n RECOMMENDATION_TYPES.SITE_LINK,\r\n RECOMMENDATION_TYPES.REPAIR_ADS,\r\n RECOMMENDATION_TYPES.REPAIR_KEYWORD,\r\n RECOMMENDATION_TYPES.DYNAMIC_SEARCH_ADS,\r\n RECOMMENDATION_TYPES.FIX_AD_TEXT,\r\n RECOMMENDATION_TYPES.SETUP_CONVERSION_TRACKING_OPPORTUNITY,\r\n RECOMMENDATION_TYPES.FIX_CONVERSION_GOAL_SETTINGS,\r\n RECOMMENDATION_TYPES.FIX_AD_DESTINATION,\r\n RECOMMENDATION_TYPES.CREATE_CONVERSION_GOAL,\r\n RECOMMENDATION_TYPES.BUDGET_OPPORTUNITY,\r\n RECOMMENDATION_TYPES.ADJUST_SHARED_BUDGET_OPPORTUNITY,\r\n RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD,\r\n RECOMMENDATION_TYPES.NEW_KEYWORD_OPPORTUNITY,\r\n RECOMMENDATION_TYPES.TRENDING_QUERY,\r\n RECOMMENDATION_TYPES.REMOVE_CONFLICTING_NEGATIVE_KEYWORD,\r\n RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS,\r\n RECOMMENDATION_TYPES.REALLOCATE_BUDGET,\r\n RECOMMENDATION_TYPES.MULTIMEDIA_ADS,\r\n RECOMMENDATION_TYPES.IMAGE_EXTENSION,\r\n RECOMMENDATION_TYPES.REPAIR_MISSING_KEYWORD_PARAMS,\r\n RECOMMENDATION_TYPES.FIX_NO_IMPRESSION_BID,\r\n RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS,\r\n RECOMMENDATION_TYPES.REPAIR_UNTARGETED_OFFER,\r\n RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS,\r\n RECOMMENDATION_TYPES.DSA_2_PMAX_MIGRATION,\r\n RECOMMENDATION_TYPES.SYNDICATION_GAP,\r\n];\r\n\r\nexport const SUPPORT_DISMISS_ALL_TYPES = [\r\n RECOMMENDATION_TYPES.CALLOUT,\r\n RECOMMENDATION_TYPES.SITE_LINK,\r\n RECOMMENDATION_TYPES.REPAIR_ADS,\r\n RECOMMENDATION_TYPES.REPAIR_KEYWORD,\r\n RECOMMENDATION_TYPES.DYNAMIC_SEARCH_ADS,\r\n RECOMMENDATION_TYPES.FIX_AD_TEXT,\r\n RECOMMENDATION_TYPES.SETUP_CONVERSION_TRACKING_OPPORTUNITY,\r\n RECOMMENDATION_TYPES.FIX_CONVERSION_GOAL_SETTINGS,\r\n RECOMMENDATION_TYPES.FIX_AD_DESTINATION,\r\n RECOMMENDATION_TYPES.CREATE_CONVERSION_GOAL,\r\n RECOMMENDATION_TYPES.BUDGET_OPPORTUNITY,\r\n RECOMMENDATION_TYPES.ADJUST_SHARED_BUDGET_OPPORTUNITY,\r\n RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD,\r\n RECOMMENDATION_TYPES.NEW_KEYWORD_OPPORTUNITY,\r\n RECOMMENDATION_TYPES.TRENDING_QUERY,\r\n RECOMMENDATION_TYPES.REMOVE_CONFLICTING_NEGATIVE_KEYWORD,\r\n RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS,\r\n RECOMMENDATION_TYPES.REALLOCATE_BUDGET,\r\n RECOMMENDATION_TYPES.MULTIMEDIA_ADS,\r\n RECOMMENDATION_TYPES.IMAGE_EXTENSION,\r\n RECOMMENDATION_TYPES.REPAIR_MISSING_KEYWORD_PARAMS,\r\n RECOMMENDATION_TYPES.FIX_NO_IMPRESSION_BID,\r\n RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS,\r\n RECOMMENDATION_TYPES.REPAIR_UNTARGETED_OFFER,\r\n RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS,\r\n RECOMMENDATION_TYPES.FIX_CONVERSION_TRACKING_OPPORTUNITY,\r\n RECOMMENDATION_TYPES.GOOGLE_IMPORT,\r\n RECOMMENDATION_TYPES.GOOGLE_IMPORT_SCHEDULED,\r\n RECOMMENDATION_TYPES.FACEBOOK_IMPORT,\r\n RECOMMENDATION_TYPES.PMAX_IMPORT,\r\n RECOMMENDATION_TYPES.DSA_2_PMAX_MIGRATION,\r\n RECOMMENDATION_TYPES.SYNDICATION_GAP,\r\n];\r\nexport const SUPPORT_DOWNLOAD_TYPES =\r\n _.without(_.clone(SUPPORT_DISMISS_TYPES), ...NOT_SUPPORT_DOWNLOAD_TYPES);\r\n\r\nexport const SUPPORT_DATE_FILTER_TYPES = [\r\n RECOMMENDATION_TYPES.FIX_AD_DESTINATION,\r\n RECOMMENDATION_TYPES.FIX_AD_TEXT,\r\n];\r\n\r\nexport const DATE_FILTER_STRING_TYPES = {\r\n LAST_THREE_MONTH: 'Dropdown_Button_LastThreeMonth',\r\n LAST_SIX_MONTH: 'Dropdown_Button_LastSixMonth',\r\n};\r\n\r\nexport const SUPPORT_GENERATED_FROM_FILTER_TYPES = [\r\n RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS,\r\n];\r\n\r\nexport const GENERATED_FROM_FILTER_STRING_TYPES = {\r\n AllAssets: 'AllAssets',\r\n UserAssets: 'UserAssets',\r\n AIGeneratedAssets: 'AIGeneratedAssets',\r\n};\r\n\r\nexport const GENERATED_FROM_FILTER_STRING_VALUES = {\r\n AllAssets: 'All assets',\r\n UserAssets: 'Existing assets',\r\n AIGeneratedAssets: 'AI-generated assets',\r\n};\r\n\r\nexport const getSearchTermChartData = (searchTermList) => {\r\n const searchTerms = _.sortBy(searchTermList, 'searchTermKpi').reverse();\r\n\r\n const items = _.map(searchTerms, item => ({\r\n name: item.searchTerm,\r\n data: [item.searchTermKpi],\r\n }));\r\n\r\n return {\r\n selectedMetric: 'SearchTerms',\r\n localizeCategory: true,\r\n category: 'Search_Terms',\r\n items,\r\n };\r\n};\r\n\r\nexport const isKeywordRecsChange = (opportunity, recommendationType, i18n) => {\r\n // If match type is changed, return true.\r\n if (!_.isUndefined(opportunity.NewMatchType)) {\r\n const newMatchType = opportunity.NewMatchType;\r\n const suggestedMatchType = recommendationType === RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD ?\r\n opportunity.SuggestedMatchType : opportunity.MatchType;\r\n if (newMatchType !== suggestedMatchType) {\r\n return true;\r\n }\r\n }\r\n\r\n // If ad group is changed, return true.\r\n if (!_.isUndefined(opportunity.NewAdGroupId)\r\n && opportunity.NewAdGroupId !== opportunity.Target.AdGroupId) {\r\n return true;\r\n }\r\n\r\n // If bid is changed, return true.\r\n if (!_.isUndefined(opportunity.NewBid)) {\r\n const newBid = formatBid(opportunity.NewBid, i18n);\r\n const suggestedBid = recommendationType === RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD ?\r\n opportunity.SuggBid : opportunity.SuggestedBid;\r\n if (newBid !== formatBid(suggestedBid, i18n)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nexport const isSuggestedBidSupported = opportunity =>\r\n (opportunity && opportunity.Target && (_.isUndefined(opportunity.Target.BidStrategyTypeId) ||\r\n _.isNull(opportunity.Target.BidStrategyTypeId) ||\r\n opportunity.Target.BidStrategyTypeId === 1 ||\r\n opportunity.Target.BidStrategyTypeId === 5));\r\n\r\nexport function InlineCampaignAdGroupEditableSave({\r\n key,\r\n view,\r\n updated,\r\n editorView,\r\n isCampaign,\r\n}) {\r\n const value = updated.Name;\r\n const recommendation = view.grid.gridView.itemWithKey(key);\r\n if (!_.isNull(recommendation)) {\r\n if (isCampaign) {\r\n _.first(recommendation.Opportunities).NewCampaignName = value;\r\n } else {\r\n _.first(recommendation.Opportunities).NewAdGroupName = value;\r\n }\r\n\r\n // Append the current selected one into existing selected ones.\r\n const selectedKeys = view.grid.gridView.selectedKeys();\r\n if (!_.contains(selectedKeys, key)) {\r\n selectedKeys.push(key);\r\n }\r\n view.grid.gridView.set({ selection: _.defaults({ selected: selectedKeys }) });\r\n }\r\n editorView.trigger('cancel');\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { RECOMMENDATION_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\nimport template from './action-apply-only-column.pug';\r\n\r\nexport class ActionApplyOnlyColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, readOnly, newI18n }) {\r\n super({\r\n name: 'Action',\r\n property: 'Recommendation/ActionApplyOnly',\r\n title: i18n.getString('ColumnName_Action') || 'Action',\r\n bodyClasses: ['inline-action-view-column'],\r\n colClasses: ['col-apply'],\r\n });\r\n this.i18n = i18n;\r\n this.readOnly = readOnly;\r\n this.newI18n = newI18n;\r\n }\r\n\r\n template({ value: { OpportunityType } }) {\r\n const { i18n, readOnly, newI18n } = this;\r\n let action;\r\n if (OpportunityType === RECOMMENDATION_TYPES.PMAX_IMPORT) {\r\n action = newI18n.getString(_TL_('Create import'));\r\n } else {\r\n action = i18n.getString('Button_Apply');\r\n }\r\n return template({ action, readOnly });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport template from './action-edit-apply-column.pug';\r\n\r\nexport class ActionApplyEditColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, readOnly }) {\r\n super({\r\n name: 'Action',\r\n property: 'Recommendation/ActionEditApply',\r\n title: i18n.getString('ColumnName_Action') || 'Action',\r\n bodyClasses: ['inline-action-edit-apply-column'],\r\n colClasses: ['col-applyEdit'],\r\n });\r\n this.i18n = i18n;\r\n this.readOnly = readOnly;\r\n }\r\n\r\n template() {\r\n const { i18n, readOnly } = this;\r\n return template({ i18n, readOnly });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport template from './action-edit-resubmit-column.pug';\r\n\r\nexport class ActionResubmitEditColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, readOnly }) {\r\n super({\r\n name: 'Action',\r\n property: 'Recommendation/ActionEditResubmit',\r\n title: i18n.getString('ColumnName_Action') || 'Action',\r\n bodyClasses: ['inline-action-edit-resubmit-column'],\r\n colClasses: ['col-resubmitEdit'],\r\n });\r\n this.i18n = i18n;\r\n this.readOnly = readOnly;\r\n }\r\n\r\n template({ value: { IsAppealable } }) {\r\n const { i18n, readOnly } = this;\r\n return template({ i18n, disableResubmit: readOnly || !IsAppealable });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport template from './action-edit-only-column.pug';\r\n\r\nexport class ActionEditOnlyColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'Action',\r\n property: 'Recommendation/ActionEditOnly',\r\n title: i18n.getString('ColumnName_Action') || 'Action',\r\n bodyClasses: ['inline-action-view-column'],\r\n colClasses: ['col-edit'],\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template() {\r\n const { i18n } = this;\r\n return template({ i18n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { RECOMMENDATION_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\nimport template from './action-external-column.pug';\r\n\r\nexport class ActionExternalColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n super({\r\n name: 'Action',\r\n property: 'Recommendation/ActionExternal',\r\n title: i18n.getString('ColumnName_Action') || 'Action',\r\n bodyClasses: ['inline-action-view-column'],\r\n colClasses: ['col-external'],\r\n });\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n }\r\n\r\n template({ value: { OpportunityType } }) {\r\n const { i18n, newI18n } = this;\r\n\r\n const actionName = {\r\n [RECOMMENDATION_TYPES.GOOGLE_IMPORT]: i18n.getString('Button_External_GoogleImport'),\r\n [RECOMMENDATION_TYPES.GOOGLE_IMPORT_SCHEDULED]: i18n.getString('Button_External_GoogleImport'),\r\n [RECOMMENDATION_TYPES.FIX_CONVERSION_TRACKING_OPPORTUNITY]: i18n.getString('Fix_Conversion_Tracking_Action'),\r\n [RECOMMENDATION_TYPES.FACEBOOK_IMPORT]: i18n.getString('Button_External_GoogleImport'),\r\n [RECOMMENDATION_TYPES.REPAIR_ADS]: newI18n.getString(_TL_('Create ad')),\r\n };\r\n return template({ action: actionName[OpportunityType] });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { RECOMMENDATION_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\nimport template from './action-panel-edit-apply-column.pug';\r\n\r\nexport class ActionPanelEditApply extends ProjectionGridBaseColumn {\r\n constructor({\r\n i18n, readOnly, deps, recommendationType,\r\n }) {\r\n super({\r\n name: 'Action',\r\n property: 'Recommendation/ActionPanelEditApply',\r\n title: i18n.getString('ColumnName_Action') || 'Action',\r\n bodyClasses: ['inline-action-panel-edit-apply-column'],\r\n colClasses: ['col-applyPanelEdit'],\r\n });\r\n this.i18n = i18n;\r\n this.readOnly = readOnly;\r\n this.deps = deps;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n template() {\r\n const {\r\n i18n, readOnly, deps, recommendationType,\r\n } = this;\r\n const isPanelEdit = deps.permissions.IsRecommendationRSAMMAPnaelEditEnabled ||\r\n recommendationType === RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS ||\r\n recommendationType === RECOMMENDATION_TYPES.CREATE_CONVERSION_GOAL;\r\n return template({ i18n, readOnly, isPanelEdit });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport template from './action-repair-column.pug';\r\n\r\nexport class ActionRepairColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, deps, readOnly }) {\r\n super({\r\n name: 'Action',\r\n property: 'Recommendation/ActionRepair',\r\n title: i18n.getString('ColumnName_Action') || 'Action',\r\n bodyClasses: ['inline-action-view-column'],\r\n colClasses: ['col-repair'],\r\n });\r\n this.i18n = i18n;\r\n this.deps = deps;\r\n this.readOnly = readOnly;\r\n }\r\n\r\n template({ value: { SuggestedAdList } }) {\r\n const { i18n, readOnly } = this;\r\n const isApplyHidden = true || _.isEmpty(SuggestedAdList); // [TODO]: add condition if enabled\r\n\r\n return template({\r\n i18n,\r\n isApplyHidden,\r\n readOnly,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get(item) {\r\n return _.first(item.Opportunities);\r\n },\r\n };\r\n }\r\n}\r\n","import { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport template from './action-setup-conversion-tracking-column.pug';\r\n\r\nexport class ActionSetupConversionTrackingColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, isMCC }) {\r\n super({\r\n name: 'Action',\r\n property: 'Recommendation/ActionSetupConversionTracking',\r\n title: i18n.getString('ColumnName_Action') || 'Action',\r\n bodyClasses: ['inline-action-view-column'],\r\n colClasses: ['col-setup-conv'],\r\n });\r\n this.i18n = i18n;\r\n this.isMCC = isMCC;\r\n }\r\n\r\n template() {\r\n const { i18n, isMCC } = this;\r\n return template({ i18n, isMCC });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { CONTEXTUAL_ENTITY_TYPE } from '@bingads-webui-campaign/recommendation-core';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\n\r\nimport template from './campaign-column.pug';\r\n\r\nexport class CampaignColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'Campaign',\r\n property: 'Target/CampaignName',\r\n title: i18n.getString('Entity_Campaign'),\r\n bodyClasses: ['grid-column-campaignName', 'actionable'],\r\n colClasses: ['col-longText'],\r\n sortable: 'Target/CampaignName',\r\n type: 'string',\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n Target: { CampaignName, CampaignId },\r\n },\r\n }) {\r\n return template({\r\n campaignAttributes: withContextualAttributeTemplate({\r\n opportunityId: Opportunities[0].OpportunityId,\r\n entityName: CampaignName,\r\n entityId: CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n status: 'false',\r\n ariaLabel: this.i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: CampaignName }),\r\n }),\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'Target/CampaignName',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { CONTEXTUAL_ENTITY_TYPE } from '@bingads-webui-campaign/recommendation-core';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\n\r\nimport template from './account-column.pug';\r\n\r\nexport class AccountColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'AccountName',\r\n property: 'Target/AccountName',\r\n // todo: || is only for demo\r\n title: i18n.getString('Entity_Account') || 'Entity_Account',\r\n bodyClasses: ['grid-column-accountName', 'actionable'],\r\n colClasses: ['col-longText'],\r\n sortable: 'Target/AccountName',\r\n type: 'string',\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n Target: { AccountName, AccountId },\r\n },\r\n }) {\r\n return template({\r\n accountAttributes: withContextualAttributeTemplate({\r\n opportunityId: Opportunities[0].OpportunityId,\r\n entityName: AccountName,\r\n entityId: AccountId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.ACCOUNT,\r\n status: 'false',\r\n }),\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'Target/AccountName',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport { KoSchema } from '@bingads-webui/ko-schema';\r\nimport {\r\n RECOMMENDATION_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport default class ViewModel {\r\n constructor({\r\n i18n,\r\n formatSuggestedBid,\r\n appConfig,\r\n newI18n,\r\n recommendationType,\r\n suggestedBid,\r\n }) {\r\n this.i18n = i18n;\r\n this.formatSuggestedBid = formatSuggestedBid;\r\n this.appConfig = appConfig;\r\n this.newI18n = newI18n;\r\n this.recommendationType = recommendationType;\r\n this.suggestedBid = suggestedBid;\r\n this.inputBid = ko.observable('');\r\n this.userInputDisplayVal = ko.observable(formatSuggestedBid);\r\n this.userInputDisplayVal.subscribe((value) => {\r\n this.inputBid(i18n.isValidDecimal(value) ? i18n.parseDecimal(value) : value);\r\n this.inputBid.validate();\r\n });\r\n this.validateUserInput();\r\n }\r\n\r\n validateUserInput() {\r\n const { appConfig } = this;\r\n const minBid = appConfig.get('KeywordBidRange').FloorValue;\r\n const maxBid = appConfig.get('KeywordBidRange').CeilingValue;\r\n const {\r\n i18n, formatSuggestedBid, recommendationType, suggestedBid,\r\n } = this;\r\n const schema = {\r\n properties: {\r\n inputBid: {\r\n type: 'number',\r\n required: true,\r\n default: formatSuggestedBid,\r\n minimum: minBid,\r\n maximum: maxBid,\r\n },\r\n },\r\n };\r\n KoSchema(this, schema, _.keys(schema.properties), {}, {}, i18n);\r\n\r\n this.inputBid.validators.type.message = i18n.getString('ErrorMessage_InputNumericValue');\r\n this.inputBid.validators.range.message\r\n = i18n.getString('NewKeywordSuggestionsValidationMsg')\r\n .replace('{0}', minBid)\r\n .replace('{1}', i18n.currency)\r\n .replace('{2}', maxBid)\r\n .replace('{3}', i18n.currency);\r\n\r\n this.errorMessage = ko.observable('');\r\n this.showErrorMessage = ko.computed(() => {\r\n if (!this.inputBid.isValid()) {\r\n this.errorMessage(_.first(this.inputBid.errors()));\r\n return true;\r\n }\r\n return false;\r\n });\r\n this.warningMessage = ko.observable('');\r\n this.showWarningMessage = ko.computed(() => {\r\n const inputBid = Number(this.inputBid());\r\n if (recommendationType === RECOMMENDATION_TYPES.FIX_NO_IMPRESSION_BID\r\n && _.isNumber(inputBid) && _.isNumber(suggestedBid) && _.isNumber(minBid)\r\n && inputBid < suggestedBid && inputBid >= minBid) {\r\n this.warningMessage(this.newI18n.getString(_TL_('The bid you set is lower than recommended. Increasing your bid to {0}{1} will earn more impressions and clicks.'))\r\n .replace('{0}', suggestedBid)\r\n .replace('{1}', i18n.currency));\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\n\r\nimport { formatDecimal } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nimport ViewModel from './bid-editor-model';\r\nimport template from './bid-editor.pug';\r\n\r\nexport class BidEditorView extends Backbone.View {\r\n initialize({\r\n i18n,\r\n suggestedBidField,\r\n item,\r\n key,\r\n view,\r\n appConfig,\r\n jsdata,\r\n edmCampaign,\r\n isMCC,\r\n newI18n,\r\n recommendationType,\r\n }) {\r\n this.i18n = i18n;\r\n this.item = item;\r\n this.key = key;\r\n this.view = view;\r\n this.appConfig = appConfig;\r\n this.jsdata = jsdata;\r\n this.edmCampaign = edmCampaign;\r\n this.isMCC = isMCC;\r\n this.newI18n = newI18n;\r\n this.recommendationType = recommendationType;\r\n this.isKeywordBid = true;\r\n this.adGroupBidVal = '';\r\n // Get MT suggested bid as the default value and localize this bid.\r\n const suggestedBid = _.chain(item.Opportunities).first().result('NewBid').value()\r\n || _.chain(item.Opportunities).first().result(suggestedBidField).value();\r\n const formatSuggestedBid = formatDecimal(suggestedBid, i18n);\r\n this.viewModel = new ViewModel({\r\n i18n,\r\n formatSuggestedBid,\r\n appConfig,\r\n newI18n,\r\n recommendationType,\r\n suggestedBid,\r\n });\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .save': 'save',\r\n 'click .cancel': 'cancel',\r\n 'click .use_adgroup_bid': 'useAdGroupBid',\r\n 'click .use_keyword_bid': 'useKeywordBid',\r\n };\r\n }\r\n\r\n save() {\r\n const {\r\n isKeywordBid, adGroupBidVal, item, key, view, i18n,\r\n } = this;\r\n\r\n if (!this.isBidValid()) { return; }\r\n\r\n const bidValue = isKeywordBid ?\r\n i18n.parseDecimal(this.viewModel.userInputDisplayVal()) :\r\n Number(adGroupBidVal);\r\n\r\n if (_.isNaN(bidValue)) {\r\n return;\r\n }\r\n\r\n // Update bid value in grid.\r\n _.first(item.Opportunities).NewBid = bidValue;\r\n\r\n const selectedKeys = view.grid.gridView.selectedKeys();\r\n // Append the current selected one into existing selected ones.\r\n if (!_.contains(selectedKeys, key)) {\r\n selectedKeys.push(key);\r\n }\r\n view.grid.gridView.set({ selection: _.defaults({ selected: selectedKeys }) });\r\n\r\n this.trigger('close');\r\n }\r\n\r\n cancel() {\r\n this.trigger('close');\r\n }\r\n\r\n isBidValid() {\r\n const {\r\n isKeywordBid, adGroupBidVal, appConfig, i18n,\r\n } = this;\r\n\r\n if (isKeywordBid) {\r\n const keywordBidValue = i18n.parseDecimal(this.viewModel.userInputDisplayVal());\r\n if (_.isNaN(keywordBidValue)) { return false; }\r\n\r\n if (keywordBidValue < appConfig.get('KeywordBidRange').FloorValue ||\r\n keywordBidValue > appConfig.get('KeywordBidRange').CeilingValue) {\r\n return false;\r\n }\r\n }\r\n\r\n if (!isKeywordBid && !_.isNumber(adGroupBidVal)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n updateKeywordAdGroupBid() {\r\n const {\r\n isKeywordBid, jsdata, item, i18n, edmCampaign, isMCC,\r\n } = this;\r\n const keywordLink = this.$el.find('.use_keyword_bid');\r\n const adgroupLink = this.$el.find('.use_adgroup_bid');\r\n const inputBox = this.$el.find('.bid-textbox');\r\n const adgroupSpan = this.$el.find('.adgroup_bid_value_span');\r\n const errorMessage = this.$el.find('.error-message');\r\n const warningMessage = this.$el.find('.warning-message-container');\r\n const adGroupId = _.first(item.Opportunities).NewAdGroupId || item.Target.AdGroupId;\r\n const accountId = item.Target.AccountId;\r\n const options = isMCC ?\r\n {\r\n entitySet:\r\n edmCampaign\r\n .currentCustomer\r\n .Accounts\r\n .$withKey(Number(accountId))\r\n .AdGroups,\r\n } : {};\r\n\r\n if (isKeywordBid) {\r\n keywordLink.addClass('keywordSelectedSelection');\r\n adgroupLink.removeClass('keywordSelectedSelection');\r\n inputBox.show();\r\n adgroupSpan.hide();\r\n errorMessage.show();\r\n warningMessage.show();\r\n } else {\r\n jsdata.AdGroup.findAll({\r\n limit: 1,\r\n select: ['Id', 'SearchBid'],\r\n where: { Id: { $eq: adGroupId } },\r\n }, options).then((response) => {\r\n if (response.length && response.length > 0) {\r\n this.adGroupBidVal = response[0].SearchBid;\r\n }\r\n keywordLink.removeClass('keywordSelectedSelection');\r\n adgroupLink.addClass('keywordSelectedSelection');\r\n inputBox.hide();\r\n const adGroupBid = formatDecimal(this.adGroupBidVal, i18n);\r\n adgroupSpan.html(`${adGroupBid}`);\r\n adgroupSpan.show();\r\n errorMessage.hide();\r\n warningMessage.hide();\r\n });\r\n }\r\n }\r\n\r\n useAdGroupBid() {\r\n this.isKeywordBid = false;\r\n this.updateKeywordAdGroupBid();\r\n }\r\n\r\n useKeywordBid() {\r\n this.isKeywordBid = true;\r\n this.updateKeywordAdGroupBid();\r\n }\r\n\r\n render() {\r\n const { i18n, adGroupBidVal } = this;\r\n this.$el.html(template({\r\n i18n,\r\n adGroupBidVal,\r\n }));\r\n ko.applyBindings(this.viewModel, this.el);\r\n const adgroupSpan = this.$el.find('.adgroup_bid_value_span');\r\n adgroupSpan.hide();\r\n return this;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\n\r\nexport default class ViewModel {\r\n constructor({\r\n i18n,\r\n defaultAdgroupId,\r\n defaultAdgroup,\r\n selectedAdgroupId,\r\n }) {\r\n this.i18n = i18n;\r\n this.totalCount = 0;\r\n this.defaultAdgroupId = defaultAdgroupId;\r\n this.defaultAdgroup = defaultAdgroup;\r\n this.suggestedAdgroupId = ko.observable(defaultAdgroupId || 0);\r\n this.selectedAdgroupId = ko.observable(selectedAdgroupId);\r\n this.adgroups = ko.observableArray([]);\r\n this.selectorControl = ko.observable();\r\n this.selectedAdgroup = ko.observable();\r\n }\r\n\r\n returnAdgroupIdInfoMapping(adgroupIdInfoMapping) {\r\n const { defaultAdgroupId, defaultAdgroup, i18n } = this;\r\n const defaultAdgroupProcessed = {\r\n id: `${defaultAdgroup.Id}`,\r\n name: `${i18n.getString(_TL_('(Recommended)'))} ${defaultAdgroup.name}`,\r\n status: defaultAdgroup.status,\r\n };\r\n if (!_.isEmpty(adgroupIdInfoMapping)) {\r\n if (!adgroupIdInfoMapping[defaultAdgroupId]) {\r\n // eslint-disable-next-line no-param-reassign\r\n adgroupIdInfoMapping[defaultAdgroupId] = defaultAdgroup;\r\n }\r\n this.adgroups = JSON.parse(JSON.stringify(adgroupIdInfoMapping));\r\n // eslint-disable-next-line no-param-reassign\r\n delete adgroupIdInfoMapping[defaultAdgroupId];\r\n const adgroupProcessed = _.chain(adgroupIdInfoMapping)\r\n .values()\r\n .sortBy('name')\r\n .map(adgroup => ({\r\n id: `${adgroup.Id}`,\r\n name: adgroup.name,\r\n status: adgroup.status,\r\n }))\r\n .value();\r\n adgroupProcessed.unshift(defaultAdgroupProcessed);\r\n return adgroupProcessed;\r\n }\r\n return [];\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\n\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { CampaignSelectorView } from '@bingads-webui-campaign-react/campaign-selector';\r\nimport { getAdgroupData } from '@bingads-webui-campaign-legacy/adgroup-create-advanced/view/adgroup-selector-repository';\r\nimport {\r\n isFilterSearchStandardAdgroupRecommendationType,\r\n ADGROUP_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport ViewModel from './ad-group-editor-model';\r\nimport template from './ad-group-editor.pug';\r\n\r\nexport class AdGroupEditorView extends Backbone.View {\r\n initialize({\r\n i18n,\r\n item,\r\n recommendationType,\r\n key,\r\n view,\r\n dataManager,\r\n isMCC = false,\r\n newPosition,\r\n }) {\r\n this.i18n = i18n;\r\n this.item = item;\r\n this.recommendationType = recommendationType;\r\n this.key = key;\r\n this.view = view;\r\n this.dataManager = dataManager;\r\n this.newPosition = newPosition;\r\n const defaultAdgroupId = item.Target.AdGroupId;\r\n const selectedAdgroupId = _.first(item.Opportunities).NewAdGroupId || defaultAdgroupId;\r\n this.defaultAdgroupId = defaultAdgroupId;\r\n this.defaultAdgroup = {\r\n Id: defaultAdgroupId,\r\n ID: defaultAdgroupId,\r\n name: item.Target.AdGroupName,\r\n status: 'Deleted',\r\n };\r\n this.selectedAdgroup = {\r\n Id: selectedAdgroupId,\r\n ID: selectedAdgroupId,\r\n name: _.first(item.Opportunities).Target.AdGroupName,\r\n };\r\n this.viewModel = new ViewModel({\r\n i18n,\r\n defaultAdgroupId,\r\n defaultAdgroup: this.defaultAdgroup,\r\n selectedAdgroupId,\r\n });\r\n this.isMCC = isMCC;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .save': 'save',\r\n 'click .cancel': 'cancel',\r\n };\r\n }\r\n\r\n save() {\r\n const {\r\n key, view, item,\r\n } = this;\r\n\r\n const selectedAdgroup = this.viewModel.selectedAdgroup();\r\n\r\n // If no ad group is selected, it means the suggested ad group doesn't exist.\r\n if (_.isUndefined(selectedAdgroup)) { return; }\r\n\r\n // Update NewAdGroupId\r\n const selectedAdgroupId = Number(selectedAdgroup.id);\r\n _.first(item.Opportunities).AdGroupId = selectedAdgroupId;\r\n _.first(item.Opportunities).NewAdGroupId = selectedAdgroupId;\r\n\r\n // Update selected ad group name in grid.\r\n const selectedAdgroupName = this.viewModel.adgroups[selectedAdgroupId].name;\r\n _.first(item.Opportunities).Target.AdGroupName = selectedAdgroupName;\r\n\r\n const selectedKeys = view.grid.gridView.selectedKeys();\r\n // Append the current selected one into existing selected ones.\r\n if (!_.contains(selectedKeys, key)) {\r\n selectedKeys.push(key);\r\n }\r\n view.grid.gridView.set({ selection: _.defaults({ selected: selectedKeys }) });\r\n\r\n this.trigger('close');\r\n }\r\n\r\n cancel() {\r\n this.trigger('close');\r\n }\r\n\r\n fecthAdgroupData = ({\r\n query = '', pageNumber = 0, pageSize = 10, scopeParentItem = null,\r\n }, adgroupSelectorView) => {\r\n // eslint-disable-next-line no-param-reassign\r\n scopeParentItem = {\r\n Id: this.item.Target.CampaignId,\r\n AccountId: this.item.Target.AccountId,\r\n };\r\n let customFilter = 'DeliveryStatus ne \\'AdGroupExpired\\'';\r\n if (isFilterSearchStandardAdgroupRecommendationType(this.recommendationType)) {\r\n customFilter = customFilter.concat(` and AdGroupType eq '${ADGROUP_TYPES.SearchStandard}'`);\r\n }\r\n const uiBlockContainer = adgroupSelectorView && adgroupSelectorView.$('.dropdown-menu');\r\n return getAdgroupData('', 0, 10, scopeParentItem, `Id eq ${this.defaultAdgroupId}`)\r\n .then((defaultAdGroup) => {\r\n if (!_.isEmpty(defaultAdGroup.items)) {\r\n this.viewModel.defaultAdgroup.status = _.first(defaultAdGroup.items).status;\r\n }\r\n return getAdgroupData(query, pageNumber, pageSize, scopeParentItem, customFilter);\r\n })\r\n .then((adGroups) => {\r\n this.viewModel.totalCount = adGroups.totalCount;\r\n return _.map(\r\n adGroups.items,\r\n adGroup => _.extend(adGroup, { ID: adGroup.Id })\r\n );\r\n })\r\n .then(adGroups => _.object(_.map(adGroups, adGroup => adGroup.Id), adGroups))\r\n .then((adGroups) => {\r\n const adGroupsProcessed = this.viewModel.returnAdgroupIdInfoMapping(adGroups);\r\n return {\r\n items: adGroupsProcessed,\r\n totalCount: this.viewModel.totalCount,\r\n };\r\n })\r\n .finally(withUiBlock(uiBlockContainer));\r\n };\r\n\r\n onAdGroupSelect(selectedItem) {\r\n if (_.has(selectedItem, 'id')) {\r\n this.viewModel.selectedAdgroup(selectedItem);\r\n }\r\n }\r\n\r\n setPosition(selectorView) {\r\n const tableHeight = $('.recommendations-grid-view').outerHeight();\r\n const gridTopDistance = this.newPosition.top;\r\n const selectorDropdownSpace = (tableHeight - gridTopDistance);\r\n let top = 60;\r\n if (selectorDropdownSpace < 340) {\r\n top -= 340;\r\n }\r\n const position = {\r\n top,\r\n left: 10,\r\n };\r\n\r\n selectorView.$('.dropdown-menu').css(position);\r\n }\r\n\r\n render() {\r\n const {\r\n i18n,\r\n } = this;\r\n\r\n let selectorView = null;\r\n selectorView = new CampaignSelectorView({\r\n selectedItem: this.selectedAdgroup,\r\n fetch: args => this.fecthAdgroupData(args, selectorView),\r\n i18n,\r\n stringKeys: {\r\n emptyListContent: 'No results to display.',\r\n listHeader: 'Ad groups: {{itemCount}}',\r\n selectEntity: 'Select an ad group',\r\n },\r\n isToggled: true,\r\n }).render();\r\n\r\n selectorView.on('selected-campaign', (selectedItem) => {\r\n this.onAdGroupSelect(selectedItem);\r\n });\r\n\r\n this.$el.html(template({\r\n i18n,\r\n }));\r\n ko.applyBindings(this.viewModel, this.el);\r\n this.$('.new-campaign-adgroup-selector').append(selectorView.el);\r\n\r\n // dynamic render the overflow popup-selector\r\n this.setPosition(selectorView);\r\n\r\n return this;\r\n }\r\n}\r\n","import $ from 'jquery';\r\n\r\nimport _ from 'underscore';\r\nimport {\r\n CONTEXTUAL_ENTITY_TYPE,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport { AdGroupEditorView } from '@bingads-webui-campaign/recommendation-popupeditor';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\n\r\nimport template from './campaign-ad-group-column.pug';\r\nimport {\r\n isPopupEditorEnabledRecommendationType,\r\n} from '../const';\r\n\r\nexport class CampaignAdGroupColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n i18n, recommendationType, view, deps: {\r\n appConfig, jsdata, dataManager,\r\n }, isMCC,\r\n }) {\r\n super({\r\n name: 'CampaignAdGroup',\r\n property: 'Target/CampaignAdGroupName',\r\n title: i18n.getString('Recommendation_ColumnName_CampaignAdGroup'),\r\n bodyClasses: ['grid-column-campaignAdGroupName', 'actionable'],\r\n colClasses: ['col-longText'],\r\n sortable: 'Target/CampaignName',\r\n type: 'string',\r\n editable: isPopupEditorEnabledRecommendationType(recommendationType),\r\n });\r\n\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n this.view = view;\r\n this.appConfig = appConfig;\r\n this.jsdata = jsdata;\r\n this.dataManager = dataManager;\r\n this.isMCC = isMCC;\r\n this.edmCampaign = edm;\r\n }\r\n\r\n template({\r\n value: {\r\n Target: {\r\n CampaignName,\r\n CampaignId,\r\n },\r\n Opportunities,\r\n },\r\n }) {\r\n return template({\r\n AdGroupName: Opportunities[0].Target.AdGroupName,\r\n CampaignName,\r\n entityId: CampaignId,\r\n entityCampaignId: CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'Target/CampaignAdGroupName',\r\n };\r\n }\r\n\r\n onPrompt({\r\n event,\r\n item,\r\n newPosition,\r\n }) {\r\n if ($(event.target).is('a')) {\r\n return undefined;\r\n }\r\n\r\n const key = $(event.target).parents('tr[data-key]').data('key');\r\n\r\n const {\r\n i18n, recommendationType, view, dataManager, isMCC,\r\n } = this;\r\n\r\n const adGroupEditorView = new AdGroupEditorView({\r\n i18n,\r\n item,\r\n recommendationType,\r\n key,\r\n view,\r\n dataManager,\r\n isMCC,\r\n newPosition,\r\n });\r\n\r\n const editorView = new GridCustomizedPopupEditor({\r\n editorView: adGroupEditorView.render(),\r\n cellPosition: newPosition,\r\n renderBelow: false,\r\n className: 'grid-popupeditor',\r\n parentContainerSelector: '.grid-and-disclaim-container',\r\n });\r\n\r\n return editorView.render();\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CONTEXTUAL_ENTITY_TYPE } from '@bingads-webui-campaign/recommendation-core';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\n\r\nimport template from './ad-group-column.pug';\r\n\r\nexport class AdGroupColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n i18n, view, deps: { appConfig, jsdata, dataManager },\r\n }) {\r\n super({\r\n name: 'AdGroup',\r\n property: 'Target/AdGroupName',\r\n title: i18n.getString('Entity_Adgroup'),\r\n bodyClasses: ['grid-column-adGroupName', 'actionable'],\r\n colClasses: ['col-longText'],\r\n sortable: 'Target/AdGroupName',\r\n type: 'string',\r\n });\r\n\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.appConfig = appConfig;\r\n this.jsdata = jsdata;\r\n this.dataManager = dataManager;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n Target: { AdGroupName, AdGroupId, CampaignId },\r\n },\r\n }) {\r\n if (_.isEmpty(AdGroupName)) {\r\n return '--';\r\n }\r\n return template({\r\n adGroupAttributes: withContextualAttributeTemplate({\r\n opportunityId: Opportunities[0].OpportunityId,\r\n entityName: AdGroupName,\r\n entityId: AdGroupId,\r\n entityCampaignId: CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.ADGROUP,\r\n status: 'false',\r\n ariaLabel: this.i18n.getString('Click to scope to ad group {{adGroupName}}', { adGroupName: AdGroupName }),\r\n }),\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'Target/AdGroupName',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatDecimal, getIncreaseSymbol, isPositive, NOT_AVAILABLE_DEFAULT_STR } from '@bingads-webui-campaign/recommendation-core';\r\nimport { isKeywordRecsChange } from '../const';\r\nimport template from './delta.pug';\r\n\r\nexport class ClicksDeltaColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, recommendationType, isOptimizationScoreOn }) {\r\n const title = i18n.getString('Details_View_Est_Clicks');\r\n\r\n super({\r\n name: 'ClickDelta',\r\n property: 'EstimatedIncreaseInClicks',\r\n title,\r\n bodyClasses: ['grid-column-clicksIncrease'],\r\n colClasses: ['col-numberEst'],\r\n sortable: true,\r\n helpId: 'pop_BA_Recommendations_EstChangeClicks',\r\n type: 'number',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n this.isOptimizationScoreOn = isOptimizationScoreOn;\r\n }\r\n\r\n template({\r\n value: {\r\n EstimatedIncreaseInClicks, CurrentClicks,\r\n Opportunities,\r\n },\r\n }) {\r\n const { i18n, recommendationType, isOptimizationScoreOn } = this;\r\n\r\n if (isKeywordRecsChange(_.first(Opportunities), recommendationType, i18n)) {\r\n return template({\r\n notDefault: true,\r\n NOT_AVAILABLE_DEFAULT_STR,\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n\r\n return template({\r\n deltaVal: formatDecimal(EstimatedIncreaseInClicks, i18n),\r\n fromVal: formatDecimal(CurrentClicks, i18n),\r\n toVal: formatDecimal(EstimatedIncreaseInClicks + CurrentClicks, i18n),\r\n i18n,\r\n increaseSymbol: getIncreaseSymbol(EstimatedIncreaseInClicks),\r\n isNegative: !isPositive(EstimatedIncreaseInClicks),\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'EstimatedIncreaseInClicks',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatCost, getIncreaseSymbol, isPositive, ESTIMATE_TYPES, NOT_AVAILABLE_DEFAULT_STR, RECOMMENDATION_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\nimport { isKeywordRecsChange } from '../const';\r\nimport template from './delta.pug';\r\n\r\nexport class CostDeltaColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n i18n, recommendationType, isOptimizationScoreOn,\r\n }) {\r\n const title = i18n.getString('Details_View_Est_Cost');\r\n\r\n super({\r\n name: 'CostDelta',\r\n property: 'EstimatedIncreaseInCost',\r\n title,\r\n bodyClasses: ['grid-column-costIncrease'],\r\n colClasses: ['col-numberEst'],\r\n sortable: true,\r\n helpId: recommendationType === RECOMMENDATION_TYPES.DSA_2_PMAX_MIGRATION ?\r\n 'pop_BA_Recommendations_DSA_EstWeeklySpend' : 'pop_BA_Recommendations_EstChangeSpend',\r\n type: 'number',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n this.isOptimizationScoreOn = isOptimizationScoreOn;\r\n }\r\n\r\n template({\r\n value: {\r\n EstimatedIncreaseInCost, CurrentCost, HistoricalCost, Opportunities,\r\n },\r\n }) {\r\n const {\r\n i18n, recommendationType, isOptimizationScoreOn,\r\n } = this;\r\n\r\n if (isKeywordRecsChange(_.first(Opportunities), recommendationType, i18n)) {\r\n return template({\r\n notDefault: true,\r\n NOT_AVAILABLE_DEFAULT_STR,\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n\r\n if (!_.isNumber(CurrentCost)\r\n || !_.isNumber(EstimatedIncreaseInCost)) {\r\n return template({\r\n i18n,\r\n isNegative: true,\r\n notAvailable: true,\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n\r\n let baseCost;\r\n if (_.isNumber(HistoricalCost)) {\r\n baseCost = HistoricalCost;\r\n } else {\r\n baseCost = CurrentCost;\r\n }\r\n\r\n return template({\r\n deltaVal: formatCost(EstimatedIncreaseInCost, i18n, i18n.currency),\r\n fromVal: formatCost(baseCost, i18n, i18n.currency),\r\n toVal: formatCost(baseCost + EstimatedIncreaseInCost, i18n, i18n.currency),\r\n i18n,\r\n increaseSymbol: getIncreaseSymbol(EstimatedIncreaseInCost),\r\n isNegative: !isPositive(EstimatedIncreaseInCost, ESTIMATE_TYPES.COST),\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'EstimatedIncreaseInCost',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatDecimal,\r\n getIncreaseSymbol,\r\n isPositive,\r\n NOT_AVAILABLE_DEFAULT_STR, } from '@bingads-webui-campaign/recommendation-core';\r\nimport { isKeywordRecsChange } from '../const';\r\nimport template from './delta.pug';\r\n\r\nexport class ImpressionsDeltaColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n i18n, isOptimizationScoreOn, recommendationType,\r\n }) {\r\n const title = i18n.getString('Details_View_Est_Impr');\r\n super({\r\n name: 'ImpressionDelta',\r\n property: 'EstimatedIncreaseInImpressions',\r\n title,\r\n bodyClasses: ['grid-column-impressionsIncrease'],\r\n colClasses: ['col-numberEst'],\r\n sortable: true,\r\n helpId: 'Pop_BA_Recommendations_EstChangeImpr',\r\n type: 'number',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n this.isOptimizationScoreOn = isOptimizationScoreOn;\r\n }\r\n\r\n template({\r\n value: {\r\n EstimatedIncreaseInImpressions, CurrentImpressions,\r\n Opportunities,\r\n },\r\n }) {\r\n const { i18n, recommendationType, isOptimizationScoreOn } = this;\r\n\r\n if (isKeywordRecsChange(_.first(Opportunities), recommendationType, i18n)) {\r\n return template({\r\n notDefault: true,\r\n NOT_AVAILABLE_DEFAULT_STR,\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n\r\n return template({\r\n deltaVal: formatDecimal(EstimatedIncreaseInImpressions, i18n),\r\n fromVal: formatDecimal(CurrentImpressions, i18n),\r\n toVal: formatDecimal(CurrentImpressions + EstimatedIncreaseInImpressions, i18n),\r\n i18n,\r\n increaseSymbol: getIncreaseSymbol(EstimatedIncreaseInImpressions),\r\n isNegative: !isPositive(EstimatedIncreaseInImpressions),\r\n isOptimizationScoreOn,\r\n notAvailable: EstimatedIncreaseInImpressions === 0,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'EstimatedIncreaseInImpressions',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport {\r\n RECOMMENDATION_TYPES,\r\n CONTEXTUAL_ENTITY_TYPE,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\n\r\nimport template from './keyword-column.pug';\r\n\r\nexport class KeywordColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'keyword',\r\n property: 'KeywordColumn',\r\n title: i18n.getString('Details_View_Keyword'),\r\n bodyClasses: ['grid-column-keyword', 'actionable'],\r\n colClasses: ['col-longText'],\r\n type: 'string',\r\n });\r\n\r\n this.i18n = i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n Target: { Keyword, KeywordId },\r\n },\r\n }) {\r\n const recommendationType = Opportunities[0].OpportunityType;\r\n const noContextualAttribute = ((\r\n recommendationType === RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD)\r\n && Opportunities[0].AlgoID === 0);\r\n\r\n // For bid related recommendations, it needs to format keyword.\r\n const keywordStr = Keyword;\r\n\r\n return template({\r\n keyword: noContextualAttribute ? Keyword : withContextualAttributeTemplate({\r\n opportunityId: Opportunities[0].OpportunityId,\r\n entityName: keywordStr,\r\n entityId: KeywordId === null ? Opportunities[0].ReferenceKeywordId : KeywordId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.KEYWORD,\r\n status: 'false',\r\n }),\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'KeywordColumn',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport {\r\n formatMatchType,\r\n formatMatchTypeStr,\r\n RECOMMENDATION_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class MatchTypeColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, recommendationType }) {\r\n const title = i18n.getString('Details_View_Match_Type') || '__Match type__';\r\n\r\n super({\r\n name: 'matchType',\r\n property: 'Opportunities/MatchType',\r\n title,\r\n bodyClasses: ['grid-column-matchType'],\r\n colClasses: ['col-matchType'],\r\n helpId: 'Pop_BA_Recommendations_MatchType',\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n template({ value }) {\r\n const { recommendationType } = this;\r\n return recommendationType === RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD ?\r\n formatMatchTypeStr(value, this.i18n) : formatMatchType(value, this.i18n);\r\n }\r\n\r\n get property() {\r\n return {\r\n get(item) {\r\n const matchType = 'SuggestedMatchType';\r\n return _.chain(item.Opportunities).first().result(matchType).value();\r\n },\r\n key: 'Opportunities/MatchType',\r\n };\r\n }\r\n\r\n get title() {\r\n const { i18n, recommendationType } = this;\r\n if (recommendationType === RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD) {\r\n return i18n.getString('Details_View_Match_Type_Suggested') || '__Suggested match type__';\r\n }\r\n return i18n.getString('Details_View_Match_Type') || '__Match type__';\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\nimport { CONTEXTUAL_ENTITY_TYPE } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class GoogleImportToDoColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, isMCC }) {\r\n const title = i18n.getString('ColumnName_WhatYouCanDo') || '__what you can do__';\r\n super({\r\n name: 'googleImportToDo',\r\n property: 'GoogleImportToDo',\r\n title,\r\n bodyClasses: ['grid-column-whatyoucando'],\r\n colClasses: ['col-superLongText'],\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.isMCC = isMCC;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n Target: {\r\n AccountName,\r\n AccountId,\r\n },\r\n },\r\n }) {\r\n const { i18n, isMCC } = this;\r\n const accountName = withContextualAttributeTemplate({\r\n opportunityId: Opportunities[0].OpportunityId,\r\n entityName: AccountName,\r\n entityId: AccountId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.ACCOUNT,\r\n status: 'false',\r\n });\r\n return isMCC ?\r\n i18n.getString('Recommendation_Grid_GoogleImportOpportunity_Todo_Title_MCC', { accountName }) :\r\n i18n.getString('Recommendation_Grid_GoogleImportOpportunity_Todo_Title');\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'Target/AccountNameMCC',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatCost, CONTEXTUAL_ENTITY_TYPE } from '@bingads-webui-campaign/recommendation-core';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\n\r\nimport template from './budget-delta.pug';\r\n\r\nexport class BudgetDeltaColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, isMCC }) {\r\n super({\r\n name: 'BudgetDelta',\r\n property: 'Opportunities/SuggestedBudget',\r\n // [TODO] delete it\r\n title: i18n.getString('ColumnName_WhatYouCanDo') || '__what you can do__',\r\n bodyClasses: ['grid-column-BudgetDelta'],\r\n colClasses: ['col-superLongText'],\r\n sortable: false,\r\n });\r\n this.i18n = i18n;\r\n this.isMCC = isMCC;\r\n }\r\n\r\n template({\r\n value: {\r\n EstimatedIncreaseInBudget,\r\n OpportunityId,\r\n CurrentBudget,\r\n Target: {\r\n CampaignName,\r\n CampaignId,\r\n AccountName,\r\n AccountId,\r\n },\r\n },\r\n }) {\r\n const { i18n } = this;\r\n return template({\r\n entityName: withContextualAttributeTemplate({\r\n opportunityId: OpportunityId,\r\n entityName: CampaignName,\r\n entityId: CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n status: 'false',\r\n ariaLabel: i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: CampaignName }),\r\n }),\r\n accountName: withContextualAttributeTemplate({\r\n opportunityId: OpportunityId,\r\n entityName: AccountName,\r\n entityId: AccountId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.ACCOUNT,\r\n status: 'false',\r\n }),\r\n fromVal: formatCost(CurrentBudget, i18n, i18n.currency),\r\n toVal: formatCost(CurrentBudget + EstimatedIncreaseInBudget, i18n, i18n.currency),\r\n i18n,\r\n isMCC: this.isMCC,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatCost, CONTEXTUAL_ENTITY_TYPE } from '@bingads-webui-campaign/recommendation-core';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\n\r\nimport template from './shared-budget-delta.pug';\r\n\r\nexport class SharedBudgetDeltaColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, isMCC }) {\r\n super({\r\n name: 'SharedBudgetDelta',\r\n property: 'Opportunities/SuggestedBudget',\r\n // [TODO] delete it\r\n title: i18n.getString('ColumnName_WhatYouCanDo') || '__what you can do__',\r\n bodyClasses: ['grid-column-BudgetDelta'],\r\n colClasses: ['col-superLongText'],\r\n sortable: false,\r\n });\r\n this.i18n = i18n;\r\n this.isMCC = isMCC;\r\n }\r\n\r\n template({\r\n value: {\r\n EstimatedIncreaseInBudget,\r\n OpportunityId,\r\n CurrentBudget,\r\n Target: { AccountName, AccountId },\r\n Shared: { BudgetName, BudgetId },\r\n },\r\n }) {\r\n const { i18n } = this;\r\n return template({\r\n entityName: withContextualAttributeTemplate({\r\n opportunityId: OpportunityId,\r\n entityName: BudgetName,\r\n entityId: BudgetId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.SHARED_BUDGET,\r\n status: 'false',\r\n }),\r\n accountName: withContextualAttributeTemplate({\r\n opportunityId: OpportunityId,\r\n entityName: AccountName,\r\n entityId: AccountId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.ACCOUNT,\r\n status: 'false',\r\n }),\r\n fromVal: formatCost(CurrentBudget, i18n, i18n.currency),\r\n toVal: formatCost(CurrentBudget + EstimatedIncreaseInBudget, i18n, i18n.currency),\r\n i18n,\r\n isMCC: this.isMCC,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport {\r\n formatDecimal,\r\n getIncreaseSymbol,\r\n CONVERSION_STATUS_TYPE,\r\n isPositive,\r\n BUDGET_OPPORTUNITY_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nimport template from './delta.pug';\r\n\r\nexport class ConversionDeltaColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, isOptimizationScoreOn }) {\r\n const title = i18n.getString('Details_View_Est_Conv_Abbr');\r\n\r\n super({\r\n name: 'ConversionDelta',\r\n property: 'EstimatedIncreaseInConversionsInt',\r\n title,\r\n bodyClasses: ['grid-column-ConversionsIncrease'],\r\n colClasses: ['col-numberEst'],\r\n sortable: true,\r\n helpId: 'Pop_BA_Recommendations_EstChangeConversions',\r\n type: 'number',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.i18n = i18n;\r\n this.isOptimizationScoreOn = isOptimizationScoreOn;\r\n }\r\n\r\n template({\r\n value: {\r\n OpportunityType,\r\n ConversionSummaryStatus,\r\n CurrentConversionsInt,\r\n EstimatedIncreaseInConversionsInt,\r\n HistoricalConversions,\r\n },\r\n }) {\r\n const { i18n, isOptimizationScoreOn } = this;\r\n // When the type is BUDGET_OPPORTUNITY_TYPES\r\n if (_.contains(BUDGET_OPPORTUNITY_TYPES, OpportunityType) &&\r\n ConversionSummaryStatus !== CONVERSION_STATUS_TYPE.HAS_DATA) {\r\n return template({\r\n i18n,\r\n isNegative: false,\r\n notAvailable: true,\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n\r\n if (!_.isNumber(CurrentConversionsInt) || !_.isNumber(EstimatedIncreaseInConversionsInt)) {\r\n return template({\r\n i18n,\r\n isNegative: false,\r\n notAvailable: true,\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n\r\n let baseConversion;\r\n if (_.isNumber(HistoricalConversions)) {\r\n baseConversion = HistoricalConversions;\r\n } else {\r\n baseConversion = CurrentConversionsInt;\r\n }\r\n\r\n return template({\r\n deltaVal: formatDecimal(EstimatedIncreaseInConversionsInt, i18n),\r\n fromVal: formatDecimal(baseConversion, i18n),\r\n toVal: formatDecimal(baseConversion + EstimatedIncreaseInConversionsInt, i18n),\r\n i18n,\r\n increaseSymbol: getIncreaseSymbol(EstimatedIncreaseInConversionsInt),\r\n isNegative: !isPositive(EstimatedIncreaseInConversionsInt),\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'EstimatedIncreaseInConversionsInt',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport {\r\n formatBid,\r\n RECOMMENDATION_TYPES,\r\n CONTEXTUAL_ENTITY_TYPE,\r\n MOVE_BUDGET_CAMPAIGN_BUDGET_STATUS\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\n\r\nimport template from './bid-adjustment-todo.pug';\r\n\r\nconst defaultItemCountInGrid = {\r\n [RECOMMENDATION_TYPES.REALLOCATE_BUDGET]: 1,\r\n};\r\n\r\nexport class BidAdjustmentTodoColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, isMCC }) {\r\n super({\r\n name: 'BidAdjustmentTodo',\r\n property: 'BidAdjustmentTodo',\r\n // [TODO] delete it\r\n title: i18n.getString('ColumnName_WhatYouCanDo') || '__what you can do__',\r\n bodyClasses: ['grid-column-BidAdjustmentTodo', 'actionable'],\r\n colClasses: ['col-superLongText'],\r\n sortable: false,\r\n type: 'string',\r\n });\r\n this.i18n = i18n;\r\n this.isMCC = isMCC;\r\n }\r\n\r\n template({\r\n value: {\r\n OpportunityType,\r\n Opportunities,\r\n Target: {\r\n CampaignName,\r\n CampaignId,\r\n AccountName,\r\n AccountId,\r\n },\r\n },\r\n }) {\r\n const { i18n } = this;\r\n const fromCampaign = _.find(\r\n Opportunities[0].SuggestedCampaignBudgets,\r\n campaign => campaign.BudgetStatus === MOVE_BUDGET_CAMPAIGN_BUDGET_STATUS.Surplus\r\n );\r\n const toCampaign = _.find(\r\n Opportunities[0].SuggestedCampaignBudgets,\r\n campaign => campaign.BudgetStatus === MOVE_BUDGET_CAMPAIGN_BUDGET_STATUS.Deficit\r\n );\r\n const title = i18n.getString(`Recommendation_Grid_${OpportunityType}_Todo_Title`, {\r\n name: withContextualAttributeTemplate({\r\n opportunityId: Opportunities[0].OpportunityId,\r\n entityName: CampaignName,\r\n entityId: CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n status: 'false',\r\n ariaLabel: i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: CampaignName }),\r\n }),\r\n count: _.size(Opportunities),\r\n budget: formatBid(_.isUndefined(fromCampaign) ?\r\n 0 : toCampaign.BudgetDeficit, i18n, i18n.currency),\r\n targetCPA: formatBid(Opportunities[0].BidStrategyTargetCpa || 0, i18n, i18n.currency),\r\n });\r\n\r\n const raiseList = [];\r\n const lowerList = [];\r\n let tooltipRaiseHeader;\r\n let tooltipLowerHeader;\r\n let hideDeltaRange;\r\n\r\n const list = _.map(Opportunities, (item) => {\r\n let description;\r\n let range;\r\n let model;\r\n let isAdoptAutoBidding;\r\n\r\n switch (OpportunityType) {\r\n case RECOMMENDATION_TYPES.REALLOCATE_BUDGET:\r\n model = {\r\n fromCampaign: withContextualAttributeTemplate({\r\n opportunityId: item.OpportunityId,\r\n entityName: fromCampaign.CampaignName,\r\n entityId: fromCampaign.CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n status: 'false',\r\n ariaLabel: i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: fromCampaign.CampaignName }),\r\n }),\r\n toCampaign: withContextualAttributeTemplate({\r\n opportunityId: item.OpportunityId,\r\n entityName: toCampaign.CampaignName,\r\n entityId: toCampaign.CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n status: 'false',\r\n ariaLabel: i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: toCampaign.CampaignName }),\r\n }),\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return _.defaults({}, item, {\r\n subtitle: !isAdoptAutoBidding ? i18n.getString(`Recommendation_Grid_${OpportunityType}_Todo_Item`, model) :\r\n withContextualAttributeTemplate({\r\n opportunityId: item.OpportunityId,\r\n entityName: i18n.getString(`Recommendation_Grid_${OpportunityType}_Todo_Item`, model),\r\n entityId: item.OpportunityId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.ADOPTAUTOBIDDING,\r\n status: 'false',\r\n }),\r\n range,\r\n description,\r\n });\r\n });\r\n\r\n let subtitle = i18n.getString(`Recommendation_Grid_${OpportunityType}_Todo_Subtitle`) || '';\r\n subtitle += _.map(_.first(list, defaultItemCountInGrid[OpportunityType]), i => i.subtitle).join(', ');\r\n\r\n let more;\r\n if (_.size(Opportunities) - defaultItemCountInGrid[OpportunityType] > 0) {\r\n subtitle += ', ';\r\n more = `+${i18n.getString('Recommendation_Grid_Todo_More', {\r\n count: _.size(Opportunities) - defaultItemCountInGrid[OpportunityType],\r\n })}`;\r\n }\r\n\r\n return template({\r\n title,\r\n subtitle,\r\n more,\r\n raiseList,\r\n lowerList,\r\n tooltipRaiseHeader,\r\n tooltipLowerHeader,\r\n hideDeltaRange,\r\n accountName: withContextualAttributeTemplate({\r\n opportunityId: Opportunities[0].OpportunityId,\r\n entityName: AccountName,\r\n entityId: AccountId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.ACCOUNT,\r\n status: 'false',\r\n }),\r\n isMCC: this.isMCC,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'BidAdjustmentTodo',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatPercentHundredths, getIncreaseSymbol, isPositive } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nimport template from './delta.pug';\r\n\r\nexport class CtrDeltaColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, isOptimizationScoreOn }) {\r\n const title = i18n.getString('Details_View_Est_CTR') || '__Weekly est. CTR__';\r\n\r\n super({\r\n name: 'CTR',\r\n property: 'EstimatedIncreaseInCtr',\r\n title,\r\n bodyClasses: ['grid-column-ctrIncrease'],\r\n colClasses: ['col-numberEst'],\r\n sortable: true,\r\n helpId: 'pop_BA_Recommendations_EstChangeCTRPer',\r\n type: 'number',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.isOptimizationScoreOn = isOptimizationScoreOn;\r\n }\r\n\r\n template({ value: { EstimatedIncreaseInCtr, CurrentCtr, CtrLift } }) {\r\n const { i18n, isOptimizationScoreOn } = this;\r\n if (!_.isNumber(CtrLift) || !_.isNumber(CurrentCtr) || CtrLift === 0) {\r\n return template({\r\n i18n,\r\n isNegative: false,\r\n notAvailable: true,\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n return template({\r\n deltaVal: formatPercentHundredths(CtrLift, i18n),\r\n fromVal: formatPercentHundredths(CurrentCtr, i18n),\r\n toVal: formatPercentHundredths(CurrentCtr + EstimatedIncreaseInCtr, i18n),\r\n i18n,\r\n increaseSymbol: CurrentCtr > 0 ? getIncreaseSymbol(CtrLift, 'arrow') : getIncreaseSymbol(CtrLift),\r\n isNegative: !isPositive(CtrLift),\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'EstimatedIncreaseInCtr',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatMatchTypeStr } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class CurrentMatchTypeColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'currentMatchType',\r\n property: 'Opportunities/MatchType',\r\n title: i18n.getString('Details_View_Match_Type_Current') || '__Current match type__',\r\n bodyClasses: ['grid-column-matchType'],\r\n colClasses: ['col-currentMatchType'],\r\n type: 'string',\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template({ value }) {\r\n return formatMatchTypeStr(value, this.i18n);\r\n }\r\n\r\n get property() {\r\n return {\r\n get(item) {\r\n return _.chain(item.Opportunities).first().result('CurrentMatchType').value();\r\n },\r\n key: 'Opportunities/MatchType',\r\n };\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport {\r\n formatBid,\r\n RECOMMENDATION_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport { BidEditorView } from '@bingads-webui-campaign/recommendation-popupeditor';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\n\r\nimport { isSuggestedBidSupported } from '../const';\r\nimport template from './suggested-bid-column.pug';\r\n\r\nexport class SuggestedBidColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n i18n,\r\n newI18n,\r\n recommendationType,\r\n view,\r\n deps: { appConfig, jsdata },\r\n isMCC,\r\n }) {\r\n super({\r\n name: 'SuggestedBid',\r\n property: 'SuggestedBid',\r\n title: i18n.getString('Details_View_Suggested_Bid') || '__Suggested bid__',\r\n bodyClasses: ['grid-column-suggestedBid', 'actionable'],\r\n colClasses: ['col-number'],\r\n editable: true,\r\n type: 'number',\r\n enableEdit: item => isSuggestedBidSupported(_.first(item.Opportunities)),\r\n });\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n this.currency = this.i18n.currency;\r\n this.view = view;\r\n this.appConfig = appConfig;\r\n this.jsdata = jsdata;\r\n this.edmCampaign = edm;\r\n this.suggestedBidField = (recommendationType === RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD) ?\r\n 'SuggBid' : 'SuggestedBid';\r\n this.isMCC = isMCC;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'SuggestedBid',\r\n };\r\n }\r\n\r\n template({ value: { Opportunities } }) {\r\n const {\r\n i18n, newI18n, currency, suggestedBidField,\r\n } = this;\r\n let bidValue;\r\n let isAutoBidding;\r\n if (isSuggestedBidSupported(_.first(Opportunities))) {\r\n bidValue = formatBid(_.chain(Opportunities).first().result('NewBid').value() ||\r\n _.chain(Opportunities).first().result(suggestedBidField).value(), i18n, currency);\r\n isAutoBidding = false;\r\n } else {\r\n bidValue = newI18n.getString(_TL_('Auto'));\r\n isAutoBidding = true;\r\n }\r\n return template({\r\n bidValue,\r\n isAutoBidding,\r\n });\r\n }\r\n\r\n onPrompt({\r\n event,\r\n item,\r\n newPosition,\r\n }) {\r\n if ($(event.target).is('a')) {\r\n return undefined;\r\n }\r\n\r\n const key = $(event.target).parents('tr[data-key]').data('key');\r\n\r\n const {\r\n i18n,\r\n suggestedBidField,\r\n view,\r\n appConfig,\r\n jsdata,\r\n edmCampaign,\r\n isMCC,\r\n newI18n,\r\n recommendationType,\r\n } = this;\r\n\r\n const bidEditorView = new BidEditorView({\r\n i18n,\r\n suggestedBidField,\r\n item,\r\n key,\r\n view,\r\n appConfig,\r\n jsdata,\r\n edmCampaign,\r\n isMCC,\r\n newI18n,\r\n recommendationType,\r\n });\r\n\r\n const editorView = new GridCustomizedPopupEditor({\r\n editorView: bidEditorView.render(),\r\n cellPosition: newPosition,\r\n renderBelow: false,\r\n className: 'grid-popupeditor',\r\n parentContainerSelector: '.grid-and-disclaim-container',\r\n });\r\n\r\n return editorView.render();\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatKeyword } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class SuggestedKeywordColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'SuggestedKeyword',\r\n property: 'Opportunities/SuggestedKeyword',\r\n title: i18n.getString('Details_View_Keyword'),\r\n bodyClasses: ['grid-column-keyword'],\r\n colClasses: ['col-longText'],\r\n type: 'string',\r\n });\r\n }\r\n\r\n template({ value: { SuggestedKeyword, MatchType, NewMatchType } }) {\r\n // If match type is changed, use new match type to format keyword.\r\n return formatKeyword(SuggestedKeyword, NewMatchType || MatchType);\r\n }\r\n\r\n get property() {\r\n return {\r\n get(item) {\r\n return _.chain(item.Opportunities).first().value();\r\n },\r\n key: 'Opportunities/SuggestedKeyword',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { RECOMMENDATION_TYPES, NOT_AVAILABLE_DEFAULT_STR } from '@bingads-webui-campaign/recommendation-core';\r\nimport { isKeywordRecsChange } from '../const';\r\nimport template from './top-search-term.pug';\r\n\r\nexport class TopSearchTermColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, recommendationType }) {\r\n super({\r\n name: 'topSearchTerm',\r\n property: 'Opportunities/SearchTerms',\r\n title: i18n.getString('Details_View_Top_Search_Term') || '__Top search term__',\r\n bodyClasses: ['grid-column-topSearchTerm', 'actionable'],\r\n colClasses: ['col-longText'],\r\n type: 'string',\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n template({ value: { Opportunities } }) {\r\n const { recommendationType, i18n } = this;\r\n const searchTermsField = (recommendationType === RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD) ?\r\n 'SearchQueries' : 'SearchTerms';\r\n const searchTerms = _.chain(Opportunities).first().result(searchTermsField).value();\r\n const searchTermList = [];\r\n _.map(searchTerms, (item) => {\r\n const searchTerm = (recommendationType === RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD) ?\r\n item.SearchQuery : item.SearchTerm;\r\n const searchTermKpi = item.SRPV;\r\n searchTermList.push({ searchTerm, searchTermKpi });\r\n });\r\n\r\n let more;\r\n if (_.size(searchTermList) > 2) {\r\n more = `+${i18n.getString('Recommendation_Grid_Todo_More', {\r\n count: _.size(searchTermList) - 2,\r\n })}`;\r\n }\r\n return template({\r\n notDefault: isKeywordRecsChange(_.first(Opportunities), recommendationType, i18n),\r\n NOT_AVAILABLE_DEFAULT_STR,\r\n searchTermList,\r\n more,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'Opportunities/SearchTerms',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport {\r\n formatLocaledSourceType,\r\n RECOMMENDATION_TYPES,\r\n RECOMMENDATION_SOURCE_FOR_SORT_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nconst getLocaledSources = (\r\n recommendedSources,\r\n i18n\r\n) => {\r\n const localedSources = _.map(\r\n recommendedSources,\r\n source => (formatLocaledSourceType(i18n, source))\r\n );\r\n return localedSources.join(', ');\r\n};\r\n\r\nexport class RecommendedBecauseColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, recommendationType }) {\r\n const title = recommendationType === RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD ?\r\n i18n.getString('Details_View_RecommendedFrom_BMA') : i18n.getString('Details_View_GeneratedFrom');\r\n\r\n super({\r\n name: 'RecommendedFrom',\r\n property: 'Opportunities/RecommendedFrom',\r\n title,\r\n bodyClasses: ['grid-column-RecommendedFrom'],\r\n colClasses: ['col-longText'],\r\n sortable: RECOMMENDATION_SOURCE_FOR_SORT_TYPES[recommendationType],\r\n helpId: recommendationType === RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD ?\r\n '' : 'Pop_BA_Recommendations_GeneratedFrom',\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.i18n = i18n;\r\n }\r\n\r\n get property() {\r\n const { i18n } = this;\r\n return {\r\n get(item) {\r\n return getLocaledSources(\r\n _.chain(item.Opportunities).first().result('SourcesForBingAdsWebUi').value(),\r\n i18n\r\n );\r\n },\r\n key: 'Opportunities/RecommendedFrom',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatMatchType, MATCH_TYPE_IDS } from '@bingads-webui-campaign/recommendation-core';\r\nimport template from './match-type-selector-column.pug';\r\n\r\nexport class MatchTypeSelectorColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, recommendationType, view }) {\r\n const title = i18n.getString('Details_View_Match_Type') || '__Match type__';\r\n super({\r\n name: 'matchType',\r\n property: 'Opportunities/MatchType',\r\n title,\r\n bodyClasses: ['grid-column-matchType'],\r\n colClasses: ['col-matchType'],\r\n sortable: 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.KeywordOpportunitySummary/MatchTypeStr',\r\n helpId: 'Pop_BA_Recommendations_MatchType',\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n this.view = view;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n },\r\n }) {\r\n const { i18n } = this;\r\n const defaultMatchType = Opportunities[0].NewMatchType || Opportunities[0].MatchType;\r\n // Get all match types\r\n const matchTypes = [];\r\n _.each(MATCH_TYPE_IDS, (matchTypeId) => {\r\n matchTypes.push({\r\n id: matchTypeId,\r\n name: formatMatchType(matchTypeId, i18n),\r\n });\r\n });\r\n return template({\r\n i18n,\r\n defaultMatchType,\r\n matchTypes,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'Opportunities/MatchType',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport * as PopupEditor from '@bingads-webui/popup-editor';\r\nimport { InlineEditableSave } from './save';\r\n\r\nexport function InlineEditableColumnPrompt({\r\n position, item, view, i18n, key,\r\n}) {\r\n const schema = {\r\n key: 'Id',\r\n name: 'Keyword',\r\n parent: 'AdGroup',\r\n properties: {\r\n MatchType: {\r\n chooseType: 'checkbox',\r\n enum: ['Exact', 'Phrase', 'Broad'],\r\n filterable: true,\r\n isReadOnly: true,\r\n nullable: true,\r\n type: 'string',\r\n 'bulk-upload-header': 'Match Type',\r\n },\r\n },\r\n type: 'object',\r\n };\r\n schema.properties.MatchType.enum = _.without(schema.properties.MatchType.enum, 'Content');\r\n\r\n const valueMessages = {};\r\n _.each(schema.properties.MatchType.enum, (value) => {\r\n valueMessages[value] = i18n.getString(`Details_View_Match_Type_${value}`);\r\n });\r\n\r\n const fields = [{\r\n property: 'MatchType',\r\n valueMessages,\r\n }];\r\n\r\n const matchTypeMap = {\r\n 1: 'Exact',\r\n 2: 'Phrase',\r\n 3: 'Broad',\r\n };\r\n\r\n PopupEditor.prompt({\r\n position,\r\n i18n,\r\n schema,\r\n model: _.defaults({\r\n MatchType: matchTypeMap[item.Opportunities[0].NewMatchType]\r\n || matchTypeMap[item.Opportunities[0].MatchType],\r\n }, item),\r\n fields,\r\n hasLabels: false,\r\n template: 'inline',\r\n parentContainerSelector: '.grid-and-disclaim-container',\r\n saveModel: (updated, editorView) =>\r\n InlineEditableSave({\r\n view,\r\n updated,\r\n key,\r\n editorView,\r\n }),\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport { MATCH_TYPE_IDS } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport function InlineEditableSave({\r\n key,\r\n view,\r\n updated,\r\n editorView,\r\n}) {\r\n const recommendation = view.grid.gridView.itemWithKey(key);\r\n if (!_.isNull(recommendation)) {\r\n _.first(recommendation.Opportunities).NewMatchType = MATCH_TYPE_IDS[updated.MatchType.toUpperCase()]; // eslint-disable-line\r\n\r\n // Append the current selected one into existing selected ones.\r\n const selectedKeys = view.grid.gridView.selectedKeys();\r\n if (!_.contains(selectedKeys, key)) {\r\n selectedKeys.push(key);\r\n }\r\n view.grid.gridView.set({ selection: _.defaults({ selected: selectedKeys }) });\r\n }\r\n editorView.trigger('cancel');\r\n}\r\n","import $ from 'jquery';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { formatMatchType } from '@bingads-webui-campaign/recommendation-core';\r\nimport { InlineEditableColumnPrompt } from './match-type-inline-editable/prompt';\r\n\r\nexport class MatchTypeSelectorColumnVNext extends CampaignuiBaseColumn {\r\n constructor({ i18n, deps, view }) {\r\n const title = i18n.getString('Details_View_Match_Type') || '__Match type__';\r\n\r\n super({\r\n name: 'matchType',\r\n property: 'Opportunities/MatchType',\r\n title,\r\n bodyClasses: ['grid-column-matchType', 'actionable'],\r\n colClasses: ['col-matchType'],\r\n sortable: 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.KeywordOpportunitySummary/MatchTypeStr',\r\n helpId: 'Pop_BA_Recommendations_MatchType',\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.deps = deps;\r\n this.view = view;\r\n }\r\n\r\n pickProperty(item) {\r\n const matchType = item.Opportunities[0].NewMatchType || item.Opportunities[0].MatchType;\r\n return matchType ? formatMatchType(matchType, this.i18n) : '';\r\n }\r\n onPrompt({\r\n event,\r\n item,\r\n newPosition,\r\n }) {\r\n InlineEditableColumnPrompt({\r\n position: newPosition,\r\n item,\r\n view: this.view,\r\n i18n: this.i18n,\r\n key: $(event.target).parents('tr[data-key]').data('key'),\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\n\r\nimport template from './preview-rsa-column.pug';\r\n\r\nexport class PreviewRSAColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n deps = {\r\n adDisplayUrlService: null,\r\n combineText: null,\r\n },\r\n i18n,\r\n }) {\r\n super({\r\n name: 'PreviewdAd',\r\n property: 'PreviewdAd',\r\n title: i18n.getString('Details_View_Preview_Responsive_Search_Ad_Suggestion') || '__Responsive search ad preview__',\r\n sortable: false,\r\n bodyClasses: ['suggested-ads-preview-column'],\r\n colClasses: ['rsa-col-ads-preview'],\r\n });\r\n\r\n this.deps = deps;\r\n this.i18n = i18n;\r\n }\r\n\r\n template({ value: { SuggestedAd } }) {\r\n const { i18n } = this;\r\n const urlRegex = new RegExp('http:\\/\\/|https:\\/\\/|\\{param', 'i'); // eslint-disable-line no-useless-escape\r\n let destinationUrl = SuggestedAd.FinalUrl;\r\n // add http for destinatioUrl that did not have them.\r\n if (destinationUrl && destinationUrl.search(urlRegex) === -1) {\r\n destinationUrl = `http://${destinationUrl}`;\r\n }\r\n\r\n let moreHeadlines;\r\n if (_.size(SuggestedAd.Headlines) > 3) {\r\n moreHeadlines = ` +${i18n.getString('Recommendation_Grid_Todo_More', {\r\n count: _.size(SuggestedAd.Headlines) - 3,\r\n })}`;\r\n }\r\n\r\n let moreDescriptions;\r\n if (_.size(SuggestedAd.Descriptions) > 2) {\r\n moreDescriptions = ` +${i18n.getString('Recommendation_Grid_Todo_More', {\r\n count: _.size(SuggestedAd.Descriptions) - 2,\r\n })}`;\r\n }\r\n\r\n const ad = {\r\n convertedTitle: _.compact([\r\n SuggestedAd.Headlines[0].Text,\r\n SuggestedAd.Headlines[1].Text,\r\n SuggestedAd.Headlines[2].Text]).join(' | '),\r\n convertedText: this.deps.combineText(\r\n SuggestedAd.Descriptions[0].Text,\r\n SuggestedAd.Descriptions[1].Text\r\n ),\r\n convertedFinalUrl: destinationUrl,\r\n convertedDisplayUrl: this.deps.adDisplayUrlService.getExpandedTextAdDisplayUrl(\r\n destinationUrl,\r\n null,\r\n SuggestedAd.Path1,\r\n SuggestedAd.Path2\r\n ),\r\n title: i18n.getString('Entity_Ads'),\r\n };\r\n\r\n return template({\r\n i18n: this.i18n,\r\n ad,\r\n moreHeadlines,\r\n moreDescriptions,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatKeyword, CONTEXTUAL_ENTITY_TYPE } from '@bingads-webui-campaign/recommendation-core';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\nimport template from './remove-negative-keyword-column.pug';\r\n\r\nexport class RemoveNegativeKeywordColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, isMCC }) {\r\n super({\r\n name: 'removeNKW',\r\n property: 'Opportunities/NegativeKeyword',\r\n title: i18n.getString('ColumnName_WhatYouCanDo'),\r\n bodyClasses: ['grid-column-removeNKW'],\r\n colClasses: ['col-superLongText'],\r\n type: 'string',\r\n });\r\n this.i18n = i18n;\r\n this.isMCC = isMCC;\r\n }\r\n\r\n template({\r\n value: {\r\n NegativeKeyword,\r\n OpportunityId,\r\n Source,\r\n NegativeKeywordMatchTypeId,\r\n NegativeKeywordSharedListId,\r\n Target: {\r\n CampaignId,\r\n AdGroupId,\r\n AccountName,\r\n AccountId,\r\n },\r\n },\r\n }) {\r\n const { i18n } = this;\r\n let entityId;\r\n let entityType;\r\n let entityCampaignId;\r\n let ariaLabel;\r\n if (!NegativeKeywordSharedListId) {\r\n // If NegativeKeywordSharedListId is null, the source is either campaign or adgroup.\r\n // Support contextual attributes.\r\n entityId = _.isNull(AdGroupId) ? CampaignId : AdGroupId;\r\n entityType = _.isNull(AdGroupId) ?\r\n CONTEXTUAL_ENTITY_TYPE.CAMPAIGN : CONTEXTUAL_ENTITY_TYPE.ADGROUP;\r\n entityCampaignId = CampaignId;\r\n ariaLabel = _.isNull(AdGroupId) ?\r\n i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: Source }) :\r\n i18n.getString('Click to scope to ad group {{adGroupName}}', { adGroupName: Source });\r\n } else {\r\n entityId = NegativeKeywordSharedListId;\r\n entityType = CONTEXTUAL_ENTITY_TYPE.NEGATIVE_KEYWORD_LIST;\r\n }\r\n\r\n const nkwSource = withContextualAttributeTemplate({\r\n opportunityId: OpportunityId,\r\n entityName: Source,\r\n entityId,\r\n entityType,\r\n entityCampaignId,\r\n status: 'false',\r\n ariaLabel: NegativeKeywordSharedListId ? '' : ariaLabel,\r\n });\r\n\r\n return template({\r\n negativeKeywordAttributes:\r\n i18n.getString('Details_View_Remove_Negative_Keyword', {\r\n negative_keyword: `${formatKeyword(NegativeKeyword, NegativeKeywordMatchTypeId)}`,\r\n name: nkwSource,\r\n }),\r\n accountName: withContextualAttributeTemplate({\r\n opportunityId: OpportunityId,\r\n entityName: AccountName,\r\n entityId: AccountId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.ACCOUNT,\r\n status: 'false',\r\n }),\r\n isMCC: this.isMCC,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get(item) {\r\n return _.chain(item.Opportunities).first().value();\r\n },\r\n key: 'Opportunities/NegativeKeyword',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatKeyword, CONTEXTUAL_ENTITY_TYPE, getNewTextConfigByPermission } from '@bingads-webui-campaign/recommendation-core';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\nimport template from './blocked-keywords-column.pug';\r\n\r\nexport class BlockedKeywordsColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, deps, recommendationType }) {\r\n let helpId;\r\n\r\n const newConfig = getNewTextConfigByPermission(recommendationType, deps.permissions, 'column');\r\n\r\n if (newConfig && newConfig.BlockedKeywordsColumn) {\r\n helpId = newConfig.BlockedKeywordsColumn.helpId || undefined;\r\n }\r\n\r\n super({\r\n name: 'blockedKeywordList',\r\n property: 'Opportunities/BlockedKeywordList',\r\n title: i18n.getString('Details_View_Blocked_Keywords') || '__Blocked keywords__',\r\n bodyClasses: ['grid-column-blockedKeywordList'],\r\n colClasses: ['col-superLongText'],\r\n type: 'string',\r\n helpId,\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template({ value: { OpportunityId, BlockedKeywordList, TotalBlockedKeywordCount } }) {\r\n const { i18n } = this;\r\n const maxShowCount = 3;\r\n const blockedKeywordList =\r\n _.map(_.first(BlockedKeywordList, maxShowCount), keyword => withContextualAttributeTemplate({\r\n opportunityId: OpportunityId,\r\n entityName: formatKeyword(keyword.Keyword, keyword.MatchTypeId),\r\n entityId: keyword.OrderItemId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.KEYWORD,\r\n status: 'false',\r\n })).join(', ');\r\n\r\n let result = blockedKeywordList;\r\n if (TotalBlockedKeywordCount > maxShowCount) {\r\n const more = ` +${i18n.getString('Recommendation_Grid_Todo_More', {\r\n count: TotalBlockedKeywordCount - maxShowCount,\r\n })}`;\r\n result = result.concat(more);\r\n }\r\n\r\n return template({ blockedKeywords: result });\r\n }\r\n\r\n get property() {\r\n return {\r\n get(item) {\r\n return _.chain(item.Opportunities).first().value();\r\n },\r\n key: 'Opportunities/BlockedKeywordList',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { CONTEXTUAL_ENTITY_TYPE } from '@bingads-webui-campaign/recommendation-core';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\n\r\nimport template from './campaign-column.pug';\r\n\r\nexport class SuggestedCampaignColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n const title = newI18n.getString(_TL_('Campaign name'));\r\n\r\n super({\r\n name: 'SuggestedCampaign',\r\n property: 'Opportunities/CreationFragments',\r\n title,\r\n bodyClasses: ['grid-column-campaignName', 'actionable'],\r\n colClasses: ['col-longText'],\r\n sortable: false,\r\n helpId: 'pop_BA_Recommendations_DSA_CampaignName',\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n CreationFragments,\r\n OpportunityId,\r\n Target: { CampaignName, CampaignId },\r\n },\r\n }) {\r\n if (_.isNull(CampaignId)) {\r\n return _.findWhere(CreationFragments, { Type: 'Campaign' }).Campaign;\r\n }\r\n return template({\r\n campaignAttributes: withContextualAttributeTemplate({\r\n opportunityId: OpportunityId,\r\n entityName: _.findWhere(CreationFragments, { Type: 'Campaign' }).Campaign,\r\n entityId: CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n status: 'false',\r\n ariaLabel: this.i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: CampaignName }),\r\n }),\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatDecimal, getIncreaseSymbol } from '@bingads-webui-campaign/recommendation-core';\r\nimport template from './estimate-search-column.pug';\r\n\r\nexport class EstimateSearchColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n i18n, recommendationType, isOptimizationScoreOn,\r\n }) {\r\n const title = i18n.getString('Details_View_Estimate_Search') || 'Weekly est. searches';\r\n super({\r\n name: 'EstimateSearch',\r\n property: 'Opportunities/EstimatedIncreaseInSearches',\r\n title,\r\n bodyClasses: ['grid-column-estimateSearch', isOptimizationScoreOn ? 'with-optimization-score' : ''],\r\n colClasses: ['col-numberEst'],\r\n sortable: true,\r\n helpId: 'pop_BA_Recommendations_DSA_WeeklyEstSQ',\r\n type: 'number',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n this.isOptimizationScoreOn = isOptimizationScoreOn;\r\n }\r\n\r\n template({\r\n value: {\r\n EstimatedIncreaseInSearches,\r\n },\r\n }) {\r\n return template({\r\n deltaVal: formatDecimal(EstimatedIncreaseInSearches, this.i18n),\r\n increaseSymbol: getIncreaseSymbol(EstimatedIncreaseInSearches),\r\n notAvailable: EstimatedIncreaseInSearches === 0,\r\n isOptimizationScoreOn: this.isOptimizationScoreOn,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { MAX_NUMBER_OF_RECOMMENDATION_SAMPLES } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class SearchExampleColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, recommendationType }) {\r\n const title = i18n.getString('Details_View_SQ') || 'Search queries that could trigger your ad';\r\n\r\n super({\r\n name: 'SearchExample',\r\n property: 'Opportunities/SearchExamples',\r\n title,\r\n bodyClasses: ['grid-column-searchExample'],\r\n colClasses: ['col-longText'],\r\n sortable: false,\r\n helpId: 'pop_BA_Recommendations_DSA_SQ',\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n template({\r\n value: {\r\n SearchExamples,\r\n },\r\n }) {\r\n if (_.size(SearchExamples) > MAX_NUMBER_OF_RECOMMENDATION_SAMPLES) {\r\n return `${_.first(SearchExamples, MAX_NUMBER_OF_RECOMMENDATION_SAMPLES).join(', ')} ...`;\r\n }\r\n return SearchExamples.length > 0 ? SearchExamples.join(', ') : '-';\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatDecimal, NOT_AVAILABLE_DEFAULT_STR } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class CurrentClickColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, isOptimizationScoreOn }) {\r\n const title = i18n.getString('Recommendation_ColumnName_PreviousClick');\r\n super({\r\n name: 'CurrentClick',\r\n property: 'CurrentClicks',\r\n title,\r\n bodyClasses: ['grid-column-currentClick', isOptimizationScoreOn ? 'with-optimization-score' : ''],\r\n colClasses: ['col-number'],\r\n sortable: true,\r\n helpId: 'Pop_BA_Recommendations_RSA_PrevWeeklyClicks',\r\n type: 'number',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template({ value: { CurrentClicks } }) {\r\n const { i18n } = this;\r\n return _.isNumber(CurrentClicks) ?\r\n formatDecimal(CurrentClicks, i18n) : NOT_AVAILABLE_DEFAULT_STR;\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'CurrentClicks',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport {\r\n formatCost,\r\n NOT_AVAILABLE_DEFAULT_STR,\r\n RECOMMENDATION_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class CurrentCostColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, isOptimizationScoreOn, recommendationType }) {\r\n const title = i18n.getString('Recommendation_ColumnName_PreviousSpend');\r\n const helpId = recommendationType === RECOMMENDATION_TYPES.SSC_2_PMAX_MIGRATION ?\r\n 'pop_BA_Recommendations_RSA_PrevWeeklySpendCamp' : 'Pop_BA_Recommendations_RSA_PrevWeeklySpend';\r\n super({\r\n name: 'CurrentCost',\r\n property: 'CurrentCost',\r\n title,\r\n bodyClasses: ['grid-column-currentCost', isOptimizationScoreOn ? 'with-optimization-score' : ''],\r\n colClasses: ['col-number'],\r\n sortable: true,\r\n helpId,\r\n type: 'number',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template({ value: { CurrentCost } }) {\r\n const { i18n } = this;\r\n return _.isNumber(CurrentCost) ?\r\n formatCost(CurrentCost, i18n, i18n.currency) : NOT_AVAILABLE_DEFAULT_STR;\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'CurrentCost',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatDecimal, NOT_AVAILABLE_DEFAULT_STR } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class CurrentImpressionColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, isOptimizationScoreOn }) {\r\n const title = i18n.getString('Recommendation_ColumnName_PreviousImpression') || '__Previous Weekly Impr.__';\r\n\r\n super({\r\n name: 'CurrentImpression',\r\n property: 'CurrentImpressions',\r\n title,\r\n bodyClasses: ['grid-column-currentImpression', isOptimizationScoreOn ? 'with-optimization-score' : ''],\r\n colClasses: ['col-number'],\r\n sortable: true,\r\n helpId: 'Pop_BA_Recommendations_RSA_PrevWeeklyImp', // TODO: Need to change help id after UA confirms\r\n type: 'number',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template({ value: { CurrentImpressions } }) {\r\n const { i18n } = this;\r\n return _.isNumber(CurrentImpressions) ?\r\n formatDecimal(CurrentImpressions, i18n) : NOT_AVAILABLE_DEFAULT_STR;\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'CurrentImpressions',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\n\r\nimport template from './landing-page-url-column.pug';\r\n\r\nexport class LandingPageUrlColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n deps = {\r\n adDisplayUrlService: null,\r\n },\r\n i18n,\r\n }) {\r\n super({\r\n name: 'LandingPageUrl',\r\n property: 'Opportunities/RejectedAd',\r\n title: i18n.getString('Details_View_Langding_Page_Url'),\r\n sortable: false,\r\n bodyClasses: ['landing-page-url-column'],\r\n colClasses: ['col-superLongText'],\r\n helpId: 'Pop_BA_Recommendations_ExpandedURL',\r\n });\r\n\r\n this.deps = deps;\r\n this.i18n = i18n;\r\n }\r\n\r\n template({ value: { UrlOrLandingPage } }) {\r\n const { i18n } = this;\r\n\r\n const ad = {\r\n landingPageUrl: UrlOrLandingPage,\r\n };\r\n\r\n return template({\r\n i18n,\r\n ad,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport template from './rejection-type-column.pug';\r\n\r\nexport class RejectionTypeColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, recommendationType }) {\r\n super({\r\n name: 'RejectionType',\r\n property: 'Opportunities/RejectionType',\r\n title: i18n.getString('Details_View_Rejection_Type'),\r\n bodyClasses: ['grid-column-rejectionType'],\r\n colClasses: ['col-longText'],\r\n helpId: 'Pop_BA_Recommendations_IssueType',\r\n type: 'string',\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n template({\r\n value: {\r\n FlagId,\r\n },\r\n }) {\r\n const { i18n } = this;\r\n\r\n return template({\r\n rejectionType: this.i18n.getString(`Details_View_Rejection_Type_${FlagId}`),\r\n i18n,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatDecimal } from '@bingads-webui-campaign/recommendation-core';\r\nimport template from './number-column.pug';\r\n\r\nexport class NumberRejectedAdsColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, recommendationType, isOptimizationScoreOn }) {\r\n super({\r\n name: 'NumberRejectedAds',\r\n property: 'NumberRejectedAds',\r\n title: i18n.getString('Details_View_Number_Rejected_Ads'),\r\n bodyClasses: ['grid-column-numberRejectedAds', isOptimizationScoreOn ? 'with-optimization-score' : ''],\r\n colClasses: ['col-longText'],\r\n sortable: 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.FixAdDestinationOpportunitySummary/NumberRejectedAds',\r\n type: 'number',\r\n helpId: 'Pop_BA_Recommendations_DisapprovedAds',\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n template({\r\n value: {\r\n NumberRejectedAds,\r\n },\r\n }) {\r\n const { i18n } = this;\r\n\r\n return template({\r\n number: formatDecimal(NumberRejectedAds, i18n),\r\n i18n,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'NumberRejectedAds',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatDecimal } from '@bingads-webui-campaign/recommendation-core';\r\nimport template from './number-column.pug';\r\n\r\nexport class NumberRejectedKeywordsColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, recommendationType, isOptimizationScoreOn }) {\r\n super({\r\n name: 'NumberRejectedKeywords',\r\n property: 'NumberRejectedKeywords',\r\n title: i18n.getString('Details_View_Number_Rejected_Keywords'),\r\n bodyClasses: ['grid-column-numberRejectedKeywords', isOptimizationScoreOn ? 'with-optimization-score' : ''],\r\n colClasses: ['col-longText'],\r\n sortable: 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.FixAdDestinationOpportunitySummary/NumberRejectedKeywords',\r\n type: 'number',\r\n helpId: 'Pop_BA_Recommendations_DisapprovedKeywords',\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n template({\r\n value: {\r\n NumberRejectedKeywords,\r\n },\r\n }) {\r\n const { i18n } = this;\r\n\r\n return template({\r\n number: formatDecimal(NumberRejectedKeywords, i18n),\r\n i18n,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'NumberRejectedKeywords',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport {\r\n formatInteger,\r\n isParentLevel,\r\n SUMMARY_LEVELS,\r\n FILTER_TO_TIME,\r\n getShiftedDate,\r\n DATE_FILTER,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport template from './rejected-ads-keywords-column.pug';\r\n\r\nexport class RejectedAdsKeywordsColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n i18n, isKeyword = false, scope, filterState, isOptimizationScoreOn,\r\n }) {\r\n const title = isKeyword ? i18n.getString('ColumnName_Rejected_Keywords') :\r\n i18n.getString('ColumnName_Rejected_Ads');\r\n const helpId = isKeyword\r\n ? 'Pop_BA_Recommendations_FixAd_DisapprovedKeywords'\r\n : 'Pop_BA_Recommendations_FixAd_DisapprovedAds';\r\n\r\n super({\r\n name: 'RejectedAdsKeywords',\r\n property: 'NumberOfRejectedAdsOrKeywords',\r\n title,\r\n bodyClasses: ['grid-column-RejectedAdsKeyword', 'text-right', isOptimizationScoreOn ? 'with-optimization-score' : ''],\r\n colClasses: ['col-longText'],\r\n sortable: false,\r\n helpId,\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n type: 'number',\r\n });\r\n this.i18n = i18n;\r\n this.isKeyword = isKeyword;\r\n this.scope = scope;\r\n this.filterState = filterState;\r\n }\r\n\r\n template({ value: { Opportunities, OpportunityType } }) {\r\n const {\r\n NumberRejectedDisapprovedKeywords,\r\n NumberRejectedDisapprovedAds,\r\n NumberRejectedLimitedApprovedKeywords,\r\n NumberRejectedLimitedApprovedAds,\r\n FlagId,\r\n OpportunityId,\r\n Target,\r\n } = _.first(Opportunities);\r\n const { AccountId } = Target;\r\n const hrefName = this.isKeyword ?\r\n this.i18n.getString('Details_View_View_Keywords') :\r\n this.i18n.getString('Details_View_View_Ads');\r\n\r\n // Ads or keywords page URL generation\r\n const pageName = `${this.isKeyword ? 'keywords' : 'ads'}`;\r\n const aid = `aid=${AccountId}`;\r\n const cid = `&cid=${this.scope.customerId}`;\r\n const campaignId = isParentLevel(this.scope.levelAt, SUMMARY_LEVELS.ACCOUNT)\r\n ? `&campaignId=${this.scope.campaignId}` : '';\r\n const adgroupId = isParentLevel(this.scope.levelAt, SUMMARY_LEVELS.CAMPAIGN)\r\n ? `&adgroupId=${this.scope.adGroupId}` : '';\r\n const opportunityId = `&opportunityId=${OpportunityId}`;\r\n const recommendationType = `&recommendationType=${OpportunityType}`;\r\n const filterAlias = '&filterAlias=editorialRejectionReason';\r\n const filterArguments = `&filterArguments=${FlagId}`;\r\n\r\n let dateFilter = '';\r\n if (!_.isUndefined(this.filterState) && !_.isNull(this.filterState)) {\r\n if (_.isUndefined(this.filterState.dateFilter)) {\r\n dateFilter = `;${getShiftedDate(FILTER_TO_TIME[DATE_FILTER.LAST_180])}`;\r\n } else {\r\n dateFilter = `;${getShiftedDate(FILTER_TO_TIME[this.filterState.dateFilter])}`;\r\n }\r\n }\r\n\r\n const hrefLink = `/campaign/vnext/${pageName}?${aid}${cid}${campaignId}${adgroupId}${opportunityId}${recommendationType}${filterAlias}${filterArguments}${dateFilter}`;\r\n\r\n return template({\r\n i18n: this.i18n,\r\n numberDisapproved: formatInteger(this.isKeyword ? NumberRejectedDisapprovedKeywords :\r\n NumberRejectedDisapprovedAds, this.i18n),\r\n numberLimitedApproved: formatInteger(this.isKeyword ? NumberRejectedLimitedApprovedKeywords :\r\n NumberRejectedLimitedApprovedAds, this.i18n),\r\n hrefName,\r\n hrefLink,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => item,\r\n };\r\n }\r\n}\r\n","import { RejectedAdsKeywordsColumn } from './rejected-ads-keywords-column';\r\n\r\nexport class RejectedAdsColumn extends RejectedAdsKeywordsColumn {\r\n constructor({\r\n i18n, scope, filterState, isOptimizationScoreOn,\r\n }) {\r\n super({\r\n i18n,\r\n scope,\r\n filterState,\r\n isKeyword: false,\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n}\r\n","import { RejectedAdsKeywordsColumn } from './rejected-ads-keywords-column';\r\n\r\nexport class RejectedKeywordsColumn extends RejectedAdsKeywordsColumn {\r\n constructor({\r\n i18n, scope, filterState, isOptimizationScoreOn,\r\n }) {\r\n super({\r\n i18n,\r\n scope,\r\n filterState,\r\n isKeyword: true,\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport {\r\n getFwdLinkId,\r\n} from '@bingads-webui-campaign/api-errors';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { getEditorialErrorMessage } from '@bingads-webui-campaign/recommendation-core';\r\nimport template from './policy-column.pug';\r\n\r\nexport class PolicyColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, deps }) {\r\n super({\r\n name: 'Policy',\r\n property: 'RejctionPolicy',\r\n title: i18n.getString('ColumnName_Policy'),\r\n bodyClasses: ['grid-column-policy'],\r\n colClasses: ['col-superLongText'],\r\n sortable: false,\r\n });\r\n this.i18n = i18n;\r\n this.permissions = deps.permissions;\r\n }\r\n\r\n template({\r\n value: {\r\n FlagId,\r\n },\r\n }) {\r\n const { i18n } = this;\r\n const detail = i18n.getString(`Editorial_RejectionDetail_${FlagId}`) || i18n.getString('Editorial_RejectionDetail_Default');\r\n const title = getEditorialErrorMessage(FlagId);\r\n const fwLinkId = getFwdLinkId(FlagId);\r\n let fwlink = `http://go.microsoft.com/fwlink?LinkId=${fwLinkId}`;\r\n if (this.permissions && this.permissions.IsDomesticSimplifiedChineseEnabled) {\r\n fwlink = 'https://about.ads.microsoft.com/zh-cn/pilotpolicy.pdf';\r\n }\r\n\r\n return template({\r\n i18n: this.i18n,\r\n title,\r\n detail,\r\n fwlink,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\nimport { CONTEXTUAL_ENTITY_TYPE, getIconClasses } from '@bingads-webui-campaign/recommendation-core';\r\nimport { templateSetupConvTodo } from '@bingads-webui-campaign/recommendation-inline-setup-conversion-tracking-view';\r\n\r\nexport class SetupConversionTrackingToDoColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, isMCC, deps }) {\r\n const title = i18n.getString('ColumnName_WhatYouCanDo') || '__what you can do__';\r\n super({\r\n name: 'setupConversionTrackingToDo',\r\n property: 'setupConversionTrackingToDo',\r\n title,\r\n bodyClasses: ['grid-column-setupConversionTrackingToDo'],\r\n colClasses: ['col-superLongText'],\r\n type: 'string',\r\n });\r\n this.i18n = i18n;\r\n this.isMCC = isMCC;\r\n this.isRecommendationThirdPartyTaggingEnabled =\r\n deps.permissions.IsRecommendationThirdPartyTaggingEnabled;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n Target: {\r\n AccountName,\r\n AccountId,\r\n },\r\n },\r\n }) {\r\n const { i18n, isMCC, isRecommendationThirdPartyTaggingEnabled } = this;\r\n const {\r\n OpportunityId: opportunityId,\r\n StatusId: statusId,\r\n } = Opportunities[0];\r\n const accountName = withContextualAttributeTemplate({\r\n opportunityId,\r\n entityName: AccountName,\r\n entityId: AccountId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.ACCOUNT,\r\n status: 'false',\r\n });\r\n const title = statusId === 2 ?\r\n 'Recommendation_Grid_SetupConversionTrackingOpportunity_Unverified_Todo_Title_MCC' :\r\n 'Recommendation_Grid_SetupConversionTrackingOpportunity_UnCreated_Todo_Title_MCC';\r\n\r\n const iconClasses = getIconClasses(statusId, 3);\r\n\r\n return isMCC ?\r\n i18n.getString(title, { accountName }) :\r\n templateSetupConvTodo({ iconClasses, i18n, isRecommendationThirdPartyTaggingEnabled });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'Target/AccountNameMCC',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatDecimal } from '@bingads-webui-campaign/recommendation-core';\r\nimport template from './number-column.pug';\r\n\r\nexport class NumberClicksColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, recommendationType }) {\r\n super({\r\n name: 'NumClicks',\r\n property: 'NumClicks',\r\n title: i18n.getString('Recommendation_ColumnName_PreviousClick'),\r\n bodyClasses: ['grid-column-numberClicks'],\r\n colClasses: ['col-longText'],\r\n sortable: 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.SetupConversionTrackingOpportunitySummary/NumClicks',\r\n type: 'number',\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n template({\r\n value: {\r\n NumClicks,\r\n },\r\n }) {\r\n const { i18n } = this;\r\n\r\n return template({\r\n number: formatDecimal(NumClicks, i18n),\r\n i18n,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'NumClicks',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatDecimal } from '@bingads-webui-campaign/recommendation-core';\r\nimport template from './number-column.pug';\r\n\r\nexport class NumberImpressionsColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, recommendationType }) {\r\n super({\r\n name: 'NumImpressions',\r\n property: 'NumImpressions',\r\n title: i18n.getString('Recommendation_ColumnName_PreviousImpression'),\r\n bodyClasses: ['grid-column-numberImpressions'],\r\n colClasses: ['col-longText'],\r\n sortable: 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.SetupConversionTrackingOpportunitySummary/NumImpressions',\r\n type: 'number',\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n template({\r\n value: {\r\n NumImpressions,\r\n },\r\n }) {\r\n const { i18n } = this;\r\n\r\n return template({\r\n number: formatDecimal(NumImpressions, i18n),\r\n i18n,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'NumImpressions',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatDecimal } from '@bingads-webui-campaign/recommendation-core';\r\nimport { templateSetupConvPerformance } from '@bingads-webui-campaign/recommendation-inline-setup-conversion-tracking-view';\r\n\r\nexport class PerformanceSummaryColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, recommendationType }) {\r\n super({\r\n name: 'PerformanceSummary',\r\n property: 'PerformanceSummary',\r\n title: i18n.getString('Details_View_Performance_Summary') || 'Performance summary',\r\n bodyClasses: ['grid-column-performanceSummary'],\r\n colClasses: ['col-superLongText'],\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n template({\r\n value: {\r\n NumClicks,\r\n NumImpressions,\r\n },\r\n }) {\r\n const { i18n } = this;\r\n\r\n return templateSetupConvPerformance({\r\n numClicks: formatDecimal(NumClicks, i18n),\r\n numImpressions: formatDecimal(NumImpressions, i18n),\r\n i18n,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\n\r\nimport template from './fix-conversion-tracking-todo-column.pug';\r\n\r\nexport class FixConversionTrackingTodoColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'FixConversionTrackingTodo',\r\n property: 'Opportunities/FixConversionTrackingTodo',\r\n title: i18n.getString('ColumnName_WhatYouCanDo') || '__what you can do__',\r\n bodyClasses: ['grid-column-FixConversionTrackingTodo'],\r\n colClasses: ['col-superLongText'],\r\n sortable: false,\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template() {\r\n const { i18n } = this;\r\n return template({\r\n i18n,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatInteger } from '@bingads-webui-campaign/recommendation-core';\r\nimport template from './fix-conversion-tracking-summary-column.pug';\r\n\r\nexport class FixConversionTrackingSummaryColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'FixConversionTrackingSummary',\r\n property: 'Opportunities/FixConversionTrackingSummary',\r\n title: i18n.getString('ColumnName_IssueSummary') || '__issue summary__',\r\n bodyClasses: ['grid-column-FixConversionTrackingSummary'],\r\n colClasses: ['col-superLongText'],\r\n sortable: false,\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n NumInactiveUetTags,\r\n NumAffectedConversionGoals,\r\n },\r\n }) {\r\n const { i18n } = this;\r\n const inactiveTagCount = formatInteger(NumInactiveUetTags, i18n);\r\n const affectedGoal = formatInteger(NumAffectedConversionGoals, i18n);\r\n return template({\r\n i18n,\r\n title: i18n.getString('Fix_Conversion_Tracking_Summary'),\r\n inactiveTagCount,\r\n affectedGoal,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\n\r\nexport class AssetGeneratedFromColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'GeneratedFrom',\r\n property: 'RecommendationGeneratedFrom',\r\n title: i18n.getString('Details_View_Assets') || 'Assets',\r\n bodyClasses: ['grid-column-RecommendedFrom'],\r\n colClasses: ['col-mediumText'],\r\n sortable: 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.ResponsiveSearchAdsOpportunitySummary/HasAIAssetRecommendationCount',\r\n helpId: 'pop_MA_RSA_Recommendations',\r\n type: 'string',\r\n helpAriaLabel: i18n.getString(\r\n 'Click to learn more about {{item}}',\r\n { item: i18n.getString('Details_View_Assets') }\r\n ),\r\n });\r\n\r\n this.i18n = i18n;\r\n }\r\n\r\n template({ value: { HasAIAssetRecommendationCount } }) {\r\n const { i18n } = this;\r\n return _.isNumber(HasAIAssetRecommendationCount) && HasAIAssetRecommendationCount > 0 ?\r\n i18n.getString('Recommendation_Keywword_Source_Type_AIGeneratedAssets') || 'AI-generated assets' :\r\n i18n.getString('Recommendation_Keywword_Source_Type_ExistingAssets') || 'Existing assets';\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'RecommendationGeneratedFrom',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { CONTEXTUAL_ENTITY_TYPE, RECOMMENDATION_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\n\r\nimport template from './goal-column.pug';\r\n\r\nexport class GoalColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, recommendationType, s$i18n }) {\r\n let sortable = false;\r\n if (recommendationType === RECOMMENDATION_TYPES.FIX_CONVERSION_GOAL_SETTINGS) {\r\n sortable = 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.FixConversionGoalSettingsOpportunitySummary/GoalName';\r\n } else if (recommendationType === RECOMMENDATION_TYPES.CREATE_CONVERSION_GOAL) {\r\n sortable = 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.CreateConversionGoalOpportunitySummary/GoalName';\r\n }\r\n super({\r\n name: 'GoalName',\r\n property: 'GoalName',\r\n title: i18n.getString('Details_View_Goal_Name'),\r\n bodyClasses: ['grid-column-goalName', 'actionable'],\r\n colClasses: ['col-normalText'],\r\n sortable,\r\n type: 'string',\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n this.s$i18n = s$i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n Target: { AccountName },\r\n },\r\n }) {\r\n const { i18n, recommendationType } = this;\r\n const opportunity = _.first(Opportunities);\r\n const goalName = opportunity.GoalName;\r\n const campaignAttributes =\r\n recommendationType === RECOMMENDATION_TYPES.FIX_CONVERSION_GOAL_SETTINGS ?\r\n withContextualAttributeTemplate({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: goalName,\r\n entityId: opportunity.GoalId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.GOAL,\r\n status: 'false',\r\n ariaLabel: i18n.getString('Click to scope to goal {{goalName}}', { goalName }),\r\n accountName: AccountName,\r\n s$i18n: this.s$i18n,\r\n }) : goalName;\r\n\r\n return template({ campaignAttributes });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'GoalName',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { RECOMMENDATION_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class GoalTypeColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, s$i18n, recommendationType }) {\r\n let sortable = false;\r\n if (recommendationType === RECOMMENDATION_TYPES.FIX_CONVERSION_GOAL_SETTINGS) {\r\n sortable = 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.FixConversionGoalSettingsOpportunitySummary/GoalTypeCode';\r\n } else if (recommendationType === RECOMMENDATION_TYPES.CREATE_CONVERSION_GOAL) {\r\n sortable = 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.CreateConversionGoalOpportunitySummary/GoalType';\r\n }\r\n super({\r\n name: 'GoalTypeName',\r\n property: 'GoalTypeName',\r\n title: i18n.getString('Details_View_Goal_Type_Name'),\r\n bodyClasses: ['grid-column-goalTypeName', 'actionable'],\r\n colClasses: ['col-normalText'],\r\n sortable,\r\n type: 'string',\r\n helpId: 'pop_BA_UET_Type',\r\n });\r\n this.s$i18n = s$i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n },\r\n }) {\r\n let goalType;\r\n if (Opportunities[0].GoalTypeCode === 'DestinationGoal') {\r\n goalType = 'DestinationGoal';\r\n } else if (Opportunities[0].GoalTypeCode === 'EventGoal') {\r\n goalType = 'EventGoal';\r\n } else if (Opportunities[0].GoalTypeCode === 'ClarityEventGoal') {\r\n goalType = 'EventGoal';\r\n }\r\n return this.s$i18n.value('Goal', 'Type', goalType);\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'GoalTypeName',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport {\r\n GOAL_OPERATOR_TYPES_STRING_VALUES,\r\n getDestUrlData,\r\n getEventData,\r\n CONTEXTUAL_ENTITY_TYPE,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\n\r\nimport destUrlemplate from './current-setting-column-dest-url.pug';\r\nimport eventTemplate from './current-setting-column-event.pug';\r\nimport UETTemplate from './setting-column-UET.pug';\r\nimport revenueValueTemplate from './setting-column-revenue-value.pug';\r\n\r\nexport class CurrentSettingColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n super({\r\n name: 'CurrentSetting',\r\n property: 'CurrentSetting',\r\n title: i18n.getString('Details_View_Current_Setting'),\r\n bodyClasses: ['grid-column-goal-setting', 'actionable'],\r\n colClasses: ['col-longText'],\r\n type: 'string',\r\n });\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n }\r\n\r\n contextualAttributeWrapper = options => withContextualAttributeTemplate({\r\n opportunityId: options.opportunityId,\r\n entityName: options.entityName,\r\n entityId: options.entityId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CURRENT_SETTING,\r\n status: 'false',\r\n ariaLabel: this.i18n.getString('Click to scope to current setting'),\r\n })\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n },\r\n }) {\r\n const { i18n, newI18n } = this;\r\n const entity = Opportunities[0];\r\n const goalTypeId = entity.GoalTypeId;\r\n const goalOperatorTypes = GOAL_OPERATOR_TYPES_STRING_VALUES;\r\n const opportunity = _.first(Opportunities);\r\n const issueTypeId = entity.IssueType;\r\n\r\n if (goalTypeId === 0 && entity.DestUrl) { // Goal type is Destination URL\r\n const destUrlCurrentSetting = entity.DestUrl.CurrentSetting;\r\n const destUrlSuggestedSetting = entity.DestUrl.SuggestedSetting;\r\n const destUrlData = getDestUrlData(\r\n destUrlCurrentSetting,\r\n destUrlSuggestedSetting,\r\n goalOperatorTypes,\r\n i18n\r\n );\r\n\r\n if (destUrlData.currentDestinationUrl !== null &&\r\n destUrlData.suggestedDestinationURLOperatorName\r\n !== destUrlData.currentDestinationURLOperatorName) {\r\n destUrlData.currentDestinationURLOperatorName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: destUrlData.currentDestinationURLOperatorName,\r\n entityId: `${opportunity.OpportunityId}_currentDestinationURLOperatorName`,\r\n });\r\n }\r\n\r\n if (destUrlData.currentDestinationUrl !== null &&\r\n destUrlData.suggestedDestinationUrl !== destUrlData.currentDestinationUrl) {\r\n destUrlData.currentDestinationUrl = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: destUrlData.currentDestinationUrl,\r\n entityId: `${opportunity.OpportunityId}_currentDestinationUrl`,\r\n });\r\n }\r\n return destUrlemplate(destUrlData);\r\n } else if (goalTypeId === 3 && entity.Event) { // Goal type is Event\r\n const eventCurrentSetting = entity.Event.CurrentSetting;\r\n const eventSuggestedSetting = entity.Event.SuggestedSetting;\r\n const eventData = getEventData(\r\n eventCurrentSetting,\r\n eventSuggestedSetting,\r\n goalOperatorTypes,\r\n i18n\r\n );\r\n\r\n if (eventData.currentCategoryName !== null &&\r\n eventData.suggestedCategoryName !== eventData.currentCategoryName) {\r\n eventData.currentCategoryName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.currentCategoryName,\r\n entityId: `${opportunity.OpportunityId}_currentCategoryName`,\r\n });\r\n }\r\n\r\n if (eventData.currentCategoryName !== null &&\r\n eventData.suggestedCategoryOperatorName !== eventData.currentCategoryOperatorName) {\r\n eventData.currentCategoryOperatorName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.currentCategoryOperatorName,\r\n entityId: `${opportunity.OpportunityId}_currentCategoryOperatorName`,\r\n });\r\n }\r\n\r\n if (eventData.currentActionName !== null &&\r\n eventData.suggestedActionName !== eventData.currentActionName) {\r\n eventData.currentActionName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.currentActionName,\r\n entityId: `${opportunity.OpportunityId}_currentActionName`,\r\n });\r\n }\r\n\r\n if (eventData.currentActionName !== null &&\r\n eventData.suggesteActionOperatorName !== eventData.currentActionOperatorName) {\r\n eventData.currentActionOperatorName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.currentActionOperatorName,\r\n entityId: `${opportunity.OpportunityId}_currentActionOperatorName`,\r\n });\r\n }\r\n\r\n if (eventData.currentLabelName !== null &&\r\n eventData.suggestedLabelName !== eventData.currentLabelName) {\r\n eventData.currentLabelName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.currentLabelName,\r\n entityId: `${opportunity.OpportunityId}_currentLabelName`,\r\n });\r\n }\r\n\r\n if (eventData.currentLabelName !== null &&\r\n eventData.suggestedLabelOperatorName !== eventData.currentLabelOperatorName) {\r\n eventData.currentLabelOperatorName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.currentLabelOperatorName,\r\n entityId: `${opportunity.OpportunityId}_currentLabelOperatorName`,\r\n });\r\n }\r\n\r\n if (eventData.currentValueName !== null &&\r\n eventData.suggestedValueName !== eventData.currentValueName) {\r\n eventData.currentValueName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.currentValueName,\r\n entityId: `${opportunity.OpportunityId}_currentValueName`,\r\n });\r\n }\r\n\r\n if (eventData.currentValueName !== null &&\r\n eventData.suggesteValueOperatorName !== eventData.currentValueOperatorName) {\r\n eventData.currentValueOperatorName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.currentValueOperatorName,\r\n entityId: `${opportunity.OpportunityId}_currentValueOperatorName`,\r\n });\r\n }\r\n return eventTemplate(eventData);\r\n } else if (issueTypeId === 3 && entity.ImpactScope) {\r\n return newI18n.getString(\r\n _TL_('On account: {{accountName}}'),\r\n { accountName: entity.ImpactScope.CurrentSetting.AccountName }\r\n );\r\n } else if (issueTypeId === 5 && entity.UET) {\r\n const UETData = {\r\n currentEvent: entity.UET.CurrentEvent,\r\n currentEventLabel: newI18n.getString(_TL_('Associated UET')),\r\n };\r\n return UETTemplate(UETData);\r\n } else if (issueTypeId === 4 && entity.RevenueValue) {\r\n const revenueValueData = {\r\n goalValueSourceId: entity.RevenueValue.GoalValueSourceId,\r\n sameGoalText: newI18n.getString(_TL_('Each conversion action has the same value (Fix value: {{conversionValue}})'), { conversionValue: entity.RevenueValue.ConversionValue }),\r\n variousGoalText: newI18n.getString(_TL_('Conversion action value may vary (but system can’t track the value)')),\r\n notAssignGoaText: newI18n.getString(_TL_('Don’t assign a value')),\r\n isCurrent: true,\r\n };\r\n return revenueValueTemplate(revenueValueData);\r\n }\r\n return '
'; // This is unexpected result. Output empty result.\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'CurrentSetting',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport {\r\n GOAL_OPERATOR_TYPES_STRING_VALUES,\r\n getDestUrlData,\r\n getEventData,\r\n CONTEXTUAL_ENTITY_TYPE,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\n\r\nimport destUrlemplate from './suggested-setting-column-dest-url.pug';\r\nimport eventTemplate from './suggested-setting-column-event.pug';\r\nimport UETTemplate from './setting-column-UET.pug';\r\nimport revenueValueTemplate from './setting-column-revenue-value.pug';\r\n\r\nexport class SuggestedSettingColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n super({\r\n name: 'SuggestedSetting',\r\n property: 'SuggestedSetting',\r\n title: i18n.getString('Details_View_Suggested_Setting'),\r\n bodyClasses: ['grid-column-goal-setting', 'actionable'],\r\n colClasses: ['col-longText'],\r\n type: 'string',\r\n });\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n }\r\n\r\n contextualAttributeWrapper = options => withContextualAttributeTemplate({\r\n opportunityId: options.opportunityId,\r\n entityName: options.entityName,\r\n entityId: options.entityId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.SUGGESTED_SETTING,\r\n status: 'false',\r\n ariaLabel: this.i18n.getString('Click to scope to suggested setting'),\r\n })\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n },\r\n }) {\r\n const { i18n, newI18n } = this;\r\n const entity = Opportunities[0];\r\n const goalTypeId = entity.GoalTypeId;\r\n const goalOperatorTypes = GOAL_OPERATOR_TYPES_STRING_VALUES;\r\n const opportunity = _.first(Opportunities);\r\n const issueTypeId = entity.IssueType;\r\n\r\n if (goalTypeId === 0 && entity.DestUrl) { // Goal type is Destination URL\r\n const destUrlCurrentSetting = entity.DestUrl.CurrentSetting;\r\n const destUrlSuggestedSetting = entity.DestUrl.SuggestedSetting;\r\n const destUrlData = getDestUrlData(\r\n destUrlCurrentSetting,\r\n destUrlSuggestedSetting,\r\n goalOperatorTypes,\r\n i18n\r\n );\r\n\r\n if (destUrlData.suggestedDestinationUrl !== null &&\r\n destUrlData.suggestedDestinationURLOperatorName\r\n !== destUrlData.currentDestinationURLOperatorName) {\r\n destUrlData.suggestedDestinationURLOperatorName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: destUrlData.suggestedDestinationURLOperatorName,\r\n entityId: `${opportunity.OpportunityId}_suggestedDestinationURLOperatorName`,\r\n });\r\n }\r\n\r\n if (destUrlData.suggestedDestinationUrl !== null &&\r\n destUrlData.suggestedDestinationUrl !== destUrlData.currentDestinationUrl) {\r\n destUrlData.suggestedDestinationUrl = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: destUrlData.suggestedDestinationUrl,\r\n entityId: `${opportunity.OpportunityId}_suggestedDestinationUrl`,\r\n });\r\n }\r\n return destUrlemplate(destUrlData);\r\n } else if (goalTypeId === 3 && entity.Event) { // Goal type is Event\r\n const eventCurrentSetting = entity.Event.CurrentSetting;\r\n const eventSuggestedSetting = entity.Event.SuggestedSetting;\r\n const eventData = getEventData(\r\n eventCurrentSetting,\r\n eventSuggestedSetting,\r\n goalOperatorTypes,\r\n i18n\r\n );\r\n\r\n if (eventData.suggestedCategoryName !== null &&\r\n eventData.suggestedCategoryName !== eventData.currentCategoryName) {\r\n eventData.suggestedCategoryName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.suggestedCategoryName,\r\n entityId: `${opportunity.OpportunityId}_suggestedCategoryName`,\r\n });\r\n }\r\n\r\n if (eventData.suggestedCategoryName !== null &&\r\n eventData.suggestedCategoryOperatorName !== eventData.currentCategoryOperatorName) {\r\n eventData.suggestedCategoryOperatorName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.suggestedCategoryOperatorName,\r\n entityId: `${opportunity.OpportunityId}_suggestedCategoryOperatorName`,\r\n });\r\n }\r\n\r\n if (eventData.suggestedActionName !== null &&\r\n eventData.suggestedActionName !== eventData.currentActionName) {\r\n eventData.suggestedActionName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.suggestedActionName,\r\n entityId: `${opportunity.OpportunityId}_suggestedActionName`,\r\n });\r\n }\r\n\r\n if (eventData.suggestedActionName !== null &&\r\n eventData.suggesteActionOperatorName !== eventData.currentActionOperatorName) {\r\n eventData.suggesteActionOperatorName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.suggesteActionOperatorName,\r\n entityId: `${opportunity.OpportunityId}_suggesteActionOperatorName`,\r\n });\r\n }\r\n\r\n if (eventData.suggestedLabelName !== null &&\r\n eventData.suggestedLabelName !== eventData.currentLabelName) {\r\n eventData.suggestedLabelName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.suggestedLabelName,\r\n entityId: `${opportunity.OpportunityId}_suggestedLabelName`,\r\n });\r\n }\r\n\r\n if (eventData.suggestedLabelName !== null &&\r\n eventData.suggestedLabelOperatorName !== eventData.currentLabelOperatorName) {\r\n eventData.suggestedLabelOperatorName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.suggestedLabelOperatorName,\r\n entityId: `${opportunity.OpportunityId}_suggestedLabelOperatorName`,\r\n });\r\n }\r\n\r\n if (eventData.suggestedValueName !== null &&\r\n eventData.suggestedValueName !== eventData.currentValueName) {\r\n eventData.suggestedValueName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.suggestedValueName,\r\n entityId: `${opportunity.OpportunityId}_suggestedValueName`,\r\n });\r\n }\r\n\r\n if (eventData.suggestedValueName !== null &&\r\n eventData.suggesteValueOperatorName !== eventData.currentValueOperatorName) {\r\n eventData.suggesteValueOperatorName = this.contextualAttributeWrapper({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: eventData.suggesteValueOperatorName,\r\n entityId: `${opportunity.OpportunityId}_suggesteValueOperatorName`,\r\n });\r\n }\r\n return eventTemplate(eventData);\r\n } else if (issueTypeId === 3 && entity.ImpactScope) {\r\n return newI18n.getString(_TL_('Across all accounts'));\r\n } else if (issueTypeId === 5 && entity.UET) {\r\n const UETData = {\r\n suggestedEvent: entity.UET.SuggestedEvent,\r\n suggestedEventLabel: newI18n.getString(_TL_('Suggested Associated UET')),\r\n };\r\n return UETTemplate(UETData);\r\n } else if (issueTypeId === 4 && entity.RevenueValue) {\r\n const revenueValueData = {\r\n goalValueSourceId: entity.RevenueValue.GoalValueSourceId,\r\n sameGoalOrNotAssignGoaText: newI18n.getString(_TL_('Conversion action value may vary (Default value: 1)')),\r\n variousGoalText: newI18n.getString(_TL_('Click Edit to get action detail')),\r\n };\r\n return revenueValueTemplate(revenueValueData);\r\n }\r\n return '
'; // This is unexpected result. Output empty result.\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'SuggestedSetting',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatDecimal, NOT_AVAILABLE_DEFAULT_STR } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class MissedConversionColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'MissedConversions',\r\n property: 'MissedConversions',\r\n title: i18n.getString('Details_View_Missed_Conversion') || 'Weekly missed conversions',\r\n bodyClasses: ['grid-column-goalName', 'actionable'],\r\n colClasses: ['col-number'],\r\n sortable: 'EstimatedIncreaseInConversionsInt',\r\n type: 'number',\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template({ value: { EstimatedIncreaseInConversionsInt } }) {\r\n const { i18n } = this;\r\n return _.isNumber(EstimatedIncreaseInConversionsInt) ?\r\n formatDecimal(EstimatedIncreaseInConversionsInt, i18n) : NOT_AVAILABLE_DEFAULT_STR;\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'MissedConversions',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport {\r\n formatPercentHundredths,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class SearchVolumeDeltaColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, recommendationType, isOptimizationScoreOn }) {\r\n const title = i18n.getString('Details_View_Est_Search_Volume') || 'Weekly search volume change';\r\n\r\n super({\r\n name: 'searchVolumeDelta',\r\n property: 'Opportunities/WoWInDecimal',\r\n title,\r\n bodyClasses: ['grid-column-searchVolumeDelta', isOptimizationScoreOn ? 'with-optimization-score' : ''],\r\n colClasses: ['col-searchVolumeDelta'],\r\n sortable: 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.RisingQueryKeywordOpportunitySummary/WoWInDecimal',\r\n helpId: 'Pop_BA_Recommendations_WeeklySearchVolChg',\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n template({ value }) {\r\n const WoWInDecimalThreshold = 20;\r\n return value > WoWInDecimalThreshold ? `↑ >${formatPercentHundredths(WoWInDecimalThreshold, this.i18n)}`\r\n : `↑ ${formatPercentHundredths(value, this.i18n)}`;\r\n }\r\n\r\n get property() {\r\n return {\r\n get(item) {\r\n return _.chain(item.Opportunities).first().result('WoWInDecimal').value()\r\n || _.chain(item.Opportunities).first().result('WoW').value();\r\n },\r\n key: 'Opportunities/WoWInDecimal',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport {\r\n formatDecimal,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class SearchVolumeColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, recommendationType, isOptimizationScoreOn }) {\r\n const title = i18n.getString('Details_View_Search_Volume') || 'Search volume per month';\r\n\r\n super({\r\n name: 'searchVolume',\r\n property: 'Opportunities/MonthlySearchVolume',\r\n title,\r\n bodyClasses: ['grid-column-searchVolume', isOptimizationScoreOn ? 'with-optimization-score' : ''],\r\n colClasses: ['col-searchVolume'],\r\n sortable: 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.RisingQueryKeywordOpportunitySummary/MonthlySearchVolume',\r\n helpId: 'Pop_BA_Recommendations_SearchVolPerMonth',\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n template({ value }) {\r\n return formatDecimal(value, this.i18n);\r\n }\r\n\r\n get property() {\r\n return {\r\n get(item) {\r\n return _.chain(item.Opportunities).first().result('MonthlySearchVolume').value();\r\n },\r\n key: 'Opportunities/MonthlySearchVolume',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\nimport { GOAL_OPERATOR_TYPES_STRING_VALUES, CONTEXTUAL_ENTITY_TYPE } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nimport template from './goal-setting-column.pug';\r\n\r\nexport class GoalSettingColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n super({\r\n name: 'GoalSetting',\r\n property: 'GoalSetting',\r\n title: i18n.getString('Details_View_Goal_Setting'),\r\n bodyClasses: ['grid-column-goalSetting', 'actionable'],\r\n colClasses: ['col-longText'],\r\n type: 'string',\r\n });\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n },\r\n }) {\r\n const opportunity = _.first(Opportunities);\r\n const goalTypeCode = opportunity.GoalTypeCode;\r\n let suggestedGoal;\r\n if (goalTypeCode === 'DestinationGoal') {\r\n const { SuggestedGoal } = opportunity;\r\n suggestedGoal = {\r\n destinationUrl: SuggestedGoal.DestinationUrl,\r\n destinationURLOperator: this.i18n.getString(GOAL_OPERATOR_TYPES_STRING_VALUES[\r\n SuggestedGoal.DestinationURLOperator\r\n ]),\r\n };\r\n } else if (goalTypeCode === 'EventGoal') {\r\n const {\r\n Category,\r\n CategoryOperator,\r\n Action,\r\n ActionOperator,\r\n Label,\r\n LabelOperator,\r\n Value,\r\n ValueOperator,\r\n } = opportunity.SuggestedEventGoal;\r\n suggestedGoal = {\r\n CategoryTitle: `${this.newI18n.getString(_TL_('Category'))} :`,\r\n Category,\r\n CategoryOperator: !_.isUndefined(GOAL_OPERATOR_TYPES_STRING_VALUES[CategoryOperator])\r\n && `${this.i18n.getString(GOAL_OPERATOR_TYPES_STRING_VALUES[CategoryOperator])} `,\r\n ActionTitle: `${this.newI18n.getString(_TL_('Action'))} :`,\r\n Action,\r\n ActionOperator: !_.isUndefined(GOAL_OPERATOR_TYPES_STRING_VALUES[ActionOperator])\r\n && `${this.i18n.getString(GOAL_OPERATOR_TYPES_STRING_VALUES[ActionOperator])} `,\r\n LabelTitle: `${this.newI18n.getString(_TL_('Label'))} :`,\r\n Label,\r\n LabelOperator: !_.isUndefined(GOAL_OPERATOR_TYPES_STRING_VALUES[LabelOperator])\r\n && `${this.i18n.getString(GOAL_OPERATOR_TYPES_STRING_VALUES[LabelOperator])} `,\r\n ValueTitle: `${this.newI18n.getString(_TL_('Value'))} :`,\r\n Value,\r\n ValueOperator: !_.isUndefined(GOAL_OPERATOR_TYPES_STRING_VALUES[ValueOperator])\r\n && `${this.i18n.getString(GOAL_OPERATOR_TYPES_STRING_VALUES[ValueOperator])} `,\r\n };\r\n } else if (goalTypeCode === 'ClarityEventGoal') {\r\n const { ConversionClarityButtons } = opportunity.SuggestedClarityEventGoal;\r\n const {\r\n IsFromMultipleURL,\r\n SourceURL,\r\n Text,\r\n } = _.first(ConversionClarityButtons);\r\n\r\n const buttonTextElement = `\"${Text}\"`;\r\n const clarityEventGoalSetting = this.newI18n.getString(_TL_('Button {0} on {1}')).replace('{0}', buttonTextElement).replace('{1}', SourceURL)\r\n + (IsFromMultipleURL ? this.newI18n.getString(_TL_(' and other similar websites')) : '');\r\n suggestedGoal = {\r\n clarityEventGoalSetting,\r\n conversionClarityButtonsCount: _.size(ConversionClarityButtons),\r\n moreConversionClarityButtons: withContextualAttributeTemplate({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: ` +${this.i18n.getString('Recommendation_Grid_Todo_More', { count: _.size(ConversionClarityButtons) - 1 })}`,\r\n entityId: `${opportunity.OpportunityId}_moreConversionClarityButtons`,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.MORE_CONVERSION_CLARITY_BUTTONS,\r\n status: 'false',\r\n }),\r\n };\r\n }\r\n\r\n return template({\r\n suggestedGoal,\r\n goalTypeCode,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'GoalSetting',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { CONTEXTUAL_ENTITY_TYPE } from '@bingads-webui-campaign/recommendation-core';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\n\r\nimport template from './generated-from-column.pug';\r\n\r\nexport class GeneratedFromColumn extends ProjectionGridBaseColumn {\r\n constructor({ newI18n }) {\r\n super({\r\n name: 'GeneratedFrom',\r\n property: 'GeneratedFrom',\r\n title: newI18n.getString(_TL_('Generated From')),\r\n bodyClasses: ['grid-column-generateFrom', 'actionable'],\r\n colClasses: ['col-normalText'],\r\n type: 'string',\r\n });\r\n\r\n this.newI18n = newI18n;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n },\r\n }) {\r\n const opportunity = _.first(Opportunities);\r\n let generatedFrom;\r\n if (opportunity.GoalTypeCode === 'DestinationGoal') {\r\n generatedFrom = this.newI18n.getString(_TL_('Website URL from UET'));\r\n } else if (opportunity.GoalTypeCode === 'EventGoal') {\r\n generatedFrom = this.newI18n.getString(_TL_('URL sending Custom Events'));\r\n } else if (opportunity.GoalTypeCode === 'ClarityEventGoal') {\r\n generatedFrom = this.newI18n.getString(_TL_('Clicked Events from Clarity'));\r\n }\r\n\r\n let Urls;\r\n if (opportunity.GoalTypeCode === 'ClarityEventGoal') {\r\n Urls = generatedFrom;\r\n } else {\r\n Urls = withContextualAttributeTemplate({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: generatedFrom,\r\n entityId: _.isNull(opportunity.GoalId) ? undefined : opportunity.GoalId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.GENERATED_FROM,\r\n status: 'false',\r\n pageUrls: opportunity.PageUrls,\r\n style: { color: 'black' },\r\n });\r\n }\r\n\r\n return template({\r\n Urls,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'GeneratedFrom',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { ISSUE_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class IssueTypeColumn extends ProjectionGridBaseColumn {\r\n constructor({ newI18n, s$i18n }) {\r\n super({\r\n name: 'IssueType',\r\n property: 'IssueType',\r\n title: newI18n.getString(_TL_('Issue type')),\r\n bodyClasses: ['grid-column-issueType', 'actionable'],\r\n colClasses: ['col-normalText'],\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_UET_Type',\r\n });\r\n this.newI18n = newI18n;\r\n this.s$i18n = s$i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n },\r\n }) {\r\n return ISSUE_TYPES[Opportunities[0].IssueType] || this.s$i18n.value('Goal', 'Type', Opportunities[0].GoalTypeCode);\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'IssueType',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport template from './action-hybrid-column.pug';\r\n\r\nexport class ActionHybridColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n i18n, readOnly,\r\n }) {\r\n super({\r\n name: 'Action',\r\n property: 'Recommendation/ActionHybrid',\r\n title: i18n.getString('ColumnName_Action') || 'Action',\r\n bodyClasses: ['inline-action-hybrid-column'],\r\n colClasses: ['col-hybrid'],\r\n });\r\n this.i18n = i18n;\r\n this.readOnly = readOnly;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n },\r\n }) {\r\n const { i18n, readOnly } = this;\r\n const entity = _.first(Opportunities);\r\n\r\n return template({\r\n i18n,\r\n readOnly,\r\n issueTypeId: entity.IssueType,\r\n goalValueSourceId: entity.RevenueValue && entity.RevenueValue.GoalValueSourceId,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n };\r\n }\r\n}\r\n","import { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\n\r\nexport class FacebookImportToDoColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n const title = i18n.getString('ColumnName_WhatYouCanDo');\r\n super({\r\n name: 'facebookImportToDo',\r\n property: 'FacebookImportToDo',\r\n title,\r\n bodyClasses: ['grid-column-whatyoucando'],\r\n colClasses: ['col-superLongText'],\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.newI18n = newI18n;\r\n }\r\n\r\n template() {\r\n const { newI18n } = this;\r\n return newI18n.getString(_TL_('Import campaigns directly from Meta Ads'));\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport recommendedAdTemplate from './preview-mma-column.pug';\r\n\r\nexport class PreviewMMAColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n deps = {\r\n adDisplayUrlService: null,\r\n combineText: null,\r\n },\r\n scope,\r\n i18n,\r\n newI18n,\r\n }) {\r\n const title = newI18n.getString(_TL_('Multimedia ad preview'));\r\n\r\n super({\r\n name: 'PreviewdMMA',\r\n property: 'PreviewdMMA',\r\n title,\r\n sortable: false,\r\n type: 'string',\r\n helpId: 'pop_BA_Recommendations_SuggestedAd',\r\n bodyClasses: ['suggested-mma-preview-column'],\r\n colClasses: ['mma-col-ads-preview'],\r\n helpAriaLabel: title,\r\n });\r\n\r\n this.scope = scope;\r\n this.deps = deps;\r\n this.i18n = i18n;\r\n }\r\n\r\n pickProperty(recommendation) {\r\n const opportunity = recommendation.Opportunities[0];\r\n const { OpportunityType } = opportunity;\r\n\r\n const {\r\n BusinessName,\r\n Images,\r\n FinalUrl,\r\n } = opportunity;\r\n\r\n let {\r\n Headline,\r\n Description,\r\n } = opportunity;\r\n\r\n const {\r\n Headlines,\r\n Descriptions,\r\n } = opportunity;\r\n\r\n Headline = _.result(_.first(Headlines), 'Text') || Headline;\r\n Description = _.result(_.first(Descriptions), 'Text') || Description;\r\n\r\n let landscapeImageMediaUrl = '';\r\n if (!_.isEmpty(Images)) {\r\n let imageUrlToUse = _.first(Images).ImageUrl;\r\n\r\n // strip off the resizing from MT as we need a smaller resizing\r\n const indexOfResizeInfo = imageUrlToUse.indexOf('&w=');\r\n if (indexOfResizeInfo > 0) {\r\n imageUrlToUse = imageUrlToUse.substr(0, indexOfResizeInfo);\r\n }\r\n\r\n const responsiveAdThumbnailWidth = 114;\r\n const responsiveAdThumbnailHeight = 60;\r\n const resizeQueryString = `&w=${responsiveAdThumbnailWidth}&h=${responsiveAdThumbnailHeight}`;\r\n\r\n landscapeImageMediaUrl = `${imageUrlToUse}${resizeQueryString}`;\r\n }\r\n\r\n const pickProperities = {\r\n headlineCount: _.size(Headlines),\r\n textCount: _.size(Descriptions),\r\n imageCount: _.size(Images),\r\n Headline,\r\n BusinessName,\r\n FinalUrl,\r\n Text: Description,\r\n landscapeImageMediaUrl,\r\n convertedDisplayUrl:\r\n this.deps.adDisplayUrlService.getExpandedTextAdDisplayUrl(FinalUrl),\r\n i18n: this.i18n,\r\n };\r\n\r\n return _.defaults({\r\n OpportunityType,\r\n }, pickProperities);\r\n }\r\n\r\n get template() { return recommendedAdTemplate; }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport recommendedAdTemplate from './preview-image-extension-column.pug';\r\n\r\nexport class PreviewImageExtensionColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n scope,\r\n i18n,\r\n newI18n,\r\n deps,\r\n }) {\r\n const title = newI18n.getString(_TL_('Image extension'));\r\n\r\n super({\r\n name: 'PreviewImageExtension',\r\n property: 'PreviewImageExtension',\r\n title,\r\n sortable: false,\r\n type: 'string',\r\n helpId: 'pop_BA_CampaignGrids_AdExtensions',\r\n bodyClasses: ['suggested-image-extension-preview-column'],\r\n colClasses: ['mma-col-ads-preview'],\r\n helpAriaLabel: title,\r\n });\r\n\r\n this.scope = scope;\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n this.deps = deps;\r\n }\r\n\r\n pickProperty(recommendation) {\r\n const opportunity = recommendation.Opportunities[0];\r\n const { OpportunityType } = opportunity;\r\n const { IsRecommendationGetShutterStockImageFromUXEnabled } = this.deps.permissions;\r\n\r\n const {\r\n AlternativeText,\r\n DisplayText,\r\n FinalURL,\r\n StockImages,\r\n WebsiteImages,\r\n } = opportunity;\r\n\r\n let landscapeImageMediaUrl;\r\n\r\n if (!_.isEmpty(WebsiteImages) && !_.isEmpty(_.first(WebsiteImages).ImageURL)) {\r\n landscapeImageMediaUrl = _.first(WebsiteImages).ImageURL;\r\n } else if (\r\n !IsRecommendationGetShutterStockImageFromUXEnabled\r\n && !_.isEmpty(StockImages)\r\n && !_.isEmpty(_.first(StockImages).ThumbnailURL)) {\r\n landscapeImageMediaUrl = _.first(StockImages).ThumbnailURL;\r\n }\r\n\r\n const pickProperities = {\r\n DisplayText,\r\n AlternativeText,\r\n FinalURL,\r\n i18n: this.i18n,\r\n newI18n: this.newI18n,\r\n hasImages: !_.isEmpty(landscapeImageMediaUrl),\r\n landscapeImageMediaUrl,\r\n noImageText: this.newI18n.getString(_TL_('Image preview is not currently available. Please select the \"+\" thumbnail or the Add image extension button to add an image extension.')),\r\n IsRecommendationGetShutterStockImageFromUXEnabled,\r\n };\r\n\r\n return _.defaults({\r\n OpportunityType,\r\n }, pickProperities);\r\n }\r\n\r\n get template() { return recommendedAdTemplate; }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport template from './action-image-extension-column.pug';\r\n\r\nexport class ActionImageExtensionColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n i18n,\r\n readOnly,\r\n newI18n,\r\n deps,\r\n }) {\r\n super({\r\n name: 'Action',\r\n property: 'Recommendation/ActionImageExtension',\r\n title: i18n.getString('ColumnName_Action') || 'Action',\r\n bodyClasses: ['inline-action-image-extension-column'],\r\n colClasses: ['col-applyEdit'],\r\n });\r\n this.i18n = i18n;\r\n this.readOnly = readOnly;\r\n this.newI18n = newI18n;\r\n this.deps = deps;\r\n }\r\n\r\n pickProperty(recommendation) {\r\n const {\r\n i18n,\r\n readOnly,\r\n deps,\r\n newI18n,\r\n } = this;\r\n const opportunity = recommendation.Opportunities[0];\r\n const { OpportunityType } = opportunity;\r\n const {\r\n StockImages,\r\n WebsiteImages,\r\n } = opportunity;\r\n const { IsRecommendationGetShutterStockImageFromUXEnabled } = deps.permissions;\r\n\r\n const pickProperities = {\r\n hasImage: (!_.isEmpty(WebsiteImages) && !_.isEmpty(_.first(WebsiteImages).ImageURL))\r\n || (!IsRecommendationGetShutterStockImageFromUXEnabled && !_.isEmpty(StockImages)\r\n && !_.isEmpty(_.first(StockImages).ThumbnailURL)),\r\n i18n,\r\n readOnly,\r\n action: newI18n.getString(_TL_('Add image extension')),\r\n IsRecommendationGetShutterStockImageFromUXEnabled,\r\n };\r\n\r\n return _.defaults({\r\n OpportunityType,\r\n }, pickProperities);\r\n }\r\n\r\n get template() { return template; }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\n\r\nexport class ImageExtensionSourceColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n super({\r\n name: 'ImageExtensionSource',\r\n property: 'Opportunities/ImageExtensionSource',\r\n title: newI18n.getString(_TL_('Source')),\r\n bodyClasses: ['grid-column-ImageExtensionSource'],\r\n colClasses: ['col-longText'],\r\n sortable: 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.ImageExtensionOpportunitySummary/ImageSourceStr',\r\n helpId: 'pop_BA_ImageExtension_Source',\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about source'),\r\n });\r\n this.newI18n = newI18n;\r\n }\r\n\r\n get property() {\r\n const { newI18n } = this;\r\n return {\r\n get(item) {\r\n const opportunity = _.first(item.Opportunities);\r\n return opportunity.ImageSourceStr === 'StockImage' ?\r\n newI18n.getString(_TL_('Stock images')) :\r\n newI18n.getString(_TL_('Website'));\r\n },\r\n key: 'Opportunities/ImageExtensionSource',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatMatchTypeStr } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class MatchTypeNewColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n, recommendationType }) {\r\n const title = newI18n.getString(_TL_('Match type'));\r\n\r\n super({\r\n name: 'matchTypeStr',\r\n property: 'Opportunities/MatchTypeStr',\r\n title,\r\n bodyClasses: ['grid-column-matchType'],\r\n colClasses: ['col-matchType'],\r\n helpId: 'Pop_BA_Recommendations_MatchType',\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n template({ value }) {\r\n return formatMatchTypeStr(value, this.i18n);\r\n }\r\n\r\n get property() {\r\n return {\r\n get(item) {\r\n const matchType = 'MatchTypeStr';\r\n return _.chain(item.Opportunities).first().result(matchType).value();\r\n },\r\n key: 'Opportunities/MatchTypeStr',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\n\r\nexport class ParamColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n, recommendationType }) {\r\n const title = newI18n.getString(_TL_('Param'));\r\n\r\n super({\r\n name: 'param',\r\n property: 'Opportunities/Param',\r\n title,\r\n bodyClasses: ['grid-column-param'],\r\n colClasses: ['col-normalText'],\r\n helpId: 'Pop_BA_Recommendations_KeywordParameters',\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.newI18n = newI18n;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n template({\r\n value: {\r\n RawSuggParam1,\r\n RawSuggParam2,\r\n RawSuggParam3,\r\n },\r\n }) {\r\n const { newI18n } = this;\r\n if (!_.isEmpty(RawSuggParam1)) {\r\n return newI18n.getString(_TL_('Param1'));\r\n } else if (!_.isEmpty(RawSuggParam2)) {\r\n return newI18n.getString(_TL_('Param2'));\r\n } else if (!_.isEmpty(RawSuggParam3)) {\r\n return newI18n.getString(_TL_('Param3'));\r\n }\r\n return '';\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import * as PopupEditor from '@bingads-webui/popup-editor';\r\nimport { InlineSuggestedParamValueSave } from './save';\r\n\r\nexport function InlineSuggestedParamValueColumnPrompt({\r\n position, item, field, view, i18n, newI18n, key,\r\n}) {\r\n const schema = {\r\n key: 'Id',\r\n name: 'Keyword',\r\n parent: 'AdGroup',\r\n properties: {\r\n Param1: {\r\n $ref: 'Edm/String', type: 'string', name: 'String', bulkDeleteValueIfEmpty: true,\r\n },\r\n Param2: {\r\n $ref: 'Edm/String', type: 'string', name: 'String', bulkDeleteValueIfEmpty: true,\r\n },\r\n Param3: {\r\n $ref: 'Edm/String', type: 'string', name: 'String', bulkDeleteValueIfEmpty: true,\r\n },\r\n },\r\n type: 'object',\r\n };\r\n\r\n const fields = [field];\r\n\r\n PopupEditor.prompt({\r\n position,\r\n i18n,\r\n schema,\r\n model: item,\r\n fields,\r\n hasLabels: false,\r\n template: 'inline',\r\n parentContainerSelector: '.grid-and-disclaim-container',\r\n saveModel: (updated, editorView) =>\r\n InlineSuggestedParamValueSave({\r\n view,\r\n updated,\r\n key,\r\n editorView,\r\n field,\r\n newI18n,\r\n }),\r\n });\r\n}\r\n","import _ from 'underscore';\r\n\r\nexport function InlineSuggestedParamValueSave({\r\n key,\r\n view,\r\n updated,\r\n editorView,\r\n field,\r\n newI18n,\r\n}) {\r\n const paramValue = updated[field];\r\n\r\n const text = newI18n.getString(_TL_('This dynamic text placeholder is causing one or more parts of your ad to exceed the character limits.'));\r\n const helpURL = 'http://go.microsoft.com/fwlink?LinkId=534338';\r\n let error;\r\n if (field === 'Param1' && paramValue.length > 1024) {\r\n error = { Param1: `${text}` };\r\n } else if (field === 'Param2' && paramValue.length > 70) {\r\n error = { Param2: `${text}` };\r\n } else if (field === 'Param3' && paramValue.length > 70) {\r\n error = { Param3: `${text}` };\r\n }\r\n\r\n if (_.isUndefined(error)) {\r\n const recommendation = view.grid.gridView.itemWithKey(key);\r\n if (!_.isNull(recommendation)) {\r\n _.first(recommendation.Opportunities)[field] = paramValue;\r\n\r\n // Append the current selected one into existing selected ones.\r\n const selectedKeys = view.grid.gridView.selectedKeys();\r\n if (!_.contains(selectedKeys, key)) {\r\n selectedKeys.push(key);\r\n }\r\n view.grid.gridView.set({ selection: _.defaults({ selected: selectedKeys }) });\r\n }\r\n editorView.trigger('cancel');\r\n } else if (_.isFunction(editorView.setErrors)) {\r\n editorView.setErrors(error);\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { InlineSuggestedParamValueColumnPrompt } from './param-inline-editable/prompt';\r\n\r\nexport class SuggestedParamValueColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n, view }) {\r\n const title = newI18n.getString(_TL_('Suggested param value'));\r\n\r\n super({\r\n name: 'suggestedParamValue',\r\n property: 'Opportunities/SuggestedParamValue',\r\n title,\r\n bodyClasses: ['grid-column-suggested-param-value', 'actionable'],\r\n colClasses: ['col-mediumText'],\r\n helpId: 'Pop_BA_Recommendations_SuggestedValue',\r\n type: 'string',\r\n editable: () => true,\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n this.view = view;\r\n }\r\n\r\n template({\r\n value: { Opportunities },\r\n }) {\r\n const opportunity = _.first(Opportunities);\r\n if (!_.isUndefined(opportunity.Param1) || !_.isEmpty(opportunity.RawSuggParam1)) {\r\n return !_.isUndefined(opportunity.Param1) ? opportunity.Param1 : opportunity.RawSuggParam1;\r\n } else if (!_.isUndefined(opportunity.Param2) || !_.isEmpty(opportunity.RawSuggParam2)) {\r\n return !_.isUndefined(opportunity.Param2) ? opportunity.Param2 : opportunity.RawSuggParam2;\r\n } else if (!_.isUndefined(opportunity.Param3) || !_.isEmpty(opportunity.RawSuggParam3)) {\r\n return !_.isUndefined(opportunity.Param3) ? opportunity.Param3 : opportunity.RawSuggParam3;\r\n }\r\n return '';\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'Opportunities/SuggestedParamValue',\r\n };\r\n }\r\n\r\n onPrompt({\r\n event,\r\n item,\r\n newPosition,\r\n }) {\r\n const opportunity = _.first(item.Opportunities);\r\n let field;\r\n let param;\r\n if (!_.isUndefined(opportunity.Param1) || !_.isEmpty(opportunity.RawSuggParam1)) {\r\n field = 'Param1';\r\n param = {\r\n Param1: !_.isUndefined(opportunity.Param1) ?\r\n opportunity.Param1 : opportunity.RawSuggParam1,\r\n };\r\n } else if (!_.isUndefined(opportunity.Param2) || !_.isEmpty(opportunity.RawSuggParam2)) {\r\n field = 'Param2';\r\n param = {\r\n Param2: !_.isUndefined(opportunity.Param2) ?\r\n opportunity.Param2 : opportunity.RawSuggParam2,\r\n };\r\n } else if (!_.isUndefined(opportunity.Param3) || !_.isEmpty(opportunity.RawSuggParam3)) {\r\n field = 'Param3';\r\n param = {\r\n Param3: !_.isUndefined(opportunity.Param3) ?\r\n opportunity.Param3 : opportunity.RawSuggParam3,\r\n };\r\n }\r\n\r\n InlineSuggestedParamValueColumnPrompt({\r\n position: newPosition,\r\n item: param,\r\n field,\r\n view: this.view,\r\n i18n: this.i18n,\r\n newI18n: this.newI18n,\r\n key: $(event.target).parents('tr[data-key]').data('key'),\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\n\r\nimport template from './preview-improve-rsa-column.pug';\r\n\r\nexport class PreviewImproveRSAColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n deps = {\r\n adDisplayUrlService: null,\r\n combineText: null,\r\n },\r\n i18n,\r\n newI18n,\r\n }) {\r\n super({\r\n name: 'PreviewdAd',\r\n property: 'PreviewdAd',\r\n title: newI18n.getString(_TL_('Responsive Search ads recommendations')),\r\n sortable: false,\r\n bodyClasses: ['suggested-ads-preview-column'],\r\n colClasses: ['rsa-col-ads-preview'],\r\n });\r\n\r\n this.deps = deps;\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n }\r\n\r\n template({ value: { SuggestedAssets } }) {\r\n const { i18n, newI18n } = this;\r\n const urlRegex = new RegExp('http:\\/\\/|https:\\/\\/|\\{param', 'i'); // eslint-disable-line no-useless-escape\r\n let destinationUrl = SuggestedAssets.FinalUrl;\r\n // add http for destinatioUrl that did not have them.\r\n if (destinationUrl && destinationUrl.search(urlRegex) === -1) {\r\n destinationUrl = `http://${destinationUrl}`;\r\n }\r\n\r\n let moreHeadlines;\r\n if (_.size(SuggestedAssets.Headlines) > 3) {\r\n moreHeadlines = ` +${i18n.getString('Recommendation_Grid_Todo_More', {\r\n count: _.size(SuggestedAssets.Headlines) - 3,\r\n })}`;\r\n }\r\n\r\n let moreDescriptions;\r\n if (_.size(SuggestedAssets.Descriptions) > 2) {\r\n moreDescriptions = ` +${i18n.getString('Recommendation_Grid_Todo_More', {\r\n count: _.size(SuggestedAssets.Descriptions) - 2,\r\n })}`;\r\n }\r\n\r\n const ad = {\r\n convertedTitle: _.compact([\r\n SuggestedAssets.Headlines[0].Text,\r\n SuggestedAssets.Headlines[1].Text,\r\n SuggestedAssets.Headlines[2].Text]).join(' | '),\r\n convertedText: this.deps.combineText(\r\n SuggestedAssets.Descriptions[0].Text,\r\n SuggestedAssets.Descriptions[1].Text\r\n ),\r\n convertedFinalUrl: destinationUrl,\r\n convertedDisplayUrl: this.deps.adDisplayUrlService.getExpandedTextAdDisplayUrl(\r\n destinationUrl,\r\n null,\r\n SuggestedAssets.Path1,\r\n SuggestedAssets.Path2\r\n ),\r\n title: i18n.getString('Entity_Ads'),\r\n };\r\n\r\n let numberOfSuggestedHeadline = 0;\r\n const lastExistingHeadlineIndex = _.findLastIndex(SuggestedAssets.Headlines, { Source: 'AdvExt_Headline' });\r\n if (lastExistingHeadlineIndex !== -1) {\r\n numberOfSuggestedHeadline = SuggestedAssets.Headlines.length - lastExistingHeadlineIndex - 1;\r\n }\r\n\r\n let numberOfSuggestedDescription = 0;\r\n const lastExistingDescriptionsIndex = _.findLastIndex(SuggestedAssets.Descriptions, { Source: 'AdvExt_Description' });\r\n if (lastExistingDescriptionsIndex !== -1) {\r\n numberOfSuggestedDescription = SuggestedAssets.Descriptions.length - lastExistingDescriptionsIndex - 1;\r\n }\r\n\r\n let numberOfSuggestedHeadlineDescription;\r\n\r\n if (numberOfSuggestedHeadline >= 0 && numberOfSuggestedDescription >= 0) {\r\n if (numberOfSuggestedHeadline === 1 && numberOfSuggestedDescription === 1) {\r\n numberOfSuggestedHeadlineDescription\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedHeadline}} headline and {{numberOfSuggestedDescription}} description'),\r\n { numberOfSuggestedHeadline, numberOfSuggestedDescription }\r\n );\r\n } else if (numberOfSuggestedHeadline > 1 && numberOfSuggestedDescription === 1) {\r\n numberOfSuggestedHeadlineDescription\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedHeadline}} headlines and {{numberOfSuggestedDescription}} description'),\r\n { numberOfSuggestedHeadline, numberOfSuggestedDescription }\r\n );\r\n } else if (numberOfSuggestedHeadline === 1 && numberOfSuggestedDescription > 1) {\r\n numberOfSuggestedHeadlineDescription\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedHeadline}} headline and {{numberOfSuggestedDescription}} descriptions'),\r\n { numberOfSuggestedHeadline, numberOfSuggestedDescription }\r\n );\r\n } else if (numberOfSuggestedHeadline > 1 && numberOfSuggestedDescription > 1) {\r\n numberOfSuggestedHeadlineDescription\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedHeadline}} headlines and {{numberOfSuggestedDescription}} descriptions'),\r\n { numberOfSuggestedHeadline, numberOfSuggestedDescription }\r\n );\r\n } else if (numberOfSuggestedHeadline === 1 && numberOfSuggestedDescription === 0) {\r\n numberOfSuggestedHeadlineDescription\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedHeadline}} headline'),\r\n { numberOfSuggestedHeadline }\r\n );\r\n } else if (numberOfSuggestedHeadline > 1 && numberOfSuggestedDescription === 0) {\r\n numberOfSuggestedHeadlineDescription\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedHeadline}} headlines'),\r\n { numberOfSuggestedHeadline }\r\n );\r\n } else if (numberOfSuggestedHeadline === 0 && numberOfSuggestedDescription === 1) {\r\n numberOfSuggestedHeadlineDescription\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedDescription}} description'),\r\n { numberOfSuggestedDescription }\r\n );\r\n } else if (numberOfSuggestedHeadline === 0 && numberOfSuggestedDescription > 1) {\r\n numberOfSuggestedHeadlineDescription\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedDescription}} descriptions'),\r\n { numberOfSuggestedDescription }\r\n );\r\n }\r\n }\r\n\r\n return template({\r\n i18n: this.i18n,\r\n ad,\r\n moreHeadlines,\r\n moreDescriptions,\r\n numberOfSuggestedHeadlineDescription,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { getFieldValueFromGridData } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class ProductGroupColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n const title = newI18n.getString(_TL_('Product group'));\r\n super({\r\n name: 'ProductGroup',\r\n property: 'Opportunities/ProductGroup',\r\n title,\r\n bodyClasses: ['grid-column-productGroup'],\r\n colClasses: ['col-shortText'],\r\n sortable: false,\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n GridData,\r\n },\r\n }) {\r\n return getFieldValueFromGridData(GridData, 'ProductCondition1');\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { getFieldValueFromGridData, formatBid } from '@bingads-webui-campaign/recommendation-core';\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport InlineBudgetEditor from '@bingads-webui-campaign-legacy/budget/view/inline-budget-editor';\r\n\r\nclass CustomizedInlineBudgetEditor extends InlineBudgetEditor {\r\n initialize({\r\n item, $elToBlock, isForVNext, permissions, currencySymbol, clientName, perfMarker, key, view,\r\n }) {\r\n this.key = key;\r\n this.view = view;\r\n super.initialize({\r\n item,\r\n $elToBlock,\r\n isForVNext,\r\n permissions,\r\n currencySymbol,\r\n clientName,\r\n perfMarker,\r\n });\r\n }\r\n\r\n save() {\r\n if (!this.viewModel.isValid()) {\r\n return;\r\n }\r\n\r\n const { view, key } = this;\r\n const recommendation = view.grid.gridView.itemWithKey(key);\r\n\r\n if (!_.isNull(recommendation)) {\r\n const updatedBudget = _.defaults(this.viewModel.toObject(), this.item.Budget);\r\n if (this.viewModel.Amount.isValid()) {\r\n _.first(recommendation.Opportunities).NewBudget = updatedBudget.Amount;\r\n }\r\n // Append the current selected one into existing selected ones.\r\n const selectedKeys = view.grid.gridView.selectedKeys();\r\n if (!_.contains(selectedKeys, key)) {\r\n selectedKeys.push(key);\r\n }\r\n view.grid.gridView.set({ selection: _.defaults({ selected: selectedKeys }) });\r\n }\r\n\r\n this.remove();\r\n }\r\n}\r\n\r\nexport class CampaignBudgetColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n i18n, newI18n, view, deps,\r\n }) {\r\n const title = newI18n.getString(_TL_('Suggested campaign budget'));\r\n super({\r\n name: 'CampaignBudget',\r\n property: 'Opportunities/CampaignBudget',\r\n title,\r\n bodyClasses: ['grid-column-campaignBudget'],\r\n colClasses: ['col-shortNumber'],\r\n sortable: false,\r\n editable: true,\r\n type: 'number',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.currency = this.i18n.currency;\r\n this.permissions = deps.permissions;\r\n this.view = view;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n },\r\n }) {\r\n const { i18n, currency } = this;\r\n _.first(Opportunities).SuggestedBudget = getFieldValueFromGridData(_.chain(Opportunities).first().result('GridData').value(), 'Budget');\r\n const suggestedBudgetValue = _.chain(Opportunities).first().result('SuggestedBudget').value();\r\n return formatBid(_.chain(Opportunities).first().result('NewBudget').value() || suggestedBudgetValue, i18n, currency);\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'CampaignBudget',\r\n };\r\n }\r\n\r\n onPrompt({\r\n event, item, newPosition,\r\n }) {\r\n const Budget = { Budget: { Amount: _.chain(item.Opportunities).first().result('NewBudget').value() || _.chain(item.Opportunities).first().result('SuggestedBudget').value(), Type: 'DailyStandard' } };\r\n _.extend(item, Budget, { Id: -1, CampaignType: 'Shopping' });\r\n const key = $(event.target).parents('tr[data-key]').data('key');\r\n const editor = new CustomizedInlineBudgetEditor({\r\n item,\r\n $elToBlock: this.view.grid.gridView.$el,\r\n isForVNext: true,\r\n permissions: this.permissions,\r\n currencySymbol: this.i18n.getCurrencySymbol(),\r\n clientName: 'CampaignTabEditing',\r\n perfMarker: null,\r\n key,\r\n view: this.view,\r\n });\r\n\r\n const editorView = new GridCustomizedPopupEditor({\r\n editorView: editor.render(),\r\n cellPosition: newPosition,\r\n renderBelow: false,\r\n className: 'grid-popupeditor grid-group-other inline-budget-editor-popup',\r\n parentContainerSelector: '.grid-and-disclaim-container',\r\n });\r\n\r\n editorView.render();\r\n return editorView;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { getFieldValueFromGridData } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class CampaignPriorityColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n const title = newI18n.getString(_TL_('Campaign priority'));\r\n super({\r\n name: 'CampaignPriority',\r\n property: 'Opportunities/CampaignPriority',\r\n title,\r\n bodyClasses: ['grid-column-campaignPriority'],\r\n colClasses: ['col-shortText'],\r\n sortable: false,\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n GridData,\r\n },\r\n }) {\r\n return getFieldValueFromGridData(GridData, 'Priority');\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { getFieldValueFromGridData } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class StoreCountryColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n const title = newI18n.getString(_TL_('Store & Country'));\r\n super({\r\n name: 'StoreCountry',\r\n property: 'Opportunities/StoreCountry',\r\n title,\r\n bodyClasses: ['grid-column-storeCountry'],\r\n colClasses: ['col-middleText'],\r\n sortable: false,\r\n type: 'string',\r\n helpId: 'pop_BA_Store_Country',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n }\r\n\r\n template({\r\n value: {\r\n GridData,\r\n StoreName,\r\n CountryCode,\r\n },\r\n }) {\r\n const storeId = `ID: ${getFieldValueFromGridData(GridData, 'StoreId')}
`;\r\n const storeName = `${this.newI18n.getString(_TL_('Name'))}: ${StoreName}
`;\r\n const country = !_.isUndefined(this.i18n.getString(`UserCountry_${CountryCode}`)) ?\r\n this.i18n.getString(`UserCountry_${CountryCode}`) : CountryCode;\r\n const countryname = `${this.newI18n.getString(_TL_('Country/region'))}: ${country}`;\r\n return storeId + storeName + countryname;\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatDecimal } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class ProductTargetedColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n const title = newI18n.getString(_TL_('Product targeted'));\r\n super({\r\n name: 'ProductTargeted',\r\n property: 'Opportunities/ProductTargeted',\r\n title,\r\n bodyClasses: ['grid-column-productTargeted'],\r\n colClasses: ['col-shortNumber'],\r\n sortable: false,\r\n type: 'number',\r\n helpId: 'pop_BA_Product_Targeted',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n }\r\n\r\n template({\r\n value: {\r\n TotalUntargetedOfferCnt,\r\n },\r\n }) {\r\n return `+${formatDecimal(TotalUntargetedOfferCnt, this.i18n)}`;\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport {\r\n formatBid,\r\n getFieldValueFromGridData,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport { ProductGroupsEditBidsView } from '@bingads-webui-campaign/product-group';\r\nimport decimalFormatter from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport { ProductGroup } from '@bingads-webui-campaign/campaign-ui-schemas';\r\n\r\nimport { isSuggestedBidSupported } from '../const';\r\nimport template from './suggested-bid-product-group-column.pug';\r\n\r\nclass CustomizedProductGroupsEditBidsView extends ProductGroupsEditBidsView {\r\n initialize({\r\n view,\r\n deps,\r\n BidAmount,\r\n IsExcluded = false,\r\n selectedItems = [],\r\n IsAutoBidding,\r\n key,\r\n } = {}) {\r\n this.key = key;\r\n super.initialize({\r\n view,\r\n deps,\r\n BidAmount,\r\n IsExcluded,\r\n selectedItems,\r\n IsAutoBidding,\r\n });\r\n }\r\n\r\n save() {\r\n if (!this.validate()) {\r\n return;\r\n }\r\n const { view, key } = this;\r\n const recommendation = view.grid.gridView.itemWithKey(key);\r\n\r\n if (!_.isNull(recommendation)) {\r\n if (this.viewModel.Amount.isValid()) {\r\n _.first(recommendation.Opportunities).NewProductGroupBid = this.viewModel.Amount();\r\n }\r\n // Append the current selected one into existing selected ones.\r\n const selectedKeys = view.grid.gridView.selectedKeys();\r\n if (!_.contains(selectedKeys, key)) {\r\n selectedKeys.push(key);\r\n }\r\n view.grid.gridView.set({ selection: _.defaults({ selected: selectedKeys }) });\r\n }\r\n\r\n this.remove();\r\n }\r\n}\r\n\r\nexport class SuggestedBidProductGroupColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n i18n,\r\n newI18n,\r\n recommendationType,\r\n view,\r\n deps,\r\n isMCC,\r\n }) {\r\n super({\r\n name: 'SuggestedBid',\r\n property: 'SuggestedBid',\r\n title: i18n.getString('Details_View_Suggested_Bid') || '__Suggested bid__',\r\n bodyClasses: ['grid-column-suggestedBid', 'actionable'],\r\n colClasses: ['col-shortNumber'],\r\n editable: true,\r\n type: 'number',\r\n enableEdit: item => isSuggestedBidSupported(_.first(item.Opportunities)),\r\n });\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n this.currency = this.i18n.currency;\r\n this.view = view;\r\n this.deps = deps;\r\n this.appConfig = deps.appConfig;\r\n this.jsdata = deps.jsdata;\r\n this.edmCampaign = edm;\r\n this.suggestedBidField = 'SuggestedBid';\r\n this.isMCC = isMCC;\r\n this.recommendationType = recommendationType;\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'SuggestedBid',\r\n };\r\n }\r\n\r\n template({ value: { Opportunities } }) {\r\n const {\r\n i18n, currency, suggestedBidField,\r\n } = this;\r\n let bidValue;\r\n if (isSuggestedBidSupported(_.first(Opportunities))) {\r\n _.first(Opportunities).SuggestedBid = getFieldValueFromGridData(_.chain(Opportunities).first().result('GridData').value(), 'Bid');\r\n const suggestedBidValue = _.chain(Opportunities).first().result(suggestedBidField).value();\r\n bidValue = formatBid(_.chain(Opportunities).first().result('NewProductGroupBid').value() || suggestedBidValue, i18n, currency);\r\n }\r\n return template({\r\n bidValue,\r\n });\r\n }\r\n\r\n onPrompt({\r\n event,\r\n item,\r\n newPosition,\r\n }) {\r\n if ($(event.target).is('a')) {\r\n return undefined;\r\n }\r\n\r\n const key = $(event.target).parents('tr[data-key]').data('key');\r\n\r\n const {\r\n appConfig,\r\n } = this;\r\n\r\n const i18nGlobal = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\n\r\n _.extend(this.deps, {\r\n config: appConfig,\r\n decimal: decimalFormatter,\r\n s$ProductGroup: ProductGroup,\r\n i18nGlobal,\r\n });\r\n\r\n const BidAmount = { Bid: { Amount: _.chain(item.Opportunities).first().result('NewProductGroupBid').value() || _.chain(item.Opportunities).first().result('SuggestedBid').value() } };\r\n const bidEditor = new CustomizedProductGroupsEditBidsView({\r\n view: this.view,\r\n deps: this.deps,\r\n BidAmount,\r\n IsExcluded: false,\r\n IsAutoBidding: false,\r\n selectedItems: [item],\r\n key,\r\n });\r\n\r\n const popupEditor = new GridCustomizedPopupEditor({\r\n editorView: bidEditor.render(),\r\n cellPosition: newPosition,\r\n renderBelow: false,\r\n className: 'grid-popupeditor',\r\n parentContainerSelector: '.grid-and-disclaim-container',\r\n });\r\n popupEditor.render();\r\n\r\n return undefined;\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { getFieldValueFromGridData } from '@bingads-webui-campaign/recommendation-core';\r\nimport { InlineEditableColumnPrompt } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { Campaign } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { isPopupEditorEnabledRecommendationType, InlineCampaignAdGroupEditableSave } from '../const';\r\n\r\nexport class SuggestedShoppingCampaignColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n i18n, newI18n, recommendationType, view,\r\n }) {\r\n const title = newI18n.getString(_TL_('Suggested campaign'));\r\n super({\r\n name: 'CampaignName',\r\n property: 'Opportunities/campaignName',\r\n title,\r\n bodyClasses: ['grid-column-CampaignName', 'actionable'],\r\n colClasses: ['col-middleText'],\r\n sortable: false,\r\n type: 'string',\r\n editable: isPopupEditorEnabledRecommendationType(recommendationType),\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.view = view;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n },\r\n }) {\r\n const opportunity = _.first(Opportunities);\r\n const campaign = opportunity.NewCampaignName || getFieldValueFromGridData(opportunity.GridData, 'CampaignName');\r\n return campaign;\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'CampaignName',\r\n };\r\n }\r\n\r\n onPrompt({\r\n event,\r\n item,\r\n newPosition,\r\n }) {\r\n if ($(event.target).is('a')) {\r\n return undefined;\r\n }\r\n\r\n const opportunity = _.first(item.Opportunities);\r\n _.extend(item, { Name: item.campaignName || getFieldValueFromGridData(opportunity.GridData, 'CampaignName') });\r\n const key = $(event.target).parents('tr[data-key]').data('key');\r\n return InlineEditableColumnPrompt({\r\n position: newPosition,\r\n item,\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'Name',\r\n schema: Campaign,\r\n saveModel: (updated, editorView) =>\r\n InlineCampaignAdGroupEditableSave({\r\n view: this.view,\r\n updated,\r\n key,\r\n editorView,\r\n isCampaign: true,\r\n }),\r\n });\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { getFieldValueFromGridData } from '@bingads-webui-campaign/recommendation-core';\r\nimport { InlineEditableColumnPrompt } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { AdGroup } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { isPopupEditorEnabledRecommendationType, InlineCampaignAdGroupEditableSave } from '../const';\r\n\r\nexport class SuggestedShoppingAdGroupColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n i18n, newI18n, recommendationType, view,\r\n }) {\r\n const title = newI18n.getString(_TL_('Suggested ad group'));\r\n super({\r\n name: 'AdGroupName',\r\n property: 'Opportunities/adgroupName',\r\n title,\r\n bodyClasses: ['grid-column-AdGroupName', 'actionable'],\r\n colClasses: ['col-middleText'],\r\n sortable: false,\r\n type: 'string',\r\n editable: isPopupEditorEnabledRecommendationType(recommendationType),\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.view = view;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n },\r\n }) {\r\n const opportunity = _.first(Opportunities);\r\n const adGroup = opportunity.NewAdGroupName || getFieldValueFromGridData(opportunity.GridData, 'AdGroupName');\r\n return adGroup;\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'AdGroupName',\r\n };\r\n }\r\n\r\n onPrompt({\r\n event,\r\n item,\r\n newPosition,\r\n }) {\r\n if ($(event.target).is('a')) {\r\n return undefined;\r\n }\r\n\r\n const opportunity = _.first(item.Opportunities);\r\n _.extend(item, { Name: item.campaignName || getFieldValueFromGridData(opportunity.GridData, 'AdGroupName') });\r\n const key = $(event.target).parents('tr[data-key]').data('key');\r\n return InlineEditableColumnPrompt({\r\n position: newPosition,\r\n item,\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'Name',\r\n schema: AdGroup,\r\n saveModel: (updated, editorView) =>\r\n InlineCampaignAdGroupEditableSave({\r\n view: this.view,\r\n updated,\r\n key,\r\n editorView,\r\n isCampaign: false,\r\n }),\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\nimport { CONTEXTUAL_ENTITY_TYPE } from '@bingads-webui-campaign/recommendation-core';\r\nimport recommendedAdTemplate from './preview-improve-mma-column.pug';\r\n\r\nexport class PreviewImproveMMAColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n deps = {\r\n adDisplayUrlService: null,\r\n combineText: null,\r\n },\r\n scope,\r\n i18n,\r\n newI18n,\r\n }) {\r\n const title = newI18n.getString(_TL_('Multimedia ads recommendations'));\r\n\r\n super({\r\n name: 'PreviewdMMA',\r\n property: 'PreviewdMMA',\r\n title,\r\n sortable: false,\r\n type: 'string',\r\n bodyClasses: ['suggested-improve-mma-preview-column'],\r\n colClasses: ['mma-col-ads-preview'],\r\n helpAriaLabel: title,\r\n });\r\n\r\n this.scope = scope;\r\n this.deps = deps;\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n }\r\n\r\n pickProperty(recommendation) {\r\n const { newI18n } = this;\r\n const opportunity = recommendation.Opportunities[0];\r\n const { OpportunityType } = opportunity;\r\n\r\n const {\r\n Images,\r\n } = opportunity;\r\n\r\n let {\r\n Headline,\r\n Description,\r\n } = opportunity;\r\n\r\n const {\r\n Headlines,\r\n Descriptions,\r\n LongHeadlines,\r\n } = opportunity;\r\n\r\n Headline = _.result(_.first(Headlines), 'Text') || Headline;\r\n Description = _.result(_.first(Descriptions), 'Text') || Description;\r\n\r\n let landscapeImageMediaUrl = '';\r\n if (!_.isEmpty(Images)) {\r\n const image = _.first(Images);\r\n if (_.isNull(image.AssetIdString)) {\r\n landscapeImageMediaUrl = image.ThumbnailURL;\r\n } else {\r\n let imageUrlToUse = image.ImageURL;\r\n\r\n // strip off the resizing from MT as we need a smaller resizing\r\n const indexOfResizeInfo = imageUrlToUse.indexOf('&w=');\r\n if (indexOfResizeInfo > 0) {\r\n imageUrlToUse = imageUrlToUse.substr(0, indexOfResizeInfo);\r\n }\r\n\r\n const responsiveAdThumbnailWidth = 114;\r\n const responsiveAdThumbnailHeight = 60;\r\n const resizeQueryString = `&w=${responsiveAdThumbnailWidth}&h=${responsiveAdThumbnailHeight}`;\r\n\r\n landscapeImageMediaUrl = `${imageUrlToUse}${resizeQueryString}`;\r\n }\r\n }\r\n\r\n const numberOfSuggestedImage = _.filter(Images, image => _.isNull(image.AssetId)).length;\r\n const numberOfSuggestedHeadline =\r\n _.filter(Headlines, headline => _.isNull(headline.AssetId)).length\r\n + _.filter(LongHeadlines, longHeadline => _.isNull(longHeadline.AssetId)).length;\r\n let numberOfSuggestedImageHeadline;\r\n\r\n if (numberOfSuggestedImage >= 0 && numberOfSuggestedHeadline >= 0) {\r\n if (numberOfSuggestedImage === 1 && numberOfSuggestedHeadline === 1) {\r\n numberOfSuggestedImageHeadline\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedImage}} image and {{numberOfSuggestedHeadline}} headline'),\r\n { numberOfSuggestedImage, numberOfSuggestedHeadline }\r\n );\r\n } else if (numberOfSuggestedImage === 1 && numberOfSuggestedHeadline > 1) {\r\n numberOfSuggestedImageHeadline\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedImage}} image and {{numberOfSuggestedHeadline}} headlines'),\r\n { numberOfSuggestedImage, numberOfSuggestedHeadline }\r\n );\r\n } else if (numberOfSuggestedImage > 1 && numberOfSuggestedHeadline === 1) {\r\n numberOfSuggestedImageHeadline\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedImage}} images and {{numberOfSuggestedHeadline}} headline'),\r\n { numberOfSuggestedImage, numberOfSuggestedHeadline }\r\n );\r\n } else if (numberOfSuggestedImage > 1 && numberOfSuggestedHeadline > 1) {\r\n numberOfSuggestedImageHeadline\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedImage}} images and {{numberOfSuggestedHeadline}} headlines'),\r\n { numberOfSuggestedImage, numberOfSuggestedHeadline }\r\n );\r\n } else if (numberOfSuggestedImage === 0 && numberOfSuggestedHeadline === 1) {\r\n numberOfSuggestedImageHeadline\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedHeadline}} headline'),\r\n { numberOfSuggestedHeadline }\r\n );\r\n } else if (numberOfSuggestedImage === 0 && numberOfSuggestedHeadline > 1) {\r\n numberOfSuggestedImageHeadline\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedHeadline}} headlines'),\r\n { numberOfSuggestedHeadline }\r\n );\r\n } else if (numberOfSuggestedImage === 1 && numberOfSuggestedHeadline === 0) {\r\n numberOfSuggestedImageHeadline\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedImage}} image'),\r\n { numberOfSuggestedImage }\r\n );\r\n } else if (numberOfSuggestedImage > 1 && numberOfSuggestedHeadline === 0) {\r\n numberOfSuggestedImageHeadline\r\n = newI18n.getString(\r\n _TL_('Suggested additional {{numberOfSuggestedImage}} images'),\r\n { numberOfSuggestedImage }\r\n );\r\n }\r\n }\r\n\r\n const pickProperities = {\r\n headlineCount: _.size(Headlines),\r\n textCount: _.size(Descriptions),\r\n imageCount: _.size(Images),\r\n Headline,\r\n Text: Description,\r\n landscapeImageMediaUrl,\r\n i18n: this.i18n,\r\n numberOfSuggestedImageHeadline,\r\n moreImages: withContextualAttributeTemplate({\r\n opportunityId: opportunity.OpportunityId,\r\n entityName: ` +${this.i18n.getString('Recommendation_Grid_Todo_More', { count: _.size(Images) - 1 })}`,\r\n entityId: `${opportunity.OpportunityId}_moreImages`,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.MORE_IMAGES,\r\n status: 'false',\r\n }),\r\n };\r\n\r\n return _.defaults({\r\n OpportunityType,\r\n }, pickProperities);\r\n }\r\n\r\n get template() { return recommendedAdTemplate; }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\n\r\nexport class DSALevelTypeColumn extends ProjectionGridBaseColumn {\r\n constructor({ newI18n }) {\r\n const title = newI18n.getString(_TL_('Type'));\r\n\r\n super({\r\n name: 'DSALevelType',\r\n property: 'DSALevelType',\r\n title,\r\n bodyClasses: ['grid-column-dsaLevelType'],\r\n colClasses: ['col-longText'],\r\n sortable: false,\r\n type: 'string',\r\n });\r\n this.newI18n = newI18n;\r\n }\r\n\r\n template({\r\n value: {\r\n Target: { CampaignId },\r\n },\r\n }) {\r\n return _.isNull(CampaignId) ?\r\n this.newI18n.getString(_TL_('New campaign')) :\r\n this.newI18n.getString(_TL_('New dynamic ad group'));\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\n\r\nimport template from './store-column.pug';\r\n\r\nexport class StoreColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n super({\r\n name: 'Store',\r\n property: 'StoreName',\r\n title: newI18n.getString(_TL_('Store')),\r\n bodyClasses: ['grid-column-storeName', 'actionable'],\r\n colClasses: ['col-longText'],\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Store',\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n StoreName,\r\n },\r\n }) {\r\n return template({ StoreName: _.isEmpty(StoreName) ? '--' : StoreName });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\n\r\nimport template from './country-or-region-column.pug';\r\n\r\nexport class CountryOrRegionColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n super({\r\n name: 'CountryOrRegion',\r\n property: 'CountryOrRegion',\r\n title: newI18n.getString(_TL_('Country or region')),\r\n bodyClasses: ['grid-column-countryOrRegion', 'actionable'],\r\n colClasses: ['col-longText'],\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_Country_Region',\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n CountryOrRegion,\r\n },\r\n }) {\r\n return template({ CountryOrRegion });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: item => _.first(item.Opportunities),\r\n };\r\n }\r\n}\r\n","import { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\n\r\nexport class PerformanceMaxImportDescriptionColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n const title = newI18n.getString(_TL_('What we\\'ll do'));\r\n super({\r\n name: 'performanceMaxImportDescription',\r\n property: 'PerformanceMaxImportDescription',\r\n title,\r\n bodyClasses: ['grid-column-performance-max-import-description'],\r\n colClasses: ['col-superLongText'],\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n }\r\n\r\n template() {\r\n return this.newI18n.getString(_TL_('We\\'ll set up a one-time import using default settings to pull all campaigns from your most recently imported Google Ads account, including your Performance Max campaigns. This import will run 24 hours after you select Create import. We\\'ll notify you once the import is ready for your review.'));\r\n }\r\n}\r\n","import { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\n\r\nexport class PerformanceMaxImportToDoColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n const title = newI18n.getString(_TL_('What you can do'));\r\n super({\r\n name: 'performanceMaxImportToDo',\r\n property: 'PerformanceMaxImportToDo',\r\n title,\r\n bodyClasses: ['grid-column-performance-max-import-todo'],\r\n colClasses: ['col-superLongText'],\r\n type: 'string',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n }\r\n\r\n template() {\r\n return this.newI18n.getString(_TL_('Once set up is complete, please review your import to make sure everything looks correct.'));\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { CONTEXTUAL_ENTITY_TYPE } from '@bingads-webui-campaign/recommendation-core';\r\nimport { withContextualAttributeTemplate } from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\n\r\nimport template from './campaign-column.pug';\r\n\r\nexport class UpgradedCampaignColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n super({\r\n name: 'UpgradedCampaign',\r\n property: 'Target/CampaignName',\r\n title: newI18n.getString(_TL_('Upgraded campaign')),\r\n bodyClasses: ['grid-column-campaignName', 'actionable'],\r\n colClasses: ['col-longText'],\r\n sortable: 'Target/CampaignName',\r\n type: 'string',\r\n helpId: 'pop_BA_Recommendations_DSA_UpgradedCampaign',\r\n });\r\n this.i18n = i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n Opportunities,\r\n Target: { CampaignName, CampaignId },\r\n },\r\n }) {\r\n return template({\r\n campaignAttributes: withContextualAttributeTemplate({\r\n opportunityId: Opportunities[0].OpportunityId,\r\n entityName: CampaignName,\r\n entityId: CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n status: 'false',\r\n ariaLabel: this.i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: CampaignName }),\r\n }),\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n property: 'Target/CampaignName',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatCost, getIncreaseSymbol, isPositive, ESTIMATE_TYPES, NOT_AVAILABLE_DEFAULT_STR } from '@bingads-webui-campaign/recommendation-core';\r\nimport { isKeywordRecsChange } from '../const';\r\nimport template from './delta.pug';\r\n\r\nexport class CPCAvgDeltaColumn extends ProjectionGridBaseColumn {\r\n constructor({\r\n i18n, recommendationType, isOptimizationScoreOn,\r\n }) {\r\n const title = i18n.getString('Details_View_Est_CPC_Avg');\r\n super({\r\n name: 'CPCAvgDelta',\r\n property: 'EstimatedIncreaseInCpc',\r\n title,\r\n bodyClasses: ['grid-column-cpcavgIncrease'],\r\n colClasses: ['col-numberEst'],\r\n sortable: true,\r\n helpId: 'Pop_BA_Recommendations_WeeklyAvgCPC',\r\n type: 'number',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.recommendationType = recommendationType;\r\n this.isOptimizationScoreOn = isOptimizationScoreOn;\r\n }\r\n\r\n template({\r\n value: {\r\n EstimatedIncreaseInCpc, CurrentCpc, Opportunities,\r\n },\r\n }) {\r\n const {\r\n i18n, recommendationType, isOptimizationScoreOn,\r\n } = this;\r\n\r\n if (isKeywordRecsChange(_.first(Opportunities), recommendationType, i18n)) {\r\n return template({\r\n notDefault: true,\r\n NOT_AVAILABLE_DEFAULT_STR,\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n\r\n if (!_.isNumber(CurrentCpc)\r\n || !_.isNumber(EstimatedIncreaseInCpc)) {\r\n return template({\r\n i18n,\r\n isNegative: true,\r\n notAvailable: true,\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n\r\n return template({\r\n deltaVal: formatCost(EstimatedIncreaseInCpc, i18n, i18n.currency),\r\n fromVal: formatCost(CurrentCpc, i18n, i18n.currency),\r\n toVal: formatCost(CurrentCpc + EstimatedIncreaseInCpc, i18n, i18n.currency),\r\n i18n,\r\n increaseSymbol: getIncreaseSymbol(EstimatedIncreaseInCpc),\r\n isNegative: !isPositive(EstimatedIncreaseInCpc, ESTIMATE_TYPES.COST),\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'EstimatedIncreaseInCpc',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatCost, getIncreaseSymbol, isPositive, ESTIMATE_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nimport template from './delta.pug';\r\n\r\nexport class CPADeltaColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, isOptimizationScoreOn }) {\r\n const title = i18n.getString('Details_View_Est_CPA');\r\n\r\n super({\r\n name: 'CPADelta',\r\n property: 'EstimatedIncreaseInCpa',\r\n title,\r\n bodyClasses: ['grid-column-CPAIncrease'],\r\n colClasses: ['col-numberEst'],\r\n sortable: true,\r\n helpId: 'Pop_BA_Recommendations_EstChangeCPA',\r\n type: 'number',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.isOptimizationScoreOn = isOptimizationScoreOn;\r\n }\r\n\r\n template({ value: { EstimatedIncreaseInCpa, CurrentCpa } }) {\r\n const { i18n, isOptimizationScoreOn } = this;\r\n if (!_.isNumber(EstimatedIncreaseInCpa) || !_.isNumber(CurrentCpa)) {\r\n return template({\r\n i18n,\r\n isNegative: true,\r\n notAvailable: true,\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n return template({\r\n deltaVal: formatCost(EstimatedIncreaseInCpa, i18n, i18n.currency),\r\n fromVal: formatCost(CurrentCpa, i18n, i18n.currency),\r\n toVal: formatCost(CurrentCpa + EstimatedIncreaseInCpa, i18n, i18n.currency),\r\n i18n,\r\n increaseSymbol: getIncreaseSymbol(EstimatedIncreaseInCpa),\r\n isNegative: !isPositive(EstimatedIncreaseInCpa, ESTIMATE_TYPES.COST),\r\n isOptimizationScoreOn,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'EstimatedIncreaseInCpa',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { mapColumnsConfig } from '@bingads-webui/projection-grid-base-column';\r\nimport { RECOMMENDATION_TYPES, ESTIMATE_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\nimport { RECOMMENDATION_INLINE_ACTION_TYPE } from '@bingads-webui-campaign/recommendation-inline-action';\r\nimport { INLINE_ACTION_MAP, NO_ACTION_RECOMMENDATION_TYPES } from '../const';\r\n\r\nimport { ActionApplyOnlyColumn } from './action-apply-only-column';\r\nimport { ActionApplyEditColumn } from './action-edit-apply-column';\r\nimport { ActionResubmitEditColumn } from './action-edit-resubmit-column';\r\nimport { ActionEditOnlyColumn } from './action-edit-only-column';\r\nimport { ActionExternalColumn } from './action-external-column';\r\nimport { ActionPanelEditApply } from './action-panel-edit-apply-column';\r\nimport { ActionRepairColumn } from './action-repair-column';\r\nimport { ActionSetupConversionTrackingColumn } from './action-setup-conversion-tracking-column';\r\nimport { CampaignColumn } from './campaign-column';\r\nimport { AccountColumn } from './account-column';\r\nimport { CampaignAdGroupColumn } from './campaign-ad-group-column';\r\nimport { AdGroupColumn } from './ad-group-column';\r\nimport { ClicksDeltaColumn } from './click-delta-column';\r\nimport { CostDeltaColumn } from './cost-delta-column';\r\nimport { ImpressionsDeltaColumn } from './impression-delta-column';\r\nimport { KeywordColumn } from './keyword-column';\r\nimport { MatchTypeColumn } from './match-type-column';\r\nimport { GoogleImportToDoColumn } from './google-import-todo-column';\r\nimport { BudgetDeltaColumn } from './budget-delta-column';\r\nimport { SharedBudgetDeltaColumn } from './shared-budget-delta-column';\r\nimport { ConversionDeltaColumn } from './conversion-delta-column';\r\nimport { BidAdjustmentTodoColumn } from './bid-adjustment-todo-column';\r\nimport { CtrDeltaColumn } from './ctr-delta-column';\r\nimport { CurrentMatchTypeColumn } from './current-match-type-column';\r\nimport { SuggestedBidColumn } from './suggested-bid-column';\r\nimport { SuggestedKeywordColumn } from './suggested-keyword-column';\r\nimport { TopSearchTermColumn } from './top-search-term-column';\r\nimport { RecommendedBecauseColumn } from './recommended-because-column';\r\nimport { MatchTypeSelectorColumn } from './match-type-selector-column';\r\nimport { MatchTypeSelectorColumnVNext } from './match-type-selector-column-vnext';\r\nimport { PreviewRSAColumn } from './preview-rsa-column';\r\nimport { RemoveNegativeKeywordColumn } from './remove-negative-keyword-column';\r\nimport { BlockedKeywordsColumn } from './blocked-keywords-column';\r\nimport { SuggestedCampaignColumn } from './suggested-campaign-column';\r\nimport { EstimateSearchColumn } from './estimate-search-column';\r\nimport { SearchExampleColumn } from './search-example-column';\r\nimport { CurrentClickColumn } from './current-click-column';\r\nimport { CurrentCostColumn } from './current-cost-column';\r\nimport { CurrentImpressionColumn } from './current-impression-column';\r\nimport { LandingPageUrlColumn } from './landing-page-url-column';\r\nimport { RejectionTypeColumn } from './rejection-type-column';\r\nimport { NumberRejectedAdsColumn } from './number-rejected-ads-column';\r\nimport { NumberRejectedKeywordsColumn } from './number-rejected-keywords-column';\r\nimport { RejectedAdsColumn } from './rejected-ads-column';\r\nimport { RejectedKeywordsColumn } from './rejected-keywords-column';\r\nimport { PolicyColumn } from './policy-column';\r\nimport { SetupConversionTrackingToDoColumn } from './setup-conversion-tracking-todo-column';\r\nimport { NumberClicksColumn } from './number-clicks-column';\r\nimport { NumberImpressionsColumn } from './number-impressions-column';\r\nimport { PerformanceSummaryColumn } from './performance-summary-column';\r\nimport { FixConversionTrackingTodoColumn } from './fix-conversion-tracking-todo-column';\r\nimport { FixConversionTrackingSummaryColumn } from './fix-conversion-tracking-summary-column';\r\nimport { AssetGeneratedFromColumn } from './asset-generated-from';\r\nimport { GoalColumn } from './goal-column';\r\nimport { GoalTypeColumn } from './goal-type-column';\r\nimport { CurrentSettingColumn } from './current-setting-column';\r\nimport { SuggestedSettingColumn } from './suggested-setting-column';\r\nimport { MissedConversionColumn } from './missed-conversion-column';\r\nimport { SearchVolumeDeltaColumn } from './search-volume-delta-column';\r\nimport { SearchVolumeColumn } from './search-volume-column';\r\nimport { GoalSettingColumn } from './goal-setting-column';\r\nimport { GeneratedFromColumn } from './generated-from-column';\r\nimport { IssueTypeColumn } from './issue-type-column';\r\nimport { ActionHybridColumn } from './action-hybrid-column';\r\nimport { FacebookImportToDoColumn } from './facebook-import-todo-column';\r\nimport { PreviewMMAColumn } from './preview-mma-column';\r\nimport { PreviewImageExtensionColumn } from './preview-image-extension-column';\r\nimport { ActionImageExtensionColumn } from './action-image-extension-column';\r\nimport { ImageExtensionSourceColumn } from './image-extension-source-column';\r\nimport { MatchTypeNewColumn } from './match-type-new-column';\r\nimport { ParamColumn } from './param-column';\r\nimport { SuggestedParamValueColumn } from './suggested-param-value-column';\r\nimport { PreviewImproveRSAColumn } from './preview-improve-rsa-column';\r\nimport { ProductGroupColumn } from './product-group-column';\r\nimport { CampaignBudgetColumn } from './campaign-budget-column';\r\nimport { CampaignPriorityColumn } from './campaign-priority-column';\r\nimport { StoreCountryColumn } from './store-country-column';\r\nimport { ProductTargetedColumn } from './product-targeted-column';\r\nimport { SuggestedBidProductGroupColumn } from './suggested-bid-product-group-column';\r\nimport { SuggestedShoppingCampaignColumn } from './suggested-shopping-campaign-column';\r\nimport { SuggestedShoppingAdGroupColumn } from './suggested-shopping-adgroup-column';\r\nimport { PreviewImproveMMAColumn } from './preview-improve-mma-column';\r\nimport { DSALevelTypeColumn } from './dsa-level-type-column';\r\nimport { StoreColumn } from './store-column';\r\nimport { CountryOrRegionColumn } from './country-or-region-column';\r\nimport { PerformanceMaxImportDescriptionColumn } from './performance-max-import-description-column';\r\nimport { PerformanceMaxImportToDoColumn } from './performance-max-import-todo-column';\r\nimport { UpgradedCampaignColumn } from './upgraded-campaign-column';\r\nimport { CPCAvgDeltaColumn } from './cpc-avg-delta-column';\r\nimport { CPADeltaColumn } from './cpa-delta-column';\r\n\r\nconst actionTypeTemplateMapping = {\r\n [RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_ONLY]: ActionApplyOnlyColumn,\r\n [RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_EDIT]: ActionApplyEditColumn,\r\n [RECOMMENDATION_INLINE_ACTION_TYPE.APPLY_PANEL_EDIT]: ActionPanelEditApply,\r\n [RECOMMENDATION_INLINE_ACTION_TYPE.EDIT_ONLY]: ActionEditOnlyColumn,\r\n [RECOMMENDATION_INLINE_ACTION_TYPE.EXTERNAL]: ActionExternalColumn,\r\n [RECOMMENDATION_INLINE_ACTION_TYPE.REPAIR]: ActionRepairColumn,\r\n [RECOMMENDATION_INLINE_ACTION_TYPE.RESUBMIT_EDIT]: ActionResubmitEditColumn,\r\n [RECOMMENDATION_INLINE_ACTION_TYPE.SETUP_CONV]: ActionSetupConversionTrackingColumn,\r\n [RECOMMENDATION_INLINE_ACTION_TYPE.HYBRID]: ActionHybridColumn,\r\n [RECOMMENDATION_INLINE_ACTION_TYPE.IMAGE_EXTENSION]: ActionImageExtensionColumn,\r\n};\r\n\r\nconst estimateTypeDefaultSortColumnMapping = {\r\n [ESTIMATE_TYPES.CONVERSIONS]: ConversionDeltaColumn,\r\n [ESTIMATE_TYPES.CLICKS]: ClicksDeltaColumn,\r\n [ESTIMATE_TYPES.COST]: CostDeltaColumn,\r\n [ESTIMATE_TYPES.CTR]: CtrDeltaColumn,\r\n [ESTIMATE_TYPES.IMPRESSIONS]: ImpressionsDeltaColumn,\r\n};\r\n\r\nfunction getSortableHeaderConfigNull() {\r\n return {};\r\n}\r\n\r\nfunction getSortableHeaderConfigByColumn(Column, i18n, directionIndex = 1) {\r\n if (_.isUndefined(Column)) {\r\n return getSortableHeaderConfigNull();\r\n }\r\n const { name } = new Column({ i18n });\r\n return {\r\n name,\r\n directionIndex,\r\n };\r\n}\r\n\r\nfunction getSortableHeaderConfigByPrimaryEstimate(i18n, primaryEstimate) {\r\n const Column = estimateTypeDefaultSortColumnMapping[primaryEstimate];\r\n const directionIndex = (primaryEstimate === ESTIMATE_TYPES.COST) ? 0 : 1;\r\n return getSortableHeaderConfigByColumn(Column, i18n, directionIndex);\r\n}\r\n\r\nconst adExtensionColumns = [\r\n CampaignColumn,\r\n ClicksDeltaColumn,\r\n CtrDeltaColumn,\r\n CostDeltaColumn,\r\n];\r\n\r\nconst adExtensionColumnsMCC = [\r\n CampaignColumn,\r\n AccountColumn,\r\n ClicksDeltaColumn,\r\n CtrDeltaColumn,\r\n CostDeltaColumn,\r\n];\r\n\r\nconst SetupConversionTrackingOpportunityColumnsMCC = [\r\n SetupConversionTrackingToDoColumn,\r\n NumberImpressionsColumn,\r\n NumberClicksColumn,\r\n];\r\n\r\nconst budgetColumns = [\r\n BudgetDeltaColumn, // What you can do\r\n ClicksDeltaColumn, // Weekly Est. Clicks\r\n ConversionDeltaColumn, // Weekly Est. Conversion\r\n CostDeltaColumn, // Weekly Est. Spend\r\n];\r\n\r\nconst adjustSharedBudgetColumns = [\r\n SharedBudgetDeltaColumn, // What you can do\r\n ClicksDeltaColumn, // Weekly Est. Clicks\r\n ConversionDeltaColumn, // Weekly Est. Conversion\r\n CostDeltaColumn, // Weekly Est. Spend\r\n];\r\n\r\nconst broadMatchKeywordColumns = [\r\n KeywordColumn,\r\n SuggestedBidColumn,\r\n MatchTypeColumn,\r\n CurrentMatchTypeColumn,\r\n AdGroupColumn,\r\n CampaignColumn,\r\n TopSearchTermColumn,\r\n RecommendedBecauseColumn,\r\n];\r\n\r\nconst broadMatchKeywordColumnsVNext = [\r\n KeywordColumn,\r\n SuggestedBidColumn,\r\n MatchTypeColumn,\r\n CurrentMatchTypeColumn,\r\n CampaignAdGroupColumn,\r\n TopSearchTermColumn,\r\n RecommendedBecauseColumn,\r\n];\r\n\r\nconst broadMatchKeywordColumnsVNextMCC = [\r\n KeywordColumn,\r\n SuggestedBidColumn,\r\n MatchTypeColumn,\r\n CurrentMatchTypeColumn,\r\n CampaignAdGroupColumn,\r\n AccountColumn,\r\n TopSearchTermColumn,\r\n RecommendedBecauseColumn,\r\n];\r\n\r\nconst googleImportColumns = [\r\n GoogleImportToDoColumn,\r\n ImpressionsDeltaColumn,\r\n ClicksDeltaColumn,\r\n];\r\n\r\nconst newKeywordColumns = [\r\n SuggestedKeywordColumn,\r\n SuggestedBidColumn,\r\n MatchTypeSelectorColumn,\r\n AdGroupColumn,\r\n CampaignColumn,\r\n TopSearchTermColumn,\r\n RecommendedBecauseColumn,\r\n];\r\n\r\nconst newKeywordColumnsVNext = [\r\n SuggestedKeywordColumn,\r\n SuggestedBidColumn,\r\n MatchTypeSelectorColumnVNext,\r\n CampaignAdGroupColumn,\r\n TopSearchTermColumn,\r\n RecommendedBecauseColumn,\r\n];\r\n\r\nconst newKeywordColumnsVNextMCC = [\r\n SuggestedKeywordColumn,\r\n SuggestedBidColumn,\r\n MatchTypeSelectorColumnVNext,\r\n CampaignAdGroupColumn,\r\n AccountColumn,\r\n TopSearchTermColumn,\r\n RecommendedBecauseColumn,\r\n];\r\n\r\nconst trendingQueryColumns = [\r\n SuggestedKeywordColumn,\r\n SuggestedBidColumn,\r\n MatchTypeSelectorColumnVNext,\r\n CampaignAdGroupColumn,\r\n SearchVolumeDeltaColumn,\r\n SearchVolumeColumn,\r\n];\r\n\r\nconst trendingQueryColumnsMCC = [\r\n SuggestedKeywordColumn,\r\n SuggestedBidColumn,\r\n MatchTypeSelectorColumnVNext,\r\n CampaignAdGroupColumn,\r\n AccountColumn,\r\n SearchVolumeDeltaColumn,\r\n SearchVolumeColumn,\r\n];\r\n\r\nconst repairAdsColumns = [\r\n AdGroupColumn,\r\n CampaignColumn,\r\n // SuggestedAdsColumn, [TODO]: uncomment if suggested ads come back\r\n];\r\n\r\nconst repairAdsColumnsMCC = [\r\n AdGroupColumn,\r\n CampaignColumn,\r\n AccountColumn,\r\n];\r\n\r\n// [TODO]: Add Repair Keywords columns\r\nconst repairKeywordsColumns = [\r\n AdGroupColumn,\r\n CampaignColumn,\r\n];\r\n\r\nconst repairKeywordsColumnsMCC = [\r\n AdGroupColumn,\r\n CampaignColumn,\r\n AccountColumn,\r\n];\r\n\r\nconst fixAdTextColumns = [\r\n PolicyColumn,\r\n RejectedAdsColumn,\r\n RejectedKeywordsColumn,\r\n];\r\n\r\nconst fixAdTextColumnsMCC = [\r\n PolicyColumn,\r\n AccountColumn,\r\n RejectedAdsColumn,\r\n RejectedKeywordsColumn,\r\n];\r\n\r\nconst removeConflictingNKWColumns = [\r\n RemoveNegativeKeywordColumn,\r\n BlockedKeywordsColumn,\r\n];\r\n\r\nconst dynamicSearchAdsColumns = [\r\n SuggestedCampaignColumn,\r\n DSALevelTypeColumn,\r\n EstimateSearchColumn,\r\n SearchExampleColumn,\r\n];\r\n\r\nconst dynamicSearchAdsColumnsMCC = [\r\n SuggestedCampaignColumn,\r\n AccountColumn,\r\n DSALevelTypeColumn,\r\n EstimateSearchColumn,\r\n SearchExampleColumn,\r\n];\r\n\r\nconst getResponsiveSearchAdsColumns = (permissions, isMCC) => {\r\n const columns = [];\r\n columns.push(PreviewRSAColumn);\r\n columns.push(AdGroupColumn);\r\n columns.push(CampaignColumn);\r\n if (permissions.IsRecommendationTypeResponsiveSearchAdsNewTextsEnabled) {\r\n columns.push(AssetGeneratedFromColumn);\r\n }\r\n if (isMCC) {\r\n columns.push(AccountColumn);\r\n }\r\n columns.push(CurrentClickColumn);\r\n columns.push(CurrentImpressionColumn);\r\n columns.push(CurrentCostColumn);\r\n return columns;\r\n};\r\n\r\nconst ReallocateBudgetColumns = [\r\n BidAdjustmentTodoColumn,\r\n ClicksDeltaColumn,\r\n CostDeltaColumn,\r\n];\r\n\r\nconst FixAdsDestinationColumns = [\r\n LandingPageUrlColumn,\r\n RejectionTypeColumn,\r\n NumberRejectedAdsColumn,\r\n NumberRejectedKeywordsColumn,\r\n];\r\n\r\nconst fixAdsDestinationColumnsMCC = [\r\n LandingPageUrlColumn,\r\n RejectionTypeColumn,\r\n AccountColumn,\r\n NumberRejectedAdsColumn,\r\n NumberRejectedKeywordsColumn,\r\n];\r\n\r\nconst SetupConversionTrackingOpportunityColumns = [\r\n SetupConversionTrackingToDoColumn,\r\n PerformanceSummaryColumn,\r\n];\r\n\r\nconst FixConversionTrackingColumns = [\r\n FixConversionTrackingTodoColumn,\r\n FixConversionTrackingSummaryColumn,\r\n];\r\n\r\nconst fixConversionGoalSettingsColumns = [\r\n GoalColumn,\r\n IssueTypeColumn,\r\n CurrentSettingColumn,\r\n SuggestedSettingColumn,\r\n MissedConversionColumn,\r\n];\r\n\r\nconst createConversionGoalColumns = [\r\n GoalColumn,\r\n GoalTypeColumn,\r\n GeneratedFromColumn,\r\n GoalSettingColumn,\r\n MissedConversionColumn,\r\n];\r\n\r\nconst facebookImportColumns = [\r\n FacebookImportToDoColumn,\r\n ImpressionsDeltaColumn,\r\n ClicksDeltaColumn,\r\n CostDeltaColumn,\r\n];\r\n\r\nconst multiMediaAdsColumns = [\r\n PreviewMMAColumn,\r\n AdGroupColumn,\r\n CampaignColumn,\r\n AssetGeneratedFromColumn,\r\n CurrentClickColumn,\r\n CurrentImpressionColumn,\r\n CurrentCostColumn,\r\n];\r\n\r\nconst multiMediaAdsColumnsMCC = [\r\n PreviewMMAColumn,\r\n AdGroupColumn,\r\n CampaignColumn,\r\n AssetGeneratedFromColumn,\r\n AccountColumn,\r\n CurrentClickColumn,\r\n CurrentImpressionColumn,\r\n CurrentCostColumn,\r\n];\r\n\r\nconst improveMultiMediaAdsColumns = [\r\n PreviewImproveMMAColumn,\r\n AdGroupColumn,\r\n CampaignColumn,\r\n ImpressionsDeltaColumn,\r\n ClicksDeltaColumn,\r\n CostDeltaColumn,\r\n];\r\n\r\nconst improveMultiMediaAdsColumnsMCC = [\r\n PreviewImproveMMAColumn,\r\n AdGroupColumn,\r\n CampaignColumn,\r\n AccountColumn,\r\n ImpressionsDeltaColumn,\r\n ClicksDeltaColumn,\r\n CostDeltaColumn,\r\n];\r\n\r\nconst imageExtensionColumns = [\r\n PreviewImageExtensionColumn,\r\n CampaignColumn,\r\n AdGroupColumn,\r\n ImageExtensionSourceColumn,\r\n ClicksDeltaColumn,\r\n];\r\n\r\nconst imageExtensionColumnsMCC = [\r\n PreviewImageExtensionColumn,\r\n CampaignColumn,\r\n AdGroupColumn,\r\n AccountColumn,\r\n ImageExtensionSourceColumn,\r\n ClicksDeltaColumn,\r\n];\r\n\r\nconst repairMissingKeywordParamsColumns = [\r\n KeywordColumn,\r\n MatchTypeNewColumn,\r\n ParamColumn,\r\n SuggestedParamValueColumn,\r\n CampaignColumn,\r\n AdGroupColumn,\r\n ImpressionsDeltaColumn,\r\n];\r\n\r\nconst repairMissingKeywordParamsColumnsMCC = [\r\n KeywordColumn,\r\n MatchTypeNewColumn,\r\n ParamColumn,\r\n SuggestedParamValueColumn,\r\n CampaignColumn,\r\n AdGroupColumn,\r\n AccountColumn,\r\n ImpressionsDeltaColumn,\r\n];\r\n\r\nconst fixNoImpressionBidColumns = [\r\n KeywordColumn,\r\n SuggestedBidColumn,\r\n MatchTypeNewColumn,\r\n CampaignColumn,\r\n AdGroupColumn,\r\n ImpressionsDeltaColumn,\r\n];\r\n\r\nconst fixNoImpressionBidColumnsMCC = [\r\n KeywordColumn,\r\n SuggestedBidColumn,\r\n MatchTypeNewColumn,\r\n CampaignColumn,\r\n AdGroupColumn,\r\n AccountColumn,\r\n ImpressionsDeltaColumn,\r\n];\r\n\r\nconst improveResponsiveSearchAdsColumns = [\r\n PreviewImproveRSAColumn,\r\n AdGroupColumn,\r\n CampaignColumn,\r\n ImpressionsDeltaColumn,\r\n ClicksDeltaColumn,\r\n CostDeltaColumn,\r\n];\r\n\r\nconst improveResponsiveSearchAdsColumnsMCC = [\r\n PreviewImproveRSAColumn,\r\n AdGroupColumn,\r\n CampaignColumn,\r\n AccountColumn,\r\n ImpressionsDeltaColumn,\r\n ClicksDeltaColumn,\r\n CostDeltaColumn,\r\n];\r\n\r\nconst repairUntargetedOfferColumns = [\r\n SuggestedShoppingCampaignColumn,\r\n SuggestedShoppingAdGroupColumn,\r\n ProductGroupColumn,\r\n SuggestedBidProductGroupColumn,\r\n CampaignBudgetColumn,\r\n CampaignPriorityColumn,\r\n StoreCountryColumn,\r\n ProductTargetedColumn,\r\n ImpressionsDeltaColumn,\r\n];\r\n\r\nconst repairUntargetedOfferColumnsMCC = [\r\n SuggestedShoppingCampaignColumn,\r\n SuggestedShoppingAdGroupColumn,\r\n ProductGroupColumn,\r\n AccountColumn,\r\n SuggestedBidProductGroupColumn,\r\n CampaignBudgetColumn,\r\n CampaignPriorityColumn,\r\n StoreCountryColumn,\r\n ProductTargetedColumn,\r\n ImpressionsDeltaColumn,\r\n];\r\n\r\nconst SSC2PMaxMigrationColumns = [\r\n CampaignColumn,\r\n StoreColumn,\r\n CountryOrRegionColumn,\r\n CurrentCostColumn,\r\n];\r\n\r\nconst SSC2PMaxMigrationColumnsMCC = [\r\n AccountColumn,\r\n CampaignColumn,\r\n StoreColumn,\r\n CountryOrRegionColumn,\r\n CurrentCostColumn,\r\n];\r\n\r\nconst DSA2PMaxMigrationColumns = [\r\n CampaignColumn,\r\n UpgradedCampaignColumn,\r\n ConversionDeltaColumn,\r\n CostDeltaColumn,\r\n];\r\n\r\nconst DSA2PMaxMigrationColumnsMCC = [\r\n AccountColumn,\r\n CampaignColumn,\r\n UpgradedCampaignColumn,\r\n ConversionDeltaColumn,\r\n CostDeltaColumn,\r\n];\r\n\r\nconst PerformanceMaxImportColumns = [\r\n PerformanceMaxImportDescriptionColumn,\r\n PerformanceMaxImportToDoColumn,\r\n];\r\n\r\nconst PerformanceMaxImportColumnsMCC = [\r\n AccountColumn,\r\n PerformanceMaxImportDescriptionColumn,\r\n PerformanceMaxImportToDoColumn,\r\n];\r\n\r\nconst SyndicationGapColumns = [\r\n CampaignColumn,\r\n AdGroupColumn,\r\n ClicksDeltaColumn,\r\n ConversionDeltaColumn,\r\n CPCAvgDeltaColumn,\r\n CPADeltaColumn,\r\n];\r\n\r\nconst SyndicationGapColumnsMCC = [\r\n AccountColumn,\r\n CampaignColumn,\r\n AdGroupColumn,\r\n ClicksDeltaColumn,\r\n ConversionDeltaColumn,\r\n CPCAvgDeltaColumn,\r\n CPADeltaColumn,\r\n];\r\n\r\nconst getColumnsMap = (permissions) => {\r\n const isMCC = false;\r\n return {\r\n [RECOMMENDATION_TYPES.CALLOUT]: adExtensionColumns,\r\n [RECOMMENDATION_TYPES.SITE_LINK]: adExtensionColumns,\r\n [RECOMMENDATION_TYPES.REPAIR_ADS]: repairAdsColumns,\r\n [RECOMMENDATION_TYPES.REPAIR_KEYWORD]: repairKeywordsColumns,\r\n [RECOMMENDATION_TYPES.FIX_AD_TEXT]: fixAdTextColumns,\r\n [RECOMMENDATION_TYPES.BUDGET_OPPORTUNITY]: budgetColumns,\r\n [RECOMMENDATION_TYPES.ADJUST_SHARED_BUDGET_OPPORTUNITY]: adjustSharedBudgetColumns,\r\n [RECOMMENDATION_TYPES.GOOGLE_IMPORT]: googleImportColumns,\r\n [RECOMMENDATION_TYPES.GOOGLE_IMPORT_SCHEDULED]: googleImportColumns,\r\n [RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD]: broadMatchKeywordColumns,\r\n [`${RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD}VNext`]: broadMatchKeywordColumnsVNext,\r\n [RECOMMENDATION_TYPES.NEW_KEYWORD_OPPORTUNITY]: newKeywordColumns,\r\n [`${RECOMMENDATION_TYPES.NEW_KEYWORD_OPPORTUNITY}VNext`]: newKeywordColumnsVNext,\r\n [RECOMMENDATION_TYPES.TRENDING_QUERY]: trendingQueryColumns,\r\n [RECOMMENDATION_TYPES.REMOVE_CONFLICTING_NEGATIVE_KEYWORD]: removeConflictingNKWColumns,\r\n [RECOMMENDATION_TYPES.DYNAMIC_SEARCH_ADS]: dynamicSearchAdsColumns,\r\n [RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS]:\r\n getResponsiveSearchAdsColumns(permissions, isMCC),\r\n [RECOMMENDATION_TYPES.REALLOCATE_BUDGET]: ReallocateBudgetColumns,\r\n [RECOMMENDATION_TYPES.FIX_AD_DESTINATION]: FixAdsDestinationColumns,\r\n [RECOMMENDATION_TYPES.SETUP_CONVERSION_TRACKING_OPPORTUNITY]:\r\n SetupConversionTrackingOpportunityColumns,\r\n [RECOMMENDATION_TYPES.FIX_CONVERSION_TRACKING_OPPORTUNITY]: FixConversionTrackingColumns,\r\n [RECOMMENDATION_TYPES.FIX_CONVERSION_GOAL_SETTINGS]: fixConversionGoalSettingsColumns,\r\n [RECOMMENDATION_TYPES.CREATE_CONVERSION_GOAL]: createConversionGoalColumns,\r\n [RECOMMENDATION_TYPES.FACEBOOK_IMPORT]: facebookImportColumns,\r\n [RECOMMENDATION_TYPES.MULTIMEDIA_ADS]: multiMediaAdsColumns,\r\n [RECOMMENDATION_TYPES.IMAGE_EXTENSION]: imageExtensionColumns,\r\n [RECOMMENDATION_TYPES.REPAIR_MISSING_KEYWORD_PARAMS]: repairMissingKeywordParamsColumns,\r\n [RECOMMENDATION_TYPES.FIX_NO_IMPRESSION_BID]: fixNoImpressionBidColumns,\r\n [RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS]: improveResponsiveSearchAdsColumns,\r\n [RECOMMENDATION_TYPES.REPAIR_UNTARGETED_OFFER]: repairUntargetedOfferColumns,\r\n [RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS]: improveMultiMediaAdsColumns,\r\n [RECOMMENDATION_TYPES.SSC_2_PMAX_MIGRATION]: SSC2PMaxMigrationColumns,\r\n [RECOMMENDATION_TYPES.PMAX_IMPORT]: PerformanceMaxImportColumns,\r\n [RECOMMENDATION_TYPES.DSA_2_PMAX_MIGRATION]: DSA2PMaxMigrationColumns,\r\n [RECOMMENDATION_TYPES.SYNDICATION_GAP]: SyndicationGapColumns,\r\n };\r\n};\r\n\r\nconst getColumnsMapMCC = (permissions) => {\r\n const isMCC = true;\r\n // TODO: Removing estimate from KWO is not supported in MCC so far.\r\n // It will be supported after this feature is GAed.\r\n return {\r\n [RECOMMENDATION_TYPES.CALLOUT]: adExtensionColumnsMCC,\r\n [RECOMMENDATION_TYPES.SITE_LINK]: adExtensionColumnsMCC,\r\n [RECOMMENDATION_TYPES.REPAIR_ADS]: repairAdsColumnsMCC,\r\n [RECOMMENDATION_TYPES.REPAIR_KEYWORD]: repairKeywordsColumnsMCC,\r\n [RECOMMENDATION_TYPES.FIX_AD_TEXT]: fixAdTextColumnsMCC,\r\n [RECOMMENDATION_TYPES.BUDGET_OPPORTUNITY]: budgetColumns,\r\n [RECOMMENDATION_TYPES.ADJUST_SHARED_BUDGET_OPPORTUNITY]: adjustSharedBudgetColumns,\r\n [RECOMMENDATION_TYPES.GOOGLE_IMPORT]: googleImportColumns,\r\n [RECOMMENDATION_TYPES.GOOGLE_IMPORT_SCHEDULED]: googleImportColumns,\r\n [`${RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD}VNext`]: broadMatchKeywordColumnsVNextMCC,\r\n [`${RECOMMENDATION_TYPES.NEW_KEYWORD_OPPORTUNITY}VNext`]: newKeywordColumnsVNextMCC,\r\n [RECOMMENDATION_TYPES.TRENDING_QUERY]: trendingQueryColumnsMCC,\r\n [RECOMMENDATION_TYPES.REMOVE_CONFLICTING_NEGATIVE_KEYWORD]: removeConflictingNKWColumns,\r\n [RECOMMENDATION_TYPES.DYNAMIC_SEARCH_ADS]: dynamicSearchAdsColumnsMCC,\r\n [RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS]:\r\n getResponsiveSearchAdsColumns(permissions, isMCC),\r\n [RECOMMENDATION_TYPES.REALLOCATE_BUDGET]: ReallocateBudgetColumns,\r\n [RECOMMENDATION_TYPES.FIX_AD_DESTINATION]: fixAdsDestinationColumnsMCC,\r\n [RECOMMENDATION_TYPES.SETUP_CONVERSION_TRACKING_OPPORTUNITY]:\r\n SetupConversionTrackingOpportunityColumnsMCC,\r\n [RECOMMENDATION_TYPES.FIX_CONVERSION_TRACKING_OPPORTUNITY]: FixConversionTrackingColumns,\r\n [RECOMMENDATION_TYPES.FIX_CONVERSION_GOAL_SETTINGS]: fixConversionGoalSettingsColumns,\r\n [RECOMMENDATION_TYPES.CREATE_CONVERSION_GOAL]: createConversionGoalColumns,\r\n [RECOMMENDATION_TYPES.FACEBOOK_IMPORT]: facebookImportColumns,\r\n [RECOMMENDATION_TYPES.MULTIMEDIA_ADS]: multiMediaAdsColumnsMCC,\r\n [RECOMMENDATION_TYPES.IMAGE_EXTENSION]: imageExtensionColumnsMCC,\r\n [RECOMMENDATION_TYPES.REPAIR_MISSING_KEYWORD_PARAMS]: repairMissingKeywordParamsColumnsMCC,\r\n [RECOMMENDATION_TYPES.FIX_NO_IMPRESSION_BID]: fixNoImpressionBidColumnsMCC,\r\n [RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS]: improveResponsiveSearchAdsColumnsMCC,\r\n [RECOMMENDATION_TYPES.REPAIR_UNTARGETED_OFFER]: repairUntargetedOfferColumnsMCC,\r\n [RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS]: improveMultiMediaAdsColumnsMCC,\r\n [RECOMMENDATION_TYPES.SSC_2_PMAX_MIGRATION]: SSC2PMaxMigrationColumnsMCC,\r\n [RECOMMENDATION_TYPES.PMAX_IMPORT]: PerformanceMaxImportColumnsMCC,\r\n [RECOMMENDATION_TYPES.DSA_2_PMAX_MIGRATION]: DSA2PMaxMigrationColumnsMCC,\r\n [RECOMMENDATION_TYPES.SYNDICATION_GAP]: SyndicationGapColumnsMCC,\r\n };\r\n};\r\n\r\nconst getDefaultSortColumnMap = {\r\n [RECOMMENDATION_TYPES.REPAIR_ADS]:\r\n i18n => getSortableHeaderConfigByColumn(CampaignColumn, i18n, 0),\r\n [RECOMMENDATION_TYPES.REPAIR_KEYWORD]:\r\n i18n => getSortableHeaderConfigByColumn(CampaignColumn, i18n, 0),\r\n [RECOMMENDATION_TYPES.CALLOUT]:\r\n i18n => getSortableHeaderConfigByColumn(ClicksDeltaColumn, i18n),\r\n [RECOMMENDATION_TYPES.SITE_LINK]:\r\n i18n => getSortableHeaderConfigByColumn(ClicksDeltaColumn, i18n),\r\n [RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD]:\r\n i18n => getSortableHeaderConfigByColumn(ClicksDeltaColumn, i18n),\r\n [RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS]:\r\n i18n => getSortableHeaderConfigByColumn(CurrentCostColumn, i18n),\r\n [RECOMMENDATION_TYPES.BUDGET_OPPORTUNITY]: getSortableHeaderConfigByPrimaryEstimate,\r\n [RECOMMENDATION_TYPES.ADJUST_SHARED_BUDGET_OPPORTUNITY]: getSortableHeaderConfigByPrimaryEstimate,\r\n [RECOMMENDATION_TYPES.GOOGLE_IMPORT]: getSortableHeaderConfigNull,\r\n [RECOMMENDATION_TYPES.GOOGLE_IMPORT_SCHEDULED]: getSortableHeaderConfigNull,\r\n [RECOMMENDATION_TYPES.NEW_KEYWORD_OPPORTUNITY]: getSortableHeaderConfigNull,\r\n [RECOMMENDATION_TYPES.TRENDING_QUERY]: getSortableHeaderConfigNull,\r\n [RECOMMENDATION_TYPES.FIX_AD_TEXT]: getSortableHeaderConfigNull,\r\n [RECOMMENDATION_TYPES.DYNAMIC_SEARCH_ADS]: getSortableHeaderConfigNull,\r\n [RECOMMENDATION_TYPES.REALLOCATE_BUDGET]:\r\n i18n => getSortableHeaderConfigByColumn(ClicksDeltaColumn, i18n),\r\n [RECOMMENDATION_TYPES.SETUP_CONVERSION_TRACKING_OPPORTUNITY]:\r\n i18n => getSortableHeaderConfigByColumn(NumberClicksColumn, i18n),\r\n [RECOMMENDATION_TYPES.FIX_CONVERSION_GOAL_SETTINGS]:\r\n i18n => getSortableHeaderConfigByColumn(MissedConversionColumn, i18n, 0),\r\n [RECOMMENDATION_TYPES.FACEBOOK_IMPORT]: getSortableHeaderConfigNull,\r\n [RECOMMENDATION_TYPES.REPAIR_UNTARGETED_OFFER]:\r\n i18n => getSortableHeaderConfigByColumn(ImpressionsDeltaColumn, i18n),\r\n};\r\n\r\nexport function getColumnsByType({\r\n recommendationType, i18n, newI18n, s$i18n, deps,\r\n view, readOnly = false, isMCC = false,\r\n scope, filterState, isOptimizationScoreOn = false,\r\n}) {\r\n const { permissions } = deps;\r\n const map = isMCC ?\r\n getColumnsMapMCC(permissions) :\r\n getColumnsMap(permissions);\r\n const columns = (map[`${recommendationType}VNext`] && map[`${recommendationType}VNext`].slice(0))\r\n || map[recommendationType].slice(0);\r\n\r\n if (!_.contains(NO_ACTION_RECOMMENDATION_TYPES, recommendationType)) {\r\n columns.push(actionTypeTemplateMapping[INLINE_ACTION_MAP[recommendationType]]);\r\n }\r\n\r\n return mapColumnsConfig(columns, {\r\n i18n,\r\n newI18n,\r\n s$i18n,\r\n deps,\r\n recommendationType,\r\n view,\r\n readOnly,\r\n isMCC,\r\n scope,\r\n filterState,\r\n isOptimizationScoreOn,\r\n });\r\n}\r\n\r\nexport function getDefaultSortColumn(recommendationType, i18n, primaryEstimate) {\r\n const f = getDefaultSortColumnMap[recommendationType] || getSortableHeaderConfigNull;\r\n return f(i18n, primaryEstimate);\r\n}\r\n","import _ from 'underscore';\r\nimport { SETTING_OPTIONS } from '@bingads-webui-campaign/recommendation-core';\r\nimport { GENERATED_FROM_FILTER_STRING_TYPES } from './const';\r\n\r\nexport function removeFilter(gridView) {\r\n const curQuery = gridView.get('query');\r\n gridView.set({ query: _.omit(curQuery, 'filterOpportunity', 'filterRecommendation') });\r\n}\r\n\r\nexport function filterByOpportunityId(gridView, ids = []) {\r\n // filter in recommendation level: Opportunities/any(i:(i/OpportunityId eq '171025051000011648'))\r\n // filter in opportunity level: OpportunityId eq '171025051000011648'\r\n const filterRecommendation = `Opportunities/any(i:(${_.map(ids, i => `i/OpportunityId eq '${i}'`).join(' or ')}))`;\r\n const filterOpportunity = `${_.map(ids, i => `OpportunityId eq '${i}'`).join(' or ')}`;\r\n const curQuery = gridView.get('query');\r\n\r\n gridView.set({\r\n query: _.defaults({\r\n filterOpportunity,\r\n filterRecommendation,\r\n }, curQuery),\r\n });\r\n}\r\n\r\n// TODO: MT has bug on filter. Will change it to another solution after MT is ready.\r\nexport function filterByAIAssetRecommendationCount(gridView, type) {\r\n const filterUserAssetRecommendation = 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.ResponsiveSearchAdsOpportunitySummary/HasAIAssetRecommendationCount eq 0';\r\n const filterAIAssetRecommendation = 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.ResponsiveSearchAdsOpportunitySummary/HasAIAssetRecommendationCount gt 0';\r\n const filterAllAssetRecommendation = 'Microsoft.Advertiser.AdInsight.Opportunity.Schema.ResponsiveSearchAdsOpportunitySummary/HasAIAssetRecommendationCount ge 0';\r\n let filterRecommendation;\r\n if (type === GENERATED_FROM_FILTER_STRING_TYPES.AIGeneratedAssets) {\r\n filterRecommendation = filterAIAssetRecommendation;\r\n } else if (type === GENERATED_FROM_FILTER_STRING_TYPES.UserAssets) {\r\n filterRecommendation = filterUserAssetRecommendation;\r\n } else if (type === GENERATED_FROM_FILTER_STRING_TYPES.AllAssets) {\r\n filterRecommendation = filterAllAssetRecommendation;\r\n }\r\n\r\n const curQuery = gridView.get('query');\r\n\r\n gridView.set({\r\n query: _.defaults({\r\n filterRecommendation,\r\n }, curQuery),\r\n });\r\n}\r\n\r\nexport function filterBySettingOptions(\r\n gridView,\r\n {\r\n recommendationType,\r\n addedOptions,\r\n isRemove = false,\r\n }\r\n) {\r\n const curQuery = gridView.get('query');\r\n let settingOptions;\r\n if (isRemove) {\r\n settingOptions = _.filter(\r\n curQuery.settingOptions,\r\n item => item.AddedOptions !== addedOptions\r\n );\r\n } else {\r\n settingOptions = _.union(curQuery.settingOptions, [{\r\n OpportunityType: recommendationType,\r\n AddedOptions: addedOptions,\r\n RemovedOptions: SETTING_OPTIONS.NONE,\r\n }]);\r\n }\r\n gridView.set({\r\n query: _.defaults({\r\n settingOptions,\r\n }, curQuery),\r\n });\r\n}\r\n","import Promise from 'bluebird';\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { levelAtConstant } from '@bingads-webui-campaign/scope-constants';\r\nimport {\r\n CHANNEL_TYPES,\r\n APPLY_ACTION_TYPES,\r\n RECOMMENDATION_TYPES,\r\n APPLY_USERINPUT_TYPES,\r\n ADINSIGHT_LOG_ACTION_TYPE,\r\n RECOMMENDATION_DISMISS_FEEDBACK_TYPE,\r\n getRecommendationPreferences,\r\n saveRecommendationPreferences,\r\n CROSS_LEVEL_TYPES,\r\n FILTERBY,\r\n ORDERBY_DIRECTION,\r\n PAGINATION_ORDERBY,\r\n groupUserInputs,\r\n RECOMMENDATION_CATEGORIES,\r\n getRecommendationCache,\r\n RECOMMENDATION_SUMMARY_TOP_NUMBER,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { CAMPAIGN_TYPES } from '@bingads-webui-campaign/recommendation-preferences';\r\nimport { handleRecommendationNotification } from '@bingads-webui-campaign/recommendation-notification';\r\nimport { RECOMMENDATION_TYPES_SUPPORT_NEW_DISMISS_FORM } from '@bingads-webui-campaign-react/recommendation-dismiss-feedback';\r\nimport { filterByOpportunityId, removeFilter } from './filter-helper';\r\n\r\nexport class RecommendationGridService {\r\n constructor(\r\n recommendationService,\r\n channel,\r\n recommendationType,\r\n campaignType,\r\n view,\r\n onEvent,\r\n logOpportunityEvent,\r\n context,\r\n guid,\r\n isMCC,\r\n setData,\r\n setDataFromDetails,\r\n IsRecommendationCacheDetailPageDataEnabled = false\r\n ) {\r\n this.recommendationService = recommendationService;\r\n this.recommendationType = recommendationType;\r\n this.campaignType = campaignType;\r\n this.view = view;\r\n this.handleRecommendationNotification = handleRecommendationNotification;\r\n this.filterByOpportunityId = filterByOpportunityId;\r\n this.removeFilter = removeFilter;\r\n this.onEvent = onEvent;\r\n this.logOpportunityEvent = logOpportunityEvent;\r\n this.context = context;\r\n this.guid = guid;\r\n this.gridRecCount = null;\r\n this.version = null;\r\n this.isMCC = isMCC;\r\n this.opportunityCount = 0;\r\n this.channel = channel ||\r\n (isMCC ? CHANNEL_TYPES.MCCRECOMMENDATION : CHANNEL_TYPES.RECOMMENDATION);\r\n this.benchMarkers = [];\r\n this.setData = setData;\r\n this.setDataFromDetails = setDataFromDetails;\r\n this.IsRecommendationCacheDetailPageDataEnabled = IsRecommendationCacheDetailPageDataEnabled;\r\n }\r\n\r\n getFilterBy(orderByDirection) {\r\n if (_.isUndefined(orderByDirection)) {\r\n return FILTERBY.LESS_THAN;\r\n }\r\n if (orderByDirection === ORDERBY_DIRECTION.ASCENDING) {\r\n return FILTERBY.GREATER_THAN;\r\n }\r\n return FILTERBY.LESS_THAN;\r\n }\r\n\r\n getBenchMarker(pageOffset) {\r\n this.benchMarkers = this.benchMarkers.slice(0, pageOffset);\r\n return this.benchMarkers[this.benchMarkers.length - 1];\r\n }\r\n\r\n formatBenchMarker(data) {\r\n if (_.isEmpty(data)) {\r\n return {};\r\n }\r\n return {\r\n RecommendationType: _.last(data).OpportunityType,\r\n DataVersion: _.last(data).Version,\r\n AccountId: _.last(data).Target.AccountId,\r\n OpportunityIdsInString: _.map(\r\n _.last(data).Opportunities,\r\n opportunity => opportunity.OpportunityId\r\n ),\r\n };\r\n }\r\n\r\n getPaginationOrderBy(orderBy) {\r\n if (_.isUndefined(orderBy)) {\r\n return PAGINATION_ORDERBY.DEFAULT;\r\n }\r\n\r\n const orderByArray = orderBy[0].split('/');\r\n return orderByArray[orderByArray.length - 1];\r\n }\r\n\r\n getDetailPageSetting({\r\n offset,\r\n orderBy,\r\n limit,\r\n }) {\r\n return {\r\n OrderBy: this.getPaginationOrderBy(_.first(orderBy)),\r\n FilterType: this.getFilterBy(_.first(orderBy) && _.first(orderBy)[1]),\r\n FilterBenchmark: this.getBenchMarker(offset / limit),\r\n PageSize: limit,\r\n };\r\n }\r\n\r\n getGridData({ data, campaignAdGroups, op }) {\r\n this.setData(data, campaignAdGroups, this.setDataFromDetails);\r\n const recommendationData = _.result(this.context, 'Category', '') === RECOMMENDATION_CATEGORIES.DISMISSED\r\n && !_.isEmpty(data.DismissTabSummaries) ? data.DismissTabSummaries : data.value;\r\n let gridData;\r\n if (_.isEmpty(recommendationData)) {\r\n gridData = [];\r\n gridData.totalCount = 0;\r\n this.onEvent('refreshSummary');\r\n } else {\r\n gridData = _.first(recommendationData).Recommendations.slice();\r\n gridData.totalCount = _.first(recommendationData).RecommendationsCount;\r\n gridData.version = _.first(recommendationData).Version;\r\n this.opportunityCount = _.first(recommendationData).OpportunitiesCount;\r\n }\r\n\r\n if (op.offset\r\n && (\r\n this.version !== gridData.version\r\n || gridData.length === 0\r\n || gridData.totalCount <= op.offset\r\n )\r\n ) {\r\n // todo\r\n // force pagination plugin to page 1\r\n // then grid will fetch new data and update totalCount\r\n gridData.totalCount = 1;\r\n } else {\r\n if (this.recommendationType !== RECOMMENDATION_TYPES.IMAGE_EXTENSION) {\r\n let FromUICache = false;\r\n if (this.IsRecommendationCacheDetailPageDataEnabled\r\n && _.isUndefined(op.orderBy) && _.isUndefined(op.offset)\r\n && !_.isUndefined(getRecommendationCache('recommendation-summary-raw-data'))\r\n ) {\r\n const summaryData = getRecommendationCache('recommendation-summary-raw-data');\r\n const isDismissedTab = _.result(this.context, 'Category', '') === RECOMMENDATION_CATEGORIES.DISMISSED;\r\n const recommendations = _.find(\r\n isDismissedTab ? summaryData.data.DismissTabSummaries : summaryData.data.value,\r\n i => i.OpportunityType === this.recommendationType\r\n );\r\n FromUICache = recommendations.RecommendationsCount <= RECOMMENDATION_SUMMARY_TOP_NUMBER;\r\n }\r\n _.each(gridData, (opportunity) => {\r\n const oppData = opportunity.Opportunities[0] || {};\r\n const rejectedAd = _.first(oppData.RejectedAds) || _.first(oppData.RejectedKeywords)\r\n || {};\r\n this.logOpportunityEvent({\r\n opportunityId: opportunity.Opportunities[0].OpportunityId,\r\n campaignId: opportunity.Target.CampaignId,\r\n type: this.recommendationType,\r\n action: ADINSIGHT_LOG_ACTION_TYPE.VIEW,\r\n accountId: opportunity.Target.AccountId,\r\n context: {\r\n FlagId: _.chain(opportunity)\r\n .result('Opportunities')\r\n .result(0)\r\n .result('FlagId')\r\n .value(),\r\n OldFinalUrl: rejectedAd.FinalUrl,\r\n OldTrackingTemplate: rejectedAd.TrackingTemplate,\r\n FromUICache,\r\n RecommendationCount: this.opportunityCount,\r\n },\r\n });\r\n });\r\n }\r\n this.benchMarkers.push(this.formatBenchMarker(gridData));\r\n }\r\n this.gridRecCount = gridData.totalCount;\r\n this.version = gridData.version;\r\n return gridData;\r\n }\r\n\r\n findAll(op) {\r\n if (this.IsRecommendationCacheDetailPageDataEnabled\r\n && this.recommendationType !== RECOMMENDATION_TYPES.IMAGE_EXTENSION\r\n && _.isUndefined(op.orderBy) && _.isUndefined(op.offset)\r\n && !_.isUndefined(getRecommendationCache('recommendation-summary-raw-data'))) {\r\n const summaryData = getRecommendationCache('recommendation-summary-raw-data');\r\n\r\n const isDismissedTab =\r\n _.result(this.context, 'Category', '') === RECOMMENDATION_CATEGORIES.DISMISSED;\r\n\r\n // Put target recommendation data by recommendation type\r\n const type = this.recommendationType;\r\n const recommendations =\r\n _.find(\r\n isDismissedTab ? summaryData.data.DismissTabSummaries : summaryData.data.value,\r\n i => i.OpportunityType === type\r\n );\r\n\r\n // Get cache data when recommendation count <= count of recommendation summary data.\r\n if (recommendations.RecommendationsCount <= RECOMMENDATION_SUMMARY_TOP_NUMBER) {\r\n const detailData = isDismissedTab ?\r\n { DismissTabSummaries: [recommendations] } :\r\n { value: [recommendations] };\r\n const gridData = this.getGridData({\r\n data: detailData,\r\n campaignAdGroups: summaryData.campaignAdGroups,\r\n op,\r\n });\r\n return Promise.resolve(gridData);\r\n }\r\n }\r\n\r\n const orderby = _.map(op.orderBy, item => [item[0], item[1].toLocaleLowerCase()]);\r\n let detailPageSetting;\r\n if (_.isUndefined(op.offset) || op.offset === 0) {\r\n this.benchMarkers = [];\r\n } else {\r\n detailPageSetting = this.getDetailPageSetting(op);\r\n }\r\n const settingOptions = _.isEmpty(op.settingOptions) ? undefined : op.settingOptions;\r\n\r\n return this.recommendationService.getSummary({\r\n orderby,\r\n channel: this.channel,\r\n campaignType: this.campaignType,\r\n type: this.recommendationType,\r\n top: op.limit,\r\n skip: op.offset,\r\n filter: op.where,\r\n filterOpportunity: op.filterOpportunity,\r\n filterRecommendation: op.filterRecommendation,\r\n detailPageSetting,\r\n settingOptions,\r\n }).then(({ data, campaignAdGroups }) => {\r\n const gridData = this.getGridData({ data, campaignAdGroups, op });\r\n return gridData;\r\n });\r\n }\r\n\r\n findRepair(op) {\r\n return this.recommendationService.getSummary({\r\n campaignAdGroups: op.campaignAdGroups,\r\n // mcc does not support find repair\r\n // so we have to find repair in single account mode\r\n channel: CHANNEL_TYPES.RECOMMENDATION,\r\n campaignType: this.campaignType,\r\n type: this.recommendationType,\r\n settingOptions: op.settingOptions,\r\n accountId: op.accountId,\r\n }).then(({ data }) => {\r\n const recommendationData = _.result(this.context, 'Category', '') === RECOMMENDATION_CATEGORIES.DISMISSED\r\n && !_.isEmpty(data.DismissTabSummaries) ? data.DismissTabSummaries : data.value;\r\n const rowData = _.first(_.first(recommendationData).Recommendations);\r\n\r\n return rowData;\r\n });\r\n }\r\n\r\n // This function is for user to apply recommendation in action column or toolbar with/without updating recommendation from grid.\r\n getUserInputFromGrid(opportunity, recommendationType, userAction) {\r\n let userInput;\r\n switch (recommendationType) {\r\n case RECOMMENDATION_TYPES.NEW_KEYWORD_OPPORTUNITY:\r\n case RECOMMENDATION_TYPES.TRENDING_QUERY:\r\n userInput = {\r\n '@odata.type': APPLY_USERINPUT_TYPES[recommendationType],\r\n OpportunityId: opportunity.OpportunityId,\r\n NewBid: opportunity.NewBid,\r\n TargetAdGroupId: opportunity.NewAdGroupId,\r\n MatchType: opportunity.NewMatchType,\r\n };\r\n break;\r\n case RECOMMENDATION_TYPES.BROAD_MATCH_KEYWORD:\r\n userInput = {\r\n '@odata.type': APPLY_USERINPUT_TYPES[recommendationType],\r\n OpportunityId: opportunity.OpportunityId,\r\n NewBid: opportunity.NewBid,\r\n NewAdGroupId: opportunity.NewAdGroupId,\r\n };\r\n break;\r\n case RECOMMENDATION_TYPES.IMAGE_EXTENSION:\r\n userInput = {\r\n '@odata.type': APPLY_USERINPUT_TYPES[recommendationType],\r\n OpportunityId: opportunity.OpportunityId,\r\n };\r\n // This is sepcial requirement for image extension\r\n if (!_.isEmpty(opportunity.StockImages) && !_.isNull(opportunity.StockImages[0].ImageId)) {\r\n _.extend(userInput, {\r\n StockImages: [{\r\n ImageId: opportunity.StockImages[0].ImageId,\r\n AssociationMetadata: [{ SubType: 'LandscapeImageMedia' }],\r\n }],\r\n });\r\n }\r\n break;\r\n case RECOMMENDATION_TYPES.REPAIR_MISSING_KEYWORD_PARAMS:\r\n userInput = {\r\n '@odata.type': APPLY_USERINPUT_TYPES[recommendationType],\r\n OpportunityId: opportunity.OpportunityId,\r\n };\r\n if (!_.isUndefined(opportunity.Param1)) {\r\n userInput = _.extend({}, userInput, { Param1: opportunity.Param1 });\r\n } else if (!_.isUndefined(opportunity.Param2)) {\r\n userInput = _.extend({}, userInput, { Param2: opportunity.Param2 });\r\n } else if (!_.isUndefined(opportunity.Param3)) {\r\n userInput = _.extend({}, userInput, { Param3: opportunity.Param3 });\r\n }\r\n break;\r\n case RECOMMENDATION_TYPES.FIX_NO_IMPRESSION_BID:\r\n userInput = {\r\n '@odata.type': APPLY_USERINPUT_TYPES[recommendationType],\r\n OpportunityId: opportunity.OpportunityId,\r\n NewBid: opportunity.NewBid,\r\n };\r\n break;\r\n case RECOMMENDATION_TYPES.REPAIR_UNTARGETED_OFFER:\r\n userInput = {\r\n '@odata.type': APPLY_USERINPUT_TYPES[recommendationType],\r\n OpportunityId: opportunity.OpportunityId,\r\n Bid: opportunity.NewProductGroupBid,\r\n Budget: opportunity.NewBudget,\r\n CampaignName: opportunity.NewCampaignName,\r\n AdGroupName: opportunity.NewAdGroupName,\r\n };\r\n break;\r\n default:\r\n userInput = {\r\n '@odata.type': APPLY_USERINPUT_TYPES[recommendationType],\r\n OpportunityId: opportunity.OpportunityId,\r\n };\r\n break;\r\n }\r\n\r\n if (userAction === APPLY_ACTION_TYPES.REDISMISS\r\n || _.result(this.context, 'Category', '') === RECOMMENDATION_CATEGORIES.DISMISSED) {\r\n userInput.OpportunityHash = opportunity.OpportunityHash;\r\n }\r\n return userInput;\r\n }\r\n\r\n isUserModified(userInput) {\r\n const userModifiedInput = _.omit(userInput, (value, key) => _.isUndefined(value) || key === '@odata.type' || key === 'OpportunityId');\r\n\r\n return _.size(userModifiedInput) > 0;\r\n }\r\n\r\n showAsyncApplyModal(pollTask) {\r\n this.onEvent('showAsyncApplyModal', pollTask);\r\n }\r\n\r\n closeAsyncApplyModal() {\r\n this.onEvent('closeAsyncApplyModal');\r\n }\r\n\r\n hidePopupEditor() {\r\n $('.popup-editor').hide();\r\n $('.grid-popupeditor').hide();\r\n }\r\n\r\n apply({\r\n opportunities,\r\n userInputs = [],\r\n userAction = APPLY_ACTION_TYPES.ACCEPT,\r\n context = {},\r\n hasInlineError = _.noop,\r\n closeUiBlock = _.noop,\r\n reason,\r\n }) {\r\n this.hidePopupEditor();\r\n\r\n const type = this.recommendationType;\r\n\r\n if (_.isEmpty(userInputs)) {\r\n _.each(opportunities, (i) => {\r\n userInputs.push(this.getUserInputFromGrid(i, type, userAction));\r\n });\r\n }\r\n\r\n const campaignAdgroup = {};\r\n _.each(opportunities, (opt) => {\r\n const campaignId = opt.Target.CampaignId;\r\n const adGroupId = opt.Target.AdGroupId;\r\n\r\n if (!_.has(campaignAdgroup, campaignId) && campaignId) {\r\n campaignAdgroup[campaignId] = {};\r\n }\r\n if (_.isNumber(adGroupId)) {\r\n campaignAdgroup[campaignId][adGroupId] = true;\r\n }\r\n });\r\n\r\n // campaignAdGroupsByCampaign: [{\"Key\":953172033, \"Value\": [\"332\", '3232']}]\r\n // Key is campaignid, value is adgroupid list\r\n const campaignAdGroupsByCampaign =\r\n _.map(campaignAdgroup, (adgroupIds, campaignId) => ({\r\n Key: parseInt(campaignId, 10),\r\n Value: _.map(_.keys(adgroupIds), i => parseInt(i, 10)),\r\n }));\r\n\r\n // now applyMode in context align with which mt api called, may need to modify in the future\r\n const contextWithApplyMode = this.recommendationType === RECOMMENDATION_TYPES.IMAGE_EXTENSION ?\r\n _.extend({}, this.context, context, {\r\n ApplyMode: 'Individual',\r\n ImageSource: _.first(opportunities).ImageSourceStr,\r\n ShutterstockQuery: _.first(opportunities).ImageSourceStr === 'StockImage' ? _.first(_.first(opportunities).StockImages).Query : null,\r\n ShutterstockTotalCount: _.first(opportunities).ImageSourceStr === 'StockImage' ? _.first(_.first(opportunities).StockImages).TotalCount : null,\r\n ShutterstockImageId: _.first(opportunities).ImageSourceStr === 'StockImage' ? _.first(_.first(opportunities).StockImages).ImageId : null,\r\n }) :\r\n _.extend({}, this.context, context, { ApplyMode: 'Individual' });\r\n\r\n const op = {\r\n type,\r\n userInputs: this.isMCC ? groupUserInputs({ userInputs, opportunities }) : userInputs,\r\n userAction,\r\n channel: this.channel,\r\n campaignAdGroups: _.contains(CROSS_LEVEL_TYPES, type) ?\r\n this.getCampaignAdGroupsFromScope() : campaignAdGroupsByCampaign,\r\n handleRecommendationNotification: this.handleRecommendationNotification,\r\n view: this.view,\r\n filterByOpportunityId: this.filterByOpportunityId,\r\n removeFilter: this.removeFilter,\r\n context: contextWithApplyMode,\r\n guid: this.guid,\r\n hasInlineError,\r\n showAsyncApplyModal: pollTask => this.showAsyncApplyModal(pollTask),\r\n closeAsyncApplyModal: () => this.closeAsyncApplyModal(),\r\n closeUiBlock,\r\n reason,\r\n targetAccountId: _.first(opportunities).Target.AccountId,\r\n };\r\n\r\n if (this.recommendationType === RECOMMENDATION_TYPES.FIX_AD_DESTINATION\r\n && userAction === APPLY_ACTION_TYPES.ACCEPT) {\r\n _.each(opportunities, (opportunity) => {\r\n const rejectedAd = _.first(opportunity.RejectedAds)\r\n || _.first(opportunity.RejectedKeywords)\r\n || {};\r\n const { FinalUrl, TrackingTemplate } = userInputs[0] || {};\r\n this.logOpportunityEvent({\r\n opportunityId: opportunity.OpportunityId,\r\n campaignId: opportunity.Target.CampaignId,\r\n type: this.recommendationType,\r\n action: APPLY_ACTION_TYPES.ACCEPT,\r\n accountId: opportunity.Target.AccountId,\r\n context: {\r\n OldFinalUrl: rejectedAd.FinalUrl,\r\n OldTrackingTemplate: rejectedAd.TrackingTemplate,\r\n NewFinalUrl: (_.isNull(FinalUrl) || _.isUndefined(FinalUrl)) ?\r\n rejectedAd.FinalUrl : FinalUrl,\r\n NewTrackingTemplate: (_.isNull(TrackingTemplate) || _.isUndefined(TrackingTemplate)) ?\r\n rejectedAd.TrackingTemplate : TrackingTemplate,\r\n },\r\n });\r\n });\r\n }\r\n\r\n return this.recommendationService.track(op).then(() => {\r\n this.onEvent('refreshSummary', { isFromApplyOrDismiss: true });\r\n });\r\n }\r\n\r\n undismiss(op) {\r\n return this.apply(_.defaults(op, {\r\n userAction: APPLY_ACTION_TYPES.UNDISMISS,\r\n }));\r\n }\r\n\r\n dismiss(op) {\r\n return this.apply(_.defaults(op, {\r\n userAction: APPLY_ACTION_TYPES.DISMISS,\r\n }));\r\n }\r\n\r\n applyAll({\r\n recommendationType,\r\n opportunities = [],\r\n userAction = APPLY_ACTION_TYPES.ACCEPT,\r\n context = {},\r\n closeUiBlock = _.noop,\r\n totalRecommendationCount,\r\n }) {\r\n const campaignAdGroups = this.getCampaignAdGroupsFromScope();\r\n // now applyMode in context align with which mt api called, may need to modify in the future\r\n const contextWithApplyMode = _.extend({}, this.context, context, { ApplyMode: 'All' });\r\n const userInputs = [];\r\n\r\n _.each(opportunities, (opportunity) => {\r\n const userInput = this.getUserInputFromGrid(opportunity, recommendationType, userAction);\r\n\r\n if (this.isUserModified(userInput)) {\r\n userInputs.push(userInput);\r\n }\r\n });\r\n\r\n const op = {\r\n type: recommendationType,\r\n withAll: true,\r\n userAction,\r\n userInputs: this.isMCC ? groupUserInputs({ userInputs, opportunities }) : userInputs,\r\n campaignAdGroups,\r\n channel: this.channel,\r\n handleRecommendationNotification: this.handleRecommendationNotification,\r\n view: this.view,\r\n filterByOpportunityId: this.filterByOpportunityId,\r\n removeFilter: this.removeFilter,\r\n context: contextWithApplyMode,\r\n guid: this.guid,\r\n showAsyncApplyModal: pollTask => this.showAsyncApplyModal(pollTask),\r\n closeAsyncApplyModal: () => this.closeAsyncApplyModal(),\r\n closeUiBlock,\r\n totalRecommendationCount,\r\n };\r\n\r\n return this.recommendationService.track(op).then(() => {\r\n this.onEvent('refreshSummary', { isFromApplyOrDismiss: true });\r\n });\r\n }\r\n\r\n undismissAll(op) {\r\n return this.applyAll(_.defaults(op, {\r\n userAction: APPLY_ACTION_TYPES.UNDISMISS,\r\n }));\r\n }\r\n\r\n dismissAll(op) {\r\n return this.applyAll(_.defaults(op, {\r\n userAction: APPLY_ACTION_TYPES.DISMISS,\r\n }));\r\n }\r\n\r\n dismissFeedback(op) {\r\n const {\r\n deps,\r\n data: { preference, reason },\r\n rejectAutoApplySuggestedAds,\r\n context,\r\n isRedismissEnabled,\r\n } = op;\r\n const { type, expireTime } = preference;\r\n\r\n const name = rejectAutoApplySuggestedAds ?\r\n CAMPAIGN_TYPES.RejectAutoApplySuggestedAds :\r\n CAMPAIGN_TYPES.DismissFeedback;\r\n\r\n saveRecommendationPreferences(\r\n {\r\n [name]: { [type]: expireTime },\r\n },\r\n deps.preferencesService,\r\n this.isMCC\r\n );\r\n\r\n const reasonObj = JSON.parse(reason);\r\n if (isRedismissEnabled) {\r\n if (reasonObj.reasonIds && reasonObj.reasonIds.length !== 0) {\r\n this.logOpportunityEvent({\r\n type: type || '',\r\n action: ADINSIGHT_LOG_ACTION_TYPE.FEEDBACK,\r\n campaignId: this.recommendationService.scope.campaignId,\r\n input: reason,\r\n context,\r\n });\r\n\r\n const options = {\r\n userAction: APPLY_ACTION_TYPES.REDISMISS,\r\n reason: {\r\n ReasonId: _.first(reasonObj.reasonIds),\r\n ReasonNote: reasonObj.reasonNote,\r\n },\r\n };\r\n\r\n return this.apply(_.defaults(op, options));\r\n }\r\n } else if ((reasonObj.reasonIds && reasonObj.reasonIds.length !== 0) || (reasonObj.reasonNote && reasonObj.reasonNote !== '')) {\r\n this.logOpportunityEvent({\r\n type: type || '',\r\n action: ADINSIGHT_LOG_ACTION_TYPE.FEEDBACK,\r\n campaignId: this.recommendationService.scope.campaignId,\r\n input: reason,\r\n context,\r\n });\r\n }\r\n return true;\r\n }\r\n\r\n isShowFeedback(op) {\r\n const {\r\n deps,\r\n recommendationType: type,\r\n rejectAutoApplySuggestedAds,\r\n permissions,\r\n } = op;\r\n const isNewSupportedType = RECOMMENDATION_TYPES_SUPPORT_NEW_DISMISS_FORM[type];\r\n\r\n if (!RECOMMENDATION_DISMISS_FEEDBACK_TYPE[type] &&\r\n !isNewSupportedType) {\r\n return false;\r\n }\r\n\r\n if (isNewSupportedType && !permissions.IsRecommendationInProductFeedbackLoopEnabled) {\r\n return false;\r\n }\r\n const data = getRecommendationPreferences(deps.preferencesService);\r\n const preference = data[rejectAutoApplySuggestedAds ?\r\n CAMPAIGN_TYPES.RejectAutoApplySuggestedAds :\r\n CAMPAIGN_TYPES.DismissFeedback];\r\n const now = Date.now();\r\n const userLevelRejected =\r\n preference &&\r\n preference[type] &&\r\n now < preference[type];\r\n if (rejectAutoApplySuggestedAds || this.isMCC) {\r\n return !userLevelRejected;\r\n }\r\n const accountData = getRecommendationPreferences(deps.preferencesService, false);\r\n const accountPreference = accountData[CAMPAIGN_TYPES.DismissFeedback];\r\n const accountLevelRejected =\r\n accountPreference &&\r\n accountPreference[type] &&\r\n now < accountPreference[type];\r\n return !(userLevelRejected || accountLevelRejected);\r\n }\r\n\r\n getCampaignAdGroupsFromScope() {\r\n const { scope } = this.recommendationService;\r\n switch (scope.levelAt) {\r\n case levelAtConstant.CUSTOMER:\r\n case levelAtConstant.ACCOUNT:\r\n return [];\r\n case levelAtConstant.CAMPAIGN:\r\n return [{\r\n Key: parseInt(scope.campaignId, 10),\r\n Value: [],\r\n }];\r\n case levelAtConstant.ADGROUP:\r\n return [{\r\n Key: parseInt(scope.campaignId, 10),\r\n Value: [parseInt(scope.adGroupId, 10)],\r\n }];\r\n default:\r\n throw new Error('can not get the scope in recommendation service');\r\n }\r\n }\r\n\r\n updateFilterState(state) {\r\n this.view.filterState = _.extend(this.view.filterState, state);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport {\r\n RECOMMENDATION_PAGE_SIZES,\r\n RECOMMENDATION_TYPES,\r\n getImageExtensionPageSize,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { crossPageSelectHeadRow } from '@bingads-webui/projection-grid-cross-page-select-all';\r\n\r\nimport {\r\n INLINE_ACTION_MAP,\r\n isSelectableType,\r\n SUPPORT_APPLY_TYPES,\r\n SUPPORT_DOWNLOAD_TYPES,\r\n SUPPORT_DISMISS_TYPES,\r\n SUPPORT_RESUBMIT_TYPES,\r\n SUPPORT_DATE_FILTER_TYPES,\r\n} from './const';\r\nimport { getColumnsByType, getDefaultSortColumn } from './columns/index';\r\nimport { RecommendationGridService } from './grid-service';\r\n\r\nexport function getPluginsConfig({\r\n deps,\r\n i18n,\r\n gridService,\r\n recommendationType,\r\n campaignType,\r\n el,\r\n downloadService,\r\n logOpportunityEvent,\r\n perfMarker,\r\n onEvent,\r\n isMCC,\r\n router,\r\n context,\r\n guid,\r\n view,\r\n readOnly,\r\n compact,\r\n channel,\r\n viewDetails,\r\n recommendationTypesAvailable,\r\n newI18n,\r\n serverContext,\r\n getGoalCreationRecommendationWizard,\r\n s$i18n,\r\n viewUET,\r\n}) {\r\n const dismissBtnId = 'button-dismiss';\r\n const applyBtnId = 'button-apply';\r\n const toolbarItemWithSelectionIds = [];\r\n const toolbarMoreButton = {\r\n type: 'button',\r\n id: 'button-more',\r\n text: i18n.getString('Recommendation_More'),\r\n classes: ['btn', 'btn-secondary'],\r\n iconLeft: ['glyphicon', 'glyph-left'],\r\n onClick: () => {\r\n onEvent('back');\r\n },\r\n };\r\n const toolbarItems = [];\r\n\r\n if (!compact) {\r\n toolbarItems.push(toolbarMoreButton);\r\n }\r\n\r\n if (_.contains(SUPPORT_APPLY_TYPES, recommendationType)) {\r\n toolbarItems.push({\r\n type: 'button',\r\n id: applyBtnId,\r\n text: i18n.getString('Button_Apply'),\r\n classes: ['btn', 'btn-primary'],\r\n disabled: readOnly,\r\n });\r\n if (!readOnly) {\r\n toolbarItemWithSelectionIds.push(applyBtnId);\r\n }\r\n }\r\n\r\n if (_.contains(SUPPORT_RESUBMIT_TYPES, recommendationType)) {\r\n toolbarItems.push({\r\n type: 'button',\r\n id: applyBtnId,\r\n text: i18n.getString('Button_Resubmit'),\r\n classes: ['btn', 'btn-primary'],\r\n disabled: readOnly,\r\n });\r\n if (!readOnly) {\r\n toolbarItemWithSelectionIds.push(applyBtnId);\r\n }\r\n }\r\n\r\n if (_.contains(SUPPORT_DISMISS_TYPES, recommendationType)) {\r\n toolbarItems.push({\r\n type: 'button',\r\n id: dismissBtnId,\r\n text: i18n.getString('Button_Dismiss'),\r\n classes: ['btn', 'btn-secondary'],\r\n disabled: readOnly,\r\n });\r\n\r\n if (!readOnly) {\r\n toolbarItemWithSelectionIds.push(dismissBtnId);\r\n }\r\n }\r\n\r\n if (_.contains(SUPPORT_DATE_FILTER_TYPES, recommendationType)) {\r\n toolbarItems.push({\r\n type: 'dropdown',\r\n button: {\r\n text: i18n.getString('Dropdown_Button_LastSixMonth'),\r\n },\r\n id: 'dropdown-date-filter',\r\n menu: {\r\n items: [{\r\n text: i18n.getString('Dropdown_Menu_LastThreeMonth'),\r\n id: 'dropdown-item-lastthreemonth',\r\n },\r\n {\r\n text: i18n.getString('Dropdown_Menu_LastSixMonth'),\r\n id: 'dropdown-item-lastsixmonth',\r\n }],\r\n },\r\n });\r\n }\r\n\r\n if (_.contains(SUPPORT_DOWNLOAD_TYPES, recommendationType)) {\r\n toolbarItems.push({\r\n type: 'button',\r\n id: 'button-download',\r\n iconLeft: ['glyphicon', 'icon-export-normal'],\r\n text: i18n.getString('Details_View_Download_All'),\r\n });\r\n }\r\n\r\n const imageExtensionPageSize = getImageExtensionPageSize(deps.permissions);\r\n\r\n const availablePageSizes = recommendationType === RECOMMENDATION_TYPES.IMAGE_EXTENSION ?\r\n imageExtensionPageSize : RECOMMENDATION_PAGE_SIZES.slice();\r\n\r\n // need test the cross page select all in selenium test\r\n if (window.location.href.indexOf('EnableOnePageSizeOption') > -1) {\r\n availablePageSizes.unshift(1);\r\n }\r\n\r\n return {\r\n toolbar: {\r\n toolbar: {\r\n items: toolbarItems,\r\n },\r\n },\r\n recommendationInlineAction: {\r\n deps,\r\n i18n,\r\n newI18n,\r\n actionType: INLINE_ACTION_MAP[recommendationType],\r\n gridService,\r\n logOpportunityEvent,\r\n router,\r\n isMCC,\r\n readOnly,\r\n el,\r\n perfMarker,\r\n serverContext,\r\n getGoalCreationRecommendationWizard,\r\n s$i18n,\r\n viewUET,\r\n },\r\n recommendationToolBarPlugin: {\r\n deps,\r\n i18n,\r\n gridService,\r\n recommendationType,\r\n campaignType,\r\n downloadService,\r\n logOpportunityEvent,\r\n context,\r\n guid,\r\n view,\r\n el,\r\n readOnly,\r\n onEvent,\r\n isMCC,\r\n channel,\r\n compact,\r\n viewDetails,\r\n recommendationTypesAvailable,\r\n newI18n,\r\n },\r\n dismissFeedback: {\r\n buttonId: dismissBtnId,\r\n },\r\n projectionGridEnableWithSelection: {\r\n toolbarItemIds: toolbarItemWithSelectionIds,\r\n },\r\n crossPageSelectAll: {\r\n i18n,\r\n },\r\n pagination: {\r\n availablePageSizes,\r\n enableRandomPage: false,\r\n pageNumberLabelText: i18n.getString('Grid_Page_Number_Label_Text'),\r\n pageSizeText: i18n.getString('Grid_ShowRows'),\r\n totalPageCountText: i18n.getString('Grid_PageOf'),\r\n resetPageNumberOnSort: true,\r\n },\r\n uiBlocker: {\r\n el,\r\n },\r\n perfMarker: {\r\n marker: perfMarker,\r\n appConfig: deps.appConfig,\r\n },\r\n editable: {\r\n i18n,\r\n },\r\n };\r\n}\r\n\r\nexport function getConfig({\r\n i18n,\r\n newI18n,\r\n s$i18n,\r\n deps,\r\n recommendationService,\r\n channel,\r\n recommendationType,\r\n campaignType,\r\n el,\r\n downloadService,\r\n view,\r\n onEvent,\r\n logOpportunityEvent,\r\n perfMarker,\r\n context,\r\n guid,\r\n primaryEstimate,\r\n isMCC,\r\n router,\r\n readOnly,\r\n compact,\r\n isOptimizationScoreOn = false,\r\n viewDetails,\r\n recommendationTypesAvailable,\r\n scope,\r\n filterState,\r\n data,\r\n serverContext,\r\n setData,\r\n setDataFromDetails,\r\n getGoalCreationRecommendationWizard,\r\n viewUET,\r\n}) {\r\n const gridService = new RecommendationGridService(\r\n recommendationService,\r\n channel,\r\n recommendationType,\r\n campaignType,\r\n view,\r\n onEvent,\r\n logOpportunityEvent,\r\n context,\r\n guid,\r\n isMCC,\r\n setData,\r\n setDataFromDetails,\r\n deps.permissions.IsRecommendationCacheDetailPageDataEnabled\r\n );\r\n\r\n let headRows = [\r\n crossPageSelectHeadRow(),\r\n 'column-header-rows',\r\n ];\r\n\r\n headRows = ['column-header-rows'];\r\n\r\n const scrolling = {\r\n header: {\r\n type: 'sticky',\r\n offset: () => $('.sticky-container').height(),\r\n },\r\n viewport: $('.recommendation-grid-page'),\r\n virtualized: false,\r\n };\r\n\r\n return {\r\n name: 'RecommendationGrid',\r\n tableClasses: ['table', 'table-bordered'],\r\n selection: {\r\n enabled: isSelectableType(recommendationType, isMCC),\r\n headClasses: ['text-center'],\r\n bodyClasses: ['text-center'],\r\n },\r\n columns: getColumnsByType({\r\n recommendationType,\r\n i18n,\r\n newI18n,\r\n s$i18n,\r\n deps,\r\n view,\r\n isMCC,\r\n readOnly,\r\n scope,\r\n filterState,\r\n data,\r\n isOptimizationScoreOn,\r\n }),\r\n plugins: getPluginsConfig({\r\n i18n,\r\n newI18n,\r\n s$i18n,\r\n deps,\r\n gridService,\r\n recommendationType,\r\n campaignType,\r\n el,\r\n downloadService,\r\n logOpportunityEvent,\r\n perfMarker,\r\n onEvent,\r\n isMCC,\r\n router,\r\n context,\r\n guid,\r\n view,\r\n readOnly,\r\n compact,\r\n channel,\r\n viewDetails,\r\n recommendationTypesAvailable,\r\n serverContext,\r\n getGoalCreationRecommendationWizard,\r\n viewUET,\r\n }),\r\n rows: {\r\n headRows,\r\n },\r\n dataSource: {\r\n type: 'js-data',\r\n entity: gridService,\r\n },\r\n scrolling,\r\n sortableHeader: isOptimizationScoreOn\r\n ? {}\r\n : getDefaultSortColumn(recommendationType, i18n, primaryEstimate),\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport React from 'react';\r\nimport { HelpPopup } from '@bingads-webui-react/help-popup';\r\n\r\nimport {\r\n CHANNEL_TYPES,\r\n ADINSIGHT_LOG_ACTION_TYPE,\r\n RECOMMENDATION_TYPES,\r\n SETTING_OPTIONS,\r\n DATE_FILTER,\r\n RECOMMENDATION_CATEGORIES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { levelAtConstant } from '@bingads-webui-campaign/scope-constants';\r\nimport { showDismissFeedbackPopup } from '@bingads-webui-campaign-react/recommendation-dismiss-feedback';\r\nimport {\r\n showApplyFeedbackPopup,\r\n showRejectFeedbackPopup,\r\n} from '@bingads-webui-campaign-react/recommendation-feedback-modal';\r\nimport { generateGuid } from '@bingads-webui-universal/primitive-utilities';\r\nimport classNames from 'classnames';\r\nimport { filterBySettingOptions } from './filter-helper';\r\n\r\nimport {\r\n SUPPORT_APPLY_TYPES,\r\n SUPPORT_DOWNLOAD_TYPES,\r\n SUPPORT_DISMISS_TYPES,\r\n SUPPORT_RESUBMIT_TYPES,\r\n SUPPORT_DATE_FILTER_TYPES,\r\n DATE_FILTER_STRING_TYPES,\r\n SUPPORT_DISMISS_ALL_TYPES,\r\n} from './const';\r\n\r\nfunction getSelectedOpportunities(gridView) {\r\n const recommendations = gridView.selectedItems();\r\n const opportunities = _.chain(recommendations)\r\n .map(i => i.Opportunities)\r\n .flatten().value();\r\n\r\n return opportunities;\r\n}\r\n\r\nfunction showAutoApplyDismissFeedbackForm(\r\n i18n,\r\n recommendationType,\r\n gridService,\r\n deps\r\n) {\r\n showDismissFeedbackPopup({\r\n i18n,\r\n type: recommendationType,\r\n onSubmit: (data) => {\r\n gridService.dismissFeedback({\r\n data,\r\n deps,\r\n rejectAutoApplySuggestedAds: true,\r\n });\r\n },\r\n rejectAutoApplySuggestedAds: true,\r\n permissions: deps.permissions,\r\n });\r\n}\r\n\r\nfunction updateCustomizeToolbarDropdownText(gridToolbarGroup, options) {\r\n const iconClass = 'ba-CheckMark';\r\n const iconLeft = 'iconLeftGlyphName';\r\n\r\n const updateToolbarDateEditor = (buttonText) => {\r\n gridToolbarGroup.toolbarWithItem(options.id).update({\r\n id: options.id,\r\n button: {\r\n text: buttonText,\r\n },\r\n });\r\n\r\n _.map(options.items, (item) => {\r\n gridToolbarGroup.toolbarWithItem(item.id).update({\r\n id: item.id,\r\n [iconLeft]: buttonText === item.buttonText && iconClass,\r\n onClick: () => {\r\n if (buttonText !== item.buttonText) {\r\n item.onClick();\r\n updateToolbarDateEditor(item.buttonText);\r\n }\r\n },\r\n });\r\n });\r\n };\r\n\r\n updateToolbarDateEditor(options.defaultButtonText);\r\n}\r\n\r\nfunction autoApplyDialog({\r\n i18n,\r\n deps,\r\n gridService,\r\n recommendationType,\r\n context,\r\n guid,\r\n view,\r\n callback,\r\n newI18n,\r\n isCrossPageApplyAll,\r\n}) {\r\n const { scope } = gridService.recommendationService;\r\n const level = scope ? scope.levelAt : levelAtConstant.ACCOUNT;\r\n const adGroupIdVNext = scope && scope.adGroupId ? [scope.adGroupId] : [];\r\n const campaignAdGroups = level !== levelAtConstant.ACCOUNT ? [{\r\n Key: scope.campaignId,\r\n Value: adGroupIdVNext,\r\n }] : [];\r\n const options = {\r\n i18n,\r\n dataService: gridService.recommendationService,\r\n el: '.recommendation-apply-feedback-popup',\r\n data: { type: recommendationType, channel: CHANNEL_TYPES.RECOMMENDATION, campaignAdGroups },\r\n guid,\r\n context,\r\n callback,\r\n cid: scope.advertiserCustomerId,\r\n aid: scope.accountId,\r\n odata: deps.odata,\r\n onAutoApplyCancel: () => {\r\n showAutoApplyDismissFeedbackForm(i18n, recommendationType, gridService, deps);\r\n },\r\n view,\r\n useCallbackAsSubmit: true,\r\n permissions: deps.permissions,\r\n newI18n,\r\n isCrossPageApplyAll,\r\n showApplyConfirmModal: _.partial(callback, true),\r\n };\r\n showApplyFeedbackPopup(options);\r\n}\r\n\r\nexport const recommendationToolBarPlugin = definePlugin => definePlugin('recommendationToolBarPlugin', [\r\n 'config',\r\n 'toolbar',\r\n 'gridView',\r\n 'crossPageSelectAll',\r\n 'recommendationInlineAction',\r\n], ({\r\n plugins: {\r\n recommendationToolBarPlugin: {\r\n i18n,\r\n deps,\r\n gridService,\r\n recommendationType,\r\n campaignType,\r\n downloadService,\r\n logOpportunityEvent,\r\n context,\r\n guid,\r\n view,\r\n el,\r\n readOnly,\r\n onEvent,\r\n isMCC = false,\r\n channel,\r\n compact = false,\r\n viewDetails,\r\n recommendationTypesAvailable,\r\n newI18n,\r\n },\r\n },\r\n}, {\r\n gridToolbarGroup,\r\n}, gridView, crossPageSelectAll, recommendationInlineAction) => {\r\n const isInProdFeedbackLoopOn = deps.permissions.IsRecommendationInProductFeedbackLoopEnabled;\r\n const isRedismissEnabled = deps.permissions.IsRecommendationRedismissEnabled;\r\n const isOptimizationScoreOn = !isMCC && channel === CHANNEL_TYPES.RECOMMENDATION;\r\n const isDismissAll = isInProdFeedbackLoopOn || isOptimizationScoreOn;\r\n const showRejectPopup = () => {\r\n const { scope } = gridService.recommendationService;\r\n const level = scope ? scope.levelAt : levelAtConstant.ACCOUNT;\r\n const adGroupIdVNext = scope && scope.adGroupId ? [scope.adGroupId] : [];\r\n const campaignAdGroups = level !== levelAtConstant.ACCOUNT ? [{\r\n Key: scope.campaignId,\r\n Value: adGroupIdVNext,\r\n }] : [];\r\n showRejectFeedbackPopup({\r\n i18n,\r\n newI18n,\r\n dataService: gridService.recommendationService,\r\n el: '.recommendations-page',\r\n data: {\r\n type: recommendationType,\r\n channel: channel\r\n || (isMCC ? CHANNEL_TYPES.MCCRECOMMENDATION : CHANNEL_TYPES.RECOMMENDATION),\r\n campaignAdGroups,\r\n },\r\n guid,\r\n context,\r\n callback: () => {\r\n onEvent('refreshSummary', { isFromApplyOrDismiss: true });\r\n },\r\n readOnly,\r\n isDismissAll,\r\n permissions: deps.permissions,\r\n viewDetails,\r\n recommendationTypesAvailable,\r\n });\r\n };\r\n\r\n const applyInToolbar = (showApplyAllComfirmModal = false) => {\r\n const inlineView = recommendationInlineAction.view;\r\n const opportunities = getSelectedOpportunities(gridView);\r\n // apply all opportunity cross page\r\n if (crossPageSelectAll.isAllSelected) {\r\n const applyConfirmPromise = new Promise((resolve) => {\r\n if (showApplyAllComfirmModal) {\r\n onEvent('showApplyConfirmModal', { onApply: resolve, countRecommendation: gridView.totalCountRows });\r\n } else {\r\n resolve();\r\n }\r\n });\r\n\r\n return applyConfirmPromise\r\n .then(() => withUiBlock(el))\r\n .then(closeUiBlockApplyAll =>\r\n gridService.applyAll({\r\n recommendationType,\r\n opportunities,\r\n closeUiBlock: closeUiBlockApplyAll,\r\n // opportunity is the base unit of apply\r\n totalRecommendationCount: gridService.opportunityCount,\r\n }))\r\n .then(() => {\r\n gridView.refresh({ force: true });\r\n });\r\n }\r\n\r\n // apply the only one expanded inline view.\r\n if (inlineView && inlineView.childView && inlineView.childView.apply) {\r\n inlineView.childView.apply();\r\n return null;\r\n }\r\n\r\n // apply selected opportunities\r\n // filter out unwanted opportunities for special cases\r\n let filteredOpportunities = opportunities;\r\n if (recommendationType === RECOMMENDATION_TYPES.FIX_AD_DESTINATION) {\r\n filteredOpportunities = _.filter(opportunities, opportunity => opportunity.IsAppealable);\r\n }\r\n\r\n return gridService.apply({\r\n opportunities: filteredOpportunities,\r\n closeUiBlock: withUiBlock(el),\r\n }).then(() => {\r\n gridView.refresh({ force: true });\r\n });\r\n };\r\n\r\n if (_.contains(SUPPORT_APPLY_TYPES, recommendationType)\r\n || _.contains(SUPPORT_RESUBMIT_TYPES, recommendationType)) {\r\n gridToolbarGroup.toolbarWithItem('button-apply').update({\r\n id: 'button-apply',\r\n onClick: () => {\r\n const opportunities = getSelectedOpportunities(gridView);\r\n\r\n const rejectAutoApplySuggestedAds = true;\r\n const isShowFeedback = gridService.isShowFeedback({\r\n recommendationType,\r\n deps,\r\n rejectAutoApplySuggestedAds,\r\n permissions: deps.permissions,\r\n });\r\n\r\n if (recommendationType === RECOMMENDATION_TYPES.IMAGE_EXTENSION\r\n && _.some(opportunities, opporunity => opporunity.ImageSourceStr === 'Website')\r\n && deps.permissions.IsAccountEnabledForCrawlImagesFromLandingPage) {\r\n const { scope } = gridService.recommendationService;\r\n const level = scope ? scope.levelAt : levelAtConstant.ACCOUNT;\r\n const adGroupIdVNext = scope && scope.adGroupId ? [scope.adGroupId] : [];\r\n const campaignAdGroups = level !== levelAtConstant.ACCOUNT ? [{\r\n Key: scope.campaignId,\r\n Value: adGroupIdVNext,\r\n }] : [];\r\n const options = {\r\n odata: deps.odata,\r\n cid: scope.advertiserCustomerId,\r\n aid: scope.accountId,\r\n permissions: deps.permissions,\r\n isFromImgExtV2: true,\r\n i18n,\r\n el: '.recommendation-apply-feedback-popup',\r\n data: {\r\n type: recommendationType,\r\n channel: CHANNEL_TYPES.RECOMMENDATION,\r\n campaignAdGroups,\r\n },\r\n dataService: gridService.recommendationService,\r\n callback: applyInToolbar,\r\n newI18n,\r\n };\r\n showApplyFeedbackPopup(options);\r\n return null;\r\n }\r\n // Condition: Apply all new ads recommendations\r\n // Show a dialog to confirm enabling auto-apply ad suggestions.\r\n if (!isMCC\r\n && (recommendationType === RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS\r\n && deps.permissions.IsRSAAutoApplyEnabled)\r\n && (crossPageSelectAll.isAllSelected || opportunities.length === gridView.totalCountRows)\r\n && isShowFeedback) {\r\n autoApplyDialog({\r\n i18n,\r\n deps,\r\n gridService,\r\n recommendationType,\r\n context,\r\n guid,\r\n view,\r\n callback: applyInToolbar,\r\n newI18n,\r\n isCrossPageApplyAll: crossPageSelectAll.isAllSelected,\r\n });\r\n return null;\r\n }\r\n\r\n return applyInToolbar(true);\r\n },\r\n });\r\n }\r\n\r\n if (_.contains(SUPPORT_DISMISS_TYPES, recommendationType)\r\n && _.result(context, 'Category', '') === RECOMMENDATION_CATEGORIES.DISMISSED) {\r\n gridToolbarGroup.toolbarWithItem('button-undismiss').update({\r\n id: 'button-undismiss',\r\n onClick: (e) => {\r\n e.stopPropagation();\r\n const trackId = generateGuid();\r\n const inlineView = recommendationInlineAction.view;\r\n const opportunities = getSelectedOpportunities(gridView);\r\n\r\n if (crossPageSelectAll.isAllSelected) {\r\n gridService.undismissAll({ recommendationType, context: { trackId } }).then(() => {\r\n gridView.refresh({ force: true });\r\n }).finally(withUiBlock(el));\r\n } else {\r\n // dismiss the only one expanded inline view.\r\n if (inlineView && inlineView.childView && inlineView.childView.dismiss) {\r\n inlineView.childView.dismiss({ context: { trackId } });\r\n return null;\r\n }\r\n\r\n // dismiss selected opportunities\r\n gridService.undismiss({ opportunities, context: { trackId } }).then(() => {\r\n gridView.refresh({ force: true });\r\n }).finally(withUiBlock(el));\r\n }\r\n\r\n return true;\r\n },\r\n });\r\n }\r\n\r\n if (_.contains(SUPPORT_DISMISS_TYPES, recommendationType)\r\n && _.result(context, 'Category', '') !== RECOMMENDATION_CATEGORIES.DISMISSED) {\r\n gridToolbarGroup.toolbarWithItem('button-dismiss').update({\r\n id: 'button-dismiss',\r\n onClick: (e) => {\r\n e.stopPropagation();\r\n const trackId = generateGuid();\r\n const rejectAutoApplySuggestedAds = false;\r\n const isShowFeedback = gridService.isShowFeedback({\r\n recommendationType,\r\n deps,\r\n rejectAutoApplySuggestedAds,\r\n permissions: deps.permissions,\r\n });\r\n const inlineView = recommendationInlineAction.view;\r\n const opportunities = getSelectedOpportunities(gridView);\r\n\r\n if (crossPageSelectAll.isAllSelected) {\r\n if (isRedismissEnabled) {\r\n showRejectPopup();\r\n } else {\r\n gridService.dismissAll({ recommendationType, context: { trackId } }).then(() => {\r\n gridView.refresh({ force: true });\r\n }).finally(withUiBlock(el));\r\n }\r\n } else {\r\n // dismiss the only one expanded inline view.\r\n if (inlineView && inlineView.childView && inlineView.childView.dismiss) {\r\n inlineView.childView.dismiss({ context: { trackId } });\r\n return null;\r\n }\r\n\r\n // dismiss selected opportunities\r\n gridService.dismiss({ opportunities, context: { trackId } }).then(() => {\r\n gridView.refresh({ force: true });\r\n }).finally(withUiBlock(el));\r\n }\r\n\r\n // show the dismiss feedback\r\n if (isShowFeedback && !(isRedismissEnabled && crossPageSelectAll.isAllSelected)) {\r\n showDismissFeedbackPopup({\r\n newI18n,\r\n i18n,\r\n type: recommendationType,\r\n onSubmit: (data, isShowNewDismissForm) => {\r\n gridService.dismissFeedback({\r\n data,\r\n deps,\r\n context: { trackId },\r\n opportunities,\r\n isRedismissEnabled: isRedismissEnabled && isShowNewDismissForm,\r\n });\r\n },\r\n permissions: deps.permissions,\r\n viewDetails,\r\n recommendationTypesAvailable,\r\n });\r\n }\r\n\r\n return true;\r\n },\r\n });\r\n }\r\n\r\n if (_.contains(SUPPORT_DATE_FILTER_TYPES, recommendationType)) {\r\n updateCustomizeToolbarDropdownText(\r\n gridToolbarGroup,\r\n {\r\n id: 'dropdown-date-filter',\r\n defaultButtonText: i18n.getString(DATE_FILTER_STRING_TYPES.LAST_SIX_MONTH),\r\n items: [\r\n {\r\n id: 'dropdown-item-lastthreemonth',\r\n buttonText: i18n.getString(DATE_FILTER_STRING_TYPES.LAST_THREE_MONTH),\r\n onClick: () => {\r\n gridService.updateFilterState({ dateFilter: DATE_FILTER.LAST_90 });\r\n filterBySettingOptions(gridView, {\r\n recommendationType,\r\n addedOptions: SETTING_OPTIONS.REJECTION_DATE_LAST_NINETY_DAYS,\r\n });\r\n if (view.grid.pagination) {\r\n view.grid.pagination.trigger('change:page-size');\r\n }\r\n },\r\n },\r\n {\r\n id: 'dropdown-item-lastsixmonth',\r\n buttonText: i18n.getString(DATE_FILTER_STRING_TYPES.LAST_SIX_MONTH),\r\n onClick: () => {\r\n gridService.updateFilterState({ dateFilter: DATE_FILTER.LAST_180 });\r\n filterBySettingOptions(gridView, {\r\n recommendationType,\r\n addedOptions: SETTING_OPTIONS.REJECTION_DATE_LAST_NINETY_DAYS,\r\n isRemove: true,\r\n });\r\n if (view.grid.pagination) {\r\n view.grid.pagination.trigger('change:page-size');\r\n }\r\n },\r\n },\r\n ],\r\n }\r\n );\r\n }\r\n\r\n if (_.contains(SUPPORT_DOWNLOAD_TYPES, recommendationType)) {\r\n gridToolbarGroup.toolbarWithItem('button-download').update({\r\n id: 'button-download',\r\n onClick: () => {\r\n downloadService.download({\r\n channel: channel\r\n || (isMCC ? CHANNEL_TYPES.MCCRECOMMENDATION : CHANNEL_TYPES.RECOMMENDATION),\r\n recommendationType,\r\n campaignType,\r\n }).then(() => {\r\n logOpportunityEvent({\r\n type: recommendationType,\r\n action: ADINSIGHT_LOG_ACTION_TYPE.DOWNLOAD,\r\n });\r\n });\r\n },\r\n });\r\n }\r\n\r\n if (!compact) {\r\n /* eslint-disable jsx-a11y/click-events-have-key-events */\r\n const rejectHelpPopup = itemConfig => (\r\n
\r\n
\r\n \r\n \r\n {itemConfig.text}\r\n
\r\n {!isDismissAll &&\r\n \r\n }\r\n
\r\n );\r\n\r\n if (_.result(context, 'Category', '') === RECOMMENDATION_CATEGORIES.DISMISSED) {\r\n gridToolbarGroup.toolbarWithItem('button-undismiss-all').update({\r\n id: 'button-undismiss-all',\r\n onClick: (e) => {\r\n e.stopPropagation();\r\n gridService.undismissAll({ recommendationType, context: { trackId: generateGuid() } })\r\n .then(() => {\r\n gridView.refresh({ force: true });\r\n }).finally(withUiBlock(el));\r\n\r\n return true;\r\n },\r\n });\r\n } else if (_.contains(SUPPORT_DISMISS_ALL_TYPES, recommendationType)) {\r\n gridToolbarGroup.toolbarWithItem('reject-help-popup').update({\r\n id: 'reject-help-popup',\r\n content: rejectHelpPopup({\r\n type: 'nav-item',\r\n id: 'button-reject',\r\n iconLeftGlyphName: 'ba-Blocked',\r\n text: isDismissAll ? i18n.getString('Details_View_Dismiss_All') : i18n.getString('Details_View_Reject'),\r\n readOnly,\r\n }),\r\n });\r\n }\r\n }\r\n});\r\n\r\n","import Backbone from 'backbone';\r\nimport { CHANNEL_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\nimport { showRejectFeedbackPopup } from '@bingads-webui-campaign-react/recommendation-feedback-modal';\r\nimport { levelAtConstant } from '@bingads-webui-campaign/scope-constants';\r\nimport template from './grid-reject-button.pug';\r\n\r\nexport class RejectButton extends Backbone.View {\r\n initialize({\r\n i18n,\r\n recommendationService,\r\n recommendationType,\r\n callback,\r\n category,\r\n guid,\r\n readOnly,\r\n }) {\r\n const { scope } = recommendationService;\r\n const level = scope ? scope.levelAt : levelAtConstant.ACCOUNT;\r\n const adGroupIdVNext = scope && scope.adGroupId ? [scope.adGroupId] : [];\r\n const campaignAdGroups = level !== levelAtConstant.ACCOUNT ? [{\r\n Key: scope.campaignId,\r\n Value: adGroupIdVNext,\r\n }] : [];\r\n this.i18n = i18n;\r\n this.helpId = 'pop_BA_Recommendations_StopShowingRec';\r\n this.options = {\r\n i18n,\r\n dataService: recommendationService,\r\n el: '#summary_tab_recommendations',\r\n data: { type: recommendationType, channel: CHANNEL_TYPES.RECOMMENDATION, campaignAdGroups },\r\n guid,\r\n context: { Source: null, Level: level, Category: category },\r\n callback,\r\n readOnly,\r\n };\r\n }\r\n get events() {\r\n return { 'click .btn.btn-reject': 'showModal' };\r\n }\r\n showModal() {\r\n const { options } = this;\r\n showRejectFeedbackPopup(options);\r\n }\r\n render() {\r\n const {\r\n i18n, helpId, options: { readOnly },\r\n } = this;\r\n this.$el.html(template({ i18n, helpId, readOnly }));\r\n return this;\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport Backbone from 'backbone';\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport * as pgrid from 'projection-grid';\r\nimport { toolbarPlugin } from '@bingads-webui/projection-grid-toolbar';\r\nimport { recommendationInlineAction } from '@bingads-webui-campaign/recommendation-inline-action';\r\nimport { projectionGridEnableWithSelection } from '@bingads-webui-campaign/projection-grid-enable-with-selection';\r\nimport { crossPageSelectAllPlugin } from '@bingads-webui/projection-grid-cross-page-select-all';\r\nimport { assistedSelectionPlugin } from '@bingads-webui/projection-grid-assisted-selection';\r\nimport { paginationPlugin } from '@bingads-webui/projection-grid-pagination';\r\nimport { perfMarkerPlugin } from '@bingads-webui-campaign/pgrid-performance-log';\r\nimport { uiBlockerPlugin } from '@bingads-webui/projection-grid-uiblocker';\r\nimport { editablePlugin } from '@bingads-webui-campaign/projection-grid-editable';\r\nimport {\r\n CampaignContextualAttributeView,\r\n AdGroupContextualAttributeView,\r\n KeywordContextualAttributeView,\r\n AudienceContextualAttributeView,\r\n NegativeKeywordListContextualAttributeView,\r\n SharedBudgetContextualAttributeView,\r\n setPosition as setPositionOfContextualAttr,\r\n} from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\nimport { levelAtConstant } from '@bingads-webui-campaign/scope-constants';\r\nimport {\r\n VISUAL_TYPES,\r\n RECOMMENDATIOIN_SUMMARY_APPLY_FAILED_RESULTS,\r\n ADINSIGHT_LOG_API_NAME,\r\n CHANNEL_TYPES,\r\n RECOMMENDATION_IDS,\r\n ADINSIGHT_LOG_ACTION_TYPE,\r\n CheckDocBottomMargin,\r\n CONTEXTUAL_ENTITY_TYPE,\r\n DOWNLOAD_SCOPE,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { AdvisorChart } from '@bingads-webui-campaign-react/advisor-chart';\r\nimport { formatNotificationLocalizedKey } from '@bingads-webui-campaign/recommendation-notification';\r\nimport { RecommendationStatusLightbox } from '@bingads-webui-campaign/recommendation-status-lightbox';\r\nimport { getSessionStorage } from '@bingads-webui/storage';\r\n\r\nimport { getConfig } from './grid-config';\r\nimport { recommendationToolBarPlugin } from './grid-toolbar-plugin';\r\nimport { RejectButton } from './reject-button/grid-reject-button';\r\nimport { isSelectableType, isPopupEditorEnabledRecommendationType, getSearchTermChartData } from './const';\r\nimport template from './template.pug';\r\nimport { filterByOpportunityId, removeFilter } from './filter-helper';\r\n\r\nexport class RecommendationGrid extends Backbone.View {\r\n initialize({\r\n deps,\r\n i18n,\r\n newI18n,\r\n recommendationType,\r\n channel,\r\n recommendationService,\r\n downloadService,\r\n category,\r\n onEvent,\r\n context,\r\n guid,\r\n version,\r\n perfMarker,\r\n primaryEstimate,\r\n readOnly,\r\n compact,\r\n s$i18n,\r\n }) {\r\n if (perfMarker) {\r\n this.perfMarker = perfMarker.createChild('RecommendationDetailsGrid', { autoEnd: true });\r\n this.perfMarker.willInit();\r\n }\r\n this.deps = deps;\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n this.s$i18n = s$i18n;\r\n this.recommendationType = recommendationType;\r\n this.channel = channel || CHANNEL_TYPES.RECOMMENDATION;\r\n this.recommendationService = recommendationService;\r\n this.downloadService = downloadService;\r\n this.onEvent = onEvent;\r\n this.timerForPopupContextualAttribute = null;\r\n this.popoverId = 'contextual-attribute';\r\n this.readOnly = readOnly;\r\n this.filterState = {};\r\n this.rejectButton = new RejectButton({\r\n deps,\r\n i18n,\r\n recommendationService,\r\n recommendationType,\r\n category,\r\n guid,\r\n callback: () => {\r\n this.onEvent('refreshSummary');\r\n },\r\n readOnly: this.readOnly,\r\n });\r\n this.context = context;\r\n this.guid = guid;\r\n this.version = version;\r\n this.primaryEstimate = primaryEstimate || '';\r\n this.compact = compact || false;\r\n\r\n const applyFailedResults = getSessionStorage().get(RECOMMENDATIOIN_SUMMARY_APPLY_FAILED_RESULTS); // eslint-disable-line\r\n const applyFailed = applyFailedResults !== null && applyFailedResults.recommendationType === this.recommendationType; // eslint-disable-line\r\n\r\n this.statusLightBox = new RecommendationStatusLightbox({\r\n results: applyFailed ? applyFailedResults.results : null,\r\n i18n,\r\n newI18n,\r\n view: this,\r\n filterByOpportunityId,\r\n removeFilter,\r\n recommendationType,\r\n formatNotificationLocalizedKey,\r\n currentActivity: this.recommendationService.currentActivity,\r\n });\r\n this.statusLightBox.render();\r\n\r\n if (applyFailed) {\r\n this.statusLightBox.trigger('show');\r\n } else {\r\n getSessionStorage().clear();\r\n }\r\n\r\n this.gridFactory = pgrid.factory({ vnext: true })\r\n // For accurate grid init latency, PerfMarkerPlugin should be the first plugin to load.\r\n .use(perfMarkerPlugin)\r\n .use(recommendationInlineAction)\r\n .use(toolbarPlugin)\r\n .use(assistedSelectionPlugin)\r\n .use(projectionGridEnableWithSelection)\r\n .use(uiBlockerPlugin);\r\n\r\n if (isSelectableType(recommendationType)) {\r\n this.gridFactory = this.gridFactory\r\n .use(paginationPlugin)\r\n .use(crossPageSelectAllPlugin)\r\n .use(recommendationToolBarPlugin);\r\n }\r\n\r\n if (isPopupEditorEnabledRecommendationType(recommendationType)) {\r\n this.gridFactory = this.gridFactory\r\n .use(editablePlugin);\r\n }\r\n }\r\n\r\n get events() {\r\n const contextualEvents = {\r\n 'mouseover .grid-column-campaignName .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-campaignName .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-adGroupName .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-adGroupName .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-keyword .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-keyword .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-BidAdjustmentTodo .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-BidAdjustmentTodo .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-BudgetDelta .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-BudgetDelta .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-blockedKeywordList .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-blockedKeywordList .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-removeNKW .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-removeNKW .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'click .grid-column-BudgetDelta .contextual-tooltip': 'router',\r\n 'click .grid-column-BidAdjustmentTodo .contextual-tooltip': 'router',\r\n 'click .grid-column-removeNKW .contextual-tooltip': 'router',\r\n };\r\n const otherEvents = {\r\n 'click .more-tooltip .more-link': 'showClickableTooltip',\r\n 'click .more-tooltip .close-button': 'hideClickableTooltip',\r\n 'click .more-tooltip .more-top-search-term': 'showTopSearchTermChart',\r\n 'change .match_type_inline_selection .match-type-select': 'updateMatchType',\r\n 'click .grid-column-campaignName .contextual-tooltip': 'router',\r\n 'click .grid-column-adGroupName .contextual-tooltip': 'router',\r\n };\r\n\r\n if (this.compact) {\r\n return otherEvents;\r\n }\r\n\r\n return {\r\n ...contextualEvents,\r\n ...otherEvents,\r\n };\r\n }\r\n\r\n router(e) {\r\n const target = $(e.target);\r\n // only campaign or adgroup contextual attribute can be clicked to redirect\r\n if (!_.contains([CONTEXTUAL_ENTITY_TYPE.CAMPAIGN, CONTEXTUAL_ENTITY_TYPE.ADGROUP], target.data('type'))) { // eslint-disable-line\r\n return;\r\n }\r\n const levelAt = target.data('type');\r\n const entityid = target.data('entityid');\r\n const campaignId = target.data('entitycampaignid');\r\n const { scope } = this.recommendationService;\r\n\r\n if (isPopupEditorEnabledRecommendationType(this.recommendationType)\r\n && levelAt === levelAtConstant.ADGROUP) {\r\n return;\r\n }\r\n if (levelAt !== scope.levelAt) {\r\n const scopedata = {\r\n ...scope,\r\n levelAt,\r\n adGroupId: entityid,\r\n campaignId: campaignId || entityid,\r\n };\r\n this.onEvent('updateScope', scopedata);\r\n }\r\n }\r\n\r\n hideContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n const target = $(e.target);\r\n $(`.contextual-attribute-${target.data('opportunityid')}-${target.data('entityid')}`).hide();\r\n }\r\n\r\n showContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n this.timerForPopupContextualAttribute = setTimeout(() => {\r\n const target = $(e.target);\r\n const contextual = $(`.contextual-attribute-${target.data('opportunityid')}-${target.data('entityid')}`);\r\n\r\n if (contextual.length === 0) {\r\n return;\r\n }\r\n if (!target.data('status')) {\r\n const contextualAttributeMapper = {\r\n [CONTEXTUAL_ENTITY_TYPE.CAMPAIGN]: CampaignContextualAttributeView,\r\n [CONTEXTUAL_ENTITY_TYPE.ADGROUP]: AdGroupContextualAttributeView,\r\n [CONTEXTUAL_ENTITY_TYPE.KEYWORD]: KeywordContextualAttributeView,\r\n [CONTEXTUAL_ENTITY_TYPE.AUDIENCE]: AudienceContextualAttributeView,\r\n [CONTEXTUAL_ENTITY_TYPE.NEGATIVE_KEYWORD_LIST]:\r\n NegativeKeywordListContextualAttributeView,\r\n [CONTEXTUAL_ENTITY_TYPE.SHARED_BUDGET]: SharedBudgetContextualAttributeView,\r\n };\r\n this.contextualAttributeView = new contextualAttributeMapper[target.data('type')]({\r\n deps: this.deps,\r\n i18n: this.i18n,\r\n targetId: Number(target.data('entityid')),\r\n el: contextual,\r\n });\r\n this.contextualAttributeView.render();\r\n target.data('status', 'true');\r\n }\r\n const container = contextual.children('.contextual-tooltip-container');\r\n contextual.show();\r\n if (container.length > 0) {\r\n setPositionOfContextualAttr(container);\r\n }\r\n }, 500);\r\n }\r\n\r\n showClickableTooltip(e) {\r\n $('.more-tooltip-container').hide();\r\n const target = $(e.target);\r\n const tooltipContainer = target.parent().find('.more-tooltip-container');\r\n tooltipContainer.show();\r\n\r\n // Add click listener to window\r\n $(window).on('click', (event) => {\r\n this.onClickGlobal(event);\r\n });\r\n tooltipContainer.css('top', '');\r\n tooltipContainer.css('bottom', '');\r\n tooltipContainer.css('margin-top', '');\r\n tooltipContainer.css('margin-bottom', '');\r\n if (!CheckDocBottomMargin(tooltipContainer, 50)) {\r\n tooltipContainer.css('bottom', '100%');\r\n // the width-expander layer's height is zero,\r\n // so we had to add the height of text to the margin\r\n tooltipContainer.css('margin-bottom', '17px');\r\n } else {\r\n tooltipContainer.css('top', '100%');\r\n tooltipContainer.css('margin-top', '5px');\r\n }\r\n }\r\n\r\n showTopSearchTermChart(e) {\r\n $('.more-tooltip-container').hide();\r\n const target = $(e.target);\r\n const tooltipContainer = target.parent().find('.more-tooltip-container');\r\n tooltipContainer.show();\r\n\r\n // Add click listener to window\r\n $(window).on('click', (event) => {\r\n this.onClickGlobal(event);\r\n });\r\n\r\n // Get searchTermList from data-searchtermlist\r\n const searchTermList = target.data('searchtermlist');\r\n let chart = null;\r\n const visualType = VISUAL_TYPES.SEARCH_TERMS_CHART;\r\n const visualData = getSearchTermChartData(searchTermList);\r\n chart = ();\r\n const container = target.parent().find('.more-top-search-term-content');\r\n if (container && container.length > 0) {\r\n ReactDOM.render(\r\n chart,\r\n container[0]\r\n );\r\n }\r\n tooltipContainer.css('top', '');\r\n tooltipContainer.css('bottom', '');\r\n tooltipContainer.css('margin-top', '');\r\n tooltipContainer.css('margin-bottom', '');\r\n if (!CheckDocBottomMargin(tooltipContainer, 50)) {\r\n tooltipContainer.css('bottom', '100%');\r\n tooltipContainer.css('margin-bottom', '5px');\r\n } else {\r\n tooltipContainer.css('top', '100%');\r\n tooltipContainer.css('margin-top', '5px');\r\n }\r\n }\r\n\r\n updateMatchType(e) {\r\n const key = $(e.target).parents('tr[data-key]').data('key');\r\n const recommendation = this.grid.gridView.itemWithKey(key);\r\n const index = e.target.selectedIndex;\r\n _.first(recommendation.Opportunities).NewMatchType = Number(e.target.options[index].value);\r\n\r\n // Append the current selected one into existing selected ones.\r\n const selectedKeys = this.grid.gridView.selectedKeys();\r\n if (!_.contains(selectedKeys, key)) {\r\n selectedKeys.push(key);\r\n }\r\n this.grid.gridView.set({ selection: _.defaults({ selected: selectedKeys }) });\r\n }\r\n\r\n hideClickableTooltip(e) {\r\n const target = $(e.target);\r\n target.parents('.more-tooltip-container').hide();\r\n\r\n // Remove click listener from window\r\n $(window).off('click');\r\n }\r\n\r\n onClickGlobal(e) {\r\n const target = $(e.target);\r\n if (target.parent().length > 0 &&\r\n target.parents('.more-tooltip-container').length === 0 &&\r\n !target.parent().hasClass('more-tooltip') &&\r\n !target.hasClass('more-tooltip-container')) {\r\n $('.more-tooltip-container').hide();\r\n\r\n // Remove click listener from window\r\n $(window).off('click');\r\n }\r\n }\r\n\r\n logOpportunityEvent = ({\r\n opportunityId = null,\r\n campaignId = null,\r\n input = null,\r\n type,\r\n action,\r\n context = {},\r\n }) => {\r\n this.recommendationService.currentActivity.trace({\r\n id: opportunityId,\r\n type,\r\n typeId: RECOMMENDATION_IDS[type],\r\n action,\r\n campaignId,\r\n channel: this.channel,\r\n context: action === ADINSIGHT_LOG_ACTION_TYPE.DOWNLOAD ?\r\n JSON.stringify(_.extend({\r\n Version: this.version,\r\n DownloadScope: DOWNLOAD_SCOPE.INDIVIDUAL,\r\n }, this.context)) :\r\n JSON.stringify(_.extend({}, this.context, context)),\r\n guid: this.guid,\r\n input,\r\n }, ADINSIGHT_LOG_API_NAME.RECOMMENDATION);\r\n }\r\n\r\n render() {\r\n this.$el.html(template());\r\n\r\n this.config = getConfig({\r\n deps: this.deps,\r\n i18n: this.i18n,\r\n newI18n: this.newI18n,\r\n s$i18n: this.s$i18n,\r\n recommendationType: this.recommendationType,\r\n channel: this.channel,\r\n recommendationService: this.recommendationService,\r\n el: this.$('.recommendation-grid'),\r\n downloadService: this.downloadService,\r\n onEvent: this.onEvent,\r\n view: this,\r\n logOpportunityEvent: this.logOpportunityEvent,\r\n perfMarker: this.perfMarker,\r\n context: this.context,\r\n guid: this.guid,\r\n primaryEstimate: this.primaryEstimate,\r\n router: this.router.bind(this),\r\n readOnly: this.readOnly,\r\n compact: this.compact,\r\n scope: this.recommendationService.scope,\r\n filterState: this.filterState,\r\n });\r\n\r\n this.grid = this.gridFactory.create(this.config);\r\n const $grid = this.grid.gridView.render().$el;\r\n this.$('.grid-table').append($grid);\r\n this.$('.upper-toolbar').append(this.grid.toolbar.gridToolbarGroup.toolbarWithName('toolbar').$el);\r\n if (!this.compact) {\r\n this.$('.reject-container').append(this.rejectButton.render().$el);\r\n }\r\n this.$('.notification-container').append(this.statusLightBox.$el);\r\n this.grid.gridView.once('didReload', () => {\r\n const { gridRecCount } = this.config.plugins.recommendationInlineAction.gridService;\r\n const gridDataVersion = this.config.plugins.recommendationInlineAction.gridService.version;\r\n const cardDataVersion = this.version;\r\n\r\n if (gridRecCount === 0) {\r\n this.recommendationService.currentActivity.trace(\r\n `no recommendation in detail page, type=${this.recommendationType}, GUID=${this.guid}`,\r\n 'recommendation/noRecommendation'\r\n );\r\n this.onEvent('refreshSummary');\r\n } else if (gridDataVersion && cardDataVersion && gridDataVersion !== cardDataVersion) {\r\n this.recommendationService.currentActivity.trace(\r\n `inconsistent recommendation version between grid and summary card, type=${this.recommendationType}, GUID=${this.guid}, gridVersion=${gridDataVersion}, cardVersion=${cardDataVersion}`,\r\n 'recommendation/inconsistentRecommendationVersion'\r\n );\r\n }\r\n this.onEvent('loaded');\r\n });\r\n this.grid.gridView.once('refreshSummary', () => {\r\n this.onEvent('refreshSummary');\r\n });\r\n return this;\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\nexport const projectionGridEnableWithSelection = definePlugin => definePlugin('projectionGridEnableWithSelection', [\r\n 'gridView',\r\n], (gridView) => {\r\n gridView.on('didUpdate', () => {\r\n const selectedItems = gridView.selectedItems();\r\n if (!_.isEmpty(selectedItems)) {\r\n gridView.trigger('didSelect', gridView.selectedKeys());\r\n }\r\n });\r\n});\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Backbone from 'backbone';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport * as pgrid from 'projection-grid';\r\nimport { recommendationInlineAction } from '@bingads-webui-campaign/recommendation-inline-action';\r\nimport { assistedSelectionPlugin } from '@bingads-webui/projection-grid-assisted-selection';\r\nimport { paginationPlugin } from '@bingads-webui/projection-grid-pagination';\r\nimport { perfMarkerPlugin } from '@bingads-webui-campaign/pgrid-performance-log';\r\nimport { uiBlockerPlugin } from '@bingads-webui/projection-grid-uiblocker';\r\nimport { editablePlugin } from '@bingads-webui-campaign/projection-grid-editable';\r\nimport {\r\n showContextualAttribute,\r\n hideContextualAttribute,\r\n} from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\nimport { levelAtConstant } from '@bingads-webui-campaign/scope-constants';\r\nimport {\r\n VISUAL_TYPES,\r\n CONTEXTUAL_ENTITY_TYPE,\r\n RECOMMENDATION_TYPES,\r\n ADINSIGHT_LOG_ACTION_TYPE,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { AdvisorChart } from '@bingads-webui-campaign-react/advisor-chart';\r\n\r\nimport {\r\n DeterministicWrapperView,\r\n DeterministicViewForBackBoneView,\r\n} from '@bingads-webui/deterministic-wrapper-view';\r\nimport { showPopup } from '@bingads-webui/automatic-positioning-popover';\r\n\r\n\r\nimport { isPopupEditorEnabledRecommendationType, getSearchTermChartData } from './const';\r\nimport { projectionGridEnableWithSelection } from './new-additional-plugins';\r\nimport { recommendationToolBarPlugin } from './grid-toolbar-plugin';\r\n\r\nexport class NewRecommendationsGrid extends DeterministicWrapperView {\r\n viewFactory({\r\n i18n,\r\n deps,\r\n config,\r\n logOpportunityEvent,\r\n recommendationType,\r\n recommendationService,\r\n downloadService,\r\n isMCC = false,\r\n crossPageSelectPlugin,\r\n newToolBarPlugin,\r\n onEvent,\r\n readOnly,\r\n compact,\r\n s$i18n,\r\n newI18n,\r\n }) {\r\n this.isMCC = isMCC;\r\n this.onEvent = onEvent;\r\n this.deps = deps;\r\n this.i18n = i18n;\r\n this.logOpportunityEvent = logOpportunityEvent;\r\n this.recommendationType = recommendationType;\r\n this.recommendationService = recommendationService;\r\n this.downloadService = downloadService;\r\n this.timerForPopupContextualAttribute = null;\r\n this.readOnly = readOnly;\r\n this.compact = compact || false;\r\n this.s$i18n = s$i18n;\r\n this.newI18n = newI18n;\r\n this.imageUrl = [];\r\n this.timerForStockUXCall = null;\r\n this.selectableFunc = null;\r\n\r\n this.gridFactory = pgrid.factory({ vnext: true })\r\n // For accurate grid init latency, PerfMarkerPlugin should be the first plugin to load.\r\n .use(perfMarkerPlugin)\r\n .use(recommendationInlineAction)\r\n .use(newToolBarPlugin)\r\n .use(assistedSelectionPlugin)\r\n .use(projectionGridEnableWithSelection)\r\n .use(uiBlockerPlugin)\r\n .use(paginationPlugin)\r\n .use(crossPageSelectPlugin.plugin)\r\n .use(recommendationToolBarPlugin);\r\n\r\n if (isPopupEditorEnabledRecommendationType(recommendationType)) {\r\n this.gridFactory = this.gridFactory\r\n .use(editablePlugin);\r\n }\r\n\r\n this.grid = this.gridFactory.create(config);\r\n\r\n this.grid.gridView.once('didReload', () => {\r\n this.onEvent('loaded');\r\n });\r\n this.grid.gridView.once('refreshSummary', () => {\r\n this.onEvent('refreshSummary');\r\n });\r\n\r\n this.renderStockImagePreview = (row, src) => {\r\n $(`tbody tr:nth-child(${row}) .suggested-image-extension-preview-column img`)\r\n .attr('src', src);\r\n $(`tbody tr:nth-child(${row}) .loadContainer`).remove();\r\n };\r\n\r\n this.renderNoImagePreview = (row) => {\r\n $(`tbody tr:nth-child(${row}) .suggested-image-extension-preview-column .previewImage`).empty();\r\n $(`tbody tr:nth-child(${row}) .suggested-image-extension-preview-column .previewImage`)\r\n .append('
');\r\n $(`tbody tr:nth-child(${row}) .suggested-image-extension-preview-column .previewTexts`).empty();\r\n\r\n const noImageText = this.newI18n.getString(_TL_('Image preview is not currently available. Please select the \"+\" thumbnail or the Add image extension button to add an image extension.'));\r\n $(`tbody tr:nth-child(${row}) .suggested-image-extension-preview-column .previewTexts`)\r\n .append(`
${noImageText}
`);\r\n $(`tbody tr:nth-child(${row}) .inline-action-image-extension-column .actionContainer`).empty();\r\n\r\n const actionText = this.newI18n.getString(_TL_('Add image extension'));\r\n $(`tbody tr:nth-child(${row}) .inline-action-image-extension-column .actionContainer`)\r\n .append(``);\r\n $(`tbody tr:nth-child(${row}) .loadContainer`).remove();\r\n };\r\n\r\n this.logOpportunity = (opportunity) => {\r\n const context = opportunity.ImageSourceStr === 'StockImage' ? {\r\n ImageSource: opportunity.ImageSourceStr,\r\n ShutterstockQuery: _.first(_.first(opportunity.Opportunities).StockImages).Query,\r\n ShutterstockTotalCount: _.first(_.first(opportunity.Opportunities).StockImages).TotalCount,\r\n ShutterstockImageId: _.first(_.first(opportunity.Opportunities).StockImages).ImageId,\r\n } : {\r\n ImageSource: opportunity.ImageSourceStr,\r\n };\r\n\r\n this.logOpportunityEvent({\r\n opportunityId: opportunity.Opportunities[0].OpportunityId,\r\n campaignId: opportunity.Target.CampaignId,\r\n type: this.recommendationType,\r\n action: ADINSIGHT_LOG_ACTION_TYPE.VIEW,\r\n accountId: opportunity.Target.AccountId,\r\n context,\r\n });\r\n };\r\n\r\n this.getStockImage = () => {\r\n const item = this.grid.gridView.itemArray;\r\n _.each(item, (eachItem, index) => {\r\n const data = _.first(eachItem.Opportunities);\r\n const row = index + 2; // The row index of first item in grid tbody start from #2.\r\n _.first(eachItem.Opportunities).ImageSourceStr = eachItem.ImageSourceStr;\r\n if (!_.isEmpty(data.StockImages)) {\r\n this.recommendationService.getStockImageUrl(_.first(data.StockImages).Query)\r\n .then(\r\n (resdata) => {\r\n _.first(_.first(eachItem.Opportunities).StockImages).TotalCount = resdata['@odata.count']; // eslint-disable-line\r\n if (!_.isEmpty(resdata.value)) {\r\n _.first(_.first(eachItem.Opportunities).StockImages).ImageId = Number(_.first(resdata.value).Id); // eslint-disable-line\r\n _.first(_.first(eachItem.Opportunities).StockImages).ThumbnailURL = _.first(resdata.value).SmallThumbnail.Url; // eslint-disable-line\r\n this.renderStockImagePreview(row, _.first(resdata.value).SmallThumbnail.Url);\r\n this.imageUrl.push({ Url: _.first(resdata.value).SmallThumbnail.Url, index });\r\n } else {\r\n this.renderNoImagePreview(row);\r\n this.imageUrl.push({ Url: '', index });\r\n }\r\n\r\n this.logOpportunity(eachItem);\r\n setTimeout(() => {\r\n if ($('tbody .loadContainer').length === 0) {\r\n this.grid.gridView.set({ selection: _.defaults({ selectable: this.selectableFunc }) }); // eslint-disable-line\r\n }\r\n }, 200);\r\n },\r\n (err) => {\r\n this.renderNoImagePreview(row);\r\n this.imageUrl.push({ Url: '', index });\r\n\r\n this.logOpportunity(eachItem);\r\n this.recommendationService.handleAjaxError(err, 'getStockImageUrl');\r\n setTimeout(() => {\r\n if ($('tbody .loadContainer').length === 0) {\r\n this.grid.gridView.set({ selection: _.defaults({ selectable: this.selectableFunc }) }); // eslint-disable-line\r\n }\r\n }, 200);\r\n }\r\n );\r\n } else if (!_.isEmpty(data.WebsiteImages)) {\r\n this.logOpportunity(eachItem);\r\n }\r\n });\r\n\r\n this.grid.gridView.on('didRedraw', () => {\r\n _.each(this.imageUrl, (imageUrl) => {\r\n const row = imageUrl.index + 2;\r\n if (imageUrl.Url !== '') {\r\n this.renderStockImagePreview(row, imageUrl.Url);\r\n } else {\r\n this.renderNoImagePreview(row);\r\n }\r\n });\r\n });\r\n };\r\n\r\n if (this.recommendationType === RECOMMENDATION_TYPES.IMAGE_EXTENSION && this.deps.permissions.IsRecommendationGetShutterStockImageFromUXEnabled) { // eslint-disable-line\r\n this.selectableFunc = this.grid.gridView.get('selection').selectable;\r\n this.grid.gridView.on('willReload', () => {\r\n clearTimeout(this.timerForStockUXCall);\r\n });\r\n\r\n this.grid.gridView.on('didReload', () => {\r\n this.imageUrl = [];\r\n\r\n this.grid.gridView.set({ selection: _.defaults({ selectable: this.selectableFunc }) });\r\n this.grid.gridView.once('didRedraw', () => {\r\n _.each(this.grid.gridView.itemArray, (eachItem) => {\r\n if (eachItem.ImageSourceStr === 'StockImage') {\r\n this.grid.gridView.set({ selection: _.defaults({ selectable: () => {} }) });\r\n }\r\n });\r\n\r\n if (this.grid.pagination.pageNumber === 0) {\r\n this.getStockImage();\r\n } else {\r\n this.timerForStockUXCall = setTimeout(() => {\r\n this.getStockImage();\r\n }, 1000);\r\n }\r\n });\r\n });\r\n }\r\n\r\n return this.grid.gridView;\r\n }\r\n\r\n get events() {\r\n const popupEvents = {\r\n 'mouseover .grid-column-accountName .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-accountName .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-campaignName .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-campaignName .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-adGroupName .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-adGroupName .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-keyword .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-keyword .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-BidAdjustmentTodo .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-BidAdjustmentTodo .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-BudgetDelta .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-BudgetDelta .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-blockedKeywordList .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-blockedKeywordList .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-removeNKW .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-removeNKW .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-whatyoucando .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-whatyoucando .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-setupConversionTrackingToDo .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-setupConversionTrackingToDo .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-goalName .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-goalName .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-goal-setting .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-goal-setting .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-generateFrom .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-generateFrom .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'mouseover .suggested-improve-mma-preview-column .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseleave .suggested-improve-mma-preview-column': 'hideContextualAttributePopup',\r\n 'mouseover .grid-column-goalSetting .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .grid-column-goalSetting .contextual-tooltip': 'hideContextualAttributePopup',\r\n };\r\n\r\n const otherEvents = {\r\n 'click .grid-column-accountName .contextual-tooltip': 'router',\r\n 'click .grid-column-campaignName .contextual-tooltip': 'router',\r\n 'click .grid-column-campaignAdGroupName .campaign': 'router',\r\n 'click .grid-column-BudgetDelta .contextual-tooltip': 'router',\r\n 'click .grid-column-BidAdjustmentTodo .contextual-tooltip': 'router',\r\n 'click .grid-column-adGroupName .contextual-tooltip': 'router',\r\n 'click .grid-column-removeNKW .contextual-tooltip': 'router',\r\n 'click .grid-column-whatyoucando .contextual-tooltip': 'router',\r\n 'click .grid-column-setupConversionTrackingToDo .contextual-tooltip': 'router',\r\n 'click .more-tooltip .more-link': 'showClickableTooltip',\r\n 'click .more-tooltip .close-button': 'hideClickableTooltip',\r\n 'click .more-tooltip .more-top-search-term': 'showTopSearchTermChart',\r\n 'change .match_type_inline_selection .match-type-select': 'updateMatchType',\r\n };\r\n\r\n if (this.compact) {\r\n return otherEvents;\r\n }\r\n\r\n return {\r\n ...popupEvents,\r\n ...otherEvents,\r\n };\r\n }\r\n\r\n remove() {\r\n if (this.grid) {\r\n if (this.grid.toolbar && this.grid.toolbar.gridToolbarGroup) {\r\n this.grid.toolbar.gridToolbarGroup.remove();\r\n this.grid.toolbar = null;\r\n }\r\n }\r\n\r\n super.remove();\r\n }\r\n\r\n getTargetEnity(event) {\r\n const key = this.grid.gridView.keyOfElement(event.target);\r\n\r\n return this.grid.gridView.itemWithKey(key);\r\n }\r\n\r\n onWunderbarChange() {\r\n this.grid.gridView.monitorViewportChange(1500, 15);\r\n }\r\n\r\n router(e) {\r\n const target = $(e.target);\r\n // only account or campaign or adgroup contextual attribute can be clicked to redirect\r\n if (!_.contains([\r\n CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n CONTEXTUAL_ENTITY_TYPE.ADGROUP,\r\n CONTEXTUAL_ENTITY_TYPE.ACCOUNT,\r\n ], target.data('type'))) { // eslint-disable-line\r\n return;\r\n }\r\n const levelAt = target.data('type');\r\n const entityid = target.data('entityid');\r\n const campaignId = target.data('entitycampaignid');\r\n const { scope } = this.recommendationService;\r\n const key = $(e.target).parents('tr[data-key]').data('key') || $(e.target).parents('tr[key]').attr('key');\r\n const recommendation = this.grid.gridView.itemWithKey(key);\r\n const accountId = recommendation.Target.AccountId;\r\n\r\n if (isPopupEditorEnabledRecommendationType(this.recommendationType)\r\n && this.recommendationType !== RECOMMENDATION_TYPES.REPAIR_MISSING_KEYWORD_PARAMS\r\n && this.recommendationType !== RECOMMENDATION_TYPES.FIX_NO_IMPRESSION_BID\r\n && levelAt === levelAtConstant.ADGROUP) {\r\n return;\r\n }\r\n if (levelAt !== scope.levelAt) {\r\n const scopedata = {\r\n ...scope,\r\n levelAt,\r\n adGroupId: entityid,\r\n campaignId: campaignId || entityid,\r\n accountId,\r\n };\r\n this.onEvent('updateScope', scopedata);\r\n }\r\n }\r\n\r\n hideContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n hideContextualAttribute({ e, self: this });\r\n }\r\n\r\n showContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n const { scope } = this.recommendationService;\r\n this.timerForPopupContextualAttribute = setTimeout(() => {\r\n showContextualAttribute({\r\n deps: this.deps,\r\n i18n: this.i18n,\r\n e,\r\n type: this.recommendationType,\r\n isMCC: this.isMCC,\r\n self: this,\r\n scope,\r\n recommendationService: this.recommendationService,\r\n s$i18n: this.s$i18n,\r\n newI18n: this.newI18n,\r\n });\r\n }, 500);\r\n }\r\n\r\n showClickableTooltip(e) {\r\n const target = $(e.target);\r\n const tooltipContainer = target.parent().find('.more-tooltip-container');\r\n const {\r\n top, left, height, width,\r\n } = $(e.target)[0].getBoundingClientRect();\r\n\r\n const contentView = new DeterministicViewForBackBoneView({\r\n view: new (Backbone.View.extend({\r\n render() {\r\n this.$el.html(_.first(tooltipContainer).outerHTML); // this.$el is a jQuery wrapped el var\r\n return this;\r\n },\r\n remove() {\r\n if (document.body.contains(this.el)) {\r\n ReactDOM.unmountComponentAtNode(this.el);\r\n }\r\n Backbone.View.prototype.remove.call(this);\r\n },\r\n }))().render(),\r\n });\r\n\r\n const container = $('.recommendation-grid');\r\n const popupOptions = {\r\n positioningMethod: 'fit',\r\n positioningOptions: {\r\n threshold: 0.5,\r\n anchorPosition: {\r\n height,\r\n width,\r\n left: left - container.offset().left,\r\n top: top - container.offset().top,\r\n },\r\n },\r\n contentView,\r\n classes: ['popup--custom'],\r\n container,\r\n };\r\n\r\n return showPopup(popupOptions);\r\n }\r\n\r\n showTopSearchTermChart(e) {\r\n const target = $(e.target);\r\n // Get searchTermList from data-searchtermlist\r\n const searchTermList = target.data('searchtermlist');\r\n let chart = null;\r\n const visualType = VISUAL_TYPES.SEARCH_TERMS_CHART;\r\n const visualData = getSearchTermChartData(searchTermList);\r\n\r\n let smartTopSearchTermChartWidth = 640;\r\n // Need wider popup window for some languages to resolve truncated string\r\n if (!_.isUndefined(this.i18n.getString('AuctionInsights_ColumnName_SearchTerms'))\r\n && this.i18n.getString('AuctionInsights_ColumnName_SearchTerms').length > 30) {\r\n smartTopSearchTermChartWidth = 900;\r\n }\r\n\r\n // According to highcharts document the width is calculated from\r\n // the offset width of the containing element.\r\n // AdvisorChart doesn't set width of chart options, so it will rely on the\r\n // width of chart container.\r\n // A container will fixed width is needed here to let chart render with\r\n // this fixed width, otherwise it will use grid width.\r\n chart = (\r\n \r\n \r\n
\r\n );\r\n\r\n const {\r\n top, left, height, width,\r\n } = $(e.target)[0].getBoundingClientRect();\r\n\r\n const contentView = new DeterministicViewForBackBoneView({\r\n view: new (Backbone.View.extend({\r\n render() {\r\n ReactDOM.render(\r\n chart,\r\n this.el\r\n );\r\n return this;\r\n },\r\n remove() {\r\n if (document.body.contains(this.el)) {\r\n ReactDOM.unmountComponentAtNode(this.el);\r\n }\r\n Backbone.View.prototype.remove.call(this);\r\n },\r\n }))().render(),\r\n });\r\n\r\n const container = $('.recommendation-grid');\r\n const popupOptions = {\r\n positioningMethod: 'fit',\r\n positioningOptions: {\r\n threshold: 0.5,\r\n anchorPosition: {\r\n height,\r\n width,\r\n left: left - container.offset().left,\r\n top: top - container.offset().top,\r\n },\r\n },\r\n contentView,\r\n classes: ['popup--custom'],\r\n container,\r\n };\r\n\r\n return showPopup(popupOptions);\r\n }\r\n\r\n updateMatchType(e) {\r\n const key = $(e.target).parents('tr[data-key]').data('key');\r\n const recommendation = this.grid.gridView.itemWithKey(key);\r\n const index = e.target.selectedIndex;\r\n _.first(recommendation.Opportunities).NewMatchType = Number(e.target.options[index].value);\r\n\r\n // Append the current selected one into existing selected ones.\r\n const selectedKeys = this.grid.gridView.selectedKeys();\r\n if (!_.contains(selectedKeys, key)) {\r\n selectedKeys.push(key);\r\n }\r\n this.grid.gridView.set({ selection: _.defaults({ selected: selectedKeys }) });\r\n }\r\n\r\n hideClickableTooltip(e) {\r\n const target = $(e.target);\r\n target.parents('.more-tooltip-container').hide();\r\n\r\n // Remove click listener from window\r\n $(window).off('click');\r\n }\r\n\r\n onClickGlobal(e) {\r\n const target = $(e.target);\r\n if (target.parent().length > 0 &&\r\n target.parents('.more-tooltip-container').length === 0 &&\r\n !target.parent().hasClass('more-tooltip') &&\r\n !target.hasClass('more-tooltip-container')) {\r\n $('.more-tooltip-container').hide();\r\n\r\n // Remove click listener from window\r\n $(window).off('click');\r\n }\r\n }\r\n\r\n get className() { return 'recommendations-grid-view'; }\r\n}\r\n","import React from 'react';\r\nimport { CampaignShimmeredDetailsList } from '@bingads-webui-grid/campaign-details-list';\r\n\r\ninterface RecommendationDetailsGridProps {\r\n columns: Array;\r\n items: Array;\r\n pageNumber: number;\r\n pageSize: number;\r\n total: number;\r\n onPageChange: () => void;\r\n onPageSizeChange: () => void;\r\n onSort: () => void;\r\n sortedColumn: Array;\r\n}\r\n\r\nexport const RecommendationDetailsGrid: React.FC = ({\r\n columns,\r\n items,\r\n pageNumber,\r\n pageSize,\r\n onPageChange,\r\n onPageSizeChange,\r\n onSort,\r\n sortedColumn,\r\n total,\r\n}) => (\r\n // eslint-disable-next-line react/jsx-filename-extension\r\n \r\n);\r\n\r\n","import React from 'react';\r\n\r\nexport const AccountNameColumn = ({ i18n }) => ({\r\n key: 'AccountName',\r\n name: i18n.getString(_TL_('Account Name')),\r\n fieldName: 'AccountName',\r\n className: 'column-account-name-aos',\r\n headerClassName: 'header-account-name-aos',\r\n helpTopic: 'Pop_BA_SearchInsights_Keywords',\r\n minWidth: 150,\r\n sortable: true,\r\n isMultiline: true,\r\n isResizable: true,\r\n onRender: item => (\r\n \r\n {item.AccountName}\r\n \r\n ),\r\n});\r\n","import React from 'react';\r\n\r\nexport const FailedCheckPointsColumn = ({ i18n }) => ({\r\n key: 'FailedCheckPoints',\r\n name: i18n.getString(_TL_('Failed Check Points')),\r\n fieldName: 'FailedCheckPoints',\r\n className: 'column-failed-check-points',\r\n headerClassName: 'header-failed-check-points',\r\n helpTopic: 'Pop_BA_SearchInsights_Keywords',\r\n minWidth: 200,\r\n sortable: true,\r\n isMultiline: true,\r\n isResizable: true,\r\n onRender: item => (\r\n \r\n {item.FailedCheckPoints}\r\n \r\n ),\r\n});\r\n","import React from 'react';\r\n\r\nexport const StatusColumn = ({ i18n }) => ({\r\n key: 'Status',\r\n name: i18n.getString(_TL_('Status')),\r\n fieldName: 'Status',\r\n className: 'column-status',\r\n headerClassName: 'header-status',\r\n helpTopic: 'Pop_BA_SearchInsights_Keywords',\r\n minWidth: 100,\r\n sortable: true,\r\n isMultiline: true,\r\n isResizable: true,\r\n onRender: item => (\r\n \r\n {item.Status}\r\n \r\n ),\r\n});\r\n","import React from 'react';\r\n\r\nexport const SpendColumn = ({ i18n }) => ({\r\n key: 'Spend',\r\n name: i18n.getString(_TL_('Spend in the past 30 days')),\r\n fieldName: 'Spend',\r\n className: 'column-spend',\r\n headerClassName: 'header-spend',\r\n helpTopic: 'Pop_BA_SearchInsights_Keywords',\r\n minWidth: 200,\r\n sortable: true,\r\n isMultiline: true,\r\n isResizable: true,\r\n onRender: item => (\r\n \r\n {item.Spend}\r\n \r\n ),\r\n});\r\n","import React from 'react';\r\n\r\nexport const BudgetInSearchColumn = ({ i18n }) => ({\r\n key: 'BudgetInSearch',\r\n name: i18n.getString(_TL_('Budget in Search')),\r\n fieldName: 'BudgetInSearch',\r\n className: 'column-budget-in-search',\r\n headerClassName: 'header-budget-in-search',\r\n helpTopic: 'Pop_BA_SearchInsights_Keywords',\r\n minWidth: 150,\r\n sortable: true,\r\n isMultiline: true,\r\n isResizable: true,\r\n onRender: item => (\r\n \r\n {item.BudgetInSearch}\r\n \r\n ),\r\n});\r\n","import React from 'react';\r\n\r\nexport const SpendInSearchColumn = ({ i18n }) => ({\r\n key: 'SpendInSearch',\r\n name: i18n.getString(_TL_('Spending in Search')),\r\n fieldName: 'SpendInSearch',\r\n className: 'column-spend-in-search',\r\n headerClassName: 'header-spend-in-search',\r\n helpTopic: 'Pop_BA_SearchInsights_Keywords',\r\n minWidth: 180,\r\n sortable: true,\r\n isMultiline: true,\r\n isResizable: true,\r\n onRender: item => (\r\n \r\n {item.SpendInSearch}\r\n \r\n ),\r\n});\r\n","import React from 'react';\r\n\r\nexport const BudgetInAudienceAndPMaxColumn = ({ i18n }) => ({\r\n key: 'BudgetInAudienceAndPMax',\r\n name: i18n.getString(_TL_('Budget in Audience & Pax')),\r\n fieldName: 'BudgetInAudienceAndPMax',\r\n className: 'column-budget-in-audience-pmax',\r\n headerClassName: 'header-budget-in-audience-pmax',\r\n helpTopic: 'Pop_BA_SearchInsights_Keywords',\r\n minWidth: 200,\r\n sortable: true,\r\n isMultiline: true,\r\n isResizable: true,\r\n onRender: item => (\r\n \r\n {item.BudgetInAudienceAndPMax}\r\n \r\n ),\r\n});\r\n","import React from 'react';\r\n\r\nexport const SpendInAudienceAndPMaxColumn = ({ i18n }) => ({\r\n key: 'SpendInAudienceAndPMax',\r\n name: i18n.getString(_TL_('Spending in Audience & PMax')),\r\n fieldName: 'SpendInAudienceAndPMax',\r\n className: 'column-spend-in-audience-pmax',\r\n headerClassName: 'header-spend-in-audience-pmax',\r\n helpTopic: 'Pop_BA_SearchInsights_Keywords',\r\n minWidth: 250,\r\n sortable: true,\r\n isMultiline: true,\r\n isResizable: true,\r\n onRender: item => (\r\n \r\n {item.SpendInAudienceAndPMax}\r\n \r\n ),\r\n});\r\n","import React from 'react';\r\nimport { HelpIcon } from '@bingads-webui-campaign-react/help';\r\nimport { AccountNameColumn } from './columns/health-check/account-name';\r\nimport { FailedCheckPointsColumn } from './columns/health-check/failed-check-points';\r\nimport { StatusColumn } from './columns/health-check/status';\r\nimport { SpendColumn } from './columns/health-check/spend';\r\nimport { BudgetInSearchColumn } from './columns/health-check/budget-in-search';\r\nimport { SpendInSearchColumn } from './columns/health-check/spend-in-search';\r\nimport { BudgetInAudienceAndPMaxColumn } from './columns/health-check/budget-in-audience-pmax';\r\nimport { SpendInAudienceAndPMaxColumn } from './columns/health-check/spend-in-audience-pmax';\r\n\r\nconst bindOnRenderHeader = (column) => {\r\n if (column.onRenderHeader) {\r\n return column;\r\n }\r\n\r\n const onRenderHeader = columnProps => (\r\n
\r\n \r\n {columnProps.column.name}\r\n \r\n {columnProps.column.helpTopic && }\r\n
\r\n );\r\n\r\n return {\r\n ...column,\r\n onRenderHeader,\r\n };\r\n};\r\n\r\nexport const buildHealthCheckGridColumns = ({ i18n }) => [\r\n AccountNameColumn({ i18n }),\r\n FailedCheckPointsColumn({ i18n }),\r\n StatusColumn({ i18n }),\r\n SpendColumn({ i18n }),\r\n BudgetInSearchColumn({ i18n }),\r\n SpendInSearchColumn({ i18n }),\r\n BudgetInAudienceAndPMaxColumn({ i18n }),\r\n SpendInAudienceAndPMaxColumn({ i18n }),\r\n].map(bindOnRenderHeader);\r\n","import { RECOMMENDATION_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport const RECOMMENDATION_INLINE_ACTION_TYPE = {\r\n APPLY_ONLY: 'apply_only',\r\n APPLY_EDIT: 'apply_edit',\r\n APPLY_PANEL_EDIT: 'apply_panelEdit',\r\n RESUBMIT_EDIT: 'resubmit_edit',\r\n EDIT_ONLY: 'edit_only',\r\n EXTERNAL: 'external',\r\n REPAIR: 'repair',\r\n SETUP_CONV: 'setup_conversion',\r\n HYBRID: 'hybrid',\r\n IMAGE_EXTENSION: 'image_extension',\r\n};\r\n\r\n\r\nexport const PANEL_DECORATOR_TITLE = {\r\n [RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS]: _TL_('Edit Responsive Search ads'),\r\n [RECOMMENDATION_TYPES.MULTIMEDIA_ADS]: _TL_('Edit Multimedia ads'),\r\n [RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS]: _TL_('Responsive Search ads Optimization'),\r\n [RECOMMENDATION_TYPES.CREATE_CONVERSION_GOAL]: _TL_('Create an event goal'),\r\n [RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS]: _TL_('Multimedia ads optimization'),\r\n};\r\n\r\nexport const PANEL_WIDTH = {\r\n [RECOMMENDATION_TYPES.IMAGE_EXTENSION]: 1268,\r\n [RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS]: 1300,\r\n [RECOMMENDATION_TYPES.MULTIMEDIA_ADS]: 1350,\r\n [RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS]: 580,\r\n [RECOMMENDATION_TYPES.CREATE_CONVERSION_GOAL]: 940,\r\n [RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS]: 1350,\r\n};\r\n","/* eslint-disable no-param-reassign */\r\nimport _ from 'underscore';\r\nimport { panelDecorator } from '@bingads-webui-campaign-react/panel-decorator';\r\nimport { CreateConversionGoalView } from '@bingads-webui-campaign/recommendation-inline-create-conversion-goal-view';\r\nimport { PANEL_DECORATOR_TITLE, PANEL_WIDTH } from '../const';\r\n\r\nconst removeElement = (name) => {\r\n const container = document.querySelector('.create-conversion-goal-edit-content');\r\n if (!_.isNull(container.querySelector(name))) {\r\n container.querySelector(name).remove();\r\n }\r\n}\r\n\r\nexport const openCreateConversionGoalEditor = (\r\n deps,\r\n i18n,\r\n newI18n,\r\n type,\r\n gridService,\r\n recommendation,\r\n router,\r\n isMCC,\r\n gridView,\r\n readOnly,\r\n editor,\r\n apply,\r\n perfMarker,\r\n serverContext,\r\n getGoalCreationRecommendationWizard\r\n) => {\r\n const panelOptions = {\r\n width: PANEL_WIDTH[type],\r\n i18n,\r\n panelReadyAriaLabel: i18n.getString('Association editor side panel opened'),\r\n panelClassName: 'ad-editor-panel recommend-ad-editor-panel recommend-create-conversion-goal-editor-panel',\r\n };\r\n const EditorCtor = panelDecorator(CreateConversionGoalView, panelOptions);\r\n editor = new EditorCtor(_.extend(\r\n {\r\n title: newI18n.getString(PANEL_DECORATOR_TITLE[type]),\r\n },\r\n {\r\n eventsToActions: [{\r\n event: 'created',\r\n action: () => { editor.remove(); },\r\n }, {\r\n event: 'cancel',\r\n action: () => { editor.remove(); },\r\n }],\r\n onClose: () => { editor.remove(); },\r\n },\r\n {\r\n deps,\r\n data: recommendation,\r\n i18n,\r\n newI18n,\r\n router,\r\n type,\r\n gridView,\r\n readOnly,\r\n isMCC,\r\n scope: gridService.recommendationService.scope,\r\n gridService,\r\n permissions: deps.permissions,\r\n perfMarker,\r\n serverContext,\r\n getGoalCreationRecommendationWizard,\r\n applyAction: (opportunities, userInputs, context) => {\r\n apply(opportunities, userInputs, context, editor);\r\n },\r\n }\r\n )).render();\r\n\r\n // Remove some goal create wizard elements which are not included in editor page.\r\n removeElement('.step-header');\r\n removeElement('.conversion-wizard-footer');\r\n};\r\n","/* eslint-disable no-param-reassign */\r\nimport _ from 'underscore';\r\nimport { ExtensionEditor } from '@bingads-webui-campaign-legacy/adextension-image/view/extensionEditor2-vnext';\r\nimport { panelDecorator } from '@bingads-webui-campaign-react/panel-decorator';\r\nimport { Repository } from '@bingads-webui-campaign-legacy/adextension-image/service/repository';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport { APPLY_USERINPUT_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\nimport { PANEL_WIDTH } from '../const';\r\n\r\nexport const openImageExtensionEditor = (\r\n opportunities,\r\n targetAccountId,\r\n campaignId,\r\n adGroupId,\r\n type,\r\n i18n,\r\n newI18n,\r\n editor,\r\n apply,\r\n readOnly\r\n) => {\r\n const schema = window.globalLegacySchema.get('ImageAdExtension');\r\n const panelOptions = {\r\n width: PANEL_WIDTH[type],\r\n i18n,\r\n panelReadyAriaLabel: i18n.getString('Association editor side panel opened'),\r\n };\r\n const EditorCtor = panelDecorator(ExtensionEditor, panelOptions);\r\n const i18nKeys = {\r\n title: 'AdExtensions_Image_Editor_Title_PS4N',\r\n editTitle: 'AdExtensions_Image_Dialog_Title_Edit',\r\n library_title: 'AdExtensions_Image_Editor_Available_PS4N',\r\n selected_title: 'AdExtensions_Image_Editor_Selected_PS4N',\r\n create_link: 'AdExtensions_Image_Editor_CreateNew_PS4N',\r\n create_title: 'AdExtensions_Image_Dialog_Title_Add',\r\n delete_btn: 'AdExtensions_Image_Editor_Delete',\r\n delete_confirm: 'AdExtensions_Image_Delete_Warning_PS4N',\r\n edit_btn: 'AdExtensions_Image_Editor_Edit',\r\n edit_title: 'AdExtensions_Image_Dialog_Title_Edit_PS4N',\r\n inlineAlert: 'AdExtensions_Image_Max_Select_Notification',\r\n subtitle: ['MultiAssociationEditor_Image_Subtitle'],\r\n };\r\n editor = new EditorCtor(_.extend(\r\n {\r\n extension: null,\r\n data: new Repository({\r\n schema,\r\n afterChangeComitted: _.noop,\r\n }),\r\n campaignId,\r\n adgroupId: adGroupId,\r\n title: newI18n.getString(_TL_('Add new Image Extension')),\r\n i18nKeys: _.defaults({}, i18nKeys, {\r\n search_for: 'Searchbox_SearchFor',\r\n filter_watermark: 'AdExtensions_Search',\r\n save_btn: 'Button_Save',\r\n cancel_btn: 'Button_Cancel',\r\n subtitle: [],\r\n multiSelectInlineAlert: 'AdExtensions_MultiSelect_Max_Select_Notification',\r\n failedAssociationsLabel: 'AdExtensions_FailedAssociationsLabel',\r\n successfulAssociationsLabel: 'AdExtensions_SuccessfulAssociationsLabel',\r\n }),\r\n dialogOptions: {\r\n popupFront: '',\r\n },\r\n instrumentation: {\r\n startScenario: _.noop,\r\n startActivity: _.noop,\r\n logMessage: _.noop,\r\n endActivity: _.noop,\r\n asLoggingStart: _.constant(_.noop),\r\n },\r\n instrumentationSettings: {\r\n ACTIVITYNAME: {},\r\n SCENARIONAME: {},\r\n },\r\n disableScheduling: undefined,\r\n isForVNext: true,\r\n oDataConfig: {\r\n odataRootUrl: config.get('CampaignAzureDomain'),\r\n odataPath: config.get('odata.url') + config.get('odata.path'),\r\n odataToken: config.get('odata.token'),\r\n },\r\n newI18n,\r\n },\r\n {\r\n eventsToActions: [{\r\n event: 'created',\r\n action: () => { editor.remove(); },\r\n }, {\r\n event: 'cancel',\r\n action: () => { editor.remove(); },\r\n }],\r\n onClose: (entity) => {\r\n if ((entity.currentTarget.className === 'react-focus-lock' && entity.type === 'keyup')\r\n || entity.currentTarget.className === 'panel-mask'\r\n || (entity.currentTarget.className && entity.currentTarget.className.indexOf('panel-close') > -1)) {\r\n editor.remove();\r\n }\r\n },\r\n },\r\n {\r\n recommendation: {\r\n targetAccountId,\r\n DisplayText: opportunities[0].DisplayText,\r\n AltText: opportunities[0].AlternativeText,\r\n FinalUrls: [opportunities[0].FinalURL],\r\n MobileFinalUrls: [opportunities[0].MobileURL],\r\n StockImages: opportunities[0].StockImages,\r\n WebsiteImages: opportunities[0].WebsiteImages,\r\n ImageSourceStr: opportunities[0].ImageSourceStr,\r\n hasImageUrl: !_.isEmpty(opportunities[0].WebsiteImages) ||\r\n !_.isEmpty(_.first(opportunities[0].StockImages).ThumbnailURL),\r\n applyRecommendation: (data) => {\r\n if (data.isValid) {\r\n const basicInput = {\r\n '@odata.type': APPLY_USERINPUT_TYPES[type],\r\n OpportunityId: opportunities[0].OpportunityId,\r\n };\r\n\r\n const distinctImageList = _.uniq(_.map(data.imageList, image =>\r\n (_.isNull(image.id) ? image.src : image.id)));\r\n\r\n const images = _.map(distinctImageList, (key) => {\r\n const imageListFilteredByKey = _.filter(data.imageList, image =>\r\n (_.isNull(image.id) ? image.src : image.id) === key);\r\n return _.extend((!_.isNumber(key) ? { ImageUrl: key } : { ImageAssetId: key }), {\r\n AssociationMetadata: _.map(imageListFilteredByKey, image => (_.extend({\r\n SubType: image.associationType,\r\n }, !_.isNumber(key) ? {} : {\r\n CropX: image.cropSettings.SourceX,\r\n CropY: image.cropSettings.SourceY,\r\n CropHeight: image.cropSettings.SourceHeight,\r\n CropWidth: image.cropSettings.SourceWidth,\r\n }))),\r\n });\r\n });\r\n\r\n let userInputs;\r\n if (opportunities[0].ImageSourceStr === 'Website') {\r\n userInputs = [_.extend(basicInput, {\r\n newImageExtensionInfo: data.newImageExtensionInfo,\r\n Images: images,\r\n })];\r\n } else {\r\n const stockImages = [];\r\n _.each(images, (image) => {\r\n if (_.has(image, 'ImageUrl')) {\r\n stockImages.push({\r\n AssociationMetadata: image.AssociationMetadata,\r\n ImageId: _.first(opportunities[0].StockImages).ImageId,\r\n });\r\n }\r\n });\r\n userInputs = [_.extend(basicInput, {\r\n newImageExtensionInfo: data.newImageExtensionInfo,\r\n Images: _.filter(images, image => _.has(image, 'ImageAssetId')),\r\n StockImages: stockImages,\r\n })];\r\n }\r\n\r\n apply(userInputs, editor);\r\n }\r\n },\r\n },\r\n readOnly,\r\n }\r\n )).render();\r\n};\r\n","/* eslint-disable no-param-reassign */\r\nimport _ from 'underscore';\r\nimport { panelDecorator } from '@bingads-webui-campaign-react/panel-decorator';\r\nimport { RECOMMENDATION_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\nimport { NewAdsInlineView } from '@bingads-webui-campaign/recommendation-inline-new-ads-view';\r\nimport { PANEL_DECORATOR_TITLE, PANEL_WIDTH } from '../const';\r\n\r\nexport const openNewAdsViewEditor = (\r\n deps,\r\n i18n,\r\n newI18n,\r\n type,\r\n gridService,\r\n recommendation,\r\n router,\r\n isMCC,\r\n gridView,\r\n readOnly,\r\n editor,\r\n apply\r\n) => {\r\n const panelOptions = {\r\n width: PANEL_WIDTH[type],\r\n i18n,\r\n panelReadyAriaLabel: i18n.getString('Association editor side panel opened'),\r\n panelClassName: type === RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS ?\r\n 'ad-editor-panel recommend-ad-editor-panel recommend-improve-rsa-editor-panel' :\r\n 'ad-editor-panel recommend-ad-editor-panel',\r\n };\r\n const EditorCtor = panelDecorator(NewAdsInlineView, panelOptions);\r\n editor = new EditorCtor(_.extend(\r\n {\r\n title: newI18n.getString(PANEL_DECORATOR_TITLE[type]),\r\n },\r\n {\r\n eventsToActions: [{\r\n event: 'created',\r\n action: () => { editor.remove(); },\r\n }, {\r\n event: 'cancel',\r\n action: () => { editor.remove(); },\r\n }],\r\n onClose: () => { editor.remove(); },\r\n },\r\n {\r\n deps,\r\n data: recommendation,\r\n i18n,\r\n newI18n,\r\n router,\r\n type,\r\n gridView,\r\n readOnly,\r\n isMCC,\r\n gridService,\r\n applyAction: (opportunities, userInputs, context) => {\r\n apply(opportunities, userInputs, context, editor);\r\n },\r\n }\r\n )).render();\r\n};\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport {\r\n formatCost,\r\n formatDecimal,\r\n formatPercentHundredths,\r\n getIncreaseSymbol,\r\n NOT_AVAILABLE_DEFAULT_STR,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport increaseArrowTemplate from '../template/increaseArrow.pug';\r\n\r\nfunction noChange(from, to, type, i18n) {\r\n if (type === 'ctr') {\r\n return formatPercentHundredths(from, i18n) === formatPercentHundredths(to, i18n);\r\n } else if (type === 'spend') {\r\n return formatCost(from, i18n, i18n.currency) === formatCost(to, i18n, i18n.currency);\r\n }\r\n\r\n return formatDecimal(from, i18n) === formatDecimal(to, i18n);\r\n}\r\nexport default class ViewModel {\r\n constructor({\r\n extensionData,\r\n i18n,\r\n readOnly,\r\n }) {\r\n this.i18n = i18n;\r\n this.isApplyEnable = ko.observable();\r\n this.isCPCIncrease = ko.observable();\r\n this.readOnly = readOnly;\r\n\r\n const optId = extensionData.ids;\r\n const opt = extensionData.idOpportunityMap[optId];\r\n this.delta = {\r\n clicks: opt.EstimatedKPI.ClickDelta,\r\n ctr: opt.EstimatedKPI.CTRDelta,\r\n spend: opt.EstimatedKPI.CostDelta,\r\n cpc: formatDecimal(opt.EstimatedKPI.CPCNew, i18n) - formatDecimal(opt.EstimatedKPI.CPC, i18n),\r\n };\r\n\r\n this.oldValue = {\r\n clicks: opt.EstimatedKPI.Clicks,\r\n ctr: opt.EstimatedKPI.CTR,\r\n spend: opt.EstimatedKPI.Cost,\r\n cpc: opt.EstimatedKPI.CPC,\r\n };\r\n\r\n this.newValue = {\r\n clicks: opt.EstimatedKPI.ClicksNew,\r\n ctr: opt.EstimatedKPI.CTRNew,\r\n spend: opt.EstimatedKPI.CostNew,\r\n cpc: opt.EstimatedKPI.CPCNew,\r\n };\r\n\r\n this.CtrChangePrecentage = opt.EstimatedKPI.CtrLift;\r\n this.formatedRange = {};\r\n this.formatedDelta = {};\r\n this.estImpactType = {};\r\n\r\n const clicks = 'clicks';\r\n const ctr = 'ctr';\r\n const spend = 'spend';\r\n const cpc = 'cpc';\r\n const positiveImpact = 'positive';\r\n const negativeImpact = 'negative';\r\n\r\n _.each([clicks, ctr, spend, cpc], (type) => {\r\n const delta = type === ctr ? this.CtrChangePrecentage : this.delta[type];\r\n\r\n if (type === ctr) {\r\n const increaseSymbol = getIncreaseSymbol(this.delta[type]);\r\n this.formatedRange[type] = this.i18n.getString('SiteLink_Inline_View_Range_CTR', {\r\n from: formatPercentHundredths(this.oldValue[type], this.i18n),\r\n to: formatPercentHundredths(this.newValue[type], this.i18n),\r\n delta: increaseSymbol + formatPercentHundredths(this.delta[type], this.i18n),\r\n });\r\n } else if (type === spend) {\r\n this.formatedRange[type] = this.i18n.getString('SiteLink_Inline_View_Range', {\r\n from: formatCost(this.oldValue[type], this.i18n, this.i18n.currency),\r\n to: formatCost(this.newValue[type], this.i18n, this.i18n.currency),\r\n });\r\n } else {\r\n this.formatedRange[type] = this.i18n.getString('SiteLink_Inline_View_Range', {\r\n from: formatDecimal(this.oldValue[type], this.i18n),\r\n to: formatDecimal(this.newValue[type], this.i18n),\r\n });\r\n }\r\n\r\n if (noChange(this.oldValue[type], this.newValue[type], type, this.i18n)) {\r\n this.estImpactType[type] = negativeImpact;\r\n this.formatedDelta[type] = NOT_AVAILABLE_DEFAULT_STR;\r\n } else if (type === cpc) {\r\n this.isCPCIncrease(delta > 0);\r\n this.estImpactType[type] = delta > 0 ? negativeImpact : positiveImpact;\r\n this.formatedDelta[type] = getIncreaseSymbol(delta) + formatDecimal(delta, this.i18n);\r\n } else if (type === spend) {\r\n this.estImpactType[type] = delta > 0 ? negativeImpact : positiveImpact;\r\n this.formatedDelta[type] = getIncreaseSymbol(delta) + formatCost(delta, this.i18n, this.i18n.currency); //eslint-disable-line\r\n } else if (type === ctr) {\r\n this.estImpactType[type] = delta > 0 ? positiveImpact : negativeImpact;\r\n this.formatedDelta[type] = increaseArrowTemplate({\r\n symbol: getIncreaseSymbol(delta, 'arrow'),\r\n text: formatPercentHundredths(delta, this.i18n),\r\n });\r\n } else if (type === clicks) {\r\n this.estImpactType[type] = delta > 0 ? positiveImpact : negativeImpact;\r\n this.formatedDelta[type] = getIncreaseSymbol(delta) + formatDecimal(delta, this.i18n);\r\n }\r\n });\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport {\r\n withContextualAttributeTemplate,\r\n prependAccountAttribute,\r\n} from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\nimport { CONTEXTUAL_ENTITY_TYPE } from '@bingads-webui-campaign/recommendation-core';\r\nimport SiteLinkAssociationEditor from '@bingads-webui-campaign-legacy/adextension-sitelink/view/associationsEditor';\r\nimport CalloutAssociationEditor from '@bingads-webui-campaign-legacy/adextension-callout/view/associationsEditor';\r\nimport UiBlocker from '@bingads-webui-component-legacy/uiblocker/service/uiBlocker';\r\nimport ViewModel from '../viewmodel/AdExtensionEditorModel';\r\nimport template from '../template/adextension.pug';\r\nimport strongTemplate from '../template/strong.pug';\r\n\r\nconst metricTypes = ['clicks', 'ctr', 'spend', 'cpc'];\r\nconst typeTextMapper = {\r\n SiteLinkOpportunity: 'sitelink',\r\n CalloutOpportunity: 'callout',\r\n};\r\n\r\nexport default class AdExtensionEditorView extends Backbone.View {\r\n initialize({\r\n deps,\r\n data,\r\n type,\r\n opportunities = {},\r\n i18n,\r\n isMCC,\r\n readOnly,\r\n }) {\r\n this.deps = deps;\r\n this.data = data;\r\n this.hideTitle = !_.isNumber(data.CurrentCtr) || !_.isNumber(data.EstimatedIncreaseInCtr);\r\n this.type = type;\r\n this.opportunities = opportunities;\r\n this.i18n = i18n;\r\n this.isMCC = isMCC;\r\n this.viewModel = new ViewModel({\r\n extensionData: this.opportunities,\r\n i18n: this.i18n,\r\n readOnly,\r\n });\r\n this.siteLinkAssociationEditor = SiteLinkAssociationEditor;\r\n this.calloutAssociationEditor = CalloutAssociationEditor;\r\n\r\n const entity = withContextualAttributeTemplate({\r\n opportunityId: this.data.Opportunities[0].OpportunityId,\r\n entityName: this.data.Target.CampaignName,\r\n entityId: this.data.Target.CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n status: 'false', // to check whether it is 1st time to create this view\r\n isExpandingView: true,\r\n ariaLabel: this.i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: this.data.Target.CampaignName }),\r\n });\r\n\r\n this.hintText = i18n.getString('AdExtension_Inline_View_HintText', {\r\n name: this.isMCC ? prependAccountAttribute({\r\n originEntity: entity,\r\n opportunityId: this.data.Opportunities[0].OpportunityId,\r\n accountId: this.data.Target.AccountId,\r\n accountName: this.data.Target.AccountName,\r\n }) : entity,\r\n count: strongTemplate({ text: '4' }),\r\n typeText: typeTextMapper[this.type],\r\n });\r\n this.cpcIncreaseText = i18n.getString('AdExtension_Inline_View_CPC_Increase_HintText');\r\n this.cpcIncreaseReason = i18n.getString('AdExtension_Inline_View_CPC_Increase_Resason', {\r\n typeText: typeTextMapper[this.type],\r\n });\r\n }\r\n\r\n getAssociationEditorAndRender() {\r\n UiBlocker.block(this.$el, '.ad-extension-association-editor');\r\n const associationEditorMapper = {\r\n SiteLinkOpportunity: this.siteLinkAssociationEditor,\r\n CalloutOpportunity: this.calloutAssociationEditor,\r\n };\r\n this.associationEditor = new associationEditorMapper[this.type]({\r\n campaignId: this.data.Target.CampaignId,\r\n campaignName: this.data.Target.CampaignName,\r\n entityType: 'campaign',\r\n hasSubTitle: false,\r\n showErrorsInline: true,\r\n showSaveBar: false,\r\n disableDelete: true,\r\n usePanel: true,\r\n });\r\n\r\n // bind actions for associationeditor & render\r\n if (this.associationEditor) {\r\n // bind actions\r\n this.associationEditor.on('selected-changed', (selectedChanged) => {\r\n this.viewModel.isApplyEnable(selectedChanged);\r\n });\r\n this.associationEditor.on('save:success', (selectedItems) => {\r\n this.trigger('apply', { data: { adExtensionIds: _.pluck(selectedItems, 'Id') }, Id: _.first(this.opportunities.ids) });\r\n });\r\n this.associationEditor.on('open:extensionEditor', () => {\r\n this.trigger('popup:editor');\r\n $('.k-window').addClass('k-window-over-blocker');\r\n });\r\n this.associationEditor.on('close:extensionEditor', () => {\r\n this.trigger('remove:editor');\r\n });\r\n\r\n // render\r\n this.associationEditor.render();\r\n this.$('.ad-extension-association-editor').append(this.associationEditor.$el);\r\n }\r\n UiBlocker.unblock(this.$el, '.ad-extension-association-editor');\r\n }\r\n\r\n apply(e) {\r\n this.associationEditor.trigger('associate:extensions', e);\r\n }\r\n\r\n render() {\r\n this.$el.html(template(_.extend({\r\n i18n: this.i18n,\r\n hintText: this.hintText,\r\n cpcIncreaseText: this.cpcIncreaseText,\r\n cpcIncreaseReason: this.cpcIncreaseReason,\r\n hideTitle: this.hideTitle,\r\n metricTypes,\r\n metricTypeDescriptions: {\r\n clicks: this.i18n.getString('Details_View_Est_Clicks'),\r\n ctr: this.i18n.getString('Details_View_Est_CTR'),\r\n spend: this.i18n.getString('Details_View_Est_Cost'),\r\n cpc: this.i18n.getString('Details_View_Est_CPC'),\r\n },\r\n })));\r\n\r\n ko.applyBindings(this.viewModel, this.el);\r\n this.getAssociationEditorAndRender();\r\n\r\n return this;\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport {\r\n showContextualAttribute,\r\n hideContextualAttribute,\r\n} from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\nimport template from '../template/index.pug';\r\nimport AdExtensionEditorView from './AdExtensionEditorView';\r\n\r\nexport default class AdExtensionInlineView extends Backbone.View {\r\n initialize({\r\n deps,\r\n i18n,\r\n data,\r\n type,\r\n router,\r\n isMCC,\r\n gridView,\r\n gridService,\r\n }) {\r\n this.deps = deps;\r\n this.i18n = i18n;\r\n this.data = data;\r\n this.type = type;\r\n this.router = router;\r\n this.isMCC = isMCC;\r\n this.grid = { gridView };\r\n this.extensionData = {};\r\n this.gridService = gridService;\r\n\r\n if (data && data.Opportunities.length > 0) {\r\n const opt = data.Opportunities[0];\r\n this.extensionData.ids = [opt.OpportunityId];\r\n this.extensionData.idOpportunityMap = {};\r\n this.extensionData.idOpportunityMap[opt.OpportunityId] = {\r\n CampaignId: data.Target.CampaignId,\r\n Competitors: opt.Competitors,\r\n EstimatedKPI: {\r\n CtrLift: opt.CtrLift,\r\n Clicks: opt.CurrentClicks,\r\n ClickDelta: opt.EstimatedIncreaseInClicks,\r\n ClicksNew: opt.CurrentClicks + opt.EstimatedIncreaseInClicks,\r\n CTR: opt.CurrentCtr,\r\n CTRDelta: opt.EstimatedIncreaseInCtr,\r\n CTRNew: opt.CurrentCtr + opt.EstimatedIncreaseInCtr,\r\n Cost: opt.CurrentCost,\r\n CostDelta: opt.EstimatedIncreaseInCost,\r\n CostNew: opt.CurrentCost + opt.EstimatedIncreaseInCost,\r\n CPC: opt.CurrentCpc,\r\n CPCDelta: opt.EstimatedIncreaseInCpc,\r\n CPCNew: opt.CurrentCpc + opt.EstimatedIncreaseInCpc,\r\n },\r\n };\r\n }\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .btn-cancel': 'cancel',\r\n 'click .apply': 'apply',\r\n 'mouseover .ad-extension-opt-detail .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .ad-extension-opt-detail .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'click .ad-extension-opt-detail .contextual-tooltip': 'scopeRouting',\r\n };\r\n }\r\n\r\n scopeRouting(e) {\r\n this.router(e);\r\n }\r\n\r\n hideContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n hideContextualAttribute({ e, self: this });\r\n }\r\n\r\n showContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n this.timerForPopupContextualAttribute = setTimeout(() => {\r\n showContextualAttribute({\r\n deps: this.deps,\r\n i18n: this.i18n,\r\n e,\r\n type: this.data.OpportunityType,\r\n isExpanding: true,\r\n self: this,\r\n recommendationService: this.gridService.recommendationService,\r\n });\r\n }, 500);\r\n }\r\n\r\n apply(e) {\r\n this.adExtensionEditorView.apply(e);\r\n this.trigger('apply', { opportunities: this.data.Opportunities });\r\n }\r\n\r\n cancel() {\r\n this.trigger('cancel');\r\n }\r\n\r\n hasChanged() {\r\n return this.adExtensionEditorView.viewModel.isApplyEnable();\r\n }\r\n\r\n render() {\r\n this.$el.html(template(_.extend({\r\n i18n: this.i18n,\r\n })));\r\n\r\n this.adExtensionEditorView = new AdExtensionEditorView({\r\n deps: this.deps,\r\n data: this.data,\r\n i18n: this.i18n,\r\n el: this.$('.ad-extension-opt-detail'),\r\n opportunities: this.extensionData,\r\n type: this.type,\r\n isMCC: this.isMCC,\r\n });\r\n this.adExtensionEditorView.render();\r\n ko.applyBindings(this.adExtensionEditorView.viewModel, this.$('.ad-extension-detail-actions')[0]);\r\n return this;\r\n }\r\n}\r\n","const activities = [\r\n {\r\n name: 'editGoalDetails.normalGoal',\r\n value: 'editGoalDetails.normalGoal',\r\n },\r\n {\r\n name: 'createGoalCreationRecommendationWizard',\r\n value: 'createGoalCreationRecommendationWizard',\r\n },\r\n];\r\n\r\nexport const instrumentationSchema = {\r\n scenario: [\r\n {\r\n name: 'goalCreationRecommendationWizard',\r\n value: 'goalCreationRecommendationWizard',\r\n activity: activities,\r\n },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\n\r\nexport const markTime = () => ({\r\n time: performance.now(),\r\n activeTime: _.result(performance, 'activeTime', NaN),\r\n});\r\n\r\nexport const startActivity = (activity) => {\r\n const { time, activeTime } = markTime();\r\n // eslint-disable-next-line no-param-reassign\r\n activity.properties = {\r\n startTime: time,\r\n activeStartTime: activeTime,\r\n };\r\n activity.trace(`startTime: ${time}, activeStartTime: ${activeTime}`);\r\n};\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { withInstrumentation } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { instrumentationSchema } from './instrumentation-schema';\r\nimport { startActivity } from './util';\r\n\r\nconst GoalCreationEditorUnstyled = (props) => {\r\n const {\r\n goalData,\r\n permissions,\r\n serverContext,\r\n scope,\r\n perfMarker,\r\n instrumentation,\r\n isDemo,\r\n getGoalCreationRecommendationWizard,\r\n exportUpdatedGoalObject,\r\n } = props;\r\n\r\n useMemo(() => instrumentation.addScenario(instrumentationSchema), [instrumentation]);\r\n const { logScenario } = useMemo(() => {\r\n const scenario = instrumentation.goalCreationRecommendationWizard.create();\r\n const logInfo = {\r\n logScenario: scenario,\r\n logActivity: scenario.createGoalCreationRecommendationWizard.create(),\r\n };\r\n startActivity(logInfo.logActivity);\r\n return logInfo;\r\n }, [instrumentation.goalCreationRecommendationWizard]);\r\n\r\n const wizardDefaultState = {\r\n currentStep: 'editGoalDetails.normalGoal',\r\n goalObject: goalData,\r\n isEditScenario: true,\r\n logScenario,\r\n };\r\n\r\n const GoalCreationRecommendationWizard = getGoalCreationRecommendationWizard;\r\n\r\n const goalCreationWizard = ();\r\n\r\n return (\r\n !_.isEmpty(wizardDefaultState)) && (\r\n goalCreationWizard\r\n );\r\n};\r\n\r\nGoalCreationEditorUnstyled.propTypes = {\r\n permissions: PropTypes.shape({}).isRequired,\r\n serverContext: PropTypes.shape({}).isRequired,\r\n scope: PropTypes.shape({\r\n values: PropTypes.shape({}),\r\n }).isRequired,\r\n perfMarker: PropTypes.shape({}).isRequired,\r\n getGoalCreationRecommendationWizard: PropTypes.objectOf(PropTypes.any).isRequired,\r\n exportUpdatedGoalObject: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const GoalCreationEditor = withInstrumentation(GoalCreationEditorUnstyled);\r\n","export default class ViewModel {\r\n constructor({\r\n data,\r\n i18n,\r\n deps,\r\n }) {\r\n this.data = data;\r\n this.i18n = i18n;\r\n this.deps = deps;\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport $ from 'jquery';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { InstrumentationContext } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { APPLY_USERINPUT_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nimport { GoalCreationEditor } from '../shared/goal-creation-editor';\r\nimport template from '../template/create-conversion-goal.pug';\r\nimport ViewModel from '../viewmodel/create-coversion-goal-model';\r\n\r\nexport default class CreateConversionGoalView extends Backbone.View {\r\n initialize({\r\n deps,\r\n data = {},\r\n i18n,\r\n newI18n,\r\n router,\r\n gridView,\r\n readOnly,\r\n isMCC,\r\n scope,\r\n gridService,\r\n permissions,\r\n perfMarker,\r\n serverContext,\r\n getGoalCreationRecommendationWizard,\r\n applyAction = null,\r\n }) {\r\n this.deps = deps;\r\n this.data = _.first(data.Opportunities);\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n this.router = router;\r\n this.ko_model = new ViewModel({ data, i18n, deps });\r\n this.grid = { gridView };\r\n this.readOnly = readOnly;\r\n this.isMCC = isMCC;\r\n this.scope = scope;\r\n this.gridService = gridService;\r\n this.permissions = permissions;\r\n this.perfMarker = perfMarker;\r\n this.serverContext = serverContext;\r\n this.getGoalCreationRecommendationWizard = getGoalCreationRecommendationWizard;\r\n this.goalData = this.getGoalData(this.data);\r\n this.isValid = true;\r\n this.isPanelEdit = true;\r\n this.applyAction = applyAction;\r\n }\r\n\r\n getGoalData(data) {\r\n let suggestedGoal;\r\n if (data.GoalTypeCode === 'DestinationGoal') {\r\n suggestedGoal = {\r\n UrlString: data.SuggestedGoal.DestinationUrl,\r\n Operator: data.SuggestedGoal.DestinationURLOperator,\r\n };\r\n } else if (data.GoalTypeCode === 'EventGoal') {\r\n suggestedGoal = data.SuggestedEventGoal;\r\n } else if (data.GoalTypeCode === 'ClarityEventGoal') {\r\n // convert event target array to object\r\n const eventTarget = {};\r\n _.each(data.SuggestedClarityEventGoal.ClarityEventInfo.Trigger.EventTarget, (value) => {\r\n eventTarget[value.Key] = value.Value;\r\n });\r\n suggestedGoal = {\r\n ...data.SuggestedClarityEventGoal,\r\n ClarityEventInfo: {\r\n ...data.SuggestedClarityEventGoal.ClarityEventInfo,\r\n Trigger: {\r\n ...data.SuggestedClarityEventGoal.ClarityEventInfo.Trigger,\r\n EventTarget: eventTarget,\r\n },\r\n },\r\n };\r\n }\r\n\r\n return {\r\n '@odata.type': '#Model.DestinationGoal',\r\n Name: data.GoalName,\r\n Type: data.GoalTypeCode,\r\n LookbackWindowInMinutes: data.LookbackWindowinMinutes,\r\n IsAccountLevel: data.IsAccountLevel,\r\n ConversionCountType: data.ConversionCountType,\r\n GoalValue: data.GoalValue,\r\n CurrencyCode: data.GoalValueCurrencyCode,\r\n GoalValueType: data.GoalValueType,\r\n IsMainConversionGoal: data.IsMainConversionGoal,\r\n ViewThroughLookbackWindowinMinutes: data.ViewThroughLookbackWindowinMinutesNullable,\r\n GoalCategory: data.GoalCategory,\r\n AttributionModelType: data.ConversionAttributionModelTypeStr,\r\n TagName: data.TagName,\r\n ...suggestedGoal,\r\n };\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .btn-hero.apply': 'apply',\r\n 'click .btn-cancel': 'closeInlineView',\r\n };\r\n }\r\n\r\n hasChanged() {\r\n return !_.isEqual(this.goalData, this.getGoalData(this.data));\r\n }\r\n\r\n apply() {\r\n // If the input values are not valid, the apply action is stopped.\r\n if (this.isValid === false) {\r\n return;\r\n }\r\n\r\n const { data, goalData } = this;\r\n const basicInput = {\r\n '@odata.type': APPLY_USERINPUT_TYPES[data.OpportunityType],\r\n OpportunityId: data.OpportunityId,\r\n };\r\n\r\n let suggestedGoal;\r\n let odataType;\r\n if (data.GoalTypeCode === 'DestinationGoal') {\r\n odataType = '#Microsoft.Advertiser.AdInsight.Opportunity.Core.Adoption.Interface.Entity.ConversionDestinationURLGoal';\r\n suggestedGoal = {\r\n DestinationUrl: goalData.UrlString,\r\n DestinationURLOperator: goalData.Operator,\r\n };\r\n } else if (data.GoalTypeCode === 'EventGoal') {\r\n odataType = '#Microsoft.Advertiser.AdInsight.Opportunity.Core.Adoption.Interface.Entity.ConversionEventGoal';\r\n suggestedGoal = {\r\n Category: goalData.Category,\r\n CategoryOperator: goalData.CategoryOperator,\r\n Action: goalData.Action,\r\n ActionOperator: goalData.ActionOperator,\r\n Label: goalData.Label,\r\n LabelOperator: goalData.LabelOperator,\r\n Value: goalData.Value,\r\n ValueOperator: goalData.ValueOperator,\r\n };\r\n } else if (data.GoalTypeCode === 'ClarityEventGoal') {\r\n // convert event target object to arrray\r\n const eventTarget = [];\r\n _.each(goalData.ClarityEventInfo.Trigger.EventTarget, (value, key) => {\r\n eventTarget.push({ Key: key, Value: value });\r\n });\r\n odataType = '#Microsoft.Advertiser.AdInsight.Opportunity.Core.Adoption.Interface.Entity.ConversionClarityEventGoal';\r\n suggestedGoal = {\r\n ClarityEventInfo: {\r\n ...goalData.ClarityEventInfo,\r\n Trigger: {\r\n ...goalData.ClarityEventInfo.Trigger,\r\n EventTarget: eventTarget,\r\n },\r\n },\r\n Category: goalData.Category,\r\n CategoryOperator: goalData.CategoryOperator,\r\n Action: goalData.Action,\r\n ActionOperator: goalData.ActionOperator,\r\n Label: goalData.Label,\r\n LabelOperator: goalData.LabelOperator,\r\n Value: goalData.Value,\r\n ValueOperator: goalData.ValueOperator,\r\n };\r\n }\r\n\r\n const userInput = {\r\n NewGoal: {\r\n '@odata.type': odataType,\r\n GoalName: goalData.Name,\r\n GoalType: goalData.Type,\r\n GoalValue: goalData.GoalValue,\r\n GoalValueType: goalData.GoalValueType,\r\n GoalValueCurrencyCode: goalData.CurrencyCode,\r\n IsAccountLevel: goalData.IsAccountLevel,\r\n LookbackWindowinMinutes: goalData.LookbackWindowInMinutes,\r\n IsMainConversionGoal: goalData.IsMainConversionGoal,\r\n ViewThroughLookbackWindowinMinutes: goalData.ViewThroughLookbackWindowinMinutes,\r\n GoalCategory: goalData.GoalCategory,\r\n ConversionCountType: goalData.ConversionCountType,\r\n SuggestedGoal: suggestedGoal,\r\n ConversionAttributionModelTypeStr: goalData.AttributionModelType,\r\n },\r\n };\r\n\r\n // Apply create conversion goal recommendation with user inputs\r\n if (this.isPanelEdit) {\r\n this.applyAction([this.data], [_.extend(basicInput, userInput)]);\r\n } else {\r\n this.trigger(\r\n 'apply',\r\n {\r\n opportunities: [data],\r\n userInputs: [_.extend(basicInput, userInput)],\r\n }\r\n );\r\n }\r\n }\r\n\r\n exportUpdatedGoalObject = (updatedGoalObject, isValid) => {\r\n this.goalData = updatedGoalObject;\r\n this.isValid = isValid;\r\n };\r\n\r\n\r\n closeInlineView(e) {\r\n e.stopImmediatePropagation();\r\n this.remove();\r\n this.trigger('cancel');\r\n }\r\n\r\n removeElement = (container, name) => {\r\n if (!_.isNull(container.querySelector(name))) {\r\n container.querySelector(name).remove();\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n serverContext,\r\n permissions,\r\n perfMarker,\r\n i18n,\r\n newI18n,\r\n data,\r\n goalData,\r\n getGoalCreationRecommendationWizard,\r\n readOnly,\r\n } = this;\r\n const { instrumentation } = this.deps;\r\n\r\n const memo = newI18n.getString(_TL_('You can change the UET tag and goal category on the Create conversion goal page.'));\r\n const uetTitle = newI18n.getString(_TL_('UET tag'));\r\n const categoryTitle = newI18n.getString(_TL_('Goal category'));\r\n const params = _.extend(this.ko_model, {\r\n i18n,\r\n memo,\r\n uetTitle,\r\n categoryTitle,\r\n data,\r\n readOnly,\r\n isPanelEdit: this.isPanelEdit,\r\n });\r\n this.$el.html($(template(params)));\r\n\r\n ko.applyBindings(this.ko_model, this.$el[0]);\r\n this.delegateEvents();\r\n\r\n const scope = _.extend({}, this.scope, {\r\n values: {\r\n aid: this.scope.accountId,\r\n cid: this.scope.customerId,\r\n uid: this.scope.userId,\r\n },\r\n });\r\n\r\n const container = this.$el[0].querySelector('.create-conversion-goal-edit-content');\r\n ReactDOM.render(\r\n (\r\n \r\n \r\n \r\n \r\n \r\n ), container\r\n );\r\n\r\n // Remove some goal create wizard elements which are not included in editor page.\r\n this.removeElement(container, '.step-header');\r\n this.removeElement(container, '[class*=\\'SpecificGoalSettingsViewUnstyled-defaultTitle\\']');\r\n this.removeElement(container, '.conversion-wizard-footer');\r\n\r\n return this;\r\n }\r\n}\r\n","export const HANDLEABLE_ERROR_CODES = [\r\n 1001115, // duplicated campaign\r\n 1005102, // invalid url\r\n];\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\n\r\nexport default class ViewModel {\r\n constructor({\r\n data,\r\n i18n,\r\n }) {\r\n const campaignSettingData = _.findWhere(data.CreationFragments, { Type: 'Campaign' });\r\n const adGroupSettingData = _.findWhere(data.CreationFragments, { Type: 'Ad Group' });\r\n const adSettingData = _.findWhere(data.CreationFragments, { Type: 'Dynamic Search Ad' });\r\n\r\n this.model = {\r\n // campaign\r\n Name: campaignSettingData.Campaign,\r\n campaignType: 'dynamicSearch',\r\n isMixedDSACampaignRecommendation: true,\r\n CampaignSettings: [\r\n {\r\n DomainName: campaignSettingData.Website,\r\n Language: campaignSettingData.WebsiteLanguage,\r\n },\r\n ],\r\n Budget: {\r\n Amount: Math.round(Number(campaignSettingData.Budget) * 100) / 100,\r\n Id: '',\r\n Name: '',\r\n },\r\n context: {\r\n get: () => {},\r\n },\r\n // adgroup\r\n CampaignType: 'dynamicSearch',\r\n SearchBid: Math.round(Number(adGroupSettingData.SearchBid) * 100) / 100,\r\n AdGroupName: ko.observable(adGroupSettingData.AdGroup),\r\n // ads\r\n FinalUrls: [\r\n '',\r\n ],\r\n DisplayUrl: ko.observable(campaignSettingData.Website),\r\n Path1: '',\r\n Path2: '',\r\n Text: adSettingData.Text,\r\n TextPart2: adSettingData.Text2,\r\n isOppotunityCampaignLevel: !_.isNull(data.Target.CampaignId),\r\n };\r\n\r\n const maxAdgroupNameLength = 256;\r\n\r\n this.model.AdGroupName.error = ko.observable('');\r\n\r\n this.model.AdGroupName.isValid = () => {\r\n this.model.AdGroupName.error('');\r\n if (this.model.AdGroupName().length === 0) {\r\n this.model.AdGroupName.error(i18n.getString('InsertionOrderFilter_Filter_Validation_Common_Required')\r\n || 'Required field');\r\n }\r\n if (this.model.AdGroupName().length > maxAdgroupNameLength) {\r\n this.model.AdGroupName.error(i18n.getString('Validation_String_Max_Length', { maxlength: maxAdgroupNameLength })\r\n || `Field should not exceed ${maxAdgroupNameLength} characters`);\r\n }\r\n\r\n if (this.model.AdGroupName.error().length) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n this.model.AdGroupName.char_rem = ko.computed(() => {\r\n const remainChar = maxAdgroupNameLength - this.model.AdGroupName().length;\r\n\r\n if (remainChar < 0) {\r\n return i18n.getString('ExceededCharactersText_New', { count: Math.abs(remainChar) })\r\n || `Exceeded by ${Math.abs(remainChar)} characters`;\r\n }\r\n return i18n.getString('RemainingCharactersText_New', { count: remainChar })\r\n || `${remainChar} characters remaining`;\r\n }, this);\r\n }\r\n}\r\n","/* eslint new-cap:0 */\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport template from '../template/adgroup-editor.pug';\r\n\r\nexport default class AdgroupEditor extends Backbone.View {\r\n initialize({\r\n i18n,\r\n SearchBidView,\r\n BiddingStrategyView,\r\n model,\r\n }) {\r\n this.i18n = i18n;\r\n this.model = model;\r\n\r\n this.searchBidView = new SearchBidView({\r\n adgroup: undefined,\r\n getKeywordsCb: () => [],\r\n budget: 0,\r\n showTrafficEstimation: false,\r\n languages: [],\r\n newI18n: i18n,\r\n });\r\n\r\n this.biddingStrategyView = new BiddingStrategyView({\r\n entityType: 'AdGroup',\r\n biddingStrategyType: 'EnhancedCpc',\r\n });\r\n }\r\n\r\n render() {\r\n this.$el.append(template({ i18n: this.i18n }));\r\n ko.applyBindings(this.model, this.el);\r\n // Since we can't initialize AdgroupViewModel with default value\r\n // Manually set default adgroup name and bid after render\r\n this.searchBidView.viewModel.SearchBid(this.model.SearchBid);\r\n\r\n this.$('.bidding-strategy-container').append(this.biddingStrategyView.render().el);\r\n this.$('.bidding-strategy-container .col-sm-6 select').remove();\r\n this.$('.bidding-strategy-container .col-sm-6 span').remove();\r\n this.$('.bidding-strategy-container .col-sm-2').addClass('control-label');\r\n this.$('.bidding-strategy-container .col-sm-6').addClass('col-sm-4').removeClass('col-sm-6');\r\n this.$('.bidding-strategy-container .form-control-static').get(0).childNodes[0].nodeValue = this.i18n.getString('BidStrategySetting_Message_NoConversionTracking')\r\n || 'You need to have conversion tracking set up to use this bid strategy. ';\r\n this.$('.bidding-strategy-container .form-control-static').prepend(`
${this.i18n.getString('BidStrategy_EnhancedCPC') || 'Enhanced CPC'}
`);\r\n\r\n this.$('.search-bid__container').append(this.searchBidView.render().el);\r\n this.$('.search-bid__container .form-group:nth-child(1)').remove();\r\n this.$('.search-bid__container .control-label').remove();\r\n this.$('.search-bid__container .col-sm-2').addClass('col-sm-6').removeClass('col-sm-2');\r\n\r\n return this;\r\n }\r\n\r\n getAdGroup() {\r\n const adGroupToSave = {\r\n AdGroupName: this.model.AdGroupName(),\r\n Bid: this.searchBidView.getValues().SearchBid,\r\n };\r\n\r\n return adGroupToSave;\r\n }\r\n\r\n validate() {\r\n return _.every([\r\n this.model.AdGroupName.isValid(),\r\n this.searchBidView.validate(),\r\n ]);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport Editor from '@bingads-webui-campaign-legacy/crud-ad/view/adEditor';\r\nimport template from '../template/editors-container.pug';\r\nimport AdgroupEditor from './adgroup-editor';\r\n\r\nexport default class EditorsContainer extends Backbone.View {\r\n initialize({\r\n deps,\r\n i18n,\r\n searchExamples,\r\n model,\r\n campaignId,\r\n adGroupId,\r\n }) {\r\n this.i18n = i18n;\r\n this.deps = deps;\r\n this.model = model;\r\n this.searchExamples = searchExamples;\r\n\r\n this.campaignEditor = new deps.CampaignEditor({\r\n ...model,\r\n });\r\n\r\n this.adgroupEditor = new AdgroupEditor({\r\n i18n,\r\n SearchBidView: deps.SearchBidView,\r\n BiddingStrategyView: deps.BiddingStrategyView,\r\n model: this.model,\r\n });\r\n\r\n const AdsEditor = Editor;\r\n this.adEditor = new AdsEditor({\r\n model,\r\n campaignId,\r\n adGroupId,\r\n isSaveToServer: false,\r\n showInline: true,\r\n });\r\n\r\n // Bind DomainName in campaignEditor to DisplayUrl in adEditor\r\n if (this.campaignEditor.dsaSettingsView) {\r\n this.campaignEditor.dsaSettingsView.viewModel.DomainName.subscribe((newDomain) => {\r\n this.model.DisplayUrl(newDomain);\r\n });\r\n }\r\n }\r\n\r\n hasChanged() {\r\n const type = this.adEditor.viewModel.Type();\r\n const params = this.adEditor.adTypeViews[type].toObject();\r\n return this.adEditor.hasChange(params, type);\r\n }\r\n\r\n render() {\r\n const examplesLength = this.searchExamples.length;\r\n this.$el.empty().append(template({ i18n: this.i18n, examplesLength }));\r\n _.each(this.searchExamples, (example, index) => {\r\n this.$('.preview-search-examples').append(`
${example + (index === examplesLength - 1 ? '' : ',')}
`);\r\n });\r\n\r\n this.$('.campaignEditor-container').prepend(this.campaignEditor.render().el);\r\n this.campaignEditor.willShow();\r\n\r\n // Take out budget input and input error\r\n this.$('.budget').before(this.$('.container-budget > div:nth-child(1)'));\r\n this.$('.container-budget > div:nth-child(1)').addClass('col-sm-6').removeClass('col-sm-12');\r\n this.$('.budget').before(this.$('.container-budget > div:nth-child(1)'));\r\n // Disable fields not needed in campaignEditor\r\n this.$('.copy-campaign-settings').remove();\r\n this.$('#CampaignSettings_AdvancedBudgetOptions_Label').remove();\r\n this.$('.dsa-targeting-source').parent().remove();\r\n this.$('.language-container').remove();\r\n\r\n this.$('.adgroupEditor-container').prepend(this.adgroupEditor.render().el);\r\n\r\n // Disable fields not needed in adsEditor\r\n this.$('.adEditor-container').prepend(this.adEditor.render().el);\r\n this.$('.advanced-options').remove();\r\n\r\n // Set elements for example searches and ads preview\r\n this.$('.adEditor-container .col-sm-6').get(2).classList.add('preview-ads');\r\n this.$('.alert-info.form-group').before(this.$('.search-examples-container'));\r\n this.$('.preview-container').before(this.$('.ads-preview-label'));\r\n // fix this css due to set h5 to h2 to meet a11y requirements.\r\n this.$('.campaignEditor-container h2.control-label').css('margin-top', '10.5px');\r\n this.$('.adgroupEditor-container h2.control-label').css('margin-top', '10.5px');\r\n\r\n return this;\r\n }\r\n\r\n dealWithInlineError(errors) {\r\n this.campaignEditor.getAndHandleApiErrors(errors);\r\n this.campaignEditor.scrollToErrors();\r\n }\r\n\r\n getModel() {\r\n return _.extend(\r\n {},\r\n this.campaignEditor.getData(),\r\n this.adgroupEditor.getAdGroup(),\r\n this.adEditor.adTypeViews.DynamicSearch.toObject()\r\n );\r\n }\r\n\r\n validate() {\r\n return _.every([\r\n this.campaignEditor.validate(),\r\n this.adgroupEditor.validate(),\r\n this.adEditor.validate('DynamicSearch'),\r\n ]);\r\n }\r\n\r\n get template() { return template; }\r\n}\r\n","import Backbone from 'backbone';\r\nimport $ from 'jquery';\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport csvUtil from '@bingads-webui-component-legacy/js-data-bulk/bulkify';\r\nimport {\r\n RECOMMENDATION_TYPES,\r\n APPLY_USERINPUT_TYPES,\r\n formatCampaignBulkApiError,\r\n CONTEXTUAL_ENTITY_TYPE,\r\n CAMPAIGN_ODATA_ERROR_BASELINE,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport {\r\n withContextualAttributeTemplate,\r\n showContextualAttribute,\r\n hideContextualAttribute,\r\n} from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\nimport { HANDLEABLE_ERROR_CODES } from '../const';\r\n\r\nimport template from '../template/dynamic-search-ads-inline-view.pug';\r\nimport ViewModel from '../viewmodel/dynamic-search-ads-inline-view-model';\r\nimport EditorsContainer from './editors-container';\r\n\r\nexport default class DynamicSearchAdsInlineView extends Backbone.View {\r\n initialize({\r\n deps = {\r\n adDisplayUrlService: null,\r\n combineText: null,\r\n permissions: {\r\n IsRecommendationRepairSuggestedAdsEnabled: true,\r\n },\r\n },\r\n data = {},\r\n i18n,\r\n isMCC,\r\n readOnly,\r\n router,\r\n gridView,\r\n gridService,\r\n }) {\r\n this.deps = deps;\r\n this.data = _.first(data.Opportunities);\r\n this.i18n = i18n;\r\n this.isMCC = isMCC;\r\n this.router = router;\r\n this.readOnly = readOnly;\r\n this.ko_model = new ViewModel({\r\n data: this.data,\r\n i18n: this.i18n,\r\n });\r\n this.grid = { gridView };\r\n\r\n this.editorsContainerView = {};\r\n this.gridService = gridService;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .btn-hero.apply': 'apply',\r\n 'click .btn-cancel': 'closeInlineView',\r\n 'click .error-message .close': 'dismissMessage',\r\n 'mouseover .recommendation-dynamic-search-ads-inline-view .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .recommendation-dynamic-search-ads-inline-view .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'click .recommendation-dynamic-search-ads-inline-view .contextual-tooltip': 'scopeRouting',\r\n };\r\n }\r\n\r\n scopeRouting(e) {\r\n this.router(e);\r\n }\r\n\r\n hideContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n hideContextualAttribute({ e, self: this });\r\n }\r\n\r\n showContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n this.timerForPopupContextualAttribute = setTimeout(() => {\r\n showContextualAttribute({\r\n deps: this.deps,\r\n i18n: this.i18n,\r\n e,\r\n type: this.data.OpportunityType,\r\n isExpanding: true,\r\n self: this,\r\n recommendationService: this.gridService.recommendationService,\r\n });\r\n }, 500);\r\n }\r\n\r\n render() {\r\n const header = this.isMCC ?\r\n this.i18n.getString(\r\n 'Recommendation_Inline_View_Dynamic_Search_Ads_Header_MCC',\r\n {\r\n entity_name: withContextualAttributeTemplate({\r\n opportunityId: this.data.OpportunityId,\r\n entityName: this.data.Target.AccountName,\r\n entityId: this.data.Target.AccountId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.ACCOUNT,\r\n status: 'false',\r\n isExpandingView: true,\r\n }),\r\n }\r\n ) :\r\n this.i18n.getString('Recommendation_Inline_View_Dynamic_Search_Ads_Header');\r\n this.$el.html($(template({ i18n: this.i18n, readOnly: this.readOnly, header })));\r\n ko.applyBindings(this.ko_model, this.$el[0]);\r\n this.delegateEvents();\r\n\r\n this.renderEditors(this.ko_model);\r\n\r\n return this;\r\n }\r\n\r\n dealWithInlineError(errors) {\r\n this.editorsContainerView\r\n .dealWithInlineError(formatCampaignBulkApiError(errors, CAMPAIGN_ODATA_ERROR_BASELINE));\r\n }\r\n\r\n hasInlineError(errors) {\r\n return !_.isEmpty(_.intersection(\r\n HANDLEABLE_ERROR_CODES,\r\n _.map(errors, error => error.ErrorCode)\r\n ));\r\n }\r\n\r\n hasChanged() {\r\n return this.editorsContainerView &&\r\n this.editorsContainerView.hasChanged &&\r\n this.editorsContainerView.hasChanged();\r\n }\r\n\r\n apply() {\r\n if (!this.editorsContainerView.validate()) {\r\n return;\r\n }\r\n\r\n const model = this.editorsContainerView.getModel();\r\n\r\n // eslint-disable-next-line max-len\r\n const csvRows = csvUtil.serialize(this.deps.jsdata.Campaign, this.editorsContainerView.campaignEditor.getData());\r\n // Row at index 2 is not needed and will cause an error\r\n csvRows.splice(2, 1);\r\n\r\n this.trigger(\r\n 'apply',\r\n {\r\n opportunities: [this.data],\r\n userInputs: [{\r\n '@odata.type': APPLY_USERINPUT_TYPES[RECOMMENDATION_TYPES.DYNAMIC_SEARCH_ADS],\r\n OpportunityId: this.data.OpportunityId,\r\n CampaignName: model.Name,\r\n Website: model.DomainName,\r\n WebsiteLanguage: model.LanguageCode,\r\n Budget: _.isNull(this.data.Target.CampaignId) ? model.Budget.Amount : undefined,\r\n LocationCsv: _.isNull(this.data.Target.CampaignId) ? csvRows : undefined,\r\n AdGroupName: model.AdGroupName,\r\n Bid: model.Bid,\r\n Text: model.Text,\r\n TextPart2: model.TextPart2,\r\n TimeZone: model.TimeZone,\r\n Path1: model.Path1,\r\n Path2: model.Path2,\r\n }],\r\n }\r\n );\r\n const { IsRecommendationInlineErrorEnabled } = this.deps.permissions;\r\n\r\n if (!IsRecommendationInlineErrorEnabled) {\r\n // scroll to top to see feedbacks\r\n $('html, body').scrollTop(0);\r\n }\r\n }\r\n\r\n closeInlineView(e) {\r\n e.stopImmediatePropagation();\r\n this.remove();\r\n this.trigger('cancel');\r\n }\r\n\r\n renderEditors(data) {\r\n const adEditorModel = data.model;\r\n\r\n ko.cleanNode(this.$('.dynamic-search-ads-editor-container')[0]);\r\n\r\n if (this.editorsContainerView && this.editorsContainerView.off) {\r\n this.editorsContainerView.off('updated');\r\n }\r\n\r\n this.editorsContainerView = new EditorsContainer({\r\n deps: this.deps,\r\n i18n: this.i18n,\r\n searchExamples: this.data.SearchExamples,\r\n model: _.extend(adEditorModel, { Type: 'DynamicSearch' }),\r\n campaignId: this.data.Target.CampaignId,\r\n adGroupId: this.data.Target.AdGroupId,\r\n });\r\n\r\n this.$('.dynamic-search-ads-editor-container').html(this.editorsContainerView.render().el);\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\n\r\nexport default class ViewModel {\r\n constructor({\r\n i18n,\r\n view,\r\n data,\r\n type,\r\n deps,\r\n readOnly,\r\n rejectedAd,\r\n }) {\r\n this.view = view;\r\n this.i18n = i18n;\r\n this.data = data;\r\n this.deps = deps;\r\n this.readOnly = readOnly;\r\n this.opportunityType = type;\r\n\r\n this.enableApply = ko.observable(true);\r\n this.finalUrl = ko.observable(rejectedAd.FinalUrl);\r\n this.enableResubmit = ko.computed(() =>\r\n !readOnly && (data.IsAppealable || this.finalUrl() !== rejectedAd.FinalUrl));\r\n\r\n this.displayUrl = ko.computed(() =>\r\n deps.adDisplayUrlService.getFinalUrlDomain(this.finalUrl()));\r\n\r\n this.showWarning = ko.observable(false);\r\n this.showEmptyTemplateWarning = ko.observable(false);\r\n\r\n this.selectIndex = ko.observable(0);\r\n\r\n this.exampleAds = ko.computed(() =>\r\n _.map(data.RejectedAds, (ad) => {\r\n const urlRegex = new RegExp('http:\\/\\/|https:\\/\\/|\\{param', 'i'); // eslint-disable-line no-useless-escape\r\n let destinationUrl = this.finalUrl();\r\n if (destinationUrl && destinationUrl.search(urlRegex) === -1) {\r\n destinationUrl = `http://${destinationUrl}`;\r\n }\r\n const convertDisplayUrl = deps.adDisplayUrlService.getExpandedTextAdDisplayUrl(\r\n destinationUrl,\r\n null,\r\n ad.Path1,\r\n ad.Path2\r\n );\r\n return {\r\n convertedTitle: _.compact([\r\n ad.Title1,\r\n ad.Title2,\r\n ad.Title3]).join(' | '),\r\n convertedText: deps.combineText(\r\n ad.Description1,\r\n ad.Description2\r\n ),\r\n convertDisplayUrl,\r\n };\r\n }));\r\n\r\n return this;\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\n\r\nimport { APPLY_USERINPUT_TYPES, isPlural } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nimport ViewModel from '../viewmodel/index';\r\nimport template from '../template/index.pug';\r\n\r\nexport class RecommendationFixAdDestinationView extends Backbone.View {\r\n initialize({\r\n data,\r\n i18n,\r\n deps,\r\n router,\r\n gridView,\r\n readOnly,\r\n UrlTestTool,\r\n }) {\r\n this.opportunityData = _.first(data.Opportunities);\r\n this.type = data.OpportunityType;\r\n this.i18n = i18n;\r\n this.data = data;\r\n this.deps = deps;\r\n this.router = router;\r\n this.grid = { gridView };\r\n\r\n this.rejectedAd = _.first(this.opportunityData.RejectedAds) ||\r\n _.first(this.opportunityData.RejectedKeywords) || {};\r\n\r\n this.viewModel = new ViewModel({\r\n i18n,\r\n view: this,\r\n data: this.opportunityData,\r\n type: this.type,\r\n deps,\r\n readOnly,\r\n rejectedAd: this.rejectedAd,\r\n });\r\n\r\n this.info = {\r\n landingPageUrl: this.opportunityData.UrlOrLandingPage,\r\n finalUrl: this.rejectedAd.FinalUrl,\r\n finalUrlDesc: i18n.getString(\r\n `Recommendation_FixAdDestinationInline_FinalUrl_Desc_${isPlural(this.opportunityData.NumberRejectedAds)}_${isPlural(this.opportunityData.NumberRejectedKeywords)}`,\r\n {\r\n ad: this.opportunityData.NumberRejectedAds,\r\n keyword: this.opportunityData.NumberRejectedKeywords,\r\n }\r\n ),\r\n desc: i18n.getString('Recommendation_FixAdDestinationInline_Desc', {\r\n type: i18n.getString(`Details_View_Rejection_Type_${this.opportunityData.FlagId}`),\r\n }),\r\n numberRejectedAds: this.opportunityData.NumberRejectedAds,\r\n numberRejectedKeywords: this.opportunityData.NumberRejectedKeywords,\r\n showTrackingTemplate: !_.isEmpty(this.rejectedAd.TrackingTemplate),\r\n };\r\n\r\n this.finalUrlEditor = new deps.UrlEditor({\r\n url: this.rejectedAd.FinalUrl,\r\n ariaLabelledby: 'finalUrlLabel',\r\n ariaId: 'FinalUrl',\r\n });\r\n\r\n this.finalUrlEditor.on('urlChanged', (url) => {\r\n this.viewModel.finalUrl(url);\r\n });\r\n\r\n this.viewModel.finalUrl.subscribe((value) => {\r\n const hasError = _.isEmpty(value);\r\n this.viewModel.enableApply(!hasError);\r\n this.finalUrlEditor.hasErrors(hasError);\r\n this.finalUrlEditor.setError(hasError ? this.i18n.getString('Validation_NotEmpty_Required_Field') : '');\r\n });\r\n\r\n this.trackingTemplate = new deps.TrackingTemplate({\r\n placeholderEnabled: true,\r\n templateExampleEnabled: false,\r\n });\r\n this.trackingTemplate.setTrackingTemplate(this.rejectedAd.TrackingTemplate);\r\n\r\n this.trackingTemplate.on('templateChanged', (trackingTemplate) => {\r\n this.viewModel.showWarning(false);\r\n this.viewModel.showEmptyTemplateWarning(false);\r\n if (_.isEmpty(trackingTemplate)) {\r\n this.viewModel.showEmptyTemplateWarning(true);\r\n } else {\r\n const showWarning = this.trackingTemplate.isValid()\r\n && trackingTemplate !== this.rejectedAd.TrackingTemplate;\r\n this.viewModel.showWarning(showWarning);\r\n }\r\n });\r\n\r\n this.urlTestTool = new UrlTestTool({});\r\n\r\n this.urlTestTool.on('testUurl', (fn, originalView) => {\r\n const view = originalView;\r\n const { pageContext, odata } = this.deps;\r\n const target = this.opportunityData.Target;\r\n\r\n view.isInline = false;\r\n view.level = this.deps.uurlLevels.Ad;\r\n\r\n const url = `/Customers(${pageContext.CurrentCustomer.Id})/Accounts(${target.AccountId})/Ads/Default.GridData?$filter=Id+eq+${this.rejectedAd.AdId}&$top=200`;\r\n\r\n const timeFormat = { raw: 'yyyy-MM-dd', timeZone: 'UTC' };\r\n const startDate = i18n.formatDate(new Date(null), timeFormat);\r\n const endDate = i18n.formatDate(new Date(), timeFormat);\r\n\r\n odata.post(\r\n url,\r\n {\r\n data: {\r\n gridDataParameters: {\r\n DateRange: {\r\n EndDate: endDate,\r\n StartDate: startDate,\r\n },\r\n },\r\n },\r\n }\r\n ).then((res) => {\r\n const adsInfo = res.value[0] || {};\r\n const params = {\r\n FinalUrls: [this.viewModel.finalUrl()],\r\n TrackingUrlTemplate: this.trackingTemplate.getTrackingTemplate(),\r\n UrlCustomParameters: adsInfo.UrlCustomParameters || [],\r\n FinalUrlSuffix: adsInfo.FinalUrlSuffix,\r\n AccountFinalUrlSuffix: null,\r\n };\r\n\r\n const context = {\r\n customerId: pageContext.CurrentCustomer.Id,\r\n userId: pageContext.CurrentUser.Id,\r\n accountId: target.AccountId,\r\n campaignId: target.CampaignId || '',\r\n adGroupId: target.AdGroupId || '',\r\n entityId: this.rejectedAd.AdId,\r\n };\r\n const options = {\r\n apiInLog: 'adEditor/uurlTest',\r\n };\r\n this.deps.testUurl(fn, view, params, context, options);\r\n });\r\n });\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .apply': this.apply,\r\n 'click .btn-cancel': this.cancel,\r\n };\r\n }\r\n\r\n render() {\r\n const {\r\n i18n,\r\n type,\r\n opportunityData,\r\n info,\r\n } = this;\r\n\r\n const model = _.extend({\r\n i18n,\r\n type,\r\n opportunityData,\r\n info,\r\n });\r\n this.$el.html(template(model));\r\n\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n this.$('.final-url').empty().append(this.finalUrlEditor.render().el);\r\n\r\n this.$('.tracking-template').empty().append(this.trackingTemplate.render().el);\r\n\r\n if (this.opportunityData.NumberRejectedAds > 0) {\r\n this.$('.url-test-tool').empty().append(this.urlTestTool.render().el);\r\n }\r\n\r\n this.$('.tipsCarousel').on('slid.bs.carousel', () => {\r\n const index = this.$('.tipsCarousel .ad-preview.active').index();\r\n this.viewModel.selectIndex(index);\r\n });\r\n\r\n return this;\r\n }\r\n\r\n isValid() {\r\n return this.trackingTemplate.isValid() && this.viewModel.enableApply();\r\n }\r\n\r\n apply() {\r\n if (!this.isValid()) {\r\n return;\r\n }\r\n\r\n const {\r\n type,\r\n opportunityData,\r\n } = this;\r\n\r\n const odataType = APPLY_USERINPUT_TYPES[type];\r\n const { OpportunityId } = opportunityData;\r\n const fields = ['FinalUrl', 'TrackingTemplate'];\r\n const model = this.rejectedAd;\r\n\r\n const userInputs = {\r\n '@odata.type': odataType,\r\n OpportunityId,\r\n FinalUrl: this.viewModel.finalUrl(),\r\n TrackingTemplate: this.trackingTemplate.getTrackingTemplate(),\r\n };\r\n\r\n _.map(fields, (item) => {\r\n if (\r\n model[item] === userInputs[item] ||\r\n (_.isEmpty(model[item]) && _.isEmpty(userInputs[item]))\r\n ) {\r\n userInputs[item] = null;\r\n }\r\n });\r\n\r\n this.trigger('apply', {\r\n opportunities: [this.opportunityData],\r\n userInputs: [userInputs],\r\n });\r\n }\r\n\r\n cancel() {\r\n this.trigger('cancel');\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\n\r\nexport default class ViewModel {\r\n constructor({\r\n data,\r\n i18n,\r\n deps,\r\n }) {\r\n this.expressionOperators = [\r\n {\r\n value: 'EqualsTo',\r\n text: i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Option_EqualsTo'),\r\n },\r\n {\r\n value: 'BeginsWith',\r\n text: i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Option_BeginsWith'),\r\n },\r\n {\r\n value: 'Contains',\r\n text:\r\n i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Option_Contains'),\r\n },\r\n {\r\n value: 'RegularExpression',\r\n text: i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Option_RegularExpression'),\r\n },\r\n ];\r\n\r\n this.valueOperators = [\r\n {\r\n value: 'EqualTo',\r\n text: i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Option_EqualsTo'),\r\n },\r\n {\r\n value: 'LessThan',\r\n text: i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Option_LessThan'),\r\n },\r\n {\r\n value: 'GreaterThan',\r\n text: i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Option_GreaterThan'),\r\n },\r\n ];\r\n\r\n const { schemaCampaignVnext, validator } = deps;\r\n const opportunity = _.first(data.Opportunities);\r\n\r\n const goalTypeId = opportunity.GoalTypeId;\r\n const issueTypeId = opportunity.IssueType;\r\n const goalValueSourceId =\r\n opportunity.RevenueValue && opportunity.RevenueValue.GoalValueSourceId;\r\n if (goalTypeId === 0 && opportunity.DestUrl) { // Goal type is Destination URL\r\n const s$DestinationGoal = schemaCampaignVnext.default.DestinationGoal;\r\n this.maxUrlLength = s$DestinationGoal.properties.UrlString.maxLength;\r\n const suggestedSetting = opportunity.DestUrl.SuggestedSetting;\r\n\r\n this.urlString = ko.observable(suggestedSetting.DestinationUrl).extend({\r\n validate: [validator.required(), validator.string.xss()],\r\n });\r\n this.operator = ko.observable(suggestedSetting.DestinationURLOperatorCode).extend({\r\n validate: [validator.required(), validator.string.xss()],\r\n });\r\n\r\n this.operatorDescription = ko.computed(() => {\r\n if (this.operator() === 'RegularExpression') {\r\n return `${i18n.getString(`UnifiedEventTracking_Goal_Creation_Type_Destination_${this.operator()}`)\r\n } ${i18n.getString('UnifiedEventTracking_LearnMore')}`;\r\n } else if (this.operator()) {\r\n return `${i18n.getString(`UnifiedEventTracking_Goal_Creation_Type_Destination_${this.operator()}`)\r\n } ${i18n.getString('UnifiedEventTracking_LearnMore')}`;\r\n }\r\n return '';\r\n }, this);\r\n\r\n this.isValid = ko.computed(() =>\r\n this.urlString.isValid() &&\r\n this.operator.isValid(), this);\r\n\r\n this.allParamIdentical = () => {\r\n const {\r\n DestinationURLOperatorCode,\r\n DestinationUrl,\r\n } = opportunity.DestUrl.CurrentSetting;\r\n const currentValues = DestinationURLOperatorCode + DestinationUrl;\r\n const suggestedValues = this.operator() + this.urlString();\r\n return currentValues === suggestedValues;\r\n };\r\n\r\n this.warningMessage = ko.computed(() => {\r\n if (this.allParamIdentical()) {\r\n return i18n.getString('Details_View_Suggested_Setting_NoChangeWarning');\r\n }\r\n return '';\r\n }, this);\r\n } else if (goalTypeId === 3 && opportunity.Event) { // Goal type is Event\r\n const s$EventGoal = schemaCampaignVnext.default.EventGoal;\r\n const suggestedSetting = opportunity.Event.SuggestedSetting;\r\n\r\n this.category = ko.observable(suggestedSetting.Category).extend({\r\n validate: [validator.string.xss()],\r\n });\r\n this.categoryOperator = ko.observable(suggestedSetting.CategoryOperatorCode);\r\n\r\n this.action = ko.observable(suggestedSetting.Action).extend({\r\n validate: [validator.string.xss()],\r\n });\r\n this.actionOperator = ko.observable(suggestedSetting.ActionOperatorCode);\r\n\r\n this.label = ko.observable(suggestedSetting.Label).extend({\r\n validate: [validator.string.xss()],\r\n });\r\n this.labelOperator = ko.observable(suggestedSetting.LabelOperatorCode);\r\n\r\n this.value = ko.observable(suggestedSetting.Value).extend({\r\n validate: [\r\n validator.string.number(),\r\n validator.string.number.range(0, 9.22e14),\r\n validator.string.number.size(7, 0),\r\n ],\r\n });\r\n this.valueOperator = ko.observable(suggestedSetting.ValueOperatorCode);\r\n\r\n this.eventParams = [\r\n {\r\n value: this.category,\r\n operator: this.categoryOperator,\r\n text: i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Event_Category'),\r\n maxLength: s$EventGoal.properties.Category.maxLength,\r\n errorMessage: i18n.getString('Validation_String_Invalid_Characters'),\r\n isNumeric: false,\r\n operators: this.expressionOperators,\r\n },\r\n {\r\n value: this.action,\r\n operator: this.actionOperator,\r\n text: i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Event_Action'),\r\n maxLength: s$EventGoal.properties.Action.maxLength,\r\n errorMessage: i18n.getString('Validation_String_Invalid_Characters'),\r\n isNumeric: false,\r\n operators: this.expressionOperators,\r\n },\r\n {\r\n value: this.label,\r\n operator: this.labelOperator,\r\n text: i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Event_Label'),\r\n maxLength: s$EventGoal.properties.Label.maxLength,\r\n errorMessage: i18n.getString('Validation_String_Invalid_Characters'),\r\n isNumeric: false,\r\n operators: this.expressionOperators,\r\n },\r\n {\r\n value: this.value,\r\n operator: this.valueOperator,\r\n text: i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Event_Value'),\r\n maxLength: null,\r\n errorMessage: i18n.getString('Audiences_Manage_Error_InvalidAudienceCustomEventValue_Number'),\r\n isNumeric: true,\r\n operators: this.valueOperators,\r\n },\r\n ];\r\n\r\n this.allParamEmpty = () => {\r\n const str = this.category() + this.action() + this.label() + this.value();\r\n return _.isString(str) ? _.isEmpty(str.trim()) : true;\r\n };\r\n\r\n this.allParamIdentical = () => {\r\n const {\r\n CategoryOperatorCode,\r\n Category,\r\n ActionOperatorCode,\r\n Action,\r\n LabelOperatorCode,\r\n Label,\r\n ValueOperatorCode,\r\n Value,\r\n } = opportunity.Event.CurrentSetting;\r\n const currentValues = [];\r\n const suggestedValues = [];\r\n if (!_.isNull(Category)) {\r\n currentValues.push(CategoryOperatorCode);\r\n suggestedValues.push(this.categoryOperator());\r\n }\r\n currentValues.push(Category);\r\n suggestedValues.push(this.category());\r\n if (!_.isNull(Action)) {\r\n currentValues.push(ActionOperatorCode);\r\n suggestedValues.push(this.actionOperator());\r\n }\r\n currentValues.push(Action);\r\n suggestedValues.push(this.action());\r\n if (!_.isNull(Label)) {\r\n currentValues.push(LabelOperatorCode);\r\n suggestedValues.push(this.labelOperator());\r\n }\r\n currentValues.push(Label);\r\n suggestedValues.push(this.label());\r\n if (!_.isNull(Value)) {\r\n currentValues.push(ValueOperatorCode);\r\n suggestedValues.push(this.valueOperator());\r\n }\r\n currentValues.push(Value);\r\n suggestedValues.push(this.value());\r\n return currentValues.toString() === suggestedValues.toString();\r\n };\r\n\r\n this.isValid = ko.computed(() =>\r\n !this.allParamEmpty() &&\r\n this.category.isValid() &&\r\n this.action.isValid() &&\r\n this.label.isValid() &&\r\n this.value.isValid(), this);\r\n\r\n this.errorMessage = ko.computed(() => {\r\n if (this.allParamEmpty()) {\r\n return i18n.getString('UnifiedEventTracking_Goal_Creation_Type_EventNoParamError');\r\n }\r\n return '';\r\n }, this);\r\n\r\n this.warningMessage = ko.computed(() => {\r\n if (this.allParamIdentical()) {\r\n return i18n.getString('Details_View_Suggested_Setting_NoChangeWarning');\r\n }\r\n return '';\r\n }, this);\r\n } else if (issueTypeId === 4 && opportunity.RevenueValue\r\n && (goalValueSourceId === 1 || goalValueSourceId === 3)) {\r\n this.inputRevenueValue = ko.observable(1).extend({\r\n validate: [\r\n validator.string.number(),\r\n validator.string.number.range(0, 9.22e14),\r\n validator.string.number.size(7, 0),\r\n ],\r\n });\r\n this.text = i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Event_Value');\r\n this.errorMessage = i18n.getString('Audiences_Manage_Error_InvalidAudienceCustomEventValue_Number');\r\n this.isValid = ko.computed(() =>\r\n this.inputRevenueValue.isValid(), this);\r\n }\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport $ from 'jquery';\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport {\r\n GOAL_OPERATOR_TYPES_STRING_VALUES,\r\n getDestUrlData,\r\n getEventData,\r\n formatDecimal,\r\n NOT_AVAILABLE_DEFAULT_STR,\r\n APPLY_USERINPUT_TYPES,\r\n CONTEXTUAL_ENTITY_TYPE,\r\n ISSUE_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport {\r\n withContextualAttributeTemplate,\r\n showContextualAttribute,\r\n hideContextualAttribute,\r\n} from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\n\r\nimport ViewModel from '../viewmodel/fix-coversion-goal-setting-model';\r\nimport destUrlTemplate from '../template/fix-conversion-goal-setting-dest-url.pug';\r\nimport eventTemplate from '../template/fix-conversion-goal-setting-event.pug';\r\nimport revenueValueTemplate from '../template/fix-conversion-goal-setting-revenue-value.pug';\r\n\r\nexport default class FixConversionGoalSettingView extends Backbone.View {\r\n initialize({\r\n deps,\r\n data = {},\r\n i18n,\r\n router,\r\n gridView,\r\n readOnly,\r\n isMCC,\r\n scope,\r\n gridService,\r\n s$i18n,\r\n newI18n,\r\n viewUET,\r\n }) {\r\n this.deps = deps;\r\n this.data = _.first(data.Opportunities);\r\n this.accountName = data.Target.AccountName;\r\n this.i18n = i18n;\r\n this.router = router;\r\n this.ko_model = new ViewModel({ data, i18n, deps });\r\n this.grid = { gridView };\r\n this.readOnly = readOnly;\r\n this.isMCC = isMCC;\r\n this.scope = scope;\r\n this.gridService = gridService;\r\n this.s$i18n = s$i18n;\r\n this.newI18n = newI18n;\r\n this.viewUET = viewUET;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .apply': 'apply',\r\n 'click .btn-cancel': 'closeInlineView',\r\n 'mouseover .recommendation-inline-fix-conversion-goal-setting-view .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .recommendation-inline-fix-conversion-goal-setting-view .contextual-tooltip': 'hideContextualAttributePopup',\r\n };\r\n }\r\n\r\n contextualAttributeWrapper = options => withContextualAttributeTemplate({\r\n opportunityId: options.opportunityId,\r\n entityName: options.entityName,\r\n entityId: options.entityId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CURRENT_SETTING,\r\n status: 'false',\r\n isExpandingView: true,\r\n ariaLabel: this.i18n.getString('Click to scope to current setting'),\r\n style: { color: '#A80000' },\r\n })\r\n\r\n hideContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n hideContextualAttribute({ e, self: this });\r\n }\r\n\r\n showContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n this.timerForPopupContextualAttribute = setTimeout(() => {\r\n showContextualAttribute({\r\n deps: this.deps,\r\n i18n: this.i18n,\r\n e,\r\n type: this.data.OpportunityType,\r\n isExpanding: true,\r\n self: this,\r\n scope: this.scope,\r\n recommendationService: this.gridService.recommendationService,\r\n s$i18n: this.s$i18n,\r\n newI18n: this.newI18n,\r\n });\r\n }, 500);\r\n }\r\n\r\n apply() {\r\n const { data } = this;\r\n const model = this.ko_model;\r\n if (model.isValid()) {\r\n const basicInput = {\r\n '@odata.type': APPLY_USERINPUT_TYPES[data.OpportunityType],\r\n OpportunityId: data.OpportunityId,\r\n };\r\n\r\n let editedSetting;\r\n if (data.GoalTypeId === 0 && data.DestUrl) { // Goal type is Destination URL\r\n editedSetting = {\r\n NewGoal: {\r\n '@odata.type': '#Microsoft.Advertiser.AdInsight.Opportunity.Core.Adoption.Interface.Entity.DestinationGoal',\r\n UrlString: model.urlString(),\r\n Operator: model.operator(),\r\n },\r\n };\r\n } else if (data.GoalTypeId === 3 && data.Event) { // Goal type is Event\r\n editedSetting = {\r\n NewGoal: {\r\n '@odata.type': '#Microsoft.Advertiser.AdInsight.Opportunity.Core.Adoption.Interface.Entity.EventGoal',\r\n Category: model.category() ? model.category() : undefined,\r\n CategoryOperator: model.category() ? model.categoryOperator() : undefined,\r\n Action: model.action() ? model.action() : undefined,\r\n ActionOperator: model.action() ? model.actionOperator() : undefined,\r\n Label: model.label() ? model.label() : undefined,\r\n LabelOperator: model.label() ? model.labelOperator() : undefined,\r\n Value: model.value() && !_.isNaN(model.value()) ?\r\n Number(model.value()) : undefined,\r\n ValueOperator: model.value() ? model.valueOperator() : undefined,\r\n },\r\n };\r\n } else if (data.IssueType === 4 && data.RevenueValue) { // Issue type is RevenueValue\r\n editedSetting = {\r\n NewGoal: {\r\n '@odata.type': '#Microsoft.Advertiser.AdInsight.Opportunity.Core.Adoption.Interface.Entity.RevenueValueModification',\r\n NewRevenueValue: model.inputRevenueValue() && !_.isNaN(model.inputRevenueValue()) ?\r\n Number(model.inputRevenueValue()) : undefined,\r\n },\r\n };\r\n }\r\n\r\n this.trigger(\r\n 'apply',\r\n {\r\n opportunities: [this.data],\r\n userInputs: [_.extend(basicInput, editedSetting)],\r\n }\r\n );\r\n }\r\n }\r\n\r\n closeInlineView(e) {\r\n e.stopImmediatePropagation();\r\n this.remove();\r\n this.trigger('cancel');\r\n }\r\n\r\n parseOperator(operator) {\r\n switch (operator) {\r\n case 'Equals to':\r\n return 'EqualsTo';\r\n case 'Less than':\r\n return 'LessThan';\r\n case 'Greater than':\r\n return 'GreaterThan';\r\n case 'Begins with':\r\n return 'BeginsWith';\r\n case 'Regular expression':\r\n return 'RegularExpression';\r\n default:\r\n return operator;\r\n }\r\n }\r\n\r\n hasChanged() {\r\n const { data } = this;\r\n const model = this.ko_model;\r\n switch (data.IssueType) {\r\n case 1: // Issue type is Destination URL\r\n return model.operator() !== this.parseOperator(model.suggestedDestinationURLOperatorName) ||\r\n model.urlString() !== model.suggestedDestinationUrl;\r\n case 2: // Issue type is Event\r\n return model.category() !== model.suggestedCategoryName ||\r\n model.categoryOperator() !== this.parseOperator(model.suggestedCategoryOperatorName) ||\r\n model.action() !== model.suggestedActionName ||\r\n model.actionOperator() !== this.parseOperator(model.suggesteActionOperatorName) ||\r\n model.label() !== model.suggestedLabelName ||\r\n model.labelOperator() !== this.parseOperator(model.suggestedLabelOperatorName) ||\r\n Number(model.value()) !== model.suggestedValueName ||\r\n model.valueOperator() !== this.parseOperator(model.suggesteValueOperatorName);\r\n case 4: // Issue type is Revenue Value\r\n if (model.inputRevenueValue && Number(model.inputRevenueValue()) !== 1) {\r\n return true;\r\n }\r\n return false;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n data, i18n, newI18n,\r\n } = this;\r\n const goalOperatorTypes = GOAL_OPERATOR_TYPES_STRING_VALUES;\r\n const goalName = withContextualAttributeTemplate({\r\n opportunityId: data.OpportunityId,\r\n entityName: data.GoalName,\r\n entityId: data.GoalId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.GOAL,\r\n status: 'false',\r\n isExpandingView: true,\r\n ariaLabel: this.i18n.getString('Click to scope to goal {{goalName}}', { goalName: data.GoalName }),\r\n accountName: this.accountName,\r\n });\r\n const issueTypeId = data.IssueType;\r\n const baseParams = _.extend(this.ko_model, {\r\n i18n: this.i18n,\r\n readOnly: this.readOnly,\r\n title: newI18n.getString(_TL_('Change conversion goal setting for {{goalName}}, Issue Scope: {{issueType}}'), {\r\n goalName,\r\n issueType: ISSUE_TYPES[issueTypeId],\r\n }),\r\n estimation: _.isNumber(data.EstimatedIncreaseInConversionsInt) ?\r\n formatDecimal(data.EstimatedIncreaseInConversionsInt, i18n) : NOT_AVAILABLE_DEFAULT_STR,\r\n });\r\n\r\n if (data.GoalTypeId === 0 && data.DestUrl) { // Goal type is Destination URL\r\n const destUrlCurrentSetting = data.DestUrl.CurrentSetting;\r\n const destUrlSuggestedSetting = data.DestUrl.SuggestedSetting;\r\n\r\n const destUrlData = getDestUrlData(\r\n destUrlCurrentSetting,\r\n destUrlSuggestedSetting,\r\n goalOperatorTypes,\r\n i18n\r\n );\r\n\r\n if (destUrlData.currentDestinationUrl !== null &&\r\n destUrlData.suggestedDestinationURLOperatorName\r\n !== destUrlData.currentDestinationURLOperatorName) {\r\n destUrlData.currentDestinationURLOperatorName = this.contextualAttributeWrapper({\r\n opportunityId: data.OpportunityId,\r\n entityName: destUrlData.currentDestinationURLOperatorName,\r\n entityId: `${data.OpportunityId}_currentDestinationURLOperatorName`,\r\n });\r\n }\r\n\r\n if (destUrlData.currentDestinationUrl !== null &&\r\n destUrlData.suggestedDestinationUrl !== destUrlData.currentDestinationUrl) {\r\n destUrlData.currentDestinationUrl = this.contextualAttributeWrapper({\r\n opportunityId: data.OpportunityId,\r\n entityName: destUrlData.currentDestinationUrl,\r\n entityId: `${data.OpportunityId}_currentDestinationUrl`,\r\n });\r\n }\r\n\r\n const params = _.extend(baseParams, destUrlData);\r\n this.$el.html($(destUrlTemplate(params)));\r\n } else if (data.GoalTypeId === 3 && data.Event) { // Goal type is Event\r\n const eventCurrentSetting = data.Event.CurrentSetting;\r\n const eventSuggestedSetting = data.Event.SuggestedSetting;\r\n const eventData = getEventData(\r\n eventCurrentSetting,\r\n eventSuggestedSetting,\r\n goalOperatorTypes,\r\n i18n\r\n );\r\n\r\n if (eventData.currentCategoryName !== null &&\r\n eventData.suggestedCategoryName !== eventData.currentCategoryName) {\r\n eventData.currentCategoryName = this.contextualAttributeWrapper({\r\n opportunityId: data.OpportunityId,\r\n entityName: eventData.currentCategoryName,\r\n entityId: `${data.OpportunityId}_currentCategoryName`,\r\n });\r\n }\r\n\r\n if (eventData.currentCategoryName !== null &&\r\n eventData.suggestedCategoryOperatorName !== eventData.currentCategoryOperatorName) {\r\n eventData.currentCategoryOperatorName = this.contextualAttributeWrapper({\r\n opportunityId: data.OpportunityId,\r\n entityName: eventData.currentCategoryOperatorName,\r\n entityId: `${data.OpportunityId}_currentCategoryOperatorName`,\r\n });\r\n }\r\n\r\n if (eventData.currentActionName !== null &&\r\n eventData.suggestedActionName !== eventData.currentActionName) {\r\n eventData.currentActionName = this.contextualAttributeWrapper({\r\n opportunityId: data.OpportunityId,\r\n entityName: eventData.currentActionName,\r\n entityId: `${data.OpportunityId}_currentActionName`,\r\n });\r\n }\r\n\r\n if (eventData.currentActionName !== null &&\r\n eventData.suggesteActionOperatorName !== eventData.currentActionOperatorName) {\r\n eventData.currentActionOperatorName = this.contextualAttributeWrapper({\r\n opportunityId: data.OpportunityId,\r\n entityName: eventData.currentActionOperatorName,\r\n entityId: `${data.OpportunityId}_currentActionOperatorName`,\r\n });\r\n }\r\n\r\n if (eventData.currentLabelName !== null &&\r\n eventData.suggestedLabelName !== eventData.currentLabelName) {\r\n eventData.currentLabelName = this.contextualAttributeWrapper({\r\n opportunityId: data.OpportunityId,\r\n entityName: eventData.currentLabelName,\r\n entityId: `${data.OpportunityId}_currentLabelName`,\r\n });\r\n }\r\n\r\n if (eventData.currentLabelName !== null &&\r\n eventData.suggestedLabelOperatorName !== eventData.currentLabelOperatorName) {\r\n eventData.currentLabelOperatorName = this.contextualAttributeWrapper({\r\n opportunityId: data.OpportunityId,\r\n entityName: eventData.currentLabelOperatorName,\r\n entityId: `${data.OpportunityId}_currentLabelOperatorName`,\r\n });\r\n }\r\n\r\n if (eventData.currentValueName !== null &&\r\n eventData.suggestedValueName !== eventData.currentValueName) {\r\n eventData.currentValueName = this.contextualAttributeWrapper({\r\n opportunityId: data.OpportunityId,\r\n entityName: eventData.currentValueName,\r\n entityId: `${data.OpportunityId}_currentValueName`,\r\n });\r\n }\r\n\r\n if (eventData.currentValueName !== null &&\r\n eventData.suggesteValueOperatorName !== eventData.currentValueOperatorName) {\r\n eventData.currentValueOperatorName = this.contextualAttributeWrapper({\r\n opportunityId: data.OpportunityId,\r\n entityName: eventData.currentValueOperatorName,\r\n entityId: `${data.OpportunityId}_currentValueOperatorName`,\r\n });\r\n }\r\n\r\n const params = _.extend(baseParams, eventData);\r\n this.$el.html($(eventTemplate(params)));\r\n } else if (issueTypeId === 4 && data.RevenueValue) {\r\n const revenueValueData = {\r\n goalValueSourceId: data.RevenueValue.GoalValueSourceId,\r\n subtitleCurrent: newI18n.getString(_TL_('Current')),\r\n sameGoalText: newI18n.getString(_TL_('Each conversion action has the same value (Fix value: {{conversionValue}})'), { conversionValue: data.RevenueValue.ConversionValue }),\r\n variousGoalText: newI18n.getString(_TL_('Conversion action value may vary (but system can’t track the value)')),\r\n notAssignGoaText: newI18n.getString(_TL_('Don’t assign a value')),\r\n subtitleFixIssue: newI18n.getString(_TL_('Follow the instructions to fix the issue')),\r\n subtitleRevenue: newI18n.getString(_TL_('Revenue value:')),\r\n pitchingRevenue: [\r\n newI18n.getString(_TL_('Conversion action value may vary(for example, by purchase price)')),\r\n newI18n.getString(_TL_('If no value is assigned what should the default value be?')),\r\n ],\r\n suggestedVariousGoalText: [\r\n newI18n.getString(_TL_('You’ll need to')),\r\n newI18n.getString(_TL_('tracking code to report variable Revenue value')),\r\n ],\r\n UETLinkText: newI18n.getString(_TL_('customize your UET tag')),\r\n viewUET: () => this.viewUET(),\r\n };\r\n const params = _.extend(baseParams, revenueValueData);\r\n this.$el.html($(revenueValueTemplate(params)));\r\n }\r\n\r\n ko.applyBindings(this.ko_model, this.$el[0]);\r\n this.delegateEvents();\r\n\r\n return this;\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport { RECOMMENDATION_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\nimport { responsiveSearchModel } from './model/rsa-model';\r\nimport { improveResponsiveSearchModel } from './model/improve-rsa-model';\r\nimport { improveMultimediaModel } from './model/improve-mma-model';\r\nimport { multimediaModel, getImageFeatureMaskMap } from './model/mma-model';\r\n\r\nexport default class ViewModel {\r\n constructor({\r\n data,\r\n type,\r\n }) {\r\n switch (type) {\r\n case RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS:\r\n this.currentAdModel = ko.observable(responsiveSearchModel(data));\r\n break;\r\n case RECOMMENDATION_TYPES.MULTIMEDIA_ADS:\r\n this.imageFeatureMaskMap = getImageFeatureMaskMap(data);\r\n this.currentAdModel = ko.observable(multimediaModel(data));\r\n break;\r\n case RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS:\r\n this.currentAdModel = ko.observable(improveResponsiveSearchModel(data));\r\n break;\r\n case RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS:\r\n this.currentAdModel = ko.observable(improveMultimediaModel(data));\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\nexport const responsiveSearchModel = (data) => {\r\n const ad = data.SuggestedAd;\r\n const headlines = _.map(ad.Headlines, headline => ({\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset',\r\n AssetType: 'Text',\r\n Text: headline.Text,\r\n },\r\n PinnedField: headline.PinnedFieldTypeString,\r\n EditorialStatus: 'Approved',\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n IsAlgoGeneratedAsset: headline.IsAlgoGeneratedAsset,\r\n }));\r\n const descriptions = _.map(ad.Descriptions, description => ({\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset',\r\n AssetType: 'Text',\r\n Text: description.Text,\r\n },\r\n PinnedField: description.PinnedFieldTypeString,\r\n EditorialStatus: 'Approved',\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n IsAlgoGeneratedAsset: description.IsAlgoGeneratedAsset,\r\n }));\r\n return {\r\n FinalUrls: [\r\n ad.FinalUrl,\r\n ],\r\n MobileFinalUrls: [\r\n ad.MobileFinalUrl,\r\n ],\r\n Path1: ad.Path1,\r\n Path2: ad.Path2,\r\n Headlines: headlines,\r\n Descriptions: descriptions,\r\n TrackingUrlTemplate: '',\r\n NativePreference: 'None',\r\n FinalUrlSuffix: '',\r\n UrlCustomParameters: [],\r\n };\r\n};\r\n","import _ from 'underscore';\r\n\r\nexport const multimediaModel = (data) => {\r\n const headlines = _.map(data.Headlines, headline => ({\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset',\r\n AssetType: 'Text',\r\n Text: headline.Text,\r\n },\r\n PinnedField: headline.PinnedFieldTypeString,\r\n }));\r\n\r\n const longHeadlines = _.map(data.LongHeadlines, longHeadline => ({\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset',\r\n AssetType: 'Text',\r\n Text: longHeadline.Text,\r\n },\r\n PinnedField: longHeadline.PinnedFieldTypeString,\r\n }));\r\n\r\n const descriptions = _.map(data.Descriptions, description => ({\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset',\r\n AssetType: 'Text',\r\n Text: description.Text,\r\n },\r\n PinnedField: description.PinnedFieldTypeString,\r\n }));\r\n\r\n const images = [];\r\n _.each(data.Images, (image) => {\r\n _.each(image.AssociationMetadata, (metadata) => {\r\n images.push({\r\n Asset: {\r\n '@odata.type': '#Model.ImageAsset',\r\n SubType: metadata.SubType,\r\n Name: null,\r\n AssetType: 'Empty',\r\n Text: null,\r\n CropX: metadata.CropX,\r\n CropY: metadata.CropY,\r\n CropHeight: metadata.CropWidth,\r\n CropWidth: metadata.CropHeight,\r\n ImageUrl: image.ImageUrl,\r\n Id: image.ImageAssetIdString,\r\n ImageHeight: image.ImageHeight,\r\n ImageWidth: image.ImageWidth,\r\n IsRecommendedImage: true,\r\n DisableEdit: true,\r\n },\r\n PinnedField: image.PinnedFieldTypeString,\r\n });\r\n });\r\n });\r\n\r\n return {\r\n FinalUrls: [\r\n data.FinalUrl,\r\n ],\r\n MobileFinalUrls: [\r\n data.MobileFinalUrl,\r\n ],\r\n TrackingUrlTemplate: null,\r\n UrlCustomParameters: [],\r\n Type: 'Responsive',\r\n Id: data.OpportunityId,\r\n BusinessName: data.BusinessName,\r\n Headlines: headlines,\r\n LongHeadlines: longHeadlines,\r\n Descriptions: descriptions,\r\n Images: images,\r\n CallToAction: data.CallToAction,\r\n CallToActionLanguage: data.CallToActionLanguage,\r\n FinalUrlSuffix: data.FinalUrlSuffix,\r\n ImpressionTrackingUrls: [],\r\n LandscapeImageMediaId: null,\r\n SquareImageMediaId: null,\r\n LandscapeLogoMediaId: null,\r\n SquareLogoMediaId: null,\r\n };\r\n};\r\n\r\nexport const getImageFeatureMaskMap = (data) => {\r\n const map = new Map();\r\n _.each(data.Images, (image) => {\r\n const key = image.ImageAssetIdString || image.ImageUrl;\r\n if (!_.isUndefined(key) && image.FeatureMask !== '') {\r\n map.set(key, image.FeatureMask);\r\n }\r\n });\r\n return map;\r\n};\r\n","import _ from 'underscore';\r\n\r\nexport const improveResponsiveSearchModel = (data) => {\r\n const ad = data.SuggestedAssets;\r\n const headlines = _.map(ad.Headlines, headline => ({\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset',\r\n AssetType: 'Text',\r\n Text: headline.Text,\r\n },\r\n PinnedField: headline.PinnedFieldTypeString,\r\n EditorialStatus: 'Approved',\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n IsAlgoGeneratedAsset: headline.Source !== 'AdvExt_Headline',\r\n }));\r\n const descriptions = _.map(ad.Descriptions, description => ({\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset',\r\n AssetType: 'Text',\r\n Text: description.Text,\r\n },\r\n PinnedField: description.PinnedFieldTypeString,\r\n EditorialStatus: 'Approved',\r\n AssociationType: 'None',\r\n UiDisplayStatus: 'Inactive',\r\n IsAlgoGeneratedAsset: description.Source !== 'AdvExt_Description',\r\n }));\r\n return {\r\n FinalUrls: [\r\n ad.FinalUrl,\r\n ],\r\n MobileFinalUrls: [\r\n ad.MobileFinalUrl,\r\n ],\r\n Path1: ad.Path1,\r\n Path2: ad.Path2,\r\n Headlines: headlines,\r\n Descriptions: descriptions,\r\n TrackingUrlTemplate: '',\r\n NativePreference: 'None',\r\n FinalUrlSuffix: '',\r\n UrlCustomParameters: [],\r\n };\r\n};\r\n","import _ from 'underscore';\r\n\r\nexport const improveMultimediaModel = (data) => {\r\n const headlines = _.map(data.Headlines, headline => ({\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset',\r\n AssetType: 'Text',\r\n Text: headline.Text,\r\n },\r\n PinnedField: headline.PinnedFieldTypeString,\r\n IsAlgoGeneratedAsset: _.isNull(headline.AssetId),\r\n }));\r\n\r\n const longHeadlines = _.map(data.LongHeadlines, longHeadline => ({\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset',\r\n AssetType: 'Text',\r\n Text: longHeadline.Text,\r\n },\r\n PinnedField: longHeadline.PinnedFieldTypeString,\r\n IsAlgoGeneratedAsset: _.isNull(longHeadline.AssetId),\r\n }));\r\n\r\n const descriptions = _.map(data.Descriptions, description => ({\r\n Asset: {\r\n '@odata.type': '#Model.TextAsset',\r\n AssetType: 'Text',\r\n Text: description.Text,\r\n },\r\n PinnedField: description.PinnedFieldTypeString,\r\n IsAlgoGeneratedAsset: _.isNull(description.AssetId),\r\n }));\r\n\r\n const images = [];\r\n _.each(data.Images, (image) => {\r\n _.each(image.AssociationMetadata, (metadata) => {\r\n images.push({\r\n Asset: {\r\n '@odata.type': '#Model.ImageAsset',\r\n SubType: metadata.SubType,\r\n Name: null,\r\n AssetType: 'Empty',\r\n Text: null,\r\n CropX: metadata.CropX,\r\n CropY: metadata.CropY,\r\n CropHeight: metadata.CropHeight,\r\n CropWidth: metadata.CropWidth,\r\n ImageUrl: image.ImageURL,\r\n Id: image.AssetIdString,\r\n ImageHeight: image.ImageHeight,\r\n ImageWidth: image.ImageWidth,\r\n IsRecommendedImage: _.isNull(image.AssetIdString),\r\n DisableEdit: false,\r\n },\r\n PinnedField: image.PinnedFieldTypeString,\r\n });\r\n });\r\n });\r\n\r\n return {\r\n FinalUrls: [\r\n data.FinalUrl || 'http://www.bing.com',\r\n ],\r\n MobileFinalUrls: [\r\n data.MobileFinalUrl || 'http://mobile.bing.com',\r\n ],\r\n TrackingUrlTemplate: null,\r\n UrlCustomParameters: [],\r\n Type: 'Responsive',\r\n Id: data.OpportunityId,\r\n BusinessName: data.BusinessName || 'Default',\r\n Headlines: headlines,\r\n LongHeadlines: longHeadlines,\r\n Descriptions: descriptions,\r\n Images: images,\r\n CallToActionLanguage: data.CallToActionLanguage || 'English',\r\n FinalUrlSuffix: data.FinalUrlSuffix || '',\r\n ImpressionTrackingUrls: [],\r\n LandscapeImageMediaId: null,\r\n SquareImageMediaId: null,\r\n LandscapeLogoMediaId: null,\r\n SquareLogoMediaId: null,\r\n TargetAccountId: data.Target.AccountId,\r\n };\r\n};\r\n","import _ from 'underscore';\r\n\r\nimport {\r\n RECOMMENDATION_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport const adTypeMapping = {\r\n [RECOMMENDATION_TYPES.DYNAMIC_SEARCH_ADS]: 'DynamicSearch',\r\n [RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS]: 'ResponsiveSearch',\r\n [RECOMMENDATION_TYPES.MULTIMEDIA_ADS]: 'Responsive',\r\n [RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS]: 'ResponsiveSearch',\r\n [RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS]: 'Responsive',\r\n};\r\n\r\nconst responsiveSearchFields = [\r\n 'FinalUrls',\r\n 'MobileFinalUrls',\r\n 'Path1',\r\n 'Path2',\r\n 'Headlines',\r\n 'Descriptions',\r\n 'TrackingUrlTemplate',\r\n 'NativePreference',\r\n 'FinalUrlSuffix',\r\n 'UrlCustomParameters',\r\n];\r\n\r\nconst multimediaFields = [\r\n 'BusinessName',\r\n 'FinalUrls',\r\n 'MobileFinalUrls',\r\n 'Headlines',\r\n 'LongHeadlines',\r\n 'Descriptions',\r\n 'TrackingUrlTemplate',\r\n 'NativePreference',\r\n 'FinalUrlSuffix',\r\n 'UrlCustomParameters',\r\n 'CallToAction',\r\n 'CallToActionLanguage',\r\n 'Images',\r\n];\r\n\r\nconst improveResponsiveSearchFields = [\r\n 'Headlines',\r\n 'Descriptions',\r\n];\r\n\r\nconst improveMultimediaFields = [\r\n 'Headlines',\r\n 'LongHeadlines',\r\n 'Descriptions',\r\n 'Images',\r\n];\r\n\r\nexport const adTypeFieldsMapping = {\r\n [RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS]: responsiveSearchFields,\r\n [RECOMMENDATION_TYPES.MULTIMEDIA_ADS]: multimediaFields,\r\n [RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS]: improveResponsiveSearchFields,\r\n [RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS]: improveMultimediaFields,\r\n};\r\n\r\nexport const descriptionHeaderMapping = {\r\n [RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS]:\r\n 'Recommendation_Inline_View_Responsive_Search_Ads_Description_Header',\r\n [RECOMMENDATION_TYPES.MULTIMEDIA_ADS]:\r\n 'Recommendation_Inline_View_Multimedia_Ads_Description_Header',\r\n [RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS]:\r\n 'Recommendation_Inline_View_Improve_Responsive_Search_Ads_Description_Header',\r\n [RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS]:\r\n 'Recommendation_Inline_View_Improve_Multimedia_Ads_Description_Header',\r\n};\r\n\r\n// Transform data for AdInsight MT apply with user input format\r\nexport const transformResponsiveSearchAd = (model) => {\r\n const applyModel = _.clone(model);\r\n applyModel.Headlines = _.map(applyModel.Headlines, headline => ({\r\n PinnedFieldTypeString: headline.PinnedField,\r\n Text: headline.Asset.Text,\r\n }));\r\n applyModel.Descriptions = _.map(applyModel.Descriptions, description => ({\r\n PinnedFieldTypeString: description.PinnedField,\r\n Text: description.Asset.Text,\r\n }));\r\n return applyModel;\r\n};\r\n\r\nexport const transformImproveResponsiveSearchAd = (model) => {\r\n const applyModel = _.clone(model);\r\n applyModel.Headlines = _.map(applyModel.Headlines, headline => ({\r\n Text: headline.Asset.Text,\r\n Source: headline.IsAIGeneratedAsset ? 'AlgoGenerated_Headline' : undefined,\r\n }));\r\n applyModel.Descriptions = _.map(applyModel.Descriptions, description => ({\r\n Text: description.Asset.Text,\r\n Source: description.IsAIGeneratedAsset ? 'AlgoGenerated_Description' : undefined,\r\n }));\r\n return applyModel;\r\n};\r\n\r\nconst isImageAssetId = (str) => {\r\n if (typeof str === 'number') return true;\r\n return typeof str === 'string' && !_.isNaN(Number(str));\r\n};\r\n\r\nconst getAssociationMetadata = (image, isRecommendedImage) => {\r\n if (isRecommendedImage) {\r\n return {\r\n SubType: image.subType,\r\n CropX: null,\r\n CropY: null,\r\n CropWidth: null,\r\n CropHeight: null,\r\n };\r\n }\r\n return {\r\n SubType: image.subType,\r\n CropX: image.cropX,\r\n CropY: image.cropY,\r\n CropWidth: image.cropWidth,\r\n CropHeight: image.cropHeight,\r\n };\r\n};\r\n\r\n// Transform data for AdInsight MT apply with user input format\r\nexport const transformMultimediaAd = (\r\n model,\r\n recommendedImageAssetIdStrings,\r\n imageFeatureMaskMap\r\n) => {\r\n const applyModel = _.omit(\r\n model,\r\n 'Headlines',\r\n 'LongHeadlines',\r\n 'Descriptions',\r\n 'Images',\r\n 'TrackingUrlTemplate',\r\n 'FinalUrlSuffix',\r\n 'UrlCustomParameters'\r\n );\r\n\r\n // Short headline, long headline and ad text\r\n applyModel.ShortHeadlines = _.map(JSON.parse(model.Headlines), headline => ({\r\n Text: headline.Text,\r\n }));\r\n applyModel.LongHeadlines = _.map(JSON.parse(model.LongHeadlines), longHeadline => ({\r\n Text: longHeadline.Text,\r\n }));\r\n applyModel.AdTexts = _.map(JSON.parse(model.Descriptions), description => ({\r\n Text: description.Text,\r\n }));\r\n\r\n // Aggregate images to 2 layers like the original data structure from response payload\r\n if (!_.isUndefined(model.Images) && _.isString(model.Images)) {\r\n const imagesMap = {};\r\n _.each(JSON.parse(model.Images), (image) => {\r\n const key = image.idString || image.url;\r\n const isRecommendedImage = _.contains(recommendedImageAssetIdStrings, image.idString)\r\n || !isImageAssetId(image.idString);\r\n if (key in imagesMap) {\r\n const existingImage = imagesMap[key];\r\n existingImage.AssociationMetadata.push(getAssociationMetadata(image, isRecommendedImage));\r\n } else {\r\n imagesMap[key] = {\r\n ImageAssetIdString: isImageAssetId(image.idString) ? image.idString : undefined,\r\n ImageUrl: isImageAssetId(image.idString) ? undefined : image.idString,\r\n AssociationMetadata: [getAssociationMetadata(image, isRecommendedImage)],\r\n FeatureMask: isRecommendedImage && !_.isUndefined(imageFeatureMaskMap) ?\r\n imageFeatureMaskMap.get(key) : undefined,\r\n };\r\n }\r\n });\r\n const images = [];\r\n _.each(imagesMap, image => images.push(image));\r\n applyModel.Images = images;\r\n }\r\n\r\n // TrackingUrlTemplate, FinalUrlSuffix and UrlCustomParameters\r\n applyModel.TrackingUrlTemplate = model.TrackingUrlTemplate !== 'delete_value' ?\r\n model.TrackingUrlTemplate : undefined;\r\n applyModel.FinalUrlSuffix = model.FinalUrlSuffix !== 'delete_value' ?\r\n model.FinalUrlSuffix : undefined;\r\n applyModel.UrlCustomParameters = model.UrlCustomParameters !== 'delete_value' ?\r\n model.UrlCustomParameters : undefined;\r\n\r\n return applyModel;\r\n};\r\n\r\nexport const transformImproveMultimediaAd = (model) => {\r\n const applyModel = {};\r\n\r\n // Short headline, long headline and ad text\r\n applyModel.Headlines = _.map(JSON.parse(model.Headlines), headline => ({\r\n Text: headline.Text,\r\n }));\r\n applyModel.LongHeadlines = _.map(JSON.parse(model.LongHeadlines), longHeadline => ({\r\n Text: longHeadline.Text,\r\n }));\r\n applyModel.Descriptions = _.map(JSON.parse(model.Descriptions), description => ({\r\n Text: description.Text,\r\n }));\r\n\r\n // Aggregate images to 2 layers like the original data structure from response payload\r\n if (!_.isUndefined(model.Images) && _.isString(model.Images)) {\r\n const imagesMap = {};\r\n _.each(JSON.parse(model.Images), (image) => {\r\n const key = image.idString || image.url;\r\n if (key in imagesMap) {\r\n const existingImage = imagesMap[key];\r\n existingImage.AssociationMetadata.push({\r\n SubType: image.subType,\r\n CropX: image.cropX,\r\n CropY: image.cropY,\r\n CropWidth: image.cropWidth,\r\n CropHeight: image.cropHeight,\r\n });\r\n } else {\r\n imagesMap[key] = {\r\n AssetIdString: isImageAssetId(image.idString) ? image.idString : undefined,\r\n ImageURL: isImageAssetId(image.idString) ? undefined : image.idString,\r\n AssociationMetadata: [{\r\n SubType: image.subType,\r\n CropX: image.cropX,\r\n CropY: image.cropY,\r\n CropWidth: image.cropWidth,\r\n CropHeight: image.cropHeight,\r\n }],\r\n };\r\n }\r\n });\r\n const images = [];\r\n _.each(imagesMap, image => images.push(image));\r\n applyModel.Images = images;\r\n }\r\n\r\n return applyModel;\r\n};\r\n","/* eslint-disable no-param-reassign */\r\nimport Backbone from 'backbone';\r\nimport _ from 'underscore';\r\n\r\nimport {\r\n RECOMMENDATION_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport Editor from '@bingads-webui-campaign-legacy/crud-ad/view/adEditor';\r\nimport template from './ads-editor-container.pug';\r\nimport { transformMultimediaAd, adTypeFieldsMapping } from './const';\r\n\r\nexport default class AdsEditorContainer extends Backbone.View {\r\n initialize({\r\n deps,\r\n i18n,\r\n newI18n,\r\n model,\r\n accountId,\r\n campaignId,\r\n adGroupId,\r\n inlineSuggestionsEnabled,\r\n showLightbulb,\r\n type,\r\n }) {\r\n this.deps = deps;\r\n this.i18n = i18n;\r\n\r\n let options = {\r\n model,\r\n accountId,\r\n campaignId,\r\n adGroupId,\r\n isSaveToServer: false,\r\n showInline: true,\r\n isForVNext: true,\r\n inlineSuggestionsEnabled,\r\n showLightbulb,\r\n newI18n,\r\n isRecommendation: true,\r\n isImproveRSA: type === RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS,\r\n isImproveMMA: type === RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS,\r\n };\r\n\r\n if (type === RECOMMENDATION_TYPES.MULTIMEDIA_ADS) {\r\n options = _.extend({}, options, { campaignType: 'Default' });\r\n } else if (type === RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS) {\r\n options = _.extend({}, options, { campaignType: 'Audience' });\r\n }\r\n\r\n const AdsEditor = Editor;\r\n this.adEditor = new AdsEditor(options);\r\n }\r\n\r\n hasChanged(schema) {\r\n const type = this.adEditor.viewModel.Type();\r\n const params = type !== 'Responsive' ?\r\n this.adEditor.adTypeViews[type].toObject() :\r\n this.adEditor.adTypeViews[type].audienceAd.crudReactComponent.current.getData();\r\n let current = _.pick(params, schema);\r\n let original = _.pick(this.adEditor.model, schema);\r\n if (type === 'ResponsiveSearch') { // RSA\r\n const pickField = ['Asset', 'PinnedField'];\r\n\r\n current.Headlines = _.map(current.Headlines, (headline) => {\r\n headline.Asset = _.omit(headline.Asset, 'Name');\r\n return headline;\r\n });\r\n current.Descriptions = _.map(current.Descriptions, (description) => {\r\n description.Asset = _.omit(description.Asset, 'Name');\r\n return description;\r\n });\r\n original = _.omit(original, 'NativePreference');\r\n original.Headlines = _.map(original.Headlines, headline => _.pick(headline, pickField));\r\n original.Descriptions = _.map(original.Descriptions, desc => _.pick(desc, pickField));\r\n } else if (type === 'Responsive') { // MMA\r\n const currentImageList =\r\n this.adEditor.adTypeViews[type].audienceAd\r\n .crudReactComponent.current.getFlattenedImageAssetList();\r\n const originalImageList = original.Images;\r\n if (this.hasImageChanged(currentImageList, originalImageList)) {\r\n return true;\r\n }\r\n\r\n current = _.omit(current, 'Images');\r\n original = _.omit(original, 'Images');\r\n current = transformMultimediaAd(_.pick(\r\n current,\r\n adTypeFieldsMapping[RECOMMENDATION_TYPES.MULTIMEDIA_ADS]\r\n ));\r\n\r\n const pickField = ['Text'];\r\n original.ShortHeadlines = _.map(\r\n original.Headlines,\r\n headline => _.pick(headline.Asset, pickField)\r\n );\r\n original.LongHeadlines = _.map(\r\n original.LongHeadlines,\r\n longHeadline => _.pick(longHeadline.Asset, pickField)\r\n );\r\n original.AdTexts = _.map(\r\n original.Descriptions,\r\n description => _.pick(description.Asset, pickField)\r\n );\r\n original = _.omit(original, 'Headlines', 'Descriptions');\r\n }\r\n\r\n current = _.pick(current, _.negate(_.isEmpty));\r\n original = _.pick(original, _.negate(_.isEmpty));\r\n // remove the property MobileFinalUrls if its first element is empty\r\n if (current.MobileFinalUrls && current.MobileFinalUrls[0] === '') {\r\n current = _.omit(current, 'MobileFinalUrls');\r\n }\r\n if (original.MobileFinalUrls && original.MobileFinalUrls[0] === '') {\r\n original = _.omit(original, 'MobileFinalUrls');\r\n }\r\n\r\n return !_.isEqual(_.omit(current, 'Id'), _.omit(original, 'Id'));\r\n }\r\n\r\n render() {\r\n this.$el.empty().append(template({ i18n: this.i18n }));\r\n this.$('.adEditor-container').prepend(this.adEditor.render().el);\r\n return this;\r\n }\r\n\r\n get template() { return template; }\r\n\r\n hasImageChanged(currentImageList, originalImageList) {\r\n if (currentImageList.length !== originalImageList.length) {\r\n return true;\r\n }\r\n // eslint-disable-next-line consistent-return\r\n _.each(currentImageList, (image, index) => {\r\n if (image.id !== originalImageList[index].Asset.Id\r\n || image.associationType !== originalImageList[index].Asset.SubType\r\n || image.src !== originalImageList[index].Asset.ImageUrl) {\r\n return true;\r\n }\r\n });\r\n return false;\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport $ from 'jquery';\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport {\r\n withContextualAttributeTemplate,\r\n showContextualAttribute,\r\n hideContextualAttribute,\r\n prependAccountAttribute,\r\n} from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\nimport {\r\n APPLY_USERINPUT_TYPES,\r\n CONTEXTUAL_ENTITY_TYPE,\r\n RECOMMENDATION_TYPES,\r\n CAMPAIGN_ODATA_ERROR_BASELINE,\r\n formatCampaignBulkApiError,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport template from './new-ads-preview.pug';\r\nimport ViewModel from './new-ads-preview-model';\r\nimport AdsEditorContainer from './ads-editor-container';\r\nimport {\r\n adTypeMapping,\r\n adTypeFieldsMapping,\r\n descriptionHeaderMapping,\r\n transformResponsiveSearchAd,\r\n transformMultimediaAd,\r\n transformImproveResponsiveSearchAd,\r\n transformImproveMultimediaAd\r\n} from './const';\r\n\r\nexport default class NewAdsInlineView extends Backbone.View {\r\n initialize({\r\n deps = {\r\n adDisplayUrlService: null,\r\n combineText: null,\r\n permissions: {\r\n IsRecommendationRepairSuggestedAdsEnabled: true,\r\n IsRecommendationRSAMMAPnaelEditEnabled: true,\r\n },\r\n },\r\n data = {},\r\n i18n,\r\n newI18n,\r\n router,\r\n type,\r\n isMCC,\r\n gridView,\r\n readOnly,\r\n gridService,\r\n applyAction = null,\r\n }) {\r\n this.deps = deps;\r\n this.data = _.first(data.Opportunities);\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n this.router = router;\r\n this.isMCC = isMCC;\r\n this.grid = { gridView };\r\n this.ko_model = new ViewModel({ data: this.data, type });\r\n this.adsEditorContainerView = {};\r\n this.gridService = gridService;\r\n this.isPanelEdit = this.deps.permissions.IsRecommendationRSAMMAPnaelEditEnabled\r\n || type === RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS\r\n || type === RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS;\r\n this.applyAction = applyAction;\r\n this.type = type;\r\n this.readOnly = readOnly;\r\n this.adType = adTypeMapping[type];\r\n this.adEditorFields = adTypeFieldsMapping[type];\r\n this.descriptionHeader = descriptionHeaderMapping[type];\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .btn-hero.apply': 'apply',\r\n 'click .btn-cancel': 'closeInlineView',\r\n 'click .error-message .close': 'dismissMessage',\r\n 'mouseover .recommendation-new-ads-inline-view .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .recommendation-new-ads-inline-view .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'click .recommendation-new-ads-inline-view .contextual-tooltip': 'scopeRouting',\r\n };\r\n }\r\n\r\n scopeRouting(e) {\r\n if (this.isPanelEdit) {\r\n this.trigger('cancel');\r\n }\r\n this.router(e, this.data);\r\n }\r\n\r\n hideContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n hideContextualAttribute({ e, self: this });\r\n }\r\n\r\n showContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n this.timerForPopupContextualAttribute = setTimeout(() => {\r\n showContextualAttribute({\r\n deps: this.deps,\r\n i18n: this.i18n,\r\n e,\r\n type: this.data.OpportunityType,\r\n isExpanding: !this.isPanelEdit,\r\n self: this,\r\n recommendationService: this.gridService.recommendationService,\r\n });\r\n }, 500);\r\n }\r\n\r\n render() {\r\n const params = _.extend(this.ko_model, {\r\n i18n: this.i18n,\r\n getEntity: this.getEntity,\r\n descriptionHeader: this.descriptionHeader,\r\n readOnly: this.readOnly,\r\n isPanelEdit: this.isPanelEdit,\r\n });\r\n\r\n this.$el.html($(template(params)));\r\n ko.applyBindings(this.ko_model, this.$el[0]);\r\n this.delegateEvents();\r\n\r\n this.$('.simple-view-edit-mode').addClass('no-new-ads');\r\n\r\n this.adsEditor(this.ko_model.currentAdModel());\r\n\r\n return this;\r\n }\r\n\r\n dealWithInlineError(errors) {\r\n if (_.isUndefined(errors) || errors.length === 0) {\r\n return;\r\n }\r\n if (this.type === RECOMMENDATION_TYPES.MULTIMEDIA_ADS\r\n || this.type === RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS) {\r\n const { adTypeViews } = this.adsEditorContainerView.adEditor;\r\n const crudAudienceAdReact = adTypeViews.Responsive.audienceAd.crudReactComponent.current;\r\n crudAudienceAdReact.setResponseErrors(formatCampaignBulkApiError(\r\n errors,\r\n CAMPAIGN_ODATA_ERROR_BASELINE\r\n ));\r\n }\r\n }\r\n\r\n hasInlineError(errors) {\r\n return errors.length === 1 && errors[0].ErrorCode >= CAMPAIGN_ODATA_ERROR_BASELINE;\r\n }\r\n\r\n hasChanged() {\r\n return this.adsEditorContainerView &&\r\n this.adsEditorContainerView.hasChanged &&\r\n this.adsEditorContainerView.hasChanged(this.adEditorFields);\r\n }\r\n\r\n apply() {\r\n const { type } = this;\r\n const { adTypeViews } = this.adsEditorContainerView.adEditor;\r\n let context = {};\r\n let updatedAdView;\r\n let updatedAd;\r\n switch (type) {\r\n case RECOMMENDATION_TYPES.DYNAMIC_SEARCH_ADS:\r\n updatedAdView = adTypeViews.DynamicSearch;\r\n // [TODO] Need to determine the Ad structure of Dynamic search ads\r\n break;\r\n case RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS: {\r\n updatedAdView = adTypeViews.ResponsiveSearch;\r\n const returnIds =\r\n updatedAdView.adStrengthContainer.options.viewModel.returnSuggestionIds;\r\n const viewIds =\r\n updatedAdView.adStrengthContainer.options.viewModel.viewSuggestionIds;\r\n const applyIds =\r\n updatedAdView.adStrengthContainer.options.viewModel.applySuggestionIds;\r\n const clickIdeas =\r\n updatedAdView.adStrengthContainer.options.viewModel.clickViewIdeas;\r\n // When returnSuggestionIds is not empty, it means users has received asset suggestions.\r\n // When viewSuggestionIds is empty, it means users don't visit any RSA asset suggestions.\r\n // When applySuggestionIds is empty, it means users don't adopt any asset suggestion.\r\n if (!_.isEmpty(returnIds)) {\r\n context = {\r\n AcceptInfo: {\r\n ReturnSuggestionIds: returnIds,\r\n ViewSuggestionIds: viewIds || [],\r\n ApplySuggestionIds: applyIds || [],\r\n ClickViewIdeas: clickIdeas || [],\r\n },\r\n };\r\n }\r\n updatedAd = {\r\n NewAd: transformResponsiveSearchAd(_.pick(\r\n updatedAdView.toObject(),\r\n this.adEditorFields\r\n )),\r\n };\r\n break;\r\n }\r\n case RECOMMENDATION_TYPES.MULTIMEDIA_ADS: {\r\n updatedAdView = adTypeViews.Responsive;\r\n const crudAudienceAdReact = updatedAdView.audienceAd.crudReactComponent.current;\r\n const initialParams = crudAudienceAdReact.getData();\r\n\r\n // Input data in image extension editor is not valid\r\n if (!crudAudienceAdReact.isDataValid(initialParams)) {\r\n return;\r\n }\r\n\r\n // The option \"Allow Microsoft to use images from ...\" is showed and it's not checked.\r\n const adExtensionViewModel = crudAudienceAdReact.adEditRef.current.view.viewModel;\r\n if (adExtensionViewModel.showWebsiteImageOptIn()\r\n && adExtensionViewModel.hasWebsiteImageOptIn() !== true) {\r\n return;\r\n }\r\n\r\n crudAudienceAdReact.getProcessedDataAsync(initialParams)\r\n .then((result) => {\r\n const params = result.mtModel;\r\n const recommendedImageAssetIdStrings =\r\n _.unique(_.map(this.data.Images, image => (image.ImageAssetIdString)));\r\n updatedAd = {\r\n NewAd: transformMultimediaAd(_.pick(\r\n params,\r\n this.adEditorFields\r\n ), recommendedImageAssetIdStrings, this.ko_model.imageFeatureMaskMap),\r\n };\r\n this.applyRecommendation(updatedAd, context);\r\n });\r\n break;\r\n }\r\n case RECOMMENDATION_TYPES.IMPROVE_RESPONSIVE_SEARCH_ADS: {\r\n updatedAdView = adTypeViews.ResponsiveSearch;\r\n updatedAd = {\r\n SuggestedAssets: transformImproveResponsiveSearchAd(_.pick(\r\n updatedAdView.toObject(),\r\n this.adEditorFields\r\n )),\r\n };\r\n break;\r\n }\r\n case RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS: {\r\n updatedAdView = adTypeViews.Responsive;\r\n const crudAudienceAdReact = updatedAdView.audienceAd.crudReactComponent.current;\r\n const initialParams = crudAudienceAdReact.getData();\r\n\r\n // Input data in image extension editor is not valid\r\n if (!crudAudienceAdReact.isDataValid(initialParams)) {\r\n return;\r\n }\r\n\r\n // The option \"Allow Microsoft to use images from ...\" is showed and it's not checked.\r\n const adExtensionViewModel = crudAudienceAdReact.adEditRef.current.view.viewModel;\r\n if (adExtensionViewModel.showWebsiteImageOptIn()\r\n && adExtensionViewModel.hasWebsiteImageOptIn() !== true) {\r\n return;\r\n }\r\n\r\n crudAudienceAdReact.getProcessedDataAsync(initialParams)\r\n .then((result) => {\r\n const params = result.mtModel;\r\n updatedAd = {\r\n SuggestedAssets: transformImproveMultimediaAd(_.pick(\r\n params,\r\n this.adEditorFields\r\n )),\r\n };\r\n this.applyRecommendation(updatedAd, context);\r\n });\r\n break;\r\n }\r\n default:\r\n throw new Error(`Not Implemented: ${type}`);\r\n }\r\n\r\n if (type !== RECOMMENDATION_TYPES.MULTIMEDIA_ADS\r\n && type !== RECOMMENDATION_TYPES.IMPROVE_MULTIMEDIA_ADS) {\r\n if (!updatedAdView.validate()) {\r\n return;\r\n }\r\n this.applyRecommendation(updatedAd, context);\r\n }\r\n }\r\n\r\n getEntity = () => {\r\n const entity = this.data.Target.AdGroupName ?\r\n `${withContextualAttributeTemplate({\r\n opportunityId: this.data.OpportunityId,\r\n entityName: this.data.Target.CampaignName,\r\n entityId: this.data.Target.CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n status: 'false',\r\n isExpandingView: true,\r\n ariaLabel: this.i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: this.data.Target.CampaignName }),\r\n })} > ${withContextualAttributeTemplate({\r\n opportunityId: this.data.OpportunityId,\r\n entityName: this.data.Target.AdGroupName,\r\n entityId: this.data.Target.AdGroupId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.ADGROUP,\r\n entityCampaignId: this.data.Target.CampaignId,\r\n status: 'false',\r\n isExpandingView: true,\r\n ariaLabel: this.i18n.getString('Click to scope to ad group {{adGroupName}}', { adGroupName: this.data.Target.AdGroupName }),\r\n })}` :\r\n withContextualAttributeTemplate({\r\n opportunityId: this.data.OpportunityId,\r\n entityName: this.data.Target.CampaignName,\r\n entityId: this.data.Target.CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n status: 'false',\r\n isExpandingView: true,\r\n ariaLabel: this.i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: this.data.Target.CampaignName }),\r\n });\r\n return {\r\n entity_name: this.isMCC ? prependAccountAttribute({\r\n opportunityId: this.data.OpportunityId,\r\n accountId: this.data.Target.AccountId,\r\n accountName: this.data.Target.AccountName,\r\n originEntity: entity,\r\n }) : entity,\r\n };\r\n };\r\n\r\n closeInlineView(e) {\r\n const container = $('body');\r\n // Hide AdStrengthSuggestionPicker\r\n const adStrengthSuggestionPicker = container.find('.ad-strength-suggestion-container');\r\n if (!_.isEmpty(adStrengthSuggestionPicker) && adStrengthSuggestionPicker.length === 1) {\r\n ReactDOM.unmountComponentAtNode(_.first(adStrengthSuggestionPicker));\r\n }\r\n\r\n // Hide AdCustomizerPicker\r\n const adCustomizerPicker = container.find('.ad-customizer-container');\r\n if (!_.isEmpty(adCustomizerPicker) && adCustomizerPicker.length === 1) {\r\n ReactDOM.unmountComponentAtNode(_.first(adCustomizerPicker));\r\n }\r\n e.stopImmediatePropagation();\r\n this.remove();\r\n this.trigger('cancel');\r\n }\r\n\r\n adsEditor(data) {\r\n const {\r\n adType, deps, i18n, type, newI18n,\r\n } = this;\r\n\r\n const inlineSuggestionsEnabled =\r\n type === RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS;\r\n\r\n const showLightbulb = deps.permissions.IsRSAAdoptionV2Enabled;\r\n\r\n const adEditorModel = data;\r\n\r\n ko.cleanNode(this.$('.new-ad-editor-container')[0]);\r\n\r\n if (this.adsEditorContainerView && this.adsEditorContainerView.off) {\r\n this.adsEditorContainerView.off('updated');\r\n }\r\n\r\n this.adsEditorContainerView = new AdsEditorContainer({\r\n deps,\r\n i18n,\r\n newI18n,\r\n model: _.extend(adEditorModel, { Type: adType }),\r\n accountId: this.data.Target.AccountId,\r\n campaignId: this.data.Target.CampaignId,\r\n adGroupId: this.data.Target.AdGroupId,\r\n inlineSuggestionsEnabled,\r\n showLightbulb,\r\n type: this.type,\r\n });\r\n\r\n this.$('.new-ad-editor-container').html(this.adsEditorContainerView.render().el);\r\n }\r\n\r\n applyRecommendation(updatedAd, context) {\r\n const basicInput = {\r\n '@odata.type': APPLY_USERINPUT_TYPES[this.data.OpportunityType],\r\n OpportunityId: this.data.OpportunityId,\r\n };\r\n if (this.isPanelEdit) {\r\n this.applyAction([this.data], [_.extend(basicInput, updatedAd)], context);\r\n } else {\r\n this.trigger(\r\n 'apply',\r\n {\r\n opportunities: [this.data],\r\n userInputs: [_.extend(basicInput, updatedAd)],\r\n context,\r\n }\r\n );\r\n\r\n // scroll to top to see feedbacks\r\n $('html, body').scrollTop(0);\r\n }\r\n }\r\n}\r\n","export const SELECT_TYPE = {\r\n SuggestBudget: 'Suggest',\r\n ManualBudget: 'Manual',\r\n};\r\n\r\nexport const COMMENT_TYPES = {\r\n SUGGESTED: 'Suggested',\r\n CURRENT: 'Current',\r\n MAXVALUE: 'MaxValue',\r\n};\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport { formatCost, formatDecimal, NOT_AVAILABLE_DEFAULT_STR } from '@bingads-webui-campaign/recommendation-core';\r\nimport { SELECT_TYPE, COMMENT_TYPES } from '../const';\r\n\r\nfunction interpolation(y1, y2, x1, x2, x) {\r\n if (x1 !== x2) {\r\n return (((y1 - y2) / (x1 - x2)) * (x - x2)) + y2;\r\n }\r\n return y2;\r\n}\r\n\r\nexport default class ViewModel {\r\n constructor({\r\n i18n,\r\n view,\r\n data,\r\n fromCampaign,\r\n toCampaign,\r\n type,\r\n deps,\r\n readOnly,\r\n }) {\r\n this.view = view;\r\n this.i18n = i18n;\r\n this.data = data;\r\n this.deps = deps;\r\n this.readOnly = readOnly;\r\n this.opportunityType = type;\r\n\r\n const suggestBudget = Math.round(toCampaign.BudgetDeficit * 100) / 100;\r\n const surplusBudget = Math.round(fromCampaign.BudgetSurplus * 100) / 100;\r\n const minBudget = deps.appConfig.get('BudgetRange').DailyRange.FloorValue;\r\n const maxBudget = deps.appConfig.get('BudgetRange').DailyRange.CeilingValue;\r\n const maxInputBudget = Math.round(Math.min(\r\n maxBudget - toCampaign.CurrentBudget,\r\n fromCampaign.CurrentBudget - minBudget\r\n ) * 100) / 100;\r\n const fromCampaignCurrent = i18n.getString(\r\n 'Recommendation_ReallocateBudgetInline_CurrentBudget_Title',\r\n { budget: formatCost(fromCampaign.CurrentBudget, i18n, i18n.currency) }\r\n );\r\n const toCampaignCurrent = i18n.getString(\r\n 'Recommendation_ReallocateBudgetInline_CurrentBudget_Title',\r\n { budget: formatCost(toCampaign.CurrentBudget, i18n, i18n.currency) }\r\n );\r\n const fromCampaignName = fromCampaign.CampaignName;\r\n const toCampaignName = toCampaign.CampaignName;\r\n this.budgetType = ko.observable(SELECT_TYPE.SuggestBudget);\r\n this.enableInput = ko.computed(() => this.budgetType() === SELECT_TYPE.ManualBudget);\r\n this.currencySymbol = i18n.getCurrencySymbol(deps.pageContext.AccountCurrencyCode);\r\n\r\n this.suggestBudget = formatDecimal(suggestBudget, i18n);\r\n this.suggestBudgetStr = `${formatCost(suggestBudget, i18n, i18n.currency)} ${i18n.getString('Recommendation_ReallocateBudgetInline_BudgetType_SuggestBudget_Title')}`;\r\n\r\n this.inputBudget = ko.observable('');\r\n this.applyBudget = ko.computed(() =>\r\n (this.budgetType() === SELECT_TYPE.SuggestBudget ?\r\n this.suggestBudget : this.inputBudget()));\r\n\r\n this.errorMessage = ko.observable('');\r\n this.warnMessage = ko.observable('');\r\n this.hadInput = ko.observable(false);\r\n this.enableApply = ko.computed(() => _.isEmpty(this.errorMessage()));\r\n\r\n this.deltaInfo = ko.observable({});\r\n\r\n this.setDeltaInfo = (value, validBudget = true) => {\r\n let deltaFromBudget = NOT_AVAILABLE_DEFAULT_STR;\r\n let deltaToBudget = NOT_AVAILABLE_DEFAULT_STR;\r\n let fromCampaignClicks = NOT_AVAILABLE_DEFAULT_STR;\r\n let fromCampaignCost = NOT_AVAILABLE_DEFAULT_STR;\r\n let toCampaignClicks = NOT_AVAILABLE_DEFAULT_STR;\r\n let toCampaignCost = NOT_AVAILABLE_DEFAULT_STR;\r\n const fromCampaignValid = !validBudget || value <= surplusBudget;\r\n const newLandscape = _.filter(toCampaign.Landscapes, ({\r\n Comment,\r\n }) => Comment !== COMMENT_TYPES.MAXVALUE);\r\n const sorted = _.sortBy(newLandscape, 'EstimatedBudget');\r\n\r\n if (validBudget && !_.isEmpty(sorted)) {\r\n deltaFromBudget = `-${formatCost(value, i18n, i18n.currency)}`;\r\n deltaToBudget = `+${formatCost(value, i18n, i18n.currency)}`;\r\n fromCampaignClicks = `+${formatDecimal(0, i18n)}`;\r\n fromCampaignCost = `+${formatCost(0, i18n, i18n.currency)}`;\r\n\r\n const estBudget = value + toCampaign.CurrentBudget;\r\n let minPoint = {\r\n EstimatedBudget: 0,\r\n EstimatedClicks: 0,\r\n EstimatedCost: 0,\r\n };\r\n let maxPoint = minPoint;\r\n\r\n const nextIndex = _.findIndex(sorted, point => estBudget <= point.EstimatedBudget);\r\n if (nextIndex < 0) {\r\n minPoint = _.last(sorted);\r\n maxPoint = _.last(sorted);\r\n } else if (nextIndex === 0) {\r\n maxPoint = _.first(sorted);\r\n } else {\r\n minPoint = sorted[nextIndex - 1];\r\n maxPoint = sorted[nextIndex];\r\n }\r\n\r\n toCampaignClicks = `+${formatDecimal(Math.round(interpolation(\r\n minPoint.EstimatedClicks,\r\n maxPoint.EstimatedClicks,\r\n minPoint.EstimatedBudget,\r\n maxPoint.EstimatedBudget,\r\n estBudget\r\n ) - toCampaign.CurrentClicks), i18n)}`;\r\n toCampaignCost = `+${formatCost(interpolation(\r\n minPoint.EstimatedCost,\r\n maxPoint.EstimatedCost,\r\n minPoint.EstimatedBudget,\r\n maxPoint.EstimatedBudget,\r\n estBudget\r\n ) - toCampaign.CurrentCost, i18n, i18n.currency)}`;\r\n }\r\n this.deltaInfo({\r\n fromCampaignValid,\r\n deltaFromBudget,\r\n deltaToBudget,\r\n fromCampaignName,\r\n toCampaignName,\r\n fromCampaignCurrent,\r\n fromCampaignClicks,\r\n fromCampaignCost,\r\n toCampaignCurrent,\r\n toCampaignClicks,\r\n toCampaignCost,\r\n });\r\n };\r\n\r\n this.setDeltaInfo(suggestBudget);\r\n\r\n this.applyBudget.subscribe((inputValue) => {\r\n let errorMessage = '';\r\n let warnMessage = '';\r\n let value = 0;\r\n\r\n if (this.enableInput() && !_.isEmpty(inputValue)) {\r\n this.hadInput(true);\r\n }\r\n\r\n if (!_.isEmpty(inputValue) && i18n.isValidDecimal(inputValue, true)) {\r\n value = i18n.parseDecimal(inputValue);\r\n const [, decimalStr] = value.toString().split('.');\r\n\r\n if (decimalStr && decimalStr.length > 2) {\r\n errorMessage = i18n.getString('Validation_Number_Max_Length');\r\n } else if (value > maxInputBudget || value < 0) {\r\n errorMessage = i18n.getString('BudgetSuggestionsValidationMsg')\r\n .replace('{0}', 0)\r\n .replace('{1}', i18n.currency)\r\n .replace('{2}', maxInputBudget)\r\n .replace('{3}', i18n.currency);\r\n } else if (value < suggestBudget) {\r\n warnMessage = i18n.getString(\r\n 'Recommendation_ReallocateBudgetInline_ErrorMessage_WarningMsg',\r\n {\r\n name: toCampaign.CampaignName,\r\n }\r\n );\r\n } else if (value > surplusBudget) {\r\n warnMessage = i18n.getString(\r\n 'Recommendation_ReallocateBudgetInline_ErrorMessage_WarningMsg',\r\n {\r\n name: fromCampaign.CampaignName,\r\n }\r\n );\r\n }\r\n } else if (this.hadInput()) {\r\n errorMessage = i18n.getString('ErrorMessage_InputNumericValue');\r\n }\r\n\r\n this.setDeltaInfo(value, !_.isEmpty(inputValue) && _.isEmpty(errorMessage));\r\n\r\n this.errorMessage(errorMessage);\r\n this.warnMessage(warnMessage);\r\n });\r\n\r\n return this;\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport {\r\n withContextualAttributeTemplate,\r\n showContextualAttribute,\r\n hideContextualAttribute,\r\n prependAccountAttribute,\r\n} from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\nimport { APPLY_USERINPUT_TYPES, CONTEXTUAL_ENTITY_TYPE, MOVE_BUDGET_CAMPAIGN_BUDGET_STATUS } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nimport ViewModel from '../viewmodel/index';\r\nimport template from '../template/index.pug';\r\nimport { SELECT_TYPE } from '../const';\r\n\r\nexport class RecommendationReallocateBudgetView extends Backbone.View {\r\n initialize({\r\n data,\r\n i18n,\r\n deps,\r\n router,\r\n isMCC,\r\n gridView,\r\n readOnly,\r\n gridService,\r\n }) {\r\n this.opportunityData = _.first(data.Opportunities);\r\n this.type = data.OpportunityType;\r\n this.i18n = i18n;\r\n this.data = data;\r\n this.deps = deps;\r\n this.router = router;\r\n this.isMCC = isMCC;\r\n this.grid = { gridView };\r\n this.fromCampaign = _.find(\r\n this.opportunityData.SuggestedCampaignBudgets,\r\n campaign => campaign.BudgetStatus === MOVE_BUDGET_CAMPAIGN_BUDGET_STATUS.Surplus\r\n );\r\n this.toCampaign = _.find(\r\n this.opportunityData.SuggestedCampaignBudgets,\r\n campaign => campaign.BudgetStatus === MOVE_BUDGET_CAMPAIGN_BUDGET_STATUS.Deficit\r\n );\r\n this.viewModel = new ViewModel({\r\n i18n,\r\n view: this,\r\n data: this.opportunityData,\r\n fromCampaign: this.fromCampaign,\r\n toCampaign: this.toCampaign,\r\n type: this.type,\r\n deps,\r\n readOnly,\r\n });\r\n this.timerForPopupContextualAttribute = null;\r\n this.gridService = gridService;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .apply': this.apply,\r\n 'click .btn-cancel': this.cancel,\r\n 'mouseover .recommendation-reallocate-budget .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .recommendation-reallocate-budget .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'click .recommendation-reallocate-budget .contextual-tooltip': 'scopeRouting',\r\n };\r\n }\r\n\r\n scopeRouting(e) {\r\n this.router(e);\r\n }\r\n\r\n hideContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n hideContextualAttribute({ e, self: this });\r\n }\r\n\r\n showContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n this.timerForPopupContextualAttribute = setTimeout(() => {\r\n showContextualAttribute({\r\n deps: this.deps,\r\n i18n: this.i18n,\r\n e,\r\n type: this.type,\r\n isExpanding: true,\r\n self: this,\r\n recommendationService: this.gridService.recommendationService,\r\n });\r\n }, 500);\r\n }\r\n\r\n render() {\r\n const {\r\n i18n,\r\n type,\r\n fromCampaign,\r\n toCampaign,\r\n opportunityData,\r\n } = this;\r\n const fromCampaignEntity = withContextualAttributeTemplate({\r\n opportunityId: opportunityData.OpportunityId,\r\n entityName: fromCampaign.CampaignName,\r\n entityId: fromCampaign.CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n status: 'false',\r\n isExpandingView: true,\r\n ariaLabel: i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: fromCampaign.CampaignName }),\r\n });\r\n const toCampaignEntity = withContextualAttributeTemplate({\r\n opportunityId: opportunityData.OpportunityId,\r\n entityName: toCampaign.CampaignName,\r\n entityId: toCampaign.CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n status: 'false',\r\n isExpandingView: true,\r\n ariaLabel: i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: toCampaign.CampaignName }),\r\n });\r\n\r\n const model = _.extend({\r\n i18n,\r\n type,\r\n SELECT_TYPE,\r\n title: i18n.getString('Recommendation_ReallocateBudgetInline_Title', {\r\n fromCampaign: this.isMCC ? prependAccountAttribute({\r\n originEntity: fromCampaignEntity,\r\n opportunityId: opportunityData.OpportunityId,\r\n accountName: opportunityData.Target.AccountName,\r\n accountId: opportunityData.Target.AccountId,\r\n }) : fromCampaignEntity,\r\n toCampaign: this.isMCC ? prependAccountAttribute({\r\n originEntity: toCampaignEntity,\r\n opportunityId: opportunityData.OpportunityId,\r\n accountName: opportunityData.Target.AccountName,\r\n accountId: opportunityData.Target.AccountId,\r\n }) : toCampaignEntity,\r\n }),\r\n });\r\n this.$el.html(template(model));\r\n\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n return this;\r\n }\r\n\r\n apply() {\r\n const {\r\n i18n,\r\n type,\r\n fromCampaign,\r\n toCampaign,\r\n opportunityData,\r\n } = this;\r\n\r\n if (_.isEmpty(this.viewModel.applyBudget())) {\r\n this.viewModel.hadInput(true);\r\n this.viewModel.errorMessage(i18n.getString('ErrorMessage_InputNumericValue'));\r\n return;\r\n }\r\n\r\n const odataType = APPLY_USERINPUT_TYPES[type];\r\n const { OpportunityId } = opportunityData;\r\n const applyBudget = i18n.parseDecimal(this.viewModel.applyBudget());\r\n const userInputs = {\r\n '@odata.type': odataType,\r\n OpportunityId,\r\n NewCampaignBudgets: [\r\n {\r\n CampaignId: fromCampaign.CampaignId,\r\n NewBudget: Math.round((fromCampaign.CurrentBudget - applyBudget) * 100) / 100,\r\n },\r\n {\r\n CampaignId: toCampaign.CampaignId,\r\n NewBudget: Math.round((toCampaign.CurrentBudget + applyBudget) * 100) / 100,\r\n },\r\n ],\r\n };\r\n this.trigger('apply', {\r\n opportunities: [this.opportunityData],\r\n userInputs: [userInputs],\r\n });\r\n }\r\n\r\n cancel() {\r\n this.trigger('cancel');\r\n }\r\n\r\n hasChanged() {\r\n return this.viewModel.budgetType() !== SELECT_TYPE.SuggestBudget;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport { APPLY_USERINPUT_TYPES, CONTEXTUAL_ENTITY_TYPE } from '@bingads-webui-campaign/recommendation-core';\r\nimport {\r\n withContextualAttributeTemplate,\r\n showContextualAttribute,\r\n hideContextualAttribute,\r\n prependAccountAttribute,\r\n} from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\n\r\nimport template from '../template/index.pug';\r\n\r\nexport default class RepairKeywordsInlineView extends Backbone.View {\r\n /**\r\n * @param {Object} data - recommandation data\r\n * @param {Object} deps - legacy dependencies\r\n * @param {Object} i18n - i18n object\r\n * @return {void} void\r\n */\r\n initialize({\r\n data,\r\n deps,\r\n i18n,\r\n router,\r\n isMCC,\r\n gridView,\r\n readOnly,\r\n gridService,\r\n }) {\r\n this.data = data;\r\n this.deps = deps;\r\n this.i18n = i18n;\r\n this.router = router;\r\n this.isMCC = isMCC;\r\n this.readOnly = readOnly;\r\n this.grid = { gridView };\r\n this.gridService = gridService;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .apply': this.apply,\r\n 'click .cancel': this.cancel,\r\n 'mouseover .recommendation-repair-keywords-inline-view .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .recommendation-repair-keywords-inline-view .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'click .recommendation-repair-keywords-inline-view .contextual-tooltip': 'scopeRouting',\r\n };\r\n }\r\n\r\n scopeRouting(e) {\r\n this.router(e);\r\n }\r\n\r\n hideContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n hideContextualAttribute({ e, self: this });\r\n }\r\n\r\n showContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n this.timerForPopupContextualAttribute = setTimeout(() => {\r\n showContextualAttribute({\r\n deps: this.deps,\r\n i18n: this.i18n,\r\n e,\r\n type: this.data.OpportunityType,\r\n isExpanding: true,\r\n self: this,\r\n recommendationService: this.gridService.recommendationService,\r\n });\r\n }, 500);\r\n }\r\n\r\n render() {\r\n const params = {\r\n i18n: this.i18n,\r\n getEntity: this.getEntity,\r\n readOnly: this.readOnly,\r\n };\r\n\r\n this.$el.html(template(params));\r\n\r\n this.createKeywordView = new this.deps.CreateKeywordView({\r\n adGroup: {\r\n adGroupId: this.data.Target.AdGroupId,\r\n campaignId: this.data.Target.CampaignId,\r\n },\r\n });\r\n\r\n this.$('.create-keyword-container').html(this.createKeywordView.render().el);\r\n return this;\r\n }\r\n\r\n apply() {\r\n const keywords = this.createKeywordView.getKeywords();\r\n if (!_.isEmpty(keywords)) {\r\n const keywordSuggestionsAdded = this.createKeywordView.getSuggestionsAdded();\r\n const newKeywords = _.map(keywords, keyword => ({\r\n KeywordText: keyword.Text,\r\n MatchType: keyword.MatchType,\r\n IsKP: _.contains(keywordSuggestionsAdded, keyword.Text),\r\n }));\r\n this.trigger('apply', {\r\n opportunities: this.data.Opportunities,\r\n userInputs: [{\r\n '@odata.type': APPLY_USERINPUT_TYPES[this.data.OpportunityType],\r\n NewKeywords: newKeywords,\r\n OpportunityId: _.first(this.data.Opportunities).OpportunityId,\r\n }],\r\n });\r\n }\r\n }\r\n\r\n cancel() {\r\n this.trigger('cancel');\r\n this.createKeywordView.cancel();\r\n }\r\n\r\n hasChanged() {\r\n const keywords = this.createKeywordView.getKeywords();\r\n return _.size(keywords) > 0;\r\n }\r\n\r\n getEntity = () => {\r\n const entity = this.data.Target.AdGroupName ? `${withContextualAttributeTemplate({\r\n opportunityId: this.data.Opportunities ?\r\n this.data.Opportunities[0].OpportunityId :\r\n this.data.OpportunityId,\r\n entityName: this.data.Target.CampaignName,\r\n entityId: this.data.Target.CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n status: 'false',\r\n isExpandingView: true,\r\n ariaLabel: this.i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: this.data.Target.CampaignName }),\r\n })} > ${withContextualAttributeTemplate({\r\n opportunityId: this.data.Opportunities ?\r\n this.data.Opportunities[0].OpportunityId :\r\n this.data.OpportunityId,\r\n entityName: this.data.Target.AdGroupName,\r\n entityId: this.data.Target.AdGroupId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.ADGROUP,\r\n entityCampaignId: this.data.Target.CampaignId,\r\n status: 'false',\r\n isExpandingView: true,\r\n ariaLabel: this.i18n.getString('Click to scope to ad group {{adGroupName}}', { adGroupName: this.data.Target.AdGroupName }),\r\n })}` :\r\n withContextualAttributeTemplate({\r\n opportunityId: this.data.Opportunities ?\r\n this.data.Opportunities[0].OpportunityId :\r\n this.data.OpportunityId,\r\n entityName: this.data.Target.CampaignName,\r\n entityId: this.data.Target.CampaignId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.CAMPAIGN,\r\n status: 'false',\r\n isExpandingView: true,\r\n ariaLabel: this.i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: this.data.Target.CampaignName }),\r\n });\r\n\r\n return {\r\n entity_name: this.isMCC ? prependAccountAttribute({\r\n opportunityId: this.data.Opportunities ?\r\n this.data.Opportunities[0].OpportunityId :\r\n this.data.OpportunityId,\r\n accountId: this.data.Target.AccountId,\r\n accountName: this.data.Target.AccountName,\r\n originEntity: entity,\r\n }) : entity,\r\n };\r\n };\r\n}\r\n","import Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\n\r\nimport {\r\n showContextualAttribute,\r\n hideContextualAttribute,\r\n withContextualAttributeTemplate,\r\n} from '@bingads-webui-campaign/recommendation-contextual-attribute';\r\nimport { CONTEXTUAL_ENTITY_TYPE, getIconClasses, formatDecimal } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nimport template from '../template/index.pug';\r\n\r\nexport class RecommendationSetupConversionTrackingView extends Backbone.View {\r\n initialize({\r\n data,\r\n i18n,\r\n deps,\r\n router,\r\n gridView,\r\n readOnly,\r\n isMCC,\r\n gridService,\r\n isRecommendationThirdPartyTaggingEnabled,\r\n }) {\r\n this.opportunityData = _.first(data.Opportunities);\r\n this.type = data.OpportunityType;\r\n this.i18n = i18n;\r\n this.data = data;\r\n this.deps = deps;\r\n this.router = router;\r\n this.grid = { gridView };\r\n this.readOnly = readOnly;\r\n this.isMCC = isMCC;\r\n this.timerForPopupContextualAttribute = null;\r\n this.gridService = gridService;\r\n this.isRecommendationThirdPartyTaggingEnabled = isRecommendationThirdPartyTaggingEnabled;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .btn-primary': this.getStarted,\r\n 'click .btn-cancel': this.cancel,\r\n 'mouseover .recommendation-setup-conversion-tracking .contextual-tooltip': 'showContextualAttributePopup',\r\n 'mouseout .recommendation-setup-conversion-tracking .contextual-tooltip': 'hideContextualAttributePopup',\r\n 'click .recommendation-setup-conversion-tracking .contextual-tooltip': 'scopeRouting',\r\n };\r\n }\r\n\r\n scopeRouting(e) {\r\n this.router(e);\r\n }\r\n\r\n hideContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n hideContextualAttribute({ e, self: this });\r\n }\r\n\r\n showContextualAttributePopup(e) {\r\n clearTimeout(this.timerForPopupContextualAttribute);\r\n this.timerForPopupContextualAttribute = setTimeout(() => {\r\n showContextualAttribute({\r\n deps: this.deps,\r\n i18n: this.i18n,\r\n e,\r\n type: this.type,\r\n isExpanding: true,\r\n self: this,\r\n recommendationService: this.gridService.recommendationService,\r\n });\r\n }, 500);\r\n }\r\n\r\n render() {\r\n const {\r\n i18n,\r\n opportunityData: {\r\n OpportunityId: opportunityId,\r\n Target: target,\r\n StatusId: statusId,\r\n NumClicks: numClicks,\r\n NumImpressions: numImpressions,\r\n },\r\n } = this;\r\n\r\n const accountName = this.isMCC ? withContextualAttributeTemplate({\r\n opportunityId,\r\n entityName: target.AccountName,\r\n entityId: target.AccountId,\r\n entityType: CONTEXTUAL_ENTITY_TYPE.ACCOUNT,\r\n status: 'false',\r\n isExpandingView: true,\r\n }) : '';\r\n\r\n const title = statusId === 2 ?\r\n 'Recommendation_Grid_SetupConversionTrackingOpportunity_Unverified_Todo_Title_MCC' :\r\n 'Recommendation_Grid_SetupConversionTrackingOpportunity_UnCreated_Todo_Title_MCC';\r\n\r\n const iconClasses = getIconClasses(statusId, 3);\r\n\r\n this.$el.html(template({\r\n i18n,\r\n title: i18n.getString(title, { accountName }),\r\n iconClasses,\r\n numClicks: formatDecimal(numClicks, i18n),\r\n numImpressions: formatDecimal(numImpressions, i18n),\r\n isRecommendationThirdPartyTaggingEnabled: this.isRecommendationThirdPartyTaggingEnabled,\r\n }));\r\n\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n return this;\r\n }\r\n\r\n cancel() {\r\n this.trigger('cancel');\r\n }\r\n}\r\n","import tplSetupConvTodo from './src/template/setup-conversion-tracking-todo.pug';\r\nimport tplSetupConvPerformance from './src/template/performance-summary.pug';\r\n\r\nexport { RecommendationSetupConversionTrackingView } from './src/view/index';\r\nexport const templateSetupConvTodo = model => tplSetupConvTodo(model);\r\nexport const templateSetupConvPerformance = model => tplSetupConvPerformance(model);\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport { bulkApiErrorNumberToErrorMessageMapping } from '@bingads-webui-campaign/api-errors';\r\nimport {\r\n APPLY_ACTION_TYPES,\r\n RECOMMENDATION_NOTIFICATION_ERRORCODE,\r\n RECOMMENDATION_TYPES,\r\n CAMPAIGN_ODATA_ERROR_BASELINE,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport default class ViewModel {\r\n constructor({\r\n i18n,\r\n newI18n,\r\n aggregatedResult,\r\n recommendationType,\r\n formatNotificationLocalizedKey,\r\n }) {\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n this.recommendationType = recommendationType;\r\n this.formatNotificationLocalizedKey = formatNotificationLocalizedKey;\r\n this.showNotificationPanel = ko.observable(false);\r\n this.aggregatedResult = ko.observable(aggregatedResult || {});\r\n this.totalCount = ko.pureComputed(() => this.aggregatedResult().totalCount);\r\n\r\n this.successTotalCount = ko.pureComputed(() => this.aggregatedResult().successfulCount);\r\n this.failTotalCount = ko.pureComputed(() => this.aggregatedResult().failedCount);\r\n\r\n this.failHeadingDescText = ko.observable('');\r\n\r\n this.otherInfo = ko.pureComputed(() => this.aggregatedResult().otherInfo);\r\n\r\n if (this.recommendationType === RECOMMENDATION_TYPES.FIX_AD_DESTINATION) {\r\n this.failHeadingDescText(i18n.getString('Recommendation_Lightbox_Fail_Header_Desc_Fix_Ad_Destination_Message'));\r\n }\r\n\r\n this.successHeadingText = ko.pureComputed(() =>\r\n this.i18n.getString(\r\n this.formatNotificationLocalizedKey({\r\n count: this.successTotalCount(),\r\n isSuccess: true,\r\n recommendationType: this.recommendationType,\r\n actionType: APPLY_ACTION_TYPES.ACCEPT,\r\n otherInfo: this.otherInfo(),\r\n }),\r\n { n: this.successTotalCount(), ...this.otherInfo() }\r\n ));\r\n this.failHeadingText = ko.pureComputed(() =>\r\n this.i18n.getString(\r\n this.formatNotificationLocalizedKey({\r\n count: this.failTotalCount(),\r\n isSuccess: false,\r\n recommendationType: this.recommendationType,\r\n actionType: APPLY_ACTION_TYPES.ACCEPT,\r\n otherInfo: this.otherInfo(),\r\n }),\r\n { n: this.failTotalCount(), ...this.otherInfo() }\r\n ));\r\n\r\n this.failCountsByErrorCode = ko.pureComputed(() => {\r\n if (this.recommendationType === RECOMMENDATION_TYPES.REPAIR_ADS ||\r\n this.recommendationType === RECOMMENDATION_TYPES.REPAIR_KEYWORD ||\r\n this.recommendationType === RECOMMENDATION_TYPES.FIX_AD_DESTINATION) {\r\n return [];\r\n }\r\n return _.chain(this.aggregatedResult().AggregatedResults)\r\n .filter(result => result.ErrorCode !== 0)\r\n .sortBy('RecommendationCount')\r\n .reverse()\r\n .map(error => ({\r\n reason: this.i18n.getString('Recommendation_Notification_Fail_Reason', {\r\n count: error.RecommendationCount,\r\n totalCount: this.failTotalCount(),\r\n reason: this.getReasonByErrorCode(error.ErrorCode),\r\n }),\r\n errorCode: error.ErrorCode,\r\n ..._.defaults(_.pick(\r\n RECOMMENDATION_NOTIFICATION_ERRORCODE[`Recommendation_Error_${error.ErrorCode}`],\r\n 'hasLearnMore',\r\n 'helpId'\r\n ), {\r\n hasViewRec: error.Expired,\r\n hasLearnMore: false,\r\n helpId: null,\r\n }),\r\n }))\r\n .value();\r\n });\r\n }\r\n\r\n getReasonByErrorCode(errorCode) {\r\n if (RECOMMENDATION_NOTIFICATION_ERRORCODE[`Recommendation_Error_${errorCode}`]) {\r\n return this.i18n.getString(`Recommendation_Error_${errorCode}`);\r\n }\r\n if (errorCode >= CAMPAIGN_ODATA_ERROR_BASELINE) {\r\n const CMMTErrorCode = errorCode - CAMPAIGN_ODATA_ERROR_BASELINE;\r\n let errorMessage;\r\n const i18nKey = bulkApiErrorNumberToErrorMessageMapping[`API_ErrorNumber_${CMMTErrorCode}`];\r\n if (!_.isUndefined(i18nKey)) {\r\n errorMessage = this.newI18n.getString(i18nKey);\r\n }\r\n return !_.isUndefined(errorMessage) ?\r\n errorMessage :\r\n this.i18n.getString('Recommendation_Error_Generic_Failure');\r\n }\r\n return this.i18n.getString('Recommendation_Error_Generic_Failure');\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport $ from 'jquery';\r\nimport template from '../template/filterBanner.pug';\r\n\r\nexport class RecommendationFilterBanner extends Backbone.View {\r\n initialize({\r\n opportunityIds,\r\n i18n,\r\n view,\r\n removeFilter,\r\n reason,\r\n }) {\r\n this.opportunityIds = opportunityIds;\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.removeFilter = removeFilter;\r\n this.reason = reason;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .remove': this.remove,\r\n };\r\n }\r\n\r\n remove() {\r\n this.removeFilter(this.view.grid.gridView, this.opportunityIds);\r\n $('.filterBanner').remove();\r\n }\r\n\r\n\r\n render() {\r\n const model = {\r\n i18n: this.i18n,\r\n message: this.i18n.getString(\r\n 'Recommendation_Notification_Filter_Banner_Text',\r\n { reason: this.reason }\r\n ),\r\n };\r\n this.$el.html(template(model));\r\n\r\n return this;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport $ from 'jquery';\r\nimport { getSessionStorage } from '@bingads-webui/storage';\r\nimport ViewModel from '../viewmodel/index';\r\nimport template from '../template/index.pug';\r\nimport { RecommendationFilterBanner } from './filterBanner';\r\n\r\n// TODO: Change to React\r\nexport class RecommendationStatusLightbox extends Backbone.View {\r\n /**\r\n * @param {Object} i18n - i18n object.\r\n * @param {Object} results - results from MT\r\n * @return {void} void\r\n */\r\n initialize({\r\n results,\r\n i18n,\r\n newI18n,\r\n view,\r\n filterByOpportunityId,\r\n removeFilter,\r\n recommendationType,\r\n formatNotificationLocalizedKey,\r\n currentActivity,\r\n }) {\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.filterByOpportunityId = filterByOpportunityId;\r\n this.removeFilter = removeFilter;\r\n this.recommendationType = recommendationType;\r\n this.formatNotificationLocalizedKey = formatNotificationLocalizedKey;\r\n this.currentActivity = currentActivity;\r\n\r\n this.viewModel = new ViewModel({\r\n i18n,\r\n newI18n,\r\n aggregatedResult: results,\r\n recommendationType,\r\n formatNotificationLocalizedKey,\r\n });\r\n }\r\n\r\n getOpportunityIdsFromResults(errorCode) {\r\n return _.chain(this.viewModel.aggregatedResult().AggregatedResults)\r\n .find(result => result.ErrorCode === Number(errorCode))\r\n .result('OpportunityIds')\r\n .value();\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .cancel': this.close,\r\n 'click .filterBannerLink': this.showFilterBanner,\r\n };\r\n }\r\n\r\n show() {\r\n this.viewModel.showNotificationPanel(true);\r\n getSessionStorage().clear();\r\n }\r\n\r\n close() {\r\n this.viewModel.showNotificationPanel(false);\r\n }\r\n\r\n showFilterBanner(el) {\r\n this.filterByOpportunityId(\r\n this.view ? this.view.grid.gridView : null,\r\n this.getOpportunityIdsFromResults(el.target.id)\r\n );\r\n\r\n if ($('.filterBanner-container').hasClass('.filterBanner')) {\r\n $('.filterBanner').remove();\r\n }\r\n this.recommendationFilterBanner = new RecommendationFilterBanner({\r\n opportunityIds: this.getOpportunityIdsFromResults(el.target.id),\r\n i18n: this.i18n,\r\n view: this.view,\r\n removeFilter: this.removeFilter,\r\n reason: this.viewModel.getReasonByErrorCode(el.target.id),\r\n el: $('.filterBanner-container'),\r\n });\r\n\r\n this.recommendationFilterBanner.render();\r\n }\r\n\r\n render() {\r\n const model = {\r\n i18n: this.i18n,\r\n };\r\n this.$el.html(template(model));\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n this.on('show', this.show);\r\n return this;\r\n }\r\n}\r\n","import { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport pkg from './package.json';\r\n\r\nexport const { version } = pkg;\r\n\r\nexport default globalContext.define(\r\n pkg.legacyDependencies,\r\n Promise => import(/* webpackMode: 'eager' */ './src/index') // eslint-disable-line no-unused-vars\r\n);\r\n","// TODO: this file only used for component test, not be used for production code, need to be updated in the future\r\nimport Backbone from 'backbone';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport _ from 'underscore';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { VIEW_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { PreferenceContext } from '@bingads-webui-react/preference-context';\r\nimport { staticI18nMock } from '@bingads-webui-test/i18n-mock';\r\nimport { PopupContextProvider } from '@bingads-webui-react/popup-manager';\r\n\r\nconst mockPreferenceService = () => {\r\n let preference = {\r\n Data: {},\r\n };\r\n\r\n return {\r\n findByNameAtUserLevel: () => preference,\r\n setAtUserLevel: (data) => {\r\n preference = data;\r\n },\r\n };\r\n};\r\nconst preferenceService = mockPreferenceService();\r\n\r\nexport class RecommendationTabView extends Backbone.View {\r\n initialize(state) {\r\n this.state = state;\r\n this.detailValid = true;\r\n this.categoryType = state.categoryType || 'All';\r\n this.lastCategoryType = this.categoryType;\r\n this.lastRecommendationType = undefined;\r\n this.lastCampaignId = undefined;\r\n this.lastAdGroupId = undefined;\r\n // initialize all legeacy dependencies\r\n const { legacyRouter } = globalContext.require('component/legacy-router/index');\r\n const CampaignEditor = globalContext.require('campaignui/feature/crud-campaign/view/create');\r\n const SearchBidView = globalContext.requireDefault('campaignui/feature/adgroup-create-advanced/view/steps/search-bid');\r\n const BiddingStrategyView = globalContext.requireDefault('campaignui/feature/bidding-strategy/view/setting');\r\n const adDisplayUrlService = globalContext.require('campaignui/feature/crud-ad/service/displayUrl');\r\n const combineText = globalContext.require('campaignui/feature/crud-ad/viewmodel/adsPreview/expandedTextAd');\r\n const appConfig = globalContext.require('component/config/index');\r\n const i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/competition-tab');\r\n const instrumentation = globalContext.requireDefault('campaignui/feature/instrumentation/index');\r\n const jsdata = globalContext.require('component/js-data-campaign/index');\r\n const CreateKeywordView = globalContext.requireDefault('campaignui/feature/crud-keywords/view/create-inline-recommendation');\r\n const pageContext = globalContext.require('PageContext');\r\n const permissions = appConfig.get('Permissions');\r\n const preferencesService = globalContext.requireDefault('component/preference/service/index');\r\n const constants = globalContext.require('Constants');\r\n const dataManager = globalContext.require('campaignui/feature/inline-opportunity/view/data-manager');\r\n const odata = globalContext.require('component/http/channel/odata');\r\n const UrlTestTool = globalContext.require('component/upgraded-url/view/urlTestTool');\r\n const TrackingTemplate = globalContext.require('component/upgraded-url/view/trackingTemplate');\r\n const UrlEditor = globalContext.require('component/url-input/view/url-input');\r\n const { testUurl, uurlLevels } = globalContext.require('component/upgraded-url/service/testUurl');\r\n const appState = globalContext.require('component/state/index');\r\n const s$i18n = globalContext.require('$/schema-i18n!campaign');\r\n const schemaCampaignVnext = globalContext.require('component/schema-campaign-vnext/index');\r\n const validator = globalContext.require('component/ko-validation/index');\r\n this.legacyDependencies = {\r\n CampaignEditor,\r\n SearchBidView,\r\n BiddingStrategyView,\r\n adDisplayUrlService,\r\n appConfig,\r\n combineText,\r\n i18n,\r\n instrumentation,\r\n jsdata,\r\n CreateKeywordView,\r\n legacyRouter,\r\n pageContext,\r\n permissions,\r\n preferencesService,\r\n constants,\r\n dataManager,\r\n odata,\r\n UrlTestTool,\r\n TrackingTemplate,\r\n UrlEditor,\r\n testUurl,\r\n uurlLevels,\r\n appState,\r\n s$i18n,\r\n schemaCampaignVnext,\r\n validator,\r\n };\r\n }\r\n validDetailPage = () => {\r\n this.detailValid = true;\r\n };\r\n render() {\r\n if (!_.isUndefined(this.el)) {\r\n import(/* webpackMode: 'eager' */'./recommendation-tab-container').then(({ RecommendationTabContainer }) => {\r\n ReactDOM.render(\r\n (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ), this.el\r\n );\r\n });\r\n }\r\n\r\n return this;\r\n }\r\n\r\n setState(state) {\r\n const newType = state.recommendationType;\r\n const oldType = this.state.recommendationType;\r\n this.lastCampaignId = this.state.scope && this.state.scope.campaignId;\r\n this.lastAdGroupId = this.state.scope && this.state.scope.adGroupId;\r\n this.state = state;\r\n if (!this.detailValid && newType === oldType) {\r\n this.state.viewType = VIEW_TYPES.SUMMARY;\r\n }\r\n\r\n if (this.state.viewType === VIEW_TYPES.SUMMARY) {\r\n this.categoryType = this.state.categoryType;\r\n this.lastCategoryType = this.categoryType;\r\n }\r\n\r\n if (this.state.viewType !== VIEW_TYPES.HISTORY) {\r\n this.lastRecommendationType = newType;\r\n }\r\n this.detailValid = false;\r\n this.render();\r\n }\r\n\r\n remove() {\r\n if (!_.isUndefined(this.el)) {\r\n ReactDOM.unmountComponentAtNode(this.el);\r\n }\r\n return super.remove();\r\n }\r\n}\r\n","export const schema = {\r\n scenario: [\r\n {\r\n name: 'loadRecommendationTab',\r\n value: 'LoadRecommendationTab',\r\n setting: {},\r\n activity: [\r\n {\r\n name: 'loadRecommendationTab',\r\n value: 'LoadRecommendationTab',\r\n },\r\n // Below activities are for performance logs.\r\n {\r\n name: 'getSummary',\r\n value: 'getsummary',\r\n },\r\n {\r\n name: 'getCoupons',\r\n value: 'getCoupons',\r\n },\r\n {\r\n name: 'getHistory',\r\n value: 'getHistory',\r\n },\r\n {\r\n name: 'getCount',\r\n value: 'getCount',\r\n },\r\n {\r\n name: 'track',\r\n value: 'track',\r\n },\r\n {\r\n name: 'viewCategory',\r\n value: 'ViewCategory',\r\n },\r\n {\r\n name: 'getAutoApplyOptInStatus',\r\n value: 'getAutoApplyOptInStatus',\r\n },\r\n {\r\n name: 'setAutoApplyOptInStatus',\r\n value: 'setAutoApplyOptInStatus',\r\n },\r\n {\r\n name: 'getBulkAarUploadBlobUrl',\r\n value: 'getBulkAarUploadBlobUrl',\r\n },\r\n {\r\n name: 'submitBulkAarOptInStatusTask',\r\n value: 'submitBulkAarOptInStatusTask',\r\n },\r\n {\r\n name: 'pollBulkAarOptInStatusTask',\r\n value: 'pollBulkAarOptInStatusTask',\r\n },\r\n ],\r\n },\r\n ],\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport hoistNonReactStatics from 'hoist-non-react-statics';\r\nimport { getDisplayName } from '@bingads-webui-react/hoc-utils';\r\nimport { levelAtConstant } from '@bingads-webui-campaign/scope-constants';\r\n\r\nconst historyLocation = 'recommendation_history';\r\n\r\nfunction navigate({\r\n routeLocation,\r\n additionalParams,\r\n navigateToRoute,\r\n scope,\r\n}, op = {}) {\r\n const {\r\n accountId,\r\n adGroupId,\r\n campaignId,\r\n customerId,\r\n } = scope;\r\n let levelAt = op.scope || scope.levelAt;\r\n\r\n // history page only support account level\r\n if (routeLocation === historyLocation) {\r\n levelAt = levelAtConstant.ACCOUNT;\r\n }\r\n\r\n let params = _.extend({\r\n account_id: accountId,\r\n adgroup_id: adGroupId,\r\n campaign_id: campaignId,\r\n customer_id: customerId,\r\n }, additionalParams);\r\n let route = '';\r\n\r\n switch (levelAt) {\r\n case levelAtConstant.CAMPAIGN:\r\n route = `campaign_${routeLocation}`;\r\n params = _.omit(params, 'adgroup_id');\r\n break;\r\n case levelAtConstant.ADGROUP:\r\n route = `adgroup_${routeLocation}`;\r\n break;\r\n case levelAtConstant.ACCOUNT:\r\n default:\r\n route = routeLocation;\r\n params = _.omit(params, 'campaign_id', 'adgroup_id');\r\n break;\r\n }\r\n\r\n navigateToRoute(route, params);\r\n}\r\n\r\nfunction viewCategory(navigateToRoute, scope, page, category) {\r\n return () => navigate({\r\n additionalParams: { category },\r\n navigateToRoute,\r\n routeLocation: page,\r\n scope,\r\n });\r\n}\r\n\r\nfunction backToRecommendation(\r\n navigateToRoute,\r\n scope,\r\n page,\r\n category,\r\n type,\r\n campaignId,\r\n adGroupId\r\n) {\r\n let routeLocation = page;\r\n let additionalParams = { category };\r\n if (type) {\r\n routeLocation = `${page}_details`;\r\n additionalParams = { type };\r\n }\r\n\r\n const tempScope = _.extend({}, scope);\r\n if (adGroupId) {\r\n tempScope.levelAt = levelAtConstant.ADGROUP;\r\n _.extend(additionalParams, {\r\n campaign_id: campaignId,\r\n adgroup_id: adGroupId,\r\n });\r\n } else if (campaignId) {\r\n tempScope.levelAt = levelAtConstant.CAMPAIGN;\r\n _.extend(additionalParams, {\r\n campaign_id: campaignId,\r\n });\r\n }\r\n\r\n return () => navigate({\r\n additionalParams,\r\n navigateToRoute,\r\n routeLocation,\r\n scope: tempScope,\r\n });\r\n}\r\n\r\nfunction viewHistory(navigateToRoute, scope, validDetailPage) {\r\n validDetailPage();\r\n return navigate({\r\n navigateToRoute,\r\n routeLocation: historyLocation,\r\n scope,\r\n });\r\n}\r\n\r\nfunction viewSummary(navigateToRoute, scope, page, op) {\r\n return navigate({\r\n navigateToRoute,\r\n routeLocation: page,\r\n scope,\r\n }, op);\r\n}\r\n\r\nfunction viewDetails(navigateToRoute, scope, page, validDetailPage, type, data = {}) {\r\n const newScope = { ...scope, ...data };\r\n validDetailPage();\r\n return () => navigate({\r\n additionalParams: { type },\r\n navigateToRoute,\r\n routeLocation: `${page}_details`,\r\n scope: newScope,\r\n });\r\n}\r\n\r\nexport const withNavigation = (WrappedComponent) => {\r\n const HoC = (props) => {\r\n const {\r\n scope,\r\n page,\r\n deps: {\r\n legacyRouter,\r\n },\r\n validDetailPage,\r\n /**\r\n * Only for test\r\n */\r\n testRef,\r\n } = props;\r\n\r\n const viewCategoryHandler = _.partial(viewCategory, legacyRouter.navigateToRoute, scope, page);\r\n const viewSummaryHandler = _.partial(viewSummary, legacyRouter.navigateToRoute, scope, page);\r\n const viewDetailsHandler = _.partial(\r\n viewDetails,\r\n legacyRouter.navigateToRoute,\r\n scope,\r\n page,\r\n validDetailPage\r\n );\r\n const viewHistoryHandler = _.partial(viewHistory, legacyRouter.navigateToRoute, scope, validDetailPage);\r\n\r\n if (testRef) {\r\n testRef.viewCategory = viewCategoryHandler;\r\n testRef.viewSummary = viewSummaryHandler;\r\n testRef.viewDetails = viewDetailsHandler;\r\n testRef.viewHistory = viewHistoryHandler;\r\n }\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n HoC.displayName = `withNavigation(${getDisplayName(WrappedComponent)})`;\r\n HoC.propTypes = {\r\n page: PropTypes.string,\r\n scope: PropTypes.shape({\r\n accountId: PropTypes.number,\r\n adGroupId: PropTypes.number,\r\n campaignId: PropTypes.number,\r\n customerId: PropTypes.number,\r\n levelAt: PropTypes.string,\r\n }),\r\n deps: PropTypes.shape({\r\n legacyRouter: PropTypes.object.isRequired,\r\n }).isRequired,\r\n validDetailPage: PropTypes.func.isRequired,\r\n };\r\n HoC.defaultProps = {\r\n page: 'recommendation',\r\n scope: {},\r\n };\r\n\r\n hoistNonReactStatics(HoC, WrappedComponent);\r\n\r\n return HoC;\r\n};\r\n","/* eslint-disable jsx-a11y/anchor-is-valid, no-script-url */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport * as urlUtil from '@bingads-webui/url-util';\r\nimport {\r\n RecommendationService,\r\n RecommendationDownloadService,\r\n withGetSummary,\r\n CHANNEL_TYPES,\r\n withRecommendationsScope as withScope,\r\n withCoupon,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { withCcJsData } from '@bingads-webui-cc-react/js-data-rest';\r\nimport { schema } from './instrumentation-schema';\r\nimport { RecommendationTab } from './recommendation-tab';\r\nimport { withNavigation } from './with-navigation';\r\n\r\nconst RecommendationTabWithData = withGetSummary(false)(withCoupon(RecommendationTab));\r\n\r\nclass RecommendationTabContainerView extends React.Component {\r\n static propTypes = {\r\n scope: PropTypes.shape({\r\n customerId: PropTypes.number,\r\n accountId: PropTypes.number,\r\n levelAt: PropTypes.string,\r\n }),\r\n showAlertHandler: PropTypes.func,\r\n deps: PropTypes.shape({\r\n appConfig: PropTypes.objectOf(PropTypes.any).isRequired,\r\n appState: PropTypes.object.isRequired,\r\n i18n: PropTypes.object.isRequired,\r\n s$i18n: PropTypes.object,\r\n instrumentation: PropTypes.object.isRequired,\r\n jsdata: PropTypes.object.isRequired,\r\n legacyRouter: PropTypes.object.isRequired,\r\n pageContext: PropTypes.object.isRequired,\r\n permissions: PropTypes.object.isRequired,\r\n preferencesService: PropTypes.objectOf(PropTypes.any).isRequired,\r\n constants: PropTypes.shape({\r\n imagePath: PropTypes.string.isRequired,\r\n }).isRequired,\r\n combineText: PropTypes.func.isRequired,\r\n adDisplayUrlService: PropTypes.object.isRequired,\r\n odata: PropTypes.PropTypes.shape({\r\n get: PropTypes.func.isRequired,\r\n patch: PropTypes.func.isRequired,\r\n }).isRequired,\r\n schemaCampaignVnext: PropTypes.object,\r\n validator: PropTypes.object,\r\n }).isRequired,\r\n guid: PropTypes.string, // for adinsight view event log in aria\r\n viewType: PropTypes.string,\r\n ccJsData: PropTypes.object, // eslint-disable-line react/forbid-prop-types\r\n vnextDeps: PropTypes.object, // eslint-disable-line react/forbid-prop-types\r\n };\r\n\r\n static defaultProps = {\r\n scope: null,\r\n showAlertHandler: _.noop,\r\n guid: null,\r\n viewType: null,\r\n ccJsData: null,\r\n vnextDeps: null,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.initializeInstrumentation();\r\n // don't initialize if scope is not set\r\n if (this.props.scope != null) {\r\n this.initializeDataService();\r\n this.initializeDownloadService();\r\n }\r\n }\r\n initializeDownloadService() {\r\n const {\r\n pageContext,\r\n i18n,\r\n odata,\r\n } = this.props.deps;\r\n const { permissions } = this.props.deps;\r\n this.downloadService = null;\r\n this.downloadService = new RecommendationDownloadService({\r\n alertCenter: window.App.views.alertCenter,\r\n getODataErrors: _.noop,\r\n i18n,\r\n odata,\r\n pageContext,\r\n permissions,\r\n currentActivity: this.currentActivity,\r\n });\r\n }\r\n\r\n initializeInstrumentation() {\r\n const { instrumentation } = this.props.deps;\r\n instrumentation.addScenario(schema);\r\n this.currentScenario = instrumentation.loadRecommendationTab.create();\r\n this.currentActivity = this.currentScenario.loadRecommendationTab.create();\r\n }\r\n\r\n initializeDataService() {\r\n const {\r\n appConfig,\r\n permissions,\r\n pageContext,\r\n i18n,\r\n } = this.props.deps;\r\n const odataPath = appConfig.get('adinsight.odata.url');\r\n this.dataService = new RecommendationService({\r\n scope: this.props.scope,\r\n showAlertHandler: this.props.showAlertHandler,\r\n i18n,\r\n currentScenario: this.currentScenario,\r\n currentActivity: this.currentActivity,\r\n odataPath,\r\n permissions,\r\n lcid: pageContext.CultureLcid,\r\n pageContext,\r\n ccJsData: this.props.ccJsData || (this.props.vnextDeps && this.props.vnextDeps.ccJsData),\r\n alertCenter: window.App.views.alertCenter,\r\n channel: CHANNEL_TYPES.RECOMMENDATION,\r\n });\r\n }\r\n\r\n render() {\r\n const { appConfig, pageContext } = this.props.deps;\r\n const source = appConfig.get('recsrc') || urlUtil.getParameter('recsrc');\r\n\r\n // clean 'recsrc' after get the viewType, because sometimes this render() function will run\r\n // twice, so if clean the 'recsrc' at 1st time, we can't get 'recsrc' anymore\r\n if (this.props.viewType) {\r\n appConfig.set('recsrc', null);\r\n }\r\n\r\n return (\r\n
\r\n {this.props.scope && }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport const RecommendationTabContainer =\r\n withCcJsData(withScope(withNavigation(RecommendationTabContainerView)));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { FocusTrapCallout, Text, Stack, DirectionalHint, DefaultButton, PrimaryButton } from '@bingads-webui-react/fabric-control';\r\nimport { withLock, keyVault, priorityLevel } from '@bingads-webui-react/popup-manager';\r\n\r\nconst styles = {\r\n teachingBubble: 'recommendation-teaching-bubble',\r\n header: 'header',\r\n title: 'title',\r\n inner: 'inner',\r\n subtext: 'subtext',\r\n buttons: 'buttons',\r\n primaryButton: 'primary-button',\r\n secondaryButton: 'secondary-button',\r\n pageIndex: 'page-index',\r\n footer: 'footer',\r\n textStyle: {\r\n root: [\r\n {\r\n color: '#ffffff',\r\n },\r\n ],\r\n },\r\n};\r\n\r\nclass TeachingBubble extends React.PureComponent {\r\n static propTypes = {\r\n i18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n title: PropTypes.string.isRequired,\r\n pageIndex: PropTypes.number,\r\n pageCount: PropTypes.number,\r\n primaryButtonContent: PropTypes.string.isRequired,\r\n secondaryButtonContent: PropTypes.string,\r\n target: PropTypes.string.isRequired,\r\n onDismiss: PropTypes.func.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n primaryButtonAction: PropTypes.func.isRequired,\r\n secondaryButtonAction: PropTypes.func,\r\n children: PropTypes.node.isRequired,\r\n withPages: PropTypes.bool,\r\n directionalHint: PropTypes.number,\r\n withCloseButton: PropTypes.bool,\r\n name: PropTypes.string,\r\n doNotLayer: PropTypes.bool,\r\n };\r\n\r\n static defaultProps = {\r\n secondaryButtonContent: null,\r\n secondaryButtonAction: () => null,\r\n withPages: true,\r\n withCloseButton: true,\r\n pageIndex: 0,\r\n pageCount: 0,\r\n directionalHint: DirectionalHint.bottomLeftEdge,\r\n name: '',\r\n doNotLayer: false,\r\n };\r\n\r\n onCalloutDismiss = (event) => {\r\n if (event && event.keyCode === 27) {\r\n // keyboard ESC click\r\n this.props.onDismiss();\r\n }\r\n };\r\n\r\n preventDismissOnEvent = (event) => {\r\n if (event && event.type === 'scroll') {\r\n // When grid table render, it will trigger resize, which will cause teaching bubble dismiss.\r\n // Add this check to prevent this dismiss.\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n render() {\r\n const {\r\n title,\r\n pageIndex,\r\n pageCount,\r\n primaryButtonContent,\r\n secondaryButtonContent,\r\n target,\r\n onClose,\r\n primaryButtonAction,\r\n secondaryButtonAction,\r\n children,\r\n i18n,\r\n withPages,\r\n directionalHint,\r\n withCloseButton,\r\n name,\r\n doNotLayer,\r\n } = this.props;\r\n\r\n\r\n return (\r\n \r\n
\r\n {title}\r\n
\r\n
\r\n
\r\n \r\n {children}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n {primaryButtonContent}\r\n \r\n {secondaryButtonContent &&\r\n \r\n {secondaryButtonContent}\r\n }\r\n \r\n {withPages &&\r\n
\r\n {pageIndex} \r\n {i18n.getString(_TL_('of'))}\r\n \r\n {pageCount}\r\n
\r\n }\r\n
\r\n {withCloseButton &&\r\n \r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nexport const TeachingBubbleWithLock = withLock(TeachingBubble, {\r\n lockKey: keyVault.teachingBubble,\r\n priority: priorityLevel.teachingBubble,\r\n autoClose: true,\r\n});\r\n","/* eslint-disable jsx-a11y/anchor-is-valid, no-script-url, react/no-unused-prop-types */\r\nimport _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n withFilterCategory,\r\n CHANNEL_ALL_RECOMMENDATIONS,\r\n CHANNEL_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport {\r\n getPreferences,\r\n PREFERENCES_ACTION_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-preferences';\r\nimport { withUserGovernance } from '@bingads-webui-campaign-react/popup-components';\r\nimport { TeachingBubbleWithLock } from './teaching-bubble';\r\n\r\nclass optimizationScoreTeachingBubble extends React.Component {\r\n static propTypes = {\r\n i18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n preferencesService: PropTypes.objectOf(PropTypes.any).isRequired,\r\n currentActivity: PropTypes.shape({\r\n trace: PropTypes.func.isRequired,\r\n error: PropTypes.func.isRequired,\r\n }).isRequired,\r\n overallOptimizationScoreBar: PropTypes.shape({\r\n Available: PropTypes.number,\r\n }),\r\n categoryScoreUpLifts: PropTypes.arrayOf(PropTypes.shape({\r\n Category: PropTypes.string,\r\n ScoreUpLift: PropTypes.number,\r\n })),\r\n type: PropTypes.string,\r\n data: PropTypes.shape(_.reduce(\r\n CHANNEL_ALL_RECOMMENDATIONS[CHANNEL_TYPES.RECOMMENDATION],\r\n recommendation => ({\r\n [recommendation]: PropTypes.object,\r\n }),\r\n {}\r\n )),\r\n onDone: PropTypes.func.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n onDismiss: PropTypes.func.isRequired,\r\n };\r\n\r\n static defaultProps = {\r\n overallOptimizationScoreBar: null,\r\n categoryScoreUpLifts: [],\r\n type: null,\r\n data: [],\r\n };\r\n\r\n state = {\r\n step: 0,\r\n };\r\n\r\n next = () => {\r\n this.setState({ step: this.state.step + 1 });\r\n }\r\n\r\n previous = () => {\r\n this.setState({ step: this.state.step - 1 });\r\n }\r\n\r\n isOnBoard() {\r\n return !_.result(\r\n getPreferences(this.props.preferencesService),\r\n PREFERENCES_ACTION_TYPES.OptimizationScoreOnboard\r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n i18n,\r\n overallOptimizationScoreBar,\r\n categoryScoreUpLifts,\r\n type,\r\n data,\r\n onDone,\r\n onDismiss,\r\n onClose,\r\n } = this.props;\r\n\r\n const hasOptimizationScore = !_.isNull(overallOptimizationScoreBar)\r\n && !_.isUndefined(overallOptimizationScoreBar.Available);\r\n const anyCategoryOptimizationScore = !_.isEmpty(categoryScoreUpLifts);\r\n const anySummaryCardOptimizationScore =\r\n _.isNull(type) || _.isEmpty(type)\r\n ? _.any(_.map(data, typeLevelRecommendation =>\r\n !_.isNull(typeLevelRecommendation.optimizationScore)))\r\n : data[type] && !_.isNull(data[type].optimizationScore);\r\n\r\n let stepCount = 0;\r\n if (hasOptimizationScore) {\r\n if (anyCategoryOptimizationScore) {\r\n if (anySummaryCardOptimizationScore) {\r\n stepCount = 3;\r\n } else {\r\n stepCount = 2;\r\n }\r\n } else {\r\n stepCount = 1;\r\n }\r\n }\r\n\r\n const titles = [\r\n i18n.getString(_TL_('Optimization score: How well you\\'re set up to get the most from your account or campaign.')),\r\n i18n.getString(_TL_('Understanding score uplifts')),\r\n i18n.getString(_TL_('Boost your optimization score by applying individual recommendations')),\r\n ];\r\n\r\n const contents = [\r\n (\r\n
\r\n
\r\n {i18n.getString(_TL_('Your optimization score runs from 0% to 100%, with 100% meaning that your account or campaign can function at its full potential.'))}\r\n
\r\n
\r\n {i18n.getString(_TL_('Optimization score is only shown for active search campaigns at the campaign and account level.'))}\r\n
\r\n
\r\n ),\r\n i18n.getString(_TL_('This is the uplift to your optimization score if you adopt the recommendations in this category.')),\r\n i18n.getString(_TL_('Individual recommendations also have their own score uplift. Apply recommendations whenever you can to improve campaign performance!')),\r\n ];\r\n\r\n const targets = [\r\n '.overall-score-value',\r\n '.category-score-upLift',\r\n '.summary-card-os-tag-container',\r\n ];\r\n\r\n return stepCount > 0 && this.isOnBoard() && (\r\n
\r\n {\r\n _.map(_.range(stepCount), step =>\r\n this.state.step === step && (\r\n step + 1\r\n ? i18n.getString(_TL_('Next'))\r\n : i18n.getString(_TL_('Got it!'))\r\n }\r\n primaryButtonAction={\r\n stepCount > step + 1\r\n ? this.next\r\n : () => onDone()\r\n }\r\n secondaryButtonContent={\r\n step === 0\r\n ? ''\r\n : i18n.getString(_TL_('Previous'))\r\n }\r\n secondaryButtonAction={this.previous}\r\n target={targets[step]}\r\n onDismiss={onDismiss}\r\n onClose={onClose}\r\n >\r\n {contents[step]}\r\n \r\n ))\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport const OptimizationScoreTeachingBubble =\r\n withFilterCategory(optimizationScoreTeachingBubble);\r\n\r\n\r\nexport const OptimizationScoreTeachingBubbleWithUserGovernance = withUserGovernance(OptimizationScoreTeachingBubble);\r\n","/* eslint-disable jsx-a11y/aria-role */\r\n/* eslint-disable no-cond-assign */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport classNames from 'classnames';\r\nimport { fromLegacyTimeZone, toIANATimeZone } from '@bingads-webui-universal/time-zone-converter';\r\nimport { Checkbox } from '@bingads-webui-react/checkbox';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { LearnMoreLink } from '@bingads-webui-campaign-react/help';\r\nimport {\r\n RECOMMENDATION_CATEGORIES_IDS,\r\n recommendationConfigs,\r\n withGetAutoApplyOptInStatus,\r\n RECOMMENDATION_CATEGORIES_WORDING,\r\n RECOMMENDATION_TYPES,\r\n RECOMMENDATION_AUTO_APPLY_SETTINGS_TOOLTIPS,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { TooltipHost, DirectionalHint, TooltipDelay } from '@fluentui/react';\r\nimport { getAutpApplySettingsStyle } from './style/apply-settings-style';\r\n\r\nclass recommendationsAutoApplySettings extends React.PureComponent {\r\n static propTypes = {\r\n navigateBack: PropTypes.func.isRequired,\r\n data: PropTypes.objectOf(PropTypes.any).isRequired,\r\n optInStatus: PropTypes.objectOf(PropTypes.any).isRequired,\r\n getCategories: PropTypes.func.isRequired,\r\n i18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n appConfig: PropTypes.objectOf(PropTypes.any).isRequired,\r\n newI18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n readOnly: PropTypes.bool,\r\n dataService: PropTypes.shape({\r\n setAutoApplyOptInStatus: PropTypes.func.isRequired,\r\n }).isRequired,\r\n reload: PropTypes.func.isRequired,\r\n propsId: PropTypes.string.isRequired,\r\n classes: PropTypes.objectOf(PropTypes.string).isRequired,\r\n viewHistory: PropTypes.func.isRequired,\r\n reloadSummaryPage: PropTypes.func.isRequired,\r\n hideAutoApplyTeachingBubble: PropTypes.func.isRequired,\r\n scope: PropTypes.shape({\r\n customerId: PropTypes.string.isRequired,\r\n accountId: PropTypes.string.isRequired,\r\n levelAt: PropTypes.string.isRequired,\r\n campaignId: PropTypes.string,\r\n adGroupId: PropTypes.string,\r\n }).isRequired,\r\n permissions: PropTypes.shape({}),\r\n };\r\n\r\n static defaultProps = {\r\n readOnly: false,\r\n permissions: {},\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.props.hideAutoApplyTeachingBubble();\r\n this.state = {\r\n optInStatus: this.props.optInStatus,\r\n prevPropsId: this.props.propsId,\r\n };\r\n }\r\n\r\n static getDerivedStateFromProps(nextProps, state) {\r\n if (nextProps.propsId !== state.prevPropsId) {\r\n return {\r\n optInStatus: nextProps.optInStatus,\r\n prevPropsId: nextProps.propsId,\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n onSave = () => {\r\n const {\r\n data, dataService, reload, reloadSummaryPage,\r\n } = this.props;\r\n const isOptInStatusDelta = _.omit(this.state.optInStatus, (status, type) =>\r\n data[type].IsOptIn === status);\r\n dataService.setAutoApplyOptInStatus({ isOptInStatusDelta })\r\n .finally(withUiBlock($('.auto-apply-settings-container')))\r\n .finally(() => reloadSummaryPage())\r\n .finally(() => reload());\r\n }\r\n\r\n handleAutoApplyOptionChange = (type) => {\r\n const { optInStatus } = this.state;\r\n this.setState({\r\n optInStatus: { ...optInStatus, [type]: !optInStatus[type] },\r\n });\r\n }\r\n\r\n formatDateWithAccountTimeZone = (latestUpdateTime) => {\r\n const { i18n, appConfig } = this.props;\r\n const latestUpdatedDate = new Date(latestUpdateTime);\r\n const accountTimeZone = toIANATimeZone(fromLegacyTimeZone(appConfig.get('AccountTimeZone')));\r\n return i18n.formatDate(latestUpdatedDate, { timeZone: accountTimeZone });\r\n }\r\n\r\n render() {\r\n const {\r\n getCategories,\r\n navigateBack,\r\n i18n,\r\n newI18n,\r\n data,\r\n classes,\r\n viewHistory,\r\n scope,\r\n permissions,\r\n } = this.props;\r\n\r\n const categories = getCategories({}, data, { isAutoApplySettings: true });\r\n\r\n const hostStyles = {\r\n root: {\r\n display: 'inline-block',\r\n },\r\n };\r\n\r\n const calloutProps = { gapSpace: 7 };\r\n\r\n const tooltipProps = {\r\n maxWidth: '324px',\r\n styles: {\r\n root: {\r\n padding: '8px 10px',\r\n },\r\n },\r\n delay: TooltipDelay.long,\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n {i18n.getString('Back_To_Recommendation')}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {newI18n.getString(_TL_('Auto-apply recommendation settings'))}\r\n
\r\n
\r\n \r\n {newI18n.getString(_TL_('Select which type of recommendations to auto-apply to your account. When you opt in, we’ll let you know when recommendations designed to improve performance are ready for your review. After the review period, we will automatically apply them to your account.'))}\r\n \r\n \r\n |\r\n viewHistory()}\r\n >\r\n {newI18n.getString(_TL_('View recommendation apply history'))}\r\n \r\n
\r\n
\r\n {!permissions.IsRSAAndMMAOnboardAARSettingsPageEnabled ?\r\n (\r\n
\r\n \r\n {newI18n.getString(_TL_('Go to the '))}\r\n \r\n {newI18n.getString(_TL_('account level options page'))}\r\n \r\n \r\n {newI18n.getString(_TL_(' to update the auto-apply setting for Responsive Search ads and Multimedia ads.'))}\r\n \r\n
\r\n ) : null\r\n }\r\n
\r\n {_.map(RECOMMENDATION_CATEGORIES_IDS, (category) => {\r\n if (_.contains(categories, category)) {\r\n return (\r\n
\r\n
\r\n {newI18n.getString(_TL_(RECOMMENDATION_CATEGORIES_WORDING[category]))}\r\n
\r\n
\r\n {_.map(_.pick(data, _.matcher({ Category: category })), (entity) => {\r\n const type = entity.RecommendationType;\r\n const tooltipElement = (\r\n
\r\n \r\n {newI18n.getString(RECOMMENDATION_AUTO_APPLY_SETTINGS_TOOLTIPS[type].text)}\r\n \r\n \r\n
\r\n );\r\n return (\r\n \r\n this.handleAutoApplyOptionChange(type)}\r\n >\r\n {`${i18n.getString(recommendationConfigs[type].summaryTitle)}${entity.IsOptIn\r\n && type !== RECOMMENDATION_TYPES.RESPONSIVE_SEARCH_ADS\r\n && type !== RECOMMENDATION_TYPES.MULTIMEDIA_ADS ?\r\n ` (${_.isString(entity.LatestUpdateTime) ? i18n.getString('Recommendation_AutoApplySettings_OptInTime', { latestUpdateTime: this.formatDateWithAccountTimeZone(entity.LatestUpdateTime) }) : 'Recommended'})` : ''}`}\r\n \r\n \r\n );\r\n })}\r\n
\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n })}\r\n
\r\n
\r\n \r\n {newI18n.getString(_TL_('Save'))}\r\n \r\n \r\n {newI18n.getString(_TL_('Cancel'))}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport const RecommendationsAutoApplySettings =\r\n withDefaultStyles(\r\n withGetAutoApplyOptInStatus(recommendationsAutoApplySettings),\r\n getAutpApplySettingsStyle\r\n );\r\n\r\n","/* eslint-disable no-unused-vars */\r\nexport const getAutpApplySettingsStyle = (_, { palette = {} }) => ({\r\n recommendationAutoApplySettings: {\r\n '& .recommendation-navigate-back-ground': {\r\n height: 44,\r\n display: 'flex',\r\n background: '#F3F2F1',\r\n borderBottom: 'solid 1px #e1dfdd',\r\n '& .recommendation-navigate-back': {\r\n marginLeft: 10,\r\n '& .iconba-Back': {\r\n color: '#0078D4',\r\n },\r\n '& .recommendation-navigate-back-text': {\r\n color: '#0078D4',\r\n marginLeft: 8,\r\n },\r\n },\r\n },\r\n '& .auto-apply-settings-container': {\r\n marginTop: 24,\r\n marginLeft: 32,\r\n marginRight: 32,\r\n '& .auto-apply-settings-pitching': {\r\n marginTop: 24,\r\n borderBottom: `1px solid ${palette.neutralSecondary}`,\r\n paddingBottom: 24,\r\n '& .pitching-text': {\r\n lineHeight: '24px',\r\n },\r\n '& .HelpTopic': {\r\n textDecoration: 'unset',\r\n },\r\n '& .history-page-link, & .spliter': {\r\n color: '#0078d4',\r\n },\r\n },\r\n '& .auto-apply-settings-title': {\r\n fontSize: 20,\r\n fontWeight: 'bold',\r\n },\r\n '& .auto-apply-settings-group': {\r\n marginTop: 10,\r\n '& .category-group-container': {\r\n marginBottom: 36,\r\n '& .category-title': {\r\n marginBottom: 16,\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n },\r\n '& .category-group': {\r\n display: 'grid',\r\n gridTemplateColumns: '600px 600px',\r\n\r\n '& .ms-TooltipHost': {\r\n width: 'fit-content',\r\n },\r\n },\r\n },\r\n },\r\n '& .auto-apply-settings-action-buttons .btn-primary': {\r\n marginRight: 8,\r\n },\r\n '& .ad-settings-link': {\r\n marginTop: 24,\r\n marginBottom: 26,\r\n paddingTop: 8,\r\n paddingBottom: 8,\r\n paddingLeft: 8,\r\n background: palette.themeLighterAlt,\r\n '& a': {\r\n textDecoration: 'unset',\r\n },\r\n '& span, & a': {\r\n fontSize: 12,\r\n },\r\n '& .iconba': {\r\n marginRight: 8,\r\n },\r\n },\r\n },\r\n },\r\n});\r\n","/* eslint-disable jsx-a11y/anchor-is-valid, react/no-unused-prop-types */\r\nimport _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { StateStore } from '@bingads-webui/state-store';\r\nimport { withStateStore } from '@bingads-webui/with-state-store';\r\nimport { notificationStore } from '@bingads-webui-react/notification-center';\r\nimport {\r\n CHANNEL_ALL_RECOMMENDATIONS,\r\n CHANNEL_TYPES,\r\n isReadOnly,\r\n RECOMMENDATION_CATEGORIES_IDS,\r\n RECOMMENDATION_CATEGORIES,\r\n NOT_SUPPORT_DOWNLOAD_TYPES,\r\n ADINSIGHT_LOG_API_NAME,\r\n ADINSIGHT_LOG_ACTION_TYPE,\r\n RECOMMENDATION_IDS,\r\n VIEW_TYPES,\r\n FAC_RECOMMENDATION_CONFIG,\r\n FAC_RECOMENDATIONTYPE_FEATUREID_MAPPING,\r\n sharedComponentFunctionStateStore,\r\n getRecommendationCache,\r\n setRecommendationCache,\r\n RECOMMENDATION_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { DownloadToolbarButton } from '@bingads-webui-campaign-react/recommendation-visuals';\r\nimport { RecommendationModal, AsyncApplyForm, ConfirmForm } from '@bingads-webui-campaign-react/recommendation-modal';\r\n\r\nimport * as adDisplayUrlService from '@bingads-webui-campaign-legacy/crud-ad/service/displayUrl';\r\nimport { combineText } from '@bingads-webui-campaign-legacy/crud-ad/viewmodel/adsPreview/expandedTextAd';\r\nimport { TeachingBubble, getTeachingBubbleUserGovernanceConfig } from '@bingads-webui-campaign-react/popup-components';\r\nimport { findSiteMap } from '@bingads-webui-campaign-react/with-site-map';\r\n\r\nimport { OptimizationScoreTeachingBubbleWithUserGovernance } from './optimization-score-teacching-bubble';\r\nimport { RecommendationsAutoApplySettings } from './recommendations-auto-apply-settings';\r\n\r\nexport class recommendationTab extends React.Component {\r\n static propTypes = {\r\n campaignAdGroups: PropTypes.arrayOf(PropTypes.object),\r\n campaignType: PropTypes.number,\r\n categoryType: PropTypes.string,\r\n channel: PropTypes.string.isRequired,\r\n currentActivity: PropTypes.shape({\r\n trace: PropTypes.func.isRequired,\r\n error: PropTypes.func.isRequired,\r\n }).isRequired,\r\n data: PropTypes.shape(_.reduce(\r\n CHANNEL_ALL_RECOMMENDATIONS[CHANNEL_TYPES.RECOMMENDATION],\r\n recommendation => ({\r\n [recommendation]: PropTypes.object,\r\n }),\r\n {}\r\n )),\r\n dismissedData: PropTypes.shape(_.reduce(\r\n CHANNEL_ALL_RECOMMENDATIONS[CHANNEL_TYPES.RECOMMENDATION],\r\n recommendation => ({\r\n [recommendation]: PropTypes.object,\r\n }),\r\n {}\r\n )),\r\n dataService: PropTypes.shape({\r\n getSummary: PropTypes.func.isRequired,\r\n getCount: PropTypes.func.isRequired,\r\n track: PropTypes.func.isRequired,\r\n }).isRequired,\r\n el: PropTypes.string.isRequired,\r\n scope: PropTypes.shape({\r\n customerId: PropTypes.number.isRequired,\r\n accountId: PropTypes.number.isRequired,\r\n levelAt: PropTypes.string.isRequired,\r\n campaignId: PropTypes.number,\r\n adGroupId: PropTypes.number,\r\n }).isRequired,\r\n hasFilter: PropTypes.bool,\r\n recommendationType: PropTypes.string,\r\n reload: PropTypes.func,\r\n showAlertHandler: PropTypes.func.isRequired,\r\n source: PropTypes.string,\r\n setData: PropTypes.func.isRequired,\r\n hasLoadToken: PropTypes.func.isRequired,\r\n viewCategory: PropTypes.func.isRequired,\r\n backToRecommendation: PropTypes.func,\r\n lastRecommendationType: PropTypes.string,\r\n lastCampaignId: PropTypes.string,\r\n lastAdGroupId: PropTypes.string,\r\n viewDetails: PropTypes.func.isRequired,\r\n viewBAADetails: PropTypes.func,\r\n viewSummary: PropTypes.func.isRequired,\r\n viewHistory: PropTypes.func,\r\n viewType: PropTypes.string.isRequired,\r\n deps: PropTypes.shape({\r\n appConfig: PropTypes.objectOf(PropTypes.any).isRequired,\r\n appState: PropTypes.object.isRequired,\r\n i18n: PropTypes.object.isRequired,\r\n s$i18n: PropTypes.object,\r\n instrumentation: PropTypes.object.isRequired,\r\n jsdata: PropTypes.object.isRequired,\r\n legacyRouter: PropTypes.object.isRequired,\r\n pageContext: PropTypes.object.isRequired,\r\n permissions: PropTypes.object.isRequired,\r\n preferencesService: PropTypes.objectOf(PropTypes.any).isRequired,\r\n constants: PropTypes.shape({\r\n imagePath: PropTypes.string.isRequired,\r\n }).isRequired,\r\n combineText: PropTypes.func,\r\n adDisplayUrlService: PropTypes.object,\r\n odata: PropTypes.PropTypes.shape({\r\n get: PropTypes.func.isRequired,\r\n patch: PropTypes.func.isRequired,\r\n }).isRequired,\r\n schemaCampaignVnext: PropTypes.object,\r\n validator: PropTypes.object,\r\n cacheManager: PropTypes.object,\r\n }).isRequired,\r\n vnextDeps: PropTypes.shape({\r\n customMapperStore: PropTypes.PropTypes.shape({\r\n setState: PropTypes.func,\r\n }),\r\n recommendationDataStore: PropTypes.PropTypes.shape({\r\n setState: PropTypes.func,\r\n }),\r\n newI18n: PropTypes.object,\r\n }),\r\n guid: PropTypes.string, // for adinsight view event log in aria\r\n // eslint-disable-next-line react/forbid-prop-types, react/require-default-props\r\n perfMarker: PropTypes.object,\r\n isMCC: PropTypes.bool,\r\n // eslint-disable-next-line react/forbid-prop-types\r\n overallOptimizationScoreBar: PropTypes.object,\r\n categoryScoreUpLifts: PropTypes.arrayOf(PropTypes.object),\r\n serverContext: PropTypes.shape({}).isRequired,\r\n classes: PropTypes.objectOf(PropTypes.string),\r\n store: PropTypes.instanceOf(StateStore),\r\n availableCategories: PropTypes.arrayOf(PropTypes.string),\r\n rawCouponData: PropTypes.arrayOf(PropTypes.object),\r\n };\r\n\r\n static defaultProps = {\r\n campaignType: null,\r\n categoryType: null,\r\n recommendationType: null,\r\n source: null,\r\n isMCC: false,\r\n vnextDeps: {},\r\n guid: null,\r\n viewHistory: _.noop,\r\n viewBAADetails: _.noop,\r\n backToRecommendation: _.noop,\r\n lastRecommendationType: undefined,\r\n reload: _.noop,\r\n campaignAdGroups: [],\r\n hasFilter: false,\r\n data: {},\r\n dismissedData: {},\r\n lastCampaignId: undefined,\r\n lastAdGroupId: undefined,\r\n overallOptimizationScoreBar: {},\r\n categoryScoreUpLifts: [],\r\n classes: {},\r\n store: null,\r\n availableCategories: [],\r\n rawCouponData: null,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n const { permissions, preferencesService } = this.props.deps;\r\n const { isMCC, channel } = this.props;\r\n this.isOptimizationScoreOn = !isMCC && channel === CHANNEL_TYPES.RECOMMENDATION;\r\n this.isDismissedTabEnabled = this.isOptimizationScoreOn && _.result(permissions, 'IsDismissedTabEnabled');\r\n this.isAutoApplyRecommendationEnabled = !isMCC && _.result(permissions, 'IsAutoApplyRecommendationEnabled');\r\n this.recommendationsDetailsLazy = null;\r\n this.recommendationsHistoryLazy = null;\r\n this.recommendationsBulkAARLazy = null;\r\n this.filteredSummaryViewLazy = null;\r\n preferencesService.initialize();\r\n }\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n // if props passes in a category, that overrides the previous state\r\n const prevCategory = prevState && prevState.currentCategory;\r\n const currentCategory = nextProps.categoryType || prevCategory;\r\n\r\n return {\r\n currentCategory,\r\n };\r\n }\r\n\r\n state = {\r\n isAsyncApplyModalOpen: false,\r\n isApplyConfirmModalOpen: false,\r\n countRecommendation: 0,\r\n autoApplyTeachingBubbleVisible: !window.location.href.includes('isAutoApplyTeachingBubbleDisabled=true'),\r\n optimizationScoreTeachingBubbleVisible: !window.location.href.includes('isOSTeachingBubbleDisabled=true'),\r\n };\r\n\r\n componentDidMount() {\r\n if (window.survey && window.survey.surveyManager) {\r\n window.survey.surveyManager.trigger();\r\n }\r\n if (this.props.viewType !== VIEW_TYPES.HISTORY\r\n && this.props.viewType !== VIEW_TYPES.AUTO_APPLY_SETTINGS\r\n && this.props.viewType !== VIEW_TYPES.AUTO_APPLY_BULK_UPLOAD\r\n && this.props.viewType !== VIEW_TYPES.DETAILS) {\r\n this.updateSitemap();\r\n }\r\n\r\n if (this.props.viewType === VIEW_TYPES.SUMMARY\r\n && this.props.scope.levelAt === 'Campaign'\r\n && !_.isEmpty(this.props.data)) {\r\n this.checkCampaignStatus();\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const isFromDetail = (prevProps.viewType === VIEW_TYPES.DETAILS &&\r\n this.props.viewType === VIEW_TYPES.SUMMARY) && !this.props.hasLoadToken();\r\n if (prevProps.campaignType !== this.props.campaignType || isFromDetail) {\r\n this.props.reload();\r\n }\r\n if (prevProps.data !== this.props.data) {\r\n // Filter category for VNext but not for history, auto-apply-setting, auto-apply-bulk-upload page\r\n if (this.props.viewType !== VIEW_TYPES.HISTORY\r\n && this.props.viewType !== VIEW_TYPES.AUTO_APPLY_SETTINGS\r\n && this.props.viewType !== VIEW_TYPES.AUTO_APPLY_BULK_UPLOAD) {\r\n this.updateSitemap();\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const { permissions, cacheManager } = this.props.deps;\r\n if (this.props.isMCC) {\r\n this.props.deps.appState.unset('account_id');\r\n }\r\n if (this.floatingBannerId) {\r\n notificationStore.dismiss(this.floatingBannerId);\r\n }\r\n\r\n // After apply/dismiss trigger, invalidate campaign cache when leaving recommendation page.\r\n if (permissions.IsRecommendationDataCacheEnabled\r\n && !_.isNull(cacheManager)\r\n && !_.isUndefined(getRecommendationCache('need-invalidate-campaign-cache'))\r\n && getRecommendationCache('need-invalidate-campaign-cache') === true) {\r\n setRecommendationCache('need-invalidate-campaign-cache', false);\r\n cacheManager.invalidate('Campaign');\r\n }\r\n\r\n // Apply/dismiss recommendation: invalidate recommendation summary data cache.\r\n if (permissions.IsRecommendationCacheDetailPageDataEnabled\r\n && !_.isUndefined(getRecommendationCache('recommendation-summary-raw-data'))) {\r\n setRecommendationCache('recommendation-summary-raw-data', undefined);\r\n }\r\n }\r\n\r\n getCategories = (availableCategories = [], data = {}, op = {}) => {\r\n let categories;\r\n if (this.props.isMCC || !this.isOptimizationScoreOn) {\r\n categories = _.unique(_.pluck(data, op.isAutoApplySettings ? 'Category' : 'category'));\r\n } else {\r\n categories = op.isAutoApplySettings ?\r\n _.unique(_.pluck(data, 'Category')) : availableCategories;\r\n }\r\n\r\n if (_.isEmpty(categories)) {\r\n return [];\r\n } else if (op.isAutoApplySettings) {\r\n return categories;\r\n }\r\n\r\n return _.filter(RECOMMENDATION_CATEGORIES, category =>\r\n category === RECOMMENDATION_CATEGORIES.ALL ||\r\n _.contains(categories, RECOMMENDATION_CATEGORIES_IDS[category]));\r\n };\r\n\r\n checkCampaignStatus = () => {\r\n this.props.deps.jsdata.Campaign.findAll({\r\n limit: 1,\r\n select: ['DeliveryStatus'],\r\n where: { Id: { $eq: this.props.scope.campaignId } },\r\n }, {}).then((response) => {\r\n if (response.length && response.length > 0 && response[0].DeliveryStatus === 'CampaignUserPaused') {\r\n const customizedMessage = (\r\n
\r\n {this.props.vnextDeps.newI18n.getString(_TL_('Enable this paused campaign to start showing ads.'))}\r\n {\r\n this.props.store.state.updateCampaignStatus({ id: 'active' });\r\n notificationStore.dismiss(this.floatingBannerId);\r\n }}\r\n style={{\r\n background: '#FFFFFF',\r\n border: '1px solid #C8C6C4',\r\n boxSizing: 'border-box',\r\n borderRadius: 2,\r\n width: 105,\r\n height: 24,\r\n position: 'relative',\r\n left: 81,\r\n }}\r\n >\r\n {this.props.vnextDeps.newI18n.getString(_TL_('Click to enable'))}\r\n \r\n
\r\n );\r\n this.floatingBannerId = this.props.showAlertHandler({\r\n message: customizedMessage,\r\n level: 'Warning',\r\n dismissible: true,\r\n });\r\n }\r\n });\r\n };\r\n\r\n sitemapper = (siteMap) => {\r\n const { availableCategories, isMCC } = this.props;\r\n const recommendationSiteMap = findSiteMap(siteMap, ({ id }) => id === 'recommendations');\r\n if (recommendationSiteMap && _.size(recommendationSiteMap.children)) {\r\n recommendationSiteMap.children = _.filter(\r\n recommendationSiteMap.children,\r\n item => item.id === 'All'\r\n || (isMCC || !this.isOptimizationScoreOn ?\r\n (_.contains(this.getCategories([], this.props.data), item.id)\r\n || (this.isDismissedTabEnabled &&\r\n _.contains(this.getCategories([], this.props.dismissedData), item.id)))\r\n : _.contains(this.getCategories(availableCategories), item.id))\r\n );\r\n }\r\n return siteMap;\r\n };\r\n\r\n updateSitemap = () => {\r\n // renew sitemapper to update the categories\r\n // eslint-disable-next-line max-len\r\n this.props.vnextDeps.customMapperStore.setState({ customMapper: siteMap => this.sitemapper(siteMap) });\r\n };\r\n\r\n logOpportunityEvent = ({\r\n type = null,\r\n action,\r\n position = null,\r\n input = null,\r\n context = null,\r\n }) => {\r\n const guid = action === ADINSIGHT_LOG_ACTION_TYPE.FEEDBACK ?\r\n null :\r\n this.props.guid;\r\n\r\n this.props.currentActivity.trace({\r\n type: type || '',\r\n typeId: RECOMMENDATION_IDS[type],\r\n action,\r\n input,\r\n campaignId: this.props.scope.campaignId,\r\n channel: this.props.isMCC ? CHANNEL_TYPES.MCCRECOMMENDATION : CHANNEL_TYPES.RECOMMENDATION,\r\n position,\r\n guid,\r\n context: JSON.stringify(context),\r\n }, ADINSIGHT_LOG_API_NAME.RECOMMENDATION);\r\n };\r\n\r\n addCouponToRecommendations = (rawCouponData, rawRecommendationData) => {\r\n if (!_.isNull(rawCouponData) && rawCouponData.length) {\r\n const coupon = rawCouponData[0];\r\n const couponFeatureId = coupon.FeatureId.toString();\r\n if (_.isUndefined(FAC_RECOMMENDATION_CONFIG[couponFeatureId])) {\r\n return;\r\n }\r\n const priorities = FAC_RECOMMENDATION_CONFIG[couponFeatureId].priority;\r\n const types = _.keys(rawRecommendationData);\r\n\r\n const couponEligibleType = _.chain(types)\r\n .filter(type => _.contains(priorities, type))\r\n .sortBy(type => _.indexOf(priorities, type))\r\n .first()\r\n .value();\r\n\r\n if (couponEligibleType && _.isUndefined(rawRecommendationData[couponEligibleType].coupon)) {\r\n _.extend(rawRecommendationData[couponEligibleType], { coupon });\r\n }\r\n }\r\n };\r\n\r\n showAsyncApplyModal = (pollTask) => {\r\n this.pollTask = pollTask;\r\n this.setState({ isAsyncApplyModalOpen: true });\r\n };\r\n\r\n closeAsyncApplyModal = () => {\r\n this.pollTask.stop();\r\n this.setState({ isAsyncApplyModalOpen: false });\r\n };\r\n\r\n showApplyConfirmModal = ({\r\n onApply, countRecommendation, onReject = _.noop, type,\r\n }) => {\r\n _.defer(() => this.setState({ isApplyConfirmModalOpen: true, countRecommendation }));\r\n this.onApplyConfirm = onApply;\r\n this.onApplyReject = onReject;\r\n this.onApplyRecommendationType = type;\r\n };\r\n\r\n closeApplyConfirmModal = () => {\r\n this.setState({ isApplyConfirmModalOpen: false });\r\n };\r\n\r\n confirmApplyConfirmModal = () => {\r\n if (_.isFunction(this.onApplyConfirm)) {\r\n this.onApplyConfirm();\r\n }\r\n this.closeApplyConfirmModal();\r\n };\r\n\r\n rejectApplyConfirmModal = () => {\r\n if (_.isFunction(this.onApplyReject)) {\r\n this.onApplyReject();\r\n }\r\n this.closeApplyConfirmModal();\r\n };\r\n\r\n initLegacyDeps = () => {\r\n if (_.isUndefined(this.props.deps.adDisplayUrlService)) {\r\n this.props.deps.adDisplayUrlService = adDisplayUrlService;\r\n }\r\n if (_.isUndefined(this.props.deps.combineText)) {\r\n this.props.deps.combineText = combineText;\r\n }\r\n };\r\n\r\n renderDownloadButton = (context, isOptimizationScoreOn = false) => (\r\n \r\n );\r\n\r\n render() {\r\n let { currentCategory } = this.state;\r\n const currency = this.props.deps.pageContext.AccountCurrencyCode;\r\n const readOnly = isReadOnly && isReadOnly(this.props.deps.appConfig, this.props.isMCC);\r\n const {\r\n i18n,\r\n permissions,\r\n } = this.props.deps;\r\n const {\r\n overallOptimizationScoreBar,\r\n availableCategories,\r\n data,\r\n dismissedData,\r\n rawCouponData,\r\n } = this.props;\r\n\r\n let categories;\r\n if (this.props.isMCC || !this.isOptimizationScoreOn) {\r\n categories = this.isDismissedTabEnabled ?\r\n this.getCategories([], data).concat(this.getCategories([], dismissedData)) :\r\n this.getCategories([], data);\r\n } else {\r\n categories = this.getCategories(availableCategories);\r\n }\r\n this.categories = categories;\r\n\r\n // Resolve invalid category\r\n if (this.props.viewType === VIEW_TYPES.SUMMARY && !_.contains(categories, currentCategory)\r\n && currentCategory !== RECOMMENDATION_CATEGORIES.ALL\r\n ) {\r\n currentCategory = RECOMMENDATION_CATEGORIES.ALL;\r\n this.props.viewCategory(RECOMMENDATION_CATEGORIES.ALL)();\r\n }\r\n\r\n if (_.any(\r\n data,\r\n rec => _.has(FAC_RECOMENDATIONTYPE_FEATUREID_MAPPING, rec.type)\r\n )) {\r\n this.addCouponToRecommendations(rawCouponData, data);\r\n }\r\n\r\n const isDismissedCategory = currentCategory === RECOMMENDATION_CATEGORIES.DISMISSED;\r\n\r\n const context = {\r\n Source: null,\r\n Level: this.props.scope.levelAt,\r\n Category: this.props.channel !== 'competitionpage' ? currentCategory : null,\r\n CampaignIds: this.props.scope.campaignId ? [Number(this.props.scope.campaignId)] : [],\r\n AdGroupIds: this.props.scope.adGroupId ? [Number(this.props.scope.adGroupId)] : [],\r\n };\r\n\r\n // add Source if not from recommendation summary page\r\n if (this.props.viewType === VIEW_TYPES.DETAILS && this.props.source !== 'summarypage') {\r\n context.Source = this.props.source;\r\n }\r\n\r\n // set recommendation data for subpage menu\r\n if (this.isOptimizationScoreOn) {\r\n this.props.vnextDeps.recommendationDataStore.setState({\r\n overallOptimizationScoreBar,\r\n categoryScoreUpLifts: this.props.categoryScoreUpLifts,\r\n renderDownloadButton: _.partial(this.renderDownloadButton, context),\r\n isAutoApplyRecommendationEnabled: this.isAutoApplyRecommendationEnabled\r\n && !this.props.isMCC,\r\n });\r\n }\r\n\r\n let recommendationsDetails = null;\r\n if (this.props.viewType === VIEW_TYPES.DETAILS) {\r\n if (_.isNull(this.recommendationsDetailsLazy)) {\r\n this.recommendationsDetailsLazy = React.lazy(() => import(/* webpackMode: 'eager' */ './recommendations-details-view').then(({ RecommendationsDetails }) => ({ default: RecommendationsDetails })));\r\n }\r\n const RecommendationsDetailsLazy = this.recommendationsDetailsLazy;\r\n recommendationsDetails = ();\r\n }\r\n\r\n let recommendationsHistory = null;\r\n if (this.props.viewType === VIEW_TYPES.HISTORY) {\r\n if (_.isNull(this.recommendationsHistoryLazy)) {\r\n this.recommendationsHistoryLazy = React.lazy(() => import(/* webpackMode: 'eager' */ './recommendations-history').then(({ RecommendationsHistory }) => ({ default: RecommendationsHistory })));\r\n }\r\n const RecommendationsHistoryLazy = this.recommendationsHistoryLazy;\r\n recommendationsHistory = ();\r\n }\r\n\r\n let recommendationBulkAAR = null;\r\n if (this.props.viewType === VIEW_TYPES.AUTO_APPLY_BULK_UPLOAD) {\r\n if (_.isNull(this.recommendationsBulkAARLazy)) {\r\n this.recommendationsBulkAARLazy = React.lazy(() => import(/* webpackMode: 'eager' */ './recommendations-bulk-aar').then(({ RecommendationsBulkAAR }) => ({ default: RecommendationsBulkAAR })));\r\n }\r\n const RecommendationsBulkAARLazy = this.recommendationsBulkAARLazy;\r\n recommendationBulkAAR = ();\r\n }\r\n\r\n let filteredSummaryView = null;\r\n if (this.props.viewType === VIEW_TYPES.SUMMARY) {\r\n if (_.isNull(this.filteredSummaryViewLazy)) {\r\n this.filteredSummaryViewLazy = React.lazy(() => import(/* webpackMode: 'eager' */ '@bingads-webui-campaign-react/recommendation-summary-view').then(({ FilteredSummaryView }) => ({ default: FilteredSummaryView })));\r\n }\r\n this.initLegacyDeps();\r\n const FilteredSummaryViewLazy = this.filteredSummaryViewLazy;\r\n filteredSummaryView = ();\r\n }\r\n\r\n let confirmFormTitle;\r\n let confirmFormContent;\r\n if (this.onApplyRecommendationType === RECOMMENDATION_TYPES.SSC_2_PMAX_MIGRATION) {\r\n confirmFormTitle = this.state.countRecommendation === 1 ?\r\n this.props.vnextDeps.newI18n.getString(_TL_('Are you sure you want to upgrade smart shopping campaign to Performance Max campaigns?')) :\r\n this.props.vnextDeps.newI18n.getString(_TL_('Are you sure you want to upgrade all smart shopping campaigns to Performance Max campaigns?'));\r\n confirmFormContent = this.props.vnextDeps.newI18n.getString(_TL_('Once you confirm, the upgrade process will continue until it completes and cannot be discontinued.'));\r\n } else {\r\n confirmFormTitle = this.state.countRecommendation === 1 ?\r\n i18n.getString('Summary_Card_Apply') :\r\n i18n.getString('Summary_Card_Apply_All');\r\n confirmFormContent = this.state.countRecommendation === 1 ?\r\n i18n.getString('Recommendation_Apply_All_Confirm_Singular') :\r\n i18n.getString('Recommendation_Apply_All_Confirm', { count: this.state.countRecommendation });\r\n }\r\n\r\n return (\r\n
\r\n {this.props.viewType !== VIEW_TYPES.HISTORY\r\n && this.props.viewType !== VIEW_TYPES.AUTO_APPLY_SETTINGS\r\n && this.props.viewType !== VIEW_TYPES.AUTO_APPLY_BULK_UPLOAD &&\r\n
    \r\n {(this.props.viewType === VIEW_TYPES.SUMMARY &&\r\n _.difference(_.keys(this.props.data), NOT_SUPPORT_DOWNLOAD_TYPES).length !== 0) &&\r\n !this.props.isMCC && this.props.channel === CHANNEL_TYPES.COMPETITION &&\r\n
  • \r\n {this.renderDownloadButton(context)}\r\n
  • \r\n }\r\n \r\n
\r\n }\r\n {this.props.viewType === VIEW_TYPES.DETAILS &&\r\n
\r\n \r\n {recommendationsDetails}\r\n \r\n
\r\n }\r\n {this.props.viewType === VIEW_TYPES.SUMMARY &&\r\n
\r\n \r\n {filteredSummaryView}\r\n \r\n
\r\n }\r\n {this.props.viewType === VIEW_TYPES.HISTORY &&\r\n
\r\n \r\n {recommendationsHistory}\r\n \r\n
\r\n }\r\n {this.props.viewType === VIEW_TYPES.AUTO_APPLY_BULK_UPLOAD &&\r\n
\r\n \r\n {recommendationBulkAAR}\r\n \r\n
\r\n }\r\n {this.isAutoApplyRecommendationEnabled\r\n && this.props.viewType === VIEW_TYPES.AUTO_APPLY_SETTINGS &&\r\n
\r\n \r\n this.setState({ autoApplyTeachingBubbleVisible: false })}\r\n scope={this.props.scope}\r\n permissions={permissions}\r\n />\r\n
\r\n }\r\n \r\n {\r\n this.closeAsyncApplyModal();\r\n this.props.viewHistory();\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n this.isOptimizationScoreOn && this.state.optimizationScoreTeachingBubbleVisible && this.props.viewType === VIEW_TYPES.SUMMARY &&\r\n { this.setState({ optimizationScoreTeachingBubbleVisible: false }); }}\r\n onDismiss={() => { this.setState({ optimizationScoreTeachingBubbleVisible: false }); }}\r\n onClose={() => { this.setState({ optimizationScoreTeachingBubbleVisible: false }); }}\r\n userGovernanceConfig={getTeachingBubbleUserGovernanceConfig()}\r\n />\r\n }\r\n {this.isAutoApplyRecommendationEnabled &&\r\n this.state.autoApplyTeachingBubbleVisible && this.props.viewType === VIEW_TYPES.SUMMARY &&\r\n { this.setState({ autoApplyTeachingBubbleVisible: false }); }}\r\n onDismiss={() => { this.setState({ autoApplyTeachingBubbleVisible: false }); }}\r\n onClose={() => { this.setState({ autoApplyTeachingBubbleVisible: false }); }}\r\n primaryButtonText={this.props.vnextDeps.newI18n.getString(_TL_('Got it'))}\r\n targetElement={document.querySelector('.recommendation-auto-apply-item')}\r\n className=\"recommendation-auto-apply-teaching-bubble\"\r\n />\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport const RecommendationTab =\r\n withStateStore(recommendationTab, sharedComponentFunctionStateStore);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _, { result } from 'underscore';\r\nimport { StyledRecommendationBulkAAR } from '@bingads-webui-campaign-react/recommendation-bulk-aar';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { getHistoryPageStyle } from '../style/history-page-style';\r\n\r\nclass recommendationsBulkAAR extends React.PureComponent {\r\n static propTypes = {\r\n navigateBack: PropTypes.func.isRequired,\r\n deps: PropTypes.shape({\r\n appConfig: PropTypes.objectOf(PropTypes.any).isRequired,\r\n i18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n preferencesService: PropTypes.objectOf(PropTypes.any).isRequired,\r\n }).isRequired,\r\n dataService: PropTypes.shape({\r\n getHistory: PropTypes.func.isRequired,\r\n downloadHistory: PropTypes.func.isRequired,\r\n }).isRequired,\r\n currentActivity: PropTypes.shape({\r\n trace: PropTypes.func.isRequired,\r\n error: PropTypes.func.isRequired,\r\n }).isRequired,\r\n perfMarker: PropTypes.shape({\r\n willInit: PropTypes.func.isRequired,\r\n willFetchData: PropTypes.func.isRequired,\r\n willRender: PropTypes.func.isRequired,\r\n done: PropTypes.func.isRequired,\r\n createChild: PropTypes.func.isRequired,\r\n }),\r\n newI18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n classes: PropTypes.objectOf(PropTypes.string).isRequired,\r\n viewSummary: PropTypes.func.isRequired,\r\n serverContext: PropTypes.shape({}).isRequired,\r\n isAutoApplyRecommendationEnabled: PropTypes.bool.isRequired,\r\n };\r\n\r\n static defaultProps = {\r\n perfMarker: {\r\n willInit: _.noop,\r\n willFetchData: _.noop,\r\n willRender: _.noop,\r\n done: _.noop,\r\n createChild: () => this,\r\n },\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.perfMarker = props.perfMarker.createChild('RecommendationHistoryGridOverall');\r\n if (_.isFunction(this.perfMarker.willInit)) {\r\n this.perfMarker.willInit();\r\n }\r\n this.perfMarkerDone = false;\r\n }\r\n\r\n componentDidMount = () => {\r\n if (_.isFunction(this.perfMarker.willFetchData)) {\r\n this.perfMarker.willFetchData();\r\n }\r\n if (result(this.props.serverContext, 'IsProdEnv') && result(result(this.props.serverContext, ['CurrentCustomer']), ['Id']) !== 252258370) {\r\n this.props.viewSummary();\r\n }\r\n };\r\n\r\n componentDidUpdate = () => {\r\n if (!this.perfMarkerDone) {\r\n if (_.isFunction(this.perfMarker.done)) {\r\n this.perfMarker.done();\r\n }\r\n this.perfMarkerDone = true;\r\n }\r\n };\r\n\r\n render() {\r\n if (_.isFunction(this.perfMarker.willRender)) {\r\n this.perfMarker.willRender();\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport const RecommendationsBulkAAR =\r\n withDefaultStyles((recommendationsBulkAAR), getHistoryPageStyle);\r\n","/* eslint-disable jsx-a11y/aria-role */\r\nimport _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { DetailsSummary } from '@bingads-webui-campaign-react/recommendation-details-view';\r\nimport {\r\n getDetailsSummary,\r\n AUTO_APPLY_TYPES,\r\n SUPPORT_ADINSIGHT_AUTO_APPLY_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class RecommendationsDetailsHeader extends React.PureComponent {\r\n static propTypes = {\r\n data: PropTypes.objectOf(PropTypes.any),\r\n scope: PropTypes.shape({\r\n levelAt: PropTypes.string.isRequired,\r\n advertiserCustomerId: PropTypes.number.isRequired,\r\n userId: PropTypes.number.isRequired,\r\n accountId: PropTypes.number.isRequired,\r\n }).isRequired,\r\n type: PropTypes.string.isRequired,\r\n navigateBack: PropTypes.func.isRequired,\r\n currency: PropTypes.string.isRequired,\r\n deps: PropTypes.shape({\r\n i18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n appConfig: PropTypes.objectOf(PropTypes.any).isRequired,\r\n permissions: PropTypes.object.isRequired,\r\n odata: PropTypes.PropTypes.shape({\r\n get: PropTypes.func.isRequired,\r\n patch: PropTypes.func.isRequired,\r\n }).isRequired,\r\n preferencesService: PropTypes.objectOf(PropTypes.any),\r\n }).isRequired,\r\n visible: PropTypes.bool.isRequired,\r\n isMCC: PropTypes.bool,\r\n overallOptimizationScoreBar: PropTypes.shape({\r\n Gained: PropTypes.number,\r\n Dismissed: PropTypes.number,\r\n Available: PropTypes.number,\r\n }),\r\n isOptimizationScoreOn: PropTypes.bool,\r\n context: PropTypes.shape({\r\n Source: PropTypes.string,\r\n Level: PropTypes.string,\r\n Category: PropTypes.string,\r\n }),\r\n newI18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func,\r\n }),\r\n isAutoApplyRecommendationEnabled: PropTypes.bool,\r\n viewSettings: PropTypes.func,\r\n isDismissedCategory: PropTypes.bool,\r\n };\r\n\r\n static defaultProps = {\r\n data: null,\r\n isMCC: false,\r\n overallOptimizationScoreBar: null,\r\n isOptimizationScoreOn: false,\r\n context: null,\r\n newI18n: {\r\n getString: _.noop,\r\n },\r\n isAutoApplyRecommendationEnabled: false,\r\n viewSettings: _.noop,\r\n isDismissedCategory: false,\r\n };\r\n\r\n render() {\r\n if (!this.props.visible) {\r\n return (null);\r\n }\r\n // get summary model from data\r\n const normalizedData =\r\n _.isUndefined(this.props.data[this.props.type]) ?\r\n {} : this.props.data[this.props.type];\r\n let showAutoApplyBanner;\r\n if (this.props.isAutoApplyRecommendationEnabled) {\r\n showAutoApplyBanner = _.contains(\r\n _.keys(AUTO_APPLY_TYPES).concat(SUPPORT_ADINSIGHT_AUTO_APPLY_TYPES),\r\n this.props.type\r\n )\r\n && !this.props.isMCC\r\n && normalizedData.isAutoApplyOptIn\r\n && new URLSearchParams(window.location.search).get('IsRSAAutoApplyEnabled') !== 'false';\r\n } else {\r\n showAutoApplyBanner = _.contains(_.keys(AUTO_APPLY_TYPES), this.props.type)\r\n && !this.props.isMCC\r\n && this.props.deps.permissions.IsRSAAutoApplyEnabled\r\n && normalizedData.optInStatus\r\n && new URLSearchParams(window.location.search).get('IsRSAAutoApplyEnabled') !== 'false';\r\n }\r\n\r\n const { summary } = getDetailsSummary(_.extend(\r\n {},\r\n normalizedData,\r\n {\r\n i18n: this.props.deps.i18n,\r\n newI18n: this.props.newI18n,\r\n currency: this.props.currency,\r\n scope: this.props.scope.levelAt,\r\n appConfig: this.props.deps.appConfig,\r\n permissions: this.props.deps.permissions,\r\n isMCC: this.props.isMCC,\r\n showAutoApplyBanner,\r\n isAutoApplyRecommendationEnabled: this.props.isAutoApplyRecommendationEnabled,\r\n }\r\n ));\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","/* eslint-disable jsx-a11y/aria-role */\r\n/* eslint-disable no-cond-assign */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { CHANNEL_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\nimport * as adDisplayUrlService from '@bingads-webui-campaign-legacy/crud-ad/service/displayUrl';\r\nimport { combineText } from '@bingads-webui-campaign-legacy/crud-ad/viewmodel/adsPreview/expandedTextAd';\r\nimport * as schemaCampaignVnext from '@bingads-webui-component-legacy/schema-campaign-vnext/index';\r\n\r\nexport class RecommendationsDetails extends React.PureComponent {\r\n static propTypes = {\r\n scope: PropTypes.shape({\r\n accountId: PropTypes.number.isRequired,\r\n adGroupId: PropTypes.number,\r\n campaignId: PropTypes.number,\r\n customerId: PropTypes.number.isRequired,\r\n levelAt: PropTypes.string.isRequired,\r\n }).isRequired,\r\n campaignType: PropTypes.number,\r\n source: PropTypes.string,\r\n setData: PropTypes.func.isRequired,\r\n prevCategoryType: PropTypes.string,\r\n navigateBack: PropTypes.func.isRequired,\r\n type: PropTypes.string.isRequired,\r\n currency: PropTypes.string.isRequired,\r\n deps: PropTypes.shape({\r\n i18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n s$i18n: PropTypes.PropTypes.shape({\r\n value: PropTypes.func,\r\n }),\r\n appConfig: PropTypes.objectOf(PropTypes.any).isRequired,\r\n permissions: PropTypes.object.isRequired,\r\n odata: PropTypes.PropTypes.shape({\r\n get: PropTypes.func.isRequired,\r\n patch: PropTypes.func.isRequired,\r\n }).isRequired,\r\n adDisplayUrlService: PropTypes.object,\r\n schemaCampaignVnext: PropTypes.object,\r\n combineText: PropTypes.func,\r\n }).isRequired,\r\n dataService: PropTypes.shape({\r\n getSummary: PropTypes.func.isRequired,\r\n track: PropTypes.func.isRequired,\r\n }).isRequired,\r\n showAlertHandler: PropTypes.func.isRequired,\r\n reload: PropTypes.func.isRequired,\r\n guid: PropTypes.string.isRequired, // for adinsight view event log in aria\r\n downloadService: PropTypes.objectOf(PropTypes.any),\r\n viewDetails: PropTypes.func.isRequired,\r\n viewBAADetails: PropTypes.func,\r\n context: PropTypes.shape({\r\n Source: PropTypes.string,\r\n Level: PropTypes.string,\r\n Category: PropTypes.string,\r\n }),\r\n data: PropTypes.objectOf(PropTypes.any),\r\n // eslint-disable-next-line react/forbid-prop-types, react/require-default-props\r\n perfMarker: PropTypes.shape({\r\n willInit: PropTypes.func.isRequired,\r\n willFetchData: PropTypes.func.isRequired,\r\n willRender: PropTypes.func.isRequired,\r\n done: PropTypes.func.isRequired,\r\n createChild: PropTypes.func.isRequired,\r\n }),\r\n isMCC: PropTypes.bool,\r\n readOnly: PropTypes.bool,\r\n showAsyncApplyModal: PropTypes.func,\r\n closeAsyncApplyModal: PropTypes.func,\r\n showApplyConfirmModal: PropTypes.func,\r\n overallOptimizationScoreBar: PropTypes.shape({\r\n Gained: PropTypes.number,\r\n Dismissed: PropTypes.number,\r\n Available: PropTypes.number,\r\n }),\r\n isOptimizationScoreOn: PropTypes.bool,\r\n isAutoApplyRecommendationEnabled: PropTypes.bool,\r\n serverContext: PropTypes.shape({}),\r\n isDismissedCategory: PropTypes.bool,\r\n };\r\n\r\n static defaultProps = {\r\n campaignType: null,\r\n source: null,\r\n prevCategoryType: null,\r\n downloadService: null,\r\n context: null,\r\n data: null,\r\n perfMarker: {\r\n willInit: _.noop,\r\n willFetchData: _.noop,\r\n willRender: _.noop,\r\n done: _.noop,\r\n createChild: () => this,\r\n },\r\n readOnly: false,\r\n viewBAADetails: _.noop,\r\n isMCC: false,\r\n showAsyncApplyModal: _.noop,\r\n closeAsyncApplyModal: _.noop,\r\n showApplyConfirmModal: _.noop,\r\n overallOptimizationScoreBar: null,\r\n isOptimizationScoreOn: false,\r\n isAutoApplyRecommendationEnabled: false,\r\n serverContext: {},\r\n isDismissedCategory: false,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.perfMarker = props.perfMarker.createChild('RecommendationDetailsGridOverall');\r\n if (_.isFunction(this.perfMarker.willInit)) {\r\n this.perfMarker.willInit();\r\n }\r\n this.hasSetData = false;\r\n this.recommendationsDetailsHeaderLazy = null;\r\n this.recommendationsGridContainerLazy = null;\r\n this.initLegacyDeps();\r\n }\r\n\r\n state = {\r\n showDetailsHeader: true,\r\n loaded: false,\r\n }\r\n\r\n componentDidMount = () => {\r\n if (_.isFunction(this.perfMarker.willFetchData)) {\r\n this.perfMarker.willFetchData();\r\n }\r\n };\r\n\r\n setDataFromDetails = () => {\r\n this.hasSetData = true;\r\n }\r\n\r\n initLegacyDeps = () => {\r\n if (_.isUndefined(this.props.deps.adDisplayUrlService)) {\r\n this.props.deps.adDisplayUrlService = adDisplayUrlService;\r\n }\r\n if (_.isUndefined(this.props.deps.schemaCampaignVnext)) {\r\n this.props.deps.schemaCampaignVnext = schemaCampaignVnext;\r\n }\r\n if (_.isUndefined(this.props.deps.combineText)) {\r\n this.props.deps.combineText = combineText;\r\n }\r\n }\r\n\r\n receiveMessage = (event, data = {}) => {\r\n const showInfoEvent = /showInfo:(.*)/g;\r\n const showWarningEvent = /showWarning:(.*)/g;\r\n let match;\r\n\r\n if (event === 'loaded') {\r\n if (!this.state.loaded) {\r\n if (_.isFunction(this.perfMarker.done)) {\r\n this.perfMarker.done();\r\n }\r\n }\r\n this.setState({ loaded: true });\r\n } else if (event === 'individualView') {\r\n this.setState({ showDetailsHeader: false });\r\n } else if (event === 'allView') {\r\n this.setState({ showDetailsHeader: true });\r\n } else if (event === 'back') {\r\n this.props.navigateBack();\r\n } else if (event === 'refreshSummary') {\r\n this.props.reload({ isFromApplyOrDismiss: data.isFromApplyOrDismiss });\r\n } else if ((match = showInfoEvent.exec(event)) !== null) {\r\n if (match.length === 2) {\r\n this.props.showAlertHandler({\r\n message: match[1],\r\n level: 'Info',\r\n dismissible: true,\r\n });\r\n }\r\n this.props.reload();\r\n } else if ((match = showWarningEvent.exec(event)) !== null) {\r\n if (match.length === 2) {\r\n this.props.showAlertHandler({\r\n message: match[1],\r\n level: 'Warning',\r\n dismissible: true,\r\n });\r\n }\r\n this.props.reload();\r\n } else if (event === 'updateScope') {\r\n if (this.props.isMCC) {\r\n this.props.viewBAADetails(this.props.type, data, this.props.prevCategoryType)();\r\n } else {\r\n this.props.viewDetails(this.props.type, data)();\r\n }\r\n } else if (event === 'showAsyncApplyModal') {\r\n this.props.showAsyncApplyModal(data);\r\n } else if (event === 'closeAsyncApplyModal') {\r\n this.props.closeAsyncApplyModal();\r\n } else if (event === 'showApplyConfirmModal') {\r\n this.props.showApplyConfirmModal(data);\r\n }\r\n }\r\n\r\n render() {\r\n if (_.isFunction(this.perfMarker.willRender)) {\r\n this.perfMarker.willRender();\r\n }\r\n\r\n const hasData = (this.props.data && this.props.data[this.props.type]) || {};\r\n if (this.hasSetData && _.isEmpty(hasData)) {\r\n this.props.navigateBack();\r\n return null;\r\n }\r\n\r\n if (_.isNull(this.recommendationsDetailsHeaderLazy)) {\r\n this.recommendationsDetailsHeaderLazy = React.lazy(() => import(/* webpackMode: 'eager' */ './recommendations-details-header').then(({ RecommendationsDetailsHeader }) => ({ default: RecommendationsDetailsHeader })));\r\n }\r\n const ReRecommendationsDetailsHeaderLazy = this.recommendationsDetailsHeaderLazy;\r\n\r\n const topOfGridContent = !_.isEmpty(hasData) ? (\r\n \r\n ) : null;\r\n\r\n let recommendationsGridContainer = null;\r\n if (_.isNull(this.recommendationsGridContainerLazy)) {\r\n this.recommendationsGridContainerLazy = React.lazy(() => import(/* webpackMode: 'eager' */ '@bingads-webui-campaign-react/recommendation-grid-container').then(({ RecommendationsGridContainer }) => ({ default: RecommendationsGridContainer })));\r\n }\r\n const RecommendationsGridContainerLazy = this.recommendationsGridContainerLazy;\r\n recommendationsGridContainer = ();\r\n\r\n return (\r\n
\r\n \r\n {recommendationsGridContainer}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { PureComponent } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport class RecommendationHistoryHeader extends PureComponent {\r\n static propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n navigateBack: PropTypes.func.isRequired,\r\n }\r\n\r\n render() {\r\n const {\r\n i18n, navigateBack,\r\n } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n {i18n.getString('Back_To_Recommendation')}\r\n \r\n \r\n
\r\n

\r\n {i18n.getString('Apply_History')}\r\n

\r\n
\r\n {i18n.getString('Apply_History_Explanation')}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport template from './one-line-text.pug';\r\n\r\nexport class EditedByColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'EditedBy',\r\n property: 'RecommendationResult/EditedBy',\r\n title: i18n.getString('ColumnName_EditedBy'),\r\n bodyClasses: ['grid-column-editted-by'],\r\n colClasses: ['col-text'],\r\n type: 'string',\r\n });\r\n }\r\n\r\n template({\r\n value: {\r\n EditorName,\r\n },\r\n }) {\r\n return template({ content: EditorName });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { formatInteger } from '@bingads-webui-campaign/recommendation-core';\r\nimport template from './one-line-text.pug';\r\n\r\nexport class NumberOfRecommendationColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n }) {\r\n const title = i18n.getString('ColumnName_NumberOfRecommendation');\r\n super({\r\n name: 'NumberOfRecommendation',\r\n property: 'RecommendationResult/NumberOfRecommendation',\r\n title,\r\n bodyClasses: ['grid-column-number-of-recommendation'],\r\n colClasses: ['col-text'],\r\n type: 'number',\r\n helpId: 'Pop_BA_Recommendations_MCC_TotalRec',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.i18n = i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n TotalRecommendationCount,\r\n },\r\n }) {\r\n return template({\r\n content:\r\n _.isNull(TotalRecommendationCount) ?\r\n this.i18n.getString('In_Progress') :\r\n formatInteger(TotalRecommendationCount, this.i18n),\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n key: 'RecommendationResult/NumberOfRecommendation',\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { recommendationConfigs } from '@bingads-webui-campaign/recommendation-core';\r\nimport template from './one-line-text.pug';\r\n\r\nexport class RecommendationTypeColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n const title = i18n.getString('ColumnName_RecommendationType');\r\n super({\r\n name: 'RecommendationType',\r\n property: 'RecommendationResult/RecommendationType',\r\n title,\r\n bodyClasses: ['grid-column-recommendation-type'],\r\n colClasses: ['col-text'],\r\n });\r\n\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n }\r\n\r\n\r\n template({\r\n value: {\r\n RecommendationType,\r\n },\r\n }) {\r\n const recommendationConfig = recommendationConfigs[RecommendationType];\r\n if (_.isUndefined(recommendationConfig)) {\r\n return null;\r\n }\r\n\r\n const useNewI18n = !_.isUndefined(recommendationConfig.useNewI18n) ?\r\n recommendationConfig.useNewI18n : false;\r\n\r\n return template({\r\n content: useNewI18n ?\r\n this.newI18n.getString(recommendationConfigs[RecommendationType].summaryTitle) :\r\n this.i18n.getString(recommendationConfigs[RecommendationType].summaryTitle),\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport { fromLegacyTimeZone, toIANATimeZone } from '@bingads-webui-universal/time-zone-converter';\r\nimport template from './one-line-text.pug';\r\n\r\nexport class StartTimeColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n, appConfig }) {\r\n const title = i18n.getString('ColumnName_StartTime');\r\n super({\r\n name: 'StartTime',\r\n property: 'RecommendationResult/StartTime',\r\n title,\r\n bodyClasses: ['grid-column-start-time'],\r\n colClasses: ['col-text'],\r\n helpId: 'Pop_BA_Recommendations_MCC_StartTime',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.appConfig = appConfig;\r\n this.i18n = i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n Timestamp,\r\n },\r\n }) {\r\n const timeStamp = new Date(Timestamp);\r\n const accountTimeZone = toIANATimeZone(fromLegacyTimeZone(this.appConfig.get('AccountTimeZone')));\r\n const date = this.i18n.formatDate(timeStamp, { timeZone: accountTimeZone, datetime: 'medium' });\r\n\r\n return template({ content: date });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\nimport {\r\n formatInteger,\r\n NOT_SUPPORT_DOWNLOAD_TYPES,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport template from './status.pug';\r\n\r\nexport class StatusColumn extends ProjectionGridBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'Status',\r\n property: 'RecommendationResult/Status',\r\n title: i18n.getString('ColumnName_Status'),\r\n bodyClasses: ['grid-column-status'],\r\n colClasses: ['col-status'],\r\n });\r\n\r\n this.i18n = i18n;\r\n }\r\n\r\n template({\r\n value: {\r\n SuccessRecommendationCount,\r\n TotalRecommendationCount,\r\n FailedRecommendationCount,\r\n AdoptionStatus,\r\n RecommendationType,\r\n },\r\n }) {\r\n return template({\r\n i18n: this.i18n,\r\n formatedFailedRecommendationCount: formatInteger(\r\n TotalRecommendationCount - SuccessRecommendationCount,\r\n this.i18n\r\n ),\r\n formatedSuccessRecommendationCount: formatInteger(SuccessRecommendationCount, this.i18n),\r\n failedRecommendationCount: TotalRecommendationCount - SuccessRecommendationCount,\r\n successRecommendationCount: SuccessRecommendationCount,\r\n downloadable: !_.contains(NOT_SUPPORT_DOWNLOAD_TYPES, RecommendationType)\r\n && FailedRecommendationCount > 0,\r\n AdoptionStatus,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: _.identity,\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { HISTORY_PAGE_TAB_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\n\r\nexport class RecommendationHistoryGridService {\r\n constructor(recommendationService, currentActivity) {\r\n this.recommendationService = recommendationService;\r\n this.currentActivity = currentActivity;\r\n }\r\n\r\n findAll(op) {\r\n return this.recommendationService.getHistory().then((res) => {\r\n if (_.isFunction(this.currentActivity.trace)) {\r\n this.currentActivity.trace(\r\n 'view history page',\r\n 'recommendation/history'\r\n );\r\n }\r\n const { data } = res;\r\n\r\n // filter item with 'RSA auto upgrade' editorName\r\n data.value = _.filter(data.value, rec => rec.EditorName !== 'RSA auto upgrade');\r\n\r\n let gridData;\r\n\r\n if (_.isEmpty(data.value)) {\r\n gridData = [];\r\n gridData.totalCount = 0;\r\n } else if (op.selectedTab && op.selectedTab !== HISTORY_PAGE_TAB_TYPES.ALL) {\r\n gridData = _.filter(data.value, rec => (op.selectedTab === HISTORY_PAGE_TAB_TYPES.MANUAL ?\r\n !rec.IsAARSuperUser : rec.IsAARSuperUser));\r\n gridData.totalCount = gridData.length;\r\n } else {\r\n gridData = data.value;\r\n gridData.totalCount = gridData.length;\r\n }\r\n\r\n return gridData;\r\n });\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport { mapColumnsConfig } from '@bingads-webui/projection-grid-base-column';\r\nimport { EditedByColumn } from './columns/edited-by';\r\nimport { NumberOfRecommendationColumn } from './columns/number-of-recommendation';\r\nimport { RecommendationTypeColumn } from './columns/recommendation-type';\r\nimport { StartTimeColumn } from './columns/start-time';\r\nimport { StatusColumn } from './columns/status';\r\nimport { RecommendationHistoryGridService } from './grid-service';\r\n\r\nconst columns = [\r\n StartTimeColumn,\r\n RecommendationTypeColumn,\r\n NumberOfRecommendationColumn,\r\n EditedByColumn,\r\n StatusColumn,\r\n];\r\n\r\nexport function getConfig({\r\n i18n,\r\n newI18n,\r\n el,\r\n recommendationService,\r\n appConfig,\r\n currentActivity,\r\n}) {\r\n const gridService = new RecommendationHistoryGridService(recommendationService, currentActivity);\r\n const headRows = [\r\n 'top-filler',\r\n 'column-header-rows',\r\n ];\r\n const scrolling = {\r\n header: {\r\n type: 'sticky',\r\n offset: () => $('nav.navbar-default.navbar-fixed-top').height(),\r\n },\r\n virtualized: false,\r\n };\r\n\r\n return {\r\n name: 'RecommendationResultGrid',\r\n tableClasses: ['table', 'table-bordered'],\r\n columns: mapColumnsConfig(columns, {\r\n i18n,\r\n newI18n,\r\n appConfig,\r\n }),\r\n plugins: {\r\n uiBlocker: {\r\n el,\r\n },\r\n },\r\n rows: {\r\n headRows,\r\n },\r\n dataSource: {\r\n type: 'js-data',\r\n entity: gridService,\r\n },\r\n scrolling,\r\n };\r\n}\r\n","import Backbone from 'backbone';\r\nimport $ from 'jquery';\r\nimport * as pgrid from 'projection-grid';\r\nimport { uiBlockerPlugin } from '@bingads-webui/projection-grid-uiblocker';\r\nimport { getConfig } from './grid-config';\r\nimport template from './template.pug';\r\n\r\nexport class RecommendationHistoryGrid extends Backbone.View {\r\n initialize({\r\n i18n,\r\n newI18n,\r\n recommendationService,\r\n appConfig,\r\n currentActivity,\r\n }) {\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n this.appConfig = appConfig;\r\n this.currentActivity = currentActivity;\r\n this.recommendationService = recommendationService;\r\n\r\n this.gridFactory = pgrid.factory({ vnext: true })\r\n .use(uiBlockerPlugin);\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .recommendation-history-download': 'download',\r\n };\r\n }\r\n\r\n download(e) {\r\n const key = $(e.target).parents('tr[data-key]').data('key');\r\n const { AdoptionId } = this.grid.gridView.itemWithKey(key);\r\n this.recommendationService.downloadHistory(AdoptionId);\r\n }\r\n\r\n render() {\r\n this.$el.html(template());\r\n\r\n const config = getConfig({\r\n i18n: this.i18n,\r\n newI18n: this.newI18n,\r\n el: this.$('.recommendation-result-grid'),\r\n view: this,\r\n recommendationService: this.recommendationService,\r\n appConfig: this.appConfig,\r\n currentActivity: this.currentActivity,\r\n });\r\n\r\n this.grid = this.gridFactory.create(config);\r\n const $grid = this.grid.gridView.render().$el;\r\n this.$('.grid-table').append($grid);\r\n return this;\r\n }\r\n}\r\n","/* eslint-disable jsx-a11y/aria-role */\r\n/* eslint-disable no-cond-assign */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { RecommendationHistoryHeader } from '@bingads-webui-campaign-react/recommendation-history-header';\r\nimport { RecommendationHistoryGrid } from '@bingads-webui-campaign/recommendation-history-grid';\r\nimport { BackboneInstanceWrapper } from '@bingads-webui-react/backbone-instance-wrapper';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { HISTORY_PAGE_TAB_TYPES } from '@bingads-webui-campaign/recommendation-core';\r\nimport { getHistoryPageStyle } from '../style/history-page-style';\r\n\r\nclass recommendationsHistory extends React.PureComponent {\r\n static propTypes = {\r\n navigateBack: PropTypes.func.isRequired,\r\n deps: PropTypes.shape({\r\n appConfig: PropTypes.objectOf(PropTypes.any).isRequired,\r\n i18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n preferencesService: PropTypes.objectOf(PropTypes.any).isRequired,\r\n }).isRequired,\r\n dataService: PropTypes.shape({\r\n getHistory: PropTypes.func.isRequired,\r\n downloadHistory: PropTypes.func.isRequired,\r\n }).isRequired,\r\n currentActivity: PropTypes.shape({\r\n trace: PropTypes.func.isRequired,\r\n error: PropTypes.func.isRequired,\r\n }).isRequired,\r\n // eslint-disable-next-line react/forbid-prop-types, react/require-default-props\r\n perfMarker: PropTypes.shape({\r\n willInit: PropTypes.func.isRequired,\r\n willFetchData: PropTypes.func.isRequired,\r\n willRender: PropTypes.func.isRequired,\r\n done: PropTypes.func.isRequired,\r\n createChild: PropTypes.func.isRequired,\r\n }),\r\n newI18n: PropTypes.PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n classes: PropTypes.objectOf(PropTypes.string).isRequired,\r\n isAutoApplyRecommendationEnabled: PropTypes.bool.isRequired,\r\n };\r\n\r\n static defaultProps = {\r\n perfMarker: {\r\n willInit: _.noop,\r\n willFetchData: _.noop,\r\n willRender: _.noop,\r\n done: _.noop,\r\n createChild: () => this,\r\n },\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.perfMarker = props.perfMarker.createChild('RecommendationHistoryGridOverall');\r\n this.grid = new RecommendationHistoryGrid({\r\n i18n: props.deps.i18n,\r\n newI18n: props.newI18n,\r\n recommendationService: props.dataService,\r\n appConfig: props.deps.appConfig,\r\n currentActivity: props.currentActivity,\r\n }).render();\r\n if (_.isFunction(this.perfMarker.willInit)) {\r\n this.perfMarker.willInit();\r\n }\r\n this.state = { currentTab: 'All' };\r\n this.perfMarkerDone = false;\r\n }\r\n\r\n componentDidMount = () => {\r\n if (_.isFunction(this.perfMarker.willFetchData)) {\r\n this.perfMarker.willFetchData();\r\n }\r\n };\r\n\r\n componentDidUpdate = () => {\r\n if (!this.perfMarkerDone) {\r\n if (_.isFunction(this.perfMarker.done)) {\r\n this.perfMarker.done();\r\n }\r\n this.perfMarkerDone = true;\r\n }\r\n }\r\n\r\n filterBySelectedTab = (selectedTab) => {\r\n this.grid.grid.gridView.set({\r\n query: _.defaults({\r\n selectedTab,\r\n }, this.grid.grid.gridView.get('query')),\r\n });\r\n this.setState({ currentTab: selectedTab });\r\n }\r\n\r\n render() {\r\n if (_.isFunction(this.perfMarker.willRender)) {\r\n this.perfMarker.willRender();\r\n }\r\n\r\n return (\r\n
\r\n \r\n {this.props.isAutoApplyRecommendationEnabled &&\r\n
\r\n this.filterBySelectedTab(HISTORY_PAGE_TAB_TYPES.ALL)}\r\n >\r\n {this.props.newI18n.getString(_TL_(HISTORY_PAGE_TAB_TYPES.ALL))}\r\n \r\n this.filterBySelectedTab(HISTORY_PAGE_TAB_TYPES.MANUAL)}\r\n >\r\n {this.props.newI18n.getString(_TL_('Manually applied'))}\r\n \r\n this.filterBySelectedTab(HISTORY_PAGE_TAB_TYPES.AUTO)}\r\n >\r\n {this.props.newI18n.getString(_TL_('Auto applied'))}\r\n \r\n
\r\n }\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport const RecommendationsHistory =\r\n withDefaultStyles((recommendationsHistory), getHistoryPageStyle);\r\n","export const getHistoryPageStyle = (_, { palette = {} }) => ({\r\n historyPageContainer: {\r\n '& #tab-selector-container': {\r\n marginLeft: 32,\r\n marginBottom: 12,\r\n '& button': {\r\n height: 39,\r\n background: palette.neutralLighter,\r\n border: 'none',\r\n paddingLeft: 12,\r\n paddingRight: 12,\r\n '&.selected': {\r\n background: palette.themeLighterAlt,\r\n },\r\n },\r\n },\r\n },\r\n});\r\n","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (accountAttributes) {pug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = accountAttributes) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";}.call(this,\"accountAttributes\" in locals_for_with?locals_for_with.accountAttributes:typeof accountAttributes!==\"undefined\"?accountAttributes:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (action, readOnly) {pug_html = pug_html + \"\\u003Cbutton\" + (\" class=\\\"btn btn-primary btn-hero inline-action-apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = action) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";}.call(this,\"action\" in locals_for_with?locals_for_with.action:typeof action!==\"undefined\"?action:undefined,\"readOnly\" in locals_for_with?locals_for_with.readOnly:typeof readOnly!==\"undefined\"?readOnly:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, readOnly) {pug_html = pug_html + \"\\u003Cbutton\" + (\" class=\\\"btn btn-primary btn-hero inline-action-apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default inline-action-view\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Edit')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"readOnly\" in locals_for_with?locals_for_with.readOnly:typeof readOnly!==\"undefined\"?readOnly:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-default inline-action-view\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Edit')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (disableResubmit, i18n) {pug_html = pug_html + \"\\u003Cbutton\" + (\" class=\\\"btn btn-primary btn-hero inline-action-apply\\\"\"+pug.attr(\"disabled\", disableResubmit, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Resubmit')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default inline-action-view\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Edit')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";}.call(this,\"disableResubmit\" in locals_for_with?locals_for_with.disableResubmit:typeof disableResubmit!==\"undefined\"?disableResubmit:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (action) {pug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-primary btn-hero inline-action-external\\\"\\u003E\" + (pug.escape(null == (pug_interp = action) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";}.call(this,\"action\" in locals_for_with?locals_for_with.action:typeof action!==\"undefined\"?action:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (goalValueSourceId, i18n, issueTypeId, readOnly) {if (issueTypeId == 3 || issueTypeId == 5) {\npug_html = pug_html + \"\\u003Cbutton\" + (\" class=\\\"btn btn-primary btn-hero inline-action-apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\nelse\nif (issueTypeId == 4 && goalValueSourceId == 2) {\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-default inline-action-view\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Edit')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cbutton\" + (\" class=\\\"btn btn-primary btn-hero inline-action-apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default inline-action-view\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Edit')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}}.call(this,\"goalValueSourceId\" in locals_for_with?locals_for_with.goalValueSourceId:typeof goalValueSourceId!==\"undefined\"?goalValueSourceId:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"issueTypeId\" in locals_for_with?locals_for_with.issueTypeId:typeof issueTypeId!==\"undefined\"?issueTypeId:undefined,\"readOnly\" in locals_for_with?locals_for_with.readOnly:typeof readOnly!==\"undefined\"?readOnly:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {if (value.IsRecommendationGetShutterStockImageFromUXEnabled && !value.hasImage) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"loadContainer\\\"\\u003E\\u003Cdiv class=\\\"loadImage\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"actionContainer\\\"\\u003E\";\nif (!value.IsRecommendationGetShutterStockImageFromUXEnabled && !value.hasImage) {\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-primary inline-action-panel\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.action) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cbutton\" + (\" class=\\\"btn btn-primary btn-hero inline-action-apply\\\"\"+pug.attr(\"disabled\", value.readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.i18n.getString('Button_Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default inline-action-panel\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.i18n.getString('Button_Edit')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, isPanelEdit, readOnly) {if (isPanelEdit) {\npug_html = pug_html + \"\\u003Cbutton\" + (\" class=\\\"btn btn-primary btn-hero inline-action-apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default inline-action-panel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Edit')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cbutton\" + (\" class=\\\"btn btn-primary btn-hero inline-action-apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default inline-action-view\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Edit')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isPanelEdit\" in locals_for_with?locals_for_with.isPanelEdit:typeof isPanelEdit!==\"undefined\"?isPanelEdit:undefined,\"readOnly\" in locals_for_with?locals_for_with.readOnly:typeof readOnly!==\"undefined\"?readOnly:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, isApplyHidden, readOnly) {if (!isApplyHidden) {\npug_html = pug_html + \"\\u003Cbutton\" + (\" class=\\\"btn btn-hero inline-action-apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-default inline-action-view\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Edit')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isApplyHidden\" in locals_for_with?locals_for_with.isApplyHidden:typeof isApplyHidden!==\"undefined\"?isApplyHidden:undefined,\"readOnly\" in locals_for_with?locals_for_with.readOnly:typeof readOnly!==\"undefined\"?readOnly:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, isMCC) {if (isMCC) {\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-primary inline-action-view\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_CheckDetails')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-primary inline-action-external\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_GetStarted')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isMCC\" in locals_for_with?locals_for_with.isMCC:typeof isMCC!==\"undefined\"?isMCC:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (adGroupAttributes) {pug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = adGroupAttributes) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";}.call(this,\"adGroupAttributes\" in locals_for_with?locals_for_with.adGroupAttributes:typeof adGroupAttributes!==\"undefined\"?adGroupAttributes:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (accountName, hideDeltaRange, isMCC, lowerList, more, raiseList, subtitle, title, tooltipLowerHeader, tooltipRaiseHeader) {pug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = title) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\\u003Ch5\" + (\" class=\\\"delta-range\\\"\"+pug.attr(\"hidden\", hideDeltaRange, true, true)) + \"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = subtitle) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"more-tooltip\\\"\\u003E\\u003Cdiv class=\\\"more-link\\\" tabindex=\\\"0\\\"\\u003E\" + (pug.escape(null == (pug_interp = more) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"width-expander\\\"\\u003E\\u003Cdiv class=\\\"more-tooltip-container\\\" tabindex=\\\"0\\\"\\u003E\\u003Cspan class=\\\"closeimage close-button\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Ctable class=\\\"more-content\\\"\\u003E\";\nif (raiseList.length > 0) {\npug_html = pug_html + \"\\u003Ctr class=\\\"title\\\"\\u003E\\u003Ctd colspan=\\\"2\\\"\\u003E\\u003Cspan class=\\\"glyphicon-arrow-up glyphicon\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = tooltipRaiseHeader) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n}\n// iterate raiseList\n;(function(){\n var $$obj = raiseList;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var v = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Ctr class=\\\"content\\\"\\u003E\\u003Ctd class=\\\"left-col\\\"\\u003E\" + (pug.escape(null == (pug_interp = v.description) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\\u003Ctd class=\\\"right-col text-right\\\"\\u003E\" + (pug.escape(null == (pug_interp = v.range) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var v = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Ctr class=\\\"content\\\"\\u003E\\u003Ctd class=\\\"left-col\\\"\\u003E\" + (pug.escape(null == (pug_interp = v.description) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\\u003Ctd class=\\\"right-col text-right\\\"\\u003E\" + (pug.escape(null == (pug_interp = v.range) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n }\n }\n}).call(this);\n\nif (raiseList.length > 0 && lowerList.length > 0) {\npug_html = pug_html + \"\\u003Ctr\\u003E\\u003Ctd class=\\\"gap-td\\\" colspan=\\\"2\\\"\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n}\nif (lowerList.length > 0) {\npug_html = pug_html + \"\\u003Ctr class=\\\"title\\\"\\u003E\\u003Ctd colspan=\\\"2\\\"\\u003E\\u003Cspan class=\\\"glyphicon-arrow-down glyphicon\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = tooltipLowerHeader) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n}\n// iterate lowerList\n;(function(){\n var $$obj = lowerList;\n if ('number' == typeof $$obj.length) {\n for (var pug_index1 = 0, $$l = $$obj.length; pug_index1 < $$l; pug_index1++) {\n var v = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Ctr class=\\\"content\\\"\\u003E\\u003Ctd class=\\\"left-col\\\"\\u003E\" + (pug.escape(null == (pug_interp = v.description) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\\u003Ctd class=\\\"right-col text-right\\\"\\u003E\" + (pug.escape(null == (pug_interp = v.range) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index1 in $$obj) {\n $$l++;\n var v = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Ctr class=\\\"content\\\"\\u003E\\u003Ctd class=\\\"left-col\\\"\\u003E\" + (pug.escape(null == (pug_interp = v.description) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\\u003Ctd class=\\\"right-col text-right\\\"\\u003E\" + (pug.escape(null == (pug_interp = v.range) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ftable\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fh5\\u003E\";\nif (isMCC) {\npug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = accountName) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";\n}}.call(this,\"accountName\" in locals_for_with?locals_for_with.accountName:typeof accountName!==\"undefined\"?accountName:undefined,\"hideDeltaRange\" in locals_for_with?locals_for_with.hideDeltaRange:typeof hideDeltaRange!==\"undefined\"?hideDeltaRange:undefined,\"isMCC\" in locals_for_with?locals_for_with.isMCC:typeof isMCC!==\"undefined\"?isMCC:undefined,\"lowerList\" in locals_for_with?locals_for_with.lowerList:typeof lowerList!==\"undefined\"?lowerList:undefined,\"more\" in locals_for_with?locals_for_with.more:typeof more!==\"undefined\"?more:undefined,\"raiseList\" in locals_for_with?locals_for_with.raiseList:typeof raiseList!==\"undefined\"?raiseList:undefined,\"subtitle\" in locals_for_with?locals_for_with.subtitle:typeof subtitle!==\"undefined\"?subtitle:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined,\"tooltipLowerHeader\" in locals_for_with?locals_for_with.tooltipLowerHeader:typeof tooltipLowerHeader!==\"undefined\"?tooltipLowerHeader:undefined,\"tooltipRaiseHeader\" in locals_for_with?locals_for_with.tooltipRaiseHeader:typeof tooltipRaiseHeader!==\"undefined\"?tooltipRaiseHeader:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (blockedKeywords) {pug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = blockedKeywords) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";}.call(this,\"blockedKeywords\" in locals_for_with?locals_for_with.blockedKeywords:typeof blockedKeywords!==\"undefined\"?blockedKeywords:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (accountName, entityName, fromVal, i18n, isMCC, toVal) {pug_html = pug_html + \"\\u003Ch5 class=\\\"detal-number\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = i18n.getString('Details_View_Increase_Budget', { entity_name: entityName })) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh5\\u003E\\u003Ch5 class=\\\"delta-range\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Range', { from: fromVal, to: toVal })) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh5\\u003E\";\nif (isMCC) {\npug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = accountName) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";\n}}.call(this,\"accountName\" in locals_for_with?locals_for_with.accountName:typeof accountName!==\"undefined\"?accountName:undefined,\"entityName\" in locals_for_with?locals_for_with.entityName:typeof entityName!==\"undefined\"?entityName:undefined,\"fromVal\" in locals_for_with?locals_for_with.fromVal:typeof fromVal!==\"undefined\"?fromVal:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isMCC\" in locals_for_with?locals_for_with.isMCC:typeof isMCC!==\"undefined\"?isMCC:undefined,\"toVal\" in locals_for_with?locals_for_with.toVal:typeof toVal!==\"undefined\"?toVal:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (AdGroupName, CampaignName, entityCampaignId, entityId, entityType, opportunityId) {pug_html = pug_html + \"\\u003Ch5\\u003E\\u003Ca\" + (\" class=\\\"link campaign\\\"\"+pug.attr(\"data-entityid\", entityId, true, true)+pug.attr(\"data-type\", entityType, true, true)+pug.attr(\"data-opportunityid\", opportunityId, true, true)+pug.attr(\"data-entityCampaignId\", entityCampaignId, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = CampaignName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' > ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"link\\\"\\u003E\" + (pug.escape(null == (pug_interp = AdGroupName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh5\\u003E\";}.call(this,\"AdGroupName\" in locals_for_with?locals_for_with.AdGroupName:typeof AdGroupName!==\"undefined\"?AdGroupName:undefined,\"CampaignName\" in locals_for_with?locals_for_with.CampaignName:typeof CampaignName!==\"undefined\"?CampaignName:undefined,\"entityCampaignId\" in locals_for_with?locals_for_with.entityCampaignId:typeof entityCampaignId!==\"undefined\"?entityCampaignId:undefined,\"entityId\" in locals_for_with?locals_for_with.entityId:typeof entityId!==\"undefined\"?entityId:undefined,\"entityType\" in locals_for_with?locals_for_with.entityType:typeof entityType!==\"undefined\"?entityType:undefined,\"opportunityId\" in locals_for_with?locals_for_with.opportunityId:typeof opportunityId!==\"undefined\"?opportunityId:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (campaignAttributes) {pug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = campaignAttributes) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";}.call(this,\"campaignAttributes\" in locals_for_with?locals_for_with.campaignAttributes:typeof campaignAttributes!==\"undefined\"?campaignAttributes:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (CountryOrRegion) {pug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = CountryOrRegion) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";}.call(this,\"CountryOrRegion\" in locals_for_with?locals_for_with.CountryOrRegion:typeof CountryOrRegion!==\"undefined\"?CountryOrRegion:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (currentDestinationURLOperatorName, currentDestinationUrl, suggestedDestinationURLOperatorName, suggestedDestinationUrl) {pug_mixins[\"showWarningContent\"] = pug_interp = function(currentName, currentOperatorName, suggestedName, suggestedOperatorName){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv\\u003E\";\nif (currentName != null) {\nif (currentOperatorName != suggestedOperatorName) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-warning\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = ' ') ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"iconba iconba-ErrorBadge\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+currentOperatorName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = ' '+currentOperatorName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\n}\nif (currentName != suggestedName) {\nif (currentOperatorName != suggestedOperatorName) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-warning\\\"\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+currentName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-warning\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = ' ') ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"iconba iconba-ErrorBadge\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+currentName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = ' '+currentName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '-') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-container\\\"\\u003E\";\npug_mixins[\"showWarningContent\"](currentDestinationUrl, currentDestinationURLOperatorName, suggestedDestinationUrl, suggestedDestinationURLOperatorName);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"currentDestinationURLOperatorName\" in locals_for_with?locals_for_with.currentDestinationURLOperatorName:typeof currentDestinationURLOperatorName!==\"undefined\"?currentDestinationURLOperatorName:undefined,\"currentDestinationUrl\" in locals_for_with?locals_for_with.currentDestinationUrl:typeof currentDestinationUrl!==\"undefined\"?currentDestinationUrl:undefined,\"suggestedDestinationURLOperatorName\" in locals_for_with?locals_for_with.suggestedDestinationURLOperatorName:typeof suggestedDestinationURLOperatorName!==\"undefined\"?suggestedDestinationURLOperatorName:undefined,\"suggestedDestinationUrl\" in locals_for_with?locals_for_with.suggestedDestinationUrl:typeof suggestedDestinationUrl!==\"undefined\"?suggestedDestinationUrl:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (actionTitle, categoryTitle, currentActionName, currentActionOperatorName, currentCategoryName, currentCategoryOperatorName, currentLabelName, currentLabelOperatorName, currentValueName, currentValueOperatorName, labelTitle, suggesteActionOperatorName, suggesteValueOperatorName, suggestedActionName, suggestedCategoryName, suggestedCategoryOperatorName, suggestedLabelName, suggestedLabelOperatorName, suggestedValueName, valueTitle) {pug_mixins[\"showWarningContent\"] = pug_interp = function(currentName, currentOperatorName, suggestedName, suggestedOperatorName){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv\\u003E\";\nif (currentName != null) {\nif (currentOperatorName != suggestedOperatorName) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-warning\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = ' ') ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"iconba iconba-ErrorBadge\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+currentOperatorName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = ' '+currentOperatorName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\n}\nif (currentName != suggestedName) {\nif (currentOperatorName != suggestedOperatorName) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-warning\\\"\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+currentName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-warning\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = ' ') ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"iconba iconba-ErrorBadge\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+currentName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = ' '+currentName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '-') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-container\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = categoryTitle+\":\") ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"showWarningContent\"](currentCategoryName, currentCategoryOperatorName, suggestedCategoryName, suggestedCategoryOperatorName);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"goal-setting-container\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = actionTitle+\":\") ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"showWarningContent\"](currentActionName, currentActionOperatorName, suggestedActionName, suggesteActionOperatorName);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"goal-setting-container\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = labelTitle+\":\") ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"showWarningContent\"](currentLabelName, currentLabelOperatorName, suggestedLabelName, suggestedLabelOperatorName);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"goal-setting-container\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = valueTitle+\":\") ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"showWarningContent\"](currentValueName, currentValueOperatorName, suggestedValueName, suggesteValueOperatorName);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"actionTitle\" in locals_for_with?locals_for_with.actionTitle:typeof actionTitle!==\"undefined\"?actionTitle:undefined,\"categoryTitle\" in locals_for_with?locals_for_with.categoryTitle:typeof categoryTitle!==\"undefined\"?categoryTitle:undefined,\"currentActionName\" in locals_for_with?locals_for_with.currentActionName:typeof currentActionName!==\"undefined\"?currentActionName:undefined,\"currentActionOperatorName\" in locals_for_with?locals_for_with.currentActionOperatorName:typeof currentActionOperatorName!==\"undefined\"?currentActionOperatorName:undefined,\"currentCategoryName\" in locals_for_with?locals_for_with.currentCategoryName:typeof currentCategoryName!==\"undefined\"?currentCategoryName:undefined,\"currentCategoryOperatorName\" in locals_for_with?locals_for_with.currentCategoryOperatorName:typeof currentCategoryOperatorName!==\"undefined\"?currentCategoryOperatorName:undefined,\"currentLabelName\" in locals_for_with?locals_for_with.currentLabelName:typeof currentLabelName!==\"undefined\"?currentLabelName:undefined,\"currentLabelOperatorName\" in locals_for_with?locals_for_with.currentLabelOperatorName:typeof currentLabelOperatorName!==\"undefined\"?currentLabelOperatorName:undefined,\"currentValueName\" in locals_for_with?locals_for_with.currentValueName:typeof currentValueName!==\"undefined\"?currentValueName:undefined,\"currentValueOperatorName\" in locals_for_with?locals_for_with.currentValueOperatorName:typeof currentValueOperatorName!==\"undefined\"?currentValueOperatorName:undefined,\"labelTitle\" in locals_for_with?locals_for_with.labelTitle:typeof labelTitle!==\"undefined\"?labelTitle:undefined,\"suggesteActionOperatorName\" in locals_for_with?locals_for_with.suggesteActionOperatorName:typeof suggesteActionOperatorName!==\"undefined\"?suggesteActionOperatorName:undefined,\"suggesteValueOperatorName\" in locals_for_with?locals_for_with.suggesteValueOperatorName:typeof suggesteValueOperatorName!==\"undefined\"?suggesteValueOperatorName:undefined,\"suggestedActionName\" in locals_for_with?locals_for_with.suggestedActionName:typeof suggestedActionName!==\"undefined\"?suggestedActionName:undefined,\"suggestedCategoryName\" in locals_for_with?locals_for_with.suggestedCategoryName:typeof suggestedCategoryName!==\"undefined\"?suggestedCategoryName:undefined,\"suggestedCategoryOperatorName\" in locals_for_with?locals_for_with.suggestedCategoryOperatorName:typeof suggestedCategoryOperatorName!==\"undefined\"?suggestedCategoryOperatorName:undefined,\"suggestedLabelName\" in locals_for_with?locals_for_with.suggestedLabelName:typeof suggestedLabelName!==\"undefined\"?suggestedLabelName:undefined,\"suggestedLabelOperatorName\" in locals_for_with?locals_for_with.suggestedLabelOperatorName:typeof suggestedLabelOperatorName!==\"undefined\"?suggestedLabelOperatorName:undefined,\"suggestedValueName\" in locals_for_with?locals_for_with.suggestedValueName:typeof suggestedValueName!==\"undefined\"?suggestedValueName:undefined,\"valueTitle\" in locals_for_with?locals_for_with.valueTitle:typeof valueTitle!==\"undefined\"?valueTitle:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (NOT_AVAILABLE_DEFAULT_STR, classes, deltaVal, fromVal, i18n, increaseSymbol, isNegative, isOptimizationScoreOn, notAvailable, notDefault, toVal) {if (notDefault) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = NOT_AVAILABLE_DEFAULT_STR) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse\nif (notAvailable) {\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([classes], [true]), false, true)) + \"\\u003E\\u003Cspan class=\\\"positive-delta iconba large iconba-Trending12\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([`${isOptimizationScoreOn ? 'with-optimization-score' : ''} ${isNegative ? '' : 'positive-delta'} delta-number`], [true]), false, true)) + \"\\u003E\\u003Cspan class=\\\"increase-symbol\\\"\\u003E\" + (pug.escape(null == (pug_interp = increaseSymbol) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = deltaVal) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"delta-range\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Range', { from: fromVal, to: toVal })) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"NOT_AVAILABLE_DEFAULT_STR\" in locals_for_with?locals_for_with.NOT_AVAILABLE_DEFAULT_STR:typeof NOT_AVAILABLE_DEFAULT_STR!==\"undefined\"?NOT_AVAILABLE_DEFAULT_STR:undefined,\"classes\" in locals_for_with?locals_for_with.classes:typeof classes!==\"undefined\"?classes:undefined,\"deltaVal\" in locals_for_with?locals_for_with.deltaVal:typeof deltaVal!==\"undefined\"?deltaVal:undefined,\"fromVal\" in locals_for_with?locals_for_with.fromVal:typeof fromVal!==\"undefined\"?fromVal:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"increaseSymbol\" in locals_for_with?locals_for_with.increaseSymbol:typeof increaseSymbol!==\"undefined\"?increaseSymbol:undefined,\"isNegative\" in locals_for_with?locals_for_with.isNegative:typeof isNegative!==\"undefined\"?isNegative:undefined,\"isOptimizationScoreOn\" in locals_for_with?locals_for_with.isOptimizationScoreOn:typeof isOptimizationScoreOn!==\"undefined\"?isOptimizationScoreOn:undefined,\"notAvailable\" in locals_for_with?locals_for_with.notAvailable:typeof notAvailable!==\"undefined\"?notAvailable:undefined,\"notDefault\" in locals_for_with?locals_for_with.notDefault:typeof notDefault!==\"undefined\"?notDefault:undefined,\"toVal\" in locals_for_with?locals_for_with.toVal:typeof toVal!==\"undefined\"?toVal:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (deltaVal, increaseSymbol, isOptimizationScoreOn, notAvailable) {pug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([`${isOptimizationScoreOn ? 'with-optimization-score' : ''} positive-delta delta-number`], [true]), false, true)) + \"\\u003E\";\nif (notAvailable) {\npug_html = pug_html + \"\\u003Cspan class=\\\"iconba large iconba-Trending12\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan class=\\\"increase-symbol\\\"\\u003E\" + (pug.escape(null == (pug_interp = increaseSymbol) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = deltaVal) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"deltaVal\" in locals_for_with?locals_for_with.deltaVal:typeof deltaVal!==\"undefined\"?deltaVal:undefined,\"increaseSymbol\" in locals_for_with?locals_for_with.increaseSymbol:typeof increaseSymbol!==\"undefined\"?increaseSymbol:undefined,\"isOptimizationScoreOn\" in locals_for_with?locals_for_with.isOptimizationScoreOn:typeof isOptimizationScoreOn!==\"undefined\"?isOptimizationScoreOn:undefined,\"notAvailable\" in locals_for_with?locals_for_with.notAvailable:typeof notAvailable!==\"undefined\"?notAvailable:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (affectedGoal, i18n, inactiveTagCount, title) {pug_html = pug_html + \"\\u003Cdiv class=\\\"title\\\"\\u003E\" + (pug.escape(null == (pug_interp = title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"summary-detail\\\"\\u003E\\u003Cdiv class=\\\"inactive-uet-tags\\\"\\u003E\\u003Cdiv class=\\\"desciption\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Fix_Conversion_Tracking_Inactive_UET_Tag')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cdiv class=\\\"number\\\"\\u003E\" + (pug.escape(null == (pug_interp = inactiveTagCount) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"vertical-wrap\\\"\\u003E \\u003Cdiv class=\\\"arrow iconba iconba-Forward\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"affected-goals\\\"\\u003E\\u003Cdiv class=\\\"desciption\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Fix_Conversion_Tracking_Affected_Goal')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"wrap\\\"\\u003E\\u003Cdiv class=\\\"number\\\"\\u003E\" + (pug.escape(null == (pug_interp = affectedGoal) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"affectedGoal\" in locals_for_with?locals_for_with.affectedGoal:typeof affectedGoal!==\"undefined\"?affectedGoal:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"inactiveTagCount\" in locals_for_with?locals_for_with.inactiveTagCount:typeof inactiveTagCount!==\"undefined\"?inactiveTagCount:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Fix_Conversion_Tracking_Instruction_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Col class=\\\"description\\\" type=\\\"1\\\"\\u003E\\u003Cli\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Fix_Conversion_Tracking_Instruction_1')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fli\\u003E\\u003Cli\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Fix_Conversion_Tracking_Instruction_2')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fli\\u003E\\u003Cli\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Fix_Conversion_Tracking_Instruction_3')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fli\\u003E\\u003C\\u002Fol\\u003E\\u003Cdiv class=\\\"learn_more_link\\\"\\u003E\\u003Ca\" + (\" class=\\\"HelpTopic clickable\\\"\"+\" query=\\\"help:ext56775\\\" href=\\\"#!\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.getString('Fix_Conversion_Tracking_Instruction_Learn_More'), true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Fix_Conversion_Tracking_Instruction_Learn_More')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (Urls) {pug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = Urls) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";}.call(this,\"Urls\" in locals_for_with?locals_for_with.Urls:typeof Urls!==\"undefined\"?Urls:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (campaignAttributes) {pug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = campaignAttributes) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";}.call(this,\"campaignAttributes\" in locals_for_with?locals_for_with.campaignAttributes:typeof campaignAttributes!==\"undefined\"?campaignAttributes:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (goalTypeCode, suggestedGoal) {if (goalTypeCode == 'DestinationGoal') {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = suggestedGoal.destinationURLOperator) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Clabel\\u003E\" + (null == (pug_interp = suggestedGoal.destinationUrl) ? \"\" : pug_interp) + \"\\u003C\\u002Flabel\\u003E\";\n}\nelse\nif (goalTypeCode == 'EventGoal') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"suggestedGoalItem\\\"\\u003E\\u003Cdiv\\u003E\" + (null == (pug_interp = suggestedGoal.ActionTitle) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\nif (suggestedGoal.Action && suggestedGoal.Action !== '') {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = suggestedGoal.ActionOperator) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Clabel\\u003E\" + (null == (pug_interp = suggestedGoal.Action) ? \"\" : pug_interp) + \"\\u003C\\u002Flabel\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = '--') ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"suggestedGoalItem\\\"\\u003E\\u003Cdiv\\u003E\" + (null == (pug_interp = suggestedGoal.CategoryTitle) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\nif (suggestedGoal.Category && suggestedGoal.Category !== '') {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = suggestedGoal.CategoryOperator) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Clabel\\u003E\" + (null == (pug_interp = suggestedGoal.Category) ? \"\" : pug_interp) + \"\\u003C\\u002Flabel\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = '--') ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"suggestedGoalItem\\\"\\u003E\\u003Cdiv\\u003E\" + (null == (pug_interp = suggestedGoal.LabelTitle) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\nif (suggestedGoal.Label && suggestedGoal.Label !== '') {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = suggestedGoal.LabelOperator) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Clabel\\u003E\" + (null == (pug_interp = suggestedGoal.Label) ? \"\" : pug_interp) + \"\\u003C\\u002Flabel\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = '--') ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv\\u003E\" + (null == (pug_interp = suggestedGoal.ValueTitle) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\nif (suggestedGoal.Value && suggestedGoal.Value !== '') {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = suggestedGoal.ValueOperator) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Clabel\\u003E\" + (null == (pug_interp = suggestedGoal.Value) ? \"\" : pug_interp) + \"\\u003C\\u002Flabel\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = '--') ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (goalTypeCode == 'ClarityEventGoal') {\npug_html = pug_html + \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"clarityEventGoalSetting\\\"\\u003E\" + (null == (pug_interp = suggestedGoal.clarityEventGoalSetting) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\nif ((suggestedGoal.conversionClarityButtonsCount > 1)) {\npug_html = pug_html + \"\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (null == (pug_interp = suggestedGoal.moreConversionClarityButtons) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"goalTypeCode\" in locals_for_with?locals_for_with.goalTypeCode:typeof goalTypeCode!==\"undefined\"?goalTypeCode:undefined,\"suggestedGoal\" in locals_for_with?locals_for_with.suggestedGoal:typeof suggestedGoal!==\"undefined\"?suggestedGoal:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (keyword) {pug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = keyword) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";}.call(this,\"keyword\" in locals_for_with?locals_for_with.keyword:typeof keyword!==\"undefined\"?keyword:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (ad) {pug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"landing-page-url\\\"\"+\" target=\\\"_blank\\\"\"+pug.attr(\"href\", ad.landingPageUrl, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = ad.landingPageUrl) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";}.call(this,\"ad\" in locals_for_with?locals_for_with.ad:typeof ad!==\"undefined\"?ad:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (defaultMatchType, matchTypes) {pug_html = pug_html + \"\\u003Cdiv class=\\\"match_type_inline_selection\\\"\\u003E\\u003Cselect class=\\\"match-type-select form-control\\\"\\u003E\";\n// iterate matchTypes\n;(function(){\n var $$obj = matchTypes;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var item = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Coption\" + (pug.attr(\"value\", item.id, true, true)+pug.attr(\"selected\", item.id === defaultMatchType, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = item.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Foption\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var item = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Coption\" + (pug.attr(\"value\", item.id, true, true)+pug.attr(\"selected\", item.id === defaultMatchType, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = item.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Foption\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"defaultMatchType\" in locals_for_with?locals_for_with.defaultMatchType:typeof defaultMatchType!==\"undefined\"?defaultMatchType:undefined,\"matchTypes\" in locals_for_with?locals_for_with.matchTypes:typeof matchTypes!==\"undefined\"?matchTypes:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (number) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (null == (pug_interp = number) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"number\" in locals_for_with?locals_for_with.number:typeof number!==\"undefined\"?number:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (detail, fwlink, i18n, title) {pug_html = pug_html + \"\\u003Cdiv class=\\\"policy-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"policy-description\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = detail) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca\" + (pug.attr(\"href\", fwlink, true, true)+\" target=\\\"_apexPlatformHelp\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Read_Policy')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"detail\" in locals_for_with?locals_for_with.detail:typeof detail!==\"undefined\"?detail:undefined,\"fwlink\" in locals_for_with?locals_for_with.fwlink:typeof fwlink!==\"undefined\"?fwlink:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (_TL_, value) {pug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-suggested-ads-column\\\"\\u003E\";\nif (value.IsRecommendationGetShutterStockImageFromUXEnabled && !value.hasImages) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"loadContainer\\\"\\u003E\\u003Cdiv class=\\\"loadImage\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"loadText\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value.newI18n.getString(_TL_('Loading...'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"previewImage\\\"\\u003E\";\nif (value.hasImages) {\npug_html = pug_html + \"\\u003Cimg\" + (pug.attr(\"src\", value.landscapeImageMediaUrl, true, true)+\" width=\\\"114\\\" height=\\\"60\\\"\") + \"\\u003E\";\n}\nelse {\nif (value.IsRecommendationGetShutterStockImageFromUXEnabled) {\npug_html = pug_html + \"\\u003Cdiv width=\\\"114\\\" height=\\\"55\\\" style=\\\"max-height: 55px; overflow: hidden;\\\"\\u003E\\u003Cimg src=\\\"\\\" width=\\\"114\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\\u003E\\u003Cbutton\\u003E\\u003Cspan class=\\\"iconba iconba-Add inline-action-panel\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewTexts\\\"\\u003E\";\nif (!value.IsRecommendationGetShutterStockImageFromUXEnabled && !value.hasImages) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"noImage\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value.noImageText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"previewText\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value.DisplayText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewText\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value.AlternativeText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewText\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value.FinalURL) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"_TL_\" in locals_for_with?locals_for_with._TL_:typeof _TL_!==\"undefined\"?_TL_:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-suggested-ads-column\\\"\\u003E\\u003Cdiv class=\\\"suggestedImageHeadline\\\"\\u003E\\u003Cspan class=\\\"iconba iconba-Lightbulb\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cbutton class=\\\"inline-action-panel numberOfSuggestedImageHeadline\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.numberOfSuggestedImageHeadline) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewImageContainer\\\"\\u003E\\u003Cdiv class=\\\"previewImage\\\"\\u003E\\u003Cimg\" + (pug.attr(\"src\", value.landscapeImageMediaUrl, true, true)+\" width=\\\"114\\\" height=\\\"60\\\"\") + \"\\u003E\";\nif ((value.imageCount && value.imageCount > 1)) {\npug_html = pug_html + \"\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (null == (pug_interp = value.moreImages) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv class=\\\"previewTitle\\\"\\u003E\\u003Cspan class=\\\"previewTitleAd\\\"\\u003E\\u003Cspan class=\\\"previewTitleAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.Headline) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fspan\\u003E\";\nif ((value.headlineCount && value.headlineCount > 1)) {\npug_html = pug_html + \"\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (pug.escape(null == (pug_interp = ' +'+value.i18n.getString('Recommendation_Grid_Todo_More', {count: value.headlineCount - 1})) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewText\\\"\\u003E\\u003Cspan class=\\\"previewTextAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.Text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\nif ((value.textCount && value.textCount > 1)) {\npug_html = pug_html + \"\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (pug.escape(null == (pug_interp = ' +'+value.i18n.getString('Recommendation_Grid_Todo_More', {count: value.textCount - 1})) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (ad, moreDescriptions, moreHeadlines, numberOfSuggestedHeadlineDescription) {pug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-suggested-ads-column preview-container\\\"\\u003E\\u003Cspan class=\\\"iconba iconba-Lightbulb\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cbutton class=\\\"inline-action-panel numberOfSuggestedHeadlineDescription\\\"\\u003E\" + (pug.escape(null == (pug_interp = numberOfSuggestedHeadlineDescription) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cdiv class=\\\"recommendation-ad-preview previews\\\"\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"previewTitleAd previewTitleAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = ad.convertedTitle) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (pug.escape(null == (pug_interp = moreHeadlines) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"preview-ad-slug\\\"\\u003E\" + (pug.escape(null == (pug_interp = ad.title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E  \\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"previewUrlAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = ad.convertedDisplayUrl) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"previewAdText preview-ad__description\\\"\\u003E\" + (pug.escape(null == (pug_interp = ad.convertedText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (pug.escape(null == (pug_interp = moreDescriptions) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"ad\" in locals_for_with?locals_for_with.ad:typeof ad!==\"undefined\"?ad:undefined,\"moreDescriptions\" in locals_for_with?locals_for_with.moreDescriptions:typeof moreDescriptions!==\"undefined\"?moreDescriptions:undefined,\"moreHeadlines\" in locals_for_with?locals_for_with.moreHeadlines:typeof moreHeadlines!==\"undefined\"?moreHeadlines:undefined,\"numberOfSuggestedHeadlineDescription\" in locals_for_with?locals_for_with.numberOfSuggestedHeadlineDescription:typeof numberOfSuggestedHeadlineDescription!==\"undefined\"?numberOfSuggestedHeadlineDescription:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-suggested-ads-column\\\"\\u003E\\u003Cdiv class=\\\"previewImage\\\"\\u003E\\u003Cimg\" + (pug.attr(\"src\", value.landscapeImageMediaUrl, true, true)) + \"\\u003E\";\nif ((value.imageCount && value.imageCount > 1)) {\npug_html = pug_html + \"\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (pug.escape(null == (pug_interp = ' +'+value.i18n.getString('Recommendation_Grid_Todo_More', {count: value.imageCount - 1})) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv class=\\\"previewTitle\\\"\\u003E\\u003Cspan class=\\\"previewTitleAd\\\"\\u003E\\u003Ca\" + (\" class=\\\"previewTitleAd\\\"\"+\" target=\\\"_blank\\\"\"+pug.attr(\"href\", value.FinalUrl, true, true)+\" onclick=\\\"event.stopPropagation();\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = value.Headline) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fspan\\u003E\";\nif ((value.headlineCount && value.headlineCount > 1)) {\npug_html = pug_html + \"\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (pug.escape(null == (pug_interp = ' +'+value.i18n.getString('Recommendation_Grid_Todo_More', {count: value.headlineCount - 1})) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"previewUrlAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.convertedDisplayUrl) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewText\\\"\\u003E\\u003Cspan class=\\\"previewTextAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.Text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\nif ((value.textCount && value.textCount > 1)) {\npug_html = pug_html + \"\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (pug.escape(null == (pug_interp = ' +'+value.i18n.getString('Recommendation_Grid_Todo_More', {count: value.textCount - 1})) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (ad, moreDescriptions, moreHeadlines) {pug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-suggested-ads-column preview-container\\\"\\u003E\\u003Cdiv class=\\\"recommendation-ad-preview previews\\\"\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"previewTitleAd previewTitleAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = ad.convertedTitle) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (pug.escape(null == (pug_interp = moreHeadlines) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"preview-ad-slug\\\"\\u003E\" + (pug.escape(null == (pug_interp = ad.title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E  \\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"previewUrlAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = ad.convertedDisplayUrl) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"previewAdText preview-ad__description\\\"\\u003E\" + (pug.escape(null == (pug_interp = ad.convertedText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (pug.escape(null == (pug_interp = moreDescriptions) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"ad\" in locals_for_with?locals_for_with.ad:typeof ad!==\"undefined\"?ad:undefined,\"moreDescriptions\" in locals_for_with?locals_for_with.moreDescriptions:typeof moreDescriptions!==\"undefined\"?moreDescriptions:undefined,\"moreHeadlines\" in locals_for_with?locals_for_with.moreHeadlines:typeof moreHeadlines!==\"undefined\"?moreHeadlines:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (hrefLink, hrefName, i18n, numberDisapproved, numberLimitedApproved) {if (numberDisapproved !== '0' || numberLimitedApproved !== '0') {\nif (numberDisapproved !== '0') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"disapproved\\\"\\u003E\\u003Cspan class=\\\"icon-error iconba iconba-Error\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Disapproved', { numberDisapproved })) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (numberLimitedApproved !== '0') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"limited-approved\\\"\\u003E\\u003Cspan class=\\\"status_warning status iconba iconba-Warning\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Limited_Approved', { numberLimitedApproved })) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"view-detail\\\"\\u003E\\u003Ca\" + (\" tabindex=\\\"-1\\\"\"+pug.attr(\"href\", hrefLink, true, true)+\" target=\\\"_blank\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = hrefName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = '0') ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"hrefLink\" in locals_for_with?locals_for_with.hrefLink:typeof hrefLink!==\"undefined\"?hrefLink:undefined,\"hrefName\" in locals_for_with?locals_for_with.hrefName:typeof hrefName!==\"undefined\"?hrefName:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"numberDisapproved\" in locals_for_with?locals_for_with.numberDisapproved:typeof numberDisapproved!==\"undefined\"?numberDisapproved:undefined,\"numberLimitedApproved\" in locals_for_with?locals_for_with.numberLimitedApproved:typeof numberLimitedApproved!==\"undefined\"?numberLimitedApproved:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (rejectionType) {pug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = rejectionType) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";}.call(this,\"rejectionType\" in locals_for_with?locals_for_with.rejectionType:typeof rejectionType!==\"undefined\"?rejectionType:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (accountName, isMCC, negativeKeywordAttributes) {pug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = negativeKeywordAttributes) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";\nif (isMCC) {\npug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = accountName) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";\n}}.call(this,\"accountName\" in locals_for_with?locals_for_with.accountName:typeof accountName!==\"undefined\"?accountName:undefined,\"isMCC\" in locals_for_with?locals_for_with.isMCC:typeof isMCC!==\"undefined\"?isMCC:undefined,\"negativeKeywordAttributes\" in locals_for_with?locals_for_with.negativeKeywordAttributes:typeof negativeKeywordAttributes!==\"undefined\"?negativeKeywordAttributes:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (currentEvent, currentEventLabel, suggestedEvent, suggestedEventLabel) {if (currentEvent != null) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"current-setting-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = currentEventLabel+': ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"current-setting-name\\\"\\u003E\" + (pug.escape(null == (pug_interp = currentEvent) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (suggestedEvent != null) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"suggested-setting-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = suggestedEventLabel+': ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"suggested-setting-name\\\"\\u003E\" + (pug.escape(null == (pug_interp = suggestedEvent) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '-') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}}.call(this,\"currentEvent\" in locals_for_with?locals_for_with.currentEvent:typeof currentEvent!==\"undefined\"?currentEvent:undefined,\"currentEventLabel\" in locals_for_with?locals_for_with.currentEventLabel:typeof currentEventLabel!==\"undefined\"?currentEventLabel:undefined,\"suggestedEvent\" in locals_for_with?locals_for_with.suggestedEvent:typeof suggestedEvent!==\"undefined\"?suggestedEvent:undefined,\"suggestedEventLabel\" in locals_for_with?locals_for_with.suggestedEventLabel:typeof suggestedEventLabel!==\"undefined\"?suggestedEventLabel:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (goalValueSourceId, isCurrent, notAssignGoaText, sameGoalOrNotAssignGoaText, sameGoalText, variousGoalText) {if (isCurrent) {\nif (goalValueSourceId == 1) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"current same-goal-value\\\"\\u003E\" + (pug.escape(null == (pug_interp = sameGoalText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (goalValueSourceId == 2) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"current various-goal-value\\\"\\u003E\" + (pug.escape(null == (pug_interp = variousGoalText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (goalValueSourceId == 3) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"current not-assign-goal-value\\\"\\u003E\" + (pug.escape(null == (pug_interp = notAssignGoaText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse {\nif (goalValueSourceId == 1 || goalValueSourceId == 3) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"suggested same-goal-value not-assign-goal-value\\\"\\u003E\" + (pug.escape(null == (pug_interp = sameGoalOrNotAssignGoaText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (goalValueSourceId == 2) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"suggested various-goal-value\\\"\\u003E\" + (pug.escape(null == (pug_interp = variousGoalText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n}}.call(this,\"goalValueSourceId\" in locals_for_with?locals_for_with.goalValueSourceId:typeof goalValueSourceId!==\"undefined\"?goalValueSourceId:undefined,\"isCurrent\" in locals_for_with?locals_for_with.isCurrent:typeof isCurrent!==\"undefined\"?isCurrent:undefined,\"notAssignGoaText\" in locals_for_with?locals_for_with.notAssignGoaText:typeof notAssignGoaText!==\"undefined\"?notAssignGoaText:undefined,\"sameGoalOrNotAssignGoaText\" in locals_for_with?locals_for_with.sameGoalOrNotAssignGoaText:typeof sameGoalOrNotAssignGoaText!==\"undefined\"?sameGoalOrNotAssignGoaText:undefined,\"sameGoalText\" in locals_for_with?locals_for_with.sameGoalText:typeof sameGoalText!==\"undefined\"?sameGoalText:undefined,\"variousGoalText\" in locals_for_with?locals_for_with.variousGoalText:typeof variousGoalText!==\"undefined\"?variousGoalText:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (accountName, entityName, fromVal, i18n, isMCC, toVal) {pug_html = pug_html + \"\\u003Ch5 class=\\\"detal-number\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = i18n.getString('Details_View_Increase_Shared_Budget', { entity_name: entityName })) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh5\\u003E\\u003Ch5 class=\\\"delta-range\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Range', { from: fromVal, to: toVal })) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh5\\u003E\";\nif (isMCC) {\npug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = accountName) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";\n}}.call(this,\"accountName\" in locals_for_with?locals_for_with.accountName:typeof accountName!==\"undefined\"?accountName:undefined,\"entityName\" in locals_for_with?locals_for_with.entityName:typeof entityName!==\"undefined\"?entityName:undefined,\"fromVal\" in locals_for_with?locals_for_with.fromVal:typeof fromVal!==\"undefined\"?fromVal:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isMCC\" in locals_for_with?locals_for_with.isMCC:typeof isMCC!==\"undefined\"?isMCC:undefined,\"toVal\" in locals_for_with?locals_for_with.toVal:typeof toVal!==\"undefined\"?toVal:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (StoreName) {pug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = StoreName) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";}.call(this,\"StoreName\" in locals_for_with?locals_for_with.StoreName:typeof StoreName!==\"undefined\"?StoreName:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (bidValue, isAutoBidding) {if (isAutoBidding) {\npug_html = pug_html + \"\\u003Cspan class=\\\"auto-bidding\\\"\\u003E\" + (pug.escape(null == (pug_interp = bidValue) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = bidValue) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}}.call(this,\"bidValue\" in locals_for_with?locals_for_with.bidValue:typeof bidValue!==\"undefined\"?bidValue:undefined,\"isAutoBidding\" in locals_for_with?locals_for_with.isAutoBidding:typeof isAutoBidding!==\"undefined\"?isAutoBidding:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (bidValue) {pug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = bidValue) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";}.call(this,\"bidValue\" in locals_for_with?locals_for_with.bidValue:typeof bidValue!==\"undefined\"?bidValue:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (currentDestinationURLOperatorName, currentDestinationUrl, suggestedDestinationURLOperatorName, suggestedDestinationUrl) {pug_mixins[\"showSuggestedContent\"] = pug_interp = function(currentName, currentOperatorName, suggestedName, suggestedOperatorName){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv\\u003E\";\nif (suggestedName != null) {\nif (currentOperatorName != suggestedOperatorName) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-suggested\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = ' ') ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"iconba iconba-Completed\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+suggestedOperatorName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = ' '+suggestedOperatorName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\n}\nif (currentName != suggestedName) {\nif (currentOperatorName != suggestedOperatorName) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-suggested\\\"\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+suggestedName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-suggested\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = ' ') ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"iconba iconba-Completed\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+suggestedName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = ' '+suggestedName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '-') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-container\\\"\\u003E\";\npug_mixins[\"showSuggestedContent\"](currentDestinationUrl, currentDestinationURLOperatorName, suggestedDestinationUrl, suggestedDestinationURLOperatorName);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"currentDestinationURLOperatorName\" in locals_for_with?locals_for_with.currentDestinationURLOperatorName:typeof currentDestinationURLOperatorName!==\"undefined\"?currentDestinationURLOperatorName:undefined,\"currentDestinationUrl\" in locals_for_with?locals_for_with.currentDestinationUrl:typeof currentDestinationUrl!==\"undefined\"?currentDestinationUrl:undefined,\"suggestedDestinationURLOperatorName\" in locals_for_with?locals_for_with.suggestedDestinationURLOperatorName:typeof suggestedDestinationURLOperatorName!==\"undefined\"?suggestedDestinationURLOperatorName:undefined,\"suggestedDestinationUrl\" in locals_for_with?locals_for_with.suggestedDestinationUrl:typeof suggestedDestinationUrl!==\"undefined\"?suggestedDestinationUrl:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (actionTitle, categoryTitle, currentActionName, currentActionOperatorName, currentCategoryName, currentCategoryOperatorName, currentLabelName, currentLabelOperatorName, currentValueName, currentValueOperatorName, labelTitle, suggesteActionOperatorName, suggesteValueOperatorName, suggestedActionName, suggestedCategoryName, suggestedCategoryOperatorName, suggestedLabelName, suggestedLabelOperatorName, suggestedValueName, valueTitle) {pug_mixins[\"showSuggestedContent\"] = pug_interp = function(currentName, currentOperatorName, suggestedName, suggestedOperatorName){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv\\u003E\";\nif (suggestedName != null) {\nif (currentOperatorName != suggestedOperatorName) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-suggested\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = ' ') ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"iconba iconba-Completed\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+suggestedOperatorName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = ' '+suggestedOperatorName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\n}\nif (currentName != suggestedName) {\nif (currentOperatorName != suggestedOperatorName) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-suggested\\\"\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+suggestedName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-suggested\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = ' ') ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"iconba iconba-Completed\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+suggestedName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = ' '+suggestedName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '-') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-container\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = categoryTitle+\":\") ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"showSuggestedContent\"](currentCategoryName, currentCategoryOperatorName, suggestedCategoryName, suggestedCategoryOperatorName);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"goal-setting-container\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = actionTitle+\":\") ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"showSuggestedContent\"](currentActionName, currentActionOperatorName, suggestedActionName, suggesteActionOperatorName);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"goal-setting-container\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = labelTitle+\":\") ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"showSuggestedContent\"](currentLabelName, currentLabelOperatorName, suggestedLabelName, suggestedLabelOperatorName);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"goal-setting-container\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = valueTitle+\":\") ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"showSuggestedContent\"](currentValueName, currentValueOperatorName, suggestedValueName, suggesteValueOperatorName);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"actionTitle\" in locals_for_with?locals_for_with.actionTitle:typeof actionTitle!==\"undefined\"?actionTitle:undefined,\"categoryTitle\" in locals_for_with?locals_for_with.categoryTitle:typeof categoryTitle!==\"undefined\"?categoryTitle:undefined,\"currentActionName\" in locals_for_with?locals_for_with.currentActionName:typeof currentActionName!==\"undefined\"?currentActionName:undefined,\"currentActionOperatorName\" in locals_for_with?locals_for_with.currentActionOperatorName:typeof currentActionOperatorName!==\"undefined\"?currentActionOperatorName:undefined,\"currentCategoryName\" in locals_for_with?locals_for_with.currentCategoryName:typeof currentCategoryName!==\"undefined\"?currentCategoryName:undefined,\"currentCategoryOperatorName\" in locals_for_with?locals_for_with.currentCategoryOperatorName:typeof currentCategoryOperatorName!==\"undefined\"?currentCategoryOperatorName:undefined,\"currentLabelName\" in locals_for_with?locals_for_with.currentLabelName:typeof currentLabelName!==\"undefined\"?currentLabelName:undefined,\"currentLabelOperatorName\" in locals_for_with?locals_for_with.currentLabelOperatorName:typeof currentLabelOperatorName!==\"undefined\"?currentLabelOperatorName:undefined,\"currentValueName\" in locals_for_with?locals_for_with.currentValueName:typeof currentValueName!==\"undefined\"?currentValueName:undefined,\"currentValueOperatorName\" in locals_for_with?locals_for_with.currentValueOperatorName:typeof currentValueOperatorName!==\"undefined\"?currentValueOperatorName:undefined,\"labelTitle\" in locals_for_with?locals_for_with.labelTitle:typeof labelTitle!==\"undefined\"?labelTitle:undefined,\"suggesteActionOperatorName\" in locals_for_with?locals_for_with.suggesteActionOperatorName:typeof suggesteActionOperatorName!==\"undefined\"?suggesteActionOperatorName:undefined,\"suggesteValueOperatorName\" in locals_for_with?locals_for_with.suggesteValueOperatorName:typeof suggesteValueOperatorName!==\"undefined\"?suggesteValueOperatorName:undefined,\"suggestedActionName\" in locals_for_with?locals_for_with.suggestedActionName:typeof suggestedActionName!==\"undefined\"?suggestedActionName:undefined,\"suggestedCategoryName\" in locals_for_with?locals_for_with.suggestedCategoryName:typeof suggestedCategoryName!==\"undefined\"?suggestedCategoryName:undefined,\"suggestedCategoryOperatorName\" in locals_for_with?locals_for_with.suggestedCategoryOperatorName:typeof suggestedCategoryOperatorName!==\"undefined\"?suggestedCategoryOperatorName:undefined,\"suggestedLabelName\" in locals_for_with?locals_for_with.suggestedLabelName:typeof suggestedLabelName!==\"undefined\"?suggestedLabelName:undefined,\"suggestedLabelOperatorName\" in locals_for_with?locals_for_with.suggestedLabelOperatorName:typeof suggestedLabelOperatorName!==\"undefined\"?suggestedLabelOperatorName:undefined,\"suggestedValueName\" in locals_for_with?locals_for_with.suggestedValueName:typeof suggestedValueName!==\"undefined\"?suggestedValueName:undefined,\"valueTitle\" in locals_for_with?locals_for_with.valueTitle:typeof valueTitle!==\"undefined\"?valueTitle:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (NOT_AVAILABLE_DEFAULT_STR, more, notDefault, searchTermList) {if (notDefault) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = NOT_AVAILABLE_DEFAULT_STR) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"more-tooltip\\\"\\u003E\";\nif (searchTermList.length == 1) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"more-top-search-term\\\"\"+\" tabindex=\\\"0\\\"\"+pug.attr(\"data-searchtermlist\", searchTermList, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = searchTermList[0].searchTerm) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nif (searchTermList.length == 2) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"more-top-search-term\\\"\"+\" tabindex=\\\"0\\\"\"+pug.attr(\"data-searchtermlist\", searchTermList, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = searchTermList[0].searchTerm+\", \"+searchTermList[1].searchTerm) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nif (more != undefined) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"more-top-search-term\\\"\"+\" tabindex=\\\"0\\\"\"+pug.attr(\"data-searchtermlist\", searchTermList, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = searchTermList[0].searchTerm+\", \"+searchTermList[1].searchTerm+\", \"+more) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"more-tooltip-container\\\" tabindex=\\\"0\\\"\\u003E\\u003Cspan class=\\\"closeimage close-button\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"more-top-search-term-content\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"NOT_AVAILABLE_DEFAULT_STR\" in locals_for_with?locals_for_with.NOT_AVAILABLE_DEFAULT_STR:typeof NOT_AVAILABLE_DEFAULT_STR!==\"undefined\"?NOT_AVAILABLE_DEFAULT_STR:undefined,\"more\" in locals_for_with?locals_for_with.more:typeof more!==\"undefined\"?more:undefined,\"notDefault\" in locals_for_with?locals_for_with.notDefault:typeof notDefault!==\"undefined\"?notDefault:undefined,\"searchTermList\" in locals_for_with?locals_for_with.searchTermList:typeof searchTermList!==\"undefined\"?searchTermList:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (helpId, i18n, readOnly) {pug_html = pug_html + \"\\u003Cdiv class=\\\"reject-nav-item\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"btn btn-reject\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\\u003Cspan class=\\\"icon-left glyphicon statusSuspended_icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Reject')||'Stop showing this type of recommendation') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ca\" + (\" class=\\\"helpbutton\\\"\"+\" type=\\\"helppopup\\\"\"+pug.attr(\"topic\", helpId, true, true)+pug.attr(\"data-help\", true, true, true)+\" onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\"\") + \"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"helpId\" in locals_for_with?locals_for_with.helpId:typeof helpId!==\"undefined\"?helpId:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"readOnly\" in locals_for_with?locals_for_with.readOnly:typeof readOnly!==\"undefined\"?readOnly:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"bingadsgrid recommendation-grid\\\"\\u003E\\u003Cdiv class=\\\"upper-toolbar\\\"\\u003E\\u003Cdiv class=\\\"reject-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"notification-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"filterBanner-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"grid-table\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (content) {pug_html = pug_html + \"\\u003Ch6\\u003E\" + (null == (pug_interp = content) ? \"\" : pug_interp) + \"\\u003C\\u002Fh6\\u003E\";}.call(this,\"content\" in locals_for_with?locals_for_with.content:typeof content!==\"undefined\"?content:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (AdoptionStatus, downloadable, failedRecommendationCount, formatedFailedRecommendationCount, formatedSuccessRecommendationCount, i18n, successRecommendationCount) {if (AdoptionStatus === 'InProgress') {\npug_html = pug_html + \"\\u003Ch6\\u003E\" + (null == (pug_interp = i18n.getString('In_Progress')) ? \"\" : pug_interp) + \"\\u003C\\u002Fh6\\u003E\";\n}\nelse\nif (AdoptionStatus === 'Failed') {\npug_html = pug_html + \"\\u003Cspan class=\\\"iconba iconba-Warning icon-warning\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = i18n.getString('System_Error')) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\\u003E\";\nif (successRecommendationCount > 0) {\npug_html = pug_html + \"\\u003Cspan class=\\\"recommendation-success\\\"\\u003E\\u003Cspan class=\\\"iconba iconba-Completed icon-success status\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Successful')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = formatedSuccessRecommendationCount) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nif (failedRecommendationCount > 0) {\npug_html = pug_html + \"\\u003Cspan class=\\\"recommendation-fail\\\"\\u003E\\u003Cspan class=\\\"iconba iconba-Warning icon-low-warning status status_warning\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Failed')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = formatedFailedRecommendationCount) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nif (downloadable) {\npug_html = pug_html + \"\\u003Ca class=\\\"recommendation-history-download\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_History_Download') || '__Download__') ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"AdoptionStatus\" in locals_for_with?locals_for_with.AdoptionStatus:typeof AdoptionStatus!==\"undefined\"?AdoptionStatus:undefined,\"downloadable\" in locals_for_with?locals_for_with.downloadable:typeof downloadable!==\"undefined\"?downloadable:undefined,\"failedRecommendationCount\" in locals_for_with?locals_for_with.failedRecommendationCount:typeof failedRecommendationCount!==\"undefined\"?failedRecommendationCount:undefined,\"formatedFailedRecommendationCount\" in locals_for_with?locals_for_with.formatedFailedRecommendationCount:typeof formatedFailedRecommendationCount!==\"undefined\"?formatedFailedRecommendationCount:undefined,\"formatedSuccessRecommendationCount\" in locals_for_with?locals_for_with.formatedSuccessRecommendationCount:typeof formatedSuccessRecommendationCount!==\"undefined\"?formatedSuccessRecommendationCount:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"successRecommendationCount\" in locals_for_with?locals_for_with.successRecommendationCount:typeof successRecommendationCount!==\"undefined\"?successRecommendationCount:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"bingadsgrid recommendation-result-grid\\\"\\u003E\\u003Cdiv class=\\\"grid-table\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (colspan, key, selection) {pug_html = pug_html + \"\\u003Ctr\" + (\" class=\\\"inline-action-container\\\"\"+pug.attr(\"key\", key, true, true)+pug.attr(\"data-inlineKey\", key, true, true)) + \"\\u003E\";\nif (selection) {\npug_html = pug_html + \"\\u003Ctd class=\\\"inline-padding\\\"\\u003E\\u003C\\u002Ftd\\u003E\";\n}\npug_html = pug_html + \"\\u003Ctd\" + (\" class=\\\"inline-content\\\"\"+\" rowspan=\\\"1\\\"\"+pug.attr(\"colspan\", colspan, true, true)) + \"\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";}.call(this,\"colspan\" in locals_for_with?locals_for_with.colspan:typeof colspan!==\"undefined\"?colspan:undefined,\"key\" in locals_for_with?locals_for_with.key:typeof key!==\"undefined\"?key:undefined,\"selection\" in locals_for_with?locals_for_with.selection:typeof selection!==\"undefined\"?selection:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (cpcIncreaseReason, cpcIncreaseText, hideTitle, hintText, i18n, metricTypeDescriptions, metricTypes) {pug_html = pug_html + \"\\u003Cdiv class=\\\"ad-extension-opportunity-hint form-group\\\"\\u003E\\u003Cdiv\\u003E\" + (null == (pug_interp = hintText) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"ad-extension-association-editor form-group\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (!hideTitle) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"ad-extension-est\\\"\\u003E\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtension_Inline_View_Total_Weekly_EstChange')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\\u003Cdiv class=\\\"row ad-extension-detail-overview\\\"\\u003E\";\n// iterate metricTypes\n;(function(){\n var $$obj = metricTypes;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var metricType = $$obj[pug_index0];\nif (metricType == 'cpc') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"ad-extension-detail-overview-item-cpc\\\"\\u003E\\u003Cdiv class=\\\"ad-extension-detail-desc-top\\\"\\u003E\" + (pug.escape(null == (pug_interp = metricTypeDescriptions[metricType]) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"ad-extension-detail-desc-middle\\\"\"+pug.attr(\"data-bind\", 'attr: { type: estImpactType.' + metricType + ' }, html: formatedDelta.' + metricType, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"ad-extension-detail-desc-bottom\\\"\"+pug.attr(\"data-bind\", 'html: formatedRange.' + metricType, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"cpcIncreaseText\\\" data-bind=\\\"visible:isCPCIncrease\\\"\\u003E\" + (pug.escape(null == (pug_interp = cpcIncreaseText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"tipClick\\\"\\u003E\\u003Ca class=\\\"status_icon\\\" data-bind=\\\"visible:isCPCIncrease, enable:isCPCIncrease\\\" tabindex=\\\"0\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003Cdiv class=\\\"tooltipT\\\"\\u003E\\u003Cp\\u003E\" + (pug.escape(null == (pug_interp = cpcIncreaseReason) ? \"\" : pug_interp)) + \"\\u003C\\u002Fp\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"ad-extension-detail-overview-item\\\"\\u003E\\u003Cdiv class=\\\"ad-extension-detail-desc-top\\\"\\u003E\" + (pug.escape(null == (pug_interp = metricTypeDescriptions[metricType]) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"ad-extension-detail-desc-middle\\\"\"+pug.attr(\"data-bind\", 'attr: { type: estImpactType.' + metricType + ' }, html: formatedDelta.' + metricType, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"ad-extension-detail-desc-bottom\\\"\"+pug.attr(\"data-bind\", 'html: formatedRange.' + metricType, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var metricType = $$obj[pug_index0];\nif (metricType == 'cpc') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"ad-extension-detail-overview-item-cpc\\\"\\u003E\\u003Cdiv class=\\\"ad-extension-detail-desc-top\\\"\\u003E\" + (pug.escape(null == (pug_interp = metricTypeDescriptions[metricType]) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"ad-extension-detail-desc-middle\\\"\"+pug.attr(\"data-bind\", 'attr: { type: estImpactType.' + metricType + ' }, html: formatedDelta.' + metricType, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"ad-extension-detail-desc-bottom\\\"\"+pug.attr(\"data-bind\", 'html: formatedRange.' + metricType, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"cpcIncreaseText\\\" data-bind=\\\"visible:isCPCIncrease\\\"\\u003E\" + (pug.escape(null == (pug_interp = cpcIncreaseText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"tipClick\\\"\\u003E\\u003Ca class=\\\"status_icon\\\" data-bind=\\\"visible:isCPCIncrease, enable:isCPCIncrease\\\" tabindex=\\\"0\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003Cdiv class=\\\"tooltipT\\\"\\u003E\\u003Cp\\u003E\" + (pug.escape(null == (pug_interp = cpcIncreaseReason) ? \"\" : pug_interp)) + \"\\u003C\\u002Fp\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"ad-extension-detail-overview-item\\\"\\u003E\\u003Cdiv class=\\\"ad-extension-detail-desc-top\\\"\\u003E\" + (pug.escape(null == (pug_interp = metricTypeDescriptions[metricType]) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"ad-extension-detail-desc-middle\\\"\"+pug.attr(\"data-bind\", 'attr: { type: estImpactType.' + metricType + ' }, html: formatedDelta.' + metricType, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"ad-extension-detail-desc-bottom\\\"\"+pug.attr(\"data-bind\", 'html: formatedRange.' + metricType, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"cpcIncreaseReason\" in locals_for_with?locals_for_with.cpcIncreaseReason:typeof cpcIncreaseReason!==\"undefined\"?cpcIncreaseReason:undefined,\"cpcIncreaseText\" in locals_for_with?locals_for_with.cpcIncreaseText:typeof cpcIncreaseText!==\"undefined\"?cpcIncreaseText:undefined,\"hideTitle\" in locals_for_with?locals_for_with.hideTitle:typeof hideTitle!==\"undefined\"?hideTitle:undefined,\"hintText\" in locals_for_with?locals_for_with.hintText:typeof hintText!==\"undefined\"?hintText:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"metricTypeDescriptions\" in locals_for_with?locals_for_with.metricTypeDescriptions:typeof metricTypeDescriptions!==\"undefined\"?metricTypeDescriptions:undefined,\"metricTypes\" in locals_for_with?locals_for_with.metricTypes:typeof metricTypes!==\"undefined\"?metricTypes:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (symbol, text) {pug_html = pug_html + \"\\u003Cspan class=\\\"increase-symbol\\\"\\u003E\" + (pug.escape(null == (pug_interp = symbol) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";}.call(this,\"symbol\" in locals_for_with?locals_for_with.symbol:typeof symbol!==\"undefined\"?symbol:undefined,\"text\" in locals_for_with?locals_for_with.text:typeof text!==\"undefined\"?text:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-inline-ad-extension-view\\\"\\u003E\\u003Cdiv class=\\\"ad-extension-opt detail-opportunity aggregatedOpportunity\\\"\\u003E\\u003Cdiv class=\\\"ad-extension-opt-detail\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"ad-extension-detail-actions\\\"\\u003E\\u003Cbutton class=\\\"btn btn-primary btn-hero apply\\\" data-bind=\\\"enable:!readOnly&&isApplyEnable\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (text) {pug_html = pug_html + \"\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\";}.call(this,\"text\" in locals_for_with?locals_for_with.text:typeof text!==\"undefined\"?text:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (categoryTitle, data, i18n, isPanelEdit, memo, readOnly, uetTitle) {pug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-inline-create-conversion-goal-view\\\"\\u003E\\u003Cdiv class=\\\"create-conversion-goal-edit-content\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"create-conversion-goal-view-content\\\"\\u003E\\u003Cdiv class=\\\"memo-row\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = memo) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"view-content-row\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = uetTitle) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = ': ') ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = data.TagName+' ('+data.TagId+')') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"view-content-row\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = categoryTitle) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = ': ') ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = data.GoalCategory) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif ((isPanelEdit)) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"save-bar form-group appEditor-save-container\\\"\\u003E\\u003Cbutton\" + (\" class=\\\"btn btn-primary btn-hero apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"action-panel clear hide-overflow\\\"\\u003E\\u003Cdiv class=\\\"pull-right\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cbutton\" + (\" class=\\\"btn btn-primary btn-hero apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"categoryTitle\" in locals_for_with?locals_for_with.categoryTitle:typeof categoryTitle!==\"undefined\"?categoryTitle:undefined,\"data\" in locals_for_with?locals_for_with.data:typeof data!==\"undefined\"?data:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isPanelEdit\" in locals_for_with?locals_for_with.isPanelEdit:typeof isPanelEdit!==\"undefined\"?isPanelEdit:undefined,\"memo\" in locals_for_with?locals_for_with.memo:typeof memo!==\"undefined\"?memo:undefined,\"readOnly\" in locals_for_with?locals_for_with.readOnly:typeof readOnly!==\"undefined\"?readOnly:undefined,\"uetTitle\" in locals_for_with?locals_for_with.uetTitle:typeof uetTitle!==\"undefined\"?uetTitle:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_mixins[\"popupHelp\"] = pug_interp = function(popupId, ariaLabelContext, arialLabelText){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"helpbutton\\\"\"+\" type=\\\"helppopup\\\"\"+pug.attr(\"topic\", popupId, true, true)+pug.attr(\"data-help\", true, true, true)+\" onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"aria-label\", (arialLabelText || 'Learn more') + ' ' + (ariaLabelContext || ''), true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-horizontal\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Clabel id=\\\"AdGroupCreate_AdGroupName_Label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('PageTitle_AdGroup_Name_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"]('pop_BA_CampaignCreate_Keywords_AdGroupName', i18n.getString('PageTitle_AdGroup_Name_Label'), i18n.getString('LearnMoreLinkText'));\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cinput\" + (\" class=\\\"name form-control\\\"\"+\" data-bind=\\\"value: AdGroupName, valueUpdate: "input", attr: {"aria-invalid": !AdGroupName.isValid()}, css: {"validation-error": !AdGroupName.isValid()}\\\"\"+pug.attr(\"placeholder\", i18n.getString('AdGroupCreate_Placeholder_Name'), true, true)+\" type=\\\"text\\\" aria-required=\\\"true\\\" aria-labelledby=\\\"AdGroupCreate_AdGroupName_Label\\\" aria-describedby=\\\"AdGroupCreate_AdGroupName_Error Name_CharactersRemaining\\\"\") + \"\\u003E\\u003Cdiv class=\\\"remaining-hint help-block\\\"\\u003E\\u003Cspan data-bind=\\\"text: AdGroupName.char_rem\\\" id=\\\"AdGroupName_CharactersRemaining\\\" role=\\\"status\\\" aria-live=\\\"polite\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"clear\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"visible: !AdGroupName.isValid(), text: AdGroupName.error, attr: {"aria-hidden": AdGroupName.isValid()}\\\" id=\\\"AdGroupName_ValidationError\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"copy-adgroup-settings\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group bidding-strategy-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Clabel id=\\\"AdGroupCreate_AdGroupName_Label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('PageTitle_AdGroup_SearchBid_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"]('pop_BA_AdGroup_SearchBid', i18n.getString('PageTitle_AdGroup_SearchBid_Label'), i18n.getString('LearnMoreLinkText'));\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-4 search-bid__container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (header, i18n, readOnly) {pug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-dynamic-search-ads-inline-view\\\"\\u003E\\u003Cdiv class=\\\"description-header\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = header) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dynamic-search-ads-preview\\\"\\u003E\\u003Cdiv\\u003E\\u003Cdiv class=\\\"dynamic-search-ads-editor-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"action-panel clear\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"pull-right\\\"\\u003E\\u003Cbutton\" + (\" class=\\\"btn btn-hero btn-primary apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"header\" in locals_for_with?locals_for_with.header:typeof header!==\"undefined\"?header:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"readOnly\" in locals_for_with?locals_for_with.readOnly:typeof readOnly!==\"undefined\"?readOnly:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (examplesLength, i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"campaignEditor-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"adgroupEditor-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"adEditor-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (examplesLength > 0) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"search-examples-container\\\"\\u003E\\u003Cdiv class=\\\"preview-label preview-search-examples-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Search_Example')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"preview-search-examples\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"preview-label ads-preview-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Ads_preview')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"examplesLength\" in locals_for_with?locals_for_with.examplesLength:typeof examplesLength!==\"undefined\"?examplesLength:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, info) {pug_html = pug_html + \"\\u003Cdiv class=\\\"preview-container tipsCarousel carousel slide\\\" data-ride=\\\"carousel\\\" data-interval=\\\"false\\\"\\u003E\\u003Ch5 class=\\\"title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_FixAdDestinationInline_Preview_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"carousel-inner\\\" role=\\\"listbox\\\" data-bind=\\\"foreach: exampleAds()\\\"\\u003E\\u003Cdiv class=\\\"ad-preview previews item\\\" data-bind=\\\"css: {"active": $index() === $parent.selectIndex()}\\\"\\u003E\\u003Cdiv class=\\\"ad-preview-bing-searchbox-icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"ad-preview-info\\\"\\u003E\\u003Cspan class=\\\"previewTitleAd previewTitleAd\\\" data-bind=\\\"text:convertedTitle\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"ad-preview-info\\\"\\u003E\\u003Cspan class=\\\"preview-ad-slug\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Entity_Ads')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E  \\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"previewUrlAd\\\" data-bind=\\\"text:convertDisplayUrl\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"ad-preview-info\\\"\\u003E\\u003Cspan class=\\\"previewAdText preview-ad__description\\\" data-bind=\\\"text:convertedText\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (info.numberRejectedAds > 1) {\npug_html = pug_html + \"\\u003Col class=\\\"carousel-indicators\\\" data-bind=\\\"foreach: exampleAds()\\\"\\u003E\\u003Cli data-target=\\\".tipsCarousel\\\" data-bind=\\\"attr: {"data-slide-to": $index()}, css: {"active": $index() === $parent.selectIndex()}\\\"\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Fol\\u003E\\u003Cdiv class=\\\"carousel-control\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"carousel-control__arrow-left\\\"\"+\" tabindex=\\\"0\\\" href=\\\".tipsCarousel\\\" role=\\\"button\\\" data-slide=\\\"prev\\\"\"+pug.attr(\"aria-label\", i18n.getString('PrevNext_Previous'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"carousel-control__arrow-right\\\"\"+\" tabindex=\\\"1\\\" href=\\\".tipsCarousel\\\" role=\\\"button\\\" data-slide=\\\"next\\\"\"+pug.attr(\"aria-label\", i18n.getString('PrevNext_Next'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"info\" in locals_for_with?locals_for_with.info:typeof info!==\"undefined\"?info:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, info) {pug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-fix-ad-destination\\\"\\u003E\\u003Cdiv class=\\\"rba-title\\\"\\u003E\\u003Ca\" + (\" class=\\\"title landing-page-url\\\"\"+\" target=\\\"_blank\\\"\"+pug.attr(\"href\", info.landingPageUrl, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = info.landingPageUrl) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cdiv class=\\\"desc\\\"\\u003E\" + (null == (pug_interp = info.desc) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-content row\\\"\\u003E\\u003Cdiv class=\\\"rba-content-left col-sm-5\\\"\\u003E\\u003Cdiv class=\\\"info-url row form-horizontal ad-editor-form__container\\\"\\u003E\" + (null == (pug_interp = require(\"./urlEditor.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"info-affected row\\\"\\u003E\\u003Ch5 class=\\\"title type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_FixAdDestinationInline_Desc2')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Cdiv class=\\\"rba-detail-desc-top\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Inline_View_Number_Rejected_Ads')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-estvalue\\\"\\u003E\" + (pug.escape(null == (pug_interp = info.numberRejectedAds) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Cdiv class=\\\"rba-detail-desc-top\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Inline_View_Number_Rejected_Keywords')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-estvalue\\\"\\u003E\" + (pug.escape(null == (pug_interp = info.numberRejectedKeywords) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-content-right col-sm-6 ad-editor-form__container\\\"\\u003E\";\nif (info.numberRejectedAds > 0) {\npug_html = pug_html + (null == (pug_interp = require(\"./adsPreview.pug\").call(this, locals)) ? \"\" : pug_interp);\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-actions text-right\\\"\\u003E\\u003Cbutton class=\\\"btn btn-hero btn-primary apply\\\" data-bind=\\\"enable:enableResubmit\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_Resubmit')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"info\" in locals_for_with?locals_for_with.info:typeof info!==\"undefined\"?info:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, info) {pug_html = pug_html + \"\\u003Cdiv class=\\\"row form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-3 control-label text-right\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Ad_FinalUrl')) ? \"\" : pug_interp)) + \"\\u003Ca class=\\\"helpbutton\\\" type=\\\"helppopup\\\" topic=\\\"pop_BA_NewAdCreate_FinalURL\\\" data-help onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-9\\\"\\u003E\\u003Cdiv class=\\\"final-url\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"final-url-desc\\\"\\u003E\" + (pug.escape(null == (pug_interp = info.finalUrlDesc) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"row form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-3 control-label text-right\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Ad_DisplayUrl')) ? \"\" : pug_interp)) + \"\\u003Ca class=\\\"helpbutton\\\" type=\\\"helppopup\\\" topic=\\\"pop_BA_NewAdCreate_VanityURL\\\" data-help onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-9 form-control-static\\\"\\u003E\\u003Cspan data-bind=\\\"text:displayUrl\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (info.showTrackingTemplate) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"row form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-3 control-label text-right\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('TrackingTemplate_Label')) ? \"\" : pug_interp)) + \"\\u003Ca class=\\\"helpbutton\\\" type=\\\"helppopup\\\" topic=\\\"pop_BA_NewCampaignCreate_Ad_TrackTemplate\\\" data-help onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-9\\\"\\u003E\\u003Cdiv class=\\\"tracking-template\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"warning alert alert-info\\\" data-bind=\\\"visible:showWarning\\\"\\u003E\\u003Cspan class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"block warning-msg\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_FixAdDestination_WarningMsg_TrackingTemplate')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"warning alert warning-info\\\" data-bind=\\\"visible:showEmptyTemplateWarning\\\"\\u003E\\u003Cspan class=\\\"iconba iconba-Warning\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"block warning-msg\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_FixAdDestination_WarningMsg_Empty_TrackingTemplate')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"row form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-3\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-9 url-test-tool uurl-test-tool__container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"info\" in locals_for_with?locals_for_with.info:typeof info!==\"undefined\"?info:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"destination-goal\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Cselect\" + (\" class=\\\"form-control\\\"\"+\" data-bind=\\\"options: expressionOperators, optionsText: "text", optionsValue: "value", value: operator\\\"\"+pug.attr(\"aria-label\", i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Destination'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003Cdiv\" + (\" class=\\\"error\\\"\"+\" id=\\\"UET_Goal_Creation_Type_Destination_Error\\\"\"+pug.attr(\"data-bind\", 'text: operator.isValid() ? \"\" : \"' + i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Error_SelectScenario') + '\"', true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"placeholder\", i18n.getString('UnifiedEventTracking_Goal_Creation_Type_DestinationPlaceholder'), true, true)+\" data-bind=\\\"value: urlString, valueUpdate: "input", attr: { maxLength: maxUrlLength }, css: {"error": !urlString.isValid()}\\\"\"+pug.attr(\"aria-label\", i18n.getString('UnifiedEventTracking_Goal_Creation_Type_DestinationPlaceholder'), true, true)+\" aria-describedby=\\\"UET_Goal_Creation_Type_Destination_Error\\\"\") + \"\\u003E\\u003Cdiv\" + (\" class=\\\"error\\\"\"+\" id=\\\"UET_Goal_Creation_Type_Destination_Error\\\"\"+pug.attr(\"data-bind\", 'text: urlString.isValid() ? \"\" : \"' + i18n.getString('UnifiedEventTracking_Goal_Creation_Type_DestinationEmptyError') + '\"', true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cdiv class=\\\"type-normal\\\" data-bind=\\\"html: operatorDescription, css: {"inactive": true}\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"event-warning-param\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cdiv class=\\\"alert alert-warning\\\" data-bind=\\\"visible: warningMessage() !== ""\\\"\\u003E\\u003Cspan class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan data-bind=\\\"text: warningMessage()\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"event-goal-params\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\" data-bind=\\\"foreach: eventParams\\\"\\u003E\\u003Cdiv class=\\\"row param-row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Clabel data-bind=\\\"text: text\\\"\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cselect class=\\\"form-control\\\" data-bind=\\\"options: operators, optionsText: "text", optionsValue: "value", value: operator, attr: { "aria-label": text }\\\"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-8\\\"\\u003E\\u003Cinput class=\\\"form-control\\\" type=\\\"text\\\" data-bind=\\\"value: value, valueUpdate: "input", attr: isNumeric ? { "aria-label": text } : { maxLength: maxLength, "aria-label": text }, css: {"error": !value.isValid()}\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"visible: !value.isValid(), text: $data.errorMessage\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"event-no-param\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cdiv class=\\\"error-bottom\\\" data-bind=\\\"visible: errorMessage() !== "", text: errorMessage()\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"event-warning-param\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cdiv class=\\\"alert alert-warning\\\" data-bind=\\\"visible: warningMessage() !== ""\\\"\\u003E\\u003Cspan class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan data-bind=\\\"text: warningMessage()\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (currentDestinationURLOperatorName, currentDestinationUrl, estimation, i18n, readOnly, suggestedDestinationURLOperatorName, suggestedDestinationUrl, title) {pug_mixins[\"showWarningContent\"] = pug_interp = function(currentName, currentOperatorName, suggestedName, suggestedOperatorName){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv\\u003E\";\nif (currentName != null) {\nif (currentOperatorName != suggestedOperatorName) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-warning\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = ' ') ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"iconba iconba-ErrorBadge\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+currentOperatorName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = ' '+currentOperatorName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\n}\nif (currentName != suggestedName) {\nif (currentOperatorName != suggestedOperatorName) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-warning\\\"\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+currentName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-warning\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = ' ') ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"iconba iconba-ErrorBadge\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+currentName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = ' '+currentName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '-') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-inline-fix-conversion-goal-setting-view\\\"\\u003E\\u003Cdiv class=\\\"title\\\"\\u003E\" + (null == (pug_interp = title) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"main-content\\\"\\u003E\\u003Cdiv class=\\\"goal-setting-current\\\"\\u003E\\u003Cdiv class=\\\"subtitle\\\"\\u003E\" + (null == (pug_interp = i18n.getString('Recommendation_FixConversionGoalSettingInline_From')+':') ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"grid-column-goal-setting-current\\\"\\u003E\\u003Cdiv class=\\\"goal-setting-container\\\"\\u003E\";\npug_mixins[\"showWarningContent\"](currentDestinationUrl, currentDestinationURLOperatorName, suggestedDestinationUrl, suggestedDestinationURLOperatorName);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"estimation\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Missed_Conversion') + ': ' + estimation) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"goal-setting-arrow\\\"\\u003E\\u003Cspan class=\\\"iconba large iconba-Forward\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"goal-setting-suggested\\\"\\u003E\\u003Cdiv class=\\\"subtitle\\\"\\u003E\" + (null == (pug_interp = i18n.getString('Recommendation_FixConversionGoalSettingInline_To')+':') ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"grid-column-goal-setting-suggested\\\"\\u003E\\u003Cdiv class=\\\"suggested-goal-setting-container\\\"\\u003E\" + (null == (pug_interp = require(\"./destinationGoalType.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"action-panel clear hide-overflow\\\"\\u003E\\u003Cdiv class=\\\"pull-right\\\"\\u003E\\u003Cbutton\" + (\" class=\\\"btn btn-primary btn-hero apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"currentDestinationURLOperatorName\" in locals_for_with?locals_for_with.currentDestinationURLOperatorName:typeof currentDestinationURLOperatorName!==\"undefined\"?currentDestinationURLOperatorName:undefined,\"currentDestinationUrl\" in locals_for_with?locals_for_with.currentDestinationUrl:typeof currentDestinationUrl!==\"undefined\"?currentDestinationUrl:undefined,\"estimation\" in locals_for_with?locals_for_with.estimation:typeof estimation!==\"undefined\"?estimation:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"readOnly\" in locals_for_with?locals_for_with.readOnly:typeof readOnly!==\"undefined\"?readOnly:undefined,\"suggestedDestinationURLOperatorName\" in locals_for_with?locals_for_with.suggestedDestinationURLOperatorName:typeof suggestedDestinationURLOperatorName!==\"undefined\"?suggestedDestinationURLOperatorName:undefined,\"suggestedDestinationUrl\" in locals_for_with?locals_for_with.suggestedDestinationUrl:typeof suggestedDestinationUrl!==\"undefined\"?suggestedDestinationUrl:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (actionTitle, categoryTitle, currentActionName, currentActionOperatorName, currentCategoryName, currentCategoryOperatorName, currentLabelName, currentLabelOperatorName, currentValueName, currentValueOperatorName, estimation, i18n, labelTitle, readOnly, suggesteActionOperatorName, suggesteValueOperatorName, suggestedActionName, suggestedCategoryName, suggestedCategoryOperatorName, suggestedLabelName, suggestedLabelOperatorName, suggestedValueName, title, valueTitle) {pug_mixins[\"showWarningContent\"] = pug_interp = function(currentName, currentOperatorName, suggestedName, suggestedOperatorName){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv\\u003E\";\nif (currentName != null) {\nif (currentOperatorName != suggestedOperatorName) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-warning\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = ' ') ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"iconba iconba-ErrorBadge\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+currentOperatorName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = ' '+currentOperatorName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\n}\nif (currentName != suggestedName) {\nif (currentOperatorName != suggestedOperatorName) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-warning\\\"\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+currentName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"goal-setting-warning\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = ' ') ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"iconba iconba-ErrorBadge\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"cell-with-popove\\\"\\u003E\" + (null == (pug_interp = ' '+currentName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = ' '+currentName) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '-') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-inline-fix-conversion-goal-setting-view\\\"\\u003E\\u003Cdiv class=\\\"title\\\"\\u003E\" + (null == (pug_interp = title) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"main-content\\\"\\u003E\\u003Cdiv class=\\\"goal-setting-current\\\"\\u003E\\u003Cdiv class=\\\"subtitle\\\"\\u003E\" + (null == (pug_interp = i18n.getString('Recommendation_FixConversionGoalSettingInline_From')+':') ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"grid-column-goal-setting-current\\\"\\u003E\\u003Cdiv class=\\\"goal-setting-container\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = categoryTitle+\":\") ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"showWarningContent\"](currentCategoryName, currentCategoryOperatorName, suggestedCategoryName, suggestedCategoryOperatorName);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"goal-setting-container\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = actionTitle+\":\") ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"showWarningContent\"](currentActionName, currentActionOperatorName, suggestedActionName, suggesteActionOperatorName);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"goal-setting-container\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = labelTitle+\":\") ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"showWarningContent\"](currentLabelName, currentLabelOperatorName, suggestedLabelName, suggestedLabelOperatorName);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"goal-setting-container\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = valueTitle+\":\") ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"showWarningContent\"](currentValueName, currentValueOperatorName, suggestedValueName, suggesteValueOperatorName);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"estimation\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Missed_Conversion') + ': ' + estimation) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"goal-setting-arrow\\\"\\u003E\\u003Cspan class=\\\"iconba large iconba-Forward\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"goal-setting-suggested\\\"\\u003E\\u003Cdiv class=\\\"subtitle\\\"\\u003E\" + (null == (pug_interp = i18n.getString('Recommendation_FixConversionGoalSettingInline_To')+':') ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"grid-column-goal-setting-suggested\\\"\\u003E\\u003Cdiv class=\\\"suggested-goal-setting-container\\\"\\u003E\" + (null == (pug_interp = require(\"./eventGoalType.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"action-panel clear hide-overflow\\\"\\u003E\\u003Cdiv class=\\\"pull-right\\\"\\u003E\\u003Cbutton\" + (\" class=\\\"btn btn-primary btn-hero apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"actionTitle\" in locals_for_with?locals_for_with.actionTitle:typeof actionTitle!==\"undefined\"?actionTitle:undefined,\"categoryTitle\" in locals_for_with?locals_for_with.categoryTitle:typeof categoryTitle!==\"undefined\"?categoryTitle:undefined,\"currentActionName\" in locals_for_with?locals_for_with.currentActionName:typeof currentActionName!==\"undefined\"?currentActionName:undefined,\"currentActionOperatorName\" in locals_for_with?locals_for_with.currentActionOperatorName:typeof currentActionOperatorName!==\"undefined\"?currentActionOperatorName:undefined,\"currentCategoryName\" in locals_for_with?locals_for_with.currentCategoryName:typeof currentCategoryName!==\"undefined\"?currentCategoryName:undefined,\"currentCategoryOperatorName\" in locals_for_with?locals_for_with.currentCategoryOperatorName:typeof currentCategoryOperatorName!==\"undefined\"?currentCategoryOperatorName:undefined,\"currentLabelName\" in locals_for_with?locals_for_with.currentLabelName:typeof currentLabelName!==\"undefined\"?currentLabelName:undefined,\"currentLabelOperatorName\" in locals_for_with?locals_for_with.currentLabelOperatorName:typeof currentLabelOperatorName!==\"undefined\"?currentLabelOperatorName:undefined,\"currentValueName\" in locals_for_with?locals_for_with.currentValueName:typeof currentValueName!==\"undefined\"?currentValueName:undefined,\"currentValueOperatorName\" in locals_for_with?locals_for_with.currentValueOperatorName:typeof currentValueOperatorName!==\"undefined\"?currentValueOperatorName:undefined,\"estimation\" in locals_for_with?locals_for_with.estimation:typeof estimation!==\"undefined\"?estimation:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"labelTitle\" in locals_for_with?locals_for_with.labelTitle:typeof labelTitle!==\"undefined\"?labelTitle:undefined,\"readOnly\" in locals_for_with?locals_for_with.readOnly:typeof readOnly!==\"undefined\"?readOnly:undefined,\"suggesteActionOperatorName\" in locals_for_with?locals_for_with.suggesteActionOperatorName:typeof suggesteActionOperatorName!==\"undefined\"?suggesteActionOperatorName:undefined,\"suggesteValueOperatorName\" in locals_for_with?locals_for_with.suggesteValueOperatorName:typeof suggesteValueOperatorName!==\"undefined\"?suggesteValueOperatorName:undefined,\"suggestedActionName\" in locals_for_with?locals_for_with.suggestedActionName:typeof suggestedActionName!==\"undefined\"?suggestedActionName:undefined,\"suggestedCategoryName\" in locals_for_with?locals_for_with.suggestedCategoryName:typeof suggestedCategoryName!==\"undefined\"?suggestedCategoryName:undefined,\"suggestedCategoryOperatorName\" in locals_for_with?locals_for_with.suggestedCategoryOperatorName:typeof suggestedCategoryOperatorName!==\"undefined\"?suggestedCategoryOperatorName:undefined,\"suggestedLabelName\" in locals_for_with?locals_for_with.suggestedLabelName:typeof suggestedLabelName!==\"undefined\"?suggestedLabelName:undefined,\"suggestedLabelOperatorName\" in locals_for_with?locals_for_with.suggestedLabelOperatorName:typeof suggestedLabelOperatorName!==\"undefined\"?suggestedLabelOperatorName:undefined,\"suggestedValueName\" in locals_for_with?locals_for_with.suggestedValueName:typeof suggestedValueName!==\"undefined\"?suggestedValueName:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined,\"valueTitle\" in locals_for_with?locals_for_with.valueTitle:typeof valueTitle!==\"undefined\"?valueTitle:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (UETLinkText, estimation, goalValueSourceId, i18n, notAssignGoaText, pitchingRevenue, readOnly, sameGoalText, subtitleCurrent, subtitleFixIssue, subtitleRevenue, suggestedVariousGoalText, title, variousGoalText) {\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\npug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-inline-fix-conversion-goal-setting-view\\\"\\u003E\\u003Cdiv class=\\\"title\\\"\\u003E\" + (null == (pug_interp = title) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"main-content\\\"\\u003E\\u003Cdiv class=\\\"goal-setting-current\\\"\\u003E\";\nif (goalValueSourceId == 2) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"subtitle\\\"\\u003E\" + (pug.escape(null == (pug_interp = subtitleCurrent+':') ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"subtitle\\\"\\u003E\" + (null == (pug_interp = i18n.getString('Recommendation_FixConversionGoalSettingInline_From')+':') ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"grid-column-goal-setting-current\\\"\\u003E\";\nif (goalValueSourceId == 1) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"current same-goal-value\\\"\\u003E\" + (pug.escape(null == (pug_interp = sameGoalText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (goalValueSourceId == 2) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"current various-goal-value\\\"\\u003E\" + (pug.escape(null == (pug_interp = variousGoalText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (goalValueSourceId == 3) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"current not-assign-goal-value\\\"\\u003E\" + (pug.escape(null == (pug_interp = notAssignGoaText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"estimation\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Missed_Conversion') + ': ' + estimation) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"goal-setting-arrow\\\"\\u003E\\u003Cspan class=\\\"iconba large iconba-Forward\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"goal-setting-suggested\\\"\\u003E\";\nif (goalValueSourceId == 2) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"subtitle\\\"\\u003E\" + (pug.escape(null == (pug_interp = subtitleFixIssue+':') ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"subtitle\\\"\\u003E\" + (null == (pug_interp = i18n.getString('Recommendation_FixConversionGoalSettingInline_To')+':') ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"grid-column-goal-setting-suggested\\\"\\u003E\";\nif (goalValueSourceId == 1 || goalValueSourceId == 3) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"suggested same-goal-value not-assign-goal-value title\\\"\\u003E\" + (pug.escape(null == (pug_interp = subtitleRevenue) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"suggested same-goal-value not-assign-goal-value pitching\\\"\\u003E\" + (pug.escape(null == (pug_interp = pitchingRevenue[0]) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"suggested same-goal-value not-assign-goal-value pitching\\\"\\u003E\" + (pug.escape(null == (pug_interp = pitchingRevenue[1]) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"suggested same-goal-value not-assign-goal-value input-container\\\"\\u003E\\u003Cinput class=\\\"form-control\\\" type=\\\"text\\\" data-bind=\\\"value: inputRevenueValue, valueUpdate: "input", attr: { "aria-label": text }, css: {"error": !inputRevenueValue.isValid()}\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"visible: !inputRevenueValue.isValid(), text: errorMessage\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (goalValueSourceId == 2) {\npug_html = pug_html + \"\\u003Cspan class=\\\"suggested various-goal-value\\\"\\u003E\" + (pug.escape(null == (pug_interp = suggestedVariousGoalText[0]) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"suggested various-goal-value link\\\" data-bind=\\\"click: viewUET\\\"\\u003E\" + (pug.escape(null == (pug_interp = ' '+UETLinkText+' ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"suggested various-goal-value\\\"\\u003E\" + (pug.escape(null == (pug_interp = suggestedVariousGoalText[1]) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"action-panel clear hide-overflow\\\"\\u003E\\u003Cdiv class=\\\"pull-right\\\"\\u003E\";\nif (goalValueSourceId !== 2) {\npug_html = pug_html + \"\\u003Cbutton\" + (\" class=\\\"btn btn-primary btn-hero apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-default btn-cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"UETLinkText\" in locals_for_with?locals_for_with.UETLinkText:typeof UETLinkText!==\"undefined\"?UETLinkText:undefined,\"estimation\" in locals_for_with?locals_for_with.estimation:typeof estimation!==\"undefined\"?estimation:undefined,\"goalValueSourceId\" in locals_for_with?locals_for_with.goalValueSourceId:typeof goalValueSourceId!==\"undefined\"?goalValueSourceId:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"notAssignGoaText\" in locals_for_with?locals_for_with.notAssignGoaText:typeof notAssignGoaText!==\"undefined\"?notAssignGoaText:undefined,\"pitchingRevenue\" in locals_for_with?locals_for_with.pitchingRevenue:typeof pitchingRevenue!==\"undefined\"?pitchingRevenue:undefined,\"readOnly\" in locals_for_with?locals_for_with.readOnly:typeof readOnly!==\"undefined\"?readOnly:undefined,\"sameGoalText\" in locals_for_with?locals_for_with.sameGoalText:typeof sameGoalText!==\"undefined\"?sameGoalText:undefined,\"subtitleCurrent\" in locals_for_with?locals_for_with.subtitleCurrent:typeof subtitleCurrent!==\"undefined\"?subtitleCurrent:undefined,\"subtitleFixIssue\" in locals_for_with?locals_for_with.subtitleFixIssue:typeof subtitleFixIssue!==\"undefined\"?subtitleFixIssue:undefined,\"subtitleRevenue\" in locals_for_with?locals_for_with.subtitleRevenue:typeof subtitleRevenue!==\"undefined\"?subtitleRevenue:undefined,\"suggestedVariousGoalText\" in locals_for_with?locals_for_with.suggestedVariousGoalText:typeof suggestedVariousGoalText!==\"undefined\"?suggestedVariousGoalText:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined,\"variousGoalText\" in locals_for_with?locals_for_with.variousGoalText:typeof variousGoalText!==\"undefined\"?variousGoalText:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"adEditor-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (descriptionHeader, getEntity, i18n, isPanelEdit, readOnly) {pug_html = pug_html + \"\\u003Cdiv class=\\\"ad-editor-form__container recommendation-new-ads-inline-view\\\"\\u003E\\u003Cdiv class=\\\"description-header\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = i18n.getString(descriptionHeader, getEntity())) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"new-ads-preview\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cdiv class=\\\"new-ad-editor-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif ((isPanelEdit)) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"save-bar form-group appEditor-save-container\\\"\\u003E\\u003Cbutton\" + (\" class=\\\"btn btn-primary btn-hero apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"action-panel clear hide-overflow\\\"\\u003E\\u003Cdiv class=\\\"pull-right\\\"\\u003E\\u003Cbutton\" + (\" class=\\\"btn btn-primary btn-hero apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"descriptionHeader\" in locals_for_with?locals_for_with.descriptionHeader:typeof descriptionHeader!==\"undefined\"?descriptionHeader:undefined,\"getEntity\" in locals_for_with?locals_for_with.getEntity:typeof getEntity!==\"undefined\"?getEntity:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isPanelEdit\" in locals_for_with?locals_for_with.isPanelEdit:typeof isPanelEdit!==\"undefined\"?isPanelEdit:undefined,\"readOnly\" in locals_for_with?locals_for_with.readOnly:typeof readOnly!==\"undefined\"?readOnly:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (SELECT_TYPE, i18n, title) {var selectType = 'budgetType'\nvar placeholder = i18n.getString('Recommendation_ReallocateBudgetInline_BudgetType_OtherBudgetPlaceholder')\npug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-reallocate-budget\\\"\\u003E\\u003Cdiv class=\\\"rba-campaign-name\\\"\\u003E\\u003Ch5 class=\\\"title\\\"\\u003E\" + (null == (pug_interp = title) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-content row\\\"\\u003E\\u003Cdiv class=\\\"budget-type col-sm-3\\\"\\u003E\\u003Ch4 class=\\\"title type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = (i18n.getString('Recommendation_ReallocateBudgetInline_BudgetType_Title'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh4\\u003E\\u003Cdiv class=\\\"radio-block\\\"\\u003E\\u003Clabel class=\\\"type-normal vertical-align-middle cursor-pointer\\\"\\u003E\\u003Cinput\" + (\" class=\\\"radio-inline\\\"\"+\" type=\\\"radio\\\"\"+pug.attr(\"name\", selectType, true, true)+pug.attr(\"value\", SELECT_TYPE.SuggestBudget, true, true)+\" data-bind=\\\"checked:budgetType\\\"\") + \"\\u003E\\u003Cspan data-bind=\\\"text:suggestBudgetStr\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"radio-block\\\"\\u003E\\u003Clabel class=\\\"type-normal vertical-align-middle cursor-pointer\\\"\\u003E\\u003Cinput\" + (\" class=\\\"radio-inline\\\"\"+\" type=\\\"radio\\\"\"+pug.attr(\"name\", selectType, true, true)+pug.attr(\"value\", SELECT_TYPE.ManualBudget, true, true)+\" data-bind=\\\"checked:budgetType\\\"\") + \"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_ReallocateBudgetInline_BudgetType_Other_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"input-group\\\" data-bind=\\\"css:{"error-input":errorMessage,"disabled":!enableInput()}\\\"\\u003E\\u003Cspan class=\\\"inline-block currency-symbol\\\" data-bind=\\\"text:currencySymbol\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cinput\" + (\" class=\\\"inline-input inline-block\\\"\"+\" data-bind=\\\"value:inputBudget,valueUpdate:"keyup",enable:enableInput\\\"\"+pug.attr(\"placeholder\", placeholder, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"error-msg\\\" data-bind=\\\"visible:errorMessage,text:errorMessage\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"warning\\\" data-bind=\\\"visible:warnMessage\\\"\\u003E\\u003Cspan class=\\\"status-icon iconba iconba-Warning\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan data-bind=\\\"text:warnMessage\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"campaign-info col-sm-9\\\"\\u003E\\u003Cdiv class=\\\"fromCampaign col-sm-5\\\"\\u003E\\u003Cdiv class=\\\"rba-campaign-name\\\" data-bind=\\\"text:deltaInfo().fromCampaignName\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-estvalue\\\" data-bind=\\\"text:deltaInfo().deltaFromBudget\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-current-budget\\\" data-bind=\\\"text:deltaInfo().fromCampaignCurrent\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-overview-item\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Cdiv class=\\\"rba-detail-desc-top\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Est_Clicks')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-estvalue\\\" data-bind=\\\"text:deltaInfo().fromCampaignClicks,visible:deltaInfo().fromCampaignValid\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"iconba large iconba-Trending12\\\" data-bind=\\\"visible:!deltaInfo().fromCampaignValid\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Cdiv class=\\\"rba-detail-desc-top\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Est_Cost')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-estvalue\\\" data-bind=\\\"text:deltaInfo().fromCampaignCost,visible:deltaInfo().fromCampaignValid\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"iconba large iconba-Trending12 positive-delta\\\" data-bind=\\\"visible:!deltaInfo().fromCampaignValid\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"arrow col-sm-2\\\"\\u003E\\u003Cspan class=\\\"iconba large iconba-Forward\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"toCampaign col-sm-5\\\"\\u003E\\u003Cdiv class=\\\"rba-campaign-name\\\" data-bind=\\\"text:deltaInfo().toCampaignName\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-estvalue\\\" data-bind=\\\"text:deltaInfo().deltaToBudget\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-current-budget\\\" data-bind=\\\"text:deltaInfo().toCampaignCurrent\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-overview-item\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Cdiv class=\\\"rba-detail-desc-top\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Est_Clicks')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-estvalue\\\" data-bind=\\\"css:{"positive-delta":deltaInfo().toCampaignClicks>=0},text:deltaInfo().toCampaignClicks\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Cdiv class=\\\"rba-detail-desc-top\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Est_Cost')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-estvalue\\\" data-bind=\\\"text:deltaInfo().toCampaignCost\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-actions text-right\\\"\\u003E\\u003Cbutton class=\\\"btn btn-hero btn-primary apply\\\" data-bind=\\\"enable:!readOnly&&enableApply\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"SELECT_TYPE\" in locals_for_with?locals_for_with.SELECT_TYPE:typeof SELECT_TYPE!==\"undefined\"?SELECT_TYPE:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (getEntity, i18n, readOnly) {pug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-repair-keywords-inline-view\\\"\\u003E\\u003Cdiv class=\\\"description-header\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = i18n.getString('Recommendation_Inline_View_Repair_Keywords_Description_Header', getEntity())) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"create-keyword-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group pull-right\\\"\\u003E\\u003Cbutton\" + (\" class=\\\"btn btn-hero btn-primary apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"getEntity\" in locals_for_with?locals_for_with.getEntity:typeof getEntity!==\"undefined\"?getEntity:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"readOnly\" in locals_for_with?locals_for_with.readOnly:typeof readOnly!==\"undefined\"?readOnly:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-setup-conversion-tracking\\\"\\u003E\\u003Cdiv class=\\\"setup-conv-content\\\"\\u003E\" + (null == (pug_interp = require(\"./setup-conversion-tracking-todo.pug\").call(this, locals)) ? \"\" : pug_interp) + (null == (pug_interp = require(\"./performance-summary.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-actions text-right\\\"\\u003E\\u003Cbutton class=\\\"btn btn-primary inline-action-external\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Button_GetStarted')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, numClicks, numImpressions) {pug_html = pug_html + \"\\u003Cdiv class=\\\"setup-conv-tracking-performance\\\"\\u003E\\u003Cdiv class=\\\"performance-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_SetupConversionTracking_Performance_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"row rba-detail-overview-item\\\"\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cdiv class=\\\"rba-detail-desc-top\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_ColumnName_PreviousImpression')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-estvalue\\\"\\u003E\" + (pug.escape(null == (pug_interp = numImpressions) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cdiv class=\\\"rba-detail-desc-top\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_ColumnName_PreviousClick')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-estvalue\\\"\\u003E\" + (pug.escape(null == (pug_interp = numClicks) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cdiv class=\\\"rba-detail-desc-top\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Details_View_Number_Conversions')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"rba-detail-estvalue\\\"\\u003E\" + (pug.escape(null == (pug_interp = '?') ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"performance-description\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_SetupConversionTracking_Performance_Description')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"numClicks\" in locals_for_with?locals_for_with.numClicks:typeof numClicks!==\"undefined\"?numClicks:undefined,\"numImpressions\" in locals_for_with?locals_for_with.numImpressions:typeof numImpressions!==\"undefined\"?numImpressions:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, iconClasses, isRecommendationThirdPartyTaggingEnabled, title) {pug_html = pug_html + \"\\u003Cdiv class=\\\"setup-conv-tracking-todo\\\"\\u003E\\u003Cspan class=\\\"step-title\\\"\\u003E\" + (null == (pug_interp = (title || i18n.getString('Recommendation_SetupConversionTracking_Todo_Title'))) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"step-wrap\\\"\\u003E\";\nif (!isRecommendationThirdPartyTaggingEnabled) {\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"todo-item\",iconClasses.icon0], [false,true]), false, true)) + \"\\u003E\\u003Cspan class=\\\"step-icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_SetupConversionTracking_Status_0')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"todo-item\",iconClasses.icon1], [false,true]), false, true)) + \"\\u003E\\u003Cspan class=\\\"step-icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_SetupConversionTracking_Status_1')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"todo-item\",iconClasses.icon2], [false,true]), false, true)) + \"\\u003E\\u003Cspan class=\\\"step-icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_SetupConversionTracking_Status_2')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"todo-item\",iconClasses.icon1], [false,true]), false, true)) + \"\\u003E\\u003Cspan class=\\\"step-icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('New_Recommendation_SetupConversionTracking_Status_0')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"todo-item\",iconClasses.icon2], [false,true]), false, true)) + \"\\u003E\\u003Cspan class=\\\"step-icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('New_Recommendation_SetupConversionTracking_Status_1')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Ca class=\\\"HelpTopic\\\" query=\\\"help:ext56689\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_SetupConversionTracking_LearnMore')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"iconClasses\" in locals_for_with?locals_for_with.iconClasses:typeof iconClasses!==\"undefined\"?iconClasses:undefined,\"isRecommendationThirdPartyTaggingEnabled\" in locals_for_with?locals_for_with.isRecommendationThirdPartyTaggingEnabled:typeof isRecommendationThirdPartyTaggingEnabled!==\"undefined\"?isRecommendationThirdPartyTaggingEnabled:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"recommendation-inline-view-factory\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"keyword_inline_selection\\\"\\u003E\\u003Cdiv class=\\\"new-campaign-adgroup-selector\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"keyword_inline_action\\\"\\u003E\\u003Cinput\" + (\" class=\\\"grid-edit-menu save btn btn-hero btn-primary\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.getString('Inline_Editor_Button_Save'), true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"cancel btn btn-default grid-edit-menu\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.getString('Inline_Editor_Button_Cancel'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (adGroupBidVal, i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"keyword_inline_selection\\\"\\u003E\\u003Cdiv class=\\\"keyword_inline_selection_instruction\\\"\\u003E\\u003Cspan class=\\\"type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Inline_Editor_Bid_Title')+':') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"use_adgroup_bid\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Inline_Editor_Bid_DefaultAdGroup')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '|') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"use_keyword_bid keywordSelectedSelection\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Inline_Editor_Bid_Keyword')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cinput class=\\\"bid-textbox grid-error-field form-control\\\" type=\\\"text\\\" data-bind=\\\"value: userInputDisplayVal, valueUpdate: 'keyup'\\\"\\u003E\\u003Cspan class=\\\"adgroup_bid_value_span\\\"\\u003E\" + (pug.escape(null == (pug_interp = adGroupBidVal) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"warning-message-container\\\"\\u003E\\u003Cdiv class=\\\"warning-message\\\" data-bind=\\\"visible: showWarningMessage\\\"\\u003E\\u003Cspan class=\\\"status iconba iconba-Warning\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"warning\\\" data-bind=\\\"text: warningMessage\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cinput\" + (\" class=\\\"grid-edit-menu save btn btn-hero btn-primary\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.getString('Inline_Editor_Button_Save'), true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"cancel btn btn-default grid-edit-menu\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.getString('Inline_Editor_Button_Cancel'), true, true)) + \"\\u003E\\u003Cdiv class=\\\"error-message\\\"\\u003E\\u003Cspan class=\\\"error\\\" data-bind=\\\"text: errorMessage, visible: showErrorMessage\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"adGroupBidVal\" in locals_for_with?locals_for_with.adGroupBidVal:typeof adGroupBidVal!==\"undefined\"?adGroupBidVal:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, message) {pug_html = pug_html + \"\\u003Cdiv class=\\\"filterBanner\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = message) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\\u003Ca class=\\\"remove\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('GridToolbar_FilterBar_Remove')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"message\" in locals_for_with?locals_for_with.message:typeof message!==\"undefined\"?message:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"status-light-box\\\"\\u003E\\u003Cdiv class=\\\"panel\\\" data-bind=\\\"visible: showNotificationPanel\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\" role=\\\"heading\\\" aria-level=\\\"2\\\"\\u003E\\u003Cdiv class=\\\"panel-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_Notification_Lightbox_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\"\\u003E\\u003Cdiv class=\\\"recommendation-alerts\\\" data-bind=\\\"visible: successTotalCount() > 0\\\"\\u003E\\u003Cdiv class=\\\"status_success iconba iconba-Completed\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"recommendation-alert-content\\\"\\u003E\\u003Cspan data-bind=\\\"text: successHeadingText()\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"recommendation-alerts\\\"\\u003E\\u003Cdiv class=\\\"status_warning iconba iconba-Warning\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"recommendation-alert-content\\\"\\u003E\\u003Cdiv class=\\\"recommendation-single-alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan data-bind=\\\"text: failHeadingText()\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan data-bind=\\\"html: failHeadingDescText()\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv data-bind=\\\"foreach: failCountsByErrorCode()\\\"\\u003E\\u003Cdiv class=\\\"recommendation-single-alert\\\"\\u003E\\u003Cspan data-bind=\\\"text: reason\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\\u003Ca class=\\\"filterBannerLink\\\" data-bind=\\\"attr: { id: errorCode }, visible: hasViewRec\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Recommendation_Notification_Fail_Recommendation_Link')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"split-line\\\" data-bind=\\\"visible: hasViewRec && hasLearnMore\\\"\\u003E\" + (pug.escape(null == (pug_interp = ' | ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"HelpTopic\\\" data-bind=\\\"attr: { query: helpId, "aria-label": reason }, visible: hasLearnMore\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('LearnMore')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cinput\" + (\" class=\\\"btn btn-default cancel\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.getString('Recommendation_Notification_Close'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;"],"names":["AdditionalPitching","props","_jsxs","children","additionDetailPitchingConfig","type","_jsx","i18n","getString","detailPitching","needNRTDisclaimer","className","concat","inProductUpdateConfig","isDefinedAdditionalPitching","isRSARecAutoApplyNotOptIn","additionalPitching","RECOMMENDATION_TYPES","SSC_2_PMAX_MIGRATION","newI18n","_TL_","permissions","IsAccountEnabledForCrawlImagesFromLandingPage","IMAGE_EXTENSION","href","target","cid","aid","uid","defaultProps","_","DetailsSummary","_React$PureComponent","_this","_classCallCheck","_callSuper","state","campaignAutoApplyStatus","_inherits","_createClass","key","value","_this2","_this$props","this","iconClasses","iconClassesVNext","description","estimates","pitching","helpId","title","odata","optInStatus","applyDate","recommendationsCount","appConfig","isEstimate","coupon","optimizationScore","isNrt","hasAIAssetRecommendation","preferencesService","overallOptimizationScoreBar","linkType","isOptimizationScoreOn","isDismissedCategory","showAutoApplyBanner","isAutoApplyRecommendationEnabled","viewSettings","thirdPartyInfos","isMCC","isAutoApplyOptIn","AutoApplyBanner","StyledRecommendationAutpApplyBanner","withAdsAutoApply","withEstimateTileStyle","withOptimizationScore","summary","recommendationInProductUpdateConfigs","isAdditionalPitchingAvailable","RESPONSIVE_SEARCH_ADS","tagManager","length","ThirdPartyName","additionalArgs","CouponTagNew","RecommendationOptimizationScoreTag","warnNotification","WarnNotificationBanner","isInProductUpdateBannerAvailable","InProdUpdateNotificationBanner","CREATE_CONVERSION_GOAL","MessageBar","isMultiline","messageBarType","MessageBarType","info","dangerouslySetInnerHTML","__html","LearnMoreLink","text","topic","linkText","noLink","SummaryEstimation","_objectSpread","IMPROVE_MULTIMEDIA_ADS","React","EstimationTile","callback","setState","_defineProperty","accounts","undefined","defaultParser","parseDecimal","userInputsMappingConfigForForm","BUDGET","NewBudget","property","parser","NEW_KEYWORD","NewBid","MatchType","TargetAdGroupId","isFromTarget","userInputsMappingConfigForGrid","COMPETITIVE_BID","selected","nameInRequest","DEVICE_BID_BOOST","LOCATION_BID_BOOST","NEW_LOCATION","SYNDICATION","LabelDecorator","label","FormActionWithEstimates","onUpdateState","val","input","prevState","onInputChange","e","_e$target","name","items","formattedFieldsDict","radio","suggested","onRadioChange","item","onSelectChange","_e$target2","defaultSelectedValue","onValidate","_ref2","messages","isValid","apply","hasError","logExpInfo","ops","buildRequestOptions","track","dismiss","renderRadioGroupItem","field","index","propertyState","suggested_value","ValidatedInputLite","placeholder","onChange","validationProps","validationPropsDict","ErrorMessages","renderRadioGroup","RadioGroup","checked","renderItem","renderField","control","options","enum","_ref3","helpText","helpQuery","renderFields","fields","logOpportunityEvent","opportunityId","model","campaignId","CampaignId","context","propertySchema","schema","properties","errorProcessor","errors","oldError","min","minimum","max","maximum","currency","isApply","returnOnlyWhenModified","arguments","modified","defaultUserInputObject","OpportunityId","userInputObject","odataType","APPLY_USERINPUT_TYPES","config","_ref4","campaignAdGroups","Key","Value","AdGroupId","userAction","APPLY_ACTION_TYPES","ACCEPT","DISMISS","userInputs","getUserInputs","channel","CHANNEL_TYPES","COMPETITION","guid","_ref5","_this3","rowClass","readOnly","disabled","onClick","UnEditableLabelDecorator","UnEditableSimpleForm","groups","useProgressBar","ProgressBar","percentValue","propertyValue","GridPanel","titleForm","headers","bodies","formatIncreasedValue","checker","GridActionWithEstimates","selectedRow","rowState","handleRadioChange","handleCheckboxChange","rowIndex","parseInt","_ref","newState","_toConsumableArray","singleSelection","selectedIndex","selectedOpportunityModel","selectConfig","push","userInput","hasLastRowAsCurrent","hidenIndexes","end","helpTopics","headersElements","slice","headerText","originalIndex","help","HelpPopup","header","inputId","generateInputId","Checkbox","id","_this4","_this$props2","columns","currentString","bodiesElements","row","isIncrease","isTheRowCurrent","toString","htmlFor","buildHeaders","colIndex","cellContent","isCurrentRow","icon","enableCheckedIcon","hasIcon","_this5","configs","autoHide","body","cells","cell","col","buildEstimatesGridCell","buildActionPanel","buildEstimatesPanel","individualRecommendation","api","ADINSIGHT_LOG_API_NAME","RECOMMENDATION","isCompetition","currentActivity","trace","typeId","RECOMMENDATION_IDS","action","ADINSIGHT_LOG_ACTION_TYPE","VIEW","JSON","stringify","actionRef","current","visualType","visualData","_this$props$deps","deps","locationMap","chart","VISUAL_TYPES","LINE_WEEKLY_CHART","COLUMN_CHART","LINE_CHART","LINE_COLUMN_CHART","SEARCH_TERMS_CHART","AdvisorChart","subType","TABLE","MAP","BingMapView","data","insightTitle","actionTitle","actionDataInForm","actionDataInGrid","actionTitleExtraForm","gridRowIndex","gridSeparatorRowIndex","separatorRowClass","commonOptionsForActionAndEstimates","ref","actionAndEstimates","_createElement","initializeChart","IndividualRecommendation","withTrack","childName","DetailsRecommendations","handlePageSizeChange","savePageInformationToPreference","reload","pageNumber","handlePageNumberChange","recommendationRefs","storeCurrentPageRecommendationRef","inputs","recommendation","inputsArr","pageSize","savePreferences","preferencesName","total","passThroughPropsToIndividual","recommendationsInCurrentPage","pageSizeOption","COMPETITION_RECOMMENDATION_PAGE_SIZES","pageSizeVal","pagination","Pagination","onPageNumberChanged","itemCount","pageText","totalPageCountText","gridStyle","detailsToolbar","_len","args","Array","_key","modal","isOpen","getBackToSummaryButton","viewSummary","ToolbarButton","getApplyAllButton","shouldDisable","applyAll","getDismissAllButton","dismissAll","getDownloadButton","DownloadToolbarButton","getRejectAllButton","handleReject","buildDefaultRequestOptions","applyOpportunitiesLevel","aggregateLevel","defaultOptions","confirm","count","recommendationDescription","isProvideFeedbackOnly","handleFeedbackSubmit","handleFeedbackCancel","updateToolbar","initialToolbarConfig","scope","toolbarItems","content","toolbar","role","FeedbackModal","onCancel","DetailsToolbar","detailsView","onFilterStateChanged","logMessage","recommendationsRef","values","forceUpdate","toolbarConfig","has","set","get","appliedFilter","filterService","editableFilter","resetToolbarVisibility","forceHideToolbar","hideToolbar","upperToolBarInstance","OverridableToolbarView","render","prevProps","remove","msg","hasData","summaryView","detailsRecommendationsView","emptyView","opForToolBar","normalizedData","_getDetailsViewModel","getDetailsViewModel","levelAt","recommendations","op","level","hasFilter","EmptyFilterView","imagePath","constants","on","toolbarVNext","ToolbarFilterbarSet","CampaignAdgroupSelectorFilterAgent","filterConfig","upperToolBar","DetailsView","withGetSummary","RecommendationsGridContainer","_React$Component","getNewToolbarConfig","recommendationType","onEvent","compact","newToolbarConfig","onSelectCrossPage","gridView","dismissBtnId","undismissBtnId","applyBtnId","toolbarUnselectedConfig","Map","iconLeftGlyphName","classes","noResponsive","SUPPORT_DATE_FILTER_TYPES","button","menu","SUPPORT_DOWNLOAD_TYPES","RECOMMENDATION_CATEGORIES","DISMISSED","toolbarSelectedConfig","SUPPORT_APPLY_TYPES","SUPPORT_RESUBMIT_TYPES","selectedItems","selectedItem","Opportunities","IsAppealable","stockImages","StockImages","ThumbnailURL","SUPPORT_DISMISS_TYPES","getToolbarConfig","grid","dropdownDateFilterButtonText","dropdownDateFilter","forEach","component","updateToolbarConfig","_this$getNewToolbarCo","updateGridSelectionState","selectionCount","totalCount","isMultiPage","isSinglePageAllSelected","isCrossPageAllSelected","_ref2$opportunityId","_ref2$campaignId","_ref2$input","accountId","_ref2$context","recommendationService","MCCRECOMMENDATION","DOWNLOAD","Version","version","DownloadScope","DOWNLOAD_SCOPE","INDIVIDUAL","downloadService","perfMarker","primaryEstimate","vnextDeps","createChild","autoEnd","willInit","crossPageSelectPlugin","getCrossPageSelectPlugin","showToolbarUnselected","showToolbarSelected","backboneGridView","recommendationsGrid","filterState","newToolBarPlugin","getToolbarPlugin","resetVisibility","resetToolbarMode","plugin","_this$props$vnextDeps","StyledGridViewWrapper","GoalCreationRecommendationWizard","getConfig","s$i18n","campaignType","el","$","view","router","bind","viewDetails","recommendationTypesAvailable","serverContext","setData","setDataFromDetails","getGoalCreationRecommendationWizard","viewUET","NewRecommendationsGrid","applyFailedResults","getSessionStorage","RECOMMENDATIOIN_SUMMARY_APPLY_FAILED_RESULTS","applyFailed","statusLightBox","RecommendationStatusLightbox","results","filterByOpportunityId","removeFilter","formatNotificationLocalizedKey","trigger","clear","append","$el","CONTEXTUAL_ENTITY_TYPE","CAMPAIGN","ADGROUP","ACCOUNT","entityid","parents","attr","itemWithKey","Target","AccountId","isPopupEditorEnabledRecommendationType","levelAtConstant","scopedata","adGroupId","_this$state","_this$props$vnextDeps2","StyledTablePageContainer","ToolbarContainer","stickyTopOfGridContent","Fragment","onClear","deselectAll","topOfGridContent","customClasses","tablePageContainer","RecommendationInlineViewFactory","_Backbone$View","gridService","childView","opportunityType","OpportunityType","appState","account_id","BUDGET_OPPORTUNITY","then","RecommendationInlineBudgetView","renderInlineContent","ADJUST_SHARED_BUDGET_OPPORTUNITY","isSharedBudget","REPAIR_KEYWORD","RepairKeywordsInlineView","SITE_LINK","CALLOUT","AdExtensionInlineView","MULTIMEDIA_ADS","IMPROVE_RESPONSIVE_SEARCH_ADS","_ref6","NewAdsInlineView","DYNAMIC_SEARCH_ADS","_ref7","DynamicSearchAdsInlineView","REALLOCATE_BUDGET","_ref8","RecommendationReallocateBudgetView","FIX_AD_DESTINATION","_ref9","RecommendationFixAdDestinationView","UrlTestTool","default","SETUP_CONVERSION_TRACKING_OPPORTUNITY","_ref10","RecommendationSetupConversionTrackingView","isRecommendationThirdPartyTaggingEnabled","IsRecommendationThirdPartyTaggingEnabled","FIX_CONVERSION_GOAL_SETTINGS","_ref11","FixConversionGoalSettingView","_ref12","CreateConversionGoalView","html","template","opportunity","rejectedAd","RejectedAds","RejectedKeywords","VIEWEDIT","FlagId","result","OldFinalUrl","FinalUrl","OldTrackingTemplate","TrackingTemplate","Backbone","hasChanged","_ref13","opportunities","_ref13$context","IsRecommendationInlineErrorEnabled","hasInlineError","scrollTop","catch","dealWithInlineError","finally","withUiBlock","closeBlocker","_ref14","ReactDOM","cancel","recommendationInlineAction","definePlugin","selection","_ref$plugins$recommen","plugins","currentInlineView","$inlineViewContainer","initCurrentInlineView","prop","deselectRow","show","preventUserAction","window","preventConfirm","preventDefault","stopPropagation","inlineActionHandler","colspan","containerTemplate","selectedKeys","appendView","once","$row","find","after","hide","getRowByKey","refresh","force","applyRecommendation","editor","imageExtensionApplyConfirmHandler","adGroupIdVNext","advertiserCustomerId","isFromImgExtV2","dataService","showApplyFeedbackPopup","applyHandler","ImageSourceStr","externalHandler","$inlineContainer","targetAccountId","statusId","StatusId","ButtonName","GOOGLE_IMPORT","GOOGLE_IMPORT_SCHEDULED","FIX_CONVERSION_TRACKING_OPPORTUNITY","FACEBOOK_IMPORT","REPAIR_ADS","CUSTOM","location","customerId","userId","join","getGoogleImportUri","open","uri","getSetupConvTrackingUri","getUETTagUri","getFacebookImportUri","getCreateAdUri","panelHandler","dataKey","ImageSource","ShutterstockQuery","Query","ShutterstockTotalCount","TotalCount","ShutterstockImageId","ImageId","Images","ImageAssetId","openImageExtensionEditor","openNewAdsViewEditor","openCreateConversionGoalEditor","actionColumnProjection","handler","patch","events","preventGridActionProjection","pipeStructureProjections","pipeContentProjections","INLINE_ACTION_MAP","_INLINE_ACTION_MAP","RECOMMENDATION_INLINE_ACTION_TYPE","APPLY_EDIT","BROAD_MATCH_KEYWORD","APPLY_ONLY","NEW_KEYWORD_OPPORTUNITY","TRENDING_QUERY","REMOVE_CONFLICTING_NEGATIVE_KEYWORD","REPAIR_MISSING_KEYWORD_PARAMS","FIX_NO_IMPRESSION_BID","REPAIR_UNTARGETED_OFFER","PMAX_IMPORT","DSA_2_PMAX_MIGRATION","SYNDICATION_GAP","APPLY_PANEL_EDIT","EDIT_ONLY","REPAIR","RESUBMIT_EDIT","SETUP_CONV","HYBRID","EXTERNAL","NO_ACTION_RECOMMENDATION_TYPES","FIX_AD_TEXT","isSelectableType","isGoogleRecommendationType","SUPPORT_DISMISS_ALL_TYPES","NOT_SUPPORT_DOWNLOAD_TYPES","DATE_FILTER_STRING_TYPES","getSearchTermChartData","searchTermList","searchTerms","reverse","selectedMetric","localizeCategory","category","searchTerm","searchTermKpi","isKeywordRecsChange","NewMatchType","SuggestedMatchType","NewAdGroupId","newBid","formatBid","suggestedBid","SuggBid","SuggestedBid","isSuggestedBidSupported","BidStrategyTypeId","InlineCampaignAdGroupEditableSave","updated","editorView","isCampaign","Name","NewCampaignName","NewAdGroupName","ActionApplyOnlyColumn","_ProjectionGridBaseCo","bodyClasses","colClasses","ProjectionGridBaseColumn","ActionApplyEditColumn","ActionResubmitEditColumn","disableResubmit","ActionEditOnlyColumn","ActionExternalColumn","actionName","ActionPanelEditApply","isPanelEdit","IsRecommendationRSAMMAPnaelEditEnabled","ActionRepairColumn","SuggestedAdList","isApplyHidden","ActionSetupConversionTrackingColumn","CampaignColumn","sortable","_ref2$value","_ref2$value$Target","CampaignName","campaignAttributes","withContextualAttributeTemplate","entityName","entityId","entityType","status","ariaLabel","campaignName","AccountColumn","AccountName","accountAttributes","ViewModel","formatSuggestedBid","inputBid","ko","userInputDisplayVal","subscribe","isValidDecimal","validate","validateUserInput","minBid","FloorValue","maxBid","CeilingValue","required","KoSchema","validators","message","range","replace","errorMessage","showErrorMessage","warningMessage","showWarningMessage","Number","BidEditorView","suggestedBidField","jsdata","edmCampaign","isKeywordBid","adGroupBidVal","first","formatDecimal","viewModel","isBidValid","bidValue","keywordBidValue","keywordLink","adgroupLink","inputBox","adgroupSpan","entitySet","currentCustomer","Accounts","$withKey","AdGroups","addClass","removeClass","AdGroup","findAll","limit","select","where","Id","$eq","response","SearchBid","adGroupBid","updateKeywordAdGroupBid","defaultAdgroupId","defaultAdgroup","selectedAdgroupId","suggestedAdgroupId","adgroups","selectorControl","selectedAdgroup","adgroupIdInfoMapping","defaultAdgroupProcessed","parse","adgroupProcessed","sortBy","map","adgroup","unshift","AdGroupEditorView","fecthAdgroupData","adgroupSelectorView","scopeParentItem","_ref$query","query","_ref$pageNumber","_ref$pageSize","_ref$scopeParentItem","customFilter","isFilterSearchStandardAdgroupRecommendationType","ADGROUP_TYPES","SearchStandard","uiBlockContainer","getAdgroupData","defaultAdGroup","adGroups","adGroup","ID","returnAdgroupIdInfoMapping","dataManager","_ref2$isMCC","newPosition","AdGroupName","selectedAdgroupName","selectorView","top","outerHeight","position","left","css","CampaignSelectorView","fetch","stringKeys","emptyListContent","listHeader","selectEntity","isToggled","onAdGroupSelect","setPosition","CampaignAdGroupColumn","_ref$deps","editable","edm","entityCampaignId","event","is","adGroupEditorView","GridCustomizedPopupEditor","cellPosition","renderBelow","parentContainerSelector","AdGroupColumn","adGroupAttributes","adGroupName","ClicksDeltaColumn","helpAriaLabel","EstimatedIncreaseInClicks","CurrentClicks","notDefault","NOT_AVAILABLE_DEFAULT_STR","deltaVal","fromVal","toVal","increaseSymbol","getIncreaseSymbol","isNegative","isPositive","CostDeltaColumn","baseCost","EstimatedIncreaseInCost","CurrentCost","HistoricalCost","formatCost","ESTIMATE_TYPES","COST","notAvailable","ImpressionsDeltaColumn","EstimatedIncreaseInImpressions","CurrentImpressions","KeywordColumn","Keyword","KeywordId","noContextualAttribute","AlgoID","keywordStr","keyword","ReferenceKeywordId","KEYWORD","MatchTypeColumn","formatMatchTypeStr","formatMatchType","GoogleImportToDoColumn","accountName","BudgetDeltaColumn","EstimatedIncreaseInBudget","CurrentBudget","SharedBudgetDeltaColumn","_ref2$value$Shared","Shared","BudgetName","BudgetId","SHARED_BUDGET","ConversionDeltaColumn","baseConversion","ConversionSummaryStatus","CurrentConversionsInt","EstimatedIncreaseInConversionsInt","HistoricalConversions","BUDGET_OPPORTUNITY_TYPES","CONVERSION_STATUS_TYPE","HAS_DATA","defaultItemCountInGrid","BidAdjustmentTodoColumn","more","fromCampaign","SuggestedCampaignBudgets","campaign","BudgetStatus","MOVE_BUDGET_CAMPAIGN_BUDGET_STATUS","Surplus","toCampaign","Deficit","budget","BudgetDeficit","targetCPA","BidStrategyTargetCpa","list","subtitle","i","raiseList","lowerList","tooltipRaiseHeader","tooltipLowerHeader","hideDeltaRange","CtrDeltaColumn","EstimatedIncreaseInCtr","CurrentCtr","CtrLift","formatPercentHundredths","CurrentMatchTypeColumn","SuggestedBidColumn","enableEdit","isAutoBidding","bidEditorView","SuggestedKeywordColumn","SuggestedKeyword","formatKeyword","TopSearchTermColumn","searchTermsField","SearchQuery","SearchTerm","SRPV","RecommendedBecauseColumn","RECOMMENDATION_SOURCE_FOR_SORT_TYPES","recommendedSources","source","formatLocaledSourceType","getLocaledSources","MatchTypeSelectorColumn","defaultMatchType","matchTypes","MATCH_TYPE_IDS","matchTypeId","InlineEditableColumnPrompt","parent","chooseType","filterable","isReadOnly","nullable","valueMessages","matchTypeMap","PopupEditor","hasLabels","saveModel","toUpperCase","InlineEditableSave","MatchTypeSelectorColumnVNext","_CampaignuiBaseColumn","matchType","CampaignuiBaseColumn","PreviewRSAColumn","adDisplayUrlService","combineText","moreHeadlines","moreDescriptions","SuggestedAd","urlRegex","RegExp","destinationUrl","search","Headlines","Descriptions","ad","convertedTitle","Text","convertedText","convertedFinalUrl","convertedDisplayUrl","getExpandedTextAdDisplayUrl","Path1","Path2","RemoveNegativeKeywordColumn","NegativeKeyword","Source","NegativeKeywordMatchTypeId","NegativeKeywordSharedListId","NEGATIVE_KEYWORD_LIST","nkwSource","negativeKeywordAttributes","negative_keyword","BlockedKeywordsColumn","newConfig","getNewTextConfigByPermission","BlockedKeywordList","TotalBlockedKeywordCount","MatchTypeId","OrderItemId","blockedKeywords","SuggestedCampaignColumn","CreationFragments","Type","Campaign","EstimateSearchColumn","EstimatedIncreaseInSearches","SearchExampleColumn","SearchExamples","MAX_NUMBER_OF_RECOMMENDATION_SAMPLES","CurrentClickColumn","CurrentCostColumn","CurrentImpressionColumn","LandingPageUrlColumn","UrlOrLandingPage","landingPageUrl","RejectionTypeColumn","rejectionType","NumberRejectedAdsColumn","NumberRejectedAds","number","NumberRejectedKeywordsColumn","NumberRejectedKeywords","RejectedAdsKeywordsColumn","_ref$isKeyword","isKeyword","_$first","NumberRejectedDisapprovedKeywords","NumberRejectedDisapprovedAds","NumberRejectedLimitedApprovedKeywords","NumberRejectedLimitedApprovedAds","hrefName","pageName","isParentLevel","SUMMARY_LEVELS","adgroupId","filterArguments","dateFilter","getShiftedDate","FILTER_TO_TIME","DATE_FILTER","LAST_180","hrefLink","numberDisapproved","formatInteger","numberLimitedApproved","RejectedAdsColumn","_RejectedAdsKeywordsC","RejectedKeywordsColumn","PolicyColumn","detail","getEditorialErrorMessage","fwLinkId","getFwdLinkId","fwlink","IsDomesticSimplifiedChineseEnabled","SetupConversionTrackingToDoColumn","_Opportunities$","getIconClasses","templateSetupConvTodo","NumberClicksColumn","NumClicks","NumberImpressionsColumn","NumImpressions","PerformanceSummaryColumn","templateSetupConvPerformance","numClicks","numImpressions","FixConversionTrackingTodoColumn","FixConversionTrackingSummaryColumn","NumInactiveUetTags","NumAffectedConversionGoals","inactiveTagCount","affectedGoal","AssetGeneratedFromColumn","HasAIAssetRecommendationCount","GoalColumn","goalName","GoalName","GoalId","GOAL","GoalTypeColumn","goalType","GoalTypeCode","CurrentSettingColumn","contextualAttributeWrapper","CURRENT_SETTING","entity","goalTypeId","GoalTypeId","goalOperatorTypes","GOAL_OPERATOR_TYPES_STRING_VALUES","issueTypeId","IssueType","DestUrl","destUrlCurrentSetting","CurrentSetting","destUrlSuggestedSetting","SuggestedSetting","destUrlData","getDestUrlData","currentDestinationUrl","suggestedDestinationURLOperatorName","currentDestinationURLOperatorName","suggestedDestinationUrl","destUrlemplate","Event","eventCurrentSetting","eventSuggestedSetting","eventData","getEventData","currentCategoryName","suggestedCategoryName","suggestedCategoryOperatorName","currentCategoryOperatorName","currentActionName","suggestedActionName","suggesteActionOperatorName","currentActionOperatorName","currentLabelName","suggestedLabelName","suggestedLabelOperatorName","currentLabelOperatorName","currentValueName","suggestedValueName","suggesteValueOperatorName","currentValueOperatorName","eventTemplate","ImpactScope","UET","UETData","currentEvent","CurrentEvent","currentEventLabel","UETTemplate","RevenueValue","revenueValueData","goalValueSourceId","GoalValueSourceId","sameGoalText","conversionValue","ConversionValue","variousGoalText","notAssignGoaText","isCurrent","revenueValueTemplate","SuggestedSettingColumn","SUGGESTED_SETTING","suggestedEvent","SuggestedEvent","suggestedEventLabel","sameGoalOrNotAssignGoaText","MissedConversionColumn","SearchVolumeDeltaColumn","SearchVolumeColumn","GoalSettingColumn","suggestedGoal","goalTypeCode","SuggestedGoal","DestinationUrl","destinationURLOperator","DestinationURLOperator","_opportunity$Suggeste","SuggestedEventGoal","Category","CategoryOperator","Action","ActionOperator","Label","LabelOperator","ValueOperator","CategoryTitle","ActionTitle","LabelTitle","ValueTitle","ConversionClarityButtons","SuggestedClarityEventGoal","IsFromMultipleURL","SourceURL","buttonTextElement","clarityEventGoalSetting","conversionClarityButtonsCount","moreConversionClarityButtons","MORE_CONVERSION_CLARITY_BUTTONS","GeneratedFromColumn","generatedFrom","Urls","GENERATED_FROM","pageUrls","PageUrls","style","color","IssueTypeColumn","ISSUE_TYPES","ActionHybridColumn","FacebookImportToDoColumn","PreviewMMAColumn","BusinessName","Headline","Description","landscapeImageMediaUrl","imageUrlToUse","ImageUrl","indexOfResizeInfo","indexOf","substr","resizeQueryString","pickProperities","headlineCount","textCount","imageCount","recommendedAdTemplate","PreviewImageExtensionColumn","IsRecommendationGetShutterStockImageFromUXEnabled","AlternativeText","DisplayText","FinalURL","WebsiteImages","ImageURL","hasImages","noImageText","ActionImageExtensionColumn","hasImage","ImageExtensionSourceColumn","MatchTypeNewColumn","ParamColumn","RawSuggParam1","RawSuggParam2","RawSuggParam3","InlineSuggestedParamValueColumnPrompt","Param1","$ref","bulkDeleteValueIfEmpty","Param2","Param3","error","paramValue","helpURL","setErrors","InlineSuggestedParamValueSave","SuggestedParamValueColumn","param","PreviewImproveRSAColumn","SuggestedAssets","numberOfSuggestedHeadline","lastExistingHeadlineIndex","numberOfSuggestedHeadlineDescription","numberOfSuggestedDescription","lastExistingDescriptionsIndex","ProductGroupColumn","GridData","getFieldValueFromGridData","CustomizedInlineBudgetEditor","_InlineBudgetEditor","$elToBlock","isForVNext","currencySymbol","clientName","_superPropGet","updatedBudget","toObject","Budget","Amount","InlineBudgetEditor","CampaignBudgetColumn","SuggestedBudget","suggestedBudgetValue","CampaignType","getCurrencySymbol","CampaignPriorityColumn","StoreCountryColumn","StoreName","CountryCode","storeId","storeName","country","ProductTargetedColumn","TotalUntargetedOfferCnt","CustomizedProductGroupsEditBidsView","_ProductGroupsEditBid","BidAmount","_ref$IsExcluded","IsExcluded","_ref$selectedItems","IsAutoBidding","NewProductGroupBid","ProductGroupsEditBidsView","SuggestedBidProductGroupColumn","suggestedBidValue","i18nGlobal","globalLegacyI18n","decimal","decimalFormatter","s$ProductGroup","ProductGroup","Bid","bidEditor","SuggestedShoppingCampaignColumn","fieldName","SuggestedShoppingAdGroupColumn","PreviewImproveMMAColumn","LongHeadlines","image","AssetIdString","numberOfSuggestedImageHeadline","numberOfSuggestedImage","AssetId","headline","longHeadline","moreImages","MORE_IMAGES","DSALevelTypeColumn","StoreColumn","CountryOrRegionColumn","CountryOrRegion","PerformanceMaxImportDescriptionColumn","PerformanceMaxImportToDoColumn","UpgradedCampaignColumn","CPCAvgDeltaColumn","EstimatedIncreaseInCpc","CurrentCpc","CPADeltaColumn","EstimatedIncreaseInCpa","CurrentCpa","actionTypeTemplateMapping","estimateTypeDefaultSortColumnMapping","CONVERSIONS","CLICKS","CTR","IMPRESSIONS","getSortableHeaderConfigNull","getSortableHeaderConfigByColumn","Column","directionIndex","getSortableHeaderConfigByPrimaryEstimate","adExtensionColumns","adExtensionColumnsMCC","SetupConversionTrackingOpportunityColumnsMCC","budgetColumns","adjustSharedBudgetColumns","broadMatchKeywordColumns","broadMatchKeywordColumnsVNext","broadMatchKeywordColumnsVNextMCC","googleImportColumns","newKeywordColumns","newKeywordColumnsVNext","newKeywordColumnsVNextMCC","trendingQueryColumns","trendingQueryColumnsMCC","repairAdsColumns","repairAdsColumnsMCC","repairKeywordsColumns","repairKeywordsColumnsMCC","fixAdTextColumns","fixAdTextColumnsMCC","removeConflictingNKWColumns","dynamicSearchAdsColumns","dynamicSearchAdsColumnsMCC","getResponsiveSearchAdsColumns","IsRecommendationTypeResponsiveSearchAdsNewTextsEnabled","ReallocateBudgetColumns","FixAdsDestinationColumns","fixAdsDestinationColumnsMCC","SetupConversionTrackingOpportunityColumns","FixConversionTrackingColumns","fixConversionGoalSettingsColumns","createConversionGoalColumns","facebookImportColumns","multiMediaAdsColumns","multiMediaAdsColumnsMCC","improveMultiMediaAdsColumns","improveMultiMediaAdsColumnsMCC","imageExtensionColumns","imageExtensionColumnsMCC","repairMissingKeywordParamsColumns","repairMissingKeywordParamsColumnsMCC","fixNoImpressionBidColumns","fixNoImpressionBidColumnsMCC","improveResponsiveSearchAdsColumns","improveResponsiveSearchAdsColumnsMCC","repairUntargetedOfferColumns","repairUntargetedOfferColumnsMCC","SSC2PMaxMigrationColumns","SSC2PMaxMigrationColumnsMCC","DSA2PMaxMigrationColumns","DSA2PMaxMigrationColumnsMCC","PerformanceMaxImportColumns","PerformanceMaxImportColumnsMCC","SyndicationGapColumns","SyndicationGapColumnsMCC","getColumnsMap","getColumnsMapMCC","getDefaultSortColumnMap","_getDefaultSortColumn","getColumnsByType","_ref3$readOnly","_ref3$isMCC","_ref3$isOptimizationS","mapColumnsConfig","getDefaultSortColumn","curQuery","ids","filterRecommendation","filterOpportunity","filterBySettingOptions","settingOptions","addedOptions","_ref$isRemove","isRemove","AddedOptions","RemovedOptions","SETTING_OPTIONS","NONE","RecommendationGridService","IsRecommendationCacheDetailPageDataEnabled","handleRecommendationNotification","gridRecCount","opportunityCount","benchMarkers","orderByDirection","FILTERBY","LESS_THAN","ORDERBY_DIRECTION","ASCENDING","GREATER_THAN","pageOffset","RecommendationType","DataVersion","OpportunityIdsInString","orderBy","PAGINATION_ORDERBY","DEFAULT","orderByArray","split","offset","OrderBy","getPaginationOrderBy","FilterType","getFilterBy","FilterBenchmark","getBenchMarker","PageSize","gridData","recommendationData","DismissTabSummaries","Recommendations","RecommendationsCount","OpportunitiesCount","FromUICache","getRecommendationCache","summaryData","isDismissedTab","RECOMMENDATION_SUMMARY_TOP_NUMBER","oppData","RecommendationCount","formatBenchMarker","detailData","getGridData","Promise","detailPageSetting","orderby","toLocaleLowerCase","getDetailPageSetting","getSummary","skip","filter","AssociationMetadata","SubType","REDISMISS","OpportunityHash","userModifiedInput","pollTask","_ref5$userInputs","_ref5$userAction","_ref5$context","_ref5$hasInlineError","_ref5$closeUiBlock","closeUiBlock","reason","hidePopupEditor","getUserInputFromGrid","campaignAdgroup","opt","campaignAdGroupsByCampaign","adgroupIds","contextWithApplyMode","ApplyMode","groupUserInputs","CROSS_LEVEL_TYPES","getCampaignAdGroupsFromScope","showAsyncApplyModal","closeAsyncApplyModal","NewFinalUrl","NewTrackingTemplate","isFromApplyOrDismiss","UNDISMISS","_ref7$opportunities","_ref7$userAction","_ref7$context","_ref7$closeUiBlock","totalRecommendationCount","isUserModified","withAll","_op$data","preference","rejectAutoApplySuggestedAds","isRedismissEnabled","expireTime","CAMPAIGN_TYPES","RejectAutoApplySuggestedAds","DismissFeedback","saveRecommendationPreferences","reasonObj","reasonIds","FEEDBACK","ReasonId","ReasonNote","reasonNote","isNewSupportedType","RECOMMENDATION_TYPES_SUPPORT_NEW_DISMISS_FORM","RECOMMENDATION_DISMISS_FEEDBACK_TYPE","IsRecommendationInProductFeedbackLoopEnabled","getRecommendationPreferences","now","Date","userLevelRejected","accountPreference","accountLevelRejected","CUSTOMER","Error","getPluginsConfig","toolbarItemWithSelectionIds","toolbarMoreButton","iconLeft","imageExtensionPageSize","getImageExtensionPageSize","availablePageSizes","RECOMMENDATION_PAGE_SIZES","actionType","recommendationToolBarPlugin","dismissFeedback","buttonId","projectionGridEnableWithSelection","toolbarItemIds","crossPageSelectAll","enableRandomPage","pageNumberLabelText","pageSizeText","resetPageNumberOnSort","uiBlocker","marker","_ref2$isOptimizationS","headRows","crossPageSelectHeadRow","scrolling","height","viewport","virtualized","tableClasses","enabled","headClasses","rows","dataSource","sortableHeader","getSelectedOpportunities","flatten","autoApplyDialog","isCrossPageApplyAll","onAutoApplyCancel","showDismissFeedbackPopup","onSubmit","showAutoApplyDismissFeedbackForm","useCallbackAsSubmit","showApplyConfirmModal","itemConfig","_ref2$plugins$recomme","_ref2$plugins$recomme2","_ref2$plugins$recomme3","gridToolbarGroup","isInProdFeedbackLoopOn","IsRecommendationRedismissEnabled","isDismissAll","showRejectPopup","showRejectFeedbackPopup","applyInToolbar","showApplyAllComfirmModal","inlineView","isAllSelected","resolve","onApply","countRecommendation","totalCountRows","closeUiBlockApplyAll","filteredOpportunities","toolbarWithItem","update","isShowFeedback","opporunity","IsRSAAutoApplyEnabled","trackId","generateGuid","undismissAll","undismiss","isShowNewDismissForm","updateToolbarDateEditor","buttonText","defaultButtonText","updateCustomizeToolbarDropdownText","updateFilterState","LAST_90","REJECTION_DATE_LAST_NINETY_DAYS","download","visible","tabIndex","classNames","RejectButton","Level","_DeterministicWrapper","_ref$isMCC","timerForPopupContextualAttribute","imageUrl","timerForStockUXCall","selectableFunc","gridFactory","pgrid","vnext","use","perfMarkerPlugin","assistedSelectionPlugin","uiBlockerPlugin","paginationPlugin","editablePlugin","create","renderStockImagePreview","src","renderNoImagePreview","empty","actionText","logOpportunity","getStockImage","itemArray","eachItem","getStockImageUrl","resdata","Url","SmallThumbnail","setTimeout","selectable","err","handleAjaxError","clearTimeout","otherEvents","keyOfElement","monitorViewportChange","hideContextualAttribute","self","showContextualAttribute","tooltipContainer","_$$0$getBoundingClien","getBoundingClientRect","width","contentView","DeterministicViewForBackBoneView","extend","outerHTML","document","contains","prototype","call","container","popupOptions","positioningMethod","positioningOptions","threshold","anchorPosition","showPopup","smartTopSearchTermChartWidth","_$$0$getBoundingClien2","off","hasClass","DeterministicWrapperView","RecommendationDetailsGrid","onPageChange","onPageSizeChange","onSort","sortedColumn","CampaignShimmeredDetailsList","enableShimmer","pager","AccountNameColumn","headerClassName","helpTopic","minWidth","isResizable","onRender","FailedCheckPointsColumn","FailedCheckPoints","StatusColumn","Status","SpendColumn","Spend","BudgetInSearchColumn","BudgetInSearch","SpendInSearchColumn","SpendInSearch","BudgetInAudienceAndPMaxColumn","BudgetInAudienceAndPMax","SpendInAudienceAndPMaxColumn","SpendInAudienceAndPMax","bindOnRenderHeader","column","onRenderHeader","columnProps","HelpIcon","buildHealthCheckGridColumns","PANEL_DECORATOR_TITLE","PANEL_WIDTH","removeElement","querySelector","panelOptions","panelReadyAriaLabel","panelClassName","EditorCtor","panelDecorator","eventsToActions","onClose","applyAction","globalLegacySchema","ExtensionEditor","extension","Repository","afterChangeComitted","i18nKeys","editTitle","library_title","selected_title","create_link","create_title","delete_btn","delete_confirm","edit_btn","edit_title","inlineAlert","search_for","filter_watermark","save_btn","cancel_btn","multiSelectInlineAlert","failedAssociationsLabel","successfulAssociationsLabel","dialogOptions","popupFront","instrumentation","startScenario","startActivity","endActivity","asLoggingStart","instrumentationSettings","ACTIVITYNAME","SCENARIONAME","disableScheduling","oDataConfig","odataRootUrl","odataPath","odataToken","currentTarget","AltText","FinalUrls","MobileFinalUrls","MobileURL","hasImageUrl","basicInput","distinctImageList","imageList","images","imageListFilteredByKey","associationType","CropX","cropSettings","SourceX","CropY","SourceY","CropHeight","SourceHeight","CropWidth","SourceWidth","newImageExtensionInfo","extensionData","isApplyEnable","isCPCIncrease","optId","idOpportunityMap","delta","clicks","EstimatedKPI","ClickDelta","ctr","CTRDelta","spend","CostDelta","cpc","CPCNew","CPC","oldValue","Clicks","Cost","newValue","ClicksNew","CTRNew","CostNew","CtrChangePrecentage","formatedRange","formatedDelta","estImpactType","positiveImpact","negativeImpact","from","to","noChange","increaseArrowTemplate","symbol","metricTypes","typeTextMapper","SiteLinkOpportunity","CalloutOpportunity","AdExtensionEditorView","_ref$opportunities","hideTitle","siteLinkAssociationEditor","SiteLinkAssociationEditor","calloutAssociationEditor","CalloutAssociationEditor","isExpandingView","hintText","prependAccountAttribute","originEntity","strongTemplate","typeText","cpcIncreaseText","cpcIncreaseReason","UiBlocker","block","associationEditorMapper","associationEditor","hasSubTitle","showErrorsInline","showSaveBar","disableDelete","usePanel","selectedChanged","adExtensionIds","unblock","metricTypeDescriptions","getAssociationEditorAndRender","Competitors","CPCDelta","isExpanding","adExtensionEditorView","instrumentationSchema","scenario","activity","_markTime","time","performance","activeTime","NaN","startTime","activeStartTime","GoalCreationEditor","withInstrumentation","goalData","isDemo","exportUpdatedGoalObject","useMemo","addScenario","wizardDefaultState","currentStep","goalObject","isEditScenario","logScenario","goalCreationRecommendationWizard","logInfo","logActivity","createGoalCreationRecommendationWizard","goalCreationWizard","updatedGoalObject","_ref$data","_ref$applyAction","ko_model","getGoalData","UrlString","Operator","eventTarget","ClarityEventInfo","Trigger","EventTarget","LookbackWindowInMinutes","LookbackWindowinMinutes","IsAccountLevel","ConversionCountType","GoalValue","CurrencyCode","GoalValueCurrencyCode","GoalValueType","IsMainConversionGoal","ViewThroughLookbackWindowinMinutes","ViewThroughLookbackWindowinMinutesNullable","GoalCategory","AttributionModelType","ConversionAttributionModelTypeStr","TagName","NewGoal","GoalType","stopImmediatePropagation","memo","uetTitle","categoryTitle","params","delegateEvents","InstrumentationContext","Provider","I18nContext","HANDLEABLE_ERROR_CODES","campaignSettingData","adGroupSettingData","adSettingData","isMixedDSACampaignRecommendation","CampaignSettings","DomainName","Website","Language","WebsiteLanguage","Math","round","DisplayUrl","TextPart2","Text2","isOppotunityCampaignLevel","maxAdgroupNameLength","maxlength","char_rem","remainChar","abs","AdgroupEditor","SearchBidView","BiddingStrategyView","searchBidView","getKeywordsCb","showTrafficEstimation","languages","biddingStrategyView","biddingStrategyType","childNodes","nodeValue","prepend","getValues","EditorsContainer","searchExamples","campaignEditor","CampaignEditor","adgroupEditor","AdsEditor","Editor","adEditor","isSaveToServer","showInline","dsaSettingsView","newDomain","adTypeViews","hasChange","examplesLength","example","willShow","before","classList","add","getAndHandleApiErrors","scrollToErrors","getData","getAdGroup","DynamicSearch","IsRecommendationRepairSuggestedAdsEnabled","editorsContainerView","entity_name","renderEditors","formatCampaignBulkApiError","CAMPAIGN_ODATA_ERROR_BASELINE","ErrorCode","getModel","csvRows","csvUtil","serialize","splice","LanguageCode","LocationCsv","TimeZone","adEditorModel","enableApply","finalUrl","enableResubmit","displayUrl","getFinalUrlDomain","showWarning","showEmptyTemplateWarning","selectIndex","exampleAds","convertDisplayUrl","Title1","Title2","Title3","Description1","Description2","opportunityData","finalUrlDesc","isPlural","desc","numberRejectedAds","numberRejectedKeywords","showTrackingTemplate","finalUrlEditor","UrlEditor","url","ariaLabelledby","ariaId","hasErrors","setError","trackingTemplate","placeholderEnabled","templateExampleEnabled","setTrackingTemplate","urlTestTool","fn","originalView","_this$deps","pageContext","isInline","uurlLevels","Ad","CurrentCustomer","AdId","timeFormat","raw","timeZone","startDate","formatDate","endDate","post","gridDataParameters","DateRange","EndDate","StartDate","res","adsInfo","TrackingUrlTemplate","getTrackingTemplate","UrlCustomParameters","FinalUrlSuffix","AccountFinalUrlSuffix","CurrentUser","testUurl","apiInLog","expressionOperators","valueOperators","schemaCampaignVnext","validator","s$DestinationGoal","DestinationGoal","maxUrlLength","maxLength","suggestedSetting","urlString","string","xss","operator","DestinationURLOperatorCode","operatorDescription","allParamIdentical","_opportunity$DestUrl$","s$EventGoal","EventGoal","categoryOperator","CategoryOperatorCode","actionOperator","ActionOperatorCode","labelOperator","LabelOperatorCode","size","valueOperator","ValueOperatorCode","eventParams","isNumeric","operators","allParamEmpty","str","trim","_opportunity$Event$Cu","currentValues","suggestedValues","inputRevenueValue","editedSetting","NewRevenueValue","parseOperator","baseParams","issueType","estimation","destUrlTemplate","subtitleCurrent","subtitleFixIssue","subtitleRevenue","pitchingRevenue","suggestedVariousGoalText","UETLinkText","currentAdModel","headlines","Asset","AssetType","PinnedField","PinnedFieldTypeString","EditorialStatus","AssociationType","UiDisplayStatus","IsAlgoGeneratedAsset","descriptions","MobileFinalUrl","NativePreference","responsiveSearchModel","imageFeatureMaskMap","ImageAssetIdString","FeatureMask","getImageFeatureMaskMap","longHeadlines","metadata","ImageHeight","ImageWidth","IsRecommendedImage","DisableEdit","CallToAction","CallToActionLanguage","ImpressionTrackingUrls","LandscapeImageMediaId","SquareImageMediaId","LandscapeLogoMediaId","SquareLogoMediaId","multimediaModel","improveResponsiveSearchModel","TargetAccountId","improveMultimediaModel","adTypeMapping","adTypeFieldsMapping","descriptionHeaderMapping","transformResponsiveSearchAd","applyModel","transformImproveResponsiveSearchAd","IsAIGeneratedAsset","isImageAssetId","getAssociationMetadata","isRecommendedImage","cropX","cropY","cropWidth","cropHeight","transformMultimediaAd","recommendedImageAssetIdStrings","ShortHeadlines","AdTexts","imagesMap","idString","transformImproveMultimediaAd","AdsEditorContainer","inlineSuggestionsEnabled","showLightbulb","isRecommendation","isImproveRSA","isImproveMMA","audienceAd","crudReactComponent","original","pickField","currentImageList","getFlattenedImageAssetList","originalImageList","hasImageChanged","getEntity","adsEditorContainerView","adType","adEditorFields","descriptionHeader","adsEditor","Responsive","setResponseErrors","updatedAdView","updatedAd","returnIds","ResponsiveSearch","adStrengthContainer","returnSuggestionIds","viewIds","viewSuggestionIds","applyIds","applySuggestionIds","clickIdeas","clickViewIdeas","AcceptInfo","ReturnSuggestionIds","ViewSuggestionIds","ApplySuggestionIds","ClickViewIdeas","NewAd","crudAudienceAdReact","initialParams","isDataValid","adExtensionViewModel","adEditRef","showWebsiteImageOptIn","hasWebsiteImageOptIn","getProcessedDataAsync","mtModel","adStrengthSuggestionPicker","adCustomizerPicker","IsRSAAdoptionV2Enabled","SELECT_TYPE","SuggestBudget","ManualBudget","COMMENT_TYPES","interpolation","y1","y2","x1","x2","x","suggestBudget","surplusBudget","BudgetSurplus","minBudget","DailyRange","maxBudget","maxInputBudget","fromCampaignCurrent","toCampaignCurrent","fromCampaignName","toCampaignName","budgetType","enableInput","AccountCurrencyCode","suggestBudgetStr","inputBudget","applyBudget","warnMessage","hadInput","deltaInfo","setDeltaInfo","validBudget","deltaFromBudget","deltaToBudget","fromCampaignClicks","fromCampaignCost","toCampaignClicks","toCampaignCost","fromCampaignValid","newLandscape","Landscapes","Comment","sorted","estBudget","minPoint","EstimatedBudget","EstimatedClicks","EstimatedCost","maxPoint","nextIndex","point","inputValue","_value$toString$split","decimalStr","_slicedToArray","fromCampaignEntity","toCampaignEntity","NewCampaignBudgets","createKeywordView","CreateKeywordView","keywords","getKeywords","keywordSuggestionsAdded","getSuggestionsAdded","newKeywords","KeywordText","IsKP","NewKeywords","getStarted","_this$opportunityData","tplSetupConvTodo","tplSetupConvPerformance","aggregatedResult","showNotificationPanel","successTotalCount","successfulCount","failTotalCount","failedCount","failHeadingDescText","otherInfo","successHeadingText","isSuccess","n","failHeadingText","failCountsByErrorCode","AggregatedResults","getReasonByErrorCode","errorCode","RECOMMENDATION_NOTIFICATION_ERRORCODE","hasViewRec","Expired","hasLearnMore","CMMTErrorCode","i18nKey","bulkApiErrorNumberToErrorMessageMapping","RecommendationFilterBanner","opportunityIds","close","showFilterBanner","getOpportunityIdsFromResults","recommendationFilterBanner","pkg","globalContext","define","preferenceService","Data","findByNameAtUserLevel","setAtUserLevel","mockPreferenceService","RecommendationTabView","validDetailPage","detailValid","categoryType","lastCategoryType","lastRecommendationType","lastCampaignId","lastAdGroupId","legacyRouter","require","requireDefault","_globalContext$requir2","legacyDependencies","RecommendationTabContainer","PreferenceContext","staticI18nMock","PopupContextProvider","IsCentralizedPopupManagementEnabled","newType","oldType","viewType","VIEW_TYPES","SUMMARY","HISTORY","setting","historyLocation","navigate","routeLocation","additionalParams","navigateToRoute","adgroup_id","campaign_id","customer_id","route","viewCategory","page","backToRecommendation","tempScope","viewHistory","newScope","RecommendationTabWithData","withCoupon","RecommendationTab","RecommendationTabContainerView","initializeInstrumentation","initializeDataService","initializeDownloadService","RecommendationDownloadService","alertCenter","App","views","getODataErrors","currentScenario","loadRecommendationTab","_this$props$deps2","RecommendationService","showAlertHandler","lcid","CultureLcid","ccJsData","_this$props$deps3","urlUtil","railviewid","withCcJsData","withScope","WrappedComponent","HoC","testRef","viewCategoryHandler","viewSummaryHandler","viewDetailsHandler","viewHistoryHandler","displayName","getDisplayName","hoistNonReactStatics","withNavigation","styles","teachingBubble","inner","subtext","buttons","primaryButton","secondaryButton","pageIndex","footer","textStyle","root","TeachingBubble","onCalloutDismiss","keyCode","onDismiss","preventDismissOnEvent","pageCount","primaryButtonContent","secondaryButtonContent","primaryButtonAction","secondaryButtonAction","withPages","directionalHint","withCloseButton","doNotLayer","FocusTrapCallout","focusTrapProps","isClickableOutsideFocusTrap","disableFirstFocus","Stack","gap","horizontal","DefaultButton","PrimaryButton","DirectionalHint","bottomLeftEdge","TeachingBubbleWithLock","withLock","lockKey","keyVault","priority","priorityLevel","autoClose","optimizationScoreTeachingBubble","step","next","previous","getPreferences","PREFERENCES_ACTION_TYPES","OptimizationScoreOnboard","categoryScoreUpLifts","onDone","hasOptimizationScore","Available","anyCategoryOptimizationScore","anySummaryCardOptimizationScore","typeLevelRecommendation","stepCount","titles","contents","targets","isOnBoard","OptimizationScoreTeachingBubble","withFilterCategory","OptimizationScoreTeachingBubbleWithUserGovernance","withUserGovernance","recommendationsAutoApplySettings","onSave","reloadSummaryPage","isOptInStatusDelta","IsOptIn","setAutoApplyOptInStatus","handleAutoApplyOptionChange","formatDateWithAccountTimeZone","latestUpdateTime","latestUpdatedDate","accountTimeZone","toIANATimeZone","fromLegacyTimeZone","hideAutoApplyTeachingBubble","prevPropsId","propsId","_this$props3","getCategories","navigateBack","categories","isAutoApplySettings","hostStyles","display","calloutProps","gapSpace","tooltipProps","maxWidth","padding","delay","TooltipDelay","long","recommendationAutoApplySettings","IsRSAAndMMAOnboardAARSettingsPageEnabled","RECOMMENDATION_CATEGORIES_IDS","RECOMMENDATION_CATEGORIES_WORDING","tooltipElement","RECOMMENDATION_AUTO_APPLY_SETTINGS_TOOLTIPS","recommendationConfigs","detailHelpId","TooltipHost","rightCenter","summaryTitle","LatestUpdateTime","nextProps","RecommendationsAutoApplySettings","withDefaultStyles","withGetAutoApplyOptInStatus","_ref$palette","palette","background","borderBottom","marginLeft","marginTop","marginRight","neutralSecondary","paddingBottom","lineHeight","textDecoration","fontSize","fontWeight","marginBottom","gridTemplateColumns","paddingTop","paddingLeft","themeLighterAlt","recommendationTab","isAsyncApplyModalOpen","isApplyConfirmModalOpen","autoApplyTeachingBubbleVisible","includes","optimizationScoreTeachingBubbleVisible","availableCategories","ALL","checkCampaignStatus","DeliveryStatus","customizedMessage","store","updateCampaignStatus","notificationStore","floatingBannerId","border","boxSizing","borderRadius","dismissible","sitemapper","siteMap","recommendationSiteMap","findSiteMap","isDismissedTabEnabled","dismissedData","updateSitemap","customMapperStore","customMapper","_ref2$type","_ref2$position","addCouponToRecommendations","rawCouponData","rawRecommendationData","couponFeatureId","FeatureId","FAC_RECOMMENDATION_CONFIG","priorities","types","couponEligibleType","stop","_ref3$onReject","onReject","onApplyConfirm","onApplyReject","onApplyRecommendationType","closeApplyConfirmModal","confirmApplyConfirmModal","rejectApplyConfirmModal","initLegacyDeps","renderDownloadButton","UIVersion","recommendationsDetailsLazy","recommendationsHistoryLazy","recommendationsBulkAARLazy","filteredSummaryViewLazy","initialize","survey","surveyManager","AUTO_APPLY_SETTINGS","AUTO_APPLY_BULK_UPLOAD","DETAILS","isFromDetail","hasLoadToken","cacheManager","unset","IsRecommendationDataCacheEnabled","setRecommendationCache","invalidate","currentCategory","rec","FAC_RECOMENDATIONTYPE_FEATUREID_MAPPING","CampaignIds","AdGroupIds","recommendationDataStore","recommendationsDetails","RecommendationsDetails","RecommendationsDetailsLazy","prevCategoryType","recommendationsHistory","RecommendationsHistory","RecommendationsHistoryLazy","recommendationBulkAAR","RecommendationsBulkAAR","RecommendationsBulkAARLazy","confirmFormTitle","confirmFormContent","filteredSummaryView","FilteredSummaryView","FilteredSummaryViewLazy","filterCategory","isFromSummary","fallback","RecommendationModal","AsyncApplyForm","runInBackground","routeApplyHistory","ConfirmForm","confirmString","cancelString","onConfirm","featureName","userGovernanceConfig","getTeachingBubbleUserGovernanceConfig","primaryButtonText","targetElement","prevCategory","viewBAADetails","withStateStore","sharedComponentFunctionStateStore","recommendationsBulkAAR","componentDidMount","willFetchData","componentDidUpdate","perfMarkerDone","done","willRender","BulkAARPageContainer","StyledRecommendationBulkAAR","_recommendationsBulkAAR","getHistoryPageStyle","RecommendationsDetailsHeader","AUTO_APPLY_TYPES","SUPPORT_ADINSIGHT_AUTO_APPLY_TYPES","URLSearchParams","getDetailsSummary","showDetailsHeader","loaded","hasSetData","receiveMessage","match","exec","recommendationsDetailsHeaderLazy","recommendationsGridContainerLazy","recommendationsGridContainer","ReRecommendationsDetailsHeaderLazy","RecommendationsGridContainerLazy","Object","keys","ScoreUpLift","_RecommendationsDetails","RecommendationHistoryHeader","_PureComponent","PureComponent","EditedByColumn","EditorName","NumberOfRecommendationColumn","TotalRecommendationCount","RecommendationTypeColumn","recommendationConfig","useNewI18n","StartTimeColumn","Timestamp","timeStamp","date","datetime","SuccessRecommendationCount","FailedRecommendationCount","AdoptionStatus","formatedFailedRecommendationCount","formatedSuccessRecommendationCount","failedRecommendationCount","successRecommendationCount","downloadable","RecommendationHistoryGridService","getHistory","selectedTab","HISTORY_PAGE_TAB_TYPES","MANUAL","IsAARSuperUser","RecommendationHistoryGrid","AdoptionId","downloadHistory","$grid","filterBySelectedTab","currentTab","historyPageContainer","AUTO","BackboneInstanceWrapper","instance","_recommendationsHistory","neutralLighter","paddingRight","module","exports","locals","pug_interp","pug_html","locals_for_with","pug","escape","$$obj","pug_index0","$$l","v","pug_index1","pug_mixins","currentName","currentOperatorName","suggestedName","suggestedOperatorName","attributes","labelTitle","valueTitle","metricType","TagId","popupId","ariaLabelContext","arialLabelText","selectType","icon1","icon2","icon0"],"sourceRoot":""}