{"version":3,"file":"static/js/application.async.landing~c84e23cb.c7580e58.chunk.js","mappings":"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","sources":["../../../node_modules/@bingads-webui-campaign-legacy/error-alert/index.js","../../../node_modules/@bingads-webui-campaign-legacy/experiments-tab/experiment-budget-alert-loader.js","../../../node_modules/@bingads-webui-campaign-legacy/experiments-tab/experiment-date-utils-loader.js","../../../node_modules/@bingads-webui-campaign-legacy/griddownload/view/adapter.js","../../../node_modules/@bingads-webui-campaign-legacy/griddownload/view/loader.js","../../../node_modules/@bingads-webui-campaign-legacy/import-campaigns/view/import-failure-details-table.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-download-reports/load-users.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/model/index.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/view/data-manager.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/view/loading-panel.js","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/viewmodel/adgroupNameBidSelection.js","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/view/adgroupNameBidSelection.js","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/viewmodel/keywordSelection.js","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/view/keywordSelection.js","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/viewmodel/index.js","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-util/index.js","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/view/index.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/utilities/log-helper.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/view/opportunity/keyword.js","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-bidopportunity/viewmodel/index.js","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-bidopportunity/view/index.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/view/opportunity/bid.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/viewmodel/tab-content/list.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/view/tab-content/pagination-connector.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/view/tab-content/list.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/model/data-manager.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/view/tab-content/bid-adjustment.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/viewmodel/tab-content/adextensions.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/view/tab-content/adextensions.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/viewmodel/index.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/view/util.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/service/remarketing-bid-adjustment.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/view/main-panel.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/view/closing-panel.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/view/no-more-popover.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/view/no-more-callout-template.js","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/view/panel-manager.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/util/filters.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/util/locationTargetDeprecationHelper.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/util/locationTargetStatusPopup.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/viewmodel/locationTargetBid.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/viewmodel/locationBidCell.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/view/locationBidCell.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/view/locationTargetBid-config.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/view/locationTargetBid.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/viewmodel/locationTargets.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/viewmodel/locationManage.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/viewmodel/locationSearch.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/view/locationSearch.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/viewmodel/locationTargetGrid.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/viewmodel/locationPopupEditor.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/view/locationPopupEditor.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/view/locationTargetGrid.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/viewmodel/locationRecommendGrid.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/view/locationRecommendGrid.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/view/locationManage.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/viewmodel/locationTargetPhysicalIntent.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/view/locationTargetPhysicalIntent.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/view/locationTargetPhysicalIntentBidMode.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/view/locationTargets.js","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/viewmodel/physicalIntentOptions.js","../../../node_modules/@bingads-webui-campaign-legacy/primary-contact/index.js","../../../node_modules/@bingads-webui-campaign-legacy/scheduled-import/view/import-task-engine-error-helper.js","../../../node_modules/@bingads-webui-campaign-legacy/import-campaigns/view/summaryDetailsTable.js","../../../node_modules/@bingads-webui-campaign-legacy/scheduled-import/view/shared-column-configs/import-summary-col.js","../../../node_modules/@bingads-webui-campaign-legacy/shared-budget/model/legacy-grid.js","../../../node_modules/@bingads-webui-campaign-legacy/shared-budget/model/shared-budget.js","../../../node_modules/@bingads-webui-campaign-legacy/shared-budget/viewmodel/campaigns-grid-inline-shared-budget-editor.js","../../../node_modules/@bingads-webui-campaign-legacy/shared-budget/view/campaigns-grid-inline-shared-budget-editor.js","../../../node_modules/@bingads-webui-campaign-legacy/shared-budget/view/shared-budget-routing.js","../../../node_modules/@bingads-webui-campaign-legacy/shared-budget/viewmodel/shared-budget-switch-editor.js","../../../node_modules/@bingads-webui-campaign-legacy/shared-budget/view/shared-budget-switch-editor-grid-config.js","../../../node_modules/@bingads-webui-campaign-legacy/shared-budget/view/shared-budget-switch-editor.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/viewmodel/campaign-creation/bid-setting.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/bid-setting.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/viewmodel/campaign-creation/index.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/index.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/viewmodel/campaign-creation/shopping-settings.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/viewmodel/campaign-creation/product-group-editor.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/viewmodel/campaign-creation/query-editor.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/query-editor.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/product-group-editor.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/excluded-stores.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/shopping-settings-styles.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/shopping-settings.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/utils.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/viewmodel/cpg-adgroup/bid-section.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/view/cpg-adgroup/bid-boost.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/view/cpg-adgroup/search-bid.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/view/cpg-adgroup/bid-section.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/view/cpg-adgroup/bid-type.js","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/viewmodel/common/base.js","../../../node_modules/@bingads-webui-campaign-legacy/single-unlink-accounts/single-unlink-lightbox.js","../../../node_modules/@bingads-webui-campaign-legacy/single-unlink-accounts/index.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-errors/src/error-codes.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-errors/src/constants.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-errors/src/bulk-error-view.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-errors/src/bulk-error-view-with-modal.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-errors/src/error-handler.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-localization/src/common.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-localization/src/errors.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-localization/src/final-review.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-localization/src/legacy-localization.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-localization/src/manager-account.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-localization/src/pending-transfer-request-summary.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-localization/src/review-billing.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-localization/src/review-linking.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-localization/src/setup-billing.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-localization/src/takeover-billing.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-localization/src/transfer-summary.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-props/src/ccui-props.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-props/src/uet-props.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-props/src/shared-props.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-props/src/error-props.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/common-styles.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/footer-styles.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/progress-styles.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/wizard-styles.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/grid-styles/variables.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/grid-styles/header.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/grid-styles/body.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/grid-styles/columns.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/grid-styles/table.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/grid-styles/footer.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/grid-styles/global.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/grid-styles.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/grid-styles/sub-component.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/step-styles.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/account-popover-styles.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/entity-popover-styles.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-styles/src/reparenting-theme.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-utils/src/account-model-mapper.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-utils/src/io-utils.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-utils/src/billing-setting-utils.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-utils/src/constants.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-utils/src/payment-utils.js","../../../node_modules/@bingads-webui-campaign-react/account-reparenting-utils/src/string-utils.js","../../../node_modules/@bingads-webui-campaign-react/account-inactive-reasons/src/constants.js","../../../node_modules/@bingads-webui-campaign-react/account-inactive-reasons/i18n/legacy-keys.js","../../../node_modules/@bingads-webui-campaign-react/account-inactive-reasons/src/index.js","../../../node_modules/@bingads-webui-campaign-react/account-inactive-reasons/src/get-style.js","../../../node_modules/@bingads-webui-campaign-react/accounts-grid-factory/src/constants.js","../../../node_modules/@bingads-webui-campaign-react/accounts-grid-factory/src/accounts-grid-callout.js","../../../node_modules/@bingads-webui-campaign-react/accounts-grid-factory/src/common-events.js","../../../node_modules/@bingads-webui-campaign-react/accounts-grid-factory/src/accounts-grid-factory.js","../../../node_modules/@bingads-webui-campaign-react/accounts-grid-factory/src/filter-config.js","../../../node_modules/@bingads-webui-campaign-react/accounts-grid-factory/src/accounts-grid-factory-rjs.js","../../../node_modules/@bingads-webui-campaign-react/accounts-grid-factory/src/common-styles.js","../../../node_modules/@bingads-webui-campaign-react/accounts-summary-common/src/components/popover.js","../../../node_modules/@bingads-webui-campaign-react/accounts-summary-common/src/components/popover-with-lock.js","../../../node_modules/@bingads-webui-campaign-react/accounts-summary-common/src/components/action-callout.js","../../../node_modules/@bingads-webui-campaign-react/accounts-summary-common/src/components/direct-managers-callout.js","../../../node_modules/@bingads-webui-campaign-react/accounts-summary-common/src/style/common-grid-style.js","../../../node_modules/@bingads-webui-campaign-react/accounts-summary-common/src/style/direct-managers-callout-style.js","../../../node_modules/@bingads-webui-campaign-react/accounts-summary-common/src/style/toolbar-blocked-icon-style.js","../../../node_modules/@bingads-webui-campaign-react/accounts-summary-common/src/style/action-callout-style.js","../../../node_modules/@bingads-webui-campaign-react/accounts-summary-common/src/style/link-account-button-style.js","../../../node_modules/@bingads-webui-campaign-react/accounts-summary-common/src/navigation.js","../../../node_modules/@bingads-webui-campaign-react/accounts-summary-common/src/utils.js","../../../node_modules/@bingads-webui-campaign-react/accounts-summary-common/src/toolbar-configs.js","../../../node_modules/@bingads-webui-campaign-react/accounts-welcome-bar/src/accounts-welcome-bar.js","../../../node_modules/@bingads-webui-campaign-react/accounts-welcome-bar/src/styles/accounts-welcome-bar-styles.js","../../../node_modules/@bingads-webui-campaign-legacy/import-campaigns/template/import-failure-details-table.pug","../../../node_modules/@bingads-webui-campaign-legacy/import-campaigns/template/lastImportTable/summaryDetailsTable.pug","../../../node_modules/@bingads-webui-campaign-legacy/import-campaigns/template/lastImportTable/toolTip.pug","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/template/closing-panel.pug","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/template/loading-panel.pug","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/template/main-panel.pug","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/template/more-menu-content.pug","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/template/more-menu.pug","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/template/no-more-popover-content.pug","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/template/no-more-popover.pug","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/template/tab-content/adextension-tile-content.pug","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/template/tab-content/adextension-tile-title.pug","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/template/tab-content/adextensions.pug","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/template/tab-content/footnote.pug","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/template/tab-content/list.pug","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/template/tab-content/pagination.pug","../../../node_modules/@bingads-webui-campaign-legacy/inline-opportunity/template/tab-content/strong.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationBidCell.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationManage.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationPopupEditor.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationRecommendGrid.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationSearch.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationTargetBid.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationTargetGrid.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationTargetGridLocationColumnTemplate.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationTargetGridLocationColumnTitleLink.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationTargetGridRemoveColumnTemplate.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationTargetPhysicalIntent.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationTargetPhysicalIntentBidMode.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationTargetStatus.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationTargetStatusPopup.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationTargets-vnext.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/locationTargets.pug","../../../node_modules/@bingads-webui-campaign-legacy/location-targets/template/pagination-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-bidopportunity/template/index.pug","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/template/adgroupNameBidSelection-source.pug","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/template/adgroupNameBidSelection.pug","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/template/index-source.pug","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/template/index.pug","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/template/keywordSelection-source.pug","../../../node_modules/@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/template/keywordSelection.pug","../../../node_modules/@bingads-webui-campaign-legacy/scheduled-import/template/creator-column.pug","../../../node_modules/@bingads-webui-campaign-legacy/scheduled-import/template/freq-column.pug","../../../node_modules/@bingads-webui-campaign-legacy/scheduled-import/template/import-log-error-details.pug","../../../node_modules/@bingads-webui-campaign-legacy/scheduled-import/template/import-log-name.pug","../../../node_modules/@bingads-webui-campaign-legacy/scheduled-import/template/import-log-summary.pug","../../../node_modules/@bingads-webui-campaign-legacy/shared-budget/template/budget-status-header.pug","../../../node_modules/@bingads-webui-campaign-legacy/shared-budget/template/campaigns-grid-inline-shared-budget-editor.pug","../../../node_modules/@bingads-webui-campaign-legacy/shared-budget/template/column-status-budget.pug","../../../node_modules/@bingads-webui-campaign-legacy/shared-budget/template/shared-budget-switch-editor.pug","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/template/campaign-creation/bid-setting.pug","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/template/campaign-creation/index.pug","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/template/campaign-creation/product-group-editor.pug","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/template/campaign-creation/query-editor.pug","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/template/campaign-creation/shopping-settings.pug","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/template/cpg-adgroup/addon-input.pug","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/template/cpg-adgroup/bid-section.pug","../../../node_modules/@bingads-webui-campaign-legacy/shopping-campaign/template/cpg-adgroup/bid-type.pug","../../../node_modules/@bingads-webui-campaign-legacy/single-unlink-accounts/template/single-unlink-lightbox.pug"],"sourcesContent":["/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nvar alertIds = {};\r\nfunction showUnique(message) {\r\n if (alertIds[message]) {\r\n return;\r\n }\r\n alertIds[message] = window.App.views.alertCenter.showError(message);\r\n}\r\nfunction _processErrors(errors) {\r\n if (_.isString(errors) && errors.trim() !== '') {\r\n showUnique(errors);\r\n } else if (_.isArray(errors)) {\r\n var strErrors = [];\r\n _.each(errors, function (item) {\r\n var message;\r\n if (_.isString(item) && item.trim() !== '') {\r\n message = item;\r\n } else if (_.isObject(item) && item.Message) {\r\n message = item.Message;\r\n }\r\n if (!!message && !_.contains(strErrors, message)) {\r\n showUnique(message);\r\n strErrors.push(message);\r\n }\r\n });\r\n } else if (_.isObject(errors) && errors.Message) {\r\n showUnique(errors.Message);\r\n }\r\n}\r\nfunction _appendErrorSummary(errors) {\r\n if (_.isUndefined(errors)) {\r\n return;\r\n }\r\n _processErrors(errors);\r\n}\r\nfunction clearErrorSummary() {\r\n _.each(alertIds, function (id) {\r\n window.App.views.alertCenter.dismiss(id);\r\n });\r\n alertIds = {};\r\n}\r\nfunction showJsonErrors(errors) {\r\n if (!errors) {\r\n return;\r\n }\r\n _appendErrorSummary(errors);\r\n}\r\nexport default {\r\n clearErrorSummary: clearErrorSummary,\r\n showJsonErrors: showJsonErrors,\r\n _appendErrorSummary: _appendErrorSummary,\r\n _processErrors: _processErrors\r\n};\r\n\r\n","import jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport appState from '@bingads-webui-component-legacy/state/index';\r\n// eslint-disable-next-line\r\nimport _bingads_webui_component_legacy_legacy_router_index from '@bingads-webui-component-legacy/legacy-router/index';\r\n// eslint-disable-next-line\r\nconst { legacyRouter } = _bingads_webui_component_legacy_legacy_router_index;\r\nimport { getExperimentBudgetAlert } from '@bingads-webui-campaign/experiment-budget-alert';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/experiments-tab');\r\n\r\nexport const ExperimentBudgetAlert = getExperimentBudgetAlert({\r\n i18n,\r\n jsdata,\r\n appState,\r\n legacyRouter,\r\n});\r\n","import { getDateUtils } from '@bingads-webui-campaign/experiment-shared';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/experiments-tab');\r\n\r\nexport default getDateUtils({ i18n });\r\n","import _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport {\r\n InlineDownloadBaseDownload,\r\n InlineDownloadCampaignODataRepository,\r\n InlineDownloadForm,\r\n} from '@bingads-webui-campaign-legacy/griddownload/view/loader';\r\nimport PageContext from '@bingads-webui-static-legacy/page-context';\r\n\r\nexport class DownloadViewV1 extends InlineDownloadBaseDownload {\r\n initialize({\r\n isForVNext,\r\n p$daterange,\r\n\r\n customDownloadService,\r\n\r\n odataColumnNames,\r\n localizedHeaders,\r\n filterUrlParam,\r\n entity,\r\n // DEPRECATED: use processReportRule instead\r\n customPayloadParams,\r\n processReportRule = (ReportRule) => _.extend({}, ReportRule, customPayloadParams),\r\n gridId,\r\n\r\n // DEPRECATED: use data instead\r\n segmentType,\r\n totalRecordCount,\r\n downloadFormats,\r\n segmentationTypes,\r\n validateSegmentType,\r\n isFeedbackEnabled,\r\n data = {\r\n SegmentationTypes: segmentType ? [segmentType] : [],\r\n },\r\n }) {\r\n const repository = _.isFunction(customDownloadService) ? {\r\n download({\r\n Format,\r\n SegmentationTypes,\r\n }) {\r\n customDownloadService(Format, SegmentationTypes[0]);\r\n return Promise.resolve();\r\n },\r\n } : new InlineDownloadCampaignODataRepository({\r\n isForVNext,\r\n p$daterange,\r\n odataColumnNames,\r\n localizedHeaders,\r\n filterUrlParam,\r\n entity,\r\n processReportRule,\r\n });\r\n\r\n super.initialize({\r\n isForVNext,\r\n gridId,\r\n totalRecordCount,\r\n repository,\r\n downloadFormats,\r\n segmentationTypes,\r\n validateSegmentType,\r\n isFeedbackEnabled,\r\n\r\n data,\r\n });\r\n }\r\n}\r\n\r\n// For piloting Inline Download V2 one grid by one grid\r\nexport class DownloadViewV2 extends InlineDownloadForm {\r\n initialize({\r\n isForVNext,\r\n p$daterange,\r\n\r\n customDownloadService,\r\n\r\n odataColumnNames,\r\n localizedHeaders,\r\n filterUrlParam,\r\n serializedFilter,\r\n entity,\r\n processReportRule,\r\n gridId,\r\n\r\n // DEPRECATED: use data instead\r\n segmentType,\r\n totalRecordCount,\r\n downloadFormats,\r\n segmentationTypes,\r\n validateSegmentType,\r\n isFeedbackEnabled,\r\n data = {\r\n SegmentationTypes: segmentType ? [segmentType] : [],\r\n },\r\n }) {\r\n if (PageContext.Permissions.IsCustomerHierarchyEnabled) {\r\n _.extend(data, {IsCustomerHierachyRequest: true});\r\n }\r\n const repository = _.isFunction(customDownloadService) ? {\r\n download({\r\n Format,\r\n SegmentationTypes,\r\n }) {\r\n customDownloadService(Format, SegmentationTypes[0]);\r\n return Promise.resolve();\r\n },\r\n } : new InlineDownloadCampaignODataRepository({\r\n odataColumnNames,\r\n localizedHeaders,\r\n filterUrlParam,\r\n serializedFilter,\r\n entity,\r\n processReportRule,\r\n\r\n isForVNext,\r\n p$daterange,\r\n });\r\n\r\n super.initialize({\r\n isForVNext,\r\n gridId,\r\n totalRecordCount,\r\n repository,\r\n downloadFormats,\r\n segmentationTypes,\r\n validateSegmentType,\r\n isFeedbackEnabled,\r\n\r\n data,\r\n\r\n allUsersType: entity === 'Account' ? 'Customer' : 'Account',\r\n });\r\n }\r\n}\r\n\r\nexport const DownloadView =\r\n PageContext.Permissions.IsInlineDownloadReportV2Enabled ?\r\n DownloadViewV2 :\r\n DownloadViewV1;\r\n","/* eslint-disable new-cap */\r\nimport { getInlineDownloadBaseDownloadV1Loader } from '@bingads-webui-campaign/inline-download-base-download-v1';\r\nimport { getInlineDownloadForm, getInlineDownloadFormReact } from '@bingads-webui-campaign/inline-download-form';\r\nimport {\r\n getInlineDownloadCampaignODataRepository,\r\n DownloadReportFunctions,\r\n UpdateRulesFunctions,\r\n} from '@bingads-webui-campaign/inline-download-campaign-odata-repository';\r\n\r\n// Import the dependencies to ensure they are loaded\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport summaryGridsActionMap from '@bingads-webui-static-legacy/summary/SummaryGridsActionMap';\r\nimport cm from '@bingads-webui-campaign-legacy/cache-manager/index';\r\nimport loadUsers from '@bingads-webui-campaign-legacy/inline-download-reports/load-users';\r\nimport { getODataErrors } from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport userVoice from '@bingads-webui-static-legacy/uservoice-service';\r\nimport scheduler from '@bingads-webui-static-legacy/async-scheduler';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/griddownload');\r\nconst inlineDownLoadFormi18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!@bingads-webui-campaign/inline-download-form');\r\nconst inlineOdataRepositoryi18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!@bingads-webui-campaign/inline-download-campaign-odata-repository');\r\nconst s$ReportRule = window.globalLegacySchema.get('ReportRule');\r\nconst s$ReportEmailRule = window.globalLegacySchema.get('ReportEmailRule');\r\nconst s$i18n = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\n\r\nexport const InlineDownloadBaseDownload = getInlineDownloadBaseDownloadV1Loader({\r\n i18n,\r\n pageContext,\r\n actionMap: summaryGridsActionMap,\r\n userVoice,\r\n s$ReportRule,\r\n s$i18n,\r\n});\r\n\r\nexport const InlineDownloadForm = getInlineDownloadForm({\r\n pageContext,\r\n actionMap: summaryGridsActionMap,\r\n s$ReportRule,\r\n i18n: inlineDownLoadFormi18n,\r\n s$i18n,\r\n loadUsers,\r\n});\r\n\r\nexport const InlineDownloadReactForm = getInlineDownloadFormReact({\r\n pageContext,\r\n actionMap: summaryGridsActionMap,\r\n s$ReportRule,\r\n i18n: inlineDownLoadFormi18n,\r\n s$i18n,\r\n loadUsers,\r\n});\r\n\r\nexport const InlineDownloadCampaignODataRepository = getInlineDownloadCampaignODataRepository({\r\n i18n: inlineOdataRepositoryi18n,\r\n state,\r\n edm,\r\n odata,\r\n jsdata,\r\n cm,\r\n pageContext,\r\n getODataErrors,\r\n scheduler,\r\n});\r\n\r\nconst downloadFunction = new DownloadReportFunctions({\r\n i18n: inlineOdataRepositoryi18n,\r\n edm,\r\n odata,\r\n jsdata,\r\n state,\r\n cm,\r\n pageContext,\r\n getODataErrors,\r\n scheduler,\r\n});\r\n\r\nconst updateRulesFunctions = new UpdateRulesFunctions({\r\n s$ReportEmailRule,\r\n edm,\r\n jsdata,\r\n i18n,\r\n pageContext,\r\n getODataErrors,\r\n});\r\n\r\nexport const downloadReportEmailRule = downloadFunction.downloadReportEmailRule;\r\n\r\nexport const downloadReportEmailRuleExecution = downloadFunction.downloadReportEmailRuleExecution;\r\n\r\nexport const updateReportEmailRule = updateRulesFunctions.updateReportEmailRule;\r\n\r\nexport const updateReportEmailRuleState = updateRulesFunctions.updateReportEmailRuleState;\r\n\r\nexport const deleteReportEmailRules = updateRulesFunctions.deleteReportEmailRules;\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport template from '@bingads-webui-campaign-legacy/import-campaigns/template/import-failure-details-table.pug';\r\nimport humanize from '@bingads-webui-component-legacy/humanize/number';\r\nimport * as safeJson from '@bingads-webui/safe-json';\r\n/**\r\n * @param {integer} reason - error code\r\n * @param {object} data - Sample:\r\n * {\r\n * ErrorCode: 17015,\r\n * ErrorDetail: [\r\n * {\r\n * ImportedCount: 100,\r\n * LimitCount: 2000000,\r\n * EntityDescription: \"Negative Keywords\",\r\n * HasExceededLimit: false\r\n * }\r\n * ]\r\n * }\r\n * @param {object} i18n - localization\r\n * @returns {object} - Sample:\r\n * {\r\n * columns: ['', 'How many you want to import', 'Maximum import limit'],\r\n * data: [{\r\n * values: ['Negative Keywords', 100, 2000000],\r\n * hasError: false\r\n * }]\r\n * };\r\n */\r\nfunction formatData(reason, data, i18n) {\r\n const failureReasonsColumnsMapping = {\r\n // 17015 ImportTotalRowsExceedLimit\r\n 17015: [{\r\n columnName: '',\r\n field: 'EntityDescription',\r\n }, {\r\n columnName: i18n.getString('Import_ErrorTable_ImportedCount'),\r\n field: 'ImportedCount',\r\n }, {\r\n columnName: i18n.getString('Import_ErrorTable_LimitCount'),\r\n field: 'LimitCount',\r\n }],\r\n };\r\n\r\n const entityLocalizedKeyMapping = {\r\n 'Campaigns': 'Import_ImportSummary_Campaigns',\r\n 'Adgroups': 'Import_ImportSummary_AdGroups',\r\n 'Ad Extension': 'Import_ImportSummary_AdExtensions',\r\n 'Ads': 'Import_ImportSummary_Ads',\r\n 'Keywords': 'Import_ImportSummary_Keywords',\r\n 'Negative Keywords': 'Import_ErrorTable_NegativeKeywords',\r\n 'Shared Negative Keywords': 'Import_ImportSummary_SharedNegativeKeyword',\r\n 'Campaign Negative Keyword List Associations': 'Import_CampaignNegativeKeywordListAssociation',\r\n 'NegativeSites': 'Import_ErrorTable_NegativeSites',\r\n 'ProductScopes': 'Import_ErrorTable_ProductScopes',\r\n 'Product Partitions': 'Import_ErrorTable_ProductPartitions',\r\n 'Targets': 'CampaignImport_ImportSummaryTargets',\r\n 'Labels': 'Import_ErrorTable_Labels',\r\n 'CampaignLabels': 'Import_ErrorTable_CampaignLabels',\r\n 'AdGroupLabels': 'Import_ErrorTable_AdGroupLabels',\r\n 'AdLabels': 'Import_ErrorTable_AdLabels',\r\n 'KeywordLabels': 'Import_ErrorTable_KeywordLabels',\r\n 'Other items': 'Import_ImportSummary_Others',\r\n 'Campaign DSA Exclusion': 'Import_ImportSummary_CampaignDSACriterion',\r\n 'AdGroup DSA Auto Tartget and Exclusion': 'Import_ImportSummary_AdGroupDSACriterion',\r\n };\r\n\r\n let entityDescriptionMapping = {};\r\n\r\n _.each(entityLocalizedKeyMapping, (val, key) => {\r\n entityDescriptionMapping[key] = i18n.getString(val);\r\n });\r\n\r\n let result = {};\r\n\r\n if (!data) {\r\n return result;\r\n }\r\n\r\n let reasonColumnsMapping = failureReasonsColumnsMapping[reason];\r\n let failureDetailsData = safeJson.parseSync(data) || []; //eslint-disable-line\r\n\r\n if (reasonColumnsMapping && reasonColumnsMapping.length > 0 && failureDetailsData && failureDetailsData.length > 0) {\r\n result.columns = _.pluck(reasonColumnsMapping, 'columnName');\r\n result.data = _.map(failureDetailsData, (oneTypeFailureDetails) => {\r\n return {\r\n values: _.chain(reasonColumnsMapping).pluck('field').map((columnField) => oneTypeFailureDetails[columnField]).value(),\r\n hasError: oneTypeFailureDetails.HasExceededLimit,\r\n };\r\n });\r\n }\r\n\r\n _.each(result.data, (rowData) => {\r\n rowData.formattedValues = _.map(rowData.values, (val) => {\r\n let tmp = val;\r\n\r\n if (_.isNumber(val)) {\r\n tmp = humanize.format(val);\r\n } else if (_.isString(val)) {\r\n tmp = entityDescriptionMapping[tmp] || tmp;\r\n }\r\n\r\n return tmp || i18n.getString('Import_LastImport_Dash');\r\n });\r\n });\r\n\r\n return result;\r\n}\r\n\r\nexport default class ImportFailureDetailsTableView extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = options;\r\n\r\n if (!options.message) {\r\n throw new Error('invalid arguments passed to ImportFailureDetailsTableView');\r\n }\r\n }\r\n\r\n render() {\r\n this.$el.html(template(formatData(this.options.failureReason, this.options.data, this.options.i18n)));\r\n\r\n this.$('.import-error-message').html(this.options.message);\r\n\r\n return this;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\n\r\nexport default function loadUsers({\r\n allUsersType,\r\n}) {\r\n return jsdata.ClientCenterUser.findAll({}, {\r\n url: '/campaign/users/load',\r\n adapter: 'legacy',\r\n data: allUsersType === 'Customer' ? {\r\n cid: state.get('customer_id'),\r\n uid: state.get('user_id'),\r\n } : {\r\n cid: state.get('customer_id'),\r\n uid: state.get('user_id'),\r\n aid: state.get('account_id'),\r\n },\r\n }).then((users) => {\r\n if (_.isArray(users)) {\r\n return users;\r\n }\r\n\r\n const error = new Error();\r\n\r\n error.response = users;\r\n throw error;\r\n });\r\n}\r\n","/* eslint-disable */\r\nimport _ from \"underscore\";\r\nimport azureUrlRewrite from \"@bingads-webui-static-legacy/app/component/azureUrlRewrite\";\r\nvar pageSize = 3;\r\nvar MatchType = {\r\n Exact: 1,\r\n Phrase: 2,\r\n Broad: 3,\r\n Content: 5\r\n};\r\nvar OpportunityType = {\r\n Keyword: \"CampaignContextKeywordOpportunity\",\r\n FPBid: \"FirstPageBidOpportunity\",\r\n MLBid: \"MainLineBidOpportunity\",\r\n BroadMatch: \"BroadMatchKeywordOpportunity\",\r\n BMA: \"BroadMatchAdoptionOpportunity\",\r\n ML1Bid: \"MainLine1BidOpportunity\",\r\n LowerBid: \"LowerBidOpportunity\",\r\n BMM: \"BroadMatchModifierKeywordOpportunity\",\r\n LBA: \"LocationBidAdjustmentOpportunity\",\r\n AdExtensions: [\"SiteLinkOpportunity\", \"CalloutOpportunity\"],\r\n RBA: \"RemarketingBidAdjustmentOpportunity\",\r\n SBA: \"AdSchedulingBidAdjustmentOpportunity\",\r\n KBA: \"KeywordBidAdjustmentOpportunity\"\r\n};\r\nvar TabLabelTextKeys = _.constant({\r\n CampaignContextKeywordOpportunity: \"InlineOpportunity_MainPanel_Tab_Keywords\",\r\n FirstPageBidOpportunity: \"InlineOpportunity_MainPanel_Tab_FirstPageBids\",\r\n MainLineBidOpportunity: \"InlineOpportunity_MainPanel_Tab_MainlineBids\",\r\n BroadMatchKeywordOpportunity: \"InlineOpportunity_MainPanel_Tab_BroadMatch\",\r\n BroadMatchAdoptionOpportunity: \"InlineOpportunity_MainPanel_Tab_BMA\",\r\n MainLine1BidOpportunity: \"InlineOpportunity_MainPanel_Tab_Mainline1Bids\",\r\n LowerBidOpportunity: \"InlineOpportunity_MainPanel_Tab_LowerBids\",\r\n BroadMatchModifierKeywordOpportunity: \"InlineOpportunity_MainPanel_Tab_BMM\",\r\n LocationBidAdjustmentOpportunity: \"InlineOpportunity_MainPanel_Tab_LBA\",\r\n SiteLinkOpportunity: \"InlineOpportunity_MainPanel_Tab_Sitelink_Extension\",\r\n CalloutOpportunity: \"InlineOpportunity_MainPanel_Tab_Callout_Extension\",\r\n RemarketingBidAdjustmentOpportunity: \"InlineOpportunity_MainPanel_Tab_RBA\",\r\n AdSchedulingBidAdjustmentOpportunity: \"InlineOpportunity_MainPanel_Tab_SBA\",\r\n KeywordBidAdjustmentOpportunity: \"InlineOpportunity_MainPanel_Tab_KBA\"\r\n});\r\nvar isMultiPage = {\r\n CampaignContextKeywordOpportunity: true,\r\n FirstPageBidOpportunity: true,\r\n MainLineBidOpportunity: true,\r\n BroadMatchKeywordOpportunity: true,\r\n BroadMatchAdoptionOpportunity: true,\r\n MainLine1BidOpportunity: true,\r\n LowerBidOpportunity: true,\r\n BroadMatchModifierKeywordOpportunity: true,\r\n RemarketingBidAdjustmentOpportunity: true,\r\n LocationBidAdjustmentOpportunity: false,\r\n AdSchedulingBidAdjustmentOpportunity: false,\r\n KeywordBidAdjustmentOpportunity: false,\r\n SiteLinkOpportunity: false,\r\n CalloutOpportunity: false\r\n};\r\nvar Urls = {\r\n FetchInlineOpportunity: \"/campaign/inlineopportunity/FetchInlineOpportunities\",\r\n ViewOpportunity: \"/campaign/inlineopportunity/ViewOpportunity\",\r\n ViewOpportunityAtCurrentPage: \"/campaign/inlineopportunity/ViewOpportunityAtCurrentPage\",\r\n Apply: \"/campaign/inlineopportunity/Apply\",\r\n LoadBidLandscapes: \"/campaign/bidlandscape/FetchKeywordBidLandscapeDataForkeywords\",\r\n FetchAdgroupInfo: \"/campaign/inlineopportunity/FetchAdgroupsForCampaign\"\r\n};\r\nvar TabIsNewFeature = {\r\n KeywordBidAdjustmentOpportunity: true,\r\n RemarketingBidAdjustmentOpportunity: true,\r\n LocationBidAdjustmentOpportunity: true,\r\n AdSchedulingBidAdjustmentOpportunity: true,\r\n SiteLinkOpportunity: true,\r\n CalloutOpportunity: true\r\n};\r\nexport default {\r\n pageSize: pageSize,\r\n MatchType: MatchType,\r\n OpportunityType: OpportunityType,\r\n Urls: Urls,\r\n TabLabelTextKeys: TabLabelTextKeys(),\r\n isMultiPage: isMultiPage,\r\n TabIsNewFeature: TabIsNewFeature\r\n};\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport legacy$ from 'jquery';\r\nimport Promise from 'bluebird';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport * as metricFormatter from '@bingads-webui-campaign-legacy/performance-metric-formatter/index';\r\nimport config from '@bingads-webui-campaign-legacy/inline-opportunity/model/index';\r\nimport withUiBlock from '@bingads-webui-component-legacy/uiblocker/index';\r\nvar i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/inline-opportunity');\r\nvar isKeywordsOptSourceEnhancementEnabled = pageContext.Permissions.IsKeywordsOptSourceEnhancementEnabled;\r\nvar inlineOpportunities = {}, adgroupsForCampaignCache = {}, loadingTasks = {}, bidlandscapes = {}, inlineOpportunityPrefix = 'inlineOpportunity', bidlandscapePrefix = 'bidlandscape', adgroupPrefix = 'adgroup', applyPrefix = 'apply', timeout = 100000, batchLoadLandscapeLength = 9, simpleViewPageSize = 3;\r\nfunction defaultOptResponse() {\r\n return {\r\n opportunityTypes: [],\r\n moreTypeCount: 0,\r\n opportunityTypeResults: {}\r\n };\r\n}\r\nfunction defaultOptApplyResult() {\r\n return {\r\n SuccessCount: 0,\r\n FailedCount: 0,\r\n FailedReasons: []\r\n };\r\n}\r\nfunction convertInlineOpportunity(campaignId, campaignName, data) {\r\n var inlineResult = defaultOptResponse();\r\n if (!_.isUndefined(data.Opportunities) && _.size(data.Opportunities) > 0) {\r\n _.each(data.Opportunities, function (optResult) {\r\n if (_.size(optResult) > 0) {\r\n var opttype = optResult[0].OpportunityType;\r\n var typeResult = {\r\n ids: [],\r\n idOpportunityMap: {}\r\n };\r\n _.each(optResult, function (opt) {\r\n var result = convertOneInlineOpportunity(campaignId, campaignName, opt, false);\r\n if (opttype === config.OpportunityType.Keyword) {\r\n var childOpts = {\r\n ids: [],\r\n idOpportunityMap: {}\r\n };\r\n _.each(opt.ChildOpportunities, function (childOpt) {\r\n var sonChild = convertOneInlineOpportunity(campaignId, campaignName, childOpt, true);\r\n childOpts.idOpportunityMap[sonChild.Id] = sonChild;\r\n childOpts.ids.push(sonChild.Id);\r\n });\r\n result.childOpts = childOpts;\r\n }\r\n typeResult.idOpportunityMap[result.Id] = result;\r\n typeResult.ids.push(result.Id);\r\n });\r\n inlineResult.opportunityTypes.push(opttype);\r\n inlineResult.opportunityTypeResults[opttype] = typeResult;\r\n }\r\n });\r\n }\r\n if (!_.isUndefined(data.MoreTypeCount) && _.isNumber(data.MoreTypeCount)) {\r\n inlineResult.moreTypeCount = data.MoreTypeCount;\r\n }\r\n return inlineResult;\r\n}\r\nfunction convertOneInlineOpportunity(campaignId, campaignName, opt, sonNode) {\r\n var result = {\r\n rawData: opt,\r\n Id: opt.OpportunityId,\r\n OpportunityId: opt.OpportunityId + '',\r\n OpportunityType: opt.OpportunityType,\r\n BatchId: opt.BatchId,\r\n CampaignId: campaignId,\r\n CampaignName: campaignName,\r\n SuggestedNewValue: i18n.formatDecimalToFixed(opt.SuggestedNewValue),\r\n AdgroupId: opt.AdgroupId,\r\n AdgroupName: opt.AdgroupName,\r\n EstimatedKPI: opt.EstimatedKPI,\r\n HasBidLandscape: opt.HasBidLandscape,\r\n Sources: opt.Sources\r\n };\r\n if (!sonNode) {\r\n var estimatedKPI = opt.EstimatedKPI;\r\n result = _.extend(result, {\r\n EstimatedImpDelta: metricFormatter.formatImpressions(estimatedKPI.ImprDelta),\r\n EstimatedCostDelta: metricFormatter.formatSpendWithOutCurrencySymbolAsExistingBehavior(estimatedKPI.CostDelta),\r\n EstimatedClickDelta: metricFormatter.formatClicks(estimatedKPI.ClickDelta),\r\n Clicks: metricFormatter.formatClicks(estimatedKPI.Clicks),\r\n Cost: metricFormatter.formatSpendWithOutCurrencySymbolAsExistingBehavior(estimatedKPI.Cost),\r\n Impression: metricFormatter.formatImpressions(estimatedKPI.Impression),\r\n EstimatedImp: metricFormatter.formatImpressions(estimatedKPI.ImprDelta + estimatedKPI.Impression),\r\n EstimatedCost: metricFormatter.formatSpendWithOutCurrencySymbolAsExistingBehavior(estimatedKPI.CostDelta + estimatedKPI.Cost),\r\n EstimatedClicks: metricFormatter.formatClicks(estimatedKPI.ClickDelta + estimatedKPI.Clicks),\r\n CTR: metricFormatter.formatCTR(estimatedKPI.CTR),\r\n EstimatedCTRDelta: metricFormatter.formatCTR(estimatedKPI.CTRDelta),\r\n EstimatedCTR: metricFormatter.formatCTR(estimatedKPI.CTR + estimatedKPI.CTRDelta),\r\n EstimatedKPI: estimatedKPI\r\n });\r\n }\r\n if (!sonNode) {\r\n if (opt.EstimatedKPI && opt.EstimatedKPI.CPC && opt.EstimatedKPI.CPCDelta) {\r\n result = _.extend(result, {\r\n CPC: metricFormatter.formatAverageCPC(opt.EstimatedKPI.CPC),\r\n EstimatedCPCDelta: metricFormatter.formatAverageCPC(opt.EstimatedKPI.CPCDelta)\r\n });\r\n }\r\n if (opt.EstimatedKPI && opt.EstimatedKPI.EstimatedConversionKPI && opt.EstimatedKPI.EstimatedConversionKPI.ConversionsDelta && opt.EstimatedKPI.EstimatedConversionKPI.Conversions) {\r\n result = _.extend(result, {\r\n Conversion: metricFormatter.formatConversions(opt.EstimatedKPI.EstimatedConversionKPI.Conversions),\r\n EstimatedConversionDelta: metricFormatter.formatConversions(opt.EstimatedKPI.EstimatedConversionKPI.ConversionsDelta),\r\n EstimatedConversion: metricFormatter.formatConversions(opt.EstimatedKPI.EstimatedConversionKPI.Conversions + opt.EstimatedKPI.EstimatedConversionKPI.ConversionsDelta)\r\n });\r\n }\r\n if (opt.EstimatedKPI && opt.EstimatedKPI.EstimatedConversionKPI && opt.EstimatedKPI.EstimatedConversionKPI.CPADelta && opt.EstimatedKPI.EstimatedConversionKPI.CPA) {\r\n result = _.extend(result, {\r\n CPA: metricFormatter.formatCPA(opt.EstimatedKPI.EstimatedConversionKPI.CPA),\r\n EstimatedCPADelta: metricFormatter.formatCPA(opt.EstimatedKPI.EstimatedConversionKPI.CPADelta),\r\n EstimatedCPA: metricFormatter.formatCPA(opt.EstimatedKPI.EstimatedConversionKPI.CPA + opt.EstimatedKPI.EstimatedConversionKPI.CPADelta)\r\n });\r\n }\r\n }\r\n if (!sonNode && opt.OpportunityType === config.OpportunityType.Keyword) {\r\n var firstChild = _.first(opt.ChildOpportunities);\r\n result = _.extend(result, {\r\n Id: _.result(firstChild, 'OpportunityId'),\r\n OpportunityId: String(_.result(firstChild, 'OpportunityId')),\r\n NewAdgroupId: opt.AdgroupId,\r\n OpportunityCount: opt.OpportunityCount,\r\n Theme: opt.Theme\r\n });\r\n } else if (!sonNode && opt.OpportunityType === config.OpportunityType.RBA) {\r\n result = _.extend(result, {\r\n Multiplier: opt.Multiplier,\r\n AdGroupList: opt.AdGroupList,\r\n AudienceName: opt.AudienceName,\r\n AudienceId: opt.AudienceId,\r\n AdGroupCount: opt.AdGroupCount\r\n });\r\n } else if (!sonNode && (opt.OpportunityType === config.OpportunityType.BroadMatch || opt.OpportunityType === config.OpportunityType.BMA)) {\r\n result = _.extend(result, {\r\n KeywordName: getKeywordNameWithMatchType(opt, opt.ReferenceKeywordMatchType),\r\n MatchType: opt.ReferenceKeywordMatchType,\r\n SearchQueries: opt.SearchQueryStrings\r\n });\r\n } else if (!sonNode && opt.OpportunityType === config.OpportunityType.LowerBid) {\r\n result = _.extend(result, {\r\n Multiplier: opt.Multiplier\r\n });\r\n } else if (!sonNode && opt.OpportunityType === config.OpportunityType.BMM) {\r\n result = _.extend(result, {\r\n KeywordName: getKeywordNameWithMatchType(opt, config.MatchType.Broad),\r\n ReferenceKeywordName: getFullKeywordWithMatchType(opt.ReferenceKeyword, opt.ReferenceKeywordMatchType),\r\n MatchType: opt.ReferenceKeywordMatchType\r\n });\r\n } else if (!sonNode && opt.OpportunityType === config.OpportunityType.LBA) {\r\n result = _.extend(result, {\r\n EstimatedKPI: opt.EstimatedKPI,\r\n GeoLevelId: opt.GeoLevelId,\r\n Multiplier: opt.Multiplier,\r\n LocationNames: opt.LocationNames\r\n });\r\n } else if (!sonNode && opt.OpportunityType === config.OpportunityType.KBA) {\r\n result = _.extend(result, {\r\n ConversionRate: opt.ConversionRate,\r\n KeywordMatchType: opt.KeywordMatchType,\r\n KeywordName: opt.KeywordName\r\n });\r\n } else if (!sonNode && opt.OpportunityType === config.OpportunityType.SBA) {\r\n result = _.extend(result, {\r\n Multiplier: opt.Multiplier,\r\n PeriodType: opt.PeriodType,\r\n FromHour: opt.FromHour,\r\n ToHour: opt.ToHour\r\n });\r\n } else {\r\n result = _.extend(result, {\r\n KeywordName: getKeywordNameWithMatchType(opt, opt.MatchType),\r\n MatchType: opt.MatchType,\r\n KeywordId: opt.KeywordId\r\n });\r\n }\r\n if (opt.OpportunityType != config.OpportunityType.Keyword) {\r\n result.CurrentValue = i18n.formatDecimalToFixed(opt.CurrentValue);\r\n }\r\n return result;\r\n}\r\nfunction fetchInlineOpportunity(campaignId, campaignName) {\r\n if (_.has(inlineOpportunities, campaignId) && !_.isUndefined(inlineOpportunities[campaignId]) && _.isObject(inlineOpportunities[campaignId])) {\r\n return notifyResult(inlineOpportunities[campaignId]);\r\n }\r\n var p$inlineOpportunity = new Promise(function (resolve, reject) {\r\n var params = {};\r\n params['campaignId'] = campaignId;\r\n var taskPrefix = 'inlineOpportunity';\r\n var success = false;\r\n var task = legacy$.advertiser.ajaxPost({\r\n url: config.Urls.FetchInlineOpportunity + legacy$.advertiser.getAccountContextQueryString(),\r\n data: params,\r\n timeout: timeout,\r\n onSuccess: function (data) {\r\n if (data && !data.Errors) {\r\n inlineOpportunities[campaignId] = convertInlineOpportunity(campaignId, campaignName, data);\r\n success = true;\r\n }\r\n },\r\n ignoreBeforeAjax: true,\r\n onError: function () {},\r\n onJsonError: function () {},\r\n onAjaxComplete: function (xhr, textStatus) {\r\n var result = _.extend(defaultOptResponse(), inlineOpportunities[campaignId]);\r\n loadingJobComplete(inlineOpportunityPrefix, campaignId, result);\r\n resolve(result);\r\n if (success) {\r\n afterInlineGridLoad(campaignId);\r\n }\r\n }\r\n });\r\n addLoadingJob(task, inlineOpportunityPrefix, campaignId);\r\n });\r\n return p$inlineOpportunity;\r\n}\r\nfunction viewOpportunity(campaignId, opportunityType) {\r\n var params = {};\r\n params['campaignId'] = campaignId;\r\n params['opportunityType'] = opportunityType;\r\n var task = legacy$.advertiser.ajaxPost({\r\n url: config.Urls.ViewOpportunity + legacy$.advertiser.getAccountContextQueryString(),\r\n data: params,\r\n async: true,\r\n onSuccess: function (data) {},\r\n ignoreBeforeAjax: true,\r\n onError: function () {},\r\n onJsonError: function () {},\r\n onAjaxComplete: function (xhr, textStatus) {}\r\n });\r\n}\r\nfunction fetchAdgroupsForCampaign(campId) {\r\n var adgroupData = adgroupsForCampaignCache[campId];\r\n if (_.isUndefined(adgroupData) || !adgroupData.campaignLevelData) {\r\n return FetchAdgroups(campId, []);\r\n } else {\r\n return notifyResult(adgroupData.adgroups);\r\n }\r\n}\r\nfunction fetchAdgroupsForIds(campId, adroupIds) {\r\n var adgroupData = adgroupsForCampaignCache[campId];\r\n var idsToFetch = [];\r\n if (!_.isUndefined(adgroupData) && !_.isUndefined(adgroupData.adgroups) && _.size(adgroupData.adgroups) > 0) {\r\n _.each(adroupIds, function (id) {\r\n if (!_.has(adgroupData.adgroups, id)) {\r\n idsToFetch.push(id);\r\n }\r\n });\r\n } else {\r\n idsToFetch = adroupIds;\r\n }\r\n if (_.size(idsToFetch) > 0) {\r\n return FetchAdgroups(campId, idsToFetch);\r\n } else {\r\n return notifyResult(adgroupData.adgroups[adroupIds[0]]);\r\n }\r\n}\r\nfunction FetchAdgroups(campId, adgroupIds) {\r\n var prefix = adgroupPrefix;\r\n var parameter = {};\r\n var fetchForCampaignLevel = true;\r\n parameter['campaignId'] = campId;\r\n if (!_.isUndefined(adgroupIds) && _.size(adgroupIds) > 0) {\r\n fetchForCampaignLevel = false;\r\n _.each(adgroupIds, function (id, index) {\r\n parameter['adgroupIds[' + index + ']'] = id;\r\n prefix += '-';\r\n prefix += id;\r\n });\r\n }\r\n var adgroupsResult = {};\r\n var url = config.Urls.FetchAdgroupInfo + legacy$.advertiser.getAccountContextQueryString();\r\n var p$adgroups = new Promise(function (resolve, reject) {\r\n var task = legacy$.advertiser.ajaxPost({\r\n url: url,\r\n data: parameter,\r\n ignoreBeforeAjax: true,\r\n onSuccess: function (resp) {\r\n if (resp && _.isUndefined(resp.Errors) && _.size(resp) > 0) {\r\n adgroupsForCampaignCache[campId] = adgroupsForCampaignCache[campId] || ({\r\n campaignLevelData: false\r\n });\r\n adgroupsForCampaignCache[campId].campaignLevelData = adgroupsForCampaignCache[campId].campaignLevelData || fetchForCampaignLevel;\r\n adgroupsForCampaignCache[campId].adgroups = adgroupsForCampaignCache[campId].adgroups || ({});\r\n _.each(resp, function (adgroup) {\r\n adgroupsForCampaignCache[campId].adgroups[adgroup.ID] = adgroup;\r\n });\r\n adgroupsResult = adgroupsForCampaignCache[campId];\r\n }\r\n },\r\n onAjaxComplete: function (xhr, textStatus) {\r\n var returnData = !_.isUndefined(adgroupsResult.adgroups) ? fetchForCampaignLevel ? adgroupsResult.adgroups : adgroupsResult.adgroups[adgroupIds[0]] : {};\r\n loadingJobComplete(prefix, campId, returnData);\r\n resolve(returnData);\r\n }\r\n });\r\n addLoadingJob(task, prefix, campId);\r\n });\r\n return p$adgroups;\r\n}\r\nfunction prefetchAdgroupAndLandscape(optType, inlineOptData, idsToLoadLandscape, idsToLoadAdgroup, startPosition, endPosition) {\r\n if (_.has(inlineOptData.opportunityTypeResults, optType)) {\r\n var t = inlineOptData.opportunityTypeResults[optType];\r\n for (var i = startPosition; i < _.size(t.ids) && i < endPosition; i++) {\r\n if (optType !== config.OpportunityType.Keyword && t.idOpportunityMap[t.ids[i]].HasBidLandscape) {\r\n idsToLoadLandscape.push(t.idOpportunityMap[t.ids[i]].KeywordId);\r\n }\r\n idsToLoadAdgroup[t.idOpportunityMap[t.ids[i]].AdgroupId] = 1;\r\n }\r\n }\r\n}\r\nfunction afterInlineGridLoad(campaignId, opportunityType, currentPage) {\r\n currentPage = _.isUndefined(currentPage) || !_.isNumber(currentPage) ? 0 : currentPage;\r\n var inlineOptData = inlineOpportunities[campaignId], idsToLoadLandscape = [], idsToLoadAdgroup = {}, startPosition = currentPage * simpleViewPageSize, endPosition = startPosition;\r\n endPosition = startPosition >= batchLoadLandscapeLength ? startPosition + simpleViewPageSize : startPosition + batchLoadLandscapeLength;\r\n if (!_.isUndefined(inlineOptData) && !_.isUndefined(inlineOptData.opportunityTypes) && _.size(inlineOptData.opportunityTypes) > 0) {\r\n var firstTimeLoad = _.isUndefined(opportunityType), typeResult;\r\n if (firstTimeLoad) {\r\n prefetchAdgroupAndLandscape(config.OpportunityType.FPBid, inlineOptData, idsToLoadLandscape, idsToLoadAdgroup, startPosition, endPosition);\r\n prefetchAdgroupAndLandscape(config.OpportunityType.MLBid, inlineOptData, idsToLoadLandscape, idsToLoadAdgroup, startPosition, endPosition);\r\n prefetchAdgroupAndLandscape(config.OpportunityType.ML1Bid, inlineOptData, idsToLoadLandscape, idsToLoadAdgroup, startPosition, endPosition);\r\n prefetchAdgroupAndLandscape(config.OpportunityType.Keyword, inlineOptData, idsToLoadLandscape, idsToLoadAdgroup, startPosition, endPosition);\r\n } else {\r\n prefetchAdgroupAndLandscape(opportunityType, inlineOptData, idsToLoadLandscape, idsToLoadAdgroup, startPosition, endPosition);\r\n }\r\n if (_.size(idsToLoadLandscape) > 0) {\r\n batchPreloadBidLandscapeData(idsToLoadLandscape);\r\n }\r\n if (_.size(idsToLoadAdgroup) > 0) {\r\n fetchAdgroupsForIds(campaignId, _.keys(idsToLoadAdgroup));\r\n }\r\n if (firstTimeLoad && inlineOptData.opportunityTypes[0] == config.OpportunityType.Keyword || opportunityType == config.OpportunityType.Keyword) {\r\n fetchAdgroupsForCampaign(campaignId);\r\n }\r\n }\r\n}\r\nfunction batchPreloadBidLandscapeData(idsToLoad) {\r\n var p$bidLandscape = new Promise(function (resolve, reject) {\r\n var params = {}, i = 0, returnedPromise;\r\n _.each(idsToLoad, function (item, id) {\r\n if (!_.has(bidlandscapes, id) || bidlandscapes[id].Nodata == true) {\r\n params['keywordIds[' + i + ']'] = item;\r\n i++;\r\n }\r\n });\r\n if (i > 0) {\r\n var task = legacy$.advertiser.ajaxPost({\r\n url: config.Urls.LoadBidLandscapes + legacy$.advertiser.getAccountContextQueryString(),\r\n data: params,\r\n onSuccess: function (data) {\r\n if (data && !data.Errors) {\r\n _.each(data, function (keywordLandscapeResult) {\r\n bidlandscapes[keywordLandscapeResult.Id] = keywordLandscapeResult;\r\n }, this);\r\n }\r\n },\r\n ignoreBeforeAjax: true,\r\n onError: function () {},\r\n onJsonError: function () {},\r\n onAjaxComplete: function (xhr, textStatus) {\r\n _.each(idsToLoad, function (val, key) {\r\n loadingJobComplete(bidlandscapePrefix, val, bidlandscapes[val]);\r\n resolve(bidlandscapes[val]);\r\n }, this);\r\n }\r\n });\r\n _.each(idsToLoad, function (val, key) {\r\n addLoadingJob(task, bidlandscapePrefix, val);\r\n }, this);\r\n }\r\n });\r\n return p$bidLandscape;\r\n}\r\nfunction fetchBidLandscapeData(keywordId) {\r\n if (_.has(bidlandscapes, keywordId)) {\r\n return notifyResult(bidlandscapes[keywordId]);\r\n } else {\r\n return batchPreloadBidLandscapeData([keywordId]);\r\n }\r\n}\r\nfunction clear() {\r\n stopLoadingTask();\r\n bidlandscapes = {};\r\n inlineOpportunities = {};\r\n adgroupsForCampaignCache = {};\r\n}\r\nfunction stopLoadingTask() {\r\n abortTasks(_.values(loadingTasks));\r\n loadingTasks = {};\r\n}\r\nfunction ApplyAfterEdit(optToApply) {\r\n return executeApply(optToApply, optToApply.CampaignId, false);\r\n}\r\nfunction DirectlyApply(campaignid, opportunityType, ids, dismiss, data) {\r\n var optsToApply = [];\r\n _.each(_.flatten([ids]), function (id) {\r\n if (_.has(inlineOpportunities, campaignid) && !_.isUndefined(inlineOpportunities[campaignid]) && _.has(inlineOpportunities[campaignid].opportunityTypeResults, opportunityType) && !_.isUndefined(inlineOpportunities[campaignid].opportunityTypeResults[opportunityType]) && _.has(inlineOpportunities[campaignid].opportunityTypeResults[opportunityType].idOpportunityMap, id)) {\r\n var optToApply = _.extend({}, inlineOpportunities[campaignid].opportunityTypeResults[opportunityType].idOpportunityMap[id]);\r\n optToApply.childOpts = {};\r\n optToApply.data = data || ({});\r\n optsToApply.push(optToApply);\r\n }\r\n });\r\n if (!_.isEmpty(optsToApply)) {\r\n return executeApply(optsToApply, campaignid, dismiss);\r\n } else {\r\n return notifyResult(defaultOptApplyResult());\r\n }\r\n}\r\nfunction executeApply(optsToApply, campaignid, dismiss) {\r\n var opts = _.flatten([optsToApply]);\r\n var params = {};\r\n var blocker = withUiBlock($('.inline-opportunity-main-panel'), 'inline-opportunity-blocker', true);\r\n params['campaignId'] = campaignid;\r\n params['dismiss'] = !!dismiss;\r\n _.each(_.flatten([opts]), function (optToApply, i) {\r\n params['opportunities[' + i + '].AdgroupId'] = optToApply.AdgroupId;\r\n params['opportunities[' + i + '].BatchId'] = optToApply.BatchId;\r\n params['opportunities[' + i + '].OpportunityType'] = optToApply.OpportunityType;\r\n params['opportunities[' + i + '].CampaignId'] = optToApply.CampaignId;\r\n params['opportunities[' + i + '].SuggestedNewValue'] = optToApply.SuggestedNewValue;\r\n if (optToApply.OpportunityType === config.OpportunityType.Keyword) {\r\n params['opportunities[' + i + '].NewAdgroupId'] = optToApply.NewAdgroupId;\r\n params['opportunities[' + i + '].Theme'] = optToApply.Theme;\r\n } else if (optToApply.OpportunityType === config.OpportunityType.BroadMatch || optToApply.OpportunityType === config.OpportunityType.BMA || optToApply.OpportunityType === config.OpportunityType.BMM) {\r\n params['opportunities[' + i + '].NewBid'] = optToApply.SuggestedNewValue;\r\n params['opportunities[' + i + '].NewAdgroupId'] = optToApply.AdgroupId;\r\n params['opportunities[' + i + '].OpportunityId'] = optToApply.OpportunityId;\r\n } else if (_.contains(config.OpportunityType.AdExtensions, optToApply.OpportunityType)) {\r\n params['opportunities[' + i + '].OpportunityId'] = optToApply.OpportunityId;\r\n params['opportunities[' + i + '].AdExtensionIds'] = optToApply.data.adExtensionIds;\r\n } else if (optToApply.OpportunityType === config.OpportunityType.RBA) {\r\n params['opportunities[' + i + '].OpportunityId'] = optToApply.OpportunityId;\r\n params['opportunities[' + i + '].AudienceId'] = optToApply.AudienceId;\r\n } else if (optToApply.OpportunityType === config.OpportunityType.KBA) {\r\n params['opportunities[' + i + '].OpportunityId'] = optToApply.OpportunityId;\r\n params['opportunities[' + i + '].KeywordMatchType'] = optToApply.KeywordMatchType;\r\n } else {\r\n params['opportunities[' + i + '].OpportunityId'] = optToApply.OpportunityId;\r\n params['opportunities[' + i + '].KeywordId'] = optToApply.KeywordId;\r\n }\r\n if (!_.isUndefined(optToApply.childOpts) && _.isUndefined(optToApply.idOpportunityMap) && _.size(optToApply.childOpts.idOpportunityMap) > 0) {\r\n _.each(_.values(optToApply.childOpts.idOpportunityMap), function (item, index) {\r\n params['opportunities[' + i + '].ChildOpportunities[' + index + '].OpportunityId'] = item.OpportunityId;\r\n params['opportunities[' + i + '].ChildOpportunities[' + index + '].CampaignId'] = optToApply.CampaignId;\r\n params['opportunities[' + i + '].ChildOpportunities[' + index + '].BatchId'] = optToApply.BatchId;\r\n if (isKeywordsOptSourceEnhancementEnabled) {\r\n params['opportunities[' + i + '].ChildOpportunities[' + index + '].SuggestedNewValue'] = item.SuggestedNewValue;\r\n }\r\n }, this);\r\n }\r\n });\r\n var applyUrl = config.Urls.Apply + legacy$.advertiser.getAccountContextQueryString();\r\n if (isKeywordsOptSourceEnhancementEnabled) {\r\n applyUrl += '&IsKeywordsOptSourceEnhancementEnabled=true';\r\n }\r\n var resultToNotify = defaultOptApplyResult();\r\n var loadingId = _.first(opts).Id;\r\n var p$applyResult = new Promise(function (resolve, reject) {\r\n var task = legacy$.advertiser.ajaxPost({\r\n url: applyUrl,\r\n data: params,\r\n timeout: timeout,\r\n ignoreBeforeAjax: false,\r\n onSuccess: function (data) {\r\n if (data && !data.Errors) {\r\n if (!_.isUndefined(data.SuccessCount) && _.isNumber(data.SuccessCount)) {\r\n resultToNotify.SuccessCount = data.SuccessCount;\r\n }\r\n if (!_.isUndefined(data.FailedCount) && _.isNumber(data.FailedCount)) {\r\n resultToNotify.FailedCount = data.FailedCount;\r\n }\r\n resultToNotify.FailedReasons = [];\r\n if (data.FailedCount > 0 && !_.isUndefined(data.FailedReasons)) {\r\n _.each(data.FailedReasons, function (errorCode) {\r\n var errorMsg = i18n.getString('OpportunityErrorCode_' + errorCode, {\r\n adGroupName: _.pluck(opts, 'AdgroupName').join(', ')\r\n });\r\n if (!_.isUndefined(errorMsg) && errorMsg) {\r\n resultToNotify.FailedReasons.push(errorMsg);\r\n }\r\n });\r\n }\r\n }\r\n },\r\n onError: function () {},\r\n onJsonError: function () {},\r\n onAjaxComplete: function (xhr, textStatus) {\r\n blocker();\r\n afterApply(opts);\r\n loadingJobComplete(applyPrefix, loadingId, resultToNotify);\r\n resolve(resultToNotify);\r\n }\r\n });\r\n addLoadingJob(task, applyPrefix, loadingId);\r\n });\r\n return p$applyResult;\r\n}\r\nfunction afterApply(opts) {\r\n var optToUpdate = inlineOpportunities[_.first(opts).CampaignId];\r\n if (!_.isUndefined(optToUpdate) && _.isObject(optToUpdate) && _.isObject(optToUpdate.opportunityTypeResults)) {\r\n _.each(opts, function (optToApply) {\r\n if (!_.isUndefined(optToUpdate.opportunityTypeResults[optToApply.OpportunityType]) && _.isObject(optToUpdate.opportunityTypeResults[optToApply.OpportunityType])) {\r\n if (_.has(optToUpdate.opportunityTypeResults[optToApply.OpportunityType].idOpportunityMap, optToApply.Id)) {\r\n var optTypeData = optToUpdate.opportunityTypeResults[optToApply.OpportunityType];\r\n optTypeData.idOpportunityMap[optToApply.Id] = null;\r\n delete optTypeData.idOpportunityMap[optToApply.Id];\r\n optTypeData.ids = _.without(optTypeData.ids, optToApply.Id);\r\n if (_.size(optTypeData.idOpportunityMap) == 0) {\r\n delete optToUpdate.opportunityTypeResults[optToApply.OpportunityType];\r\n optToUpdate.opportunityTypes = _.without(optToUpdate.opportunityTypes, optToApply.OpportunityType);\r\n if (_.size(optToUpdate.opportunityTypeResults) == 0) {\r\n optToUpdate.opportunityTypeResults = {};\r\n optToUpdate.opportunityTypes = [];\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\nfunction addLoadingJob(task, prefix, id) {\r\n loadingTasks[prefix + '-' + id] = {\r\n job: task\r\n };\r\n}\r\nfunction loadingJobComplete(prefix, id, returnValue) {\r\n var loadedRecord = loadingTasks[prefix + '-' + id];\r\n if (!!loadedRecord) {\r\n delete loadingTasks[id];\r\n }\r\n}\r\nfunction notifyResult(returnValue) {\r\n var p$notifyResult = Promise.resolve(_.extend({}, returnValue));\r\n return p$notifyResult;\r\n}\r\nfunction getKeywordNameWithMatchType(entity, matchType) {\r\n if (entity) {\r\n return getFullKeywordWithMatchType(entity.KeywordName, matchType);\r\n }\r\n return '';\r\n}\r\nfunction getFullKeywordWithMatchType(undecoratedKeyword, matchType) {\r\n if (undecoratedKeyword) {\r\n switch (matchType) {\r\n case config.MatchType.Broad:\r\n return undecoratedKeyword;\r\n case config.MatchType.Phrase:\r\n return '\"' + undecoratedKeyword + '\"';\r\n case config.MatchType.Exact:\r\n return '[' + undecoratedKeyword + ']';\r\n case config.MatchType.Content:\r\n return '{{' + undecoratedKeyword + '}}';\r\n default:\r\n return undecoratedKeyword;\r\n }\r\n }\r\n return '';\r\n}\r\nfunction abortTasks(array) {\r\n _.each(array, function (task) {\r\n if (task && !_.isUndefined(task.job) && task.job.readystate != 4) {\r\n task.job.abort();\r\n }\r\n });\r\n}\r\nfunction validateBidInput(campaignId, adgroupId, newInput) {\r\n if (!i18n.isValidDecimal(newInput)) {\r\n return i18n.getString('ErrorMessage_InputNumericValue');\r\n }\r\n var suggestedNewValue = i18n.parseDecimal(newInput);\r\n if (!_.isUndefined(adgroupsForCampaignCache[campaignId]) && _.size(adgroupsForCampaignCache[campaignId]) > 0) {\r\n if (!_.isUndefined(adgroupsForCampaignCache[campaignId].adgroups)) {\r\n var adgroupInfo = adgroupsForCampaignCache[campaignId].adgroups[adgroupId];\r\n if (!_.isUndefined(adgroupInfo) && !_.isUndefined(adgroupInfo.BidRange) && _.isObject(adgroupInfo.BidRange)) {\r\n var bidRange = adgroupInfo.BidRange;\r\n if (bidRange.CeilingValue > 0 && suggestedNewValue > bidRange.CeilingValue) {\r\n return i18n.getString('ErrorMessage_BidTooHigh', {\r\n bidAmount: i18n.formatDecimalToFixed(bidRange.CeilingValue)\r\n });\r\n }\r\n if (bidRange.FloorValue > 0 && suggestedNewValue < bidRange.FloorValue) {\r\n return i18n.getString('ErrorMessage_BidTooLow', {\r\n bidAmount: i18n.formatDecimalToFixed(bidRange.FloorValue)\r\n });\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\nexport default {\r\n fetchInlineOpportunity: fetchInlineOpportunity,\r\n viewOpportunity: viewOpportunity,\r\n afterInlineGridLoad: afterInlineGridLoad,\r\n clear: clear,\r\n ApplyAfterEdit: ApplyAfterEdit,\r\n directlyApply: DirectlyApply,\r\n stopLoadingTask: stopLoadingTask,\r\n fetchBidLandscapeData: fetchBidLandscapeData,\r\n validateBidInput: validateBidInput,\r\n fetchAdgroupsForCampaign: fetchAdgroupsForCampaign,\r\n fetchAdgroupsForIds: fetchAdgroupsForIds\r\n};\r\n\r\n","/* eslint-disable */\r\nimport backbone from 'backbone';\r\nimport popupUtil from '@bingads-webui-static-legacy/popup';\r\nimport loadingPanelTemplate from '@bingads-webui-campaign-legacy/inline-opportunity/template/loading-panel.pug';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/inline-opportunity');\r\nvar LoadingPanel = backbone.View.extend({\r\n template: loadingPanelTemplate,\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n return this;\r\n },\r\n render: function () {\r\n var viewParam = {\r\n i18n: i18n\r\n };\r\n popupUtil.close();\r\n this.$el.html(loadingPanelTemplate(viewParam));\r\n popupUtil.render(this.$el, 100);\r\n return this;\r\n },\r\n close: function () {\r\n popupUtil.close();\r\n }\r\n});\r\nexport default LoadingPanel;\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport validator from '@bingads-webui-component-legacy/ko-validation/index';\r\nimport decimalNumber from '@bingads-webui-component-legacy/humanize/decimal';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/opportunity-edit-mode');\r\nvar isKeywordsOptSourceEnhancementEnabled = pageContext.Permissions.IsKeywordsOptSourceEnhancementEnabled;\r\nexport default function (parentView, options) {\r\n this.options = options || ({});\r\n this.parentView = parentView;\r\n var parentItem = options.parentItem || ({});\r\n var defaultAdgroupId = _.result(parentItem, 'AdgroupId') + '';\r\n this.suggestedAdgroupId = ko.observable(defaultAdgroupId || 0);\r\n this.suggestedBid = _.result(parentItem, 'SuggestedNewValue');\r\n this.suggestedBidFloat = decimalNumber.fromLocalToFloat(this.suggestedBid, 2);\r\n this.adgroups = ko.observableArray([]);\r\n this.adgroupIdInfoMap = ko.observable({});\r\n this.adgroupBid = ko.observable(_.result(this.options, 'adgroupBid') || 0);\r\n this.useNewAdgroup = ko.observable(false);\r\n this.useAdgroupBid = ko.observable(false);\r\n this.isNewAdGroupSelected = ko.observable(false);\r\n this.setIsNewAdGroupSelected = function () {\r\n this.useNewAdgroup(true);\r\n this.isNewAdGroupSelected(true);\r\n };\r\n this.isExistingAdGroupSelected = ko.observable(false);\r\n this.setIsExistingAdGroupSelected = function () {\r\n this.useNewAdgroup(false);\r\n this.isExistingAdGroupSelected(true);\r\n };\r\n this.isKeywordBidSelected = ko.observable(false);\r\n this.setIsKeywordBidSelected = function () {\r\n this.useAdgroupBid(false);\r\n this.isKeywordBidSelected(true);\r\n };\r\n this.selectedAdgroupId = ko.observable(defaultAdgroupId);\r\n this.selectedAdgroupId.subscribe(function (newId) {\r\n if (!_.isEmpty(this.adgroupIdInfoMap()) && !_.isEmpty(this.adgroupIdInfoMap()[newId])) {\r\n var adgroupInfo = this.adgroupIdInfoMap()[newId];\r\n if (_.isNumber(adgroupInfo.DefaultBid)) {\r\n this.adgroupBid(adgroupInfo.DefaultBid);\r\n }\r\n }\r\n }, this);\r\n this.setAdgroupIdInfoMapping = (function (adgroupIdInfoMapping) {\r\n if (!_.isEmpty(adgroupIdInfoMapping)) {\r\n this.adgroupIdInfoMap(adgroupIdInfoMapping);\r\n this.adgroups(_.chain(adgroupIdInfoMapping).map(function (adgroup, id) {\r\n return {\r\n id: id + '',\r\n name: id + '' === defaultAdgroupId ? i18n.get('RecommendedWithNameHolder', {\r\n adGroupName: adgroup.Name\r\n }) : adgroup.Name\r\n };\r\n }).value());\r\n this.suggestedAdgroupId(this.suggestedAdgroupId() > 0 ? this.suggestedAdgroupId() : this.adgroups()[0].id);\r\n }\r\n }).bind(this);\r\n this.setAdgroupIdInfoMapping(_.result(this.options, 'adgroupIdInfoMap') || ({}));\r\n this.newAdgroupNameInput = ko.observable('').extend({\r\n validate: [validator.custom(function (value) {\r\n return !_.isEmpty(value);\r\n }, i18n.get('AdgroupNameIsRequired'), false)]\r\n });\r\n this.newAdgroupNameInput.validate();\r\n this.newAdgroupBidInput = ko.observable(this.suggestedBid).extend({\r\n validate: [validator.custom(function (value) {\r\n return !_.isEmpty(value) && decimalNumber.isValid(value, true);\r\n }, i18n.get('ErrorMessage_InputNumericValue'), false), validator.custom(function (value) {\r\n return decimalNumber.fromLocalToFloat(value, 2) > 0;\r\n }, i18n.get('InputValueGreaterThanZero'), false)]\r\n });\r\n this.newAdgroupBidInput(this.suggestedBid);\r\n this.customBidInput = ko.observable(this.suggestedBid).extend({\r\n validate: [validator.custom(function (value) {\r\n return !_.isEmpty(value) && decimalNumber.isValid(value, true);\r\n }, i18n.get('ErrorMessage_InputNumericValue'), false), validator.custom(function (value) {\r\n return decimalNumber.fromLocalToFloat(value) > 0;\r\n }, i18n.get('InputValueGreaterThanZero'), false)]\r\n });\r\n this.customBidInput(this.suggestedBid);\r\n if (isKeywordsOptSourceEnhancementEnabled) {\r\n this.adgroupBid.subscribe(function () {\r\n this.parentView.trigger('adgroupBidUpdated', {\r\n adgroupBid: this.adgroupBid()\r\n });\r\n }, this, 'change');\r\n }\r\n this.adgroupIdForApply = ko.computed(function () {\r\n return this.useNewAdgroup() ? 0 : this.selectedAdgroupId();\r\n }, this, {\r\n pure: true\r\n });\r\n this.adgroupIdForApply.subscribe(function () {\r\n this.parentView.trigger('adgroupBidNameUpdated');\r\n }, this, 'change');\r\n if (isKeywordsOptSourceEnhancementEnabled) {\r\n this.useNewAdgroup.subscribe(function () {\r\n this.parentView.trigger('bidEditingUpdated');\r\n }, this, 'change');\r\n this.useAdgroupBid.subscribe(function () {\r\n this.parentView.trigger('bidEditingUpdated');\r\n }, this, 'change');\r\n }\r\n this.adgroupNameForApply = ko.computed(function () {\r\n if (this.useNewAdgroup()) {\r\n return this.newAdgroupNameInput();\r\n }\r\n if (!this.useNewAdgroup() && this.selectedAdgroupId() > 0) {\r\n return this.adgroupIdForApply() === this.suggestedAdgroupId() ? this.options.parentItem.AdgroupName : this.adgroupIdInfoMap()[this.selectedAdgroupId()].Name;\r\n }\r\n return '';\r\n }, this, {\r\n pure: true\r\n });\r\n this.adgroupNameForApply.subscribe(function () {\r\n this.parentView.trigger('adgroupBidNameUpdated');\r\n }, this, 'change');\r\n this.newBidForApply = ko.computed(function () {\r\n if (this.useNewAdgroup()) {\r\n return this.newAdgroupBidInput();\r\n }\r\n return this.useAdgroupBid() ? 0 : this.customBidInput();\r\n }, this, {\r\n pure: true\r\n });\r\n this.newBidForApply.subscribe(function () {\r\n this.parentView.trigger('adgroupBidNameUpdated');\r\n }, this, 'change');\r\n this.userMarkedInvalid = ko.observable(false);\r\n this.inputValidWithoutUserMarked = ko.computed(function () {\r\n if (this.useNewAdgroup()) {\r\n return this.newAdgroupNameInput.isValid() && this.newAdgroupBidInput.isValid();\r\n }\r\n return this.selectedAdgroupId() > 0 && (this.useAdgroupBid() || this.customBidInput.isValid());\r\n }, this, {\r\n pure: true\r\n });\r\n this.isAdGroupNameValid = ko.computed(function () {\r\n return !this.useNewAdgroup() || this.newAdgroupNameInput.isValid();\r\n }, this, {\r\n pure: true\r\n });\r\n this.inputValid = ko.computed(function () {\r\n return !this.userMarkedInvalid() && this.inputValidWithoutUserMarked();\r\n }, this, {\r\n pure: true\r\n });\r\n this.adoptRecommendSuggestion = ko.computed(function () {\r\n return this.adgroupIdForApply() === this.suggestedAdgroupId() && decimalNumber.fromLocalToFloat(this.newBidForApply(), 2) === this.suggestedBidFloat;\r\n }, this, {\r\n pure: true\r\n });\r\n this.adoptRecommendSuggestion.subscribe(function (newValue) {\r\n this.parentView.trigger('adgroupInputValidUpdated', {\r\n inputValid: this.inputValid(),\r\n isDirty: !newValue\r\n });\r\n }, this, 'change');\r\n this.adoptRecommendSuggestion.extend({\r\n notify: 'always'\r\n });\r\n this.inputValid.subscribe(function (newValue) {\r\n this.parentView.trigger('adgroupInputValidUpdated', {\r\n inputValid: newValue,\r\n isDirty: !this.adoptRecommendSuggestion()\r\n });\r\n }, this);\r\n}\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/viewmodel/adgroupNameBidSelection';\r\nimport Template from '@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/template/adgroupNameBidSelection.pug';\r\nimport TemplateSource from '@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/template/adgroupNameBidSelection-source.pug';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/opportunity-edit-mode');\r\nvar isKeywordsOptSourceEnhancementEnabled = pageContext.Permissions.IsKeywordsOptSourceEnhancementEnabled;\r\nvar view = backbone.View.extend({\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n this.ko_model = new ViewModel(this, this.options);\r\n this.ko_model.i18n = i18n;\r\n },\r\n events: {},\r\n close: function () {\r\n this.remove();\r\n },\r\n render: function (options) {\r\n options = options || ({});\r\n if (!_.isEmpty(options.adgroupIdInfoMap)) {\r\n this.ko_model.setAdgroupIdInfoMapping(options.adgroupIdInfoMap);\r\n }\r\n this.$el.html($(isKeywordsOptSourceEnhancementEnabled ? TemplateSource(this.ko_model) : Template(this.ko_model)));\r\n ko.applyBindings(this.ko_model, this.el);\r\n return this;\r\n }\r\n});\r\nexport default view;\r\n\r\n","/* eslint-disable */\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport validator from '@bingads-webui-component-legacy/ko-validation/index';\r\nimport decimalNumber from '@bingads-webui-component-legacy/humanize/decimal';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/opportunity-edit-mode');\r\nvar isKeywordsOptSourceEnhancementEnabled = pageContext.Permissions.IsKeywordsOptSourceEnhancementEnabled;\r\nvar floorValue = _.chain(pageContext).result('KeywordBidRange').result('FloorValue').value();\r\nvar ceilingValue = _.chain(pageContext).result('KeywordBidRange').result('CeilingValue').value();\r\nexport default function (parentView, options) {\r\n this.parentView = parentView;\r\n this.keywords = ko.observable({});\r\n this.selectAll = ko.observable(true);\r\n if (isKeywordsOptSourceEnhancementEnabled) {\r\n this.canEditBid = ko.observable(true);\r\n this.adgroupBid = ko.observable(0);\r\n this.isModifyBid = ko.observable(false);\r\n this.convertKeywords = function (keywordList, selectedIds) {\r\n var keywords = {};\r\n var ismodifyBid = this.isModifyBid;\r\n _.each(keywordList, function (keyword) {\r\n var customBidObservable = ko.observable(keyword.SuggestedNewValue).extend({\r\n validate: [validator.custom(function (value) {\r\n return !_.isEmpty(String(value)) && decimalNumber.isValid(value, true);\r\n }, i18n.get('ErrorMessage_InputNumericValue'), false), validator.custom(function (value) {\r\n if (_.isUndefined(floorValue) || _.isUndefined(ceilingValue)) {\r\n return true;\r\n }\r\n var inputVal = decimalNumber.fromLocalToFloat(value, 2);\r\n return inputVal !== null && inputVal >= floorValue && inputVal <= ceilingValue;\r\n }, i18n.get('BidStrategy_BidOutOfRangeError').replace('{0}', decimalNumber.fromFloatToString(floorValue || 0)).replace('{1}', decimalNumber.fromFloatToString(ceilingValue || 0)), false)]\r\n });\r\n customBidObservable.subscribe(function () {\r\n ismodifyBid(true);\r\n parentView.trigger('keywordBidUpdated');\r\n });\r\n keywords[keyword.Id] = {\r\n id: keyword.Id,\r\n keywordName: keyword.KeywordName,\r\n customBid: customBidObservable,\r\n source: _.flatten(keyword.Sources).map(function (key) {\r\n return i18n.get('Keyword_Source_' + key);\r\n }).join(', '),\r\n selected: ko.observable(_.isEmpty(selectedIds))\r\n };\r\n });\r\n if (!_.isEmpty(selectedIds)) {\r\n _.each(selectedIds, function (id) {\r\n var keyword = keywords[id];\r\n if (!_.isEmpty(keyword)) {\r\n keyword.selected(true);\r\n }\r\n });\r\n }\r\n this.keywords(_.values(keywords));\r\n this.selectAll(_.isEmpty(selectedIds) || _.size(selectedIds) === _.size(keywords));\r\n };\r\n this.customBidError = ko.computed(function () {\r\n var errorList = _.map(this.keywords(), function (keyword) {\r\n return keyword.customBid.errors();\r\n });\r\n var errormsg = _.first(_.flatten(errorList));\r\n this.parentView.trigger('keywordBidGenerateError', errormsg);\r\n return errormsg;\r\n }, this, {\r\n pure: true\r\n });\r\n } else {\r\n this.convertKeywords = function (keywordList, selectedIds) {\r\n var keywords = {};\r\n _.each(keywordList, function (keyword) {\r\n keywords[keyword.Id] = {\r\n id: keyword.Id,\r\n keywordName: keyword.KeywordName,\r\n selected: ko.observable(_.isEmpty(selectedIds))\r\n };\r\n });\r\n if (!_.isEmpty(selectedIds)) {\r\n _.each(selectedIds, function (id) {\r\n var keyword = keywords[id];\r\n if (!_.isEmpty(keyword)) {\r\n keyword.selected(true);\r\n }\r\n });\r\n }\r\n this.keywords(_.values(keywords));\r\n this.selectAll(_.isEmpty(selectedIds) || _.size(selectedIds) === _.size(keywords));\r\n };\r\n }\r\n this.selectedKeywordsCount = ko.computed(function () {\r\n return _.size(_.filter(this.keywords(), function (keyword) {\r\n return keyword.selected();\r\n }));\r\n }, this, {\r\n pure: true\r\n });\r\n this.selectedIds = ko.computed(function () {\r\n return _.pluck(_.filter(this.keywords(), function (keyword) {\r\n return keyword.selected();\r\n }), 'id');\r\n }, this, {\r\n pure: true\r\n });\r\n this.keywordClicked = (function (selectedId) {\r\n var keyword = _.find(this.keywords(), function (item) {\r\n return item.id === selectedId;\r\n });\r\n if (!_.isEmpty(keyword)) {\r\n keyword.selected(!keyword.selected());\r\n this.selectAll(_.isEmpty(_.find(this.keywords(), function (item) {\r\n return !item.selected();\r\n })));\r\n }\r\n this.parentView.trigger('selectedKeywordsUpdated');\r\n return true;\r\n }).bind(this);\r\n this.selectedAllClicked = (function () {\r\n var oriValue = _.size(this.selectedIds()) === _.size(this.keywords());\r\n _.each(this.keywords(), function (keyword) {\r\n keyword.selected(!oriValue);\r\n });\r\n this.selectAll(!oriValue);\r\n this.parentView.trigger('selectedKeywordsUpdated');\r\n return true;\r\n }).bind(this);\r\n if (!_.isEmpty(options) && !_.isEmpty(options.Keywords)) {\r\n var selectedIds = options.selectedIds || [];\r\n this.convertKeywords(options.Keywords, selectedIds);\r\n }\r\n ;\r\n}\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/viewmodel/keywordSelection';\r\nimport Template from '@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/template/keywordSelection.pug';\r\nimport TemplateSource from '@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/template/keywordSelection-source.pug';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/opportunity-edit-mode');\r\nvar isKeywordsOptSourceEnhancementEnabled = pageContext.Permissions.IsKeywordsOptSourceEnhancementEnabled;\r\nvar view = Backbone.View.extend({\r\n initialize: function (options) {\r\n this.options = this.options || ({});\r\n this.ko_model = new ViewModel(this, this.options);\r\n this.ko_model.i18n = i18n;\r\n },\r\n events: {},\r\n close: function () {\r\n this.remove();\r\n },\r\n render: function (options) {\r\n if (!_.isEmpty(options) && !_.isEmpty(options.keywords)) {\r\n this.ko_model.convertKeywords(options.keywords, options.selectedIds);\r\n }\r\n this.$el.html(isKeywordsOptSourceEnhancementEnabled ? TemplateSource(this.ko_model) : Template(this.ko_model));\r\n ko.applyBindings(this.ko_model, this.el);\r\n return this;\r\n }\r\n});\r\nexport default view;\r\n\r\n","/* eslint-disable */\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport ko from 'knockout';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/opportunity-edit-mode');\r\nvar isKeywordsOptSourceEnhancementEnabled = pageContext.Permissions.IsKeywordsOptSourceEnhancementEnabled;\r\nexport default function () {\r\n this.adgroupIdForApply = ko.observable([]);\r\n this.adgroupNameForApply = ko.observable([]);\r\n this.newBidForApply = ko.observable([]);\r\n this.selectedIds = ko.observable([]);\r\n if (isKeywordsOptSourceEnhancementEnabled) {\r\n this.keywordBidValid = ko.observable(false);\r\n }\r\n this.keywordSelectionValid = ko.observable(true);\r\n this.adgroupnameBidSelectionValid = ko.observable(true);\r\n this.inputValid = ko.computed(function () {\r\n return isKeywordsOptSourceEnhancementEnabled ? this.keywordSelectionValid() && this.adgroupnameBidSelectionValid() && this.keywordBidValid() : this.keywordSelectionValid() && this.adgroupnameBidSelectionValid();\r\n }, this, {\r\n pure: true\r\n });\r\n this.keywordSelectionIsDirty = ko.observable(false);\r\n this.adgroupnameBidSelectionIsDirty = ko.observable(false);\r\n this.isDirty = ko.computed(function () {\r\n return this.keywordSelectionIsDirty() || this.adgroupnameBidSelectionIsDirty();\r\n }, this, {\r\n pure: true\r\n });\r\n this.newAdgroup = ko.observable(false);\r\n}\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/opportunity-edit-mode');\r\nfunction closePreviousSimpleView(viewIsDirty) {\r\n var previousEditView = $('.simple-view-edit-mode');\r\n if (previousEditView.length > 0) {\r\n var isDirty = true;\r\n if (_.isFunction(viewIsDirty)) {\r\n isDirty = viewIsDirty(previousEditView);\r\n }\r\n if (isDirty && !nativeConfirm(i18n.get('WarnForUnsavedChangeContinue'))) {\r\n return false;\r\n }\r\n previousEditView.find('input.btn-default').click();\r\n }\r\n return true;\r\n}\r\n;\r\nfunction nativeConfirm(message) {\r\n var toContinue;\r\n var open_time = new Date();\r\n var close_time = new Date();\r\n try {\r\n var r = confirm(message);\r\n close_time = new Date();\r\n toContinue = r;\r\n } catch (ex) {\r\n toContinue = true;\r\n }\r\n ;\r\n if (close_time - open_time < 2) {\r\n toContinue = true;\r\n }\r\n return toContinue;\r\n}\r\n;\r\nexport default {\r\n closePreviousSimpleView: closePreviousSimpleView\r\n};\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport decimalNumber from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport AdgroupNameBidSelectionView from '@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/view/adgroupNameBidSelection';\r\nimport KeywordSelectionView from '@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/view/keywordSelection';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/viewmodel/index';\r\nimport Template from '@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/template/index.pug';\r\nimport TemplateSource from '@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/template/index-source.pug';\r\nimport util from '@bingads-webui-campaign-legacy/opportunity-edit-mode-util/index';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/opportunity-edit-mode');\r\nvar isKeywordsOptSourceEnhancementEnabled = pageContext.Permissions.IsKeywordsOptSourceEnhancementEnabled;\r\nvar view = backbone.View.extend({\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n this.ko_model = new ViewModel();\r\n this.ko_model.i18n = i18n;\r\n this.parentItem = this.options.parentItem || ({});\r\n this.keywordSelectionView = null;\r\n this.adgroupNameBidSelectionView = null;\r\n },\r\n events: {\r\n 'click .simple-view-edit-mode .btn-default': 'closeSimpleView',\r\n 'click .simple-view-edit-mode .btn-hero': 'simpleViewApply'\r\n },\r\n close: function () {\r\n this.remove();\r\n },\r\n isDirty: function (container) {\r\n return container.find('.noEstimatedKpi').is(':visible');\r\n },\r\n render: function (options) {\r\n if (!util.closePreviousSimpleView(this.isDirty)) {\r\n this.trigger('cancelAction');\r\n return this;\r\n }\r\n this.options = options || ({});\r\n var cachedData = _.extend({}, this.parentItem);\r\n var params = _.extend(this.ko_model, cachedData, {\r\n EstimatedImpDeltaStr: decimalNumber.fromFloatToString(_.result(cachedData, 'EstimatedImpDelta') || 0, 0),\r\n EstimatedClickDeltaStr: decimalNumber.fromFloatToString(_.result(cachedData, 'EstimatedClickDelta') || 0, 0),\r\n EstimatedCostDeltaStr: decimalNumber.fromFloatToString(_.result(cachedData, 'EstimatedCostDelta') || 0, 2)\r\n });\r\n this.$el.html($(isKeywordsOptSourceEnhancementEnabled ? TemplateSource(params) : Template(params)));\r\n this.delegateEvents();\r\n ko.applyBindings(this.ko_model, this.el);\r\n this.prepareSubView(options);\r\n return this;\r\n },\r\n prepareSubView: function (options) {\r\n ko.cleanNode(this.$('.detail-grid')[0]);\r\n if (isKeywordsOptSourceEnhancementEnabled) {\r\n this.keywordSelectionView = new KeywordSelectionView({\r\n parentItem: this.parentItem,\r\n el: this.$('.detail-grid')[0]\r\n });\r\n this.keywordSelectionView.on('selectedKeywordsUpdated', (function (event) {\r\n this.ko_model.keywordSelectionValid(this.keywordSelectionView.ko_model.selectedKeywordsCount() > 0);\r\n this.ko_model.keywordSelectionIsDirty(!this.keywordSelectionView.ko_model.selectAll() || this.keywordSelectionView.ko_model.isModifyBid());\r\n this.syncKeywordSelections();\r\n }).bind(this));\r\n this.keywordSelectionView.on('keywordBidUpdated', (function () {\r\n this.ko_model.keywordSelectionIsDirty(true);\r\n }).bind(this));\r\n this.keywordSelectionView.on('keywordBidGenerateError', (function (errormsg) {\r\n this.ko_model.keywordBidValid(_.isEmpty(errormsg));\r\n }).bind(this));\r\n ko.cleanNode(this.$('.adgroup_bid_selection')[0]);\r\n this.adgroupNameBidSelectionView = new AdgroupNameBidSelectionView({\r\n parentItem: this.parentItem,\r\n el: this.$('.adgroup_bid_selection')[0]\r\n });\r\n this.adgroupNameBidSelectionView.on('adgroupBidNameUpdated', (function (event) {\r\n this.syncAdgroupNameBidValues();\r\n }).bind(this));\r\n this.adgroupNameBidSelectionView.on('adgroupInputValidUpdated', (function (event) {\r\n this.ko_model.adgroupnameBidSelectionValid(event.inputValid);\r\n this.ko_model.adgroupnameBidSelectionIsDirty(event.isDirty);\r\n }).bind(this));\r\n this.adgroupNameBidSelectionView.on('bidEditingUpdated', (function () {\r\n var adModel = this.adgroupNameBidSelectionView.ko_model;\r\n this.keywordSelectionView.ko_model.canEditBid(adModel.useNewAdgroup() || adModel.useNewAdgroup() === false && adModel.useAdgroupBid() === false);\r\n }).bind(this));\r\n this.adgroupNameBidSelectionView.on('adgroupBidUpdated', (function (event) {\r\n this.keywordSelectionView.ko_model.adgroupBid(event.adgroupBid);\r\n }).bind(this));\r\n } else {\r\n this.keywordSelectionView = new KeywordSelectionView({\r\n el: this.$('.detail-grid')[0]\r\n });\r\n this.keywordSelectionView.on('selectedKeywordsUpdated', (function (event) {\r\n this.ko_model.keywordSelectionValid(this.keywordSelectionView.ko_model.selectedKeywordsCount() > 0);\r\n this.ko_model.keywordSelectionIsDirty(!this.keywordSelectionView.ko_model.selectAll());\r\n this.syncKeywordSelections();\r\n }).bind(this));\r\n ko.cleanNode(this.$('.adgroup_bid_selection')[0]);\r\n this.adgroupNameBidSelectionView = new AdgroupNameBidSelectionView({\r\n parentItem: this.parentItem,\r\n el: this.$('.adgroup_bid_selection')[0]\r\n });\r\n this.adgroupNameBidSelectionView.on('adgroupBidNameUpdated', (function (event) {\r\n this.syncAdgroupNameBidValues();\r\n }).bind(this));\r\n this.adgroupNameBidSelectionView.on('adgroupInputValidUpdated', (function (event) {\r\n this.ko_model.adgroupnameBidSelectionValid(event.inputValid);\r\n this.ko_model.adgroupnameBidSelectionIsDirty(event.isDirty);\r\n }).bind(this));\r\n }\r\n this.keywordSelectionView.render(options);\r\n this.adgroupNameBidSelectionView.render(options);\r\n this.syncAdgroupNameBidValues();\r\n this.syncKeywordSelections();\r\n },\r\n syncAdgroupNameBidValues: function () {\r\n this.ko_model.adgroupIdForApply(this.adgroupNameBidSelectionView.ko_model.adgroupIdForApply());\r\n this.ko_model.adgroupNameForApply(this.adgroupNameBidSelectionView.ko_model.adgroupNameForApply());\r\n this.ko_model.newBidForApply(this.adgroupNameBidSelectionView.ko_model.newBidForApply());\r\n },\r\n syncKeywordSelections: function () {\r\n this.ko_model.selectedIds(this.keywordSelectionView.ko_model.selectedIds());\r\n },\r\n setAdgroupBid: function (bid) {\r\n if (this.adgroupNameBidSelectionView !== null) {\r\n this.adgroupNameBidSelectionView.ko_model.adgroupBid(bid);\r\n }\r\n },\r\n simpleViewApply: function (event) {\r\n if (isKeywordsOptSourceEnhancementEnabled) {\r\n var customBidList = _.map(this.keywordSelectionView.ko_model.keywords(), function (keyword) {\r\n return {\r\n id: keyword.id,\r\n keywordName: keyword.keywordName,\r\n customBid: keyword.customBid()\r\n };\r\n });\r\n var customBidObj = _.object(_.map(customBidList, function (item) {\r\n return item.id;\r\n }), customBidList);\r\n this.trigger('apply', {\r\n adgroupIdForApply: this.ko_model.adgroupIdForApply(),\r\n adgroupNameForApply: this.ko_model.adgroupNameForApply(),\r\n selectedIds: this.ko_model.selectedIds(),\r\n adgroupBid: this.adgroupNameBidSelectionView.ko_model.adgroupBid(),\r\n useKeywordBid: this.keywordSelectionView.ko_model.canEditBid(),\r\n customBidObj: customBidObj\r\n });\r\n } else {\r\n this.trigger('apply', {\r\n adgroupIdForApply: this.ko_model.adgroupIdForApply(),\r\n adgroupNameForApply: this.ko_model.adgroupNameForApply(),\r\n newBidForApply: this.ko_model.newBidForApply(),\r\n selectedIds: this.ko_model.selectedIds()\r\n });\r\n }\r\n },\r\n closeSimpleView: function (event) {\r\n event.stopImmediatePropagation();\r\n this.close();\r\n this.trigger('cancelAction');\r\n }\r\n});\r\nexport default view;\r\n\r\n","import instrumentation from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport _ from 'underscore';\r\n\r\nexport function logOpportunity({id, type, campaignId, action}) {\r\n instrumentation.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, 'ViewInlineOpportunity',\r\n {\r\n id,\r\n type,\r\n campaignId,\r\n action,\r\n }\r\n );\r\n}\r\n\r\nexport function logOpportunities({opportunityIds, type, campaignId, action}) {\r\n _.each(opportunityIds, (id) => {\r\n logOpportunity({id, type, campaignId, action});\r\n });\r\n}\r\n","/* eslint-disable */\r\nimport _ from \"underscore\";\r\nimport $ from \"jquery\";\r\nimport backbone from \"backbone\";\r\nimport ko from \"knockout\";\r\nimport pageContext from \"@bingads-webui-static-legacy/page-context\";\r\nimport KeywordOpportunityEditView from \"@bingads-webui-campaign-legacy/opportunity-edit-mode-keywordopportunity/view/index\";\r\nimport dataManager from \"@bingads-webui-campaign-legacy/inline-opportunity/view/data-manager\";\r\nimport uiBlocker from \"@bingads-webui-component-legacy/uiblocker/service/uiBlocker\";\r\nimport * as logHelper from '@bingads-webui-campaign-legacy/inline-opportunity/utilities/log-helper';\r\nvar isKeywordsOptSourceEnhancementEnabled = pageContext.Permissions.IsKeywordsOptSourceEnhancementEnabled;\r\nvar view = backbone.View.extend({\r\n initialize: function (options) {\r\n this.parentItem = options.parentItem;\r\n this.keywordOpportunityEditView = null;\r\n this.options = options || ({});\r\n this.parentView = this.options.parentView;\r\n this.parentContainer = this.options.parentContainer;\r\n },\r\n close: function () {\r\n this.remove();\r\n },\r\n closeSimpleView: function (event) {\r\n this.parentContainer.find(\"td.keywordopportunity-container\").remove();\r\n this.parentContainer.find(\"td.grid-hidden\").removeClass(\"grid-hidden\");\r\n },\r\n render: function (options) {\r\n uiBlocker.block(this.parentContainer, \"keywordopportunity\");\r\n var simpleViewContainer = $(\"\");\r\n this.keywordOpportunityEditView = new KeywordOpportunityEditView(_.extend(this.options, {\r\n el: simpleViewContainer[0]\r\n }));\r\n this.keywordOpportunityEditView.on(\"apply\", (function (event) {\r\n this.simpleViewApply(event);\r\n }).bind(this));\r\n this.keywordOpportunityEditView.on(\"cancelAction\", (function (event) {\r\n this.closeSimpleView(event);\r\n }).bind(this));\r\n var adgroupIdInfoMap = {};\r\n dataManager.fetchAdgroupsForCampaign(this.parentItem.CampaignId).bind(this).then(function (adgroups) {\r\n adgroupIdInfoMap = adgroups;\r\n }).finally(function () {\r\n this.parentContainer.find(\"td\").addClass(\"grid-hidden\");\r\n this.parentContainer.prepend(simpleViewContainer);\r\n this.keywordOpportunityEditView.render({\r\n keywords: _.values(this.parentItem.childOpts.idOpportunityMap),\r\n adgroupIdInfoMap: adgroupIdInfoMap\r\n });\r\n uiBlocker.unblock(this.parentContainer, \"keywordopportunity\");\r\n logHelper.logOpportunities({\r\n opportunityIds: _.result(this.parentItem.childOpts, \"ids\", []),\r\n campaignId: this.parentItem.CampaignId,\r\n type: \"CampaignContextKeywordOpportunity\",\r\n action: \"View\"\r\n });\r\n this.asyncLoadData();\r\n });\r\n return this;\r\n },\r\n asyncLoadData: function () {\r\n dataManager.fetchAdgroupsForIds(this.parentItem.CampaignId, [this.parentItem.AdgroupId]).bind(this).then(function (adgroup) {\r\n if (!_.isUndefined(adgroup) && !_.isUndefined(adgroup.DefaultBid) && adgroup.DefaultBid != null) {\r\n this.keywordOpportunityEditView.setAdgroupBid(adgroup.DefaultBid);\r\n }\r\n });\r\n },\r\n simpleViewCancelEdit: function (event) {\r\n event.stopImmediatePropagation();\r\n this.closeSimpleView();\r\n },\r\n simpleViewApply: function (event) {\r\n var itemToApply = _.extend({}, this.parentItem, isKeywordsOptSourceEnhancementEnabled ? {\r\n AdgroupName: event.adgroupNameForApply,\r\n NewAdgroupId: event.adgroupIdForApply\r\n } : {\r\n SuggestedNewValue: event.newBidForApply,\r\n AdgroupName: event.adgroupNameForApply,\r\n NewAdgroupId: event.adgroupIdForApply\r\n });\r\n var selectedKeywordIds = event.selectedIds;\r\n if (isKeywordsOptSourceEnhancementEnabled && !event.useKeywordBid) {\r\n itemToApply.SuggestedNewValue = 0;\r\n }\r\n itemToApply.childOpts = {\r\n ids: [],\r\n idOpportunityMap: {}\r\n };\r\n _.each(selectedKeywordIds, function (id) {\r\n itemToApply.childOpts.ids.push(id);\r\n itemToApply.childOpts.idOpportunityMap[id] = this.parentItem.childOpts.idOpportunityMap[id];\r\n if (isKeywordsOptSourceEnhancementEnabled) {\r\n itemToApply.childOpts.idOpportunityMap[id].SuggestedNewValue = event.useKeywordBid ? event.customBidObj[id].customBid : event.adgroupBid;\r\n }\r\n }, this);\r\n dataManager.ApplyAfterEdit(itemToApply).bind(this).then(function (response) {\r\n this.closeSimpleView();\r\n if (this.parentView && _.isFunction(this.parentView.processApplyResponse)) {\r\n this.parentView.processApplyResponse(response);\r\n }\r\n });\r\n }\r\n});\r\nexport default view;\r\n\r\n","/* eslint-disable */\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport decimalNumber from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport validator from '@bingads-webui-component-legacy/ko-validation/index';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/opportunity-edit-mode');\r\nexport default function (parentView, parentItem) {\r\n this.parentView = parentView;\r\n this.hasBidLandscapeData = ko.observable(false);\r\n this.userInput = ko.observable('').extend({\r\n validate: [validator.custom(function (value) {\r\n return !_.isEmpty(value) && decimalNumber.isValid(value, true);\r\n }, i18n.get('ErrorMessage_InputNumericValue'), false), validator.custom(function (value) {\r\n return decimalNumber.fromLocalToFloat(value) > 0;\r\n }, i18n.get('InputValueGreaterThanZero'), false)]\r\n });\r\n this.userInput.subscribe(function (newValue) {\r\n this.parentView.trigger('newValueInput', {\r\n 'newInput': newValue\r\n });\r\n }, this);\r\n var defaultNewValue = _.result(parentItem, 'SuggestedNewValue') || '';\r\n this.suggestedNewValue = ko.observable(defaultNewValue);\r\n this.bidlandscapeValueToApply = ko.observable(defaultNewValue);\r\n this.inputErrorMessageFromUser = ko.observable('');\r\n this.invalidFromUser = ko.computed(function () {\r\n return !_.isEmpty(this.inputErrorMessageFromUser());\r\n }, this, {\r\n pure: true\r\n });\r\n this.invalidFromUser.extend({\r\n notify: 'always'\r\n });\r\n this.userInput(defaultNewValue);\r\n this.valueToApply = ko.computed({\r\n read: function () {\r\n return this.hasBidLandscapeData() ? this.bidlandscapeValueToApply() : !this.hasBidLandscapeData() && this.userInput.isValid() ? this.userInput() : null;\r\n },\r\n write: function (value) {},\r\n owner: this\r\n });\r\n this.inputValidFromBidLandscape = ko.observable(true);\r\n this.inputValidWithoutUserMarked = ko.computed(function () {\r\n return this.hasBidLandscapeData() && this.inputValidFromBidLandscape() || !this.hasBidLandscapeData() && this.userInput.isValid();\r\n }, this, {\r\n pure: true\r\n });\r\n this.inputValid = ko.computed(function () {\r\n return this.inputValidWithoutUserMarked() && !this.invalidFromUser();\r\n }, this, {\r\n pure: true\r\n });\r\n this.inputErrorMessage = ko.computed(function () {\r\n return this.invalidFromUser() ? this.inputErrorMessageFromUser() : this.inputValidWithoutUserMarked() ? '' : this.userInput.errors()[0];\r\n }, this, {\r\n pure: true\r\n });\r\n this.useCustomeBid = ko.observable(false);\r\n this.equalSuggestedBid = ko.computed(function () {\r\n return decimalNumber.fromLocalToFloat(this.suggestedNewValue()) == decimalNumber.fromLocalToFloat(this.valueToApply());\r\n }, this, {\r\n pure: true\r\n });\r\n}\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport decimalNumber from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport Template from '@bingads-webui-campaign-legacy/opportunity-edit-mode-bidopportunity/template/index.pug';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/opportunity-edit-mode-bidopportunity/viewmodel/index';\r\nimport * as _BidLandscape from '@bingads-webui-campaign-legacy/bidlandscape/view/keyword';\r\nimport util from '@bingads-webui-campaign-legacy/opportunity-edit-mode-util/index';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/opportunity-edit-mode');\r\nvar BidLandscape = _BidLandscape.default;\r\nvar view = Backbone.View.extend({\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n this.parentItem = this.options.parentItem || ({});\r\n this.rowId = this.parentItem.Id;\r\n this.ko_model = new ViewModel(this, this.parentItem);\r\n this.ko_model.i18n = i18n;\r\n this.parentView = this.options.parentView;\r\n this.inSimpleView = true;\r\n this.clickGraph = false;\r\n this.slideChartOptions = null;\r\n this.hasBidLandscape = !this.inSimpleView || this.parentItem.HasBidLandscape || false;\r\n this.bidLandscapeView = {};\r\n },\r\n events: {\r\n 'click .custom_bid': 'useCustomBid',\r\n 'click .suggested_bid': 'useSuggestedBid',\r\n 'click .btn-hero': 'simpleViewApply',\r\n 'click .btn-default': 'closeSimpleView'\r\n },\r\n isDirty: function (container) {\r\n return _.some(['.noEstimatedKpi', '.bidlandscape-container', '.custom-input-value'], function (value) {\r\n return container.find(value).is(':visible');\r\n });\r\n },\r\n setLandscapeData: function (data) {\r\n this.options.landscapeData = data;\r\n this.bidLandscapeView = new BidLandscape(_.extend(this.options, {\r\n inSimpleMode: true,\r\n el: this.$('.bidlandscape-container')[0],\r\n parentItem: this.parentItem,\r\n dataToShow: data\r\n }));\r\n ko.cleanNode(this.$('.bidlandscape-container')[0]);\r\n this.bidLandscapeView.render();\r\n this.ko_model.hasBidLandscapeData(this.bidLandscapeView.hasData());\r\n if (this.ko_model.hasBidLandscapeData()) {\r\n this.bidLandscapeView.on('update', (function (event) {\r\n this.ko_model.bidlandscapeValueToApply(event.valueToApply);\r\n this.ko_model.inputValidFromBidLandscape(event.inputValid && this.ko_model.bidlandscapeValueToApply() > 0);\r\n this.ko_model.inputErrorMessageFromUser('');\r\n }).bind(this));\r\n this.bidLandscapeView.on('input', (function (newInput) {\r\n this.trigger('newValueInput', {\r\n 'newInput': newInput\r\n });\r\n }).bind(this));\r\n if (this.ko_model.useCustomeBid()) {\r\n this.bidLandscapeView.clickCurrentRow();\r\n }\r\n } else {\r\n this.bidLandscapeView.$el = this.$el;\r\n }\r\n },\r\n render: function (options) {\r\n if (!util.closePreviousSimpleView(this.isDirty)) {\r\n this.trigger('cancelAction');\r\n return this;\r\n }\r\n this.options = options || ({});\r\n this.prepareSimpleView();\r\n ko.applyBindings(this.ko_model, this.$el[0]);\r\n this.delegateEvents();\r\n if (!_.isEmpty(this.options.landscapeData)) {\r\n this.setLandscapeData(this.options.landscapeData);\r\n }\r\n return this;\r\n },\r\n close: function () {\r\n this.remove();\r\n },\r\n inValidByUser: function (message) {\r\n if (this.ko_model.hasBidLandscapeData()) {\r\n this.bidLandscapeView.inputValueInvalid(message);\r\n this.ko_model.inputValidFromBidLandscape(this.bidLandscapeView.inputValid() && this.ko_model.bidlandscapeValueToApply() > 0);\r\n }\r\n this.ko_model.inputErrorMessageFromUser(message);\r\n },\r\n prepareSimpleView: function () {\r\n var cachedData = _.extend({}, this.parentItem);\r\n var params = _.extend(this.ko_model, cachedData, {\r\n hasBidLandscape: this.hasBidLandscape,\r\n EstimatedImpDeltaStr: decimalNumber.fromFloatToString(_.result(cachedData, 'EstimatedImpDelta') || 0, 0),\r\n EstimatedClickDeltaStr: decimalNumber.fromFloatToString(_.result(cachedData, 'EstimatedClickDelta') || 0, 0),\r\n EstimatedCostDeltaStr: decimalNumber.fromFloatToString(_.result(cachedData, 'EstimatedCostDelta') || 0, 2)\r\n });\r\n this.$el.html($(Template(params)));\r\n },\r\n simpleViewApply: function (event) {\r\n this.trigger('applyNewBid');\r\n },\r\n closeSimpleView: function (event) {\r\n event.stopImmediatePropagation();\r\n this.close();\r\n this.trigger('cancelAction');\r\n },\r\n useCustomBid: function (event) {\r\n this.ko_model.useCustomeBid(true);\r\n if (!this.ko_model.hasBidLandscapeData()) {\r\n this.$('.bidlandscape-input').trigger('keyup');\r\n } else {\r\n this.bidLandscapeView.clickCurrentRow(event);\r\n }\r\n },\r\n useSuggestedBid: function (event) {\r\n if (this.ko_model.hasBidLandscapeData()) {\r\n this.ko_model.bidlandscapeValueToApply(this.bidLandscapeView.valueToApply());\r\n }\r\n this.ko_model.useCustomeBid(false);\r\n }\r\n});\r\nexport default view;\r\n\r\n","/* eslint-disable */\r\nimport _ from \"underscore\";\r\nimport $ from \"jquery\";\r\nimport Backbone from \"backbone\";\r\nimport bidOpportunityEditView from \"@bingads-webui-campaign-legacy/opportunity-edit-mode-bidopportunity/view/index\";\r\nimport dataManager from \"@bingads-webui-campaign-legacy/inline-opportunity/view/data-manager\";\r\nimport uiBlocker from \"@bingads-webui-component-legacy/uiblocker/service/uiBlocker\";\r\nvar view = Backbone.View.extend({\r\n initialize: function (options) {\r\n this.parentItem = options.parentItem || ({});\r\n this.bidOpportunityEditView = null;\r\n this.options = options || ({});\r\n this.parentView = this.options.parentView;\r\n this.hasBidLandscape = !this.inSimpleView || this.parentItem.HasBidLandscape || false;\r\n this.parentContainer = this.options.parentContainer;\r\n },\r\n render: function (options) {\r\n var simpleViewContainer = $(\"\");\r\n this.bidOpportunityEditView = new bidOpportunityEditView(_.extend(this.options, {\r\n el: simpleViewContainer[0]\r\n }));\r\n this.bidOpportunityEditView.on(\"applyNewBid\", (function (event) {\r\n this.simpleViewApply(event);\r\n }).bind(this));\r\n this.bidOpportunityEditView.on(\"cancelAction\", (function (event) {\r\n this.closeSimpleView(event);\r\n }).bind(this));\r\n this.bidOpportunityEditView.on(\"newValueInput\", (function (event) {\r\n this.bidOpportunityEditView.inValidByUser(dataManager.validateBidInput(this.parentItem.CampaignId, this.parentItem.AdgroupId, event.newInput));\r\n }).bind(this));\r\n this.parentContainer.find(\"td\").addClass(\"grid-hidden\");\r\n this.parentContainer.prepend(simpleViewContainer);\r\n if (this.hasBidLandscape) {\r\n uiBlocker.block(this.$el, \"bidOpportunity\");\r\n dataManager.fetchBidLandscapeData(this.parentItem.KeywordId).bind(this).then(function (data) {\r\n this.bidOpportunityEditView.render({\r\n landscapeData: data\r\n });\r\n }).finally(function () {\r\n uiBlocker.unblock(this.$el, \"bidOpportunity\");\r\n });\r\n } else {\r\n this.bidOpportunityEditView.render({});\r\n }\r\n ;\r\n return this;\r\n },\r\n closeSimpleView: function (event) {\r\n this.parentContainer.find(\"td.bidopportunity-container\").remove();\r\n this.parentContainer.find(\"td.grid-hidden\").removeClass(\"grid-hidden\");\r\n },\r\n simpleViewApply: function (event) {\r\n var itemToApply = _.extend({}, this.parentItem, {\r\n SuggestedNewValue: this.bidOpportunityEditView.ko_model.valueToApply()\r\n });\r\n dataManager.ApplyAfterEdit(itemToApply).bind(this).then(function (response) {\r\n this.closeSimpleView(event);\r\n if (this.parentView && _.isFunction(this.parentView.processApplyResponse)) {\r\n this.parentView.processApplyResponse(response);\r\n }\r\n });\r\n }\r\n});\r\nexport default view;\r\n\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport {\r\n formatClicks,\r\n formatCTR,\r\n formatConversions,\r\n formatCPA,\r\n formatSpendWithOutCurrencySymbolAsExistingBehavior as formatSpend,\r\n} from '@bingads-webui-campaign-legacy/performance-metric-formatter/index';\r\nimport Config from '@bingads-webui-campaign-legacy/inline-opportunity/model/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/inline-opportunity');\r\n\r\nfunction prepareActionDesc(optType, opt) {\r\n switch (optType) {\r\n case Config.OpportunityType.RBA: {\r\n let multiplier = opt.Multiplier;\r\n\r\n multiplier = i18n.formatPercentToFixed(multiplier / 100, { withSign: 'always' });\r\n return i18n.getString('InlineOpportunity_MainPanel_Action_Desc_RBA', {\r\n AudienceName: opt.AudienceName,\r\n CampaignName: opt.CampaignName,\r\n AdGroupCount: i18n.formatDecimalToInteger(opt.AdGroupCount),\r\n Multiplier: multiplier,\r\n });\r\n }\r\n case Config.OpportunityType.Keyword: {\r\n let key = 'InlineOpportunity_MainPanel_Action_Desc_Keywords';\r\n\r\n if (opt.childOpts.ids.length === 1) {\r\n key += '_Singular_Number';\r\n }\r\n return i18n.getString(key, {\r\n keywordCount: opt.childOpts.ids.length,\r\n theme: _.isEmpty(opt.Theme) ? opt.AdgroupName : opt.Theme,\r\n });\r\n }\r\n case Config.OpportunityType.FPBid:\r\n case Config.OpportunityType.MLBid:\r\n case Config.OpportunityType.ML1Bid:\r\n return i18n.getString('InlineOpportunity_MainPanel_Action_Desc_Bids', {\r\n keywordName: opt.KeywordName,\r\n currentValue: opt.CurrentValue,\r\n suggestedNewValue: opt.SuggestedNewValue,\r\n });\r\n case Config.OpportunityType.BMA:\r\n case Config.OpportunityType.BroadMatch:\r\n if (opt.MatchType === Config.MatchType.Exact) {\r\n return i18n.getString('InlineOpportunity_MainPanel_Action_Desc_BroadMatch', {\r\n keywordName: opt.KeywordName,\r\n });\r\n } else if (opt.MatchType === Config.MatchType.Phrase) {\r\n return i18n.getString('InlineOpportunity_MainPanel_Action_Desc_BroadMatch_Phrase', {\r\n keywordName: opt.KeywordName,\r\n });\r\n }\r\n break;\r\n case Config.OpportunityType.LowerBid:\r\n return i18n.getString('InlineOpportunity_MainPanel_Action_Desc_LowerBids', {\r\n campaignName: opt.CampaignName,\r\n lowerPercentage: (opt.Multiplier * 100).toFixed(2),\r\n });\r\n case Config.OpportunityType.BMM:\r\n if (opt.ReferenceKeywordName.length > 0) {\r\n if (opt.MatchType === Config.MatchType.Exact) {\r\n return i18n.getString('InlineOpportunity_MainPanel_Action_Desc_BMM_Exact', {\r\n BMMKeyword: opt.KeywordName,\r\n keywordName: opt.ReferenceKeywordName,\r\n });\r\n } else if (opt.MatchType === Config.MatchType.Phrase) {\r\n return i18n.getString('InlineOpportunity_MainPanel_Action_Desc_BMM_Phrase', {\r\n BMMKeyword: opt.KeywordName,\r\n keywordName: opt.ReferenceKeywordName,\r\n });\r\n }\r\n } else {\r\n return i18n.getString('InlineOpportunity_MainPanel_Action_Desc_BMM_New', {\r\n BMMKeyword: opt.KeywordName,\r\n });\r\n }\r\n break;\r\n default:\r\n return null;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction prepareResultDescForKeyword(opt) {\r\n // total number of keywords to show on screen\r\n let resultDesc;\r\n const defaultShowCount = 2;\r\n const kwLength = _.min([opt.childOpts.ids.length, defaultShowCount]);\r\n const kwTotalCount = opt.childOpts.ids.length;\r\n const suggestedKeywords = _.chain(opt.childOpts.ids)\r\n .first(kwLength)\r\n .map((id) => opt.childOpts.idOpportunityMap[id].KeywordName)\r\n .join(', ')\r\n .value();\r\n\r\n if (kwTotalCount === 1) {\r\n resultDesc = i18n.getString('InlineOpportunity_MainPanel_Result_Desc_Keywords_One_Count', {\r\n keywordList: suggestedKeywords,\r\n });\r\n } else {\r\n resultDesc = i18n.getString('InlineOpportunity_MainPanel_Result_Desc_Keywords', {\r\n keywordList: suggestedKeywords,\r\n });\r\n }\r\n // TODO: [zhbliu] formatList should support \"and more\"\r\n // more than 3 keywords, we should append \"and X more.\" to the end of the sentence.\r\n if (kwTotalCount > 2) {\r\n resultDesc += i18n.getString('InlineOpportunity_MainPanel_Result_Desc_AndMore', {\r\n moreKeywords: opt.childOpts.ids.length - kwLength,\r\n });\r\n }\r\n\r\n const bidList = _.chain(opt.childOpts.ids)\r\n .map((id) => opt.childOpts.idOpportunityMap[id].SuggestedNewValue)\r\n .map(parseFloat).value();\r\n const minBid = Math.min.apply(null, bidList);\r\n const maxBid = Math.max.apply(null, bidList);\r\n\r\n if (minBid === maxBid) {\r\n resultDesc += i18n.getString('InlineOpportunity_MainPanel_Result_Detail_Keywords_bid_single_v2', { bid: minBid });\r\n } else {\r\n resultDesc += i18n.getString('InlineOpportunity_MainPanel_Result_Detail_Keywords_bid_range_v2', { maxBid, minBid });\r\n }\r\n\r\n const sources = _.map(opt.Sources, (key) => i18n.getString(`Keyword_Source_${key}`));\r\n\r\n if (sources.length === 1) {\r\n resultDesc += i18n.getString('InlineOpportunity_MainPanel_Result_Detail_Keywords_one_source_v2', {\r\n source1: sources[0],\r\n });\r\n } else if (sources.length === 2) {\r\n resultDesc += i18n.getString('InlineOpportunity_MainPanel_Result_Detail_Keywords_two_source_v2', {\r\n source1: sources[0],\r\n source2: sources[1],\r\n });\r\n } else if (sources.length >= 3) {\r\n resultDesc += i18n.getString('InlineOpportunity_MainPanel_Result_Detail_Keywords_three_source_v2', {\r\n source1: sources[0],\r\n source2: sources[1],\r\n source3: sources[2],\r\n });\r\n }\r\n\r\n return resultDesc;\r\n}\r\n\r\nfunction prepareResultDescForLowerBid(opt) {\r\n const costDelta = -1.0 * parseFloat(opt.EstimatedCostDelta);\r\n\r\n if (costDelta === 0) {\r\n return i18n.getString('InlineOpportunity_MainPanel_Result_Desc_LowerBids_SameCost', {\r\n estimatedClickDelta: opt.EstimatedClickDelta,\r\n });\r\n } else {\r\n return i18n.getString('InlineOpportunity_MainPanel_Result_Desc_LowerBids', {\r\n estimatedClickDelta: opt.EstimatedClickDelta,\r\n estimatedCostDelta: costDelta.toFixed(2),\r\n });\r\n }\r\n}\r\n\r\n/*\r\nInlineOpportunity_MainPanel_Result_Desc_RBA_Conversion_Greater_Zero_CPA_Greater_Zero\r\nInlineOpportunity_MainPanel_Result_Desc_RBA_Conversion_Greater_Zero_CPA_Equal_Zero\r\nInlineOpportunity_MainPanel_Result_Desc_RBA_Conversion_Greater_Zero_CPA_Less_Zero\r\nInlineOpportunity_MainPanel_Result_Desc_RBA_Conversion_Equal_Zero\r\nInlineOpportunity_MainPanel_Result_Desc_RBA_Conversion_Less_Zero\r\n*/\r\nfunction prepareResultDescForRemarketing({\r\n EstimatedKPI: {\r\n EstimatedConversionKPI: {\r\n ConversionsDelta,\r\n Conversions,\r\n CPADelta,\r\n },\r\n CostDelta,\r\n },\r\n}) {\r\n let i18nKey;\r\n const EstimatedConversionDeltaStr = formatConversions(ConversionsDelta, { withSign: 'never' });\r\n const EstimatedCPADeltaStr = formatCPA(CPADelta, { withSign: 'never' });\r\n const EstimatedCostDeltaStr = formatSpend(CostDelta, { withSign: 'never' });\r\n\r\n if (ConversionsDelta > 0) {\r\n if (CPADelta > 0) {\r\n i18nKey = 'InlineOpportunity_MainPanel_Result_Desc_RBA_ConversionDelta_Greater_Zero_CPADelta_Greater_Zero';\r\n }\r\n if (CPADelta === 0) {\r\n i18nKey = 'InlineOpportunity_MainPanel_Result_Desc_RBA_ConversionDelta_Greater_Zero_CPADelta_Equal_Zero';\r\n }\r\n if (CPADelta < 0) {\r\n i18nKey = 'InlineOpportunity_MainPanel_Result_Desc_RBA_ConversionDelta_Greater_Zero_CPADelta_Less_Zero';\r\n }\r\n } else if (ConversionsDelta === 0) {\r\n if (Conversions === 0) {\r\n i18nKey = 'InlineOpportunity_MainPanel_Result_Desc_RBA_ConversionDelta_Equal_Zero_Conversion_Equal_Zero';\r\n } else {\r\n i18nKey = 'InlineOpportunity_MainPanel_Result_Desc_RBA_ConversionDelta_Equal_Zero_Conversion_Not_Equal_Zero';\r\n }\r\n } else {\r\n i18nKey = 'InlineOpportunity_MainPanel_Result_Desc_RBA_ConversionDelta_Less_Zero';\r\n }\r\n\r\n return i18n.getString(i18nKey, {\r\n ConversionDelta: EstimatedConversionDeltaStr,\r\n CostDelta: EstimatedCostDeltaStr,\r\n CPADelta: EstimatedCPADeltaStr,\r\n });\r\n}\r\n\r\nfunction prepareResultDescForML1({\r\n rawData: {\r\n EstimatedKPI: {\r\n ClickDelta,\r\n CTR,\r\n CTRDelta,\r\n },\r\n },\r\n EstimatedCTR,\r\n}) {\r\n return i18n.getString('InlineOpportunity_MainPanel_Result_Desc_ML1', {\r\n estimatedClickDelta: formatClicks(ClickDelta),\r\n estimatedCTR: formatCTR(CTR + CTRDelta),\r\n CTR: formatCTR(CTR),\r\n CTRLiftPercent: CTR === 0 ? EstimatedCTR : i18n.formatPercentToFixed(CTRDelta / CTR, {\r\n digits: 2,\r\n }),\r\n });\r\n}\r\n\r\nfunction prepareResultDesc(optType, opt) {\r\n switch (optType) {\r\n case Config.OpportunityType.Keyword:\r\n return prepareResultDescForKeyword(opt);\r\n case Config.OpportunityType.ML1Bid:\r\n return prepareResultDescForML1(opt);\r\n case Config.OpportunityType.FPBid:\r\n case Config.OpportunityType.MLBid:\r\n return i18n.getString('InlineOpportunity_MainPanel_Result_Desc_Bids', {\r\n estimatedImpDelta: opt.EstimatedImpDelta,\r\n estimatedClickDelta: opt.EstimatedClickDelta,\r\n });\r\n case Config.OpportunityType.BroadMatch:\r\n case Config.OpportunityType.BMA:\r\n case Config.OpportunityType.BMM:\r\n return i18n.getString('InlineOpportunity_MainPanel_Result_Desc_BroadMatch', {\r\n estimatedImpDelta: opt.EstimatedImpDelta,\r\n estimatedClickDelta: opt.EstimatedClickDelta,\r\n suggestedBid: opt.SuggestedNewValue,\r\n });\r\n case Config.OpportunityType.LowerBid:\r\n return prepareResultDescForLowerBid(opt);\r\n case Config.OpportunityType.RBA:\r\n return prepareResultDescForRemarketing(opt);\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\n/*\r\nInlineOpportunity_MainPanel_Result_Detail_RBA_Conversion_Greater_Zero_CPA_Greater_Zero\r\nInlineOpportunity_MainPanel_Result_Detail_RBA_Conversion_Greater_Zero_CPA_Equal_Zero\r\nInlineOpportunity_MainPanel_Result_Detail_RBA_Conversion_Greater_Zero_CPA_Less_Zero\r\nInlineOpportunity_MainPanel_Result_Detail_RBA_Conversion_Equal_Zero\r\nInlineOpportunity_MainPanel_Result_Detail_RBA_Conversion_Less_Zero\r\n*/\r\nfunction prepareResultDetailForRemarketing({\r\n EstimatedKPI: {\r\n EstimatedConversionKPI: {\r\n Conversions,\r\n ConversionsDelta,\r\n CPADelta,\r\n CPA,\r\n },\r\n CostDelta,\r\n Cost,\r\n },\r\n}) {\r\n let i18nKey;\r\n\r\n const EstimatedConversionDeltaStr = formatConversions(ConversionsDelta, { withSign: 'never' });\r\n const EstimatedConversionStr = formatConversions(ConversionsDelta + Conversions, { withSign: 'never' });\r\n const EstimatedCPAStr = formatCPA(CPADelta + CPA, { withSign: 'never' });\r\n const EstimatedCostStr = formatSpend(CostDelta + Cost, { withSign: 'never' });\r\n\r\n if (ConversionsDelta > 0) {\r\n if (CPADelta > 0) {\r\n i18nKey = 'InlineOpportunity_MainPanel_Result_Detail_RBA_ConversionDelta_Greater_Zero_CPADelta_Greater_Zero';\r\n }\r\n if (CPADelta === 0) {\r\n i18nKey = 'InlineOpportunity_MainPanel_Result_Detail_RBA_ConversionDelta_Greater_Zero_CPADelta_Equal_Zero';\r\n }\r\n if (CPADelta < 0) {\r\n i18nKey = 'InlineOpportunity_MainPanel_Result_Detail_RBA_ConversionDelta_Greater_Zero_CPADelta_Less_Zero';\r\n }\r\n } else if (ConversionsDelta === 0) {\r\n if (Conversions === 0) {\r\n i18nKey = 'InlineOpportunity_MainPanel_Result_Detail_RBA_ConversionDelta_Equal_Zero_Conversion_Equal_Zero';\r\n } else {\r\n i18nKey = 'InlineOpportunity_MainPanel_Result_Detail_RBA_ConversionDelta_Equal_Zero_Conversion_Not_Equal_Zero';\r\n }\r\n } else {\r\n i18nKey = 'InlineOpportunity_MainPanel_Result_Detail_RBA_ConversionDelta_Less_Zero';\r\n }\r\n\r\n return i18n.getString(i18nKey, {\r\n totalConversion: EstimatedConversionStr,\r\n totalCPA: EstimatedCPAStr,\r\n totalCost: EstimatedCostStr,\r\n ConversionDelta: EstimatedConversionDeltaStr,\r\n });\r\n}\r\n\r\nfunction prepareResultDescDetail(optType, opt) {\r\n switch (optType) {\r\n case Config.OpportunityType.Keyword:\r\n if (pageContext.Permissions.IsKeywordsOptSourceEnhancementEnabled) {\r\n return i18n.getString('InlineOpportunity_MainPanel_Result_Desc_Keywords_v2', {\r\n estimatedImpDelta: opt.EstimatedImpDelta,\r\n estimatedClickDelta: opt.EstimatedClickDelta,\r\n estimatedCostDelta: opt.EstimatedCostDelta,\r\n });\r\n } else {\r\n return i18n.getString('InlineOpportunity_MainPanel_Result_Detail_Keywords', {\r\n estimatedImpDelta: opt.EstimatedImpDelta,\r\n estimatedClickDelta: opt.EstimatedClickDelta,\r\n suggestedNewValue: opt.SuggestedNewValue,\r\n estimatedCostDelta: opt.EstimatedCostDelta,\r\n });\r\n }\r\n case Config.OpportunityType.FPBid:\r\n case Config.OpportunityType.MLBid:\r\n case Config.OpportunityType.ML1Bid:\r\n case Config.OpportunityType.BMM:\r\n return i18n.getString('InlineOpportunity_MainPanel_Result_Detail_Bids', {\r\n estimatedCostDelta: opt.EstimatedCostDelta,\r\n });\r\n case Config.OpportunityType.BroadMatch:\r\n case Config.OpportunityType.BMA:\r\n if (_.isEmpty(opt.searchQueries)) {\r\n return i18n.getString('InlineOpportunity_MainPanel_Result_Detail_BroadMatch_Without_Query', {\r\n estimatedCostDelta: opt.EstimatedCostDelta,\r\n });\r\n } else {\r\n return i18n.getString('InlineOpportunity_MainPanel_Result_Detail_BroadMatch', {\r\n searchQueries: opt.SearchQueries ? _.first(opt.SearchQueries, 2).join(', ') : '',\r\n estimatedCostDelta: opt.EstimatedCostDelta,\r\n });\r\n }\r\n case Config.OpportunityType.LowerBid:\r\n return i18n.getString('InlineOpportunity_MainPanel_Result_Detail_LowerBids', {\r\n clicksLastWeek: opt.Clicks,\r\n costLastWeek: opt.Cost,\r\n cpcBefore: opt.CPC,\r\n cpcAfter: (parseFloat(opt.CPC) + parseFloat(opt.EstimatedCPCDelta)).toFixed(2),\r\n });\r\n case Config.OpportunityType.RBA:\r\n return prepareResultDetailForRemarketing(opt);\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\nfunction prepareActionDescDetail(optType, opt) {\r\n let ret;\r\n\r\n // TODO: [zhbliu] formatList should support \"and more\"\r\n if (optType === Config.OpportunityType.RBA) {\r\n if (opt.AdGroupCount === 1) {\r\n ret = i18n.getString('InlineOpportunity_MainPanel_Action_Detail_RBA_One_Count', {\r\n AdGroupName: opt.AdGroupList[0].AdGroupName,\r\n });\r\n } else {\r\n ret = i18n.getString('InlineOpportunity_MainPanel_Action_Detail_RBA_Two_Count', {\r\n AdGroupNameList: _.chain(opt.AdGroupList).map((i) => i.AdGroupName).first(2).value().join(','),\r\n });\r\n }\r\n\r\n if (opt.AdGroupCount > 2) {\r\n ret += i18n.getString('InlineOpportunity_And_More', {\r\n count: opt.AdGroupCount - 2,\r\n });\r\n }\r\n }\r\n\r\n return ret;\r\n}\r\n\r\nconst pageSize = Config.pageSize;\r\n\r\nexport default class ViewModel {\r\n static get PageSize() {\r\n return pageSize;\r\n }\r\n\r\n constructor({\r\n type = '',\r\n opportunities = {},\r\n }) {\r\n this.type = type;\r\n this.opportunities = ko.observable(opportunities);\r\n this.count = ko.computed(() => {\r\n const opts = this.opportunities() || { ids: [] };\r\n\r\n return opts.ids.length;\r\n });\r\n\r\n this.pageNumber = ko.observable(0);\r\n\r\n // find opportunities in current page for this type\r\n this.currentPage = ko.computed(() => {\r\n const opts = this.opportunities();\r\n const pageNumber = this.pageNumber();\r\n\r\n if (opts) {\r\n const { ids, idOpportunityMap } = opts;\r\n const start = pageNumber * pageSize;\r\n\r\n return _.map(ids.slice(start, start + pageSize), (id) => {\r\n const opt = idOpportunityMap[id];\r\n\r\n // fill in the formatted string\r\n return _.extend({\r\n actionDesc: prepareActionDesc(this.type, opt),\r\n resultDesc: prepareResultDesc(this.type, opt),\r\n actionDescDetail: prepareActionDescDetail(this.type, opt),\r\n resultDescDetail: prepareResultDescDetail(this.type, opt),\r\n }, opt);\r\n });\r\n } else {\r\n return [];\r\n }\r\n });\r\n }\r\n}\r\n","\r\nexport default class Connector {\r\n constructor(list, pagination) {\r\n this.list = list;\r\n this.pagination = pagination;\r\n\r\n this.pagination.ko_model.page_size(this.list.PageSize);\r\n this.changeCount(this.list.count);\r\n\r\n this.nextPage = this.nextPage.bind(this);\r\n this.previousPage = this.previousPage.bind(this);\r\n this.changePage = this.changePage.bind(this);\r\n this.changeCount = this.changeCount.bind(this);\r\n }\r\n\r\n nextPage(e, arg) {\r\n this.changePageNumber(arg.page_number + 1);\r\n }\r\n\r\n previousPage(e, arg) {\r\n this.changePageNumber(arg.page_number - 1);\r\n }\r\n\r\n changePage(e, arg) {\r\n this.list.changePage(arg.page_number);\r\n }\r\n\r\n changeCount(count) {\r\n this.pagination.ko_model.item_count(count);\r\n\r\n if (this.pagination.ko_model.page_number() >= this.pagination.ko_model.page_count()) {\r\n this.changePageNumber(this.pagination.ko_model.page_count() - 1);\r\n }\r\n }\r\n\r\n changePageNumber(pageNumber) {\r\n this.list.changePage(pageNumber);\r\n this.pagination.ko_model.page_number(pageNumber);\r\n }\r\n\r\n connect() {\r\n this.list.on('change:count', this.changeCount);\r\n this.pagination.on('click:next', this.nextPage);\r\n this.pagination.on('click:previous', this.previousPage);\r\n this.pagination.on('change:number', this.changePage);\r\n\r\n return this;\r\n }\r\n\r\n disconnect() {\r\n this.list.off('change:count', this.changeCount);\r\n this.pagination.off('click:next', this.nextPage);\r\n this.pagination.off('click:previous', this.previousPage);\r\n this.pagination.off('change:number', this.changePage);\r\n\r\n return this;\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/inline-opportunity/viewmodel/tab-content/list';\r\nimport template from '@bingads-webui-campaign-legacy/inline-opportunity/template/tab-content/list.pug';\r\nimport Config from '@bingads-webui-campaign-legacy/inline-opportunity/model/index';\r\nimport * as dataManager from '@bingads-webui-campaign-legacy/inline-opportunity/model/data-manager';\r\nimport Pagination from '@bingads-webui-component-legacy/pagination/index';\r\nimport Connector from '@bingads-webui-campaign-legacy/inline-opportunity/view/tab-content/pagination-connector';\r\nimport paginationTemplate from '@bingads-webui-campaign-legacy/inline-opportunity/template/tab-content/pagination.pug';\r\nimport { logOpportunities } from '@bingads-webui-campaign-legacy/inline-opportunity/utilities/log-helper';\r\nimport instrumentation from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/inline-opportunity');\r\n\r\nfunction templateOptions(type) {\r\n switch (type) {\r\n case Config.OpportunityType.BroadMatch:\r\n case Config.OpportunityType.BMA:\r\n case Config.OpportunityType.BMM:\r\n return {\r\n showViewButton: false,\r\n showActionBreadcrumb: true,\r\n };\r\n case Config.OpportunityType.RBA:\r\n case Config.OpportunityType.LowerBid:\r\n return {\r\n showViewButton: false,\r\n showActionBreadcrumb: false,\r\n };\r\n default:\r\n return {\r\n showViewButton: true,\r\n showActionBreadcrumb: true,\r\n };\r\n }\r\n}\r\n\r\nexport default class View extends Backbone.View {\r\n get PageSize() {\r\n return ViewModel.PageSize;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .btn-apply': this.apply,\r\n 'click .btn-view': this.view,\r\n 'click .btn-dismiss': this.dismiss,\r\n };\r\n }\r\n\r\n initialize({\r\n type = '',\r\n opportunities = {},\r\n footnoteLink,\r\n }) {\r\n this.viewModel = new ViewModel({\r\n type,\r\n opportunities,\r\n });\r\n\r\n this.viewModel.count.subscribe((count) => {\r\n this.trigger('change:count', count);\r\n });\r\n\r\n this.viewModel.currentPage.subscribe((currentPage) => {\r\n dataManager.viewOpportunityAtCurrentPage(type, currentPage);\r\n\r\n // Add inline opt log when user saw it. The listener is component\\instrumentation\\js\\ariaAdInsightOppTrackingListener.es\r\n const campaignId = _.chain(currentPage).first().result('CampaignId').value();\r\n\r\n if (type !== 'CampaignContextKeywordOpportunity') {\r\n const opportunityIds = _.map(currentPage, (i) => i.OpportunityId);\r\n\r\n logOpportunities({opportunityIds, type, campaignId, action: 'View'});\r\n }\r\n });\r\n\r\n this.templateOptions = _.defaults(templateOptions(type), {\r\n type,\r\n i18n,\r\n footnoteLink,\r\n });\r\n }\r\n\r\n render() {\r\n this.$el.html(template(this.templateOptions));\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n this.pagination = new Pagination({\r\n el: this.$('.pagination-container'),\r\n template: paginationTemplate,\r\n i18n,\r\n }).render();\r\n\r\n\r\n this.paginationConnector = new Connector(this, this.pagination).connect();\r\n\r\n this.pagination.$el.show();\r\n\r\n return this;\r\n }\r\n\r\n remove() {\r\n this.paginationConnector.disconnect();\r\n this.pagination.remove();\r\n\r\n super.remove();\r\n }\r\n\r\n update(opportunities) {\r\n this.viewModel.opportunities(opportunities);\r\n }\r\n\r\n get count() {\r\n return this.viewModel.count();\r\n }\r\n\r\n apply(e) {\r\n this.action('apply', e);\r\n }\r\n\r\n view(e) {\r\n this.action('view', e);\r\n }\r\n\r\n dismiss(e) {\r\n this.action('dismiss', e);\r\n }\r\n\r\n action(name, e) {\r\n const index = $(e.currentTarget).closest('.action-entry').attr('data-index');\r\n const model = this.viewModel.currentPage();\r\n\r\n this.trigger(name, model[index]);\r\n // add log to investigate err\r\n if (_.isUndefined(model[index])) {\r\n const title = $(e.currentTarget).parents('.inline-opportunity-dialog').find('.modal-title');\r\n const cid = window.App.context.attributes.Customer.Id;\r\n const aid = window.App.context.attributes.Account.Id;\r\n\r\n instrumentation.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, 'ApplyInlineOpportunityModelEmpty', { cid, aid, title, model, index});\r\n }\r\n }\r\n\r\n changePage(pageNumber) {\r\n this.viewModel.pageNumber(pageNumber);\r\n }\r\n}\r\n","// designed to be replacement of campaignui/feature/inline-opportunity/view/data-manager.js\r\n// now only viewOpportunityAtCurrentPage in this file\r\nimport _ from 'underscore';\r\nimport legacy$ from 'jquery';\r\nimport config from '@bingads-webui-campaign-legacy/inline-opportunity/model/index';\r\n\r\nexport function viewOpportunityAtCurrentPage(opportunityType, opts) {\r\n const iteratee = opportunityType === config.OpportunityType.Keyword ?\r\n // for keyword opportunity, log uses CampaignId-AdGroupId-OpportunityCount as ID\r\n (opt) => `${opt.CampaignId}-${opt.AdgroupId}-${opt.OpportunityCount}` :\r\n // for other opportunities, log directly uses ID\r\n (opt) => opt.Id;\r\n\r\n const ids = _.map(opts, iteratee);\r\n\r\n legacy$.advertiser.ajaxPost({\r\n url: config.Urls.ViewOpportunityAtCurrentPage + legacy$.advertiser.getAccountContextQueryString(),\r\n data: { opportunityType, ids: ids.join('|') },\r\n async: true,\r\n\r\n //we do not care about the return value now, but logic can be added in the future.\r\n onSuccess: _.noop,\r\n ignoreBeforeAjax: true,\r\n onError: _.noop,\r\n onJsonError: _.noop,\r\n onAjaxComplete: _.noop,\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport { BidAdjustmentOptView } from '@bingads-webui/bid-adjustment-opt';\r\nimport footnoteTemplate from '@bingads-webui-campaign-legacy/inline-opportunity/template/tab-content/footnote.pug';\r\n\r\nconst i18nSharedComponent = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!shared-components/bid-adjustment-opt');\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/inline-opportunity');\r\n\r\nexport default class View extends BidAdjustmentOptView {\r\n initialize({\r\n type,\r\n opportunities,\r\n footnoteLink,\r\n }) {\r\n super.initialize({\r\n i18n: i18nSharedComponent,\r\n type,\r\n });\r\n\r\n this.update(opportunities);\r\n this.footnoteLink = footnoteLink;\r\n }\r\n\r\n render() {\r\n super.render();\r\n\r\n this.$el.append(footnoteTemplate({\r\n i18n,\r\n footnoteLink: this.footnoteLink,\r\n }));\r\n\r\n return this;\r\n }\r\n\r\n update({ ids, idOpportunityMap }) {\r\n let historicalConversions;\r\n let historicalCost;\r\n const details = _.map(ids, (id) => {\r\n const serverData = idOpportunityMap[id];\r\n\r\n historicalCost = serverData.EstimatedKPI.EstimatedConversionKPI.HistoricalCost;\r\n historicalConversions = serverData.EstimatedKPI.EstimatedConversionKPI.HistoricalConversions;\r\n return {\r\n id: serverData.Id,\r\n cost: serverData.EstimatedKPI.Cost,\r\n costDelta: serverData.EstimatedKPI.CostDelta,\r\n conversion: serverData.EstimatedKPI.EstimatedConversionKPI.Conversions,\r\n conversionDelta: serverData.EstimatedKPI.EstimatedConversionKPI.ConversionsDelta,\r\n bidMultiplier: serverData.rawData.Multiplier,\r\n currentBidMultiplier: serverData.rawData.CurrentMultiplier,\r\n\r\n // location bid adjustment\r\n geoLevelId: serverData.GeoLevelId,\r\n locationNames: serverData.LocationNames,\r\n\r\n // ad scheduling bid adjustment\r\n periodType: serverData.PeriodType,\r\n fromHour: serverData.FromHour,\r\n toHour: serverData.ToHour,\r\n\r\n // keyword bid adjustment\r\n currentBid: serverData.rawData.CurrentValue,\r\n suggestedBid: serverData.rawData.SuggestedNewValue,\r\n keywordName: serverData.KeywordName,\r\n conversionRate: serverData.ConversionRate,\r\n keywordMatchType: serverData.KeywordMatchType,\r\n adgroupName: serverData.AdgroupName,\r\n };\r\n });\r\n\r\n this.count = _.size(ids);\r\n\r\n this.setRaiseOrLowerDetails(details, {\r\n conversion: historicalConversions,\r\n cost: historicalCost,\r\n });\r\n }\r\n}\r\n","import ko from 'knockout';\r\n\r\nexport default class ViewModel {\r\n constructor() {\r\n this.isApplyEnable = ko.observable();\r\n this.needIncreaseBudget = false; //P2 feature, disable it now\r\n this.raiseBudget = ko.observable('true');\r\n this.raiseBudgetNumber = ko.observable();\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 { StaticTiles, KPITile } from '@bingads-webui/static-tiles';\r\nimport uiBlocker from '@bingads-webui-component-legacy/uiblocker/service/uiBlocker';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/inline-opportunity/viewmodel/tab-content/adextensions';\r\nimport template from '@bingads-webui-campaign-legacy/inline-opportunity/template/tab-content/adextensions.pug';\r\nimport moreMenuTemplate from '@bingads-webui-campaign-legacy/inline-opportunity/template/more-menu.pug';\r\nimport adExtensionTitleTemplate from '@bingads-webui-campaign-legacy/inline-opportunity/template/tab-content/adextension-tile-title.pug';\r\nimport adExtensionContentTemplate from '@bingads-webui-campaign-legacy/inline-opportunity/template/tab-content/adextension-tile-content.pug';\r\nimport strongTemplate from '@bingads-webui-campaign-legacy/inline-opportunity/template/tab-content/strong.pug';\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\n\r\nconst HintTextMapper = {\r\n SiteLinkOpportunity: 'AdExtensionOpt_Sitelink_Hint',\r\n CalloutOpportunity: 'AdExtensionOpt_Callout_Hint',\r\n};\r\n\r\nfunction getBudgetInfoString(type, i18n) {\r\n let raiseBudgetKey;\r\n let notRaiseBudgetKey;\r\n let raiseBudgetSuggestionKey;\r\n\r\n switch (type) {\r\n case 'SiteLinkOpportunity':\r\n raiseBudgetKey = 'AdExtensionOpt_Sitelink_Raise_Budget';\r\n notRaiseBudgetKey = 'AdExtensionOpt_Sitelink_Not_Raise_Budget';\r\n raiseBudgetSuggestionKey = 'AdExtensionOpt_Sitelink_Raise_Budget_Suggestion';\r\n break;\r\n case 'CalloutOpportunity':\r\n raiseBudgetKey = 'AdExtensionOpt_Callout_Raise_Budget';\r\n notRaiseBudgetKey = 'AdExtensionOpt_Callout_Not_Raise_Budget';\r\n raiseBudgetSuggestionKey = 'AdExtensionOpt_Callout_Raise_Budget_Suggestion';\r\n break;\r\n default:\r\n raiseBudgetKey = 'AdExtensionOpt_Raise_Budget';\r\n notRaiseBudgetKey = 'AdExtensionOpt_Not_Raise_Budget';\r\n raiseBudgetSuggestionKey = 'AdExtensionOpt_Raise_Budget_Suggestion';\r\n }\r\n\r\n return {\r\n raiseBudgetInfo: i18n.getString(raiseBudgetKey),\r\n notRaiseBudgetInfo: i18n.getString(notRaiseBudgetKey),\r\n raiseBudgetSuggestion: i18n.getString(raiseBudgetSuggestionKey, { budget: '$20' }),\r\n };\r\n}\r\n\r\nfunction getCPCIncreaseReason(type, i18n) {\r\n switch (type) {\r\n case 'SiteLinkOpportunity':\r\n return i18n.getString('Opportunity_Sitelink_CPC_Increase');\r\n case 'CalloutOpportunity':\r\n return i18n.getString('Opportunity_Callout_CPC_Increase');\r\n default:\r\n return i18n.getString('Opportunity_Extensions_CPC_Increase');\r\n }\r\n}\r\n\r\nfunction formatPercent(v, i18n) {\r\n return i18n.formatPercent(v, {\r\n maximumFractionDigits: 2,\r\n minimumFractionDigits: 2,\r\n });\r\n}\r\n\r\nfunction formatDecimal(v, i18n) {\r\n return i18n.formatDecimal(v, {\r\n maximumFractionDigits: 2,\r\n minimumFractionDigits: 2,\r\n });\r\n}\r\n\r\nfunction formatInteger(v, i18n) {\r\n return i18n.formatDecimal(v);\r\n}\r\n\r\nfunction getTileContent(i18n, fromValue, deltaValue, symbol, formatter, showDescInTile = true) {\r\n if (formatter(fromValue, i18n) ===\r\n formatter(fromValue + deltaValue, i18n)) {\r\n return adExtensionContentTemplate({ symbol: '', delta: '--', desc: '' });\r\n }\r\n\r\n let signText;\r\n const deltaLift = fromValue === 0 ? '--' : formatPercent(Math.abs(deltaValue / fromValue), i18n);\r\n\r\n if (deltaValue > 0) {\r\n signText = i18n.getString('AdExtensionOpt_Increase');\r\n } else if (deltaValue < 0) {\r\n signText = i18n.getString('AdExtensionOpt_Decrease');\r\n }\r\n\r\n return adExtensionContentTemplate({\r\n symbol,\r\n delta: formatter(deltaValue, i18n),\r\n desc: showDescInTile ? `(${deltaLift} ${signText})` : '',\r\n });\r\n}\r\n\r\nfunction getTileFooter(i18n, from, to) {\r\n return i18n.getString('StaticTiles_KPI_Footer', {\r\n from: strongTemplate({ value: from }),\r\n to: strongTemplate({ value: to }),\r\n });\r\n}\r\n\r\nexport default class View extends Backbone.View {\r\n initialize({ type,\r\n campaignId,\r\n campaignName,\r\n opportunities = {},\r\n footnoteLink,\r\n i18n,\r\n showBackBtn = false,\r\n isForVNext,\r\n }) {\r\n this.type = type;\r\n this.campaignId = campaignId;\r\n this.campaignName = campaignName;\r\n this.opportunities = opportunities;\r\n this.footnoteLink = footnoteLink;\r\n this.i18n = i18n;\r\n this.showBackBtn = showBackBtn;\r\n this.viewModel = new ViewModel();\r\n this.count = 1;\r\n this.hintText = i18n.getString(HintTextMapper[type]);\r\n this.staticTiles = this.getTitles();\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n getAssociationEditorAndRender() {\r\n uiBlocker.block(this.$el, '.adextension-association-editor');\r\n\r\n const associationEditorMapper = {\r\n SiteLinkOpportunity: SiteLinkAssociationEditor,\r\n CalloutOpportunity: CalloutAssociationEditor,\r\n };\r\n\r\n if (_.has(associationEditorMapper, this.type)) {\r\n this.associationEditor = new associationEditorMapper[this.type]({\r\n campaignId: this.campaignId,\r\n campaignName: this.campaignName,\r\n entityType: 'campaign',\r\n hasSubTitle: false,\r\n showErrorsInline: true,\r\n showSaveBar: false,\r\n disableDelete: true,\r\n usePanel: this.isForVNext,\r\n });\r\n } else {\r\n this.associationEditor = undefined;\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 if (this.isForVNext) {\r\n $('.modal-backdrop.in').hide();\r\n }\r\n });\r\n this.associationEditor.on('close:extensionEditor', () => {\r\n this.trigger('remove:editor');\r\n if (this.isForVNext) {\r\n $('.modal-backdrop.in').show();\r\n }\r\n });\r\n\r\n // render\r\n this.associationEditor.render();\r\n this.$('.adextension-association-editor').append(this.associationEditor.$el);\r\n }\r\n uiBlocker.unblock(this.$el, '.adextension-association-editor');\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .back': 'back',\r\n 'click .apply': 'apply',\r\n 'click .dismiss': 'dismiss',\r\n };\r\n }\r\n\r\n back() {\r\n this.trigger('back');\r\n }\r\n\r\n apply(e) {\r\n this.associationEditor.trigger('associate:extensions', e);\r\n }\r\n\r\n dismiss() {\r\n this.trigger('dismiss', { Id: _.first(this.opportunities.ids) });\r\n }\r\n\r\n update(opportunities) {\r\n this.opportunities = opportunities;\r\n }\r\n\r\n getTitles() {\r\n const opportunity = _.chain(this.opportunities.idOpportunityMap).values().first().value() || {};\r\n const tileViews = [];\r\n const popupIdMap = {\r\n SiteLinkOpportunity: {\r\n Clicks: 'pop_BA_OpptyGrid_Sitelink_est_change_clicks',\r\n CTR: 'pop_BA_OpptyGrid_Sitelink_est_change_CTR',\r\n Cost: 'pop_BA_OpptyGrid_Sitelink_est_change_spend',\r\n CPC: 'pop_BA_OpptyGrid_Sitelink_est_change_CPC',\r\n },\r\n CalloutOpportunity: {\r\n Clicks: 'pop_BA_OpptyGrid_Callout_est_change_clicks',\r\n CTR: 'pop_BA_OpptyGrid_Callout_est_change_CTR',\r\n Cost: 'pop_BA_OpptyGrid_Callout_est_change_spend',\r\n CPC: 'pop_BA_OpptyGrid_Callout_est_change_CPC',\r\n },\r\n };\r\n\r\n if (opportunity.EstimatedKPI.CTRDelta !== 0) {\r\n tileViews.push(new KPITile({\r\n from: opportunity.EstimatedKPI.Clicks,\r\n delta: opportunity.EstimatedKPI.ClickDelta,\r\n type: 'integer',\r\n i18n: this.i18n,\r\n footerTemplate: ({ i18n, from, to }) => getTileFooter(i18n, from, to),\r\n titleTemplate: () => adExtensionTitleTemplate({\r\n popupId: popupIdMap[this.type].Clicks,\r\n i18n: this.i18n,\r\n key: 'AdExtensionOpt_Tiles_Clicks_Title',\r\n }),\r\n contentTemplate: ({ symbol }) =>\r\n getTileContent(this.i18n, opportunity.EstimatedKPI.Clicks, opportunity.EstimatedKPI.ClickDelta, symbol, formatInteger),\r\n }));\r\n\r\n tileViews.push(new KPITile({\r\n from: opportunity.EstimatedKPI.CTR,\r\n delta: opportunity.EstimatedKPI.CTRDelta,\r\n type: 'percent',\r\n i18n: this.i18n,\r\n footerTemplate: ({ i18n, from, to }) => getTileFooter(i18n, from, to),\r\n titleTemplate: () => adExtensionTitleTemplate({\r\n popupId: popupIdMap[this.type].CTR,\r\n i18n: this.i18n,\r\n key: 'AdExtensionOpt_Tiles_CTR_Title',\r\n }),\r\n contentTemplate: ({ symbol }) =>\r\n getTileContent(this.i18n, opportunity.EstimatedKPI.CTR, opportunity.EstimatedKPI.CTRDelta, symbol, formatPercent),\r\n }));\r\n\r\n tileViews.push(new KPITile({\r\n from: opportunity.EstimatedKPI.Cost,\r\n delta: opportunity.EstimatedKPI.CostDelta,\r\n i18n: this.i18n,\r\n footerTemplate: ({ i18n, from, to }) => getTileFooter(i18n, from, to),\r\n titleTemplate: () => adExtensionTitleTemplate({\r\n popupId: popupIdMap[this.type].Cost,\r\n i18n: this.i18n,\r\n key: 'AdExtensionOpt_Tiles_Cost_Title',\r\n }),\r\n contentTemplate: ({ symbol }) =>\r\n getTileContent(this.i18n, opportunity.EstimatedKPI.Cost, opportunity.EstimatedKPI.CostDelta, symbol, formatDecimal),\r\n }));\r\n\r\n tileViews.push(new KPITile({\r\n from: opportunity.EstimatedKPI.CPC,\r\n delta: opportunity.EstimatedKPI.CPCDelta,\r\n i18n: this.i18n,\r\n footerTemplate: ({ i18n, from, to }) => getTileFooter(i18n, from, to),\r\n titleTemplate: () => adExtensionTitleTemplate({\r\n popupId: popupIdMap[this.type].CPC,\r\n i18n: this.i18n,\r\n key: 'Opportunity_Tiles_CPC_Title',\r\n }),\r\n // Don't need show \"(xx increase)\" for CPC\r\n contentTemplate: ({ symbol }) => {\r\n const showDescInTile = false;\r\n\r\n return getTileContent(this.i18n, opportunity.EstimatedKPI.CPC, opportunity.EstimatedKPI.CPCDelta, symbol, formatDecimal, showDescInTile);\r\n },\r\n }));\r\n }\r\n return new StaticTiles({ tileViews });\r\n }\r\n\r\n render() {\r\n this.$el.html(template(_.extend({\r\n showBackBtn: this.showBackBtn,\r\n footnoteLink: this.footnoteLink,\r\n i18n: this.i18n,\r\n hintText: this.hintText,\r\n }, getBudgetInfoString(this.type, this.i18n))));\r\n\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n this.staticTiles.render();\r\n this.$('.adextension-opportunity-tiles').append(this.staticTiles.$el);\r\n\r\n this.getAssociationEditorAndRender();\r\n\r\n this.$('.cpc-increase-popup').popover({\r\n html: true,\r\n trigger: 'focus|click',\r\n template: moreMenuTemplate(),\r\n content: getCPCIncreaseReason(this.type, this.i18n),\r\n });\r\n\r\n return this;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport Config from '@bingads-webui-campaign-legacy/inline-opportunity/model/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/inline-opportunity');\r\n\r\nexport default class ViewModel {\r\n constructor({\r\n moreOptCount,\r\n }) {\r\n this.allOpportunityResults = null;\r\n\r\n // Default to Keyword\r\n this.currentOptType = ko.observable('');\r\n\r\n this.tabItems = ko.observableArray();\r\n\r\n this.applyResultMessage = ko.observable('');\r\n this.applyWarningMessage = ko.observable('');\r\n\r\n this.isResultSuccess = ko.observable(false);\r\n this.isResultWarning = ko.observable(false);\r\n\r\n this.moreOptCount = ko.observable(moreOptCount);\r\n\r\n this.hasNoticeMessage = ko.computed(() => {\r\n return this.isResultSuccess() || this.isResultWarning();\r\n });\r\n }\r\n\r\n // This function is called every time an action (apply/dismiss) happens.\r\n // and is responsible for:\r\n // Update visibility of the tabs (tabs should be hidden when no opt is available)\r\n updateData(types, opt) {\r\n this.allOpportunityResults = opt;\r\n\r\n // Update tab\r\n this.tabItems(\r\n _.compact(_.map(types, (type) => {\r\n const tableLabelTextKey = Config.TabLabelTextKeys[type];\r\n\r\n // only show the ones that known, which means\r\n // has config in TabLabelTextKeys\r\n return tableLabelTextKey ? {\r\n text: i18n.get(tableLabelTextKey),\r\n optType: type,\r\n isNewFeature: Config.TabIsNewFeature[type],\r\n } : null;\r\n })));\r\n }\r\n}\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport config from '@bingads-webui-campaign-legacy/inline-opportunity/model/index';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/inline-opportunity');\r\nfunction closePreviousSimpleView(viewIsDirty) {\r\n var simpleViewContainer = $('.inline-opportunity-main-panel');\r\n if (simpleViewContainer.length > 0) {\r\n var previousEditView = simpleViewContainer.find('.simple-view-edit-mode');\r\n if (previousEditView.length > 0) {\r\n var isDirty = true;\r\n if (_.isFunction(viewIsDirty)) {\r\n isDirty = viewIsDirty(previousEditView);\r\n }\r\n if (isDirty && !nativeConfirm(i18n.get('WarnForUnsavedChangeContinue'))) {\r\n return false;\r\n }\r\n previousEditView.find('input.btn-default').click();\r\n }\r\n }\r\n return true;\r\n}\r\n;\r\nfunction nativeConfirm(message) {\r\n var toContinue;\r\n try {\r\n var r = confirm(message);\r\n toContinue = r;\r\n } catch (ex) {\r\n toContinue = true;\r\n }\r\n ;\r\n return toContinue;\r\n}\r\n;\r\nfunction getOpportunitySummaryTabUrl(campaignId) {\r\n var optTabUrl = ('/campaign/vnext/recommendations/All?cid=').concat(pageContext.CurrentCustomer.Id).concat('&uid=').concat(pageContext.CurrentUser.Id).concat('&aid=').concat(pageContext.CurrentAccount.Id).concat('&campaignId=').concat(campaignId).concat('&recsrc=inlineopportunity');\r\n return optTabUrl;\r\n}\r\nexport default {\r\n closePreviousSimpleView: closePreviousSimpleView,\r\n getOpportunitySummaryTabUrl: getOpportunitySummaryTabUrl\r\n};\r\n\r\n","import Promise from 'bluebird';\r\nimport $ from 'jquery';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\n\r\nexport function applyRBA (audienceName, campaignId, multiplier) {\r\n const enddate = state.get('$daterange').formatedEnd;\r\n const startdate = state.get('$daterange').formatedStart;\r\n const $filter = encodeURIComponent(`AudienceCriterion/AudienceName eq '${audienceName}'`);\r\n const query = {\r\n startdate,\r\n enddate,\r\n $filter,\r\n };\r\n const queryString = decodeURIComponent($.param(query));\r\n const requestParam = {\r\n 'Entity': 'AdGroupAudienceAssociation',\r\n 'BatchAction': {\r\n 'Actions': [\r\n {\r\n '@odata.type': '#Model.NumericAction',\r\n 'Property': 'AudienceCriterion/BidMultiplier',\r\n 'ActionType': 'SetToAmount',\r\n 'Value': multiplier,\r\n },\r\n ],\r\n },\r\n 'Selection': {\r\n 'QueryString': queryString,\r\n 'CampaignId': campaignId,\r\n 'AdGroupId': null,\r\n },\r\n 'Description': '',\r\n };\r\n\r\n return jsdata.BulkEditSession.create(requestParam);\r\n}\r\n\r\nexport function getApplyRBAStatus(data, period = 1000, timeout = 60000 * 5) {\r\n const id = data.Id;\r\n const getStatus = (optId) => {\r\n return jsdata.BulkEditSession.find(optId, {\r\n entitySet: edm.currentAccount.BulkEditSessions,\r\n cacheResponse: false,\r\n bypassCache: true,\r\n });\r\n };\r\n\r\n return new Promise((resolve, reject) => {\r\n const interval = window.setInterval(() => {\r\n getStatus(id).then((ret) => {\r\n const status = ret.Status;\r\n\r\n if (status === 'CompletedWithErrors' || status === 'Failed' || status === 'Completed') {\r\n clearInterval(interval);\r\n if (status === 'Completed') {\r\n resolve(ret);\r\n } else {\r\n reject(ret);\r\n }\r\n }\r\n });\r\n }, period);\r\n\r\n setTimeout(() => {\r\n reject('timeout');\r\n }, timeout);\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport mainPanelTemplate from '@bingads-webui-campaign-legacy/inline-opportunity/template/main-panel.pug';\r\nimport moreMenuTemplate from '@bingads-webui-campaign-legacy/inline-opportunity/template/more-menu.pug';\r\nimport moreMenuContentTemplate from '@bingads-webui-campaign-legacy/inline-opportunity/template/more-menu-content.pug';\r\nimport dataManager from '@bingads-webui-campaign-legacy/inline-opportunity/view/data-manager';\r\nimport KeywordOpportunity from '@bingads-webui-campaign-legacy/inline-opportunity/view/opportunity/keyword';\r\nimport BidOpportunity from '@bingads-webui-campaign-legacy/inline-opportunity/view/opportunity/bid';\r\nimport TabContentList from '@bingads-webui-campaign-legacy/inline-opportunity/view/tab-content/list';\r\nimport TabContentBidAdjustment from '@bingads-webui-campaign-legacy/inline-opportunity/view/tab-content/bid-adjustment';\r\nimport AdExtensionOpportunity from '@bingads-webui-campaign-legacy/inline-opportunity/view/tab-content/adextensions';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/inline-opportunity/viewmodel/index';\r\nimport Config from '@bingads-webui-campaign-legacy/inline-opportunity/model/index';\r\nimport util from '@bingads-webui-campaign-legacy/inline-opportunity/view/util';\r\nimport {applyRBA, getApplyRBAStatus} from '@bingads-webui-campaign-legacy/inline-opportunity/service/remarketing-bid-adjustment';\r\nimport { logOpportunities, logOpportunity } from '@bingads-webui-campaign-legacy/inline-opportunity/utilities/log-helper';\r\nimport withUiBlock from '@bingads-webui-component-legacy/uiblocker/index';\r\n// eslint-disable-next-line\r\nimport _bingads_webui_component_legacy_legacy_router_index from '@bingads-webui-component-legacy/legacy-router/index';\r\n// eslint-disable-next-line\r\nconst { legacyRouter } = _bingads_webui_component_legacy_legacy_router_index;\r\nimport appConfig from '@bingads-webui-component-legacy/config/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/inline-opportunity');\r\nconst i18nGlobal = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\nconst i18nSharedComponent = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/inline-opportunity-adextension');\r\n\r\nexport default class MainPanel extends Backbone.View {\r\n get template() {\r\n return mainPanelTemplate;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .alert.alert-info button': this.dismissSuccessAlerts,\r\n 'click .alert.alert-warning button': this.dismissWarningAlerts,\r\n 'click .inline-opportunity__tab': this.selectTab,\r\n 'click .inline-opportunity-footnote a': this.gotoRecommendationTab,\r\n };\r\n }\r\n\r\n initialize({\r\n campaignId,\r\n campaignName,\r\n moreOptCount,\r\n optsResult,\r\n isForVNext,\r\n }) {\r\n this.campaignId = campaignId;\r\n this.campaignName = campaignName;\r\n this.optsResult = optsResult;\r\n this.isForVNext = isForVNext;\r\n this.appConfig = appConfig;\r\n\r\n this.tabContents = {};\r\n this.type = null;\r\n\r\n this.viewModel = new ViewModel({\r\n campaignId,\r\n moreOptCount,\r\n });\r\n\r\n this.viewModel.currentOptType.subscribe((type) => {\r\n if (!type) {\r\n return;\r\n }\r\n\r\n this.type = type;\r\n if (this.currentTabContent) {\r\n this.currentTabContent.$el.detach();\r\n }\r\n\r\n if (!this.tabContents[type]) {\r\n this.tabContents[type] = this.newTabContent(type);\r\n }\r\n\r\n this.currentTabContent = this.tabContents[type];\r\n this.$('.inline-opportunity__tab-content').append(this.currentTabContent.$el);\r\n dataManager.viewOpportunity(campaignId, type);\r\n\r\n // Add inline opt log when user saw it. The listener is component\\instrumentation\\js\\ariaAdInsightOppTrackingListener.es\r\n const isMultiPage = Config.isMultiPage[type];\r\n const allOpportunityIds = _.chain(this.optsResult).result(type).result('ids', []).value();\r\n const count = isMultiPage ? Config.pageSize : allOpportunityIds.length;\r\n const opportunityIds = _.first(allOpportunityIds, count);\r\n\r\n // View log\r\n if (type !== 'CampaignContextKeywordOpportunity') {\r\n logOpportunities({ opportunityIds, type, campaignId: this.campaignId, action: 'View' });\r\n }\r\n // Click log\r\n logOpportunity({ id: '0', type, campaignId: this.campaignId, action: 'Click' });\r\n });\r\n\r\n return this;\r\n }\r\n\r\n render() {\r\n const optTabUrl = util.getOpportunitySummaryTabUrl(this.campaignId);\r\n\r\n const viewParam = {\r\n i18n,\r\n i18nGlobal,\r\n moreOptCount: this.viewModel.moreOptCount(),\r\n optTabUrl,\r\n };\r\n\r\n this.$el.html(mainPanelTemplate(viewParam));\r\n\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n this.$('.inline-opportunity__tab-content').append(this.currentTabContent.$el);\r\n\r\n let moreMenuKey = 'InlineOpportunity_MoreMenu_Text';\r\n\r\n if (this.viewModel.moreOptCount() === 1) {\r\n moreMenuKey = 'InlineOpportunity_One_MoreMenu_Text';\r\n }\r\n\r\n this.$el.find('.more-opportunities a').popover({\r\n html: true,\r\n template: moreMenuTemplate(),\r\n content: moreMenuContentTemplate({\r\n i18n,\r\n moreMenuTextContent: i18n.get(moreMenuKey, {\r\n moreCount: this.viewModel.moreOptCount(),\r\n opportunityPageLink: optTabUrl,\r\n }),\r\n }),\r\n });\r\n\r\n return this;\r\n }\r\n\r\n dismissWarningAlerts(e) {\r\n this.viewModel.isResultWarning(false);\r\n e.stopPropagation();\r\n }\r\n\r\n dismissSuccessAlerts(e) {\r\n this.viewModel.isResultSuccess(false);\r\n e.stopPropagation();\r\n }\r\n\r\n // further process the opportunity data before displaying on the panel\r\n // The return value is TRUE when more opts are available, and FALSE when no more.\r\n updateOpportunityData(opportunityTypes, opportunityTypeResults) {\r\n this.viewModel.updateData(opportunityTypes, opportunityTypeResults);\r\n\r\n // Impression log\r\n _.each(opportunityTypes, (type) => {\r\n logOpportunity({ id: '0', type, campaignId: this.campaignId, action: 'Impression' });\r\n });\r\n\r\n _.each(_.omit(this.tabContents, opportunityTypes), (tabContent, type) => {\r\n tabContent.remove();\r\n delete this.tabContents[type];\r\n });\r\n\r\n _.each(opportunityTypes, (type) => {\r\n const opportunities = opportunityTypeResults[type];\r\n\r\n if (this.tabContents[type]) {\r\n this.tabContents[type].update(opportunities);\r\n } else {\r\n this.tabContents[type] = this.newTabContent(type);\r\n }\r\n });\r\n\r\n const firstNonEmptyType = _.findKey(this.tabContents, (tabContent) => {\r\n return tabContent.count > 0;\r\n });\r\n\r\n const currentType = this.viewModel.currentOptType();\r\n\r\n if (_.isEmpty(currentType) || !this.tabContents[currentType] || this.tabContents[currentType].count === 0) {\r\n this.viewModel.currentOptType(firstNonEmptyType);\r\n }\r\n\r\n return Boolean(firstNonEmptyType);\r\n }\r\n\r\n updateOpportunityDataWrapper(result) {\r\n const opts = result.opportunityTypes;\r\n const optsResult = result.opportunityTypeResults;\r\n\r\n return this.updateOpportunityData(opts, optsResult);\r\n }\r\n\r\n processApplyResponse(response) {\r\n let notifKeySuccess = 'InlineOpportunity_MainPanel_ApplyResultMessage_Success_Opportunity';\r\n let notifKeyWarning = 'InlineOpportunity_MainPanel_ApplyResultMessage_Warning_Opportunity';\r\n\r\n if (this.viewModel.currentOptType() === Config.OpportunityType.Keyword) {\r\n notifKeySuccess = 'InlineOpportunity_MainPanel_ApplyResultMessage_Success';\r\n notifKeyWarning = 'InlineOpportunity_MainPanel_ApplyResultMessage_Warning';\r\n }\r\n if (response.SuccessCount === 1) {\r\n notifKeySuccess += '_Singular_Number';\r\n }\r\n if (response.FailedCount === 1) {\r\n notifKeyWarning += '_Singular_Number';\r\n }\r\n\r\n if (response.SuccessCount > 0) {\r\n this.viewModel.isResultSuccess(true);\r\n this.viewModel.isResultWarning(false);\r\n\r\n const message = i18n.get(notifKeySuccess, {\r\n successCount: response.SuccessCount,\r\n });\r\n\r\n this.viewModel.applyResultMessage(message);\r\n }\r\n if (response.FailedCount > 0) {\r\n this.viewModel.isResultWarning(true);\r\n this.viewModel.isResultSuccess(false);\r\n let warningMessage = i18n.get(notifKeyWarning, {\r\n failedCount: response.FailedCount,\r\n });\r\n\r\n for (let m in response.FailedReasons) {\r\n warningMessage += response.FailedReasons[m];\r\n }\r\n warningMessage += '
';\r\n\r\n warningMessage += i18n.get(notifKeySuccess, {\r\n successCount: response.SuccessCount,\r\n });\r\n\r\n this.viewModel.applyWarningMessage(warningMessage);\r\n }\r\n\r\n // after apply/dismiss, the opportunity is\r\n // usually dismissed and should not appear on the view.\r\n dataManager.fetchInlineOpportunity(this.campaignId, this.campaignName)\r\n .bind(this).then(\r\n this.updateOpportunityDataWrapper.bind(this)\r\n );\r\n }\r\n\r\n processDismissReponse(response) {\r\n let notifKeySuccess = 'InlineOpportunity_MainPanel_DismissResultMessage_Success_Opportunity';\r\n let notifKeyWarning = 'InlineOpportunity_MainPanel_DismissResultMessage_Warning_Opportunity';\r\n\r\n if (this.viewModel.currentOptType() === Config.OpportunityType.Keyword) {\r\n notifKeySuccess = 'InlineOpportunity_MainPanel_DismissResultMessage_Success';\r\n notifKeyWarning = 'InlineOpportunity_MainPanel_DismissResultMessage_Warning';\r\n }\r\n if (response.SuccessCount === 1) {\r\n notifKeySuccess += '_Singular_Number';\r\n }\r\n if (response.FailedCount === 1) {\r\n notifKeyWarning += '_Singular_Number';\r\n }\r\n\r\n if (response.SuccessCount > 0) {\r\n this.viewModel.isResultSuccess(true);\r\n this.viewModel.isResultWarning(false);\r\n\r\n const message = i18n.get(notifKeySuccess, {\r\n successCount: response.SuccessCount,\r\n });\r\n\r\n this.viewModel.applyResultMessage(message);\r\n }\r\n if (response.FailedCount > 0) {\r\n this.viewModel.isResultWarning(true);\r\n this.viewModel.isResultSuccess(false);\r\n let warningMessage = i18n.get(notifKeyWarning, {\r\n failedCount: response.FailedCount,\r\n });\r\n\r\n for (let m in response.FailedReasons) {\r\n warningMessage += response.FailedReasons[m];\r\n }\r\n warningMessage += '
';\r\n\r\n warningMessage += i18n.get(notifKeySuccess, {\r\n successCount: response.SuccessCount,\r\n });\r\n\r\n this.viewModel.applyWarningMessage(warningMessage);\r\n }\r\n\r\n // after apply/dismiss, the opportunity is\r\n // usually dismissed and should not appear on the view.\r\n dataManager.fetchInlineOpportunity(this.campaignId, this.campaignName)\r\n .bind(this).then(\r\n this.updateOpportunityDataWrapper.bind(this)\r\n );\r\n }\r\n\r\n newTabContent(type) {\r\n let tabContent;\r\n const footnoteLink = 'javascript:;'; // eslint-disable-line\r\n\r\n if (type === Config.OpportunityType.SBA || type === Config.OpportunityType.LBA || type === Config.OpportunityType.KBA) {\r\n const bidAdjustmentViewTypeMap = {\r\n AdSchedulingBidAdjustmentOpportunity: 'Scheduling',\r\n LocationBidAdjustmentOpportunity: 'Location',\r\n KeywordBidAdjustmentOpportunity: 'Keyword',\r\n };\r\n\r\n tabContent = new TabContentBidAdjustment({\r\n type: bidAdjustmentViewTypeMap[type],\r\n opportunities: this.viewModel.allOpportunityResults[type],\r\n footnoteLink,\r\n });\r\n\r\n tabContent.on('apply', (ids) => {\r\n dataManager.directlyApply(\r\n this.campaignId,\r\n type,\r\n ids,\r\n false // apply opt\r\n ).then(this.processApplyResponse.bind(this));\r\n });\r\n\r\n tabContent.on('dismiss', (ids) => {\r\n dataManager.directlyApply(\r\n this.campaignId,\r\n type,\r\n ids,\r\n true // dismiss opt\r\n ).then(this.processApplyResponse.bind(this));\r\n });\r\n\r\n } else if (_.contains(Config.OpportunityType.AdExtensions, type)) {\r\n tabContent = new AdExtensionOpportunity({\r\n type,\r\n campaignId: this.campaignId,\r\n campaignName: this.campaignName,\r\n opportunities: this.viewModel.allOpportunityResults[type],\r\n footnoteLink,\r\n i18n: i18nSharedComponent,\r\n isForVNext: this.isForVNext,\r\n });\r\n\r\n tabContent.on('apply', (e) => {\r\n dataManager.directlyApply(\r\n this.campaignId,\r\n type,\r\n e.Id,\r\n false,\r\n e.data,\r\n ).then(this.processApplyResponse.bind(this));\r\n });\r\n\r\n tabContent.on('dismiss', (e) => {\r\n dataManager.directlyApply(\r\n this.campaignId,\r\n type,\r\n e.Id,\r\n true // dismiss\r\n ).then(this.processDismissReponse.bind(this));\r\n });\r\n\r\n } else {\r\n tabContent = new TabContentList({\r\n type,\r\n opportunities: this.viewModel.allOpportunityResults[type],\r\n footnoteLink,\r\n });\r\n\r\n tabContent.on('view', (e) => {\r\n if (this.viewModel.currentOptType() === Config.OpportunityType.Keyword) {\r\n new KeywordOpportunity({\r\n parentView: this,\r\n parentContainer: this.$(`tr.action-entry#${e.Id}`),\r\n parentItem: e,\r\n }).render();\r\n } else {\r\n new BidOpportunity({\r\n parentView: this,\r\n parentContainer: this.$(`tr.action-entry#${e.Id}`),\r\n parentItem: e,\r\n }).render();\r\n }\r\n });\r\n\r\n tabContent.on('apply', (e) => {\r\n const opportunityId = e.Id;\r\n const campaignId = this.campaignId;\r\n const optType = type;\r\n\r\n if (this.viewModel.currentOptType() === Config.OpportunityType.RBA) {\r\n const blocker = withUiBlock($('.inline-opportunity-main-panel'), 'inline-opportunity-rba-blocker', true);\r\n\r\n applyRBA(e.AudienceName, e.CampaignId, e.Multiplier)\r\n .then((data) => {\r\n return getApplyRBAStatus(data);\r\n })\r\n .finally(blocker)\r\n .then(() => {\r\n dataManager.directlyApply(campaignId, optType, opportunityId, false).then((response) => {\r\n this.processApplyResponse(response);\r\n });\r\n });\r\n } else {\r\n dataManager.directlyApply(campaignId, optType, opportunityId, false).then((response) => {\r\n this.processApplyResponse(response);\r\n });\r\n }\r\n });\r\n\r\n tabContent.on('dismiss', (e) => {\r\n dataManager.directlyApply(\r\n this.campaignId,\r\n type,\r\n e.Id,\r\n true // dismiss\r\n ).then(this.processDismissReponse.bind(this));\r\n });\r\n }\r\n\r\n tabContent.on('popup:editor', () => {\r\n this.trigger('popup:editor');\r\n });\r\n\r\n tabContent.on('remove:editor', () => {\r\n this.trigger('remove:editor');\r\n });\r\n\r\n return tabContent.render();\r\n }\r\n\r\n selectTab(e) {\r\n this.viewModel.currentOptType($(e.currentTarget).attr('id'));\r\n }\r\n\r\n gotoRecommendationTab(e) {\r\n e.preventDefault();\r\n this.trigger('closeDialog');\r\n\r\n this.appConfig.set('recsrc', 'inlineopportunity');\r\n legacyRouter.navigateToRoute('campaign_recommendation_details', {\r\n type: this.type,\r\n 'campaign_id': this.campaignId,\r\n });\r\n }\r\n}\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport popupUtil from '@bingads-webui-static-legacy/popup';\r\nimport closingPanelTemplate from '@bingads-webui-campaign-legacy/inline-opportunity/template/closing-panel.pug';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/inline-opportunity');\r\nvar closingPanel = backbone.View.extend({\r\n template: closingPanelTemplate,\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n this.campaignName = options.campaignName;\r\n this.moreOptCount = options.moreOptCount;\r\n this.optTabUrl = options.optTabUrl;\r\n return this;\r\n },\r\n events: {\r\n 'click .title .closeimage': 'close'\r\n },\r\n render: function () {\r\n var viewParam = {\r\n i18n: i18n,\r\n campaignName: this.campaignName,\r\n moreOptCount: this.moreOptCount,\r\n optTabUrl: this.optTabUrl\r\n };\r\n popupUtil.close();\r\n this.$el.html(closingPanelTemplate(viewParam));\r\n popupUtil.render(this.$el, 100);\r\n return this;\r\n },\r\n close: function () {\r\n popupUtil.close();\r\n }\r\n});\r\nexport default closingPanel;\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport popoverTemplate from '@bingads-webui-campaign-legacy/inline-opportunity/template/no-more-popover.pug';\r\nimport popoverContentTemplate from '@bingads-webui-campaign-legacy/inline-opportunity/template/no-more-popover-content.pug';\r\nimport 'bootstrap';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/inline-opportunity');\r\nfunction showNoMorePopover(event) {\r\n var target = event.target;\r\n $(target).on('click', function (e) {\r\n $(target).not(this).popover('hide');\r\n });\r\n $(target).popover({\r\n html: true,\r\n template: popoverTemplate(),\r\n content: popoverContentTemplate({\r\n i18n: i18n\r\n })\r\n });\r\n $(target).popover('show');\r\n $(target).parent().find('.inline-opportunity-nomore .closeimage').focus().click(function (event) {\r\n $(target).popover('hide');\r\n });\r\n}\r\n;\r\nexport default {\r\n showNoMorePopover: showNoMorePopover\r\n};\r\n\r\n","import React from 'react';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/inline-opportunity');\r\n\r\nexport const noMoreContent = React.createElement('div', null, React.createElement('div', {\r\n class: 'inline-opportunity-no-more-popover',\r\n}, React.createElement('span', null, i18n.get('InlineOpportunity_NoMorePopover_Title'))), React.createElement('div', {\r\n class: 'inline-opportunity-no-more-popover',\r\n}, React.createElement('span', null, i18n.get('InlineOpportunity_NoMorePopover_Reason_Title'))), React.createElement('div', {\r\n class: 'inline-opportunity-no-more-popover',\r\n}, React.createElement('ul', null,\r\n React.createElement('li', null, i18n.get('InlineOpportunity_NoMorePopover_Reason1')),\r\n React.createElement('li', null, i18n.get('InlineOpportunity_NoMorePopover_Reason2')),\r\n React.createElement('li', null, i18n.get('InlineOpportunity_NoMorePopover_Reason3'))\r\n)));\r\n","import ReactDOM from 'react-dom';\r\nimport React from 'react';\r\nimport { Callout } from '@bingads-webui-react/callout';\r\nimport { Dialog } from '@bingads-webui/dialog';\r\nimport LoadingPanel from '@bingads-webui-campaign-legacy/inline-opportunity/view/loading-panel';\r\nimport MainPanel from '@bingads-webui-campaign-legacy/inline-opportunity/view/main-panel';\r\nimport dataManager from '@bingads-webui-campaign-legacy/inline-opportunity/view/data-manager';\r\nimport ClosingPanel from '@bingads-webui-campaign-legacy/inline-opportunity/view/closing-panel';\r\nimport util from '@bingads-webui-campaign-legacy/inline-opportunity/view/util';\r\nimport noMorePopover from '@bingads-webui-campaign-legacy/inline-opportunity/view/no-more-popover';\r\nimport { noMoreContent } from '@bingads-webui-campaign-legacy/inline-opportunity/view/no-more-callout-template';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/inline-opportunity');\r\n\r\nexport function openInlineOpportunityForCampaign(event, campaignId, campaignName, isForVNext, perfMarker) {\r\n if (perfMarker) {\r\n perfMarker.willInit();\r\n }\r\n\r\n // show the loading panel immediately\r\n const loadingPanel = new LoadingPanel();\r\n\r\n loadingPanel.render(event);\r\n\r\n if (perfMarker) {\r\n perfMarker.willFetchData();\r\n }\r\n\r\n dataManager.fetchInlineOpportunity(campaignId, campaignName).then(({\r\n opportunityTypes: opts = [],\r\n opportunityTypeResults: optsResult = {},\r\n moreTypeCount: moreOptCount = 0,\r\n } = {}) => {\r\n if (perfMarker) {\r\n perfMarker.willRender();\r\n }\r\n\r\n loadingPanel.close();\r\n\r\n // When data is ready, show the main panel\r\n const mainPanel = new MainPanel({\r\n campaignName,\r\n campaignId,\r\n moreOptCount,\r\n optsResult,\r\n isForVNext,\r\n });\r\n\r\n const optTabUrl = util.getOpportunitySummaryTabUrl(campaignId);\r\n\r\n if (mainPanel.updateOpportunityData(opts, optsResult)) {\r\n const dialog = new Dialog({ className: 'inline-opportunity-dialog' }).setContent(mainPanel).setState({\r\n title: i18n.get('InlineOpportunity_MainPanel_TitlePrefix', { campaignName }),\r\n });\r\n\r\n document.body.appendChild(dialog.el);\r\n dialog.show();\r\n dialog.$('.modal-header button.close span').empty();\r\n\r\n mainPanel.on('popup:editor', () => {\r\n dialog.$el.hide();\r\n });\r\n mainPanel.on('remove:editor', () => {\r\n dialog.$el.show();\r\n });\r\n\r\n mainPanel.on('closeDialog', () => {\r\n dialog.remove();\r\n });\r\n } else if (moreOptCount > 0) {\r\n // check on moreOptCount, if it is greater than zero,\r\n // show the closing panel; Otherwise show the \"no more\" popover.\r\n const closingPanel = new ClosingPanel({\r\n campaingId: campaignId,\r\n campaignName,\r\n moreOptCount,\r\n optTabUrl,\r\n });\r\n\r\n closingPanel.render();\r\n } else if (isForVNext) {\r\n const noMoreContainer = document.querySelector('#rejectionContainer');\r\n const calloutOptions = {\r\n className: 'inline-opportunity-nomore-callout',\r\n closeButton: false,\r\n show: true,\r\n content: noMoreContent,\r\n target: event.target,\r\n };\r\n const NoMoreContent = React.createElement('div', {\r\n onMouseLeave: () => {\r\n ReactDOM.unmountComponentAtNode(noMoreContainer);\r\n },\r\n }, React.createElement(Callout, calloutOptions));\r\n\r\n ReactDOM.render(NoMoreContent, noMoreContainer);\r\n } else {\r\n noMorePopover.showNoMorePopover(event);\r\n }\r\n\r\n if (perfMarker) {\r\n perfMarker.done();\r\n }\r\n });\r\n}\r\n\r\nexport function open(event, campaignsGrid, campaignRowId, isForVNext) {\r\n // fetch campaignId & campaignName\r\n const campaign = campaignsGrid.getRowItems(campaignRowId);\r\n\r\n if (!campaign) {\r\n // not valid campaign (unlikely), close the loading panel and do nothing\r\n // TODO (likezh): show some alert on the error.\r\n return;\r\n }\r\n\r\n openInlineOpportunityForCampaign(event, campaign.Id, campaign.Name, isForVNext);\r\n}\r\n","import _ from 'underscore';\r\nimport * as LocationTargetTypes from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetTypes';\r\nimport * as languageBundle from '@bingads-webui-campaign-legacy/location-targets/util/languageBundle';\r\nimport {\r\n trafficEstimationSupportedCountries,\r\n keywordPlannerSupportedCountries,\r\n keywordPlannerSupportedLanguages,\r\n trafficEstimationSupportedLanguages,\r\n MAX_NUMBER_LOCATION_IDS,\r\n} from '@bingads-webui-campaign-legacy/location-targets/util/constants';\r\n\r\nexport function getSupportedLocationIds(criterions, isKeywordPlanner = false) {\r\n const supportedCountries = isKeywordPlanner ?\r\n keywordPlannerSupportedCountries :\r\n trafficEstimationSupportedCountries;\r\n const included = _.where(criterions, {\r\n Status: 'Active',\r\n SelectionStatus: LocationTargetTypes.Included,\r\n });\r\n\r\n let countryLocationInfo = [];\r\n\r\n if (isKeywordPlanner && _.size(included) === 0) {\r\n _.each(supportedCountries, (supportedCountry) => {\r\n countryLocationInfo.push({\r\n locationId: supportedCountry.Id,\r\n countryLocationId: supportedCountry.Id,\r\n });\r\n });\r\n // treat as target everywhere\r\n return {\r\n items: _.pluck(supportedCountries, 'Id'),\r\n supportedCount: _.size(supportedCountries),\r\n totalCount: _.size(supportedCountries),\r\n countryLocationInfo,\r\n };\r\n }\r\n\r\n let targets = [],\r\n res = [];\r\n\r\n _.each(included, (criterion) => {\r\n const target = criterion.Criterion.LocationCriterion || criterion.Criterion.RadiusCriterion;\r\n\r\n if (target) {\r\n targets.push(target);\r\n }\r\n });\r\n\r\n _.each(targets, (target) => {\r\n if (target.Type === 'Location') {\r\n const countryCode = target.CountryCode;\r\n\r\n if ((!isKeywordPlanner && languageBundle.getPublisherCountryByCode(countryCode)) || _.contains(_.pluck(supportedCountries, 'Code'), countryCode)) {\r\n const countryLocationId = languageBundle.getPublisherCountryByCode(countryCode).LocationId;\r\n const locationId = target.LocationType === 'PostalCode' ?\r\n countryLocationId : target.LocationId;\r\n\r\n res.push(locationId);\r\n countryLocationInfo.push({\r\n locationId,\r\n countryLocationId,\r\n });\r\n }\r\n }\r\n });\r\n\r\n res = _.uniq(res);\r\n\r\n return {\r\n items: res,\r\n supportedCount: _.size(res),\r\n totalCount: _.size(targets),\r\n countryLocationInfo,\r\n };\r\n}\r\n\r\nfunction _hasPublisherCountryInUS(locationPublisherCountry, countryCode) {\r\n const publisherCountry = locationPublisherCountry[countryCode] || locationPublisherCountry.NoSupported;\r\n\r\n return _.contains(publisherCountry, 'US');\r\n}\r\n\r\nexport function hasLocationTargetsInUS(locations) {\r\n let targets = _.filter(locations, { SelectionStatus: LocationTargetTypes.Included });\r\n\r\n const targetEverywhere = _.isEmpty(targets);\r\n const locationTargets = _.filter(targets, (target) => {\r\n return target.Criterion.Type === 'Location';\r\n });\r\n\r\n return targetEverywhere || (!_.isEmpty(locationTargets) && _.some(locationTargets, (location) => {\r\n const countryCode = location.Criterion.LocationCriterion.CountryCode;\r\n const locationPublisherCountries = languageBundle.getLanguageLocationPublisherCountryData('English');\r\n\r\n /**\r\n * The commented lines are reserved for the day when we need to support more than 1 languages.\r\n */\r\n\r\n // if (_.isArray(locationPublisherCountries)) {\r\n // return _.some(locationPublisherCountries, (locationPublisherCountry) => {\r\n // return _hasPublisherCountryInUS(locationPublisherCountry, countryCode);\r\n // });\r\n // } else {\r\n // return _hasPublisherCountryInUS(locationPublisherCountries, countryCode);\r\n // }\r\n\r\n return _hasPublisherCountryInUS(locationPublisherCountries, countryCode);\r\n }));\r\n}\r\n\r\nexport function isLanguageSupported(language, isKeywordPlanner = false) {\r\n return isKeywordPlanner ?\r\n !!keywordPlannerSupportedLanguages[language] :\r\n _.indexOf(trafficEstimationSupportedLanguages, language) >= 0;\r\n}\r\n\r\nfunction supportCheck(language, locations, isKeywordPlanner) {\r\n const languages = _.isArray(language) ? language : [language];\r\n const supportedCount = getSupportedLocationIds(locations, isKeywordPlanner).supportedCount;\r\n\r\n return _.any(languages, (lang) => {\r\n return isLanguageSupported(lang, isKeywordPlanner) || lang === 'All';\r\n }) && supportedCount > 0 && supportedCount <= MAX_NUMBER_LOCATION_IDS;\r\n}\r\n\r\nexport function isKeywordPlannerSupported(language, locations) {\r\n return supportCheck(language, locations, true);\r\n}\r\n\r\nexport function isEstimationSupported() {\r\n return true;\r\n}\r\n","import pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport { LocationStatus } from '@bingads-webui-campaign-legacy/location-targets/util/constants';\r\n\r\nexport const isDeprecatedLocation = (locationCriterion) => {\r\n if (!locationCriterion || locationCriterion.Type !== 'Location') {\r\n return false;\r\n }\r\n\r\n const {IsLocationDeprecationEnabled} = pageContext.Permissions;\r\n\r\n return IsLocationDeprecationEnabled && (locationCriterion.LocationStatus === LocationStatus.PendingDeprecation ||\r\n locationCriterion.LocationStatus === LocationStatus.Deprecated);\r\n};\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport * as Popup from '@bingads-webui-component-legacy/popup/view/index';\r\nimport locationTargetStatusPopup from '../template/locationTargetStatusPopup.pug';\r\n\r\nexport default function showLocationStatusPopup(event, statusTexts, containerSelector) {\r\n Popup.show(_.extend(\r\n {},\r\n {\r\n positioningMethod: 'fixed',\r\n positioningOptions: {\r\n location: 'right',\r\n positionAttribute: 'fixed',\r\n },\r\n classes: _.compact(['popup-location-status', 'popover', 'right']),\r\n template: () => locationTargetStatusPopup({\r\n statusTexts,\r\n }),\r\n },\r\n {\r\n container: $(containerSelector),\r\n anchor: $(event.target),\r\n }\r\n ));\r\n\r\n _.defer(() => {\r\n if (!$('.popup__contents .arrow').length) {\r\n $('.popup__contents').append($('
'));\r\n }\r\n });\r\n}\r\n","import ko from 'knockout';\r\n\r\nexport default class ViewModel {\r\n constructor(options) {\r\n this.gridData = ko.observable({\r\n included: [],\r\n excluded: [],\r\n });\r\n this.level = ko.observable(options.level);\r\n this.gridVisible = ko.observable(false);\r\n this.excludedGridVisible = ko.observable(false);\r\n this.shouldHideIncludedLocations = ko.computed(() => {\r\n if (options.shouldHideIncludedLocations) {\r\n return options.shouldHideIncludedLocations();\r\n }\r\n return false;\r\n });\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport targetConstants from '@bingads-webui-campaign-legacy/base-targets/viewmodel/targetConstants';\r\nimport locationTargetContext from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetContext';\r\nimport * as locationTargetTypes from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetTypes';\r\nimport { validateBid } from '@bingads-webui-campaign-legacy/base-targets/util/bidValidator';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/location-targets');\r\n\r\nexport default class ViewModel {\r\n constructor(options) {\r\n this.options = options;\r\n this.bidAdjustmentOptions = targetConstants.bidAdjustmentOptions;\r\n this.selectedBidAdjustmentOption = ko.observable(options.model.bid >= 0 ? targetConstants.bidAdjustmentIncreaseValue : targetConstants.bidAdjustmentDecreaseValue);\r\n this.bidAdjustmentValue = ko.observable(Math.abs(options.model.bid));\r\n\r\n this.computeBidError = () => {\r\n let bidValue = this.bidAdjustmentValue();\r\n const {\r\n isDecimal,\r\n isNotEmpty,\r\n isNonNegative,\r\n isEndingWithDigit,\r\n } = validateBid(bidValue);\r\n\r\n if (!(isDecimal && isNonNegative && isNotEmpty && isEndingWithDigit)) {\r\n return i18n.get('Error_Campaign_API_NaN');\r\n }\r\n\r\n let multipliedBidValue = bidValue * this.selectedBidAdjustmentOption();\r\n\r\n if (multipliedBidValue < -1 * targetConstants.minimumBid.Location || multipliedBidValue > targetConstants.maximumBid.Location) {\r\n return i18n.get('LocationTarget_Bid_OutofRange')\r\n .replace('{0}', targetConstants.minimumBid.Location)\r\n .replace('{1}', targetConstants.maximumBid.Location);\r\n }\r\n return '';\r\n };\r\n this.bidError = ko.computed(this.computeBidError, this);\r\n\r\n this.isReadOnly = ko.computed(() => {\r\n if (this.options.selectionStatus === locationTargetTypes.Excluded || this.options.isReadOnly) {\r\n return true;\r\n }\r\n return locationTargetContext.level === 'campaign' && (locationTargetContext.scenario === 'adgroup-create' || locationTargetContext.scenario === 'adgroup-settings');\r\n }, this);\r\n\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/location-targets/viewmodel/locationBidCell';\r\nimport tmpl from '@bingads-webui-campaign-legacy/location-targets/template/locationBidCell.pug';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport eventDispatcher from '@bingads-webui-component-legacy/event-dispatcher/index';\r\nimport uuid from '@bingads-webui-component-legacy/uuid/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/location-targets');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = _.defaults(options, {\r\n selectionStatus: this.model.selectionStatus,\r\n });\r\n this.viewmodel = new ViewModel(this.options);\r\n\r\n this.viewmodel.bidAdjustmentValue.subscribe(() => {\r\n this.dispatch();\r\n });\r\n this.viewmodel.selectedBidAdjustmentOption.subscribe(() => {\r\n this.dispatch();\r\n });\r\n }\r\n\r\n dispatch() {\r\n eventDispatcher.trigger('location-bid-cell:bidChanged', this.getValue());\r\n }\r\n\r\n render() {\r\n this.$el.html(tmpl({\r\n i18n,\r\n percentSymbol: config.get('globalization.number.percentSymbol'),\r\n uuid,\r\n }));\r\n\r\n ko.applyBindings(this.viewmodel, this.el);\r\n\r\n return this;\r\n }\r\n\r\n getValue() {\r\n return {\r\n bid: isNaN(Number(this.viewmodel.bidAdjustmentValue())) ? this.viewmodel.bidAdjustmentValue() : this.viewmodel.bidAdjustmentValue() * this.viewmodel.selectedBidAdjustmentOption(),\r\n id: this.model.id,\r\n selectionStatus: this.model.selectionStatus,\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport LocationBidCell from '@bingads-webui-campaign-legacy/location-targets/view/locationBidCell';\r\nimport * as locationTargetTypes from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetTypes';\r\nimport { deprecatedTextMapping } from '@bingads-webui-campaign-legacy/location-targets/util/constants';\r\nimport { isDeprecatedLocation } from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetDeprecationHelper';\r\nimport showLocationStatusPopup from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetStatusPopup';\r\nimport { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport locationTargetStatus from '@bingads-webui-campaign-legacy/location-targets/template/locationTargetStatus.pug';\r\nimport locationTargetContext from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetContext';\r\nimport { CashbackPercentControlView } from '@bingads-webui-campaign/cashback-percent-control-view';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/location-targets');\r\n\r\nexport default function LocationTargetBidConfig(options) {\r\n _.defaults(options, {\r\n type: locationTargetTypes.Included,\r\n });\r\n\r\n let locationTitle = '';\r\n\r\n locationTitle = options.type === locationTargetTypes.Included ?\r\n i18n.get('Location_Target_Grid_TargetedLocationColumn') :\r\n i18n.get('Location_Target_Grid_ExcludedLocationColumn');\r\n\r\n return {\r\n el: options.gridContainer,\r\n dataSource: {\r\n type: 'memory',\r\n },\r\n tableClasses: ['table', 'table-bordered'],\r\n columns: _.compact([\r\n bingadsGridColumn({\r\n name: 'icon',\r\n title: ' ',\r\n property: _.identity,\r\n bodyClasses: ['col-icon'],\r\n template: (local) => {\r\n if (isDeprecatedLocation(local.value.Criterion.LocationCriterion)) {\r\n return '';\r\n } else if (local.value.SelectionStatus === locationTargetTypes.Included) {\r\n return '';\r\n } else {\r\n return '';\r\n }\r\n },\r\n }),\r\n bingadsGridColumn({\r\n name: 'location',\r\n title: locationTitle,\r\n property: _.identity,\r\n bodyClasses: ['col-location'],\r\n template: (local) => {\r\n // TODO: remove the mock data\r\n // if (local.value.Criterion.LocationCriterion) {\r\n // local.value.Criterion.LocationCriterion.LocationStatus = 'Deprecated';\r\n // }\r\n if (local.value.CriterionType === 'Radius') {\r\n return `${local.value.Criterion.RadiusCriterion.NameTypeCombo}`;\r\n } else if (isDeprecatedLocation(local.value.Criterion.LocationCriterion)) {\r\n const deprecatedTexts = deprecatedTextMapping[local.value.Criterion.LocationCriterion.LocationStatus];\r\n const containerSelector = `tr[data-key='${local.value.__primary_key__}'] .col-location .location-cell-status`;\r\n const $locationsSection = $('.location-targets, .location-targets-section, .location-setting-controller, .editor-container, #bulkEditContainer'); // campaign setting, adgroup setting, audience adgroup setting, add locations\r\n const isNewUI = config.get('IsNewUI');\r\n\r\n if (isNewUI) {\r\n $locationsSection.on('mouseover', containerSelector, (event) => {\r\n showLocationStatusPopup(event, deprecatedTexts, containerSelector, true);\r\n });\r\n }\r\n\r\n $locationsSection.on('click', containerSelector, (event) => {\r\n showLocationStatusPopup(event, deprecatedTexts, containerSelector, isNewUI);\r\n });\r\n\r\n return `
\r\n ${local.value.Criterion.LocationCriterion.NameTypeCombo}\r\n ${locationTargetStatus({ text: deprecatedTexts.warning })}\r\n
`;\r\n } else {\r\n return `${local.value.Criterion.LocationCriterion.NameTypeCombo}`;\r\n }\r\n },\r\n }),\r\n options.type === locationTargetTypes.Included && !options.hideBidAdjustment && bingadsGridColumn({\r\n name: 'bid',\r\n title: i18n.get('Target_ColumnHeaderBidAdjustment'),\r\n property: _.identity,\r\n bodyClasses: ['col-bid'],\r\n\r\n template: (local) => {\r\n const locationBidCell = new LocationBidCell({\r\n model: {\r\n id: local.value.Id,\r\n selectionStatus: local.value.SelectionStatus,\r\n bid: local.value.Criterion.BidAdjustment,\r\n },\r\n isReadOnly: isDeprecatedLocation(local.value.Criterion.LocationCriterion),\r\n });\r\n\r\n const cell = locationBidCell.render();\r\n\r\n setTimeout(() => {\r\n $(`tr[data-key='${local.value.__primary_key__}'] .col-bid`).empty().append(cell.el);\r\n }, 0);\r\n },\r\n }),\r\n options.type === locationTargetTypes.Included && options.supportCashbackSettings && bingadsGridColumn({\r\n name: 'CashbackPercent',\r\n property: (item) => item,\r\n title: i18n.get('Campaign_Maximum_Cashback_Offer'),\r\n bodyClasses: ['cashback-percent-cell-wrap'],\r\n template: (locals) => {\r\n const criterion = locals.value;\r\n\r\n const { CashbackPercent } = criterion.Criterion;\r\n\r\n let isReadOnly = false;\r\n\r\n if (isDeprecatedLocation(criterion.Criterion.LocationCriterion)) {\r\n isReadOnly = true;\r\n } else if (locationTargetContext.level === 'campaign' &&\r\n (locationTargetContext.scenario === 'adgroup-create' ||\r\n locationTargetContext.scenario === 'adgroup-settings')) {\r\n isReadOnly = true;\r\n }\r\n\r\n const cashbackPercentControlView = new CashbackPercentControlView({\r\n viewContext: {\r\n currentCampaign: options.currentCampaign,\r\n currentAdGroup: options.currentAdGroup,\r\n },\r\n i18n,\r\n decimal,\r\n CashbackPercent,\r\n isParentLevel: isReadOnly,\r\n });\r\n\r\n setTimeout(() => {\r\n // eslint-disable-next-line no-underscore-dangle\r\n const key = locals.value.__primary_key__;\r\n const row = $(`.location-bid-grid-container tr[data-key='${key}']`);\r\n const root = $(row).find('.cashback-percent-cell-wrap');\r\n\r\n root.empty().append(cashbackPercentControlView.render().$el);\r\n cashbackPercentControlView.on('change', (validated, val) => {\r\n options.onCashbackPercentChange(validated, val, row);\r\n });\r\n });\r\n\r\n return '';\r\n },\r\n }),\r\n ]),\r\n plugins: {\r\n pagination: {\r\n totalPageCountText: i18n.get('EntitySelector_Pagination_TotalPageCountText'),\r\n pageNumberLabelText: i18n.get('EntitySelector_Pagination_Page'),\r\n pageSizeText: i18n.get('Grid_ShowRows'),\r\n },\r\n },\r\n };\r\n}\r\n","import Backbone from 'backbone';\r\nimport Promise from 'bluebird';\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport pgrid from '@bingads-webui-component-legacy/github/modules/projection-grid/module/projection-grid';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/location-targets/viewmodel/locationTargetBid';\r\nimport tmpl from '@bingads-webui-campaign-legacy/location-targets/template/locationTargetBid.pug';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport withUiBlock from '@bingads-webui-component-legacy/uiblocker/index';\r\nimport eventDispatcher from '@bingads-webui-component-legacy/event-dispatcher/index';\r\nimport { paginationPlugin } from '@bingads-webui/projection-grid-pagination';\r\nimport { uiBlockerPlugin } from '@bingads-webui/projection-grid-uiblocker';\r\nimport * as locationTargetTypes from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetTypes';\r\nimport LocationTargetBidConfig from '@bingads-webui-campaign-legacy/location-targets/view/locationTargetBid-config';\r\nimport * as criterionLoader from '@bingads-webui-campaign-legacy/base-targets/util/criterionLoader';\r\nimport locationTargetContext from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetContext';\r\nimport targetConstants from '@bingads-webui-campaign-legacy/base-targets/viewmodel/targetConstants';\r\nimport geoConverter from '@bingads-webui-campaign-legacy/location-targets/util/geoConverter';\r\nimport * as locationIntermediateHelper from '@bingads-webui-campaign-legacy/location-targets/util/locationIntermediateHelper';\r\nimport { getRealCashbackPercentValue } from '@bingads-webui-campaign/target-bid-adjustment';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport { isXandrServing } from '@bingads-webui-campaign-react/constants';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/location-targets');\r\n\r\nexport default class LocationTargetBid extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = _.defaults(options, {\r\n campaignId: '',\r\n adgroupId: '',\r\n level: 'campaign',\r\n scenario: 'creation-workflow',\r\n });\r\n\r\n this.isMSANBoostEnabled = pageContext.Permissions.IsAmplifyEnabled;\r\n this.isHideBidAdjustmentForBoostEnabled = pageContext.Permissions.dynamic && pageContext.Permissions.dynamic.HideBidAdjustmentForBoost;\r\n this.hideBidAdjustment = isXandrServing(\r\n _.result(this.options.currentCampaign, 'CampaignSubType'),\r\n _.result(this.options.currentCampaign, 'CampaignSettings'),\r\n ) || (this.isMSANBoostEnabled && this.isHideBidAdjustmentForBoostEnabled);\r\n\r\n this.viewmodel = new ViewModel(this.options);\r\n locationTargetContext.scenario = this.options.scenario;\r\n locationTargetContext.level = this.options.level;\r\n this.supportCashbackSettings = this.options.supportCashbackSettings && !pageContext.Permissions.IsPersonalizedOffersV3Enabled;\r\n this.defaultCashbackPercent = this.options.defaultCashbackPercent;\r\n this.isPersonalizedOffersEnabled = pageContext.Permissions.IsPersonalizedOffersEnabled;\r\n\r\n eventDispatcher.on('level:changed', (level) => {\r\n this.options.level = level;\r\n this.viewmodel.level(level);\r\n locationTargetContext.scenario = this.options.scenario;\r\n locationTargetContext.level = this.options.level;\r\n this.onChangeMode();\r\n }, this);\r\n\r\n eventDispatcher.on('location-bid-cell:bidChanged', (cellContent) => {\r\n this.handleBidAdjustmenChanged(cellContent);\r\n }, this);\r\n }\r\n\r\n handleBidAdjustmenChanged(cellContent) {\r\n let updatedEntity = jsdata.Intermediate.get(this.resourceName, cellContent.id);\r\n\r\n //we update the bid value with no validation (bid is whatever the user inputs), as this is intermediate update and we check the validity in the validate function when saving.\r\n jsdata.Intermediate.update(this.resourceName, cellContent.id, {\r\n Id: cellContent.id,\r\n Criterion: _.extend(updatedEntity.Criterion, {\r\n BidAdjustment: cellContent.bid,\r\n }),\r\n });\r\n\r\n if (this.options.activityLogger) {\r\n this.options.activityLogger.signal('location bid adjustment changed', 'location target bid');\r\n }\r\n }\r\n\r\n get isCashbackPercentValidated() {\r\n if (this.supportCashbackSettings) {\r\n const cashbackPercentErrorSelector = [\r\n '.location-bid-grid-container.show-cashback-percent .table-container td.cashback-percent-cell-wrap .error',\r\n ].join(',');\r\n const $cashbackPercentErrors = this.$el.find(cashbackPercentErrorSelector);\r\n\r\n return _.every($cashbackPercentErrors, (__, i) => {\r\n const $err = $cashbackPercentErrors.eq(i);\r\n\r\n return $err.text() === '';\r\n });\r\n }\r\n return true;\r\n }\r\n\r\n handleCashbackPercentChange(validated, cashbackPercent, row) {\r\n if (validated) {\r\n const rowData = this.gridView.itemOfElement(row);\r\n\r\n if (!rowData) {\r\n return;\r\n }\r\n\r\n if (this.activityLogger) {\r\n this.activityLogger.signal(`cashback percent change: ${this.criterionType}`, 'cashback percent');\r\n }\r\n\r\n const updatedEntity = jsdata.Intermediate.get(this.resourceName, rowData.Id);\r\n\r\n jsdata.Intermediate.update(this.resourceName, rowData.Id, {\r\n Id: rowData.Id,\r\n Criterion: _.extend(updatedEntity.Criterion, {\r\n CashbackPercent: cashbackPercent,\r\n }),\r\n });\r\n }\r\n }\r\n\r\n refresh() {\r\n this.onCriterionChange();\r\n }\r\n\r\n onChangeMode() {\r\n this.onCriterionChange();\r\n }\r\n\r\n get resourceName() {\r\n return this.options.level === 'campaign' ? 'CampaignCriterion' : 'AdGroupCriterion';\r\n }\r\n\r\n onCriterionChange() {\r\n const locations = _.deepClone(locationIntermediateHelper.getLocationCriterion(this.resourceName));\r\n const sortedLocations = geoConverter.sortLocationsByType(locations);\r\n const noData = _.isEmpty(locations) || (this.viewmodel.shouldHideIncludedLocations() && _.isEmpty(sortedLocations.excluded));\r\n\r\n this.trigger('location-target-bid-grid:onDataChange', noData);\r\n this.viewmodel.gridVisible(!_.isEmpty(sortedLocations.included));\r\n this.viewmodel.excludedGridVisible(!_.isEmpty(sortedLocations.excluded));\r\n this.viewmodel.gridData(sortedLocations);\r\n this.refreshGridSource();\r\n }\r\n\r\n toggleSupportCashbackColumnClass() {\r\n if (this.supportCashbackSettings) {\r\n this.$('.location-bid-grid-container').addClass('show-cashback-percent');\r\n } else {\r\n this.$('.location-bid-grid-container').removeClass('show-cashback-percent');\r\n }\r\n }\r\n\r\n toggleCashbackPercentColumns(supportCashbackSettings, inheritInfo) {\r\n this.supportCashbackSettings = supportCashbackSettings && !pageContext.Permissions.IsPersonalizedOffersV3Enabled;\r\n\r\n this.toggleSupportCashbackColumnClass();\r\n\r\n if (inheritInfo != null) {\r\n if (inheritInfo.level === 'AdGroup') {\r\n const originalAdGroupCashback = _.chain(this.options)\r\n .result('currentAdGroup')\r\n .result('AdGroupCashback', {})\r\n .value();\r\n\r\n this.options.currentAdGroup = _.extend({}, this.options.currentAdGroup, {\r\n AdGroupCashback: _.extend({}, originalAdGroupCashback, {\r\n Percent: inheritInfo.value,\r\n }),\r\n });\r\n } else {\r\n const originalCampaignCashback = _.chain(this.options)\r\n .result('currentCampaign')\r\n .result('CampaignCashback', {})\r\n .value();\r\n\r\n this.options.currentCampaign = _.extend({}, this.options.currentCampaign, {\r\n CampaignCashback: _.extend({}, originalCampaignCashback, {\r\n Percent: inheritInfo.value,\r\n }),\r\n });\r\n }\r\n }\r\n\r\n this.initIncludedGrid();\r\n this.refreshGridSource();\r\n }\r\n\r\n initIncludedGrid() {\r\n if (this.gridView) {\r\n this.gridView.remove();\r\n }\r\n\r\n const gridData = this.viewmodel.gridData();\r\n const gridConfig = new LocationTargetBidConfig({\r\n gridContainer: this.isPersonalizedOffersEnabled ? null : this.$('.location-bid-grid'),\r\n pagerViewContainer: this.isPersonalizedOffersEnabled ? null : this.$('.location-bid-pager-view'),\r\n data: gridData.included,\r\n supportCashbackSettings: this.supportCashbackSettings,\r\n defaultCashbackPercent: this.defaultCashbackPercent,\r\n currentCampaign: this.options.currentCampaign,\r\n currentAdGroup: this.options.currentAdGroup,\r\n onCashbackPercentChange: this.handleCashbackPercentChange.bind(this),\r\n hideBidAdjustment: this.hideBidAdjustment,\r\n });\r\n\r\n const grid = pgrid.factory({ vnext: true })\r\n .use(paginationPlugin)\r\n .use(uiBlockerPlugin)\r\n .create(gridConfig);\r\n\r\n this.gridView = grid.gridView;\r\n const instance = grid.gridView.render();\r\n\r\n if (this.isPersonalizedOffersEnabled) {\r\n this.$('.location-bid-grid-container').empty().append(instance.$el);\r\n }\r\n\r\n return grid;\r\n }\r\n\r\n render() {\r\n this.$el.html(tmpl({\r\n i18n,\r\n level: this.options.level,\r\n isPersonalizedOffersEnabled: pageContext.Permissions.IsPersonalizedOffersEnabled,\r\n }));\r\n\r\n ko.applyBindings(this.viewmodel, this.el);\r\n\r\n const grid = this.initIncludedGrid();\r\n\r\n const gridData = this.viewmodel.gridData();\r\n const excludedGrid = pgrid.factory({ vnext: true })\r\n .use(paginationPlugin)\r\n .use(uiBlockerPlugin)\r\n .create(new LocationTargetBidConfig({\r\n gridContainer: this.$('.excluded-location-grid'),\r\n pagerViewContainer: this.$('.excluded-location-pager-view'),\r\n type: locationTargetTypes.Excluded,\r\n data: gridData.excluded,\r\n }));\r\n\r\n excludedGrid.gridView.render();\r\n\r\n this.excludedGridView = excludedGrid.gridView;\r\n\r\n grid.gridView.render();\r\n\r\n if (this.viewmodel.gridVisible() || this.viewmodel.excludedGridVisible()) {\r\n this.refreshGridSource();\r\n }\r\n\r\n this.toggleSupportCashbackColumnClass();\r\n return this;\r\n }\r\n\r\n refreshGridSource() {\r\n const data = this.viewmodel.gridData();\r\n\r\n if (this.gridView) {\r\n this.gridView.patch({\r\n dataSource: {\r\n data: data.included,\r\n },\r\n });\r\n }\r\n if (this.excludedGridView) {\r\n this.excludedGridView.patch({\r\n dataSource: {\r\n data: data.excluded,\r\n },\r\n });\r\n }\r\n }\r\n\r\n update(campaignId) {\r\n this.options.campaignId = campaignId;\r\n criterionLoader.load(campaignId, '', ['LocationCriterion', 'RadiusCriterion'])\r\n .then((data) => {\r\n this.viewmodel.gridData(data);\r\n this.refreshGridSource();\r\n });\r\n }\r\n\r\n save() {\r\n if (this.options.scenario === 'adgroup-create') {\r\n return new Promise((resolve) => {\r\n resolve();\r\n });\r\n }\r\n let criterions = this.getValues();\r\n\r\n _.each(criterions, (criterion) => {\r\n criterion.Status = 'Active';\r\n criterion.Campaign = {\r\n Id: this.options.campaignId,\r\n };\r\n });\r\n let campaignToSave = {\r\n Id: this.options.campaignId,\r\n CampaignCriterions: criterions,\r\n };\r\n\r\n return jsdata.Campaign.update(this.options.campaignId, campaignToSave, {adapter: 'bulk'})\r\n .then(() => {\r\n //nothing to do here. In case of success, the values are successfully saved in the server\r\n })\r\n .catch((/*response*/) => {\r\n //TODO [imang]: handle errors\r\n })\r\n .finally(withUiBlock(this.$el));\r\n }\r\n\r\n validate() {\r\n let locationTargets = locationIntermediateHelper.getLocationCriterion(this.resourceName);\r\n\r\n return _.every(locationTargets, (target) => {\r\n const bid = target.Criterion.BidAdjustment;\r\n\r\n return !isNaN(Number(bid)) && !(bid < -1 * targetConstants.minimumBid.Location || bid > targetConstants.maximumBid.Location);\r\n }) && (this.isCashbackPercentValidated || !this.supportCashbackSettings);\r\n }\r\n\r\n resetLocationBid() {\r\n let locationTargets = locationIntermediateHelper.getLocationCriterion(this.resourceName);\r\n\r\n _.each(locationTargets, (target) => {\r\n target.Criterion.BidAdjustment = 0;\r\n });\r\n }\r\n\r\n getValues() {\r\n let criterions = _.deepClone(locationIntermediateHelper.getLocationCriterion(this.resourceName));\r\n\r\n const result = _.chain(criterions)\r\n .filter((criterion) => {\r\n const isBidAdjChanged = criterion.Criterion.OriginalBidAdjustment !== criterion.Criterion.BidAdjustment;\r\n const isCashbackPercentChanged = this.supportCashbackSettings ?\r\n getRealCashbackPercentValue(criterion.Criterion.OriginalCashbackPercent, decimal) !== getRealCashbackPercentValue(criterion.Criterion.CashbackPercent, decimal) : false;\r\n\r\n return isBidAdjChanged || isCashbackPercentChanged;\r\n })\r\n .map((criterion) => {\r\n if (criterion.Criterion.Type === 'Radius') {\r\n criterion.CriterionType = criterion.Criterion.Type;\r\n } else if (criterion.Criterion.Type === 'Location') {\r\n criterion.CriterionType = criterion.SelectionStatus === locationTargetTypes.Included ? 'Location' : 'NegativeLocation';\r\n }\r\n\r\n if (this.supportCashbackSettings) {\r\n criterion.Criterion.CashbackPercent = getRealCashbackPercentValue(criterion.Criterion.CashbackPercent, decimal);\r\n } else {\r\n criterion.Criterion.CashbackPercent = undefined;\r\n }\r\n\r\n if (criterion.Id >= 0) {\r\n return criterion;\r\n } else {\r\n return _.omit(criterion, 'Id');\r\n }\r\n })\r\n .value();\r\n\r\n return result;\r\n }\r\n\r\n remove(...args) {\r\n eventDispatcher.off(null, null, this);\r\n super.remove(...args);\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport { BaseLocationRecommendationModel } from '@bingads-webui-campaign/inline-location-recommendation';\r\nimport targetOptions from '@bingads-webui-campaign-legacy/location-targets/viewmodel/targetOptions';\r\nimport * as languageBundle from '@bingads-webui-campaign-legacy/location-targets/util/languageBundle';\r\nimport koSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\nimport * as locationTargetTypes from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetTypes';\r\nimport { getBulkApiErrors } from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport * as locationIntermediateHelper from '@bingads-webui-campaign-legacy/location-targets/util/locationIntermediateHelper';\r\nimport * as locationTargetConverter from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetConverter';\r\nimport { notificationApi } from '@bingads-webui-campaign/notification-center';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/location-targets');\r\n\r\nexport default class ViewModel {\r\n constructor(options) {\r\n koSchema.properties(this);\r\n this.scenario = options.scenario;\r\n this.level = ko.observable(options.level);\r\n this.bidMode = ko.observable(options.scenario === 'campaign-settings' || options.scenario === 'adgroup-create' || options.scenario === 'adgroup-settings');\r\n this.editLinkVisible = ko.computed(() => {\r\n return this.level() === 'adgroup' || this.scenario === 'campaign-settings' || this.scenario === 'shopping-creation-workflow';\r\n });\r\n this.targetOption = ko.observable(options.targetOption);//bundle, everywhere, specific\r\n this.searchBoxVisible = ko.computed(() => {\r\n return this.targetOption() === targetOptions.specific;\r\n });\r\n this.hideAudience = options.hideAudience;\r\n this.deletedLocations = [];\r\n this.bundleLocations = [];\r\n this.bundleLocationCriterions = ko.observable([]);\r\n this.isXandrCampaign = options.isXandrCampaign;\r\n this.languageBundleString = ko.observable('');\r\n this.shouldHideIncludedLocations = ko.observable(options.shouldHideIncludedLocations || false);\r\n this.showPhysicalIntentOutside = ko.computed(() => options.isLocationTargetingImprovementEnabled);\r\n this.shouldUpdateTargetOption = ko.observable(false);\r\n this.bundleLocationsUpdated = ko.observable(false);\r\n this.shouldUpdateTargetOptionWithNewBundle = ko.observable(false);\r\n\r\n this.updateLanguageBundleString = (language, market, isInit = false) => {\r\n let bundleCountries = languageBundle.getBundle(language, market);\r\n let isBundled = true;\r\n let bundleCountryNames = [];\r\n\r\n this.bundleLocations = [];\r\n let bundleLocationCriterions = [];\r\n\r\n if (!bundleCountries) {\r\n bundleCountries = [];\r\n let publisherCountry = languageBundle.getPublisherCountryByCode(market);\r\n\r\n if (_.isUndefined(publisherCountry)) {\r\n publisherCountry = {\r\n Country: 'US',\r\n LocationId: 190,\r\n };\r\n }\r\n\r\n bundleCountries.push(publisherCountry);\r\n isBundled = false;\r\n }\r\n\r\n _.each(bundleCountries, (country) => {\r\n let countryName = i18n.getString(`PublisherCountry_${country.Country}`);\r\n\r\n this.bundleLocations.push({\r\n name: countryName,\r\n locationId: country.LocationId,\r\n });\r\n bundleCountryNames.push(countryName);\r\n });\r\n this.languageBundleString(bundleCountryNames.join(', '));\r\n\r\n let locationIds = _.pluck(bundleCountries, 'LocationId');\r\n\r\n if (!this.adGroupScenario() || this.isXandrCampaign) {\r\n locationIntermediateHelper.getLocationByIds(\r\n locationIds,\r\n { expand: 'ParentLocations', lcid: pageContext.CultureLcid, loadingText: i18n.getString('loadingtext')},\r\n ).then((response) => {\r\n if (response.message) {\r\n throw new Error(response.message);\r\n }\r\n _.each(response, (location) => {\r\n bundleLocationCriterions.push(locationTargetConverter.buildLocationCriterionFromSearchResult(\r\n location.data,\r\n { mode: 'location', status: locationTargetTypes.Included },\r\n ));\r\n });\r\n\r\n this.bundleLocationCriterions(bundleLocationCriterions);\r\n if (!isInit) {\r\n this.bundleLocationsUpdated(true);\r\n }\r\n });\r\n }\r\n return isBundled;\r\n };\r\n\r\n this.updateLanguageBundle = (language, market, targetEverywhere = false, isInit = false) => {\r\n this.shouldUpdateTargetOption(false);\r\n this.bundleLocationsUpdated(false);\r\n this.shouldUpdateTargetOptionWithNewBundle(false);\r\n const bundleFound = this.updateLanguageBundleString(language, market, isInit);\r\n\r\n if (this.targetOption() !== 'specific' && !targetEverywhere) {\r\n if (bundleFound || !this.showEverywhereOption()) {\r\n if (!isInit && this.targetOption() === 'everywhere') {\r\n notificationApi.showInfo(i18n.getString('Location_Target_Language_Market_Association_Notification'));\r\n this.shouldUpdateTargetOption(true);\r\n }\r\n } else if (!isInit && this.targetOption() === 'bundle') {\r\n notificationApi.showInfo(i18n.getString('Location_Target_Language_Market_Association_Notification'));\r\n this.shouldUpdateTargetOption(true);\r\n }\r\n }\r\n };\r\n\r\n this.shouldBundleModeBeSelected = (locations) => {\r\n let bundleCountries = this.bundleLocations;\r\n\r\n //if there is no bundle found, return false\r\n if (!bundleCountries) {\r\n return false;\r\n }\r\n\r\n //if number of locations are not equal to number of bundle countries, return false\r\n if (bundleCountries.length !== locations.length) {\r\n return false;\r\n }\r\n\r\n for (let i = 0; i < locations.length; i++) {\r\n let location = locations[i];\r\n\r\n //if there is any radius/excluded target defined, we're not in bundle mode\r\n if (location.Criterion.Type === 'Radius' ||\r\n location.SelectionStatus === locationTargetTypes.Excluded) {\r\n return false;\r\n } else if (!_.find(bundleCountries, (country) => {\r\n return country.locationId === location.Criterion.LocationCriterion.LocationId;\r\n })) { //if the location is not in the bundle list, return false\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n this.conflictError = ko.observable(true).extend({\r\n validate: [],\r\n });\r\n\r\n this.validate = (resourceName) => {\r\n const locations = locationIntermediateHelper.getLocationCriterion(resourceName);\r\n const areaLocations = _.filter(locations, (location) => {\r\n return location.Criterion.Type === 'Location';\r\n });\r\n let errors = [];\r\n\r\n let isValid = this.shouldHideIncludedLocations() || this.checkConflict(areaLocations);\r\n\r\n if (!isValid) {\r\n errors.push({\r\n Error: 'CampaignServiceConflictWithLocationExclusion',\r\n ErrorNumber: '2822',\r\n Property: 'conflictError',\r\n });\r\n errors = getBulkApiErrors(errors);\r\n this.errors.add(errors);\r\n return false;\r\n }\r\n\r\n this.conflictError(false);\r\n const nonConflictingErrors = _.filter(this.errors(), (error) => {\r\n return error.Property !== 'conflictError';\r\n });\r\n\r\n this.errors(nonConflictingErrors);\r\n return true;\r\n };\r\n\r\n this.checkConflict = (areaLocations) => {\r\n let includedLocations = [];\r\n let excludedLocations = [];\r\n\r\n _.each(areaLocations, (location) => {\r\n if (location.SelectionStatus === locationTargetTypes.Included) {\r\n includedLocations.push(location);\r\n } else if (location.SelectionStatus === locationTargetTypes.Excluded) {\r\n excludedLocations.push(location);\r\n }\r\n });\r\n\r\n return _.every(includedLocations, (includedLoc) => {\r\n return _.every(includedLoc.Criterion.LocationCriterion.EnclosingLocationIds, (parentLocationId) => {\r\n return _.isUndefined(_.find(excludedLocations, (excludedLoc) => {\r\n return excludedLoc.Criterion.LocationCriterion.LocationId === parentLocationId;\r\n }));\r\n });\r\n });\r\n };\r\n\r\n this.gridNoData = ko.observable(false);\r\n this.noDataMessage = ko.observable('');\r\n this.useCampaignSettings = ko.observable(true);\r\n\r\n this.editScenario = ko.observable(options.scenario === 'campaign-settings' || options.scenario === 'adgroup-settings');\r\n this.adGroupScenario = ko.observable(options.scenario === 'adgroup-create' || options.scenario === 'adgroup-settings');\r\n this.showAdGroupOverrideInformation = ko.observable(false);\r\n this.showCampaignSettingsToggleView = ko.computed(() => this.adGroupScenario() && !this.isXandrCampaign);\r\n this.showEverywhereOption = ko.computed(() => !options.isDomesticSimplifiedChineseEnabled && (!this.adGroupScenario() || this.isXandrCampaign));\r\n this.showTargetOptions = ko.computed(() => !this.adGroupScenario() || this.isXandrCampaign);\r\n this.showTargetLableAndTitle = ko.observable(options.scenario !== 'audience-dashboard');\r\n this.isForVNext = ko.observable(options.isForVNext);\r\n this.showUI = ko.observable(!this.editScenario());\r\n\r\n this.bidModeKeepTopMargin = ko.computed(() => {\r\n return this.editLinkVisible() || this.gridNoData();\r\n }, this);\r\n\r\n this.targetEverywhere = ko.computed(() => {\r\n return this.targetOption() === targetOptions.everywhere;\r\n });\r\n\r\n if (options.hasLocationRecommendations) {\r\n _.extend(this, new BaseLocationRecommendationModel({\r\n deps: {\r\n i18n,\r\n },\r\n }));\r\n this.locationRecommendationDescription = ko.computed(() => i18n.getString('Inline_Location_Recommendation_Description', {\r\n trafficGain: this.locationTrafficGain(),\r\n impressionGain: this.locationImpressionGain(),\r\n }));\r\n this.locationRecommendationBanner = ko.computed(() => i18n.getString('Inline_Location_Recommendation_Setting_Banner_BI', {\r\n trafficGain: this.locationTrafficGain(),\r\n impressionGain: this.locationImpressionGain(),\r\n }));\r\n this.showLocationRecommendationBanner = ko.computed(() => _.size(this.locationRecommendations()) > 0);\r\n }\r\n }\r\n}\r\n","/*eslint no-unused-vars:0 */\r\nimport ko from 'knockout';\r\nimport targetOptions from '@bingads-webui-campaign-legacy/location-targets/viewmodel/targetOptions';\r\n\r\nexport default function ViewModel(options) {\r\n this.searchBoxVisible = ko.observable(options.searchBoxVisible);\r\n this.advancedTargetingLinkVisible = ko.observable(options.advancedTargetingLinkVisible);\r\n this.shouldHideIncludedLocations = ko.computed(() => {\r\n if (options.shouldHideIncludedLocations) {\r\n return options.shouldHideIncludedLocations();\r\n }\r\n return false;\r\n });\r\n this.showMapError = ko.observable(!(window.Microsoft && window.Microsoft.Maps && window.Microsoft.Maps.loadModule));\r\n this.wholeBoderVisible = ko.observable(options.scenario === 'audience-dashboard');\r\n this.includedLocations = [];\r\n this.excludedLocations = [];\r\n this.newLocations = [];\r\n this.allLocations = [];\r\n}\r\n","/*eslint prefer-template:0 */\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport { SMART_CAMPAIGN_SCENARIO } from '@bingads-webui-campaign-legacy/location-targets/util/constants';\r\n\r\nexport default class ViewModel {\r\n constructor(options) {\r\n this.rows = ko.observableArray([]);\r\n this.i18n = options.i18n;\r\n this.locations = {\r\n 'included': [],\r\n 'excluded': [],\r\n 'new': [],\r\n };\r\n\r\n this.scenario = options.scenario;\r\n this.showResult = ko.observable(options.showResult);\r\n this.hideExclude = ko.observable(options.hideExclude);\r\n this.excludeAllowed = ko.observable(options.excludeAllowed);\r\n this.titleClickable = ko.observable(options.titleClickable);\r\n this.shouldHideIncludedLocations = ko.computed(() => {\r\n if (options.shouldHideIncludedLocations) {\r\n return options.shouldHideIncludedLocations();\r\n }\r\n return false;\r\n });\r\n this.showPrompt = ko.pureComputed(() => {\r\n return !this.showResult();\r\n });\r\n\r\n this.currentAction = '';\r\n this.currentItem = null;\r\n this.ariaTextSearchResult = ko.observable('');\r\n }\r\n\r\n load(entities) {\r\n const rows = _.map(entities, (entity) => {\r\n return {\r\n entity,\r\n i18n: this.i18n,\r\n selectionStatusObsv: ko.observable(entity.SelectionStatus || 'New'),\r\n isSmartCampaign: ko.observable(this.scenario === SMART_CAMPAIGN_SCENARIO),\r\n nameToShow: entity.Criterion.Type === 'Location' ? entity.Criterion.LocationCriterion.NameTypeCombo : entity.Criterion.RadiusCriterion.NameTypeCombo,\r\n locationId: entity.Criterion.Type === 'Location' ? entity.Criterion.LocationCriterion.LocationId : entity.Criterion.RadiusCriterion.LocationId,\r\n hideExclude: this.hideExclude(),\r\n hideInclude: this.shouldHideIncludedLocations(),\r\n };\r\n });\r\n\r\n this.rows(rows);\r\n this.ariaTextSearchResult(rows.length > 0 ? this.i18n.getString('LocationTargeting_SearchResult', rows.length) : '');\r\n }\r\n\r\n getEntityById(id) {\r\n let iid = id;\r\n\r\n if (_.isString(id)) {\r\n iid = parseInt(id);\r\n }\r\n return _.find(this.rows(), (row) => {\r\n return row.locationId === iid;\r\n });\r\n }\r\n}\r\n","/*eslint no-unused-vars:0 */\r\n/*eslint no-console:0 */\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport { SMART_CAMPAIGN_SCENARIO } from '@bingads-webui-campaign-legacy/location-targets/util/constants';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/location-targets/viewmodel/locationSearch';\r\nimport tmpl from '@bingads-webui-campaign-legacy/location-targets/template/locationSearch.pug';\r\nimport Searchbox from '@bingads-webui-component-legacy/searchbox/view/searchbox';\r\nimport locationTargetContext from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetContext';\r\nimport * as locationTargetConverter from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetConverter';\r\nimport geoConverter from '@bingads-webui-campaign-legacy/location-targets/util/geoConverter';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport * as locationTargetTypes from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetTypes';\r\nimport eventDispatcher from '@bingads-webui-component-legacy/event-dispatcher/index';\r\nimport geoService from '@bingads-webui-campaign-legacy/location-targets/util/geoService';\r\nimport addressResolver from '@bingads-webui-campaign-legacy/location-targets/util/addressResolver';\r\nimport * as locationIntermediateHelper from '@bingads-webui-campaign-legacy/location-targets/util/locationIntermediateHelper';\r\nimport { createAsyncToken } from '@bingads-webui-universal/primitive-utilities';\r\nimport { isXandrServing } from '@bingads-webui-campaign-react/constants';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/location-targets');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = _.defaults(options, {\r\n showResult: false,\r\n radius: 25,\r\n level: 'campaign',\r\n unit: 'miles',\r\n i18n,\r\n });\r\n this.campaignSubType = this.options.currentCampaign && this.options.currentCampaign.CampaignSubType;\r\n this.campaignSettings = this.options.currentCampaign && this.options.currentCampaign.CampaignSettings;\r\n this.viewmodel = new ViewModel(this.options);\r\n\r\n this.viewmodel.showResult.subscribe(this.onShowResultChange, this);\r\n\r\n this.searchbox = new Searchbox({\r\n autoSearch: true,\r\n defaultText: i18n.get(this.options.hideExclude ?\r\n 'LocationTargeting_SearchBoxWatermark_Include' :\r\n 'LocationTargeting_SearchBoxWatermark'),\r\n searchButtonAriaLabel: i18n.get('Search by location name'),\r\n searchIputDescriptionId: 'LocationTargetingSearchBoxPrompt',\r\n });\r\n this.searchbox.on('search', this.onSearch.bind(this));\r\n\r\n eventDispatcher.on(\r\n 'level:changed',\r\n (level) => {\r\n this.options.level = level;\r\n this.onCriterionChange();\r\n },\r\n this,\r\n );\r\n\r\n jsdata.Intermediate.subscribe('CampaignCriterion', () => {\r\n this.onCriterionChange();\r\n });\r\n jsdata.Intermediate.subscribe('AdGroupCriterion', () => {\r\n this.onCriterionChange();\r\n });\r\n\r\n jsdata.Intermediate.subscribe('Location', (searchedCriterions) => {\r\n let searchedResults = _.deepClone(searchedCriterions);\r\n\r\n this.viewmodel.showResult(false);\r\n this.viewmodel.load(searchedResults);\r\n\r\n let locations = _.deepClone(\r\n locationIntermediateHelper.getLocationCriterion(this.resourceName),\r\n );\r\n\r\n if (this.viewmodel.shouldHideIncludedLocations()) {\r\n locations = locations.filter((x) => x.SelectionStatus !== locationTargetTypes.Included);\r\n }\r\n\r\n this.updateSelectionStatus(locations);\r\n\r\n this.viewmodel.showResult(true);\r\n });\r\n }\r\n\r\n get resourceName() {\r\n return this.options.level === 'campaign' ?\r\n 'CampaignCriterion' :\r\n 'AdGroupCriterion';\r\n }\r\n\r\n onCriterionChange() {\r\n let locations = this.options.hideExclude ? [] : _.deepClone(\r\n locationIntermediateHelper.getLocationCriterion(this.resourceName),\r\n );\r\n\r\n if (this.viewmodel.shouldHideIncludedLocations()) {\r\n locations = locations.filter((x) => x.SelectionStatus !== locationTargetTypes.Included);\r\n }\r\n\r\n this.viewmodel.showResult(false);\r\n this.updateSelectionStatus(locations);\r\n }\r\n\r\n onShowResultChange(visible) {\r\n if (visible) {\r\n $(window).click(this.clickHandling.bind(this));\r\n $(window).on('keydown', (event) => {\r\n if (event.key === 'Escape' || event.key === 'Esc') {\r\n this.viewmodel.showResult(false);\r\n }\r\n });\r\n if ($('.new-location-targeting-result .new-location-targeting-include-link').length) {\r\n // if we have items that can be focused, start checking after getting into the results' area\r\n $('.new-location-targeting-result').one('focusout', () => {\r\n $(window).on('focusin', this.clickHandling.bind(this));\r\n });\r\n } else {\r\n $(window).on('focusin', this.clickHandling.bind(this));\r\n }\r\n } else {\r\n $(window).off('click', this.clickHandling.bind(this));\r\n $(window).off('focusin');\r\n }\r\n }\r\n\r\n clickHandling(e) {\r\n if ($(e.target).closest('.new-location-targeting-result').length === 0) {\r\n this.viewmodel.showResult(false);\r\n }\r\n }\r\n\r\n updateState({ radius, unit }) {\r\n this.options.radius = radius;\r\n this.options.unit = unit;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click a.new-location-targeting-include-link': 'onInclude',\r\n 'click .new-search-result-row.selectable': 'onInclude',\r\n 'click a.new-location-targeting-exclude-link': 'onExclude',\r\n };\r\n }\r\n\r\n render() {\r\n this.$el.html(\r\n tmpl({\r\n i18n,\r\n noCoordinates: isXandrServing(this.campaignSubType, this.campaignSettings),\r\n }),\r\n );\r\n\r\n ko.applyBindings(this.viewmodel, this.el);\r\n\r\n this.searchbox.render();\r\n this.$('.searchbox').append(this.searchbox.$el);\r\n\r\n if (this.options.preloadedLocationData) {\r\n this.searchbox.ko_model.value(this.options.preloadedLocationData.Name);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n logActivity(message) {\r\n if (this.options.activityLogger) {\r\n this.options.activityLogger.signal(message, this.options.scenario);\r\n }\r\n }\r\n\r\n onInclude(event) {\r\n this.logActivity('location search add location target');\r\n\r\n if (this.options.scenario === SMART_CAMPAIGN_SCENARIO && !this.options.locationOnly) {\r\n jsdata.Intermediate.destroyAll('CampaignCriterion');\r\n }\r\n event.stopPropagation();\r\n let selectedRow = this.viewmodel.getEntityById(\r\n $(event.target)\r\n .closest('tr')\r\n .data().id,\r\n );\r\n let locationEntity = null;\r\n\r\n if (\r\n selectedRow.entity.Criterion.Type === 'Location' &&\r\n this.options.scenario !== 'audience-dashboard' &&\r\n !this.options.hideExclude &&\r\n geoConverter.isRadiusTargetingAllowedForLocationType(\r\n selectedRow.entity.Criterion.LocationCriterion.LocationType,\r\n )\r\n ) {\r\n locationEntity = locationTargetConverter.convertLocationToRadiusCriterion(\r\n selectedRow.entity,\r\n this.options.radius,\r\n this.options.unit,\r\n );\r\n } else {\r\n locationEntity = selectedRow.entity;\r\n if (\r\n locationEntity.Criterion.Type === 'Radius' &&\r\n locationEntity.Criterion.RadiusCriterion.LocationId < 0\r\n ) {\r\n locationEntity.Criterion.RadiusCriterion.LocationId = '';\r\n }\r\n }\r\n\r\n locationEntity.SelectionStatus = locationTargetTypes.Included;\r\n locationEntity.Order = locationTargetContext.index++;\r\n\r\n const searchBoxValue = this.options.hideExclude ?\r\n locationEntity.Criterion[`${locationEntity.Criterion.Type}Criterion`].Name :\r\n '';\r\n\r\n if (this.options.onLocationChanged) {\r\n this.options.onLocationChanged(locationEntity.Criterion[`${locationEntity.Criterion.Type}Criterion`]);\r\n }\r\n this.searchbox.ko_model.value(searchBoxValue);\r\n jsdata.Intermediate.create(this.resourceName, locationEntity).then(() => {\r\n this.trigger('LocationsListChanged');\r\n $('.location-search .searchbox-input').focus();\r\n });\r\n }\r\n\r\n onExclude(event) {\r\n this.logActivity('location search exclude location target');\r\n event.stopPropagation();\r\n let selectedRow = this.viewmodel.getEntityById(\r\n $(event.target)\r\n .closest('tr')\r\n .data().id,\r\n );\r\n let locationEntity = selectedRow.entity;\r\n\r\n if (locationEntity.CriterionType === 'Radius') {\r\n locationEntity = locationTargetConverter.convertRadiusToLocationCriterion(\r\n locationEntity,\r\n );\r\n }\r\n locationEntity.SelectionStatus = locationTargetTypes.Excluded;\r\n locationEntity.CriterionType = 'NegativeLocation';\r\n locationEntity.Order = locationTargetContext.index++;\r\n\r\n this.searchbox.ko_model.value('');\r\n\r\n jsdata.Intermediate.create(this.resourceName, locationEntity).then(() => {\r\n this.trigger('LocationsListChanged');\r\n $('.location-search .searchbox-input').focus();\r\n });\r\n }\r\n\r\n importCriterion(locationEntity) {\r\n jsdata.Intermediate.create(this.resourceName, locationEntity).then(() => {\r\n this.trigger('LocationsListChanged');\r\n });\r\n }\r\n\r\n convertFromCriterionHelperFormat(criterionType, criterionObject, isIncluded = true) {\r\n // criterionType: True = Location, False = Radius.\r\n // criterionObject: From criterionHelper Format.\r\n // isIncluded: bool to determine include or exclude.\r\n let locationEntity;\r\n\r\n if (criterionType) {\r\n locationEntity = locationTargetConverter.convertLocationCriterionfromMTData(\r\n criterionObject,\r\n isIncluded,\r\n );\r\n } else {\r\n locationEntity = locationTargetConverter.convertRadiusCriterionfromMTData(criterionObject);\r\n }\r\n this.importCriterion(locationEntity);\r\n }\r\n\r\n getLocationsFromMtApi(value) {\r\n return jsdata.Location.findAll(\r\n {\r\n query: {\r\n $search: value,\r\n $expand: 'ParentLocations',\r\n IsBrandAwarenessCampaignScenario: isXandrServing(this.campaignSubType, this.campaignSettings),\r\n },\r\n },\r\n {\r\n cacheResponse: false,\r\n headers: {\r\n lcid: pageContext.CultureLcid,\r\n },\r\n },\r\n ).then((data) => {\r\n if (!data || !data.length) {\r\n return Promise.resolve([]);\r\n }\r\n\r\n let results = _.map(data, (result) => {\r\n const nonSmartCampaignMode = (this.options.scenario !== 'audience-dashboard' &&\r\n !this.options.hideExclude) &&\r\n geoConverter.isRadiusTargetingAllowedForLocationType(\r\n result.Type,\r\n ) ? 'radius' : 'location';\r\n\r\n const locationType = this.options.locationOnly ? 'location' : 'radius';\r\n const mode = _.isUndefined(this.options.locationOnly) ?\r\n nonSmartCampaignMode :\r\n locationType;\r\n\r\n return locationTargetConverter.buildLocationCriterionFromSearchResult(\r\n result,\r\n { mode, radius: this.options.radius, unit: this.options.unit },\r\n );\r\n });\r\n\r\n const filteredResults = this.filterResultByCountryCode(results);\r\n\r\n return Promise.resolve(this.options.scenario === SMART_CAMPAIGN_SCENARIO ? filteredResults : results);\r\n });\r\n }\r\n\r\n getLocationsFromBingMapsApi(value, useStructuredApiEndpoint) {\r\n return new Promise((resolve) => {\r\n geoService.searchLocationAtBingMaps(\r\n value,\r\n (r1, result) => {\r\n let results = [];\r\n\r\n if (\r\n result &&\r\n _.isArray(result.resourceSets) &&\r\n result.resourceSets.length\r\n ) {\r\n let fakeLocationId = 0;\r\n\r\n _.each(result.resourceSets[0].resources, (locationData) => {\r\n if (\r\n geoConverter.isRadiusTargetingAllowedForBingMapsLocationTypes(\r\n locationData.entityType,\r\n )\r\n ) {\r\n results.push(\r\n locationTargetConverter.buildRadiusCriterionFromBingMaps(\r\n locationData,\r\n --fakeLocationId,\r\n this.options.radius,\r\n this.options.unit,\r\n ),\r\n );\r\n }\r\n });\r\n }\r\n if (this.options.scenario === SMART_CAMPAIGN_SCENARIO) {\r\n results = this.filterResultByCountryCode(results);\r\n const rawResultLength = result.resourceSets[0].resources.length;\r\n const filteredResultLength = results.length;\r\n\r\n if (rawResultLength > 0 && filteredResultLength === 0 && this.options.instrumentationService) {\r\n _.each(result.resourceSets[0].resources, (resource) => {\r\n this.options.instrumentationService.logTrace(\r\n `Searched address not in target country. Address searched: ${resource.address.formattedAddress}`);\r\n });\r\n }\r\n }\r\n\r\n resolve(results);\r\n },\r\n useStructuredApiEndpoint,\r\n );\r\n });\r\n }\r\n\r\n updateSelectionStatus(locations) {\r\n _.each(this.viewmodel.rows(), (searchedLoc) => {\r\n let relatedLocation = _.find(locations, (loc) => {\r\n if (loc.Criterion.Type === 'Location' && searchedLoc.entity.Criterion.Type === 'Radius' && loc.SelectionStatus === 'Excluded') {\r\n return searchedLoc.locationId === loc.Criterion.LocationCriterion.LocationId;\r\n }\r\n if (loc.Criterion.Type === 'Radius' || searchedLoc.entity.Criterion.Type === 'Radius') {\r\n return false;\r\n }\r\n return searchedLoc.locationId === loc.Criterion.LocationCriterion.LocationId;\r\n });\r\n\r\n let sameCentrePointRadiusTarget = _.find(locations, (loc) => {\r\n if (loc.Criterion.Type === 'Location' || searchedLoc.entity.Criterion.Type === 'Location') {\r\n return false;\r\n }\r\n let lat = loc.Criterion.RadiusCriterion.Latitude;\r\n let lon = loc.Criterion.RadiusCriterion.Longitude;\r\n let radius = loc.Criterion.RadiusCriterion.Radius;\r\n\r\n let searchedLocLat = searchedLoc.entity.Criterion.RadiusCriterion.Latitude;\r\n let searchedLocLon = searchedLoc.entity.Criterion.RadiusCriterion.Longitude;\r\n let searchedRadius = searchedLoc.entity.Criterion.RadiusCriterion.Radius;\r\n\r\n // \"10 miles around abc\" and \"5 miles around abc\" are 2 different locations and both are biddable\r\n return lat === searchedLocLat && lon === searchedLocLon && radius === searchedRadius;\r\n });\r\n\r\n const relatedLocationFound = !_.isUndefined(relatedLocation) || !_.isUndefined(sameCentrePointRadiusTarget);\r\n\r\n let locationStatus = locationTargetTypes.New;\r\n\r\n if (relatedLocationFound) {\r\n locationStatus = relatedLocation ?\r\n relatedLocation.SelectionStatus :\r\n sameCentrePointRadiusTarget.SelectionStatus;\r\n }\r\n\r\n searchedLoc.selectionStatusObsv(locationStatus);\r\n });\r\n }\r\n\r\n onSearch(searchText) {\r\n if (this.searchTask) {\r\n this.searchTask.cancel();\r\n }\r\n\r\n if (!searchText || _.isEmpty(searchText.replace(/\\s+/g, ''))) {\r\n return Promise.resolve();\r\n }\r\n\r\n this.logActivity(`location search search for location target: ${searchText}`);\r\n\r\n let searchTask;\r\n const isLatLongQuery = addressResolver.isLatLongCoordinates(searchText);\r\n const searchMtApiOnly = isXandrServing(this.campaignSubType, this.campaignSettings);\r\n\r\n if (isLatLongQuery && !searchMtApiOnly) {\r\n if (this.options.scenario === 'audience-dashboard') {\r\n return Promise.resolve([]);\r\n }\r\n searchTask = this.getLocationsFromBingMapsApi(searchText, isLatLongQuery);\r\n } else {\r\n searchTask = this.getLocationsFromMtApi(searchText).then((results) => {\r\n if (!_.isEmpty(results) ||\r\n this.options.scenario === 'audience-dashboard' ||\r\n this.options.locationOnly ||\r\n searchMtApiOnly\r\n ) {\r\n return results;\r\n }\r\n\r\n return this.getLocationsFromBingMapsApi(searchText, isLatLongQuery);\r\n });\r\n }\r\n\r\n return new Promise((resolve) => {\r\n this.searchTask = createAsyncToken(searchTask).on({\r\n onSuccess: (results) => {\r\n resolve(results);\r\n },\r\n });\r\n })\r\n .then((results) => {\r\n if (this.viewmodel.shouldHideIncludedLocations()) {\r\n // eslint-disable-next-line no-param-reassign\r\n results = results.filter((entity) => {\r\n const locationId = entity.Criterion.Type === 'Location' ? entity.Criterion.LocationCriterion.LocationId : entity.Criterion.RadiusCriterion.LocationId;\r\n\r\n return locationId > 0;\r\n });\r\n }\r\n jsdata.Intermediate.refresh('Location', results);\r\n });\r\n }\r\n\r\n remove(...args) {\r\n eventDispatcher.off(null, null, this);\r\n this.searchbox.remove();\r\n super.remove(...args);\r\n }\r\n\r\n filterResultByCountryCode(results) {\r\n return _.filter(results, (location) => {\r\n const allowedCountryCodes = this.options.targetOption;\r\n const currentCountryCode = location.Criterion[`${location.CriterionType}Criterion`].CountryCode;\r\n\r\n return _.contains(allowedCountryCodes, currentCountryCode);\r\n });\r\n }\r\n}\r\n","/*eslint prefer-template:0 */\r\nimport ko from 'knockout';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/location-targets');\r\n\r\nexport default function ViewModel(options = {}) {\r\n this.gridData = ko.observableArray([]);\r\n this.gridVisible = ko.observable(false);\r\n this.gridRemoveAllVisible = ko.observable(true);\r\n this.removeAllInGridTitleVisible = ko.observable(true);\r\n this.gridNoDataMessageVisible = ko.observable(true);\r\n this.gridNoDataMessage = i18n.get('LocationTargeting_NoGridData');\r\n\r\n this.popupEditorVisible = ko.observable(false);\r\n this.popupEditorLeftValue = ko.observable(options.topValue);\r\n this.popupEditorTopValue = ko.observable(options.leftValue);\r\n this.popupEditorLeftValuePixel = ko.computed(() => {\r\n return this.popupEditorLeftValue() + 'px';\r\n }, this);\r\n this.popupEditorTopValuePixel = ko.computed(() => {\r\n return this.popupEditorTopValue() + 'px';\r\n }, this);\r\n\r\n this.selectedLocationId = ko.observable();\r\n this.hideRemoveAllLink = ko.computed(() => {\r\n return !this.gridVisible() && this.gridNoDataMessageVisible();\r\n }, this);\r\n}\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport { getBulkApiErrors } from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport koSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/location-targets');\r\n\r\nexport default function ViewModel(options) {\r\n koSchema.properties(this);\r\n this.mode = ko.observable(options.mode);//Radius, Location\r\n this.locationName = ko.observable();\r\n this.isRadius = ko.computed(() => {\r\n return this.mode() === 'Radius';\r\n }, this);\r\n this.radius = ko.observable(options.radius);\r\n this.radiusUnits = ko.observableArray([\r\n {\r\n value: 'miles',\r\n text: i18n.get('Targeting_Proximity_RadiusMiles'),\r\n },\r\n {\r\n value: 'km',\r\n text: i18n.get('Location_Target_Proximity_RadiusKilometer'),\r\n },\r\n ]);\r\n this.selectedUnit = ko.observable();\r\n this.radiusOptionEnabled = ko.observable(true);\r\n this.locationOptionEnabled = ko.observable(true);\r\n this.radiusError = ko.observable(true).extend({\r\n validate: [],\r\n });\r\n\r\n this.radius.subscribe(() => {\r\n this.validate();\r\n }, this);\r\n this.selectedUnit.subscribe(() => {\r\n this.validate();\r\n }, this);\r\n this.mode.subscribe(() => {\r\n this.validate();\r\n }, this);\r\n\r\n this.validate = () => {\r\n let errors = [];\r\n\r\n //validation is true if we're in the area mode.\r\n if (!this.isRadius()) {\r\n this.radiusError(false);\r\n this.errors.clear();\r\n return true;\r\n }\r\n\r\n if (_.isNaN(Number(this.radius())) ||\r\n parseInt(this.radius()) !== Number(this.radius()) ||\r\n this.radius() <= 0 ||\r\n (this.selectedUnit() === 'miles' && this.radius() > 500) ||\r\n (this.selectedUnit() === 'km' && this.radius() > 800)) {\r\n errors.push({\r\n Error: 'CampaignServiceInvalidTargetRadius',\r\n ErrorNumber: '1457',\r\n Property: 'radiusError',\r\n });\r\n }\r\n if (errors.length) {\r\n errors = getBulkApiErrors(errors);\r\n this.errors.add(errors);\r\n return false;\r\n }\r\n this.radiusError(false);\r\n this.errors.clear();\r\n return true;\r\n };\r\n}\r\n","import Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport tmpl from '@bingads-webui-campaign-legacy/location-targets/template/locationPopupEditor.pug';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/location-targets/viewmodel/locationPopupEditor';\r\nimport uuid from '@bingads-webui-component-legacy/uuid/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/location-targets');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = _.defaults(options, {\r\n mode: '',\r\n });\r\n this.viewmodel = new ViewModel(options);\r\n }\r\n\r\n events() {\r\n return {\r\n 'click .location-edit-btn-done': 'onCreate',\r\n };\r\n }\r\n\r\n render() {\r\n this.$el.html(tmpl({\r\n i18n,\r\n uuid,\r\n }));\r\n\r\n ko.applyBindings(this.viewmodel, this.el);\r\n\r\n return this;\r\n }\r\n\r\n onCreate() {\r\n //TODO [imang]: should add ko-validation for the input fields.\r\n if (!this.viewmodel.validate()) {\r\n return;\r\n }\r\n let targetType = {\r\n mode: this.viewmodel.mode(),\r\n };\r\n\r\n if (this.viewmodel.isRadius()) {\r\n targetType.radius = parseInt(this.viewmodel.radius());\r\n targetType.unit = this.viewmodel.selectedUnit();\r\n }\r\n this.trigger('targetTypeSaved', targetType);\r\n }\r\n\r\n setMode(mode) {\r\n this.viewmodel.mode(mode);\r\n }\r\n\r\n setLocationName(name) {\r\n this.viewmodel.locationName(name);\r\n }\r\n\r\n setRadius(radius) {\r\n this.viewmodel.radius(radius);\r\n }\r\n\r\n setRadiusUnit(radiusUnit) {\r\n this.viewmodel.selectedUnit(radiusUnit);\r\n }\r\n\r\n setRadiusOptionEnable(radiusOption) {\r\n this.viewmodel.radiusOptionEnabled(radiusOption);\r\n }\r\n\r\n setLocationOptionEnable(locationOption) {\r\n this.viewmodel.locationOptionEnabled(locationOption);\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport ko from 'knockout';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/location-targets/viewmodel/locationTargetGrid';\r\nimport tmpl from '@bingads-webui-campaign-legacy/location-targets/template/locationTargetGrid.pug';\r\nimport locationTargetGridLocationColumnTemplate from '@bingads-webui-campaign-legacy/location-targets/template/locationTargetGridLocationColumnTemplate.pug';\r\nimport locationTargetGridRemoveColumnTemplate from '@bingads-webui-campaign-legacy/location-targets/template/locationTargetGridRemoveColumnTemplate.pug';\r\nimport locationTargetGridLocationColumnTitleLink from '@bingads-webui-campaign-legacy/location-targets/template/locationTargetGridLocationColumnTitleLink.pug';\r\nimport locationTargetStatus from '@bingads-webui-campaign-legacy/location-targets/template/locationTargetStatus.pug';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport LocationPopupEditor from '@bingads-webui-campaign-legacy/location-targets/view/locationPopupEditor';\r\nimport * as locationTargetConverter from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetConverter';\r\nimport * as unitMaps from '@bingads-webui-campaign-legacy/location-targets/util/unitMaps';\r\nimport * as locationTargetTypes from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetTypes';\r\nimport eventDispatcher from '@bingads-webui-component-legacy/event-dispatcher/index';\r\nimport geoConverter from '@bingads-webui-campaign-legacy/location-targets/util/geoConverter';\r\nimport { deprecatedTextMapping } from '@bingads-webui-campaign-legacy/location-targets/util/constants';\r\nimport { isDeprecatedLocation } from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetDeprecationHelper';\r\nimport showLocationStatusPopup from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetStatusPopup';\r\nimport paginationTemplate from '@bingads-webui-campaign-legacy/location-targets/template/pagination-template.pug';\r\nimport pgrid from '@bingads-webui-component-legacy/github/modules/projection-grid/module/projection-grid';\r\nimport paginationPlugin from '@bingads-webui-component-legacy/bingads-grid/plugin/pagination';\r\nimport { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport logger from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport * as locationIntermediateHelper from '@bingads-webui-campaign-legacy/location-targets/util/locationIntermediateHelper';\r\nimport { focusLockInstanceDecorator } from '@bingads-webui/focus-lock-decorator';\r\nimport { isXandrServing } from '@bingads-webui-campaign-react/constants';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/location-targets');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n _.defaults(options, {\r\n level: 'campaign',\r\n type: locationTargetTypes.Included,\r\n });\r\n this.campaignType = options.campaignType;\r\n this.campaignSettings = options.campaignSettings;\r\n\r\n const gridRemoveAll = options.scenario === 'audience-dashboard' || options.isForVNext;\r\n\r\n this.viewmodel = new ViewModel();\r\n this.viewmodel.gridRemoveAllVisible(this.options.type === locationTargetTypes.Included && !gridRemoveAll);\r\n this.viewmodel.gridNoDataMessageVisible(this.options.type === locationTargetTypes.Included);\r\n this.viewmodel.popupEditorVisible.subscribe(this.onPopupEditorVisibleChange, this);\r\n this.viewmodel.removeAllInGridTitleVisible(gridRemoveAll);\r\n\r\n //TODO [imang]: use the popup editor component once it supports custom template/control\r\n this.locationPopupEditor = new LocationPopupEditor();\r\n this.locationPopupEditor.on('targetTypeSaved', this.editTarget.bind(this));\r\n const FocusLockLocationPopupEditor = focusLockInstanceDecorator(this.locationPopupEditor, {\r\n onExit: () => this.viewmodel.popupEditorVisible(false),\r\n lockRegionAriaLabel: options.lockRegionAriaLabel,\r\n focusFirstItemOnMount: true,\r\n }, {\r\n managed: true,\r\n });\r\n\r\n this.focusLockLocationPopupEditor = new FocusLockLocationPopupEditor();\r\n\r\n eventDispatcher.on('level:changed', (level) => {\r\n this.options.level = level;\r\n this.onCriterionChange();\r\n }, this);\r\n\r\n jsdata.Intermediate.subscribe('CampaignCriterion', () => {\r\n this.onCriterionChange();\r\n });\r\n jsdata.Intermediate.subscribe('AdGroupCriterion', () => {\r\n this.onCriterionChange();\r\n });\r\n\r\n if (this.options.locationCriterions) {\r\n // clear all criterions\r\n jsdata.Intermediate.destroyAll('CampaignCriterion');\r\n\r\n if (_.isArray(this.options.locationCriterions)) {\r\n _.each(this.options.locationCriterions, (criterion) => {\r\n jsdata.Intermediate.create('CampaignCriterion', criterion);\r\n });\r\n } else {\r\n jsdata.Intermediate.create('CampaignCriterion', this.options.locationCriterions);\r\n }\r\n }\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .target-grid-remove-all-locations a': 'removeAllLocations',\r\n };\r\n }\r\n\r\n get resourceName() {\r\n return this.options.level === 'campaign' ? 'CampaignCriterion' : 'AdGroupCriterion';\r\n }\r\n\r\n logActivity(mes) {\r\n if (this.options.activityLogger) {\r\n this.options.activityLogger.signal(mes, this.options.scenario);\r\n }\r\n }\r\n\r\n removeAllLocations() {\r\n if (this.options.onLocationChanged) {\r\n this.options.onLocationChanged('all', true);\r\n }\r\n jsdata.Intermediate.destroyAll(this.resourceName);\r\n this.trigger('removeAllLocations');\r\n\r\n this.logActivity('location target grid remove all locations');\r\n }\r\n\r\n onCriterionChange() {\r\n const locations = _.deepClone(locationIntermediateHelper.getLocationCriterion(this.resourceName));\r\n const sortedLocations = geoConverter.sortLocationsByType(locations);\r\n\r\n this.viewmodel.gridData(this.options.type === locationTargetTypes.Included ?\r\n sortedLocations.included : sortedLocations.excluded);\r\n this.viewmodel.gridNoDataMessageVisible(this.options.type === locationTargetTypes.Included &&\r\n locations.length === 0);\r\n this.refreshGridSource();\r\n }\r\n\r\n onPopupEditorVisibleChange(visible) {\r\n if (visible) {\r\n $(window).click(this.clickHandling.bind(this));\r\n } else {\r\n $(window).off('click', this.clickHandling.bind(this));\r\n }\r\n }\r\n\r\n clickHandling(e) {\r\n if ($(e.target).closest('.popup-editor').length === 0) {\r\n this.viewmodel.popupEditorVisible(false);\r\n }\r\n }\r\n\r\n editTarget(targetType) {\r\n this.viewmodel.popupEditorVisible(false);\r\n\r\n let selectedEntity = _.find(this.viewmodel.gridData(), (loc) => {\r\n return loc.Id === this.viewmodel.selectedLocationId();\r\n });\r\n let selectedEntityLocationType = selectedEntity.Criterion.Type;\r\n let selectedEntityResourceName = this.resourceName;\r\n let updatedEntityLocationType = targetType.mode;\r\n let updatedEntity = null;\r\n\r\n if (selectedEntityLocationType === 'Radius' && updatedEntityLocationType === 'Location') {\r\n updatedEntity = locationTargetConverter.convertRadiusToLocationCriterion(selectedEntity);\r\n jsdata.Intermediate.destroy(selectedEntityResourceName, selectedEntity.Id);\r\n jsdata.Intermediate.create(selectedEntityResourceName, updatedEntity);\r\n } else if (selectedEntityLocationType === 'Location' && updatedEntityLocationType === 'Radius') {\r\n updatedEntity = locationTargetConverter.convertLocationToRadiusCriterion(selectedEntity, targetType.radius, targetType.unit);\r\n jsdata.Intermediate.destroy(selectedEntityResourceName, selectedEntity.Id);\r\n jsdata.Intermediate.create(selectedEntityResourceName, updatedEntity);\r\n } else if (selectedEntityLocationType === 'Radius') {\r\n updatedEntity = _.omit($.extend(true, {}, selectedEntity), ['Id']);\r\n updatedEntity.Criterion.RadiusCriterion.Radius = targetType.radius;\r\n updatedEntity.Criterion.RadiusCriterion.RadiusUnit = targetType.unit;\r\n updatedEntity.Criterion.RadiusCriterion.NameTypeCombo = unitMaps.radiusTargetNameTypeComboGenerator(targetType.radius, targetType.unit, updatedEntity.Criterion.RadiusCriterion.Name);\r\n jsdata.Intermediate.destroy(selectedEntityResourceName, selectedEntity.Id);\r\n jsdata.Intermediate.create(selectedEntityResourceName, updatedEntity);\r\n }\r\n $(`.location-target-grid__area-row[data-key='${selectedEntity.Id}'] .location-target-grid__title-column`).focus();\r\n }\r\n\r\n updatePagination(resetPageNumber) {\r\n if (!_.isUndefined(resetPageNumber)) {\r\n this.paginationView.ko_model.page_number(0);\r\n }\r\n this.paginationView.ko_model.item_count(this.viewmodel.gridData().length);\r\n }\r\n\r\n refreshGridSource() {\r\n this.viewmodel.gridVisible(this.viewmodel.gridData().length !== 0);\r\n if (this.grid && this.grid.gridView) {\r\n this.grid.gridView.patch({\r\n dataSource: {\r\n data: this.viewmodel.gridData(),\r\n },\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n this.$el.html(tmpl({\r\n i18n,\r\n }));\r\n\r\n ko.applyBindings(this.viewmodel, this.el);\r\n\r\n this.renderGrid();\r\n\r\n this.locationPopupEditor.render();\r\n this.$('.location-popup-editor').append(this.focusLockLocationPopupEditor.render().$el);\r\n\r\n return this;\r\n }\r\n\r\n mouseOverItem(event) {\r\n const location = this.grid.gridView.itemOfElement(event.target);\r\n\r\n this.trigger('mouseover:location', location);\r\n return false;\r\n }\r\n\r\n mouseOutItem(event) {\r\n const location = this.grid.gridView.itemOfElement(event.target);\r\n\r\n this.trigger('mouseout:location', location);\r\n return false;\r\n }\r\n\r\n getRadiusCriterionTitle(criterion, hasLink) {\r\n const rawDistanceString = i18n.getString('LocationTargeting_RadiusTarget_Distance',\r\n criterion.Radius,\r\n criterion.RadiusUnit.toLowerCase() === 'miles' ? i18n.getString('Location_Target_RadiusUnit_Mi') : i18n.getString('Location_Target_RadiusUnit_Km'));\r\n const criterionName = _.isEmpty(criterion.Name) ? locationTargetConverter.getNameForRadiusLocation(criterion.Latitude, criterion.Longitude) : criterion.Name;\r\n const ariaLabel = i18n.getString('LocationTargeting_RadiusTarget_GridTitle', rawDistanceString, criterionName);\r\n const distanceString = hasLink ? locationTargetGridLocationColumnTitleLink({ linkText: rawDistanceString, ariaLabel }) : rawDistanceString;\r\n\r\n return i18n.getString('LocationTargeting_RadiusTarget_GridTitle', distanceString, criterionName);\r\n }\r\n\r\n getLocationCriterionTitle(criterion, hasLink, deprecatedTexts = {}) {\r\n const rawDistanceString = i18n.getString('Location_Target_PopupEditor_CurrentLocation');\r\n const ariaLabel = this.options.scenario === 'audience-dashboard' ? criterion.Name : i18n.getString('LocationTargeting_Column_Within', rawDistanceString, criterion.Name);\r\n const distanceString = hasLink ? locationTargetGridLocationColumnTitleLink({ linkText: rawDistanceString, ariaLabel }) : rawDistanceString;\r\n const title = this.options.scenario === 'audience-dashboard' ? criterion.Name : i18n.getString('LocationTargeting_Column_Within', distanceString, criterion.Name);\r\n const deprecatedWarning = isDeprecatedLocation(criterion) ? locationTargetStatus({ text: deprecatedTexts.warning }) : '';\r\n\r\n return title + deprecatedWarning;\r\n }\r\n\r\n renderGrid() {\r\n this.grid = pgrid.factory({ vnext: true })\r\n .use(paginationPlugin)\r\n .create({\r\n tableClasses: ['table', 'table--no-border', 'grid'],\r\n tableAttributes: { 'role': 'presentation' },\r\n dataSource: {\r\n type: 'memory',\r\n data: this.viewmodel.gridData(),\r\n primaryKey: 'Id',\r\n },\r\n rows: {\r\n bodyRows: [{\r\n type: 'data-rows',\r\n classes: ['location-target-grid__area-row'],\r\n }],\r\n },\r\n columns: [\r\n bingadsGridColumn({\r\n i18n,\r\n name: 'title',\r\n title: this.getLocationTitle(),\r\n template: (local) => {\r\n const criterion = local.value.Criterion.LocationCriterion || local.value.Criterion.RadiusCriterion;\r\n // TODO: remove the mock data\r\n // criterion.LocationStatus = 'Deprecated';\r\n\r\n if (!criterion) {\r\n return '';\r\n }\r\n const deprecatedTexts = deprecatedTextMapping[criterion.LocationStatus] || '';\r\n const containerSelector = `tr[data-key='${local.value.Id}'] .location-map-item .location-cell-status`;\r\n const $locationsSection = $('.location-targets, .location-targets-section, .location-setting-controller, .locations-editor-form, .location-manage');\r\n let title = '';\r\n\r\n if (criterion.Type === 'Radius') {\r\n title = this.getRadiusCriterionTitle(criterion, true);\r\n } else {\r\n title = this.getLocationCriterionTitle(criterion, true, deprecatedTexts);\r\n }\r\n\r\n if (this.options.isForVNext) {\r\n $locationsSection.on('mouseover', containerSelector, (event) => {\r\n showLocationStatusPopup(event, deprecatedTexts, containerSelector, true);\r\n });\r\n }\r\n\r\n $locationsSection.on('click', containerSelector, (event) => {\r\n showLocationStatusPopup(event, deprecatedTexts, containerSelector, this.options.isForVNext);\r\n });\r\n\r\n return locationTargetGridLocationColumnTemplate({\r\n i18n,\r\n value: title,\r\n selectionStatus: local.value.SelectionStatus,\r\n showPinIcon: this.options.scenario !== 'audience-dashboard' || this.options.isForVNext,\r\n showWarningIcon: isDeprecatedLocation(local.value.Criterion.LocationCriterion),\r\n warningText: deprecatedTexts.warning,\r\n });\r\n },\r\n property: (item) => item,\r\n html: this.options.scenario === 'audience-dashboard' && !this.options.isForVNext ?\r\n `${i18n.getString(this.getLocationTitle())}` :\r\n '',\r\n }),\r\n bingadsGridColumn({\r\n i18n,\r\n title: this.viewmodel.removeAllInGridTitleVisible() ? 'Location_Target_Grid_RemoveColumn' : '',\r\n name: 'remove',\r\n template: (local) => {\r\n const criterion = local.value.Criterion.LocationCriterion || local.value.Criterion.RadiusCriterion;\r\n let title = '';\r\n\r\n if (criterion.Type === 'Radius') {\r\n title = this.getRadiusCriterionTitle(criterion, false);\r\n } else {\r\n title = this.getLocationCriterionTitle(criterion, false);\r\n }\r\n title = `${i18n.getString('LocationTargeting_IncludedRemove')} ${title}`;\r\n return locationTargetGridRemoveColumnTemplate({ i18n, areaName: title });\r\n },\r\n property: (item) => item,\r\n headClasses: this.viewmodel.removeAllInGridTitleVisible() ? ['location-target-grid__removeall-header', 'text-right'] : ['location-target-grid__remove-body'],\r\n bodyClasses: ['text-right'],\r\n html: this.viewmodel.removeAllInGridTitleVisible() ? `${i18n.get('Location_Target_Grid_RemoveColumn')}` : '',\r\n }),\r\n ],\r\n events: {\r\n 'click .location-target-grid__title-column': (event) => {\r\n this.locationTitleClicked(event);\r\n },\r\n 'click .location-target-grid__remove-col': (event) => {\r\n this.removeLocation(event);\r\n },\r\n 'click .location-target-grid__removeall-header': (event) => {\r\n this.removeLocations(event);\r\n },\r\n 'mouseover tbody': _.bind(this.mouseOverItem, this),\r\n 'mouseout tbody': _.bind(this.mouseOutItem, this),\r\n },\r\n plugins: {\r\n pagination: {\r\n el: this.$('.pagination_host'),\r\n pageSize: 5,\r\n template: paginationTemplate,\r\n enableRandomPage: false,\r\n },\r\n },\r\n });\r\n\r\n this.$('.target-grid').html(this.grid.gridView.render().el);\r\n }\r\n\r\n getLocationId(location) {\r\n return location.Criterion.Type === 'Location' ? location.Criterion.LocationCriterion.LocationId : location.Criterion.RadiusCriterion.LocationId;\r\n }\r\n\r\n getLocationName(location) {\r\n return location.Criterion.Type === 'Location' ? location.Criterion.LocationCriterion.Name : location.Criterion.RadiusCriterion.Name;\r\n }\r\n\r\n getLocationTitle() {\r\n let locationTitle = '';\r\n\r\n locationTitle = this.options.type === locationTargetTypes.Included ?\r\n 'Location_Target_Grid_TargetedLocationColumn' :\r\n 'Location_Target_Grid_ExcludedLocationColumn';\r\n\r\n return locationTitle;\r\n }\r\n\r\n removeLocations(e) {\r\n e.stopPropagation();\r\n\r\n const locations = _.deepClone(locationIntermediateHelper.getLocationCriterion(this.resourceName));\r\n const sortedLocations = geoConverter.sortLocationsByType(locations);\r\n const locationsForRemove = this.options.type === locationTargetTypes.Included ? sortedLocations.included : sortedLocations.excluded;\r\n\r\n\r\n Promise.all(_.map(locationsForRemove, (location) =>\r\n jsdata.Intermediate.destroy(this.resourceName, location.Id)))\r\n .then(() => {\r\n this.trigger('LocationsListChanged');\r\n $('.location-search .searchbox-input').focus();\r\n });\r\n }\r\n\r\n removeLocation(e) {\r\n e.stopPropagation();\r\n const index = this.grid.gridView.indexOfElement(e.target);\r\n const location = this.grid.gridView.itemAt(index);\r\n const locationId = _.result(location, 'Id');\r\n\r\n if (this.options.onLocationChanged) {\r\n this.options.onLocationChanged(\r\n location.Criterion[`${location.CriterionType}Criterion`].Name, true);\r\n }\r\n\r\n if (location && location.isRecommendedLocation) {\r\n this.trigger('remove:recommendedlocation', location);\r\n }\r\n\r\n // TODO: log to investigate issues with gridView.itemOfElement\r\n if (!this.grid.gridView.itemOfElement(e.target)) {\r\n const elements = this.$('.location-target-grid__remove-col');\r\n const selectedKey = this.grid.gridView.keyOfElement(e.target);\r\n const selectedRow = $(e.target).closest('tr');\r\n\r\n const errorMsg = `Location id is not valid. V3 Log.\r\n Location: ${JSON.stringify(location)}\r\n Selected row: ${selectedRow.length === 0 ? null : selectedRow[0].outerHTML}\r\n Index of element: ${index}\r\n Item of element: ${JSON.stringify(this.grid.gridView.itemAt(index))}\r\n Key of element: ${selectedKey}\r\n Item with key: ${JSON.stringify(this.grid.gridView.itemWithKey(selectedKey))}\r\n Chain data: ${JSON.stringify(this.grid.gridView._chainData)}\r\n Number of remove icons: ${elements.length}\r\n Count rows: ${this.grid.gridView.countRows}\r\n Total count rows: ${this.grid.gridView.totalCountRows}\r\n Total elements: ${this.grid.gridView.getItemCount()}\r\n Grid items array: ${JSON.stringify(this.grid.gridView.itemArray)}\r\n Current URL: ${document.location.href}`;\r\n\r\n logger.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, '/locationTargetGrid/removeLocation', errorMsg);\r\n }\r\n\r\n if (!_.isString(locationId) && !_.isNumber(locationId)) {\r\n const selectedRow = $(e.target).closest('tr');\r\n const errorMsg = `Location id is not valid. V3 Log.\r\n Location: ${JSON.stringify(location)}\r\n Selected row: ${selectedRow.length === 0 ? null : selectedRow[0].outerHTML}\r\n Index of element: ${index}\r\n Item of element: ${JSON.stringify(this.grid.gridView.itemAt(index))}\r\n Chain data: ${JSON.stringify(this.grid.gridView._chainData)}\r\n Count rows: ${this.grid.gridView.countRows}\r\n Grid items array: ${JSON.stringify(this.grid.gridView.itemArray)}\r\n Current URL: ${document.location.href}`;\r\n\r\n logger.logError('/locationTargetGrid/removeLocation', errorMsg);\r\n } else {\r\n jsdata.Intermediate.destroy(this.resourceName, locationId).then(() => {\r\n this.trigger('LocationsListChanged');\r\n $('.location-search .searchbox-input').focus();\r\n });\r\n }\r\n\r\n this.logActivity('location target grid remove a location');\r\n }\r\n\r\n locationTitleClicked(e) {\r\n e.stopPropagation();\r\n const selectedEntity = this.grid.gridView.itemOfElement(e.target);\r\n\r\n if (!selectedEntity) {\r\n return;\r\n }\r\n\r\n this.viewmodel.selectedLocationId(_.result(selectedEntity, 'Id'));\r\n\r\n const locationName = this.getLocationName(selectedEntity);\r\n\r\n this.locationPopupEditor.setMode(selectedEntity.Criterion.Type);\r\n this.locationPopupEditor.setLocationName(locationName);\r\n\r\n //set the radius option enabled by default\r\n this.locationPopupEditor.setRadiusOptionEnable(true);\r\n if (selectedEntity.Criterion.Type === 'Location') {\r\n if (!geoConverter.isRadiusTargetingAllowedForLocationType(selectedEntity.Criterion.LocationCriterion.LocationType)) {\r\n this.locationPopupEditor.setRadiusOptionEnable(false);\r\n }\r\n //no radius targeting option for excluded targets\r\n if (selectedEntity.SelectionStatus === locationTargetTypes.Excluded) {\r\n this.locationPopupEditor.setRadiusOptionEnable(false);\r\n }\r\n if (isXandrServing(this.campaignType, this.campaignSettings)) {\r\n this.locationPopupEditor.setRadiusOptionEnable(false);\r\n }\r\n }\r\n if (selectedEntity.Criterion.Type === 'Radius') {\r\n //if the radius target entity does not have LocationId field (result of odata read directly from server), then disable the switch to location target option\r\n if (!_.isUndefined(selectedEntity.Criterion.RadiusCriterion) && selectedEntity.Criterion.RadiusCriterion.LocationId) {\r\n this.locationPopupEditor.setLocationOptionEnable(true);\r\n } else {\r\n this.locationPopupEditor.setLocationOptionEnable(false);\r\n }\r\n this.locationPopupEditor.setRadius(selectedEntity.Criterion.RadiusCriterion.Radius);\r\n this.locationPopupEditor.setRadiusUnit(selectedEntity.Criterion.RadiusCriterion.RadiusUnit);\r\n }\r\n this.viewmodel.popupEditorVisible(true);\r\n this.viewmodel.popupEditorTopValue($(e.target).position().top);\r\n this.viewmodel.popupEditorLeftValue($(e.target).position().left);\r\n this.focusLockLocationPopupEditor.$('[tabIndex=\"0\"]:first-child').focus();\r\n }\r\n\r\n remove(...args) {\r\n eventDispatcher.off(null, null, this);\r\n\r\n if (this.grid && this.grid.gridView) {\r\n this.grid.gridView.remove();\r\n this.grid.pagination.remove();\r\n }\r\n if (this.locationPopupEditor) {\r\n this.focusLockLocationPopupEditor.remove();\r\n this.locationPopupEditor.remove();\r\n }\r\n\r\n super.remove(...args);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport { BaseLocationRecommendationModel } from '@bingads-webui-campaign/inline-location-recommendation';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/location-targets');\r\n\r\nexport default class ViewModel extends BaseLocationRecommendationModel {\r\n constructor() {\r\n super({\r\n deps: {\r\n i18n,\r\n },\r\n });\r\n this.selectedItems = ko.observableArray([]);\r\n this.isTargetButtonEnabled = ko.computed(() => _.size(this.selectedItems()) > 0);\r\n this.isRecommendGridVisible = ko.computed(() => _.size(this.locationRecommendations()) > 0);\r\n\r\n this.description = ko.computed(() => {\r\n return i18n.getString('Inline_Location_Recommendation_Description', {\r\n trafficGain: this.locationTrafficGain(),\r\n impressionGain: this.locationImpressionGain(),\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 { LocationRecommendationGrid } from '@bingads-webui-campaign/location-recommendation-grid';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/location-targets/viewmodel/locationRecommendGrid';\r\nimport template from '@bingads-webui-campaign-legacy/location-targets/template/locationRecommendGrid.pug';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport logger from '@bingads-webui-static-legacy/instrumentation/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/location-targets');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = _.defaults({}, options, { level: 'campaign' });\r\n this.model = new ViewModel();\r\n this.locationRecommendationGrid = new LocationRecommendationGrid(_.defaults({}, options, {\r\n deps: {\r\n i18n,\r\n },\r\n hasPagination: false,\r\n tableClasses: ['table table--no-border'],\r\n columnOverrider: {\r\n Impression: {\r\n title: 'ColumnName_EstimatedImpressions_Abbrevated',\r\n },\r\n },\r\n columns: [\r\n 'Location',\r\n 'Impression',\r\n 'Dismiss',\r\n ],\r\n selectAllByDefault: true,\r\n gridRemoveAll: this.options.gridRemoveAll,\r\n }));\r\n\r\n this.locationRecommendationGrid.on('selectChanged', (selectedItems) => this.model.selectedItems(selectedItems));\r\n this.locationRecommendationGrid.on('dismiss', (recommendation) => {\r\n this.trigger('dismiss:recommendations', [recommendation]);\r\n });\r\n this.locationRecommendationGrid.on('mouseover:recommendation', (recommendation) => {\r\n this.trigger('mouseover:recommendation', recommendation);\r\n });\r\n this.locationRecommendationGrid.on('mouseout:recommendation', (recommendation) => {\r\n this.trigger('mouseout:recommendation', recommendation);\r\n });\r\n this.locationRecommendationGrid.on('display:recommendations', (recommendations) => {\r\n _.each(recommendations, ({ OpportunityId: id, Campaign = {} }) => {\r\n logger.logMessage(\r\n [constants.LOGCATEGORY.TRACE],\r\n constants.LOGLEVEL.INFO,\r\n 'Recommendations',\r\n {\r\n type: 'NewLocationTargetOpportunity',\r\n typeId: 216,\r\n id,\r\n campaignId: Campaign.Id,\r\n isClick: false,\r\n channel: 'campaignsetting',\r\n }\r\n );\r\n });\r\n });\r\n\r\n if (this.options.gridRemoveAll) {\r\n this.locationRecommendationGrid.on('removeAllRecommendation', () => {\r\n this.trigger('removeAllRecommendation');\r\n });\r\n }\r\n this.on('set:recommendations', (values) => {\r\n this.model.locationRecommendations(_.deepClone(values));\r\n this.locationRecommendationGrid.trigger('update:data', _.deepClone(values));\r\n });\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click input.target': 'targetRecommendations',\r\n };\r\n }\r\n\r\n targetRecommendations() {\r\n this.trigger('target:recommendations', this.model.selectedItems());\r\n this.model.selectedItems([]);\r\n }\r\n\r\n render() {\r\n this.$el.html(template({\r\n i18n,\r\n }));\r\n ko.applyBindings(this.model, this.el);\r\n this.locationRecommendationGrid.render();\r\n this.$('.location-recommend-grid-container').append(this.locationRecommendationGrid.el);\r\n return this;\r\n }\r\n}\r\n","/*eslint no-unused-vars:0 */\r\nimport Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/location-targets/viewmodel/locationManage';\r\nimport tmpl from '@bingads-webui-campaign-legacy/location-targets/template/locationManage.pug';\r\nimport SearchView from '@bingads-webui-campaign-legacy/location-targets/view/locationSearch';\r\nimport GridView from '@bingads-webui-campaign-legacy/location-targets/view/locationTargetGrid';\r\nimport MapView from '@bingads-webui-campaign-legacy/location-targets/view/locationMap';\r\nimport * as locationTargetTypes from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetTypes';\r\nimport LocationRecommendGrid from '@bingads-webui-campaign-legacy/location-targets/view/locationRecommendGrid';\r\nimport { isXandrServing } from '@bingads-webui-campaign-react/constants';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/location-targets');\r\n\r\nexport default class View extends Backbone.View {\r\n\r\n initialize(options = {}) {\r\n _.defaults(options, {\r\n advancedTargetingLinkVisible: true,\r\n searchBoxVisible: false,\r\n });\r\n this.options = options;\r\n this.viewmodel = new ViewModel(options);\r\n const isNewUI = config.get('IsNewUI');\r\n\r\n let childOptions = _.omit(options, 'el');\r\n const campaignType = this.options.currentCampaign && this.options.currentCampaign.CampaignSubType;\r\n const campaignSettings = this.options.currentCampaign && this.options.currentCampaign.CampaignSettings;\r\n\r\n _.extend(childOptions, {\r\n hideExclude: isXandrServing(campaignType, campaignSettings),\r\n });\r\n\r\n if (window.Microsoft && window.Microsoft.Maps && window.Microsoft.Maps.loadModule) {\r\n this.mapView = new MapView(childOptions);\r\n }\r\n this.searchView = new SearchView(childOptions);\r\n this.gridView = new GridView({\r\n level: childOptions.level,\r\n type: locationTargetTypes.Included,\r\n scenario: this.options.scenario,\r\n onLocationChanged: this.options.onLocationChanged,\r\n isForVNext: isNewUI,\r\n lockRegionAriaLabel: i18n.getString('Location_Target_OpenTargetedLocationPopupEditor'),\r\n activityLogger: this.options.activityLogger,\r\n campaignType,\r\n campaignSettings,\r\n });\r\n\r\n this.excludedGridView = new GridView({\r\n level: childOptions.level,\r\n type: locationTargetTypes.Excluded,\r\n scenario: this.options.scenario,\r\n isForVNext: isNewUI,\r\n lockRegionAriaLabel: i18n.getString('Location_Target_OpenExcludedLocationPopupEditor'),\r\n activityLogger: this.options.activityLogger,\r\n campaignType,\r\n campaignSettings,\r\n });\r\n\r\n const highLightLocation = (location) => {\r\n const { Id } = location || {};\r\n\r\n if (Id && this.mapView) {\r\n this.mapView.trigger('entity:highlight', Id);\r\n }\r\n };\r\n const resetLightedLocation = (location) => {\r\n const { Id } = location || {};\r\n\r\n if (Id && this.mapView) {\r\n this.mapView.trigger('entity:reset', Id);\r\n }\r\n };\r\n\r\n this.gridView.on('mouseover:location', highLightLocation);\r\n this.gridView.on('mouseout:location', resetLightedLocation);\r\n this.excludedGridView.on('mouseover:location', highLightLocation);\r\n this.excludedGridView.on('mouseout:location', resetLightedLocation);\r\n\r\n // ima reach representation related logic\r\n this.gridView.on('LocationsListChanged', () => {\r\n this.trigger('LocationsListChanged');\r\n });\r\n this.searchView.on('LocationsListChanged', () => {\r\n this.trigger('LocationsListChanged');\r\n });\r\n\r\n if (options.hasLocationRecommendations) {\r\n this.dismissedLocationRecommendations = [];\r\n this.targetedLocationRecommendations = [];\r\n this.locationRecommendGrid = new LocationRecommendGrid({\r\n scope: {\r\n campaignId: this.options.campaignId,\r\n },\r\n level: childOptions.level,\r\n isForVNext: childOptions.isForVNext,\r\n gridRemoveAll: isNewUI,\r\n });\r\n\r\n const onRecommendationsUpdated = () => {\r\n this.trigger('update:locationRecommendations', _.deepClone(this.locationRecommendations));\r\n this.locationRecommendGrid.trigger('set:recommendations', _.deepClone(this.locationRecommendations));\r\n if (this.mapView) {\r\n this.mapView.updateRecommendedLocations(this.locationRecommendations);\r\n }\r\n };\r\n const filterOutRecommendations = (recommendations) => {\r\n this.locationRecommendations = _.reject(this.locationRecommendations, (recommendation) => !!_.findWhere(recommendations, { Id: recommendation.Id }));\r\n onRecommendationsUpdated();\r\n };\r\n\r\n this.on('set:locationRecommendations', ({\r\n recommendations,\r\n locationRecommendationsStatus: {\r\n dismissedLocationRecommendations = [],\r\n targetedLocationRecommendations = [],\r\n },\r\n }) => {\r\n this.originLocationRecommendations = _.deepClone(recommendations);\r\n this.locationRecommendations = _.deepClone(recommendations);\r\n this.locationRecommendGrid.trigger('set:recommendations', recommendations);\r\n this.dismissedLocationRecommendations = dismissedLocationRecommendations;\r\n this.targetedLocationRecommendations = targetedLocationRecommendations;\r\n onRecommendationsUpdated();\r\n });\r\n\r\n const targetRecommendations = (recommendations) => {\r\n filterOutRecommendations(recommendations);\r\n if (this.mapView) {\r\n _.each(recommendations, (recommend) => this.mapView._onIncludeMapHandler(recommend));\r\n }\r\n this.targetedLocationRecommendations = this.targetedLocationRecommendations.concat(recommendations);\r\n };\r\n const dismissRecommendations = (recommendations) => {\r\n filterOutRecommendations(recommendations);\r\n this.dismissedLocationRecommendations = this.dismissedLocationRecommendations.concat(recommendations);\r\n };\r\n const restoreRecommendation = (location) => {\r\n this.targetedLocationRecommendations = _.reject(this.targetedLocationRecommendations, (recommend) => recommend.Id === location.Id);\r\n this.locationRecommendations.push(location);\r\n onRecommendationsUpdated();\r\n };\r\n\r\n this.locationRecommendGrid.on('target:recommendations', targetRecommendations);\r\n this.locationRecommendGrid.on('dismiss:recommendations', dismissRecommendations);\r\n this.locationRecommendGrid.on('mouseover:recommendation', highLightLocation);\r\n this.locationRecommendGrid.on('mouseout:recommendation', resetLightedLocation);\r\n this.locationRecommendGrid.on('removeAllRecommendation', () => {\r\n this.dismissedLocationRecommendations = _.deepClone(this.originLocationRecommendations);\r\n this.targetedLocationRecommendations = [];\r\n filterOutRecommendations(this.originLocationRecommendations);\r\n });\r\n\r\n this.gridView.on('removeAllLocations', () => {\r\n this.dismissedLocationRecommendations = _.deepClone(this.originLocationRecommendations);\r\n this.targetedLocationRecommendations = [];\r\n filterOutRecommendations(this.originLocationRecommendations);\r\n });\r\n this.gridView.on('remove:recommendedlocation', restoreRecommendation);\r\n\r\n if (this.mapView) {\r\n this.mapView.on('target:recommendation', (recommendation) => targetRecommendations([recommendation]));\r\n this.mapView.on('dismiss:recommendation', (recommendation) => dismissRecommendations([recommendation]));\r\n this.mapView.on('remove:recommendedlocation', restoreRecommendation);\r\n }\r\n }\r\n }\r\n\r\n get events() {\r\n return {\r\n };\r\n }\r\n\r\n render() {\r\n this.$el.html(tmpl({\r\n i18n,\r\n }));\r\n\r\n ko.applyBindings(this.viewmodel, this.el);\r\n\r\n this.searchView.render();\r\n this.$('.location-search').append(this.searchView.el);\r\n\r\n this.gridView.render();\r\n this.$('.location-target-grid').append(this.gridView.el);\r\n\r\n if (this.locationRecommendGrid) {\r\n this.locationRecommendGrid.render();\r\n this.$('.recommend-location-grid').append(this.locationRecommendGrid.el);\r\n }\r\n\r\n this.excludedGridView.render();\r\n this.$('.excluded-location-target-grid').append(this.excludedGridView.el);\r\n\r\n if (this.mapView) {\r\n this.mapView.render();\r\n this.$('.map').append(this.mapView.el);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n getValues() {\r\n //TODO [imang]: return the list of included/excluded targets\r\n }\r\n\r\n remove(...args) {\r\n this.searchView.remove();\r\n if (this.mapView) {\r\n this.mapView.remove();\r\n }\r\n this.gridView.remove();\r\n if (this.excludedGridView) {\r\n this.excludedGridView.remove();\r\n }\r\n if (this.locationRecommendGrid) {\r\n this.locationRecommendGrid.remove();\r\n }\r\n\r\n super.remove(...args);\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport physicalIntentOptions from '@bingads-webui-campaign-legacy/location-targets/viewmodel/physicalIntentOptions';\r\nimport instrumentation from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/location-targets');\r\n\r\nexport default function ViewModel(options) {\r\n const { isLocationTargetingImprovementEnabled } = options;\r\n\r\n this.showImprovedOptions = ko.computed(() => isLocationTargetingImprovementEnabled);\r\n this.peopleInLocation = ko.observable();\r\n this.peopleSearchingForLocation = ko.observable();\r\n this.peopleInOrSerachingForLocation = ko.computed(() => {\r\n return this.peopleInLocation() && this.peopleSearchingForLocation();\r\n });\r\n this.intentOption = ko.observable(options.physicalIntent);\r\n this.intentId = options.intentId;\r\n\r\n this.setIntent = (intOpt) => {\r\n if (this.showImprovedOptions()) {\r\n switch (intOpt) {\r\n case physicalIntentOptions.PeopleIn:\r\n case physicalIntentOptions.PeopleInOrSearchingForOrViewingPages:\r\n this.intentOption(intOpt);\r\n break;\r\n case physicalIntentOptions.PeopleSearchingForOrViewingPages:\r\n this.intentOption(physicalIntentOptions.PeopleInOrSearchingForOrViewingPages);\r\n break;\r\n default:\r\n break;\r\n }\r\n } else {\r\n switch (intOpt) {\r\n case physicalIntentOptions.PeopleIn:\r\n this.peopleInLocation(true);\r\n this.peopleSearchingForLocation(false);\r\n break;\r\n case physicalIntentOptions.PeopleSearchingForOrViewingPages:\r\n this.peopleSearchingForLocation(true);\r\n this.peopleInLocation(false);\r\n break;\r\n case physicalIntentOptions.PeopleInOrSearchingForOrViewingPages:\r\n this.peopleInLocation(true);\r\n this.peopleSearchingForLocation(true);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n };\r\n this.setIntent(options.physicalIntent);\r\n\r\n this.validate = () => {\r\n const noSelect = this.showImprovedOptions() ?\r\n !this.intentOption() : !this.peopleInLocation() && !this.peopleSearchingForLocation();\r\n\r\n if (noSelect) {\r\n this.intentError(i18n.get('LocationTarget_Intent_NotSelected'));\r\n return false;\r\n }\r\n this.intentError(false);\r\n return true;\r\n };\r\n this.intentError = ko.observable(true).extend({\r\n validate: [],\r\n });\r\n\r\n this.logActivity = (mes) => {\r\n if (options.activityLogger) {\r\n options.activityLogger.signal(mes, options.scenario);\r\n } else {\r\n instrumentation.logMessage(\r\n [constants.LOGCATEGORY.SUBSTRATE],\r\n constants.LOGLEVEL.INFO,\r\n options.scenario,\r\n mes,\r\n );\r\n }\r\n };\r\n this.peopleInLocation.subscribe((newValue) => {\r\n this.validate();\r\n this.logActivity(`location target physical intent change: peopleInLocation ${newValue}`);\r\n }, this);\r\n this.peopleSearchingForLocation.subscribe((newValue) => {\r\n this.validate();\r\n this.logActivity(`location target physical intent change: peopleSearchingForLocation ${newValue}`);\r\n }, this);\r\n this.intentOption.subscribe((newValue) => {\r\n this.validate();\r\n this.logActivity(`location target physical intent change: ${newValue}`);\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/location-targets/viewmodel/locationTargetPhysicalIntent';\r\nimport tmpl from '@bingads-webui-campaign-legacy/location-targets/template/locationTargetPhysicalIntent.pug';\r\nimport physicalIntentOptions from '@bingads-webui-campaign-legacy/location-targets/viewmodel/physicalIntentOptions';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/location-targets');\r\n\r\nconst popupIds = {\r\n 'PhysicalIntentOn': 'pop_BA_CampaignCreate_Settings_PhysicalIntentOn',\r\n 'PhysicalIntentOnly': 'pop_BA_CampaignCreate_Settings_PhysicalIntentOnly',\r\n};\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n this.viewmodel = new ViewModel(options);\r\n this.popupIds = _.defaults({}, this.options.popupIds, popupIds);\r\n this.on('stuff', this.stuff);\r\n this.isLocationTargetingImprovementEnabled = options.isLocationTargetingImprovementEnabled;\r\n }\r\n\r\n setViewModel(viewModel) {\r\n this.viewmodel = viewModel;\r\n }\r\n\r\n render() {\r\n this.$el.html(tmpl({\r\n i18n,\r\n popupIds: this.popupIds,\r\n }));\r\n\r\n ko.applyBindings(this.viewmodel, this.el);\r\n\r\n return this;\r\n }\r\n\r\n validate() {\r\n return this.viewmodel.validate();\r\n }\r\n\r\n setIntent(intentCriterion) {\r\n this.viewmodel.setIntent(intentCriterion.Criterion.IntentOption);\r\n this.viewmodel.intentId = intentCriterion.Id;\r\n }\r\n\r\n getValues() {\r\n let intent = '';\r\n\r\n if (this.viewmodel.showImprovedOptions()) {\r\n intent = this.viewmodel.intentOption();\r\n } else if (this.viewmodel.peopleInOrSerachingForLocation()) {\r\n intent = physicalIntentOptions.PeopleInOrSearchingForOrViewingPages;\r\n } else if (this.viewmodel.peopleInLocation()) {\r\n intent = physicalIntentOptions.PeopleIn;\r\n } else if (this.viewmodel.peopleSearchingForLocation()) {\r\n intent = physicalIntentOptions.PeopleSearchingForOrViewingPages;\r\n }\r\n\r\n if (intent) {\r\n return {\r\n 'Id': this.viewmodel.intentId || '',\r\n 'CriterionType': 'LocationIntentCriterion',\r\n 'Criterion': {\r\n 'Type': 'LocationIntentCriterion',\r\n 'LocationIntentCriterion': {\r\n 'IntentOption': intent,\r\n },\r\n },\r\n };\r\n } else {\r\n return {};\r\n }\r\n }\r\n\r\n}\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/location-targets/viewmodel/locationTargetPhysicalIntent';\r\nimport tmpl from '@bingads-webui-campaign-legacy/location-targets/template/locationTargetPhysicalIntentBidMode.pug';\r\nimport physicalIntentOptions from '@bingads-webui-campaign-legacy/location-targets/viewmodel/physicalIntentOptions';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/location-targets');\r\n\r\nconst popupIds = {\r\n 'PhysicalIntentOn': 'pop_BA_CampaignCreate_Settings_PhysicalIntentOn',\r\n 'PhysicalIntentOnly': 'pop_BA_CampaignCreate_Settings_PhysicalIntentOnly',\r\n};\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n this.viewmodel = new ViewModel(options);\r\n this.popupIds = _.defaults({}, this.options.popupIds, popupIds);\r\n this.on('stuff', this.stuff);\r\n this.isLocationTargetingImprovementEnabled = options.isLocationTargetingImprovementEnabled;\r\n }\r\n\r\n setViewModel(viewModel) {\r\n this.viewmodel = viewModel;\r\n }\r\n\r\n render() {\r\n this.$el.html(tmpl({\r\n i18n,\r\n popupIds: this.popupIds,\r\n }));\r\n\r\n ko.applyBindings(this.viewmodel, this.el);\r\n\r\n return this;\r\n }\r\n\r\n validate() {\r\n return this.viewmodel.validate();\r\n }\r\n\r\n setIntent(intentCriterion) {\r\n this.viewmodel.setIntent(intentCriterion.Criterion.IntentOption);\r\n this.viewmodel.intentId = intentCriterion.Id;\r\n }\r\n\r\n getValues() {\r\n let intent = '';\r\n\r\n if (this.viewmodel.showImprovedOptions()) {\r\n intent = this.viewmodel.intentOption();\r\n } else if (this.viewmodel.peopleInOrSerachingForLocation()) {\r\n intent = physicalIntentOptions.PeopleInOrSearchingForOrViewingPages;\r\n } else if (this.viewmodel.peopleInLocation()) {\r\n intent = physicalIntentOptions.PeopleIn;\r\n } else if (this.viewmodel.peopleSearchingForLocation()) {\r\n intent = physicalIntentOptions.PeopleSearchingForOrViewingPages;\r\n }\r\n\r\n if (intent) {\r\n return {\r\n 'Id': this.viewmodel.intentId || '',\r\n 'CriterionType': 'LocationIntentCriterion',\r\n 'Criterion': {\r\n 'Type': 'LocationIntentCriterion',\r\n 'LocationIntentCriterion': {\r\n 'IntentOption': intent,\r\n },\r\n },\r\n };\r\n } else {\r\n return {};\r\n }\r\n }\r\n\r\n}\r\n","/*eslint no-empty-function:0 */\r\n/*eslint no-unused-vars:0 */\r\n/*eslint no-console:0 */\r\nimport Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport ReactDOM from 'react-dom';\r\nimport Promise from 'bluebird';\r\nimport ko from 'knockout';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport AppEventDelegator from '@bingads-webui-component-legacy/app-event-delegator/index';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/location-targets/viewmodel/locationTargets';\r\nimport tmpl from '@bingads-webui-campaign-legacy/location-targets/template/locationTargets.pug';\r\nimport tmplVNext from '@bingads-webui-campaign-legacy/location-targets/template/locationTargets-vnext.pug';\r\nimport LocationManageView from '@bingads-webui-campaign-legacy/location-targets/view/locationManage';\r\nimport PhysicalIntentView from '@bingads-webui-campaign-legacy/location-targets/view/locationTargetPhysicalIntent';\r\nimport PhysicalIntentViewBidMode from '@bingads-webui-campaign-legacy/location-targets/view/locationTargetPhysicalIntentBidMode';\r\nimport LocationTargetBidView from '@bingads-webui-campaign-legacy/location-targets/view/locationTargetBid';\r\nimport ToggleView from '@bingads-webui-component-legacy/toggle/view/index';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport withUiBlock from '@bingads-webui-component-legacy/uiblocker/index';\r\nimport geoConverter from '@bingads-webui-campaign-legacy/location-targets/util/geoConverter';\r\nimport * as locationTargetConverter from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetConverter';\r\nimport * as locationTargetTypes from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetTypes';\r\nimport physicalIntentOptions from '@bingads-webui-campaign-legacy/location-targets/viewmodel/physicalIntentOptions';\r\nimport * as criterionLoader from '@bingads-webui-campaign-legacy/base-targets/util/criterionLoader';\r\nimport eventDispatcher from '@bingads-webui-component-legacy/event-dispatcher/index';\r\nimport targetOptions from '@bingads-webui-campaign-legacy/location-targets/viewmodel/targetOptions';\r\nimport { getBulkApiErrors } from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport * as locationIntermediateHelper from '@bingads-webui-campaign-legacy/location-targets/util/locationIntermediateHelper';\r\nimport logger from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport { cloneDeep } from '@bingads-webui-universal/primitive-utilities';\r\nimport { getRecommendations } from '@bingads-webui-campaign/recommendation-repository';\r\nimport { showIMAReachWarning, showIMAReachModal, getLocationsInfo, getLocationsInfoFromCampaignCriterions } from '@bingads-webui-campaign-react/ima-reach-representation';\r\nimport * as httpUtils from '@bingads-webui/http-util';\r\nimport uuid from '@bingads-webui-component-legacy/uuid/index';\r\nimport { isDeprecatedLocation } from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetDeprecationHelper';\r\nimport { Dialog } from '@bingads-webui/dialog';\r\nimport { getRealCashbackPercentValue } from '@bingads-webui-campaign/target-bid-adjustment';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport { isXandrServing } from '@bingads-webui-campaign-react/constants';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/location-targets');\r\n\r\nconst popupIds = {\r\n 'Location': 'pop_BA_CampaignCreate_Settings_LocationTargeting',\r\n};\r\n\r\nexport default class View extends Backbone.View {\r\n\r\n initialize(options = {}) {\r\n if (options.perfMarker) {\r\n this.perfMarker = options.perfMarker.createChild('Show_Location_Targets');\r\n this.perfMarker.willInit();\r\n this.perfMarkerDone = false;\r\n }\r\n this.isLocationTargetingImprovementEnabled = _.result(pageContext.Permissions.dynamic, 'LocationTargetingImprovement', false);\r\n this.options = _.defaults(options, {\r\n targetOption: targetOptions.bundleOrDefaultMarket,\r\n physicalIntent: physicalIntentOptions.PeopleInOrSearchingForOrViewingPages,\r\n scenario: 'creation-workflow',\r\n campaignId: '',\r\n adgroupId: '',\r\n level: 'campaign',\r\n campaignLanguage: 'English',\r\n showPhysicalIntentView: true,\r\n editCriterions: [],\r\n showBidMode: true,\r\n fromSettingsGrid: false,\r\n campaign: {},\r\n languageSelector: null,\r\n showInitialUiBlocker: true,\r\n supportCashbackSettings: false,\r\n currentCampaign: pageContext.CurrentCampaign,\r\n currentAdGroup: pageContext.CurrentAdGroup,\r\n isDomesticSimplifiedChineseEnabled: pageContext.Permissions.IsDomesticSimplifiedChineseEnabled,\r\n isLocationTargetingImprovementEnabled: this.isLocationTargetingImprovementEnabled,\r\n });\r\n this.supportCashbackSettings = options.supportCashbackSettings && !pageContext.Permissions.IsPersonalizedOffersV3Enabled;\r\n this.popupIds = _.defaults({}, this.options.popupIds, popupIds);\r\n this.isXandrCampaign = isXandrServing(_.result(this.options.currentCampaign, 'CampaignSubType'), _.result(this.options.currentCampaign, 'CampaignSettings'));\r\n this.eventDelegator = _.result(this.options.deps, 'eventDelegator', new AppEventDelegator());\r\n\r\n this.singlePageWorkflow = this.options.scenario === 'shopping-creation-workflow';\r\n // deprecate current location recommendation\r\n this.hasLocationRecommendations = false;\r\n this.initCampaignCriterion = [];\r\n\r\n const shouldHideIncludedLocations = (_.chain(this.options.currentCampaign).result('BiddingScheme').result('Type').value() === 'Commission') || false;\r\n\r\n this.viewmodel = new ViewModel(_.defaults({}, options, {\r\n hasLocationRecommendations: this.hasLocationRecommendations,\r\n shouldHideIncludedLocations,\r\n isXandrCampaign: this.isXandrCampaign,\r\n isLocationTargetingImprovementEnabled: this.isLocationTargetingImprovementEnabled,\r\n }));\r\n\r\n this.isForVNext = options.isForVNext;\r\n let childOptions = _.omit(options, 'el');\r\n\r\n // Turn off event dispatcher to make sure there is only one instance listening,\r\n // in case user didn't remove this view after use.\r\n eventDispatcher.off('level:changed');\r\n eventDispatcher.off('location-bid-cell:bidChanged');\r\n eventDispatcher.off('loadBingMap');\r\n eventDispatcher.off('zoomToAll');\r\n\r\n this.locationManageView = new LocationManageView(_.defaults({}, childOptions,\r\n {\r\n hasLocationRecommendations: this.hasLocationRecommendations,\r\n shouldHideIncludedLocations: this.viewmodel.shouldHideIncludedLocations,\r\n }));\r\n this.physicalIntentView = new PhysicalIntentView(childOptions);\r\n this.physicalIntentOutsideView = new PhysicalIntentViewBidMode(childOptions);\r\n this.physicalIntentOutsideView.setViewModel(this.physicalIntentView.viewmodel);\r\n this.locationTargetBidView = new LocationTargetBidView(_.defaults({}, childOptions,\r\n {\r\n shouldHideIncludedLocations: this.viewmodel.shouldHideIncludedLocations,\r\n }));\r\n\r\n this.locationTargetBidView.on('location-target-bid-grid:onDataChange', (noData) => {\r\n if (noData) {\r\n if (this.singlePageWorkflow ||\r\n this.options.scenario === 'campaign-settings' ||\r\n (this.options.scenario === 'adgroup-settings' && this.viewmodel.useCampaignSettings()) ||\r\n (this.options.scenario === 'adgroup-create' && this.viewmodel.useCampaignSettings())) {\r\n this.viewmodel.noDataMessage(i18n.get('LocationTargeting_TargetEverywhere'));\r\n }\r\n }\r\n this.viewmodel.gridNoData(noData);\r\n }, this);\r\n\r\n this.toggleView = new ToggleView({\r\n toggleText: {\r\n // #TOGGLEBUG These keys were missing in the old system\r\n // In the new i18n system, On/Off text unexpectedly appears in the UI\r\n on: undefined, // i18n.getString('Toggle_On'),\r\n off: undefined, // i18n.getString('Toggle_Off'),\r\n },\r\n labelledbyId: 'location-use-campaign-settings',\r\n });\r\n\r\n this.toggleView.setToggleState('on');\r\n // logic to run once to update the audiences based on inherit locations, delay to let the audience view ready\r\n if (this.options && this.options.deps && this.options.deps.onLocationTargetsChange && this.options.scenario === 'adgroup-settings') {\r\n _.delay(() => {\r\n const locationsInfo = locationIntermediateHelper.getLocationCriterion('CampaignCriterion');\r\n\r\n this.options.deps.onLocationTargetsChange(locationsInfo).finally(withUiBlock(this.el));\r\n }, 1000);\r\n }\r\n this.listenTo(this.toggleView, 'change', (toggleState) => {\r\n const oldValue = this.viewmodel.useCampaignSettings();\r\n const newValue = toggleState === 'on';\r\n\r\n if (oldValue !== newValue) {\r\n this.viewmodel.useCampaignSettings(newValue);\r\n // inherit situation for IMA feature.\r\n if (this.options && this.options.deps && this.options.deps.onLocationTargetsChange) {\r\n let locationsInfo;\r\n\r\n if (newValue) {\r\n locationsInfo = locationIntermediateHelper.getLocationCriterion('CampaignCriterion');\r\n } else {\r\n locationsInfo = locationIntermediateHelper.getLocationCriterion('AdGroupCriterion');\r\n }\r\n this.options.deps.onLocationTargetsChange(locationsInfo).finally(withUiBlock(this.el));\r\n }\r\n }\r\n }, this);\r\n\r\n this.viewmodel.useCampaignSettings.subscribe((value) => {\r\n let level = value ? 'campaign' : 'adgroup';\r\n\r\n // locationTargetContext.level = level;\r\n eventDispatcher.trigger('level:changed', level);\r\n }, this);\r\n\r\n this.viewmodel.bundleLocationCriterions.subscribe(() => {\r\n this.trigger('bundleLocationCriterions:changed');\r\n }, this);\r\n\r\n this.viewmodel.bidMode.subscribe((bidModeValue) => {\r\n if (!bidModeValue) {\r\n const locations = this.currentLevelLocations;\r\n\r\n this.setTargetOptions(locations);\r\n } else if (this.viewmodel.adGroupScenario()) {\r\n if (_.isEmpty(this.currentLevelLocations)) {\r\n this.viewmodel.useCampaignSettings(!this.isXandrCampaign);\r\n }\r\n } else {\r\n this.options.showBidMode = true;\r\n }\r\n eventDispatcher.trigger('location-targets:modeChanged', bidModeValue);\r\n }, this);\r\n\r\n eventDispatcher.on('level:changed', (level) => {\r\n this.options.level = level;\r\n this.viewmodel.level(level);\r\n if (this.toggleView) {\r\n this.toggleView.setToggleState(level === 'campaign' ? 'on' : 'off');\r\n }\r\n if (level === 'adgroup' && !this.viewmodel.useCampaignSettings()) {\r\n this.viewmodel.showAdGroupOverrideInformation(false);\r\n\r\n let adgroupLocations = locationIntermediateHelper.getLocationCriterion('AdGroupCriterion');\r\n\r\n if (!adgroupLocations.length) {\r\n this.saveSnapshot(true);\r\n\r\n let campaignLocations = cloneDeep(locationIntermediateHelper.getLocationCriterion('CampaignCriterion'));\r\n\r\n _.map(campaignLocations, (location) => {\r\n location.Campaign = null;\r\n delete location.Id;\r\n return location;\r\n });\r\n jsdata.Intermediate.refresh('AdGroupCriterion', campaignLocations, { destroyAll: true })\r\n .then(() => {\r\n this.setTargetOptions(campaignLocations);\r\n if (this.viewmodel.bidMode()) {\r\n if (this.options.showBidMode) {\r\n this.locationTargetBidView.refresh();\r\n } else {\r\n this.viewmodel.bidMode(false);\r\n this.options.showBidMode = true;\r\n }\r\n }\r\n });\r\n }\r\n } else if (level === 'campaign' && this.viewmodel.useCampaignSettings()) {\r\n this.viewmodel.bidMode(true);\r\n }\r\n }, this);\r\n\r\n if (!this.options.showBidMode) {\r\n this.viewmodel.bidMode(false);\r\n }\r\n\r\n this.viewmodel.updateLanguageBundle(\r\n options.campaignLanguage,\r\n pageContext.CurrentUser.Market,\r\n options.targetOption === targetOptions.everywhere,\r\n true,\r\n );\r\n\r\n if (this.options.languageSelector) {\r\n\r\n this.options.languageSelector.on('selectedLanguages:changed', () => {\r\n const langauges = this.options.languageSelector.getSelectedLanguages();\r\n\r\n if (!_.isEmpty(langauges)) {\r\n this.viewmodel.updateLanguageBundle(langauges, pageContext.CurrentUser.Market);\r\n }\r\n });\r\n } else {\r\n eventDispatcher.on('language:changed', (language) => {\r\n this.options.campaignLanguage = language;\r\n this.viewmodel.updateLanguageBundle(language, pageContext.CurrentUser.Market);\r\n }, this);\r\n }\r\n\r\n this.viewmodel.shouldUpdateTargetOption.subscribe((value) => {\r\n if (!value) {\r\n return;\r\n }\r\n if (this.viewmodel.bundleLocationsUpdated()) {\r\n this.viewmodel.shouldUpdateTargetOptionWithNewBundle(true);\r\n }\r\n });\r\n\r\n this.viewmodel.bundleLocationsUpdated.subscribe((value) => {\r\n if (!value) {\r\n return;\r\n }\r\n if (this.viewmodel.shouldUpdateTargetOption()) {\r\n this.viewmodel.shouldUpdateTargetOptionWithNewBundle(true);\r\n }\r\n });\r\n\r\n this.viewmodel.shouldUpdateTargetOptionWithNewBundle.subscribe((value) => {\r\n if (!value) {\r\n return;\r\n }\r\n if (!this.validate()) {\r\n this.locationTargetBidView.resetLocationBid();\r\n }\r\n if (this.viewmodel.targetOption() === 'bundle') {\r\n this.viewmodel.targetOption('everywhere');\r\n } else if (this.viewmodel.targetOption() === 'everywhere') {\r\n this.viewmodel.targetOption('bundle');\r\n }\r\n if (this.viewmodel.scenario !== 'creation-workflow' &&\r\n this.viewmodel.scenario !== 'signup-creation-workflow' && this.viewmodel.scenario !== 'audience-dashboard' &&\r\n this.viewmodel.scenario !== 'smart-campaign' && this.viewmodel.scenario !== 'smart-shopping-campaign') {\r\n this.save(false);\r\n }\r\n });\r\n\r\n this.onTargetOptionChanged();\r\n this.viewmodel.targetOption.subscribe((value) => {\r\n this.onTargetOptionChanged();\r\n this.logActivity(`target option change: ${value}`);\r\n });\r\n\r\n this.on('end:refresh', () => {\r\n this.viewmodel.showAdGroupOverrideInformation(\r\n this.options.fromSettingsGrid && this.options.scenario === 'adgroup-settings' && this.viewmodel.useCampaignSettings());\r\n this.viewmodel.showUI(true);\r\n if (this.perfMarker) {\r\n this.perfMarker.done();\r\n }\r\n\r\n eventDispatcher.trigger('ad_group_creation_view_loaded');\r\n });\r\n if (this.options.scenario === 'campaign-settings' || this.options.scenario === 'adgroup-create' || this.options.scenario === 'adgroup-settings' || (this.options.scenario === 'smart-shopping-campaign' && this.options.campaignId)) {\r\n if (this.perfMarker) {\r\n this.perfMarker.willFetchData();\r\n }\r\n this.perfMarkerDone = true;\r\n this.initialLoadTask = this.refreshLocationData()\r\n .finally(() => {\r\n this.saveSnapshot();\r\n this.trigger('end:refresh');\r\n });\r\n\r\n if (this.options.showInitialUiBlocker && this.initialLoadTask.withUiBlock != null) {\r\n this.initialLoadTask.withUiBlock(this.$el);\r\n }\r\n } else if (this.singlePageWorkflow) {\r\n //in case of shopping creation, we don't need to load any data, just call the refresh on bidview so we get everything initialized.\r\n this.locationTargetBidView.refresh();\r\n this.saveSnapshot();\r\n }\r\n\r\n jsdata.Intermediate.subscribeOnAction('CampaignCriterion', ['destroy', 'destroyAll'], (action, deletedEntities) => {\r\n this.onEntityDeleted(action, deletedEntities);\r\n });\r\n jsdata.Intermediate.subscribeOnAction('AdGroupCriterion', ['destroy', 'destroyAll'], (action, deletedEntities) => {\r\n this.onEntityDeleted(action, deletedEntities);\r\n });\r\n jsdata.Intermediate.subscribe('CampaignCriterion', () => {\r\n this.validate();\r\n });\r\n jsdata.Intermediate.subscribe('AdGroupCriterion', () => {\r\n this.validate();\r\n });\r\n\r\n this.locationManageView.on('LocationsListChanged', () => {\r\n const locations = this.currentLevelLocations;\r\n\r\n // subscrib location criterions for IMA feature.\r\n if (this.options && this.options.deps && this.options.deps.onLocationTargetsChange) {\r\n this.options.deps.onLocationTargetsChange(locations).finally(withUiBlock(this.el));\r\n }\r\n });\r\n\r\n this.on('locationTargetOptionChanged', (locations) => {\r\n // subscrib location criterions for IMA feature.\r\n if (this.options && this.options.deps && this.options.deps.onLocationTargetsChange) {\r\n this.options.deps.onLocationTargetsChange(locations).finally(withUiBlock(this.el));\r\n }\r\n });\r\n\r\n if (this.hasLocationRecommendations) {\r\n this.locationRecommendationsStatus = {};\r\n getRecommendations({\r\n deps: {\r\n httpUtils,\r\n odataOptions: {\r\n host: pageContext.BingAdsAdInsightWebApiUri,\r\n oDataToken: pageContext.Token,\r\n SessionId: _.result(config.get('Omniture'), 'SessionId'),\r\n params: {\r\n 'customer_id': state.get('advertisercustomer_id'),\r\n 'account_id': state.get('account_id'),\r\n },\r\n },\r\n },\r\n scope: {\r\n customerId: state.get('advertisercustomer_id'),\r\n accountId: state.get('account_id'),\r\n campaignId: this.options.campaignId,\r\n },\r\n oppType: 'NewLocationTargetOpportunity',\r\n channel: 'campaignsetting',\r\n top: 5,\r\n skip: 0,\r\n }).then((data) => {\r\n this.originLocationRecommendations = _.deepClone(data.value);\r\n this.locationManageView.trigger('set:locationRecommendations', { recommendations: _.deepClone(data.value), locationRecommendationsStatus: {} });\r\n this.viewmodel.locationRecommendations(data.value);\r\n });\r\n\r\n this.locationManageView.on('update:locationRecommendations', (recommendations) => {\r\n this.viewmodel.locationRecommendations(recommendations);\r\n });\r\n }\r\n }\r\n\r\n toggleCashbackPercentColumns(supportCashbackSettings, inheritInfo) {\r\n this.supportCashbackSettings = supportCashbackSettings && !pageContext.Permissions.IsPersonalizedOffersV3Enabled;\r\n this.locationTargetBidView.toggleCashbackPercentColumns(supportCashbackSettings, inheritInfo);\r\n }\r\n\r\n logActivity(mes) {\r\n if (this.options.activityLogger) {\r\n this.options.activityLogger.signal(mes, this.options.scenario);\r\n }\r\n }\r\n\r\n get currentLevelLocations() {\r\n return _.deepClone(locationIntermediateHelper.getLocationCriterion(this.options.level === 'campaign' ? 'CampaignCriterion' : 'AdGroupCriterion'));\r\n }\r\n\r\n get resourceName() {\r\n return this.options.scenario === 'adgroup-settings' ? 'AdGroupCriterion' : 'CampaignCriterion';\r\n }\r\n\r\n get bundleLocations() {\r\n return this.viewmodel.bundleLocations;\r\n }\r\n\r\n settoSpecificLocation() {\r\n this.viewmodel.targetOption(targetOptions.specific);\r\n }\r\n\r\n onTargetOptionChanged() {\r\n const targetOption = this.viewmodel.targetOption();\r\n //default status is target everywhere\r\n let locations = [];\r\n\r\n if (targetOption === 'specific') {\r\n locations = this.currentLevelLocations;\r\n if (pageContext.Permissions.IsBingMapV8Enabled) {\r\n eventDispatcher.trigger('loadBingMap');\r\n }\r\n } else if (targetOption === 'bundle') {\r\n locations = this.viewmodel.bundleLocationCriterions();\r\n }\r\n\r\n //trigger event, so content network & syndication & keyword planner & traffic estimation could accept the event and change accordingly\r\n eventDispatcher.trigger('change:locationTargetOption', {\r\n locations,\r\n level: this.options.level,\r\n });\r\n\r\n this.trigger('locationTargetOptionChanged', locations);\r\n }\r\n\r\n refreshLocationDataForAdGroupSettings() {\r\n // below impl is the same to previous 'Promise.join'\r\n // however 'Promise.join' does not work in local env\r\n return Promise.all([\r\n criterionLoader.load(this.options.campaignId, '', ['LocationCriterion', 'RadiusCriterion', 'LocationIntentCriterion']),\r\n criterionLoader.load(this.options.campaignId, this.options.adgroupId, ['LocationCriterion', 'RadiusCriterion', 'LocationIntentCriterion']),\r\n ]).then(([campaignCriterions, adgroupCriterions]) => {\r\n //set the checkbox to true if and only if there are no adgroup targets\r\n this.campaignCriterions = campaignCriterions;\r\n return this.refreshLocationDataFromCampaignAndAdGroup(campaignCriterions, adgroupCriterions);\r\n })\r\n .then(() => {\r\n if (this.viewmodel.bidMode()) {\r\n this.locationTargetBidView.refresh();\r\n }\r\n });\r\n //TODO [imang]: handle errors\r\n }\r\n\r\n refreshLocationDataFromCampaignAndAdGroup(campaignCriterions, adgroupCriterions) {\r\n let noAdGroupTarget = _.filter(adgroupCriterions, (criterion) => {\r\n return criterion.Criterion.Type !== 'LocationIntentOption';\r\n }).length === 0;\r\n\r\n if (noAdGroupTarget) {\r\n eventDispatcher.trigger('level:changed', 'campaign');\r\n } else {\r\n this.options.showBidMode = true;\r\n }\r\n return Promise.all([\r\n this.setLocationData(campaignCriterions, 'campaign', false, false),\r\n this.setLocationData(adgroupCriterions, 'adgroup', true, true),\r\n ])\r\n .then(() => {\r\n this.viewmodel.useCampaignSettings(noAdGroupTarget && !this.isXandrCampaign);\r\n });\r\n }\r\n\r\n refreshLocationDataFromOtherAdGroup(adgroupCriterions) {\r\n criterionLoader.load(this.options.campaignId, '', ['LocationCriterion', 'RadiusCriterion', 'LocationIntentCriterion'])\r\n .then((campaignCriterions) => {\r\n //set the checkbox to true if and only if there are no adgroup targets\r\n return this.refreshLocationDataFromCampaignAndAdGroup(campaignCriterions, adgroupCriterions);\r\n })\r\n .then(() => {\r\n if (this.viewmodel.bidMode()) {\r\n this.locationTargetBidView.refresh();\r\n }\r\n });\r\n }\r\n\r\n handleApiErrorsForAdGroupLevel(adgroupId) {\r\n criterionLoader.load(this.options.campaignId, adgroupId, ['LocationCriterion', 'RadiusCriterion'])\r\n .then((criterions) => {\r\n this.setLocationData(criterions, 'adgroup', false, false);\r\n });\r\n }\r\n\r\n handleApiErrorsForCampaignLevel() {\r\n return criterionLoader.load(this.options.campaignId, '', ['LocationCriterion', 'RadiusCriterion'])\r\n .then((criterions) => {\r\n return this.setLocationData(criterions, 'campaign', false, false);\r\n });\r\n }\r\n\r\n refreshLocationData() {\r\n if (this.options.scenario === 'adgroup-settings') {\r\n return this.refreshLocationDataForAdGroupSettings();\r\n }\r\n\r\n if (this.singlePageWorkflow) {\r\n return new Promise((resolve) => {\r\n this.viewmodel.useCampaignSettings(true);\r\n if (this.viewmodel.bidMode()) {\r\n this.locationTargetBidView.refresh();\r\n }\r\n resolve();\r\n });\r\n }\r\n\r\n return criterionLoader.load(this.options.campaignId, this.options.adgroupId, ['LocationCriterion', 'RadiusCriterion', 'LocationIntentCriterion'])\r\n .then((criterions) => {\r\n return Promise.all([\r\n this.setLocationData(criterions, 'campaign', true, true),\r\n this.setLocationData([], 'adgroup', false, false),\r\n ]);\r\n })\r\n .then(() => {\r\n this.viewmodel.useCampaignSettings(true);\r\n if (this.viewmodel.bidMode()) {\r\n this.locationTargetBidView.refresh();\r\n }\r\n });\r\n // Ui blocker should be added by caller function\r\n //TODO [imang]: handle errors\r\n }\r\n\r\n setCampaignId(campaignId) {\r\n this.options.campaignId = campaignId;\r\n }\r\n\r\n setAdGroupId(adgroupId) {\r\n this.options.adgroupId = adgroupId;\r\n }\r\n\r\n setLocationData(criterions, criterionLevel, setIntent, setTargetOption, noConvert = false) {\r\n let entities = noConvert ? criterions : _.chain(criterions)\r\n .filter((criterion) => {\r\n return criterion.Criterion.Type === 'Radius' || criterion.Criterion.Type === 'Location';\r\n })\r\n .map((criterion) => {\r\n return locationTargetConverter.buildLocationCriterionFromBiddableCampaignCriterion(criterion, criterionLevel,\r\n criterionLevel === 'campaign' ? this.options.campaignId : this.options.adgroupId);\r\n })\r\n .value();\r\n\r\n entities = geoConverter.sortLocationsForEdit(entities, this.options.editCriterions);\r\n\r\n if (setIntent) {\r\n let intent = _.find(criterions, (criterion) => {\r\n return criterion.Criterion.Type === 'LocationIntentOption';\r\n });\r\n\r\n if (intent) {\r\n this.physicalIntentView.setIntent(intent);\r\n }\r\n }\r\n\r\n if (setTargetOption) {\r\n this.setTargetOptions(entities);\r\n }\r\n\r\n return jsdata.Intermediate.refresh(criterionLevel === 'campaign' ? 'CampaignCriterion' : 'AdGroupCriterion', entities, { destroyAll: true })\r\n .then(() => {\r\n this.clearDeletedLocationsList();\r\n this.locationTargetBidView.refresh();\r\n });\r\n }\r\n\r\n setTargetOptions(entities) {\r\n if ((!this.options.showBidMode || this.options.scenario === 'adgroup-create' || this.options.scenario === 'adgroup-settings') && this.options.scenario !== 'smart-shopping-campaign') {\r\n this.viewmodel.targetOption(targetOptions.specific);\r\n } else if (!this.viewmodel.shouldHideIncludedLocations() && this.viewmodel.shouldBundleModeBeSelected(entities)) {\r\n this.viewmodel.targetOption(targetOptions.bundleOrDefaultMarket);\r\n } else if (entities && entities.length > 0) {\r\n this.viewmodel.targetOption(targetOptions.specific);\r\n } else if (this.viewmodel.showEverywhereOption()) {\r\n this.viewmodel.targetOption(targetOptions.everywhere);\r\n } else if (this.viewmodel.shouldHideIncludedLocations()) {\r\n this.viewmodel.targetOption(targetOptions.specific);\r\n } else {\r\n this.viewmodel.targetOption(targetOptions.bundleOrDefaultMarket);\r\n }\r\n }\r\n\r\n isCountryIncluded(locations, countryLocationId) {\r\n return !_.isUndefined(_.find(locations, (location) => {\r\n return location.Criterion.Type === 'Location' && location.Criterion.LocationCriterion.LocationId === countryLocationId;\r\n }));\r\n }\r\n\r\n //calling this funtion deletes everything that is stored in the delededLocations array inside the view/viewmodel\r\n //and should be used by whoever calls getValues() and handles the call to the server themselves (e.g. crud-campaign).\r\n clearDeletedLocationsList() {\r\n this.viewmodel.deletedLocations = [];\r\n }\r\n\r\n onEntityDeleted(action, response) {\r\n if (action === 'destroy') {\r\n let entity = response;\r\n\r\n //skip if the id is minus (not created in the server yet)\r\n if (entity.Id > 0) {\r\n if (!_.find(this.viewmodel.deletedLocations, (deletedLoc) => {\r\n return Number(deletedLoc.Id) === Number(entity.Id);\r\n })) {\r\n this.viewmodel.deletedLocations.push(entity);\r\n }\r\n }\r\n } else if (action === 'destroyAll') {\r\n _.each(response, (entity) => {\r\n if (entity.Id > 0) {\r\n if (!_.find(this.viewmodel.deletedLocations, (deletedLoc) => {\r\n return Number(deletedLoc.Id) === Number(entity.Id);\r\n })) {\r\n this.viewmodel.deletedLocations.push(entity);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .change-mode-link': this.changeMode,\r\n 'click button.location-target-done': this.save,\r\n 'click button.location-target-cancel': this.cancel,\r\n 'click .target-every-where': this.onTargetEverywhere,\r\n 'click .view-location-recommendations': this.changeMode,\r\n };\r\n }\r\n\r\n onTargetEverywhere() {\r\n this.physicalIntentView.viewmodel.setIntent(physicalIntentOptions.PeopleInOrSearchingForOrViewingPages);\r\n }\r\n\r\n changeMode() {\r\n if (this.validate()) {\r\n this.saveSnapshot();\r\n this.setBidMode(false);\r\n this.logActivity('location target click change mode');\r\n }\r\n }\r\n\r\n setBidMode(bidMode) {\r\n this.viewmodel.bidMode(bidMode);\r\n if (bidMode) {\r\n // refresh view since it might have been changed by map ui\r\n this.locationTargetBidView.refresh();\r\n } else {\r\n // zoom map to all\r\n eventDispatcher.trigger('zoomToAll');\r\n }\r\n }\r\n\r\n saveSnapshot(useCampaignSettings = false) {\r\n this.snapshot = this.getValues({}, {\r\n keepAllLocations: true,\r\n });\r\n this.snapshot.targetOption = this.viewmodel.targetOption();\r\n this.snapshot.useCampaignSettings = useCampaignSettings;\r\n }\r\n\r\n isSnapShotExisting() {\r\n return !!this.snapshot;\r\n }\r\n\r\n restoreSnapshot() {\r\n if (!this.snapshot) {\r\n logger.logError('/locationTargets/restoreSnapshot',\r\n `Restore snapshot without saving first. CurrentURL: ${document.location.href}`);\r\n return Promise.resolve(false);\r\n }\r\n\r\n const criterionResourceName = this.options.level === 'campaign' ? 'CampaignCriterion' : 'AdGroupCriterion';\r\n\r\n if (this.snapshot.useCampaignSettings) {\r\n this.viewmodel.useCampaignSettings(true);\r\n }\r\n if (this.snapshot.intent) {\r\n const intent = _.find(this.snapshot.intent, (criterion) => {\r\n return criterion.Criterion.Type === 'LocationIntentCriterion';\r\n });\r\n\r\n if (intent) {\r\n this.physicalIntentView.setIntent({\r\n Id: intent.Id,\r\n Criterion: {\r\n IntentOption: intent.Criterion.LocationIntentCriterion.IntentOption,\r\n },\r\n });\r\n }\r\n }\r\n this.viewmodel.targetOption(this.snapshot.targetOption);\r\n this.viewmodel.deletedLocations = this.snapshot.deletedLocations;\r\n return jsdata.Intermediate.refresh(criterionResourceName, this.snapshot.locations, { destroyAll: false });\r\n }\r\n\r\n checkIMAReachAndSave() {\r\n let checkIMAReachPromise = Promise.resolve(false);\r\n\r\n if (!this.validate()) {\r\n return false;\r\n }\r\n\r\n const locationCriterionsInfo = this.getValues({}, {\r\n keepAllLocations: true,\r\n });\r\n\r\n locationCriterionsInfo.locations = _.filter(locationCriterionsInfo.locations, (c) => c.Status !== 'Deleted');\r\n\r\n // inherit locations\r\n if (locationCriterionsInfo.locations.length === 0 &&\r\n this.campaignCriterions &&\r\n this.campaignCriterions.length > 0) {\r\n const inheritInfo = getLocationsInfoFromCampaignCriterions(this.campaignCriterions);\r\n\r\n _.extend(locationCriterionsInfo, inheritInfo);\r\n }\r\n let locationCriterions = locationCriterionsInfo.locations.concat(locationCriterionsInfo.intent);\r\n\r\n if (pageContext.Permissions.IsIMAReachRepresentationPhase1Enabled && this.isForVNext && locationCriterions.length > 0) {\r\n const onYes = () => {\r\n this.save();\r\n this.trigger('closeLocationEditor');\r\n };\r\n const locationsInfo = getLocationsInfo(locationCriterions);\r\n const campaignType = this.options.currentCampaign && this.options.currentCampaign.CampaignType;\r\n\r\n checkIMAReachPromise = showIMAReachModal({\r\n locationsInfo,\r\n onYes,\r\n deliveryChannel: campaignType === 8 || campaignType === 'Audience' ? 'AIM' : 'BingAds',\r\n campaignId: this.options.campaignId,\r\n adGroupId: this.options.adgroupId || null,\r\n i18n,\r\n aid: pageContext.CurrentAccount.Id,\r\n cid: pageContext.CurrentAccount.AdvertiserCustomerID,\r\n });\r\n }\r\n\r\n return checkIMAReachPromise.then((isIMAReachModalShow) => {\r\n if (isIMAReachModalShow) {\r\n return false;\r\n }\r\n return this.save();\r\n });\r\n }\r\n\r\n save(sendCall = true) {\r\n this.logActivity('location target click save');\r\n if (!this.validate()) {\r\n return false;\r\n }\r\n\r\n if (this.hasLocationRecommendations) {\r\n this.originLocationRecommendations = this.viewmodel.locationRecommendations();\r\n this.locationRecommendationsStatus = _.deepClone(this.getLocationRecommendationsStatus());\r\n }\r\n\r\n if (this.options.scenario === 'adgroup-create') {\r\n let adgroupCriterions = this.getValues({\r\n resourceName: 'AdGroupCriterion',\r\n }, {\r\n keepAllLocations: true,\r\n }).locations;\r\n\r\n if (!adgroupCriterions.length) {\r\n this.viewmodel.useCampaignSettings(!this.isXandrCampaign);\r\n }\r\n\r\n const setDelectedLocations = () => {\r\n this.viewmodel.deletedLocations = _.filter(this.viewmodel.deletedLocations, (location) => {\r\n //only delete locations which have been saved\r\n return location.Id && location.Id > 0;\r\n });\r\n this.setBidMode(true);\r\n };\r\n\r\n if (this.checkDeprecatedLocations(adgroupCriterions)) {\r\n this.showDeprecatedLocationDialog(adgroupCriterions, 'AdGroupCriterion', setDelectedLocations);\r\n return false;\r\n }\r\n\r\n jsdata.Intermediate.refresh('AdGroupCriterion', adgroupCriterions)\r\n .then(() => {\r\n setDelectedLocations();\r\n });\r\n return false;\r\n }\r\n if (this.singlePageWorkflow) {\r\n let criterions = this.getValues({}, {\r\n keepAllLocations: true,\r\n }).locations;\r\n\r\n jsdata.Intermediate.refresh('CampaignCriterion', criterions)\r\n .then(() => {\r\n this.viewmodel.deletedLocations = _.filter(this.viewmodel.deletedLocations, (location) => {\r\n //only delete locations which have been saved\r\n return location.Id && location.Id > 0;\r\n });\r\n this.setBidMode(true);\r\n });\r\n\r\n return false;\r\n }\r\n\r\n if ((sendCall && this.viewmodel.bidMode()) || this.options.scenario === 'smart-shopping-campaign') {\r\n const isCampaignEntity = this.options.level === 'campaign' &&\r\n this.options.scenario !== 'adgroup-create' && this.options.scenario !== 'adgroup-settings';\r\n const criterions = this.getValues({\r\n level: isCampaignEntity ? 'campaign' : 'adgroup',\r\n });\r\n\r\n if (this.viewmodel.shouldHideIncludedLocations() && isCampaignEntity) {\r\n const includedInitLocations = criterions.allLocations.filter((x) => x.SelectionStatus === locationTargetTypes.Included && x.Criterion.Type !== 'Radius');\r\n\r\n criterions.locations = criterions.locations.filter((x) => x.SelectionStatus !== locationTargetTypes.Included);\r\n const finalHashDict = _.object(_.map(criterions.locations, (lt) => [lt.Criterion.LocationCriterion.LocationId, lt]));\r\n const finalExcludedLocationIds = criterions.locations.map((x) => x.Criterion.LocationCriterion.LocationId);\r\n\r\n // delete the conflicted locations\r\n const hiddenIncludedDeletes = includedInitLocations.filter((x) => {\r\n if (_.has(finalHashDict, x.Criterion.LocationCriterion.LocationId)) {\r\n return true;\r\n }\r\n if (!_.isEmpty(_.intersection(x.Criterion.LocationCriterion.EnclosingLocationIds, finalExcludedLocationIds))) {\r\n return true;\r\n }\r\n return false;\r\n }).filter((x) => x.Id && x.Id > 0);\r\n\r\n _.each(hiddenIncludedDeletes, (deletedValue) => {\r\n deletedValue.Status = 'Deleted';\r\n });\r\n\r\n criterions.deletedLocations = criterions.deletedLocations.concat(hiddenIncludedDeletes);\r\n criterions.intent = [];\r\n }\r\n\r\n const locations = criterions.deletedLocations.concat(criterions.locations).concat(criterions.intent);\r\n const entityResourceName = isCampaignEntity ? 'Campaign' : 'AdGroup';\r\n const entityId = isCampaignEntity ? this.options.campaignId : this.options.adgroupId;\r\n const entityToUpdate = isCampaignEntity ? {\r\n 'Id': this.options.campaignId,\r\n 'CampaignCriterions': locations,\r\n } : {\r\n 'Id': this.options.adgroupId,\r\n 'Campaign': {\r\n 'Id': this.options.campaignId,\r\n },\r\n 'AdGroupCriterions': locations,\r\n };\r\n\r\n const batchSize = 1000;\r\n const chunks = _.chain(locations)\r\n .groupBy((value, index) => Math.floor(index / batchSize))\r\n .toArray()\r\n .value();\r\n const params = {\r\n reqs: _.map(chunks, (batch) => ({\r\n Id: entityId,\r\n data: isCampaignEntity ?\r\n _.extend({}, entityToUpdate, { CampaignCriterions: batch }) :\r\n _.extend({}, entityToUpdate, { AdGroupCriterions: batch }),\r\n })),\r\n };\r\n const mergeCriterions = (responses) => {\r\n if (isCampaignEntity) {\r\n const mergedCampaignCriterions = _.reduce(responses, (dest, res) => dest.concat(res.CampaignCriterions), []);\r\n\r\n return _.extend({}, _.first(responses), { CampaignCriterions: mergedCampaignCriterions });\r\n } else {\r\n const mergedAdGroupCriterions = _.reduce(responses, (dest, res) => dest.concat(res.AdGroupCriterions), []);\r\n\r\n return _.extend({}, _.first(responses), { AdGroupCriterions: mergedAdGroupCriterions });\r\n }\r\n };\r\n\r\n const scenario = this.options.scenario;\r\n\r\n return jsdata[entityResourceName].update(entityId, params, { adapter: 'bulk', batch: true, overrideResponse: true, processResponse: mergeCriterions })\r\n .then((response) => {\r\n //because the location payload is partial, we have to re-fetch everything from the server again after each succesfull update call.\r\n this.refreshLocationData()\r\n .then(() => {\r\n this.viewmodel.deletedLocations = [];//todo: only delete the deletedlocations that succeeded.\r\n this.setBidMode(true);\r\n });\r\n if (scenario === 'campaign-settings') {\r\n this.eventDelegator.trigger('campaignUpdated', { data: [{ Id: response.Id }] });\r\n }\r\n })\r\n .catch((response) => {\r\n this.handleApiErrors(response.errors);\r\n })\r\n .finally(withUiBlock(this.$el));\r\n } else {\r\n const criterions = this.getValues({}, {\r\n keepAllLocations: true,\r\n });\r\n const criterionResourceName = this.options.level === 'campaign' ? 'CampaignCriterion' : 'AdGroupCriterion';\r\n\r\n if (this.checkDeprecatedLocations(criterions.locations)) {\r\n this.showDeprecatedLocationDialog(criterions.locations, criterionResourceName, () => {\r\n this.setBidMode(true);\r\n });\r\n return false;\r\n }\r\n\r\n return jsdata.Intermediate.refresh(criterionResourceName, criterions.locations, { destroyAll: false })\r\n .then(() => {\r\n this.setBidMode(true);\r\n });\r\n }\r\n }\r\n\r\n validate() {\r\n const isValid = _.reduce([\r\n this.viewmodel.validate(this.resourceName),\r\n this.locationTargetBidView.validate(),\r\n this.physicalIntentView.validate(),\r\n ], (prev, next) => {\r\n return prev && next;\r\n }, true);\r\n\r\n if (!isValid) {\r\n this.logActivity('location target is not valid');\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n checkDeprecatedLocations(locations) {\r\n return locations && locations.length && _.some(locations, (location) => location.Criterion &&\r\n isDeprecatedLocation(location.Criterion.LocationCriterion));\r\n }\r\n\r\n showDeprecatedLocationDialog(locations, criterionResourceName, cb = null) {\r\n class DialogView extends Backbone.View {\r\n render() {\r\n this.$el.html(`
${i18n.getString('Location_Target_Deprecate_Alert_Body')}
`);\r\n\r\n return this;\r\n }\r\n }\r\n const contentView = new DialogView();\r\n\r\n this.dialog = new Dialog()\r\n .setContent(contentView)\r\n .setState({\r\n title: i18n.getString('Location_Target_Deprecate_Alert_Title'),\r\n buttons: [{\r\n text: i18n.getString('Location_Target_Deprecate_Alert_Remove_Button_Text'),\r\n name: 'confirm',\r\n class: 'btn-primary',\r\n }, {\r\n text: i18n.getString('Cancel'),\r\n name: 'cancel',\r\n }],\r\n });\r\n\r\n this.dialog.on('clickedButton', (name) => {\r\n let result = locations;\r\n\r\n if (name === 'confirm') {\r\n result = _.reject(locations, (location) => isDeprecatedLocation(location.Criterion.LocationCriterion));\r\n }\r\n\r\n this.dialog.remove();\r\n this.dialog = null;\r\n\r\n jsdata.Intermediate.refresh(criterionResourceName, result, { destroyAll: false }).then(() => {\r\n if (_.isFunction(cb)) {\r\n cb();\r\n }\r\n });\r\n });\r\n\r\n this.dialog.$el.appendTo(document.body);\r\n this.dialog.show();\r\n this.dialog.$('.modal').addClass('deprecated-location-remove-dialog');\r\n }\r\n\r\n resotreLocationRecommendations() {\r\n if (this.hasLocationRecommendations) {\r\n this.viewmodel.locationRecommendations(this.originLocationRecommendations);\r\n this.locationManageView.trigger('set:locationRecommendations', {\r\n recommendations: _.deepClone(this.originLocationRecommendations),\r\n locationRecommendationsStatus: this.locationRecommendationsStatus,\r\n });\r\n }\r\n }\r\n\r\n cancel() {\r\n this.logActivity('location target click cancel');\r\n this.restoreSnapshot()\r\n .then(() => {\r\n this.viewmodel.bidMode(true);\r\n this.resotreLocationRecommendations();\r\n });\r\n }\r\n\r\n reloadLocationView(audienceAssociations) {\r\n if (pageContext.Permissions.IsIMAReachRepresentationPhase1Enabled && this.isForVNext && this.options.deps.isAudienceCreationWorkflow) {\r\n const containerDOM = this.$('.ima-reach-warning-container').get(0);\r\n let adGroupId = this.options.adgroupId;\r\n\r\n if (this.options.scenario === 'creation-workflow' && !adGroupId) {\r\n // in campaign creation workflow, although adgroupId is '', but it is happened in ad group level\r\n adGroupId = 1;\r\n }\r\n\r\n if (containerDOM) {\r\n showIMAReachWarning({\r\n containerDOM,\r\n adGroupId: adGroupId ? Number(adGroupId) : null,\r\n i18n,\r\n audienceAssociations,\r\n });\r\n }\r\n }\r\n }\r\n\r\n unmountIMAComponents() {\r\n const warningContainerDOM = this.$('.ima-reach-warning-container').get(0);\r\n\r\n if (warningContainerDOM) {\r\n ReactDOM.unmountComponentAtNode(warningContainerDOM);\r\n }\r\n }\r\n\r\n render() {\r\n if (this.perfMarker) {\r\n this.perfMarker.willRender();\r\n }\r\n\r\n if (this.isForVNext) {\r\n this.$el.html(tmplVNext({\r\n i18n,\r\n popupIds: this.popupIds,\r\n hasLocationRecommendations: this.hasLocationRecommendations,\r\n uuid,\r\n }));\r\n } else {\r\n this.$el.html(tmpl({\r\n i18n,\r\n popupIds: this.popupIds,\r\n hasLocationRecommendations: this.hasLocationRecommendations,\r\n uuid,\r\n }));\r\n }\r\n ko.applyBindings(this.viewmodel, this.el);\r\n\r\n this.toggleView.render();\r\n this.$('.toggle-campaign-settings-switch').append(this.toggleView.el);\r\n\r\n this.locationManageView.render();\r\n this.$('.location-manage').append(this.locationManageView.el);\r\n\r\n if (this.options.showPhysicalIntentView) {\r\n this.physicalIntentView.render();\r\n this.physicalIntentOutsideView.render();\r\n this.$('.location-target-physical-intent').append(this.physicalIntentView.el);\r\n this.$('.location-target-physical-intent-bidMode').append(this.physicalIntentOutsideView.el);\r\n }\r\n\r\n this.locationTargetBidView.render();\r\n this.$('.location-target-bid-container').append(this.locationTargetBidView.el);\r\n\r\n if (pageContext.Permissions.IsIMAReachRepresentationPhase1Enabled && this.isForVNext &&\r\n (this.options.scenario === 'campaign-settings' || this.options.scenario === 'adgroup-settings')) {\r\n showIMAReachWarning({\r\n containerDOM: this.$('.ima-reach-warning-container').get(0),\r\n campaignId: this.options.campaignId,\r\n adGroupId: this.options.adgroupId || null,\r\n i18n,\r\n aid: pageContext.CurrentAccount.Id,\r\n cid: pageContext.CurrentAccount.AdvertiserCustomerID,\r\n });\r\n }\r\n\r\n if (this.perfMarker && !this.perfMarkerDone) {\r\n this.perfMarkerDone = true;\r\n this.perfMarker.done();\r\n }\r\n return this;\r\n }\r\n\r\n populateLocationParentIds(locationList) {\r\n let result = [];\r\n\r\n const isCampaignEntity = this.options.level === 'campaign' &&\r\n this.options.scenario !== 'adgroup-create' && this.options.scenario !== 'adgroup-settings';\r\n const parentExtension = isCampaignEntity ? {\r\n Campaign: {\r\n Id: this.options.campaignId,\r\n },\r\n } : {\r\n AdGroup: {\r\n Id: this.options.adgroupId,\r\n },\r\n };\r\n\r\n _.each(locationList, (location) => {\r\n let resultEntity = _.extendOwn({}, location);\r\n\r\n if (resultEntity.Id < 0) {\r\n resultEntity = _.omit(resultEntity, 'Id');\r\n }\r\n\r\n _.extendOwn(resultEntity, parentExtension);\r\n result.push(resultEntity);\r\n });\r\n return result;\r\n }\r\n\r\n //overrides object can include resourceName and level to override the module defined values\r\n getValues(overrides, options) {\r\n const resourceName = (overrides && overrides.resourceName) || this.resourceName;\r\n const level = (overrides && overrides.level) || this.options.level;\r\n const campaignName = (options && options.campaignName) || '';\r\n const adgroupName = (options && options.adgroupName) || '';\r\n const campaignId = (options && options.campaignId) || '';\r\n const adgroupId = (options && options.adgroupId) || '';\r\n const populateParentField = options && options.populateParentField;\r\n const removeNegativeId = options && options.removeNegativeId;\r\n const keepAllLocations = options && options.keepAllLocations;\r\n\r\n if (this.options.scenario === 'adgroup-create' && this.viewmodel.useCampaignSettings()) {\r\n return {\r\n intent: [],\r\n locations: [],\r\n deletedLocations: [],\r\n };\r\n }\r\n let locations = [];\r\n let bundleLocationsToAdd = [];\r\n let bundleSelectionDeletes = [];\r\n let everywhereSelectionDeletes = [];\r\n let hiddenIncludedDeletes = [];\r\n\r\n if (this.viewmodel.targetOption() === 'specific') {\r\n locations = _.deepClone(locationIntermediateHelper.getLocationCriterion(resourceName));\r\n } else if (this.viewmodel.targetOption() === 'bundle') {\r\n //in the bundle mode:\r\n // add all bundle countries that are not already defined\r\n // remove all other targets that are not part of the bundle list\r\n let definedLocations = _.deepClone(locationIntermediateHelper.getLocationCriterion(resourceName));\r\n\r\n _.each(this.viewmodel.bundleLocationCriterions(), (bundleLocationCriterion) => {\r\n const alreadyDefinedBundle = _.find(definedLocations, (definedLoc) => {\r\n return definedLoc.Criterion.Type === 'Location' && definedLoc.Criterion.LocationCriterion.LocationId === bundleLocationCriterion.Criterion.LocationCriterion.LocationId;\r\n });\r\n\r\n if (alreadyDefinedBundle) {\r\n bundleLocationsToAdd.push(alreadyDefinedBundle);\r\n } else {\r\n bundleLocationsToAdd.push(bundleLocationCriterion);\r\n }\r\n });\r\n\r\n _.each(definedLocations, (definedLoc) => {\r\n if (definedLoc.Id > 0) {\r\n const includedInBundle = _.find(this.viewmodel.bundleLocationCriterions(), (bundleLocationCriterion) => {\r\n\r\n return definedLoc.Criterion.Type === 'Location' && definedLoc.Criterion.LocationCriterion.LocationId === bundleLocationCriterion.Criterion.LocationCriterion.LocationId;\r\n });\r\n\r\n if (!includedInBundle) {\r\n bundleSelectionDeletes.push(_.extendOwn(definedLoc, {}));\r\n }\r\n }\r\n });\r\n\r\n locations = bundleLocationsToAdd;\r\n } else if (this.viewmodel.targetOption() === 'everywhere') {\r\n //if everywhere is selected, set all locations for delete\r\n let definedLocations = _.deepClone(locationIntermediateHelper.getLocationCriterion(resourceName));\r\n\r\n _.each(definedLocations, (definedLoc) => {\r\n everywhereSelectionDeletes.push(_.extendOwn(definedLoc, {}));\r\n });\r\n }\r\n\r\n let entityResourceName = level === 'campaign' ? 'Campaign' : 'AdGroup';\r\n let entityId = level === 'campaign' ? this.options.campaignId : this.options.adgroupId;\r\n\r\n locations = _.map(locations, (location) => {\r\n let locationToSend = location;\r\n\r\n if (locationToSend.Criterion.Type === 'Radius') {\r\n locationToSend.CriterionType = locationToSend.Criterion.Type;\r\n if (locationToSend.Criterion.RadiusCriterion.IsOriginalNameEmpty) {\r\n locationToSend.Criterion.RadiusCriterion.Name = null;\r\n }\r\n } else {\r\n locationToSend.CriterionType = locationToSend.SelectionStatus === locationTargetTypes.Included ? 'Location' : 'NegativeLocation';\r\n }\r\n\r\n if (locationToSend.Id < 0) {\r\n locationToSend = _.omit(locationToSend, 'Id');\r\n }\r\n //ommitting all potential parents and setting it back based on level\r\n locationToSend = _.omit(locationToSend, ['Campaign', 'AdGroup']);\r\n locationToSend[entityResourceName] = {\r\n 'Id': entityId,\r\n };\r\n return locationToSend;\r\n });\r\n\r\n let intent = this.physicalIntentView.getValues();\r\n\r\n if (!_.isEmpty(intent)) {\r\n //setting the parent fields for the intent\r\n intent = _.omit(intent, ['Campaign', 'AdGroup']);\r\n intent[entityResourceName] = {\r\n 'Id': entityId,\r\n };\r\n }\r\n\r\n //if useCampaignSettings is checked (only happens when in adgroup-settings mode)\r\n //then do not return newly created adgroup targets and mark all other adgroup targets for deletion\r\n if (this.options.scenario === 'adgroup-settings' && this.viewmodel.useCampaignSettings()) {\r\n locations = _.chain(locations)\r\n .filter((location) => {\r\n return location.Id > 0;\r\n })\r\n .map((location) => {\r\n return _.extendOwn(location, {\r\n Status: 'Deleted',\r\n });\r\n })\r\n .value();\r\n if (!_.isEmpty(intent)) {\r\n //MT does not support deleting an intent option, so we set the intent back to its default value when there is going to be no targets\r\n intent.Criterion.LocationIntentCriterion.IntentOption = physicalIntentOptions.PeopleInOrSearchingForOrViewingPages;\r\n }\r\n }\r\n\r\n let deletedLocations = _.filter(this.viewmodel.deletedLocations.concat(bundleSelectionDeletes).concat(everywhereSelectionDeletes), (location) => {\r\n return location.Id && location.Id > 0;\r\n });\r\n let deletedValues = this.populateLocationParentIds(deletedLocations);\r\n\r\n _.each(deletedValues, (deletedValue) => {\r\n deletedValue.Status = 'Deleted';\r\n if (deletedValue.Criterion.Type === 'Radius' && deletedValue.Criterion.RadiusCriterion.IsOriginalNameEmpty) {\r\n deletedValue.Criterion.RadiusCriterion.Name = null;\r\n }\r\n });\r\n\r\n if (this.options.scenario === 'adgroup-create') {\r\n locations = _.map(locations, (locationTarget) => {\r\n let removedFields = locationTarget.Id > 0 ? ['Campaign'] : ['Campaign', 'Id'];\r\n\r\n return _.omit(_.extend(locationTarget, {\r\n 'CampaignName': campaignName,\r\n 'AdGroupName': adgroupName,\r\n }), removedFields);\r\n });\r\n\r\n if (!_.isEmpty(intent)) {\r\n intent = _.omit(_.extend(intent, {\r\n 'CampaignName': campaignName,\r\n 'AdGroupName': adgroupName,\r\n }), ['Campaign', 'Id']);\r\n }\r\n }\r\n\r\n\r\n if (populateParentField) {\r\n locations = _.map(locations, (locationTarget) => {\r\n return this.populateParentField(locationTarget, level, campaignId, campaignName, adgroupId, adgroupName, removeNegativeId);\r\n });\r\n deletedValues = _.map(deletedValues, (locationTarget) => {\r\n return this.populateParentField(locationTarget, level, campaignId, campaignName, adgroupId, adgroupName, removeNegativeId);\r\n });\r\n if (!_.isEmpty(intent)) {\r\n intent = this.populateParentField(intent, level, campaignId, campaignName, adgroupId, adgroupName, removeNegativeId);\r\n }\r\n }\r\n\r\n let allLocations = locations;\r\n\r\n if (!keepAllLocations) {\r\n locations = this.filterUnchangedLocations(locations, level);\r\n }\r\n\r\n return {\r\n intent: _.isEmpty(intent) ? [] : [intent],\r\n locations,\r\n allLocations,\r\n deletedLocations: deletedValues,\r\n };\r\n }\r\n\r\n isBundleLocationSelected(locations) {\r\n return this.viewmodel.targetOption() === 'bundle' ||\r\n (this.viewmodel.targetOption() === 'specific' &&\r\n this.viewmodel.shouldBundleModeBeSelected(locations)\r\n );\r\n }\r\n\r\n getLanguageBundleString() {\r\n return this.viewmodel.languageBundleString();\r\n }\r\n\r\n getLocationRecommendationsStatus() {\r\n if (this.hasLocationRecommendations) {\r\n return {\r\n dismissedLocationRecommendations: this.locationManageView.dismissedLocationRecommendations,\r\n targetedLocationRecommendations: this.locationManageView.targetedLocationRecommendations,\r\n };\r\n }\r\n return {};\r\n }\r\n\r\n filterUnchangedLocations(locations, level) {\r\n const filteredLocations = _.filter(locations, (location) => {\r\n //if the location does not have any id (just being created), it should not be filtered out.\r\n if (!location.Id || location.Id < 0) {\r\n return true;\r\n }\r\n //if the location is set to be deleted, it should not be filtered out.\r\n if (location.Status === 'Deleted') {\r\n return true;\r\n }\r\n let isBidAdjustmentChanged = location.Criterion.BidAdjustment !== location.Criterion.OriginalBidAdjustment;\r\n let isCashbackPercentChanged = this.supportCashbackSettings ?\r\n getRealCashbackPercentValue(location.Criterion.CashbackPercent, decimal) !== getRealCashbackPercentValue(location.Criterion.OriginalCashbackPercent, decimal) :\r\n false;\r\n //if not the above cases, the location will not be filtered out if and only if the bid/cashback percent is changed.\r\n\r\n return isBidAdjustmentChanged || isCashbackPercentChanged;\r\n });\r\n\r\n return filteredLocations;\r\n }\r\n\r\n populateParentField(targetEntity, level, campaignId, campaignName, adgropuId, adgroupName, removeNegativeId) {\r\n let entity = {};\r\n const parentEntityName = level === 'campaign' ? 'Campaign' : 'AdGroup';\r\n const parentEntityNameValue = level === 'campaign' ? campaignName : adgroupName;\r\n const parentEntityNameKey = level === 'campaign' ? 'CampaignName' : 'AdGroupName';\r\n const parentEntityIdValue = level === 'campaign' ? campaignId : adgropuId;\r\n\r\n entity = _.omit(targetEntity, [parentEntityName]);\r\n if (removeNegativeId) {\r\n if (entity.Id < 0) {\r\n entity = _.omit(entity, 'Id');\r\n }\r\n }\r\n let toExtend = {};\r\n\r\n if (parentEntityIdValue) {\r\n toExtend[parentEntityName] = {\r\n 'Id': parentEntityIdValue,\r\n };\r\n } else {\r\n toExtend[parentEntityNameKey] = parentEntityNameValue;\r\n }\r\n entity = _.extend(entity, toExtend);\r\n return entity;\r\n }\r\n\r\n handleApiErrors(errors) {\r\n if (errors.length) {\r\n let apiErrors = getBulkApiErrors(errors);\r\n\r\n this.viewmodel.errors.add(apiErrors);\r\n }\r\n }\r\n\r\n clearAllErrors() {\r\n this.viewmodel.errors.clear();\r\n }\r\n\r\n remove(...args) {\r\n this.off();\r\n eventDispatcher.off(null, null, this);\r\n\r\n jsdata.Intermediate.clearSubscribers('CampaignCriterion');\r\n jsdata.Intermediate.clearSubscribers('AdGroupCriterion');\r\n jsdata.Intermediate.clearSubscribers('Location');\r\n\r\n this.locationManageView.remove();\r\n this.locationTargetBidView.remove();\r\n this.physicalIntentView.remove();\r\n this.physicalIntentOutsideView.remove();\r\n if (this.toggleView) {\r\n this.toggleView.remove();\r\n }\r\n\r\n this.unmountIMAComponents();\r\n super.remove(...args);\r\n }\r\n}\r\n","export default {\r\n 'PeopleIn': 'PeopleIn',\r\n 'PeopleSearchingForOrViewingPages': 'PeopleSearchingForOrViewingPages',\r\n 'PeopleInOrSearchingForOrViewingPages': 'PeopleInOrSearchingForOrViewingPages',\r\n};\r\n","import Promise from 'bluebird';\r\nimport $ from 'jquery';\r\nimport { getCCUrl } from '@bingads-webui-component-legacy/bingads-grid/shared/clientcenter-url-helper';\r\n\r\nconst getPrimaryContactsUrl = getCCUrl('accounts/GetEditPrimaryContactsModel');\r\nconst posPrimaryContactsUpdateUrl = getCCUrl('account/BulkEditPrimaryContacts');\r\n\r\nexport function getPrimaryContacts(cid, uid, AccountIds) {\r\n return new Promise((resolve) => {\r\n $.advertiser.ajaxPost({\r\n url: getPrimaryContactsUrl,\r\n xhrFields: {\r\n withCredentials: true,\r\n },\r\n data: { cid, uid, AccountIds },\r\n dataType: 'json',\r\n traditional: true, // ensure correct format on array for CCUI\r\n onSuccess: (data) => {\r\n resolve(data);\r\n },\r\n onerror: (data) => resolve(data),\r\n });\r\n });\r\n}\r\n\r\nexport function postPrimaryContactUpdate(cid, uid, AccountIds, SelectedUserId) {\r\n return new Promise((resolve) => {\r\n $.advertiser.ajaxPost({\r\n url: posPrimaryContactsUpdateUrl,\r\n xhrFields: {\r\n withCredentials: true,\r\n },\r\n data: { cid, uid, AccountIds, SelectedUser: SelectedUserId },\r\n traditional: true, // ensure correct format on array for CCUI\r\n onSuccess: (data) => {\r\n resolve(data);\r\n },\r\n // TODO Bug 1895168. Onerror may not do the expect thing here. Remove it or have correct handler.\r\n onerror: (data) => resolve(data),\r\n hideLoadingPanelOnSuccess: true,\r\n });\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport * as i18nErrors from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\n\r\nconst ImportTotalRowsExceedLimit = 17015;\r\nconst ImportPluginAnotherImportIsRunning = 17052;\r\nconst listOfGoogleSyncErrorCodes = [\r\n 43602, //GoogleSyncInvalidCredentials\r\n 43603, //GoogleSyncNotAdWordsUser\r\n 43623, //GoogleSyncOAuth2RefreshTokenMissing\r\n];\r\nconst listOfPermissionsErrorCodes = [\r\n 43601, //GoogleSyncUserIsNotAuthorized\r\n 43624, //GoogleSyncUserPermissionDenied\r\n 43604, //GoogleSyncOAuthTokenRevoked\r\n];\r\nconst GoogleSyncAccountNotSetUp = 43622;\r\nconst UserIsNotAuthorized = 560029;\r\n\r\nconst listOfFacebookTokenErrorCodes = [\r\n 43651, //FacebookSyncTokenExpired\r\n 43652, //FacebookSyncPermissionDenied\r\n 50045, //UserTokenInvalid\r\n];\r\n\r\nconst listOfPinterestErrorCodes = [\r\n 65751, // PinterestSyncTokenExpired\r\n 65752, // PinterestSyncPermissionDenied\r\n 17907, // PinterestImportInvalidCredentials\r\n];\r\n\r\nexport default class errorHelper {\r\n\r\n static getErrorDisplayMessage(errorCode, isCancelled, i18n) {\r\n if (isCancelled) {\r\n return i18n.getString('Scheduled_Import_User_Cancelled');\r\n }\r\n if (errorCode) {\r\n switch (errorCode) {\r\n case ImportTotalRowsExceedLimit:\r\n return i18n.getString('Scheduled_Import_Entity_Error');\r\n case GoogleSyncAccountNotSetUp:\r\n return i18n.getString('Scheduled_Import_AccountInactive_Error');\r\n case UserIsNotAuthorized:\r\n return i18n.getString('ErrorNumber_60003');\r\n default:\r\n if (_.contains(listOfPermissionsErrorCodes, errorCode)) {\r\n return i18n.getString('Scheduled_Import_Permission_Error');\r\n }\r\n if (_.contains(listOfGoogleSyncErrorCodes, errorCode)) {\r\n return i18n.getString('Scheduled_Import_Auth_Error');\r\n }\r\n if (_.contains(listOfFacebookTokenErrorCodes, errorCode) || _.contains(listOfPinterestErrorCodes, errorCode)) {\r\n return i18n.getString('Scheduled_Import_Permission_Error_General');\r\n }\r\n break;\r\n }\r\n }\r\n //ADD ADDITIONAL INSTRUMENTATION TO LOG STUFF THAT HITS HERE (SEND NOTIFICATION IF IT EXCEEDS SOME LIMIT E.G. 10)\r\n return i18n.getString('Scheduled_Import_Internal_Error');\r\n }\r\n\r\n static isGoogleAuthError(errorCode) {\r\n return _.contains(listOfPermissionsErrorCodes, errorCode) || _.contains(listOfGoogleSyncErrorCodes, errorCode);\r\n }\r\n\r\n static isFacebookAuthError(errorCode) {\r\n return _.contains(listOfFacebookTokenErrorCodes, errorCode);\r\n }\r\n\r\n static isPinterestAuthError(errorCode) {\r\n return _.contains(listOfPinterestErrorCodes, errorCode);\r\n }\r\n\r\n static isAnotherImportRunning(errorCode) {\r\n return errorCode === ImportPluginAnotherImportIsRunning;\r\n }\r\n\r\n static isDemandLimitError(errorCode) {\r\n return errorCode === ImportTotalRowsExceedLimit;\r\n }\r\n\r\n static isGoogleSyncAccountNotSetup(errorCode) {\r\n return errorCode === GoogleSyncAccountNotSetUp;\r\n }\r\n\r\n static getErrorDetailsMessage(errorCode, model, i18n) {\r\n const defaultMsg = i18n.getString('Import_FailedStatus');\r\n\r\n if (!errorCode) {\r\n return defaultMsg;\r\n }\r\n\r\n switch (errorCode) {\r\n case ImportPluginAnotherImportIsRunning:\r\n return i18n.getString('Scheduled_Import_AnotherImportRunning_Details');\r\n case ImportTotalRowsExceedLimit:\r\n return i18n.getString('Scheduled_Import_Entity_Error_Details');\r\n case GoogleSyncAccountNotSetUp:\r\n return i18n.getString('CampaignImport_GSyncAccountNotSetUp').replace('{0}', model.GoogleAccountName);\r\n case UserIsNotAuthorized:\r\n return i18n.getString('ErrorNumber_60003');\r\n default:\r\n if (_.contains(listOfPermissionsErrorCodes, errorCode)) {\r\n return i18n.getString('Scheduled_Import_Permission_Error_Details');\r\n }\r\n if (_.contains(listOfGoogleSyncErrorCodes, errorCode)) {\r\n return i18n.getString('Scheduled_Import_Auth_Error_Details');\r\n }\r\n if (_.contains(listOfFacebookTokenErrorCodes, errorCode) || _.contains(listOfPinterestErrorCodes, errorCode)) {\r\n return i18n.getString('Scheduled_Import_Permission_Error_Details_General');\r\n }\r\n return i18nErrors.getString(`ErrorNumber_${errorCode}`) || defaultMsg;\r\n }\r\n }\r\n}\r\n\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport backbone from 'backbone';\r\nimport tmpl from '@bingads-webui-campaign-legacy/import-campaigns/template/lastImportTable/summaryDetailsTable.pug';\r\nimport Grid from '@bingads-webui-component-legacy/grid/index';\r\nimport MapProjection from '@bingads-webui-component-legacy/grid/projection/map';\r\nimport DataSource from '@bingads-webui-component-legacy/grid/projection/memory';\r\nimport ColumnQueryableProjection from '@bingads-webui-component-legacy/grid/projection/column-queryable';\r\nimport ColumnI18NProjection from '@bingads-webui-component-legacy/grid/projection/column-i18n';\r\nimport TableLayout from '@bingads-webui-component-legacy/grid/layout/table';\r\nimport tableTmpl from '@bingads-webui-component-legacy/grid/layout/template/table.pug';\r\nimport * as importComponents from '@bingads-webui-campaign/import-components';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nvar defaultOptions = {\r\n type: 'review'\r\n};\r\nfunction initGrid(data, i18n) {\r\n var dataSource = new DataSource({\r\n seed: data\r\n });\r\n var map = new MapProjection({\r\n map: function (item) {\r\n _.each(item.Value, function (val, key) {\r\n item.Value[key] = _.isNull(val) || _.isUndefined(val) ? i18n.getString('Import_LastImport_Dash') : val;\r\n });\r\n return {\r\n Category: item.Key,\r\n Additions: item.Value.Additions,\r\n Updates: item.Value.Changes,\r\n Deletions: item.Value.Deletions,\r\n Errors: item.Value.Errors\r\n };\r\n }\r\n });\r\n var colq = new ColumnQueryableProjection({\r\n 'column.in': ['Category', 'Additions', 'Updates', 'Deletions', 'Errors']\r\n });\r\n var coli18n = new ColumnI18NProjection({\r\n 'column.i18n': {\r\n Category: '',\r\n Additions: i18n.getString('Import_ColumnHeader_Additions'),\r\n Updates: i18n.getString('Import_ColumnHeader_Synced'),\r\n Deletions: i18n.getString('Import_ColumnHeader_Deletions'),\r\n Errors: i18n.getString('Import_ColumnHeader_Errors')\r\n }\r\n });\r\n return dataSource.pipe(map).pipe(colq).pipe(coli18n);\r\n}\r\nvar view = backbone.View.extend({\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n this.options = _.defaults(this.options, defaultOptions);\r\n this.i18n = this.options.i18n;\r\n var permissions = config.get('Permissions');\r\n this.allowedList = importComponents.generateAllowedEntities({\r\n i18n: this.i18n,\r\n permissions: permissions,\r\n allowedChannels: this.options.allowedChannels,\r\n isCustomerLevel: this.options.isCustomerLevel,\r\n importType: this.options.importType\r\n });\r\n if (!_.isEmpty(this.options.data)) {\r\n var data = _.chain(this.allowedList).filter(function (value) {\r\n return this.options.data[value.MTName];\r\n }, this).map(function (value) {\r\n return {\r\n Key: value.UIName,\r\n Value: this.options.data[value.MTName]\r\n };\r\n }, this).value();\r\n this.hasStats = !_.isEmpty(data);\r\n if (this.hasStats) {\r\n this.src = initGrid(data, this.i18n);\r\n }\r\n }\r\n },\r\n events: {\r\n 'click .btn-apply': 'applyChanges',\r\n 'click .btn-cancel': 'cancel'\r\n },\r\n render: function () {\r\n this.$el.html(tmpl({\r\n hasStats: this.hasStats,\r\n i18n: this.i18n,\r\n type: this.options.type\r\n }));\r\n if (this.hasStats) {\r\n this.grid = new Grid({\r\n el: this.$('.grid'),\r\n projection: this.src,\r\n layout: TableLayout.partial({\r\n template: tableTmpl,\r\n columns: {\r\n Category: {\r\n '$metadata': {\r\n 'attr.body': {\r\n 'class': []\r\n }\r\n }\r\n },\r\n Additions: {\r\n '$metadata': {\r\n 'attr.head': {\r\n 'class': ['col-changes-data']\r\n }\r\n }\r\n },\r\n Updates: {\r\n '$metadata': {\r\n 'attr.head': {\r\n 'class': ['col-changes-data']\r\n }\r\n }\r\n },\r\n Deletions: {\r\n '$metadata': {\r\n 'attr.head': {\r\n 'class': ['col-changes-data']\r\n }\r\n }\r\n },\r\n Errors: {\r\n '$metadata': {\r\n 'attr.head': {\r\n 'class': ['col-changes-data']\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }).render({\r\n fetch: true\r\n });\r\n }\r\n return this;\r\n },\r\n applyChanges: function () {\r\n this.trigger('ApplyChanges');\r\n },\r\n cancel: function () {\r\n this.trigger('Cancel');\r\n }\r\n});\r\nexport default view;\r\n\r\n","import Backbone from 'backbone';\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\n\r\nimport { curlyTemplate } from '@bingads-webui-universal/primitive-utilities';\r\nimport { generateAllowedEntities } from '@bingads-webui-campaign/import-shared-repositories';\r\n\r\nimport errorHelper from '@bingads-webui-campaign-legacy/scheduled-import/view/import-task-engine-error-helper';\r\nimport errorDetailsTmpl from '@bingads-webui-campaign-legacy/scheduled-import/template/import-log-error-details.pug';\r\nimport summaryLogTmpl from '@bingads-webui-campaign-legacy/scheduled-import/template/import-log-summary.pug';\r\nimport SummaryDetailsView from '@bingads-webui-campaign-legacy/import-campaigns/view/summaryDetailsTable';\r\nimport toolTipTmpl from '@bingads-webui-campaign-legacy/import-campaigns/template/lastImportTable/toolTip.pug';\r\nimport ImportFailureDetailsTableView from '@bingads-webui-campaign-legacy/import-campaigns/view/import-failure-details-table';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nconst permissions = config.get('Permissions');\r\n\r\nfunction formatEntityStatistics(data) {\r\n if (data) {\r\n if (data.ErrorCode) {\r\n return { error: data.ErrorCode, details: data.ErrorDetail };\r\n }\r\n //Handle scenario where import has failed due to internal error, but we do not get back an error code\r\n if (data.Status === 'Failed') {\r\n return { error: 'NoErrorCode' };\r\n }\r\n if (data.EntityStatistics && data.EntityStatistics.Keys && data.EntityStatistics.Values) {\r\n return _.object(_.zip(data.EntityStatistics.Keys, data.EntityStatistics.Values));\r\n }\r\n }\r\n return {};\r\n}\r\n\r\nexport function importSummaryColDataToTemplate(data, i18n, isLastImportInfo) {\r\n if (!data) {\r\n return '';\r\n }\r\n\r\n let totalErrorCount = 0;\r\n let totalSuccessCount = 0;\r\n\r\n // calculate total success/error counts based on allowed entities\r\n if (data.EntityStatistics && data.EntityStatistics.Keys && data.EntityStatistics.Values) {\r\n const entities = _.object(_.zip(data.EntityStatistics.Keys, data.EntityStatistics.Values));\r\n const allowedEntities = generateAllowedEntities({\r\n permissions,\r\n allowedChannels: ['GoogleAPIImport', 'FacebookImport', 'AmazonImport', 'PinterestImport'],\r\n isCustomerLevel: data.isCustomerLevel,\r\n importType: data.Type,\r\n });\r\n\r\n allowedEntities.forEach(({ MTName }) => {\r\n const { Additions, Changes, Errors, Deletions } = entities[MTName] || {};\r\n\r\n totalSuccessCount += _.isNumber(Additions) ? Additions : 0;\r\n totalSuccessCount += _.isNumber(Changes) ? Changes : 0;\r\n totalSuccessCount += _.isNumber(Deletions) ? Deletions : 0;\r\n totalErrorCount += _.isNumber(Errors) ? Errors : 0;\r\n });\r\n }\r\n\r\n const { importStatus, taskItemStatus, errorCode, successCount, errorCount, isCustomerLevel } =\r\n _.defaults({\r\n importStatus: data.ImportStatus,\r\n taskItemStatus: data.Status,\r\n errorCode: data.ErrorCode,\r\n successCount: totalSuccessCount,\r\n errorCount: totalErrorCount,\r\n isCustomerLevel: data.isCustomerLevel,\r\n }, {\r\n successCount: 0,\r\n errorCount: 0,\r\n });\r\n const totalCount = successCount + errorCount;\r\n const notStarted = importStatus === 'NotStarted';\r\n const isCancelled = importStatus === 'Cancelled';\r\n const failedWithNoErrorCode = !errorCode && importStatus === 'Failed';\r\n const failedOrCancelled = isCancelled || errorCode || failedWithNoErrorCode;\r\n const fileImportValidationCompleted = importStatus === 'ValidationCompleted' && taskItemStatus === 'Completed';\r\n const inProgress = importStatus === 'UploadInProgress' || taskItemStatus === 'InProgress' || taskItemStatus === 'PendingExecution';\r\n const succeededEntitiesText = totalCount === 0 ?\r\n i18n.getString('BulkEdit_History_Status_NoChanges') :\r\n curlyTemplate(i18n.getString('Import_LastImport_SummarySucessCount'))({\r\n successCount,\r\n });\r\n\r\n return summaryLogTmpl({\r\n failedOrCancelled,\r\n // eslint-disable-next-line\r\n importErrorText: failedOrCancelled ? (\r\n failedWithNoErrorCode ?\r\n i18n.getString('Schema_TaskItemExecution_Property_Status_Value_Failed') :\r\n errorHelper.getErrorDisplayMessage(errorCode, isCancelled, i18n)\r\n ) : '',\r\n succeededEntitiesText,\r\n hasFailedEntities: (importStatus === 'Complete' || (isCustomerLevel && taskItemStatus === 'Completed')) && errorCount > 0 && !inProgress && !failedOrCancelled,\r\n failedEntitiesText: curlyTemplate(i18n.getString('Import_LastImport_SummaryErrorCount'))({ errorCount }),\r\n notStarted,\r\n notStartedText: i18n.getString('CampaignImport_NotStartedLabel'),\r\n inProgress,\r\n inProgressText: i18n.getString('CampaignImport_PendingLinkLabel'),\r\n fileImportValidationCompleted,\r\n validationCompletedText: i18n.getString('Import_FileImport_ValidationCompleted'),\r\n showTooltipIcon: ((importStatus === 'Complete' || (isCustomerLevel && taskItemStatus === 'Completed')) && totalCount > 0) || ((isLastImportInfo || (permissions && permissions.dynamic && !permissions.dynamic.TokenInvalidImportNotification)) && errorCode) || fileImportValidationCompleted,\r\n summaryDetailsLabel: i18n.getString('Grid_SummaryDetails'),\r\n });\r\n}\r\n\r\nexport const getSummaryDetailsPopupViewPromise = Promise.method(({ columnData, i18n, findImportTaskItem, logTrace }) => {\r\n const data = formatEntityStatistics(columnData);\r\n let view = null;\r\n let signInLinkClass = '';\r\n let showSignInLink = false;\r\n\r\n function renderErrorPopup() {\r\n view = new Backbone.View();\r\n\r\n view.$el.html(errorDetailsTmpl({\r\n errorMsg: errorHelper.getErrorDetailsMessage(data.error, columnData, i18n),\r\n linkMsg: i18n.getString('Scheduled_Import_GAuth_Error_Link'),\r\n showSignInLink,\r\n signInLinkClass,\r\n }));\r\n\r\n if (logTrace) {\r\n logTrace('render', 'Error_Details_Popup');\r\n }\r\n\r\n return view;\r\n }\r\n\r\n // TODO: Move error related logic out to import action column\r\n if (data.error === 17015) {\r\n if (logTrace) {\r\n logTrace('has', `${data.error}`);\r\n }\r\n\r\n view = new ImportFailureDetailsTableView({\r\n message: errorHelper.getErrorDetailsMessage(data.error, undefined, i18n),\r\n data: data.details,\r\n failureReason: data.error,\r\n i18n,\r\n }).render();\r\n } else if (data && data.error) {\r\n if (logTrace) {\r\n logTrace('has', `${data.error}`);\r\n }\r\n\r\n const isGoogleAuthError = errorHelper.isGoogleAuthError(data.error);\r\n const isFacebookAuthError = errorHelper.isFacebookAuthError(data.error);\r\n const isPinterestAuthError = errorHelper.isPinterestAuthError(data.error);\r\n\r\n if ((isGoogleAuthError || isFacebookAuthError || isPinterestAuthError) && columnData.IsAutomated && columnData.TaskId) {\r\n return findImportTaskItem(columnData.TaskId).then((taskItem) => {\r\n if (taskItem.State !== 'Deleted') {\r\n // should not show sign in link for run-once imports\r\n showSignInLink = true;\r\n if (isGoogleAuthError) {\r\n signInLinkClass = 'googleLogin';\r\n } else if (isFacebookAuthError) {\r\n signInLinkClass = 'facebookLogin';\r\n } else if (isPinterestAuthError) {\r\n signInLinkClass = 'pinterestLogin';\r\n }\r\n\r\n if (logTrace) {\r\n logTrace('has', 'Sign_In_Link');\r\n }\r\n }\r\n\r\n renderErrorPopup();\r\n return view;\r\n })\r\n .catch(() => {\r\n renderErrorPopup();\r\n return view;\r\n });\r\n } else {\r\n renderErrorPopup();\r\n }\r\n } else {\r\n view = new SummaryDetailsView({\r\n data: formatEntityStatistics(columnData),\r\n i18n,\r\n allowedChannels: ['GoogleAPIImport', 'FacebookImport', 'AmazonImport', 'PinterestImport'],\r\n isCustomerLevel: columnData.isCustomerLevel,\r\n importType: columnData.Type,\r\n }).render();\r\n }\r\n\r\n return view;\r\n});\r\n\r\nexport function showSummaryDetailsPopup(e, columnData, i18n, findImportTaskItem) {\r\n const { target, currentTarget } = e;\r\n\r\n if ($(currentTarget).data('showTooltip')) {\r\n // there is already tooltip showing.\r\n return;\r\n }\r\n\r\n let summaryDetailsView;\r\n let $targetTooltip;\r\n const $parent = $(target).parent();\r\n const eventName = _.uniqueId('click.import.log.grid.');\r\n\r\n function hideTooltip(event) {\r\n if (($(event.target).is($(target)) ||\r\n $(event.target).closest('[role=tooltip]', $parent).length) &&\r\n !$(event.target).closest('.close-image', $parent).length) {\r\n return true;\r\n }\r\n\r\n $(document) && $(document).off(eventName); //eslint-disable-line no-unused-expressions\r\n $(currentTarget).data('showTooltip', false);\r\n $targetTooltip.tooltip('destroy');\r\n summaryDetailsView.remove();\r\n summaryDetailsView = null;\r\n $targetTooltip = null;\r\n return false;\r\n }\r\n\r\n function showTooltip() {\r\n $(currentTarget).data('showTooltip', true);\r\n $targetTooltip = $(currentTarget).tooltip({\r\n html: true,\r\n title: summaryDetailsView.el,\r\n template: toolTipTmpl({ i18n }),\r\n });\r\n $targetTooltip.tooltip('show');\r\n $parent.find('.closeimage').focus();\r\n\r\n $(document).on(eventName, hideTooltip);\r\n }\r\n\r\n getSummaryDetailsPopupViewPromise({ columnData, i18n, findImportTaskItem })\r\n .then((view) => {\r\n summaryDetailsView = view;\r\n showTooltip();\r\n });\r\n}\r\n","import summaryDataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\n\r\nexport default class LegacyGrid {\r\n static reload(grid) {\r\n const beforeLoad = function(_this, params) {\r\n params.refreshCampaignCache = true;\r\n\r\n return true;\r\n };\r\n\r\n if (grid) {\r\n grid.reloadGrid(beforeLoad);\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n static invalidateLegacyGridCache() {\r\n // These are the mappings for campaigns/updatesettings taken from SummaryGridsActionMap\r\n // Campaign name might appear in these grids, and changing a shared budget association\r\n // might affect the budget status in these grids, so the cache needs to be invalidated here.\r\n const contextsToUpdate = [\r\n 'CampaignsGrid',\r\n 'AdGroupGrid',\r\n 'PagedAdGroupGrid',\r\n 'AdGrid',\r\n 'KeywordGrid',\r\n 'AudiencesAssociationGrid',\r\n 'SitePlacementGrid',\r\n 'CampaignsSettingsGrid',\r\n 'AccountAdExtensionsGrid',\r\n 'CampaignAdExtensionsGrid',\r\n 'AdGroupAdExtensionsGrid',\r\n 'ProductGroupsGrid',\r\n 'CampaignSelector',\r\n ];\r\n\r\n summaryDataContextManager.updateContext(contextsToUpdate);\r\n }\r\n\r\n static getCurrentGrid() {\r\n let grid = null;\r\n\r\n if (window && window.App && window.App.views && window.App.views.Summary) {\r\n const selectedId = window.App.views.Summary.selected_id;\r\n\r\n switch (selectedId) {\r\n case 'Campaign':\r\n grid = window.CampaignsGrid;\r\n break;\r\n case 'CampaignsSettings':\r\n grid = window.CampaignsSettingsGrid;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return grid;\r\n }\r\n\r\n static removePopupEditor(grid) {\r\n if (grid) {\r\n grid.removePopupEditor();\r\n }\r\n }\r\n}\r\n","import _ from '@bingads-webui-component-legacy/extension/underscore';\r\n\r\nimport { getBulkApiErrors, getODataErrors } from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport OdataAdapter from '@bingads-webui-component-legacy/js-data-odata/index';\r\nimport jsdataCampaign from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport SummaryDataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\n\r\nimport LegacyGrid from '@bingads-webui-campaign-legacy/shared-budget/model/legacy-grid';\r\n\r\nconst i18nGlobal = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\n\r\nfunction handleErrors(response, adapter) {\r\n const unexpectedError = [i18nGlobal.getString('ErrorNumber_-1')];\r\n\r\n if (!response || !response.errors) {\r\n // If the server hits a 500 response, it won't have error messages\r\n return unexpectedError;\r\n }\r\n\r\n const errors = adapter === 'bulk' ?\r\n getBulkApiErrors(response.errors) :\r\n getODataErrors(response.errors);\r\n\r\n if (!errors || !errors[0] || !errors[0].message) {\r\n return unexpectedError;\r\n }\r\n\r\n return errors;\r\n}\r\n\r\n/**\r\n * Handles the batch response from ODATA and parses it into an array of errors.\r\n *\r\n * ODATA operations such as destroyAll would use a batch request instead of a single request.\r\n * This means the error responses are stored in a different format, and even though the batch request\r\n * might succeed with a 200 code, the individual requests bundled inside it might have failed.\r\n *\r\n * @param {Array} responses - the array of batched responses from the ODATA adapter.\r\n * @return {Object} response - a combined response object that contains all the errors from the batch.\r\n */\r\nfunction processBatchResponse(responses) {\r\n const errors = _.chain(responses)\r\n .reject((item) => {\r\n return item.status === 200 || item.status === 204;\r\n })\r\n .pluck('data')\r\n .pluck('value')\r\n .flatten()\r\n .value();\r\n\r\n if (!_.isEmpty(errors)) {\r\n const response = {\r\n errors,\r\n type: 'odata',\r\n };\r\n\r\n throw response;\r\n }\r\n}\r\n\r\nconst odataAdapter = new OdataAdapter();\r\n\r\n// This is the current max entity limit for campaigns and shared budgets.\r\n// The campaign API would throw an error if we don't supply a limit, and the default limit is 20.\r\n// The budget API currently does not throw an error, but it might in the future.\r\nconst LIMIT = 11000;\r\n\r\n// This is the limit for the bulk adapter. It cannot receive more than 1000 rows at a time.\r\nconst BULK_LIMIT = 1000;\r\n\r\n/**\r\n * Find all the budgets.\r\n *\r\n * @param {Boolean} bypassCache - param for jsdata whether to load from cache or not.\r\n * @param {Object} params - ODATA adapter parameters.\r\n * @return {Promise} promise of the result of the operation.\r\n */\r\nexport function findAllBudgets(bypassCache, params) {\r\n const defaultedParams = _.defaults(params || {}, {limit: LIMIT});\r\n\r\n return jsdataCampaign.Budget.findAll(defaultedParams,\r\n {\r\n adapter: 'odata',\r\n cacheResponse: false,\r\n bypassCache: !!bypassCache,\r\n })\r\n .catch((response) => {\r\n throw handleErrors(response, 'odata');\r\n });\r\n}\r\n\r\n/**\r\n * Find all the campaigns that could be associated with a shared budget.\r\n *\r\n * @param {Object} params - ODATA adapter parameters.\r\n * @return {Promise} promise of the result of the operation.\r\n */\r\nexport function findAllCampaigns(params) {\r\n const defaultedParams = _.defaults(params || {}, {limit: LIMIT});\r\n const context = SummaryDataContextManager.getContext('/campaign/campaignselector/load?');\r\n\r\n return jsdataCampaign.Campaign.findAll(defaultedParams, {\r\n adapter: 'odata',\r\n cacheResponse: false,\r\n headers: {\r\n 'x-ms-refreshcampaigncache': context.data['CampaignSelector.RefreshCampaignData'],\r\n },\r\n }).catch((response) => {\r\n throw handleErrors(response, 'odata');\r\n });\r\n}\r\n\r\n/**\r\n * Associate the campaigns with the shared budget.\r\n *\r\n * @param {Array} campaigns - Array of campaign objects to associate. They must have an Id property.\r\n * @param {Object} budget - Budget object. It must have an Id property.\r\n * @return {Promise} promise of the result of the operation.\r\n */\r\nexport function associateCampaignsWithBudget(campaigns, budget) {\r\n const campaignsToAssociate = _.map(campaigns, (campaign) => {\r\n return {\r\n Id: campaign.Id,\r\n BudgetId: budget.Id,\r\n };\r\n });\r\n\r\n // Updating budget association would cause inconsistencies on the budget associations\r\n // displayed in the legacy grids, so we need to invalidate their cache.\r\n LegacyGrid.invalidateLegacyGridCache();\r\n\r\n function groupByBulkLimit(list) {\r\n return _.toArray(_.groupBy(list, (item, index) => {\r\n return Math.floor(index / BULK_LIMIT);\r\n }));\r\n }\r\n\r\n function updateCampaignsWithBulkLimit(campaignsGroups) {\r\n const campaignsGroup = campaignsGroups.shift();\r\n const campaignIdsGroup = _.pluck(campaignsGroup, 'Id');\r\n\r\n return jsdataCampaign.Campaign.updateMany(campaignIdsGroup, campaignsGroup, {adapter: 'bulk', cacheResponse: false})\r\n .then((response) => {\r\n if (campaignsGroups.length) {\r\n return updateCampaignsWithBulkLimit(campaignsGroups);\r\n } else {\r\n return response;\r\n }\r\n });\r\n }\r\n\r\n const batchedCampaignsToAssociate = groupByBulkLimit(campaignsToAssociate);\r\n\r\n return updateCampaignsWithBulkLimit(batchedCampaignsToAssociate)\r\n .catch((response) => {\r\n throw handleErrors(response, 'bulk');\r\n });\r\n}\r\n\r\n/**\r\n * Creates the specified budget.\r\n *\r\n * @param {Object} budget - Budget object.\r\n * @return {Promise} promise of the result of the operation.\r\n */\r\nexport function createBudget(budget) {\r\n return jsdataCampaign.Budget.create(budget, {adapter: 'bulk', cacheResponse: false})\r\n .catch((response) => {\r\n throw handleErrors(response, 'bulk');\r\n });\r\n}\r\n\r\n/**\r\n * Deletes the specified budgets\r\n *\r\n * @param {Array} budgets - Array of budget objects to be deleted. They must have an Id property.\r\n * @return {Promise} promise of the result of the operation.\r\n */\r\nexport function deleteBudgets(budgets) {\r\n const params = {\r\n reqs: _.map(budgets, (budget) => ({Id: budget.Id})),\r\n };\r\n\r\n const options = {\r\n action: 'DELETE',\r\n id: 'Id',\r\n };\r\n\r\n return odataAdapter.destroyAll(jsdataCampaign.Budget, params, options)\r\n .then((responses) => {\r\n processBatchResponse(responses);\r\n\r\n return responses;\r\n })\r\n .catch((response) => {\r\n throw handleErrors(response, 'odata');\r\n });\r\n}\r\n\r\n/**\r\n * Updates the specified budget.\r\n *\r\n * @param {Object} budget - Budget object to be updated. Must contain an Id property.\r\n * @return {Promise} promise of the result of the operation.\r\n */\r\nexport function updateBudget(budget) {\r\n const budgetToUpdate = _.omit(budget, 'Id');\r\n\r\n return jsdataCampaign.Budget.update(budget.Id, budgetToUpdate, {adapter: 'bulk', cacheResponse: false})\r\n .then((response) => {\r\n // Updating budget amount would cause inconsistencies on the budget amount displayed in the\r\n // legacy grids, so we need to invalidate their cache.\r\n LegacyGrid.invalidateLegacyGridCache();\r\n\r\n return response;\r\n })\r\n .catch((response) => {\r\n throw handleErrors(response, 'bulk');\r\n });\r\n}\r\n\r\n/**\r\n * Finds the budget by its Id.\r\n *\r\n * @param {Integer} budgetId - Id of the budget to be found.\r\n * @return {Promise} promise of the result of the operation. The promise resolves with the budget Object.\r\n */\r\nexport function findBudget(budgetId) {\r\n return jsdataCampaign.Budget.find(budgetId, {cacheResponse: false})\r\n .catch((response) => {\r\n throw handleErrors(response, 'odata');\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport { Budget } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport KoSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\n\r\nexport default class ViewModel {\r\n constructor(options = {}) {\r\n // Set the nullable to false. Enable the empty value validation\r\n const Amount = _.defaults({ nullable: false }, Budget.properties.Amount);\r\n const properties = _.defaults({ Amount }, Budget.properties);\r\n const BudgetCopy = _.defaults({ properties }, Budget);\r\n\r\n this.options = options;\r\n this.budgetId = parseInt(this.options.model.budgetId);\r\n KoSchema.properties(this, BudgetCopy, ['Amount'], {});\r\n // The input to us is a localized string, so update by string method.\r\n this.Amount.string(options.model.budgetAmount);\r\n }\r\n\r\n isValidBudget() {\r\n this.clearErrors();\r\n\r\n return this.validate();\r\n }\r\n\r\n getBudget() {\r\n const budget = this.toObject();\r\n\r\n budget.Id = this.budgetId;\r\n\r\n return budget;\r\n }\r\n\r\n handleErrors(response) {\r\n this.errors.add(response);\r\n }\r\n\r\n clearErrors() {\r\n this.errors.clear();\r\n }\r\n\r\n addError(errorMessage) {\r\n this.errors.add([errorMessage]);\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\n\r\nimport { triggerScrollbarRepositionOnElementHeightChange } from '@bingads-webui-campaign-react/virtual-scrollbar-recalculate-trigger';\r\nimport { BudgetLandScapeTable} from '@bingads-webui-campaign/recommendation-inline-budget-view';\r\n\r\nimport {\r\n logBudgetLandScapeForSharedBudgetCampaignView,\r\n logBudgetLandScapeForSharedBudgetCampaignAdoption,\r\n} from '@bingads-webui-campaign-legacy/budget/shared/log';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport inlineBudgetEditor from '@bingads-webui-static-legacy/legacy/summary/InlineBudgetEditor';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport withUiBlock from '@bingads-webui-component-legacy/uiblocker/index';\r\nimport * as SharedBudgetModel from '@bingads-webui-campaign-legacy/shared-budget/model/shared-budget';\r\nimport SharedBudgetRouting from '@bingads-webui-campaign-legacy/shared-budget/view/shared-budget-routing';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/shared-budget/viewmodel/campaigns-grid-inline-shared-budget-editor';\r\nimport campaignsGridInlineSharedBudgetEditorTemplate from '@bingads-webui-campaign-legacy/shared-budget/template/campaigns-grid-inline-shared-budget-editor.pug';\r\nimport LegacyGrid from '@bingads-webui-campaign-legacy/shared-budget/model/legacy-grid';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/shared-budget');\r\nconst i18nGlobal = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\nconst i18nRecommendation = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/competition-tab');\r\n\r\nconst BUDGET_SUGGESTION = 'BudgetSuggestions';\r\n\r\nfunction fetchBudgetLandscape(budgetId) {\r\n const odataPath = config.get('adinsight.odata.url');\r\n const uri = `Customers(:customer_id)/Accounts(:account_id)/Recommendation.GetSharedBudgetLandscape(SharedBudgetId=${budgetId})`;\r\n\r\n return odata.get(uri, {\r\n path: 'AdInsight/V2/',\r\n host: odataPath,\r\n });\r\n}\r\n\r\n/**\r\n * Edits the shared budget column value inline.\r\n */\r\nexport default class InlineSharedBudgetEditor extends Backbone.View {\r\n /**\r\n * Renders the popup editor for the given combinedBudget.\r\n *\r\n * @param {Object} fieldId - a field ID of the format CampaignsGrid_{campaignId}_2_custom\r\n * @param {Object} combinedBudget - the combined budget JSON that has these properties:\r\n * BudgetAmount - The budget amount.\r\n * BudgetId - the shared budget Id, or 0 if a private budget.\r\n * BudgetType -\r\n * BudgetName - the shared budget name, or empty if a private budget.\r\n * CampaignId - the Id of the campaign this budget is associated with.\r\n * @return {JQuery} A jquery element that is the root of the popup editor. This element would be\r\n * appended to the popup's container by the osd.ui.grid.js.\r\n */\r\n static editBudget(fieldId, combinedBudget) {\r\n if (!combinedBudget || !combinedBudget.BudgetId) {\r\n InlineSharedBudgetEditor.setCurrentEditor(null);\r\n\r\n return inlineBudgetEditor.editBudget(fieldId, combinedBudget);\r\n }\r\n\r\n const model = {\r\n budgetAmount: combinedBudget.RawBudgetAmount,\r\n budgetType: combinedBudget.SimplifiedBudgetLimitType,\r\n budgetName: combinedBudget.RawBudgetName,\r\n budgetId: combinedBudget.BudgetId,\r\n campaignId: combinedBudget.CampaignId,\r\n combinedBudget,\r\n };\r\n const options = {\r\n model,\r\n };\r\n const view = new InlineSharedBudgetEditor(options).render();\r\n\r\n if (InlineSharedBudgetEditor.sCurrentEditor) {\r\n InlineSharedBudgetEditor.sCurrentEditor.remove();\r\n }\r\n\r\n InlineSharedBudgetEditor.setCurrentEditor(view);\r\n\r\n const $el = view.$el;\r\n\r\n $el.noButtons = true;\r\n\r\n return $el;\r\n }\r\n\r\n /**\r\n * Returns the budget amount from the given control.\r\n *\r\n * @param {Element} control the container element (div) for the editor.\r\n * @param {String} rowId the (campaign) ID of the row.\r\n * @param {Integer} columnIndex the index of the column in the grid.\r\n * @param {String} originalVal the original value of the column.\r\n * @return {String} combinedBudget - the updated budget as a combined budget JSON. See editBudget\r\n * for details about the combined budget schema.\r\n */\r\n static getBudget(control, rowId, columnIndex, originalVal) {\r\n let originalValJson;\r\n\r\n try {\r\n originalValJson = JSON.parse(originalVal);\r\n } catch (e) {\r\n originalValJson = null;\r\n }\r\n\r\n // If the campaign uses a shared budget\r\n if (originalValJson && originalValJson.BudgetId > 0) {\r\n // Just return the original value, since the shared budget is not modified by the legacy editor.\r\n return originalVal;\r\n } else {\r\n // If it is a individual budget, then we revert to legacy code.\r\n return inlineBudgetEditor.getBudget(control, rowId, columnIndex, originalVal);\r\n }\r\n }\r\n\r\n static setCurrentEditor(view) {\r\n if (InlineSharedBudgetEditor.sCurrentEditor) {\r\n InlineSharedBudgetEditor.sCurrentEditor.remove();\r\n }\r\n\r\n InlineSharedBudgetEditor.sCurrentEditor = view;\r\n }\r\n\r\n initialize(options = {}) {\r\n this.options = options;\r\n this.model = options.model;\r\n this.isForVNext = options.isForVNext;\r\n this.renderAsPopup = options.renderAsPopup;\r\n this.importNotificationCallback = options.importNotificationCallback;\r\n this.$elToBlock = options.$elToBlock || this.$el.parent();\r\n\r\n const { activity } = instrumentation.createScenarioAndActivity({\r\n scenarioName: 'InlineSharedBudgetEdit',\r\n activityName: 'EditBudget',\r\n });\r\n\r\n this.activity = activity;\r\n\r\n if (this.model.budgetId) {\r\n this.model.budgetLink = SharedBudgetRouting.getBudgetLink(this.model.budgetId);\r\n }\r\n\r\n if (this.model.campaignId) {\r\n this.model.campaignSettingsLink = SharedBudgetRouting.getCampaignSettingsLink(this.model.campaignId);\r\n }\r\n\r\n this.viewModel = new ViewModel(options);\r\n\r\n const hasBudgetLandscape = _.contains(this.model.DeliveryStatusDetails, BUDGET_SUGGESTION) ||\r\n this.model.DeliveryStatus === BUDGET_SUGGESTION;\r\n\r\n if (hasBudgetLandscape) {\r\n fetchBudgetLandscape(this.model.budgetId)\r\n .finally(withUiBlock(this.$elToBlock))\r\n .then((res) => {\r\n const rawData = _.chain(res).result('value').first().value();\r\n\r\n triggerScrollbarRepositionOnElementHeightChange(this.el);\r\n if (rawData) {\r\n this.tableView = new BudgetLandScapeTable({\r\n opportunityData: rawData,\r\n i18n: i18nRecommendation,\r\n conversionSummaryStatus: rawData.ConversionStatus,\r\n appConfig: config,\r\n currentBudget: this.model.budgetAmount,\r\n fromBudgetColumn: true,\r\n fromCampaignTab: true,\r\n view: this,\r\n el: this.$('.landscape-table'),\r\n isSharedBudget: true,\r\n });\r\n this.tableView.render();\r\n this.opportunityId = rawData.OpportunityId;\r\n\r\n logBudgetLandScapeForSharedBudgetCampaignView(\r\n this.model.budgetId,\r\n 'CampaignTabEditing',\r\n this.opportunityId,\r\n this.tableView.ko_model.rawSuggestedBudget,\r\n i18nRecommendation.currency,\r\n this.activity,\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .shared-budget-edit-budget-save': 'onClickSave',\r\n 'click .shared-budget-edit-budget-cancel': 'onClickCancel',\r\n };\r\n }\r\n\r\n onClickSave() {\r\n if (!this.viewModel.isValidBudget()) {\r\n return;\r\n }\r\n\r\n const budget = this.viewModel.getBudget();\r\n\r\n // update budget by selecting value from landscape data\r\n if (this.tableView) {\r\n budget.Amount = this.tableView.getSelectedNewBudget();\r\n }\r\n\r\n SharedBudgetModel.updateBudget(budget)\r\n .finally(withUiBlock(this.$elToBlock))\r\n .then(() => {\r\n if (this.importNotificationCallback) {\r\n this.importNotificationCallback(budget);\r\n }\r\n if (this.tableView) {\r\n logBudgetLandScapeForSharedBudgetCampaignAdoption(\r\n this.model.budgetId,\r\n 'CampaignTabEditing',\r\n this.opportunityId,\r\n this.tableView.ko_model.rawSuggestedBudget,\r\n budget.Amount,\r\n i18nRecommendation.currency,\r\n this.activity,\r\n );\r\n }\r\n if (this.renderAsPopup) {\r\n this.trigger('close', budget);\r\n } else {\r\n // Invalidating legacy grid cache is already handled by model now.\r\n const grid = LegacyGrid.getCurrentGrid();\r\n\r\n if (grid) {\r\n LegacyGrid.removePopupEditor(grid);\r\n LegacyGrid.reload(grid);\r\n }\r\n\r\n // Now remove our own view\r\n InlineSharedBudgetEditor.setCurrentEditor(null);\r\n }\r\n })\r\n .catch((response) => {\r\n this.viewModel.handleErrors(response);\r\n });\r\n }\r\n\r\n onClickCancel() {\r\n if (this.renderAsPopup) {\r\n this.trigger('close');\r\n } else {\r\n const grid = LegacyGrid.getCurrentGrid();\r\n\r\n LegacyGrid.removePopupEditor(grid);\r\n InlineSharedBudgetEditor.setCurrentEditor(null);\r\n }\r\n }\r\n\r\n render() {\r\n this.$el.html(campaignsGridInlineSharedBudgetEditorTemplate({\r\n model: this.model,\r\n i18n,\r\n i18nGlobal,\r\n isForVNext: this.isForVNext,\r\n customParams: `budgetId=${this.model.budgetId}`,\r\n }));\r\n\r\n ko.applyBindings(this.viewModel, this.el);\r\n return this;\r\n }\r\n\r\n}\r\n\r\n// Static fields\r\nInlineSharedBudgetEditor.sCurrentEditor = null;\r\n\r\n","// eslint-disable-next-line\r\nimport _bingads_webui_component_legacy_legacy_router_index from '@bingads-webui-component-legacy/legacy-router/index';\r\n// eslint-disable-next-line\r\nconst { legacyRouter } = _bingads_webui_component_legacy_legacy_router_index;\r\n\r\n/**\r\n * Abstracts the generation of URLs for navigation to other pages related to shared budgets.\r\n */\r\nexport default class SharedBudgetRouting {\r\n static getBudgetLink(budgetId) {\r\n return legacyRouter.getRouteUrl('shared_budget_edit', {'budget_id': budgetId});\r\n }\r\n\r\n static getCreateBudgetLink() {\r\n return legacyRouter.getRouteUrl('shared_budgets', {});\r\n }\r\n\r\n static getCampaignSettingsLink(campaignId) {\r\n return legacyRouter.getRouteUrl('campaign_edit', {'campaign_id': campaignId});\r\n }\r\n\r\n static navigateToBudgetsGrid() {\r\n return legacyRouter.navigateToRoute('shared_budgets', {});\r\n }\r\n}\r\n","/* eslint-disable new-cap */\r\nimport ko from 'knockout';\r\nimport { Budget } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport koSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport SharedBudgetRouting from '@bingads-webui-campaign-legacy/shared-budget/view/shared-budget-routing';\r\n\r\nconst KEY_INDIVIDUAL_BUDGET = 'individual';\r\nconst KEY_SHARED_BUDGET = 'shared';\r\nconst i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!global');\r\n\r\nexport default class ViewModel {\r\n constructor(options = {}) {\r\n this.options = options;\r\n this.sharedBudgetSwitch = ko.observable(KEY_INDIVIDUAL_BUDGET);\r\n // Set default to true so we don't see warning message until the data has properly loaded.\r\n this.hasSharedBudgets = ko.observable(true);\r\n this.hasSelectedBudget = ko.observable(true);\r\n this.noApplyBudgetFromSharedLibrary = options.noApplyBudgetFromSharedLibrary;\r\n this.allowSharedBudgetLibrarySelection = options.allowSharedBudgetLibrarySelection == null ? true : options.allowSharedBudgetLibrarySelection;\r\n this.readOnly = options.readOnly;\r\n\r\n // Whether to show budget selection grid, default is true\r\n this.isEditMode = ko.observable(true);\r\n this.isCPSSelected = ko.observable(false);\r\n this.sharedBudgetIsNotAllowedWarning = ko.observable('Shared budget is not allowed...');\r\n\r\n koSchema.properties(this, Budget, ['Id', 'Name', 'Amount'], {});\r\n\r\n this.budgetDetailLink = ko.computed(() => {\r\n return SharedBudgetRouting.getBudgetLink(this.Id());\r\n });\r\n\r\n this.noSharedBudgetText = ko.computed(() => {\r\n return options.showNoSharedBudgetLink ?\r\n i18n.getString(\r\n 'SharedBudget_SwitchEditor_Warning_NoSharedBudgets_WithLink',\r\n `/campaign/vnext/sharedbudgets?cid=${pageContext.CurrentCustomer.Id}&aid=${pageContext.CurrentAccount.Id}&uid=${pageContext.CurrentUser.Id}`,\r\n ) :\r\n i18n.getString('SharedBudget_SwitchEditor_Warning_NoSharedBudgets');\r\n });\r\n\r\n this.sharedBudgetSwitch.subscribe((value) => {\r\n if (this.options.activityLogger) {\r\n this.options.activityLogger.signal(`budget option switched: ${value}`, 'shared budget switch editor');\r\n }\r\n });\r\n }\r\n\r\n updateFromModel(budget) {\r\n this.Id(budget.Id);\r\n this.Name(budget.Name);\r\n this.Amount(budget.Amount);\r\n }\r\n\r\n isIndividualBudgetSelected() {\r\n return this.sharedBudgetSwitch() === KEY_INDIVIDUAL_BUDGET;\r\n }\r\n\r\n isSharedBudgetSelected() {\r\n return this.sharedBudgetSwitch() === KEY_SHARED_BUDGET;\r\n }\r\n\r\n showIndividualBudget() {\r\n this.sharedBudgetSwitch(KEY_INDIVIDUAL_BUDGET);\r\n }\r\n\r\n showSharedBudget() {\r\n this.sharedBudgetSwitch(KEY_SHARED_BUDGET);\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport jsdataCampaign from '@bingads-webui-component-legacy/js-data-campaign/index';\r\n\r\nimport tableCellTemplate from '@bingads-webui-campaign-legacy/bingadsgrid/template/table-cell.pug';\r\nimport statusHeaderTmpl from '@bingads-webui-campaign-legacy/shared-budget/template/budget-status-header.pug';\r\nimport budgetStatusTmpl from '@bingads-webui-campaign-legacy/shared-budget/template/column-status-budget.pug';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/shared-budget');\r\n\r\nconst columnsConfig = [\r\n {\r\n name: 'Status',\r\n sortable: 'Status',\r\n filterable: false,\r\n locked: true,\r\n title: i18n.get('ColumnName_Status'),\r\n html: statusHeaderTmpl(),\r\n template(local) {\r\n return budgetStatusTmpl({\r\n model: {\r\n Status: local.value,\r\n i18n,\r\n },\r\n });\r\n },\r\n },\r\n {\r\n name: 'Name',\r\n title: i18n.get('SharedBudget_SummaryPage_Column_Budget'),\r\n sortable: 'Name',\r\n bodyClasses: 'cell-budget-name',\r\n },\r\n {\r\n name: 'Budget',\r\n sortable: 'Amount',\r\n property: (item) => decimal.fromFloatToString(item.Amount),\r\n title: i18n.get('SharedBudget_SummaryPage_Column_Amount'),\r\n template(local) {\r\n return `${tableCellTemplate({\r\n value: decimal.fromFloatToString(local.value, 2),\r\n align: 'right',\r\n })}${i18n.get('SharedBudget_DetailPage_PerDay')}`;\r\n },\r\n bodyClasses: 'cell-budget-amount',\r\n },\r\n {\r\n name: 'CampaignCount',\r\n sortable: 'AssociationCount',\r\n property: 'AssociationCount',\r\n title: i18n.get('SharedBudget_SummaryPage_Column_CampaignCount'),\r\n },\r\n];\r\n\r\nexport default class {\r\n constructor({view}) {\r\n _.extend(this, {\r\n name: 'shared-budget-switch-editor-grid',\r\n el: view.$('.shared-budget-switch-editor-grid'),\r\n dataSource: {\r\n type: 'jsdata',\r\n entity: jsdataCampaign.Budget,\r\n primaryKey: 'Id',\r\n query: {\r\n startDate: null,\r\n endDate: null,\r\n $select: 'Id,Status,Name,Amount,AssociationCount',\r\n },\r\n options: {\r\n cacheResponse: false,\r\n },\r\n orderby: [{\r\n key: 'Name',\r\n direction: 1, // ascending\r\n }],\r\n },\r\n\r\n tableClasses: ['table', 'table-hover', 'grid'],\r\n\r\n scrolling: {\r\n virtualized: true,\r\n },\r\n\r\n selection: {\r\n single: true,\r\n bodyClasses: 'cell-selection',\r\n },\r\n columns: columnsConfig,\r\n plugins: {\r\n pagination: {\r\n el: view.$('.grid-pager.pager'),\r\n pageSize: 20,\r\n availablePageSizes: [10, 20, 50, 100],\r\n },\r\n },\r\n });\r\n }\r\n}\r\n","import Promise from 'bluebird';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport _ from '@bingads-webui-component-legacy/extension/underscore';\r\n\r\nimport pgrid from '@bingads-webui-component-legacy/github/modules/projection-grid/module/projection-grid';\r\nimport { assistedSelectionPlugin } from '@bingads-webui-component-legacy/bingads-grid/plugin/assisted-selection';\r\nimport UIBlocker from '@bingads-webui-component-legacy/uiblocker/service/uiBlocker';\r\n\r\nimport ViewModel from '@bingads-webui-campaign-legacy/shared-budget/viewmodel/shared-budget-switch-editor';\r\nimport GridConfig from '@bingads-webui-campaign-legacy/shared-budget/view/shared-budget-switch-editor-grid-config';\r\nimport paginationPlugin from '@bingads-webui-component-legacy/bingads-grid/plugin/pagination';\r\nimport { a11yPlugin } from '@bingads-webui/projection-grid-a11y';\r\nimport tmpl from '@bingads-webui-campaign-legacy/shared-budget/template/shared-budget-switch-editor.pug';\r\nimport instrumentation from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport eventDispatcher from '@bingads-webui-component-legacy/event-dispatcher/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/shared-budget');\r\n\r\nexport default class SharedBudgetView extends Backbone.View {\r\n /**\r\n * Returns a function that creates a budget view given an options parameter. The budget view will\r\n * either be a shared budget switcher, or the IndividualBudgetFactory depending on the user's\r\n * pilot permissions.\r\n *\r\n * @param {Backbone.View} IndividualBudgetFactory - view class for the private budget editor.\r\n * @return {Function} newInstance - a function used to make a new instance of the budget editor.\r\n */\r\n static newFactory(IndividualBudgetFactory) {\r\n function newInstance(options) {\r\n let BudgetFactory = SharedBudgetView;\r\n\r\n options.IndividualBudgetFactory = IndividualBudgetFactory;\r\n\r\n return new BudgetFactory(options);\r\n }\r\n\r\n return newInstance;\r\n }\r\n\r\n get className() {\r\n return 'shared-budget-switch-editor';\r\n }\r\n\r\n initialize(options = {}) {\r\n if (options.perfMarker) {\r\n this.showSharedBudgetMarker = options.perfMarker.createChild('Show_Shared_Budget');\r\n this.showSharedBudgetMarker.willInit();\r\n }\r\n this.options = _.defaults({}, options, {\r\n showInitialUiBlocker: true,\r\n });\r\n this.model = {};\r\n\r\n this.viewModel = new ViewModel(options);\r\n\r\n\r\n // We need to not pass the shared budget model info into the individual editor\r\n if (options.model && options.model.Id > 0) {\r\n this.individualOptions = _.defaults({ model: {} }, options);\r\n } else {\r\n this.individualOptions = options;\r\n }\r\n }\r\n\r\n events() {\r\n return {\r\n 'click .shared-budget-switch-editor-selected-budget-edit': 'enableEditMode',\r\n };\r\n }\r\n\r\n enableEditMode() {\r\n this.viewModel.isEditMode(true);\r\n }\r\n\r\n render() {\r\n if (this.showSharedBudgetMarker) {\r\n this.showSharedBudgetMarker.willRender();\r\n }\r\n this.$el.html(tmpl({\r\n i18n,\r\n }));\r\n\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n // Render the individual budget editor.\r\n const rootElement = this.$('.individual-budget-editor');\r\n\r\n const config = new GridConfig({ view: this });\r\n\r\n this.budgetView = new this.options.IndividualBudgetFactory(\r\n _.extend({}, this.individualOptions, { el: rootElement })).render();\r\n\r\n // Normally we would only listen to willUpdate but those events fire before we even have a handle\r\n // to gridView, so we must just put the blocker here. See below about the race condition.\r\n const blockerElement = this.$el;\r\n let isLoading = true;\r\n let blockerToken;\r\n\r\n if (this.options.showInitialUiBlocker) {\r\n blockerToken = UIBlocker.block(blockerElement);\r\n }\r\n\r\n this.grid = pgrid\r\n .factory({ vnext: true })\r\n .use(paginationPlugin)\r\n .use(assistedSelectionPlugin)\r\n .use(a11yPlugin)\r\n .create(config);\r\n\r\n this.initialLoadTask = new Promise((resolve) => {\r\n this.grid.gridView.once('didReload', () => {\r\n resolve();\r\n if (this.showSharedBudgetMarker) {\r\n this.showSharedBudgetMarker.done();\r\n eventDispatcher.trigger('shared_budget_grid_loaded');\r\n }\r\n });\r\n });\r\n\r\n this.listenTo(this.grid.gridView, 'willUpdate', (event) => {\r\n if (!isLoading) {\r\n // Try to filter out selection-only changes\r\n if (_.isObject(event)) {\r\n const keys = _.keys(event);\r\n\r\n if (keys.length === 1 && keys[0] === 'selection') {\r\n // We don't care about showing the blocker if it's a selection-only change.\r\n return;\r\n }\r\n }\r\n\r\n isLoading = true;\r\n if (this.options.showInitialUiBlocker || this.initialLoadTask.isFulfilled()) {\r\n blockerToken = UIBlocker.block(blockerElement);\r\n }\r\n\r\n // Reset this so the user doesn't see warning about not having budgets while the grid loads.\r\n this.viewModel.hasSharedBudgets(true);\r\n }\r\n });\r\n\r\n // TODO: it looks like the update events are already starting on the previous create call.\r\n // This is potentially a race condition.\r\n this.listenTo(this.grid.gridView, 'didUpdate', () => {\r\n isLoading = false;\r\n if (blockerToken) {\r\n UIBlocker.unblock(blockerElement, blockerToken);\r\n blockerToken = null;\r\n }\r\n\r\n const hasBudgets = this.grid.gridView.countRows > 0;\r\n\r\n this.viewModel.hasSharedBudgets(hasBudgets);\r\n this.triggerChangeEvent();\r\n });\r\n\r\n this.listenTo(this.budgetView, 'budget.updated', (value) => this.trigger('budget.updated', value));\r\n this.listenTo(this.budgetView, 'change', () => this.triggerChangeEvent());\r\n\r\n // When the radio button changed, dispatch change event.\r\n this.viewModel.sharedBudgetSwitch.subscribe(() => {\r\n this.triggerChangeEvent();\r\n });\r\n\r\n // Render the grid.\r\n this.grid.gridView.render();\r\n\r\n this.update(this.options.model);\r\n\r\n return this;\r\n }\r\n\r\n triggerChangeEvent() {\r\n if (this.options.withRealTimeUpdates) {\r\n this.trigger('change', this.getValues(), this.validate());\r\n }\r\n }\r\n\r\n /**\r\n * Validate the state of the switcher for either private or shared budget.\r\n *\r\n * @return {boolean} isValid - denotes whether the state of the form is valid to submit.\r\n */\r\n validate() {\r\n let isValid = false;\r\n let skipLogging = false;\r\n\r\n if (this.viewModel.isIndividualBudgetSelected()) {\r\n isValid = this.budgetView.validate();\r\n if (!isValid) {\r\n // already has logging in budget view;\r\n skipLogging = true;\r\n }\r\n } else if (this.viewModel.isSharedBudgetSelected()) {\r\n isValid = !!this.getSharedBudgetSelection();\r\n\r\n this.viewModel.hasSelectedBudget(isValid);\r\n\r\n isValid = isValid && !this.viewModel.isCPSSelected();\r\n }\r\n\r\n isValid = !!isValid;\r\n\r\n if (!isValid && skipLogging) {\r\n if (this.options.activityLogger) {\r\n this.options.activityLogger.signal('budget is not valid', 'shared budget switch editor');\r\n } else {\r\n instrumentation.logMessage(\r\n [constants.LOGCATEGORY.SUBSTRATE],\r\n constants.LOGLEVEL.INFO,\r\n 'shared budget switch editor',\r\n 'budget is not valid',\r\n );\r\n }\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n /**\r\n * Returns the budget model as edited by the user. This may be a shared or individual budget.\r\n *\r\n * @param {Object} campaign - the campaign that owns this budget.\r\n * @return {Object} values - contains the private budget properties if user selected private\r\n * budget, otherwise, contains only the shared budget Id property.\r\n */\r\n getValues(campaign = {}) {\r\n let values = null;\r\n\r\n if (this.viewModel.isIndividualBudgetSelected()) {\r\n values = this.budgetView.getValues();\r\n // MT now supports passing null for create as well as update.\r\n values.Id = null;\r\n } else if (this.viewModel.isSharedBudgetSelected()) {\r\n values = this.getSharedBudgetSelection();\r\n }\r\n\r\n // Flatten the Budget Id into the parent campaign.\r\n if (values && 'Id' in values) {\r\n campaign.BudgetId = values.Id;\r\n }\r\n\r\n return values;\r\n }\r\n\r\n /**\r\n * Updates the view from a budget model.\r\n * Note: due to the current implementation, this has to be called during or after render.\r\n *\r\n * @param {Object} model - contains properties of the budget, see schema for details.\r\n * @return {Void} void\r\n */\r\n update(model) {\r\n this.model = model;\r\n\r\n // If it is a shared budget, it must have a positive Id\r\n if (model && model.Id > 0) {\r\n this.viewModel.updateFromModel(model);\r\n // Since we are updating a previous budget selection, turn off edit mode.\r\n this.viewModel.isEditMode(false);\r\n this.viewModel.showSharedBudget();\r\n this.grid.gridView.selectRow(model.Id);\r\n } else {\r\n // Else it is a private budget\r\n this.budgetView.update(model);\r\n this.viewModel.showIndividualBudget();\r\n }\r\n }\r\n\r\n getSharedBudgetSelection() {\r\n let model = null;\r\n\r\n const selection = this.grid.gridView.selectedItems();\r\n\r\n if (selection && selection[0]) {\r\n model = selection[0];\r\n } else {\r\n // Grid hasn't loaded, so selectedItems won't work. Return initial model.\r\n model = this.model;\r\n }\r\n\r\n if (model && model.Id > 0) {\r\n // Return the entire model so the properties like name and amount can be saved in the create form's draft\r\n // which would later be shown in step 4.\r\n return model;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n useSuggestedBudget() {\r\n return _.isFunction(this.budgetView.useSuggestedBudget) ? this.budgetView.useSuggestedBudget() : undefined;\r\n }\r\n\r\n updateSuggestedBudget(adGroups, fromBudgetUpdate) {\r\n return _.isFunction(this.budgetView.updateSuggestedBudget) ?\r\n this.budgetView.updateSuggestedBudget(adGroups, fromBudgetUpdate) : undefined;\r\n }\r\n\r\n enough() {\r\n return _.isFunction(this.budgetView.enough) ? this.budgetView.enough() : true;\r\n }\r\n\r\n getSuggestedBudget() {\r\n return _.isFunction(this.budgetView.getSuggestedBudget) ? this.budgetView.getSuggestedBudget() : undefined;\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport BaseViewModel from '../common/base';\r\n\r\nimport bidRangeExtension from '@bingads-webui-campaign-legacy/adgroup-create-advanced/viewmodel/bidRangeExtension';\r\nimport { isBidLessThanFiveCentsForShoppingCampaign } from '@bingads-webui-campaign-legacy/adgroup-create-advanced/util/bidLessThanFiveCents';\r\nimport { MTCampaignTypeEnum } from '@bingads-webui-campaign-legacy/adgroup-create-advanced/util/campaignType';\r\nimport { defaultBid } from '@bingads-webui-campaign-legacy/budget/shared/defaultBid';\r\n\r\nconst i18n = window.globalLegacyI18n && window.globalLegacyI18n.get('module/extension/requirejs/i18n!global');\r\n\r\nconst s$AdGroup = window.globalLegacySchema.get('AdGroup');\r\n\r\nexport default class ViewModel extends BaseViewModel {\r\n constructor({\r\n isAudienceCampaign = false,\r\n defaultBidValue = null,\r\n isMSStoreCampaign = false,\r\n budgetAmount = null,\r\n validateWithBudget = false,\r\n }) {\r\n super();\r\n\r\n this.configSchema(\r\n s$AdGroup,\r\n ['SearchBid'],\r\n { SearchBid: defaultBidValue == null ? defaultBid() : defaultBidValue },\r\n validateWithBudget ?\r\n {\r\n SearchBid: {\r\n isValid: (value) => parseFloat(value) <= parseFloat(budgetAmount),\r\n message: i18n.getString('BidStrategySetting_Message_Bid_GreaterThanBudget'),\r\n },\r\n } : {},\r\n );\r\n\r\n const campaignTypeNum = isAudienceCampaign ? MTCampaignTypeEnum.Audience : MTCampaignTypeEnum.Shopping;\r\n\r\n this.showLowerThanMinSuggestionBidWarning = ko.observable(false);\r\n\r\n if (isBidLessThanFiveCentsForShoppingCampaign(campaignTypeNum)) {\r\n bidRangeExtension.extend(this, ['SearchBid'], true, isMSStoreCampaign);\r\n } else {\r\n bidRangeExtension.extend(this, ['SearchBid'], false, isMSStoreCampaign);\r\n }\r\n }\r\n}\r\n","/*eslint new-cap:0 */\r\nimport Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport { defaultMSStoreMinSuggestionBid } from '@bingads-webui-campaign-legacy/budget/shared/defaultBid';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/shopping-campaign/viewmodel/campaign-creation/bid-setting';\r\nimport template from '@bingads-webui-campaign-legacy/shopping-campaign/template/campaign-creation/bid-setting.pug';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/shopping-campaign');\r\n\r\n//[TODO][lizho] integrate with the one in budget control\r\n\r\nexport default class View extends Backbone.View {\r\n initialize({\r\n activityLogger,\r\n isAudienceCampaign = false,\r\n isMSStoreCampaign = false,\r\n defaultBidValue = null,\r\n validateWithBudget = false,\r\n withRealTimeValidation = false,\r\n budgetAmount = null,\r\n onChange = _.noop,\r\n }) {\r\n this.viewModel = new ViewModel({ isAudienceCampaign, defaultBidValue, isMSStoreCampaign, validateWithBudget, budgetAmount });\r\n this.activityLogger = activityLogger;\r\n this.isMSStoreCampaign = isMSStoreCampaign;\r\n this.defaultMSStoreMinSuggestionBid = defaultMSStoreMinSuggestionBid();\r\n this.onHandleChange = onChange;\r\n this.withRealTimeValidation = withRealTimeValidation;\r\n }\r\n\r\n render() {\r\n this.$el.html(template({\r\n i18n,\r\n accountCurrencyCode: pageContext.AccountCurrencyCode,\r\n defaultMSStoreMinSuggestionBid: this.defaultMSStoreMinSuggestionBid,\r\n }));\r\n\r\n this.viewModel.el = this.el;\r\n this.viewModel.showLowerThanMinSuggestionBidWarning(this.getShowLowerThanMinSuggestionBidWarning(this.viewModel.SearchBid()));\r\n this.viewModel.SearchBid.subscribe((newBid) => {\r\n this.viewModel.showLowerThanMinSuggestionBidWarning(this.getShowLowerThanMinSuggestionBidWarning(newBid));\r\n\r\n if (_.isFunction(this.onHandleChange)) {\r\n this.onHandleChange(newBid, this.viewModel.validate());\r\n }\r\n\r\n if (this.activityLogger) {\r\n this.activityLogger.signal('default bid change', 'bid setting');\r\n }\r\n });\r\n\r\n this.realTimeValidate();\r\n\r\n return this;\r\n }\r\n\r\n realTimeValidate() {\r\n if (this.withRealTimeValidation) {\r\n const isValid = this.validate();\r\n const bid = this.viewModel.SearchBid();\r\n\r\n if (_.isFunction(this.onHandleChange)) {\r\n this.onHandleChange(bid, isValid);\r\n }\r\n }\r\n }\r\n\r\n getValues() {\r\n return this.viewModel.SearchBid();\r\n }\r\n\r\n getShowLowerThanMinSuggestionBidWarning(bid) {\r\n return this.isMSStoreCampaign && bid < this.defaultMSStoreMinSuggestionBid;\r\n }\r\n\r\n validate() {\r\n const isValid = this.viewModel.validate();\r\n\r\n if (!isValid && this.activityLogger) {\r\n this.activityLogger.signal('default bid invalid', 'bid setting');\r\n }\r\n return isValid;\r\n }\r\n}\r\n\r\n","import BaseViewModel from '../common/base';\r\n\r\nimport { observable } from 'knockout';\r\n\r\nclass ViewModel extends BaseViewModel {\r\n constructor() {\r\n super();\r\n\r\n this.configSchema();\r\n this.hasStore = observable(false);\r\n this.dataLoaded = observable(false);\r\n this.isStoreValid = observable(false);\r\n this.showGoalRemoveAlert = observable(false);\r\n }\r\n}\r\n\r\nexport default ViewModel;\r\n","/*eslint new-cap:0 */\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport BiddingStrategyType from '@bingads-webui-campaign-legacy/bidding-strategy/bidding-strategy-type';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/shopping-campaign/viewmodel/campaign-creation/index';\r\nimport ShoppingSettingsView from '@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/shopping-settings';\r\nimport CampaignSettingsView from '@bingads-webui-campaign-legacy/crud-campaign/view/create';\r\nimport template from '@bingads-webui-campaign-legacy/shopping-campaign/template/campaign-creation/index.pug';\r\nimport * as i18nErrors from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport withUiBlock from '@bingads-webui-component-legacy/uiblocker/index';\r\nimport ModalManager from '@bingads-webui-component-legacy/dialog/modalManager';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport { queryify } from '@bingads-webui/url-util';\r\nimport summaryDataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\nimport AdvancedSettingsView from '@bingads-webui-campaign-legacy/advanced-settings/view/advancedSettings';\r\nimport timeZoneMapper from '@bingads-webui-component-legacy/timezonemapper/index';\r\nimport { isMSStoreAdsCampaign, isMSStoreProviderId } from '@bingads-webui-campaign-react/ms-store-ads-common';\r\nimport {\r\n AudienceAdvancedTargetSettings,\r\n AudienceTargetInfo,\r\n} from '@bingads-webui-campaign-legacy/audience-campaign/loader';\r\nimport { logCampaignPersonalizedOffers, shouldSupportCashbackSettings } from '@bingads-webui-campaign/personalized-offer-shared';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport { showIMAReachModal, getLocationsInfo } from '@bingads-webui-campaign-react/ima-reach-representation';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport { withDFMCache } from '@bingads-webui/dfm-cache';\r\nimport { GoalSelectorView } from '@bingads-webui-campaign-react/goal-selector/src/view';\r\nimport { isSponsoredCampaignCashbackOptInAvailable, shouldUseNewMmcApi, overrideLegacyStoreWithNewMmcApiStoreData } from '@bingads-webui-campaign/sponsored-campaign-shared';\r\nimport { getCampaignStoreQueriesWithLocalMock, shouldEmulateNoStores } from '@bingads-webui-campaign-react/merchant-shared';\r\nimport { FACCalloutView } from '@bingads-webui-react/fac-callout';\r\nimport { Constants as CCUIConstants } from '@bingads-webui-clientcenter/entity-utils';\r\nimport { isMapLoaded } from '@bingads-webui-campaign-legacy/dashboard-page/service/load-map';\r\nimport { getProductScopeData, mergeData } from '@bingads-webui-campaign-react/product-services';\r\nimport { serverContextStore } from '@bingads-webui-campaign/global-context-store';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/shopping-campaign');\r\n\r\nconst modalManager = new ModalManager(i18n.get('Browser_Reload_AlertMessage'));\r\nconst defaultAdGroupName = 'Ad group #1';\r\nconst CoOpCampaignSubType = 10;\r\nconst isCPGForBSCEnabled = pageContext && pageContext.Permissions && pageContext.Permissions.IsCPGForBSCEnabled;\r\nconst isSponsoredPilotEnabled = pageContext && pageContext.Permissions && pageContext.Permissions.IsSPAv2Enabled;\r\nconst isWindowsStoreAdsManualCPAEnabled = pageContext && pageContext.Permissions && pageContext.Permissions.dynamic && pageContext.Permissions.dynamic.WindowsStoreAdsManualCPA;\r\n\r\nconst isEnabledDynamicFeedCampaign = pageContext && pageContext.Permissions && pageContext.Permissions.IsEnabledForDynamicFeedCampaign;\r\nconst isFacForShoppingEnabled = pageContext && pageContext.Permissions && pageContext.Permissions.dynamic && pageContext.Permissions.dynamic.FACForShopping;\r\n// const isPersonalizedOffersEnabled = pageContext && pageContext.Permissions.IsPersonalizedOffersEnabled;\r\nconst isBSCSmartImportEnabled = pageContext && pageContext.Permissions && pageContext.Permissions.IsBSCSmartImportEnabled;\r\nconst IsEnhancedPAFilterP2Enabled = pageContext && pageContext.Permissions && pageContext.Permissions.IsEnhancedPAFilterP2Enabled;\r\nconst IsPersonalizedOffersV4Enabled = Boolean(_.result(pageContext.Permissions, 'IsPersonalizedOffersV4Enabled', false)) &&\r\n Boolean(_.result(pageContext.Permissions, 'IsPersonalizedOffersEnabled'));\r\nconst isFACForShoppingEnabled = _.get(pageContext, ['Permissions', 'dynamic', 'FACForShopping'], false);\r\nconst isShowDisclaimerBannerEnabled = _.get(pageContext, ['Permissions', 'dynamic', 'AgeGenderDisclaimer'], false);\r\nconst isOdataGetProductScopeEnabled = _.get(pageContext, ['Permissions', 'dynamic', 'OdataGetProductScope'], false);\r\nconst isFeedLabelEnabled = _.get(pageContext, ['Permissions', 'dynamic', 'FeedLabel'], false);\r\nconst isFeedLabelBlockListEnabled = _.get(pageContext, ['Permissions', 'dynamic', 'FeedLabelBlockList'], false);\r\n\r\nexport default class View extends Backbone.View {\r\n initialize({\r\n campaign = {},\r\n deps = {},\r\n feed = null,\r\n perfMarker,\r\n isMSStoreAdsGAWorkflow,\r\n ccJsData,\r\n getFACCoupon,\r\n updateCouponStatus,\r\n } = {}) {\r\n this.campaignStoreQueries = getCampaignStoreQueriesWithLocalMock();\r\n\r\n this.getMmcStoreData = withDFMCache(this.getMmcStoreDataWithoutDFM, 'getMmcStoreDataDFM', this);\r\n\r\n this.processProductData = this.processProductData.bind(this);\r\n\r\n this.perfMarker = perfMarker;\r\n this.mark('willInit');\r\n this.campaign = campaign;\r\n this.setting = _.first(campaign.CampaignSettings) || {};\r\n this.editMode = _.isFinite(campaign.Id);\r\n this.scenario = this.editMode ? 'campaign-settings' : 'shopping-creation-workflow';\r\n this.defaultAdGroupCreated = this.editMode;\r\n this.campaignType = _.result(campaign, 'CampaignType', 'Shopping');\r\n this.campaignSubType = _.result(campaign, 'CampaignSubType') ||\r\n ((isSponsoredPilotEnabled && config.get('CampaignObjective') === 'SponsoredShoppingCampaign') || isMSStoreAdsGAWorkflow ? 'ShoppingSponsoredProductAd' : undefined);\r\n this.isSponsoredCampaign = this.campaignSubType === 'ShoppingSponsoredProductAd';\r\n this.isWindowsStoreAd = isMSStoreAdsGAWorkflow;\r\n this.isWindowsStoreAdWithManualCPA = (this.isWindowsStoreAd && isWindowsStoreAdsManualCPAEnabled) || isMSStoreAdsGAWorkflow;\r\n this.isDomesticSimplifiedChineseEnabled = Boolean(_.result(config.get('Permissions'), 'IsDomesticSimplifiedChineseEnabled', false));\r\n this.isMSStoreAdsGAWorkflow = isMSStoreAdsGAWorkflow;\r\n this.isFacForShoppingEnabled = isFacForShoppingEnabled;\r\n this.ccJsData = ccJsData;\r\n this.getFACCoupon = getFACCoupon;\r\n this.updateCouponStatus = updateCouponStatus;\r\n this.renderStartTime = 0;\r\n this.isMapLoaded = isMapLoaded();\r\n\r\n if (this.campaignSubType === 'AudienceFeedBased') {\r\n this.getProductData = withDFMCache(this.getProductDataWithoutDFM, 'getAudienceProductScopeDFM', this);\r\n } else {\r\n this.getProductData = withDFMCache(this.getProductDataWithoutDFM, 'getProductScopeDFM', this);\r\n }\r\n\r\n this.isSponsoredCampaignCashbackOptInAvailable = isSponsoredCampaignCashbackOptInAvailable(\r\n pageContext.Permissions,\r\n this.campaignType,\r\n this.campaignSubType,\r\n this.isMSStoreAdsGAWorkflow,\r\n );\r\n\r\n this.shouldUseNewMmcApiForSpa = shouldUseNewMmcApi(\r\n pageContext.Permissions,\r\n this.campaignType,\r\n this.campaignSubType,\r\n );\r\n\r\n this.isNewUI = _.result(deps, 'isNewUI', false);\r\n this.feedData = feed;\r\n this.isAudienceDynamicFeedBasedCampaign = this.campaignType === 'Audience' && this.campaignSubType === 'AudienceDynamicFeedBased';\r\n // For BSC Import, we will show some information if the shopping campaign has a placeholder store associated to it\r\n this.shouldShowPlaceholderStoreIfExists = isBSCSmartImportEnabled && this.editMode;\r\n\r\n const cashbackSettings = _.result(campaign, 'CampaignCashback');\r\n const hasCashbackSettings = cashbackSettings &&\r\n (cashbackSettings.PersonalizedOffersEnabled === true ||\r\n cashbackSettings.MonthlyBudget > 0);\r\n\r\n this.isSPBCampaign = (cashbackSettings && cashbackSettings.IsPromotionsForBrands) === true;\r\n\r\n const isShoppingCoOperative = this.campaignSubType === 'ShoppingCoOperative';\r\n\r\n this.enableGoalSelector = this.editMode && !this.isSponsoredCampaign && !hasCashbackSettings && !isShoppingCoOperative;\r\n const router = _.result(deps, 'router', {});\r\n\r\n this.navigateToRoute = router.navigateToRoute || _.noop;\r\n this.deps = deps;\r\n\r\n this.viewModel = new ViewModel();\r\n this.viewModel.isNextButtonEnabled = ko.computed(\r\n () => this.viewModel.isStoreValid() && !pageContext.Permissions.IsReadOnlyUser && !pageContext.CurrentAccountInActive,\r\n );\r\n\r\n if (this.editMode) {\r\n const scenario = instrumentation.shoppingCampaignEdit.create();\r\n\r\n this.activity = scenario.shoppingCampaignEdit.create();\r\n } else {\r\n const scenario = instrumentation.shoppingCampaignCreation.create();\r\n\r\n this.activity = scenario.shoppingCampaignCreation.create();\r\n this.durationActivity = scenario.duration.create();\r\n }\r\n this.activity.start();\r\n }\r\n\r\n get className() {\r\n return 'shopping-campaign-settings';\r\n }\r\n logShoppingCampaignCreationEvent(log) {\r\n if (!this.editMode && !this.isMSStoreAdsGAWorkflow) {\r\n const logContent = {\r\n flow: 'search-shopping/old',\r\n guid: this.activity.id,\r\n step: 'step1',\r\n ...log,\r\n };\r\n\r\n if (log.status === 'Save succeeded') {\r\n logContent.duration = new Date().getTime() - this.renderStartTime;\r\n }\r\n this.activity.trace(JSON.stringify(logContent));\r\n }\r\n }\r\n\r\n initModalManager() {\r\n modalManager.on();\r\n\r\n window.App && window.App.router_new.on('route', () => { // eslint-disable-line\r\n if (modalManager.active) {\r\n modalManager.off();\r\n }\r\n });\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .btn-save': 'checkIMAReachAndSave',\r\n 'click .btn-cancel': 'cancel',\r\n 'click .bmc_url_link': 'redirect2BMC',\r\n 'click .brands_url_link': 'redirect2Brands',\r\n };\r\n }\r\n\r\n redirect2BMC() {\r\n if (!this.editMode) {\r\n this.activity.signal('store creation link click', this.scenario);\r\n this.durationActivity.stopSignal('creationEnd');\r\n }\r\n this.navigateToRoute('bing_merchant_center');\r\n }\r\n\r\n redirect2Brands() {\r\n this.navigateToRoute(this.isMSStoreAdsGAWorkflow ? 'msstoreads' : 'brands');\r\n }\r\n\r\n isNotAudienceCampaign() {\r\n return this.campaignType !== 'Audience';\r\n }\r\n\r\n renderCampaignTargets(campaign) {\r\n if (!this.isNotAudienceCampaign()) {\r\n return Promise.resolve();\r\n }\r\n\r\n const audienceTargetInfo = new AudienceTargetInfo({\r\n resourceName: 'CampaignCriterion',\r\n listenToLocationCriterion: false,\r\n useLocationControl: false,\r\n initAudienceAssociationView: false,\r\n });\r\n\r\n const loadCriterionsTask = this.scenario === 'campaign-settings' ?\r\n audienceTargetInfo.fetchCriterions(campaign.Id) :\r\n Promise.resolve();\r\n\r\n loadCriterionsTask.then(() => {\r\n this.campaignTargetsView = new AudienceAdvancedTargetSettings({\r\n activityLogger: this.activity,\r\n viewContext: {\r\n accountCurrencyCode: pageContext.AccountCurrencyCode,\r\n currentCampaign: campaign,\r\n level: 'campaign',\r\n },\r\n scenario: this.scenario,\r\n campaignType: this.campaignType,\r\n campaignSubType: this.campaignSubType,\r\n currentLevelTargetInfo: audienceTargetInfo,\r\n supportCashbackSettings: shouldSupportCashbackSettings(campaign, pageContext.Permissions),\r\n isMSStoreAdsGAWorkflow: this.isMSStoreAdsGAWorkflow,\r\n });\r\n this.$('.campaign-targets').append(this.campaignTargetsView.render().el);\r\n\r\n return Promise.resolve(_.result(this.campaignSettings, 'locationTargetsPromise'));\r\n }).then(() => {\r\n if (_.has(this.campaignSettings, 'locationTargetsView')) {\r\n this.campaignTargetsView.$('.location-setting-controller').append(this.campaignSettings.locationTargetsView.render().el);\r\n\r\n return this.campaignSettings.locationTargetsView.initialLoadTask;\r\n }\r\n\r\n return null;\r\n });\r\n\r\n const loadBudgetTask = _.result(this.campaignSettings.budget, 'initialLoadTask');\r\n\r\n return Promise.all([\r\n loadCriterionsTask,\r\n loadBudgetTask,\r\n ]);\r\n }\r\n\r\n renderCampaignGoalSelector(campaign) {\r\n if (this.enableGoalSelector) {\r\n const isSetting = this.scenario === 'campaign-settings';\r\n\r\n this.goalSelectionView = new GoalSelectorView({\r\n i18n: i18n.realI18n,\r\n pageSize: 10,\r\n isMultiMode: true,\r\n isHideSaveBar: true,\r\n campaign,\r\n jsdata,\r\n state,\r\n turnOnRemoveAlert: (showWarning) => {\r\n if (this.enableGoalSelector && isSetting) {\r\n this.viewModel.showGoalRemoveAlert(showWarning);\r\n }\r\n },\r\n });\r\n this.$('.conversion-goal-selection').empty().html(this.goalSelectionView.render().el);\r\n }\r\n }\r\n\r\n renderFACCalloutForShopping(viewOption) {\r\n this.facCallOutView = new FACCalloutView(viewOption);\r\n this.$('.campaign-settings').append(this.facCallOutView.render().el);\r\n }\r\n\r\n render() {\r\n this.$el.html(template({\r\n i18n,\r\n editMode: this.editMode || false,\r\n isNotAudienceCampaign: this.isNotAudienceCampaign(),\r\n isNewUI: this.isNewUI,\r\n isSponsoredCampaign: this.isSponsoredCampaign,\r\n isWindowsStoreAdsEnabled: this.isWindowsStoreAd,\r\n isWindowsStoreAdsManualCPAEnabled: this.isWindowsStoreAdWithManualCPA,\r\n isMSStoreAdsGAWorkflow: this.isMSStoreAdsGAWorkflow,\r\n enableGoalSelector: this.enableGoalSelector,\r\n isShowDisclaimerBannerEnabled,\r\n }));\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n this.mark('willFetchData');\r\n const hideUIBlocker = withUiBlock();\r\n\r\n if (this.isSponsoredCampaignCashbackOptInAvailable ||\r\n this.shouldUseNewMmcApiForSpa ||\r\n this.isWindowsStoreAdWithManualCPA) {\r\n Promise.all([\r\n Promise.resolve(this.getProductData(this.campaign.Id, this.setting)),\r\n Promise.resolve(this.getMmcStoreData({ isWindowsStoreAd: this.isWindowsStoreAd })),\r\n ])\r\n .then(overrideLegacyStoreWithNewMmcApiStoreData)\r\n .then(this.processProductData)\r\n .finally(() => {\r\n hideUIBlocker();\r\n this.mark('done');\r\n });\r\n } else {\r\n Promise.resolve(this.getProductData(this.campaign.Id, this.setting))\r\n .then(this.processProductData)\r\n .finally(() => {\r\n hideUIBlocker();\r\n this.mark('done');\r\n });\r\n }\r\n\r\n if (!this.editMode) {\r\n this.durationActivity.startSignal();\r\n this.activity.signal('shopping campaign creation view rendered', this.scenario);\r\n }\r\n this.renderStartTime = new Date().getTime();\r\n this.logShoppingCampaignCreationEvent({ status: 'Start' });\r\n\r\n return this;\r\n }\r\n\r\n processProductData(pData) {\r\n this.viewModel.dataLoaded(true);\r\n\r\n let data = pData;\r\n\r\n if (isOdataGetProductScopeEnabled && _.isArray(data)) {\r\n data = mergeData(pData);\r\n }\r\n\r\n // Test hook for the \"no stores\" scenarios testing in CI\r\n if (shouldEmulateNoStores()) {\r\n data.ProductCollectionAccounts = [];\r\n }\r\n\r\n // The MS store should never be available\r\n if (!this.isMSStoreAdsGAWorkflow) {\r\n data.ProductCollectionAccounts = _.filter(data.ProductCollectionAccounts, (item) => !isMSStoreProviderId(item.Value));\r\n }\r\n\r\n const hasAnyStores = (!_.isEmpty(data) && !_.isEmpty(data.ProductCollectionAccounts)) ||\r\n (isEnabledDynamicFeedCampaign && this.isAudienceDynamicFeedBasedCampaign);\r\n\r\n if (hasAnyStores && (isSponsoredPilotEnabled || this.isWindowsStoreAd)) {\r\n if (this.isSponsoredCampaign) {\r\n if (this.isWindowsStoreAd && !this.isWindowsStoreAdWithManualCPA) {\r\n this.viewModel.hasStore(this.editMode || _.findIndex(data.ProductCollectionAccounts, (item) => !item.IsGlobalStore && item.IsCoOpStore) >= 0);\r\n } else if (this.isWindowsStoreAd && this.isWindowsStoreAdWithManualCPA) {\r\n this.viewModel.hasStore(this.editMode || _.findIndex(data.ProductCollectionAccounts, (item) => !item.IsGlobalStore && item.IsCoOpStore && item.AdditionalValues && item.AdditionalValues.IsMicrosoftStore) >= 0);\r\n } else {\r\n this.viewModel.hasStore(this.editMode || _.findIndex(data.ProductCollectionAccounts, (item) => item.IsGlobalStore || item.IsCoOpStore) >= 0);\r\n }\r\n } else {\r\n this.viewModel.hasStore(this.editMode || _.findIndex(data.ProductCollectionAccounts, (item) => !item.IsGlobalStore && !item.IsCoOpStore) >= 0);\r\n }\r\n } else {\r\n this.viewModel.hasStore(hasAnyStores && (this.editMode || _.findIndex(data.ProductCollectionAccounts, (item) => !item.IsGlobalStore && !item.IsCoOpStore) >= 0));\r\n }\r\n\r\n let isStoreValid = isCPGForBSCEnabled && this.editMode ? this.checkIfStoreValid(data) : true;\r\n\r\n if (isEnabledDynamicFeedCampaign && this.isAudienceDynamicFeedBasedCampaign && this.editMode) {\r\n isStoreValid = true;\r\n }\r\n\r\n this.mark('willRender');\r\n this.viewModel.isStoreValid(isStoreValid);\r\n if (this.viewModel.hasStore()) {\r\n this.renderSubViews(data);\r\n } else if (!this.editMode) {\r\n this.activity.signal('have no store', this.scenario);\r\n\r\n if (this.isFacForShoppingEnabled && document.location.search.indexOf('checkmmcstore=true') > -1) {\r\n // Navigate to mmc store page when no store, checkmmcstore=true comes from notification action link\r\n this.activity.signal('Redirect to MMC page due to no store', this.scenario);\r\n this.navigateToRoute('bing_merchant_center', { checkmmcstore: false });\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n checkIfStoreValid(data) {\r\n const providerId = _.result(this.setting, 'ProviderId');\r\n\r\n return _.some(data.ProductCollectionAccounts, (store) => Number(store.Value) === providerId);\r\n }\r\n\r\n onEnablePersonalizedOffersCheckboxChange(checked) {\r\n if (this.campaignTargetsView) {\r\n this.campaignTargetsView.toggleCashbackPercentColumns(checked);\r\n }\r\n if (this.campaignSettings.locationTargetsView) {\r\n this.campaignSettings.locationTargetsView.toggleCashbackPercentColumns(checked);\r\n }\r\n if (this.advancedSettingsView.adScheduleView) {\r\n this.advancedSettingsView.adScheduleView.toggleCashbackPercentColumns(checked);\r\n }\r\n if (this.advancedSettingsView.deviceTargetsUpdateView) {\r\n this.advancedSettingsView.deviceTargetsUpdateView.toggleCashbackPercentColumns(checked);\r\n }\r\n }\r\n\r\n onCashbackPercentChange(value) {\r\n if (this.campaignSettings.cashbackSettingsView.viewModel.validateCashbackPercent(value)) {\r\n const formattedValue = value === '' || value == null ? null : decimal.fromLocalToFloat(value);\r\n const inheritInfo = {\r\n level: 'Campaign',\r\n value: formattedValue,\r\n };\r\n\r\n if (this.campaignTargetsView) {\r\n this.campaignTargetsView.toggleCashbackPercentColumns(true, inheritInfo);\r\n }\r\n\r\n if (this.campaignSettings.locationTargetsView) {\r\n this.campaignSettings.locationTargetsView.toggleCashbackPercentColumns(true, inheritInfo);\r\n }\r\n if (this.advancedSettingsView.adScheduleView) {\r\n this.advancedSettingsView.adScheduleView.toggleCashbackPercentColumns(true, inheritInfo);\r\n }\r\n if (this.advancedSettingsView.deviceTargetsUpdateView) {\r\n this.advancedSettingsView.deviceTargetsUpdateView.toggleCashbackPercentColumns(true, inheritInfo);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Handles the changes to the Sponsored campaign cashback Opt-in checkbox.\r\n * Note: at the moment the checkbox is part of SPA/SPB (\"sponsored\") campaigns scenarios only.\r\n *\r\n * Propagates the signal to the shopping settings, campaign settings, campaign advanced settings components.\r\n *\r\n * For campaign settings:\r\n *\r\n * I. when checkbox is checked\r\n * - the shared budget scenario is not shown and switched to individual budget\r\n * - the bid strategy is shown and disabled with CostPerSale bid strategy selected\r\n * - the Default bid section is hidden\r\n *\r\n * II. when checkbox is unchecked\r\n * - the shared budget scenario is shown\r\n * - the bid strategy hidden. Bid strategy saved depends on the campaign. For SPA it must be ManualCPC.\r\n * - the Default bid section is shown.\r\n *\r\n * For campaign advanced settings:\r\n *\r\n * I. when checkbox is checked\r\n * - Ad distributions are set to \"All search networks\" and the control is made read-only\r\n *\r\n * II. when checkbox is unchecked\r\n * - Ad distributions are set to \"All search networks\" and the control is made editable.\r\n *\r\n * For shopping settings: see the logic in {@link ShoppingSettingsView#setIsSponsoredCampaignCashbackEnabled}\r\n * @param {Boolean} isEnabled - specifies whether the Sponsored campaign cashback Opt-in checkbox is checked or not\r\n * @returns {void}\r\n */\r\n isSponsoredCampaignCashbackOptedInChange(isEnabled) {\r\n this.isSPBCampaign = isEnabled;\r\n\r\n // send the update to:\r\n if (this.shoppingSettings) {\r\n // - shopping settings\r\n this.shoppingSettings.setIsSponsoredCampaignCashbackEnabled(isEnabled);\r\n }\r\n\r\n if (this.campaignSettings) {\r\n // - campaignSettings.budget\r\n // - campaignSettings.biddingStrategyView\r\n this.campaignSettings.biddingStrategyView.setSponsoredCampaignOptionsAndValue({\r\n isSponsoredCampaignCashbackOptedIn: isEnabled,\r\n });\r\n }\r\n\r\n if (this.advancedSettingsView) {\r\n this.advancedSettingsView.setIsSponsoredCampaignCashbackEnabled(isEnabled);\r\n }\r\n }\r\n\r\n initCampaignSettings() {\r\n let campaignSubType = this.campaignSubType;\r\n\r\n if (this.isSponsoredCampaign) {\r\n campaignSubType = 'ShoppingSponsoredProductAd';\r\n }\r\n\r\n const hideBiddingStrategyForSPA =\r\n this.isSponsoredCampaign &&\r\n !this.isSponsoredCampaignCashbackOptInAvailable &&\r\n !((this.isWindowsStoreAd &&\r\n this.isWindowsStoreAdWithManualCPA) || this.isMSStoreAdsGAWorkflow);\r\n\r\n const msStoreAdsCampaignPopups = {\r\n Location: 'pop_BA_StoreAds_Location',\r\n Budget: 'pop_BA_StoreAds_CampaignBudget',\r\n CampaignName: 'pop_BA_StoreAds_CampaignName',\r\n BidStrategy: 'pop_BA_StoreAds_BidStrategy',\r\n };\r\n\r\n this.campaignSettings = new CampaignSettingsView(_.extend(this.campaign, {\r\n scenario: this.scenario,\r\n showLanguage: false,\r\n showInitialUiBlocker: !this.isNotAudienceCampaign(),\r\n hideBidStrategy: hideBiddingStrategyForSPA,\r\n activityLogger: this.editMode ? undefined : this.activity,\r\n deps: this.deps,\r\n campaignType: 'shopping',\r\n isNotAudienceCampaign: this.isNotAudienceCampaign(),\r\n campaignSubType,\r\n isSponsoredCampaignCashbackOptedIn: this.isSPBCampaign,\r\n isSponsoredCampaignCashbackOptInReadonly: this.editMode,\r\n isForVNext: this.isNewUI,\r\n isMSStoreAdsGAWorkflow: this.isMSStoreAdsGAWorkflow,\r\n ccJsData: this.ccJsData,\r\n }, this.editMode ? {\r\n popupIds: { Location: 'pop_BA_Settings_LocationTargeting' },\r\n } : {},\r\n this.isMSStoreAdsGAWorkflow ? { popupIds: msStoreAdsCampaignPopups } : {})).render();\r\n\r\n if (!this.isMSStoreAdsGAWorkflow && isFACForShoppingEnabled && !this.editMode) {\r\n const renderFACHint = ({ couponValue }) => this.campaignSettings.budget.budgetView.ko_model.updateFeatureAdoptionCoupon({\r\n showFACHint: true,\r\n couponValue,\r\n });\r\n\r\n if (this.getFACCoupon) {\r\n this.getFACCoupon({\r\n setShowCalloutWithCoupon: ({show, isFACActive, viewOptions}) => {\r\n this.facCoupon = viewOptions.coupon;\r\n if (show) {\r\n this.renderFACCalloutForShopping(viewOptions);\r\n }\r\n if (isFACActive) {\r\n renderFACHint({couponValue: viewOptions.coupon.value});\r\n }\r\n },\r\n activeSuccessCallback: (couponInfo) => {\r\n renderFACHint({couponValue: couponInfo.value });\r\n if (this.facCoupon) {\r\n this.facCoupon.rawData.Status = CCUIConstants.RecommendationAdoptionStatus.Active;\r\n }\r\n },\r\n });\r\n }\r\n }\r\n if (this.campaignSettings.cashbackSettingsView) {\r\n this.campaignSettings.cashbackSettingsView.viewModel.isEnablePersonalizedOffersChecked.subscribe((checked) => {\r\n this.onEnablePersonalizedOffersCheckboxChange(checked);\r\n });\r\n\r\n this.campaignSettings.cashbackSettingsView.viewModel.CashbackPercent.subscribe((v) => {\r\n this.onCashbackPercentChange(v);\r\n });\r\n }\r\n\r\n this.campaignSettings.on('copy.campaign', this.copyFromCampaign.bind(this));\r\n this.campaignSettings.on('change:isSponsoredCampaignCashbackOptedIn', this.isSponsoredCampaignCashbackOptedInChange, this);\r\n\r\n if (this.isSponsoredCampaignCashbackOptInAvailable) {\r\n this.isSponsoredCampaignCashbackOptedInChange(this.isSPBCampaign, this.isMSStoreAdsGAWorkflow);\r\n }\r\n }\r\n\r\n renderShoppingSettingsView(data) {\r\n this.shoppingSettings = new ShoppingSettingsView({\r\n data,\r\n feedData: this.feedData,\r\n model: this.setting,\r\n campaignType: this.campaignType,\r\n campaignSubType: this.campaignSubType,\r\n campaignId: _.result(this.campaign, 'Id'),\r\n isStoreValid: this.viewModel.isStoreValid(),\r\n activityLogger: this.editMode ? undefined : this.activity,\r\n isSponsoredSettings: {\r\n isSponsoredCampaign: this.isSponsoredCampaign,\r\n isSponsoredPilotEnabled,\r\n isSPBCampaign: this.isSPBCampaign,\r\n isSPBOptInAvailable: this.isSponsoredCampaignCashbackOptInAvailable,\r\n shouldUseNewMmcApiForSpa: this.shouldUseNewMmcApiForSpa,\r\n },\r\n bidStrategyUpdater: this.campaignSettings.updateBidStrategy.bind(this.campaignSettings),\r\n shouldShowPlaceholderStoreIfExists: this.shouldShowPlaceholderStoreIfExists,\r\n deps: this.deps,\r\n isMSStoreAdsGAWorkflow: this.isMSStoreAdsGAWorkflow,\r\n ccJsData: this.ccJsData,\r\n }).render();\r\n\r\n this.shoppingSettings.on('storeChanged', (selectedStore) => {\r\n this.onStoreChanged(selectedStore);\r\n });\r\n\r\n if (pageContext.Permissions.IsCostPerSaleEnabled && this.campaignSettings.biddingStrategyView) {\r\n this.shoppingSettings.viewModel.isCPSSelected(this.campaignSettings.biddingStrategyView.viewModel.selectedBidStrategy() === BiddingStrategyType.costPerSale);\r\n this.campaignSettings.biddingStrategyView.viewModel.selectedBidStrategy.subscribe((strategy) => {\r\n this.shoppingSettings.viewModel.isCPSSelected(strategy === BiddingStrategyType.costPerSale);\r\n });\r\n }\r\n this.$('.shopping-settings').append(this.shoppingSettings.$el);\r\n\r\n const firstStore = data.ProductCollectionAccounts[0];\r\n\r\n this.onStoreChanged(firstStore);\r\n }\r\n\r\n renderAdvancedSettingsView() {\r\n const msStoreAdsCampaignPopups = {\r\n AdDistribution: 'pop_BA_StoreAds_AdDistribution',\r\n AdSchedule: 'pop_BA_StoreAds_AdSchedule',\r\n BidAdjustment: 'pop_BA_StoreAds_BidAdjustment',\r\n TimeZone: 'pop_BA_StoreAds_TimeZone',\r\n };\r\n\r\n this.advancedSettingsView = new AdvancedSettingsView({\r\n campaignId: _.result(this.campaign, 'Id'),\r\n level: 'campaign',\r\n scenario: this.scenario,\r\n TimeZone: timeZoneMapper.getAccountTimeZone(),\r\n model: this.campaign,\r\n nativeAdsCampaignBid: _.result(this.campaign, 'NativeBidAdjustment') || 0,\r\n campaignType: 'shopping',\r\n campaignSubType: this.isSponsoredCampaign ? 'ShoppingSponsoredProductAd' : null,\r\n collapseAdvancedSettings: this.isSponsoredCampaign,\r\n isNewUI: this.isNewUI,\r\n activityLogger: this.editMode ? undefined : this.activity,\r\n supportCashbackSettings: shouldSupportCashbackSettings(this.campaign, pageContext.Permissions),\r\n isSPBCampaign: this.isSPBCampaign,\r\n isMSStoreAdsGAWorkflow: this.isMSStoreAdsGAWorkflow,\r\n popupIds: this.isMSStoreAdsGAWorkflow ? msStoreAdsCampaignPopups : {},\r\n });\r\n this.$('.advanced-settings-section').html(this.advancedSettingsView.render().el);\r\n }\r\n\r\n renderSubViews(data) {\r\n this.campaignProductScopeId = data.CampaignCriterionsData && data.CampaignCriterionsData.Id;\r\n this.initCampaignSettings();\r\n this.$('.campaign-settings').append(this.campaignSettings.$el);\r\n this.renderShoppingSettingsView(data);\r\n this.renderAdvancedSettingsView();\r\n this.initModalManager();\r\n this.renderCampaignGoalSelector(this.campaign);\r\n return this.renderCampaignTargets(this.campaign);\r\n }\r\n\r\n // TODO: If supporting changing store in campaign settings, will need to redo the draft store check (for name and draft alert)\r\n onStoreChanged(selectedStore) {\r\n if (this.campaignSettings.cashbackSettingsView) {\r\n if (selectedStore.IsCoOpStore) {\r\n this.campaignSettings.cashbackSettingsView.viewModel.isEnablePersonalizedOffersDisabled(true);\r\n this.campaignSettings.cashbackSettingsView.viewModel.isEnablePersonalizedOffersChecked(false);\r\n } else {\r\n this.campaignSettings.cashbackSettingsView.viewModel.isEnablePersonalizedOffersDisabled(false);\r\n }\r\n }\r\n }\r\n\r\n copyFromCampaign(sourceCampaign) {\r\n if (!isMSStoreAdsCampaign(sourceCampaign) &&\r\n this.isMSStoreAdsGAWorkflow) {\r\n return;\r\n }\r\n\r\n // if this is not shopping campaign, skip following step\r\n if (_.result(sourceCampaign, 'CampaignType') !== 'Shopping') {\r\n return;\r\n }\r\n\r\n if (_.result(sourceCampaign, 'CampaignSubType') !== 'ShoppingSponsoredProductAd' && this.isSponsoredCampaign) {\r\n return;\r\n }\r\n\r\n if (this.isSponsoredCampaignCashbackOptInAvailable || this.shouldUseNewMmcApiForSpa) {\r\n Promise.all([\r\n Promise.resolve(this.getProductData(_.result(sourceCampaign, 'Id'), _.first(sourceCampaign.CampaignSettings))),\r\n Promise.resolve(this.getMmcStoreData({ isWindowsStoreAd: this.isWindowsStoreAd })),\r\n ])\r\n .then(overrideLegacyStoreWithNewMmcApiStoreData)\r\n .then((productData) => {\r\n this.shoppingSettings.refreshData(sourceCampaign, productData);\r\n })\r\n .finally(withUiBlock());\r\n } else {\r\n this.getProductData(_.result(sourceCampaign, 'Id'), _.first(sourceCampaign.CampaignSettings))\r\n .then((productData) => {\r\n this.shoppingSettings.refreshData(sourceCampaign, productData);\r\n })\r\n .finally(withUiBlock());\r\n }\r\n }\r\n\r\n getProductDataWithoutDFM(campaignId, setting) {\r\n if (isOdataGetProductScopeEnabled) {\r\n return this.getProductDataFromOData(campaignId, setting);\r\n }\r\n\r\n return this.getProductDataFromUIServer(campaignId, setting);\r\n }\r\n\r\n getProductDataFromOData(campaignId, setting) {\r\n const serverContext = _.get(serverContextStore, ['state', 'serverContext'], {});\r\n const options = {\r\n getProductConditionOptions: true,\r\n getSalesCountryCollection: true,\r\n getDynamicDataFeedOptions: true,\r\n dataName: 'MetaData',\r\n };\r\n let bypassCache = this.shouldShowPlaceholderStoreIfExists;\r\n let cacheResponse = !this.shouldShowPlaceholderStoreIfExists;\r\n\r\n if (campaignId) {\r\n bypassCache = true;\r\n cacheResponse = false;\r\n options.campaignId = campaignId;\r\n options.getCampaignCriterions = true;\r\n options.shouldShowPlaceholderStoreIfExists = this.shouldShowPlaceholderStoreIfExists;\r\n options.countryCode = this.campaignSubType === 'AudienceFeedBased' ? 'US' : _.result(setting, 'SalesCountry');\r\n } else if (!this.isMSStoreAdsGAWorkflow && this.isDomesticSimplifiedChineseEnabled) {\r\n options.countryCode = 'CN';\r\n } else if (this.isMSStoreAdsGAWorkflow) {\r\n options.countryCode = 'US';\r\n } else if (isFeedLabelEnabled && !isFeedLabelBlockListEnabled) {\r\n options.countryCode = serverContext.CurrentAccount.CountryCode;\r\n } else {\r\n options.countryCode = 'US';\r\n }\r\n\r\n if (this.campaignSubType === 'AudienceFeedBased') {\r\n options.getCategoryFullData = true;\r\n options.getProductTypeFullData = true;\r\n }\r\n\r\n options.bypassCache = bypassCache;\r\n options.cacheResponse = cacheResponse;\r\n\r\n const p = getProductScopeData(null, serverContext, options)\r\n .then((pData) => {\r\n const data = mergeData(pData);\r\n\r\n return data;\r\n }).catch(() => {\r\n this.viewModel.errors.add();\r\n });\r\n\r\n return p;\r\n }\r\n\r\n getMmcStoreDataWithoutDFM(options) {\r\n return this.campaignStoreQueries.getActiveCampaignStores(options);\r\n }\r\n\r\n getProductDataFromUIServer(campaignId, setting) {\r\n let url = queryify('/Campaign/NewCampaign/GetProductScope', {\r\n aid: state.get('account_id'),\r\n cid: state.get('customer_id'),\r\n uid: state.get('user_id'),\r\n });\r\n // We shouldn't cache the response when showing placeholder stores.\r\n // If we do, there will be a bug when the user goes from campaign settings to creation.\r\n // The bug will be that the user sees draft stores in campaign creation since it reads from cache.\r\n let bypassCache = this.shouldShowPlaceholderStoreIfExists;\r\n let cacheResponse = !this.shouldShowPlaceholderStoreIfExists;\r\n\r\n if (campaignId) {\r\n let urlQueryStringObject = {\r\n campaignId,\r\n salesCountry: this.campaignSubType === 'AudienceFeedBased' ? 'US' : _.result(setting, 'SalesCountry'),\r\n feedLabel: _.result(setting, 'FeedLabel'),\r\n };\r\n\r\n url = queryify(url, urlQueryStringObject);\r\n\r\n if (this.shouldShowPlaceholderStoreIfExists) {\r\n url = `${url}&storeTypes=placeholder`;\r\n }\r\n\r\n bypassCache = true;\r\n cacheResponse = false;\r\n }\r\n\r\n if (IsEnhancedPAFilterP2Enabled && this.campaignSubType === 'AudienceFeedBased') {\r\n url = queryify(url, {\r\n getCategoryFullData: true,\r\n getProductTypeFullData: true,\r\n });\r\n }\r\n\r\n const params = {\r\n url,\r\n adapter: 'legacy',\r\n bypassCache,\r\n cacheResponse,\r\n };\r\n\r\n return jsdata.Product.find('MetaData', params)\r\n // Ui blocker is added by caller function\r\n .catch(() => {\r\n this.viewModel.errors.add();\r\n });\r\n }\r\n\r\n validate() {\r\n return _.reduce([\r\n this.campaignSettings.validate(),\r\n this.shoppingSettings.validate(),\r\n this.advancedSettingsView.validate(),\r\n this.campaignTargetsView ? this.campaignTargetsView.validate() : true,\r\n ], (prev, next) => {\r\n return prev && next;\r\n }, true);\r\n }\r\n\r\n getAdGroup() {\r\n let adgroup = {\r\n CampaignName: this.campaignName,\r\n Name: defaultAdGroupName,\r\n Medium: 'Search',\r\n PricingModel: 'CPC',\r\n Status: 'Active',\r\n SearchBid: this.shoppingSettings.getSearchBid(),\r\n };\r\n\r\n if (this.campaign.Id) {\r\n adgroup.Campaign = {\r\n Id: this.campaign.Id,\r\n };\r\n }\r\n\r\n return adgroup;\r\n }\r\n\r\n getProductPartition() {\r\n return {\r\n BidAmount: this.shoppingSettings.getSearchBid(),\r\n ProductCondition: 'All',\r\n ProductValue: '',\r\n CampaignName: this.campaignName,\r\n AdGroupName: defaultAdGroupName,\r\n IsExcluded: false,\r\n IsLeaf: 'Unit',\r\n Status: 'Active',\r\n };\r\n }\r\n\r\n getAd() {\r\n let productAd = {\r\n CampaignName: this.campaignName,\r\n AdGroupName: defaultAdGroupName,\r\n PromotionalText: '',\r\n };\r\n\r\n return productAd;\r\n }\r\n\r\n getAdvancedSettingsValue(campaignToSave) {\r\n const advancedSettings = this.advancedSettingsView.getValues();\r\n const targets = advancedSettings.deviceTargets.concat(advancedSettings.ageTargets).concat(advancedSettings.genderTargets).concat(advancedSettings.scheduling);\r\n\r\n _.each(targets, (criterion) => {\r\n criterion.Status = _.isEmpty(criterion) ? 'Active' : criterion.Status;\r\n if (campaignToSave.Id) {\r\n criterion.Campaign = {\r\n Id: campaignToSave.Id,\r\n };\r\n } else {\r\n criterion.CampaignName = campaignToSave.Name;\r\n }\r\n });\r\n\r\n campaignToSave.CampaignCriterions = campaignToSave.CampaignCriterions.concat(targets);\r\n _.extend(campaignToSave, advancedSettings.nativeAds, advancedSettings.urlOptions);\r\n\r\n if (_.has(campaignToSave, 'AdGroups') && _.size(campaignToSave.AdGroups) > 0) {\r\n _.extend(campaignToSave.AdGroups[0], advancedSettings.netWorkOptions);\r\n }\r\n\r\n if (this.advancedSettingsView.adScheduleView) {\r\n campaignToSave.AdScheduleUseSearcherTimeZone =\r\n _.result(this.advancedSettingsView.adScheduleView, 'getAdScheduleUseSearcherTimeZone');\r\n }\r\n\r\n return campaignToSave;\r\n }\r\n\r\n getLocationTargets(campaignToSave) {\r\n const locationTargets = this.campaignSettings.locationTargetsView.getValues({}, {\r\n populateParentField: true,\r\n removeNegativeId: true,\r\n campaignId: campaignToSave.Id,\r\n campaignName: campaignToSave.Name,\r\n });\r\n\r\n return locationTargets.deletedLocations.concat(locationTargets.locations).concat(locationTargets.intent);\r\n }\r\n\r\n getCriterions(campaign) {\r\n campaign.CampaignCriterions = [];\r\n campaign = this.getAdvancedSettingsValue(campaign); //eslint-disable-line\r\n campaign = this.shoppingSettings.getCriterions(campaign); //eslint-disable-line\r\n\r\n if (this.isNotAudienceCampaign()) {\r\n const campaignTargetsData = this.campaignTargetsView && this.campaignTargetsView.getData();\r\n let campaignTargetsCriterions = _.result(campaignTargetsData, 'CampaignCriterions', []);\r\n\r\n if (this.scenario === 'shopping-creation-workflow') {\r\n campaignTargetsCriterions = _.map(campaignTargetsCriterions, (criterion) => {\r\n if (campaign.Id) {\r\n return _.defaults({\r\n Campaign: {\r\n Id: campaign.Id,\r\n },\r\n }, criterion);\r\n }\r\n return _.defaults({\r\n CampaignName: campaign.Name,\r\n }, _.omit(criterion, 'Campaign'));\r\n });\r\n }\r\n\r\n campaign.CampaignCriterions = campaign.CampaignCriterions.concat(campaignTargetsCriterions);\r\n }\r\n\r\n if (this.isMapLoaded) {\r\n const locationTargets = this.getLocationTargets(campaign);\r\n\r\n campaign.CampaignCriterions = campaign.CampaignCriterions.concat(locationTargets);\r\n }\r\n\r\n if (this.enableGoalSelector && this.goalSelectionView) {\r\n campaign.CampaignConversionGoalAssociations =\r\n this.goalSelectionView.convertToMTFormat(campaign.Id);\r\n }\r\n\r\n return campaign;\r\n }\r\n\r\n getValues() {\r\n let model = this.campaignSettings.ko_model.toObject();\r\n\r\n this.campaignName = model.Name;\r\n\r\n _.extend(model, this.shoppingSettings.viewModel.toObject(), {\r\n CampaignType: this.campaignType,\r\n CampaignSubType: this.campaignSubType,\r\n Budget: this.campaignSettings.budget.getValues(model),\r\n });\r\n\r\n if (this.shoppingSettings.isFeedProductFilterEnabled) {\r\n if (!this.shoppingSettings.viewModel.isFeedFilterChecked()) {\r\n // choose neither feed label nor sales country\r\n model = _.omit(model, 'SalesCountry');\r\n model = _.omit(model, 'FeedLabel');\r\n } else if (model.FeedLabel && model.FeedLabel.length > 0) {\r\n model = _.omit(model, 'SalesCountry');\r\n } else {\r\n model = _.omit(model, 'FeedLabel');\r\n }\r\n if (this.editMode) {\r\n if (!model.SalesCountry) {\r\n model.SalesCountry = 'delete_value';\r\n }\r\n if (!model.FeedLabel) {\r\n model.FeedLabel = 'delete_value';\r\n }\r\n }\r\n }\r\n\r\n if (this.campaignSettings.cashbackSettingsView) {\r\n _.extend(model, this.campaignSettings.cashbackSettingsView.getValues());\r\n } else if (this.isSPBCampaign) {\r\n _.extend(model, {\r\n IsPromotionsForBrands: true,\r\n });\r\n }\r\n\r\n if (this.shoppingSettings.isEnabledDynamicFeedCampaign && this.shoppingSettings.isDynamicDataFeedBasedCampaign && this.editMode) {\r\n const feedId = model.ProviderId;\r\n\r\n model.FeedId = feedId;\r\n delete model.ProviderId;\r\n }\r\n\r\n // not all campaigns has bidding strtegy, audience shopping campaign did not have it\r\n if (this.campaignSettings.biddingStrategyView) {\r\n const biddingScheme = this.campaignSettings.biddingStrategyView.getValues();\r\n\r\n _.extend(model, {\r\n BiddingScheme: biddingScheme,\r\n });\r\n\r\n // For CPS campaign in POv4 pilot, we need to populate the default Personalized Offers settings\r\n if (IsPersonalizedOffersV4Enabled && biddingScheme.Type === 'CostPerSale' && !this.isSPBCampaign) {\r\n _.extend(model, {\r\n PersonalizedOffersEnabled: true,\r\n CashbackPercent: 10,\r\n CashbackScope: 'Product',\r\n });\r\n }\r\n }\r\n\r\n if (this.shoppingSettings.hasFilteredProducts()) {\r\n model.CampaignProductScope = _.defaults(this.shoppingSettings.getProductScope(), {\r\n CampaignName: model.Name,\r\n });\r\n\r\n if (this.campaignProductScopeId) {\r\n model.CampaignProductScope.Id = this.campaignProductScopeId;\r\n }\r\n }\r\n\r\n if (this.campaign.Id) {\r\n model.Id = this.campaign.Id;\r\n }\r\n\r\n /** will create adgroup, product ad and product partitions when:\r\n * 1. When creation and these entities are not created successfully yet\r\n * 2. It is not a coop (v1) campaign\r\n */\r\n if (!this.defaultAdGroupCreated && (!this.shoppingSettings.isCoOpStoreSelected() || this.isSponsoredCampaign)) {\r\n model.AdGroups = [this.getAdGroup()];\r\n\r\n // For Store Ads, country of sale has to be US\r\n // If Language is not provided, MT will use fallback value based on country of sale (if it is Shopping Campaign)\r\n // which will be English for US\r\n // However, for CN advertiser (in pilot 1183), language has to be SimplifiedChinese\r\n if (this.isMSStoreAdsGAWorkflow && this.isDomesticSimplifiedChineseEnabled) {\r\n model.AdGroups[0].Language = 'SimplifiedChinese';\r\n }\r\n model.ProductAds = [this.getAd()];\r\n model.ProductPartitions = [this.getProductPartition()];\r\n }\r\n\r\n return this.getCriterions(model);\r\n }\r\n\r\n cancel() {\r\n if (this.editMode) {\r\n this.navigateToCampaignSummaryPage(this.campaign.Id);\r\n } else {\r\n this.activity.signal('cancel clicked', this.scenario);\r\n this.durationActivity.stopSignal('creationEnd');\r\n this.navigateToCampaignSummaryPage();\r\n }\r\n }\r\n\r\n getAllLocationCriterions() {\r\n // get location target\r\n const locationTargets = this.campaignSettings && this.campaignSettings.locationTargetsView && this.campaignSettings.locationTargetsView.getValues({}, {\r\n populateParentField: false,\r\n keepAllLocations: true,\r\n });\r\n let locationCriterions = locationTargets && locationTargets.locations.concat(locationTargets.intent);\r\n\r\n if (this.isNotAudienceCampaign()) {\r\n const campaignTargetsData = (this.campaignTargetsView && this.campaignTargetsView.getAllLocations()) || [];\r\n\r\n locationCriterions = _.union(locationCriterions, campaignTargetsData);\r\n }\r\n return locationCriterions;\r\n }\r\n\r\n checkIMAReachAndSave() {\r\n if (!this.validate()) {\r\n return;\r\n }\r\n\r\n this.clearApiErrors();\r\n\r\n Promise.resolve(this.isMapLoaded && this.campaignSettings && this.campaignSettings.locationTargetsPromise).then(() => {\r\n let params = this.getValues();\r\n\r\n const changedLocationCriterions = params && params.CampaignCriterions && _.filter(params.CampaignCriterions, (item) =>\r\n item && (item.CriterionType === 'Location' || item.CriterionType === 'Radius'));\r\n\r\n return changedLocationCriterions && changedLocationCriterions.length > 0;\r\n }).then((hasLocationChanged) => {\r\n const locationCriterions = this.getAllLocationCriterions();\r\n\r\n if (hasLocationChanged && pageContext.Permissions.IsIMAReachRepresentationPhase1Enabled &&\r\n this.isNewUI &&\r\n locationCriterions.length > 0 &&\r\n this.scenario === 'campaign-settings') {\r\n const onYes = () => this.save();\r\n const locationsInfo = getLocationsInfo(locationCriterions);\r\n\r\n return showIMAReachModal({\r\n locationsInfo,\r\n onYes,\r\n deliveryChannel: this.isNotAudienceCampaign() ? 'BingAds' : 'AIM',\r\n campaignId: _.result(this.campaign, 'Id'),\r\n i18n,\r\n aid: pageContext.CurrentAccount.Id,\r\n cid: pageContext.CurrentAccount.AdvertiserCustomerID,\r\n });\r\n } else {\r\n return Promise.resolve(false);\r\n }\r\n }).then((isIMAReachModalShow) => {\r\n if (isIMAReachModalShow) {\r\n return;\r\n }\r\n this.save();\r\n });\r\n }\r\n\r\n save() {\r\n if (!this.editMode) {\r\n // The \"isCoOpStoreSelected\" and \"isSponsoredCampaign\" parts of this log are used by a Power BI metrics dashboard for Manual Bidding Deprecation.\r\n this.activity.signal(`save clicked. isCoOpStoreSelected: ${this.shoppingSettings.isCoOpStoreSelected()} isSponsoredCampaign: ${this.isSponsoredCampaign}`, this.scenario);\r\n this.logShoppingCampaignCreationEvent({ status: 'Save click' });\r\n }\r\n\r\n if (!this.validate()) {\r\n return;\r\n }\r\n\r\n this.clearApiErrors();\r\n\r\n Promise.resolve(this.isMapLoaded && this.campaignSettings && this.campaignSettings.locationTargetsPromise).then(() => {\r\n let model = this.getValues();\r\n\r\n return Promise.join(\r\n jsdata.ShoppingCampaign.create(model, { adapter: 'bulk', cacheResponse: false }),\r\n this.destroyProductScoeIfNeed(),\r\n );\r\n }).then((data) => {\r\n //we backfill advanced settings models here, so we have correct model if the saveExtensions call fails.\r\n if (data && data.length > 0) {\r\n this.advancedSettingsView.setData(data[0]);\r\n logCampaignPersonalizedOffers(this.campaignSettings.cashbackSettingsView, this.activity.signal.bind(this.activity), data[0]);\r\n }\r\n return this.editMode && this.advancedSettingsView.exclusionsUpdated() ? this.advancedSettingsView.saveExtensions() : data;\r\n }).then((data) => {\r\n const id = this.editMode ? this.campaign.Id : _.propertyOf(_.first(data))('Id');\r\n\r\n this.navigateToCampaignSummaryPage(id);\r\n\r\n if (!this.editMode) {\r\n this.activity.signal('shopping campaign creation succeeded', this.scenario);\r\n this.logShoppingCampaignCreationEvent({ status: 'Save succeeded' });\r\n this.durationActivity.stopSignal('creationEnd');\r\n if (_.get(this.facCoupon, ['rawData', 'Status']) === CCUIConstants.RecommendationAdoptionStatus.Active ) {\r\n this.updateCouponStatus({\r\n coupon: this.facCoupon.rawData,\r\n status: CCUIConstants.RecommendationAdoptionStatus.Adopted,\r\n });\r\n }\r\n }\r\n this.activity.stop();\r\n })\r\n .catch((response) => {\r\n this.handleApiErrors(response);\r\n })\r\n .finally(withUiBlock(this.$el));\r\n }\r\n\r\n clearApiErrors() {\r\n this.viewModel.errors.clear(i18nErrors.isCampaignApiError);\r\n this.campaignSettings.clearApiErrors();\r\n this.shoppingSettings.clearApiErrors();\r\n this.advancedSettingsView.clearApiErrors();\r\n }\r\n\r\n separateErrors(errors) {\r\n const splitedErrors = _.partition(errors, (error) => error.Type === 'Campaign Error');\r\n\r\n return {\r\n campaignErr: splitedErrors[0],\r\n locationErr: splitedErrors[1],\r\n };\r\n }\r\n\r\n handleApiErrors(response) {\r\n if (!response || response === 'exclusion error') {\r\n return;\r\n }\r\n\r\n if (response.errors && !response.entity) {\r\n //Ajax error [400] - RowCountExceeded\r\n this.viewModel.errors.add(i18nErrors.getBulkApiErrors(response.errors));\r\n return;\r\n }\r\n\r\n if (!this.editMode) {\r\n this.campaignSettings.copySettings.hide(); //hide the copy from campaign control\r\n }\r\n\r\n i18nErrors.getPartial(response, ['AdGroups', 'CampaignProductScope', 'CampaignCriterions'], 'newcampaign');\r\n\r\n if (response.entity && response.entity.Id) {\r\n //the campaign is saved to server\r\n this.campaign.Id = response.entity.Id;\r\n this.campaignSettings.ko_model.Id(response.entity.Id);\r\n this.advancedSettingsView.setData(response);\r\n this.advancedSettingsView.handleErrors(response);\r\n this.shoppingSettings.handleApiErrors(response);\r\n }\r\n\r\n if (response.entity && response.entity.CampaignProductScope && response.entity.CampaignProductScope.Id) {\r\n //campaign criterion is saved to server\r\n this.campaignProductScopeId = response.entity.CampaignProductScope.Id;\r\n }\r\n\r\n if (_.isArray(response.entity.AdGroups)) {\r\n // When resposne has AdGroups entity, it means there is an adgroup trying to be created\r\n this.defaultAdGroupCreated = _.isEmpty(_.first(response.entity.AdGroups).errors);\r\n }\r\n\r\n let campaignErrors = _.reject(response.entity.errors, (error) => {\r\n return _.contains(['TrackingUrlTemplate', 'UrlCustomParameters'], error.property);\r\n });\r\n\r\n this.campaignSettings.handleApiErrors(campaignErrors || []);\r\n\r\n const { locationErr } = this.separateErrors(response.errors);\r\n\r\n if (_.size(locationErr) > 0) {\r\n this.campaignSettings.locationTargetsView.handleApiErrors(locationErr);\r\n }\r\n\r\n if (this.campaignTargetsView) {\r\n this.campaignTargetsView.fillCriterionsWithId(_.result(response.entity, 'CampaignCriterions'));\r\n }\r\n\r\n if (!this.editMode) {\r\n _.chain(response.errors).map((error) => error.Error).uniq().each((error) => {\r\n this.activity.signal(`campaign creation odata error: ${error}`, this.scenario);\r\n });\r\n }\r\n this.activity.signal('campaign creation odata call failed', this.scenario);\r\n }\r\n\r\n destroyProductScoeIfNeed() {\r\n if (this.campaignProductScopeId && !this.shoppingSettings.hasFilteredProducts()) {\r\n jsdata.CampaignProductScope.destroy(this.campaignProductScopeId, { adapter: 'bulk', parentId: this.campaign.Id });\r\n }\r\n }\r\n\r\n navigateToCampaignSummaryPage(campaignId) {\r\n modalManager.off();\r\n\r\n if (this.editMode) {\r\n // eslint-disable-next-line camelcase\r\n this.navigateToRoute('campaign_adgroup', { campaign_id: campaignId });\r\n } else {\r\n this.navigateToRoute('campaign');\r\n }\r\n\r\n if (campaignId) {\r\n summaryDataContextManager.getContext('/campaign/NewCampaign/Create?');\r\n\r\n this.deps.eventDelegator && this.deps.eventDelegator.trigger(this.editMode ? 'campaignUpdated' : 'campaignCreated', {\r\n data: [{ //eslint-disable-line\r\n Id: Number(campaignId),\r\n Name: this.campaignName,\r\n AccountId: pageContext.CurrentAccount.Id,\r\n CampaignType: 2,\r\n CampaignSubType: this.shoppingSettings.isCoOpStoreSelected() ? CoOpCampaignSubType : null,\r\n }],\r\n });\r\n }\r\n }\r\n\r\n remove() {\r\n if (this.campaignSettings) {\r\n this.campaignSettings.remove();\r\n }\r\n if (this.campaignTargetsView) {\r\n this.campaignTargetsView.remove();\r\n }\r\n if (this.goalSelectionView) {\r\n this.goalSelectionView.remove();\r\n }\r\n\r\n super.remove();\r\n }\r\n\r\n mark(perfMarkerEvent) {\r\n // there is a perf marker for settings page scenario\r\n if (this.perfMarker && this.scenario === 'shopping-creation-workflow') {\r\n this.perfMarker[perfMarkerEvent]();\r\n }\r\n }\r\n}\r\n","/* eslint-disable new-cap */\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport BaseViewModel from '../common/base';\r\n\r\nconst s$ShoppingCampaign = window.globalLegacySchema.get('ShoppingCampaign');\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/shopping-campaign');\r\n\r\nconst scope = {\r\n All: 'All',\r\n Filtered: 'Filtered',\r\n};\r\n\r\nconst isPriorityVisible = ({\r\n campaignType,\r\n campaignSubType,\r\n isSearchCampaign,\r\n isSponsoredSettings,\r\n isWindowsStoreAdsEnabled,\r\n isWindowsStoreAdsManualCPAEnabled,\r\n showComponentConfig,\r\n}) => function () {\r\n /* eslint-disable no-invalid-this */\r\n\r\n if (showComponentConfig && !showComponentConfig.campaignPriority) {\r\n return false;\r\n }\r\n // Microsoft Store Ads - Hide for Phase 2 (with Manual CPA)\r\n if (isSponsoredSettings.isSponsoredCampaign && isWindowsStoreAdsEnabled && isWindowsStoreAdsManualCPAEnabled) {\r\n return false;\r\n }\r\n\r\n // for SPA/SPB campagins. Hide for phase 2 (SPB campaigns or SPA using the new MMC API)\r\n if (!isWindowsStoreAdsEnabled && isSponsoredSettings.isSponsoredCampaign && (isSponsoredSettings.isSPBOptInAvailable || isSponsoredSettings.shouldUseNewMmcApiForSpa)) {\r\n return false;\r\n }\r\n\r\n // For all other options, including WindowsStoreAds Phase 1 (no Manual CPA) and SPA Phase 1 (SPA old path with old API)\r\n return campaignType !== 'Audience' && campaignSubType !== 'ShoppingSmartAds' && !isSearchCampaign && !this.isCPSSelected();\r\n /* eslint-enable no-invalid-this */\r\n};\r\n\r\nconst getDefaultPriority = (isSponsoredSettings, isWindowsStoreAdsEnabled) => {\r\n if (isSponsoredSettings.isSponsoredCampaign && isWindowsStoreAdsEnabled) {\r\n return 'High';\r\n }\r\n\r\n if (isSponsoredSettings.isSponsoredCampaign && (isSponsoredSettings.isSPBOptInAvailable || isSponsoredSettings.shouldUseNewMmcApiForSpa)) {\r\n return 'High';\r\n }\r\n\r\n return 'Low';\r\n};\r\n\r\nclass ViewModel extends BaseViewModel {\r\n constructor({\r\n model = {},\r\n editMode = false,\r\n data = {\r\n ProductCollectionAccounts: [],\r\n SalesCountryCollection: [],\r\n CampaignCriterionsData: {},\r\n },\r\n storeData = {\r\n storeOptions: [],\r\n excludedStoreOptions: [],\r\n },\r\n isShoppableAdsEnabled = false,\r\n isLocalInventoryAdsEnabled = false,\r\n isSponsoredSettings = {\r\n isSponsoredCampaign: false,\r\n hideStoreSection: false,\r\n hideBid: false,\r\n isSPBCampaign: false,\r\n isSPBOptInAvailable: false,\r\n shouldUseNewMmcApiForSpa: false,\r\n },\r\n shouldShowPlaceholderStoreIfExists = false,\r\n isWindowsStoreAdsEnabled = false,\r\n isWindowsStoreAdsManualCPAEnabled = false,\r\n IsDomesticSimplifiedChineseEnabled = false,\r\n deps = {},\r\n campaignType,\r\n campaignSubType,\r\n isSearchCampaign = false,\r\n isExistingFeedFilter = false,\r\n isSalesCountryRemovedForSpa = false,\r\n showComponentConfig = {},\r\n isCPSSelected: cpsSelected = false,\r\n isAllFeedProducts = true,\r\n accountCountryCode,\r\n isBrandWideCashbackEnabled = false,\r\n }) {\r\n super();\r\n\r\n this.fields = _.union(['SalesCountry', 'Priority', 'ProviderId'],\r\n isLocalInventoryAdsEnabled ? ['LocalInventoryAdsEnabled'] : [],\r\n isShoppableAdsEnabled ? ['ShoppableAdsEnabled'] : [],\r\n isSponsoredSettings.isSponsoredCampaign ? ['CampaignSubType'] : [],\r\n isExistingFeedFilter ? ['FeedLabel'] : [],\r\n isBrandWideCashbackEnabled ? ['BrandOnly'] : []);\r\n\r\n this.FeedId = ko.observable(null);\r\n this.FeedLabel = ko.observable(null);\r\n\r\n // For Windows Store Ads, country of sale must be US\r\n let defaultSalesCountry = '';\r\n\r\n if (!isWindowsStoreAdsEnabled && IsDomesticSimplifiedChineseEnabled) {\r\n defaultSalesCountry = 'CN';\r\n } else if (isWindowsStoreAdsEnabled) {\r\n defaultSalesCountry = 'US';\r\n } else {\r\n defaultSalesCountry = accountCountryCode ? accountCountryCode : 'US';\r\n }\r\n\r\n this.configSchema(\r\n s$ShoppingCampaign,\r\n this.fields,\r\n _.defaults(model, {\r\n Priority: getDefaultPriority(isSponsoredSettings, isWindowsStoreAdsEnabled),\r\n ProviderId: _.propertyOf(_.first(storeData.storeOptions))('Value'),\r\n CampaignSubType: isSponsoredSettings.isSponsoredCampaign ? 'ShoppingSponsoredProductAd' : undefined,\r\n }, isSalesCountryRemovedForSpa ? {} : {\r\n SalesCountry: isExistingFeedFilter ? null : defaultSalesCountry,\r\n }));\r\n\r\n this.isSPBCampaign = ko.observable(isSponsoredSettings.isSPBCampaign);\r\n this.isCPSSelected = ko.observable(cpsSelected);\r\n this.showPriority = ko.computed(isPriorityVisible({\r\n campaignType,\r\n campaignSubType,\r\n isSearchCampaign,\r\n isSponsoredSettings,\r\n isWindowsStoreAdsEnabled,\r\n isWindowsStoreAdsManualCPAEnabled,\r\n showComponentConfig,\r\n }), this);\r\n\r\n if (isSponsoredSettings.isSPBOptInAvailable) {\r\n this.showBid = ko.computed(() => !this.isCPSSelected() && !this.isSPBCampaign() && !isSponsoredSettings.hideBid);\r\n } else {\r\n this.showBid = ko.computed(() => !this.isCPSSelected());\r\n\r\n // Updating priority by CPS is not relevant for SPA/SPB camapigns\r\n this.updatePriorityFunc = this.updatePriority();\r\n this.isCPSSelected.subscribe(this.updatePriorityFunc);\r\n }\r\n\r\n this.isEditMode = ko.observable(editMode);\r\n\r\n this.scope = scope;\r\n this.productScope = ko.observable(this.scope.All);\r\n this.productScope.editing = ko.computed({\r\n read() {\r\n return this.productScope();\r\n },\r\n write(newValue) {\r\n this.productScope(newValue);\r\n },\r\n }, this);\r\n\r\n this.salesCountries = ko.observableArray(data.SalesCountryCollection\r\n .filter((salesCountry) => {\r\n const id = salesCountry.Value;\r\n let result = true;\r\n\r\n if (IsDomesticSimplifiedChineseEnabled) {\r\n result = result && (id === 'CN');\r\n }\r\n\r\n return result;\r\n })\r\n .map((item) => {\r\n return _.extend(item, {\r\n Text: i18n.getString(`SalesCountry_${item.Value}`) || item.Text,\r\n });\r\n }));\r\n this.excludedStoreOptions = ko.observableArray(storeData.excludedStoreOptions);\r\n\r\n this.shouldShowPlaceholderStoreIfExists = shouldShowPlaceholderStoreIfExists;\r\n\r\n this.deps = deps;\r\n\r\n if (editMode) {\r\n const allStores = [...storeData.storeOptions || [], ...storeData.excludedStoreOptions || []];\r\n const selectedStoreItem = _.find(allStores, { Value: model.ProviderId.toString() });\r\n const isPlaceholderStore = this.shouldShowPlaceholderStoreIfExists && this.isSelectedStoreAPlaceholderStore({\r\n ProductCollectionAccounts: data.ProductCollectionAccounts,\r\n selectedStoreId: model.ProviderId,\r\n });\r\n\r\n this.storeText = ko.observable(this.generateStoreText({ model, selectedStoreItem, isPlaceholderStore }));\r\n this.countryText = _.propertyOf(_.find(this.salesCountries(), { Value: model.SalesCountry }))('Text');\r\n\r\n if (!_.isEmpty(data.CampaignCriterionsData) && !_.isEmpty(_.result(data.CampaignCriterionsData, ['Criterion', 'ProductConditions']))) {\r\n this.productScope(this.scope.Filtered);\r\n }\r\n }\r\n\r\n this.storeOptions = ko.observableArray(storeData.storeOptions);\r\n this.hideStoreSection = (isSponsoredSettings &&\r\n isSponsoredSettings.isSponsoredCampaign &&\r\n ((isWindowsStoreAdsEnabled && isWindowsStoreAdsManualCPAEnabled) || isSponsoredSettings.hideStoreSection)) || !showComponentConfig.storeSelection;\r\n\r\n this.showWarning = ko.observable(false);\r\n\r\n this.disableStoreSelection = ko.observable(false);\r\n\r\n // Start CPG section\r\n this.selectedStore = ko.computed(() => {\r\n const storeId = this.ProviderId();\r\n let store = _.find(storeData.storeOptions, { Value: storeId.toString() });\r\n\r\n if (_.isUndefined(store) && model.ProviderId) {\r\n // store is missing while campaign has store info\r\n store = {\r\n IsCoOpStore: !_.isNull(model.LinkStoreId),\r\n LinkStoreId: model.LinkStoreId,\r\n Text: '',\r\n Value: model.ProviderId,\r\n };\r\n }\r\n\r\n return store;\r\n });\r\n\r\n this.hasValidStore = ko.computed(() => Number(this.ProviderId()) >= 0); // eslint-disable-line new-cap\r\n\r\n this.campaignSubTypeText = ko.computed(() => {\r\n const isCoOpStore = _.result(this.selectedStore(), 'IsCoOpStore');\r\n\r\n return isCoOpStore ?\r\n i18n.getString('ShoppingCampaign_CoOpStore_CampaignSubType') :\r\n i18n.getString('ShoppingCampaign_Default_CampaignSubType');\r\n });\r\n\r\n if (isBrandWideCashbackEnabled) {\r\n // When BrandOnly is enabled, the product scope should be set to default and the sales country should be set to US\r\n this.BrandOnly.subscribe((value) => {\r\n if (value) {\r\n this.productScope(this.scope.All);\r\n this.SalesCountry('US');\r\n }\r\n });\r\n }\r\n\r\n // Almost the same as BrandOnly(). We just need the pilot to short circuit the logic in case BrandOnly() is not available\r\n this.isBrandWideCashbackSelected = ko.computed(() => isBrandWideCashbackEnabled && this.BrandOnly());\r\n // End CPG section\r\n\r\n this.isAllFeedProducts = ko.observable(isAllFeedProducts);\r\n this.isFeedFilterChecked = ko.observable(false);\r\n this.isProductFilterChecked = ko.computed({\r\n read() {\r\n return this.hasFilteredProducts();\r\n },\r\n write(checked) {\r\n this.selectAllProducts(!checked);\r\n },\r\n }, this);\r\n this.isValidating = ko.observable(false);\r\n this.showFeedFilterValidationError = ko.computed(() => {\r\n const result = this.isValidating() && !this.FeedLabel() && !this.SalesCountry();\r\n\r\n return result;\r\n });\r\n this.isFeedFilterPickerEnabled = ko.observable(!!(this.FeedLabel() || this.SalesCountry()));\r\n this.originalSalesCountry = this.SalesCountry();\r\n this.isSalesCountryDisabled = editMode && !this.originalSalesCountry;\r\n this.showFeedFilterPickerValidationError = ko.computed(() => {\r\n const result = this.isValidating() && this.isFeedFilterPickerEnabled() && !this.FeedLabel() && !this.SalesCountry();\r\n\r\n return result && !this.isSalesCountryDisabled;\r\n });\r\n\r\n this.showFeedFilterPickerFeedLabelOnlyValidationError = ko.computed(() => {\r\n const result = this.isValidating() && this.isFeedFilterPickerEnabled() && !this.FeedLabel() && !this.SalesCountry();\r\n\r\n return result && this.isSalesCountryDisabled;\r\n });\r\n\r\n if (isShoppableAdsEnabled) {\r\n this.isCPSSelected.subscribe((isCPSSelected) => {\r\n if (isCPSSelected) {\r\n this.ShoppableAdsEnabled(false);\r\n }\r\n });\r\n }\r\n }\r\n\r\n selectAllProducts(value) {\r\n this.productScope.editing(value ? this.scope.All : this.scope.Filtered);\r\n }\r\n\r\n hasFilteredProducts() {\r\n return this.productScope() === this.scope.Filtered;\r\n }\r\n\r\n setProviderId(value) {\r\n this.ProviderId(value);\r\n }\r\n\r\n setFeedId(value) {\r\n this.FeedId(value);\r\n }\r\n\r\n isSelectedStoreAPlaceholderStore({ ProductCollectionAccounts, selectedStoreId }) {\r\n return this.shouldShowPlaceholderStoreIfExists &&\r\n !_.isUndefined(_.find(ProductCollectionAccounts, (a) => {\r\n return parseInt(a.Value, 10) === selectedStoreId && a.IsPlaceholder;\r\n }));\r\n }\r\n\r\n generateStoreText({ model, selectedStoreItem, isPlaceholderStore }) {\r\n if (this.shouldShowPlaceholderStoreIfExists && isPlaceholderStore) {\r\n return this.deps.gmcToMMCGridDeps.draftStoreName({ draftStoreId: model.ProviderId, i18n, isNewUII18n: false });\r\n }\r\n\r\n return _.propertyOf(selectedStoreItem)('Text') || model.ProviderId;\r\n }\r\n\r\n updatePriority() {\r\n let originalPriorityLocal = this.Priority();\r\n\r\n return (isCPSSelected) => {\r\n if (isCPSSelected) {\r\n originalPriorityLocal = this.Priority();\r\n this.Priority('High');\r\n } else {\r\n this.Priority(originalPriorityLocal);\r\n }\r\n };\r\n }\r\n}\r\n\r\nexport default ViewModel;\r\n","import BaseViewModel from '../common/base';\r\n\r\nimport ko from 'knockout';\r\n\r\nexport default class ViewModel extends BaseViewModel {\r\n constructor() {\r\n super();\r\n\r\n this.queries = ko.observableArray();\r\n this.queryOptions = ko.observableArray([]);\r\n this.showAddNewButton = ko.observable(true);\r\n this.isEditing = ko.observable(true);\r\n }\r\n\r\n isLastQuery(index) {\r\n return index() === this.queries().length - 1;\r\n }\r\n}\r\n\r\n","/*eslint new-cap:0 */\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport BaseViewModel from '../common/base';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nconst s$ProductCondition = window.globalLegacySchema.get('ProductCondition');\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/shopping-campaign');\r\n\r\nconst isCPGForBSCEnabled = Boolean(_.result(config.get('Permissions'), 'IsCPGForBSCEnabled', false));\r\nconst isSponsoredPilotEnabled = Boolean(_.result(config.get('Permissions'), 'IsSPAv2Enabled', false));\r\nconst isLocalInventoryAdV2Enabled = Boolean(_.result(config.get('Permissions'), 'IsLocalInventoryAdV2Enabled', false));\r\nconst ProductGroupSubTypeEnum = {\r\n standard: 1,\r\n coop: 2,\r\n all: 3,\r\n};\r\n\r\nexport default class ViewModel extends BaseViewModel {\r\n constructor(options = {}) {\r\n super();\r\n\r\n this.configSchema(s$ProductCondition, ['Attribute', 'Operand'], options.model, {\r\n Attribute: {\r\n isValid: (value) => {\r\n if (this.selectedCondition) {\r\n const condition = this.selectedCondition();\r\n\r\n if (condition.Value === 'Brand' || condition.Value === 'Id') {\r\n return value.length <= 500;\r\n }\r\n }\r\n return true;\r\n },\r\n message: i18n.getString('ProductExtension_SpecificProducts_FilterStringTooLong'),\r\n },\r\n });\r\n\r\n this.selected = ko.observable(true);\r\n this.showRemoveLink = ko.observable(false);\r\n\r\n this.productConditionOptions = ko.computed(() => {\r\n return _.filter(options.productConditionOptions, (productCondition) => {\r\n if (!isLocalInventoryAdV2Enabled && (productCondition.Value === 'Channel' || productCondition.Value === 'ChannelExclusivity')) {\r\n return false;\r\n }\r\n if ((isCPGForBSCEnabled || isSponsoredPilotEnabled) && options.isCoOpStoreSelected) {\r\n return productCondition.SubTypeFlag === ProductGroupSubTypeEnum.coop || productCondition.SubTypeFlag === ProductGroupSubTypeEnum.all;\r\n } else {\r\n return productCondition.SubTypeFlag !== ProductGroupSubTypeEnum.coop;\r\n }\r\n });\r\n });\r\n\r\n this.selectedCondition = ko.computed(() => {\r\n return _.find(this.productConditionOptions(), { Value: this.Operand() });\r\n });\r\n\r\n this.selectedCondition.subscribe((selected) => {\r\n const { ValueOptions } = selected;\r\n\r\n if (ValueOptions == null) {\r\n this.Attribute('');\r\n }\r\n });\r\n\r\n this.attributeOptions = ko.computed(() => {\r\n if (!_.isEmpty(this.selectedCondition()) && !_.isEmpty(this.selectedCondition().ValueOptions)) {\r\n return _.result(this.selectedCondition(), 'ValueOptions');\r\n }\r\n\r\n return [];\r\n });\r\n\r\n this.operandText = ko.computed(() => {\r\n return _.result(this.selectedCondition(), 'Text');\r\n });\r\n\r\n this.attributeText = ko.computed(() => {\r\n if (!_.isEmpty(this.attributeOptions())) {\r\n return _.result(_.find(this.attributeOptions(), { Value: this.Attribute() }), 'Text');\r\n }\r\n\r\n return this.Attribute();\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/shopping-campaign/viewmodel/campaign-creation/query-editor';\r\nimport template from '@bingads-webui-campaign-legacy/shopping-campaign/template/campaign-creation/query-editor.pug';\r\nimport uuid from '@bingads-webui-component-legacy/uuid/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/shopping-campaign');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = options;\r\n\r\n this.viewModel = new ViewModel(options);\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .glyphicon-remove': 'close',\r\n };\r\n }\r\n\r\n render() {\r\n this.$el.html(template({ i18n, uuid }));\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n return this;\r\n }\r\n\r\n close() {\r\n this.trigger('close');\r\n }\r\n\r\n validate() {\r\n return this.viewModel.validate();\r\n }\r\n\r\n setFocus() {\r\n this.$('.query-attribute', this.el).focus();\r\n }\r\n\r\n hasDynamicChildren() {\r\n return _.isEmpty(this.viewModel.selectedCondition()) ? false : _.propertyOf(this.viewModel.selectedCondition())('HasChild');\r\n }\r\n}\r\n","/*eslint new-cap:0 */\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/shopping-campaign/viewmodel/campaign-creation/product-group-editor';\r\nimport template from '@bingads-webui-campaign-legacy/shopping-campaign/template/campaign-creation/product-group-editor.pug';\r\nimport QueryEditorView from '@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/query-editor';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport withUiBlock from '@bingads-webui-component-legacy/uiblocker/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/shopping-campaign');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize({\r\n productConditionOptions = [],\r\n countryOfSale = 'US',\r\n maxQueriesPerGroup = 7,\r\n campaignCriterion: {\r\n Criterion: {\r\n ProductConditions = [],\r\n } = {},\r\n } = {},\r\n isCoOpStoreSelected = false,\r\n }) {\r\n this.viewModel = new ViewModel();\r\n\r\n this.queryEditorList = [];\r\n\r\n this.productConditionOptions = productConditionOptions;\r\n this.productConditions = ProductConditions;\r\n this.countryOfSale = countryOfSale;\r\n this.maxQueriesPerGroup = maxQueriesPerGroup;\r\n this.isCoOpStoreSelected = isCoOpStoreSelected;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .addNewQuery': 'addQueryClickHandler',\r\n 'click .btn-apply': 'apply',\r\n 'click .edit-query': 'edit',\r\n };\r\n }\r\n\r\n render() {\r\n this.$el.html(template({ i18n }));\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n if (_.isEmpty(this.productConditions) || !_.isArray(this.productConditions)) {\r\n this.addNewQuery();\r\n } else {\r\n _.each(this.productConditions, (condition) => {\r\n this.addNewQuery(condition);\r\n });\r\n this.apply();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n addQueryClickHandler() {\r\n if (_.isUndefined(this.lastQuery())) {\r\n this.addNewQuery();\r\n return;\r\n }\r\n\r\n if (!this.validate()) {\r\n this.lastQuery().setFocus();\r\n return;\r\n }\r\n\r\n //check if last query has dynamic children\r\n if (!this.lastQuery().hasDynamicChildren()) {\r\n this.addNewQuery();\r\n return;\r\n }\r\n\r\n Promise.resolve(this.getChildProductCondition(this.lastQuery()))\r\n .then((data) => {\r\n if (!_.isEmpty(data) && !_.isEmpty(data.DynamicQueryOption)) {\r\n this.productConditionOptions.push(data.DynamicQueryOption);\r\n }\r\n\r\n this.addNewQuery();\r\n });\r\n }\r\n\r\n addNewQuery(query) {\r\n if (!_.isUndefined(this.lastQuery())) {\r\n const index = _.findIndex(this.productConditionOptions, { Value: this.lastQuery().viewModel.Operand() });\r\n\r\n this.productConditionOptions.splice(index, 1);\r\n }\r\n\r\n let queryEditor = new QueryEditorView({\r\n productConditionOptions: _.clone(this.productConditionOptions),\r\n model: query || {},\r\n isCoOpStoreSelected: this.isCoOpStoreSelected,\r\n }).render();\r\n\r\n this.$('.query-list').append(queryEditor.$el);\r\n\r\n if (!_.isEmpty(this.queryEditorList)) {\r\n queryEditor.viewModel.showRemoveLink(true);\r\n\r\n this.lastQuery().viewModel.selected(false);\r\n this.lastQuery().viewModel.showRemoveLink(false);\r\n }\r\n\r\n this.queryEditorList.push(queryEditor);\r\n this.canAddNewQuery();\r\n\r\n queryEditor.on('close', () => {\r\n this.queryEditorList.pop();\r\n queryEditor.remove();\r\n\r\n this.productConditionOptions = _.clone(this.lastQuery().options.productConditionOptions);\r\n\r\n this.lastQuery().viewModel.selected(true);\r\n if (_.size(this.queryEditorList) > 1) {\r\n this.lastQuery().viewModel.showRemoveLink(true);\r\n }\r\n\r\n this.canAddNewQuery();\r\n });\r\n }\r\n\r\n lastQuery() {\r\n return _.last(this.queryEditorList);\r\n }\r\n\r\n canAddNewQuery() {\r\n if (_.size(this.queryEditorList) >= this.maxQueriesPerGroup) {\r\n this.viewModel.showAddNewButton(false);\r\n } else {\r\n this.viewModel.showAddNewButton(true);\r\n }\r\n }\r\n\r\n getChildProductCondition(lastQuery) {\r\n const url = `/Campaign/ProductAdExtensions.m/GetChildProductCondition?aid=${state.get('account_id')}&cid=${state.get('customer_id')}&uid=${state.get('user_id')}`;\r\n const data = {\r\n countryOfSale: this.countryOfSale ? this.countryOfSale : 'US',\r\n 'parent.Operand': lastQuery.viewModel.Operand(),\r\n 'parent.Attribute': lastQuery.viewModel.Attribute(),\r\n };\r\n\r\n //leverage jsdata cache\r\n return jsdata.Product.find(_.values(data).join(', '), { url, data, adapter: 'legacy'})\r\n .finally(withUiBlock())\r\n .catch(() => {\r\n this.viewModel.errors.add();\r\n });\r\n }\r\n\r\n validate() {\r\n return _.isUndefined(this.lastQuery()) || this.lastQuery().validate();\r\n }\r\n\r\n apply() {\r\n if (!this.validate()) {\r\n this.lastQuery().setFocus();\r\n return;\r\n }\r\n\r\n this.viewModel.queries(_.map(this.queryEditorList, (editor) => {\r\n return {\r\n Operand: editor.viewModel.operandText(),\r\n Attribute: editor.viewModel.attributeText(),\r\n };\r\n }));\r\n\r\n this.viewModel.isEditing(false);\r\n this.trigger('apply:queries');\r\n }\r\n\r\n edit() {\r\n this.viewModel.isEditing(true);\r\n }\r\n\r\n getValues() {\r\n this.apply();\r\n\r\n let params = {};\r\n\r\n _.each(this.queryEditorList, (editor, index) => {\r\n const model = editor.viewModel.toObject();\r\n\r\n params[`ProductCondition${index + 1}`] = model.Operand;\r\n params[`ProductValue${index + 1}`] = model.Attribute;\r\n });\r\n\r\n return params;\r\n }\r\n\r\n getQueries() {\r\n return _.map(this.queryEditorList, (editor) => {\r\n return editor.viewModel.toObject();\r\n });\r\n }\r\n}\r\n","/*eslint new-cap:0 */\r\nimport _ from 'underscore';\r\nimport React from 'react';\r\nimport { Toggle, Dropdown } from '@fluentui/react';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport edmCampaign from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\n\r\nexport class ExcludedStores extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { disable: props.startDisabled, checked: false, selectedItems: [], storeOptions: props.storeOptions };\r\n this.originalExcludedStores = [];\r\n if (props.campaignId) {\r\n this.loadExcludedStores(props.campaignId);\r\n }\r\n }\r\n\r\n enable(shouldEnable) {\r\n if (this.state.disable === shouldEnable) {\r\n this.setState({ disable: !shouldEnable, checked: false, selectedItems: [] });\r\n }\r\n }\r\n\r\n setExcludedStoreOptions(storeOptions) {\r\n this.setState({ storeOptions });\r\n }\r\n\r\n excludedStoreTitleText (item) {\r\n return this.props.i18n.get('ShoppingCampaign_Sponsored_ExcludedStores_Count').replace('{0}', item.length); //`${item.length} Excluded store(s)`;\r\n }\r\n\r\n dropDownChange(event, item) {\r\n const newSelectedItems = [...this.state.selectedItems];\r\n\r\n if (item.selected) {\r\n newSelectedItems.push(item.key);\r\n } else {\r\n const indexToRemove = newSelectedItems.indexOf(item.key);\r\n\r\n if (indexToRemove > -1) {\r\n newSelectedItems.splice(indexToRemove, 1);\r\n }\r\n }\r\n\r\n this.setState({selectedItems: newSelectedItems});\r\n }\r\n\r\n getCriterions(campaignToSave) {\r\n const idsToDelete = _.difference(this.originalExcludedStores, this.state.selectedItems);\r\n const idsToAdd = _.difference(this.state.selectedItems, this.originalExcludedStores);\r\n const deleteCriterion = this.getDeleteCriterion(campaignToSave.Id, idsToDelete);\r\n const newCriterion = this.getSelectedItemsCriterion(campaignToSave, idsToAdd);\r\n\r\n return [...deleteCriterion, ...newCriterion];\r\n }\r\n\r\n getSelectedItemsCriterion(campaignToSave, idsToAdd) {\r\n return _.map(idsToAdd, (id) => {\r\n let toReturn = {\r\n CriterionType: 'NegativeStore',\r\n Criterion: {\r\n Type: 'NegativeStore',\r\n NegativeStoreCriterion: {\r\n StoreId: id,\r\n },\r\n },\r\n };\r\n\r\n if (campaignToSave.Id) {\r\n toReturn.Campaign = {\r\n Id: campaignToSave.Id,\r\n };\r\n } else {\r\n toReturn.CampaignName = campaignToSave.Name;\r\n }\r\n\r\n return toReturn;\r\n });\r\n }\r\n\r\n getDeleteCriterion(campaignId, idsToDelete) {\r\n const storesToDeleteCriterion = _.filter(this.originalCriterion, (o) => _.contains(idsToDelete, o.Criterion.StoreId.toString()));\r\n let excludedStoreCriterion = _.map(storesToDeleteCriterion, (criterion) => {\r\n return {\r\n CriterionType: 'NegativeStore',\r\n Status: 'Deleted',\r\n Id: criterion.Id,\r\n Criterion: {\r\n Type: 'NegativeStore',\r\n NegativeStoreCriterion: {\r\n StoreId: criterion.Criterion.StoreId,\r\n },\r\n },\r\n Campaign: {\r\n Id: campaignId,\r\n },\r\n };\r\n });\r\n\r\n return excludedStoreCriterion;\r\n }\r\n\r\n loadExcludedStores(campaignId) {\r\n const filterString = `isof(Criterion,'Model.StoreCriterion')`; //eslint-disable-line\r\n const schemaName = 'CampaignCriterion';\r\n\r\n let entitySet = edmCampaign.currentAccount.Campaigns.$withKey(Number(campaignId));\r\n\r\n entitySet = entitySet[`${schemaName}s`][`Model.Negative${schemaName}`];\r\n\r\n jsdata[schemaName].findAll(\r\n {query: {$filter: filterString}},\r\n {\r\n entitySet,\r\n cacheResponse: false,\r\n bypassCache: true,\r\n headers: {\r\n lcid: pageContext.CultureLcid,\r\n },\r\n }\r\n ).then((storeCriterion) => {\r\n const excludedStoresSelected = _.map(storeCriterion, (item) => { return item.Criterion.StoreId.toString(); }); //eslint-disable-line\r\n if (excludedStoresSelected.length > 0) {\r\n const invalidExcludedStores = _.difference(excludedStoresSelected, this.props.storeOptions.map((a) => a.Value));\r\n const newStoreOptions = [...this.props.storeOptions];\r\n\r\n if (invalidExcludedStores.length > 0) {\r\n newStoreOptions.push(..._.map(invalidExcludedStores, (item) => {\r\n return {\r\n IsCoOpStore: true,\r\n LinkStoreId: parseInt(item),\r\n IsGlobalStore: false,\r\n Selected: false,\r\n Value: item,\r\n Text: `ID: ${item} [Invalid ID]`,\r\n };\r\n }));\r\n }\r\n\r\n this.setState({ selectedItems: excludedStoresSelected, disabled: false, checked: true, storeOptions: newStoreOptions });\r\n this.originalExcludedStores = [...excludedStoresSelected];\r\n this.originalCriterion = storeCriterion;\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n let ExcludedStoreToggleOptions = {\r\n onText: 'Yes',\r\n offText: 'No',\r\n disabled: this.state.disable,\r\n checked: this.state.checked,\r\n onChange: (ev, checked) => {\r\n this.setState( { checked, selectedItems: [] } );\r\n },\r\n };\r\n\r\n let ExcludedStoreDropdownOptions = {\r\n placeholder: 'None',\r\n multiSelect: true,\r\n options: _.map(this.state.storeOptions, (x) => {\r\n return {key: x.Value, text: x.Text};\r\n }),\r\n onRenderTitle: this.excludedStoreTitleText.bind(this),\r\n onChange: this.dropDownChange.bind(this),\r\n selectedKeys: this.state.selectedItems,\r\n errorMessage: this.state.selectedItems.length > 10 ? this.props.i18n.get('ShoppingCampaign_Sponsored_ExcludedStores_Count_Error') : undefined,\r\n hidden: !this.state.checked,\r\n };\r\n\r\n return React.createElement('div', null,\r\n React.createElement(Toggle, ExcludedStoreToggleOptions, null),\r\n React.createElement(Dropdown, ExcludedStoreDropdownOptions, null)\r\n );\r\n }\r\n}\r\n","export const dropdownStyle = {\r\n dropdown: {\r\n width: '300px',\r\n },\r\n};\r\n\r\nexport default {\r\n dropdownStyle,\r\n};\r\n","/*eslint new-cap:0 */\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport Promise from 'bluebird';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/shopping-campaign/viewmodel/campaign-creation/shopping-settings';\r\nimport template from '@bingads-webui-campaign-legacy/shopping-campaign/template/campaign-creation/shopping-settings.pug';\r\nimport ProductGroupView from '@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/product-group-editor';\r\nimport BidSettingView from '@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/bid-setting';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport { defaultMSStoreSuggestionBid } from '@bingads-webui-campaign-legacy/budget/shared/defaultBid';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport withUiBlock from '@bingads-webui-component-legacy/uiblocker/index';\r\nimport { setUrlParameter } from '@bingads-webui/url-util';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport { cloneDeep } from '@bingads-webui-universal/primitive-utilities';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { ExcludedStores } from '@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/excluded-stores';\r\nimport { CategorizedDropdownList } from '@bingads-webui-campaign-react/categorized-dropdown-list';\r\nimport { FilterOptionsGroup, FilterOptionsGroupDynamic, findTargetNodeAndAncestorsNodes, CategoryOperandDeepnessMapping } from '@bingads-webui-campaign-react/filter-options-group';\r\nimport { WrappedFeedFilter, WrappedFeedFilterPicker } from '@bingads-webui-campaign-react/feed-filter';\r\nimport styles from '@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/shopping-settings-styles';\r\nimport { Toggle } from '@fluentui/react';\r\nimport { getShoppingSettingByScenario, SettingScenarios } from './utils';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/shopping-campaign');\r\n\r\nconst offerMaxLimit = 1000000;\r\nconst isLocalInventoryAdsEnabled = Boolean(_.result(config.get('Permissions'), 'IsLocalInventoryAdsEnabled'));\r\nconst isCPGForBSCEnabled = Boolean(_.result(config.get('Permissions'), 'IsCPGForBSCEnabled', false));\r\nconst isSponsoredPilotEnabled = Boolean(_.result(config.get('Permissions'), 'IsSPAv2Enabled', false));\r\nconst IsEnhancedPAFilterP1Enabled = Boolean(_.result(config.get('Permissions'), 'IsEnhancedPAFilterP1Enabled'));\r\nconst IsEnhancedPAFilterP2Enabled = Boolean(_.result(config.get('Permissions'), 'IsEnhancedPAFilterP2Enabled'));\r\nconst isLocalInventoryAdV2Enabled = Boolean(_.result(config.get('Permissions'), 'IsLocalInventoryAdV2Enabled', false));\r\nconst isCategoryandIdfilterforaudiencecampaiginEnabled = Boolean(_.result(config.get('Permissions'), 'IsCategoryandIdfilterforaudiencecampaiginEnabled', false));\r\nconst isDomesticSimplifiedChineseEnabled = Boolean(_.result(config.get('Permissions'), 'IsDomesticSimplifiedChineseEnabled', false));\r\n\r\nconst storeCategory = 'Stores';\r\nconst FeedTypeMapping = {\r\n 'DynamicDataToursAndActivitiesFeed': i18n.getString('DynamicDataToursAndActivitiesFeed'),\r\n 'DynamicDataAutosListingFeed': i18n.getString('DynamicDataAutosListingFeed'),\r\n 'DynamicDataAutosAggregateFeed': i18n.getString('DynamicDataAutosAggregateFeed'),\r\n 'DynamicDataHotelsAndVacationRentalsFeed': i18n.getString('DynamicDataHotelsAndVacationRentalsFeed'),\r\n 'DynamicDataEventsFeed': i18n.getString('DynamicDataEventsFeed'),\r\n 'DynamicDataRealEstateListingFeed': i18n.getString('DynamicDataRealEstateListingFeed'),\r\n 'DynamicDataRealEstateAggregateFeed': i18n.getString('DynamicDataRealEstateAggregateFeed'),\r\n 'DynamicDataCreditCardsFeed': i18n.getString('DynamicDataCreditCardsFeed'),\r\n 'DynamicDataCustomFeed': i18n.getString('DynamicDataCustomFeed'),\r\n 'DynamicDataProfessionalServiceFeed': i18n.getString('DynamicDataProfessionalServiceFeed'),\r\n 'DynamicDataCruisesFeed': i18n.getString('DynamicDataCruisesFeed'),\r\n};\r\n\r\nconst DEFAULT_SALES_COUNTRY = 'US';\r\n\r\nexport default class View extends Backbone.View {\r\n initialize({\r\n model = {},\r\n data = {\r\n ProductConditionOptions: [],\r\n CampaignCriterionsData: {},\r\n ProductCollectionAccounts: [],\r\n SalesCountryCollection: [],\r\n DynamicDataFeedConditionOptions: {},\r\n CategoryData: [],\r\n },\r\n feedData = null,\r\n campaignType = 'Shopping',\r\n campaignSubType = null,\r\n campaignId = undefined,\r\n isStoreValid = true,\r\n isSponsoredSettings = {\r\n isSponsoredCampaign: false,\r\n isSponsoredPilotEnabled: false,\r\n isSPBCampaign: false,\r\n isSPBOptInAvailable: false,\r\n shouldUseNewMmcApiForSpa: false,\r\n },\r\n editMode,\r\n activityLogger,\r\n bidStrategyUpdater = null,\r\n shouldShowPlaceholderStoreIfExists = false,\r\n deps = {},\r\n isSearchCampaign = false,\r\n isMSStoreAdsGAWorkflow = false,\r\n isMMAForRetailWorkflow = false,\r\n ccJsData = null,\r\n settingScenarioName,\r\n onStoreSelectionChange,\r\n onSalesCountryChange,\r\n onFeedLabelChange,\r\n setProductLoading,\r\n isCPSSelected,\r\n isAllFeedProducts,\r\n updateProductConditionOptions,\r\n updateChildLevelProductCondition,\r\n onSelectFilterProducts,\r\n accountCountryCode,\r\n }) {\r\n this.isMSStoreAdsGAWorkflow = isMSStoreAdsGAWorkflow;\r\n this.isMMAForRetailWorkflow = isMMAForRetailWorkflow;\r\n this.ccJsData = ccJsData;\r\n this.accountryCountry = null;\r\n this.processProductData(data);\r\n const permissions = config.get('Permissions') || {};\r\n\r\n this.campaignType = campaignType;\r\n this.campaignSubType = campaignSubType;\r\n this.isAudienceCampaign = campaignType === 'Audience';\r\n this.campaignId = campaignId;\r\n this.isSponsoredSettings = isSponsoredSettings;\r\n this.isStoreValid = isStoreValid && data.ProductCollectionAccounts.length > 0;\r\n this.activityLogger = activityLogger;\r\n this.bidStrategyUpdater = bidStrategyUpdater;\r\n this.isEnabledDynamicFeedCampaign = Boolean(_.result(permissions, 'IsEnabledForDynamicFeedCampaign')) &&\r\n this.isAudienceCampaign;\r\n this.feedData = feedData;\r\n this.shouldShowPlaceholderStoreIfExists = shouldShowPlaceholderStoreIfExists;\r\n this.selectedCategory = null;\r\n this.DynamicDataFeedConditionOptions = data.DynamicDataFeedConditionOptions;\r\n this.channelKeys = ['Channel', 'ChannelExclusivity'];\r\n this.channelTexts = _.map(_.filter(data.ProductConditionOptions, (i) => _.contains(this.channelKeys, i.Value)), (i) => i.Text);\r\n this.isToggledByNewComponent = false;\r\n this.filterDataComesFrom = 'None';\r\n this.isDynamicDataFeedFiltersValid = false;\r\n this.DynamicDataFeedFiltersData = null;\r\n this.isDynamicDataFeedBasedCampaign = campaignSubType === 'AudienceDynamicFeedBased';\r\n this.deps = deps;\r\n this.newI18n = this.deps.i18nNewDesign;\r\n this.isSearchCampaign = isSearchCampaign;\r\n // 'Default' is search campaign. Search Campaign with IsMMAForRetailEnabled could set StoreId/product filter on the CampaignSettingPage\r\n this.enableOperator = IsEnhancedPAFilterP1Enabled && !(this.campaignType === 'Shopping' || this.campaignType === 'Default');\r\n this.enableMultiSelect = IsEnhancedPAFilterP1Enabled && !(this.campaignType === 'Shopping' || this.campaignType === 'Default');\r\n\r\n this.isWindowsStoreAdsEnabled = isMSStoreAdsGAWorkflow;\r\n this.isWindowsStoreAdsManualCPAEnabled = Boolean(_.result(permissions.dynamic, 'WindowsStoreAdsManualCPA', false));\r\n this.isWindowsStoreAd = (this.isSponsoredSettings.isSponsoredCampaign && this.isWindowsStoreAdsEnabled) || isMSStoreAdsGAWorkflow;\r\n this.isWindowsStoreAdWithManualCPA = (this.isWindowsStoreAd && this.isWindowsStoreAdsManualCPAEnabled) || isMSStoreAdsGAWorkflow;\r\n this.isShoppableAdsEnabled = Boolean(_.result(permissions.dynamic, 'ShoppableAds', false));\r\n this.IsDomesticSimplifiedChineseEnabled = Boolean(_.result(permissions, 'IsDomesticSimplifiedChineseEnabled', false));\r\n this.categoryOptions = this.buildCategoryOptions(data.CategoryData);\r\n this.customerSelectedProductConditions = _.get(data, ['CampaignCriterionsData', 'Criterion', 'ProductConditions']) || [];\r\n this.showExcludedStores = this.shouldShowExcludedStores();\r\n this.isSalesCountryRemovedForSpa = Boolean(_.result(permissions.dynamic, 'SponsoredProductAdsGlobalization', false)) && (campaignSubType === 'ShoppingSponsoredProductAd');\r\n this.isBrandWideCashbackEnabled = Boolean(_.result(permissions.dynamic, 'BrandWideCashback', false)) && (campaignSubType === 'ShoppingSponsoredProductAd') && isSponsoredSettings.isSPBCampaign;\r\n this.isPAAIMFeedLabelEnabled = Boolean(_.result(permissions.dynamic, 'PAAIMFeedLabel', false));\r\n\r\n this.onSelectionChange = this.onSelectionChange.bind(this);\r\n this.onApplyFilterNewComponent = this.onApplyFilterNewComponent.bind(this);\r\n this.clickApplyButton = this.clickApplyButton.bind(this);\r\n this.getAccountCountry = this.getAccountCountry.bind(this);\r\n this.getSalesCountryForProductFilter = this.getSalesCountryForProductFilter.bind(this);\r\n\r\n // When storeChanged(...) is called for the first time (the first store - during init of the view), we do want to update the bid strategy if we can.\r\n this.previousStore = { IsCoOpStore: null };\r\n\r\n this.editMode = editMode == null ? !_.isEmpty(model) : editMode;\r\n this.model = model;\r\n this.isPAAIMStoreSetting = settingScenarioName === SettingScenarios.PAAIMStoreSetting;\r\n this.isPAAIMProductSetting = settingScenarioName === SettingScenarios.PAAIMProductSetting;\r\n this.isFeedLabelEnabled = Boolean(_.result(permissions.dynamic, 'FeedLabel', false)) && !_.result(permissions.dynamic, 'FeedLabelBlockList', false);\r\n this.isFeedProductFilterEnabled = this.isFeedLabelEnabled &&\r\n (\r\n this.isMMAForRetailWorkflow || // Search campaign with IsMMAForRetailEnabled pilot enable. Only shown in setting page\r\n (this.campaignType === 'Shopping' && this.campaignSubType === null) || // search shopping campaign for creation/setting page\r\n (this.campaignType === 'Audience' && this.campaignSubType === 'AudienceFeedBased' && this.isPAAIMFeedLabelEnabled) // audience shopping campaign for creation/setting page\r\n );\r\n this.isFeedFilterEnabled = this.isFeedLabelEnabled && (this.campaignType === 'Shopping' && this.campaignSubType === 'ShoppingSmartAds'); // smart shopping campaign for creation/setting page\r\n\r\n this.isExistingFeedFilter = this.isFeedProductFilterEnabled || this.isFeedFilterEnabled;\r\n this.showComponentConfig = getShoppingSettingByScenario({\r\n campaignSubType,\r\n isExistingFeedFilter: this.isExistingFeedFilter,\r\n scenario: settingScenarioName,\r\n });\r\n this.onStoreSelectionChange = onStoreSelectionChange;\r\n this.onSalesCountryChange = onSalesCountryChange;\r\n this.onFeedLabelChange = onFeedLabelChange;\r\n this.setProductLoading = setProductLoading || _.noop;\r\n this.updateProductConditionOptions = updateProductConditionOptions;\r\n this.updateChildLevelProductCondition = updateChildLevelProductCondition;\r\n this.onSelectFilterProducts = onSelectFilterProducts;\r\n this.accountCountryCode = accountCountryCode;\r\n if (isSponsoredSettings.isSPBOptInAvailable || isSponsoredSettings.shouldUseNewMmcApiForSpa || this.isWindowsStoreAdWithManualCPA) {\r\n this.data = data;\r\n if (this.isWindowsStoreAd) {\r\n this.updateStoreDataForWindowsStore();\r\n } else {\r\n this.updateStoreDataAndGlobalStoreForSpaSpb(isSponsoredSettings.isSPBCampaign);\r\n }\r\n } else {\r\n // storeData\r\n this.storeData = {\r\n storeOptions: [...data.ProductCollectionAccounts],\r\n excludedStoreOptions: null,\r\n };\r\n\r\n let globalStore = null;\r\n const globalStoreIndex = _.findIndex(this.storeData.storeOptions, (item) => item.IsGlobalStore);\r\n\r\n if (globalStoreIndex >= 0) {\r\n // The global store should not be included in the list as-is. Remove and save for later.\r\n globalStore = this.storeData.storeOptions[globalStoreIndex];\r\n this.globalStoreId = globalStore.LinkStoreId;\r\n this.storeData.storeOptions.splice(globalStoreIndex, 1);\r\n }\r\n\r\n if (isSponsoredSettings.isSponsoredPilotEnabled) {\r\n // If SPAv2 is enabled, then v1 campaigns cannot be created.\r\n // Modify the store list according to the scenario:\r\n // - Shopping campaign creation (!isSponsoredCampaign), no CoOp stores.\r\n // - SPAv2 campaign creation (isSponsoredCampaign), only CoOp stores (and global store).\r\n this.storeData.storeOptions = _.filter(this.storeData.storeOptions, (item) => item.IsCoOpStore === isSponsoredSettings.isSponsoredCampaign);\r\n\r\n if (isSponsoredSettings.isSponsoredCampaign) {\r\n this.storeData.excludedStoreOptions = [...this.storeData.storeOptions];\r\n if (globalStore && !this.isWindowsStoreAdsEnabled) {\r\n globalStore.Text = i18n.get('ShoppingCampaign_Sponsored_AllLinkedStores');\r\n this.storeData.storeOptions.splice(0, 0, globalStore);\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.viewModel = new ViewModel({\r\n model,\r\n editMode: this.editMode,\r\n data,\r\n isShoppableAdsEnabled: this.isShoppableAdsEnabled,\r\n isLocalInventoryAdsEnabled,\r\n storeData: this.storeData,\r\n isSponsoredSettings: this.isSponsoredSettings,\r\n isWindowsStoreAdsEnabled: this.isWindowsStoreAdsEnabled,\r\n isWindowsStoreAdsManualCPAEnabled: this.isWindowsStoreAdsManualCPAEnabled,\r\n isFeedLabelEnabled: this.isFeedLabelEnabled,\r\n campaignType: this.campaignType,\r\n campaignSubType: this.campaignSubType,\r\n isEnabledDynamicFeedCampaign: this.isEnabledDynamicFeedCampaign,\r\n IsDomesticSimplifiedChineseEnabled: this.IsDomesticSimplifiedChineseEnabled,\r\n shouldShowPlaceholderStoreIfExists: this.shouldShowPlaceholderStoreIfExists,\r\n deps: this.deps,\r\n isSearchCampaign: this.isSearchCampaign,\r\n isExistingFeedFilter: this.isExistingFeedFilter,\r\n isSalesCountryRemovedForSpa: this.isSalesCountryRemovedForSpa,\r\n showComponentConfig: this.showComponentConfig,\r\n isCPSSelected,\r\n isAllFeedProducts,\r\n // Simpler than getAccountCountry\r\n accountCountryCode: this.accountCountryCode,\r\n isBrandWideCashbackEnabled: this.isBrandWideCashbackEnabled,\r\n });\r\n\r\n if (this.isEnabledDynamicFeedCampaign && this.isDynamicDataFeedBasedCampaign && this.editMode) {\r\n // make the MT change for feed id from ProviderId to FeedId campatible\r\n const feedId = this.model.FeedId || this.model.ProviderId;\r\n\r\n this.selectedFeed = _.find(this.feedData, (item) => item.Id === feedId.toString());\r\n if (!this.selectedFeed) {\r\n this.activityLogger.error(`can not find Feed data, feedId is ${feedId}`);\r\n }\r\n this.selectedCategory = this.selectedFeed.FeedType;\r\n // find the intersection elements\r\n this.defaultSelectedDataSource = [];\r\n\r\n const dataSource = this.DynamicDataFeedConditionOptions[this.selectedCategory];\r\n\r\n this.defaultSelectedDataSourceHelper(dataSource, this.customerSelectedProductConditions);\r\n\r\n this.viewModel.setFeedId(feedId.toString());\r\n } else if (IsEnhancedPAFilterP1Enabled && this.editMode) {\r\n this.defaultSelectedDataSource = [];\r\n let customerSelectedProductConditionsLocal = this.customerSelectedProductConditions;\r\n\r\n if (IsEnhancedPAFilterP2Enabled && this.campaignType === 'Audience') {\r\n customerSelectedProductConditionsLocal = this.customerSelectedProductConditions.filter((productCondition) => !productCondition.Operand.startsWith('Category'));\r\n this.setCategoryOptionsSelection(this.customerSelectedProductConditions.filter((productCondition) => productCondition.Operand.startsWith('Category')));\r\n }\r\n this.defaultSelectedDataSourceHelper(data.ProductConditionOptions, customerSelectedProductConditionsLocal);\r\n }\r\n\r\n this.productGroup = null;\r\n this.productConditionOptions = data.ProductConditionOptions;\r\n this.productConditionOptionsOrigin = data.ProductConditionOptions;\r\n\r\n // For Audience Campaign we don't support Id/Category conditions\r\n if (this.isAudienceCampaign) {\r\n if (!isCategoryandIdfilterforaudiencecampaiginEnabled) {\r\n this.productConditionOptions = _.reject(this.productConditionOptions, (productConditionOption) =>\r\n ['Id', 'CategoryL1'].indexOf(productConditionOption.Value) >= 0,\r\n );\r\n }\r\n }\r\n\r\n this.campaignCriterion = data.CampaignCriterionsData;\r\n\r\n this.viewModel.SalesCountry.subscribe((value) => {\r\n this.viewModel.selectAllProducts(true);\r\n // in paaim product setting componennt, we only reset feedlabel when sales country vaue not null\r\n if (!this.isPAAIMProductSetting || value) {\r\n this.viewModel.FeedLabel(null);\r\n }\r\n this.removeProductGroup();\r\n this.validateProductOfferCount();\r\n if (_.isFunction(this.onSalesCountryChange)) {\r\n this.onSalesCountryChange(value);\r\n }\r\n });\r\n\r\n this.viewModel.FeedLabel.subscribe((value) => {\r\n this.viewModel.selectAllProducts(true);\r\n this.removeProductGroup();\r\n if (!this.isPAAIMProductSetting || value) {\r\n this.viewModel.SalesCountry(null);\r\n }\r\n // this is to set the product filter top conditions from getProductScope API, to avoid another call\r\n // but we stil need call get account since there are child conditions required the account country\r\n this.productConditionOptions = this.productConditionOptionsOrigin;\r\n this.validateProductOfferCount();\r\n });\r\n\r\n this.viewModel.productScope.subscribe((scope) => {\r\n if (this.activityLogger) {\r\n this.activityLogger.signal(`shopping campaign product scope change: ${scope}`, 'shopping campaign settings');\r\n }\r\n if (scope === 'All') {\r\n this.triggerChangeEvent();\r\n }\r\n this.validateProductOfferCount();\r\n });\r\n\r\n this.viewModel.ProviderId.subscribe(() => {\r\n this.validateProductOfferCount();\r\n });\r\n\r\n if (isCPGForBSCEnabled || isSponsoredSettings.isSponsoredCampaign) {\r\n this.viewModel.selectedStore.subscribe((selectedStore) => {\r\n this.storeChanged(selectedStore);\r\n });\r\n\r\n if (!this.isEnabledDynamicFeedCampaign) {\r\n // shopping campaign select the first store as default\r\n this.storeChanged(this.viewModel.selectedStore());\r\n }\r\n }\r\n\r\n if (this.isEnabledDynamicFeedCampaign) {\r\n this.viewModel.FeedId.subscribe((feedId) => {\r\n this.trigger('feedChanged', feedId);\r\n });\r\n }\r\n\r\n if (this.activityLogger) {\r\n _.each(this.viewModel.fields, (field) => {\r\n this.viewModel[field].subscribe((value) => {\r\n this.activityLogger.signal(\r\n `shopping campaign settings field change ${field} : ${value}`,\r\n 'shopping campaign settings',\r\n );\r\n });\r\n });\r\n }\r\n }\r\n\r\n renderBrandOnlyToggle() {\r\n const containerSelector = '.brand-wide-cashback-toggle-container';\r\n const props = {\r\n label: i18n.getString('ShoppingCampaign_Sponsored_Enable_BrandWideCashback'),\r\n disabled: this.editMode,\r\n onChanged: this.onBrandWideCashbackToggleChange.bind(this),\r\n defaultChecked: this.viewModel.BrandOnly(),\r\n inlineLabel: true,\r\n };\r\n\r\n ReactDOM.unmountComponentAtNode(this.$(containerSelector).get(0));\r\n ReactDOM.render(React.createElement(Toggle, props, null), this.$(containerSelector).get(0));\r\n }\r\n\r\n onBrandWideCashbackToggleChange(newToggleState) {\r\n if (this.isBrandWideCashbackEnabled) {\r\n this.viewModel.BrandOnly(newToggleState);\r\n }\r\n }\r\n\r\n // OData will return keys like ProductCondition_Condition_NEW for Condition valueOptions\r\n processProductConditionValueOptions(valueOptions) {\r\n if (!_.isEmpty(valueOptions)) {\r\n const options = valueOptions.map((option) => ({\r\n ...option,\r\n Text: option.Text && option.Text.startsWith('ProductCondition_') ? i18n.getString(option.Text) : option.Text,\r\n }));\r\n\r\n return options;\r\n }\r\n\r\n return valueOptions;\r\n }\r\n\r\n processProductConditionOptions(productConditionOptions = []) {\r\n // For MS store ads campaign, MPN is the only supported filter option, which will be mapped to App ID.\r\n // Change the text to 'App ID' to avoid any misunderstanding.\r\n if (this.isMSStoreAdsGAWorkflow) {\r\n const result = _.filter(productConditionOptions, (productConditionOption) => {\r\n return productConditionOption.Value === 'MPN';\r\n }).map((productConditionOption) => ({\r\n ...productConditionOption,\r\n Text: i18n.getString('ProductCondition_AppId'),\r\n }));\r\n\r\n return result;\r\n }\r\n\r\n return productConditionOptions.map((option) => ({\r\n ...option,\r\n Text: i18n.getString(`ProductCondition_${option.Value}`),\r\n ValueOptions: _.isArray(option.ValueOptions) ? this.processProductConditionValueOptions(option.ValueOptions) : null,\r\n }));\r\n }\r\n\r\n processSalesCountryCollection(salesCountryCollection = []) {\r\n return _.map(salesCountryCollection, (option) => ({\r\n ...option,\r\n Text: i18n.getString(`UserCountry_${option.Value}`),\r\n }));\r\n }\r\n\r\n processProductData(productData) {\r\n productData.ProductConditionOptions = this.processProductConditionOptions(productData.ProductConditionOptions);\r\n productData.SalesCountryCollection = this.processSalesCountryCollection(productData.SalesCountryCollection);\r\n }\r\n\r\n shouldShowExcludedStores() {\r\n // dont show excluded stores in any campaign that is not a sponsored campaign.\r\n if (!this.isSponsoredSettings.isSponsoredCampaign) {\r\n return false;\r\n }\r\n\r\n // dont show excluded stores in WindwosStoreAds or regular SPA/SPB campaigns using the new API\r\n if (this.isWindowsStoreAdsEnabled ||\r\n this.isSponsoredSettings.isSPBOptInAvailable ||\r\n this.isSponsoredSettings.shouldUseNewMmcApiForSpa\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n updateStoreDataAndGlobalStoreForSpaSpb(isSPBCampaign) {\r\n if (!this.isSponsoredSettings.isSPBOptInAvailable && !this.isSponsoredSettings.shouldUseNewMmcApiForSpa) {\r\n return;\r\n }\r\n\r\n const filteredStoreList = _.filter(this.data.ProductCollectionAccounts, (store) => {\r\n return store.AdditionalValues &&\r\n ((isSPBCampaign && store.AdditionalValues.IsSPB) ||\r\n (!isSPBCampaign && store.AdditionalValues.IsSPA));\r\n });\r\n\r\n this.storeData = {\r\n storeOptions: [],\r\n excludedStoreOptions: [...filteredStoreList],\r\n };\r\n\r\n const globalStoreList = _.filter(this.data.ProductCollectionAccounts, (store) => store.IsGlobalStore);\r\n let globalStore = null;\r\n\r\n if (globalStoreList.length === 1) {\r\n globalStore = { ...globalStoreList[0] };\r\n globalStore.Text = i18n.get('ShoppingCampaign_Sponsored_GlobalRetailerNetworkStores');\r\n this.globalStoreId = globalStore.LinkStoreId;\r\n this.storeData.storeOptions = [globalStore];\r\n }\r\n }\r\n\r\n updateStoreDataForWindowsStore() {\r\n const filteredStoreList = _.filter(\r\n this.data.ProductCollectionAccounts,\r\n (store) => !store.IsGlobalStore && store.AdditionalValues && store.AdditionalValues.IsMicrosoftStore,\r\n );\r\n\r\n this.storeData = {\r\n storeOptions: filteredStoreList,\r\n excludedStoreOptions: [],\r\n };\r\n }\r\n\r\n buildCategoryOptions(categoryData) {\r\n return {\r\n Text: i18n.getString('ProductCondition_Category'),\r\n Value: 'Category',\r\n HasChild: true,\r\n SubTypeFlag: 3,\r\n ValueOptions: categoryData,\r\n };\r\n }\r\n\r\n setCategoryOptionsSelection(selectedCategories) {\r\n const hasSelectedCategory = selectedCategories.length > 0;\r\n const clonedCategoryData = cloneDeep(this.categoryOptions.ValueOptions);\r\n\r\n const traverseCategories = (categories, deepness, callback) => {\r\n categories.forEach((category) => {\r\n category.deepness = deepness;\r\n // eslint-disable-next-line callback-return\r\n callback(category);\r\n if (category.Children) {\r\n traverseCategories(category.Children, deepness + 1, callback);\r\n }\r\n });\r\n };\r\n const selectedCategoriesEachLevel = selectedCategories.reduce((acc, category) => {\r\n acc[CategoryOperandDeepnessMapping[category.Operand]] = category.Attribute.split(';;');\r\n return acc;\r\n }, {});\r\n\r\n // Category is not available for MS store ads campaign\r\n if (clonedCategoryData) {\r\n traverseCategories(clonedCategoryData, 0, (category) => {\r\n if (_.contains(selectedCategoriesEachLevel[category.deepness], category.Text)) {\r\n category.Selected = true;\r\n }\r\n });\r\n }\r\n\r\n // If we want to seamlessly migrate old data, this is necessary.\r\n // Old data has selections for L1 and its child node for example.\r\n // This deselects unnecessary selections to migrate data for new component.\r\n const validateAndFix = (nodes) => {\r\n _.each(nodes, (node) => {\r\n if (node.Children.length > 0) {\r\n let childSelected = false;\r\n\r\n _.each(node.Children, (childNode) => {\r\n if (childNode.Selected) {\r\n childSelected = true;\r\n }\r\n });\r\n\r\n validateAndFix(node.Children);\r\n\r\n // If any child nodes are selected, deselect the parent node.\r\n if (node.Selected && childSelected) {\r\n node.Selected = false;\r\n }\r\n }\r\n });\r\n };\r\n\r\n validateAndFix(clonedCategoryData);\r\n\r\n if (hasSelectedCategory) {\r\n this.defaultSelectedDataSource.push({\r\n ...this.categoryOptions,\r\n PresetOperator: selectedCategories[0].Operator,\r\n ValueOptions: clonedCategoryData,\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Updates the view according to whether the Sponsored campaign cashback Opt-in is selected or not.\r\n * Note: at the moment the method is expected to be used only for SPA/SPB (aka \"sponsored\") campaigns scenarios only.\r\n *\r\n * The shopping settings owned sections updated as follows:\r\n *\r\n * I. when `isEnabled === true`\r\n * - the campaign priorities are set to Medium and the control is made read-only\r\n * - the Default bid section is hidden\r\n * - the stores collection is switched to SPB stores\r\n * - the name of the SPB global store is displayed as \"All retailer stores\"\r\n *\r\n * II. when `isEnabled === false`\r\n * - the campaign priorities are made editable\r\n * - the Default bid section is shown\r\n * - the stores collection is switched to SPA stores\r\n * - the name of the SPA global store is displayed as \"All linked stores\"\r\n * @param {Boolean} isEnabled - specifies whether the Sponsored campaign cashback Opt-in checkbox is checked or not\r\n * @returns {void}\r\n */\r\n setIsSponsoredCampaignCashbackEnabled(isEnabled) {\r\n this.viewModel.isSPBCampaign(isEnabled);\r\n\r\n this.updateStoreDataAndGlobalStoreForSpaSpb(isEnabled);\r\n this.viewModel.storeOptions(this.storeData.storeOptions);\r\n this.viewModel.excludedStoreOptions(this.storeData.excludedStoreOptions);\r\n\r\n if (this.excludedStores) {\r\n this.excludedStores.setExcludedStoreOptions(this.storeData.excludedStoreOptions);\r\n }\r\n }\r\n\r\n // This method handles setting the default selected value in the PA filter function.\r\n defaultSelectedDataSourceHelper(dataSource, customerSelectedProductConditions) {\r\n const customerSelectedProductConditionsCopy = _.map(customerSelectedProductConditions, _.clone);\r\n\r\n // for each operand we get that has data.\r\n customerSelectedProductConditionsCopy.forEach((customerSelectedProductCondition) => {\r\n let selectedProductConditionItem;\r\n\r\n //First get the operand data that has a value.\r\n for (let i = 0; i < dataSource.length; i++) {\r\n const ds = dataSource[i];\r\n\r\n //We need to map the operands if this is migrated from legacy, as they may not match the values.\r\n if (!this.isDynamicDataFeedBasedCampaign && ds && ds.Value === customerSelectedProductCondition.Operand) {\r\n customerSelectedProductCondition.Operand = ds.Text;\r\n }\r\n const { target } = findTargetNodeAndAncestorsNodes(ds, customerSelectedProductCondition.Operand);\r\n\r\n if (target) {\r\n selectedProductConditionItem = target;\r\n break;\r\n }\r\n }\r\n\r\n //if we have found an operand with a value:\r\n if (selectedProductConditionItem) {\r\n const clonedItem = _.clone(selectedProductConditionItem);\r\n\r\n clonedItem.PresetOperator = customerSelectedProductCondition.Operator;\r\n // eslint-disable-next-line no-negated-condition\r\n if (!clonedItem.ValueOptions) {\r\n clonedItem.PresetValue = this.multilineValueInputProcessor(customerSelectedProductCondition.Attribute);\r\n } else {\r\n const valueOptions = clonedItem.ValueOptions;\r\n\r\n const findHelper = (valueOption, valueB) => {\r\n if (valueOption.Value.toUpperCase() === valueB.toUpperCase()) {\r\n return true;\r\n } else if (valueOption.Text.toUpperCase() === valueB.toUpperCase()) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n // New feature, We can now select multiple values.\r\n const selectedValueArray = customerSelectedProductCondition.Attribute.split(';;');\r\n // Keep this for single-select just in case.\r\n const selectedValueOption = _.find(valueOptions, (valueOption) => findHelper(valueOption, selectedValueArray[0]));\r\n\r\n let selectedValueOptions = [];\r\n\r\n selectedValueArray.forEach((e) => {\r\n selectedValueOptions.push(_.find(valueOptions, (valueOption) => findHelper(valueOption, e)));\r\n });\r\n\r\n // If this is migrated from legacy, we will need to uncapitalize the valueoptions from all-caps.\r\n if (!this.isDynamicDataFeedBasedCampaign) {\r\n valueOptions.forEach((valueOption) => {\r\n valueOption.Value = valueOption.Text;\r\n });\r\n }\r\n\r\n // if this is a valueoption that is selected.\r\n if (selectedValueOption) {\r\n selectedValueOption.Selected = true;\r\n // eslint-disable-next-line no-return-assign\r\n selectedValueOptions.forEach((e) => e.Selected = true);\r\n } else if (this.activityLogger) {\r\n // this should never happen\r\n this.activityLogger.error(`can not find user selected value option item which is ${JSON.stringify(customerSelectedProductCondition)}`);\r\n }\r\n\r\n }\r\n\r\n this.defaultSelectedDataSource.push(clonedItem);\r\n } else if (this.activityLogger) {\r\n // this should never happen\r\n this.activityLogger.error(`can not find user selected production condition item which is ${JSON.stringify(customerSelectedProductCondition)}`);\r\n }\r\n });\r\n }\r\n\r\n // This will set multi values onto seperate lines.\r\n multilineValueInputProcessor(valueInput) {\r\n // Value input will be val1;;val2;;val3;;etc.\r\n const valuesArr = valueInput.split(';;');\r\n\r\n if (!IsEnhancedPAFilterP1Enabled || valuesArr.length === 1) {\r\n return valueInput;\r\n }\r\n let output = valuesArr[0];\r\n\r\n for (let i = 1; i < valuesArr.length; i++) {\r\n output = `${output}\\n${valuesArr[i]}`;\r\n }\r\n return output;\r\n }\r\n\r\n // does the reverse of the above function.\r\n multilineValueOutProcessor(valueInput) {\r\n const newStr = valueInput.replaceAll('\\n', ';;');\r\n\r\n const valueArray = newStr.split('\\n').filter((e) => e);\r\n\r\n let returnStr = valueArray[0].trim();\r\n\r\n for (let i = 1; i < valueArray.length; i++) {\r\n returnStr = `${returnStr};;${valueArray[i].trim()}`;\r\n }\r\n return returnStr;\r\n }\r\n\r\n render() {\r\n this.$el.html(template({\r\n i18n,\r\n editMode: this.editMode,\r\n isShoppableAdsEnabled: this.isShoppableAdsEnabled,\r\n isLocalInventoryAdsEnabled,\r\n isCPGForBSCEnabled,\r\n isDomesticSimplifiedChineseEnabled,\r\n isAudienceCampaign: this.isAudienceCampaign,\r\n isSponsoredCampaign: this.isSponsoredSettings.isSponsoredCampaign,\r\n campaignType: this.campaignType,\r\n campaignSubType: this.campaignSubType,\r\n isEnabledDynamicFeedCampaign: this.isEnabledDynamicFeedCampaign,\r\n isSearchCampaign: this.isSearchCampaign,\r\n showExcludedStores: this.showExcludedStores,\r\n isMSStoreAdsGAWorkflow: this.isMSStoreAdsGAWorkflow,\r\n isFeedProductFilterEnabled: this.isFeedProductFilterEnabled,\r\n isFeedFilterEnabled: this.isFeedFilterEnabled,\r\n isExistingFeedFilter: this.isExistingFeedFilter,\r\n isSalesCountryRemovedForSpa: this.isSalesCountryRemovedForSpa,\r\n showProductFilter: this.showComponentConfig.productFilter,\r\n showCountryOfSale: this.showComponentConfig.countryOfSale,\r\n showDefaultBid: this.showComponentConfig.defaultBid,\r\n showCampaignSubType: this.showComponentConfig.campaignSubType,\r\n showCollectionCheckbox: this.showComponentConfig.collectionCheckbox,\r\n showLocalInventoryCheckbox: this.showComponentConfig.localInventoryCheckbox,\r\n showFeedProductFilter: this.showComponentConfig.feedProductFilter,\r\n showFilterByProduct: this.showComponentConfig.filterByProduct,\r\n showProductGroup: this.showComponentConfig.productGroup,\r\n isBrandWideCashbackEnabled: this.isBrandWideCashbackEnabled,\r\n isFeedLabelEnabled: this.isFeedLabelEnabled,\r\n isPAAIMFeedLabelEnabled: this.isPAAIMFeedLabelEnabled,\r\n }));\r\n\r\n // campaign creation\r\n // eslint-disable-next-line no-negated-condition\r\n if (!this.editMode) {\r\n this.renderCatagrizedOptionsList();\r\n } else if (this.isEnabledDynamicFeedCampaign && this.isDynamicDataFeedBasedCampaign) {\r\n // campaign settings\r\n const feedText = this.selectedFeed ? `FeedId: ${this.selectedFeed.Id}, Name: ${this.selectedFeed.Name}` : `FeedId: ${this.model.ProviderId}`;\r\n\r\n this.viewModel.storeText(feedText);\r\n }\r\n\r\n if (this.isEnabledDynamicFeedCampaign && this.isAudienceCampaign) {\r\n this.trigger('feedChanged', this.selectedFeed ? this.selectedFeed.Id : '');\r\n }\r\n\r\n if (this.shouldShowPlaceholderStoreIfExists &&\r\n this.viewModel.isSelectedStoreAPlaceholderStore({\r\n ProductCollectionAccounts: this.storeData.storeOptions,\r\n selectedStoreId: this.model.ProviderId,\r\n })) {\r\n const props = {\r\n hasDraftStore: true,\r\n i18n,\r\n isNewUII18n: false,\r\n scope: {\r\n values: {\r\n aid: state.get('account_id'),\r\n cid: state.get('customer_id'),\r\n uid: state.get('user_id'),\r\n },\r\n },\r\n };\r\n\r\n ReactDOM.render(React.createElement(this.deps.gmcToMMCGridDeps.DraftAlert, props, null), this.$('.draft-store-alert-container').get(0));\r\n }\r\n\r\n\r\n ko.applyBindings(this.viewModel, this.el);\r\n if (!this.editMode && this.campaignSubType !== 'ShoppingSmartAds') {\r\n this.bidSetting = new BidSettingView({\r\n activityLogger: this.activityLogger,\r\n isAudienceCampaign: this.isAudienceCampaign,\r\n isMSStoreCampaign: this.isWindowsStoreAd,\r\n defaultBidValue: this.isMSStoreAdsGAWorkflow ? defaultMSStoreSuggestionBid() : null,\r\n }).render();\r\n this.$('.bid-settings').append(this.bidSetting.$el);\r\n\r\n this.bidSetting.viewModel.SearchBid.subscribe(this.triggerChangeEvent.bind(this));\r\n }\r\n\r\n if (this.isFeedLabelEnabled) {\r\n if (this.isFeedProductFilterEnabled) {\r\n Promise.resolve(this.getAccountCountry());\r\n\r\n // Feed filter checkbox\r\n this.viewModel.isFeedFilterChecked.subscribe((checked) => {\r\n if (checked) {\r\n this.renderFeedFilter();\r\n } else {\r\n this.unmountFeedFilter();\r\n }\r\n if (this.onSelectFilterProducts) {\r\n this.onSelectFilterProducts(checked);\r\n }\r\n });\r\n\r\n // Product filter checkbox\r\n this.viewModel.isProductFilterChecked.subscribe((checked) => {\r\n // trigger product group render\r\n if (checked) {\r\n this.filterProducts();\r\n }\r\n });\r\n\r\n // Edit mode to default render\r\n if (this.editMode) {\r\n if (this.viewModel.FeedLabel() || this.viewModel.SalesCountry()) {\r\n this.viewModel.isAllFeedProducts(false);\r\n this.viewModel.isFeedFilterChecked(true);\r\n }\r\n }\r\n } else if (this.isFeedFilterEnabled) {\r\n this.renderFeedFilterPicker();\r\n }\r\n }\r\n\r\n if (this.editMode && this.hasFilteredProducts()) {\r\n // eslint-disable-next-line no-negated-condition\r\n if (!this.isDynamicDataFeedBasedCampaign && !IsEnhancedPAFilterP1Enabled) {\r\n this.renderProductGroup(this.productConditionOptions, this.campaignCriterion);\r\n } else if (!this.isDynamicDataFeedBasedCampaign && IsEnhancedPAFilterP1Enabled) {\r\n this.renderProductGroup(this.productConditionOptions, this.campaignCriterion, this.defaultSelectedDataSource);\r\n } else {\r\n this.renderDynamicFeedFilterGroup({\r\n dataSource: this.DynamicDataFeedConditionOptions[this.selectedCategory],\r\n defaultSelectedDataSource: this.defaultSelectedDataSource,\r\n });\r\n }\r\n }\r\n\r\n if (this.showExcludedStores) {\r\n const excludedStoreComponentOptions = {\r\n storeOptions: this.viewModel.excludedStoreOptions(),\r\n campaignId: this.editMode && this.viewModel.ProviderId() === this.globalStoreId ? this.campaignId : undefined,\r\n startDisabled: this.editMode && this.viewModel.ProviderId() !== this.globalStoreId,\r\n i18n,\r\n };\r\n\r\n this.excludedStores = ReactDOM.render(React.createElement(ExcludedStores, excludedStoreComponentOptions, null), this.$('.excluded-store-controls').get(0));\r\n }\r\n\r\n if (this.isBrandWideCashbackEnabled) {\r\n this.renderBrandOnlyToggle();\r\n }\r\n\r\n this.validateProductOfferCount();\r\n\r\n return this;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .filteredProducts': 'filterProducts',\r\n 'click .filterFeedProducts': 'filterFeedProducts',\r\n 'click .allFeedProducts': 'allFeedProducts',\r\n };\r\n }\r\n\r\n filterFeedProducts() {\r\n this.viewModel.isAllFeedProducts(false);\r\n // trigger product groups\r\n if (this.viewModel.isProductFilterChecked()) {\r\n this.viewModel.selectAllProducts(false);\r\n }\r\n }\r\n\r\n allFeedProducts() {\r\n this.viewModel.isAllFeedProducts(true);\r\n // hide product groups\r\n this.viewModel.selectAllProducts(true);\r\n }\r\n\r\n onSelectionChange({ category, optionKey }) {\r\n if (_.isFunction(this.onStoreSelectionChange)) {\r\n this.onStoreSelectionChange({category, optionKey});\r\n }\r\n this.selectedCategory = category;\r\n\r\n if (this.isSelectedStore()) {\r\n this.SetStoreProviderId(optionKey.toString());\r\n this.viewModel.setFeedId('');\r\n this.campaignSubType = 'AudienceFeedBased';\r\n } else {\r\n this.campaignSubType = 'AudienceDynamicFeedBased';\r\n this.SetStoreProviderId('');\r\n this.viewModel.setFeedId(optionKey.toString());\r\n }\r\n\r\n if (this.viewModel.hasFilteredProducts()) {\r\n this.filterProducts();\r\n }\r\n }\r\n\r\n triggerChangeEvent() {\r\n if (this.options.withRealTimeUpdates) {\r\n this.trigger('change', {\r\n searchBid: this.getSearchBid(),\r\n productScope: this.getProductScope(),\r\n basic: this.viewModel.toObject(),\r\n }, this.validate());\r\n }\r\n }\r\n\r\n onApplyFilterNewComponent({ data, isValid, dataSource }) {\r\n this.isDynamicDataFeedFiltersValid = isValid;\r\n this.DynamicDataFeedFiltersData = data;\r\n this.newComponentDataSource = dataSource;\r\n this.triggerChangeEvent();\r\n }\r\n\r\n clickApplyButton() {\r\n const applyButton = this.$('#filter_options_group_applyButton');\r\n\r\n if (applyButton.is(':visible')) {\r\n applyButton.get(0).click();\r\n }\r\n }\r\n\r\n getDynamicFeedFiltersConditionData() {\r\n if (_.isEmpty(this.DynamicDataFeedFiltersData)) {\r\n return null;\r\n }\r\n\r\n let productConditions = this.DynamicDataFeedFiltersData;\r\n\r\n // If this is a migrated legacy section, we need to map the value back to the proper backend-accepted ones.\r\n if (\r\n this.selectedCategory === 'Stores' || // creation page. when switch to store\r\n this.campaignType === 'Shopping' || // shopping campaign setting/creation page\r\n this.campaignSubType === 'AudienceFeedBased' ||// setting page. Feed based audience campaign\r\n this.campaignType === 'Default' // setting page. search campaign with IsMMAForRetailEnabled\r\n ) {\r\n const textValueMap = _.defaults(\r\n _.reduce(this.productConditionOptions, (memo, i) => {\r\n memo[i.Text] = i.Value;\r\n return memo;\r\n }, {}),\r\n _.reduce(this.newComponentDataSource, (memo, i) => {\r\n memo[i.Text] = i.Value;\r\n return memo;\r\n }, {}),\r\n );\r\n\r\n productConditions = _.map(this.DynamicDataFeedFiltersData, (i) => {\r\n return _.defaults({\r\n data: _.defaults({\r\n key: textValueMap[i.data.key],\r\n }, i.data),\r\n }, i);\r\n });\r\n }\r\n\r\n return productConditions.reduce((result, current, index) => {\r\n result[`ProductCondition${index + 1}`] = current.data.key;\r\n result[`ProductValue${index + 1}`] = this.enableMultiSelect && !_.contains(this.channelTexts, current.data.keyText) ?\r\n current.data.valueKeys.join(';;') || this.multilineValueOutProcessor(current.data.value) :\r\n current.data.value;\r\n if (IsEnhancedPAFilterP1Enabled && this.campaignType !== 'Shopping') {\r\n const { operator } = current.data;\r\n\r\n if (operator) {\r\n result[`ProductOperator${index + 1}`] = current.data.operator;\r\n }\r\n }\r\n return result;\r\n }, {});\r\n }\r\n\r\n isSelectedStore() {\r\n return this.selectedCategory === storeCategory;\r\n }\r\n\r\n SetStoreProviderId(val) {\r\n this.viewModel.setProviderId(val);\r\n }\r\n\r\n TransformStoreAndFeedData({ storeData, feedData }) {\r\n return this.CategrizeStoreData(storeData).concat(this.CategrizeFeedData(feedData));\r\n }\r\n\r\n CategrizeStoreData(storeData) {\r\n return [{\r\n key: storeCategory,\r\n text: i18n.getString('DynamicFeedCampaign_Stores'),\r\n value: storeData.storeOptions.map((item) => ({\r\n key: item.Value,\r\n text: item.Text,\r\n })),\r\n }];\r\n }\r\n\r\n CategrizeFeedData(feedData) {\r\n if (!feedData) {\r\n return [];\r\n }\r\n const groupedData = _.groupBy(feedData, (item) => item.FeedType);\r\n const categoriedGroupedData = _.mapObject(groupedData, (val, key) => {\r\n return {\r\n key,\r\n text: this.MapFeedTypeToDisplayString(key),\r\n value: _.map(val, ({ Id, Name }) => ({\r\n key: Id,\r\n text: Name,\r\n })),\r\n };\r\n });\r\n\r\n return _.values(categoriedGroupedData);\r\n }\r\n\r\n MapFeedTypeToDisplayString(FeedType) {\r\n return FeedTypeMapping[FeedType] ? FeedTypeMapping[FeedType] : FeedType;\r\n }\r\n\r\n storeChanged(selectedStore) {\r\n // This handler is only attached when isCPGForBSCEnabled.\r\n\r\n if (this.productGroup) {\r\n this.viewModel.selectAllProducts(true);\r\n this.removeProductGroup();\r\n }\r\n\r\n if (this.excludedStores) {\r\n this.excludedStores.enable(selectedStore.LinkStoreId === this.globalStoreId);\r\n }\r\n\r\n if (this.bidStrategyUpdater && !this.isSponsoredSettings.isSponsoredCampaign && this.previousStore.IsCoOpStore !== selectedStore.IsCoOpStore) {\r\n // Adjust the bid strategy drop down to reflect correct strategy options\r\n // based on whether or not the store is a co-op store.\r\n // Only update the bid strategy when the store type has changed. Otherwise switching between standard stores can overwrite bid strategy from non-ECPC to ECPC.\r\n this.bidStrategyUpdater(selectedStore.IsCoOpStore);\r\n }\r\n\r\n // need render the product filter. The option could be change when store changed. e.g. select an CoOp Store\r\n if (this.viewModel.hasFilteredProducts() && _.has(this.previousStore, 'LinkStoreId') && this.previousStore.LinkStoreId !== selectedStore.LinkStoreId) {\r\n this.filterProducts();\r\n }\r\n\r\n this.trigger('storeChanged', selectedStore);\r\n\r\n this.previousStore = selectedStore;\r\n }\r\n\r\n isCoOpStoreSelected() {\r\n if ((isCPGForBSCEnabled || this.isSponsoredSettings.isSponsoredCampaign) && this.viewModel.selectedStore().IsCoOpStore) {\r\n return true;\r\n }\r\n\r\n if (this.isSponsoredSettings.isSponsoredCampaign && this.viewModel.selectedStore().IsGlobalStore) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n refreshData(sourceCampaign, productData) {\r\n // eslint-disable-next-line no-param-reassign\r\n this.processProductData(productData);\r\n this.viewModel.setModel(_.first(sourceCampaign.CampaignSettings)); //ko-schema provided this functionability\r\n\r\n if (productData.CampaignCriterionsData && productData.CampaignCriterionsData.Criterion) {\r\n this.customerSelections = productData.CampaignCriterionsData.Criterion.ProductConditions;\r\n }\r\n this.removeProductGroup(); //remove filters first\r\n this.productConditionOptions = productData.ProductConditionOptions; //reset product condition options\r\n this.campaignCriterion = productData.CampaignCriterionsData; //reset product scope criterions\r\n const useNewComponent = this.isDynamicDataFeedBasedCampaign || IsEnhancedPAFilterP1Enabled;\r\n\r\n if (this.campaignCriterion) { //if the copied shopping campaign has filters\r\n this.viewModel.selectAllProducts(false); //set radio to filtered products option\r\n // this branch is for copy audience shopping campaign.\r\n if (useNewComponent) { // set defaultselecteddatasource if new component is used.\r\n this.defaultSelectedDataSource = [];\r\n\r\n if (sourceCampaign.CampaignSubType === 'AudienceDynamicFeedBased') {\r\n this.defaultSelectedDataSourceHelper(this.DynamicDataFeedConditionOptions[this.selectedCategory], this.customerSelections);\r\n this.renderDynamicFeedFilterGroup({\r\n dataSource: this.DynamicDataFeedConditionOptions[this.selectedCategory],\r\n defaultSelectedDataSource: this.defaultSelectedDataSource,\r\n });\r\n } else {\r\n const customerSelectionsLocal = this.customerSelections.filter((productCondition) => !productCondition.Operand.startsWith('Category'));\r\n\r\n this.setCategoryOptionsSelection(this.customerSelections.filter((productCondition) => productCondition.Operand.startsWith('Category')));\r\n\r\n this.defaultSelectedDataSourceHelper(this.productConditionOptions, customerSelectionsLocal);\r\n this.renderProductGroup(this.productConditionOptions, this.campaignCriterion, this.defaultSelectedDataSource); //render filters\r\n }\r\n } else {\r\n this.renderProductGroup(this.productConditionOptions, this.campaignCriterion); //render filters\r\n }\r\n } else {\r\n this.viewModel.selectAllProducts(true);\r\n }\r\n }\r\n\r\n renderProductGroup(productConditionOptions, campaignCriterion, defaultSelectedDataSource = null) {\r\n if (IsEnhancedPAFilterP1Enabled) {\r\n const ProductGroupSubTypeEnum = {\r\n standard: 1,\r\n coop: 2,\r\n all: 3,\r\n };\r\n\r\n const data = _.filter(productConditionOptions, (productCondition) => {\r\n if (this.isMSStoreAdsGAWorkflow) {\r\n return true;\r\n }\r\n\r\n if (!isLocalInventoryAdV2Enabled && _.contains(this.channelKeys, productCondition.Value)) {\r\n return false;\r\n }\r\n if ((isCPGForBSCEnabled || isSponsoredPilotEnabled) && this.isCoOpStoreSelected()) {\r\n return productCondition.SubTypeFlag === ProductGroupSubTypeEnum.coop || productCondition.SubTypeFlag === ProductGroupSubTypeEnum.all;\r\n } else {\r\n return productCondition.SubTypeFlag === ProductGroupSubTypeEnum.standard || productCondition.SubTypeFlag === ProductGroupSubTypeEnum.all;\r\n }\r\n });\r\n\r\n if (defaultSelectedDataSource) {\r\n this.renderDynamicFeedFilterGroup({\r\n dataSource: data,\r\n defaultSelectedDataSource,\r\n });\r\n } else {\r\n this.renderDynamicFeedFilterGroup({\r\n dataSource: data,\r\n });\r\n }\r\n } else {\r\n this.filterDataComesFrom = 'LegacyComponent';\r\n this.productGroup = new ProductGroupView({\r\n productConditionOptions,\r\n campaignCriterion,\r\n countryOfSale: this.getSalesCountryForProductFilter(),\r\n isCoOpStoreSelected: this.isCoOpStoreSelected(),\r\n }).render();\r\n\r\n this.productGroup.on('apply:queries', () => {\r\n this.validateProductOfferCount();\r\n });\r\n\r\n this.$('.product-group__container').empty().append(this.productGroup.$el);\r\n }\r\n }\r\n\r\n refreshCategorizedOptionsList(selectedID) {\r\n // MT passes int, we use string.\r\n let selectedIdstring = selectedID.toString();\r\n\r\n const categories = _.reject(this.TransformStoreAndFeedData({\r\n storeData: this.storeData,\r\n feedData: this.feedData,\r\n }), (item) => _.isEmpty(item.value));\r\n\r\n // Get the first category that the key appears in, if any.\r\n const categoryObject = _.filter(categories, (e) => {\r\n return _.find(e.value, { key: selectedIdstring });\r\n });\r\n\r\n // if we found a category for key, get its type.\r\n const selectedFeedType = categoryObject ? categoryObject[0].key : null;\r\n\r\n // if the id is not in any feeds, do not pass default selection.\r\n selectedIdstring = selectedFeedType ? selectedIdstring : null;\r\n\r\n this.onSelectionChange({\r\n optionKey: selectedIdstring,\r\n category: selectedFeedType,\r\n });\r\n this.renderCatagrizedOptionsList({}, selectedIdstring, selectedFeedType);\r\n }\r\n\r\n renderCatagrizedOptionsList({\r\n disabled = false,\r\n } = {}, selectedID = null, selectedFeedType = null) {\r\n if (this.isEnabledDynamicFeedCampaign) {\r\n const categories = _.reject(this.TransformStoreAndFeedData({\r\n storeData: this.storeData,\r\n feedData: this.feedData,\r\n }), (item) => _.isEmpty(item.value));\r\n const placeholder = i18n.getString('DynamicFeedCampaign_CategorizedSelectorList_Placeholder');\r\n\r\n const { dropdownStyle } = styles;\r\n const props = {\r\n categories,\r\n placeholder,\r\n dropdownStyle,\r\n maxHeight: 300,\r\n onSelectionChange: this.onSelectionChange,\r\n disabled,\r\n };\r\n\r\n const providerId = selectedID || this.viewModel.ProviderId();\r\n const feedId = this.viewModel.FeedId();\r\n\r\n if (providerId) {\r\n // if BMC Store exists, select the first BMC Store as default selected option\r\n this.selectedCategory = selectedFeedType || storeCategory;\r\n props.selectedKey = {\r\n categoryKey: selectedFeedType || storeCategory,\r\n optionKey: providerId,\r\n };\r\n } else if (!feedId) {\r\n // only there is no selected option then we select the first option\r\n // if no BMC Store , then select the first feed as the default selected option\r\n const selectedFeedGroup = _.first(categories);\r\n\r\n const categoryKey = selectedFeedGroup.key;\r\n const optionKey = selectedFeedGroup.value[0].key;\r\n\r\n this.selectedCategory = categoryKey;\r\n\r\n props.selectedKey = {\r\n categoryKey,\r\n optionKey,\r\n };\r\n\r\n this.onSelectionChange({\r\n category: categoryKey,\r\n optionKey,\r\n });\r\n }\r\n ReactDOM.unmountComponentAtNode(this.$('.category_container').get(0));\r\n ReactDOM.render(React.createElement(CategorizedDropdownList, props, null), this.$('.category_container').get(0));\r\n }\r\n }\r\n\r\n getChildProductCondition(attribute, operand) {\r\n this.setProductLoading(true);\r\n const url = `/Campaign/ProductAdExtensions.m/GetChildProductCondition?aid=${state.get('account_id')}&cid=${state.get('customer_id')}&uid=${state.get('user_id')}`;\r\n const data = {\r\n countryOfSale: this.getSalesCountryForProductFilter(),\r\n 'parent.Operand': operand,\r\n 'parent.Attribute': attribute,\r\n };\r\n\r\n return jsdata.Product.find(_.values(data).join(', '), { url, data, adapter: 'legacy' })\r\n .then((response) => {\r\n const dynamicQueryOption = _.result(response, 'DynamicQueryOption');\r\n\r\n if (dynamicQueryOption) {\r\n dynamicQueryOption.Text = i18n.getString(`ProductCondition_${dynamicQueryOption.Value}`);\r\n if (this.updateChildLevelProductCondition) {\r\n this.updateChildLevelProductCondition(dynamicQueryOption);\r\n }\r\n }\r\n return dynamicQueryOption;\r\n })\r\n .finally(withUiBlock())\r\n .finally(() => this.setProductLoading(false))\r\n .catch(() => {\r\n this.viewModel.errors.add();\r\n });\r\n }\r\n\r\n getFeedFilterProps() {\r\n const saleCountriesSource = this.viewModel.salesCountries();\r\n const props = {\r\n i18n: this.newI18n,\r\n legacyI18n: i18n,\r\n isEditMode: this.editMode,\r\n saleCountries: saleCountriesSource && saleCountriesSource.length > 0 ? saleCountriesSource.map((country) => ({\r\n key: country.Value,\r\n text: country.Text,\r\n })) : [],\r\n storeId: this.viewModel.ProviderId(),\r\n selectedFeedLabel: this.viewModel.FeedLabel(),\r\n onSelectedFeedLabelChange: (value) => {\r\n if (_.isFunction(this.onFeedLabelChange)) {\r\n this.onFeedLabelChange(value);\r\n }\r\n this.viewModel.FeedLabel(value);\r\n },\r\n selectedSaleCountry: this.viewModel.SalesCountry(),\r\n onSelectedSaleCountryChange: (value) => {\r\n this.viewModel.SalesCountry(value);\r\n },\r\n hideSaleCountry: this.campaignType === 'Audience' && this.campaignSubType === 'AudienceFeedBased' && this.isPAAIMFeedLabelEnabled && this.isFeedLabelEnabled,\r\n };\r\n\r\n return props;\r\n }\r\n\r\n triggerSalesCountryChange(value) {\r\n this.viewModel.SalesCountry(value);\r\n }\r\n\r\n triggerFeedLabelChange(value) {\r\n this.viewModel.FeedLabel(value);\r\n }\r\n\r\n triggerIsFeedFilterChecked(value) {\r\n this.viewModel.isFeedFilterChecked(value);\r\n }\r\n\r\n renderFeedFilter() {\r\n if (!this.showComponentConfig.feedProductFilter) {\r\n return;\r\n }\r\n const props = {\r\n ...this.getFeedFilterProps(),\r\n originalSaleCountry: this.viewModel.originalSalesCountry,\r\n };\r\n\r\n this.unmountFeedFilter();\r\n ReactDOM.render(React.createElement(WrappedFeedFilter, props, null), this.$('.feed-filter__container').get(0));\r\n }\r\n\r\n unmountFeedFilter() {\r\n ReactDOM.unmountComponentAtNode(this.$('.feed-filter__container').get(0));\r\n }\r\n\r\n renderFeedFilterPicker() {\r\n if (!this.showComponentConfig.feedProductFilter) {\r\n return;\r\n }\r\n const props = {\r\n ...this.getFeedFilterProps(),\r\n isFeedFiltered: this.viewModel.isFeedFilterPickerEnabled(),\r\n onIsFeedFilteredChange: (value) => {\r\n this.viewModel.isFeedFilterPickerEnabled(value);\r\n if (!value) {\r\n this.viewModel.FeedLabel(null);\r\n this.viewModel.SalesCountry(null);\r\n }\r\n },\r\n };\r\n\r\n this.unmountFeedFilterPicker();\r\n ReactDOM.render(React.createElement(WrappedFeedFilterPicker, props, null), this.$('.feed-filter-picker__container').get(0));\r\n }\r\n\r\n unmountFeedFilterPicker() {\r\n ReactDOM.unmountComponentAtNode(this.$('.feed-filter-picker__container').get(0));\r\n }\r\n\r\n renderDynamicFeedFilterGroup({ dataSource, defaultSelectedDataSource = null }) {\r\n if (!this.showComponentConfig.productGroup) {\r\n return;\r\n }\r\n this.filterDataComesFrom = 'NewComponent';\r\n const maximumFiltersCount = 7;\r\n const props = {\r\n dataSource,\r\n i18nLegacy: i18n,\r\n onApply: this.onApplyFilterNewComponent,\r\n key: this.selectedCategory,\r\n maximumFiltersCount,\r\n enableOperator: this.enableOperator,\r\n enableMultiSelect: this.enableMultiSelect,\r\n blacklistOperator: this.channelTexts,\r\n blacklistMultiSelect: this.channelTexts,\r\n getChildProductCondition: this.getChildProductCondition.bind(this),\r\n };\r\n\r\n if (defaultSelectedDataSource && defaultSelectedDataSource instanceof Array && defaultSelectedDataSource.length !== 0) {\r\n props.defaultSelectedDataSource = defaultSelectedDataSource;\r\n }\r\n\r\n let filterOptionsGroupComponent;\r\n\r\n if (\r\n this.campaignType === 'Default' || // Search campaign with IsMMAForRetailEnabled pilot enable. Only shown in setting page\r\n this.campaignType === 'Shopping' // shopping campaign for setting/creation page\r\n ) {\r\n filterOptionsGroupComponent = React.createElement(FilterOptionsGroupDynamic, props, null);\r\n } else if (\r\n this.selectedCategory === 'Stores' || // creation page. when switch to store. Feed based audience campaign\r\n this.campaignSubType === 'AudienceFeedBased' // setting page. Feed based audience campaign\r\n ) {\r\n // hide the Category2/3.. ProductType2/3... for feed based audience campaign\r\n let hideOperandList = ['CategoryL2', 'CategoryL3', 'CategoryL4', 'CategoryL5', 'ProductType2', 'ProductType3', 'ProductType4', 'ProductType5'];\r\n\r\n if (IsEnhancedPAFilterP2Enabled) {\r\n hideOperandList = ['CategoryL1', 'CategoryL2', 'CategoryL3', 'CategoryL4', 'CategoryL5'];\r\n dataSource.unshift(this.categoryOptions);\r\n }\r\n const hideOperandDataSource = _.reject(dataSource, (i) => _.contains(hideOperandList, i.Value));\r\n\r\n filterOptionsGroupComponent = React.createElement(FilterOptionsGroup, _.defaults({ dataSource: hideOperandDataSource }, props), null);\r\n } else {\r\n filterOptionsGroupComponent = React.createElement(FilterOptionsGroup, props, null);\r\n }\r\n ReactDOM.unmountComponentAtNode(this.$('.product-group__container').get(0));\r\n ReactDOM.render(filterOptionsGroupComponent, this.$('.product-group__container').get(0));\r\n }\r\n\r\n removeProductGroup() {\r\n if (!_.isNull(this.productGroup)) {\r\n //remove product group editor and need to reload top level product conditions based on selected sales country\r\n this.productGroup.remove();\r\n delete this.productGroup;\r\n }\r\n\r\n this.productGroup = null;\r\n this.productConditionOptions = null;\r\n }\r\n\r\n filterProducts() {\r\n // campaign creation flow\r\n // eslint-disable-next-line no-negated-condition\r\n if (!this.editMode) {\r\n if (this.isEnabledDynamicFeedCampaign && !this.isSelectedStore()) {\r\n this.isToggledByNewComponent = true;\r\n this.renderDynamicFeedFilterGroup({\r\n dataSource: this.DynamicDataFeedConditionOptions[this.selectedCategory],\r\n });\r\n } else if (_.isNull(this.productGroup) || this.isToggledByNewComponent) {\r\n ReactDOM.unmountComponentAtNode(this.$('.product-group__container').get(0));\r\n Promise.resolve(this.getTopLevelProductConditions())\r\n .then((data) => {\r\n this.renderProductGroup(data);\r\n });\r\n this.isToggledByNewComponent = false;\r\n }\r\n }\r\n\r\n // campaign settings page flow\r\n if (this.editMode && _.isNull(this.productGroup) && !this.isDynamicDataFeedBasedCampaign) {\r\n // campaign setting page flow\r\n Promise.resolve(this.getTopLevelProductConditions())\r\n .then((data) => {\r\n this.renderProductGroup(data);\r\n });\r\n }\r\n\r\n if (this.editMode && this.isDynamicDataFeedBasedCampaign && this.isEnabledDynamicFeedCampaign) {\r\n this.renderDynamicFeedFilterGroup({\r\n dataSource: this.DynamicDataFeedConditionOptions[this.selectedCategory],\r\n });\r\n }\r\n }\r\n\r\n getTopLevelProductConditions() {\r\n if (!_.isNull(this.productConditionOptions)) {\r\n return _.clone(this.productConditionOptions);\r\n }\r\n\r\n const countryCode = this.getSalesCountryForProductFilter();\r\n const url = `/Campaign/ProductAdExtensions.m/GetTopLevelProductConditions?aid=${state.get('account_id')}&cid=${state.get('customer_id')}&uid=${state.get('user_id')}`;\r\n const data = { countryOfSale: countryCode };\r\n\r\n this.setProductLoading(true);\r\n //leverage jsdata cache\r\n return jsdata.Product.find(countryCode, { url, data, adapter: 'legacy' })\r\n .then((response) => {\r\n if (this.updateProductConditionOptions) {\r\n this.updateProductConditionOptions(_.clone(response.DynamicQueryOption));\r\n }\r\n return _.clone(response.DynamicQueryOption);\r\n })\r\n .finally(withUiBlock())\r\n .finally(() => this.setProductLoading(false))\r\n .catch(() => {\r\n this.viewModel.errors.add();\r\n });\r\n }\r\n\r\n validateProductOfferCount() {\r\n if (!this.isStoreValid) {\r\n return;\r\n }\r\n\r\n const selectedStore = this.viewModel.selectedStore();\r\n const storeId = selectedStore && selectedStore.IsCoOpStore ?\r\n selectedStore.LinkStoreId :\r\n this.viewModel.ProviderId();\r\n\r\n let filters = '';\r\n let url = `/Customers()/ProductOfferStores(${storeId})/ProductOffers/$count`;\r\n\r\n if (!storeId || !config.get('IsUserLoggedIn')) {\r\n return;\r\n }\r\n const queries = this.getQueries();\r\n\r\n if (this.viewModel.hasFilteredProducts() && queries && queries.length > 0) {\r\n let couter = 0;\r\n\r\n _.each(queries, (query) => {\r\n if (query.Attribute && query.Operand) {\r\n if (couter !== 0) {\r\n filters += '+and+';\r\n }\r\n\r\n filters += `${query.Operand}+eq+'${encodeURIComponent(query.Attribute.replace('\\'', '\"'))}'`;\r\n couter++;\r\n }\r\n });\r\n\r\n if (filters) {\r\n url = setUrlParameter('$filter', `(${filters})`, url);\r\n }\r\n }\r\n\r\n this.viewModel.showWarning(false);\r\n\r\n odata.get(url)\r\n .then((count) => {\r\n if (parseInt(count) > offerMaxLimit) {\r\n this.viewModel.showWarning(true);\r\n }\r\n });\r\n }\r\n\r\n validateFeedFilter() {\r\n let isValid = true;\r\n\r\n const isFeedFilterDisplayed = (this.isFeedProductFilterEnabled && this.viewModel.isFeedFilterChecked()) ||\r\n (this.isFeedFilterEnabled && this.viewModel.isFeedFilterPickerEnabled());\r\n\r\n if (isFeedFilterDisplayed && !this.viewModel.FeedLabel() && !this.viewModel.SalesCountry()) {\r\n isValid = false;\r\n }\r\n\r\n // trigger error msg\r\n this.viewModel.isValidating(!isValid);\r\n\r\n if (!isValid && this.activityLogger) {\r\n this.activityLogger.signal('feed label invalid', 'feed filter');\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n validate() {\r\n // If we are using the new version of the component.\r\n if (this.isEnabledDynamicFeedCampaign || IsEnhancedPAFilterP1Enabled) {\r\n let validationItemForFilterdProducts;\r\n\r\n if (this.filterDataComesFrom === 'LegacyComponent') {\r\n validationItemForFilterdProducts = this.hasFilteredProducts() ? this.productGroup.validate() : true;\r\n } else {\r\n this.clickApplyButton();\r\n validationItemForFilterdProducts = this.hasFilteredProducts() ? this.isDynamicDataFeedFiltersValid : true;\r\n }\r\n return _.reduce([\r\n validationItemForFilterdProducts,\r\n this.editMode || !this.bidSetting ? true : this.bidSetting.validate(),\r\n this.isFeedLabelEnabled ? this.validateFeedFilter() : true,\r\n ], (prev, next) => {\r\n return prev && next;\r\n }, true);\r\n } else {\r\n // if we are using the old version of the component.\r\n if (this.viewModel.hasValidStore()) {\r\n return _.reduce([\r\n this.hasFilteredProducts() ? this.productGroup.validate() : true,\r\n this.editMode || !this.bidSetting ? true : this.bidSetting.validate(),\r\n this.isFeedLabelEnabled ? this.validateFeedFilter() : true,\r\n ], (prev, next) => {\r\n return prev && next;\r\n }, true);\r\n }\r\n return true;\r\n }\r\n }\r\n\r\n getSearchBid() {\r\n return this.editMode || !this.bidSetting ? {} : this.bidSetting.getValues();\r\n }\r\n\r\n getProductScope() {\r\n // ToDo: Once we fully migrate to new component, remove pilot condition, change the && to ||\r\n if ((this.isEnabledDynamicFeedCampaign && this.filterDataComesFrom === 'NewComponent') || IsEnhancedPAFilterP1Enabled) {\r\n return this.getDynamicFeedFiltersConditionData();\r\n }\r\n return _.isNull(this.productGroup) ? null : this.productGroup.getValues();\r\n }\r\n\r\n getQueries() {\r\n return _.isNull(this.productGroup) ? [] : this.productGroup.getQueries();\r\n }\r\n\r\n hasFilteredProducts() {\r\n return this.viewModel.hasFilteredProducts();\r\n }\r\n\r\n handleApiErrors(response) {\r\n let errors = [];\r\n\r\n if (_.isArray(response.entity.AdGroups) && _.first(response.entity.AdGroups).errors) {\r\n errors = _.first(response.entity.AdGroups).errors;\r\n }\r\n if (_.has(response.entity, 'CampaignProductScope') && _.has(response.entity.CampaignProductScope, 'errors')) {\r\n errors = _.union(response.entity.CampaignProductScope.errors, errors);\r\n }\r\n\r\n this.viewModel.errors.add(errors);\r\n }\r\n\r\n clearApiErrors() {\r\n this.viewModel.errors([]);\r\n }\r\n\r\n getCriterions(campaignToSave) {\r\n if (!this.excludedStores) {\r\n return campaignToSave;\r\n }\r\n\r\n const excludedStoreCriterion = this.excludedStores.getCriterions(campaignToSave);\r\n\r\n campaignToSave.CampaignCriterions = campaignToSave.CampaignCriterions.concat(excludedStoreCriterion);\r\n\r\n return campaignToSave;\r\n }\r\n\r\n disableStoreSelection() {\r\n this.viewModel.disableStoreSelection(true);\r\n }\r\n\r\n getAccountCountry() {\r\n return this.ccJsData.Account.find(state.get('account_id'))\r\n .then((data) => {\r\n const accountCountry = (data && data.CountryCode) || DEFAULT_SALES_COUNTRY;\r\n const availableSalesCountries = this.viewModel.salesCountries();\r\n const ifAccountCountrySupported = availableSalesCountries && availableSalesCountries.length > 0 && availableSalesCountries.find(({ Value }) => Value.toUpperCase() === accountCountry);\r\n\r\n if (ifAccountCountrySupported) {\r\n this.accountCountry = accountCountry;\r\n } else {\r\n this.accountCountry = DEFAULT_SALES_COUNTRY;\r\n }\r\n });\r\n }\r\n\r\n getSalesCountryForProductFilter() {\r\n // When feed label pilot enabled, sales country could be null\r\n // Use supported account country, if unavailable, use US as default sales country\r\n return this.viewModel.SalesCountry() || this.accountCountry;\r\n }\r\n}\r\n","// In the legacy code. the shopping settings are rendered together. in the new code, the shopping settings are rendered separately.\r\n// So we need the different settings scenarios to handle this\r\nexport const SettingScenarios = {\r\n PAAIMProductSetting: 'PAAIMProductSetting', // only show product filter component in prodct section\r\n PAAIMStoreSetting: 'PAAIMStoreSetting', // hide product filter and show store selection component in store section\r\n LegacyShoppingSetting: 'LegacyShoppingSetting',\r\n};\r\n\r\nconst getShowConfig = (show = true) => ({\r\n campaignPriority: show,\r\n storeSelection: show,\r\n defaultBid: show,\r\n productFilter: show,\r\n countryOfSale: show,\r\n campaignSubType: show,\r\n collectionCheckbox: show,\r\n localInventoryCheckbox: show,\r\n feedProductFilter: show,\r\n filterByProduct: show,\r\n productGroup: show,\r\n});\r\n\r\nexport const getShoppingSettingByScenario = ({\r\n campaignSubType,\r\n isExistingFeedFilter,\r\n scenario,\r\n}) => {\r\n if (scenario === SettingScenarios.PAAIMProductSetting) {\r\n return {\r\n ...getShowConfig(false),\r\n productFilter: true,\r\n productGroup: true,\r\n };\r\n } else if (scenario === SettingScenarios.PAAIMStoreSetting) {\r\n return {\r\n ...getShowConfig(false),\r\n storeSelection: true,\r\n localInventoryCheckbox: true,\r\n feedProductFilter: true,\r\n collectionCheckbox: true,\r\n countryOfSale: !isExistingFeedFilter,\r\n };\r\n }\r\n return {\r\n ...getShowConfig(true),\r\n productFilter: campaignSubType !== 'ShoppingSmartAds' && !isExistingFeedFilter,\r\n };\r\n};\r\n","import ko from 'knockout';\r\n\r\nconst BidValue = 'BidValue';\r\n\r\nexport default class ViewModel {\r\n constructor( bidOption = BidValue) {\r\n this.bidOption = ko.observable(bidOption);\r\n this.showBidValue = ko.computed(() => this.bidOption() === BidValue);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { SimpleForm } from '@bingads-webui/simple-form';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport template from '@bingads-webui-campaign-legacy/shopping-campaign/template/cpg-adgroup/bid-type.pug';\r\nimport addonInput from '@bingads-webui-campaign-legacy/shopping-campaign/template/cpg-adgroup/addon-input.pug';\r\n\r\nconst validationI18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!component/ko-validation');\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/shopping-campaign');\r\nconst schemai18n = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\nconst s$CoOpSetting = window.globalLegacySchema.get('CoOpSetting');\r\n\r\nconst getPropertyRange = (property) => {\r\n const range = _.result(s$CoOpSetting.properties, property, {});\r\n\r\n return {\r\n min: _.result(range, 'minimum', 0),\r\n max: _.result(range, 'maximum', 1000),\r\n };\r\n};\r\n\r\nexport default class CpgBidBoost extends DeterministicWrapperView {\r\n viewFactory({ BidBoostValue, BidMaxValue } = {}) {\r\n this.form = new SimpleForm({\r\n schema: s$CoOpSetting,\r\n fields: [\r\n {\r\n property: 'BidBoostValue',\r\n control: () => addonInput({\r\n addonText: config.get('globalization.number.percentSymbol'),\r\n }),\r\n validators: {\r\n range: {\r\n message: i18n.getString('ProductGroupsGrid_BidRange_Validation', _.mapObject(getPropertyRange('BidBoostValue'), (val) => decimal.fromFloatToString(val, 2))),\r\n },\r\n },\r\n },\r\n {\r\n property: 'BidMaxValue',\r\n control: () => addonInput({\r\n addonText: config.get('AccountCurrencyCode'),\r\n }),\r\n validators: {\r\n range: {\r\n message: i18n.getString('ProductGroupsGrid_BidRange_Validation', _.mapObject(getPropertyRange('BidMaxValue'), (val) => decimal.fromFloatToString(val, 2))),\r\n },\r\n },\r\n },\r\n ],\r\n model: { BidBoostValue, BidMaxValue },\r\n s$i18n: schemai18n,\r\n i18n: validationI18n,\r\n showButtons: false,\r\n template,\r\n });\r\n\r\n this.form.on('clickHelpIcon', (e) => {\r\n window.PopupController.PopupJsClick(e.target); //eslint-disable-line\r\n });\r\n\r\n return this.form;\r\n }\r\n\r\n isValid() {\r\n return this.form.validate();\r\n }\r\n\r\n getState() {\r\n return _.pick(this.form.currentModel(), 'BidMaxValue', 'BidBoostValue');\r\n }\r\n\r\n get className() {\r\n return 'cpg-bid-boost-view';\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { SimpleForm } from '@bingads-webui/simple-form';\r\nimport template from '@bingads-webui-campaign-legacy/shopping-campaign/template/cpg-adgroup/bid-type.pug';\r\nimport addonInput from '@bingads-webui-campaign-legacy/shopping-campaign/template/cpg-adgroup/addon-input.pug';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\n\r\nconst schemai18n = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/shopping-campaign');\r\nconst validationI18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!component/ko-validation');\r\nconst s$AdGroup = window.globalLegacySchema.get('AdGroup');\r\n\r\nconst { IsBidLessThan5CentsInShoppingCampaignEnabled } = pageContext.Permissions;\r\n\r\nconst getRange = () => {\r\n const bidRange = IsBidLessThan5CentsInShoppingCampaignEnabled ? config.get('ProductGroupBidRange') : config.get('KeywordBidRange');\r\n const range = {\r\n min: _.result(bidRange, 'FloorValue', IsBidLessThan5CentsInShoppingCampaignEnabled ? 0.01 : 0.05),\r\n max: _.result(bidRange, 'CeilingValue', 1000),\r\n };\r\n\r\n return _.mapObject(range, (val) => decimal.fromFloatToString(val, 2));\r\n};\r\n\r\nconst updateBidRangeInSchema = () => {\r\n const bidRange = IsBidLessThan5CentsInShoppingCampaignEnabled ? config.get('ProductGroupBidRange') : config.get('KeywordBidRange');\r\n const min = _.result(bidRange, 'FloorValue', IsBidLessThan5CentsInShoppingCampaignEnabled ? 0.01 : 0.05);\r\n const max = _.result(bidRange, 'CeilingValue', 1000);\r\n const schemaOrigin = s$AdGroup;\r\n const searchBidOrigin = schemaOrigin.properties.SearchBid;\r\n const searchBidCopy = _.extend({}, searchBidOrigin);\r\n const propertyCopy = _.extend({}, schemaOrigin.properties);\r\n const schemaCopy = _.extend({}, schemaOrigin);\r\n\r\n searchBidCopy.maximum = max;\r\n searchBidCopy.minimum = min;\r\n propertyCopy.SearchBid = searchBidCopy;\r\n schemaCopy.properties = propertyCopy;\r\n\r\n return schemaCopy;\r\n};\r\n\r\nexport default class CpgSearchBid extends DeterministicWrapperView {\r\n viewFactory({ SearchBid = {} } = {}) {\r\n this.form = new SimpleForm({\r\n schema: updateBidRangeInSchema(),\r\n fields: [{\r\n property: 'SearchBid',\r\n control: () => addonInput({\r\n addonText: config.get('AccountCurrencyCode'),\r\n }),\r\n validators: {\r\n range: {\r\n message: i18n.getString('ProductGroupsGrid_BidRange_Validation', getRange()),\r\n },\r\n },\r\n }],\r\n model: { SearchBid },\r\n s$i18n: schemai18n,\r\n showButtons: false,\r\n i18n: validationI18n,\r\n template,\r\n });\r\n\r\n return this.form;\r\n }\r\n\r\n isValid() {\r\n return this.form.validate();\r\n }\r\n\r\n getState() {\r\n return _.pick(this.form.currentModel(), 'SearchBid');\r\n }\r\n\r\n get className() {\r\n return 'cpg-search-bid-view';\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/shopping-campaign/viewmodel/cpg-adgroup/bid-section';\r\nimport template from '@bingads-webui-campaign-legacy/shopping-campaign/template/cpg-adgroup/bid-section.pug';\r\nimport CpgBidBoost from '@bingads-webui-campaign-legacy/shopping-campaign/view/cpg-adgroup/bid-boost';\r\nimport CpgSearchBid from '@bingads-webui-campaign-legacy/shopping-campaign/view/cpg-adgroup/search-bid';\r\n\r\nexport default class CpgBidSection extends Backbone.View {\r\n initialize(adgroup = { Settings: [{\r\n BidOption: 'BidValue',\r\n }]}) {\r\n this.viewModel = new ViewModel(_.result(_.first(adgroup.Settings), 'BidOption'));\r\n\r\n this.cpgSearchBid = new CpgSearchBid(_.pick(adgroup, 'SearchBid'));\r\n this.cpgBidBoost = new CpgBidBoost(_.pick(_.first(adgroup.Settings), 'BidBoostValue', 'BidMaxValue'));\r\n }\r\n\r\n get className() {\r\n return 'cpg-bid-section';\r\n }\r\n\r\n render() {\r\n this.$el.html(template());\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n this.$('.cpg-search-bid').append(this.cpgSearchBid.$el);\r\n this.$('.cpg-bid-boost').append(this.cpgBidBoost.$el);\r\n\r\n return this;\r\n }\r\n\r\n getValues(adgroup) {\r\n let adgroupParam = _.defaults(adgroup, { Settings: [{}] });\r\n let setting = {};\r\n\r\n if (this.viewModel.showBidValue()) {\r\n // If BidOption is BidValue, BidBoostValue should be null and BidMaxValue should be null\r\n _.extend(adgroupParam, this.cpgSearchBid.getState());\r\n\r\n setting = _.extend(adgroupParam.Settings[0], {\r\n BidBoostValue: null,\r\n BidMaxValue: null,\r\n });\r\n } else {\r\n // If BidOption is BidBoost, BidBoostValue should be set and > 0, BidMaxValue should be set.\r\n setting = _.extend(adgroupParam.Settings[0], this.cpgBidBoost.getState());\r\n }\r\n\r\n return _.extend(adgroupParam, {\r\n CoOpSetting: setting,\r\n });\r\n }\r\n\r\n validate() {\r\n if (this.viewModel.showBidValue()) {\r\n return this.cpgSearchBid.isValid();\r\n }\r\n\r\n return this.cpgBidBoost.isValid();\r\n }\r\n\r\n onBidOptionChanged(bidOption) {\r\n this.viewModel.bidOption(bidOption);\r\n }\r\n\r\n remove() {\r\n this.cpgSearchBid.remove();\r\n this.cpgBidBoost.remove();\r\n\r\n super.remove();\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { SimpleForm } from '@bingads-webui/simple-form';\r\nimport template from '@bingads-webui-campaign-legacy/shopping-campaign/template/cpg-adgroup/bid-type.pug';\r\n\r\nconst schemai18n = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\n\r\nexport default class AdGroupBidType extends DeterministicWrapperView {\r\n viewFactory({ BidOption } = {}) {\r\n const schema = {\r\n name: 'CoOpSetting',\r\n type: 'object',\r\n properties: {\r\n BidOption: {\r\n type: 'string',\r\n enum: ['BidValue', 'BidBoost'],\r\n helpId: 'pop_BA_CampaignCreate_Settings_AdGroupType',\r\n },\r\n },\r\n };\r\n\r\n this.form = new SimpleForm({\r\n schema,\r\n fields: [{\r\n property: 'BidOption',\r\n // BidOption can't be updated, so show static text in adgroup setting page\r\n control: _.isEmpty(BidOption) ? 'radios' : 'static',\r\n }],\r\n model: { BidOption },\r\n s$i18n: schemai18n,\r\n showButtons: false,\r\n template,\r\n });\r\n\r\n this.form.on('change:BidOption', (value) => {\r\n this.trigger('change:BidOption', value);\r\n }, this);\r\n\r\n this.form.on('clickHelpIcon', (e) => {\r\n window.PopupController.PopupJsClick(e.target); //eslint-disable-line\r\n });\r\n\r\n return this.form;\r\n }\r\n\r\n isValid() {\r\n return this.form.validate();\r\n }\r\n\r\n getState() {\r\n return _.pick(this.form.currentModel(), 'BidOption');\r\n }\r\n\r\n get className() {\r\n return 'adgroup-bid-type-view';\r\n }\r\n}\r\n","import CommonViewModel from '@bingads-webui-campaign-legacy/common-viewmodel/index';\r\n\r\n/**\r\n * The base class of the viewModels in the page\r\n * Provide the functionalities including ko-schema hooking-up, common error hanlding logic, etc.\r\n */\r\nclass BaseViewModel extends CommonViewModel {\r\n // insert shopping campaign's common logic here\r\n}\r\n\r\nexport default BaseViewModel;\r\n","import Backbone from 'backbone';\r\nimport URI from 'urijs';\r\nimport { Dialog } from '@bingads-webui/dialog';\r\nimport messageTemplate from './template/single-unlink-lightbox.pug';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/single-unlink-accounts');\r\n\r\nconst unlinkUrl = 'agency/createdelinkrequest';\r\n\r\nfunction ccUrl(relativeUrl, queryParams = null) {\r\n const ccBaseUrl = config.get('CCBaseUrl');\r\n const uri = new URI(ccBaseUrl.concat(relativeUrl));\r\n\r\n if (queryParams) {\r\n uri.setQuery(queryParams);\r\n }\r\n\r\n return uri.toString();\r\n}\r\n\r\nclass MessageView extends Backbone.View {\r\n initialize({titleMessage, subMessage}) {\r\n this.titleMessage = titleMessage;\r\n this.subMessage = subMessage;\r\n }\r\n\r\n render() {\r\n this.$el.html(messageTemplate({titleMessage: this.titleMessage, subMessage: this.subMessage}));\r\n return this;\r\n }\r\n}\r\n\r\nexport default class View extends Backbone.View {\r\n initialize({\r\n currentCid,\r\n userId,\r\n managedAccount,\r\n managingCustomer,\r\n }) {\r\n let buttons = [{\r\n text: i18n.getString('Single_Unlink'),\r\n name: 'primaryButton',\r\n class: 'btn btn-primary lightboxPrimary',\r\n }, {\r\n text: i18n.getString('Single_Unlink_Cancel'),\r\n name: 'defaultButton',\r\n class: 'btn btn-default lightboxDefault',\r\n }];\r\n\r\n this.lightboxDiv = new Dialog({ className: 'single-unlink-dialog', showCloseButton: false });\r\n this.lightboxDiv.setContent(new MessageView({\r\n titleMessage: i18n.getString('Single_Unlink_Title').replace('{0}', managingCustomer).replace('{1}', managedAccount.Name),\r\n subMessage: i18n.getString('Single_Unlink_Description')}));\r\n this.lightboxDiv.setState({buttons});\r\n this.lightboxDiv.on('clickedButton', (name) => {\r\n this.lightboxDiv.remove();\r\n if (name === 'primaryButton') {\r\n window.location.href = ccUrl(unlinkUrl, {cid: currentCid, uid: userId, aid: managedAccount.Id, rurl: window.location.href});\r\n }\r\n });\r\n document.body.appendChild(this.lightboxDiv.el);\r\n }\r\n\r\n render() {\r\n this.lightboxDiv.show();\r\n return this;\r\n }\r\n}\r\n","import SingleUnlinkLightbox from './single-unlink-lightbox';\r\n\r\nexport default function singleUnlinkAccounts({currentCid, userId, managedAccount, managingCustomer}) {\r\n const dialogView = new SingleUnlinkLightbox({\r\n currentCid,\r\n userId,\r\n managingCustomer,\r\n managedAccount,\r\n });\r\n\r\n dialogView.render();\r\n}\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\n\r\nimport { ErrorLocStrings } from '@bingads-webui-campaign-react/account-reparenting-localization';\r\n\r\nconst warningErrorCodes = ['ERROR1', 'ERROR2'];\r\nconst ccmtErrorPrefx = 'CCMTErrorNumber_';\r\nconst defaultErrorParams = {\r\n params: '',\r\n count: 1,\r\n sourceCustomerName: '',\r\n targetCustomerName: '',\r\n link: text => ({text}),\r\n};\r\n\r\nexport const isWarning = (errorCode) => {\r\n const code = errorCode.replace(ccmtErrorPrefx, '');\r\n return _.contains(warningErrorCodes, code);\r\n};\r\n\r\nexport const getErrorMessage = (i18n, errorCode, params = {}) => {\r\n const code = errorCode.replace(ccmtErrorPrefx, '');\r\n const errorKey = (code in ErrorLocStrings) ?\r\n ErrorLocStrings[code] :\r\n ErrorLocStrings.GenericErrorMessage;\r\n const errorParams = _.extend(defaultErrorParams, params);\r\n\r\n return i18n ? i18n.getString(errorKey, errorParams) : errorKey;\r\n};\r\n\r\nexport const ErrorMessage = (i18n, errorCode, params = {}) => {\r\n const code = errorCode.replace(ccmtErrorPrefx, '');\r\n const errorKey = (code in ErrorLocStrings) ?\r\n ErrorLocStrings[code] :\r\n ErrorLocStrings.GenericErrorMessage;\r\n const errorParams = _.extend(defaultErrorParams, params);\r\n const errorMessage = i18n.getString(errorKey);\r\n\r\n return (\r\n \r\n );\r\n};\r\n","export const ErrorHelpPopupIds = {\r\n AccountReparentingHotelAdsValidationFailed: 'ext60047',\r\n AccountReparentingUETRemarketingValidationFailed: 'ext60047',\r\n AccountReparentingBMCValidationFailed: 'ext60047',\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport _ from 'underscore';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { bulkErrorViewClassesProps, getBulkErrorViewStyles } from '@bingads-webui-campaign-react/account-reparenting-styles';\r\nimport { BulkErrorDetailsPropTypes, I18nPropTypes } from '@bingads-webui-campaign-react/account-reparenting-props';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { LearnMoreLink } from '@bingads-webui-campaign-react/help';\r\n\r\nimport { ErrorMessage, isWarning } from './error-codes';\r\nimport { ErrorHelpPopupIds } from './constants';\r\n\r\nexport const ARWUnthemedBulkErrorView = ({\r\n classes,\r\n errorDetails,\r\n i18n,\r\n sourceCustomer,\r\n targetCustomer,\r\n}) => {\r\n const errorCodes = _.keys(errorDetails);\r\n\r\n return (\r\n
\r\n {errorDetails && errorCodes && _.map(errorCodes, (errorCode) => {\r\n // support parameterized error message, populated in target\r\n const error = errorDetails[errorCode];\r\n const count = (error.entityIds || error).length;\r\n const params = error.target || '';\r\n const errorMessage = ErrorMessage(i18n, errorCode, {\r\n count,\r\n params,\r\n sourceCustomerName: sourceCustomer.Name,\r\n targetCustomerName: targetCustomer.Name,\r\n });\r\n const isWarningCode = isWarning(errorCode);\r\n const helpTopicId = ErrorHelpPopupIds[errorCode] || null;\r\n\r\n const iconClass = isWarningCode ? 'iconba-Warning' : 'iconba-Error';\r\n const cssClass = isWarningCode ? 'warning-info' : 'error-info';\r\n\r\n return (\r\n
\r\n \r\n \r\n {errorMessage}\r\n {helpTopicId && }\r\n \r\n
\r\n );\r\n })\r\n }\r\n
\r\n );\r\n};\r\n\r\nARWUnthemedBulkErrorView.propTypes = {\r\n errorDetails: BulkErrorDetailsPropTypes,\r\n classes: bulkErrorViewClassesProps.isRequired,\r\n i18n: I18nPropTypes.isRequired,\r\n sourceCustomer: PropTypes.shape({\r\n Name: PropTypes.string,\r\n }),\r\n targetCustomer: PropTypes.shape({\r\n Name: PropTypes.string,\r\n }),\r\n};\r\n\r\nARWUnthemedBulkErrorView.defaultProps = {\r\n errorDetails: null,\r\n sourceCustomer: { Name: '' },\r\n targetCustomer: { Name: '' },\r\n};\r\n\r\nexport const ARWBulkErrorView =\r\n withI18nConsumer(withDefaultStyles(\r\n ARWUnthemedBulkErrorView,\r\n getBulkErrorViewStyles\r\n ));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { Modal, Button } from '@bingads-webui-react/primitive';\r\nimport { BulkErrorDetailsPropTypes, I18nPropTypes } from '@bingads-webui-campaign-react/account-reparenting-props';\r\nimport { CommonLocStrings } from '@bingads-webui-campaign-react/account-reparenting-localization';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\n\r\nimport { ARWBulkErrorView } from './bulk-error-view';\r\n\r\n/* istanbul ignore next */\r\nconst BulkErrorViewWithModalDialog = ({\r\n errorDetails,\r\n i18n,\r\n onCancelClick,\r\n onEnablePilotsClick,\r\n onUpgradeServiceLevelClick,\r\n sourceCustomer,\r\n targetCustomer,\r\n}) => (\r\n \r\n \r\n \r\n \r\n \r\n {_.has(errorDetails, 'ReparentingRequireEnableTargetCustomerPilot') &&\r\n \r\n }\r\n {_.has(errorDetails, 'ReparentingRequireUpgradeTargetCustomerLevel') &&\r\n \r\n }\r\n \r\n \r\n \r\n);\r\n\r\nBulkErrorViewWithModalDialog.propTypes = {\r\n errorDetails: BulkErrorDetailsPropTypes.isRequired,\r\n i18n: I18nPropTypes.isRequired,\r\n onCancelClick: PropTypes.func.isRequired,\r\n onUpgradeServiceLevelClick: PropTypes.func.isRequired,\r\n onEnablePilotsClick: PropTypes.func.isRequired,\r\n sourceCustomer: PropTypes.shape({\r\n Name: PropTypes.string,\r\n }),\r\n targetCustomer: PropTypes.shape({\r\n Name: PropTypes.string,\r\n }),\r\n};\r\n\r\nBulkErrorViewWithModalDialog.defaultProps = {\r\n sourceCustomer: { Name: '' },\r\n targetCustomer: { Name: '' },\r\n};\r\n\r\nexport const ARWBulkErrorViewWithModalDialog = withI18nConsumer(BulkErrorViewWithModalDialog);\r\n","import _ from 'underscore';\r\nimport { notificationApi } from '@bingads-webui-react/notification-center';\r\nimport { getErrorMessage } from './error-codes';\r\n\r\nexport const handleAjaxAuthFailure = _.noop;\r\n\r\nexport const appendJsDataErrorSummary = (errors) => {\r\n if (_.isArray(errors)) {\r\n _.each(errors, (error) => {\r\n if (error) {\r\n const errorCode = _.isString(error.Code) ? error.Code : 'GenericErrorMessage';\r\n const params = _.isString(error.Target) ? error.Target : '';\r\n notificationApi.showWarning(getErrorMessage(null, errorCode, { params }));\r\n }\r\n });\r\n }\r\n};\r\n","import { Constants } from '@bingads-webui-clientcenter/entity-utils';\r\nimport { notSetPaymentOptionId } from '@bingads-webui-campaign-react/account-reparenting-utils';\r\n\r\nexport const CommonLocStrings = {\r\n Loading: _TL_('Loading ...'),\r\n ErrorsLabel: _TL_('Errors'),\r\n AccountNameNumberFormat: _TL_('{{name}}({{number}})'),\r\n BackLabel: _TL_('Back'),\r\n NextLabel: _TL_('Save & next'),\r\n OkLabel: _TL_('Ok'),\r\n GotitLabel: _TL_('Got it'),\r\n CancelLabel: _TL_('Exit'),\r\n CloseLabel: _TL_('Close'),\r\n SubmitLabel: _TL_('Submit request'),\r\n SaveAndExitLabel: _TL_('Save & exit'),\r\n TakeoverBillingSectionHeader: _TL_('Billing & payments'),\r\n TransferResourcesHeader: _TL_('Transfer resources'),\r\n NotSet: _TL_('Not Set'),\r\n Prepay: _TL_('Prepay'),\r\n Threshold: _TL_('Threshold'),\r\n MonthlyInvoice: _TL_('Monthly Invoice'),\r\n Grid_ShowRows: _TL_('Show rows:'),\r\n Grid_PageOf: _TL_('of'),\r\n UETSectionHeader: _TL_('UET tags'),\r\n EnablePilotsLabel: _TL_('Enable pilots'),\r\n UpgradeLabel: _TL_('Upgrade'),\r\n};\r\n\r\nexport const paymentOptionIdToKeyMap = {\r\n [notSetPaymentOptionId]: CommonLocStrings.NotSet,\r\n [Constants.PaymentOptionId.Prepay]: CommonLocStrings.Prepay,\r\n [Constants.PaymentOptionId.Threshold]: CommonLocStrings.Threshold,\r\n [Constants.PaymentOptionId.Invoice]: CommonLocStrings.MonthlyInvoice,\r\n};\r\n","export const ErrorLocStrings = {\r\n GenericErrorMessage: _TL_('We\\'ve encountered an error and can\\'t continue. Please contact support for further assistance.'),\r\n MandatorySelection: _TL_('Please make a selection.'),\r\n\r\n AccountIsUnderReparenting: _TL_('Account is in process of transferring to new owner, we are not able to support users to operate these tasks on the account during account transfer process.'),\r\n ReparentingNotAllowedForAdultAdsCustomer: _TL_('Manager account is in Adult Ads Pilot (Pilot ID 21), we are not able to support account transfer for this manager account.'),\r\n\r\n ReparentingNotAllowedForThresholdAccountsWithOverdueBalance: _TL_('{{count}} account(s) have an overdue balance.'),\r\n ReparentingNotAllowedForOnHoldAccounts: _TL_('{{count}} account(s) are on hold.'),\r\n ReparentingNotAllowedForAccountsAlreadyUnderReparenting: _TL_('{{count}} account(s) are pending a reparenting request.'),\r\n ReparentingNotAllowedForAccountsCrossCustomers: _TL_('{{count}} account(s) are not currently owned by the Manager account.'),\r\n ReparentingNotAllowedForUnderSAPPOR: _TL_('The manager account is under billing processing. We are not able to support account transfer request. Please try it again later.'),\r\n ReparentingNotAllowedForUnderBillingMigration: _TL_('The manager account is under billing migration. We are not able to support account transfer request. Please try it later.'),\r\n ReparentingNotAllowedForFraudAccount: _TL_('{{count}} account(s) are suspended.'),\r\n ReparentingNotAllowedForAccountsMaxLimit: _TL_('Reparenting_SelectedAccountsMaxLimit'),\r\n InvalidAccount: _TL_('{{count}} account(s) are not valid.'),\r\n\r\n ReparentingScheduledLinksBlocked: _TL_('This account has a scheduled delink for this agency. The scheduled delink must be removed prior to Account Reparenting.'),\r\n ReparentingAgencyNotLinkedToAccount: _TL_('LinkSettings not provided for Account with Agency Links'),\r\n ReparentingAgencySettingMissing: _TL_('Setting for Agency missing from Account.'),\r\n ReparentingMustDelinkTargetCustomer: _TL_('Account must delink agency'),\r\n ReparentingTargetCustomerCannotBeSourceCustomer: _TL_('The manager account is same as current owner of accounts you are transferring. Please enter a different manager account.'),\r\n SourceTargetCustomerNotInReparentingPilot: _TL_('The manager account is not enabled in account transfer pilot. We are not able to process this account transfer request.'),\r\n ReparentingNotAllowedForFraudCustomer: _TL_('The manager account is in suspended status. We are not able to process this account transfer request.'),\r\n ReparentingNotAllowedForInactiveCustomer: _TL_('The manager account is in suspended status. We are not able to process this account transfer request.'),\r\n ReparentingNotAllowedForCrossDomain: _TL_('The manager account is owned by Yahoo/Microsoft. We are not able to support account transfer between different domain.'),\r\n ReparentingNotAllowedForMarketMismatch: _TL_('The manager account has market restriction, and can’t accept accounts which are in different market. We are not able to process this account transfer request.'),\r\n ReparentingNotAllowedForExceedTotalAccountNumber: _TL_('Due to account number limitation, the manager account could not accept all accounts being transferred to it. We are not able to process this account transfer request.'),\r\n ReparentingNotAllowedForMissingCustomerLevelPilotInTarget: _TL_('The manager account are not enabled in Pilots {{params}} while {{sourceCustomerName}} are enabled, we are not able to process this account transfer request.'),\r\n ReparentingNotAllowedForNewBillToCustomerStayTheSame: _TL_(\"We've encountered an error and can't continue. New bill-to can't be set as same as account's current bill-to customer. Please go back and choose 'Keep current bill-to'.\"),\r\n ReparentingCustomerHierarchyCycleDetected: _TL_('This link will cause a Hierarchy error after account transfer. Please remove the link to continue the account transfer request.'),\r\n AccountReparentingFailedByMovedCustomerLevelGoal: _TL_('Some of your selected accounts cannot be transferred to {{targetCustomerName}} because they contain manager-account-level conversion goals that are being used by campaigns in other accounts. Please update the campaign-level goal associations and try transferring again.'),\r\n AccountReparentingFailedByRemainingCustomerLevelGoal: _TL_('Some of your selected accounts cannot be transferred to {{targetCustomerName}} because you have campaign goal associations that are linked with manager-account-level goals that remain under the original manager account. Please update your account accordingly and try transferring again.'),\r\n AccountReparentingFailedByCvrlWithCustomerLevelAudience: _TL_('Some of the selected accounts cannot be transferred to {{targetCustomerName}} because there are manager-account-level audiences under the current manager account which are being used to set conversion value rules. Please remove the audiences from the conversion value rules and try transferring again.'),\r\n\r\n AccountNameDuplicate: _TL_('Sorry, the account name {{params}} is duplicate with other accounts under manager account {{sourceCustomerName}}. Please update the account name before account transfer.'),\r\n ReparentingNotAllowedForTargetCustomerNotInPilot: _TL_('The manager account {{targetCustomerName}} are not enabled in Pilot(s) {{params}} while {{sourceCustomerName}} are enabled. We are not able to process this account transfer request. Go to the UCM pilot tab to add {{targetCustomerName}} to the pilot(s). Once the pilot(s) are enabled by their owners, return here to continue.'),\r\n ReparentingNotAllowedForSourceCustomerNotInPilot: _TL_('The {{sourceCustomerName}} are not enabled in Pilot(s) {{params}} while manager account {{targetCustomerName}} are enabled. We are not able to process this account transfer request. Go to the UCM pilot tab to add {{sourceCustomerName}} to the pilot(s). Once the pilot(s) are enabled by their owners, return here to continue.'),\r\n ReparentingRequireEnableTargetCustomerPilot: _TL_(\"{{targetCustomerName}} is not enabled in Pilots {{params}} while {{sourceCustomerName}} is enabled. To process your account transfer request, we're enabling the pilots above in {{targetCustomerName}}.\"),\r\n ReparentingRequireUpgradeTargetCustomerLevel: _TL_(\"We're upgrading {{targetCustomerName}} service level to {{params}} to proceed with account transfer.\"),\r\n PaymentInstrumentControlledCurrencyNotMatched: _TL_('The payment method is not accepted in this account’s country or region.'),\r\n PaymentMethodNotSupportedByAccount: _TL_('The payment method is not accepted in this account’s country or region.'),\r\n AccountsPerPaymentInstrumentLimitReached: _TL_('The payment method is associated with too many accounts, and exceeds the account number limitation.'),\r\n PaymentMethodAssociatedWithManyAccounts: _TL_('The payment method is associated with too many accounts, and exceeds the account number limitation.'),\r\n PostPayAccountCantAssociateWithPrepaidCard: _TL_('The payment method is a prepaid card, it can’t be used for a postpay threshold account.'),\r\n ReparentingAccountFinanceSettleFail: _TL_('Due to {{params}} failed to settle balance, we are not able to submit account transfer request.'),\r\n BillToCustomerFinancialStatusIsSoldToOnly: _TL_('This SAP ID is SoldTo Only, please choose other payment option or payment method.'),\r\n DeleteAllReparentingAccountsNotAllowed: _TL_('Account transfer request must include at least one account. If you want to cancel this request, please go to request tab to cancel it.'),\r\n ReparentingNotAllowedForNonAdvertiserCustomer: _TL_('The manager account belongs to publisher customer, we are not able to support account transfer to publisher customer.'),\r\n ReparentingNotAllowedForAggregatorCustomer: _TL_('The manager account is aggregator customer, we are not able to support account transfer to aggregator customer.'),\r\n PaymentInstrumentIdNotFound: _TL_('This payment method is not valid. Please select a new payment method.'),\r\n TargetCustomerIdInvalid: _TL_('The manager account number is invalid. Please enter a valid manager account number.'),\r\n TargetCustomerNumberInvalid: _TL_('The manager account number is invalid. Please enter a valid manager account number.'),\r\n CustomerLifecycleStatusInvalid: _TL_('The manager account is not active. We are not able to support account transfer to inactive manager account.'),\r\n NewBillToCustomerNotManageAccount: _TL_('This manager account can’t serve as bill-to customer. Please select a new bill-to customer.'),\r\n PaymentInstrumentIdInvalid: _TL_('This payment method is not valid. Please select a new payment method.'),\r\n InvoiceMustBePremiumOrInternalCustomer: _TL_('We are not able to support monthly invoice payment option for this customer.'),\r\n ReparentingAccountIdInvalid: _TL_('{{params}} is not a valid account, please remove it from account transfer request.'),\r\n AccountReparentingCampaignLimitValidationFailed: _TL_('The account being transferred has exceeded the allowable campaign resources limit (keywords, ads extensions, campaigns, etc.) under the new manager account. We are not able to process this account transfer request.'),\r\n AccountReparentingCustomerExclusionValidationFailed: _TL_('We are not able to process this request, due to manager account {{targetCustomerName}} has different customer exclusion setting with current account owner.'),\r\n AccountReparentingFailedByUnmovedAudiences: _TL_('This account has conversion value rules with audiences that weren’t transferred. Please remove such audience associations from your conversion value rules before proceeding.'),\r\n AccountReparentingFailedByMovedAudiences: _TL_('The customer has conversion value rules under other accounts that are using audiences that will be moved as part of reparenting. Please un-associate those audiences first before continuing.'),\r\n AccountReparentingHotelAdsValidationFailed: _TL_('{{count}} accounts contains Hotel ads which can’t be transferred.'),\r\n AccountReparentingUETRemarketingValidationFailed: _TL_('{{count}} accounts contains Audiences or Conversion Goals which can’t be transfered.'),\r\n AccountReparentingBMCValidationFailed: _TL_('{{count}} accounts are ineligible for transfer because it contains shopping campaigns, search campaigns with shopping settings, and/or flyer extensions with associated stores. Please update your account accordingly and try transferring again.'),\r\n CustomerLevelAccountCreationIsSuspended: _TL_('The manager account is blocked for this action. For more information, please contact Support.'),\r\n};\r\n","export const FinalReviewLocStrings = {\r\n FinalReviewPageHeader: _TL_('Final review'),\r\n FinalReviewPageTitle: _TL_('This is important:'),\r\n FinalReviewSummaryText1: _TL_('Once this transfer has completed, {{targetCustomer}} will be the new owner and can manage the transferred accounts and {{sourceCustomer}} will no longer have access to them.'),\r\n FinalReviewSummaryText2: _TL_('Going forward, the bill-to customer you set up will be financially responsible for the transferred accounts. Any new bill-to payment method that is not properly set up could cause ads to stop serving.'),\r\n FinalReviewSummaryText3: _TL_('If any campaigns are paused as a result of this transfer, you can re-set them after the account transfer is completed.'),\r\n FinalReviewSummaryText4: _TL_('You can check the status of your account transfer from the Requests tab on the Accounts Summary page.'),\r\n FinalReviewSummaryText5: _TL_('We will send notifications to users on both {{targetCustomer}} and {{sourceCustomer}} to update them about these changes.'),\r\n FinalReviewSummaryText6: _TL_('After checking the box that confirms you understand these conditions, click the Submit this request button.'),\r\n FinalReviewConfirmationQuestion: _TL_('Are you sure you would start this account transfer?'),\r\n FinalReviewConfirmationText: _TL_('Yes, start the transfer'),\r\n FinalReviewSummaryText101: _TL_('It may take 20mins to 24 hours to complete the transfer, based on the amount of data in the request.'),\r\n FinalReviewSummaryText102: _TL_('If you set up a new bill-to customer, they won\\'t be responsible for the charges until the transfer is completed.'),\r\n FinalReviewSummaryText103: _TL_('Once complete {{sourceCustomer}} will no longer have access to the transferred accounts.'),\r\n FinalReviewSummaryText104: _TL_('After the transfer is completed, please ask new account owner ({{targetCustomer}}) to review various scheduled tasks, like Automated Rules, Scripts, etc., as those may have been paused after account transfer.'),\r\n FinalReviewSummaryText105: _TL_('Please confirm if you would like to start the transfer.'),\r\n FinalReviewSubmitSuccess: _TL_('Done! Your account transfer request has been submitted. To track the status of this request, go to Request tab'),\r\n};\r\n\r\nexport const SubmitJobProgressStrings = {\r\n StepIndex: _TL_('Step {{index}}'),\r\n StepTitle: _TL_('{{index}}: {{title}}'),\r\n SubmittedStepTitle: _TL_('Submitted'),\r\n TransferringStepTitle: _TL_('Transferring accounts to new owner'),\r\n DoneStepTitle: _TL_('Done!'),\r\n SubmitProgressTitle: _TL_('Transfer account to a new owner'),\r\n SubmitProgressSubTitle1: _TL_('Thank you! We\\'ve got it from here...'),\r\n SubmitProgressSubTitle2: _TL_('You can still explore other parts of Microsoft Advertisign while we transfer accounts.'),\r\n};\r\n","export const simpleFormLegacyLocStrings = {\r\n SimpleForm_Button_Save: _TL_('Save'),\r\n SimpleForm_Button_Cancel: _TL_('Cancel'),\r\n Grid_Edit_Cell: _TL_('Edit'),\r\n KoSchema_String_RemainingCharactersText: _TL_('{{count}} characters remaining'),\r\n};\r\n","export const ManagerAccountLocStrings = {\r\n ManagerAccountPageHeader: _TL_('Transfer accounts to a new owner'),\r\n ManagerAccountTitle1: _TL_('We\\'ll guide you as you transfer accounts to a new owner. You should set aside 10 minutes to complete this form. You can also save your work and come back to complete your draft.'),\r\n ManagerAccountInputLabel: _TL_('Enter the manager account number you want to transfer the accounts to'),\r\n ManagerAccountInputPlaceholder: _TL_('Enter manager account number'),\r\n PreApprovalWarningMessage: _TL_('If you require an insertion order pre-approval, you will need to set up billing first before you can migrate campaign resources.'),\r\n IdentifyRecipientStepTitle: _TL_('Identify your recipient'),\r\n IdentifyRecipientStepDetails: _TL_('Provide the manager account number that\\'ll be the new home of the accounts you\\'re transferring. If you don\\'t have it, you can get it from the recipient (or the new owner)'),\r\n SetUpBillingStepTitle: _TL_('Set up billing'),\r\n SetUpBillingStepDetails: _TL_('The final step is to set up billing. For monthly invoice accounts, be sure to include an insertion order. Without one, ads won\\'t serve once the transfer is done.'),\r\n TakeLeaveStepTitle: _TL_('Take it or leave it'),\r\n TakeLeaveStepDetails: _TL_('For your selected accounts, choose whether or not to retain the direct manager links as part of the account transfer.'),\r\n TakeLeaveStepDetailsOfUET: _TL_('Meanwhile, review all UET tags, Audiences and Conversion goals on manager account {{sourceManagerAccountName}} to choose whether to move these resources together with account transfer.'),\r\n TakeLeaveStepDetailsNote: _TL_('We\\'ll skip this section if its not relevant'),\r\n NoteLabel: _TL_('Note'),\r\n ProcessingTimeStepTitle: _TL_('Processing time'),\r\n ProcessingTimeStepDetails: _TL_('We\\'ll start once you submit the transfer. Simple transfers are done in about 20 minutes, but complex setups can take up to 48 hours. When it\\'s done, the former owner won\\'t have access to the transferred accounts.'),\r\n NotAValidManagerAccount: _TL_('Please enter a valid Microsoft Advertising manager account number'),\r\n};\r\n","export const PendingTransferRequestSummaryLocStrings = {\r\n PendingTransferPageTitle: _TL_('View pending transfer request'),\r\n CompletedTransferPageTitle: _TL_('View transfer request'),\r\n PendingTransferPageMessage: _TL_('View the details of the transfer request'),\r\n};\r\n","export const ReviewBillingLocStrings = {\r\n Header: _TL_('Review billing'),\r\n NoPIGridData: _TL_('No payment instruments to review'),\r\n Description: _TL_('Review your setup for each account and make any necessary changes.'),\r\n IoApprovalDialogTitle: _TL_('Your insertion order requires customer approval'),\r\n IoApprovalDialogLine1: _TL_('The bill-to customer must approve your insertion order.'),\r\n IoApprovalDialogLine2: _TL_('Choose how you want to proceed.'),\r\n IoApprovalDialogOption1: _TL_('[Recommended] Send the insertion order for customer approval and wait with the transfer until the IO is approved. This recommended option keeps the account from going dark when the transfer takes place.'),\r\n IoApprovalDialogOption2: _TL_('Start the transfer without an approved insertion order. Although the IO will still be routed for customer approval, the account will go dark and stay dark until the IO is approved or added.'),\r\n IoApprovalDialogConfirm: _TL_('Confirm'),\r\n IoApprovalDialogGoBack: _TL_('Go back'),\r\n PiBulkFixDialogTitle: _TL_('Invalid payment method'),\r\n PiBulkFixDialogLine1: _TL_('Unfortunately, you need to select a different payment method for {{numberOfAccountsWithSameError}} accounts, because it\\'s invalid for the account currency and country/region. Do you want to apply this payment method to those accounts as well?'),\r\n PiBulkFixDialogLine2: _TL_('Note: If you proceed without a valid payment method, the account will go dark once the transfer is complete.'),\r\n PiBulkFixDialogApply: _TL_('Apply payment method'),\r\n PiBulkFixDialogNo: _TL_('No'),\r\n On: _TL_('On'),\r\n Off: _TL_('Off'),\r\n};\r\n","export const ReviewLinkingLocStrings = {\r\n NoGridData: _TL_('No direct manager review needed. Proceed to next step.'),\r\n ReviewAccountLinkingHeader: _TL_('Review direct managers'),\r\n ReviewAccountPageDescription: _TL_('The accounts you’re transferring can be fully accessed and controlled by direct managers because of pre-existing links to other manager accounts. Please decide if these direct managers need to retain access to the transferred accounts.'),\r\n KeepAllLinksLabel: _TL_('Keep link for all'),\r\n UnlinkAllLabel: _TL_('Remove link for all'),\r\n KeepLinkLabel: _TL_('Keep this link'),\r\n UnlinkLabel: _TL_('Unlink this account'),\r\n SelectLabel: _TL_('Select'),\r\n AccountLabel: _TL_('Account'),\r\n ActionLabel: _TL_('Transfer decision'),\r\n SearchAccounts: _TL_('Search accounts'),\r\n LinkedManagerAccountLabel: _TL_('Direct manager'),\r\n AccountLinkAction: _TL_('Account link action'),\r\n LinkConfirmationMissingTitle: _TL_('You\\'re not done yet!'),\r\n LinkConfirmationMissingMessage: _TL_('It looks like you\\'ve got a few decisions left to make. Check the Transfer decision column for next steps.'),\r\n PleaseMakeASelection: _TL_('Please make a selection.'),\r\n};\r\n","export const SetupBillingLocStrings = {\r\n Header: _TL_('Set up billing'),\r\n Description: _TL_('Choose the payment setting and payment method for {{ count }} accounts. Keep in mind:'),\r\n BulletPoint1: _TL_('All accounts need a payment method.'),\r\n BulletPoint2: _TL_('For prepay accounts, you should add funds as part of this transfer.'),\r\n BulletPoint3: _TL_('For monthly invoice accounts, you should add an insertion order. Add one now and we will route it to the customer for approval.'),\r\n WhoPays: _TL_('Who pays'),\r\n HowYouPay: _TL_('How you pay'),\r\n Prepay: _TL_('Prepay'),\r\n MonthlyInvoice: _TL_('Monthly invoice'),\r\n PostpayThreshold: _TL_('Postpay threshold'),\r\n WhatYouPayWith: _TL_('What you pay with'),\r\n NotSet: _TL_('Not set'),\r\n InsertionOrderWarning: _TL_('We recommend that you create an insertion order so that these accounts can continue to serve.'),\r\n AutoRechargeWarning: _TL_('You have auto-recharge set to off. We strongly recommend that you set auto-recharge for these accounts as you may exhaust your funds before data migration is completed.'),\r\n AccountsWillGoDarkDialogTitle: _TL_('Accounts will go dark'),\r\n AccountsWillGoDarkDialogMessage: _TL_('Your accounts will go dark as soon as the account transfer is complete because no payment instrument is selected.'),\r\n RetainBillingSettingsDialogTitle: _TL_('Retain billing settings'),\r\n RetainBillingSettingsDialogMessage: _TL_('Would you like to apply billing settings to all the accounts?'),\r\n Accept: _TL_('Accept'),\r\n Cancel: _TL_('Cancel'),\r\n ApplyAll: _TL_('Apply to all accounts'),\r\n Decline: _TL_('Remain saved record'),\r\n WhoPaysError: _TL_('There is no available payment method in the new owner manager account. Please set up an available payment method in the new owner manager account, then come back to this page to proceed.'),\r\n};\r\n","export const TakeoverBillingLocStrings = {\r\n NoGridData: _TL_('No current bill-to managers need review, please go to next step'),\r\n TakeoverBillingHeader: _TL_('Confirm bill-to customer'),\r\n TakeoverBillingNonePageDescription: _TL_('None of the accounts you\\'ve selected to transfer could keep their current bill-to. Please set up new bill-to customers in the next step'),\r\n TakeoverBillingPageDescription: _TL_('Of the {{totalCount}} you\\'ve selected to transfer, {{retainCount}} can keep their current bill-to and {{newCount}} need a new bill-to. Please decide whether to keep the current bill-to or if you want to set up a new bill-to in the next step.'),\r\n TakeoverBillingNote: _TL_('You\\'ll set up billing for {{totalCount}} when you click Next'),\r\n SearchAccounts: _TL_('Search accounts'),\r\n KeepCurrentBillToForAll: _TL_('Keep current bill-to for all'),\r\n SetupNewBillToForAll: _TL_('Set up new bill-to for all'),\r\n SetupNewBillTo: _TL_('Set up new bill-to'),\r\n KeepCurrentBillTo: _TL_('Keep current bill-to'),\r\n Select: _TL_('Select'),\r\n Account: _TL_('Account'),\r\n WhoPays: _TL_('Who pays'),\r\n CurrentPaymentSetting: _TL_('Current payment setting'),\r\n CurrentPaymentMethod: _TL_('Current payment method'),\r\n TransferDecision: _TL_('Transfer decision'),\r\n};\r\n","export const TransferSummaryLocStrings = {\r\n SummaryPaneHeader: _TL_('Summary'),\r\n DownloadSummaryLinkLabel: _TL_('Download summary'),\r\n CurrentManagerAccountLabel: _TL_('Current owner'),\r\n NewManagerAccountLabel: _TL_('New owner'),\r\n AccountsSelectedLabel: _TL_('Accounts selected for transfer'),\r\n NumberOfAccounts: _TL_('{{count}} Accounts'),\r\n RemoveAccount: _TL_('Remove'),\r\n SearchAccounts: _TL_('Search accounts'),\r\n SelectedAccountsLabel: _TL_('Selected Accounts'),\r\n RatinedAccountLinksLabel: _TL_('Retained direct manager links'),\r\n UnlinkedAccountLinksLabel: _TL_('Unlinked direct manager links'),\r\n RetainedBillToAccountsLabel: _TL_('Retained bill-to accounts'),\r\n NewBillToAccountsLabel: _TL_('New bill-to accounts'),\r\n BillingSetupLabel: _TL_('Billing setup'),\r\n PaymentSetting: _TL_('Payment setting'),\r\n PreapprovedIOLabel: _TL_('Pre-approved insertion orders'),\r\n InsertionOrderStatus: _TL_('{{count}} insertion orders'),\r\n AccountLinksLabel: _TL_('Account links'),\r\n UnlinkedAccountsLabel: _TL_('{{count}} accounts unlinked'),\r\n RetainedAccountsLabel: _TL_('{{count}} account links retained'),\r\n NewBillToLabel: _TL_('{{count}} accounts with new bill-to'),\r\n RetainedBillToLabel: _TL_('{{count}} accounts retains bill-to'),\r\n PaymentOption: _TL_('Payment option'),\r\n InsertionOrders: _TL_('Insertion orders'),\r\n InsertionOrdersApproved: _TL_('{{count}} insertion order(s) approved'),\r\n InsertionOrdersDeclined: _TL_('{{count}} insertion order(s) declined'),\r\n InsertionOrdersPending: _TL_('{{count}} insertion order(s) pending'),\r\n UETTagLabel: _TL_('UET tags'),\r\n UETTagTransfered: _TL_('1 UET tag transfered'),\r\n AccountLoseAccess: _TL_('1 account loses access'),\r\n UETTagsTransfered: _TL_('{{count}} UET tags transfered'),\r\n AccountsLoseAccess: _TL_('{{count}} accounts lose access'),\r\n UETPopoverTitle: _TL_('Transfered UET tags'),\r\n LoseAccessAccountPopoverTitle: _TL_('Lost access accounts'),\r\n SearchUETTags: _TL_('Search UET tags'),\r\n};\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const BasicAccountPropType = PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n Number: PropTypes.string.isRequired,\r\n});\r\n\r\nexport const AccountPropType = PropTypes.shape({\r\n Id: PropTypes.number,\r\n Name: PropTypes.string,\r\n Number: PropTypes.string,\r\n CurrencyType: PropTypes.string,\r\n PaymentType: PropTypes.number,\r\n PaymentOption: PropTypes.string,\r\n TimeZone: PropTypes.number,\r\n TaxInformation: PropTypes.arrayOf(PropTypes.shape({\r\n Key: PropTypes.string.isRequired,\r\n Value: PropTypes.string.isRequired,\r\n })),\r\n BusinessAddress: PropTypes.shape({\r\n Id: PropTypes.number,\r\n BusinessName: PropTypes.string,\r\n City: PropTypes.string,\r\n Country: PropTypes.string,\r\n Line1: PropTypes.string,\r\n Line2: PropTypes.string,\r\n PostalCode: PropTypes.string,\r\n StateOrProvince: PropTypes.string,\r\n CountryName: PropTypes.string,\r\n StateOrProvinceName: PropTypes.string,\r\n IsValid: PropTypes.bool,\r\n ValidationVersionId: PropTypes.number,\r\n }).isRequired,\r\n PreferredBillToPaymentInstrumentId: PropTypes.number,\r\n});\r\n\r\nexport const BasicCustomerPropType = PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n Number: PropTypes.string.isRequired,\r\n});\r\n\r\nexport const CustomerPropType = PropTypes.shape({\r\n Id: PropTypes.number,\r\n Name: PropTypes.string,\r\n Number: PropTypes.string,\r\n BusinessPhone: PropTypes.string,\r\n});\r\n\r\nexport const UserPropType = PropTypes.shape({\r\n Id: PropTypes.number,\r\n Name: PropTypes.string,\r\n Email: PropTypes.string,\r\n});\r\n\r\nexport const NewBillToPropType = PropTypes.shape({\r\n Customer: CustomerPropType,\r\n PaymentOptionId: PropTypes.number,\r\n});\r\n\r\nexport const DomainDataCountriesPropType = PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.string,\r\n value: PropTypes.shape({\r\n Code: PropTypes.string.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n }),\r\n}));\r\n\r\nexport const DomainDataCurrencyCountriesMapPropType = PropTypes.arrayOf(PropTypes.shape({\r\n currency: PropTypes.string.isRequired,\r\n countries: PropTypes.arrayOf(PropTypes.string.isRequired),\r\n}));\r\n\r\nexport const DomainDataCurrenciesPropType = PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n value: PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Code: PropTypes.string.isRequired,\r\n ControlledCurrencyCountryId: PropTypes.number,\r\n }),\r\n}));\r\n\r\nexport const DomainDataTimeZonesPropType = PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.string.isRequired,\r\n value: PropTypes.shape({\r\n Name: PropTypes.string.isRequired,\r\n }),\r\n}));\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const AccountPropTypes = PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n Number: PropTypes.string.isRequired,\r\n});\r\n\r\nexport const TagInfoPropType = PropTypes.shape({\r\n Account: AccountPropTypes,\r\n OwnedAudience: PropTypes.number,\r\n SharedAudience: PropTypes.number,\r\n ConversionGoal: PropTypes.number,\r\n AudienceAssociation: PropTypes.number,\r\n});\r\n\r\nexport const UETTagsPropTypes = PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n Move: PropTypes.bool,\r\n Accounts: PropTypes.arrayOf(AccountPropTypes),\r\n Audiences: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n })),\r\n Goals: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n })),\r\n TagUsedByInfosImpactedByTransfer: PropTypes.arrayOf(TagInfoPropType),\r\n TagUsedByInfosImpactedByKeep: PropTypes.arrayOf(TagInfoPropType),\r\n});\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const InstrumentationSchemaPropTypes = PropTypes.shape({\r\n scenario: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n value: PropTypes.any.isRequired,\r\n activity: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n value: PropTypes.any.isRequired,\r\n })).isRequired,\r\n })).isRequired,\r\n});\r\n\r\nexport const InstumentationServiceContextPropTypes = PropTypes.shape({\r\n logger: PropTypes.any.isRequired,\r\n instrumentation: PropTypes.any.isRequired,\r\n});\r\n\r\nexport const I18nPropTypes = PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n});\r\n\r\nexport const ServerContextPropTypes = PropTypes.shape({\r\n Accounts: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n Number: PropTypes.string.isRequired,\r\n })),\r\n AccountIds: PropTypes.arrayOf(PropTypes.number),\r\n CurrentCustomer: PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n Number: PropTypes.string.isRequired,\r\n }).isRequired,\r\n CurrentUser: PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n Email: PropTypes.string.isRequired,\r\n Name: PropTypes.string.isRequired,\r\n }).isRequired,\r\n SourceCustomerId: PropTypes.number,\r\n CurrentLocale: PropTypes.string.isRequired,\r\n Token: PropTypes.string.isRequired,\r\n PageTrackingId: PropTypes.string.isRequired,\r\n ServicesEndpoints: PropTypes.shape({\r\n ClientCenterUIAPI: PropTypes.string.isRequired,\r\n AccountsSummaryUrl: PropTypes.string.isRequired,\r\n }).isRequired,\r\n ReparentingId: PropTypes.number.isRequired,\r\n});\r\n\r\nexport const DomChildrenPropTypes = PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n]);\r\n\r\nexport const ServerContextProviderPropTypes = {\r\n serverContext: ServerContextPropTypes,\r\n children: DomChildrenPropTypes,\r\n};\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const BulkErrorDetailsPropTypes = PropTypes.shape({});\r\n","export const gridSelectEditorStyles = {\r\n paddingTop: '8px',\r\n borderWidth: '0px 0px 1px 0px',\r\n paddingBottom: '8px',\r\n borderBottomColor: 'transparent',\r\n display: 'block',\r\n};\r\n\r\nexport const gridInlineErrorStyle = ({ palette = {}, iconFontFamily = 'MsAds MDL2 Assets' }) => ({\r\n '& .inline-editor-errors': {\r\n '& .error-messages': {\r\n color: palette.red,\r\n listStyleType: 'none',\r\n marginBottom: 0,\r\n '& .error': {\r\n fontFamily: iconFontFamily,\r\n padding: '10px',\r\n fontSize: '10pt',\r\n '&:before': {\r\n content: '\"\\\\EA39\"',\r\n color: palette.red,\r\n },\r\n },\r\n '& .error-message': {\r\n fontSize: '12px',\r\n },\r\n },\r\n },\r\n});\r\n\r\nconst getBlockerStyle = (size, palette) => ({\r\n width: size,\r\n height: size,\r\n border: '2px solid',\r\n borderLeftColor: palette.themePrimary,\r\n borderRightColor: palette.themeLight,\r\n borderTopColor: palette.themeLight,\r\n borderBottomColor: palette.themeLight,\r\n borderRadius: '50%',\r\n animation: 'spinner 1s linear infinite',\r\n});\r\n\r\nexport const legacyUIBlockerStyle = (components, { palette = {} }) => ({\r\n '.blocker-container': {\r\n '& .blocker': {\r\n position: 'absolute',\r\n backgroundColor: 'rgba(255,255,255,0.4)',\r\n },\r\n '& .blocker-indicator': {\r\n top: '50%',\r\n left: '50%',\r\n position: 'absolute',\r\n outline: 'none',\r\n padding: '10px',\r\n backgroundColor: palette.white,\r\n color: palette.themePrimary,\r\n\r\n '& .blocker-image': {\r\n ...getBlockerStyle(28, palette),\r\n position: 'absolute',\r\n },\r\n\r\n '& .blocker-text': {\r\n margin: '2px 0 0 35px',\r\n },\r\n },\r\n },\r\n});\r\n","export const getWizardFooterStyles = (components, { palette = {} }) => ({\r\n borderTop: `1px solid ${palette.neutralLight}`,\r\n paddingLeft: '16px',\r\n paddingTop: '16px',\r\n paddingBottom: '16px',\r\n\r\n '& button.arw-step-submit': { marginRight: '8px', backgroundColor: palette.themePrimary, color: palette.white },\r\n '& button.arw-step-submit[disabled]': { marginRight: '8px', backgroundColor: palette.neutralLighter, color: palette.neutralPrimary },\r\n '& button.arw-step-next': { marginRight: '8px', backgroundColor: palette.themePrimary, color: palette.white },\r\n '& button.arw-step-next[disabled]': { marginRight: '8px', backgroundColor: palette.neutralLighter, color: palette.neutralPrimary },\r\n '& button.arw-step-saveandexit': { marginRight: '50px', float: 'right' },\r\n '& button.arw-step-saveandexit[disabled]': { marginRight: '50px', float: 'right' },\r\n '& button.arw-step-previous': { marginRight: '8px' },\r\n '& button.arw-step-cancel': { marginLeft: '48px' },\r\n});\r\n","const borderWidth = '2px';\r\n\r\nconst getColors = palette => ({\r\n completedBorder: palette.themePrimary,\r\n completedIcon: palette.themePrimary,\r\n inProgressIcon: '#c0def6',\r\n incompleteBorder: '#ebebeb',\r\n incompleteIcon: palette.neutralLight,\r\n\r\n background: palette.white,\r\n stepContentBorder: palette.neutralQuaternaryAlt,\r\n});\r\n\r\nexport const getStepProgressItemGlyphicon = (step) => {\r\n // sub steps\r\n if (step.path.indexOf('.') >= 0) {\r\n return 'ba-RadioBullet';\r\n }\r\n\r\n if (step.isSelected || step.containsSelected) {\r\n return 'ba-RadioBtnOn'; // current step\r\n } else if (step.isBehind) {\r\n return 'ba-CompletedSolid';\r\n }\r\n\r\n // default\r\n return 'ba-RadioBtnOff';\r\n};\r\n\r\nexport const getWizardProgressListContainerStyles = (components, { palette = {} }) => {\r\n const color = getColors(palette);\r\n\r\n return {\r\n minWidth: '228px',\r\n width: '228px',\r\n borderRight: `1px solid ${color.stepContentBorder}`,\r\n marginLeft: '38px',\r\n paddingTop: '15px',\r\n\r\n '& ol': {\r\n margin: 0,\r\n padding: 0,\r\n listStyle: 'none',\r\n },\r\n\r\n // Styles for drawing the vertical line\r\n '& .step-progress-list-item': {\r\n borderLeft: `${borderWidth} solid ${color.completedBorder}`,\r\n '&.step-progress-list-item-ahead': { borderLeftColor: color.incompleteBorder },\r\n },\r\n\r\n // top level list items\r\n '& ol.step-progress-list>.step-progress-list-item': {\r\n paddingTop: '24px',\r\n\r\n '&:first-child': { borderLeftColor: color.background, paddingTop: 0 },\r\n\r\n '&>.step-progress-list-item-glyphicon': {\r\n marginLeft: '-8px',\r\n marginRight: '8px',\r\n background: color.background,\r\n paddingTop: '5px',\r\n paddingBottom: '4px',\r\n },\r\n },\r\n\r\n // nested list items\r\n '& ol.step-progress-list-item-list>.step-progress-list-item': {\r\n lineHeight: '16px',\r\n paddingTop: '24px',\r\n marginLeft: `-${borderWidth}`,\r\n\r\n '&>.step-progress-list-item-glyphicon': {\r\n marginLeft: '-8px',\r\n marginRight: '12px',\r\n background: color.background,\r\n paddingBottom: '1px',\r\n },\r\n },\r\n\r\n '& .step-progress-list-item-selected': { fontWeight: '600' },\r\n\r\n // glyphicon colors\r\n '& .step-progress-list-item-behind .step-progress-list-item-glyphicon': {\r\n color: color.completedIcon,\r\n },\r\n '& .step-progress-list-item-selected .step-progress-list-item-glyphicon, & .step-progress-list-item-contains-selected>.step-progress-list-item-glyphicon': {\r\n color: color.inProgressIcon,\r\n },\r\n '& .step-progress-list-item-ahead .step-progress-list-item-glyphicon': {\r\n color: color.incompleteIcon,\r\n },\r\n };\r\n};\r\n","import _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport { datePickerStyle } from '@bingads-webui-campaign-react/common-styles';\r\n\r\nimport { legacyUIBlockerStyle } from './common-styles';\r\nimport { getWizardFooterStyles } from './footer-styles';\r\nimport { getWizardProgressListContainerStyles } from './progress-styles';\r\n\r\nconst getWizardStepsContainerStyles = (components, { palette = {} }) => ({\r\n display: 'flex',\r\n flex: '1 1 auto',\r\n '& .step-container': {\r\n width: '100%',\r\n },\r\n '& .arw-wizard-steps-content': {\r\n marginTop: '30px',\r\n display: 'flex',\r\n '& .arw-wizard-steps-main': {\r\n marginRight: '40px',\r\n flex: '1 1 auto',\r\n },\r\n '& .arw-wizard-steps-summary': {\r\n padding: '10px',\r\n float: 'right',\r\n width: '400px',\r\n minWidth: '400px',\r\n backgroundColor: palette.neutralLighter,\r\n },\r\n },\r\n '& .arw-step-footer': getWizardFooterStyles(components, { palette }),\r\n});\r\n\r\nexport const bulkErrorViewModalStyles = () => ({\r\n '#arw-bulk-error-view-dialog .modal-content': {\r\n width: '600px',\r\n },\r\n});\r\n\r\nexport const getWizardStyles = (components, { palette = {} }) => ({\r\n '@global': _.extend(\r\n {},\r\n bulkErrorViewModalStyles(),\r\n legacyUIBlockerStyle(components, { palette }),\r\n datePickerStyle({ palette })\r\n ),\r\n wizardListContainer: getWizardProgressListContainerStyles(components, { palette }),\r\n wizardStepsContainer: getWizardStepsContainerStyles(components, { palette }),\r\n arWizardContainer: {\r\n display: 'flex',\r\n height: '100%',\r\n\r\n '& .btn-link': {\r\n background: 'none!important',\r\n border: 'none!important',\r\n color: palette.themePrimary,\r\n cursor: 'pointer',\r\n },\r\n\r\n '& .arw-page-header': {\r\n fontSize: '20px',\r\n fontWeight: '600',\r\n marginBottom: '10px',\r\n },\r\n\r\n '& .arw-div-details': {\r\n marginTop: '5px',\r\n marginBottom: '15px',\r\n display: 'flex',\r\n fontWeight: 'normal',\r\n },\r\n },\r\n});\r\n\r\nexport const wizardClassesProps =\r\n PropTypes.shape(_.mapObject(getWizardStyles({}, {}), () => PropTypes.string));\r\n","export const headerRowBackgroundColor = '#FFFFFF';\r\nexport const headerRowBorderTop = '2px solid #81868B';\r\nexport const headerRowBorderBottom = '2px solid #81868B';\r\nexport const totalRowBackgroundColor = '#FFFFFF';\r\nexport const totalRowBorderTop = 'none'; // `1px solid ${palette.neutralLighter}`\r\nexport const tableBorder = '1px solid #EDEBE9';\r\n\r\nexport const gridPaddingLeft = '32px';\r\nexport const gridPaddingComponsation = '0px'; // These two should add up to 32px\r\n","import { tableBorder, headerRowBorderBottom, headerRowBackgroundColor, headerRowBorderTop } from './variables';\r\n\r\nexport default (_, { palette }) => ({\r\n '& tr': {\r\n '& th.column-header': {\r\n borderTop: headerRowBorderTop,\r\n borderBottom: headerRowBorderBottom,\r\n '& .helpbutton::before': {\r\n position: 'static',\r\n },\r\n },\r\n '& th': {\r\n verticalAlign: 'middle',\r\n fontWeight: '600',\r\n backgroundColor: headerRowBackgroundColor,\r\n color: palette.neutralPrimary,\r\n border: tableBorder,\r\n padding: '8px 10px',\r\n },\r\n\r\n '& th:first-child': {\r\n paddingLeft: '32px',\r\n },\r\n\r\n '& th:first-child, & th:nth-child(2), & th:nth-child(3)': {\r\n borderLeft: 'none',\r\n },\r\n\r\n '& th:first-child, & th:nth-child(2), & th:last-child': {\r\n borderRight: 'none',\r\n },\r\n\r\n '& th.column-header-sortable': {\r\n cursor: 'pointer',\r\n },\r\n\r\n '&.grid-cross-page-select-all': {\r\n '& th': {\r\n padding: '0',\r\n border: 'none',\r\n },\r\n },\r\n '& .glyphicon-arrow-up:before': {\r\n fontFamily: '\"MsAds MDL2 Assets\"',\r\n content: '\"\\\\EE68\"',\r\n },\r\n '& .glyphicon-arrow-down:before': {\r\n fontFamily: '\"MsAds MDL2 Assets\"',\r\n content: '\"\\\\EE69\"',\r\n },\r\n\r\n // this temporary style for grid POP before we got UI from designer\r\n '& th span.pop-toggle-icon.clickable': {\r\n height: '14px',\r\n width: '14px',\r\n border: '1px solid transparent',\r\n display: 'inline-block',\r\n float: 'none',\r\n marginTop: '3px',\r\n\r\n '&:hover': {\r\n border: '1px solid black',\r\n },\r\n\r\n '& span': {\r\n display: 'block',\r\n fontSize: '10px',\r\n fontFamily: 'MsAds MDL2 Assets',\r\n fontWeight: 'bold',\r\n '-webkit-font-smoothing': 'antialiased',\r\n height: '12px',\r\n lineHeight: '12px',\r\n textAlign: 'center',\r\n width: '12px',\r\n\r\n '&.pop-expand:before': {\r\n content: '\"\\\\E710\"',\r\n color: 'black',\r\n },\r\n\r\n '&.pop-collapse:before': {\r\n content: '\"\\\\E738\"',\r\n color: 'black',\r\n },\r\n },\r\n },\r\n },\r\n\r\n '& tr.pop-enabled th.column-header.pop-column-header > div.column-header-container': {\r\n display: 'inline-block',\r\n },\r\n});\r\n","import getColumnsStyles from './columns';\r\n\r\nexport default (components, { palette }) => ({\r\n '& tr': {\r\n backgroundColor: '#FFFFFF',\r\n color: palette.neutralPrimary,\r\n\r\n // hide extra border between header and body, the first filler tr in grid need to be excluded\r\n '&[data-key]:first-child, &:not([data-key]) + tr[data-key]': {\r\n '& td': {\r\n borderTop: 'none',\r\n },\r\n },\r\n\r\n '&:hover': {\r\n backgroundColor: palette.neutralLighter,\r\n },\r\n\r\n '&.row-selected': {\r\n backgroundColor: palette.neutralLight,\r\n\r\n '&:hover': {\r\n backgroundColor: palette.neutralQuaternaryAlt,\r\n },\r\n },\r\n\r\n '&:hover, &.row-selected, &.row-selected:hover': {\r\n '& td': {\r\n borderRight: '1px solid #FFFFFF',\r\n '&:first-child, &:nth-child(2), &:last-child': {\r\n borderRight: 'none',\r\n },\r\n },\r\n },\r\n\r\n '&.grid-error-row': {\r\n '& td': {\r\n '& ul.grid-error-list': {\r\n listStyle: 'none',\r\n paddingLeft: 0,\r\n margin: '0.5em 0',\r\n color: palette.red,\r\n '& .grid-error': {\r\n paddingRight: 5,\r\n },\r\n },\r\n },\r\n },\r\n\r\n '& td.has-error': {\r\n '& ul.error-messages': {\r\n color: palette.red,\r\n listStyle: 'none',\r\n marginTop: '5px',\r\n paddingLeft: '0px',\r\n },\r\n '& select': {\r\n border: `1px solid ${palette.red}`,\r\n },\r\n },\r\n\r\n '& td div.has-error': {\r\n '& span.error-message': {\r\n color: palette.red,\r\n marginTop: '5px',\r\n paddingLeft: '0px',\r\n },\r\n '& select': {\r\n border: `1px solid ${palette.red}`,\r\n },\r\n },\r\n\r\n '& td div.cell-with-error': {\r\n display: 'inline-block',\r\n\r\n '& .error-text': {\r\n color: palette.red,\r\n fontSize: '12px',\r\n },\r\n },\r\n\r\n '& td div.cell-with-error.has-error': {\r\n '& .cell-text': {\r\n borderBottom: `1px solid ${palette.red}`,\r\n },\r\n },\r\n\r\n '& td': getColumnsStyles(components, { palette }),\r\n\r\n '& .grid-column-IOEndDate, & .grid-column-IOStartDate, & .grid-column-IOBudget, & .grid-column-PrepayAmount': {\r\n whiteSpace: 'nowrap',\r\n },\r\n },\r\n});\r\n","import { tableBorder } from './variables';\r\n\r\nexport default () => ({\r\n '&': {\r\n padding: '8px 10px',\r\n verticalAlign: 'middle',\r\n // NOTE: updated from 'palette.neutralLighter' for fit and finish experiments\r\n border: tableBorder,\r\n },\r\n\r\n '&:first-child': {\r\n paddingLeft: '32px',\r\n },\r\n\r\n '&:first-child, &:nth-child(2), &:nth-child(3)': {\r\n borderLeft: 'none',\r\n },\r\n\r\n '&:first-child, &:nth-child(2), &:last-child': {\r\n borderRight: 'none',\r\n },\r\n\r\n '& span': {\r\n lineHeight: '16px',\r\n },\r\n\r\n\r\n '& .labels-cell-container': {\r\n '& .labels-cell-item': {\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n height: '20px',\r\n width: '70px',\r\n padding: '1px 7px 3px 8px',\r\n borderRadius: '2px',\r\n display: 'inline-block',\r\n margin: '0 10px 5px 0',\r\n verticalAlign: 'top',\r\n },\r\n\r\n '& > a': {\r\n fontSize: '14px',\r\n },\r\n },\r\n\r\n '&.text-left .grid-editable-cell-container': {\r\n display: 'flex',\r\n justifyContent: 'flex-start',\r\n alignItems: 'center',\r\n },\r\n\r\n '&.text-right .grid-editable-cell-container': {\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n alignItems: 'center',\r\n },\r\n\r\n '.status-image': {\r\n clear: 'none',\r\n float: 'right',\r\n },\r\n});\r\n","import getHeaderStyles from './header';\r\nimport getBodyStyles from './body';\r\nimport getFooterStyles from './footer';\r\n\r\nexport default (components, { palette }) => ({\r\n '& thead.header': getHeaderStyles(components, { palette }),\r\n '& tbody': getBodyStyles(components, { palette }),\r\n '& tfoot.footer': getFooterStyles(components, { palette }),\r\n '&': {\r\n borderLeft: 'none',\r\n borderRight: 'none',\r\n borderBottom: 'none',\r\n },\r\n '& .glyphicon': {\r\n position: 'static',\r\n },\r\n\r\n '& .iconba': {\r\n position: 'static',\r\n },\r\n\r\n '& .grid-disabled': {\r\n color: palette.neutralSecondaryAlt,\r\n },\r\n});\r\n","import { gridPaddingComponsation } from './variables';\r\n\r\nexport default () => ({\r\n '& tr.noborder': {\r\n '& td': {\r\n border: 'none',\r\n paddingLeft: '0px',\r\n paddingTop: '24px',\r\n '& .pagination-control': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginTop: '5px',\r\n marginBottom: '5px',\r\n marginLeft: gridPaddingComponsation,\r\n\r\n '& .form-control.page-size-selector': {\r\n marginLeft: '5px',\r\n },\r\n '& .pager': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginTop: '0',\r\n marginBottom: '0',\r\n marginLeft: '20px',\r\n '& .nav-button': {\r\n border: 'none',\r\n padding: '0',\r\n minWidth: '20px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n '&.prev': {\r\n marginRight: '10px',\r\n },\r\n '&.next': {\r\n marginLeft: '10px',\r\n },\r\n '&:disabled': {\r\n backgroundColor: '#fff',\r\n },\r\n },\r\n '& .page-number-input': {\r\n marginRight: '5px',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n});\r\n","export default (_, { palette }) => ({\r\n '[role=\"dialog\"].popup-editor': {\r\n padding: '24px 16px',\r\n zIndex: '10',\r\n backgroundColor: '#FFFFFF',\r\n boxShadow: '0px 0px 6px rgba(0, 0, 0, 0.2)',\r\n\r\n '& .form-validation-container[data-property=\"Name\"]': {\r\n width: '200px',\r\n },\r\n },\r\n '[role=\"dialog\"].popup-editor .form-inline .form-group': {\r\n display: 'block !important',\r\n },\r\n '.form-group ~ .form-group': {\r\n marginTop: 16,\r\n },\r\n '.popup-editor .btn ~ .btn': {\r\n marginLeft: 8,\r\n },\r\n '.grid-popupeditor': {\r\n position: 'absolute',\r\n zIndex: '10',\r\n backgroundColor: '#FFFFFF',\r\n boxShadow: '0px 0px 6px rgba(0, 0, 0, 0.2)',\r\n minHeight: 50,\r\n padding: '24px 16px',\r\n },\r\n '.grid-popupeditor.inline-budget-editor-popup': {\r\n paddingTop: '16px',\r\n paddingBottom: '16px',\r\n paddingLeft: '24px',\r\n paddingRight: '16px',\r\n },\r\n '.grid-popupeditor .btn ~ .btn': {\r\n marginLeft: 8,\r\n },\r\n '.grid-popupeditor label': {\r\n display: 'inline-block',\r\n },\r\n '.grid-popupeditor .campaigns-date-picker': {\r\n marginBottom: 16,\r\n position: 'relative',\r\n\r\n '& label': {\r\n position: 'relative',\r\n top: '-5px',\r\n },\r\n\r\n '& input': {\r\n marginRight: '7.5px',\r\n },\r\n\r\n '& > div': {\r\n width: '8em',\r\n },\r\n },\r\n '.grid-popupeditor.final-url-suffix-inline-edit-popup': {\r\n width: 310,\r\n },\r\n '.grid-popupeditor .custom-content': {\r\n marginBottom: 16,\r\n },\r\n '.grid-popupeditor .custom-params-template': {\r\n marginBottom: 16,\r\n width: 456,\r\n '& .flex-row-fixed, & .flex-row-dynamic': {\r\n display: 'inline-block',\r\n\r\n '& .custom-param__key-field': {\r\n display: 'inline-block',\r\n width: '150px',\r\n },\r\n\r\n '& label.control-label': {\r\n margin: '0 5px',\r\n },\r\n },\r\n '& .custom-param-entry': {\r\n display: 'block',\r\n marginBottom: 10,\r\n '& .iconba-Cancel': {\r\n fontSize: '16px',\r\n marginLeft: 5,\r\n cursor: 'pointer',\r\n },\r\n },\r\n },\r\n '.grid-popupeditor.tracking-template-inline-edit-popup': {\r\n width: 450,\r\n '& .charactersRemaining': {\r\n marginTop: 5,\r\n marginBottom: 5,\r\n },\r\n '& .font-error': {\r\n marginTop: 5,\r\n marginBottom: 5,\r\n },\r\n },\r\n '.font-error': {\r\n '& > ul': {\r\n listStyle: 'none',\r\n paddingLeft: 0,\r\n margin: 0,\r\n '& > li': {\r\n margin: '5px 0px 0px 0px',\r\n },\r\n '& > li:empty': {\r\n margin: 0,\r\n },\r\n },\r\n },\r\n '.popup-editor, .grid-popupeditor': {\r\n '& ul.help-block.error, ul[role=\"alert\"]': {\r\n listStyle: 'none',\r\n paddingLeft: 0,\r\n margin: 0,\r\n '& > li': {\r\n margin: '5px 0px 0px 0px',\r\n },\r\n '& > li:empty': {\r\n margin: 0,\r\n },\r\n },\r\n },\r\n '.table-container .grid-editable-cell': {\r\n cursor: 'pointer',\r\n },\r\n '.table-container .glyphicon.glyphicon-pencil': {\r\n fontFamily: '\"MsAds MDL2 Assets\"',\r\n fontStyle: 'normal',\r\n '-webkit-font-smoothing': 'antialiased',\r\n '-moz-osx-font-smoothing': 'grayscale',\r\n fontWeight: 'normal',\r\n fontSize: 16,\r\n lineHeight: 16,\r\n marginLeft: '8px',\r\n },\r\n '.table-container .glyphicon.glyphicon-pencil::before': {\r\n content: '\"\\\\E70F\"',\r\n color: palette.themeDark,\r\n },\r\n '#rejectionContainer > div': {\r\n zIndex: '300',\r\n },\r\n '.table-container .mark-container': {\r\n width: 14,\r\n },\r\n '.table-container .status-row': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n '& .decorated-element': {\r\n marginLeft: 8,\r\n marginRight: 8,\r\n },\r\n },\r\n '.grid-edit-icon.glyphicon-pencil': {\r\n verticalAlign: 'middle',\r\n },\r\n\r\n '#rejectionContainer .popover-view.rejection-reason-container': {\r\n backgroundColor: '#FFFFFF',\r\n boxShadow: '0px 0px 6px rgba(0, 0, 0, 0.2)',\r\n padding: '24px 16px',\r\n width: 300,\r\n },\r\n '#contextual-attribute': {\r\n maxWidth: '350px',\r\n '& .popover-title': {\r\n padding: 'unset',\r\n },\r\n '& .popover-content': {\r\n padding: 'unset',\r\n '& .contextual-content': {\r\n paddingLeft: '10px',\r\n paddingRight: '10px',\r\n paddingTop: '5px',\r\n paddingBottom: '5px',\r\n '& div': {\r\n fontFamily: 'inherit',\r\n fontWeight: 'inherit',\r\n lineHeight: '1.1',\r\n color: '#323130',\r\n paddingTop: '5px',\r\n paddingBottom: '5px',\r\n fontSize: '12px',\r\n '& .iconba-Warning': {\r\n marginLeft: '5px',\r\n marginRight: '5px',\r\n color: '#D83B01',\r\n },\r\n '& .iconba-Completed': {\r\n marginLeft: '5px',\r\n marginRight: '5px',\r\n color: '#107C10',\r\n },\r\n },\r\n },\r\n '& .popover-paged-content__pager': {\r\n margin: 'unset',\r\n },\r\n },\r\n },\r\n // body has default height of 0 as components in it has position: absolute\r\n // give it a height of view port so that grid inline-edit popup can be positioned correctly\r\n body: {\r\n height: '100vh',\r\n },\r\n '.popup-editor .error, .grid-popupeditor .error, .grid-popupeditor .font-error, .k-widget .error, .popup-editor .is-error': {\r\n color: '#A80000',\r\n fontSize: 12,\r\n },\r\n '.bingadsgrid': {\r\n '& .grid-noresult, & .grid-noresult-empty, & .noresult': {\r\n color: palette.neutralSecondary,\r\n fontSize: 26,\r\n lineHeight: '36px',\r\n padding: '20px 0 20px 40px',\r\n whiteSpace: 'nowrap',\r\n },\r\n },\r\n '.table-container .glyphicon.glyphicon-triangle-left': {\r\n fontFamily: '\"MsAds MDL2 Assets\"',\r\n },\r\n '.table-container .glyphicon.glyphicon-triangle-left::before': {\r\n content: '\"\\\\E76B\"',\r\n color: palette.neutralSecondary,\r\n },\r\n '.table-container .btn:disabled .glyphicon.glyphicon-triangle-left::before': {\r\n color: '#BEBBB8',\r\n },\r\n '.table-container .glyphicon.glyphicon-triangle-right': {\r\n fontFamily: '\"MsAds MDL2 Assets\"',\r\n },\r\n '.table-container .glyphicon.glyphicon-triangle-right::before': {\r\n content: '\"\\\\E76C\"',\r\n color: palette.neutralSecondary,\r\n },\r\n '.table-container .btn:disabled .glyphicon.glyphicon-triangle-right::before': {\r\n color: '#BEBBB8',\r\n },\r\n '.table-container .glyphicon.glyphicon-triangle-bottom': {\r\n fontFamily: '\"MsAds MDL2 Assets\"',\r\n },\r\n '.table-container .glyphicon.glyphicon-triangle-bottom::before': {\r\n content: '\"\\\\E70D\"',\r\n color: palette.neutralSecondary,\r\n },\r\n '.table-container .btn:disabled .glyphicon.glyphicon-triangle-bottom::before': {\r\n color: '#BEBBB8',\r\n },\r\n '.k-window-content.k-content': {\r\n outline: 'none',\r\n },\r\n});\r\n","// TODO: Move to a shared location: https://msasg.visualstudio.com/Bing_Ads/_workitems/edit/2318865\r\n// This is temporary and styles are a copy of the styles defined on Campaign/GridViewWrapper,\r\n// which is coupled to campaignUI.\r\nimport getTableStyles from './grid-styles/table';\r\nimport getSubComponentStyles from './grid-styles/sub-component';\r\nimport getGlobalStyles from './grid-styles/global';\r\nimport { gridPaddingLeft } from './grid-styles/variables';\r\n\r\nexport const getGridStyles = (components, { palette = {} }) =>\r\n ({\r\n grid: {\r\n fontFamily: 'Segoe UI',\r\n '& .bingadsgrid': {\r\n paddingLeft: gridPaddingLeft,\r\n },\r\n '& .table-container': {\r\n '& table.table': getTableStyles(components, { palette }),\r\n '&': getSubComponentStyles(components, { palette }),\r\n },\r\n },\r\n '@global': getGlobalStyles(components, { palette }),\r\n });\r\n","export default () => ({\r\n '& tr': {\r\n '& .grid-edit-icon': {\r\n fontSize: '16px',\r\n lineHeight: '16px',\r\n color: '#005A9E', // @shade20: #005a9e;\r\n visibility: 'visible',\r\n position: 'static',\r\n opacity: 0,\r\n\r\n '&:hover': {\r\n cursor: 'pointer',\r\n },\r\n '&:focus': {\r\n visibility: 'visible',\r\n opacity: 100,\r\n },\r\n },\r\n\r\n '&:hover .grid-edit-icon': {\r\n visibility: 'visible',\r\n opacity: 100,\r\n },\r\n },\r\n});\r\n","import PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nimport { gridSelectEditorStyles, gridInlineErrorStyle } from './common-styles';\r\nimport { getGridStyles } from './grid-styles';\r\nimport { tableBorder } from './grid-styles/variables';\r\n\r\nconst getARWGridStyles = (palette = {}) => ({\r\n '& .grid-toolbar .toolbar': {\r\n display: 'flex',\r\n fontWeight: 'normal',\r\n flexDirection: 'row',\r\n alignItems: 'stretch',\r\n '& .toolbar-item:first-child': {\r\n flex: '1 1 auto',\r\n },\r\n '& .toolbar-item': {\r\n width: 'fit-content',\r\n },\r\n '& #filter_quickFilterContainer input': {\r\n paddingLeft: '5px',\r\n width: '250px',\r\n height: '32px',\r\n },\r\n '& #filter_quickFilterContainer button': {\r\n display: 'none',\r\n },\r\n },\r\n '& .editor-control.select-editor': gridSelectEditorStyles,\r\n '& .arw-grid-container': {\r\n fontWeight: 'normal',\r\n ...gridInlineErrorStyle({ palette }),\r\n '& .error-placeholder': {\r\n fontSize: '12px',\r\n color: palette.red,\r\n },\r\n },\r\n '& .grid-nodata-container': {\r\n textAlign: 'center',\r\n fontSize: '20px',\r\n },\r\n});\r\n\r\nconst getARWModalViewStyles = (components, { palette = {} }) => ({\r\n '& span.iconba': {\r\n color: palette.themePrimary,\r\n },\r\n '& .progress-steps-message': {\r\n color: palette.themePrimary,\r\n },\r\n '& .modal-footer': {\r\n paddingTop: '25px',\r\n },\r\n '& .message': {\r\n marginBottom: '15px',\r\n },\r\n});\r\n\r\nconst getErrorLabelStyles = (components, { palette = {} }) => ({\r\n '& div.error': {\r\n fontWeight: 'normal',\r\n color: palette.red,\r\n },\r\n});\r\n\r\nexport const getFinalReviewPageStyles = (components, { palette = {} }) => ({\r\n finalReviewPageContainer: {\r\n padding: '15px',\r\n '& .review-summary-info': {\r\n paddingTop: '10px',\r\n },\r\n },\r\n arwModalViewContainer: getARWModalViewStyles(components, { palette }),\r\n});\r\n\r\nexport const getManagerInputPageStyles = (components, { palette = {} }) => ({\r\n managerAccountInputContainer: {\r\n padding: '15px',\r\n '& .arw-info-tile-container': {\r\n justifyContent: 'space-between',\r\n maxWidth: '95%',\r\n },\r\n ...getErrorLabelStyles(components, { palette }),\r\n },\r\n});\r\n\r\nexport const getSetupBillingPageStyles = (components, { palette = {} }) => ({\r\n ...getGridStyles(components, { palette }),\r\n setupBillingPageContainer: {\r\n padding: '15px',\r\n\r\n '& .title': {\r\n fontWeight: 600,\r\n margin: '5px 0',\r\n },\r\n\r\n '& .dropdown-container': {\r\n position: 'relative',\r\n\r\n '& span': {\r\n fontWeight: 'normal',\r\n },\r\n },\r\n\r\n '& #insertion-order-container': {\r\n fontSize: '12px',\r\n '& .bulk-create-row': {\r\n display: 'flex',\r\n },\r\n '& .bingads-popover-wrapper': {\r\n display: 'inline-block',\r\n },\r\n },\r\n },\r\n arwModalViewContainer: {\r\n ...getARWModalViewStyles(components, { palette }),\r\n '& .modal-content': {\r\n maxWidth: '550px',\r\n width: '550px',\r\n },\r\n },\r\n});\r\n\r\nexport const getReviewBillingPageStyles = (components, { palette = {} }) => ({\r\n ...getGridStyles(components, { palette }),\r\n arwModalViewContainer: {\r\n ...getARWModalViewStyles(components, { palette }),\r\n '& .modal-content': {\r\n maxWidth: '650px',\r\n width: '600px',\r\n },\r\n },\r\n reviewBillingPageContainer: {\r\n padding: '15px',\r\n ...getARWGridStyles(palette),\r\n '& .title': {\r\n fontWeight: 600,\r\n margin: '5px 0',\r\n },\r\n },\r\n});\r\n\r\nexport const getReviewLinkingPageStyles = (components, { palette = {} }) => ({\r\n ...getGridStyles(components, { palette }),\r\n reviewLinkingPageContainer: {\r\n padding: '15px',\r\n ...getARWGridStyles(palette),\r\n '& .review-linking-actions label': {\r\n display: 'inline-block',\r\n paddingLeft: '5px',\r\n verticalAlign: 'top',\r\n fontWeight: 'normal',\r\n },\r\n '& input[type=\"radio\"]::before, input[type=\"radio\"]::after': {\r\n content: 'none',\r\n },\r\n },\r\n arwModalViewContainer: getARWModalViewStyles(components, { palette }),\r\n});\r\n\r\nexport const getTakeoverBillingPageStyles = (components, { palette = {} }) => ({\r\n ...getGridStyles(components, { palette }),\r\n takeoverBillingPageContainer: {\r\n padding: '15px',\r\n ...getARWGridStyles(palette),\r\n '& .takeover-billing-actions label': {\r\n display: 'inline-block',\r\n paddingLeft: '5px',\r\n verticalAlign: 'top',\r\n fontWeight: 'normal',\r\n },\r\n '& input[type=\"radio\"]::before, input[type=\"radio\"]::after': {\r\n content: 'none',\r\n },\r\n },\r\n});\r\n\r\nexport const getReviewUETTagsPageStyles = (components, { palette = {} }) => ({\r\n ...getGridStyles(components, { palette }),\r\n reviewUETTagsPageContainer: {\r\n padding: '15px',\r\n ...getARWGridStyles(palette),\r\n '& .table-container table.table tbody tr': {\r\n '& td:nth-child(1), td:nth-child(2)': {\r\n borderRight: tableBorder,\r\n },\r\n },\r\n '& .table-container table.table thead.header tr': {\r\n '& th:nth-child(1), th:nth-child(2)': {\r\n borderRight: tableBorder,\r\n },\r\n },\r\n '& .title': {\r\n fontWeight: 600,\r\n margin: '5px 0',\r\n },\r\n '& .glyphicon-alert': {\r\n color: '#ffa500',\r\n },\r\n '& .impact-lose-access-account': {\r\n lineHeight: '32px',\r\n },\r\n '& .uet-warning-msg': {\r\n marginBottom: 15,\r\n },\r\n '& .impackt-list': {\r\n marginBottom: 0,\r\n 'padding-inline-start': '20px',\r\n '& li': {\r\n whiteSpace: 'nowrap',\r\n },\r\n },\r\n '& .button-list': {\r\n lineHeight: '32px',\r\n },\r\n },\r\n});\r\n\r\nexport const getSummaryPaneStyles = (components, { palette = {} }) => ({\r\n summaryPaneContainer: {\r\n padding: '15px',\r\n backgroundColor: palette.white,\r\n '& .btn-link': {\r\n background: 'none!important',\r\n border: 'none!important',\r\n color: palette.themePrimary,\r\n cursor: 'pointer',\r\n },\r\n '& .form-group': {\r\n display: 'flex',\r\n },\r\n '& .arw-label-title': {\r\n fontWeight: 'normal',\r\n flex: '1 1 auto',\r\n },\r\n '& .arw-label-value': {\r\n fontWeight: 'normal',\r\n float: 'right',\r\n },\r\n '& .download-summary-link': {\r\n listStyle: 'none',\r\n '& .glyphicon-download': {\r\n paddingRight: '5px',\r\n },\r\n },\r\n '& .popover-btn': {\r\n padding: '0 4px',\r\n },\r\n },\r\n});\r\n\r\nexport const getInfoTileStyles = (components, { palette = {} }) => ({\r\n infoTileContainer: {\r\n padding: '5px',\r\n outline: `solid 1px ${palette.neutralQuaternaryAlt}`,\r\n boxShadow: '0px 4.8px 10px rgba(0, 0, 0, 0.2), 0px 25.6px 57.6px rgba(0, 0, 0, 0)',\r\n textAlign: 'center',\r\n width: '250px',\r\n maxWidth: '22%',\r\n flex: '1 1 auto',\r\n\r\n '& .glyphicon': {\r\n color: palette.themePrimary,\r\n paddingTop: '10px',\r\n fontSize: '20px',\r\n },\r\n '& .info-tile-title': {\r\n padding: '10px',\r\n textAlign: 'left',\r\n },\r\n '& .info-tile-details': {\r\n padding: '10px',\r\n fontWeight: 'normal',\r\n textAlign: 'left',\r\n },\r\n },\r\n});\r\n\r\nexport const getBulkErrorViewStyles = (components, { palette = {} }) => ({\r\n bulkErrorViewContainer: {\r\n marginBottom: '15px',\r\n marginTop: '15px',\r\n '& .alert-info': {\r\n margin: '2px',\r\n '& span': {\r\n marginRight: '10px',\r\n },\r\n },\r\n '& .error-info': {\r\n color: palette.red,\r\n },\r\n },\r\n});\r\n\r\nexport const bulkErrorViewClassesProps =\r\n PropTypes.shape(_.mapObject(getBulkErrorViewStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const infoTileClassesProps =\r\n PropTypes.shape(_.mapObject(getInfoTileStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const managerInputPageClassesProps =\r\n PropTypes.shape(_.mapObject(getManagerInputPageStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const reviewLinkingPageClassesProps =\r\n PropTypes.shape(_.mapObject(getReviewLinkingPageStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const takeoverBillingPageClassesProps =\r\n PropTypes.shape(_.mapObject(getTakeoverBillingPageStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const finalReviewPageClassesProps =\r\n PropTypes.shape(_.mapObject(getFinalReviewPageStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const setupBillingPageClassesProps =\r\n PropTypes.shape(_.mapObject(getSetupBillingPageStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const reviewBillingPageClassesProps =\r\n PropTypes.shape(_.mapObject(getReviewBillingPageStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const reviewUETTagsPageClassesProps =\r\n PropTypes.shape(_.mapObject(getReviewUETTagsPageStyles({}, {}), () => PropTypes.string));\r\n\r\nexport const summaryPaneClassesProps =\r\n PropTypes.shape(_.mapObject(getSummaryPaneStyles({}, {}), () => PropTypes.string));\r\n","import PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nexport const getAccountsPopoverStyles = (components, { palette = {} }) => ({\r\n accountsPopover: {\r\n position: 'absolute!important',\r\n top: '0',\r\n right: '10px',\r\n\r\n '& .ba-search-box': {\r\n marginBottom: '15px',\r\n marginTop: '15px',\r\n },\r\n\r\n '& .modal-dialog': {\r\n width: '400px',\r\n padding: '15px',\r\n position: 'absolute!important',\r\n right: '0',\r\n left: 'auto',\r\n top: '0',\r\n height: 'calc(100vh - 60px)',\r\n pointerEvents: 'auto',\r\n\r\n '& .cancel-button': {\r\n marginTop: '25px',\r\n },\r\n\r\n '& .account-info-tile': {\r\n padding: '5px',\r\n display: 'flex',\r\n\r\n '& .account-name': {\r\n textOverflow: 'ellipsis',\r\n maxWidth: '180px',\r\n flex: '1 1 auto',\r\n overflow: 'hidden',\r\n listStyle: 'none',\r\n paddingTop: '7px',\r\n },\r\n\r\n '& .manager-name': {\r\n float: 'right',\r\n flex: '1 1 auto',\r\n textOverflow: 'ellipsis',\r\n maxWidth: '180px',\r\n textAlign: 'right',\r\n overflow: 'hidden',\r\n listStyle: 'none',\r\n paddingTop: '7px',\r\n },\r\n\r\n '& .remove-account': {\r\n float: 'right',\r\n flex: '1 1 auto',\r\n listStyle: 'none',\r\n background: 'none!important',\r\n border: 'none!important',\r\n color: palette.themePrimary,\r\n cursor: 'pointer',\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const accountsPopoverClassesProps =\r\n PropTypes.shape(_.mapObject(getAccountsPopoverStyles({}, {}), () => PropTypes.string));\r\n","import PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nexport const getEntityPopoverStyles = width => ({\r\n entityPopover: {\r\n position: 'absolute!important',\r\n top: '0',\r\n right: '10px',\r\n\r\n '& .ba-search-box': {\r\n marginBottom: '15px',\r\n marginTop: '15px',\r\n },\r\n\r\n '& .modal-dialog': {\r\n width: width || '400px',\r\n maxWidth: width || '450px',\r\n padding: '15px',\r\n position: 'absolute!important',\r\n right: '0',\r\n left: 'auto',\r\n top: '0',\r\n height: 'calc(100vh - 60px)',\r\n pointerEvents: 'auto',\r\n\r\n '& .cancel-button': {\r\n marginTop: '25px',\r\n },\r\n\r\n '& .entity-info-tile': {\r\n padding: '7px 0',\r\n\r\n '& .enity-name': {\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const entityPopoverClassesProps =\r\n PropTypes.shape(_.mapObject(getEntityPopoverStyles({}, {}), () => PropTypes.string));\r\n","export const themePalette = {\r\n neutralLight: '#edebe9',\r\n neutralLighter: '#f3f2f1',\r\n neutralPrimary: '#323130',\r\n neutralQuaternaryAlt: '#e1dfdd',\r\n neutralSecondary: '#605e5c',\r\n neutralSecondaryAlt: '#8a8886',\r\n neutralTertiary: '#a19f9d',\r\n themeDark: '#005a9e',\r\n themeDarkAlt: '#106ebe',\r\n themeDarker: '#004578',\r\n themePrimary: '#0078d4',\r\n themeLight: '#c7e0f4',\r\n white: '#ffffff',\r\n red: '#d80026',\r\n};\r\n","import _ from 'underscore';\r\n\r\nexport const convertAccountModelToServerContext = (account) => {\r\n /* eslint-disable max-len */\r\n const linkedManagers = _.filter(account.AccountCustomerRelations, rel => rel.isManagingCustomer === true);\r\n const billToManager = _.find(account.AccountCustomerRelations, rel => rel.isBillToCustomer === true);\r\n const parentManager = _.find(account.AccountCustomerRelations, rel => rel.isParentCustomer === true);\r\n\r\n return {\r\n Id: account.id,\r\n Name: account.Name,\r\n Number: account.Number,\r\n CurrencyType: account.CurrencyType,\r\n ParentManager: {\r\n Id: parentManager.RelatedToCustomerId,\r\n Name: parentManager.RelatedToCustomerName,\r\n Number: parentManager.RelatedToCustomerNumber,\r\n },\r\n BillToManager: {\r\n Id: billToManager.RelatedToCustomerId,\r\n Name: billToManager.RelatedToCustomerName,\r\n Number: billToManager.RelatedToCustomerNumber,\r\n PaymentSettingText: account.PaymentOption,\r\n PaymentMethodText: account.PreferredBillToPaymentInstrumentId,\r\n BillTo: true,\r\n },\r\n BillToChange: {\r\n PaymentInstrumentId: null,\r\n InsertionOrder: null,\r\n PrepayConfig: null,\r\n },\r\n LinkedManagers: _.map(linkedManagers, manager => ({\r\n Id: manager.RelatedToCustomerId,\r\n Name: manager.RelatedToCustomerName,\r\n Number: manager.RelatedToCustomerNumber,\r\n Unlink: null,\r\n })),\r\n };\r\n};\r\n","import { Constants } from '@bingads-webui-clientcenter/entity-utils';\r\n\r\nexport const transformMtIoToUIFormat = ({\r\n FromDate,\r\n ThruDate,\r\n SpendCapAmount,\r\n AgencyIdOrPo,\r\n FriendlyName,\r\n Comment,\r\n Status,\r\n}) => ({\r\n ioStartDate: FromDate,\r\n ioEndDate: ThruDate,\r\n ioBudget: SpendCapAmount,\r\n ioPurchaseOrder: AgencyIdOrPo,\r\n ioOrderName: FriendlyName,\r\n ioNotes: Comment,\r\n ioStatus: Status,\r\n});\r\n\r\nexport const transformIoUIToMtFormat = ({\r\n ioStartDate,\r\n ioEndDate,\r\n ioBudget,\r\n ioPurchaseOrder,\r\n ioOrderName,\r\n ioNotes,\r\n}) => ({\r\n FromDate: ioStartDate,\r\n ThruDate: ioEndDate,\r\n SpendCapAmount: ioBudget,\r\n AgencyIdOrPo: ioPurchaseOrder,\r\n FriendlyName: ioOrderName,\r\n Comment: ioNotes,\r\n});\r\n\r\nexport const areUiInsertionOrdersEqual = (ioA, ioB) =>\r\n ioA.ioStartDate.getTime() === ioB.ioStartDate.getTime() &&\r\n ioA.ioEndDate.getTime() === ioB.ioEndDate.getTime() &&\r\n ioA.ioBudget === ioB.ioBudget &&\r\n ioA.ioNotes === ioB.ioNotes &&\r\n ioA.ioOrderName === ioB.ioOrderName &&\r\n ioA.ioPurchaseOrder === ioB.ioPurchaseOrder;\r\n\r\nexport const isUiIoSet = io =>\r\n io.ioStartDate ||\r\n io.ioEndDate ||\r\n io.ioBudget ||\r\n io.ioNotes ||\r\n io.ioOrderName ||\r\n io.ioPurchaseOrder;\r\n\r\nexport const areIoRequiredFieldsSet = io =>\r\n io.ioStartDate &&\r\n io.ioEndDate &&\r\n io.ioBudget;\r\n\r\nexport const couldSetInsertionOrder = (paymentOptionId, paymentInstrumentId) =>\r\n paymentOptionId === Constants.PaymentOptionId.Invoice &&\r\n !!paymentInstrumentId;\r\n","import _ from 'underscore';\r\nimport { transformMtIoToUIFormat, transformIoUIToMtFormat } from './io-utils';\r\n\r\nexport const toClientSideBillingSetting = (billingSetting) => {\r\n if (!billingSetting) {\r\n return {};\r\n }\r\n\r\n const {\r\n NewBillToCustomerId,\r\n NewBillToCustomerName,\r\n NewBillToCustomerNumber,\r\n NewPaymentInstrumentId,\r\n NewPaymentOptionId,\r\n InsertionOrder,\r\n TopUpAmount,\r\n EstimatedTaxRate,\r\n IsRecurringPayment,\r\n } = billingSetting.BillToChangeSetting;\r\n\r\n if (InsertionOrder &&\r\n _.isString(InsertionOrder.FromDate) &&\r\n _.isString(InsertionOrder.ThruDate)\r\n ) {\r\n InsertionOrder.FromDate = new Date(InsertionOrder.FromDate);\r\n InsertionOrder.ThruDate = new Date(InsertionOrder.ThruDate);\r\n }\r\n const formattedInsertionOrder = InsertionOrder ? transformMtIoToUIFormat(InsertionOrder) : null;\r\n\r\n return {\r\n billToCustomer: {\r\n Id: NewBillToCustomerId,\r\n Name: NewBillToCustomerName,\r\n Number: NewBillToCustomerNumber,\r\n },\r\n paymentOptionId: NewPaymentOptionId,\r\n paymentInstrumentId: NewPaymentInstrumentId,\r\n insertionOrder: formattedInsertionOrder,\r\n prepayConfig: {\r\n addFundsAmount: TopUpAmount,\r\n estimatedTaxRate: EstimatedTaxRate || 0,\r\n isAutoRechargeEnabled: IsRecurringPayment,\r\n isValid: true,\r\n },\r\n };\r\n};\r\n\r\nexport const toServerSideBillingSetting = ({\r\n billToCustomer,\r\n paymentOptionId,\r\n paymentInstrumentId,\r\n insertionOrder,\r\n prepayConfig,\r\n}) => {\r\n const { Id, Name, Number } = billToCustomer;\r\n return {\r\n NewBillToCustomerId: Id,\r\n NewBillToCustomerName: Name,\r\n NewBillToCustomerNumber: Number,\r\n NewPaymentOptionId: paymentOptionId,\r\n NewPaymentInstrumentId: paymentInstrumentId || 0,\r\n InsertionOrder: insertionOrder ? transformIoUIToMtFormat(insertionOrder) : null,\r\n TopUpAmount: prepayConfig ? prepayConfig.addFundsAmount : 0,\r\n IsRecurringPayment: prepayConfig ? prepayConfig.isAutoRechargeEnabled : false,\r\n };\r\n};\r\n","export const BillToActionTypes = {\r\n SELECT: 0,\r\n CURRENT: 1,\r\n NEW: 2,\r\n};\r\n\r\nexport const LinkActionTypes = {\r\n SELECT: 0,\r\n UNLINK: 1,\r\n LINK: 2,\r\n};\r\n\r\n// Should be consistent with AccountReparentingJobStatus on Server Side\r\nexport const JobStatusTypes = {\r\n Draft: 0,\r\n WaitingAccept: 1,\r\n Accepted: 51,\r\n Declined: 52,\r\n WaitingIOApproval: 53,\r\n IOApproved: 54,\r\n IODeclined: 55,\r\n Created: 81,\r\n InProgress: 82,\r\n Failed: 83,\r\n Succeeded: 84,\r\n Deleted: 85,\r\n PostProcessingInProgress: 86,\r\n PostProcessingFailure: 87,\r\n};\r\n\r\n// Should be consistent with AccountReparentingJobUpdateType on Server Side\r\nexport const JobUpdateTypes = {\r\n StatusUpdate: 1,\r\n TargetCustomerUpdate: 2,\r\n CustomerErrorsUpdate: 4,\r\n AccountSettingsUpdate: 8,\r\n ReparentingAccountDelete: 16,\r\n DefaultBillingSettingUpdate: 32,\r\n};\r\n\r\nexport const notSetPaymentOptionId = 0;\r\nexport const notSetPaymentInstrumentId = null; // be consistent with the one in what-you-pay-with\r\n\r\nexport const defaultPrepayConfig = {\r\n addFundsAmount: 0,\r\n estimatedTaxRate: 0,\r\n isAutoRechargeEnabled: false,\r\n isValid: true,\r\n};\r\n\r\nexport const INSTRUMENTATION_SYSTEM_NAME = 'campaign';\r\nexport const INSTRUMENTATION_SUB_SYSTEM = 'accountreparenting';\r\n","import { Constants } from '@bingads-webui-clientcenter/entity-utils';\r\n\r\nexport const isInvoicePaymentOption = paymentOptionId =>\r\n paymentOptionId === Constants.PaymentOptionId.Invoice;\r\n\r\nexport const isPrepayPaymentOption = paymentOptionId =>\r\n paymentOptionId === Constants.PaymentOptionId.Prepay;\r\n\r\nexport const isThresholdPaymentOption = paymentOptionId =>\r\n paymentOptionId === Constants.PaymentOptionId.Threshold;\r\n","export const stringContains = (textValue, searchValue) =>\r\n textValue.indexOf(searchValue) !== -1;\r\n","import _ from 'underscore';\r\n\r\nexport const learnMoreHelpIds = {\r\n Hold: 'app50043',\r\n PendingPaymentMethod: 'app50054',\r\n PausedZeroBalance: 'app50053',\r\n PausedNoValidIO: 'app50035',\r\n PendingNewCustomer: 'app54626',\r\n Processing: 'app50051',\r\n AccountVerificationHold: 'app54799',\r\n};\r\n\r\nexport const contactSupport = [\r\n 'BillToCustomerTradeScreeningUnderReview_BillTo',\r\n 'BillToCustomerTradeScreeningDataIssue_BillTo',\r\n 'BillToCustomerTradeScreeningLicenseRequired_BillTo',\r\n];\r\n\r\nexport const externalLinkReasons = [\r\n 'BillToCustomerTradeScreeningDataIssue_Own',\r\n 'AccountTradeScreeningDataIssue',\r\n];\r\n\r\nexport const getAlertActionUrl = ({\r\n ccUrlBuilders: {\r\n BaseUrlBuilder,\r\n CreditHoldUrlBuilder,\r\n PaymentmethodsUrlBuilder,\r\n PaymentUrlBuilder,\r\n InsertionOrderUrlBuilder,\r\n AccountSettingsUrlBuilder,\r\n AccountUrlBuilder,\r\n TradeScreeningTransformationUrlBuilder,\r\n },\r\n aid,\r\n}) => ({\r\n // cc/CreditHold/Dashboard\r\n Hold: new CreditHoldUrlBuilder().action('dashboard').params({ aid }).url,\r\n // cc/PaymentMethods\r\n PendingPaymentMethod: new PaymentmethodsUrlBuilder().params({ aid }).url,\r\n // cc/Payment/Prepay\r\n PausedZeroBalance: new PaymentUrlBuilder().action('prepay').params({ aid }).url,\r\n // cc/InsertionOrder, extra params isPendingFilterSet=False\r\n PausedNoValidIO: new InsertionOrderUrlBuilder().params({ aid, isPendingFilterSet: 'False' }).url,\r\n // cc/Settings/Account/edit\r\n AccountMissingVATId: new AccountSettingsUrlBuilder().action('edit').params({ aid }).url,\r\n AccountMissingABL: new AccountSettingsUrlBuilder().action('edit').params({ aid }).url,\r\n // cc/settings/VerificationHub\r\n AccountVerificationHold: new BaseUrlBuilder('settings/VerificationHub').params({ aid }).url,\r\n // cc/Account/TakeOverBilling\r\n BillToCustomerTradeScreeningUnderReview_BillTo: new AccountUrlBuilder().action('TakeOverBilling').params({ aid }).url,\r\n BillToCustomerTradeScreeningDataIssue_BillTo: new AccountUrlBuilder().action('TakeOverBilling').params({ aid }).url,\r\n BillToCustomerTradeScreeningLicenseRequired_BillTo: new AccountUrlBuilder().action('TakeOverBilling').params({ aid }).url,\r\n // cc/MasterData/ManagementPortal\r\n AccountTradeScreeningDataIssue: new TradeScreeningTransformationUrlBuilder().action('ManagementPortal').params({ from: 'aid_accountSummary' }).url,\r\n BillToCustomerTradeScreeningDataIssue_Own: new TradeScreeningTransformationUrlBuilder().action('ManagementPortal').params({ from: 'cid_accountSummary' }).url,\r\n});\r\n\r\nconst alertReasonIdList = [\r\n 'NotSet',\r\n 'PausedDueToSystemIssue',\r\n 'PausedZeroBalance',\r\n 'PausedNoValidIO',\r\n 'Processing',\r\n 'PendingPaymentMethod',\r\n 'PendingNewCustomer',\r\n 'Inactive',\r\n 'Hold',\r\n 'Deleted',\r\n 'SystemNoSpendDeactivated',\r\n 'AccountMissingVATId',\r\n 'AccountVerificationHold',\r\n 'AccountTradeScreeningUnderReview',\r\n 'AccountTradeScreeningDataIssue',\r\n 'BillToCustomerTradeScreeningUnderReview',\r\n 'BillToCustomerTradeScreeningDataIssue',\r\n 'AccountTradeScreeningLicenseRequired',\r\n 'BillToCustomerTradeScreeningLicenseRequired',\r\n 'AccountMissingABL',\r\n];\r\n\r\nconst accountInactiveCauseCodeList = [\r\n 'NotSet',\r\n 'PausedDueToSystemIssue',\r\n 'PausedZeroBalance',\r\n 'PausedNoValidIO',\r\n 'Processing',\r\n 'PendingPaymentMethod',\r\n 'PendingNewCustomer',\r\n 'Inactive',\r\n 'Hold',\r\n 'AccountLifecycleStatusSuspended',\r\n 'AccountLifecycleStatusDraft',\r\n 'AccountLifecycleStatusDeleted',\r\n 'AccountLifecycleStatusUserPause',\r\n 'AccountFinancialStatusProposed',\r\n 'AccountFinancialStatusWriteOff',\r\n 'AccountFinancialStatusTaxOnHold',\r\n 'AccountFinancialStatusUserHold',\r\n 'AccountFinancialStatusPendingCreditCheck',\r\n 'AccountFinancialStatusSoldToOnly',\r\n 'AdvertiserCustomerLifecycleStatusDraft',\r\n 'AdvertiserCustomerLifecycleStatusInactive',\r\n 'AdvertiserCustomerLifecycleStatusDeleted',\r\n 'AdvertiserCustomerFraudStatusFraud',\r\n 'BillToCustomerLifecycleStatusDraft',\r\n 'BillToCustomerLifecycleStatusInactive',\r\n 'BillToCustomerLifecycleStatusDeleted',\r\n 'BillToCustomerFinancialStatusProposalsOnly',\r\n 'BillToCustomerFinancialStatusSoldToOnly',\r\n 'BillToCustomerFraudStatusFraud',\r\n 'AccountLifecycleStatusNotSet',\r\n 'AccountFinancialStatusNotSet',\r\n 'AdvertiserCustomerLifecycleStatusNotSet',\r\n 'AdvertiserCustomerFraudStatusNotSet',\r\n 'BillToCustomerLifecycleStatusNotSet',\r\n 'BillToCustomerFinancialStatusNotSet',\r\n 'BillToCustomerFraudStatusNotSet',\r\n 'UserDeleted',\r\n 'SystemNoSpendDeactivated',\r\n 'AccountMissingVATId',\r\n 'AccountVerificationHold',\r\n 'PolicyViolation',\r\n];\r\n\r\nexport const alertReasonId = _.invert(alertReasonIdList);\r\n\r\nexport const alertPausedReasons = ['Inactive', 'PausedDueToSystemIssue', 'Deleted'];\r\n\r\nexport const accountInactiveCauseCode = _.invert(accountInactiveCauseCodeList);\r\n\r\nexport const i18nPrefixes = {\r\n alertCategoryPrefix: 'AccountAlertCategory',\r\n alertDescriptionPrefix: 'AccountAlertDescription',\r\n alertReasonPrefix: 'AccountAlertReason',\r\n alertActionPrefix: 'AccountAlertAction',\r\n};\r\n\r\nexport const popupId = 'accountAlertDetailsContainer';\r\n","export const legacyKeysMap = {\r\n AccountAlertCategory_1: _TL_('Paused: System issue.'),\r\n AccountAlertCategory_2: _TL_('Paused: Zero balance.'),\r\n AccountAlertCategory_3: _TL_('Paused: No valid IO.'),\r\n AccountAlertCategory_4: _TL_('Processing.'),\r\n AccountAlertCategory_5: _TL_('Pending: Add payment method.'),\r\n AccountAlertCategory_6: _TL_('Pending: New manager account.'),\r\n AccountAlertCategory_7: _TL_('Inactive account.'),\r\n AccountAlertCategory_8: _TL_('Hold.'),\r\n AccountAlertCategory_9: _TL_('Deleted.'),\r\n AccountAlertCategory_11: _TL_('No valid VAT ID.'),\r\n AccountAlertCategory_12: _TL_('On hold: Advertiser identity verification'),\r\n AccountAlertCategory_12_CN: _TL_('On hold: Update your verification status'),\r\n AccountAlertCategory_13: _TL_('On hold: Wait for up to 48 hours.'),\r\n AccountAlertCategory_14: _TL_('On hold: Edit your information.'),\r\n AccountAlertCategory_15: _TL_('On hold.'),\r\n AccountAlertCategory_16: _TL_('On hold: Need your action.'),\r\n AccountAlertCategory_17: _TL_('On hold: Subject to mandates.'),\r\n AccountAlertCategory_18: _TL_('On hold: Subject to mandates (MA).'),\r\n AccountAlertCategory_19: _TL_('On hold: Missing ABL.'),\r\n AccountAlertDescription_Hold: _TL_('We tried to process a payment for your account, but the charges were not authorized. You need to remove the hold before your ads can run.'),\r\n AccountAlertDescription_Inactive: _TL_('This account is inactive. To reactivate the account, please contact support.'),\r\n AccountAlertDescription_PausedDueToSystemIssue: _TL_('Your account has been paused because of a system issue. To fix this issue, please contact support.'),\r\n AccountAlertDescription_PausedNoValidIO: _TL_('You need an active insertion order before your ads can run.'),\r\n AccountAlertDescription_PausedZeroBalance: _TL_('You need to add funds to this prepay account before your ads can run.'),\r\n AccountAlertDescription_PendingNewCustomer: _TL_('As a new customer, please make sure that you have completed account set up, including creating a campaign and adding a payment method. Note: After you complete set up, it can take up to 15 minutes before your ads can run.'),\r\n AccountAlertDescription_PendingPaymentMethod: _TL_('You need to add a primary payment method before your ads can run.'),\r\n AccountAlertDescription_Processing: _TL_('You have unlinked from an agency, and we are settling any outstanding charges. This can take up to 3 hours. During this time, your ads are not running and you cannot make changes to your accounts.'),\r\n AccountAlertDescription_Deleted: _TL_('This account has been deleted. To activate the account, please contact support.'),\r\n AccountAlertDescription_AccountMissingVATId: _TL_('You need a VAT ID to ensure your ads can run.'),\r\n AccountAlertDescription_AccountVerificationHold: _TL_('You need to update your advertiser identity verification request.'),\r\n AccountAlertDescription_AccountVerificationHold_CN: _TL_('You need to update your advertiser identity verification status or other required qualifications to remove the account hold.'),\r\n AccountAlertDescription_AccountTradeScreeningUnderReview: _TL_('The financial status of this account is on hold. It could take up to 48 hours for us to complete your account’s review process. Please wait and try again later.'),\r\n AccountAlertDescription_AccountTradeScreeningLicenseRequired: _TL_('Your account has been identified as subject to mandates and Microsoft Advertising is obligated by law to take action and put you on hold. If you require any further information on this, we recommend you seek external counsel.'),\r\n AccountAlertDescription_AccountTradeScreeningDataIssue: _TL_('The financial status of this account is on hold. To remove this hold, please edit or complete your account information.'),\r\n AccountAlertDescription_BillToCustomerTradeScreeningUnderReview_BillTo: _TL_('This account and its associated ads are paused because the bill-to customer is on hold. To enable your ads, please change the bill-to customer or contact Support.'),\r\n AccountAlertDescription_BillToCustomerTradeScreeningUnderReview_Own: _TL_('One or more of your accounts are under review and have been placed on hold. It could take up to 48 hours for us to complete your account’s review process. During this time, no ads will run. Please wait and try again later.'),\r\n AccountAlertDescription_BillToCustomerTradeScreeningLicenseRequired_BillTo: _TL_('This account and its associated ads are paused because the bill-to customer is on hold. To enable your ads, please change the bill-to customer or contact Support.'),\r\n AccountAlertDescription_BillToCustomerTradeScreeningLicenseRequired_Own: _TL_('Your manager account has been identified as subject to mandates and Microsoft Advertising is obligated by law to take action and put you on hold. If you require any further information on this, we recommend you seek external counsel.'),\r\n AccountAlertDescription_BillToCustomerTradeScreeningDataIssue_BillTo: _TL_('This account and its associated ads are paused because the bill-to customer is on hold. To enable your ads, please change the bill-to customer or contact Support.'),\r\n AccountAlertDescription_BillToCustomerTradeScreeningDataIssue_Own: _TL_('This account and all associated ads are on hold. To remove this hold and allow ads to run, please edit or complete your account information.'),\r\n AccountAlertDescription_AccountMissingABL: _TL_('The financial status of this account is on hold. To remove the hold, please go to complete your account business location (ABL).'),\r\n AccountAlertReason_9: _TL_('Account is in suspended lifecycle status.'),\r\n AccountAlertReason_10: _TL_('Account is in draft lifecycle status.'),\r\n AccountAlertReason_11: _TL_('Account is in deleted lifecycle status.'),\r\n AccountAlertReason_13: _TL_('Account financial status is proposed.'),\r\n AccountAlertReason_14: _TL_('Account financial status is write-off.'),\r\n AccountAlertReason_15: _TL_('Account financial status is hold.'),\r\n AccountAlertReason_16: _TL_('Account financial status is user hold.'),\r\n AccountAlertReason_17: _TL_('Account financial status is in pending credit check.'),\r\n AccountAlertReason_18: _TL_('Account financial status is sold to only.'),\r\n AccountAlertReason_19: _TL_('Advertiser lifecycle status is draft.'),\r\n AccountAlertReason_21: _TL_('Advertiser lifecycle status is deleted.'),\r\n AccountAlertReason_23: _TL_('Lifecycle status of the bill-to customer is draft.'),\r\n AccountAlertReason_24: _TL_('Lifecycle status of the bill-to customer is inactive.'),\r\n AccountAlertReason_28: _TL_('Bill-to customer status is fraud.'),\r\n AccountAlertReason_29: _TL_('Account lifecycle status is not set.'),\r\n AccountAlertReason_30: _TL_('Account financial status is not set.'),\r\n AccountAlertReason_31: _TL_('Advertiser lifecycle status is not set.'),\r\n AccountAlertReason_32: _TL_('Advertiser fraud status is not set.'),\r\n AccountAlertReason_33: _TL_('Bill-to customer status is not set.'),\r\n AccountAlertReason_34: _TL_('Bill-to customer financial status is not set.'),\r\n AccountAlertReason_35: _TL_('Bill-to customer fraud status is not set.'),\r\n AccountAlertReason_40: _TL_('Account is inactive due to policy violation.'),\r\n AccountAlertAction_Hold: _TL_('{0}Remove hold{1}'),\r\n AccountAlertAction_InactivePaused: _TL_('{0}Contact support{1}'),\r\n AccountAlertAction_PausedNoValidIO: _TL_('{0}Create order{1}'),\r\n AccountAlertAction_PausedZeroBalance: _TL_('{0}Add funds{1}'),\r\n AccountAlertAction_PendingPaymentMethod: _TL_('{0}Add payment method{1}'),\r\n AccountAlertAction_AccountMissingVATId: _TL_('{0}Add VAT ID{1}'),\r\n AccountAlertAction_AccountVerificationHold: _TL_('{0}Update verification status{1}'),\r\n AccountAlertAction_AccountTradeScreeningDataIssue: _TL_('{0}Remove the hold{1}'),\r\n AccountAlertAction_BillToCustomerTradeScreeningDataIssue_BillTo: _TL_('{0}Change bill-to customer{1}'),\r\n AccountAlertAction_BillToCustomerTradeScreeningDataIssue_Own: _TL_('{0}Remove the hold{1}'),\r\n AccountAlertAction_BillToCustomerTradeScreeningUnderReview_BillTo: _TL_('{0}Change bill-to customer{1}'),\r\n AccountAlertAction_BillToCustomerTradeScreeningLicenseRequired_BillTo: _TL_('{0}Change bill-to customer{1}'),\r\n AccountAlertAction_AccountMissingABL: _TL_('{0}Remove the hold{1}'),\r\n LearnMore: _TL_('Learn more'),\r\n Contact_Support: _TL_('Contact support'),\r\n AccountGrid_Alerts: _TL_('Errors'),\r\n ModalPopup_BizLoc_Close: _TL_('Close'),\r\n Format_CustomerNameAndId: _TL_('{0} ({1})'),\r\n};\r\n\r\n","import React, { Fragment, useCallback, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nimport { getUrlBuilders } from '@bingads-webui-clientcenter/url-builder-base';\r\nimport { buildLegacyI18n } from '@bingads-webui/build-legacy-i18n';\r\nimport { HelpLink } from '@bingads-webui-react/help-link';\r\nimport { useFooterConfig } from '@bingads-webui-campaign-react/content-footer';\r\n\r\nimport * as popupConstants from './constants';\r\nimport { legacyKeysMap } from '../i18n/legacy-keys';\r\n\r\nconst getLearnMore = reason => popupConstants.learnMoreHelpIds[reason] || null;\r\n\r\nconst transformReasonCode = (reason, opts) => {\r\n const rules = {\r\n BillToCustomerTradeScreeningLicenseRequired: ({ isCustomerBillToCustomer }) =>\r\n `BillToCustomerTradeScreeningLicenseRequired_${isCustomerBillToCustomer ? 'Own' : 'BillTo'}`,\r\n BillToCustomerTradeScreeningUnderReview: ({ isCustomerBillToCustomer }) =>\r\n `BillToCustomerTradeScreeningUnderReview_${isCustomerBillToCustomer ? 'Own' : 'BillTo'}`,\r\n BillToCustomerTradeScreeningDataIssue: ({ isCustomerBillToCustomer }) =>\r\n `BillToCustomerTradeScreeningDataIssue_${isCustomerBillToCustomer ? 'Own' : 'BillTo'}`,\r\n AccountVerificationHold: ({ isChinaAccount }) => (isChinaAccount ? 'AccountVerificationHold_CN' : 'AccountVerificationHold'),\r\n };\r\n const transformer = rules[reason];\r\n return transformer ? transformer(opts) : reason;\r\n};\r\n\r\nconst getContactSupport = (reason, opts) => (popupConstants.contactSupport.includes(transformReasonCode(reason, opts)) ? opts.url : null);\r\n\r\nexport const AccountInactiveReasons = ({\r\n accountInactiveReasons,\r\n isCustomerBillToCustomer,\r\n i18n: vnextI18n,\r\n serverContext,\r\n preferenceService,\r\n scope,\r\n permissions,\r\n siteMap,\r\n aid,\r\n}) => {\r\n const { locSettings, supportUrlConfigKey } = useFooterConfig({\r\n i18n: vnextI18n,\r\n serverContext,\r\n preferenceService,\r\n scope,\r\n permissions,\r\n siteMap,\r\n });\r\n const i18n = useMemo(() => buildLegacyI18n(vnextI18n, [legacyKeysMap]), [vnextI18n]);\r\n const isChinaAivPhase3Enabled = _.get(permissions, ['dynamic', 'CNMarketExpansion'], false) && _.get(permissions, ['dynamic', 'ChinaAivPhase3'], false);\r\n\r\n // because we're dynamically generating the i18n key from server data\r\n // need to ensure i18n contains the key, otherwise i18n will throw exception\r\n const safeTranslate = useCallback(\r\n key => (_.has(legacyKeysMap, key) ? i18n.getString(key) : null),\r\n [i18n]\r\n );\r\n\r\n const getAlertCategory = useCallback(\r\n (reason) => {\r\n if (popupConstants.alertReasonId[reason]) {\r\n const i18nPrefix = popupConstants.i18nPrefixes.alertCategoryPrefix;\r\n const reasonId = popupConstants.alertReasonId[reason];\r\n const suffix = reason === 'AccountVerificationHold' && isChinaAivPhase3Enabled ? '_CN' : '';\r\n\r\n return safeTranslate(`${i18nPrefix}_${reasonId}${suffix}`);\r\n }\r\n return null;\r\n },\r\n [safeTranslate, isChinaAivPhase3Enabled]\r\n );\r\n\r\n const getAlertDescription = useCallback(\r\n (reason) => {\r\n const i18nPrefix = popupConstants.i18nPrefixes.alertDescriptionPrefix;\r\n const transformedReason = transformReasonCode(reason, { isCustomerBillToCustomer, isChinaAccount: isChinaAivPhase3Enabled });\r\n\r\n return safeTranslate(`${i18nPrefix}_${transformedReason}`);\r\n },\r\n [safeTranslate, isCustomerBillToCustomer, isChinaAivPhase3Enabled]\r\n );\r\n\r\n const getAlertCauses = useCallback(\r\n (causes) => {\r\n const causeExplinations = [];\r\n\r\n _.each(causes, (cause) => {\r\n const i18nPrefix = popupConstants.i18nPrefixes.alertReasonPrefix;\r\n const causeCodeId = popupConstants.accountInactiveCauseCode[cause];\r\n const causeExplination = safeTranslate(`${i18nPrefix}_${causeCodeId}`);\r\n\r\n if (causeExplination) {\r\n causeExplinations.push(causeExplination);\r\n }\r\n });\r\n return causeExplinations;\r\n },\r\n [safeTranslate]\r\n );\r\n\r\n const getAlertActionText = useCallback(\r\n (reason) => {\r\n const i18nPrefix = popupConstants.i18nPrefixes.alertActionPrefix;\r\n const transformedReason = transformReasonCode(reason, { isCustomerBillToCustomer });\r\n const alertActionText = safeTranslate(`${i18nPrefix}_${transformedReason}`);\r\n\r\n return alertActionText.replace(/\\{\\d{1}\\}/g, '');\r\n },\r\n [safeTranslate, isCustomerBillToCustomer]\r\n );\r\n\r\n const uid = serverContext.CurrentUser.Id;\r\n const cid = serverContext.CurrentCustomer.Id;\r\n const ccUrlBuilders = useMemo(\r\n () =>\r\n getUrlBuilders({\r\n ccBaseUrl: serverContext.Urls.ClientCenterBaseUrl,\r\n cidFetcher: _.constant(cid),\r\n uidFetcher: _.constant(uid),\r\n getDefaultIsShortUrl: _.constant(false),\r\n }),\r\n [cid, serverContext.Urls.ClientCenterBaseUrl, uid]\r\n );\r\n\r\n const getAlertAction = useCallback(\r\n (reason) => {\r\n const transformedReason = transformReasonCode(reason, { isCustomerBillToCustomer });\r\n if (_.includes(popupConstants.alertPausedReasons, transformedReason)) {\r\n return {\r\n linkText: getAlertActionText('InactivePaused'),\r\n url: locSettings[supportUrlConfigKey],\r\n isExternal: true,\r\n };\r\n }\r\n\r\n const url = popupConstants.getAlertActionUrl({ ccUrlBuilders, aid })[transformedReason];\r\n\r\n if (!url) {\r\n return null;\r\n }\r\n\r\n return {\r\n linkText: getAlertActionText(transformedReason),\r\n url,\r\n isExternal: _.includes(popupConstants.externalLinkReasons, transformedReason),\r\n };\r\n },\r\n [isCustomerBillToCustomer, ccUrlBuilders, aid, getAlertActionText, locSettings, supportUrlConfigKey]\r\n );\r\n\r\n const alerts = _.chain(accountInactiveReasons)\r\n .map(reason => ({\r\n category: getAlertCategory(reason.Reason),\r\n description: getAlertDescription(reason.Reason),\r\n causes: getAlertCauses(reason.Causes),\r\n action: getAlertAction(reason.Reason),\r\n learnMore: getLearnMore(reason.Reason),\r\n contactSupport: getContactSupport(reason.Reason, { isCustomerBillToCustomer, url: locSettings[supportUrlConfigKey] }),\r\n }))\r\n .filter(alert => alert.category && alert.description)\r\n .value();\r\n\r\n /* eslint-disable jsx-a11y/anchor-is-valid */\r\n return (\r\n
\r\n {_.map(alerts, alert => (\r\n
\r\n
\r\n
\r\n
{alert.category}
\r\n
{alert.description}
\r\n
\r\n {_.map(alert.causes, cause => (\r\n
{cause}
\r\n ))}\r\n
\r\n
\r\n {alert.action &&\r\n \r\n {alert.action.linkText}\r\n }\r\n {/* Button that comes after action link, they are mutually exclusive */}\r\n {(() => {\r\n if (alert.learnMore) {\r\n return (\r\n \r\n {alert.action && |}\r\n {i18n.getString('LearnMore')}\r\n \r\n );\r\n }\r\n if (alert.contactSupport) {\r\n return (\r\n \r\n {alert.action && |}\r\n \r\n {i18n.getString('Contact_Support')}\r\n \r\n \r\n );\r\n }\r\n return null;\r\n })()}\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n );\r\n};\r\n\r\n/* eslint-disable react/forbid-prop-types */\r\nAccountInactiveReasons.propTypes = {\r\n accountInactiveReasons: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n isCustomerBillToCustomer: PropTypes.bool.isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n serverContext: PropTypes.shape({\r\n CurrentUser: PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n }).isRequired,\r\n CurrentCustomer: PropTypes.shape({\r\n Id: PropTypes.number.isRequired,\r\n }).isRequired,\r\n Urls: PropTypes.shape({\r\n ClientCenterBaseUrl: PropTypes.string.isRequired,\r\n }).isRequired,\r\n }).isRequired,\r\n preferenceService: PropTypes.object.isRequired,\r\n scope: PropTypes.object.isRequired,\r\n permissions: PropTypes.object.isRequired,\r\n siteMap: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.string,\r\n })).isRequired,\r\n aid: PropTypes.number.isRequired,\r\n};\r\n","import { getActionCalloutStyle } from '@bingads-webui-campaign-react/accounts-summary-common';\r\n\r\nexport const getStyle = (components, { palette } = {}) => ({\r\n '& .popover-title': {\r\n fontWeight: 600,\r\n },\r\n\r\n '& .account-inactive-reasons': {\r\n fontSize: 14,\r\n },\r\n '& .alert-row': {\r\n display: 'flex',\r\n },\r\n '& .alert-row + .alert-row': {\r\n marginTop: '1em',\r\n },\r\n '& .status-error': {\r\n color: palette.red,\r\n marginRight: 10,\r\n lineHeight: '21px',\r\n },\r\n '& .alert-category': {\r\n fontWeight: 600,\r\n },\r\n '& .alert-links': {\r\n display: 'flex',\r\n\r\n '& .separator': {\r\n padding: {\r\n left: '1ex',\r\n right: '1ex',\r\n },\r\n },\r\n '& .iconba': {\r\n marginLeft: '1ex',\r\n },\r\n },\r\n\r\n '@global': {\r\n '#account-inactive-reasons-fallback-callout': {\r\n ...getActionCalloutStyle(components, { palette }),\r\n },\r\n },\r\n});\r\n","/**\r\n * Common popover class name to check in mouse leaving event handler, all popovers that relies on the mouseleave behavior should add this\r\n */\r\nexport const ACCOUNTS_GRID_POPOVER_CLASSNAME = 'accounts-grid-callout';\r\n\r\n/**\r\n * Common callout component mounting DOM\r\n */\r\nexport const ACCOUNTS_GRID_CALLOUT_MOUNTING_DOM = 'call-out-container';\r\n\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport classNames from 'classnames';\r\n\r\nimport { Popover } from '@bingads-webui-campaign-react/accounts-summary-common';\r\n\r\nimport { ACCOUNTS_GRID_CALLOUT_MOUNTING_DOM, ACCOUNTS_GRID_POPOVER_CLASSNAME } from './constants';\r\n\r\nexport function getAutoPlacement(target, calloutMaxWidth = 325) { // this value is defined in global style\r\n const { right } = target.getBoundingClientRect();\r\n const placement = right + calloutMaxWidth > window.innerWidth ? 'left' : 'right';\r\n\r\n return placement;\r\n}\r\n\r\nexport const dismissCallout = () => {\r\n ReactDOM.unmountComponentAtNode(document.getElementById(ACCOUNTS_GRID_CALLOUT_MOUNTING_DOM));\r\n};\r\n\r\nexport const renderCallout = ({\r\n target,\r\n title,\r\n popoverId,\r\n popoverClassName,\r\n contentView,\r\n contentProps,\r\n placement = 'right',\r\n closeButtonAriaLabel = '',\r\n}) => {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(ACCOUNTS_GRID_CALLOUT_MOUNTING_DOM)\r\n );\r\n};\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport URI from 'urijs';\r\n\r\nimport {\r\n Navigation,\r\n DirectManagersCallout,\r\n Utils,\r\n} from '@bingads-webui-campaign-react/accounts-summary-common';\r\nimport { AccountInactiveReasons } from '@bingads-webui-campaign-react/account-inactive-reasons';\r\n\r\nimport { ACCOUNTS_GRID_POPOVER_CLASSNAME, ACCOUNTS_GRID_CALLOUT_MOUNTING_DOM } from './constants';\r\nimport { renderCallout, dismissCallout } from './accounts-grid-callout';\r\n\r\nconst isDeletedMatcher = _.matcher({ Reason: 'Deleted' });\r\n\r\nconst getSwitchCustomerShellLink = cid =>\r\n new URI(window.location.href)\r\n .setSearch('cid', String(cid))\r\n .removeSearch('uid')\r\n .removeSearch('aid')\r\n .hash('')\r\n .toString();\r\n\r\nconst showInactiveReasonCallout = ({\r\n account,\r\n i18n,\r\n serverContext,\r\n scope,\r\n siteMap,\r\n preferenceService,\r\n permissions,\r\n event,\r\n}) => {\r\n const contentProps = {\r\n accountInactiveReasons: _.reject(account.AccountInactiveReasons, isDeletedMatcher),\r\n isCustomerBillToCustomer: account.OwnerId === account.BillToCustomerId,\r\n i18n,\r\n serverContext,\r\n scope,\r\n siteMap,\r\n preferenceService,\r\n permissions,\r\n aid: account.Id,\r\n };\r\n\r\n renderCallout({\r\n target: event.currentTarget,\r\n title: i18n.getString(_TL_('Account error')),\r\n popoverId: 'account-status-callout',\r\n popoverClassName: 'account-status-callout',\r\n contentView: AccountInactiveReasons,\r\n contentProps,\r\n closeButtonAriaLabel: i18n.getString(_TL_('Close')),\r\n });\r\n};\r\n\r\nconst showDirectManagersCallout = ({\r\n account, event, i18n, view, isInternal,\r\n}) => {\r\n const data = _.map(account.ManagerAccounts, customer => ({\r\n name: customer.Name,\r\n number: customer.CustomerNumber,\r\n id: customer.Id,\r\n link: isInternal ? getSwitchCustomerShellLink(customer.Id) : '',\r\n }));\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(ACCOUNTS_GRID_CALLOUT_MOUNTING_DOM)\r\n );\r\n};\r\n\r\nexport const getCommonEvents = ({\r\n scope,\r\n siteMap,\r\n i18n,\r\n serverContext,\r\n preferenceService,\r\n permissions,\r\n}) => (view) => {\r\n const handleDirectManagersCalloutEvent = (event) => {\r\n event.stopPropagation();\r\n const key = view.gridView.keyOfElement(event.target);\r\n const account = view.gridView.itemWithKey(key);\r\n\r\n showDirectManagersCallout({\r\n account,\r\n i18n,\r\n event,\r\n view,\r\n isInternal: permissions.IsInternalUser,\r\n });\r\n };\r\n\r\n return {\r\n 'click .with-account-inactive-reasons.clickable': (event) => {\r\n event.stopPropagation();\r\n const key = view.gridView.keyOfElement(event.target);\r\n const account = view.gridView.itemWithKey(key);\r\n\r\n showInactiveReasonCallout({\r\n account,\r\n i18n,\r\n serverContext,\r\n scope,\r\n siteMap,\r\n preferenceService,\r\n permissions,\r\n event,\r\n view,\r\n });\r\n },\r\n 'mouseenter .manager-account-count.clickable': _.debounce(handleDirectManagersCalloutEvent, 50),\r\n 'keydown .manager-account-count.clickable': Utils.filterEnterKeyDown(handleDirectManagersCalloutEvent),\r\n 'click .account-name-column-template a.customer-scope-navigator': (event) => {\r\n event.preventDefault();\r\n const target = $(event.currentTarget);\r\n const cid = target.data('cid');\r\n\r\n Navigation.toCustomerScopeLandingPage({ cid, scope, siteMap });\r\n },\r\n 'mouseleave td': (event) => {\r\n if ($(event.relatedTarget).closest(`.${ACCOUNTS_GRID_POPOVER_CLASSNAME}`).length === 0) {\r\n view.trigger('closePopup');\r\n }\r\n },\r\n };\r\n};\r\n","import Promise from 'bluebird';\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\n\r\nimport { DataSourceStore } from '@bingads-webui-campaign/data-source-store';\r\nimport { cloneDeep } from '@bingads-webui-universal/primitive-utilities';\r\nimport { FilterService } from '@bingads-webui/filter-service';\r\nimport { projectionGridScopeNavigator } from '@bingads-webui-campaign/projection-grid-scope-navigator';\r\nimport { WaterfallFilterStorage, WaterfallFilterType, waterfallDateFilterProcessor } from '@bingads-webui-campaign/filter-storage';\r\nimport { getGridPreferences } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { getPGridColumnResizePlugin } from '@bingads-webui-campaign/projection-grid-column-resize-helper';\r\nimport { buildNameToPropertyMapping, flattenEntitySchema } from '@bingads-webui/filter-schema';\r\n\r\nimport { getCommonEvents } from './common-events';\r\nimport { getFilterConfig } from './filter-config';\r\n\r\nfunction getGridFilterConfig({\r\n cachedFilterService,\r\n AccountSummaryFilterImprovementEnabled,\r\n gridName,\r\n preferenceService,\r\n updateAccountEntitySchemaForFilterConfig,\r\n deps: {\r\n appConfig,\r\n accountSchema,\r\n schemaI18nCampaign,\r\n legacyGlobalI18n,\r\n accountSummaryi18n,\r\n preferenceStoreFactory,\r\n customColumnPreference,\r\n dataContextManager,\r\n jsData,\r\n sessionStore,\r\n cacheService,\r\n edm,\r\n state,\r\n },\r\n}) {\r\n let entitySchema;\r\n if (_.isFunction(updateAccountEntitySchemaForFilterConfig)) {\r\n entitySchema = updateAccountEntitySchemaForFilterConfig(accountSchema);\r\n } else if (!AccountSummaryFilterImprovementEnabled || !cachedFilterService) {\r\n entitySchema = cloneDeep(accountSchema);\r\n }\r\n\r\n const filterConfig = getFilterConfig({\r\n cachedEntitySchema: AccountSummaryFilterImprovementEnabled && cachedFilterService && !_.isFunction(updateAccountEntitySchemaForFilterConfig) ? cachedFilterService.entitySchema : null,\r\n entitySchema,\r\n featureName: gridName,\r\n i18n: accountSummaryi18n,\r\n sessionStore,\r\n preferenceStoreFactory: preferenceStoreFactory.getFilters,\r\n customColumnPreference,\r\n legacyGlobalI18n,\r\n schemaI18nCampaign,\r\n dataContextManager,\r\n preferenceService,\r\n appConfig,\r\n jsData,\r\n cacheService,\r\n edm,\r\n state,\r\n });\r\n\r\n return filterConfig;\r\n}\r\n\r\nexport function createFactory({\r\n serverContext,\r\n scope,\r\n pageName,\r\n preexecuteFlag = false,\r\n permissions,\r\n preferenceService,\r\n perfMarker,\r\n addDateChangeListener,\r\n gridName,\r\n gridType,\r\n pageElementSelector,\r\n crossPageSelectPlugin,\r\n toolbarPlugin,\r\n i18n,\r\n getEvents = () => () => ({}),\r\n siteMap,\r\n updateAccountEntitySchemaForFilterConfig,\r\n loadAccountsGridFactory,\r\n lazyLoadDep,\r\n}) {\r\n return new Promise((resolve) => {\r\n loadAccountsGridFactory().then(({ createAccountsGridView }) => {\r\n const {\r\n dateUtil,\r\n appState,\r\n getSegPreference,\r\n getSegType,\r\n segmentTimeChecker,\r\n fetchPaginationConfig,\r\n appConfig,\r\n accountSchema,\r\n schemaI18nCampaign,\r\n legacyGlobalI18n,\r\n accountSummaryi18n,\r\n preferenceStoreFactory,\r\n customColumnPreference,\r\n dataContextManager,\r\n jsData,\r\n sessionStore,\r\n azureUrlRewrite,\r\n CacheService,\r\n edm,\r\n } = lazyLoadDep();\r\n\r\n const waterfallFilterStorage = new WaterfallFilterStorage({\r\n preferenceService,\r\n });\r\n\r\n getGridPreferences({\r\n gridName,\r\n dateUtil,\r\n state: appState,\r\n getSegPreference,\r\n getSegType,\r\n segmentTimeChecker,\r\n fetchPaginationConfig,\r\n customColumnPreference,\r\n }).then((preferenceConfig) => {\r\n const { AccountSummaryFilterImprovementEnabled } = permissions.dynamic;\r\n const existingDataSource = DataSourceStore.get(gridName);\r\n let cachedFilterService;\r\n if (existingDataSource) {\r\n cachedFilterService = existingDataSource.filterService ;\r\n }\r\n\r\n const filterConfig = getGridFilterConfig({\r\n cachedFilterService,\r\n AccountSummaryFilterImprovementEnabled,\r\n gridType,\r\n gridName,\r\n preferenceService,\r\n updateAccountEntitySchemaForFilterConfig,\r\n deps: {\r\n appConfig,\r\n accountSchema,\r\n schemaI18nCampaign,\r\n legacyGlobalI18n,\r\n accountSummaryi18n,\r\n preferenceStoreFactory,\r\n customColumnPreference,\r\n dataContextManager,\r\n jsData,\r\n sessionStore,\r\n cacheService: CacheService,\r\n edm,\r\n state: appState,\r\n },\r\n });\r\n let filterService;\r\n\r\n if (AccountSummaryFilterImprovementEnabled && existingDataSource) {\r\n if (_.isFunction(updateAccountEntitySchemaForFilterConfig) || !AccountSummaryFilterImprovementEnabled || !cachedFilterService) {\r\n cachedFilterService.entitySchema = filterConfig.schemaProcessor(flattenEntitySchema(filterConfig.entitySchema));\r\n } else {\r\n cachedFilterService.entitySchema = filterConfig.schemaProcessor(filterConfig.entitySchema);\r\n }\r\n\r\n filterService = cachedFilterService;\r\n\r\n filterService.filterEntityOptions = {\r\n entitySchema: filterService.entitySchema,\r\n odata: filterConfig.odataOptionsProcessor({\r\n fieldMap: buildNameToPropertyMapping(filterService.entitySchema),\r\n ignoreCase: filterService.odataOptions.ignoreCase,\r\n custom: filterService.odataOptions.custom,\r\n }, filterService.entitySchema),\r\n };\r\n\r\n const basicStorageOptions = {\r\n filterEntityOptions: filterService.filterEntityOptions\r\n };\r\n\r\n filterService.editableFilterStorage = filterConfig.storageFactory.create(\r\n 'editableFilter',\r\n _.extend({}, basicStorageOptions)\r\n );\r\n } else {\r\n filterService = new FilterService(filterConfig);\r\n }\r\n const hasUnifiedSmartAccount = serverContext.CurrentCustomer.HasUnifiedSmartAccount;\r\n\r\n resolve({\r\n grid: createAccountsGridView({\r\n gridType,\r\n preferenceConfig,\r\n parentPerfMarker: perfMarker,\r\n addDateChangeListener,\r\n viewport: $(pageElementSelector),\r\n filterService,\r\n isForVNext: true,\r\n pageName,\r\n preexecuteFlag,\r\n hasUnifiedSmartAccount,\r\n scope,\r\n i18n,\r\n getAdditionalPlugins: () => _.compact([\r\n crossPageSelectPlugin,\r\n toolbarPlugin,\r\n { plugin: projectionGridScopeNavigator, config: scope },\r\n // adding a dummy filterSate plugin here because aggregatedRows plugin has dependencies in the reference to filterState plugin\r\n {\r\n plugin: definePlugin => definePlugin('filterState', [], _.noop),\r\n },\r\n getPGridColumnResizePlugin({\r\n gridName,\r\n preferenceService,\r\n permissions,\r\n }),\r\n ]),\r\n getAdditionalEvents: view => ({\r\n ...getCommonEvents({\r\n scope, siteMap, i18n, serverContext, preferenceService, permissions,\r\n })(view),\r\n // To adapt to performance page getFluctuationEvents() dependency issue, we add one more layer of function here.\r\n ...getEvents({\r\n accountSummaryi18n,\r\n azureUrlRewrite,\r\n })(view),\r\n }),\r\n p$daterange: () => Promise.resolve(waterfallDateFilterProcessor(\r\n waterfallFilterStorage.getFilters([WaterfallFilterType.DateFilter]),\r\n serverContext\r\n )),\r\n permissions,\r\n }),\r\n filterConfig,\r\n filterService,\r\n });\r\n });\r\n });\r\n });\r\n}\r\n","import { getCommonFilterConfig } from '@bingads-webui-campaign/common-grid-config';\r\n\r\nexport function getFilterConfig({\r\n entitySchema,\r\n cachedEntitySchema,\r\n featureName,\r\n i18n,\r\n sessionStore,\r\n preferenceStoreFactory,\r\n legacyGlobalI18n,\r\n schemaI18nCampaign,\r\n dataContextManager,\r\n preferenceService,\r\n customColumnPreference,\r\n appConfig,\r\n jsData,\r\n cacheService,\r\n edm,\r\n state,\r\n}) {\r\n const filterConfig = getCommonFilterConfig({\r\n preferenceService,\r\n customColumnPreference,\r\n featureName,\r\n entitySchema,\r\n cachedEntitySchema,\r\n i18n,\r\n legacyGlobalI18n,\r\n sessionStore,\r\n preferenceStoreFactory,\r\n globalConfig: appConfig,\r\n schemaI18nCampaign,\r\n dataContextManager,\r\n jsdata: jsData,\r\n cacheService,\r\n edm,\r\n state,\r\n editor: {},\r\n searchbox: {\r\n placeholder: i18n.getString('ColumnName_AccountName'),\r\n searchProperty: 'Name',\r\n searchOperator: '$contains',\r\n },\r\n });\r\n\r\n return filterConfig;\r\n}\r\n","import Promise from 'bluebird';\r\nimport _ from 'underscore';\r\n\r\nimport { getAccountsGridFactory } from '@bingads-webui-campaign/accounts-grid';\r\nimport { createFactory } from './accounts-grid-factory';\r\n\r\nfunction loadAccountsGridFactoryWebpack(contexts) {\r\n return new Promise((resolve) => {\r\n getAccountsGridFactory()(contexts.accountsGridLegacyDepsListWebpack)\r\n .then(resolve);\r\n });\r\n}\r\n\r\nexport function createAccountsGridForUiNext({\r\n serverContext,\r\n scope,\r\n pageName,\r\n preexecuteFlag = false,\r\n permissions,\r\n preferenceService,\r\n perfMarker,\r\n addDateChangeListener,\r\n gridName,\r\n gridType,\r\n pageElementSelector,\r\n crossPageSelectPlugin,\r\n toolbarPlugin,\r\n i18n,\r\n getEvents = () => ({}),\r\n siteMap,\r\n updateAccountEntitySchemaForFilterConfig,\r\n accountsGridLegacyDepsListWebpack = null,\r\n lazyLoadDep,\r\n}) {\r\n const loadAccountsGridFactoryFunc = loadAccountsGridFactoryWebpack;\r\n const loadAccountsGridFactory = _.partial(loadAccountsGridFactoryFunc, {\r\n serverContext,\r\n scope,\r\n permissions,\r\n preferenceService,\r\n accountsGridLegacyDepsListWebpack,\r\n });\r\n\r\n return createFactory({\r\n serverContext,\r\n scope,\r\n pageName,\r\n preexecuteFlag,\r\n permissions,\r\n preferenceService,\r\n perfMarker,\r\n addDateChangeListener,\r\n gridName,\r\n gridType,\r\n pageElementSelector,\r\n crossPageSelectPlugin,\r\n toolbarPlugin,\r\n i18n,\r\n getEvents,\r\n siteMap,\r\n updateAccountEntitySchemaForFilterConfig,\r\n loadAccountsGridFactory,\r\n lazyLoadDep,\r\n });\r\n}\r\n","import {\r\n getOverflowEllipsisStyle,\r\n getGridPopoverTargetStyle,\r\n getDirectManagersCalloutStyle,\r\n} from '@bingads-webui-campaign-react/accounts-summary-common';\r\n\r\nimport { getFluctuationGridCellStyle, getBudgetCenterEntryValueStyle } from '@bingads-webui-campaign-react/common-styles';\r\n\r\nimport { getStyle as getAccountInactiveReasonsStyle } from '@bingads-webui-campaign-react/account-inactive-reasons';\r\n\r\nexport const getGridStyles = (_, { palette = {} }) => ({\r\n ...getOverflowEllipsisStyle({ palette }),\r\n ...getGridPopoverTargetStyle(_, { palette }),\r\n ...getFluctuationGridCellStyle({ palette }),\r\n ...getBudgetCenterEntryValueStyle({ palette }),\r\n\r\n '& .account-import-table p': {\r\n margin: 0,\r\n },\r\n\r\n // account status\r\n '& .status-error': {\r\n color: palette.red,\r\n },\r\n '& .status-success': {\r\n color: palette.green,\r\n },\r\n '& .with-account-inactive-reasons': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n '& .error-count': {\r\n marginLeft: '0.25ex',\r\n },\r\n },\r\n // account name\r\n '& .account-name-column-template .iconba-More': {\r\n transform: 'rotate(90deg)',\r\n },\r\n '& .account-name-column-template': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n\r\n '& .account-inactive-label': {\r\n flexShrink: 0,\r\n },\r\n\r\n '& .account-number': {\r\n flexShrink: 0,\r\n flexGrow: 1,\r\n marginLeft: 8,\r\n },\r\n },\r\n // deleted account row\r\n '&&&&&&&& .deleted-account': {\r\n color: '#797775', // @gray120, no alias in palette yet\r\n },\r\n // overriding account status column\r\n '&& .table-container colgroup.column-group .col-AccountInactiveReasons': {\r\n width: 80,\r\n '&:first-child': {\r\n width: 100, // when status is the first column, it needs more space due to padding-left for each grid's first column. Bug 2416422\r\n },\r\n },\r\n // Ensure all .iconba icons in the header alignment consistency\r\n '&&& .column-header-container .iconba': {\r\n position: 'relative',\r\n },\r\n\r\n // direct managers column single account case\r\n '& .manager-accounts-cell > div': {\r\n display: 'flex',\r\n\r\n '& > a': {\r\n display: 'flex',\r\n overflow: 'hidden',\r\n },\r\n\r\n '& .manager-account-name': {\r\n flexShrink: 1,\r\n },\r\n },\r\n});\r\n\r\nexport const getCalloutStyles = (_, { palette = {} }) => ({\r\n '#account-status-callout': {\r\n maxWidth: 400,\r\n\r\n ...getAccountInactiveReasonsStyle(_, { palette }),\r\n },\r\n\r\n '#direct-managers-callout': {\r\n ...getDirectManagersCalloutStyle(_, { palette }),\r\n },\r\n});\r\n","import React, { useEffect, useCallback, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport $ from 'jquery';\r\n\r\nimport { Callout } from '@bingads-webui-react/callout';\r\n\r\n/**\r\n * Wrapper of Callout component, serving as Popover (mouseover only)\r\n * @param {object} props react property\r\n * @param {object} props.parentGrid backbone grid isntance of the grid, used as event bus to pass the `closePopup` event\r\n * @param {function} props.onClose onClose callback, usually it is unmounting the component\r\n * @param {React.ComponentType} props.contentView component to be put into content, it should accept a `onReady` if it it will be updated later\r\n * @param {object} props.contentProps props to passed to the content component\r\n * @param {object} props.isClickInteractive is the callout triggered by click\r\n * @param {object} props.enableAutoFixPlacement is the placement of callout auto fix\r\n * @param {object} props.calloutMinWidth min width of callout used to calculate placement\r\n * @returns {React.ElementType} render result\r\n */\r\nexport const Popover = ({\r\n target,\r\n parentGrid,\r\n onClose,\r\n contentView: ContentView,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n isLazy,\r\n contentProps,\r\n placement,\r\n hasCloseButton,\r\n isClickInteractive,\r\n enableAutoFixPlacement,\r\n calloutMinWidth,\r\n ...props\r\n}) => {\r\n const [autoFixPlacement, setAutoFixPlacement] = useState(placement);\r\n\r\n useEffect(() => {\r\n if (parentGrid) {\r\n parentGrid.on('closePopup', onClose);\r\n }\r\n\r\n return () => {\r\n if (parentGrid) {\r\n parentGrid.off('closePopup');\r\n }\r\n };\r\n }, [onClose, parentGrid]);\r\n\r\n useEffect(() => {\r\n $('.table-page-container').on('scroll.actionCallout', onClose);\r\n $('.table-page-container .scrollbars-view').on('scroll.actionCallout', onClose);\r\n\r\n return () => {\r\n $('.table-page-container').off('scroll.actionCallout', onClose);\r\n $('.table-page-container .scrollbars-view').off('scroll.actionCallout', onClose);\r\n };\r\n }, [onClose]);\r\n\r\n const handleMouseLeave = useCallback(() => {\r\n if (isClickInteractive) {\r\n return;\r\n }\r\n onClose();\r\n }, [isClickInteractive, onClose]);\r\n\r\n // Auto placement\r\n useEffect(() => {\r\n if (enableAutoFixPlacement && target) {\r\n let fixedPlacement = autoFixPlacement;\r\n const { left, right } = target.getBoundingClientRect();\r\n switch (autoFixPlacement) {\r\n case 'right':\r\n fixedPlacement = right + calloutMinWidth > window.innerWidth ? 'left' : 'right';\r\n break;\r\n case 'left':\r\n fixedPlacement = left - calloutMinWidth < 0 ? 'right' : 'left';\r\n break;\r\n default:\r\n break;\r\n }\r\n setAutoFixPlacement(fixedPlacement);\r\n }\r\n }, [autoFixPlacement, calloutMinWidth, enableAutoFixPlacement, placement, target]);\r\n\r\n return (\r\n
\r\n \r\n }\r\n />\r\n
\r\n );\r\n};\r\n\r\nPopover.propTypes = {\r\n parentGrid: PropTypes.shape(),\r\n onClose: PropTypes.func.isRequired,\r\n contentView: PropTypes.elementType.isRequired,\r\n isLazy: PropTypes.bool,\r\n contentProps: PropTypes.objectOf(PropTypes.any),\r\n placement: PropTypes.string,\r\n hasCloseButton: PropTypes.bool,\r\n isClickInteractive: PropTypes.bool,\r\n target: PropTypes.instanceOf(Element),\r\n enableAutoFixPlacement: PropTypes.bool,\r\n calloutMinWidth: PropTypes.number,\r\n};\r\n\r\nPopover.defaultProps = {\r\n target: null,\r\n parentGrid: null,\r\n isLazy: false,\r\n contentProps: {},\r\n placement: 'right',\r\n hasCloseButton: false,\r\n isClickInteractive: false,\r\n enableAutoFixPlacement: false,\r\n calloutMinWidth: 320,\r\n};\r\n\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withLock, keyVault } from '@bingads-webui-react/popup-manager';\r\nimport { Popover } from './popover';\r\n\r\nexport const PopoverWithLock = ({ lockKey, ...props }) => {\r\n const PopoverWithLockInner = withLock(Popover, {\r\n lockKey,\r\n force: true,\r\n });\r\n\r\n return ();\r\n};\r\n\r\nPopoverWithLock.propTypes = {\r\n lockKey: PropTypes.string,\r\n};\r\n\r\nPopoverWithLock.defaultProps = {\r\n lockKey: keyVault.hoveringPopup,\r\n};\r\n\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Callout } from '@bingads-webui-react/callout';\r\nimport { Button, Glyphicon } from '@bingads-webui-react/primitive';\r\n\r\n// the horizontal space is chosen to be a bit large that callout's width\r\nconst CALLOUT_HORIZONTAL_SPACE = 300;\r\n\r\nconst FallbackCallOutContent = ({ i18n, onClick }) => (\r\n \r\n
\r\n {i18n.getString(_TL_(\"This feature isn't available in the new version yet.\"))}\r\n
\r\n
\r\n \r\n \r\n {i18n.getString(_TL_('Go to this feature in previous Microsoft Advertising.'))}\r\n \r\n
\r\n
\r\n);\r\n\r\nFallbackCallOutContent.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n};\r\n\r\n/**\r\n * Wrapper of Callout component, serving for Old-UI-only action\r\n * @param {object} props react property\r\n * @param {object} props.i18n new i18n\r\n * @param {object} props.target instance of the element clicked\r\n * @param {string} props.title component to be put into content, it should accept a `onReady` if it it will be updated later\r\n * @param {string} props.link link that will be open in new window after clicking button\r\n * @param {function} props.onClick function executed after clicking button\r\n * @param {function} props.onClose function executed after callout close (from clicking outside or clicking close button)\r\n * @param {string} props.popoverId id of the popover DOM\r\n * @param {string} props.placement direction for the callout\r\n * @returns {React.ElementType} render result\r\n */\r\nexport const ActionCallout = ({\r\n i18n,\r\n link,\r\n onClick,\r\n onClose,\r\n placement: expectedPlacement,\r\n target,\r\n ...props\r\n}) => {\r\n const handleClick = () => {\r\n if (onClick) {\r\n onClick();\r\n }\r\n if (link) {\r\n window.open(link);\r\n }\r\n onClose(); // we need to dismiss the callout as the page is opened in new window\r\n };\r\n\r\n useEffect(() => {\r\n $('.table-page-container').on('scroll.actionCallout', onClose);\r\n $('.table-page-container .scrollbars-view').on('scroll.actionCallout', onClose);\r\n\r\n return () => {\r\n $('.table-page-container').off('scroll.actionCallout', onClose);\r\n $('.table-page-container .scrollbars-view').off('scroll.actionCallout', onClose);\r\n };\r\n }, [onClose]);\r\n\r\n // auto re-position callout if no enough space\r\n const [placement, setPlacement] = useState(expectedPlacement);\r\n\r\n useEffect(() => {\r\n if (expectedPlacement === 'right') {\r\n const { right } = target.getBoundingClientRect();\r\n setPlacement(right + CALLOUT_HORIZONTAL_SPACE > window.innerWidth ? 'left' : 'right');\r\n }\r\n if (expectedPlacement === 'left') {\r\n const { left } = target.getBoundingClientRect();\r\n setPlacement(left - CALLOUT_HORIZONTAL_SPACE < 0 ? 'right' : 'left');\r\n }\r\n }, [expectedPlacement, target]);\r\n\r\n return (\r\n }\r\n show\r\n closeButton\r\n classes={{ calloutCloseButton: 'callout-close-button' }}\r\n focusLockContent\r\n />\r\n );\r\n};\r\n\r\nActionCallout.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n target: PropTypes.instanceOf(Element).isRequired,\r\n title: PropTypes.string,\r\n link: PropTypes.string,\r\n onClick: PropTypes.func,\r\n onClose: PropTypes.func,\r\n popoverId: PropTypes.string.isRequired,\r\n placement: PropTypes.string,\r\n};\r\n\r\nActionCallout.defaultProps = {\r\n onClick: _.noop,\r\n onClose: _.noop,\r\n title: '',\r\n link: '',\r\n placement: 'right',\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { Popover } from './popover';\r\n\r\nconst DirectManagersContent = ({ data }) => (\r\n
\r\n {_.map(data, (item) => {\r\n const content = (\r\n \r\n \r\n {item.name}\r\n \r\n ({item.number})\r\n \r\n );\r\n return (\r\n
\r\n {item.link ? (\r\n \r\n {content}\r\n \r\n ) : (\r\n content\r\n )}\r\n
\r\n );\r\n })}\r\n
\r\n);\r\n\r\nDirectManagersContent.propTypes = {\r\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n};\r\n\r\nexport const DirectManagersCallout = ({\r\n i18n,\r\n target,\r\n parentGrid,\r\n popoverClassName,\r\n data,\r\n onClose,\r\n}) => (\r\n \r\n);\r\n\r\nDirectManagersCallout.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n target: PropTypes.instanceOf(Element).isRequired,\r\n parentGrid: PropTypes.shape({\r\n on: PropTypes.func.isRequired,\r\n off: PropTypes.func.isRequired,\r\n }).isRequired,\r\n popoverClassName: PropTypes.string,\r\n data: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n onClose: PropTypes.func,\r\n};\r\n\r\nDirectManagersCallout.defaultProps = {\r\n popoverClassName: '',\r\n onClose: _.noop,\r\n};\r\n","export const getOverflowEllipsisStyle = () => ({\r\n '& .text-overflow-ellipsis': {\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n },\r\n});\r\n\r\nexport const getGridPopoverTargetStyle = (_, { palette = {} }) => ({\r\n '& .grid-popover-target': {\r\n borderBottom: `1px dashed ${palette.themePrimary}`,\r\n },\r\n});\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { getOverflowEllipsisStyle } from './common-grid-style';\r\n\r\nexport const getDirectManagersCalloutStyle = ({ palette = {}, iconFontFamily = 'MsAds MDL2 Assets' }) => ({\r\n '& .popover-content': {\r\n padding: '16px 20px',\r\n\r\n '& .direct-manager-list': {\r\n fontSize: 12,\r\n lineHeight: '18px',\r\n\r\n '& .direct-manager-item': {\r\n marginBottom: 4,\r\n display: 'flex',\r\n\r\n '& :last-child': {\r\n marginBottom: 0,\r\n },\r\n\r\n ...getOverflowEllipsisStyle(),\r\n\r\n '& > a': {\r\n display: 'flex',\r\n overflow: 'hidden',\r\n },\r\n\r\n '& .manager-account-name': {\r\n flexShrink: 1,\r\n paddingRight: '1ex',\r\n },\r\n },\r\n },\r\n },\r\n});\r\n","/**\r\n * Style to override the !important rule defined in toolbar-container\r\n * @param {string} buttonId id for the button\r\n * @returns {function} jss style function\r\n */\r\nexport const getToolbarBlockedIconStyle = buttonId => (components, { palette }) => ({\r\n [`& .toolbar-edit #${buttonId} .iconba-Blocked`]: {\r\n color: `${palette.white} !important`,\r\n },\r\n});\r\n\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nexport const getActionCalloutStyle = ({ palette = {}, iconFontFamily = 'MsAds MDL2 Assets' }) => ({\r\n '& .popover-title': {\r\n minWidth: 232,\r\n lineHeight: '28px',\r\n paddingBottom: 10,\r\n fontWeight: 600,\r\n },\r\n\r\n '& .popover-content': {\r\n '& .callout-message': {\r\n minWidth: 232,\r\n fontSize: 12,\r\n lineHeight: '22px',\r\n paddingBottom: 10,\r\n },\r\n\r\n '& .callout-link': {\r\n fontSize: 16,\r\n lineHeight: '19px',\r\n color: palette.themePrimary,\r\n padding: 5,\r\n height: 'auto',\r\n whiteSpace: 'normal',\r\n textAlign: 'left',\r\n minWidth: 232,\r\n\r\n '& :active': {\r\n color: palette.themePrimary,\r\n },\r\n },\r\n\r\n '& .callout-close-button': {\r\n top: 9,\r\n width: 12,\r\n right: 8,\r\n border: 0,\r\n height: 13,\r\n padding: 0,\r\n position: 'absolute',\r\n minWidth: 12,\r\n background: 'inherit',\r\n },\r\n },\r\n});\r\n","/**\r\n * Style for link account button in toolbar-container in performance and management tab\r\n * @returns {object} jss style\r\n */\r\nexport const getLinkAccountButtonStyle = () => ({\r\n '& #link-account': {\r\n marginLeft: 12,\r\n },\r\n '& #link-account-with-fallback': {\r\n marginLeft: 12,\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport { getRoutePathById } from '@bingads-webui-campaign-react/with-site-map';\r\n\r\n/**\r\n * Navigate to customer scope default page by given cid and uid or original ciu and uid\r\n * @param {object} conf the configuration\r\n * @param {string} conf.cid target customer id or current customer id if not provided\r\n * @param {object} conf.uid target user id or current user id if not provided\r\n * @param {object} conf.scope scope from context\r\n * @param {object} conf.siteMap siteMap from context\r\n * @returns {null} null\r\n */\r\nconst toCustomerScopeLandingPage = ({\r\n cid, uid, scope, siteMap,\r\n}) => {\r\n const defaultRouteForCustomerScope = getRoutePathById(siteMap, 'accounts');\r\n const search = _.defaults({ cid, uid }, _.omit(scope.values, 'aid'));\r\n\r\n scope.history.push({\r\n pathname: defaultRouteForCustomerScope,\r\n search: `?${scope.stringify(search)}`,\r\n });\r\n};\r\n\r\nconst LinkingReturnPageId = {\r\n requestsSent: 'requests-sent',\r\n requestsReceived: 'requests-received',\r\n management: 'management',\r\n performance: 'performance',\r\n};\r\n\r\nconst toResendRequestPage = ({\r\n requestId, linkType, scope, siteMap,\r\n}) => {\r\n const resendRequestRoute = getRoutePathById(siteMap, 'account-linking-resend');\r\n const search = _.defaults({ requestId, linkType }, _.pick(scope.values, 'cid', 'uid'));\r\n\r\n scope.history.push({\r\n pathname: resendRequestRoute,\r\n search: `?${scope.stringify(search)}`,\r\n linkingReturnPageId: LinkingReturnPageId.requestsSent,\r\n });\r\n};\r\n\r\nconst toRequestPage = ({\r\n cid, uid, scope, siteMap, isSent,\r\n}) => {\r\n const defaultRouteForCustomerScope = getRoutePathById(siteMap, 'requests');\r\n const search = _.defaults({ cid, uid, isSent }, _.pick(scope.values, ['cid', 'uid']));\r\n scope.history.push({\r\n pathname: defaultRouteForCustomerScope,\r\n search: `?${scope.stringify(search)}`,\r\n });\r\n};\r\n\r\nconst toPendingTransferRequestPage = ({\r\n rpid, sourceCid, scope, siteMap,\r\n}) => {\r\n const defaultRouteForCustomerScope = getRoutePathById(siteMap, 'pending-transfer-request');\r\n const search = _.defaults({ rpid, sourcecid: sourceCid }, _.pick(scope.values, 'cid', 'uid'));\r\n scope.history.push({\r\n pathname: defaultRouteForCustomerScope,\r\n search: `?${scope.stringify(search)}`,\r\n });\r\n};\r\n\r\nconst toAccountTransferPage = ({\r\n rpid, sourceCid, scope, siteMap,\r\n}) => {\r\n const defaultRouteForCustomerScope = getRoutePathById(siteMap, 'accounts-transfer');\r\n const search = _.defaults({ rpid, sourcecid: sourceCid }, _.pick(scope.values, 'cid', 'uid'));\r\n scope.history.push({\r\n pathname: defaultRouteForCustomerScope,\r\n search: `?${scope.stringify(search)}`,\r\n });\r\n};\r\n\r\nexport const Navigation = {\r\n toCustomerScopeLandingPage,\r\n toRequestPage,\r\n toResendRequestPage,\r\n toAccountTransferPage,\r\n toPendingTransferRequestPage,\r\n LinkingReturnPageId,\r\n};\r\n","import { keyCode } from '@bingads-webui/keycode';\r\nimport jsdataCampaign from '@bingads-webui-component-legacy/js-data-campaign/index';\r\n\r\nconst invalidateAccountsData = () => {\r\n if (jsdataCampaign) {\r\n return jsdataCampaign.Account.destroyAll();\r\n }\r\n return Promise.resolve(null);\r\n};\r\n\r\nconst forceAccountsGridRefresh = ({\r\n gridView,\r\n getjsDataCampaign,\r\n}) => {\r\n // To refresh the grid, we actually need to destroy the accounts from jsdata cache, so a new oData call get trigger to the server and new data get updated\r\n // gridView.refresh(true); needs to be call after data is invalidated otherwise the same set of data will be returned, without any network call\r\n // We also need to deselect the current grid selection to avoid unexpected behavior with selected items not updated in the model, even though the checkboxes are unselected correctly\r\n invalidateAccountsData(getjsDataCampaign).then(() => {\r\n gridView.deselectAll();\r\n gridView.refresh(true);\r\n });\r\n};\r\n\r\n/**\r\n * filter keydown events to make the event handler only respond to enter keys\r\n * @param {function} eventHandler original event handler\r\n * @returns {function} patched event handler\r\n */\r\nconst filterEnterKeyDown = eventHandler => (event, ...args) => {\r\n if (event.keyCode === keyCode.Enter) {\r\n eventHandler(event, ...args);\r\n }\r\n};\r\n\r\nexport const Utils = {\r\n forceAccountsGridRefresh,\r\n filterEnterKeyDown,\r\n invalidateAccountsData,\r\n};\r\n","import _ from 'underscore';\r\n\r\nimport { getRoutePathById } from '@bingads-webui-campaign-react/with-site-map';\r\nimport { Constants } from '@bingads-webui-clientcenter/entity-utils';\r\nimport { getUrlBuilders } from '@bingads-webui-clientcenter/url-builder-base';\r\n\r\nimport { Navigation } from './navigation';\r\nimport { Utils } from './utils';\r\n\r\nconst { AccountMode, EnforcementActionType } = Constants;\r\nconst { LinkingReturnPageId } = Navigation;\r\n\r\n/* global Map */\r\n\r\n/**\r\n * turn toolbar items into a Map\r\n * @param {Item[]} items toolbar item configuration, any falsy values will be removed\r\n * @returns {Map} toolbar config\r\n */\r\nexport const buildToobarConfig = items => _.reduce(\r\n _.compact(items),\r\n (map, [key, value]) => {\r\n map.set(key, value);\r\n return map;\r\n },\r\n new Map()\r\n);\r\n\r\nconst validaDependencies = (deps) => {\r\n if (_.any(deps, _.isEmpty)) {\r\n throw new Error('Missing dependency.');\r\n }\r\n};\r\n\r\n/**\r\n * Creates a toolbar config with navigation\r\n * @param {object} conf the configuration\r\n * @param {object} conf.config the configuration that would override the defaults\r\n * @param {string} conf.routeId the id in site map for the destination, if it goes to legacy, pass an empty string\r\n * @param {object} conf.context contextual object passed to the page\r\n * @returns {array} toolbar config\r\n */\r\nconst getNavigationToolbarConfig = ({\r\n config,\r\n routeId,\r\n context: {\r\n siteMap,\r\n scope,\r\n },\r\n}) => {\r\n validaDependencies([siteMap, scope]);\r\n return config.displayActionButton && [config.id, {\r\n type: 'button',\r\n onClick: () => {\r\n scope.history.push({\r\n pathname: getRoutePathById(siteMap, routeId),\r\n search: scope.history.location.search,\r\n linkingReturnPageId: config.linkingReturnPageId,\r\n });\r\n },\r\n ...config,\r\n }];\r\n};\r\n\r\n/**\r\n * Factory for navigation toolbar item creator\r\n * @param {object} conf factory conf\r\n * @param {string} conf.routeId the id in site map for the destination\r\n * @param {function} conf.getDefaultConfig default config getter for this type of toolbar item\r\n * @returns {function} the toolbar item creator\r\n */\r\nconst createNavigationToolbarItemFactory = ({ routeId, getDefaultConfig }) => ({\r\n config: configOverride = {},\r\n context,\r\n}) => {\r\n const config = _.defaults(configOverride, getDefaultConfig(context));\r\n return getNavigationToolbarConfig({\r\n config,\r\n context,\r\n routeId,\r\n });\r\n};\r\n\r\nconst isDeletedAccount = account => _.isObject(account)\r\n && !_.isEmpty(account.AccountInactiveReasons)\r\n && _.contains(_.pluck(account.AccountInactiveReasons, 'Reason'), 'Deleted');\r\n\r\nconst getDefaultAccountCreateButtonConfig = ({ i18n, permissions, serverContext }) => ({\r\n id: 'account-create',\r\n classes: ['btn-primary'],\r\n disabled: Boolean(permissions.dynamic\r\n && permissions.dynamic.DSAEnforcement\r\n && serverContext.CurrentUser.EnforcementActionId === EnforcementActionType.SuspendAccountCreation),\r\n text: i18n.getString(_TL_('Create account', { comment: 'The label of the button that allows customers to create an account for current customer' })),\r\n iconLeftGlyphName: 'ba-Add',\r\n noResponsive: true,\r\n displayActionButton: (permissions.IsManagementDashboardEnabled || permissions.IsCustomerHierarchyEnabled)\r\n && permissions.IsCreateAccountEnabled\r\n && !(permissions.IsCustomerHierarchyEnabled && !permissions.IsNewBillToCustomerHierarchyEnabled && serverContext.CurrentUser.ParentCustomerId !== 0 && serverContext.CurrentUser.ParentCustomerId !== serverContext.CurrentCustomer.Id),\r\n});\r\n\r\nconst getCCUrlBuilders = serverContext => getUrlBuilders({\r\n ccBaseUrl: serverContext.Urls.ClientCenterBaseUrl,\r\n cidFetcher: _.constant(serverContext.CurrentCustomer.Id),\r\n uidFetcher: _.constant(serverContext.CurrentUser.Id),\r\n getDefaultIsShortUrl: _.constant(false),\r\n});\r\n\r\nconst getDefaultAccountCreateOBOButtonConfig = (context) => {\r\n const { serverContext } = context;\r\n const { CustomersUrlBuilder } = getCCUrlBuilders(serverContext);\r\n\r\n const pathToCreateOBO = new CustomersUrlBuilder().action('createcustomer').rurl(location.href).url;\r\n\r\n return {\r\n ...getDefaultAccountCreateButtonConfig(context),\r\n siteMapId: null,\r\n onClick: () => {\r\n location.href = pathToCreateOBO;\r\n },\r\n };\r\n};\r\n\r\nconst getLinkingReturnPageId = (scope) => {\r\n const { location } = scope;\r\n const extractPattern = new RegExp('campaign/vnext/accounts/(.+)$', 'i');\r\n const currentLocation = _.last(location.pathname.match(extractPattern));\r\n if (currentLocation === 'requests') {\r\n return scope.values.isSent === 'true' ? LinkingReturnPageId.requestsSent : LinkingReturnPageId.requestsReceived;\r\n }\r\n return currentLocation;\r\n};\r\n\r\n// Send request (Create link to accounts) are shared in perf, mgmt and requests page, but they have different style\r\nconst getDefaultSendRequestSharedConfig = ({ i18n, permissions, scope }) => ({\r\n text: i18n.getString(_TL_('Link to accounts', { comment: 'The label of the button that allows customers to create a request to link to another customer or accounts' })),\r\n iconLeftGlyphName: 'ba-Link',\r\n displayActionButton: permissions.IsCustomerHierarchyEnabled && permissions.IsLinkAccountEnabled,\r\n linkingReturnPageId: getLinkingReturnPageId(scope),\r\n noResponsive: true,\r\n});\r\n\r\n// Used in Requests page as main button\r\nconst getDefaultSendRequestButtonConfig = context => ({\r\n ...getDefaultSendRequestSharedConfig(context),\r\n id: 'account-linking',\r\n classes: ['btn-primary'],\r\n disabled: false,\r\n});\r\n\r\n// Used in perf and mgmt pages as a nav item\r\nconst getDefaultSendRequestNavItemConfig = context => ({\r\n ...getDefaultSendRequestSharedConfig(context),\r\n id: 'link-account',\r\n type: 'nav-item',\r\n classes: [],\r\n});\r\n\r\nconst getMandateAgreementRequiredNavItemConfig = ({ i18n, serverContext }) => {\r\n const { MandateAgreementRequiredUrlBuilder } = getCCUrlBuilders(serverContext);\r\n const mandateAgreementRequiredUrl = new MandateAgreementRequiredUrlBuilder().url;\r\n\r\n return {\r\n displayActionButton: true,\r\n text: i18n.getString(_TL_('Upload Mandate Agreement', { comment: 'The label of the button that allows customers to create a request to upload to mandate agreement' })),\r\n iconLeftGlyphName: 'ba-Upload',\r\n noResponsive: true,\r\n id: 'mandate-agreement-required',\r\n type: 'nav-item',\r\n classes: [],\r\n siteMapId: null,\r\n onClick: () => {\r\n location.href = mandateAgreementRequiredUrl;\r\n },\r\n };\r\n};\r\n\r\nconst getCreateAccountButton = createNavigationToolbarItemFactory({ routeId: 'account-create', getDefaultConfig: getDefaultAccountCreateButtonConfig });\r\n\r\nconst getCreateAccountOBOButton = createNavigationToolbarItemFactory({ routeId: '', getDefaultConfig: getDefaultAccountCreateOBOButtonConfig });\r\n\r\nconst getSendRequestButton = createNavigationToolbarItemFactory({ routeId: 'account-linking', getDefaultConfig: getDefaultSendRequestButtonConfig });\r\n\r\nconst getSendRequestNavItem = createNavigationToolbarItemFactory({ routeId: 'account-linking', getDefaultConfig: getDefaultSendRequestNavItemConfig });\r\n\r\nconst getMandateAgreementRequiredNavItem = createNavigationToolbarItemFactory({ routeId: '', getDefaultConfig: getMandateAgreementRequiredNavItemConfig });\r\n\r\nconst getDeleteAccountNavItem = ({\r\n key = 'delete-account',\r\n context: {\r\n i18n, serverContext, permissions,\r\n },\r\n gridView,\r\n getBulkActionAccountsGrid,\r\n getjsDataCampaign,\r\n}) => {\r\n const selectedAccounts = gridView ? gridView.selectedItems() : null;\r\n const hasNoDeletedAccounts = selectedAccounts && _.every(selectedAccounts, account => !isDeletedAccount(account));\r\n const isSmartAccount = selectedAccounts && _.every(selectedAccounts, account => _.isObject(account) && AccountMode.Smart === account.AccountMode);\r\n // For customers on smart campaign pilot, delete button is available if the user internal users or the account is not smart\r\n const canDeleteAccounts = !permissions.IsSmartUIEnabled || !isSmartAccount || serverContext.CurrentUser.IsInternal;\r\n\r\n return permissions.IsManagementDashboardEnabled && permissions.IsDeleteAccountEnabled && [key, {\r\n id: key,\r\n type: 'nav-item',\r\n text: i18n.getString(_TL_('Deactivate')),\r\n iconLeftGlyphName: 'ba-Blocked',\r\n onClick: () => {\r\n const { bulkDeleteAccounts } = getBulkActionAccountsGrid();\r\n\r\n bulkDeleteAccounts({\r\n selectedAccounts,\r\n successCallback: () => {\r\n Utils.forceAccountsGridRefresh({ gridView, getjsDataCampaign });\r\n },\r\n });\r\n },\r\n disabled: !hasNoDeletedAccounts || !canDeleteAccounts,\r\n }];\r\n};\r\n\r\nconst getReactivateAccountNavItem = ({\r\n key = 'reactivate-account',\r\n context: { i18n, permissions },\r\n gridView,\r\n getBulkActionAccountsGrid,\r\n getjsDataCampaign,\r\n}) => {\r\n const selectedAccounts = gridView.selectedItems();\r\n const hasAllDeletedAccounts = selectedAccounts && _.every(selectedAccounts, account => isDeletedAccount(account));\r\n\r\n return permissions.IsManagementDashboardEnabled && permissions.IsReactivateAccountEnabled && [key, {\r\n id: key,\r\n type: 'nav-item',\r\n text: i18n.getString(_TL_('Re-activate')),\r\n iconLeftGlyphName: 'ba-Refresh',\r\n onClick: () => {\r\n const { bulkReactivateAccounts } = getBulkActionAccountsGrid();\r\n\r\n bulkReactivateAccounts({\r\n i18n,\r\n selectedAccounts,\r\n successCallback: () => {\r\n Utils.forceAccountsGridRefresh({ gridView, getjsDataCampaign });\r\n },\r\n });\r\n },\r\n disabled: !hasAllDeletedAccounts,\r\n }];\r\n};\r\n\r\nconst getUnlinkAccountNavItem = ({\r\n key = 'unlink-account',\r\n context: {\r\n i18n, scope, siteMap, permissions,\r\n },\r\n gridView,\r\n getBulkUnlinkAccounts,\r\n}) => {\r\n const selectedAccounts = gridView ? gridView.selectedItems() : null;\r\n const isSmartAccount = selectedAccounts && _.every(selectedAccounts, account => _.isObject(account) && AccountMode.Smart === account.AccountMode);\r\n const canUnlinkAccount = !(permissions.IsSmartUIEnabled && isSmartAccount);\r\n\r\n return (permissions.IsManagementDashboardEnabled || permissions.IsCustomerHierarchyEnabled) && permissions.IsUnlinkAccountEnabled && [key, {\r\n id: key,\r\n type: 'nav-item',\r\n text: i18n.getString(_TL_('Unlink from accounts')),\r\n iconLeftGlyphName: 'ba-RemoveLink',\r\n onClick: () => {\r\n const bulkUnlinkAccounts = getBulkUnlinkAccounts();\r\n\r\n bulkUnlinkAccounts({\r\n selectedAccounts: gridView.selectedItems(),\r\n customerId: scope.values.cid,\r\n userId: scope.values.uid,\r\n onConfirm: ({ accounts }) => {\r\n scope.history.push({\r\n pathname: getRoutePathById(siteMap, 'accounts-unlinking'),\r\n search: `?${scope.stringify(_.pick(scope.values, 'cid', 'uid'))}`,\r\n state: { accounts, cancelRedirectData: scope.history.location },\r\n });\r\n },\r\n });\r\n },\r\n disabled: !canUnlinkAccount,\r\n }];\r\n};\r\n\r\nconst getTransferAccountNavItem = ({\r\n key = 'transfer-account',\r\n context: {\r\n i18n, scope, siteMap, permissions,\r\n },\r\n gridView,\r\n getBulkTransferAccounts,\r\n}) => permissions.IsManagementDashboardEnabled &&\r\n permissions.IsTransferAccountEnabled &&\r\n permissions.IsInternalUser &&\r\n [key, {\r\n id: key,\r\n type: 'nav-item',\r\n text: i18n.getString(_TL_('Transfer accounts')),\r\n iconLeftGlyphName: 'ba-Sync',\r\n onClick: () => {\r\n const bulkTransferAccounts = getBulkTransferAccounts();\r\n\r\n bulkTransferAccounts({\r\n i18n,\r\n selectedAccounts: gridView.selectedItems(),\r\n customerId: scope.values.cid,\r\n userId: scope.values.uid,\r\n onSuccessCallBack: ({ rpid }) => {\r\n scope.history.push({\r\n pathname: getRoutePathById(siteMap, 'accounts-transfer'),\r\n search: `?${scope.stringify(_.pick(scope.values, 'cid', 'uid'))}&rpid=${rpid}`,\r\n state: { cancelRedirectData: scope.history.location },\r\n });\r\n },\r\n });\r\n },\r\n }];\r\n\r\nexport const ToolbarConfigs = {\r\n getCreateAccountButton,\r\n getCreateAccountOBOButton,\r\n getSendRequestButton,\r\n getSendRequestNavItem,\r\n getDeleteAccountNavItem,\r\n getReactivateAccountNavItem,\r\n getUnlinkAccountNavItem,\r\n getTransferAccountNavItem,\r\n getMandateAgreementRequiredNavItem,\r\n};\r\n","/* eslint-disable no-script-url */\r\n/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { mapObject, constant, noop } from 'underscore';\r\nimport {\r\n Panel,\r\n PanelGroup,\r\n} from '@bingads-webui-react/primitive';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { withPreference } from '@bingads-webui-react/preference-context';\r\nimport { HelpLink } from '@bingads-webui-react/help-link';\r\nimport { curlyTemplate } from '@bingads-webui-universal/primitive-utilities';\r\nimport { getAccountsWelcomeBarStyles } from './styles/accounts-welcome-bar-styles';\r\n\r\nconst preferenceName = 'WebApp.CampaignUI.ShowHierarchyPanel';\r\n\r\nconst AccountsWelcomeBar = ({\r\n i18n,\r\n classes: { welcomePanelAccordion },\r\n customerName,\r\n permissions: { IsAccountLevelImportStatusGridEnabled },\r\n preferenceService,\r\n onExpanded,\r\n onCollapsed,\r\n}) => {\r\n const defaultPreference = { showHierarchyPanel: true };\r\n const preference = preferenceService.findByNameAtUserLevel(preferenceName);\r\n const { showHierarchyPanel } = preference ? preference.Data : /* istanbul ignore next */ defaultPreference;\r\n const [expanded, setExpanded] = useState(showHierarchyPanel);\r\n const titleFormatter = curlyTemplate(i18n.getString(_TL_('Welcome back {{customerName}}! Here\\'s your Microsoft Advertising Accounts page')));\r\n const formattedTitle = titleFormatter({ customerName });\r\n\r\n const onSelect = () => {\r\n setExpanded(!expanded);\r\n preferenceService.setAtUserLevel({ Name: preferenceName, Data: { showHierarchyPanel: !expanded } });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {formattedTitle}\r\n \r\n \r\n
\r\n
\r\n {i18n.getString(_TL_('The Accounts page is the centralized view of your ad accounts and the manager accounts they belong to. Here, you can:'))}\r\n
    \r\n
  • {i18n.getString(_TL_('Build your hierarchy by creating new accounts and by linking to existing accounts and manager accounts'))}
  • \r\n
  • {IsAccountLevelImportStatusGridEnabled ?\r\n /* istanbul ignore next */ i18n.getString(_TL_('See top-level performance, notifications, and imports by account')) :\r\n i18n.getString(_TL_('See top-level performance and notifications by account'))}\r\n
  • \r\n
  • {i18n.getString(_TL_('Drill down to individual accounts to view campaign details'))}
  • \r\n
\r\n {i18n.getString(_TL_('Learn more about the Accounts page'))}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nAccountsWelcomeBar.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n classes: PropTypes.shape(mapObject(\r\n getAccountsWelcomeBarStyles({}, {}),\r\n constant(PropTypes.string.isRequired)\r\n )).isRequired,\r\n customerName: PropTypes.string.isRequired,\r\n permissions: PropTypes.shape({\r\n IsAccountLevelImportStatusGridEnabled: PropTypes.bool,\r\n }).isRequired,\r\n preferenceService: PropTypes.shape({\r\n setAtUserLevel: PropTypes.func,\r\n findByNameAtUserLevel: PropTypes.func,\r\n }).isRequired,\r\n onExpanded: PropTypes.func,\r\n onCollapsed: PropTypes.func,\r\n};\r\n\r\nAccountsWelcomeBar.defaultProps = {\r\n onExpanded: noop,\r\n onCollapsed: noop,\r\n};\r\n\r\nexport const StyledAccountsWelcomeBar = withDefaultStyles(withPreference(AccountsWelcomeBar), getAccountsWelcomeBarStyles);\r\n","import HierarchyVisualizationImg from '../../media/HierarchyVisualization.svg';\r\n\r\nexport const getAccountsWelcomeBarStyles = (_, { palette = {} }) => ({\r\n welcomePanelAccordion: {\r\n paddingLeft: 32,\r\n paddingRight: 32,\r\n marginBottom: 0,\r\n '& .panel-heading > .panel-title > a': {\r\n position: 'relative',\r\n color: palette.themePrimary,\r\n fontSize: 18,\r\n paddingLeft: 38,\r\n textDecoration: 'none',\r\n\r\n '&:after': {\r\n position: 'absolute',\r\n top: 8,\r\n left: 0,\r\n float: 'none',\r\n fontSize: 18,\r\n padding: 0,\r\n marginRight: 20,\r\n },\r\n },\r\n\r\n '& .panel-collapse': {\r\n '& .instruction-body-text': {\r\n marginTop: 27,\r\n marginBottom: 27,\r\n width: '60%',\r\n float: 'left',\r\n fontSize: 14,\r\n lineHeight: '24px',\r\n color: palette.black,\r\n\r\n '& ul': {\r\n marginTop: 24,\r\n marginBottom: 24,\r\n paddingLeft: 20,\r\n },\r\n },\r\n\r\n '& .instruction-visualization-image': {\r\n backgroundImage: `url(\"${HierarchyVisualizationImg}\")`,\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'right center',\r\n marginTop: 20,\r\n marginBottom: 20,\r\n marginLeft: '60%',\r\n height: 211,\r\n },\r\n },\r\n '& .clearfix::after': {\r\n content: '',\r\n clear: 'both',\r\n display: 'table',\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 (columns, data) {pug_html = pug_html + \"\\u003Cdiv class=\\\"import-error-table error\\\" id=\\\"ImportErrorTable\\\" role=\\\"alert\\\"\\u003E\\u003Cdiv class=\\\"error import-error-message\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (data && columns) {\npug_html = pug_html + \"\\u003Ctable\\u003E\\u003Cthead\\u003E\\u003Ctr class=\\\"grid-header-row\\\"\\u003E\";\n// iterate columns\n;(function(){\n var $$obj = columns;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var column = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\" href=\\\"javascrit:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var column = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\" href=\\\"javascrit:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ftr\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody\\u003E\";\n// iterate data\n;(function(){\n var $$obj = data;\n if ('number' == typeof $$obj.length) {\n for (var pug_index1 = 0, $$l = $$obj.length; pug_index1 < $$l; pug_index1++) {\n var rowData = $$obj[pug_index1];\nif (rowData.hasError) {\npug_html = pug_html + \"\\u003Ctr class=\\\"grid-row error\\\"\\u003E\";\n// iterate rowData.formattedValues\n;(function(){\n var $$obj = rowData.formattedValues;\n if ('number' == typeof $$obj.length) {\n for (var index = 0, $$l = $$obj.length; index < $$l; index++) {\n var cellData = $$obj[index];\npug_html = pug_html + \"\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003Cdiv class=\\\"grid-content-container\\\"\\u003E\";\nif (index === 0) {\npug_html = pug_html + \"\\u003Cspan class=\\\"status_error\\\"\\u003E\\u003C\\u002Fspan\\u003E \\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = cellData) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = cellData) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var index in $$obj) {\n $$l++;\n var cellData = $$obj[index];\npug_html = pug_html + \"\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003Cdiv class=\\\"grid-content-container\\\"\\u003E\";\nif (index === 0) {\npug_html = pug_html + \"\\u003Cspan class=\\\"status_error\\\"\\u003E\\u003C\\u002Fspan\\u003E \\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = cellData) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = cellData) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ftr\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ctr class=\\\"grid-row\\\"\\u003E\";\n// iterate rowData.formattedValues\n;(function(){\n var $$obj = rowData.formattedValues;\n if ('number' == typeof $$obj.length) {\n for (var pug_index3 = 0, $$l = $$obj.length; pug_index3 < $$l; pug_index3++) {\n var cellData = $$obj[pug_index3];\npug_html = pug_html + \"\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003Cdiv class=\\\"grid-content-container\\\"\\u003E\" + (pug.escape(null == (pug_interp = cellData) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index3 in $$obj) {\n $$l++;\n var cellData = $$obj[pug_index3];\npug_html = pug_html + \"\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003Cdiv class=\\\"grid-content-container\\\"\\u003E\" + (pug.escape(null == (pug_interp = cellData) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ftr\\u003E\";\n}\n }\n } else {\n var $$l = 0;\n for (var pug_index1 in $$obj) {\n $$l++;\n var rowData = $$obj[pug_index1];\nif (rowData.hasError) {\npug_html = pug_html + \"\\u003Ctr class=\\\"grid-row error\\\"\\u003E\";\n// iterate rowData.formattedValues\n;(function(){\n var $$obj = rowData.formattedValues;\n if ('number' == typeof $$obj.length) {\n for (var index = 0, $$l = $$obj.length; index < $$l; index++) {\n var cellData = $$obj[index];\npug_html = pug_html + \"\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003Cdiv class=\\\"grid-content-container\\\"\\u003E\";\nif (index === 0) {\npug_html = pug_html + \"\\u003Cspan class=\\\"status_error\\\"\\u003E\\u003C\\u002Fspan\\u003E \\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = cellData) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = cellData) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var index in $$obj) {\n $$l++;\n var cellData = $$obj[index];\npug_html = pug_html + \"\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003Cdiv class=\\\"grid-content-container\\\"\\u003E\";\nif (index === 0) {\npug_html = pug_html + \"\\u003Cspan class=\\\"status_error\\\"\\u003E\\u003C\\u002Fspan\\u003E \\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = cellData) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = cellData) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ftr\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ctr class=\\\"grid-row\\\"\\u003E\";\n// iterate rowData.formattedValues\n;(function(){\n var $$obj = rowData.formattedValues;\n if ('number' == typeof $$obj.length) {\n for (var pug_index5 = 0, $$l = $$obj.length; pug_index5 < $$l; pug_index5++) {\n var cellData = $$obj[pug_index5];\npug_html = pug_html + \"\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003Cdiv class=\\\"grid-content-container\\\"\\u003E\" + (pug.escape(null == (pug_interp = cellData) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index5 in $$obj) {\n $$l++;\n var cellData = $$obj[pug_index5];\npug_html = pug_html + \"\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003Cdiv class=\\\"grid-content-container\\\"\\u003E\" + (pug.escape(null == (pug_interp = cellData) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ftr\\u003E\";\n}\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"columns\" in locals_for_with?locals_for_with.columns:typeof columns!==\"undefined\"?columns:undefined,\"data\" in locals_for_with?locals_for_with.data:typeof data!==\"undefined\"?data: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 (hasStats, i18n, type) {if (type === 'preview') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"bulk-status-grid row\\\"\\u003E\\u003Cdiv class=\\\"panel panel-white col-sm-6\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Ch3 class=\\\"panel-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Import_ImportPreview_TableTitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh3\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body\\\" tabindex=\\\"0\\\"\\u003E\";\nif (hasStats) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"grid\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Import_LastImport_NoImportStatistics')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\"\\u003E\\u003Cbutton class=\\\"btn btn-primary btn-apply\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Import_ApplyChanges')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignImport_ButtonCancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel panel-white\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Ch4 class=\\\"panel-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Import_LastImport_ChangesTitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh4\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body\\\" tabindex=\\\"0\\\"\\u003E\";\nif (hasStats) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"grid\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Import_LastImport_NoImportStatistics')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"hasStats\" in locals_for_with?locals_for_with.hasStats:typeof hasStats!==\"undefined\"?hasStats:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"type\" in locals_for_with?locals_for_with.type:typeof type!==\"undefined\"?type: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=\\\"tooltip qs-Container\\\" role=\\\"tooltip\\\"\\u003E\\u003Cdiv class=\\\"gridPopup-close close-image\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"closeimage spritedimage spritedimagealign clickable\\\"\"+\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.getString('CampaignImport_ButtonFinish'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"tooltip-inner\\\"\\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 (campaignName, i18n, moreOptCount, optTabUrl) {pug_html = pug_html + \"\\u003Cdiv class=\\\"inline-opportunity-closing-panel panel panel-white panel-default padding-zero\\\"\\u003E\\u003Cdiv class=\\\"title\\\"\\u003E\\u003Cspan class=\\\"bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('InlineOpportunity_ClosingPanel_Title', {campaignName: campaignName})) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv\" + (\" class=\\\"close closeimage\\\"\"+\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.get('Close'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"desc\\\"\\u003E\" + (null == (pug_interp = i18n.get('InlineOpportunity_ClosingPanel_Desc_Prompt', {moreOptCount: moreOptCount, opportunityPageLink: optTabUrl})) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"campaignName\" in locals_for_with?locals_for_with.campaignName:typeof campaignName!==\"undefined\"?campaignName:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"moreOptCount\" in locals_for_with?locals_for_with.moreOptCount:typeof moreOptCount!==\"undefined\"?moreOptCount:undefined,\"optTabUrl\" in locals_for_with?locals_for_with.optTabUrl:typeof optTabUrl!==\"undefined\"?optTabUrl: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=\\\"inline-opportunity-loading-panel panel panel-white panel-default padding-zero\\\"\\u003E\\u003Cdiv class=\\\"title\\\"\\u003E\\u003Cdiv class=\\\"blocker-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"blocker-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('InlineOpportunity_LoadingPanel_TitleText')) ? \"\" : pug_interp)) + \"\\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 (i18n, i18nGlobal, moreOptCount, optTabUrl) {pug_html = pug_html + \"\\u003Cdiv class=\\\"inline-opportunity-main-panel panel panel-white panel-default padding-zero center-block\\\"\\u003E\\u003Cdiv class=\\\"tabs inline-opportunity-types-tab\\\" data-bind=\\\"visible: tabItems().length > 0\\\"\\u003E\\u003Cdiv class=\\\"page-tabs secondary-nav\\\"\\u003E\\u003Cdiv\\u003E\\u003Cul class=\\\"nav nav-tabs\\\" role=\\\"tablist\\\"\\u003E\\u003C!-- ko foreach: tabItems--\\u003E\\u003Cli data-bind=\\\"css: { 'active': $parent.currentOptType() == optType}\\\" role=\\\"presentation\\\"\\u003E\\u003Ca class=\\\"inline-opportunity__tab\\\" data-bind=\\\"attr: { id: optType, 'aria-selected': $parent.currentOptType() == optType ? 'true' : 'false', tabindex: $parent.currentOptType() == optType ? '0' : '-1' }\\\" role=\\\"tab\\\" aria-controls=\\\"inlineOpportunityTable\\\"\\u003E\\u003Cspan data-bind=\\\"text: text\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Csup class=\\\"new-feature-label\\\" data-bind=\\\"if: isNewFeature\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18nGlobal.getString('New_Feature_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fsup\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cli class=\\\"more-opportunities\\\" data-bind=\\\"visible: moreOptCount() > 0\\\"\\u003E\\u003Ca class=\\\"clickable\\\" data-toggle=\\\"popover\\\" data-trigger=\\\"focus\\\" data-placement=\\\"bottom\\\" role=\\\"button\\\" tabindex=\\\"0\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('InlineOpportunity_MainPanel_Tab_More')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"spritedimage toolbar-icon icon-arrowdown-normal\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-info alert-dismissible inline-opportunity-alert\\\" role=\\\"alert\\\" data-bind=\\\"visible: isResultSuccess()\\\"\\u003E\\u003Cbutton class=\\\"close\\\" data-dismiss=\\\"alert\\\" type=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"closeimage\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fbutton\\u003E\\u003Cspan data-bind=\\\"html: applyResultMessage()\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-warning alert-dismissible inline-opportunity-alert\\\" role=\\\"alert\\\" data-bind=\\\"visible: isResultWarning()\\\"\\u003E\\u003Cbutton class=\\\"close\\\" data-dismiss=\\\"alert\\\" type=\\\"button\\\"\\u003E\\u003Cdiv class=\\\"closeimage\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fbutton\\u003E\\u003Cspan data-bind=\\\"html: applyWarningMessage()\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"inline-opportunity__tab-content\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"inline-opportunity-closing-message\\\" data-bind=\\\"visible: tabItems().length == 0\\\"\\u003E\\u003Cdiv class=\\\"closing-message-has-more\\\" data-bind=\\\"visible: moreOptCount() > 0\\\"\\u003E\\u003Cdiv class=\\\"closing-img has-more-opt-img\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = i18n.get('InlineOpportunity_ClosingPanel_Desc_Prompt', {moreOptCount: moreOptCount, opportunityPageLink: optTabUrl})) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"closing-message-no-more\\\" data-bind=\\\"visible: moreOptCount() == 0\\\"\\u003E\\u003Cdiv class=\\\"closing-img no-more-opt-img\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('InlineOpportunity_NoMorePopover_Title')) ? \"\" : pug_interp)) + \"\\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,\"i18nGlobal\" in locals_for_with?locals_for_with.i18nGlobal:typeof i18nGlobal!==\"undefined\"?i18nGlobal:undefined,\"moreOptCount\" in locals_for_with?locals_for_with.moreOptCount:typeof moreOptCount!==\"undefined\"?moreOptCount:undefined,\"optTabUrl\" in locals_for_with?locals_for_with.optTabUrl:typeof optTabUrl!==\"undefined\"?optTabUrl: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, moreMenuTextContent) {pug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"close closeimage\\\"\"+\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.get('Close'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"content\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = moreMenuTextContent) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"moreMenuTextContent\" in locals_for_with?locals_for_with.moreMenuTextContent:typeof moreMenuTextContent!==\"undefined\"?moreMenuTextContent: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=\\\"popover inline-opportunity-more-menu\\\" role=\\\"tooltip\\\"\\u003E\\u003Cdiv class=\\\"popover-content inline-opportunity-more-menu-content\\\"\\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 (i18n) {pug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"close closeimage clickable\\\"\"+\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.get('Close'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"inline-opportunity-no-more-popover\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('InlineOpportunity_NoMorePopover_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"inline-opportunity-no-more-popover\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('InlineOpportunity_NoMorePopover_Reason_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"inline-opportunity-no-more-popover\\\"\\u003E\\u003Cul\\u003E\\u003Cli\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('InlineOpportunity_NoMorePopover_Reason1')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fli\\u003E\\u003Cli\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('InlineOpportunity_NoMorePopover_Reason2')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fli\\u003E\\u003Cli\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('InlineOpportunity_NoMorePopover_Reason3')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\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=\\\"popover inline-opportunity-nomore\\\" role=\\\"tooltip\\\"\\u003E\\u003Cdiv class=\\\"popover-content\\\"\\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 (delta, desc, symbol) {pug_html = pug_html + \"\\u003Cdiv class=\\\"content\\\"\\u003E\\u003Cspan class=\\\"kpi-delta\\\"\\u003E\" + (pug.escape(null == (pug_interp = delta) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"kpi-symbol \" + symbol], [true]), false, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = \" \" + desc) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"delta\" in locals_for_with?locals_for_with.delta:typeof delta!==\"undefined\"?delta:undefined,\"desc\" in locals_for_with?locals_for_with.desc:typeof desc!==\"undefined\"?desc:undefined,\"symbol\" in locals_for_with?locals_for_with.symbol:typeof symbol!==\"undefined\"?symbol: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, key, popupId) {pug_mixins[\"popupHelp\"] = pug_interp = function(popupId, ariaLabelContext, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nvar templateString = (i18n && i18n.get && i18n.get('Click to learn more about {{item}}')) || (i18n && i18n.getString && i18n.getString('Click to learn more about {{item}}')) || null\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"helpbutton\\\"\"+\" type=\\\"helppopup\\\" role=\\\"button\\\"\"+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\", templateString ? templateString.replace('{{item}}', ariaLabelContext) : ariaLabelContext, true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\";\n};\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString(key)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\npug_mixins[\"popupHelp\"](popupId, i18n.getString(key), i18n);}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"key\" in locals_for_with?locals_for_with.key:typeof key!==\"undefined\"?key:undefined,\"popupId\" in locals_for_with?locals_for_with.popupId:typeof popupId!==\"undefined\"?popupId: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 (footnoteLink, hintText, i18n, showBackBtn) {pug_html = pug_html + \"\\u003Cdiv class=\\\"adextension-opportunity-tiles form-group\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"adextension-opportunity-actions form-group\\\"\\u003E\";\nif (showBackBtn) {\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-default back\\\"\\u003E\\u003Cspan class=\\\"spritedimage toolbar-icon toolbar-icon-left back_icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensionOpt_Back')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fbutton\\u003E\";\n}\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-hero apply\\\" data-bind=\\\"enable:isApplyEnable\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensionOpt_Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default dismiss\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensionOpt_Dismiss')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"adextension-opportunity-hint form-group\\\"\\u003E\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = hintText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"adextension-association-editor form-group\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"inline-opportunity-footer form-group\\\"\\u003E\\u003Ch5 class=\\\"inline-opportunity-footnote\\\"\\u003E\" + (null == (pug_interp = i18n.getString('InlineOpportunity_MainPanel_FootNote', { opportunityPageLink: footnoteLink })) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"footnoteLink\" in locals_for_with?locals_for_with.footnoteLink:typeof footnoteLink!==\"undefined\"?footnoteLink: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,\"showBackBtn\" in locals_for_with?locals_for_with.showBackBtn:typeof showBackBtn!==\"undefined\"?showBackBtn: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 (footnoteLink, i18n) {pug_html = pug_html + \"\\u003Ch5 class=\\\"inline-opportunity-footnote\\\"\\u003E\" + (null == (pug_interp = i18n.get('InlineOpportunity_MainPanel_FootNote', { opportunityPageLink: footnoteLink })) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";}.call(this,\"footnoteLink\" in locals_for_with?locals_for_with.footnoteLink:typeof footnoteLink!==\"undefined\"?footnoteLink: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, showActionBreadcrumb, showViewButton, type) {pug_html = pug_html + \"\\u003Ctable class=\\\"action-entries\\\" id=\\\"inlineOpportunityTable\\\"\\u003E\\u003Cthead class=\\\"action-title\\\"\\u003E\\u003Ctd class=\\\"action-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('InlineOpportunity_MainPanel_IfYouDoThis')) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\\u003Ctd class=\\\"action-result\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('InlineOpportunity_MainPanel_YouCouldSee')) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody\\u003E\\u003C!-- ko foreach: currentPage--\\u003E\\u003Ctr class=\\\"action-entry\\\" data-bind=\\\"attr: {id: Id, 'data-index': $index }\\\"\\u003E\\u003Ctd class=\\\"action-entry-title\\\"\\u003E\\u003Cdiv class=\\\"action-desc\\\"\\u003E\\u003Cspan data-bind=\\\"html: actionDesc\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (showActionBreadcrumb) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"action-breadcrumb\\\"\\u003E\\u003Cspan data-bind=\\\"text: CampaignName\\\" style=\\\"display:none\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Adgroup')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\" + (pug.escape(null == (pug_interp = \": \") ? \"\" : pug_interp)) + \"\\u003Cspan data-bind=\\\"text: AdgroupName\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (type === 'RemarketingBidAdjustmentOpportunity') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"action-breadcrumb\\\" data-bind=\\\"html: actionDescDetail\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\\u003Ctd class=\\\"action-entry-detail\\\"\\u003E\\u003Cdiv class=\\\"result-desc\\\"\\u003E\\u003Cspan data-bind=\\\"html: resultDesc\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"result-desc-detail\\\"\\u003E\\u003Cspan data-bind=\\\"html: resultDescDetail\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"action-buttons\\\"\\u003E\\u003Cbutton class=\\\"btn btn-hero btn-apply\\\" data-bind=\\\"attr: {id: Id}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('InlineOpportunity_MainPanel_Action_Apply')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\nif (showViewButton) {\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-default btn-view\\\" data-bind=\\\"attr: {id: Id}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('InlineOpportunity_MainPanel_Action_View')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-default btn-dismiss\\\" data-bind=\\\"attr: {id: Id}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('InlineOpportunity_MainPanel_Action_Dismiss')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\\u003Cdiv class=\\\"inline-opportunity-footer\\\"\\u003E\" + (null == (pug_interp = require(\"./footnote.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003Cdiv class=\\\"pagination-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"showActionBreadcrumb\" in locals_for_with?locals_for_with.showActionBreadcrumb:typeof showActionBreadcrumb!==\"undefined\"?showActionBreadcrumb:undefined,\"showViewButton\" in locals_for_with?locals_for_with.showViewButton:typeof showViewButton!==\"undefined\"?showViewButton:undefined,\"type\" in locals_for_with?locals_for_with.type:typeof type!==\"undefined\"?type: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=\\\"grid-pager\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"previous spritedimage clickable\\\"\"+\" data-bind=\\\"css: {'disabled grid-previous-disabled': page_count_before() <= 0, 'grid-previous': page_count_before() > 0}, attr: { tabindex: page_count_before() <= 0 ? '-1' : '0'} \\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.getString('Component_Pagination_PreviousPage'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan\\u003E\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Grid_Page_Colon')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\\u003C\\u002Fspan\\u003E\\u003Cinput class=\\\"grid-pager-input pagination-number\\\" type=\\\"text\\\" data-bind=\\\"value: input_page_number\\\"\\u003E\\u003Cspan\\u003E\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Grid_PageOf')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\\u003Cstrong data-bind=\\\"text: page_count\\\"\\u003E\\u003C\\u002Fstrong\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv\" + (\" class=\\\"next spritedimage clickable\\\"\"+\" data-bind=\\\"css: {'disabled grid-next-disabled': page_count_after() <= 0, 'grid-next': page_count_after() > 0}, attr: { tabindex: page_count_after() <= 0 ? '-1' : '0'} \\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.getString('Component_Pagination_NextPage'), true, true)) + \"\\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 (value) {pug_html = pug_html + \"\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\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, percentSymbol, uuid) {pug_mixins[\"koError\"] = pug_interp = function(item, id){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"data-bind\", 'if: ' + item + '().length > 0, attr: {\"aria-hidden\": ' + item + '().length == 0}', true, true)+pug.attr(\"id\", id ? id : item, true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003Cdiv\" + (\" class=\\\"error\\\"\"+pug.attr(\"data-bind\", 'html: ' + item, true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\nvar errorsId = uuid.v4();\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-inline location-target-bid-grid-cell\\\"\\u003E\\u003Cselect\" + (\" class=\\\"form-control bidBoost-options\\\"\"+\" data-bind=\\\"options: bidAdjustmentOptions, optionsText: "text", optionsValue: "value", value: selectedBidAdjustmentOption, disable: isReadOnly\\\"\"+pug.attr(\"aria-label\", i18n.getString('BidAdjustment_Options'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003Cinput\" + (\" class=\\\"form-control display-inline bidBoost-percentValue\\\"\"+\" type=\\\"text\\\" data-bind=\\\"value: bidAdjustmentValue, valueUpdate: "input", disable: isReadOnly\\\"\"+pug.attr(\"aria-label\", i18n.getString('BidAdjustment_BidMultiplier'), true, true)) + \"\\u003E\\u003Cspan class=\\\"bidBoost-percent\\\"\\u003E\" + (pug.escape(null == (pug_interp = percentSymbol) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\npug_mixins[\"koError\"]('bidError', errorsId);}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"percentSymbol\" in locals_for_with?locals_for_with.percentSymbol:typeof percentSymbol!==\"undefined\"?percentSymbol:undefined,\"uuid\" in locals_for_with?locals_for_with.uuid:typeof uuid!==\"undefined\"?uuid: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=\\\"location-manage-box\\\" style=\\\"min-width: 900px\\\" data-bind=\\\"css: { "location-manage-box-border-top": wholeBoderVisible() }\\\"\\u003E\\u003Cdiv class=\\\"left-panel col-sm-5\\\"\\u003E\\u003Cdiv class=\\\"location-search\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: !shouldHideIncludedLocations()--\\u003E\\u003Cdiv class=\\\"location-target-grid bingadsgrid\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv class=\\\"recommend-location-grid\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"excluded-location-target-grid bingadsgrid\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"right-panel col-sm-7\\\"\\u003E\\u003Cdiv class=\\\"map\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: showMapError()--\\u003E\\u003Cdiv class=\\\"error\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_Bing_Map_Error')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\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, uuid) {pug_mixins[\"koErrors\"] = pug_interp = function(id, cssClass){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cul\" + (pug.attr(\"class\", pug.classes([cssClass ? cssClass : 'alert alert-danger'], [true]), false, true)+\" data-bind=\\\"visible: errors().length > 0, foreach: errors, attr: {"aria-hidden": errors().length == 0}\\\"\"+pug.attr(\"id\", id ? id : 'KoErrors', true, true)) + \"\\u003E\\u003Cli\\u003E\\u003Cdiv data-bind=\\\"html: $data\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";\n};\npug_mixins[\"koValidationError\"] = pug_interp = function(item, id){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cul\" + (pug.attr(\"data-bind\", 'visible: !' + item + '.isValid(), foreach: ' + item + '.errors, attr: {\"aria-hidden\": ' + item + '.isValid()}', true, true)+pug.attr(\"id\", id ? id : item + 'ValidationError', true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003Cli role=\\\"presentation\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: $data\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";\n};\nvar errorsId = uuid.v4();\nvar radiusErrorId = uuid.v4();\npug_mixins[\"koErrors\"](errorsId);\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\" role=\\\"radiogroup\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Ctable class=\\\"radius-selector-table\\\"\\u003E\\u003Ctr\\u003E\\u003Ctd\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"locationTypeOptions\\\" value=\\\"Radius\\\" data-bind=\\\"checked: mode, enable: radiusOptionEnabled\\\" aria-setsize=\\\"2\\\" aria-posinset=\\\"1\\\"\\u003E\\u003Cspan class=\\\"radius-within\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_PopupEditor_Radius')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Ftd\\u003E\\u003Ctd\\u003E\\u003Cdiv class=\\\"radius-input\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control\\\"\"+\" type=\\\"text\\\" data-bind=\\\"value: radius, enable: radiusOptionEnabled, valueUpdate: "input"\\\"\"+pug.attr(\"aria-label\", i18n.get('Location_Target_PopupEditor_Radius'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\\u003Ctd\\u003E\\u003Cdiv class=\\\"radius-unit\\\"\\u003E\\u003Cselect\" + (\" class=\\\"form-control\\\"\"+\" name=\\\"radiusUnits\\\" data-bind=\\\"options: radiusUnits, value: selectedUnit, optionsText: "text", optionsValue: "value", enable: radiusOptionEnabled\\\"\"+pug.attr(\"aria-label\", i18n.get('Location_Target_PopupEditor_Radius'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftable\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"locationTypeOptions\\\" value=\\\"Location\\\" data-bind=\\\"checked: mode, enable: locationOptionEnabled\\\" aria-setsize=\\\"2\\\" aria-posinset=\\\"2\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_PopupEditor_CurrentLocation')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan data-bind=\\\"text: locationName\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\";\npug_mixins[\"koValidationError\"]('radiusError', radiusErrorId);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cbutton class=\\\"btn btn-primary location-edit-btn-done\\\" type=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Button_Done')) ? \"\" : 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,\"uuid\" in locals_for_with?locals_for_with.uuid:typeof uuid!==\"undefined\"?uuid: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=\\\"location-recommend-grid\\\" data-bind=\\\"visible: isRecommendGridVisible\\\"\\u003E\\u003Cdiv class=\\\"form-group row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cdiv class=\\\"alert alert-recommendation\\\" style=\\\"line-height: 15px; border: 1px solid;\\\"\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\" style=\\\"display: flex;flex-direction: row;\\\"\\u003E\\u003Cdiv style=\\\"display: inline-flex;flex-direction: column;padding-right: 10px;\\\"\\u003E\\u003Cdiv style=\\\"flex-grow: 1\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"recommendation-light-bulb\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv style=\\\"flex-grow: 1\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan data-bind=\\\"html: description\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cdiv class=\\\"location-recommend-grid-container new-advance-target-grid-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cinput\" + (\" class=\\\"target btn btn-primary\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.getString('Target_Location_Recommendations'), true, true)+\" data-bind=\\\"attr: {disabled: !isTargetButtonEnabled()}\\\"\") + \"\\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 (i18n, noCoordinates) {pug_html = pug_html + \"\\u003C!--.location-type-selector.popup-editor(data-bind=\\\"style: {top: typeSelectorTopValuePixel(), left: typeSelectorLeftValuePixel()}, visible: typeSelectorVisible()\\\")--\\u003E\\u003Cdiv class=\\\"searchbox\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"new-location-targeting-prompt\\\" id=\\\"LocationTargetingSearchBoxPrompt\\\" data-bind=\\\"visible: showPrompt\\\"\\u003E\" + (pug.escape(null == (pug_interp = noCoordinates? i18n.get('LocationTargeting_NoCoordinates_SearchBoxPrompt') : i18n.get('LocationTargeting_SearchBoxPrompt')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"location-search-result-live-region\\\" data-bind=\\\"visible: true, attr: { "aria-live": "assertive", "aria-label": ariaTextSearchResult(), "role": "region" }\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"new-location-targeting-result\\\" data-bind=\\\"visible: showResult\\\"\\u003E\\u003Cdiv class=\\\"new-location-targeting-container\\\"\\u003E\\u003Ctable class=\\\"new-location-targeting-grid\\\" data-bind=\\\"visible: rows().length > 0\\\" role=\\\"presentation\\\"\\u003E\\u003Ctbody data-bind=\\\"foreach: rows\\\"\\u003E\\u003Ctr class=\\\"new-search-result-row\\\" data-bind=\\\"attr: { "data-id": locationId }, css: { "selectable": isSmartCampaign()&&selectionStatusObsv()==="New" }\\\"\\u003E\\u003Ctd\\u003E\\u003Cspan data-bind=\\\"text: nameToShow, attr: { id: "locationSearchResult-" + locationId }\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- ko if: selectionStatusObsv()==='New'--\\u003E\\u003Ctd class=\\\"new-location-targeting-grid-include\\\"\\u003E\\u003C!-- ko if: !hideInclude--\\u003E\\u003Ca class=\\\"new-location-targeting-include-link\\\" data-bind=\\\"attr: { "aria-describedby": "locationSearchResult-" + locationId }\\\" href=\\\"javascript:void(0)\\\" role=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('LocationTargeting_IncludeAction')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- ko if: locationId \\u003E 0 && !hideExclude--\\u003E\\u003C!-- ko if: !hideInclude--\\u003E\\u003Cspan class=\\\"new-location-targeting-separator\\\"\\u003E|\\u003C\\u002Fspan\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Ca class=\\\"new-location-targeting-exclude-link\\\" data-bind=\\\"attr: { "aria-describedby": "locationSearchResult-" + locationId }\\\" href=\\\"javascript:void(0)\\\" role=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('LocationTargeting_ExcludeAction')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- ko if: selectionStatusObsv()==='Included'--\\u003E\\u003Ctd class=\\\"new-location-targeting-grid-include\\\" data-bind=\\\"attr: { "aria-describedby": "locationSearchResult-" + locationId }\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('LocationTargeting_IncludedStatus')) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- ko if: selectionStatusObsv()==='Excluded'--\\u003E\\u003Ctd class=\\\"new-location-targeting-grid-exclude\\\" data-bind=\\\"attr: { "aria-describedby": "locationSearchResult-" + locationId }\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('LocationTargeting_ExcludedStatus')) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftd\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\\u003Cdiv\" + (\" class=\\\"new-empty-result-message\\\"\"+pug.attr(\"data-bind\", 'visible: rows().length === 0, text: rows().length === 0 ? \"' + i18n.get('LocationTargeting_SearchNoResult') + '\" : \"\"', true, true)+\" role=\\\"alert\\\"\") + \"\\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,\"noCoordinates\" in locals_for_with?locals_for_with.noCoordinates:typeof noCoordinates!==\"undefined\"?noCoordinates: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 (isPersonalizedOffersEnabled) {pug_html = pug_html + \"\\u003Cdiv data-bind=\\\"visible: gridVisible() && !shouldHideIncludedLocations()\\\"\\u003E\";\nif (isPersonalizedOffersEnabled) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"location-bid-grid-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"location-bid-grid advance-targeting-grid table new-advance-target-grid-container bingadsgrid\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"location-bid-pager-view\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-bind=\\\"visible: excludedGridVisible\\\"\\u003E\\u003Cdiv class=\\\"excluded-location-grid advance-targeting-grid table new-advance-target-grid-container bingadsgrid\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"excluded-location-pager-view\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"isPersonalizedOffersEnabled\" in locals_for_with?locals_for_with.isPersonalizedOffersEnabled:typeof isPersonalizedOffersEnabled!==\"undefined\"?isPersonalizedOffersEnabled: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=\\\"location-popup-editor popup-editor\\\" data-bind=\\\"style: {top: popupEditorTopValuePixel(), left: popupEditorLeftValuePixel()}, visible: popupEditorVisible()\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: gridRemoveAllVisible()--\\u003E\\u003Cdiv class=\\\"target-grid-remove-all-locations\\\"\\u003E\\u003Ca class=\\\"pull-right\\\" data-bind=\\\"css: {hide: hideRemoveAllLink()}\\\" href=\\\"javascript:void(0)\\\" role=\\\"button\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_Grid_RemoveColumn')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv class=\\\"target-grid new-advance-target-grid-container\\\" data-bind=\\\"visible: gridVisible()\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: !gridVisible() && gridNoDataMessageVisible()--\\u003E\\u003Cdiv class=\\\"no-data-message-container\\\" data-bind=\\\"css: { "text-center": removeAllInGridTitleVisible() }\\\"\\u003E\\u003Cspan data-bind=\\\"text: gridNoDataMessage\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv data-bind=\\\"visible: gridVisible()\\\"\\u003E\\u003Cdiv class=\\\"pagination_host\\\"\\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, selectionStatus, showPinIcon, showWarningIcon, value, warningText) {pug_html = pug_html + \"\\u003Cspan class=\\\"location-map-item\\\"\\u003E\";\nif (showPinIcon) {\nif (showWarningIcon) {\npug_html = pug_html + \"\\u003Cspan\" + (\" class=\\\"alert-icon warning\\\"\"+\" role=\\\"alert\\\"\"+pug.attr(\"title\", warningText, true, true)+pug.attr(\"aria-label\", warningText, true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nelse\nif (selectionStatus === 'Included') {\npug_html = pug_html + \"\\u003Cspan\" + (\" class=\\\"map-icon__pin--included\\\"\"+pug.attr(\"title\", i18n.get('Targeting_LocationAction_IncludedState'), true, true)+pug.attr(\"aria-label\", i18n.get('Targeting_LocationAction_IncludedState'), true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\" + (\" class=\\\"map-icon__pin--excluded\\\"\"+pug.attr(\"title\", i18n.get('Targeting_LocationAction_ExcludedState'), true, true)+pug.attr(\"aria-label\", i18n.get('Targeting_LocationAction_ExcludedState'), true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\n}\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (null == (pug_interp = value) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fspan\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"selectionStatus\" in locals_for_with?locals_for_with.selectionStatus:typeof selectionStatus!==\"undefined\"?selectionStatus:undefined,\"showPinIcon\" in locals_for_with?locals_for_with.showPinIcon:typeof showPinIcon!==\"undefined\"?showPinIcon:undefined,\"showWarningIcon\" in locals_for_with?locals_for_with.showWarningIcon:typeof showWarningIcon!==\"undefined\"?showWarningIcon:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined,\"warningText\" in locals_for_with?locals_for_with.warningText:typeof warningText!==\"undefined\"?warningText: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 (ariaLabel, linkText) {pug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"location-target-grid__title-column clickable\\\"\"+\" tabindex=\\\"0\\\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = linkText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";}.call(this,\"ariaLabel\" in locals_for_with?locals_for_with.ariaLabel:typeof ariaLabel!==\"undefined\"?ariaLabel:undefined,\"linkText\" in locals_for_with?locals_for_with.linkText:typeof linkText!==\"undefined\"?linkText: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 (areaName, i18n) {pug_html = pug_html + \"\\u003Cspan\" + (\" class=\\\"closeimage location-target-grid__remove-col clickable\\\"\"+\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"title\", i18n.get('LocationTargeting_IncludedRemove'), true, true)+pug.attr(\"aria-label\", areaName, true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\";}.call(this,\"areaName\" in locals_for_with?locals_for_with.areaName:typeof areaName!==\"undefined\"?areaName: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, popupIds) {pug_mixins[\"koError\"] = pug_interp = function(item, id){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"data-bind\", 'if: ' + item + '().length > 0, attr: {\"aria-hidden\": ' + item + '().length == 0}', true, true)+pug.attr(\"id\", id ? id : item, true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003Cdiv\" + (\" class=\\\"error\\\"\"+pug.attr(\"data-bind\", 'html: ' + item, true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_mixins[\"popupHelp\"] = pug_interp = function(popupId, ariaLabelContext, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nvar templateString = (i18n && i18n.get && i18n.get('Click to learn more about {{item}}')) || (i18n && i18n.getString && i18n.getString('Click to learn more about {{item}}')) || null\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"helpbutton\\\"\"+\" type=\\\"helppopup\\\" role=\\\"button\\\"\"+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\", templateString ? templateString.replace('{{item}}', ariaLabelContext) : ariaLabelContext, true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Clabel id=\\\"location-target-physicalintent-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_PhysicalIntent_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-10\\\" role=\\\"group\\\" aria-labelledby=\\\"location-target-physicalintent-title\\\" aria-describedby=\\\"location-target-physicalintent-header\\\"\\u003E\\u003Cdiv class=\\\"form-control-static\\\" id=\\\"location-target-physicalintent-header\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_PhysicalIntent_Header')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: !showImprovedOptions()--\\u003E\\u003Cdiv class=\\\"checkbox\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput class=\\\"people-in-location\\\" type=\\\"checkbox\\\" data-bind=\\\"checked: peopleInLocation, attr:{"aria-checked": peopleInLocation() ? "true" : "false"}\\\" role=\\\"checkbox\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_PhysicalIntent_PeopleInLocation')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"](popupIds.PhysicalIntentOn, i18n.get('Location_Target_PhysicalIntent_PeopleInLocation'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"checkbox\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput class=\\\"people-searching-for-location\\\" type=\\\"checkbox\\\" data-bind=\\\"checked: peopleSearchingForLocation, attr:{"aria-checked": peopleSearchingForLocation() ? "true" : "false"}\\\" role=\\\"checkbox\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_PhysicalIntent_PeopleSearchForLocation')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"](popupIds.PhysicalIntentOnly, i18n.get('Location_Target_PhysicalIntent_PeopleSearchForLocation'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!--ko if: showImprovedOptions()--\\u003E\\u003Cdiv class=\\\"radio radio-with-icons\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput class=\\\"people-in-location\\\" type=\\\"radio\\\" name=\\\"intentOptions\\\" value=\\\"PeopleIn\\\" data-bind=\\\"checked: intentOption, attr:{"aria-checked": intentOption() === "PeopleIn" ? "true" : "false"}\\\" role=\\\"radio\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_PhysicalIntent_PeopleInLocation')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"](popupIds.PhysicalIntentOn, i18n.get('Location_Target_PhysicalIntent_PeopleInLocation'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"radio radio-with-icon\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput class=\\\"people-in-or-interested-in-location\\\" type=\\\"radio\\\" name=\\\"intentOptions\\\" value=\\\"PeopleInOrSearchingForOrViewingPages\\\" data-bind=\\\"checked: intentOption, attr:{"aria-checked": intentOption() === "PeopleInOrSearchingForOrViewingPages" ? "true" : "false"}\\\" role=\\\"radio\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_PhysicalIntent_peopleInOrInterestedInLocation')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"](popupIds.PhysicalIntentOnly, i18n.get('Location_Target_PhysicalIntent_peopleInOrInterestedInLocation'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\";\npug_mixins[\"koError\"]('intentError');\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"popupIds\" in locals_for_with?locals_for_with.popupIds:typeof popupIds!==\"undefined\"?popupIds: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, popupIds) {pug_mixins[\"koError\"] = pug_interp = function(item, id){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"data-bind\", 'if: ' + item + '().length > 0, attr: {\"aria-hidden\": ' + item + '().length == 0}', true, true)+pug.attr(\"id\", id ? id : item, true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003Cdiv\" + (\" class=\\\"error\\\"\"+pug.attr(\"data-bind\", 'html: ' + item, true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_mixins[\"popupHelp\"] = pug_interp = function(popupId, ariaLabelContext, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nvar templateString = (i18n && i18n.get && i18n.get('Click to learn more about {{item}}')) || (i18n && i18n.getString && i18n.getString('Click to learn more about {{item}}')) || null\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"helpbutton\\\"\"+\" type=\\\"helppopup\\\" role=\\\"button\\\"\"+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\", templateString ? templateString.replace('{{item}}', ariaLabelContext) : ariaLabelContext, true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Clabel id=\\\"location-target-physicalintent-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_PhysicalIntent_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-10\\\" role=\\\"group\\\" aria-labelledby=\\\"location-target-physicalintent-title\\\" aria-describedby=\\\"location-target-physicalintent-bidmode-header\\\"\\u003E\\u003Cdiv class=\\\"form-control-static\\\" id=\\\"location-target-physicalintent-bidmode-header\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_PhysicalIntent_Header')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"radio radio-with-icons\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput class=\\\"people-in-location\\\" type=\\\"radio\\\" name=\\\"intentOptionsBidMode\\\" value=\\\"PeopleIn\\\" data-bind=\\\"checked: intentOption, attr:{"aria-checked": intentOption() === "PeopleIn" ? "true" : "false"}\\\" role=\\\"radio\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_PhysicalIntent_PeopleInLocation')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"](popupIds.PhysicalIntentOn, i18n.get('Location_Target_PhysicalIntent_PeopleInLocation'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"radio radio-with-icon\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput class=\\\"people-in-or-interested-in-location\\\" type=\\\"radio\\\" name=\\\"intentOptionsBidMode\\\" value=\\\"PeopleInOrSearchingForOrViewingPages\\\" data-bind=\\\"checked: intentOption, attr:{"aria-checked": intentOption() === "PeopleInOrSearchingForOrViewingPages" ? "true" : "false"}\\\" role=\\\"radio\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_PhysicalIntent_peopleInOrInterestedInLocation')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"](popupIds.PhysicalIntentOnly, i18n.get('Location_Target_PhysicalIntent_peopleInOrInterestedInLocation'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\npug_mixins[\"koError\"]('intentError');\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"popupIds\" in locals_for_with?locals_for_with.popupIds:typeof popupIds!==\"undefined\"?popupIds: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 + \"\\u003Cdiv class=\\\"location-cell-status clickable\\\" tabindex=\\\"0\\\" role=\\\"button\\\" aria-label=\\\"Location deprecation details\\\"\\u003E\\u003Cspan class=\\\"location-cell-status-inline\\\"\\u003E\" + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\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 (statusTexts) {pug_html = pug_html + \"\\u003Cdiv class=\\\"location-status-container\\\"\\u003E\\u003Ch3\\u003E\" + (pug.escape(null == (pug_interp = statusTexts.title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh3\\u003E\\u003Cp\\u003E\" + (pug.escape(null == (pug_interp = statusTexts.text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fp\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"statusTexts\" in locals_for_with?locals_for_with.statusTexts:typeof statusTexts!==\"undefined\"?statusTexts: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 (hasLocationRecommendations, i18n, popupIds, uuid) {pug_mixins[\"popupHelp\"] = pug_interp = function(popupId, ariaLabelContext, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nvar templateString = (i18n && i18n.get && i18n.get('Click to learn more about {{item}}')) || (i18n && i18n.getString && i18n.getString('Click to learn more about {{item}}')) || null\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"helpbutton\\\"\"+\" type=\\\"helppopup\\\" role=\\\"button\\\"\"+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\", templateString ? templateString.replace('{{item}}', ariaLabelContext) : ariaLabelContext, true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\";\n};\npug_mixins[\"koErrors\"] = pug_interp = function(id, cssClass){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cul\" + (pug.attr(\"class\", pug.classes([cssClass ? cssClass : 'alert alert-danger'], [true]), false, true)+\" data-bind=\\\"visible: errors().length > 0, foreach: errors, attr: {"aria-hidden": errors().length == 0}\\\"\"+pug.attr(\"id\", id ? id : 'KoErrors', true, true)) + \"\\u003E\\u003Cli\\u003E\\u003Cdiv data-bind=\\\"html: $data\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";\n};\npug_mixins[\"koValidationError\"] = pug_interp = function(item, id){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cul\" + (pug.attr(\"data-bind\", 'visible: !' + item + '.isValid(), foreach: ' + item + '.errors, attr: {\"aria-hidden\": ' + item + '.isValid()}', true, true)+pug.attr(\"id\", id ? id : item + 'ValidationError', true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003Cli role=\\\"presentation\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: $data\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";\n};\nvar errorsId = uuid.v4();\nvar radiusErrorIdForBidMode = uuid.v4();\nvar radiusErrorIdForNonBidMode = uuid.v4();\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-horizontal\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-10\\\" data-bind=\\\"visible: showUI()\\\"\\u003E\\u003Cdiv class=\\\"alert alert-info hideInclude\\\" data-bind=\\\"visible: shouldHideIncludedLocations()\\\" role=\\\"alert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Target_Settings_Only_ExcludedLocation')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-info form-group\\\" data-bind=\\\"visible: showAdGroupOverrideInformation\\\" role=\\\"alert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Target_Settings_Override_Information_Line1', i18n.getString('Target_Settings_Override_Location_Target'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline indent\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Target_Settings_Override_Information_Line2', i18n.getString('Target_Settings_Override_Location_Target'))) ? \"\" : pug_interp)) + \" \\u003Ca class=\\\"HelpTopic\\\" query=\\\"help:app54638\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Learn_more_link_text')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: showTargetLableAndTitle()--\\u003E\\u003Ch2 class=\\\"control-label\\\"\\u003E\\u003Clabel id=\\\"location-target-header-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_Header_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"](popupIds.Location, i18n.get('Location_Target_Header_Title'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fh2\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv class=\\\"locations-editor-form\\\" data-bind=\\\"attr:{"data-property": !bidMode() && showUI() && scenario !== "creation-workflow" && scenario !== "signup-creation-workflow" && scenario !== "audience-dashboard" && scenario !== "smart-campaign" ? "buttonMode" : ""}\\\"\\u003E\\u003C!--ko if: showCampaignSettingsToggleView()--\\u003E\\u003Cdiv class=\\\"form-control-static\\\"\\u003E\\u003Clabel class=\\\"type-normal\\\" id=\\\"location-use-campaign-settings\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('CreationWorkflowsInheritanceFlagLabel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"toggle-campaign-settings-switch\\\" data-bind=\\\"checked: useCampaignSettings\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!--ko if: !bidMode()--\\u003E\\u003Cdiv role=\\\"radiogroup\\\" aria-labelledby=\\\"location-target-header-title\\\" aria-describedby=\\\"location-target-title\\\"\\u003E\\u003C!--ko if: !showTargetOptions()--\\u003E\\u003Cdiv class=\\\"form-control-static\\\" id=\\\"location-target-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_AdGroup_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!--ko if: showTargetOptions()--\\u003E\\u003C!--ko if: showTargetLableAndTitle()--\\u003E\\u003Cdiv class=\\\"form-control-static\\\" id=\\\"location-target-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!--ko if: !shouldHideIncludedLocations()--\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"targetOptions\\\" value=\\\"bundle\\\" data-bind=\\\"checked: targetOption, attr:{"aria-checked": targetOption() === "bundle" ? "true" : "false"}\\\" role=\\\"radio\\\"\\u003E\\u003Cspan data-bind=\\\"text: languageBundleString\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!--ko if: showEverywhereOption--\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput class=\\\"target-every-where\\\" type=\\\"radio\\\" name=\\\"targetOptions\\\" value=\\\"everywhere\\\" data-bind=\\\"checked: targetOption, attr:{"aria-checked": targetOption() === "everywhere" ? "true" : "false"}\\\" role=\\\"radio\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_Options_Everywhere')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput class=\\\"target-specific-locations\\\" type=\\\"radio\\\" name=\\\"targetOptions\\\" value=\\\"specific\\\" data-bind=\\\"checked: targetOption, attr:{"aria-checked": targetOption() === "specific" ? "true" : "false"}\\\" role=\\\"radio\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_Options_Specific')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv data-bind=\\\"visible: bidMode()\\\"\\u003E\\u003Cdiv data-bind=\\\"css: {"form-control-static": bidModeKeepTopMargin()}\\\"\\u003E\";\nif (hasLocationRecommendations) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"alert alert-recommendation\\\" data-bind=\\\"visible: showLocationRecommendationBanner\\\" style=\\\"line-height: 15px; border: 1px solid;\\\"\\u003E\\u003Cdiv class=\\\"alert-info-inline view-location-recommendations\\\" style=\\\"display: flex;flex-direction: row;\\\"\\u003E\\u003Cdiv style=\\\"display: inline-flex;flex-direction: column;padding-right: 10px;\\\"\\u003E\\u003Cdiv style=\\\"flex-grow: 1\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"recommendation-light-bulb\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv style=\\\"flex-grow: 1\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan data-bind=\\\"html: locationRecommendationBanner\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C!--ko if: gridNoData--\\u003E\\u003Cspan class=\\\"location-bid-grid-message\\\" data-bind=\\\"text: noDataMessage\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Ca class=\\\"change-mode-link clickable\\\" tabindex=\\\"0\\\" data-bind=\\\"visible: editLinkVisible()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('LocationTargeting_EditLocationTargets')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cdiv class=\\\"location-target-bid-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-bind=\\\"visible: showPhysicalIntentOutside() && editLinkVisible() && !gridNoData() && !targetEverywhere() && !hideAudience && !shouldHideIncludedLocations()\\\"\\u003E\\u003Cdiv class=\\\"location-target-physical-intent-bidMode\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-offset-0\\\"\\u003E\";\npug_mixins[\"koValidationError\"]('conflictError', radiusErrorIdForBidMode);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-bind=\\\"visible: !bidMode() && showUI()\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\" data-bind=\\\"visible: searchBoxVisible()\\\"\\u003E\\u003C!--ko if: showTargetLableAndTitle()--\\u003E\\u003Cdiv class=\\\"col-sm-2 control-label\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv class=\\\"location-manage col-sm-10\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-offset-0\\\"\\u003E\";\npug_mixins[\"koValidationError\"]('conflictError', radiusErrorIdForNonBidMode);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-bind=\\\"visible: !targetEverywhere() && !hideAudience && !shouldHideIncludedLocations()\\\"\\u003E\\u003Cdiv class=\\\"location-target-physical-intent\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"ima-reach-warning-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: scenario !== \\\"creation-workflow\\\" && scenario !== 'signup-creation-workflow' && scenario !== \\\"audience-dashboard\\\" && scenario !== 'smart-campaign' && scenario !== 'smart-shopping-campaign'--\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-2 control-label\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cbutton class=\\\"btn btn-primary location-target-done\\\" type=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Button_Done')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default location-target-cancel\\\" type=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Button_Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\" data-bind=\\\"visible: errors().length > 0\\\"\\u003E\\u003Cdiv class=\\\"col-sm-offset-2\\\"\\u003E\";\npug_mixins[\"koErrors\"](errorsId);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"hasLocationRecommendations\" in locals_for_with?locals_for_with.hasLocationRecommendations:typeof hasLocationRecommendations!==\"undefined\"?hasLocationRecommendations:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"popupIds\" in locals_for_with?locals_for_with.popupIds:typeof popupIds!==\"undefined\"?popupIds:undefined,\"uuid\" in locals_for_with?locals_for_with.uuid:typeof uuid!==\"undefined\"?uuid: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 (hasLocationRecommendations, i18n, popupIds, uuid) {pug_mixins[\"popupHelp\"] = pug_interp = function(popupId, ariaLabelContext, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nvar templateString = (i18n && i18n.get && i18n.get('Click to learn more about {{item}}')) || (i18n && i18n.getString && i18n.getString('Click to learn more about {{item}}')) || null\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"helpbutton\\\"\"+\" type=\\\"helppopup\\\" role=\\\"button\\\"\"+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\", templateString ? templateString.replace('{{item}}', ariaLabelContext) : ariaLabelContext, true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\";\n};\npug_mixins[\"koErrors\"] = pug_interp = function(id, cssClass){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cul\" + (pug.attr(\"class\", pug.classes([cssClass ? cssClass : 'alert alert-danger'], [true]), false, true)+\" data-bind=\\\"visible: errors().length > 0, foreach: errors, attr: {"aria-hidden": errors().length == 0}\\\"\"+pug.attr(\"id\", id ? id : 'KoErrors', true, true)) + \"\\u003E\\u003Cli\\u003E\\u003Cdiv data-bind=\\\"html: $data\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";\n};\npug_mixins[\"koValidationError\"] = pug_interp = function(item, id){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cul\" + (pug.attr(\"data-bind\", 'visible: !' + item + '.isValid(), foreach: ' + item + '.errors, attr: {\"aria-hidden\": ' + item + '.isValid()}', true, true)+pug.attr(\"id\", id ? id : item + 'ValidationError', true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003Cli role=\\\"presentation\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: $data\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";\n};\nvar errorsId = uuid.v4();\nvar radiusErrorIdForBidMode = uuid.v4();\nvar radiusErrorIdForNonBidMode = uuid.v4();\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-horizontal\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003C!--ko if: showTargetLableAndTitle()--\\u003E\\u003Ch5 class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Clabel id=\\\"location-target-header-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_Header_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"](popupIds.Location, i18n.get('Location_Target_Header_Title'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fh5\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv class=\\\"col-sm-10\\\" data-bind=\\\"visible: showUI()\\\"\\u003E\\u003Cdiv class=\\\"alert alert-info form-group\\\" data-bind=\\\"visible: showAdGroupOverrideInformation\\\" role=\\\"alert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Target_Settings_Override_Information_Line1', i18n.getString('Target_Settings_Override_Location_Target'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline indent\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Target_Settings_Override_Information_Line2', i18n.getString('Target_Settings_Override_Location_Target'))) ? \"\" : pug_interp)) + \" \\u003Ca class=\\\"HelpTopic\\\" query=\\\"help:app54638\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Learn_more_link_text')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: showCampaignSettingsToggleView()--\\u003E\\u003Cdiv class=\\\"form-control-static\\\"\\u003E\\u003Clabel class=\\\"type-normal\\\" id=\\\"location-use-campaign-settings\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('CreationWorkflowsInheritanceFlagLabel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"toggle-campaign-settings-switch\\\" data-bind=\\\"checked: useCampaignSettings\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!--ko if: !bidMode()--\\u003E\\u003Cdiv role=\\\"radiogroup\\\" aria-labelledby=\\\"location-target-header-title\\\" aria-describedby=\\\"location-target-title\\\"\\u003E\\u003C!--ko if: !showTargetOptions()--\\u003E\\u003Cdiv class=\\\"form-control-static\\\" id=\\\"location-target-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_AdGroup_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!--ko if: showTargetOptions()--\\u003E\\u003C!--ko if: showTargetLableAndTitle()--\\u003E\\u003Cdiv class=\\\"form-control-static\\\" id=\\\"location-target-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"targetOptions\\\" value=\\\"bundle\\\" data-bind=\\\"checked: targetOption, attr:{"aria-checked": targetOption() === "bundle" ? "true" : "false"}\\\" role=\\\"radio\\\"\\u003E\\u003Cspan data-bind=\\\"text: languageBundleString\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: showEverywhereOption--\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput class=\\\"target-every-where\\\" type=\\\"radio\\\" name=\\\"targetOptions\\\" value=\\\"everywhere\\\" data-bind=\\\"checked: targetOption, attr:{"aria-checked": targetOption() === "everywhere" ? "true" : "false"}\\\" role=\\\"radio\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_Options_Everywhere')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput class=\\\"target-specific-locations\\\" type=\\\"radio\\\" name=\\\"targetOptions\\\" value=\\\"specific\\\" data-bind=\\\"checked: targetOption, attr:{"aria-checked": targetOption() === "specific" ? "true" : "false"}\\\" role=\\\"radio\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Location_Target_Options_Specific')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv data-bind=\\\"visible: bidMode()\\\"\\u003E\\u003Cdiv data-bind=\\\"css: {"form-control-static": bidModeKeepTopMargin()}\\\"\\u003E\";\nif (hasLocationRecommendations) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"alert alert-recommendation\\\" data-bind=\\\"visible: showLocationRecommendationBanner\\\" style=\\\"line-height: 15px; border: 1px solid;\\\"\\u003E\\u003Cdiv class=\\\"alert-info-inline view-location-recommendations\\\" style=\\\"display: flex;flex-direction: row;\\\"\\u003E\\u003Cdiv style=\\\"display: inline-flex;flex-direction: column;padding-right: 10px;\\\"\\u003E\\u003Cdiv style=\\\"flex-grow: 1\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"recommendation-light-bulb\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv style=\\\"flex-grow: 1\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan data-bind=\\\"html: locationRecommendationBanner\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C!--ko if: gridNoData--\\u003E\\u003Cspan class=\\\"location-bid-grid-message\\\" data-bind=\\\"text: noDataMessage\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Ca class=\\\"change-mode-link clickable\\\" tabindex=\\\"0\\\" data-bind=\\\"visible: editLinkVisible()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('LocationTargeting_EditLocationTargets')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cdiv class=\\\"location-target-bid-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-bind=\\\"visible: showPhysicalIntentOutside() && editLinkVisible() && !gridNoData() && !targetEverywhere() && !hideAudience && !shouldHideIncludedLocations()\\\"\\u003E\\u003Cdiv class=\\\"location-target-physical-intent-bidMode\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-offset-0\\\"\\u003E\";\npug_mixins[\"koValidationError\"]('conflictError', radiusErrorIdForBidMode);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-bind=\\\"visible: !bidMode() && showUI()\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\" data-bind=\\\"visible: searchBoxVisible()\\\"\\u003E\\u003C!--ko if: showTargetLableAndTitle()--\\u003E\\u003Ch5 class=\\\"col-sm-2 control-label\\\"\\u003E\\u003C\\u002Fh5\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv class=\\\"location-manage col-sm-10\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-offset-2\\\"\\u003E\";\npug_mixins[\"koValidationError\"]('conflictError', radiusErrorIdForNonBidMode);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-bind=\\\"visible: !targetEverywhere() && !hideAudience\\\"\\u003E\\u003Cdiv class=\\\"location-target-physical-intent\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: scenario !== \\\"creation-workflow\\\" && scenario !== 'signup-creation-workflow' && scenario !== \\\"audience-dashboard\\\" && scenario !== 'smart-campaign' && scenario !== 'smart-shopping-campaign'--\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Ch5 class=\\\"col-sm-2 control-label\\\"\\u003E\\u003C\\u002Fh5\\u003E\\u003Cbutton class=\\\"btn btn-primary location-target-done\\\" type=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Button_Done')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default location-target-cancel\\\" type=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Button_Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\" data-bind=\\\"visible: errors().length > 0\\\"\\u003E\\u003Cdiv class=\\\"col-sm-offset-2\\\"\\u003E\";\npug_mixins[\"koErrors\"](errorsId);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"hasLocationRecommendations\" in locals_for_with?locals_for_with.hasLocationRecommendations:typeof hasLocationRecommendations!==\"undefined\"?hasLocationRecommendations:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"popupIds\" in locals_for_with?locals_for_with.popupIds:typeof popupIds!==\"undefined\"?popupIds:undefined,\"uuid\" in locals_for_with?locals_for_with.uuid:typeof uuid!==\"undefined\"?uuid: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 (nextPageText, pageNumberLabelText, previousPageText, totalPageCountText) {pug_html = pug_html + \"\\u003Cform class=\\\"form-inline pagination-control\\\"\\u003E\\u003Cdiv class=\\\"pager\\\" data-bind=\\\"visible: pageCount() > 1\\\"\\u003E\\u003Cbutton\" + (\" class=\\\"btn btn-default btn-flat nav-button prev\\\"\"+\" data-bind=\\\"click: decPageNumber, enable: pageNumber() > 0\\\" type=\\\"button\\\"\"+pug.attr(\"aria-label\", previousPageText, true, true)) + \"\\u003E\\u003Cdiv class=\\\"glyphicon glyphicon-triangle-left\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fbutton\\u003E\\u003Cdiv class=\\\"text\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = pageNumberLabelText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cinput\" + (\" class=\\\"form-control page-number-input\\\"\"+\" data-bind=\\\"value: pageNumberText, attr: { size: pageNumberSize, maxlength: pageNumberSize, disabled: !enableRandomPage() }\\\" type=\\\"text\\\"\"+pug.attr(\"aria-label\", pageNumberLabelText, true, true)) + \"\\u003E\\u003Cdiv class=\\\"text\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = totalPageCountText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E \\u003C\\u002Fspan\\u003E\\u003Cspan data-bind=\\\"text: pageCount\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cbutton\" + (\" class=\\\"btn btn-default btn-flat nav-button next\\\"\"+\" data-bind=\\\"click: incPageNumber, enable: pageNumber() < pageCount() - 1\\\" type=\\\"button\\\"\"+pug.attr(\"aria-label\", nextPageText, true, true)) + \"\\u003E\\u003Cdiv class=\\\"glyphicon glyphicon-triangle-right\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\";}.call(this,\"nextPageText\" in locals_for_with?locals_for_with.nextPageText:typeof nextPageText!==\"undefined\"?nextPageText:undefined,\"pageNumberLabelText\" in locals_for_with?locals_for_with.pageNumberLabelText:typeof pageNumberLabelText!==\"undefined\"?pageNumberLabelText:undefined,\"previousPageText\" in locals_for_with?locals_for_with.previousPageText:typeof previousPageText!==\"undefined\"?previousPageText:undefined,\"totalPageCountText\" in locals_for_with?locals_for_with.totalPageCountText:typeof totalPageCountText!==\"undefined\"?totalPageCountText: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, CurrentValue, EstimatedClickDeltaStr, EstimatedCostDeltaStr, EstimatedImpDeltaStr, OpportunityType, i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"display-inline-block col-xs-12 simple-view-bid-edit-mode simple-view-edit-mode\\\"\\u003E\\u003Cdiv class=\\\"col-xs-12 padding-zero margin-zero display-inline-block\\\"\\u003E\\u003Cdiv class=\\\"description pull-left col-xs-3 padding-zero\\\"\\u003E\\u003Cdiv class=\\\"padding-bottom-fifteen\\\"\\u003E\\u003Cspan class=\\\"keyword-intro\\\" data-bind=\\\"html:i18n.get('IncreaseBidForKeyword', {keywordName: KeywordName})\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('CurrentBid')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"old-bid\\\"\\u003E\" + (pug.escape(null == (pug_interp = CurrentValue) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"newbid-selection margin-top-ten\\\"\\u003E\\u003Cspan class=\\\"type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('NewBid')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' (') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"suggested_bid disabled\\\" data-bind=\\\"css:{disabled:!useCustomeBid() }\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Suggested')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' | ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"custom_bid\\\" data-bind=\\\"css:{disabled:useCustomeBid() }\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Custom')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '): ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"selected-bid-value\\\" data-bind=\\\"text:valueToApply()\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"campaigninfo opportunity-description-text padding-top-twenty\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = CampaignName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' > ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = AdgroupName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"estimation-with-landscape pull-left col-xs-9 padding-zero padding-left-twenty\\\"\\u003E\\u003Cdiv class=\\\"estimation-panel\\\" data-bind=\\\"visible:(!hasBidLandscapeData() || !useCustomeBid())\\\"\\u003E\\u003Cdiv class=\\\"padding-bottom-fifteen\\\"\\u003E\\u003Cspan class=\\\"type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Estimates')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"clear\\\"\\u003E\\u003Cdiv class=\\\"kpi-estimation col-xs-3 padding-zero\\\" data-bind=\\\"visible:equalSuggestedBid() \\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('kpiImpression')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"type-bold type1 impression padding-left-five\\\"\\u003E\" + (pug.escape(null == (pug_interp = '+'+EstimatedImpDeltaStr) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"kpi-estimation col-xs-3 padding-zero\\\" data-bind=\\\"visible:equalSuggestedBid() \\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('kpiClicks')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"type-bold type1 click padding-left-five\\\"\\u003E\" + (pug.escape(null == (pug_interp = '+'+EstimatedClickDeltaStr) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"kpi-estimation col-xs-3 padding-zero\\\" data-bind=\\\"visible:equalSuggestedBid() \\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('kpiSpend')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"type-bold type1 cost padding-left-five\\\"\\u003E\" + (pug.escape(null == (pug_interp = '+'+EstimatedCostDeltaStr) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ch5 class=\\\"no-estimation clear\\\" data-bind=\\\"visible:(!hasBidLandscapeData() || !useCustomeBid()) && !equalSuggestedBid() \\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EstimatesNotAvailableForEditOpts')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh5\\u003E\\u003Cdiv data-bind=\\\"visible:(useCustomeBid() && hasBidLandscapeData())\\\"\\u003E\\u003Cdiv class=\\\"bidlandscape-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"clear custom-input-value col-xs-8 padding-zero padding-top-twenty\\\" data-bind=\\\"visible:(useCustomeBid() && !hasBidLandscapeData())\\\"\\u003E\\u003Clabel class=\\\"clear pull-left col-xs-2 padding-zero\\\" id=\\\"custom-input-bid-value\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('CustomInputText')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cinput class=\\\"form-control bidlandscape-input pull-left\\\" type=\\\"text\\\" name=\\\"custom-input-value\\\" aria-labelledby=\\\"custom-input-bid-value\\\" data-bind=\\\"value:userInput, valueUpdate:'keyup'\\\"\\u003E\\u003Ch5 class=\\\"error clear padding-top-five\\\" data-bind=\\\"visible: !inputValid(), text: inputErrorMessage()\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fh5\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"action-panel pull-right clear\\\"\\u003E\\u003Cdiv class=\\\"pull-right\\\"\\u003E\\u003Cinput\" + (\" class=\\\"btn btn-hero\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"name\", 'Apply' + OpportunityType, true, true)+pug.attr(\"value\", i18n.get('Apply'), true, true)+\" data-bind=\\\"enable:inputValid()\\\"\") + \"\\u003E\\u003Cinput\" + (\" class=\\\"btn btn-default\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.get('Cancel'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\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,\"CurrentValue\" in locals_for_with?locals_for_with.CurrentValue:typeof CurrentValue!==\"undefined\"?CurrentValue:undefined,\"EstimatedClickDeltaStr\" in locals_for_with?locals_for_with.EstimatedClickDeltaStr:typeof EstimatedClickDeltaStr!==\"undefined\"?EstimatedClickDeltaStr:undefined,\"EstimatedCostDeltaStr\" in locals_for_with?locals_for_with.EstimatedCostDeltaStr:typeof EstimatedCostDeltaStr!==\"undefined\"?EstimatedCostDeltaStr:undefined,\"EstimatedImpDeltaStr\" in locals_for_with?locals_for_with.EstimatedImpDeltaStr:typeof EstimatedImpDeltaStr!==\"undefined\"?EstimatedImpDeltaStr:undefined,\"OpportunityType\" in locals_for_with?locals_for_with.OpportunityType:typeof OpportunityType!==\"undefined\"?OpportunityType: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) {pug_html = pug_html + \"\\u003Cdiv class=\\\"adgroupselection display-inline-block cols-12 padding-zero margin-zero clear\\\"\\u003E\\u003Cdiv class=\\\"keyword_adgroup_selection keyword_inline_selection\\\"\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"type-bold\\\" id=\\\"adgroupCaption\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Adgroup')+':') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C!-- hide the new--\\u003E\\u003Cspan style=\\\"display:none;\\\"\\u003E\\u003Ca class=\\\"new_adgroup padding-left-five\\\" href=\\\"javascript:void(0)\\\" data-bind=\\\"css: { disabled:useNewAdgroup()}, click: setIsNewAdGroupSelected, attr: {tabindex: useNewAdgroup() ? "-1":"0"}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('New')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan class=\\\"padding-left-five\\\"\\u003E\" + (pug.escape(null == (pug_interp = '|') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"existing_adgroup padding-left-five\\\" href=\\\"javascript:void(0)\\\" data-bind=\\\"css: { disabled: !useNewAdgroup() }, click: setIsExistingAdGroupSelected, attr: {tabindex: useNewAdgroup() ? "0":"-1"}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Existing')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"padding-top-five\\\"\\u003E\\u003Cinput class=\\\"grid-textbox form-control\\\" type=\\\"text\\\" data-bind=\\\"css:{error: !newAdgroupNameInput.isValid()}, visible: useNewAdgroup,hasFocus:isNewAdGroupSelected, value:newAdgroupNameInput, valueUpdate:'keyup'\\\" aria-labelledby=\\\"adgroupCaption\\\" aria-describedby=\\\"adGroupInputErr\\\"\\u003E\\u003Cselect class=\\\"adgSelect form-control cursor-pointer\\\" data-bind=\\\"visible: !useNewAdgroup(),hasFocus:isExistingAdGroupSelected, options: adgroups(), optionsText: 'name', optionsValue: 'id', value: selectedAdgroupId\\\" aria-labelledby=\\\"adgroupCaption\\\"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ch5 class=\\\"padding-zero margin-zero padding-top-five\\\" data-bind=\\\"visible: useNewAdgroup\\\" role=\\\"alert\\\" id=\\\"adGroupInputErr\\\"\\u003E\\u003Cspan class=\\\"error\\\" data-bind=\\\"text:newAdgroupNameInput.errors()[0]\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh5\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"clear bidselection display-inline-block col-xs-12 padding-zero padding-top-five\\\"\\u003E\\u003Cdiv class=\\\"keyword_bid_selection keyword_inline_selection padding-top-five\\\"\\u003E\\u003Cdiv class=\\\"padding-top-five\\\" data-bind=\\\"visible:!useNewAdgroup()\\\"\\u003E\\u003Cspan class=\\\"type-bold\\\" id=\\\"bidCaption\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Bid')+':') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"use_adgroup_bid padding-left-five\\\" href=\\\"javascript:void(0)\\\" data-bind=\\\"css: { disabled:useAdgroupBid() }, click: $root.useAdgroupBid.bind($data, true), attr: {tabindex: useAdgroupBid() ? "-1":"0"}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DefaultAdgroup')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan class=\\\"padding-left-five\\\"\\u003E\" + (pug.escape(null == (pug_interp = '|') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"use_keyword_bid padding-left-five\\\" href=\\\"javascript:void(0)\\\" data-bind=\\\"css: { disabled:!useAdgroupBid() }, click: setIsKeywordBidSelected, attr: {tabindex: useAdgroupBid() ? "0":"-1"}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Keyword')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"padding-top-five\\\" data-bind=\\\"visible:useNewAdgroup()\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ch5 class=\\\"padding-zero margin-zero padding-top-five\\\" data-bind=\\\"visible: useNewAdgroup()\\\" role=\\\"alert\\\" id=\\\"invalidNewBidMsg\\\"\\u003E\\u003Cspan class=\\\"error\\\" data-bind=\\\"text:newAdgroupBidInput.errors()[0]\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh5\\u003E\\u003Ch5 class=\\\"padding-zero margin-zero padding-top-five\\\" data-bind=\\\"visible: !useNewAdgroup() && !useAdgroupBid()\\\" role=\\\"alert\\\" id=\\\"invalidCustomBidMsg\\\"\\u003E\\u003Cspan class=\\\"error\\\" data-bind=\\\"text:customBidInput.errors()[0]\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh5\\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) {pug_html = pug_html + \"\\u003Cdiv class=\\\"adgroupselection display-inline-block cols-12 padding-zero margin-zero clear\\\"\\u003E\\u003Cdiv class=\\\"keyword_adgroup_selection keyword_inline_selection\\\"\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"type-bold\\\" id=\\\"adgroupCaption\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Adgroup')+':') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"new_adgroup padding-left-five\\\" href=\\\"javascript:void(0)\\\" data-bind=\\\"css: { disabled:useNewAdgroup()}, click: setIsNewAdGroupSelected, attr: {tabindex: useNewAdgroup() ? "-1":"0"}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('New')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan class=\\\"padding-left-five\\\"\\u003E\" + (pug.escape(null == (pug_interp = '|') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"existing_adgroup padding-left-five\\\" href=\\\"javascript:void(0)\\\" data-bind=\\\"css: { disabled: !useNewAdgroup() }, click: setIsExistingAdGroupSelected, attr: {tabindex: useNewAdgroup() ? "0":"-1"}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Existing')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"padding-top-five\\\"\\u003E\\u003Cinput class=\\\"grid-textbox form-control\\\" type=\\\"text\\\" data-bind=\\\"css:{error: !newAdgroupNameInput.isValid()}, visible: useNewAdgroup,hasFocus:isNewAdGroupSelected, value:newAdgroupNameInput, valueUpdate:'keyup'\\\" aria-labelledby=\\\"adgroupCaption\\\" aria-describedby=\\\"adGroupInputErr\\\"\\u003E\\u003Cselect class=\\\"adgSelect form-control cursor-pointer\\\" data-bind=\\\"visible: !useNewAdgroup(),hasFocus:isExistingAdGroupSelected, options: adgroups(), optionsText: 'name', optionsValue: 'id', value: selectedAdgroupId\\\" aria-labelledby=\\\"adgroupCaption\\\"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ch5 class=\\\"padding-zero margin-zero padding-top-five\\\" data-bind=\\\"visible: useNewAdgroup\\\" role=\\\"alert\\\" id=\\\"adGroupInputErr\\\"\\u003E\\u003Cspan class=\\\"error\\\" data-bind=\\\"text:newAdgroupNameInput.errors()[0]\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh5\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"clear bidselection display-inline-block col-xs-12 padding-zero padding-top-five\\\"\\u003E\\u003Cdiv class=\\\"keyword_bid_selection keyword_inline_selection padding-top-five\\\"\\u003E\\u003Cdiv class=\\\"padding-top-five\\\" data-bind=\\\"visible:!useNewAdgroup()\\\"\\u003E\\u003Cspan class=\\\"type-bold\\\" id=\\\"bidCaption\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Bid')+':') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"use_adgroup_bid padding-left-five\\\" href=\\\"javascript:void(0)\\\" data-bind=\\\"css: { disabled:useAdgroupBid() }, click: $root.useAdgroupBid.bind($data, true), attr: {tabindex: useAdgroupBid() ? "-1":"0"}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DefaultAdgroup')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan class=\\\"padding-left-five\\\"\\u003E\" + (pug.escape(null == (pug_interp = '|') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"use_keyword_bid padding-left-five\\\" href=\\\"javascript:void(0)\\\" data-bind=\\\"css: { disabled:!useAdgroupBid() }, click: setIsKeywordBidSelected, attr: {tabindex: useAdgroupBid() ? "0":"-1"}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Keyword')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"padding-top-five\\\" data-bind=\\\"visible:useNewAdgroup()\\\"\\u003E\\u003Cspan class=\\\"type-bold\\\" id=\\\"adgroupBidCaption\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DefaultAdgroupBid')+' :') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"padding-top-five\\\"\\u003E\\u003Cinput class=\\\"grid-textbox form-control\\\" type=\\\"text\\\" data-bind=\\\"visible:(!useNewAdgroup() && !useAdgroupBid()), hasFocus:isKeywordBidSelected, css:{error: !customBidInput.isValid()}, value:customBidInput, valueUpdate:'keyup'\\\" aria-labelledby=\\\"bidCaption\\\" aria-describedby=\\\"invalidCustomBidMsg\\\"\\u003E\\u003Cinput class=\\\"grid-textbox form-control new-adgroup-bid\\\" type=\\\"text\\\" data-bind=\\\"visible:useNewAdgroup, css:{error: !newAdgroupBidInput.isValid()}, value:newAdgroupBidInput, valueUpdate:'keyup'\\\" aria-labelledby=\\\"adgroupBidCaption\\\" aria-describedby=\\\"invalidNewBidMsg\\\"\\u003E\\u003Cspan class=\\\"adgroup_bid_value_span padding-top-five\\\" data-bind=\\\"visible:(!useNewAdgroup() && useAdgroupBid()), text: adgroupBid\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ch5 class=\\\"padding-zero margin-zero padding-top-five\\\" data-bind=\\\"visible: useNewAdgroup()\\\" role=\\\"alert\\\" id=\\\"invalidNewBidMsg\\\"\\u003E\\u003Cspan class=\\\"error\\\" data-bind=\\\"text:newAdgroupBidInput.errors()[0]\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh5\\u003E\\u003Ch5 class=\\\"padding-zero margin-zero padding-top-five\\\" data-bind=\\\"visible: !useNewAdgroup() && !useAdgroupBid()\\\" role=\\\"alert\\\" id=\\\"invalidCustomBidMsg\\\"\\u003E\\u003Cspan class=\\\"error\\\" data-bind=\\\"text:customBidInput.errors()[0]\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh5\\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 (AdgroupName, CampaignName, EstimatedClickDeltaStr, EstimatedCostDeltaStr, EstimatedImpDeltaStr, OpportunityType, i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"display-inline-block col-xs-12 padding-zero margin-zero simple-view-keyword-edit-mode simple-view-edit-mode\\\"\\u003E\\u003Cdiv class=\\\"col-xs-12 padding-zero\\\"\\u003E\\u003Cdiv class=\\\"campaign-bid-editField pull-left col-xs-3 padding-zero\\\"\\u003E\\u003Cdiv class=\\\"campaignName display-inline-block\\\"\\u003E\\u003Cspan class=\\\"type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Campaign')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ':') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"padding-left-five\\\"\\u003E\" + (pug.escape(null == (pug_interp = CampaignName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"adgroup_bid_selection padding-top-twenty\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"detail-grid col-xs-6 padding-zero padding-left-twenty\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"kpi-estimation col-xs-3 padding-zero padding-left-twenty\\\"\\u003E\\u003Ch5 class=\\\"type-bold margin-zero\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Estimates')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"clear padding-top-five\\\" data-bind=\\\"visible: !isDirty()\\\"\\u003E\\u003Cdiv class=\\\"kpi-estimation\\\"\\u003E\\u003Cspan class=\\\"type-bold impression\\\"\\u003E\" + (pug.escape(null == (pug_interp = EstimatedImpDeltaStr) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' ' + i18n.get('InlineOpportunity_More_Impressions')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"kpi-estimation\\\"\\u003E\\u003Cspan class=\\\"type-bold click\\\"\\u003E\" + (pug.escape(null == (pug_interp = EstimatedClickDeltaStr) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' ' + i18n.get('InlineOpportunity_More_Clicks')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"kpi-estimation\\\"\\u003E\\u003Cspan class=\\\"type-bold cost\\\"\\u003E\" + (pug.escape(null == (pug_interp = EstimatedCostDeltaStr) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' ' + i18n.get('InlineOpportunity_More_Spend')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"noEstimatedKpi padding-top-twenty\\\" data-bind=\\\"visible: isDirty()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EstimatesNotAvailableForEditOpts')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"clear opportunity-description-text\\\" data-bind=\\\"visible: newAdgroup()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('KwNewAdgroupSettingExplanation', {campaignName: CampaignName, adGroupName: AdgroupName})) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"action-panel pull-right clear\\\"\\u003E\\u003Cdiv class=\\\"pull-right\\\"\\u003E\\u003Cinput\" + (\" class=\\\"btn btn-hero\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.get('Apply'), true, true)+\" data-bind=\\\"enable: inputValid()\\\"\"+pug.attr(\"name\", 'Apply' + OpportunityType, true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"btn btn-default\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.get('Cancel'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\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,\"EstimatedClickDeltaStr\" in locals_for_with?locals_for_with.EstimatedClickDeltaStr:typeof EstimatedClickDeltaStr!==\"undefined\"?EstimatedClickDeltaStr:undefined,\"EstimatedCostDeltaStr\" in locals_for_with?locals_for_with.EstimatedCostDeltaStr:typeof EstimatedCostDeltaStr!==\"undefined\"?EstimatedCostDeltaStr:undefined,\"EstimatedImpDeltaStr\" in locals_for_with?locals_for_with.EstimatedImpDeltaStr:typeof EstimatedImpDeltaStr!==\"undefined\"?EstimatedImpDeltaStr:undefined,\"OpportunityType\" in locals_for_with?locals_for_with.OpportunityType:typeof OpportunityType!==\"undefined\"?OpportunityType: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 (AdgroupName, CampaignName, EstimatedClickDeltaStr, EstimatedCostDeltaStr, EstimatedImpDeltaStr, OpportunityType, i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"display-inline-block col-xs-12 padding-zero margin-zero simple-view-keyword-edit-mode simple-view-edit-mode\\\"\\u003E\\u003Cdiv class=\\\"col-xs-12 padding-zero\\\"\\u003E\\u003Cdiv class=\\\"campaign-bid-editField pull-left col-xs-3 padding-zero\\\"\\u003E\\u003Cdiv class=\\\"campaignName display-inline-block\\\"\\u003E\\u003Cspan class=\\\"type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Campaign')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ':') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"padding-left-five\\\"\\u003E\" + (pug.escape(null == (pug_interp = CampaignName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"adgroup_bid_selection padding-top-twenty\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"detail-grid col-xs-3 padding-zero padding-left-twenty margin-right-forty\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"kpi-estimation col-xs-5 padding-zero\\\"\\u003E\\u003Ch5 class=\\\"type-bold margin-zero\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Estimates')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"clear padding-top-five\\\" data-bind=\\\"visible: !isDirty()\\\"\\u003E\\u003Cdiv class=\\\"kpi-estimation\\\"\\u003E\\u003Cspan class=\\\"type-bold impression\\\"\\u003E\" + (pug.escape(null == (pug_interp = EstimatedImpDeltaStr) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' ' + i18n.get('InlineOpportunity_More_Impressions')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"kpi-estimation\\\"\\u003E\\u003Cspan class=\\\"type-bold click\\\"\\u003E\" + (pug.escape(null == (pug_interp = EstimatedClickDeltaStr) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' ' + i18n.get('InlineOpportunity_More_Clicks')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"kpi-estimation\\\"\\u003E\\u003Cspan class=\\\"type-bold cost\\\"\\u003E\" + (pug.escape(null == (pug_interp = EstimatedCostDeltaStr) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' ' + i18n.get('InlineOpportunity_More_Spend')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"noEstimatedKpi padding-top-twenty\\\" data-bind=\\\"visible: isDirty()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EstimatesNotAvailableForEditOpts')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"clear opportunity-description-text\\\" data-bind=\\\"visible: newAdgroup()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('KwNewAdgroupSettingExplanation', {campaignName: CampaignName, adGroupName: AdgroupName})) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"action-panel pull-right clear\\\"\\u003E\\u003Cdiv class=\\\"pull-right\\\"\\u003E\\u003Cinput\" + (\" class=\\\"btn btn-hero\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.get('Apply'), true, true)+\" data-bind=\\\"enable: inputValid()\\\"\"+pug.attr(\"name\", 'Apply' + OpportunityType, true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"btn btn-default\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.get('Cancel'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\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,\"EstimatedClickDeltaStr\" in locals_for_with?locals_for_with.EstimatedClickDeltaStr:typeof EstimatedClickDeltaStr!==\"undefined\"?EstimatedClickDeltaStr:undefined,\"EstimatedCostDeltaStr\" in locals_for_with?locals_for_with.EstimatedCostDeltaStr:typeof EstimatedCostDeltaStr!==\"undefined\"?EstimatedCostDeltaStr:undefined,\"EstimatedImpDeltaStr\" in locals_for_with?locals_for_with.EstimatedImpDeltaStr:typeof EstimatedImpDeltaStr!==\"undefined\"?EstimatedImpDeltaStr:undefined,\"OpportunityType\" in locals_for_with?locals_for_with.OpportunityType:typeof OpportunityType!==\"undefined\"?OpportunityType: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) {pug_html = pug_html + \"\\u003Cdiv class=\\\"keyword-selection-flex-table display-inline-block\\\"\\u003E\\u003Cdiv class=\\\"flex-table-header\\\"\\u003E\\u003Cdiv class=\\\"cursor-pointer\\\" data-bind=\\\"click: $root.selectedAllClicked\\\"\\u003E\\u003Cinput class=\\\"margin-zero-important cursor-pointer\\\" type=\\\"checkbox\\\" data-bind=\\\"checked: $root.selectAll, attr:{'aria-label':i18n.get('ColumnName_KeywordsWithCount',{keywordCount:selectedKeywordsCount()})}\\\"\\u003E\\u003Cspan data-bind=\\\"html:i18n.get('ColumnName_KeywordsWithCount',{keywordCount:selectedKeywordsCount()})\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"source\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ColumnName_Source')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"bid\\\" data-bind=\\\"visible: $root.canEditBid()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ColumnName_KeywordsBid')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"bid\\\" data-bind=\\\"visible: !$root.canEditBid()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ColumnName_AdgroupBid')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"flex-table-body\\\" data-bind=\\\"foreach: keywords()\\\"\\u003E\\u003Cdiv class=\\\"flex-table-row\\\"\\u003E\\u003Cdiv class=\\\"cursor-pointer\\\" data-bind=\\\"click: $root.keywordClicked.bind($data, id)\\\"\\u003E\\u003Cinput class=\\\"margin-zero-important cursor-pointer\\\" type=\\\"checkbox\\\" data-bind=\\\"checked: ($root.selectAll() || selected()), attr: {"aria-label": keywordName}\\\"\\u003E\\u003Cspan data-bind=\\\"text:keywordName\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"source\\\" data-bind=\\\"text:source, attr: {'title': source}\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"bid\\\"\\u003E\\u003Cinput class=\\\"bid-input\\\" type=\\\"text\\\" data-bind=\\\"visible: $root.canEditBid(), value: customBid, css:{error: !customBid.isValid()}, valueUpdate:"keyup"\\\"\\u003E\\u003Cspan data-bind=\\\"visible: !$root.canEditBid(), text: $root.adgroupBid\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"error bid-input-error\\\" data-bind=\\\"text:customBidError()\\\"\\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 + \"\\u003Ctable class=\\\"table table-hover keyword-selection-table\\\"\\u003E\\u003Cthead class=\\\"display-inline-block col-xs-12 padding-zero\\\"\\u003E\\u003Ctr class=\\\"col-xs-12 padding-zero cursor-pointer display-inline-block\\\" data-bind=\\\"click: $root.selectedAllClicked\\\"\\u003E\\u003Cth class=\\\"background-color-white\\\"\\u003E\\u003Cinput class=\\\"margin-zero-important cursor-pointer\\\" type=\\\"checkbox\\\" data-bind=\\\"checked: $root.selectAll, attr:{'aria-label':i18n.get('ColumnName_KeywordsWithCount',{keywordCount:selectedKeywordsCount()})}\\\"\\u003E\\u003C\\u002Fth\\u003E\\u003Cth class=\\\"background-color-white\\\" data-bind=\\\"html:i18n.get('ColumnName_KeywordsWithCount',{keywordCount:selectedKeywordsCount()})\\\"\\u003E\\u003C\\u002Fth\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody class=\\\"display-block overflow-y-scroll\\\" data-bind=\\\"foreach: keywords()\\\"\\u003E\\u003Ctr class=\\\"cursor-pointer col-xs-12 padding-zero display-inline-block\\\" data-bind=\\\"click: $root.keywordClicked.bind($data, id)\\\"\\u003E\\u003Ctd\\u003E\\u003Cinput class=\\\"margin-zero-important cursor-pointer\\\" type=\\\"checkbox\\\" data-bind=\\\"checked: ($root.selectAll() || selected()), attr: {"aria-label": keywordName}\\\"\\u003E\\u003C\\u002Ftd\\u003E\\u003Ctd data-bind=\\\"text:keywordName\\\"\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\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 (Creator, DateTime, Time) {pug_html = pug_html + \"\\u003Cp\\u003E\" + (pug.escape(null == (pug_interp = Creator) ? \"\" : pug_interp)) + \"\\u003Cbr\\u003E\" + (pug.escape(null == (pug_interp = DateTime) ? \"\" : pug_interp)) + \"\\u003Cbr\\u003E\" + (pug.escape(null == (pug_interp = Time) ? \"\" : pug_interp)) + \"\\u003C\\u002Fp\\u003E\";}.call(this,\"Creator\" in locals_for_with?locals_for_with.Creator:typeof Creator!==\"undefined\"?Creator:undefined,\"DateTime\" in locals_for_with?locals_for_with.DateTime:typeof DateTime!==\"undefined\"?DateTime:undefined,\"Time\" in locals_for_with?locals_for_with.Time:typeof Time!==\"undefined\"?Time: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 (Freq, IsChildAccountTask, IsChildBatch, TimeZone, i18n, isAuto) {if (isAuto) {\npug_html = pug_html + (pug.escape(null == (pug_interp = i18n.getString('AutomatedRules_FrequencyGrain_Auto')) ? \"\" : pug_interp)) + \"\\u003Cbr\\u003E\";\n}\nelse\nif (Freq) {\npug_html = pug_html + \"\\u003Cp\" + (pug.attr(\"class\", pug.classes([(IsChildBatch ? \"child-batch\" : \"\") + (IsChildAccountTask ? \" child-account-task\" : \"\")], [true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = Freq) ? \"\" : pug_interp)) + \"\\u003Cbr\\u003E\" + (pug.escape(null == (pug_interp = TimeZone) ? \"\" : pug_interp)) + \"\\u003C\\u002Fp\\u003E\";\n}}.call(this,\"Freq\" in locals_for_with?locals_for_with.Freq:typeof Freq!==\"undefined\"?Freq:undefined,\"IsChildAccountTask\" in locals_for_with?locals_for_with.IsChildAccountTask:typeof IsChildAccountTask!==\"undefined\"?IsChildAccountTask:undefined,\"IsChildBatch\" in locals_for_with?locals_for_with.IsChildBatch:typeof IsChildBatch!==\"undefined\"?IsChildBatch:undefined,\"TimeZone\" in locals_for_with?locals_for_with.TimeZone:typeof TimeZone!==\"undefined\"?TimeZone:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isAuto\" in locals_for_with?locals_for_with.isAuto:typeof isAuto!==\"undefined\"?isAuto: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 (errorMsg, linkMsg, showSignInLink, signInLinkClass) {pug_html = pug_html + (\"\\u003Cdiv class=\\\"panel panel-white\\\"\\u003E\\u003Cdiv class=\\\"panel-header\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body\\\"\\u003E\\u003C\\u002Fdiv\\u003E\" + (pug.escape(null == (pug_interp = errorMsg) ? \"\" : pug_interp)));\nif (showSignInLink) {\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"class\", pug.classes([[signInLinkClass]], [true]), false, true)+\" tabindex=\\\"0\\\"\") + \"\\u003E \" + (pug.escape(null == (pug_interp = linkMsg) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-footer\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"errorMsg\" in locals_for_with?locals_for_with.errorMsg:typeof errorMsg!==\"undefined\"?errorMsg:undefined,\"linkMsg\" in locals_for_with?locals_for_with.linkMsg:typeof linkMsg!==\"undefined\"?linkMsg:undefined,\"showSignInLink\" in locals_for_with?locals_for_with.showSignInLink:typeof showSignInLink!==\"undefined\"?showSignInLink:undefined,\"signInLinkClass\" in locals_for_with?locals_for_with.signInLinkClass:typeof signInLinkClass!==\"undefined\"?signInLinkClass: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 (IsChildAccountTask, IsChildBatch, ariaLabel, fileNameExists, name) {pug_html = pug_html + \"\\u003Cp\" + (pug.attr(\"class\", pug.classes([\"truncated\",(IsChildBatch ? \"child-batch\" : \"\") + (IsChildAccountTask ? \" child-account-task\" : \"\")], [false,true]), false, true)) + \"\\u003E\";\nif (fileNameExists) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"download-file\\\"\"+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"aria-label\", ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003Cbr\\u003E\\u003C\\u002Fp\\u003E\";}.call(this,\"IsChildAccountTask\" in locals_for_with?locals_for_with.IsChildAccountTask:typeof IsChildAccountTask!==\"undefined\"?IsChildAccountTask:undefined,\"IsChildBatch\" in locals_for_with?locals_for_with.IsChildBatch:typeof IsChildBatch!==\"undefined\"?IsChildBatch:undefined,\"ariaLabel\" in locals_for_with?locals_for_with.ariaLabel:typeof ariaLabel!==\"undefined\"?ariaLabel:undefined,\"fileNameExists\" in locals_for_with?locals_for_with.fileNameExists:typeof fileNameExists!==\"undefined\"?fileNameExists:undefined,\"name\" in locals_for_with?locals_for_with.name:typeof name!==\"undefined\"?name: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 (failedEntitiesText, failedOrCancelled, fileImportValidationCompleted, hasFailedEntities, importErrorText, inProgress, inProgressText, notStarted, notStartedText, showTooltipIcon, succeededEntitiesText, summaryDetailsLabel, validationCompletedText) {pug_html = pug_html + \"\\u003Cdiv class=\\\"information-popup-container\\\"\\u003E\\u003Cdiv class=\\\"status-row\\\"\\u003E\\u003Cdiv class=\\\"mark-container\\\"\\u003E\\u003Cdiv class=\\\"status-icon\\\"\\u003E\";\nif (inProgress || notStarted) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusProcessing_icon spritedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (fileImportValidationCompleted) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusPending_icon spirtedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (failedOrCancelled) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"status_error spritedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"status_success spritedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"decorated-element\\\"\\u003E\";\nif (failedOrCancelled) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"status-column\\\"\\u003E\" + (null == (pug_interp = importErrorText) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (fileImportValidationCompleted) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"status-column\\\"\\u003E\" + (pug.escape(null == (pug_interp = validationCompletedText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (notStarted) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"status-column\\\"\\u003E\" + (pug.escape(null == (pug_interp = notStartedText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (inProgress) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"status-column\\\"\\u003E\" + (pug.escape(null == (pug_interp = inProgressText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"status-column\\\"\\u003E\" + (pug.escape(null == (pug_interp = succeededEntitiesText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\nif (showTooltipIcon) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"glyph-container\\\"\\u003E\\u003Cdiv class=\\\"status-image\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"status_icon gridDetailsImage spritedimagealign import-summary icon-info clickable\\\"\"+\" data-toggle=\\\"tooltip\\\" tabindex=\\\"0\\\" data-trigger=\\\"manual\\\" data-placement=\\\"left\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", summaryDetailsLabel, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"status-row\\\"\\u003E\";\nif (hasFailedEntities) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"mark-container\\\"\\u003E\\u003Cdiv class=\\\"status-icon\\\"\\u003E\\u003Cdiv class=\\\"status_error spritedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"decorated-element\\\"\\u003E\\u003Cdiv class=\\\"status-column\\\"\\u003E\" + (pug.escape(null == (pug_interp = failedEntitiesText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"failedEntitiesText\" in locals_for_with?locals_for_with.failedEntitiesText:typeof failedEntitiesText!==\"undefined\"?failedEntitiesText:undefined,\"failedOrCancelled\" in locals_for_with?locals_for_with.failedOrCancelled:typeof failedOrCancelled!==\"undefined\"?failedOrCancelled:undefined,\"fileImportValidationCompleted\" in locals_for_with?locals_for_with.fileImportValidationCompleted:typeof fileImportValidationCompleted!==\"undefined\"?fileImportValidationCompleted:undefined,\"hasFailedEntities\" in locals_for_with?locals_for_with.hasFailedEntities:typeof hasFailedEntities!==\"undefined\"?hasFailedEntities:undefined,\"importErrorText\" in locals_for_with?locals_for_with.importErrorText:typeof importErrorText!==\"undefined\"?importErrorText:undefined,\"inProgress\" in locals_for_with?locals_for_with.inProgress:typeof inProgress!==\"undefined\"?inProgress:undefined,\"inProgressText\" in locals_for_with?locals_for_with.inProgressText:typeof inProgressText!==\"undefined\"?inProgressText:undefined,\"notStarted\" in locals_for_with?locals_for_with.notStarted:typeof notStarted!==\"undefined\"?notStarted:undefined,\"notStartedText\" in locals_for_with?locals_for_with.notStartedText:typeof notStartedText!==\"undefined\"?notStartedText:undefined,\"showTooltipIcon\" in locals_for_with?locals_for_with.showTooltipIcon:typeof showTooltipIcon!==\"undefined\"?showTooltipIcon:undefined,\"succeededEntitiesText\" in locals_for_with?locals_for_with.succeededEntitiesText:typeof succeededEntitiesText!==\"undefined\"?succeededEntitiesText:undefined,\"summaryDetailsLabel\" in locals_for_with?locals_for_with.summaryDetailsLabel:typeof summaryDetailsLabel!==\"undefined\"?summaryDetailsLabel:undefined,\"validationCompletedText\" in locals_for_with?locals_for_with.validationCompletedText:typeof validationCompletedText!==\"undefined\"?validationCompletedText: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=\\\"shared-budgets-status-header\\\"\\u003E\\u003Cdiv class=\\\"status-header-margin shared-budgets-grid-status-icon\\\"\\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 (customParams, i18n, i18nGlobal, isForVNext, model) {pug_mixins[\"koErrors\"] = pug_interp = function(id, cssClass){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cul\" + (pug.attr(\"class\", pug.classes([cssClass ? cssClass : 'alert alert-danger'], [true]), false, true)+\" data-bind=\\\"visible: errors().length > 0, foreach: errors, attr: {"aria-hidden": errors().length == 0}\\\"\"+pug.attr(\"id\", id ? id : 'KoErrors', true, true)) + \"\\u003E\\u003Cli\\u003E\\u003Cdiv data-bind=\\\"html: $data\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";\n};\npug_mixins[\"koValidationError\"] = pug_interp = function(item, id){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cul\" + (pug.attr(\"data-bind\", 'visible: !' + item + '.isValid(), foreach: ' + item + '.errors, attr: {\"aria-hidden\": ' + item + '.isValid()}', true, true)+pug.attr(\"id\", id ? id : item + 'ValidationError', true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003Cli role=\\\"presentation\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: $data\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"display-inline shared-budget-inline-editor\\\"\\u003E\\u003Cdiv class=\\\"title-container\\\"\\u003E\\u003Cdiv class=\\\"title\\\"\\u003E\" + (pug.escape(null == (pug_interp = (i18n.getString('Set shared budget: {{budgetName}}') || '').replace('{{budgetName}}', model.budgetName)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"iconba iconba-Cancel close closeimage clickable\\\"\"+\" onclick=\\\"$(document).click()\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.get('Button_Close'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"budget-landscape-container\\\"\\u003E\\u003Cdiv class=\\\"landscape-table\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"shared-budget-edit-budget-message\\\"\\u003E\\u003Cdiv\\u003E\";\nif (isForVNext) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"scope-navigator\\\"\"+pug.attr(\"href\", model.budgetLink, true, true)+\" data-skipscopenavigation=\\\"false\\\" data-pathname=\\\"sharedbudgets\\\"\"+pug.attr(\"data-customparams\", customParams, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SharedBudget_InlineEditor_BudgetSettings')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", model.budgetLink, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SharedBudget_InlineEditor_BudgetSettings')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \" | \";\nif (isForVNext) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"scope-navigator\\\"\"+pug.attr(\"href\", model.campaignSettingsLink, true, true)+\" data-skipscopenavigation=\\\"false\\\" data-pathname=\\\"settings\\\"\"+pug.attr(\"data-campaignid\", model.campaignId, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SharedBudget_InlineEditor_CampaignSettings')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", model.campaignSettingsLink, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SharedBudget_InlineEditor_CampaignSettings')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cbr\\u003E\\u003Cdiv class=\\\"shared-budget-popup-edit-budget\\\"\\u003E\\u003Cdiv class=\\\"input-group\\\"\\u003E\\u003Cdiv class=\\\"input-budget-container\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control shared-budget-edit-budget-input\\\"\"+\" type=\\\"text\\\" data-bind=\\\"textInput:Amount.string, hasFocus: Amount.editing, css: {error: !Amount.isValid()}\\\" maxlength=\\\"15\\\"\"+pug.attr(\"value\", model.budgetAmount, true, true)) + \"\\u003E\\u003Cdiv class=\\\"shared-budget-edit-budget-message shared-budget-edit-budget-message-per-day\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SharedBudget_DetailPage_BudgetAmountEdit_PerDay')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cinput\" + (\" class=\\\"grid-edit-menu shared-budget-edit-budget-save btn btn-primary\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18nGlobal.get('Grid_SaveButtonText'), true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"grid-edit-menu shared-budget-edit-budget-cancel btn btn-default\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18nGlobal.get('Grid_CancelButtonText'), true, true)) + \"\\u003E\";\npug_mixins[\"koValidationError\"]('Amount');\npug_mixins[\"koErrors\"]();\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"customParams\" in locals_for_with?locals_for_with.customParams:typeof customParams!==\"undefined\"?customParams:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"i18nGlobal\" in locals_for_with?locals_for_with.i18nGlobal:typeof i18nGlobal!==\"undefined\"?i18nGlobal:undefined,\"isForVNext\" in locals_for_with?locals_for_with.isForVNext:typeof isForVNext!==\"undefined\"?isForVNext:undefined,\"model\" in locals_for_with?locals_for_with.model:typeof model!==\"undefined\"?model: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 (model) {if (model.Status == 'UserPaused' || model.Status== 'BudgetUserPaused' || model.Status == 'BudgetPaused') {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statusPaused_icon shared-budgets-grid-status-icon\\\"\"+pug.attr(\"aria-label\", model.i18n.get('SharedBudget_SwitchEditor_Status_Paused'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (model.Status == 'Deleted') {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statusDeleted_icon shared-budgets-grid-status-icon\\\"\"+pug.attr(\"aria-label\", model.i18n.get('SharedBudget_SwitchEditor_Status_Deleted'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (model.Status == 'Suspended') {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statusSuspended_icon shared-budgets-grid-status-icon\\\"\"+pug.attr(\"aria-label\", model.i18n.get('SharedBudget_SwitchEditor_Status_Suspended'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statusEnabled_icon shared-budgets-grid-status-icon\\\"\"+pug.attr(\"aria-label\", model.i18n.get('SharedBudget_SwitchEditor_Status_Enabled'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"model\" in locals_for_with?locals_for_with.model:typeof model!==\"undefined\"?model: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=\\\"radio shared-budget-switch-editor-radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"sharedBudgetSwitch\\\" value=\\\"individual\\\" data-bind=\\\"checked: sharedBudgetSwitch, attr: { disabled: readOnly }\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SharedBudget_SwitchEditor_Label_IndividualBudget')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"individual-budget-editor-wrapper\\\" data-bind=\\\"visible: sharedBudgetSwitch() == 'individual'\\\"\\u003E\\u003Cdiv class=\\\"individual-budget-editor margin-bt-five\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"radio shared-budget-switch-editor-radio\\\" data-bind=\\\"visible: !noApplyBudgetFromSharedLibrary\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"sharedBudgetSwitch\\\" value=\\\"shared\\\" data-bind=\\\"checked: sharedBudgetSwitch, attr: { disabled: !allowSharedBudgetLibrarySelection || readOnly }\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SharedBudget_SwitchEditor_Label_SharedBudget')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"shared-budget-switch-editor-grid-wrapper margin-tp-five\\\" data-bind=\\\"visible: sharedBudgetSwitch() == 'shared'\\\"\\u003E\\u003Cdiv class=\\\"shared-budget-switch-editor-selected-budget\\\" data-bind=\\\"visible: !isEditMode()\\\"\\u003E\\u003Ca data-bind=\\\"attr: {href: budgetDetailLink}\\\"\\u003E\\u003Cspan class=\\\"margin-rt-five shared-budget-switch-editor-selected-budget-name\\\" data-bind=\\\"text: Name\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E(\\u003Cspan class=\\\"shared-budget-switch-editor-selected-budget-amount\\\" data-bind=\\\"text: Amount.string\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SharedBudget_DetailPage_PerDay')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"margin-rt-five\\\"\\u003E)\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"shared-budget-switch-editor-selected-budget-edit\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SharedBudget_DetailPage_BudgetEdit_Link')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"shared-budget-switch-editor-grid-innner-wrapper\\\" data-bind=\\\"visible: isEditMode() && hasSharedBudgets()\\\"\\u003E\\u003Cdiv class=\\\"shared-budget-switch-editor-budget-warning\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SharedBudget_SwitchEditor_Warning_SharedBudgetAmountLargeEnough')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"shared-budget-switch-editor-grid\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"grid-pager pager\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"shared-budget-warnings\\\" data-bind=\\\"visible: !isCPSSelected()\\\"\\u003E\\u003Cdiv class=\\\"shared-budget-no-budget-warning\\\" data-bind=\\\"visible: !hasSharedBudgets()\\\"\\u003E\\u003Cspan class=\\\"margin-rt-five\\\" data-bind=\\\"html: noSharedBudgetText\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"error shared-budget-no-selected-budget-warning\\\" data-bind=\\\"visible: !hasSelectedBudget() && hasSharedBudgets()\\\" role=\\\"alert\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SharedBudget_SwitchEditor_Warning_NoSelectedSharedBudget')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"error shared-budget-no-selected-budget-warning\\\" data-bind=\\\"visible: !hasSelectedBudget() && !hasSharedBudgets()\\\" role=\\\"alert\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SharedBudget_SwitchEditor_Warning_NoBudgetsToSelect')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"error shared-budget-is-not-allowed-warning\\\" data-bind=\\\"visible: isCPSSelected(), text: sharedBudgetIsNotAllowedWarning()\\\" role=\\\"alert\\\"\\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 (accountCurrencyCode, defaultMSStoreMinSuggestionBid, i18n) {pug_mixins[\"koValidationError\"] = pug_interp = function(item, id){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cul\" + (pug.attr(\"data-bind\", 'visible: !' + item + '.isValid(), foreach: ' + item + '.errors, attr: {\"aria-hidden\": ' + item + '.isValid()}', true, true)+pug.attr(\"id\", id ? id : item + 'ValidationError', true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003Cli role=\\\"presentation\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: $data\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";\n};\nvar defaultBid = i18n.get('ShoppingCampaign_Default_Bid')\npug_html = pug_html + \"\\u003Cdiv class=\\\"bid-setting__container\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Ch5 class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = defaultBid) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cdiv class=\\\"input-group\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control campaign-bid\\\"\"+\" type=\\\"text\\\" data-bind=\\\"value: SearchBid.string, hasFocus: SearchBid.editing, optionsValue: "Value"\\\"\"+pug.attr(\"aria-label\", defaultBid, true, true)) + \"\\u003E\\u003Cspan class=\\\"input-group-addon\\\"\\u003E\" + (pug.escape(null == (pug_interp = accountCurrencyCode) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"noWrap\\\"\\u003E\";\npug_mixins[\"koValidationError\"]('SearchBid');\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-info bid-warning\\\" data-bind=\\\"visible: showLowerThanMinSuggestionBidWarning()\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\" + (null == (pug_interp = i18n.get('MinSuggestionBidWarning', { minSuggestionBid: defaultMSStoreMinSuggestionBid })) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"accountCurrencyCode\" in locals_for_with?locals_for_with.accountCurrencyCode:typeof accountCurrencyCode!==\"undefined\"?accountCurrencyCode:undefined,\"defaultMSStoreMinSuggestionBid\" in locals_for_with?locals_for_with.defaultMSStoreMinSuggestionBid:typeof defaultMSStoreMinSuggestionBid!==\"undefined\"?defaultMSStoreMinSuggestionBid: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 (editMode, enableGoalSelector, i18n, isMSStoreAdsGAWorkflow, isNewUI, isNotAudienceCampaign, isShowDisclaimerBannerEnabled, isSponsoredCampaign, isWindowsStoreAdsEnabled, isWindowsStoreAdsManualCPAEnabled) {pug_mixins[\"koErrors\"] = pug_interp = function(id, cssClass){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cul\" + (pug.attr(\"class\", pug.classes([cssClass ? cssClass : 'alert alert-danger'], [true]), false, true)+\" data-bind=\\\"visible: errors().length > 0, foreach: errors, attr: {"aria-hidden": errors().length == 0}\\\"\"+pug.attr(\"id\", id ? id : 'KoErrors', true, true)) + \"\\u003E\\u003Cli\\u003E\\u003Cdiv data-bind=\\\"html: $data\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";\n};\npug_html = pug_html + \"\\u003C!-- ko if: dataLoaded--\\u003E\";\nif (!editMode) {\npug_html = pug_html + \"\\u003Ch1\\u003E\";\nif (isMSStoreAdsGAWorkflow) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('MicrosoftStoreShoppingCampaignCreate_HeaderTitle_GA')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse\nif (isSponsoredCampaign) {\nif (isWindowsStoreAdsEnabled && !isWindowsStoreAdsManualCPAEnabled) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('MicrosoftStoreShoppingCampaignCreate_HeaderTitle_old')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse\nif (isWindowsStoreAdsEnabled && isWindowsStoreAdsManualCPAEnabled) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('MicrosoftStoreShoppingCampaignCreate_HeaderTitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingSponsoredCampaignCreate_HeaderTitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_Header_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fh1\\u003E\";\n}\npug_html = pug_html + \"\\u003C!-- \\u002Fko--\\u003E\\u003C!--[TODO][lizho] add intro line--\\u003E\";\npug_mixins[\"koErrors\"]();\npug_html = pug_html + \"\\u003C!-- ko if: dataLoaded--\\u003E\\u003C!-- ko if: !hasStore()--\\u003E\";\nif (isSponsoredCampaign && !(isWindowsStoreAdsEnabled && isWindowsStoreAdsManualCPAEnabled)) {\npug_html = pug_html + \"\\u003Cspan class=\\\"no-stores-message\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_NoLinkedAccount_Message')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"brands_url_link\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_NoLinkedAccount_URL_Text')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\";\n}\nelse\nif (isSponsoredCampaign && isWindowsStoreAdsEnabled && isWindowsStoreAdsManualCPAEnabled) {\npug_html = pug_html + \"\\u003Cspan class=\\\"no-stores-message\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_NoLinkedAccountWindowsStore_Message')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"brands_url_link\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_NoLinkedAccountWindowsStore_URL_Text')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan class=\\\"no-stores-message\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_NoBMCAccount_Message')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"bmc_url_link\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_BmcURL_Text')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C!-- \\u002Fko--\\u003E\\u003C!-- ko if: hasStore()--\\u003E\";\nif (!isNewUI) {\npug_html = pug_html + \"\\u003Ch3 class=\\\"type-bold\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_CampaignSetting_SectionTitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\\u003Chr\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"campaign-settings\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (isNotAudienceCampaign) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"advanced-settings-section\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Ch3 class=\\\"type-bold\\\"\\u003E\";\nif (isMSStoreAdsGAWorkflow) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_ShoppingSetting_SectionTitle_MSStoreAdsGA')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_ShoppingSetting_SectionTitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fh3\\u003E\\u003Chr\\u003E\\u003Cdiv class=\\\"shopping-settings\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (isNotAudienceCampaign) {\npug_html = pug_html + \"\\u003Ch3 class=\\\"campaign-targets__label type-bold\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SectionTitle_CampaignTargets')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\\u003Chr\\u003E\\u003Cdiv class=\\\"campaign-targets clearfix\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\nif (!isNewUI) {\npug_html = pug_html + \"\\u003Ch3 class=\\\"type-bold\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SectionTitle_AdvancedSettings')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\\u003Chr\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"advanced-settings-section\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C!-- \\u002Fko--\\u003E\";\nif (enableGoalSelector) {\npug_html = pug_html + \"\\u003Ch3 class=\\\"type-bold\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Campaign_Goals_Section_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Campaign_Goals_Help_Text')) ? \"\" : pug_interp)) + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + \"\\u003Ca class=\\\"HelpTopic\\\" href=\\\"javascript:void(0);\\\" query=\\\"help:app54814\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('LearnMoreLinkText')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cdiv class=\\\"conversion-goal-selection\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C!--ko if: showGoalRemoveAlert()--\\u003E\\u003Cdiv class=\\\"alert alert-warning form-group page-alert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Campaign_Conversion_Goal_Remove_Warning')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E \\u003Ca target=\\\"_blank\\\" href=\\\"https:\\u002F\\u002Fhelp.ads.microsoft.com\\u002F#apex\\u002Fads\\u002Fen\\u002F60138\\u002F2\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('LearnMoreLinkText')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003Cbr\\u003E\";\nif (isShowDisclaimerBannerEnabled && isNotAudienceCampaign) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"alert alert-info\\\" style=\\\"margin-bottom: 10px\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\" + (null == (pug_interp = i18n.get('Targeting_Disclaimer')) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"save-bar form-group\\\"\\u003E\\u003C!-- ko if: hasStore()--\\u003E\\u003Cinput\" + (\" class=\\\"btn-save btn btn-primary\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.get('ShoppingCampaign_Button_Save'), true, true)+\" data-bind=\\\"attr: { disabled: !isNextButtonEnabled() }\\\"\") + \"\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cinput\" + (\" class=\\\"btn-cancel btn btn-default\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.get('ShoppingCampaign_Button_Cancel'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv railviewid=\\\"newcampaign_createproductadcampaign\\\" style=\\\"display: none\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"editMode\" in locals_for_with?locals_for_with.editMode:typeof editMode!==\"undefined\"?editMode:undefined,\"enableGoalSelector\" in locals_for_with?locals_for_with.enableGoalSelector:typeof enableGoalSelector!==\"undefined\"?enableGoalSelector:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isMSStoreAdsGAWorkflow\" in locals_for_with?locals_for_with.isMSStoreAdsGAWorkflow:typeof isMSStoreAdsGAWorkflow!==\"undefined\"?isMSStoreAdsGAWorkflow:undefined,\"isNewUI\" in locals_for_with?locals_for_with.isNewUI:typeof isNewUI!==\"undefined\"?isNewUI:undefined,\"isNotAudienceCampaign\" in locals_for_with?locals_for_with.isNotAudienceCampaign:typeof isNotAudienceCampaign!==\"undefined\"?isNotAudienceCampaign:undefined,\"isShowDisclaimerBannerEnabled\" in locals_for_with?locals_for_with.isShowDisclaimerBannerEnabled:typeof isShowDisclaimerBannerEnabled!==\"undefined\"?isShowDisclaimerBannerEnabled:undefined,\"isSponsoredCampaign\" in locals_for_with?locals_for_with.isSponsoredCampaign:typeof isSponsoredCampaign!==\"undefined\"?isSponsoredCampaign:undefined,\"isWindowsStoreAdsEnabled\" in locals_for_with?locals_for_with.isWindowsStoreAdsEnabled:typeof isWindowsStoreAdsEnabled!==\"undefined\"?isWindowsStoreAdsEnabled:undefined,\"isWindowsStoreAdsManualCPAEnabled\" in locals_for_with?locals_for_with.isWindowsStoreAdsManualCPAEnabled:typeof isWindowsStoreAdsManualCPAEnabled!==\"undefined\"?isWindowsStoreAdsManualCPAEnabled: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=\\\"query-group-container\\\" data-bind=\\\"visible: isEditing()\\\"\\u003E\\u003Cdiv class=\\\"query-list\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Ca class=\\\"addNewQuery\\\" data-bind=\\\"visible: showAddNewButton\\\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\"\\u003E\\u003Cspan class=\\\"glyphicon glyphicon-plus\\\"\\u003E\\u003C\\u002Fspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_Add_AnotherQuery')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-12 text-right\\\"\\u003E\\u003Cinput\" + (\" class=\\\"btn-apply btn btn-primary\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.get('ShoppingCampaign_Apply'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"query-summary-item\\\" data-bind=\\\"visible: !isEditing()\\\"\\u003E\\u003Ca class=\\\"pull-right edit-query\\\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_Edit')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\\u003C!--ko foreach: queries--\\u003E\\u003Cdiv class=\\\"query-item\\\" data-bind=\\\"text: Operand + " = " + Attribute + ( $parent.isLastQuery($index) ? "" : " & " )\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\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, uuid) {pug_mixins[\"koValidationError\"] = pug_interp = function(item, id){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cul\" + (pug.attr(\"data-bind\", 'visible: !' + item + '.isValid(), foreach: ' + item + '.errors, attr: {\"aria-hidden\": ' + item + '.isValid()}', true, true)+pug.attr(\"id\", id ? id : item + 'ValidationError', true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003Cli role=\\\"presentation\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: $data\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";\n};\nvar id = uuid.v4();\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group query-editor\\\"\\u003E\\u003Cdiv class=\\\"col-sm-5\\\"\\u003E\\u003Cselect\" + (\" class=\\\"query-operand form-control\\\"\"+\" data-bind=\\\"value: Operand, options: productConditionOptions, optionsText: "Text", optionsValue: "Value", disable: !selected()\\\"\"+pug.attr(\"aria-label\", i18n.get('ShoppingCampaign_ProductConditionOptions'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-1 text-center\\\"\\u003E\\u003Clabel class=\\\"control-label\\\" data-bind=\\\"attr: { "tabindex": selected() ? 0 : -1 }\\\"\\u003E\" + (pug.escape(null == (pug_interp = '=') ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-5\\\"\\u003E\\u003C!--ko if: !attributeOptions().length \\u003E 0--\\u003E\\u003Cinput\" + (\" class=\\\"query-attribute form-control\\\"\"+\" type=\\\"text\\\" data-bind=\\\"disable: !selected(), value: Attribute, valueUpdate: "input"\\\"\"+pug.attr(\"aria-describedby\", id, true, true)+\" aria-required=\\\"true\\\"\"+pug.attr(\"aria-label\", i18n.get('ShoppingCampaign_ProductAttribute'), true, true)) + \"\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!--ko if: attributeOptions().length \\u003E 0--\\u003E\\u003Cselect\" + (\" class=\\\"query-attribute form-control\\\"\"+\" data-bind=\\\"value: Attribute, options: attributeOptions, optionsText: "Text", optionsValue: "Value", disable: !selected()\\\"\"+pug.attr(\"aria-label\", i18n.get('ShoppingCampaign_ProductAttributeOptions'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003C!-- \\u002Fko--\\u003E\";\npug_mixins[\"koValidationError\"]('Attribute', id);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-1 remove-editor ad-group-list__col-sm-1--remove\\\" data-bind=\\\"visible: showRemoveLink()\\\"\\u003E\\u003Cspan\" + (\" class=\\\"glyphicon glyphicon-remove closeimage ad-group-list__glyphicon clickable\\\"\"+pug.attr(\"aria-label\", i18n.get('ShoppingCampaign_Button_Remove'), true, true)+\" tabindex=\\\"0\\\" role=\\\"button\\\"\") + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"uuid\" in locals_for_with?locals_for_with.uuid:typeof uuid!==\"undefined\"?uuid: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 (campaignSubType, campaignType, editMode, i18n, isAudienceCampaign, isBrandWideCashbackEnabled, isCPGForBSCEnabled, isDomesticSimplifiedChineseEnabled, isEnabledDynamicFeedCampaign, isExistingFeedFilter, isFeedFilterEnabled, isFeedLabelEnabled, isFeedProductFilterEnabled, isLocalInventoryAdsEnabled, isMSStoreAdsGAWorkflow, isPAAIMFeedLabelEnabled, isSalesCountryRemovedForSpa, isSearchCampaign, isShoppableAdsEnabled, isSponsoredCampaign, showCampaignSubType, showCollectionCheckbox, showCountryOfSale, showDefaultBid, showExcludedStores, showFeedProductFilter, showFilterByProduct, showLocalInventoryCheckbox, showProductFilter, showProductGroup) {pug_mixins[\"popupHelp\"] = pug_interp = function(popupId, ariaLabelContext, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nvar templateString = (i18n && i18n.get && i18n.get('Click to learn more about {{item}}')) || (i18n && i18n.getString && i18n.getString('Click to learn more about {{item}}')) || null\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"helpbutton\\\"\"+\" type=\\\"helppopup\\\" role=\\\"button\\\"\"+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\", templateString ? templateString.replace('{{item}}', ariaLabelContext) : ariaLabelContext, true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\";\n};\npug_mixins[\"koErrors\"] = pug_interp = function(id, cssClass){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cul\" + (pug.attr(\"class\", pug.classes([cssClass ? cssClass : 'alert alert-danger'], [true]), false, true)+\" data-bind=\\\"visible: errors().length > 0, foreach: errors, attr: {"aria-hidden": errors().length == 0}\\\"\"+pug.attr(\"id\", id ? id : 'KoErrors', true, true)) + \"\\u003E\\u003Cli\\u003E\\u003Cdiv data-bind=\\\"html: $data\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-horizontal shopping-settings__container\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\npug_mixins[\"koErrors\"]();\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C!-- ko if: showPriority()--\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Ch5 class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Clabel id=\\\"ShoppingCampaignPriority\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_Priority')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"]('pop_BA_BSC_CampPri', i18n.get('ShoppingCampaign_Priority'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"col-sm-4\\\" role=\\\"radiogroup\\\" aria-labelledby=\\\"ShoppingCampaignPriority\\\"\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"campaignPriority\\\" value=\\\"Low\\\" data-bind=\\\"checked: Priority, disable: isSPBCampaign()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_Priority_Low')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"campaignPriority\\\" value=\\\"Medium\\\" data-bind=\\\"checked: Priority, disable: isSPBCampaign()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_Priority_Medium')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"campaignPriority\\\" value=\\\"High\\\" data-bind=\\\"checked: Priority, disable: isSPBCampaign()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_Priority_High')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- ko if: !hideStoreSection--\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Ch5 class=\\\"storeContainer col-sm-2 control-label\\\"\\u003E\\u003Clabel class=\\\"store-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = isEnabledDynamicFeedCampaign ? i18n.get('DynamicFeedCampaign_Catelog') : i18n.get('ShoppingCampaign_BingShopping_Accounts')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\nif (isSponsoredCampaign) {\npug_mixins[\"popupHelp\"]('pop_BA_MSCBrands_Store', i18n.get('ShoppingCampaign_BingShopping_Accounts'), i18n);\n}\nelse\nif (isSearchCampaign) {\npug_mixins[\"popupHelp\"]('pop_BA_MMA_Store', i18n.get('ShoppingCampaign_BingShopping_Accounts'), i18n);\n}\nelse {\npug_mixins[\"popupHelp\"]('pop_BA_BSC_CampaignName', i18n.get('ShoppingCampaign_BingShopping_Accounts'), i18n);\n}\npug_html = pug_html + \"\\u003C\\u002Fh5\\u003E\";\nif (!editMode || isSearchCampaign) {\nif (isEnabledDynamicFeedCampaign) {\npug_html = pug_html + \"\\u003Cp class=\\\"col-sm-12\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DynamicFeedCampaign_Catalog_Selection_Info_Enabled')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fp\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"col-sm-4 category_container\\\"\\u003E\\u003Cselect\" + (\" class=\\\"store form-control\\\"\"+\" data-bind=\\\"value: ProviderId, disable: disableStoreSelection, options: storeOptions, optionsText: "Text", optionsValue: "Value"\\\"\"+pug.attr(\"aria-label\", i18n.get('ShoppingCampaign_BingShopping_Accounts'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\nif (isEnabledDynamicFeedCampaign) {\npug_html = pug_html + \"\\u003Cp class=\\\"col-sm-12\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DynamicFeedCampaign_Catalog_Selection_Info_Disabled')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fp\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"col-sm-4 form-control-static\\\"\\u003E\\u003Cspan class=\\\"store-text\\\" data-bind=\\\"text: storeText\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"draft-store-alert-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\";\nif (showExcludedStores) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Ch5 class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Clabel class=\\\"excluded-store-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_Sponsored_ExcludedStores_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"]('pop_BA_BSC_ExcludedStores', i18n.get('ShoppingCampaign_Sponsored_ExcludedStores_Label'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cdiv class=\\\"excluded-store-controls\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (isBrandWideCashbackEnabled) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group brand-wide-cashback-container\\\"\\u003E\\u003Ch5 class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_Sponsored_BrandWideCashback_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"]('pop_BA_BSC_BrandWideCashback', i18n.get('ShoppingCampaign_Sponsored_BrandWideCashback_Label'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"col-sm-4 brand-wide-cashback-toggle-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C!-- Product radio--\\u003E\";\nif (showProductFilter) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\" data-bind=\\\"visible: hasValidStore() && !isBrandWideCashbackSelected()\\\"\\u003E\\u003Ch5 class=\\\"productsScope col-sm-2 control-label\\\"\\u003E\\u003Clabel class=\\\"products-scope-label\\\" id=\\\"ShoppingCampaignProducts\\\"\\u003E\";\nif (isMSStoreAdsGAWorkflow) {\npug_html = pug_html + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_Products_MSStoreAdsGA')) ? \"\" : pug_interp));\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_Products')) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"col-sm-4\\\" role=\\\"radiogroup\\\" aria-labelledby=\\\"ShoppingCampaignProducts\\\"\\u003E\\u003Cdiv class=\\\"radio allProducts\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"productScope\\\" data-bind=\\\"value: scope.All, checked: productScope.editing\\\"\\u003E\";\nif (isMSStoreAdsGAWorkflow) {\npug_html = pug_html + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_AllProducts_MSStoreAdsGA')) ? \"\" : pug_interp));\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_AllProducts')) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"radio filteredProducts\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"productScope\\\" data-bind=\\\"value: scope.Filtered, checked: productScope.editing\\\"\\u003E\";\nif (isMSStoreAdsGAWorkflow) {\npug_html = pug_html + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_SpecificProducts_MSStoreAdsGA')) ? \"\" : pug_interp));\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_SpecificProducts')) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Flabel\\u003E\";\nif (isSearchCampaign) {\npug_mixins[\"popupHelp\"]('pop_BA_MMA_FilteredProducts', i18n.get('ShoppingCampaign_SpecificProducts'), i18n);\n}\nelse {\nif (isMSStoreAdsGAWorkflow) {\npug_mixins[\"popupHelp\"]('pop_BA_StoreAds_FilteredApps', i18n.get('ShoppingCampaign_SpecificProducts'), i18n);\n}\nelse {\npug_mixins[\"popupHelp\"]('pop_BA_ProdAdAddFilter', i18n.get('ShoppingCampaign_SpecificProducts'), i18n);\n}\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (isFeedProductFilterEnabled && showFeedProductFilter) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group feed-product-filter-container\\\" data-bind=\\\"visible: !isAllFeedProducts() && hasValidStore()\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Cdiv class=\\\"checkbox\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput class=\\\"enable-feed-filter\\\" type=\\\"checkbox\\\" data-bind=\\\"checked: isFeedFilterChecked, attr: { 'aria-checked': isFeedFilterChecked() ? 'true' : 'false' }\\\"\\u003E\";\nif (isFeedLabelEnabled && campaignType === 'Audience' && campaignSubType === 'AudienceFeedBased' && isPAAIMFeedLabelEnabled) {\npug_html = pug_html + (pug.escape(null == (pug_interp = i18n.get('FeedFilter_FilterByFeedLabel')) ? \"\" : pug_interp));\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = i18n.get('FeedFilter_FilterByFeed')) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"feed-filter__container filter-offset\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"error feed-filter-validation-error filter-offset\\\" data-bind=\\\"visible: isFeedFilterChecked() && showFeedFilterValidationError\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('FeedFilter_ValidationErrorMessage')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (showFilterByProduct) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"checkbox\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput class=\\\"enable-product-filter\\\" type=\\\"checkbox\\\" data-bind=\\\"checked: isProductFilterChecked, attr: { 'aria-checked': isProductFilterChecked() ? 'true' : 'false' }\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('FeedFilter_FilterByProduct')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (isFeedFilterEnabled && showFeedProductFilter) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"feed-filter-picker__container\\\" data-bind=\\\"visible: hasValidStore()\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"error feed-filter-picker-validation-error\\\" data-bind=\\\"visible: showFeedFilterPickerValidationError\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('FeedFilterPicker_ValidationErrorMessage')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"error feed-filter-picker-validation-error\\\" data-bind=\\\"visible: showFeedFilterPickerFeedLabelOnlyValidationError\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('FeedFilterPicker_FeedLabelOnly_ValidationErrorMessage')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C!-- Product group--\\u003E\";\nif (showProductGroup) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6 col-sm-offset-2\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"product-group__container\\\"\"+pug.attr(\"data-bind\", `style: { \"margin-left\": (${isFeedProductFilterEnabled} && isProductFilterChecked() ? \"25px\" : \"0\") }, visible: productScope() === \"Filtered\" && hasValidStore()`, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- ko if: showWarning--\\u003E\\u003Cdiv class=\\\"setting-inline-warning alert-warning\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ProductOfferCountWarningInSetting')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C!-- Feed filter to toggle all\\u002Ffilter--\\u003E\";\nif (isFeedProductFilterEnabled && showFeedProductFilter) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group feed-product-filter\\\" data-bind=\\\"visible: isAllFeedProducts() && hasValidStore()\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6 all-feed-products\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = i18n.get('FeedFilter_AllProducts_Message', { filterButton: '' + i18n.get('FeedFilter_FilterProducts_Button') + '' })) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\" data-bind=\\\"visible: !isAllFeedProducts() && hasValidStore()\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Ca class=\\\"link allFeedProducts\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('FeedFilter_AllProducts_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C!-- Country\\u002Fregion of sale--\\u003E\";\nif (!isAudienceCampaign && !isMSStoreAdsGAWorkflow && !isExistingFeedFilter && !isSalesCountryRemovedForSpa && showCountryOfSale) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\" data-bind=\\\"visible: hasValidStore() && !isBrandWideCashbackSelected()\\\"\\u003E\\u003Ch5 class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_Sales_Country')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\nif (isSearchCampaign) {\npug_mixins[\"popupHelp\"]('pop_BA_MMA_RegionOfSale', i18n.get('ShoppingCampaign_Sales_Country'), i18n);\n}\npug_html = pug_html + \"\\u003C\\u002Fh5\\u003E\";\nif (!editMode || isSearchCampaign) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cselect\" + (\" class=\\\"countryChange form-control\\\"\"+\" data-bind=\\\"value: SalesCountry, options: salesCountries, optionsText: "Text", optionsValue: "Value"\\\"\"+pug.attr(\"aria-label\", i18n.get('ShoppingCampaign_Sales_Country'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"col-sm-4 form-control-static\\\"\\u003E\\u003Cspan class=\\\"country-text\\\" data-bind=\\\"text: countryText\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C!-- bid--\\u003E\";\nif (!isAudienceCampaign && campaignSubType !== 'ShoppingSmartAds' && !isSearchCampaign && showDefaultBid) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"bid-settings\\\" data-bind=\\\"visible: showBid\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (isCPGForBSCEnabled && !isAudienceCampaign && !isSponsoredCampaign && campaignSubType !== 'ShoppingSmartAds' && !isSearchCampaign && showCampaignSubType) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Ch5 class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_CampaignSubType_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"col-sm-4 form-control-static\\\"\\u003E\\u003Cspan class=\\\"campaign_subtype\\\" data-bind=\\\"text: campaignSubTypeText\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (isShoppableAdsEnabled && !isAudienceCampaign && !isSponsoredCampaign && campaignSubType !== 'ShoppingSmartAds' && !isSearchCampaign && showCollectionCheckbox) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Ch5 class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_Collections_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cdiv class=\\\"checkbox\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput class=\\\"enable-collections\\\" type=\\\"checkbox\\\" data-bind=\\\"checked: ShoppableAdsEnabled, attr: { 'aria-checked': ShoppableAdsEnabled() ? 'true' : 'false' }, disable: isEditMode() || isCPSSelected()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_Enable_Collections')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-warning\\\" data-bind=\\\"visible: isCPSSelected\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-warning-inline\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_ShoppableAds_CPS_MutualExclusion')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (isLocalInventoryAdsEnabled && !isAudienceCampaign && !isSponsoredCampaign && !isSearchCampaign && !isDomesticSimplifiedChineseEnabled && showLocalInventoryCheckbox) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Ch5 class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_LocalInventoryAds_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"]('pop_BA_BSC_Local', i18n.get('ShoppingCampaign_LocalInventoryAds_Label'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cdiv class=\\\"checkbox\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput class=\\\"enable-lia\\\" type=\\\"checkbox\\\" data-bind=\\\"checked: LocalInventoryAdsEnabled, attr: { 'aria-checked': LocalInventoryAdsEnabled() ? 'true' : 'false' }\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_Enable_LocalInventoryAds')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"campaignSubType\" in locals_for_with?locals_for_with.campaignSubType:typeof campaignSubType!==\"undefined\"?campaignSubType:undefined,\"campaignType\" in locals_for_with?locals_for_with.campaignType:typeof campaignType!==\"undefined\"?campaignType:undefined,\"editMode\" in locals_for_with?locals_for_with.editMode:typeof editMode!==\"undefined\"?editMode:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isAudienceCampaign\" in locals_for_with?locals_for_with.isAudienceCampaign:typeof isAudienceCampaign!==\"undefined\"?isAudienceCampaign:undefined,\"isBrandWideCashbackEnabled\" in locals_for_with?locals_for_with.isBrandWideCashbackEnabled:typeof isBrandWideCashbackEnabled!==\"undefined\"?isBrandWideCashbackEnabled:undefined,\"isCPGForBSCEnabled\" in locals_for_with?locals_for_with.isCPGForBSCEnabled:typeof isCPGForBSCEnabled!==\"undefined\"?isCPGForBSCEnabled:undefined,\"isDomesticSimplifiedChineseEnabled\" in locals_for_with?locals_for_with.isDomesticSimplifiedChineseEnabled:typeof isDomesticSimplifiedChineseEnabled!==\"undefined\"?isDomesticSimplifiedChineseEnabled:undefined,\"isEnabledDynamicFeedCampaign\" in locals_for_with?locals_for_with.isEnabledDynamicFeedCampaign:typeof isEnabledDynamicFeedCampaign!==\"undefined\"?isEnabledDynamicFeedCampaign:undefined,\"isExistingFeedFilter\" in locals_for_with?locals_for_with.isExistingFeedFilter:typeof isExistingFeedFilter!==\"undefined\"?isExistingFeedFilter:undefined,\"isFeedFilterEnabled\" in locals_for_with?locals_for_with.isFeedFilterEnabled:typeof isFeedFilterEnabled!==\"undefined\"?isFeedFilterEnabled:undefined,\"isFeedLabelEnabled\" in locals_for_with?locals_for_with.isFeedLabelEnabled:typeof isFeedLabelEnabled!==\"undefined\"?isFeedLabelEnabled:undefined,\"isFeedProductFilterEnabled\" in locals_for_with?locals_for_with.isFeedProductFilterEnabled:typeof isFeedProductFilterEnabled!==\"undefined\"?isFeedProductFilterEnabled:undefined,\"isLocalInventoryAdsEnabled\" in locals_for_with?locals_for_with.isLocalInventoryAdsEnabled:typeof isLocalInventoryAdsEnabled!==\"undefined\"?isLocalInventoryAdsEnabled:undefined,\"isMSStoreAdsGAWorkflow\" in locals_for_with?locals_for_with.isMSStoreAdsGAWorkflow:typeof isMSStoreAdsGAWorkflow!==\"undefined\"?isMSStoreAdsGAWorkflow:undefined,\"isPAAIMFeedLabelEnabled\" in locals_for_with?locals_for_with.isPAAIMFeedLabelEnabled:typeof isPAAIMFeedLabelEnabled!==\"undefined\"?isPAAIMFeedLabelEnabled:undefined,\"isSalesCountryRemovedForSpa\" in locals_for_with?locals_for_with.isSalesCountryRemovedForSpa:typeof isSalesCountryRemovedForSpa!==\"undefined\"?isSalesCountryRemovedForSpa:undefined,\"isSearchCampaign\" in locals_for_with?locals_for_with.isSearchCampaign:typeof isSearchCampaign!==\"undefined\"?isSearchCampaign:undefined,\"isShoppableAdsEnabled\" in locals_for_with?locals_for_with.isShoppableAdsEnabled:typeof isShoppableAdsEnabled!==\"undefined\"?isShoppableAdsEnabled:undefined,\"isSponsoredCampaign\" in locals_for_with?locals_for_with.isSponsoredCampaign:typeof isSponsoredCampaign!==\"undefined\"?isSponsoredCampaign:undefined,\"showCampaignSubType\" in locals_for_with?locals_for_with.showCampaignSubType:typeof showCampaignSubType!==\"undefined\"?showCampaignSubType:undefined,\"showCollectionCheckbox\" in locals_for_with?locals_for_with.showCollectionCheckbox:typeof showCollectionCheckbox!==\"undefined\"?showCollectionCheckbox:undefined,\"showCountryOfSale\" in locals_for_with?locals_for_with.showCountryOfSale:typeof showCountryOfSale!==\"undefined\"?showCountryOfSale:undefined,\"showDefaultBid\" in locals_for_with?locals_for_with.showDefaultBid:typeof showDefaultBid!==\"undefined\"?showDefaultBid:undefined,\"showExcludedStores\" in locals_for_with?locals_for_with.showExcludedStores:typeof showExcludedStores!==\"undefined\"?showExcludedStores:undefined,\"showFeedProductFilter\" in locals_for_with?locals_for_with.showFeedProductFilter:typeof showFeedProductFilter!==\"undefined\"?showFeedProductFilter:undefined,\"showFilterByProduct\" in locals_for_with?locals_for_with.showFilterByProduct:typeof showFilterByProduct!==\"undefined\"?showFilterByProduct:undefined,\"showLocalInventoryCheckbox\" in locals_for_with?locals_for_with.showLocalInventoryCheckbox:typeof showLocalInventoryCheckbox!==\"undefined\"?showLocalInventoryCheckbox:undefined,\"showProductFilter\" in locals_for_with?locals_for_with.showProductFilter:typeof showProductFilter!==\"undefined\"?showProductFilter:undefined,\"showProductGroup\" in locals_for_with?locals_for_with.showProductGroup:typeof showProductGroup!==\"undefined\"?showProductGroup: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 (addonText) {pug_html = pug_html + \"\\u003Cdiv class=\\\"input-group\\\"\\u003E\\u003Cdiv class=\\\"form-input\\\" data-control=\\\"text\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"input-group-addon\\\"\\u003E\" + (pug.escape(null == (pug_interp = addonText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"addonText\" in locals_for_with?locals_for_with.addonText:typeof addonText!==\"undefined\"?addonText: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=\\\"form-horizontal\\\"\\u003E\\u003Cdiv data-bind=\\\"visible: showBidValue\\\"\\u003E\\u003Cdiv class=\\\"cpg-search-bid\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-bind=\\\"visible: !showBidValue()\\\"\\u003E\\u003Cdiv class=\\\"cpg-bid-boost\\\"\\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 (fields) {pug_mixins[\"single-group\"] = pug_interp = function(property){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"form-group\\\"\"+pug.attr(\"data-property\", property, true, true)+pug.attr(\"data-bind\", \"visible: \" + property + \".visible, css: { 'has-error': !\" + property + \".isValid() }\", true, true)) + \"\\u003E\\u003Cdiv\" + (\" class=\\\"form-label-container col-sm-2\\\"\"+pug.attr(\"data-property\", property, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"form-input-container\\\"\"+pug.attr(\"data-property\", property, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"form-validation-container\\\"\"+pug.attr(\"data-property\", property, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\n// iterate fields\n;(function(){\n var $$obj = fields;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var field = $$obj[pug_index0];\npug_mixins[\"single-group\"](field.property);\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var field = $$obj[pug_index0];\npug_mixins[\"single-group\"](field.property);\n }\n }\n}).call(this);\n}.call(this,\"fields\" in locals_for_with?locals_for_with.fields:typeof fields!==\"undefined\"?fields: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 (subMessage, titleMessage) {pug_html = pug_html + \"\\u003Cp class=\\\"lightbox-title-message\\\"\\u003E\" + (null == (pug_interp = titleMessage) ? \"\" : pug_interp) + \"\\u003C\\u002Fp\\u003E\\u003Cp class=\\\"lightbox-sub-message\\\"\\u003E\" + (null == (pug_interp = subMessage) ? \"\" : pug_interp) + \"\\u003C\\u002Fp\\u003E\";}.call(this,\"subMessage\" in locals_for_with?locals_for_with.subMessage:typeof subMessage!==\"undefined\"?subMessage:undefined,\"titleMessage\" in locals_for_with?locals_for_with.titleMessage:typeof titleMessage!==\"undefined\"?titleMessage:undefined));;return pug_html;};\nmodule.exports = template;"],"names":["alertIds","showUnique","message","window","App","views","alertCenter","showError","_processErrors","errors","_","trim","strErrors","item","Message","push","_appendErrorSummary","clearErrorSummary","id","dismiss","showJsonErrors","legacyRouter","_bingads_webui_component_legacy_legacy_router_index","i18n","globalLegacyI18n","get","ExperimentBudgetAlert","getExperimentBudgetAlert","jsdata","appState","getDateUtils","DownloadViewV1","_InlineDownloadBaseDo","_classCallCheck","_callSuper","arguments","_inherits","_createClass","key","value","_ref","isForVNext","p$daterange","customDownloadService","odataColumnNames","localizedHeaders","filterUrlParam","entity","customPayloadParams","_ref$processReportRul","processReportRule","ReportRule","gridId","segmentType","totalRecordCount","downloadFormats","segmentationTypes","validateSegmentType","isFeedbackEnabled","_ref$data","data","SegmentationTypes","repository","download","_ref2","Format","Promise","InlineDownloadCampaignODataRepository","_superPropGet","InlineDownloadBaseDownload","DownloadViewV2","_InlineDownloadForm","_ref3","serializedFilter","_ref3$data","PageContext","Permissions","IsCustomerHierarchyEnabled","IsCustomerHierachyRequest","_ref4","allUsersType","InlineDownloadForm","DownloadView","IsInlineDownloadReportV2Enabled","inlineDownLoadFormi18n","inlineOdataRepositoryi18n","s$ReportRule","globalLegacySchema","s$ReportEmailRule","s$i18n","getInlineDownloadBaseDownloadV1Loader","pageContext","actionMap","summaryGridsActionMap","userVoice","getInlineDownloadForm","loadUsers","InlineDownloadReactForm","getInlineDownloadFormReact","getInlineDownloadCampaignODataRepository","state","edm","odata","cm","getODataErrors","scheduler","downloadFunction","DownloadReportFunctions","updateRulesFunctions","UpdateRulesFunctions","downloadReportEmailRule","downloadReportEmailRuleExecution","updateReportEmailRule","updateReportEmailRuleState","deleteReportEmailRules","ImportFailureDetailsTableView","_Backbone$View","options","length","undefined","this","Error","$el","html","template","reason","failureReasonsColumnsMapping","columnName","field","getString","entityDescriptionMapping","val","result","reasonColumnsMapping","failureDetailsData","safeJson","columns","oneTypeFailureDetails","values","pluck","map","columnField","hasError","HasExceededLimit","rowData","formattedValues","tmp","humanize","format","formatData","failureReason","$","Backbone","ClientCenterUser","findAll","url","adapter","cid","uid","aid","then","users","error","response","TabLabelTextKeys","CampaignContextKeywordOpportunity","FirstPageBidOpportunity","MainLineBidOpportunity","BroadMatchKeywordOpportunity","BroadMatchAdoptionOpportunity","MainLine1BidOpportunity","LowerBidOpportunity","BroadMatchModifierKeywordOpportunity","LocationBidAdjustmentOpportunity","SiteLinkOpportunity","CalloutOpportunity","RemarketingBidAdjustmentOpportunity","AdSchedulingBidAdjustmentOpportunity","KeywordBidAdjustmentOpportunity","pageSize","MatchType","Exact","Phrase","Broad","Content","OpportunityType","Keyword","FPBid","MLBid","BroadMatch","BMA","ML1Bid","LowerBid","BMM","LBA","AdExtensions","RBA","SBA","KBA","Urls","FetchInlineOpportunity","ViewOpportunity","ViewOpportunityAtCurrentPage","Apply","LoadBidLandscapes","FetchAdgroupInfo","isMultiPage","TabIsNewFeature","isKeywordsOptSourceEnhancementEnabled","IsKeywordsOptSourceEnhancementEnabled","inlineOpportunities","adgroupsForCampaignCache","loadingTasks","bidlandscapes","inlineOpportunityPrefix","bidlandscapePrefix","applyPrefix","timeout","convertOneInlineOpportunity","campaignId","campaignName","opt","sonNode","rawData","Id","OpportunityId","BatchId","CampaignId","CampaignName","SuggestedNewValue","formatDecimalToFixed","AdgroupId","AdgroupName","EstimatedKPI","HasBidLandscape","Sources","estimatedKPI","EstimatedImpDelta","metricFormatter","ImprDelta","EstimatedCostDelta","CostDelta","EstimatedClickDelta","ClickDelta","Clicks","Cost","Impression","EstimatedImp","EstimatedCost","EstimatedClicks","CTR","EstimatedCTRDelta","CTRDelta","EstimatedCTR","CPC","CPCDelta","EstimatedCPCDelta","EstimatedConversionKPI","ConversionsDelta","Conversions","Conversion","EstimatedConversionDelta","EstimatedConversion","CPADelta","CPA","EstimatedCPADelta","EstimatedCPA","config","KeywordName","getKeywordNameWithMatchType","KeywordId","Multiplier","PeriodType","FromHour","ToHour","ConversionRate","KeywordMatchType","GeoLevelId","LocationNames","ReferenceKeywordName","getFullKeywordWithMatchType","ReferenceKeyword","ReferenceKeywordMatchType","SearchQueries","SearchQueryStrings","AdGroupList","AudienceName","AudienceId","AdGroupCount","firstChild","ChildOpportunities","String","NewAdgroupId","OpportunityCount","Theme","CurrentValue","fetchAdgroupsForCampaign","campId","adgroupData","campaignLevelData","FetchAdgroups","notifyResult","adgroups","fetchAdgroupsForIds","adroupIds","idsToFetch","adgroupIds","prefix","parameter","fetchForCampaignLevel","index","adgroupsResult","legacy$","getAccountContextQueryString","resolve","reject","addLoadingJob","ajaxPost","ignoreBeforeAjax","onSuccess","resp","Errors","adgroup","ID","onAjaxComplete","xhr","textStatus","returnData","loadingJobComplete","prefetchAdgroupAndLandscape","optType","inlineOptData","idsToLoadLandscape","idsToLoadAdgroup","startPosition","endPosition","opportunityTypeResults","t","i","ids","idOpportunityMap","afterInlineGridLoad","opportunityType","currentPage","opportunityTypes","firstTimeLoad","batchPreloadBidLandscapeData","idsToLoad","params","Nodata","task","keywordLandscapeResult","onError","onJsonError","stopLoadingTask","array","job","readystate","abort","executeApply","optsToApply","campaignid","opts","blocker","withUiBlock","optToApply","adExtensionIds","childOpts","applyUrl","resultToNotify","SuccessCount","FailedCount","FailedReasons","loadingId","p$applyResult","errorCode","errorMsg","adGroupName","join","optToUpdate","optTypeData","afterApply","returnValue","matchType","undecoratedKeyword","fetchInlineOpportunity","success","inlineResult","moreTypeCount","Opportunities","optResult","opttype","typeResult","childOpt","sonChild","MoreTypeCount","convertInlineOpportunity","viewOpportunity","async","clear","ApplyAfterEdit","directlyApply","fetchBidLandscapeData","keywordId","validateBidInput","adgroupId","newInput","isValidDecimal","suggestedNewValue","parseDecimal","adgroupInfo","BidRange","bidRange","CeilingValue","bidAmount","FloorValue","backbone","extend","loadingPanelTemplate","initialize","render","viewParam","popupUtil","close","parentView","parentItem","defaultAdgroupId","suggestedAdgroupId","ko","suggestedBid","suggestedBidFloat","decimalNumber","fromLocalToFloat","adgroupIdInfoMap","adgroupBid","useNewAdgroup","useAdgroupBid","isNewAdGroupSelected","setIsNewAdGroupSelected","isExistingAdGroupSelected","setIsExistingAdGroupSelected","isKeywordBidSelected","setIsKeywordBidSelected","selectedAdgroupId","subscribe","newId","DefaultBid","setAdgroupIdInfoMapping","adgroupIdInfoMapping","name","Name","bind","newAdgroupNameInput","validate","validator","custom","newAdgroupBidInput","isValid","customBidInput","trigger","adgroupIdForApply","pure","adgroupNameForApply","newBidForApply","userMarkedInvalid","inputValidWithoutUserMarked","isAdGroupNameValid","inputValid","adoptRecommendSuggestion","newValue","isDirty","notify","ko_model","ViewModel","events","remove","TemplateSource","Template","el","floorValue","ceilingValue","keywords","selectAll","canEditBid","isModifyBid","convertKeywords","keywordList","selectedIds","ismodifyBid","keyword","customBidObservable","inputVal","replace","fromFloatToString","keywordName","customBid","source","selected","customBidError","errorList","errormsg","selectedKeywordsCount","keywordClicked","selectedId","selectedAllClicked","oriValue","Keywords","keywordBidValid","keywordSelectionValid","adgroupnameBidSelectionValid","keywordSelectionIsDirty","adgroupnameBidSelectionIsDirty","newAdgroup","closePreviousSimpleView","viewIsDirty","previousEditView","toContinue","open_time","Date","close_time","r","confirm","ex","nativeConfirm","find","click","view","keywordSelectionView","adgroupNameBidSelectionView","container","is","util","cachedData","EstimatedImpDeltaStr","EstimatedClickDeltaStr","EstimatedCostDeltaStr","delegateEvents","prepareSubView","KeywordSelectionView","on","event","syncKeywordSelections","AdgroupNameBidSelectionView","syncAdgroupNameBidValues","adModel","setAdgroupBid","bid","simpleViewApply","customBidList","customBidObj","useKeywordBid","closeSimpleView","stopImmediatePropagation","logOpportunity","type","action","instrumentation","logMessage","constants","LOGCATEGORY","TRACE","LOGLEVEL","INFO","logOpportunities","opportunityIds","keywordOpportunityEditView","parentContainer","removeClass","uiBlocker","block","simpleViewContainer","KeywordOpportunityEditView","dataManager","finally","addClass","prepend","unblock","logHelper","asyncLoadData","simpleViewCancelEdit","itemToApply","selectedKeywordIds","processApplyResponse","hasBidLandscapeData","userInput","defaultNewValue","bidlandscapeValueToApply","inputErrorMessageFromUser","invalidFromUser","valueToApply","read","write","owner","inputValidFromBidLandscape","inputErrorMessage","useCustomeBid","equalSuggestedBid","BidLandscape","_BidLandscape","rowId","inSimpleView","clickGraph","slideChartOptions","hasBidLandscape","bidLandscapeView","setLandscapeData","landscapeData","inSimpleMode","dataToShow","hasData","clickCurrentRow","prepareSimpleView","inValidByUser","inputValueInvalid","useCustomBid","useSuggestedBid","bidOpportunityEditView","prepareActionDesc","Config","multiplier","formatPercentToFixed","withSign","formatDecimalToInteger","keywordCount","theme","currentValue","lowerPercentage","toFixed","BMMKeyword","prepareResultDesc","resultDesc","kwLength","kwTotalCount","suggestedKeywords","first","moreKeywords","bidList","parseFloat","minBid","Math","min","apply","maxBid","max","sources","concat","source1","source2","source3","prepareResultDescForKeyword","_ref2$rawData$Estimat","estimatedClickDelta","formatClicks","estimatedCTR","formatCTR","CTRLiftPercent","digits","prepareResultDescForML1","estimatedImpDelta","costDelta","estimatedCostDelta","prepareResultDescForLowerBid","i18nKey","_ref$EstimatedKPI","_ref$EstimatedKPI$Est","EstimatedConversionDeltaStr","formatConversions","EstimatedCPADeltaStr","formatCPA","formatSpend","ConversionDelta","prepareResultDescForRemarketing","prepareResultDescDetail","searchQueries","clicksLastWeek","costLastWeek","cpcBefore","cpcAfter","_ref3$EstimatedKPI","_ref3$EstimatedKPI$Es","EstimatedConversionStr","EstimatedCPAStr","EstimatedCostStr","totalConversion","totalCPA","totalCost","prepareResultDetailForRemarketing","prepareActionDescDetail","ret","AdGroupName","AdGroupNameList","count","_this","_ref4$type","_ref4$opportunities","opportunities","pageNumber","start","slice","actionDesc","actionDescDetail","resultDescDetail","Connector","list","pagination","page_size","PageSize","changeCount","nextPage","previousPage","changePage","e","arg","changePageNumber","page_number","item_count","page_count","off","View","_ref$type","_ref$opportunities","footnoteLink","viewModel","iteratee","templateOptions","showViewButton","showActionBreadcrumb","Pagination","paginationTemplate","paginationConnector","connect","show","disconnect","currentTarget","closest","attr","model","title","parents","context","attributes","Customer","Account","i18nSharedComponent","_BidAdjustmentOptView","update","append","footnoteTemplate","historicalConversions","historicalCost","details","serverData","HistoricalCost","HistoricalConversions","cost","conversion","conversionDelta","bidMultiplier","currentBidMultiplier","CurrentMultiplier","geoLevelId","locationNames","periodType","fromHour","toHour","currentBid","conversionRate","keywordMatchType","adgroupName","setRaiseOrLowerDetails","BidAdjustmentOptView","isApplyEnable","needIncreaseBudget","raiseBudget","raiseBudgetNumber","HintTextMapper","getCPCIncreaseReason","formatPercent","v","maximumFractionDigits","minimumFractionDigits","formatDecimal","formatInteger","getTileContent","fromValue","deltaValue","symbol","formatter","signText","showDescInTile","adExtensionContentTemplate","delta","desc","deltaLift","abs","getTileFooter","from","to","strongTemplate","_ref$showBackBtn","showBackBtn","hintText","staticTiles","getTitles","associationEditorMapper","SiteLinkAssociationEditor","CalloutAssociationEditor","associationEditor","entityType","hasSubTitle","showErrorsInline","showSaveBar","disableDelete","usePanel","selectedChanged","selectedItems","hide","_this2","opportunity","tileViews","popupIdMap","KPITile","footerTemplate","titleTemplate","adExtensionTitleTemplate","popupId","contentTemplate","_ref5","_ref6","_ref7","_ref8","_ref9","StaticTiles","raiseBudgetKey","notRaiseBudgetKey","raiseBudgetSuggestionKey","raiseBudgetInfo","notRaiseBudgetInfo","raiseBudgetSuggestion","budget","getBudgetInfoString","getAssociationEditorAndRender","popover","moreMenuTemplate","content","moreOptCount","allOpportunityResults","currentOptType","tabItems","applyResultMessage","applyWarningMessage","isResultSuccess","isResultWarning","hasNoticeMessage","types","tableLabelTextKey","text","isNewFeature","getOpportunitySummaryTabUrl","CurrentCustomer","CurrentUser","CurrentAccount","getApplyRBAStatus","period","interval","setInterval","optId","BulkEditSession","entitySet","currentAccount","BulkEditSessions","cacheResponse","bypassCache","status","Status","clearInterval","setTimeout","i18nGlobal","MainPanel","mainPanelTemplate","dismissSuccessAlerts","dismissWarningAlerts","selectTab","gotoRecommendationTab","optsResult","appConfig","tabContents","currentTabContent","detach","newTabContent","allOpportunityIds","optTabUrl","moreMenuKey","moreMenuContentTemplate","moreMenuTextContent","moreCount","opportunityPageLink","stopPropagation","updateData","tabContent","firstNonEmptyType","currentType","Boolean","updateOpportunityData","notifKeySuccess","notifKeyWarning","successCount","warningMessage","failedCount","m","updateOpportunityDataWrapper","_this3","TabContentBidAdjustment","AdExtensionOpportunity","processDismissReponse","TabContentList","KeywordOpportunity","BidOpportunity","opportunityId","audienceName","enddate","formatedEnd","query","startdate","formatedStart","$filter","encodeURIComponent","requestParam","decodeURIComponent","create","applyRBA","preventDefault","set","navigateToRoute","closingPanelTemplate","showNoMorePopover","target","not","popoverTemplate","popoverContentTemplate","parent","focus","noMoreContent","React","class","openInlineOpportunityForCampaign","perfMarker","willInit","loadingPanel","LoadingPanel","willFetchData","_ref$opportunityTypes","_ref$opportunityTypeR","_ref$moreTypeCount","willRender","mainPanel","dialog","Dialog","className","setContent","setState","document","body","appendChild","empty","ClosingPanel","campaingId","noMoreContainer","querySelector","calloutOptions","closeButton","NoMoreContent","onMouseLeave","ReactDOM","Callout","noMorePopover","done","getSupportedLocationIds","criterions","isKeywordPlanner","supportedCountries","keywordPlannerSupportedCountries","trafficEstimationSupportedCountries","included","SelectionStatus","LocationTargetTypes","countryLocationInfo","supportedCountry","locationId","countryLocationId","items","supportedCount","totalCount","targets","res","criterion","Criterion","LocationCriterion","RadiusCriterion","Type","countryCode","CountryCode","languageBundle","LocationId","LocationType","isDeprecatedLocation","locationCriterion","IsLocationDeprecationEnabled","LocationStatus","PendingDeprecation","Deprecated","showLocationStatusPopup","statusTexts","containerSelector","Popup","positioningMethod","positioningOptions","location","positionAttribute","classes","locationTargetStatusPopup","anchor","gridData","excluded","level","gridVisible","excludedGridVisible","shouldHideIncludedLocations","bidAdjustmentOptions","targetConstants","selectedBidAdjustmentOption","bidAdjustmentIncreaseValue","bidAdjustmentDecreaseValue","bidAdjustmentValue","computeBidError","bidValue","_validateBid","validateBid","isDecimal","isNotEmpty","isNonNegative","isEndingWithDigit","multipliedBidValue","minimumBid","Location","maximumBid","bidError","isReadOnly","selectionStatus","locationTargetTypes","locationTargetContext","scenario","viewmodel","dispatch","eventDispatcher","getValue","tmpl","percentSymbol","uuid","isNaN","Number","LocationTargetBidConfig","locationTitle","gridContainer","dataSource","tableClasses","bingadsGridColumn","property","bodyClasses","local","CriterionType","NameTypeCombo","deprecatedTexts","deprecatedTextMapping","__primary_key__","$locationsSection","isNewUI","locationTargetStatus","warning","hideBidAdjustment","cell","LocationBidCell","BidAdjustment","supportCashbackSettings","locals","CashbackPercent","cashbackPercentControlView","CashbackPercentControlView","viewContext","currentCampaign","currentAdGroup","decimal","isParentLevel","row","validated","onCashbackPercentChange","plugins","totalPageCountText","pageNumberLabelText","pageSizeText","LocationTargetBid","isMSANBoostEnabled","IsAmplifyEnabled","isHideBidAdjustmentForBoostEnabled","dynamic","HideBidAdjustmentForBoost","isXandrServing","IsPersonalizedOffersV3Enabled","defaultCashbackPercent","isPersonalizedOffersEnabled","IsPersonalizedOffersEnabled","onChangeMode","cellContent","handleBidAdjustmenChanged","updatedEntity","Intermediate","resourceName","activityLogger","signal","cashbackPercentErrorSelector","$cashbackPercentErrors","__","eq","cashbackPercent","gridView","itemOfElement","criterionType","onCriterionChange","locations","locationIntermediateHelper","sortedLocations","geoConverter","sortLocationsByType","noData","refreshGridSource","inheritInfo","toggleSupportCashbackColumnClass","originalAdGroupCashback","AdGroupCashback","Percent","originalCampaignCashback","CampaignCashback","initIncludedGrid","gridConfig","pagerViewContainer","handleCashbackPercentChange","grid","pgrid","vnext","use","paginationPlugin","uiBlockerPlugin","instance","excludedGrid","excludedGridView","patch","criterionLoader","load","getValues","Campaign","campaignToSave","CampaignCriterions","catch","locationTargets","isCashbackPercentValidated","_this4","filter","isBidAdjChanged","OriginalBidAdjustment","isCashbackPercentChanged","getRealCashbackPercentValue","OriginalCashbackPercent","_len","args","Array","_key","koSchema","properties","bidMode","editLinkVisible","targetOption","searchBoxVisible","targetOptions","specific","hideAudience","deletedLocations","bundleLocations","bundleLocationCriterions","isXandrCampaign","languageBundleString","showPhysicalIntentOutside","isLocationTargetingImprovementEnabled","shouldUpdateTargetOption","bundleLocationsUpdated","shouldUpdateTargetOptionWithNewBundle","updateLanguageBundleString","language","market","isInit","bundleCountries","isBundled","bundleCountryNames","publisherCountry","Country","country","countryName","locationIds","adGroupScenario","expand","lcid","CultureLcid","loadingText","locationTargetConverter","buildLocationCriterionFromSearchResult","mode","updateLanguageBundle","targetEverywhere","bundleFound","showEverywhereOption","notificationApi","showInfo","shouldBundleModeBeSelected","_ret","_loop","conflictError","areaLocations","checkConflict","ErrorNumber","Property","getBulkApiErrors","add","nonConflictingErrors","includedLocations","excludedLocations","includedLoc","EnclosingLocationIds","parentLocationId","excludedLoc","gridNoData","noDataMessage","useCampaignSettings","editScenario","showAdGroupOverrideInformation","showCampaignSettingsToggleView","isDomesticSimplifiedChineseEnabled","showTargetOptions","showTargetLableAndTitle","showUI","bidModeKeepTopMargin","everywhere","hasLocationRecommendations","BaseLocationRecommendationModel","deps","locationRecommendationDescription","trafficGain","locationTrafficGain","impressionGain","locationImpressionGain","locationRecommendationBanner","showLocationRecommendationBanner","locationRecommendations","advancedTargetingLinkVisible","showMapError","Microsoft","Maps","loadModule","wholeBoderVisible","newLocations","allLocations","rows","showResult","hideExclude","excludeAllowed","titleClickable","showPrompt","currentAction","currentItem","ariaTextSearchResult","entities","selectionStatusObsv","isSmartCampaign","SMART_CAMPAIGN_SCENARIO","nameToShow","hideInclude","iid","parseInt","radius","unit","campaignSubType","CampaignSubType","campaignSettings","CampaignSettings","onShowResultChange","searchbox","Searchbox","autoSearch","defaultText","searchButtonAriaLabel","searchIputDescriptionId","onSearch","searchedCriterions","searchedResults","x","updateSelectionStatus","visible","clickHandling","one","noCoordinates","preloadedLocationData","logActivity","locationOnly","destroyAll","selectedRow","getEntityById","locationEntity","isRadiusTargetingAllowedForLocationType","convertLocationToRadiusCriterion","Order","searchBoxValue","onLocationChanged","convertRadiusToLocationCriterion","_this5","criterionObject","isIncluded","convertLocationCriterionfromMTData","convertRadiusCriterionfromMTData","importCriterion","_this6","$search","$expand","IsBrandAwarenessCampaignScenario","headers","results","nonSmartCampaignMode","locationType","filteredResults","filterResultByCountryCode","useStructuredApiEndpoint","_this7","geoService","searchLocationAtBingMaps","r1","resourceSets","fakeLocationId","resources","locationData","isRadiusTargetingAllowedForBingMapsLocationTypes","buildRadiusCriterionFromBingMaps","rawResultLength","filteredResultLength","instrumentationService","resource","logTrace","address","formattedAddress","searchedLoc","relatedLocation","loc","sameCentrePointRadiusTarget","lat","Latitude","lon","Longitude","Radius","searchedLocLat","searchedLocLon","searchedRadius","relatedLocationFound","locationStatus","searchText","searchTask","_this8","cancel","isLatLongQuery","addressResolver","isLatLongCoordinates","searchMtApiOnly","getLocationsFromBingMapsApi","getLocationsFromMtApi","createAsyncToken","refresh","_this9","allowedCountryCodes","currentCountryCode","gridRemoveAllVisible","removeAllInGridTitleVisible","gridNoDataMessageVisible","gridNoDataMessage","popupEditorVisible","popupEditorLeftValue","topValue","popupEditorTopValue","leftValue","popupEditorLeftValuePixel","popupEditorTopValuePixel","selectedLocationId","hideRemoveAllLink","locationName","isRadius","radiusUnits","selectedUnit","radiusOptionEnabled","locationOptionEnabled","radiusError","targetType","radiusUnit","radiusOption","locationOption","campaignType","gridRemoveAll","onPopupEditorVisibleChange","locationPopupEditor","LocationPopupEditor","editTarget","FocusLockLocationPopupEditor","focusLockInstanceDecorator","onExit","lockRegionAriaLabel","focusFirstItemOnMount","managed","focusLockLocationPopupEditor","locationCriterions","mes","selectedEntity","selectedEntityLocationType","selectedEntityResourceName","updatedEntityLocationType","destroy","RadiusUnit","unitMaps","radiusTargetNameTypeComboGenerator","resetPageNumber","paginationView","renderGrid","hasLink","rawDistanceString","toLowerCase","criterionName","getNameForRadiusLocation","ariaLabel","distanceString","locationTargetGridLocationColumnTitleLink","linkText","tableAttributes","primaryKey","bodyRows","getLocationTitle","getRadiusCriterionTitle","getLocationCriterionTitle","locationTargetGridLocationColumnTemplate","showPinIcon","showWarningIcon","warningText","locationTargetGridRemoveColumnTemplate","areaName","headClasses","locationTitleClicked","removeLocation","removeLocations","mouseOverItem","mouseOutItem","enableRandomPage","locationsForRemove","indexOfElement","itemAt","isRecommendedLocation","elements","selectedKey","keyOfElement","JSON","stringify","outerHTML","itemWithKey","_chainData","countRows","totalCountRows","getItemCount","itemArray","href","logger","logError","getLocationName","setMode","setLocationName","setRadiusOptionEnable","setLocationOptionEnable","setRadius","setRadiusUnit","position","top","left","_BaseLocationRecommen","isTargetButtonEnabled","isRecommendGridVisible","description","locationRecommendationGrid","LocationRecommendationGrid","hasPagination","columnOverrider","selectAllByDefault","recommendation","recommendations","_ref$Campaign","typeId","isClick","channel","childOptions","mapView","MapView","searchView","SearchView","GridView","highLightLocation","resetLightedLocation","dismissedLocationRecommendations","targetedLocationRecommendations","locationRecommendGrid","LocationRecommendGrid","scope","onRecommendationsUpdated","updateRecommendedLocations","filterOutRecommendations","_ref3$locationRecomme","locationRecommendationsStatus","_ref3$locationRecomme2","_ref3$locationRecomme3","originLocationRecommendations","targetRecommendations","recommend","_onIncludeMapHandler","dismissRecommendations","restoreRecommendation","showImprovedOptions","peopleInLocation","peopleSearchingForLocation","peopleInOrSerachingForLocation","intentOption","physicalIntent","intentId","setIntent","intOpt","physicalIntentOptions","PeopleIn","PeopleInOrSearchingForOrViewingPages","PeopleSearchingForOrViewingPages","intentError","SUBSTRATE","popupIds","stuff","intentCriterion","IntentOption","intent","createChild","perfMarkerDone","bundleOrDefaultMarket","campaignLanguage","showPhysicalIntentView","editCriterions","showBidMode","fromSettingsGrid","campaign","languageSelector","showInitialUiBlocker","CurrentCampaign","CurrentAdGroup","IsDomesticSimplifiedChineseEnabled","eventDelegator","AppEventDelegator","singlePageWorkflow","initCampaignCriterion","locationManageView","LocationManageView","physicalIntentView","PhysicalIntentView","physicalIntentOutsideView","PhysicalIntentViewBidMode","setViewModel","locationTargetBidView","LocationTargetBidView","toggleView","ToggleView","toggleText","labelledbyId","setToggleState","onLocationTargetsChange","locationsInfo","listenTo","toggleState","bidModeValue","currentLevelLocations","setTargetOptions","saveSnapshot","campaignLocations","cloneDeep","Market","langauges","getSelectedLanguages","resetLocationBid","save","onTargetOptionChanged","initialLoadTask","refreshLocationData","subscribeOnAction","deletedEntities","onEntityDeleted","getRecommendations","httpUtils","odataOptions","host","BingAdsAdInsightWebApiUri","oDataToken","Token","SessionId","customerId","accountId","oppType","skip","toggleCashbackPercentColumns","IsBingMapV8Enabled","_slicedToArray","campaignCriterions","adgroupCriterions","refreshLocationDataFromCampaignAndAdGroup","noAdGroupTarget","setLocationData","refreshLocationDataForAdGroupSettings","criterionLevel","setTargetOption","buildLocationCriterionFromBiddableCampaignCriterion","sortLocationsForEdit","clearDeletedLocationsList","deletedLoc","changeMode","onTargetEverywhere","setBidMode","snapshot","keepAllLocations","criterionResourceName","LocationIntentCriterion","_this10","checkIMAReachPromise","locationCriterionsInfo","c","getLocationsInfoFromCampaignCriterions","IsIMAReachRepresentationPhase1Enabled","getLocationsInfo","CampaignType","showIMAReachModal","onYes","deliveryChannel","adGroupId","AdvertiserCustomerID","isIMAReachModalShow","_this11","sendCall","getLocationRecommendationsStatus","setDelectedLocations","checkDeprecatedLocations","showDeprecatedLocationDialog","isCampaignEntity","includedInitLocations","finalHashDict","lt","finalExcludedLocationIds","hiddenIncludedDeletes","deletedValue","entityResourceName","entityId","entityToUpdate","chunks","groupBy","floor","toArray","reqs","batch","AdGroupCriterions","overrideResponse","processResponse","responses","mergedCampaignCriterions","dest","mergedAdGroupCriterions","handleApiErrors","prev","next","_this12","cb","DialogView","_Backbone$View2","contentView","buttons","appendTo","_this13","restoreSnapshot","resotreLocationRecommendations","audienceAssociations","isAudienceCreationWorkflow","containerDOM","showIMAReachWarning","warningContainerDOM","tmplVNext","locationList","parentExtension","AdGroup","resultEntity","overrides","_this14","populateParentField","removeNegativeId","bundleLocationsToAdd","bundleSelectionDeletes","everywhereSelectionDeletes","definedLocations","bundleLocationCriterion","alreadyDefinedBundle","definedLoc","locationToSend","IsOriginalNameEmpty","deletedValues","populateLocationParentIds","locationTarget","removedFields","filterUnchangedLocations","_this15","isBidAdjustmentChanged","targetEntity","adgropuId","parentEntityName","parentEntityNameValue","parentEntityNameKey","parentEntityIdValue","toExtend","apiErrors","clearSubscribers","unmountIMAComponents","getPrimaryContactsUrl","getCCUrl","posPrimaryContactsUpdateUrl","getPrimaryContacts","AccountIds","xhrFields","withCredentials","dataType","traditional","onerror","postPrimaryContactUpdate","SelectedUserId","SelectedUser","hideLoadingPanelOnSuccess","ImportTotalRowsExceedLimit","listOfGoogleSyncErrorCodes","listOfPermissionsErrorCodes","GoogleSyncAccountNotSetUp","UserIsNotAuthorized","listOfFacebookTokenErrorCodes","listOfPinterestErrorCodes","errorHelper","isCancelled","defaultMsg","GoogleAccountName","i18nErrors","defaultOptions","permissions","allowedList","importComponents","allowedChannels","isCustomerLevel","importType","MTName","Key","UIName","Value","hasStats","src","DataSource","seed","MapProjection","Category","Additions","Updates","Changes","Deletions","colq","ColumnQueryableProjection","coli18n","ColumnI18NProjection","pipe","initGrid","Grid","projection","layout","TableLayout","partial","tableTmpl","fetch","applyChanges","formatEntityStatistics","ErrorCode","ErrorDetail","EntityStatistics","Keys","Values","importSummaryColDataToTemplate","isLastImportInfo","totalErrorCount","totalSuccessCount","generateAllowedEntities","forEach","_$defaults","importStatus","ImportStatus","taskItemStatus","errorCount","notStarted","failedWithNoErrorCode","failedOrCancelled","fileImportValidationCompleted","inProgress","succeededEntitiesText","curlyTemplate","summaryLogTmpl","importErrorText","getErrorDisplayMessage","hasFailedEntities","failedEntitiesText","notStartedText","inProgressText","validationCompletedText","showTooltipIcon","TokenInvalidImportNotification","summaryDetailsLabel","getSummaryDetailsPopupViewPromise","columnData","findImportTaskItem","signInLinkClass","showSignInLink","renderErrorPopup","errorDetailsTmpl","getErrorDetailsMessage","linkMsg","isGoogleAuthError","isFacebookAuthError","isPinterestAuthError","IsAutomated","TaskId","taskItem","State","SummaryDetailsView","showSummaryDetailsPopup","summaryDetailsView","$targetTooltip","$parent","eventName","tooltip","toolTipTmpl","hideTooltip","LegacyGrid","reloadGrid","refreshCampaignCache","summaryDataContextManager","updateContext","Summary","selected_id","CampaignsGrid","CampaignsSettingsGrid","removePopupEditor","handleErrors","unexpectedError","odataAdapter","OdataAdapter","LIMIT","BULK_LIMIT","findAllBudgets","defaultedParams","defaults","limit","jsdataCampaign","Budget","findAllCampaigns","SummaryDataContextManager","getContext","associateCampaignsWithBudget","campaigns","campaignsToAssociate","BudgetId","invalidateLegacyGridCache","updateCampaignsWithBulkLimit","campaignsGroups","campaignsGroup","shift","campaignIdsGroup","updateMany","createBudget","deleteBudgets","budgets","chain","flatten","isEmpty","processBatchResponse","updateBudget","budgetToUpdate","omit","findBudget","budgetId","Amount","nullable","BudgetCopy","KoSchema","string","budgetAmount","clearErrors","toObject","errorMessage","i18nRecommendation","BUDGET_SUGGESTION","InlineSharedBudgetEditor","renderAsPopup","importNotificationCallback","$elToBlock","activity","createScenarioAndActivity","scenarioName","activityName","budgetLink","SharedBudgetRouting","getBudgetLink","campaignSettingsLink","getCampaignSettingsLink","DeliveryStatusDetails","DeliveryStatus","odataPath","uri","path","fetchBudgetLandscape","triggerScrollbarRepositionOnElementHeightChange","tableView","BudgetLandScapeTable","opportunityData","conversionSummaryStatus","ConversionStatus","currentBudget","fromBudgetColumn","fromCampaignTab","isSharedBudget","logBudgetLandScapeForSharedBudgetCampaignView","rawSuggestedBudget","currency","isValidBudget","getBudget","getSelectedNewBudget","SharedBudgetModel","logBudgetLandScapeForSharedBudgetCampaignAdoption","getCurrentGrid","reload","setCurrentEditor","campaignsGridInlineSharedBudgetEditorTemplate","customParams","fieldId","combinedBudget","inlineBudgetEditor","editBudget","RawBudgetAmount","budgetType","SimplifiedBudgetLimitType","budgetName","RawBudgetName","sCurrentEditor","noButtons","control","columnIndex","originalVal","originalValJson","parse","getRouteUrl","KEY_INDIVIDUAL_BUDGET","KEY_SHARED_BUDGET","sharedBudgetSwitch","hasSharedBudgets","hasSelectedBudget","noApplyBudgetFromSharedLibrary","allowSharedBudgetLibrarySelection","readOnly","isEditMode","isCPSSelected","sharedBudgetIsNotAllowedWarning","budgetDetailLink","noSharedBudgetText","showNoSharedBudgetLink","columnsConfig","sortable","filterable","locked","statusHeaderTmpl","budgetStatusTmpl","tableCellTemplate","align","_default","startDate","endDate","$select","orderby","direction","scrolling","virtualized","selection","single","availablePageSizes","SharedBudgetView","showSharedBudgetMarker","individualOptions","rootElement","GridConfig","budgetView","IndividualBudgetFactory","blockerToken","blockerElement","isLoading","UIBlocker","assistedSelectionPlugin","a11yPlugin","once","isObject","keys","isFulfilled","hasBudgets","triggerChangeEvent","withRealTimeUpdates","skipLogging","isIndividualBudgetSelected","isSharedBudgetSelected","getSharedBudgetSelection","updateFromModel","showSharedBudget","selectRow","showIndividualBudget","isFunction","useSuggestedBudget","adGroups","fromBudgetUpdate","updateSuggestedBudget","enough","getSuggestedBudget","BudgetFactory","s$AdGroup","_BaseViewModel","_ref$isAudienceCampai","isAudienceCampaign","_ref$defaultBidValue","defaultBidValue","_ref$isMSStoreCampaig","isMSStoreCampaign","_ref$budgetAmount","_ref$validateWithBudg","validateWithBudget","configSchema","SearchBid","defaultBid","campaignTypeNum","MTCampaignTypeEnum","Audience","Shopping","showLowerThanMinSuggestionBidWarning","isBidLessThanFiveCentsForShoppingCampaign","bidRangeExtension","BaseViewModel","_ref$withRealTimeVali","withRealTimeValidation","_ref$onChange","onChange","defaultMSStoreMinSuggestionBid","onHandleChange","accountCurrencyCode","AccountCurrencyCode","getShowLowerThanMinSuggestionBidWarning","newBid","realTimeValidate","hasStore","observable","dataLoaded","isStoreValid","showGoalRemoveAlert","modalManager","ModalManager","defaultAdGroupName","isCPGForBSCEnabled","IsCPGForBSCEnabled","isSponsoredPilotEnabled","IsSPAv2Enabled","isWindowsStoreAdsManualCPAEnabled","WindowsStoreAdsManualCPA","isEnabledDynamicFeedCampaign","IsEnabledForDynamicFeedCampaign","isFacForShoppingEnabled","FACForShopping","isBSCSmartImportEnabled","IsBSCSmartImportEnabled","IsEnhancedPAFilterP2Enabled","IsPersonalizedOffersV4Enabled","isFACForShoppingEnabled","isShowDisclaimerBannerEnabled","isOdataGetProductScopeEnabled","isFeedLabelEnabled","isFeedLabelBlockListEnabled","_ref$campaign","_ref$deps","_ref$feed","feed","isMSStoreAdsGAWorkflow","ccJsData","getFACCoupon","updateCouponStatus","campaignStoreQueries","getCampaignStoreQueriesWithLocalMock","getMmcStoreData","withDFMCache","getMmcStoreDataWithoutDFM","processProductData","mark","setting","editMode","defaultAdGroupCreated","isSponsoredCampaign","isWindowsStoreAd","isWindowsStoreAdWithManualCPA","renderStartTime","isMapLoaded","getProductData","getProductDataWithoutDFM","isSponsoredCampaignCashbackOptInAvailable","shouldUseNewMmcApiForSpa","shouldUseNewMmcApi","feedData","isAudienceDynamicFeedBasedCampaign","shouldShowPlaceholderStoreIfExists","cashbackSettings","hasCashbackSettings","PersonalizedOffersEnabled","MonthlyBudget","isSPBCampaign","IsPromotionsForBrands","isShoppingCoOperative","enableGoalSelector","router","isNextButtonEnabled","IsReadOnlyUser","CurrentAccountInActive","shoppingCampaignEdit","shoppingCampaignCreation","durationActivity","duration","log","logContent","_objectSpread","flow","guid","step","getTime","trace","router_new","active","stopSignal","isNotAudienceCampaign","audienceTargetInfo","AudienceTargetInfo","listenToLocationCriterion","useLocationControl","initAudienceAssociationView","loadCriterionsTask","fetchCriterions","campaignTargetsView","AudienceAdvancedTargetSettings","currentLevelTargetInfo","shouldSupportCashbackSettings","locationTargetsView","loadBudgetTask","isSetting","goalSelectionView","GoalSelectorView","realI18n","isMultiMode","isHideSaveBar","turnOnRemoveAlert","showWarning","viewOption","facCallOutView","FACCalloutView","isWindowsStoreAdsEnabled","hideUIBlocker","overrideLegacyStoreWithNewMmcApiStoreData","startSignal","logShoppingCampaignCreationEvent","pData","mergeData","shouldEmulateNoStores","ProductCollectionAccounts","isMSStoreProviderId","hasAnyStores","IsGlobalStore","IsCoOpStore","AdditionalValues","IsMicrosoftStore","checkIfStoreValid","renderSubViews","search","indexOf","checkmmcstore","providerId","store","checked","advancedSettingsView","adScheduleView","deviceTargetsUpdateView","cashbackSettingsView","validateCashbackPercent","isEnabled","shoppingSettings","setIsSponsoredCampaignCashbackEnabled","biddingStrategyView","setSponsoredCampaignOptionsAndValue","isSponsoredCampaignCashbackOptedIn","hideBiddingStrategyForSPA","CampaignSettingsView","showLanguage","hideBidStrategy","isSponsoredCampaignCashbackOptInReadonly","BidStrategy","renderFACHint","couponValue","updateFeatureAdoptionCoupon","showFACHint","setShowCalloutWithCoupon","isFACActive","viewOptions","facCoupon","coupon","renderFACCalloutForShopping","activeSuccessCallback","couponInfo","CCUIConstants","RecommendationAdoptionStatus","Active","isEnablePersonalizedOffersChecked","onEnablePersonalizedOffersCheckboxChange","copyFromCampaign","isSponsoredCampaignCashbackOptedInChange","ShoppingSettingsView","isSponsoredSettings","isSPBOptInAvailable","bidStrategyUpdater","updateBidStrategy","selectedStore","onStoreChanged","IsCostPerSaleEnabled","selectedBidStrategy","BiddingStrategyType","costPerSale","strategy","firstStore","AdvancedSettingsView","TimeZone","timeZoneMapper","getAccountTimeZone","nativeAdsCampaignBid","collapseAdvancedSettings","AdDistribution","AdSchedule","campaignProductScopeId","CampaignCriterionsData","initCampaignSettings","renderShoppingSettingsView","renderAdvancedSettingsView","initModalManager","renderCampaignGoalSelector","renderCampaignTargets","isEnablePersonalizedOffersDisabled","sourceCampaign","isMSStoreAdsCampaign","productData","refreshData","getProductDataFromOData","getProductDataFromUIServer","serverContext","serverContextStore","getProductConditionOptions","getSalesCountryCollection","getDynamicDataFeedOptions","dataName","getCampaignCriterions","getCategoryFullData","getProductTypeFullData","getProductScopeData","getActiveCampaignStores","queryify","urlQueryStringObject","salesCountry","feedLabel","Product","Medium","PricingModel","getSearchBid","BidAmount","ProductCondition","ProductValue","IsExcluded","IsLeaf","PromotionalText","advancedSettings","deviceTargets","ageTargets","genderTargets","scheduling","nativeAds","urlOptions","AdGroups","netWorkOptions","AdScheduleUseSearcherTimeZone","getAdvancedSettingsValue","getCriterions","campaignTargetsData","getData","campaignTargetsCriterions","getLocationTargets","CampaignConversionGoalAssociations","convertToMTFormat","isFeedProductFilterEnabled","isFeedFilterChecked","FeedLabel","SalesCountry","isDynamicDataFeedBasedCampaign","feedId","ProviderId","FeedId","biddingScheme","BiddingScheme","CashbackScope","hasFilteredProducts","CampaignProductScope","getProductScope","isCoOpStoreSelected","getAdGroup","Language","ProductAds","getAd","ProductPartitions","getProductPartition","navigateToCampaignSummaryPage","getAllLocations","clearApiErrors","locationTargetsPromise","changedLocationCriterions","hasLocationChanged","getAllLocationCriterions","ShoppingCampaign","destroyProductScoeIfNeed","setData","logCampaignPersonalizedOffers","exclusionsUpdated","saveExtensions","Adopted","stop","splitedErrors","campaignErr","locationErr","copySettings","campaignErrors","separateErrors","fillCriterionsWithId","uniq","each","parentId","campaign_id","AccountId","perfMarkerEvent","s$ShoppingCampaign","All","Filtered","getDefaultPriority","_ref2$model","_ref2$editMode","_ref2$data","SalesCountryCollection","_ref2$storeData","storeData","storeOptions","excludedStoreOptions","_ref2$isShoppableAdsE","isShoppableAdsEnabled","_ref2$isLocalInventor","isLocalInventoryAdsEnabled","_ref2$isSponsoredSett","hideStoreSection","hideBid","_ref2$shouldShowPlace","_ref2$isWindowsStoreA","_ref2$isWindowsStoreA2","_ref2$IsDomesticSimpl","_ref2$deps","_ref2$isSearchCampaig","isSearchCampaign","_ref2$isExistingFeedF","isExistingFeedFilter","_ref2$isSalesCountryR","isSalesCountryRemovedForSpa","_ref2$showComponentCo","showComponentConfig","_ref2$isCPSSelected","cpsSelected","_ref2$isAllFeedProduc","isAllFeedProducts","accountCountryCode","_ref2$isBrandWideCash","isBrandWideCashbackEnabled","fields","defaultSalesCountry","Priority","showPriority","campaignPriority","isPriorityVisible","showBid","updatePriorityFunc","updatePriority","productScope","editing","salesCountries","Text","allStores","_toConsumableArray","selectedStoreItem","toString","isPlaceholderStore","isSelectedStoreAPlaceholderStore","selectedStoreId","storeText","generateStoreText","countryText","storeSelection","disableStoreSelection","storeId","LinkStoreId","hasValidStore","campaignSubTypeText","BrandOnly","isBrandWideCashbackSelected","isProductFilterChecked","selectAllProducts","isValidating","showFeedFilterValidationError","isFeedFilterPickerEnabled","originalSalesCountry","isSalesCountryDisabled","showFeedFilterPickerValidationError","showFeedFilterPickerFeedLabelOnlyValidationError","ShoppableAdsEnabled","a","IsPlaceholder","gmcToMMCGridDeps","draftStoreName","draftStoreId","isNewUII18n","originalPriorityLocal","queries","queryOptions","showAddNewButton","isEditing","s$ProductCondition","isLocalInventoryAdV2Enabled","ProductGroupSubTypeEnum","Attribute","selectedCondition","condition","showRemoveLink","productConditionOptions","productCondition","SubTypeFlag","Operand","ValueOptions","attributeOptions","operandText","attributeText","_ref$productCondition","_ref$countryOfSale","countryOfSale","_ref$maxQueriesPerGro","maxQueriesPerGroup","_ref$campaignCriterio","campaignCriterion","_ref$campaignCriterio3","_ref$campaignCriterio5","ProductConditions","_ref$isCoOpStoreSelec","queryEditorList","productConditions","addNewQuery","lastQuery","hasDynamicChildren","getChildProductCondition","DynamicQueryOption","setFocus","splice","queryEditor","QueryEditorView","canAddNewQuery","pop","editor","ExcludedStores","_React$Component","props","disable","startDisabled","originalExcludedStores","loadExcludedStores","shouldEnable","newSelectedItems","indexToRemove","idsToDelete","idsToAdd","deleteCriterion","getDeleteCriterion","newCriterion","getSelectedItemsCriterion","toReturn","NegativeStoreCriterion","StoreId","storesToDeleteCriterion","originalCriterion","o","schemaName","edmCampaign","Campaigns","$withKey","storeCriterion","excludedStoresSelected","invalidExcludedStores","newStoreOptions","Selected","disabled","ExcludedStoreToggleOptions","onText","offText","ev","ExcludedStoreDropdownOptions","placeholder","multiSelect","onRenderTitle","excludedStoreTitleText","dropDownChange","selectedKeys","hidden","Toggle","Dropdown","dropdown","width","IsEnhancedPAFilterP1Enabled","isCategoryandIdfilterforaudiencecampaiginEnabled","storeCategory","FeedTypeMapping","_ref$model","ProductConditionOptions","DynamicDataFeedConditionOptions","CategoryData","_ref$feedData","_ref$campaignType","_ref$campaignSubType","_ref$campaignId","_ref$isStoreValid","_ref$isSponsoredSetti","_ref$bidStrategyUpdat","_ref$shouldShowPlaceh","_ref$isSearchCampaign","_ref$isMSStoreAdsGAWo","_ref$isMMAForRetailWo","isMMAForRetailWorkflow","_ref$ccJsData","settingScenarioName","onStoreSelectionChange","onSalesCountryChange","onFeedLabelChange","setProductLoading","updateProductConditionOptions","updateChildLevelProductCondition","onSelectFilterProducts","accountryCountry","selectedCategory","channelKeys","channelTexts","isToggledByNewComponent","filterDataComesFrom","isDynamicDataFeedFiltersValid","DynamicDataFeedFiltersData","newI18n","i18nNewDesign","enableOperator","enableMultiSelect","categoryOptions","buildCategoryOptions","customerSelectedProductConditions","showExcludedStores","shouldShowExcludedStores","isPAAIMFeedLabelEnabled","onSelectionChange","onApplyFilterNewComponent","clickApplyButton","getAccountCountry","getSalesCountryForProductFilter","previousStore","isPAAIMStoreSetting","SettingScenarios","PAAIMStoreSetting","isPAAIMProductSetting","PAAIMProductSetting","isFeedFilterEnabled","getShoppingSettingByScenario","updateStoreDataForWindowsStore","updateStoreDataAndGlobalStoreForSpaSpb","globalStore","globalStoreIndex","globalStoreId","selectedFeed","FeedType","defaultSelectedDataSource","defaultSelectedDataSourceHelper","setFeedId","customerSelectedProductConditionsLocal","startsWith","setCategoryOptionsSelection","productGroup","productConditionOptionsOrigin","productConditionOption","removeProductGroup","validateProductOfferCount","storeChanged","label","onChanged","onBrandWideCashbackToggleChange","defaultChecked","inlineLabel","newToggleState","valueOptions","option","processProductConditionValueOptions","salesCountryCollection","processProductConditionOptions","processSalesCountryCollection","filteredStoreList","IsSPB","IsSPA","globalStoreList","categoryData","HasChild","selectedCategories","hasSelectedCategory","clonedCategoryData","traverseCategories","categories","deepness","callback","category","Children","selectedCategoriesEachLevel","reduce","acc","CategoryOperandDeepnessMapping","split","validateAndFix","nodes","node","childSelected","childNode","PresetOperator","Operator","excludedStores","setExcludedStoreOptions","customerSelectedProductCondition","selectedProductConditionItem","ds","findTargetNodeAndAncestorsNodes","clonedItem","findHelper","valueOption","valueB","toUpperCase","selectedValueArray","selectedValueOption","selectedValueOptions","PresetValue","multilineValueInputProcessor","valueInput","valuesArr","output","valueArray","replaceAll","returnStr","showProductFilter","productFilter","showCountryOfSale","showDefaultBid","showCampaignSubType","showCollectionCheckbox","collectionCheckbox","showLocalInventoryCheckbox","localInventoryCheckbox","showFeedProductFilter","feedProductFilter","showFilterByProduct","filterByProduct","showProductGroup","feedText","renderCatagrizedOptionsList","hasDraftStore","DraftAlert","bidSetting","BidSettingView","defaultMSStoreSuggestionBid","renderFeedFilter","unmountFeedFilter","filterProducts","renderFeedFilterPicker","renderProductGroup","renderDynamicFeedFilterGroup","excludedStoreComponentOptions","renderBrandOnlyToggle","optionKey","isSelectedStore","SetStoreProviderId","searchBid","basic","newComponentDataSource","applyButton","textValueMap","memo","current","keyText","valueKeys","multilineValueOutProcessor","operator","setProviderId","CategrizeStoreData","CategrizeFeedData","groupedData","categoriedGroupedData","MapFeedTypeToDisplayString","enable","setModel","customerSelections","useNewComponent","customerSelectionsLocal","standard","coop","all","ProductGroupView","selectedID","selectedIdstring","TransformStoreAndFeedData","categoryObject","selectedFeedType","_ref6$disabled","dropdownStyle","styles","maxHeight","categoryKey","selectedFeedGroup","CategorizedDropdownList","attribute","operand","dynamicQueryOption","saleCountriesSource","legacyI18n","saleCountries","selectedFeedLabel","onSelectedFeedLabelChange","selectedSaleCountry","onSelectedSaleCountryChange","hideSaleCountry","getFeedFilterProps","originalSaleCountry","WrappedFeedFilter","isFeedFiltered","onIsFeedFilteredChange","unmountFeedFilterPicker","WrappedFeedFilterPicker","_ref7$defaultSelected","filterOptionsGroupComponent","i18nLegacy","onApply","maximumFiltersCount","blacklistOperator","blacklistMultiSelect","FilterOptionsGroupDynamic","hideOperandList","unshift","hideOperandDataSource","FilterOptionsGroup","getTopLevelProductConditions","filters","getQueries","couter","setUrlParameter","validationItemForFilterdProducts","validateFeedFilter","getDynamicFeedFiltersConditionData","excludedStoreCriterion","accountCountry","availableSalesCountries","ifAccountCountrySupported","LegacyShoppingSetting","getShowConfig","BidValue","bidOption","showBidValue","validationI18n","schemai18n","s$CoOpSetting","getPropertyRange","range","CpgBidBoost","_DeterministicWrapper","BidBoostValue","BidMaxValue","form","SimpleForm","schema","addonInput","addonText","validators","showButtons","PopupController","PopupJsClick","currentModel","DeterministicWrapperView","IsBidLessThan5CentsInShoppingCampaignEnabled","getRange","updateBidRangeInSchema","schemaOrigin","searchBidOrigin","searchBidCopy","propertyCopy","schemaCopy","maximum","minimum","CpgSearchBid","_ref$SearchBid","CpgBidSection","Settings","BidOption","cpgSearchBid","cpgBidBoost","adgroupParam","getState","CoOpSetting","AdGroupBidType","enum","helpId","_CommonViewModel","CommonViewModel","MessageView","titleMessage","subMessage","messageTemplate","currentCid","userId","managedAccount","managingCustomer","lightboxDiv","showCloseButton","relativeUrl","queryParams","ccBaseUrl","URI","setQuery","ccUrl","rurl","singleUnlinkAccounts","SingleUnlinkLightbox","warningErrorCodes","ccmtErrorPrefx","defaultErrorParams","sourceCustomerName","targetCustomerName","link","_jsx","children","getErrorMessage","code","errorKey","ErrorLocStrings","GenericErrorMessage","errorParams","ErrorHelpPopupIds","AccountReparentingHotelAdsValidationFailed","AccountReparentingUETRemarketingValidationFailed","AccountReparentingBMCValidationFailed","ARWUnthemedBulkErrorView","errorDetails","sourceCustomer","targetCustomer","errorCodes","classnames","bulkErrorViewContainer","entityIds","ReactTemplate","ErrorMessage","isWarningCode","isWarning","helpTopicId","iconClass","cssClass","_jsxs","LearnMoreLink","_TL_","topic","defaultProps","ARWBulkErrorView","withI18nConsumer","withDefaultStyles","getBulkErrorViewStyles","BulkErrorViewWithModalDialog","onCancelClick","onEnablePilotsClick","onUpgradeServiceLevelClick","Modal","backdrop","onHide","bsSize","Body","Footer","Button","btnStyle","onClick","CommonLocStrings","EnablePilotsLabel","UpgradeLabel","CloseLabel","ARWBulkErrorViewWithModalDialog","handleAjaxAuthFailure","appendJsDataErrorSummary","Code","Target","Loading","ErrorsLabel","AccountNameNumberFormat","BackLabel","NextLabel","OkLabel","GotitLabel","CancelLabel","SubmitLabel","SaveAndExitLabel","TakeoverBillingSectionHeader","TransferResourcesHeader","NotSet","Prepay","Threshold","MonthlyInvoice","Grid_ShowRows","Grid_PageOf","UETSectionHeader","paymentOptionIdToKeyMap","_defineProperty","notSetPaymentOptionId","Constants","PaymentOptionId","Invoice","MandatorySelection","AccountIsUnderReparenting","ReparentingNotAllowedForAdultAdsCustomer","ReparentingNotAllowedForThresholdAccountsWithOverdueBalance","ReparentingNotAllowedForOnHoldAccounts","ReparentingNotAllowedForAccountsAlreadyUnderReparenting","ReparentingNotAllowedForAccountsCrossCustomers","ReparentingNotAllowedForUnderSAPPOR","ReparentingNotAllowedForUnderBillingMigration","ReparentingNotAllowedForFraudAccount","ReparentingNotAllowedForAccountsMaxLimit","InvalidAccount","ReparentingScheduledLinksBlocked","ReparentingAgencyNotLinkedToAccount","ReparentingAgencySettingMissing","ReparentingMustDelinkTargetCustomer","ReparentingTargetCustomerCannotBeSourceCustomer","SourceTargetCustomerNotInReparentingPilot","ReparentingNotAllowedForFraudCustomer","ReparentingNotAllowedForInactiveCustomer","ReparentingNotAllowedForCrossDomain","ReparentingNotAllowedForMarketMismatch","ReparentingNotAllowedForExceedTotalAccountNumber","ReparentingNotAllowedForMissingCustomerLevelPilotInTarget","ReparentingNotAllowedForNewBillToCustomerStayTheSame","ReparentingCustomerHierarchyCycleDetected","AccountReparentingFailedByMovedCustomerLevelGoal","AccountReparentingFailedByRemainingCustomerLevelGoal","AccountReparentingFailedByCvrlWithCustomerLevelAudience","AccountNameDuplicate","ReparentingNotAllowedForTargetCustomerNotInPilot","ReparentingNotAllowedForSourceCustomerNotInPilot","ReparentingRequireEnableTargetCustomerPilot","ReparentingRequireUpgradeTargetCustomerLevel","PaymentInstrumentControlledCurrencyNotMatched","PaymentMethodNotSupportedByAccount","AccountsPerPaymentInstrumentLimitReached","PaymentMethodAssociatedWithManyAccounts","PostPayAccountCantAssociateWithPrepaidCard","ReparentingAccountFinanceSettleFail","BillToCustomerFinancialStatusIsSoldToOnly","DeleteAllReparentingAccountsNotAllowed","ReparentingNotAllowedForNonAdvertiserCustomer","ReparentingNotAllowedForAggregatorCustomer","PaymentInstrumentIdNotFound","TargetCustomerIdInvalid","TargetCustomerNumberInvalid","CustomerLifecycleStatusInvalid","NewBillToCustomerNotManageAccount","PaymentInstrumentIdInvalid","InvoiceMustBePremiumOrInternalCustomer","ReparentingAccountIdInvalid","AccountReparentingCampaignLimitValidationFailed","AccountReparentingCustomerExclusionValidationFailed","AccountReparentingFailedByUnmovedAudiences","AccountReparentingFailedByMovedAudiences","CustomerLevelAccountCreationIsSuspended","FinalReviewLocStrings","FinalReviewPageHeader","FinalReviewPageTitle","FinalReviewSummaryText1","FinalReviewSummaryText2","FinalReviewSummaryText3","FinalReviewSummaryText4","FinalReviewSummaryText5","FinalReviewSummaryText6","FinalReviewConfirmationQuestion","FinalReviewConfirmationText","FinalReviewSummaryText101","FinalReviewSummaryText102","FinalReviewSummaryText103","FinalReviewSummaryText104","FinalReviewSummaryText105","FinalReviewSubmitSuccess","simpleFormLegacyLocStrings","SimpleForm_Button_Save","SimpleForm_Button_Cancel","Grid_Edit_Cell","KoSchema_String_RemainingCharactersText","ManagerAccountLocStrings","ManagerAccountPageHeader","ManagerAccountTitle1","ManagerAccountInputLabel","ManagerAccountInputPlaceholder","PreApprovalWarningMessage","IdentifyRecipientStepTitle","IdentifyRecipientStepDetails","SetUpBillingStepTitle","SetUpBillingStepDetails","TakeLeaveStepTitle","TakeLeaveStepDetails","TakeLeaveStepDetailsOfUET","TakeLeaveStepDetailsNote","NoteLabel","ProcessingTimeStepTitle","ProcessingTimeStepDetails","NotAValidManagerAccount","PendingTransferRequestSummaryLocStrings","PendingTransferPageTitle","CompletedTransferPageTitle","PendingTransferPageMessage","ReviewBillingLocStrings","Header","NoPIGridData","Description","IoApprovalDialogTitle","IoApprovalDialogLine1","IoApprovalDialogLine2","IoApprovalDialogOption1","IoApprovalDialogOption2","IoApprovalDialogConfirm","IoApprovalDialogGoBack","PiBulkFixDialogTitle","PiBulkFixDialogLine1","PiBulkFixDialogLine2","PiBulkFixDialogApply","PiBulkFixDialogNo","On","Off","ReviewLinkingLocStrings","NoGridData","ReviewAccountLinkingHeader","ReviewAccountPageDescription","KeepAllLinksLabel","UnlinkAllLabel","KeepLinkLabel","UnlinkLabel","SelectLabel","AccountLabel","ActionLabel","SearchAccounts","LinkedManagerAccountLabel","AccountLinkAction","LinkConfirmationMissingTitle","LinkConfirmationMissingMessage","PleaseMakeASelection","SetupBillingLocStrings","BulletPoint1","BulletPoint2","BulletPoint3","WhoPays","HowYouPay","PostpayThreshold","WhatYouPayWith","InsertionOrderWarning","AutoRechargeWarning","AccountsWillGoDarkDialogTitle","AccountsWillGoDarkDialogMessage","RetainBillingSettingsDialogTitle","RetainBillingSettingsDialogMessage","Accept","Cancel","ApplyAll","Decline","WhoPaysError","TakeoverBillingLocStrings","TakeoverBillingHeader","TakeoverBillingNonePageDescription","TakeoverBillingPageDescription","TakeoverBillingNote","KeepCurrentBillToForAll","SetupNewBillToForAll","SetupNewBillTo","KeepCurrentBillTo","Select","CurrentPaymentSetting","CurrentPaymentMethod","TransferDecision","TransferSummaryLocStrings","SummaryPaneHeader","DownloadSummaryLinkLabel","CurrentManagerAccountLabel","NewManagerAccountLabel","AccountsSelectedLabel","NumberOfAccounts","RemoveAccount","SelectedAccountsLabel","RatinedAccountLinksLabel","UnlinkedAccountLinksLabel","RetainedBillToAccountsLabel","NewBillToAccountsLabel","BillingSetupLabel","PaymentSetting","PreapprovedIOLabel","InsertionOrderStatus","AccountLinksLabel","UnlinkedAccountsLabel","RetainedAccountsLabel","NewBillToLabel","RetainedBillToLabel","PaymentOption","InsertionOrders","InsertionOrdersApproved","InsertionOrdersDeclined","InsertionOrdersPending","UETTagLabel","UETTagTransfered","AccountLoseAccess","UETTagsTransfered","AccountsLoseAccess","UETPopoverTitle","LoseAccessAccountPopoverTitle","SearchUETTags","CustomerPropType","PropTypes","isRequired","CurrencyType","PaymentType","TaxInformation","BusinessAddress","BusinessName","City","Line1","Line2","PostalCode","StateOrProvince","CountryName","StateOrProvinceName","IsValid","ValidationVersionId","PreferredBillToPaymentInstrumentId","BusinessPhone","AccountPropTypes","Email","countries","ControlledCurrencyCountryId","Accounts","SourceCustomerId","CurrentLocale","PageTrackingId","ServicesEndpoints","ClientCenterUIAPI","AccountsSummaryUrl","ReparentingId","TagInfoPropType","OwnedAudience","SharedAudience","ConversionGoal","AudienceAssociation","Move","Audiences","Goals","TagUsedByInfosImpactedByTransfer","TagUsedByInfosImpactedByKeep","gridSelectEditorStyles","paddingTop","borderWidth","paddingBottom","borderBottomColor","display","gridInlineErrorStyle","_ref$palette","palette","_ref$iconFontFamily","iconFontFamily","color","red","listStyleType","marginBottom","fontFamily","padding","fontSize","getBlockerStyle","size","height","border","borderLeftColor","themePrimary","borderRightColor","themeLight","borderTopColor","borderRadius","animation","legacyUIBlockerStyle","components","_ref2$palette","backgroundColor","outline","white","margin","getWizardFooterStyles","borderTop","neutralLight","paddingLeft","marginRight","neutralLighter","neutralPrimary","float","marginLeft","getStepProgressItemGlyphicon","isSelected","containsSelected","isBehind","getWizardProgressListContainerStyles","completedBorder","completedIcon","inProgressIcon","incompleteBorder","incompleteIcon","background","stepContentBorder","neutralQuaternaryAlt","getColors","minWidth","borderRight","listStyle","borderLeft","lineHeight","fontWeight","getWizardStepsContainerStyles","flex","marginTop","getWizardStyles","datePickerStyle","wizardListContainer","wizardStepsContainer","arWizardContainer","cursor","tableBorder","borderBottom","verticalAlign","textAlign","paddingRight","textOverflow","overflow","whiteSpace","justifyContent","alignItems","getHeaderStyles","getBodyStyles","neutralSecondaryAlt","zIndex","boxShadow","minHeight","fontStyle","themeDark","maxWidth","neutralSecondary","getGridStyles","getTableStyles","visibility","opacity","getGlobalStyles","getARWGridStyles","flexDirection","getARWModalViewStyles","getErrorLabelStyles","getFinalReviewPageStyles","_ref3$palette","finalReviewPageContainer","arwModalViewContainer","getManagerInputPageStyles","_ref4$palette","managerAccountInputContainer","getSetupBillingPageStyles","_ref5$palette","setupBillingPageContainer","getReviewBillingPageStyles","_ref6$palette","reviewBillingPageContainer","getReviewLinkingPageStyles","_ref7$palette","reviewLinkingPageContainer","getTakeoverBillingPageStyles","_ref8$palette","takeoverBillingPageContainer","getReviewUETTagsPageStyles","_ref9$palette","reviewUETTagsPageContainer","getSummaryPaneStyles","_ref10","_ref10$palette","summaryPaneContainer","getInfoTileStyles","_ref11","_ref11$palette","infoTileContainer","_ref12","_ref12$palette","getAccountsPopoverStyles","accountsPopover","right","pointerEvents","getEntityPopoverStyles","entityPopover","themePalette","neutralTertiary","themeDarkAlt","themeDarker","convertAccountModelToServerContext","account","linkedManagers","AccountCustomerRelations","rel","isManagingCustomer","billToManager","isBillToCustomer","parentManager","isParentCustomer","ParentManager","RelatedToCustomerId","RelatedToCustomerName","RelatedToCustomerNumber","BillToManager","PaymentSettingText","PaymentMethodText","BillTo","BillToChange","PaymentInstrumentId","InsertionOrder","PrepayConfig","LinkedManagers","manager","Unlink","transformMtIoToUIFormat","ioStartDate","FromDate","ioEndDate","ThruDate","ioBudget","SpendCapAmount","ioPurchaseOrder","AgencyIdOrPo","ioOrderName","FriendlyName","ioNotes","Comment","ioStatus","transformIoUIToMtFormat","areUiInsertionOrdersEqual","ioA","ioB","isUiIoSet","io","areIoRequiredFieldsSet","couldSetInsertionOrder","paymentOptionId","paymentInstrumentId","toClientSideBillingSetting","billingSetting","_billingSetting$BillT","BillToChangeSetting","NewBillToCustomerId","NewBillToCustomerName","NewBillToCustomerNumber","NewPaymentInstrumentId","NewPaymentOptionId","TopUpAmount","EstimatedTaxRate","IsRecurringPayment","billToCustomer","insertionOrder","prepayConfig","addFundsAmount","estimatedTaxRate","isAutoRechargeEnabled","toServerSideBillingSetting","BillToActionTypes","SELECT","CURRENT","NEW","LinkActionTypes","UNLINK","LINK","JobStatusTypes","Draft","WaitingAccept","Accepted","Declined","WaitingIOApproval","IOApproved","IODeclined","Created","InProgress","Failed","Succeeded","Deleted","PostProcessingInProgress","PostProcessingFailure","JobUpdateTypes","StatusUpdate","TargetCustomerUpdate","CustomerErrorsUpdate","AccountSettingsUpdate","ReparentingAccountDelete","DefaultBillingSettingUpdate","notSetPaymentInstrumentId","defaultPrepayConfig","INSTRUMENTATION_SYSTEM_NAME","INSTRUMENTATION_SUB_SYSTEM","isInvoicePaymentOption","isPrepayPaymentOption","stringContains","textValue","searchValue","learnMoreHelpIds","Hold","PendingPaymentMethod","PausedZeroBalance","PausedNoValidIO","PendingNewCustomer","Processing","AccountVerificationHold","contactSupport","externalLinkReasons","alertReasonId","alertPausedReasons","accountInactiveCauseCode","i18nPrefixes","legacyKeysMap","AccountAlertCategory_1","AccountAlertCategory_2","AccountAlertCategory_3","AccountAlertCategory_4","AccountAlertCategory_5","AccountAlertCategory_6","AccountAlertCategory_7","AccountAlertCategory_8","AccountAlertCategory_9","AccountAlertCategory_11","AccountAlertCategory_12","AccountAlertCategory_12_CN","AccountAlertCategory_13","AccountAlertCategory_14","AccountAlertCategory_15","AccountAlertCategory_16","AccountAlertCategory_17","AccountAlertCategory_18","AccountAlertCategory_19","AccountAlertDescription_Hold","AccountAlertDescription_Inactive","AccountAlertDescription_PausedDueToSystemIssue","AccountAlertDescription_PausedNoValidIO","AccountAlertDescription_PausedZeroBalance","AccountAlertDescription_PendingNewCustomer","AccountAlertDescription_PendingPaymentMethod","AccountAlertDescription_Processing","AccountAlertDescription_Deleted","AccountAlertDescription_AccountMissingVATId","AccountAlertDescription_AccountVerificationHold","AccountAlertDescription_AccountVerificationHold_CN","AccountAlertDescription_AccountTradeScreeningUnderReview","AccountAlertDescription_AccountTradeScreeningLicenseRequired","AccountAlertDescription_AccountTradeScreeningDataIssue","AccountAlertDescription_BillToCustomerTradeScreeningUnderReview_BillTo","AccountAlertDescription_BillToCustomerTradeScreeningUnderReview_Own","AccountAlertDescription_BillToCustomerTradeScreeningLicenseRequired_BillTo","AccountAlertDescription_BillToCustomerTradeScreeningLicenseRequired_Own","AccountAlertDescription_BillToCustomerTradeScreeningDataIssue_BillTo","AccountAlertDescription_BillToCustomerTradeScreeningDataIssue_Own","AccountAlertDescription_AccountMissingABL","AccountAlertReason_9","AccountAlertReason_10","AccountAlertReason_11","AccountAlertReason_13","AccountAlertReason_14","AccountAlertReason_15","AccountAlertReason_16","AccountAlertReason_17","AccountAlertReason_18","AccountAlertReason_19","AccountAlertReason_21","AccountAlertReason_23","AccountAlertReason_24","AccountAlertReason_28","AccountAlertReason_29","AccountAlertReason_30","AccountAlertReason_31","AccountAlertReason_32","AccountAlertReason_33","AccountAlertReason_34","AccountAlertReason_35","AccountAlertReason_40","AccountAlertAction_Hold","AccountAlertAction_InactivePaused","AccountAlertAction_PausedNoValidIO","AccountAlertAction_PausedZeroBalance","AccountAlertAction_PendingPaymentMethod","AccountAlertAction_AccountMissingVATId","AccountAlertAction_AccountVerificationHold","AccountAlertAction_AccountTradeScreeningDataIssue","AccountAlertAction_BillToCustomerTradeScreeningDataIssue_BillTo","AccountAlertAction_BillToCustomerTradeScreeningDataIssue_Own","AccountAlertAction_BillToCustomerTradeScreeningUnderReview_BillTo","AccountAlertAction_BillToCustomerTradeScreeningLicenseRequired_BillTo","AccountAlertAction_AccountMissingABL","LearnMore","Contact_Support","AccountGrid_Alerts","ModalPopup_BizLoc_Close","Format_CustomerNameAndId","getLearnMore","popupConstants","transformReasonCode","transformer","BillToCustomerTradeScreeningLicenseRequired","isCustomerBillToCustomer","BillToCustomerTradeScreeningUnderReview","BillToCustomerTradeScreeningDataIssue","isChinaAccount","getContactSupport","includes","AccountInactiveReasons","accountInactiveReasons","vnextI18n","preferenceService","siteMap","_useFooterConfig","useFooterConfig","locSettings","supportUrlConfigKey","useMemo","buildLegacyI18n","isChinaAivPhase3Enabled","safeTranslate","useCallback","getAlertCategory","i18nPrefix","reasonId","suffix","getAlertDescription","transformedReason","getAlertCauses","causes","causeExplinations","cause","causeCodeId","causeExplination","getAlertActionText","ccUrlBuilders","getUrlBuilders","ClientCenterBaseUrl","cidFetcher","uidFetcher","getDefaultIsShortUrl","getAlertAction","isExternal","_ref$ccUrlBuilders","BaseUrlBuilder","CreditHoldUrlBuilder","PaymentmethodsUrlBuilder","PaymentUrlBuilder","InsertionOrderUrlBuilder","AccountSettingsUrlBuilder","AccountUrlBuilder","TradeScreeningTransformationUrlBuilder","isPendingFilterSet","AccountMissingVATId","AccountMissingABL","BillToCustomerTradeScreeningUnderReview_BillTo","BillToCustomerTradeScreeningDataIssue_BillTo","BillToCustomerTradeScreeningLicenseRequired_BillTo","AccountTradeScreeningDataIssue","BillToCustomerTradeScreeningDataIssue_Own","alerts","Reason","Causes","learnMore","alert","Fragment","HelpLink","getStyle","getActionCalloutStyle","ACCOUNTS_GRID_POPOVER_CLASSNAME","ACCOUNTS_GRID_CALLOUT_MOUNTING_DOM","getAutoPlacement","calloutMaxWidth","getBoundingClientRect","innerWidth","dismissCallout","getElementById","renderCallout","popoverId","popoverClassName","contentProps","_ref$placement","placement","_ref$closeButtonAriaL","closeButtonAriaLabel","Popover","classNames","onClose","focusLockContent","isClickInteractive","hasCloseButton","isDeletedMatcher","getCommonEvents","handleDirectManagersCalloutEvent","isInternal","ManagerAccounts","customer","number","CustomerNumber","setSearch","removeSearch","hash","DirectManagersCallout","parentGrid","showDirectManagersCallout","IsInternalUser","OwnerId","BillToCustomerId","showInactiveReasonCallout","Utils","filterEnterKeyDown","Navigation","toCustomerScopeLandingPage","relatedTarget","getGridFilterConfig","entitySchema","cachedFilterService","AccountSummaryFilterImprovementEnabled","gridName","updateAccountEntitySchemaForFilterConfig","accountSchema","schemaI18nCampaign","legacyGlobalI18n","accountSummaryi18n","preferenceStoreFactory","customColumnPreference","dataContextManager","jsData","sessionStore","cacheService","filterConfig","cachedEntitySchema","featureName","getCommonFilterConfig","globalConfig","searchProperty","searchOperator","getFilterConfig","getFilters","loadAccountsGridFactoryWebpack","contexts","getAccountsGridFactory","accountsGridLegacyDepsListWebpack","createAccountsGridForUiNext","pageName","_ref$preexecuteFlag","preexecuteFlag","addDateChangeListener","gridType","pageElementSelector","crossPageSelectPlugin","toolbarPlugin","_ref$getEvents","getEvents","_ref$accountsGridLega","lazyLoadDep","loadAccountsGridFactoryFunc","_ref2$preexecuteFlag","_ref2$getEvents","loadAccountsGridFactory","createAccountsGridView","_lazyLoadDep","dateUtil","getSegPreference","getSegType","segmentTimeChecker","fetchPaginationConfig","azureUrlRewrite","CacheService","waterfallFilterStorage","WaterfallFilterStorage","getGridPreferences","preferenceConfig","existingDataSource","DataSourceStore","filterService","schemaProcessor","flattenEntitySchema","filterEntityOptions","odataOptionsProcessor","fieldMap","buildNameToPropertyMapping","ignoreCase","basicStorageOptions","editableFilterStorage","storageFactory","FilterService","hasUnifiedSmartAccount","HasUnifiedSmartAccount","parentPerfMarker","viewport","getAdditionalPlugins","plugin","projectionGridScopeNavigator","definePlugin","getPGridColumnResizePlugin","getAdditionalEvents","waterfallDateFilterProcessor","WaterfallFilterType","DateFilter","createFactory","getOverflowEllipsisStyle","getGridPopoverTargetStyle","getFluctuationGridCellStyle","getBudgetCenterEntryValueStyle","green","transform","flexShrink","flexGrow","getCalloutStyles","getAccountInactiveReasonsStyle","getDirectManagersCalloutStyle","ContentView","isLazy","enableAutoFixPlacement","calloutMinWidth","_objectWithoutProperties","_excluded","_useState","useState","_useState2","autoFixPlacement","setAutoFixPlacement","useEffect","handleMouseLeave","fixedPlacement","_target$getBoundingCl","PopoverWithLock","lockKey","PopoverWithLockInner","withLock","force","keyVault","hoveringPopup","FallbackCallOutContent","Glyphicon","glyph","ActionCallout","expectedPlacement","setPlacement","open","calloutCloseButton","DirectManagersContent","getToolbarBlockedIconStyle","buttonId","getLinkAccountButtonStyle","LinkingReturnPageId","requestsSent","requestsReceived","management","performance","defaultRouteForCustomerScope","getRoutePathById","history","pathname","toRequestPage","isSent","toResendRequestPage","requestId","linkType","resendRequestRoute","linkingReturnPageId","toAccountTransferPage","rpid","sourceCid","sourcecid","toPendingTransferRequestPage","invalidateAccountsData","forceAccountsGridRefresh","getjsDataCampaign","deselectAll","eventHandler","keyCode","Enter","AccountMode","EnforcementActionType","buildToobarConfig","Map","getNavigationToolbarConfig","routeId","_ref3$context","validaDependencies","displayActionButton","createNavigationToolbarItemFactory","getDefaultConfig","_ref5$config","configOverride","isDeletedAccount","getDefaultAccountCreateButtonConfig","DSAEnforcement","EnforcementActionId","SuspendAccountCreation","iconLeftGlyphName","noResponsive","IsManagementDashboardEnabled","IsCreateAccountEnabled","IsNewBillToCustomerHierarchyEnabled","ParentCustomerId","getCCUrlBuilders","getLinkingReturnPageId","extractPattern","RegExp","currentLocation","match","getDefaultSendRequestSharedConfig","IsLinkAccountEnabled","ToolbarConfigs","getCreateAccountButton","getCreateAccountOBOButton","pathToCreateOBO","CustomersUrlBuilder","siteMapId","getSendRequestButton","getSendRequestNavItem","getDeleteAccountNavItem","_ref9$key","_ref9$context","getBulkActionAccountsGrid","selectedAccounts","hasNoDeletedAccounts","isSmartAccount","Smart","canDeleteAccounts","IsSmartUIEnabled","IsInternal","IsDeleteAccountEnabled","bulkDeleteAccounts","successCallback","getReactivateAccountNavItem","_ref10$key","_ref10$context","hasAllDeletedAccounts","IsReactivateAccountEnabled","bulkReactivateAccounts","getUnlinkAccountNavItem","_ref11$key","_ref11$context","getBulkUnlinkAccounts","canUnlinkAccount","IsUnlinkAccountEnabled","bulkUnlinkAccounts","onConfirm","accounts","cancelRedirectData","getTransferAccountNavItem","_ref13","_ref13$key","_ref13$context","getBulkTransferAccounts","IsTransferAccountEnabled","bulkTransferAccounts","onSuccessCallBack","_ref14","getMandateAgreementRequiredNavItem","mandateAgreementRequiredUrl","MandateAgreementRequiredUrlBuilder","preferenceName","AccountsWelcomeBar","welcomePanelAccordion","customerName","IsAccountLevelImportStatusGridEnabled","onExpanded","onCollapsed","preference","findByNameAtUserLevel","showHierarchyPanel","Data","expanded","setExpanded","formattedTitle","titleFormatter","PanelGroup","accordion","activeKey","onSelect","setAtUserLevel","Panel","eventKey","role","Heading","Title","toggle","Collapse","onEntered","onExited","noop","StyledAccountsWelcomeBar","withPreference","textDecoration","black","backgroundImage","HierarchyVisualizationImg","backgroundRepeat","backgroundPosition","pug","module","exports","pug_interp","pug_html","locals_for_with","$$obj","pug_index0","$$l","column","escape","call","pug_index1","cellData","pug_index3","pug_index5","pug_mixins","ariaLabelContext","templateString","errorsId","v4","radiusErrorId","PhysicalIntentOn","PhysicalIntentOnly","radiusErrorIdForBidMode","radiusErrorIdForNonBidMode","nextPageText","previousPageText","Creator","DateTime","Time","Freq","IsChildAccountTask","IsChildBatch","isAuto","fileNameExists","minSuggestionBid","filterButton"],"sourceRoot":""}