{"version":3,"file":"static/js/application.async.non-landing~299f885a.06c39457.chunk.js","mappings":"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ACAD,IAGI+W,GAA0B,CAC9BpL,GACApX,GACApK,GACA8Z,GACA/Y,GACA6U,GACAE,GACAD,IAGIgX,GAA8B,CAClCvE,GACAle,GACApK,GACAgM,GACAxB,GACAe,IAGIuhB,GAAiC,CACrCxE,GACAle,GACApK,GACAe,GACAiL,GACAxB,GACAe,IAGIwhB,GAAwB,CAC5BvK,GACAxiB,GACAoK,GACAgZ,GACA5Y,IAGIwiB,GAA2B,CAC/BxK,GACAxiB,GACAoK,GACArJ,GACAqiB,GACA5Y,IAGIyiB,GAAoC,CACxC9gB,GACAkX,GACAC,GACAiB,GACAvkB,GACAoK,GACA4B,IAGIkhB,GAAuC,CAC3C/gB,GACAkX,GACAC,GACAiB,GACAvkB,GACAoK,GACArJ,GACAiL,IAGImhB,GAA4B,CAChChhB,GACAgE,GACAkT,GACArjB,GACAoK,GACA4B,IAGIohB,GAA+B,CACnCjhB,GACAgE,GACAkT,GACArjB,GACAoK,GACArJ,GACAiL,IAGIqhB,GAAoC,CACxC5I,GACAra,GACApK,GACAgM,GACAxB,GACAe,IAGI+hB,GAAuC,CAC3C7I,GACAra,GACApK,GACAe,GACAiL,GACAxB,GACAe,IAGIgiB,GAA+B,CACnCpF,GACAE,GACArD,GACAwC,GACAxB,GACAK,GACAC,GACAM,GACA5a,IAGIwhB,GAAkC,CACtCrF,GACAE,GACArD,GACAjkB,GACAymB,GACAxB,GACAK,GACAC,GACAM,GACA5a,IAGIyhB,GAA2B,CAC/BztB,GACAkpB,GACAC,GACAtT,IAGI6X,GAA8B,CAClC3sB,GACAf,GACAkpB,GACAC,GACAtT,IAGI8X,GAA2B,CAC/B3tB,GACAupB,GACA7b,GACAnC,IAGIqiB,GAA8B,CAClC7sB,GACAf,GACAupB,GACA7b,GACAnC,IAGIsiB,GAA8B,CAClCxE,GACAC,IAGIwE,GAAiC,CACrC/sB,GACAsoB,GACAC,IAGIyE,GAAwB,CAC5B/tB,GACAoK,GACAI,GACAkD,GACA8b,GACAG,IAGIqE,GAA2B,CAC/BjtB,GACAf,GACAoK,GACAI,GACAkD,GACA8b,G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","sources":["../../../node_modules/@bingads-webui-campaign/recommendation-inline-view-factory/src/view.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-action/src/plugin.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-action/src/external-feature.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/const.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-apply-only-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-edit-apply-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-edit-resubmit-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-edit-only-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-external-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-panel-edit-apply-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-repair-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-setup-conversion-tracking-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/campaign-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/account-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-popupeditor/src/bid-editor-model.js","../../../node_modules/@bingads-webui-campaign/recommendation-popupeditor/src/bid-editor.js","../../../node_modules/@bingads-webui-campaign/recommendation-popupeditor/src/ad-group-editor-model.js","../../../node_modules/@bingads-webui-campaign/recommendation-popupeditor/src/ad-group-editor.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/campaign-ad-group-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/ad-group-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/click-delta-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/cost-delta-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/impression-delta-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/keyword-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/match-type-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/google-import-todo-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/budget-delta-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/shared-budget-delta-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/conversion-delta-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/bid-adjustment-todo-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/ctr-delta-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/current-match-type-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/suggested-bid-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/suggested-keyword-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/top-search-term-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/recommended-because-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/match-type-selector-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/match-type-inline-editable/prompt.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/match-type-inline-editable/save.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/match-type-selector-column-vnext.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/preview-rsa-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/remove-negative-keyword-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/blocked-keywords-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/suggested-campaign-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/estimate-search-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/search-example-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/current-click-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/current-cost-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/current-impression-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/landing-page-url-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/rejection-type-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/number-rejected-ads-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/number-rejected-keywords-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/rejected-ads-keywords-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/rejected-ads-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/rejected-keywords-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/policy-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/setup-conversion-tracking-todo-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/number-clicks-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/number-impressions-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/performance-summary-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/fix-conversion-tracking-todo-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/fix-conversion-tracking-summary-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/asset-generated-from.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/goal-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/goal-type-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/current-setting-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/suggested-setting-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/missed-conversion-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/search-volume-delta-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/search-volume-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/goal-setting-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/generated-from-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/issue-type-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-hybrid-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/facebook-import-todo-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/preview-mma-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/preview-image-extension-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-image-extension-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/image-extension-source-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/match-type-new-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/param-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/param-inline-editable/prompt.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/param-inline-editable/save.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/suggested-param-value-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/preview-improve-rsa-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/product-group-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/campaign-budget-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/campaign-priority-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/store-country-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/product-targeted-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/suggested-bid-product-group-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/suggested-shopping-campaign-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/suggested-shopping-adgroup-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/preview-improve-mma-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/dsa-level-type-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/store-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/country-or-region-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/performance-max-import-description-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/performance-max-import-todo-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/upgraded-campaign-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/cpc-avg-delta-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/cpa-delta-column.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/index.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/filter-helper.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/grid-service.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/grid-config.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/grid-toolbar-plugin.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/reject-button/grid-reject-button.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/view.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/new-additional-plugins.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/new-grid.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/recommendation-details-list.tsx","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/health-check/account-name.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/health-check/failed-check-points.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/health-check/status.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/health-check/spend.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/health-check/budget-in-search.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/health-check/spend-in-search.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/health-check/budget-in-audience-pmax.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/health-check/spend-in-audience-pmax.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/grid-column-builder.js","../../../node_modules/@bingads-webui-campaign/recommendation-history-grid/src/columns/edited-by.js","../../../node_modules/@bingads-webui-campaign/recommendation-history-grid/src/columns/number-of-recommendation.js","../../../node_modules/@bingads-webui-campaign/recommendation-history-grid/src/columns/recommendation-type.js","../../../node_modules/@bingads-webui-campaign/recommendation-history-grid/src/columns/start-time.js","../../../node_modules/@bingads-webui-campaign/recommendation-history-grid/src/columns/status.js","../../../node_modules/@bingads-webui-campaign/recommendation-history-grid/src/grid-service.js","../../../node_modules/@bingads-webui-campaign/recommendation-history-grid/src/grid-config.js","../../../node_modules/@bingads-webui-campaign/recommendation-history-grid/src/index.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-action/src/const.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-action/src/create-conversion-goal/index.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-action/src/image-extension/index.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-action/src/new-ads-view/index.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-ad-extension-view/src/viewmodel/AdExtensionEditorModel.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-ad-extension-view/src/view/AdExtensionEditorView.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-ad-extension-view/src/view/index.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-create-conversion-goal-view/src/shared/instrumentation-schema.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-create-conversion-goal-view/src/shared/util.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-create-conversion-goal-view/src/shared/goal-creation-editor.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-create-conversion-goal-view/src/viewmodel/create-coversion-goal-model.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-create-conversion-goal-view/src/view/create-coversion-goal.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-dynamic-search-ads-view/src/const.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-dynamic-search-ads-view/src/viewmodel/dynamic-search-ads-inline-view-model.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-dynamic-search-ads-view/src/view/adgroup-editor.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-dynamic-search-ads-view/src/view/editors-container.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-dynamic-search-ads-view/src/view/dynamic-search-ads-inline-view.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-fix-ad-destination-view/src/viewmodel/index.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-fix-ad-destination-view/src/view/index.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-fix-conversion-goal-setting-view/src/viewmodel/fix-coversion-goal-setting-model.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-fix-conversion-goal-setting-view/src/view/fix-coversion-goal-setting.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-new-ads-view/src/new-ads-preview-model.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-new-ads-view/src/model/rsa-model.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-new-ads-view/src/model/mma-model.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-new-ads-view/src/model/improve-rsa-model.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-new-ads-view/src/model/improve-mma-model.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-new-ads-view/src/const.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-new-ads-view/src/ads-editor-container.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-new-ads-view/src/new-ads-preview.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-reallocate-budget-view/src/const.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-reallocate-budget-view/src/viewmodel/index.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-reallocate-budget-view/src/view/index.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-repair-keywords-view/src/view/index.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-setup-conversion-tracking-view/src/view/index.js","../../../node_modules/@bingads-webui-campaign/recommendation-inline-setup-conversion-tracking-view/index.js","../../../node_modules/@bingads-webui-campaign/recommendation-status-lightbox/src/viewmodel/index.js","../../../node_modules/@bingads-webui-campaign/recommendation-status-lightbox/src/view/filterBanner.js","../../../node_modules/@bingads-webui-campaign/recommendation-status-lightbox/src/view/index.js","../../../node_modules/@bingads-webui-campaign/report-column-chooser/src/column-chooser.js","../../../node_modules/@bingads-webui-campaign/report-column-chooser/src/column-formating/constraints/exclusion-sets.js","../../../node_modules/@bingads-webui-campaign/report-column-chooser/src/column-formating/constraints/time-grain.js","../../../node_modules/@bingads-webui-campaign/report-column-chooser/src/column-formating/constraints/configs.js","../../../node_modules/@bingads-webui-campaign/report-column-chooser/src/column-formating/constraints/charts-columns.js","../../../node_modules/@bingads-webui-campaign/report-column-chooser/src/report-column-chooser.js","../../../node_modules/@bingads-webui-campaign/report-column-chooser/src/column-formating/translate-columns.js","../../../node_modules/@bingads-webui-campaign/report-column-chooser/src/column-formating/constraints/pilot.js","../../../node_modules/@bingads-webui-campaign/report-column-chooser/src/index.js","../../../node_modules/@bingads-webui-campaign/report-column-chooser/src/style.js","../../../node_modules/@bingads-webui-campaign/report-controls/src/loading/style/style.js","../../../node_modules/@bingads-webui-campaign/report-controls/src/loading/loading.js","../../../node_modules/@bingads-webui-campaign/report-controls/src/loading/style/index.js","../../../node_modules/@bingads-webui-campaign/report-controls/src/panel/components/style.js","../../../node_modules/@bingads-webui-campaign/report-controls/src/panel/panel.js","../../../node_modules/@bingads-webui-campaign/report-controls/src/panel/components/classes.js","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/account-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-apply-only-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-edit-apply-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-edit-only-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-edit-resubmit-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-external-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-hybrid-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-image-extension-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-panel-edit-apply-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-repair-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/action-setup-conversion-tracking-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/ad-group-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/bid-adjustment-todo.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/blocked-keywords-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/budget-delta.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/campaign-ad-group-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/campaign-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/country-or-region-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/current-setting-column-dest-url.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/current-setting-column-event.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/delta.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/estimate-search-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/fix-conversion-tracking-summary-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/fix-conversion-tracking-todo-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/generated-from-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/goal-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/goal-setting-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/keyword-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/landing-page-url-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/match-type-selector-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/number-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/policy-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/preview-image-extension-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/preview-improve-mma-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/preview-improve-rsa-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/preview-mma-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/preview-rsa-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/rejected-ads-keywords-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/rejection-type-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/remove-negative-keyword-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/setting-column-UET.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/setting-column-revenue-value.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/shared-budget-delta.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/store-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/suggested-bid-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/suggested-bid-product-group-column.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/suggested-setting-column-dest-url.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/suggested-setting-column-event.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/columns/top-search-term.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/reject-button/grid-reject-button.pug","../../../node_modules/@bingads-webui-campaign/recommendation-grid/src/template.pug","../../../node_modules/@bingads-webui-campaign/recommendation-history-grid/src/columns/one-line-text.pug","../../../node_modules/@bingads-webui-campaign/recommendation-history-grid/src/columns/status.pug","../../../node_modules/@bingads-webui-campaign/recommendation-history-grid/src/template.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-action/src/container.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-ad-extension-view/src/template/adextension.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-ad-extension-view/src/template/increaseArrow.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-ad-extension-view/src/template/index.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-ad-extension-view/src/template/strong.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-create-conversion-goal-view/src/template/create-conversion-goal.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-dynamic-search-ads-view/src/template/adgroup-editor.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-dynamic-search-ads-view/src/template/dynamic-search-ads-inline-view.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-dynamic-search-ads-view/src/template/editors-container.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-fix-ad-destination-view/src/template/adsPreview.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-fix-ad-destination-view/src/template/index.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-fix-ad-destination-view/src/template/urlEditor.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-fix-conversion-goal-setting-view/src/template/destinationGoalType.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-fix-conversion-goal-setting-view/src/template/eventGoalType.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-fix-conversion-goal-setting-view/src/template/fix-conversion-goal-setting-dest-url.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-fix-conversion-goal-setting-view/src/template/fix-conversion-goal-setting-event.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-fix-conversion-goal-setting-view/src/template/fix-conversion-goal-setting-revenue-value.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-new-ads-view/src/ads-editor-container.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-new-ads-view/src/new-ads-preview.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-reallocate-budget-view/src/template/index.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-repair-keywords-view/src/template/index.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-setup-conversion-tracking-view/src/template/index.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-setup-conversion-tracking-view/src/template/performance-summary.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-setup-conversion-tracking-view/src/template/setup-conversion-tracking-todo.pug","../../../node_modules/@bingads-webui-campaign/recommendation-inline-view-factory/src/template.pug","../../../node_modules/@bingads-webui-campaign/recommendation-popupeditor/src/ad-group-editor.pug","../../../node_modules/@bingads-webui-campaign/recommendation-popupeditor/src/bid-editor.pug","../../../node_modules/@bingads-webui-campaign/recommendation-status-lightbox/src/template/filterBanner.pug","../../../node_modules/@bingads-webui-campaign/recommendation-status-lightbox/src/template/index.pug"],"sourcesContent":["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 _ 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","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 React, { Component } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport ReportingProps from '@bingads-webui-campaign-react/props-reporting';\r\nimport { BackboneInstanceWrapper } from '@bingads-webui-react/backbone-instance-wrapper';\r\nimport { ColumnChooser as BackboneColumnChooser } from '@bingads-webui/column-chooser';\r\nimport { helpers } from '@bingads-webui/deterministic-view';\r\n\r\nexport class ColumnChooser extends Component {\r\n static propTypes = {\r\n categories: PropTypes.array.isRequired, // eslint-disable-line\r\n currentActive: PropTypes.string.isRequired,\r\n legacyI18n: PropTypes.object.isRequired, // eslint-disable-line\r\n selected: PropTypes.arrayOf(PropTypes.string.isRequired).isRequired,\r\n setData: PropTypes.func.isRequired,\r\n isSplittingSelectedArea: PropTypes.bool.isRequired,\r\n instrumentation: ReportingProps.instrumentation, // eslint-disable-line\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n const {\r\n categories,\r\n selected,\r\n legacyI18n,\r\n isSplittingSelectedArea,\r\n instrumentation,\r\n } = props;\r\n\r\n const cfg = {\r\n categories,\r\n selected,\r\n };\r\n this.state = {\r\n searchStr: '',\r\n };\r\n this.view = new BackboneColumnChooser({\r\n i18n: legacyI18n,\r\n simplified: true,\r\n isSplittingSelectedArea,\r\n instrumentation,\r\n }).setState(cfg);\r\n\r\n this.view.on(\r\n 'hide',\r\n ({\r\n selectedKeys,\r\n currentActive,\r\n searchStr,\r\n } = {}) => {\r\n this.props.setData({ selected: selectedKeys, currentActive, searchStr });\r\n if (!_.isUndefined(searchStr)) {\r\n this.setState({\r\n searchStr,\r\n });\r\n }\r\n }\r\n );\r\n helpers.updateView(this.view, {\r\n isSaveNameEnabled: false,\r\n });\r\n }\r\n\r\n render() {\r\n const { categories, currentActive, selected } = this.props;\r\n const cfg = {\r\n categories,\r\n currentActive,\r\n selected,\r\n external: true,\r\n searchStr: this.state.searchStr,\r\n };\r\n this.view.setState(cfg);\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\nconst isAvailable =\r\n (option, exclusionMap) =>\r\n !_.has(exclusionMap, option);\r\n\r\nconst setDisabledColumns = (categories, exclusionSets) => {\r\n const exclusionMap = _.reduce(\r\n exclusionSets,\r\n (memo, node) => _.extend(memo, node),\r\n {}\r\n );\r\n _.forEach(categories, (category) => {\r\n _.forEach(category.options, (option) => {\r\n if (isAvailable(option.key, exclusionMap)) {\r\n if (option.disabled) {\r\n option.disabled = false; // eslint-disable-line\r\n }\r\n } else {\r\n option.disabled = true; // eslint-disable-line\r\n }\r\n });\r\n });\r\n return categories;\r\n};\r\n\r\nexport const resolveExclusionConditions = (exclusionSetsGroups, categories, selected) => {\r\n const offendingSets = [];\r\n _.forEach(exclusionSetsGroups, (exclusionSets) => {\r\n const exclusionSet = _.find(exclusionSets, set =>\r\n _.find(selected, (option) => {\r\n if (_.has(set, option)) {\r\n return true;\r\n }\r\n return false;\r\n }));\r\n\r\n if (exclusionSet) {\r\n offendingSets.push(_.without(exclusionSets, exclusionSet));\r\n }\r\n });\r\n\r\n return setDisabledColumns(categories, _.flatten(offendingSets));\r\n};\r\n\r\nexport const resolveAvailableColumns = (selected, categories) => {\r\n const map = _.object(selected, selected);\r\n const cloneSelected = _.clone(selected);\r\n const available = [];\r\n _.forEach(categories, (category) => {\r\n _.forEach(category.options, (option) => {\r\n if (_.result(option, 'selectOption', '') === 'mandatory' && !_.has(map, option.key)) {\r\n cloneSelected.unshift(option.key);\r\n }\r\n if (!option.disabled) {\r\n available.push(option.key);\r\n }\r\n });\r\n });\r\n\r\n // _intersection to retain order of original array\r\n return _.intersection(cloneSelected, available);\r\n};\r\n\r\n// input exclusion sets with below format:\r\n// {\r\n// MetricColumns: ['a', 'b', 'c'],\r\n// DimensionColumns: ['i', 'j'],\r\n// MetricColumns(.+): ['o', 'p'],\r\n// DimensionColumns(.+): ['r', 's', 't'],\r\n// };\r\n// return formatted exclusion sets with below format:\r\n// {\r\n// Columns: [\r\n// { a: 'a', b: 'b', c: 'c' },\r\n// { i: 'i', j: 'j' },\r\n// ],\r\n// Columns(.+): [\r\n// { o: 'o', p: 'p' },\r\n// { r: 'r', s: 's', t: 't' },\r\n// ],\r\n// };\r\nexport const formatExclusionSets = (exclusionSets) => {\r\n const sets = {};\r\n _.forEach(exclusionSets, (set, key) => {\r\n const matched = key.match(/(Metric|Dimension)(.+)/i);\r\n const groupName = matched[2];\r\n _.defaults(sets, { [groupName]: [] });\r\n sets[groupName].push(_.object(set, set));\r\n });\r\n return sets;\r\n};\r\n","import _ from 'underscore';\r\n\r\nconst isAvailable = (timeGrain, option) => (\r\n !option.forbiddenTimeGrains || !_.contains(option.forbiddenTimeGrains, timeGrain)\r\n);\r\n\r\nexport const filterByTimeGrain = (timeGrain, categories) =>\r\n _.map(categories, (category) => {\r\n const categoryClone = _.clone(category);\r\n categoryClone.options = [];\r\n _.forEach(category.options, (option) => {\r\n if (isAvailable(timeGrain, option)) {\r\n categoryClone.options.push(option);\r\n }\r\n });\r\n return categoryClone;\r\n });\r\n\r\n","export const configs = {\r\n Linechart: {\r\n attributesLimit: 1,\r\n statisticsLimit: 2,\r\n },\r\n Barchart: {\r\n attributesLimit: 1,\r\n statisticsLimit: 2,\r\n },\r\n};\r\n","import _ from 'underscore';\r\nimport { configs } from './configs';\r\n\r\nfunction validate(selectedColumns, columnsLimit, category) {\r\n let resultColumns = selectedColumns;\r\n const resultCategory = category;\r\n if (resultColumns.length >= columnsLimit) {\r\n resultColumns = resultColumns.slice(0, columnsLimit);\r\n\r\n const selectedColumnsSet = {};\r\n resultColumns.forEach((item) => {\r\n selectedColumnsSet[item] = true;\r\n });\r\n\r\n resultCategory.options = _.map(\r\n resultCategory.options,\r\n option => _.defaults({ disabled: !_.has(selectedColumnsSet, option.key) }, option)\r\n );\r\n }\r\n\r\n return {\r\n resultColumns,\r\n resultCategory,\r\n };\r\n}\r\n\r\nexport const resolveChartsColumns = (selected, categories, renderType) => {\r\n if (renderType === 'Table') {\r\n return {\r\n categories,\r\n selected,\r\n };\r\n }\r\n\r\n const attributesSet = {};\r\n categories[0].options.forEach((entry) => {\r\n attributesSet[entry.key] = true;\r\n });\r\n\r\n let selectedAttributes = [];\r\n selected.forEach((item) => {\r\n if (attributesSet[item]) {\r\n selectedAttributes.push(item);\r\n }\r\n });\r\n let selectedStatistics = _.difference(selected, selectedAttributes);\r\n selectedAttributes = _.without(selectedAttributes, 'TimePeriod');\r\n\r\n const { attributesLimit, statisticsLimit } = configs[renderType];\r\n\r\n const resultCategories = categories;\r\n ({\r\n resultColumns: selectedAttributes,\r\n resultCategory: resultCategories[0],\r\n } = validate(selectedAttributes, attributesLimit, categories[0]));\r\n ({\r\n resultColumns: selectedStatistics,\r\n resultCategory: resultCategories[1],\r\n } = validate(selectedStatistics, statisticsLimit, categories[1]));\r\n\r\n if (renderType === 'Linechart') {\r\n selectedAttributes.splice(0, 0, 'TimePeriod');\r\n }\r\n const resultSelected = selectedAttributes.concat(selectedStatistics);\r\n\r\n return {\r\n categories: resultCategories,\r\n selected: resultSelected,\r\n };\r\n};\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ReportingProps from '@bingads-webui-campaign-react/props-reporting';\r\nimport { ErrorMessages } from '@bingads-webui-react/validation';\r\nimport { ColumnChooser } from './column-chooser';\r\nimport { formatExclusionSets, resolveExclusionConditions, resolveAvailableColumns } from './column-formating/constraints/exclusion-sets';\r\nimport { filterByPilot } from './column-formating/constraints/pilot';\r\nimport { filterByTimeGrain } from './column-formating/constraints/time-grain';\r\nimport { translateColumns } from './column-formating/translate-columns';\r\nimport { resolveChartsColumns } from './column-formating/constraints/charts-columns';\r\n\r\nexport class ReportColumnChooser extends React.Component {\r\n static propTypes = {\r\n /* eslint-disable react/no-unused-prop-types */ // Doesn't detect props used in getDerivedState\r\n permissions: ReportingProps.permissions.isRequired,\r\n currentActive: PropTypes.string,\r\n classes: PropTypes.objectOf(PropTypes.string),\r\n i18n: ReportingProps.i18n.isRequired,\r\n legacyI18n: ReportingProps.i18n.isRequired,\r\n reportSchema: PropTypes.object.isRequired, //eslint-disable-line\r\n selected: PropTypes.arrayOf(PropTypes.string.isRequired).isRequired,\r\n setData: PropTypes.func.isRequired,\r\n timeGrain: PropTypes.string.isRequired,\r\n renderType: PropTypes.string,\r\n instrumentation: ReportingProps.instrumentation, // eslint-disable-line\r\n };\r\n\r\n static defaultProps = {\r\n classes: {\r\n columnChooser: '',\r\n },\r\n currentActive: '',\r\n renderType: 'Table',\r\n }\r\n\r\n // eslint-disable-next-line react/sort-comp\r\n constructor(props) {\r\n super(props);\r\n this.state = { errorMessages: [] };\r\n }\r\n\r\n static getDerivedStateFromProps(props, state) {\r\n const output = {\r\n isValid: props.isValid,\r\n errorMessages: props.errorMessages,\r\n };\r\n const { categories } = props.reportSchema.Columns;\r\n const pilotSets = props.reportSchema.Columns.piloted;\r\n\r\n let { exclusionSets } = state;\r\n let pilotFiltered = state.pilotFilteredCategories;\r\n if (!_.isEqual(state.unmodifiedCategories, categories)) {\r\n const translatedColumns = translateColumns(props.i18n, categories);\r\n exclusionSets = formatExclusionSets(props.reportSchema.ExclusionSets);\r\n output.unmodifiedCategories = categories;\r\n output.exclusionSets = exclusionSets;\r\n output.pilotFilteredCategories =\r\n filterByPilot(props.permissions, translatedColumns, pilotSets);\r\n output.currentActive = '';\r\n pilotFiltered = output.pilotFilteredCategories;\r\n } else {\r\n output.currentActive = props.currentActive;\r\n }\r\n\r\n let timeGrainFiltered = state.timeGrainFilteredCategories;\r\n let { selected } = props;\r\n if (state.timeGrain !== props.timeGrain || output.pilotFilteredCategories) {\r\n timeGrainFiltered = filterByTimeGrain(props.timeGrain, pilotFiltered);\r\n selected = resolveAvailableColumns(props.selected, timeGrainFiltered);\r\n output.timeGrainFilteredCategories = timeGrainFiltered;\r\n output.timeGrain = props.timeGrain;\r\n }\r\n\r\n if (\r\n !_.isEqual(state.selected, selected) ||\r\n output.timeGrainFilteredCategories ||\r\n props.renderType !== state.renderType\r\n ) {\r\n output.renderType = props.renderType;\r\n const newCategories =\r\n resolveExclusionConditions(exclusionSets, timeGrainFiltered, selected);\r\n selected = resolveAvailableColumns(selected, newCategories);\r\n ({\r\n selected: output.selected,\r\n categories: output.categories,\r\n } = resolveChartsColumns(selected, newCategories, props.renderType));\r\n // If we have removed or alter the original selection let the parent know\r\n if (!_.isEqual(output.selected, props.selected)) {\r\n const valid = ReportColumnChooser.checkValid(props, output.categories, output.selected);\r\n const data = { selected: output.selected };\r\n _.extend(data, valid);\r\n props.setData(data);\r\n }\r\n }\r\n return output;\r\n }\r\n\r\n static checkValid = (props, categories, selected) => {\r\n const {\r\n i18n,\r\n reportSchema: {\r\n MandateColumnSet = [],\r\n MissingMandatoryColumnError,\r\n },\r\n } = props;\r\n\r\n const map = _.object(selected, selected);\r\n let matches = 0;\r\n categories.forEach(category =>\r\n _.find(category.options, (option) => {\r\n if (map[option.key]) {\r\n matches += 1;\r\n return true;\r\n }\r\n return false;\r\n }));\r\n\r\n let isMandatoryColumnMissing = false;\r\n MandateColumnSet.forEach((columns) => {\r\n const selectedMandatoryColumn = _.intersection(columns, selected);\r\n if (selectedMandatoryColumn.length === 0) {\r\n isMandatoryColumnMissing = true;\r\n }\r\n });\r\n\r\n const errorMessages = [];\r\n if (matches !== categories.length) {\r\n errorMessages.push(i18n.getString(_TL_('At least one Attribute column and one Performance statistics column must be selected')));\r\n }\r\n if (isMandatoryColumnMissing) {\r\n errorMessages.push(i18n.getString(MissingMandatoryColumnError));\r\n }\r\n\r\n return {\r\n isValid: (matches === categories.length),\r\n errorMessages,\r\n };\r\n }\r\n\r\n setData = (data) => {\r\n const valid = ReportColumnChooser.checkValid(this.props, this.state.categories, data.selected);\r\n _.extend(data, valid);\r\n this.props.setData(data);\r\n }\r\n\r\n render() {\r\n const {\r\n legacyI18n, renderType, classes, instrumentation,\r\n } = this.props;\r\n const {\r\n categories, currentActive, errorMessages, selected,\r\n } = this.state;\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\nexport const translateColumns = (i18n, categories) => {\r\n const output = [];\r\n\r\n const currentLocale = i18n.getLocale();\r\n const compareLocale = new Intl.Collator(currentLocale).compare;\r\n _.forEach(categories, (category) => {\r\n const categoryClone = _.clone(category);\r\n categoryClone.options = [];\r\n categoryClone.name = i18n.getString(categoryClone.name);\r\n output.push(categoryClone);\r\n _.forEach(category.options, (option) => {\r\n const optionClone = _.clone(option);\r\n optionClone.name = i18n.getString(option.name);\r\n categoryClone.options.push(optionClone);\r\n });\r\n categoryClone.options.sort((a, b) => compareLocale(a.name, b.name));\r\n });\r\n return output;\r\n};\r\n","import _ from 'underscore';\r\n\r\nexport const filterByPilot = (permissions, categories, pilotSets) => {\r\n let rejectedColumns = {};\r\n _.forEach(pilotSets, ({ isAllowed, columns }) => {\r\n if (!isAllowed(permissions)) {\r\n rejectedColumns = _.extend(rejectedColumns, _.object(columns, columns));\r\n }\r\n });\r\n\r\n const categoriesWithFilteredOptions = _.map(categories, (category) => {\r\n const categoryClone = _.clone(category);\r\n categoryClone.options = [];\r\n _.forEach(category.options, (option) => {\r\n if (!_.has(rejectedColumns, option.key)) {\r\n categoryClone.options.push(option);\r\n }\r\n });\r\n return categoryClone;\r\n });\r\n return categoriesWithFilteredOptions.filter(category => category.options.length !== 0);\r\n};\r\n","import { withPerfMarker } from '@bingads-webui/performance-marker-react-wrapper';\r\nimport { withLegacyI18n, withPermissionContext } from '@bingads-webui-campaign/report-shared';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { withInstrumentation } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { ReportColumnChooser } from './report-column-chooser';\r\nimport { getStyle } from './style';\r\n\r\n\r\nconst withPerf = component => withPerfMarker(component, { name: 'reporting-column-chooser' });\r\nconst Wrapped =\r\n // eslint-disable-next-line\r\n withInstrumentation(withPerf(withLegacyI18n(withI18nConsumer(withPermissionContext(withDefaultStyles(ReportColumnChooser, getStyle))))));\r\n\r\nexport { Wrapped as ReportColumnChooser };\r\n\r\n","import { helpbuttonStyle } from '@bingads-webui-campaign-react/common-styles';\r\nimport { merge } from '@bingads-webui-universal/primitive-utilities';\r\nimport { ComponentSettings } from '@bingads-webui-theme-2018/theme-fluent';\r\n\r\nconst {\r\n columnChooserStyle,\r\n getColumnChooserOverrideStyle,\r\n} = ComponentSettings;\r\n\r\nexport const getStyle = function (components, { isUIVnext, palette }) {\r\n if (!isUIVnext) {\r\n return {\r\n columnChooser: {},\r\n };\r\n }\r\n\r\n return {\r\n '@global': {\r\n ...helpbuttonStyle({ palette }),\r\n },\r\n columnChooser: merge(\r\n {},\r\n columnChooserStyle,\r\n getColumnChooserOverrideStyle(palette),\r\n {\r\n '& .column-chooser .panel': {\r\n marginTop: '34px',\r\n marginBottom: '0px',\r\n boxShadow: 'none',\r\n },\r\n '& .column-chooser .panel .panel-body': {\r\n paddingLeft: '0',\r\n },\r\n '& .column-chooser .panel .panel-body .column-chooser-selection-area .column-chooser-option .options-view .column-chooser-option-list .column-chooser-editable-picker a.custom-column-add': {\r\n margin: '8px',\r\n padding: '8px',\r\n backgroundColor: '#008272',\r\n color: 'white',\r\n position: 'absolute',\r\n },\r\n '& .column-chooser': {\r\n lineHeight: '18px',\r\n '& .panel': {\r\n '& .panel-body': {\r\n '& .column-chooser-selection-area': {\r\n '& .column-chooser-option': {\r\n '& .column-chooser-search-box': {\r\n position: 'relative',\r\n border: '1px solid #F3F2F1',\r\n '& .search-input': {\r\n height: '48px',\r\n border: 'none',\r\n paddingLeft: '48px',\r\n },\r\n '& .glyphicon-search': {\r\n fontFamily: 'MsAds MDL2 Assets',\r\n position: 'absolute',\r\n fontSize: '16px',\r\n top: '16px',\r\n left: '16px',\r\n color: palette.themePrimary,\r\n '&:before': {\r\n content: '\"\\\\E721\"',\r\n },\r\n },\r\n },\r\n '& .options-view .column-chooser-option-list': {\r\n width: '510px',\r\n height: '257px',\r\n '& ul.column-chooser-options': {\r\n height: '219.6px',\r\n '& span.option-name': {\r\n maxWidth: '380px',\r\n },\r\n },\r\n },\r\n },\r\n '& .column-chooser-selected': {\r\n width: '435px',\r\n height: '309px',\r\n '& .column-chooser-selected-header': {\r\n width: '100%',\r\n },\r\n '& .remove-all-in-selected-list': {\r\n display: 'inline-block',\r\n float: 'right',\r\n paddingRight: '10px',\r\n paddingTop: '10px',\r\n },\r\n '& .column-chooser-selected-list': {\r\n '& .draggable-list-view': {\r\n width: '100%',\r\n height: '241px',\r\n '& ul.draggable-list': {\r\n height: '241px',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n }\r\n ),\r\n };\r\n};\r\n","export const style = {\r\n view: {\r\n width: '100%',\r\n 'min-width': '885px',\r\n marginTop: '20px',\r\n marginBottom: '10px',\r\n paddingLeft: '24px',\r\n },\r\n loadingContainer: {\r\n width: '100%',\r\n height: '100%',\r\n textAlign: 'center',\r\n },\r\n loadingMessage: {\r\n padding: '20px',\r\n display: 'inline-block',\r\n backgroundColor: 'white',\r\n maxWidth: '370px',\r\n minWidth: '140px',\r\n minHeight: '70px',\r\n zIndex: 1011,\r\n '&:hover &:focus': {\r\n border: {\r\n color: 'white', // _.result(color.light, 'dark30'),\r\n },\r\n },\r\n },\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { getStyle } from './style';\r\n\r\n// a simple loading view to render when the page requires a fetch to finish\r\nconst Loading = ({ i18n, classes }) => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {i18n.getString(_TL_('Loading...'))}\r\n
\r\n
\r\n
\r\n
\r\n);\r\n\r\nLoading.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n classes: PropTypes.objectOf(PropTypes.string),\r\n};\r\n\r\nLoading.defaultProps = {\r\n classes: {},\r\n};\r\n\r\nexport const Wrapped =\r\nwithDefaultStyles(withI18nConsumer(Loading), getStyle);\r\nexport { Wrapped as Loading };\r\n","import _ from 'underscore';\r\nimport { uiblockerStyle } from '@bingads-webui-campaign-react/common-styles';\r\nimport { style } from './style';\r\n\r\nexport const getStyle = function (components, core) {\r\n if (!core.isUIVnext) {\r\n return style;\r\n }\r\n const blockStyle = uiblockerStyle({ palette: core.palette });\r\n return {\r\n ...style,\r\n 'blocker-global': _.extend(blockStyle['.blocker-global'], blockStyle['.blocker-global, .blocker-local'], blockStyle['.blocker, .blocker-global, .blocker-local']),\r\n loadingContainer: _.extend(style.loadingContainer, {\r\n '& div.blocker-indicator': {\r\n top: '80px',\r\n },\r\n }),\r\n };\r\n};\r\n","\r\nexport const style = {\r\n icon: {\r\n paddingRight: '8px',\r\n Top: '2px !important',\r\n },\r\n panel:\r\n {\r\n backgroundColor: 'transparent !important',\r\n border: 'none !important',\r\n 'box-shadow': 'none !important',\r\n borderRadius: '0px',\r\n padding: '0px !important',\r\n marginBottom: '0px !important',\r\n\r\n },\r\n panelHeader:\r\n {\r\n backgroundColor: 'transparent !important',\r\n borderBottom: 'solid 1px #eaecee !important',\r\n borderTopLeftRadius: '3px',\r\n borderTopRightRadius: '3px',\r\n cursor: 'pointer',\r\n color: '#333333 !important',\r\n display: 'block',\r\n font: 'normal 14px Arial !important',\r\n fontWeight: '600 !important',\r\n height: '40px',\r\n marginTop: '10px',\r\n marginBottom: '0px !important',\r\n padding: '9px 0px 0px 0px',\r\n '& .helpbutton':\r\n {\r\n verticalAlign: 'middle !important',\r\n },\r\n },\r\n\r\n panelBody:\r\n {\r\n padding: '10px 0px 0px 15px',\r\n },\r\n\r\n panelTitle:\r\n {\r\n display: 'inline',\r\n 'font-weight': 'bold',\r\n fontSize: '14px !important',\r\n lineHeight: '30px',\r\n padding: '0px 0px',\r\n marginBottom: 'unset',\r\n },\r\n};\r\n\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport _ from 'underscore';\r\nimport { Panel as ReactPanel, Glyphicon } from '@bingads-webui-react/primitive';\r\nimport { HelpIcon } from '@bingads-webui-campaign-react/help';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { getStyle } from './components/classes';\r\n\r\nexport class PanelBase extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n expanded: props.expanded,\r\n };\r\n this.onClick = this.onClick.bind(this);\r\n }\r\n\r\n onClick() {\r\n this.setState({\r\n expanded: !this.state.expanded,\r\n });\r\n }\r\n\r\n render() {\r\n const { helpLinkId, classes, isUIVnext } = this.props;\r\n const expanded = this.props.onClick ? this.props.expanded : this.state.expanded;\r\n const iconType = expanded ? 'menu-up' : 'menu-down';\r\n const nextIconType = expanded ? 'ba-ChevronUpMed' : 'ba-ChevronDownMed';\r\n return (\r\n \r\n \r\n \r\n \r\n {this.props.label}\r\n \r\n {helpLinkId && }\r\n \r\n \r\n {this.props.children}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst Wraped = withDefaultStyles(PanelBase, getStyle);\r\nexport { Wraped as Panel };\r\n\r\nPanelBase.propTypes = {\r\n\r\n /**\r\n * Content rendered in the body\r\n */\r\n children: PropTypes.node,\r\n\r\n /**\r\n * If panel expanded or not initially\r\n */\r\n expanded: PropTypes.bool,\r\n\r\n /**\r\n * id name of the element\r\n */\r\n id: PropTypes.string,\r\n\r\n /**\r\n * Title of the panel\r\n */\r\n label: PropTypes.string.isRequired,\r\n\r\n /**\r\n * onClick functionality to turn into a full\r\n * controlled component.\r\n */\r\n onClick: PropTypes.func,\r\n\r\n helpLinkId: PropTypes.string,\r\n\r\n classes: PropTypes.objectOf(PropTypes.string),\r\n\r\n isUIVnext: PropTypes.bool,\r\n};\r\n\r\nPanelBase.defaultProps = {\r\n children: '',\r\n expanded: false,\r\n id: undefined,\r\n onClick: undefined,\r\n helpLinkId: undefined,\r\n classes: {},\r\n isUIVnext: false,\r\n};\r\n\r\n","import _ from 'underscore';\r\nimport { helpbuttonStyle } from '@bingads-webui-campaign-react/common-styles';\r\nimport { style } from './style';\r\n\r\nexport const getStyle = function (components, core) {\r\n const baseStyle = style;\r\n if (!core.isUIVnext) {\r\n return baseStyle;\r\n }\r\n return {\r\n ...baseStyle,\r\n panel: _.extend(baseStyle.panel, {\r\n marginTop: '36px',\r\n }),\r\n panelHeader: _.extend(baseStyle.panelHeader, {\r\n font: 'normal 14px Sego !important',\r\n height: '40px',\r\n borderBottom: 'none',\r\n borderTop: `1px solid ${core.palette.neutralSecondary}`,\r\n paddingTop: '10px !important',\r\n '& .helpbutton': _.extend(helpbuttonStyle(core)['.helpbutton'], {\r\n display: 'inline',\r\n verticalAlign: 'baseline',\r\n color: `${core.palette.themePrimary}`,\r\n padding: 0,\r\n }),\r\n '& .helpbutton::before': helpbuttonStyle(core)['.helpbutton::before'],\r\n '& .helpbutton:after': {\r\n content: 'none',\r\n },\r\n }),\r\n panelBody: _.extend(baseStyle.panelBody, {\r\n paddingTop: '0',\r\n paddingLeft: '30px',\r\n }),\r\n panelTitle: _.extend(baseStyle.panelTitle, {\r\n color: `${core.palette.themePrimary}`,\r\n display: 'inline',\r\n font: 'normal 18px Segoe UI !important',\r\n fontSize: '18px',\r\n '&:focus': {\r\n outline: 'none',\r\n 'text-decoration': 'underline',\r\n },\r\n }),\r\n icon: _.extend(baseStyle.icon, {\r\n fontSize: '18px',\r\n paddingRight: '11px',\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":["RecommendationInlineViewFactory","_Backbone$View","_classCallCheck","_callSuper","arguments","_inherits","_createClass","key","value","_ref","i18n","newI18n","deps","gridService","recommendation","logOpportunityEvent","router","gridView","readOnly","isMCC","perfMarker","serverContext","getGoalCreationRecommendationWizard","s$i18n","viewUET","this","childView","opportunityType","OpportunityType","_this","appState","set","account_id","Target","AccountId","RECOMMENDATION_TYPES","BUDGET_OPPORTUNITY","then","_ref2","RecommendationInlineBudgetView","data","renderInlineContent","ADJUST_SHARED_BUDGET_OPPORTUNITY","_ref3","isSharedBudget","REPAIR_KEYWORD","_ref4","RepairKeywordsInlineView","SITE_LINK","CALLOUT","_ref5","AdExtensionInlineView","type","RESPONSIVE_SEARCH_ADS","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","permissions","IsRecommendationThirdPartyTaggingEnabled","FIX_CONVERSION_GOAL_SETTINGS","_ref11","FixConversionGoalSettingView","scope","recommendationService","CREATE_CONVERSION_GOAL","_ref12","CreateConversionGoalView","$el","html","template","_","Opportunities","opportunity","rejectedAd","RejectedAds","RejectedKeywords","opportunityId","OpportunityId","campaignId","CampaignId","action","ADINSIGHT_LOG_ACTION_TYPE","VIEWEDIT","accountId","context","FlagId","result","OldFinalUrl","FinalUrl","OldTrackingTemplate","TrackingTemplate","Backbone","hasChanged","_ref13","_this2","opportunities","userInputs","_ref13$context","IsRecommendationInlineErrorEnabled","apply","hasInlineError","trigger","$","scrollTop","catch","errors","dealWithInlineError","finally","withUiBlock","closeBlocker","_ref14","_this3","dismiss","remove","ReactDOM","el","render","on","cancel","append","recommendationInlineAction","definePlugin","selection","columns","_ref$plugins$recommen","plugins","currentInlineView","view","$inlineViewContainer","initCurrentInlineView","prop","deselectRow","show","preventUserAction","e","window","confirm","getString","preventConfirm","preventDefault","stopPropagation","inlineActionHandler","colspan","length","target","parents","itemWithKey","containerTemplate","bind","selectedKeys","appendView","deselectAll","once","$row","concat","find","after","hide","getRowByKey","refresh","force","applyRecommendation","undefined","editor","imageExtensionApplyConfirmHandler","level","levelAt","levelAtConstant","ACCOUNT","adGroupIdVNext","adGroupId","campaignAdGroups","Key","Value","options","odata","cid","advertiserCustomerId","aid","isFromImgExtV2","IMAGE_EXTENSION","channel","CHANNEL_TYPES","RECOMMENDATION","dataService","callback","showApplyFeedbackPopup","applyHandler","recommendationType","ImageSourceStr","IsAccountEnabledForCrawlImagesFromLandingPage","externalHandler","$inlineContainer","targetAccountId","statusId","StatusId","AdGroupId","ButtonName","_defineProperty","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","StockImages","Query","ShutterstockTotalCount","TotalCount","ShutterstockImageId","ImageId","Images","item","ImageAssetId","openImageExtensionEditor","IMPROVE_MULTIMEDIA_ADS","openNewAdsViewEditor","openCreateConversionGoalEditor","actionColumnProjection","name","handler","state","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","SSC_2_PMAX_MIGRATION","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","isPopupEditorEnabledRecommendationType","SUPPORT_APPLY_TYPES","SUPPORT_RESUBMIT_TYPES","SUPPORT_DISMISS_TYPES","SUPPORT_DISMISS_ALL_TYPES","SUPPORT_DOWNLOAD_TYPES","_toConsumableArray","NOT_SUPPORT_DOWNLOAD_TYPES","SUPPORT_DATE_FILTER_TYPES","DATE_FILTER_STRING_TYPES","getSearchTermChartData","searchTermList","searchTerms","reverse","selectedMetric","localizeCategory","category","items","searchTerm","searchTermKpi","isKeywordRecsChange","NewMatchType","SuggestedMatchType","MatchType","NewAdGroupId","NewBid","newBid","formatBid","suggestedBid","SuggBid","SuggestedBid","isSuggestedBidSupported","BidStrategyTypeId","InlineCampaignAdGroupEditableSave","updated","editorView","isCampaign","Name","grid","NewCampaignName","NewAdGroupName","push","selected","ActionApplyOnlyColumn","_ProjectionGridBaseCo","property","title","bodyClasses","colClasses","_TL_","get","ProjectionGridBaseColumn","ActionApplyEditColumn","ActionResubmitEditColumn","IsAppealable","disableResubmit","ActionEditOnlyColumn","ActionExternalColumn","actionName","ActionPanelEditApply","isPanelEdit","IsRecommendationRSAMMAPnaelEditEnabled","ActionRepairColumn","SuggestedAdList","isApplyHidden","ActionSetupConversionTrackingColumn","CampaignColumn","sortable","_ref2$value","_ref2$value$Target","CampaignName","campaignAttributes","withContextualAttributeTemplate","entityName","entityId","entityType","CONTEXTUAL_ENTITY_TYPE","CAMPAIGN","status","ariaLabel","campaignName","AccountColumn","AccountName","accountAttributes","ViewModel","formatSuggestedBid","appConfig","inputBid","ko","userInputDisplayVal","subscribe","isValidDecimal","parseDecimal","validate","validateUserInput","minBid","FloorValue","maxBid","CeilingValue","schema","properties","required","minimum","maximum","KoSchema","validators","message","range","replace","currency","errorMessage","showErrorMessage","isValid","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","totalCount","suggestedAdgroupId","adgroups","selectorControl","selectedAdgroup","adgroupIdInfoMapping","defaultAdgroupProcessed","id","JSON","parse","stringify","adgroupProcessed","values","sortBy","map","adgroup","unshift","AdGroupEditorView","_len","args","Array","_key","fecthAdgroupData","adgroupSelectorView","scopeParentItem","_ref$query","query","_ref$pageNumber","pageNumber","_ref$pageSize","pageSize","_ref$scopeParentItem","customFilter","isFilterSearchStandardAdgroupRecommendationType","ADGROUP_TYPES","SearchStandard","uiBlockContainer","getAdgroupData","defaultAdGroup","adGroups","adGroup","ID","returnAdgroupIdInfoMapping","dataManager","_ref2$isMCC","newPosition","AdGroupName","selectedAdgroupName","selectedItem","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","className","parentContainerSelector","AdGroupColumn","adGroupAttributes","ADGROUP","adGroupName","ClicksDeltaColumn","isOptimizationScoreOn","helpId","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","count","budget","BudgetDeficit","targetCPA","BidStrategyTargetCpa","list","model","subtitle","description","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","enum","filterable","isReadOnly","nullable","valueMessages","fields","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","filterState","_$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$","iconClasses","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","ThumbnailURL","hasImages","noImageText","ActionImageExtensionColumn","hasImage","ImageExtensionSourceColumn","MatchTypeNewColumn","ParamColumn","RawSuggParam1","RawSuggParam2","RawSuggParam3","InlineSuggestedParamValueColumnPrompt","field","Param1","$ref","bulkDeleteValueIfEmpty","Param2","Param3","error","paramValue","text","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","NewBudget","InlineBudgetEditor","CampaignBudgetColumn","SuggestedBudget","suggestedBudgetValue","CampaignType","getCurrencySymbol","CampaignPriorityColumn","StoreCountryColumn","StoreName","CountryCode","storeId","storeName","country","ProductTargetedColumn","TotalUntargetedOfferCnt","CustomizedProductGroupsEditBidsView","_ProductGroupsEditBid","BidAmount","_ref$IsExcluded","IsExcluded","_ref$selectedItems","selectedItems","IsAutoBidding","NewProductGroupBid","ProductGroupsEditBidsView","SuggestedBidProductGroupColumn","suggestedBidValue","i18nGlobal","globalLegacyI18n","config","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","primaryEstimate","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","slice","mapColumnsConfig","getDefaultSortColumn","removeFilter","curQuery","filterByOpportunityId","ids","filterRecommendation","filterOpportunity","filterBySettingOptions","settingOptions","addedOptions","_ref$isRemove","isRemove","AddedOptions","RemovedOptions","SETTING_OPTIONS","NONE","RecommendationGridService","campaignType","onEvent","guid","setData","setDataFromDetails","IsRecommendationCacheDetailPageDataEnabled","handleRecommendationNotification","gridRecCount","version","opportunityCount","MCCRECOMMENDATION","benchMarkers","orderByDirection","FILTERBY","LESS_THAN","ORDERBY_DIRECTION","ASCENDING","GREATER_THAN","pageOffset","RecommendationType","DataVersion","Version","OpportunityIdsInString","orderBy","PAGINATION_ORDERBY","DEFAULT","orderByArray","split","offset","OrderBy","getPaginationOrderBy","FilterType","getFilterBy","FilterBenchmark","getBenchMarker","PageSize","op","gridData","recommendationData","RECOMMENDATION_CATEGORIES","DISMISSED","DismissTabSummaries","Recommendations","RecommendationsCount","OpportunitiesCount","FromUICache","getRecommendationCache","summaryData","isDismissedTab","recommendations","RECOMMENDATION_SUMMARY_TOP_NUMBER","oppData","VIEW","RecommendationCount","formatBenchMarker","detailData","getGridData","Promise","detailPageSetting","orderby","toLocaleLowerCase","getDetailPageSetting","getSummary","skip","filter","userAction","userInput","APPLY_USERINPUT_TYPES","TargetAdGroupId","AssociationMetadata","SubType","APPLY_ACTION_TYPES","REDISMISS","OpportunityHash","userModifiedInput","pollTask","_this4","_ref5$userInputs","_ref5$userAction","ACCEPT","_ref5$context","_ref5$hasInlineError","_ref5$closeUiBlock","closeUiBlock","reason","hidePopupEditor","getUserInputFromGrid","campaignAdgroup","opt","campaignAdGroupsByCampaign","adgroupIds","parseInt","contextWithApplyMode","ApplyMode","groupUserInputs","CROSS_LEVEL_TYPES","getCampaignAdGroupsFromScope","showAsyncApplyModal","closeAsyncApplyModal","NewFinalUrl","NewTrackingTemplate","track","isFromApplyOrDismiss","UNDISMISS","DISMISS","_this5","_ref7$opportunities","_ref7$userAction","_ref7$context","_ref7$closeUiBlock","totalRecommendationCount","isUserModified","withAll","applyAll","_op$data","preference","rejectAutoApplySuggestedAds","isRedismissEnabled","expireTime","CAMPAIGN_TYPES","RejectAutoApplySuggestedAds","DismissFeedback","saveRecommendationPreferences","preferencesService","reasonObj","reasonIds","FEEDBACK","input","ReasonId","ReasonNote","reasonNote","isNewSupportedType","RECOMMENDATION_TYPES_SUPPORT_NEW_DISMISS_FORM","RECOMMENDATION_DISMISS_FEEDBACK_TYPE","IsRecommendationInProductFeedbackLoopEnabled","getRecommendationPreferences","now","Date","userLevelRejected","accountPreference","accountLevelRejected","CUSTOMER","Error","getPluginsConfig","downloadService","compact","viewDetails","recommendationTypesAvailable","dismissBtnId","applyBtnId","toolbarItemWithSelectionIds","toolbarMoreButton","classes","iconLeft","onClick","toolbarItems","disabled","button","menu","imageExtensionPageSize","getImageExtensionPageSize","availablePageSizes","RECOMMENDATION_PAGE_SIZES","href","toolbar","actionType","recommendationToolBarPlugin","dismissFeedback","buttonId","projectionGridEnableWithSelection","toolbarItemIds","crossPageSelectAll","pagination","enableRandomPage","pageNumberLabelText","pageSizeText","totalPageCountText","resetPageNumberOnSort","uiBlocker","marker","getConfig","_ref2$isOptimizationS","headRows","crossPageSelectHeadRow","scrolling","header","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","dismissAll","isShowNewDismissForm","updateToolbarDateEditor","buttonText","defaultButtonText","updateCustomizeToolbarDropdownText","updateFilterState","LAST_90","REJECTION_DATE_LAST_NINETY_DAYS","download","DOWNLOAD","content","iconLeftGlyphName","_jsxs","children","_jsx","visible","role","tabIndex","classNames","HelpPopup","topic","RejectButton","Level","NewRecommendationsGrid","_DeterministicWrapper","_ref$isMCC","crossPageSelectPlugin","newToolBarPlugin","timerForPopupContextualAttribute","imageUrl","timerForStockUXCall","selectableFunc","gridFactory","pgrid","vnext","use","perfMarkerPlugin","assistedSelectionPlugin","uiBlockerPlugin","paginationPlugin","plugin","editablePlugin","create","renderStockImagePreview","row","src","attr","renderNoImagePreview","empty","actionText","logOpportunity","getStockImage","itemArray","eachItem","index","getStockImageUrl","resdata","Url","SmallThumbnail","setTimeout","selectable","err","handleAjaxError","clearTimeout","otherEvents","_objectSpread","keyOfElement","monitorViewportChange","entityid","scopedata","hideContextualAttribute","self","showContextualAttribute","tooltipContainer","_$$0$getBoundingClien","getBoundingClientRect","width","contentView","DeterministicViewForBackBoneView","extend","outerHTML","document","body","contains","prototype","call","container","popupOptions","positioningMethod","positioningOptions","threshold","anchorPosition","showPopup","chart","visualType","VISUAL_TYPES","SEARCH_TERMS_CHART","visualData","smartTopSearchTermChartWidth","AdvisorChart","subType","_$$0$getBoundingClien2","selectedIndex","off","hasClass","DeterministicWrapperView","RecommendationDetailsGrid","onPageChange","onPageSizeChange","onSort","sortedColumn","total","CampaignShimmeredDetailsList","enableShimmer","pager","AccountNameColumn","headerClassName","helpTopic","minWidth","isMultiline","isResizable","onRender","FailedCheckPointsColumn","FailedCheckPoints","StatusColumn","Status","SpendColumn","Spend","BudgetInSearchColumn","BudgetInSearch","SpendInSearchColumn","SpendInSearch","BudgetInAudienceAndPMaxColumn","BudgetInAudienceAndPMax","SpendInAudienceAndPMaxColumn","SpendInAudienceAndPMax","bindOnRenderHeader","column","onRenderHeader","columnProps","HelpIcon","buildHealthCheckGridColumns","EditedByColumn","EditorName","NumberOfRecommendationColumn","TotalRecommendationCount","RecommendationTypeColumn","recommendationConfig","recommendationConfigs","useNewI18n","summaryTitle","StartTimeColumn","Timestamp","timeStamp","accountTimeZone","toIANATimeZone","fromLegacyTimeZone","date","formatDate","timeZone","datetime","SuccessRecommendationCount","FailedRecommendationCount","AdoptionStatus","formatedFailedRecommendationCount","formatedSuccessRecommendationCount","failedRecommendationCount","successRecommendationCount","downloadable","RecommendationHistoryGridService","currentActivity","getHistory","res","trace","rec","selectedTab","HISTORY_PAGE_TAB_TYPES","ALL","MANUAL","IsAARSuperUser","RecommendationHistoryGrid","AdoptionId","downloadHistory","$grid","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","logMessage","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","stockImages","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","props","goalData","isDemo","exportUpdatedGoalObject","useMemo","addScenario","wizardDefaultState","currentStep","goalObject","isEditScenario","logScenario","goalCreationRecommendationWizard","logInfo","logActivity","createGoalCreationRecommendationWizard","GoalCreationRecommendationWizard","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","odataType","NewGoal","GoalType","stopImmediatePropagation","memo","uetTitle","categoryTitle","params","delegateEvents","uid","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","info","finalUrlDesc","isPlural","desc","numberRejectedAds","numberRejectedKeywords","showTrackingTemplate","finalUrlEditor","UrlEditor","url","ariaLabelledby","ariaId","hasError","hasErrors","setError","trackingTemplate","placeholderEnabled","templateExampleEnabled","setTrackingTemplate","urlTestTool","fn","originalView","_this$deps","pageContext","isInline","uurlLevels","Ad","CurrentCustomer","AdId","timeFormat","raw","startDate","endDate","post","gridDataParameters","DateRange","EndDate","StartDate","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","label","labelOperator","LabelOperatorCode","size","valueOperator","ValueOperatorCode","eventParams","isNumeric","operators","allParamEmpty","str","trim","_opportunity$Event$Cu","currentValues","suggestedValues","toString","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","Map","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","current","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","min","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","formatNotificationLocalizedKey","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","RecommendationStatusLightbox","results","close","showFilterBanner","getSessionStorage","clear","getOpportunityIdsFromResults","recommendationFilterBanner","ColumnChooser","_Component","categories","legacyI18n","isSplittingSelectedArea","cfg","searchStr","BackboneColumnChooser","simplified","setState","currentActive","helpers","updateView","isSaveNameEnabled","_this$props","external","BackboneInstanceWrapper","instance","Component","setDisabledColumns","exclusionSets","exclusionMap","node","option","isAvailable","resolveAvailableColumns","cloneSelected","available","filterByTimeGrain","timeGrain","categoryClone","forbiddenTimeGrains","configs","Linechart","attributesLimit","statisticsLimit","Barchart","selectedColumns","columnsLimit","resultColumns","resultCategory","selectedColumnsSet","forEach","ReportColumnChooser","_React$Component","valid","checkValid","errorMessages","renderType","_this$state","columnChooser","ErrorMessages","messages","output","reportSchema","Columns","pilotSets","piloted","pilotFiltered","pilotFilteredCategories","unmodifiedCategories","translatedColumns","currentLocale","getLocale","compareLocale","Intl","Collator","compare","optionClone","sort","a","b","translateColumns","sets","groupName","match","formatExclusionSets","ExclusionSets","rejectedColumns","isAllowed","filterByPilot","timeGrainFiltered","timeGrainFilteredCategories","newCategories","exclusionSetsGroups","offendingSets","exclusionSet","resolveExclusionConditions","_resolveChartsColumns","attributesSet","entry","selectedAttributes","selectedStatistics","_configs$renderType","resultCategories","_validate","_validate2","resolveChartsColumns","React","defaultProps","_props$reportSchema","_props$reportSchema$M","MandateColumnSet","MissingMandatoryColumnError","matches","isMandatoryColumnMissing","component","columnChooserStyle","ComponentSettings","getColumnChooserOverrideStyle","Wrapped","withLegacyI18n","withI18nConsumer","withPermissionContext","withDefaultStyles","components","isUIVnext","palette","helpbuttonStyle","merge","marginTop","marginBottom","boxShadow","paddingLeft","margin","padding","backgroundColor","lineHeight","border","fontFamily","fontSize","themePrimary","maxWidth","display","float","paddingRight","paddingTop","withPerfMarker","loadingContainer","textAlign","loadingMessage","minHeight","zIndex","Loading","core","blockStyle","uiblockerStyle","icon","Top","panel","borderRadius","panelHeader","borderBottom","borderTopLeftRadius","borderTopRightRadius","cursor","font","fontWeight","verticalAlign","panelBody","panelTitle","PanelBase","_PureComponent","expanded","helpLinkId","iconType","nextIconType","ReactPanel","onToggle","Heading","Glyphicon","iconStyle","glyph","Title","Body","collapsible","PureComponent","Wraped","baseStyle","borderTop","neutralSecondary","outline","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","actionTitle","labelTitle","valueTitle","metricType","TagId","popupId","ariaLabelContext","arialLabelText","selectType","placeholder","icon1","icon2","icon0"],"sourceRoot":""}