{"version":3,"file":"static/js/application.async.landing~e34843e3.4a0e8e2d.chunk.js","mappings":"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","sources":["../../../node_modules/@bingads-webui-campaign-legacy/audience-association/view/aim-component-view.js","../../../node_modules/@bingads-webui-campaign-legacy/audience-bulk-edit-campaign-association/model/association.js","../../../node_modules/@bingads-webui-campaign-legacy/audience-bulk-edit-campaign-association/view/association.js","../../../node_modules/@bingads-webui-campaign-legacy/audience-bulk-edit-common-association/view/bulk-association-section.js","../../../node_modules/@bingads-webui-campaign-legacy/audience-bulk-edit-common-association/viewmodel/association.js","../../../node_modules/@bingads-webui-campaign-legacy/audience-bulk-edit-common-association/view/association.js","../../../node_modules/@bingads-webui-campaign-legacy/audience-campaign/loader.js","../../../node_modules/@bingads-webui-campaign-legacy/audience-campaign/responsive-ad-editor-loader.js","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/plugin/pagination.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/service/convert.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/category-targets/searchBoxWithAutoSuggestion.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/category-targets/autoSuggestionSearchBoxPlugin.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/category-targets/const.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/category-targets/category-grid.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/viewmodel/create/exactURLs.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/create/exactURLs.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/create/specificWebPageWithPreview.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/create/all-webpage.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/viewmodel/create/radiogroup.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/create/radiogroup.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/create/custom-label.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/create/mixedSpecificWebPage.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/create/index.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/viewmodel/create/selectedTargets.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/create/selectedTargets.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/create/specificWebPageWithoutPreview.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/create/targetPreview.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/double-list-a11y-hacker.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/viewmodel/pagefeed/targeting-source.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/pagefeed/targeting-source.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/viewmodel/specific-target.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/view/specific-target.js","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/util/bidValidator.js","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/util/criterionLoader.js","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/viewmodel/baseTargets.js","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/viewmodel/deviceTargets.js","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/util/helper.js","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/viewmodel/originalDeviceTargets.js","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/viewmodel/ageTargets.js","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/viewmodel/genderTargets.js","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/viewmodel/nativeAds.js","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/viewmodel/multimediaAds.js","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/view/baseTargets.js","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/view/baseUpdate.js","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/viewmodel/targetConstants.js","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/viewmodel/targetTypes.js","../../../node_modules/@bingads-webui-campaign-legacy/bidding-strategy/bidding-strategy-type.js","../../../node_modules/@bingads-webui-campaign-legacy/bidding-strategy/view/setting.js","../../../node_modules/@bingads-webui-campaign-legacy/bidding-strategy/viewmodel/setting.js","../../../node_modules/@bingads-webui-campaign-legacy/bidlandscape/viewmodel/bid-landscape.js","../../../node_modules/@bingads-webui-campaign-legacy/bidlandscape/viewmodel/keyword.js","../../../node_modules/@bingads-webui-campaign-legacy/bidlandscape/viewmodel/highcharts-config.js","../../../node_modules/@bingads-webui-campaign-legacy/bidlandscape/view/bid-landscape.js","../../../node_modules/@bingads-webui-campaign-legacy/bidlandscape/view/keyword.js","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/service/state-manager-helper.js","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/vnext/plugin/customer-hierarchy-plugin.js","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/vnext/plugin/inline-download.js","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/vnext/plugin/primary-contacts-bulk-edit-plugin.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/shared/countNumberOfDigits.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/shared/currencyFormatter.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/shared/formatter.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/shared/bidBudgetSuggestionFormatter.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/shared/getBudgetBidSuggestion.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/shared/getTrafficEstimation.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/shared/log.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/shared/weeklyToMonthly.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/viewmodel/bid-suggestion-popup.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/view/bid-suggestion-popup.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/viewmodel/budget-panel.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/view/budget-panel.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/viewmodel/budget.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/view/budget.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/viewmodel/create.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/viewmodel/base-bid-grid.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/shared/bidValidate.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/view/base-bid-grid.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/view/performance-grid.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/view/adgroup-bid-grid.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/view/create.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/shared/getTrafficEstimationWithSuggestedBid.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/viewmodel/inline-budget-editor.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/view/dynamic-require-es6-load.js","../../../node_modules/@bingads-webui-campaign-legacy/budget/view/inline-budget-editor.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-action-accounts-grid/bulk-delete-lightbox.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-action-accounts-grid/bulk-reactivate-abl-missing-lightbox.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-action-accounts-grid/constants.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-action-accounts-grid/index.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-campaign-exclusions/model/bulk-campaign-exclusions.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-campaign-exclusions/viewmodel/bulk-campaign-exclusions.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-campaign-exclusions/view/bulk-campaign-exclusions.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-edit/service/bulk-edit.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-edit/service/get-params.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-operation/util/bulk-edit-job.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-operation/util/grid-filter-serializer.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-transfer-accounts/bulk-transfer-lightbox.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-transfer-accounts/index.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-unlink-accounts/bulk-unlink-lightbox.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-unlink-accounts/index.js","../../../node_modules/@bingads-webui-campaign-legacy/campaign-bulk-edit/model/bulkEditAdScheduleTimeZone.js","../../../node_modules/@bingads-webui-campaign-legacy/campaign-bulk-edit/model/bulkEditLanguage.js","../../../node_modules/@bingads-webui-campaign-legacy/campaign-bulk-edit/viewmodel/bulkEditAdScheduleTimeZone.js","../../../node_modules/@bingads-webui-campaign-legacy/campaign-bulk-edit/view/bulkEditAdScheduleTimeZone.js","../../../node_modules/@bingads-webui-campaign-legacy/campaign-bulk-edit/viewmodel/bulkEditLanguage.js","../../../node_modules/@bingads-webui-campaign-legacy/campaign-bulk-edit/view/bulkEditLanguage.js","../../../node_modules/@bingads-webui-campaign-legacy/campaign-create-advanced/view/index.js","../../../node_modules/@bingads-webui-campaign-legacy/campaign-create-advanced/view/service.js","../../../node_modules/@bingads-webui-campaign-legacy/campaign-create-advanced/view/success.js","../../../node_modules/@bingads-webui-campaign-legacy/campaign-create-advanced/view/success-dialog.js","../../../node_modules/@bingads-webui-campaign-legacy/campaigns-tab-campaigns/grid/budgetlandscape/popover/index.js","../../../node_modules/@bingads-webui-campaign-legacy/campaigns-tab-campaigns/grid/budgetlandscape/popover/view.js","../../../node_modules/@bingads-webui-campaign-legacy/budgetlandscape/viewModel/viewModel.js","../../../node_modules/@bingads-webui-campaign-legacy/budgetlandscape/view/budgetlandscape.js","../../../node_modules/@bingads-webui-campaign-legacy/campaigns-tab-campaigns/grid/budgetlandscape/index.js","../../../node_modules/@bingads-webui-campaign-legacy/campaigns-tab-campaigns/grid/budget-suggestion/container.js","../../../node_modules/@bingads-webui-campaign-legacy/campaigns-tab-campaigns/grid/delivery-status/delivery-status-popup-factory.js","../../../node_modules/@bingads-webui-campaign-legacy/campaigns-tab-campaigns/grid/budget-suggestion/index.js","../../../node_modules/@bingads-webui-campaign-legacy/campaigns-tab-campaigns/grid/inlineopportunity/index.js","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/column/base-grid-column.js","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/column/delivery-status/delivery-status-column.js","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/column/delivery-status/popup/delivery-status-popup-factory.js","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/column/quality-score/quality-score-click-handler.js","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/filter/update-filter-schema-for-pilot-features.js","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-plugins/js-data-raw-data.js","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-plugins/label/label-association-view.js","../../../node_modules/@bingads-webui-campaign-legacy/common-viewmodel/index.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/category-targets/addToList.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/category-targets/category-grid.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/category-targets/categoryName.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/category-targets/categoryNameHeader.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/create/all-webpage.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/create/custom-label.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/create/exactURLs.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/create/index.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/create/mixedSpecificWebPage.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/create/radiogroup.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/create/selectedTargets.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/create/specificWebpagePreview.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/create/specificWebpageWithoutPreview.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/create/targetPreview.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/pagefeed/feed-preview.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/pagefeed/targeting-source.pug","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/template/specific-target-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/template/baseTargets.pug","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/template/originalDeviceTargets.pug","../../../node_modules/@bingads-webui-campaign-legacy/base-targets/template/update.pug","../../../node_modules/@bingads-webui-campaign-legacy/bidding-strategy/template/setting.pug","../../../node_modules/@bingads-webui-campaign-legacy/bidlandscape/template/actionPanel.pug","../../../node_modules/@bingads-webui-campaign-legacy/bidlandscape/template/bidlandscapeTable.pug","../../../node_modules/@bingads-webui-campaign-legacy/bidlandscape/template/keywordBidLandscape.pug","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/template/table-cell.pug","../../../node_modules/@bingads-webui-campaign-legacy/budget/template/base-bid-grid.pug","../../../node_modules/@bingads-webui-campaign-legacy/budget/template/bid-suggestion-popup.pug","../../../node_modules/@bingads-webui-campaign-legacy/budget/template/bidEditor-2.pug","../../../node_modules/@bingads-webui-campaign-legacy/budget/template/bidEditor.pug","../../../node_modules/@bingads-webui-campaign-legacy/budget/template/bidToolTipLowBid.pug","../../../node_modules/@bingads-webui-campaign-legacy/budget/template/budget-panel.pug","../../../node_modules/@bingads-webui-campaign-legacy/budget/template/budget.pug","../../../node_modules/@bingads-webui-campaign-legacy/budget/template/create.pug","../../../node_modules/@bingads-webui-campaign-legacy/budget/template/estimatedNum.pug","../../../node_modules/@bingads-webui-campaign-legacy/budget/template/inline-budget-editor-with-landscape.pug","../../../node_modules/@bingads-webui-campaign-legacy/budget/template/inline-budget-editor.pug","../../../node_modules/@bingads-webui-campaign-legacy/budgetlandscape/template/budgetLandscapeViewRecommendation.pug","../../../node_modules/@bingads-webui-campaign-legacy/bulk-action-accounts-grid/template/bulk-delete-lightbox-message.pug","../../../node_modules/@bingads-webui-campaign-legacy/bulk-campaign-exclusions/template/bulk-campaign-exclusions.pug","../../../node_modules/@bingads-webui-campaign-legacy/bulk-transfer-accounts/template/bulk-transfer-lightbox-message.pug","../../../node_modules/@bingads-webui-campaign-legacy/bulk-unlink-accounts/template/bulk-unlink-lightbox-message.pug","../../../node_modules/@bingads-webui-campaign-legacy/campaign-bulk-edit/template/bulkEditAdScheduleTimeZone.pug","../../../node_modules/@bingads-webui-campaign-legacy/campaign-bulk-edit/template/bulkEditLanguage.pug","../../../node_modules/@bingads-webui-campaign-legacy/campaign-create-advanced/template/successDialogAccountOnHold.pug","../../../node_modules/@bingads-webui-campaign-legacy/campaign-create-advanced/template/successDialogAccountPaused.pug","../../../node_modules/@bingads-webui-campaign-legacy/campaign-create-advanced/template/successDialogInReview.pug","../../../node_modules/@bingads-webui-campaign-legacy/campaign-create-advanced/template/successDialogPendingPaymentMethod.pug","../../../node_modules/@bingads-webui-campaign-legacy/campaigns-tab-campaigns/grid/budgetlandscape/popover/template.pug","../../../node_modules/@bingads-webui-campaign-legacy/campaigns-tab-campaigns/grid/delivery-status/autobidding-popover-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/column/delivery-status/delivery-status-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/column/delivery-status/popup/delivery-status-details-popup.pug","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/column/quality-score/quality-score-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/column/sortableHeaderTemplate.pug"],"sourcesContent":["import _ from 'underscore';\r\nimport audienceStatus from '@bingads-webui-static-legacy/schema/audience/status';\r\nimport bidTypes from '@bingads-webui-component-legacy/schema/bid/bidType';\r\nimport audienceType from '@bingads-webui-component-legacy/schema/audience/audienceType';\r\nimport { AssociationTypes } from '@bingads-webui-campaign-legacy/audience-association/model/consts';\r\nimport { types as campaignTypes } from '@bingads-webui-campaign-legacy/adgroup-create-advanced/util/campaignType';\r\nimport { AudienceAssociationView } from './base-association-view';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\n\r\nconst DEFAULT_BID_MULTIPLIER = 0;\r\n\r\nexport class AimAudienceAssociationView extends AudienceAssociationView {\r\n initialize({\r\n campaignId = null,\r\n adGroupId = null,\r\n isShoppingCampaign = false,\r\n customizedTemplates = {},\r\n deps = {},\r\n isForVNext = false,\r\n perfMarker = null,\r\n isAudienceCreationWorkflow = false,\r\n isFromAudienceDashboard = false,\r\n campaignSubType = null,\r\n hideExclusion = false,\r\n hideAssociationHeader = false,\r\n biddingScheme,\r\n campaignSettings,\r\n isIMARedesignEnabled = false,\r\n hideCustomSegmentsOption = false,\r\n }) {\r\n this.campaignId = campaignId;\r\n this.adGroupId = adGroupId;\r\n\r\n super.initialize({\r\n campaignType: campaignTypes.audience,\r\n campaignSubType,\r\n associationType: AssociationTypes.Aim,\r\n refreshOnInitialize: true,\r\n shouldShowUiBlockOnRender: false,\r\n customizedTemplates,\r\n deps,\r\n isNewUI: isForVNext,\r\n perfMarker,\r\n hideExclusion,\r\n hideAssociationHeader,\r\n isAudienceCreationWorkflow,\r\n isFromAudienceDashboard,\r\n isAIMAudienceAssociationView: true,\r\n biddingScheme,\r\n campaignSettings,\r\n isIMARedesignEnabled,\r\n hideCustomSegmentsOption,\r\n });\r\n\r\n // Allow expansion since this will bypass validation\r\n this.canExpandAssociation = true;\r\n this.canExpandExclusion = true;\r\n this.resetSelectionListBox();\r\n\r\n if (isShoppingCampaign) {\r\n this.doubleListBoxViewModel.setSelectedCategory(audienceType.Product);\r\n }\r\n\r\n // override bidType to 'TargetAndBid'\r\n this.doubleListBoxViewModel.selectedBidType(bidTypes.TargetAndBid);\r\n }\r\n\r\n cleanup() {\r\n this.remove();\r\n }\r\n\r\n getAudienceCriterion() {\r\n const { associationList, exclusionList } = this.getLists();\r\n\r\n const jsonify = (audience, isTargeting) => {\r\n // Attempt to find the BidMultiplier from an associtation if it was previously saved\r\n // otherwise use default \"0\"\r\n\r\n const originalAssociations = _.map(this.doubleListBoxViewModel.originalAssociations,\r\n (item) => _.defaults({}, item, {\r\n Criterion: item.AudienceCriterion,\r\n }),\r\n );\r\n\r\n const association = _.find(originalAssociations,\r\n (item) => audience.Id === item.Criterion.AudienceId);\r\n\r\n let bidMultiplier = _.chain(association)\r\n .result('Criterion')\r\n .result('BidMultiplier', DEFAULT_BID_MULTIPLIER)\r\n .value();\r\n\r\n const cashbackPercent = _.chain(association)\r\n .result('Criterion')\r\n .result('CashbackAdjustment')\r\n .value();\r\n\r\n let associationId = _.result(association, 'Id', null);\r\n\r\n // We only assume the status based on which list it was stored in\r\n let status = isTargeting ? audienceStatus.Active : audienceStatus.Excluded;\r\n\r\n // If audience is in the targeting list and was originally associated as \"Paused\"\r\n // then we should use the \"Paused\" value as this component doesn't allow changing from\r\n // \"Active\" to \"Paused\" or vice versa.\r\n if (isTargeting &&\r\n _.result(association, 'Status') === audienceStatus.Paused\r\n ) {\r\n status = audienceStatus.Paused;\r\n }\r\n\r\n const result = {\r\n BidType: this.doubleListBoxViewModel.selectedBidType(),\r\n Status: status,\r\n Id: associationId,\r\n Criterion: {\r\n AudienceId: audience.Id,\r\n AudienceName: audience.Name,\r\n AudienceType: audience.Type,\r\n BidMultiplier: bidMultiplier,\r\n Type: 'Audience',\r\n },\r\n };\r\n\r\n if (pageContext.Permissions.IsPersonalizedOffersEnabled) {\r\n result.Criterion.CashbackPercent = cashbackPercent;\r\n }\r\n\r\n return result;\r\n };\r\n\r\n return _.union(\r\n _.map(associationList, (item) => jsonify(item, true)),\r\n _.map(exclusionList, (item) => jsonify(item, false)),\r\n );\r\n }\r\n\r\n updateContext(campaignId, adGroupId) {\r\n this.campaignId = parseInt(campaignId);\r\n this.adGroupId = parseInt(adGroupId);\r\n }\r\n\r\n getSelectedEntity() {\r\n return {\r\n selectedAdgroupId: this.adGroupId,\r\n selectedCampaignId: this.campaignId,\r\n selectedAdgroupName: null,\r\n selectedCampaignName: null,\r\n };\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport BaseModel from '@bingads-webui-campaign-legacy/bulk-operation/util/bulk-edit-job';\r\nimport bidTypes from '@bingads-webui-component-legacy/schema/bid/bidType';\r\n\r\nexport default class Model extends BaseModel {\r\n\r\n get defaults() {\r\n return $.extend(\r\n {},\r\n BaseModel.defaults, {\r\n Id: null,\r\n Entity: 'Campaign',\r\n BatchAction: {\r\n Actions: [{\r\n '@odata.type': '#Model.AudienceAssociationAction',\r\n 'BidType': bidTypes.BidOnly,\r\n 'AssociationList': [],\r\n 'ExclusionList': [],\r\n 'Property': 'AudienceAssociation',\r\n }],\r\n },\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport decimalUtil from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport template from '@bingads-webui-static-legacy/bulk-edit/template/campaign/association.pug';\r\nimport gridHelper from '@bingads-webui-static-legacy/shared/view/gridHelper';\r\nimport { errorEnum } from '@bingads-webui-campaign-legacy/audience-association/model/errorEnum';\r\nimport AssociationError from '@bingads-webui-campaign-legacy/audience-association/model/associationError';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport { levelAtConstant } from '@bingads-webui-campaign/scope-constants';\r\n\r\nimport CommonAssociationView from '@bingads-webui-campaign-legacy/audience-bulk-edit-common-association/view/association';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/audience/association');\r\n\r\n\r\nexport default class View extends CommonAssociationView {\r\n initialize(options) {\r\n super.initialize(_.extend({}, options, {\r\n template,\r\n validate: this.validateCPSelection,\r\n onSuccessCallback: this._onSuccess,\r\n formatAssociation: this.formatCampaignAssociation,\r\n entityLevel: levelAtConstant.CAMPAIGN,\r\n }));\r\n\r\n // overwrite onSuccessCallback with customized callback\r\n this.onSuccessCallback = options.onSuccessCallback || this.onSuccessCallback;\r\n\r\n // Enum of Campaign Selection Validation Results\r\n this.cpValidationEnum = {\r\n 'OK': 0,\r\n 'TooManyAssociations': 1,\r\n 'NoChosenList': 5,\r\n 'ListConflicting': 6,\r\n 'DeliveryChannel': 7,\r\n };\r\n }\r\n\r\n _onSuccess() {\r\n // Show association success information message\r\n window.App.trigger('campaignRemarketingAssociated');\r\n }\r\n\r\n formatCampaignAssociation(rows) {\r\n if (rows) {\r\n _.each(rows, (value) => {\r\n value.Entity = _.find(value.EntityKey, (item) => {\r\n return item.Key === 'CampaignName';\r\n });\r\n\r\n value.data = [];\r\n value.data.push({ value: value.Entity && value.Entity.Value ? value.Entity.Value : '', isHtml: false });\r\n\r\n if (value.Changes && value.Changes.length) {\r\n value.data.push({ value: '-', isHtml: false });\r\n value.data.push({ value: value.Changes[0].NewValue, isHtml: false });\r\n } else {\r\n value.data.push({ value: '', isHtml: false });\r\n value.data.push({ value: '', isHtml: false });\r\n }\r\n });\r\n }\r\n\r\n return rows;\r\n }\r\n\r\n validateCPSelection(selectedListsCount) {\r\n // Returns OK if the selection passes all validations\r\n let results = [];\r\n\r\n // Clears error message before validation\r\n this.doubleListBoxView.clearAllErrors();\r\n\r\n if (!_.isNull(selectedListsCount)) {\r\n if (selectedListsCount === 0) {\r\n results.push({ error: this.cpValidationEnum.NoChosenList });\r\n } else {\r\n // check if there is id conflicting in targeting and exclusion\r\n let { associationList, exclusionList } = this.doubleListBoxView.getLists();\r\n\r\n let associationListIds = _.pluck(associationList, 'Id'),\r\n exclusionListIds = _.pluck(exclusionList, 'Id'),\r\n allListIds = _.union(associationListIds, exclusionListIds),\r\n allList = _.flatten(_.union(associationList, exclusionList));\r\n\r\n if (allListIds.length !== (associationListIds.length + exclusionListIds.length)) {\r\n let conflictList = _.chain(associationListIds)\r\n .intersection(exclusionListIds)\r\n .map((id) => _.findWhere(allList, { Id: id }))\r\n .pluck('Name')\r\n .value();\r\n\r\n results.push({ error: this.cpValidationEnum.ListConflicting, param: conflictList });\r\n }\r\n\r\n // Check whether there are too many association generated by the selection\r\n // This is only checked when called from submitJob with selectedListsCount provided\r\n const selectCampaignsCount = gridHelper.getSelectedRowsCount(this.grid);\r\n const audienceSettings = config.get('audienceSettings');\r\n const maxAudienceCriterionMaxLimit = audienceSettings.BulkAudienceCriterionMaxLimit;\r\n\r\n if ((selectedListsCount * selectCampaignsCount) > maxAudienceCriterionMaxLimit) {\r\n results.push({ error: this.cpValidationEnum.TooManyAssociations });\r\n }\r\n }\r\n }\r\n\r\n if (this.IsAIMCampaignEnabled && this.scope.currentScope !== 'campaign') {\r\n results.push({ error: this.cpValidationEnum.DeliveryChannel });\r\n }\r\n\r\n if (_.size(results) === 0) {\r\n return true;\r\n } else {\r\n this.showErrorMessage(results);\r\n\r\n return this.doubleListBoxView.anyCriticalErrors();\r\n }\r\n }\r\n\r\n submitJob() {\r\n super.submitJob();\r\n }\r\n\r\n showErrorMessage(validationResults) {\r\n _.each(validationResults, (validationResult) => {\r\n switch (validationResult.error) {\r\n case this.cpValidationEnum.TooManyAssociations: {\r\n const audienceSettings = config.get('audienceSettings');\r\n const maxAudienceCriterionMaxLimit = audienceSettings.BulkAudienceCriterionMaxLimit;\r\n\r\n // shared error message with AdGroup\r\n const limitMessage = i18n.get('AudiencesAssociation_ListToCampaign_Error_ExceedMaxLimit').replace('{0}', decimalUtil.fromFloatToString(maxAudienceCriterionMaxLimit, 0));\r\n let limitError = new AssociationError(errorEnum.ExceedMaxLimit.id,\r\n { scope: this.scope.currentScope, isCritical: true, level: this.entityLevel }, null, limitMessage);\r\n\r\n this.doubleListBoxView.addError(limitError);\r\n break;\r\n }\r\n case this.cpValidationEnum.NoChosenList: {\r\n let noChosenError = new AssociationError(errorEnum.NoChosenList.id,\r\n { scope: this.scope.currentScope, isCritical: true, level: this.entityLevel });\r\n\r\n this.doubleListBoxView.addError(noChosenError);\r\n break;\r\n }\r\n case this.cpValidationEnum.ListConflicting: {\r\n // Shared error message with AdGroup\r\n let errormessagetemp = _.template(i18n.get('AudiencesAssociation_ListToAdGroup_Error_List_Conflicting'));\r\n // Note that even though the variables have \"Adgroup\" in them, they won't show up in the final message:\r\n // \"The same remarketing list can’t be added to both {{AdgroupTargeting}} and {{AdgroupExclusions}}. Remove the following lists from either targeting or exclusions\"\r\n const messageContent = errormessagetemp({\r\n AdgroupTargeting: `${i18n.get('Audiences_Campaign_Association_Title')}`,\r\n AdgroupExclusions: `${i18n.get('Audiences_Campaign_Exclusion_Title')}`,\r\n });\r\n let message = `${messageContent}: ${validationResult.param.join(', ')}`;\r\n let conflictingError = new AssociationError(errorEnum.ListConflicting.id,\r\n { scope: this.scope.currentScope, isCritical: true, level: this.entityLevel }, null, message);\r\n\r\n this.doubleListBoxView.addError(conflictingError);\r\n break;\r\n }\r\n case this.cpValidationEnum.DeliveryChannel: {\r\n if (!pageContext.Permissions.IsProductAudienceForSearchEnabled) {\r\n this.doubleListBoxView.addError(new AssociationError(\r\n errorEnum.DeliveryChannel.id,\r\n { scope: this.scope.currentScope, isCritical: false, level: this.entityLevel }\r\n ));\r\n }\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport instrumentationSvc from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport instrumentConsts from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport { AudienceAssociationView } from '@bingads-webui-campaign-legacy/audience-association/view/base-association-view';\r\nimport { AssociationTypes } from '@bingads-webui-campaign-legacy/audience-association/model/consts';\r\nimport { levelAtConstant } from '@bingads-webui-campaign/scope-constants';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/audience/association');\r\n\r\nexport class BulkAssociationSectionView extends AudienceAssociationView {\r\n initialize(options) {\r\n super.initialize({\r\n scope: options.scope,\r\n refreshOnInitialize: true,\r\n fromBulkEdit: true,\r\n readOnlyMode: false,\r\n associationType: AssociationTypes.Bulk,\r\n entityLevel: options.entityLevel,\r\n isNewUI: options.isForVNext,\r\n deps: options,\r\n currentCampaign: options.currentCampaign,\r\n newI18n: options.newI18n,\r\n });\r\n\r\n this.currentCampaign = options.currentCampaign;\r\n this.entityLevel = options.entityLevel;\r\n\r\n this.bidMultiplier = 0;\r\n }\r\n\r\n render() {\r\n const associationInfoText = this.isNewAudienceEnabled ? i18n.get('AudiencesAssociation_BulkEditAssociationOnAudience_InfoText') : i18n.get('AudiencesAssociation_BulkEditAssociation_InfoText'),\r\n assoicationQueryLink = 'help:app51226',\r\n exclusionInfoText = this.isNewAudienceEnabled ? i18n.get('AudiencesAssociation_ListToAddgroup_ExclusionOnAudience_InfoText') : i18n.get('AudiencesAssociation_ListToAddgroup_Exclusion_InfoText'),\r\n exclusionQueryLink = 'help:app51226',\r\n associationInfoTextCampaign = this.isNewAudienceEnabled ?\r\n i18n.get('AudiencesAssociation_ListToCampaignOnAudience_InfoText') :\r\n i18n.get('AudiencesAssociation_ListToCampaign_InfoText');\r\n\r\n let bulkEditIntro = this.isNewAudienceEnabled ? i18n.getString('Audience_Adgroup_BulkEdit_Association_Exclusion_Audience_Intro') : i18n.getString('Audience_Adgroup_BulkEdit_Association_Exclusion_Intro');\r\n\r\n if (this.entityLevel === levelAtConstant.CAMPAIGN) {\r\n bulkEditIntro = this.isNewAudienceEnabled ? i18n.getString('Audience_Campaign_BulkEdit_Association_Exclusion_Audience_Intro') : i18n.getString('Audience_Campaign_BulkEdit_Association_Exclusion_Intro');\r\n }\r\n\r\n super.render({\r\n bulkEditIntro,\r\n associationInfoText,\r\n associationInfoTextCampaign,\r\n assoicationQueryLink,\r\n exclusionInfoText,\r\n exclusionQueryLink,\r\n });\r\n\r\n this.initCashbackPercentControlView(this.currentCampaign);\r\n\r\n return this;\r\n }\r\n\r\n getAction() {\r\n let bidType = this.doubleListBoxViewModel.selectedBidType();\r\n let { associationList, exclusionList } = this.getLists();\r\n let associationListIds = _.pluck(associationList, 'Id');\r\n let exclusionListIds = _.pluck(exclusionList, 'Id');\r\n\r\n\r\n const action = {\r\n Actions: [{\r\n '@odata.type': '#Model.AudienceAssociationAction',\r\n 'Property': this.entityLevel === levelAtConstant.CAMPAIGN ? 'AudienceAssociation' : '',\r\n 'BidType': bidType,\r\n 'BidMultiplier': this.bidMultiplier,\r\n 'AssociationList': associationListIds,\r\n 'ExclusionList': exclusionListIds,\r\n }],\r\n };\r\n\r\n if (this.doubleListBoxViewModel.supportCashbackSettings()) {\r\n const cashbackPercent = this.cashbackPercentControlView.getCashbackPercentValue();\r\n\r\n action.Actions[0].CashbackAdjustment = cashbackPercent;\r\n }\r\n\r\n if (instrumentationSvc.logMessage) {\r\n if (this.isNewAudienceEnabled) {\r\n _.each(this.doubleListBoxViewModel.configSettings, (setting) => {\r\n instrumentationSvc.logMessage(\r\n [instrumentConsts.LOGCATEGORY.TRACE],\r\n instrumentConsts.LOGLEVEL.INFO,\r\n 'SaveBulkEditTargetingExclusionByDmp/setAction',\r\n JSON.stringify({\r\n 'DmpType': `${setting.type}`,\r\n 'AssociationList': `${setting.targeting.selectedLists().length}`,\r\n 'ExclusionList': `${setting.exclusion.selectedLists().length}`,\r\n 'BidMultiplier': `${this.bidMultiplier}`,\r\n })\r\n );\r\n });\r\n } else {\r\n instrumentationSvc.logMessage(\r\n [instrumentConsts.LOGCATEGORY.TRACE],\r\n instrumentConsts.LOGLEVEL.INFO,\r\n 'SaveBulkEditTargetingExclusion/setAction',\r\n JSON.stringify({\r\n 'AssociationList': `${associationListIds.length}`,\r\n 'ExclusionList': `${exclusionListIds.length}`,\r\n 'BidMultiplier': `${this.bidMultiplier}`,\r\n })\r\n );\r\n }\r\n }\r\n\r\n return action;\r\n }\r\n\r\n clearAllErrors() {\r\n this.doubleListBoxViewModel.errors.clearAll();\r\n }\r\n\r\n addError(error) {\r\n this.doubleListBoxViewModel.errors.add([error]);\r\n }\r\n\r\n anyCriticalErrors() {\r\n let errors = this.doubleListBoxViewModel.errors();\r\n\r\n //check if there is any critical error, if yes, no go, if no let it go\r\n if (_.every(errors, (error) => {\r\n return error.property.isCritical === false;\r\n })) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n cleanup() {\r\n this.trigger('cleanup');\r\n }\r\n\r\n validateBidPercentage() {\r\n if (this.doubleListBoxViewModel.isBidPercentageValid()) {\r\n this.bidMultiplier = this.doubleListBoxViewModel.getBidPercentage();\r\n return true;\r\n } else {\r\n this.$el.find('#bidAdjustInput').focus();\r\n return false;\r\n }\r\n }\r\n\r\n validateCashbackPercent() {\r\n if (this.doubleListBoxViewModel.supportCashbackSettings()) {\r\n return this.cashbackPercentControlView.validate();\r\n }\r\n return true;\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport Base from '@bingads-webui-static-legacy/bulk-edit/viewmodel/bulkEditJob';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\n\r\nexport default class ViewModel {\r\n constructor() {\r\n Base.call(this);\r\n this.showPreviewButton = ko.observable(false);\r\n this.isNewAudienceEnabled = pageContext.Permissions.IsNewAudienceEnabled;\r\n\r\n this.validate = () => {\r\n return true;\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport BaseView from '@bingads-webui-static-legacy/bulk-edit/view/bulkEditJob';\r\nimport filterHelper from '@bingads-webui-static-legacy/bulk-edit/view/filterHelper';\r\nimport instrumentSetting from '@bingads-webui-static-legacy/instrumentation/campaignSchemaAndSetting';\r\nimport instrumentationSvc from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport instrumentConsts from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport scopeService from '@bingads-webui-static-legacy/scope-service';\r\nimport { BulkAssociationSectionView } from '@bingads-webui-campaign-legacy/audience-bulk-edit-common-association/view/bulk-association-section';\r\nimport BulkEditAssociationViewModel from '@bingads-webui-campaign-legacy/audience-bulk-edit-common-association/viewmodel/association';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/audience/association');\r\n\r\nexport default class View extends BaseView {\r\n initialize(options) {\r\n if (options.perfMarker) {\r\n this.perfMarker = options.perfMarker;\r\n }\r\n\r\n this.scope = scopeService.getScope();\r\n this.grid = options.grid;\r\n this.entityLevel = options.entityLevel;\r\n super.initialize(options);\r\n this.ko_model = new BulkEditAssociationViewModel(); /* eslint camelcase:0 */\r\n this.IsAIMCampaignEnabled = pageContext.Permissions.IsAIMCampaignEnabled;\r\n this.isNewAudienceEnabled = pageContext.Permissions.IsNewAudienceEnabled;\r\n this.doubleListBoxView = new BulkAssociationSectionView({\r\n scope: this.scope,\r\n entityLevel: this.entityLevel,\r\n isForVNext: options.isForVNext,\r\n router: options.router,\r\n currentCampaign: options.currentCampaign,\r\n newI18n: options.newI18n,\r\n });\r\n this.doubleListBoxView.on('cleanup', () => {\r\n this.cancelJob();\r\n });\r\n\r\n this.template = options.template;\r\n this.onSuccessCallback = options.onSuccessCallback;\r\n this.validate = options.validate;\r\n this.formatAssociation = options.formatAssociation;\r\n }\r\n\r\n remove() {\r\n this.doubleListBoxView.remove();\r\n super.remove();\r\n }\r\n\r\n render() {\r\n if (this.perfMarker) {\r\n this.perfMarker.willRender();\r\n }\r\n let func = () => {\r\n\r\n super.render();\r\n\r\n this.$el.find('.panel-heading.bulkAssociation').after(this.doubleListBoxView.render().el);\r\n\r\n this.$el.find('.doubleListBoxContainer').show();\r\n this.$el.find('.save-btn').removeAttr('disabled');\r\n\r\n // Validates the selection and show an error message if there's an issue\r\n // skipping the check for maximum number of associations since lists are not yet selectedp\r\n this.validateSelection(null);\r\n\r\n return this;\r\n };\r\n\r\n if (instrumentationSvc.asLoggingStart) {\r\n return instrumentationSvc.asLoggingStart(func,\r\n this.isNewAudienceEnabled ? instrumentSetting.ACTIVITYNAME.LoadBulkEditTargetingExclusionByDmp : instrumentSetting.ACTIVITYNAME.LoadBulkEditTargetingExclusion,\r\n this.isNewAudienceEnabled ? instrumentSetting.SCENARIONAME.BulkEditTargetingExclusionByDmp : instrumentSetting.SCENARIONAME.BulkEditTargetingExclusion)();\r\n } else {\r\n return func();\r\n }\r\n }\r\n\r\n validateSelection(selectedListsCount) {\r\n if (_.isFunction(this.validate)) {\r\n return this.validate(selectedListsCount);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // click cancel\r\n cancelJob() {\r\n if (instrumentationSvc.logMessage) {\r\n if (this.DmpEnabled) {\r\n instrumentationSvc.logMessage(\r\n [instrumentConsts.LOGCATEGORY.TRACE],\r\n instrumentConsts.LOGLEVEL.INFO,\r\n 'SaveBulkEditTargetingExclusionByDmp/Cancel',\r\n '');\r\n } else {\r\n instrumentationSvc.logMessage(\r\n [instrumentConsts.LOGCATEGORY.TRACE],\r\n instrumentConsts.LOGLEVEL.INFO,\r\n 'SaveBulkEditTargetingExclusion/Cancel',\r\n '');\r\n }\r\n }\r\n\r\n super.cancelJob();\r\n }\r\n\r\n onJobSuccess() {\r\n super.onJobSuccess();\r\n this.jobSucceeded = true;\r\n }\r\n\r\n submitJob() {\r\n let { associationList, exclusionList } = this.doubleListBoxView.getLists();\r\n\r\n if (!this.doubleListBoxView.validateBidPercentage()) {\r\n return;\r\n }\r\n\r\n if (!this.doubleListBoxView.validateCustomRestriction()) {\r\n return;\r\n }\r\n\r\n if (!this.doubleListBoxView.validateCashbackPercent()) {\r\n return;\r\n }\r\n\r\n //Validation\r\n\r\n // Getting number of lists selected for calculating the association max limit.\r\n let selectedListsCount = associationList.length + exclusionList.length;\r\n\r\n // Validates the selection again on job submitting, and update the error message if there's an issue\r\n // We should proceed with submitting the job when the selection of Ad Groups is not all Content-only\r\n // Otherwise, i.e. we should block the job when the selection of Ad Groups is all Content-only\r\n if (this.validateSelection(selectedListsCount)) {\r\n // clean all non-critical error and let it go\r\n this.doubleListBoxView.clearAllErrors();\r\n\r\n super.submitJob();\r\n }\r\n }\r\n\r\n hideView() {\r\n super.hideView();\r\n if (this.jobSucceeded) {\r\n // Show association success information message\r\n this.onSuccessCallback();\r\n }\r\n }\r\n\r\n setAction() {\r\n let func = () => {\r\n const action = this.doubleListBoxView.getAction();\r\n\r\n this.model.set('BatchAction', action);\r\n };\r\n\r\n if (instrumentationSvc.asLoggingStart) {\r\n return instrumentationSvc.asLoggingStart(func,\r\n this.isNewAudienceEnabled ? instrumentSetting.ACTIVITYNAME.SaveBulkEditTargetingExclusionByDmp : instrumentSetting.ACTIVITYNAME.SaveBulkEditTargetingExclusion,\r\n this.isNewAudienceEnabled ? instrumentSetting.SCENARIONAME.BulkEditTargetingExclusionByDmp : instrumentSetting.SCENARIONAME.BulkEditTargetingExclusion)();\r\n } else {\r\n return func();\r\n }\r\n }\r\n\r\n getIdFilter() {\r\n return filterHelper.getAdGroupIdFilterExcludingContentOnly(this.grid);\r\n }\r\n\r\n getProgressText() {\r\n return i18n.get('BulkEdit_AudienceAssociation_ProgressText');\r\n }\r\n\r\n _formatAssociation(rows) {\r\n return this.formatAssociation(rows);\r\n }\r\n\r\n formatPreviewResults(results) {\r\n return this._formatAssociation(results);\r\n }\r\n\r\n formatErrors(errors) {\r\n return this._formatAssociation(errors);\r\n }\r\n}\r\n","import { AudienceCampaignCreationWizard } from '@bingads-webui-campaign/audience-campaign-creation-wizard';\r\nimport { AudienceAdgroupCreationWizard } from '@bingads-webui-campaign/audience-adgroup-creation-wizard';\r\nimport { AudienceAdgroupSettingsWizard } from '@bingads-webui-campaign/audience-adgroup-settings-wizard';\r\nimport { AudienceAdvancedTargetSettings } from '@bingads-webui-campaign/audience-advanced-target-settings';\r\nimport { AudienceTargetInfo } from '@bingads-webui-campaign/audience-target-info';\r\nimport { DependencyResolver } from '@bingads-webui-campaign/dependency-resolver';\r\nimport {\r\n Campaign,\r\n AdGroup,\r\n ResponsiveAd,\r\n ShoppingCampaign,\r\n} from '@bingads-webui-campaign/campaign-ui-schemas';\r\n\r\nimport SharedBudgetView from '@bingads-webui-campaign-legacy/shared-budget/view/shared-budget-switch-editor';\r\nimport ShoppingSettingsView from '@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/shopping-settings';\r\nimport Budget from '@bingads-webui-campaign-legacy/budget/view/budget';\r\nimport BudgetPanel from '@bingads-webui-campaign-legacy/budget/view/budget-panel';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport timeZoneMapper from '@bingads-webui-component-legacy/timezonemapper/index';\r\nimport BiddingStrategyView from '@bingads-webui-campaign-legacy/bidding-strategy/view/setting';\r\nimport biddingStrategyTypes from '@bingads-webui-campaign-legacy/bidding-strategy/bidding-strategy-type';\r\nimport LocationTargetsView from '@bingads-webui-campaign-legacy/location-targets/view/locationTargets';\r\nimport AdScheduleView from '@bingads-webui-campaign-legacy/ad-schedule/view/index';\r\nimport CopySettings from '@bingads-webui-campaign-legacy/adgroup-create-advanced/view/copy-adgroup-settings';\r\nimport * as criterionLoader from '@bingads-webui-campaign-legacy/base-targets/util/criterionLoader';\r\nimport UrlEditor from '@bingads-webui-component-legacy/url-input/view/url-input';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport * as i18nErrors from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport Searchbox from '@bingads-webui-component-legacy/searchbox/view/searchbox';\r\nimport pgrid from '@bingads-webui-component-legacy/github/modules/projection-grid/module/projection-grid';\r\nimport { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport SuccessDialog from '@bingads-webui-campaign-legacy/campaign-create-advanced/view/success-dialog';\r\nimport stateManager from '@bingads-webui-component-legacy/statemanager/campaignStateManager';\r\nimport Constants from '@bingads-webui-static-legacy/constants';\r\nimport { AimAudienceAssociationView } from '@bingads-webui-campaign-legacy/audience-association/view/aim-component-view';\r\nimport UrlOptions from '@bingads-webui-component-legacy/upgraded-url/view/urlOptionsV2';\r\nimport urlOptionsTemplate from '@bingads-webui-campaign-legacy/advanced-settings/template/url-options.pug';\r\nimport AdvancedSettingsUrlOptions from '@bingads-webui-component-legacy/upgraded-url/view/advancedSettingsUrlOptions';\r\nimport AdRotationView from '@bingads-webui-campaign-legacy/advanced-settings/view/ad-rotation';\r\nimport BaseExclusionView from '@bingads-webui-campaign-legacy/advanced-settings/view/base-exclusion';\r\nimport exclusionRepository from '@bingads-webui-campaign-legacy/advanced-settings/util/exclusion-repository';\r\nimport edmCampaign from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport summaryDataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport preferences from '@bingads-webui-component-legacy/preference/service/index';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport ToggleView from '@bingads-webui-component-legacy/toggle/view/index';\r\nimport eventDispatcher from '@bingads-webui-component-legacy/event-dispatcher/index';\r\nimport * as TestUurl from '@bingads-webui-component-legacy/upgraded-url/service/testUurl';\r\nimport {\r\n targetConstants,\r\n BaseTargetUpdateView,\r\n targetTypes,\r\n} from '@bingads-webui-campaign-legacy/base-targets/index';\r\nimport ko_schema from '@bingads-webui-component-legacy/ko-schema/index'; // eslint-disable-line\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport CopyCampaignSetting from '@bingads-webui-campaign-legacy/crud-campaign/view/copy-campaign-settings';\r\nimport ActionLanguageAdapter from '@bingads-webui-campaign-legacy/adextension-actionlink/view/language-adapter';\r\nimport ActionTypeAdapter from '@bingads-webui-campaign-legacy/adextension-actionlink/view/action-type-adapter';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/audience-campaign');\r\n\r\nDependencyResolver.set('component/config/index', config);\r\nDependencyResolver.set('component/preference/service/index', preferences);\r\nDependencyResolver.set('campaignui/feature/shared-budget/view/shared-budget-switch-editor', SharedBudgetView);\r\nDependencyResolver.set('campaignui/feature/budget/view/budget', Budget);\r\nDependencyResolver.set('component/js-data-campaign/index', jsdata);\r\nDependencyResolver.set('$/schema!campaign/Campaign', Campaign);\r\nDependencyResolver.set('$/schema!campaign/AdGroup', AdGroup);\r\nDependencyResolver.set('$/schema!campaign/ResponsiveAd', ResponsiveAd);\r\nDependencyResolver.set('@bingads-webui/i18n-amd-loader!campaignui/feature/audience-campaign', i18n);\r\n\r\n// Remove this once dependencies in audience-campaign project are moved to use @bingads-webui/i18n-amd-loader\r\nDependencyResolver.set('component/i18n/loader!campaignui/feature/audience-campaign', i18n);\r\n\r\nDependencyResolver.set('component/timezonemapper/index', timeZoneMapper);\r\nDependencyResolver.set('campaignui/feature/location-targets/view/locationTargets', LocationTargetsView);\r\nDependencyResolver.set('component/url-input/view/url-input', UrlEditor);\r\nDependencyResolver.set('component/api-errors-campaign/index', i18nErrors);\r\nDependencyResolver.set('component/upgraded-url/view/urlOptionsV2', UrlOptions);\r\nDependencyResolver.set('$/schema!dynamicdb/ShoppingCampaign', ShoppingCampaign);\r\nDependencyResolver.set('campaignui/feature/shopping-campaign/view/campaign-creation/shopping-settings', ShoppingSettingsView);\r\nDependencyResolver.set('campaignui/feature/bidding-strategy/bidding-strategy-type', biddingStrategyTypes);\r\nDependencyResolver.set('campaignui/feature/bidding-strategy/view/setting', BiddingStrategyView);\r\nDependencyResolver.set('campaignui/feature/budget/view/budget-panel', BudgetPanel);\r\nDependencyResolver.set('campaignui/feature/ad-schedule/view/index', AdScheduleView);\r\nDependencyResolver.set('component/state/index', state);\r\nDependencyResolver.set('component/http/channel/odata', odata);\r\nDependencyResolver.set('component/searchbox/view/searchbox', Searchbox);\r\nDependencyResolver.set('component/github/projection-grid', pgrid);\r\nDependencyResolver.set('component/bingads-grid/shared/column', bingadsGridColumn);\r\nDependencyResolver.set('campaignui/feature/base-targets/viewmodel/targetConstants', targetConstants);\r\nDependencyResolver.set('campaignui/feature/base-targets/view/baseUpdate', BaseTargetUpdateView);\r\nDependencyResolver.set('campaignui/feature/base-targets/viewmodel/targetTypes', targetTypes);\r\nDependencyResolver.set('campaignui/feature/bidding-strategy/view/setting', BiddingStrategyView);\r\nDependencyResolver.set('audienceCampaignPageContext', {\r\n CurrentAccount: pageContext.CurrentAccount,\r\n CurrentCustomerId: pageContext.CurrentCustomer.Id,\r\n isFilterCriterionLevelAdGroup: pageContext.Permissions.isFilterCriterionLevelAdGroup,\r\n});\r\nDependencyResolver.set('Constants', Constants);\r\nDependencyResolver.set('campaignui/feature/campaign-create-advanced/view/success-dialog', SuccessDialog);\r\nDependencyResolver.set('component/statemanager/campaignStateManager', stateManager);\r\nDependencyResolver.set('campaignui/feature/adgroup-create-advanced/view/copy-adgroup-settings', CopySettings);\r\nDependencyResolver.set('campaignui/feature/audience/association/view/aim-component-view', AimAudienceAssociationView);\r\nDependencyResolver.set('campaignui/feature/base-targets/util/criterionLoader', criterionLoader);\r\nDependencyResolver.set('component/upgraded-url/view/advancedSettingsUrlOptions', AdvancedSettingsUrlOptions);\r\nDependencyResolver.set('campaignui/feature/advanced-settings/template/url-options', urlOptionsTemplate);\r\nDependencyResolver.set('campaignui/feature/advanced-settings/view/ad-rotation', AdRotationView);\r\nDependencyResolver.set('campaignui/feature/advanced-settings/util/exclusion-repository', exclusionRepository);\r\nDependencyResolver.set('campaignui/feature/advanced-settings/view/base-exclusion', BaseExclusionView);\r\nDependencyResolver.set('component/edm-campaign/index', edmCampaign);\r\nDependencyResolver.set('SummaryDataContextManager', summaryDataContextManager);\r\nDependencyResolver.set('campaignui/feature/instrumentation/index', instrumentation);\r\nDependencyResolver.set('component/toggle/view/index', ToggleView);\r\nDependencyResolver.set('component/event-dispatcher/index', eventDispatcher);\r\nDependencyResolver.set('component/upgraded-url/service/testUurl', TestUurl);\r\nDependencyResolver.set('PageContext', pageContext);\r\nDependencyResolver.set('component/ko-schema/index', ko_schema);\r\nDependencyResolver.set('component/humanize/decimal', decimal);\r\nDependencyResolver.set('crud-campaign/view/copy-campaign-settings', CopyCampaignSetting);\r\nDependencyResolver.set('campaignui/feature/adextension/actionlink/view/language-adapter', ActionLanguageAdapter);\r\nDependencyResolver.set('campaignui/feature/adextension/actionlink/view/action-type-adapter', ActionTypeAdapter);\r\n\r\nexport {\r\n AudienceCampaignCreationWizard,\r\n AudienceAdgroupCreationWizard,\r\n AudienceAdgroupSettingsWizard,\r\n AudienceAdvancedTargetSettings,\r\n AudienceTargetInfo,\r\n};\r\n","import Promise from 'bluebird';\r\n\r\nimport { DependencyResolver } from '@bingads-webui-campaign/dependency-resolver';\r\n\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport { ResponsiveAd } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport * as i18nErrors from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport Constants from '@bingads-webui-static-legacy/constants';\r\nimport UrlEditor from '@bingads-webui-component-legacy/url-input/view/url-input';\r\nimport UrlOptions from '@bingads-webui-component-legacy/upgraded-url/view/urlOptionsV2';\r\nimport * as TestUurl from '@bingads-webui-component-legacy/upgraded-url/service/testUurl';\r\nimport edmCampaign from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport ActionLanguageAdapter from '@bingads-webui-campaign-legacy/adextension-actionlink/view/language-adapter';\r\nimport ActionTypeAdapter from '@bingads-webui-campaign-legacy/adextension-actionlink/view/action-type-adapter';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport preferences from '@bingads-webui-component-legacy/preference/service/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/audience-campaign');\r\n\r\nDependencyResolver.set('component/js-data-campaign/index', jsdata);\r\nDependencyResolver.set('$/schema!campaign/ResponsiveAd', ResponsiveAd);\r\nDependencyResolver.set('component/i18n/loader!campaignui/feature/audience-campaign', i18n);\r\nDependencyResolver.set('component/url-input/view/url-input', UrlEditor);\r\nDependencyResolver.set('component/api-errors-campaign/index', i18nErrors);\r\nDependencyResolver.set('component/upgraded-url/view/urlOptionsV2', UrlOptions);\r\nDependencyResolver.set('component/upgraded-url/service/testUurl', TestUurl);\r\nDependencyResolver.set('component/state/index', state);\r\nDependencyResolver.set('component/http/channel/odata', odata);\r\nDependencyResolver.set('component/config/index', config);\r\nDependencyResolver.set('Constants', Constants);\r\nDependencyResolver.set('component/edm-campaign/index', edmCampaign);\r\nDependencyResolver.set('campaignui/feature/adextension/actionlink/view/language-adapter', ActionLanguageAdapter);\r\nDependencyResolver.set('campaignui/feature/adextension/actionlink/view/action-type-adapter', ActionTypeAdapter);\r\nDependencyResolver.set('campaignui/feature/instrumentation/index', instrumentation);\r\nDependencyResolver.set('component/preference/service/index', preferences);\r\n\r\nlet loadResponsiveAdEditorPromise = null;\r\n\r\nconst loadResponsiveAdEditorAsync = () => {\r\n if (!loadResponsiveAdEditorPromise) {\r\n loadResponsiveAdEditorPromise = new Promise((resolve) => {\r\n import(/* webpackMode: 'eager' */ '@bingads-webui-campaign/responsive-ad-editor')\r\n .then((ResponsiveAdEditorModule) => {\r\n resolve(ResponsiveAdEditorModule.ResponsiveAdEditor);\r\n });\r\n });\r\n }\r\n\r\n return loadResponsiveAdEditorPromise;\r\n};\r\n\r\nexport { loadResponsiveAdEditorAsync };\r\n","import _ from 'underscore';\r\nimport preferencesService from '@bingads-webui-component-legacy/preference/service/index';\r\nimport {PaginationView} from '@bingads-webui-component-legacy/github/modules/pagination-control/module/pagination-control';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/bingadsgrid');\r\n\r\nconst patchTemplate = (template, defaults) => (options) => template(_.defaults(options, defaults));\r\n\r\nexport default (definePlugin) => definePlugin('pagination', ['config', 'gridView', 'projection'], (config, gridView, projection) => {\r\n const paginationConfig = {\r\n el: config.pluginsConfig.pagination.container,\r\n template: patchTemplate(config.pluginsConfig.pagination.template, {\r\n pageNumberLabelText: i18n.get('Grid_Page_Colon'),\r\n }),\r\n pageSize: config.pageable && config.pageable.pageSize,\r\n availablePageSizes: config.pageable && config.pageable.availablePageSizes,\r\n pageSizeText: i18n.get('Grid_ShowRows'),\r\n totalPageCountText: i18n.get('Grid_PageOf'),\r\n pageNumber: 0,\r\n previousPageText: i18n.get('Component_Pagination_PreviousPage'),\r\n nextPageText: i18n.get('Component_Pagination_NextPage'),\r\n enableRandomPage: config.pluginsConfig.pagination.enableRandomPage,\r\n };\r\n\r\n const pager = new PaginationView(paginationConfig);\r\n\r\n gridView.on('change:data', (model) => {\r\n // merge page info between pager and projection;\r\n pager.itemCount = model.get('count');\r\n pager.pageSize = projection.get('page.size');\r\n pager.pageNumber = projection.get('page.number');\r\n if (model.get('count') > 0) {\r\n pager.$el.show();\r\n } else {\r\n pager.$el.hide();\r\n }\r\n });\r\n\r\n pager.on('change:page-number', (pageNumber) => {\r\n projection.set('page.number', pageNumber);\r\n });\r\n\r\n pager.on('change:page-size', (pageSize) => {\r\n projection.set('page.size', pageSize);\r\n\r\n preferencesService.setAtUserLevel({ Name: 'WebApp.CampaignUI.grid', Data: { rowsPerPage: pageSize } });\r\n });\r\n\r\n return pager;\r\n});\r\n","export default {\r\n singleLine: (categoryName) => {\r\n return categoryName.replace(new RegExp('/', 'g'), '>').replace(new RegExp('>$'), '');\r\n },\r\n multiLine: (categoryName) => {\r\n return categoryName.replace(new RegExp('/$'), '').replace(new RegExp('/', 'g'), '>/').split('/');\r\n },\r\n};\r\n","import _ from 'underscore';\r\nimport '@bingads-webui/kendo/kendo.autocomplete';\r\nimport {data as kendoData} from '@bingads-webui/kendo/kendo.data';\r\nimport Backbone from 'backbone';\r\nimport Searchbox from '@bingads-webui-component-legacy/searchbox/view/searchbox';\r\nimport convert from '@bingads-webui-campaign-legacy/auto-targets/service/convert';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = options;\r\n this.searchBox = new Searchbox({\r\n defaultText: i18n.get('DSA_AutoTargets_Searchbox_Placeholder'),\r\n });\r\n this.searchBox.on('search', (value) => {\r\n this.trigger('search', value);\r\n });\r\n }\r\n\r\n render() {\r\n this.$el.append(this.searchBox.render().el);\r\n }\r\n\r\n load() {\r\n return this.options.dataSource().then((categories) => {\r\n this.$('input').kendoAutoComplete({\r\n dataSource: new kendoData.DataSource({\r\n serverFiltering: true,\r\n data: categories,\r\n schema: {\r\n parse: (data) => {\r\n const value = _.result(this.$('input').data('kendoAutoComplete'), 'value');\r\n\r\n if (_.isUndefined(value)) {\r\n return data;\r\n } else {\r\n const pattern = new RegExp(`(^|/)${value.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')}`, 'i');\r\n const result = _.filter(data, (item) => {\r\n return pattern.test(item.CategoryName);\r\n });\r\n\r\n // only show first level cateogry if we have more than 100 matches\r\n if (result.length <= 100) {\r\n return result;\r\n } else {\r\n return _.filter(result, (item) => {\r\n return !(/\\/.+/).test(item.CategoryName);\r\n });\r\n }\r\n }\r\n },\r\n },\r\n }),\r\n dataTextField: 'CategoryName',\r\n highlightFirst: true,\r\n height: 280,\r\n template: `#: (${convert.singleLine.toString()})(CategoryName) #`,\r\n select: (e) => {\r\n const name = e.sender.dataItem(e.item.index()).CategoryName;\r\n\r\n this.searchBox.ko_model.value(name);\r\n this.trigger('search', name);\r\n },\r\n });\r\n return this;\r\n });\r\n }\r\n}\r\n","import Searchbox from '@bingads-webui-campaign-legacy/auto-targets/view/category-targets/searchBoxWithAutoSuggestion';\r\n\r\nexport default (definePlugin) => {\r\n return definePlugin('autoSuggestionSearchBox', ['config', 'projection'], (config, projection) => {\r\n const searchbox = new Searchbox({\r\n el: config.pluginsConfig.autoSuggestionSearchBox.el,\r\n dataSource: config.pluginsConfig.autoSuggestionSearchBox.dataSource,\r\n });\r\n\r\n searchbox.on('search', (value) => {\r\n if (value) {\r\n projection.set('filter', {\r\n $or: [\r\n {\r\n CategoryName: {\r\n $startswith: value,\r\n },\r\n },\r\n {\r\n CategoryName: {\r\n $contains: `/${value}`,\r\n },\r\n },\r\n ],\r\n });\r\n } else {\r\n projection.set({'filter': {}, 'page.number': 0 });\r\n }\r\n });\r\n\r\n return searchbox;\r\n });\r\n};\r\n","\r\nexport const languageCodeMap = {\r\n '(Afan) Oromo': 'om',\r\n Abkhazian: 'ab',\r\n Afar: 'aa',\r\n Afrikaans: 'af',\r\n Albanian: 'sq',\r\n Amharic: 'am',\r\n Arabic: 'ar',\r\n Armenian: 'hy',\r\n Assamese: 'as',\r\n Aymara: 'ay',\r\n Azerbaijani: 'az',\r\n Bashkir: 'ba',\r\n Basque: 'eu',\r\n Bengali: 'bn',\r\n Bhutani: 'dz',\r\n Bihari: 'bh',\r\n Bislama: 'bi',\r\n Bosnian: 'bs',\r\n Breton: 'br',\r\n Bulgarian: 'bg',\r\n Burmese: 'my',\r\n Byelorussian: 'be',\r\n Cambodian: 'km',\r\n Catalan: 'ca',\r\n Chinese: 'zh',\r\n Corsican: 'co',\r\n Croatian: 'hr',\r\n Czech: 'cs',\r\n Danish: 'da',\r\n Dari: 'prs',\r\n Dutch: 'nl',\r\n English: 'en',\r\n Esperanto: 'eo',\r\n Estonian: 'et',\r\n Faeroese: 'fo',\r\n Fiji: 'fj',\r\n Finnish: 'fi',\r\n French: 'fr',\r\n Frisian: 'fy',\r\n Galician: 'gl',\r\n Georgian: 'ka',\r\n German: 'de',\r\n Greek: 'el',\r\n Greenlandic: 'kl',\r\n Guarani: 'gn',\r\n Gujarati: 'gu',\r\n Hausa: 'ha',\r\n Hebrew: 'iw',\r\n Hindi: 'hi',\r\n Hungarian: 'hu',\r\n Icelandic: 'is',\r\n Indonesian: 'id',\r\n Interlingua: 'ia',\r\n Interlingue: 'ie',\r\n Inupiak: 'ik',\r\n Irish: 'ga',\r\n Italian: 'it',\r\n Japanese: 'ja',\r\n Javanese: 'jv',\r\n Kannada: 'kn',\r\n Kashmiri: 'ks',\r\n Kazakh: 'kk',\r\n Kinyarwanda: 'rw',\r\n Kirghiz: 'ky',\r\n Kirundi: 'rn',\r\n Korean: 'ko',\r\n Kurdish: 'ku',\r\n Laothian: 'lo',\r\n Latin: 'la',\r\n Latvian: 'lv',\r\n Lingala: 'ln',\r\n Lithuanian: 'lt',\r\n Macedonian: 'mk',\r\n Malagasy: 'mg',\r\n Malay: 'ms',\r\n Malayalam: 'ml',\r\n Maltese: 'mt',\r\n Maori: 'mi',\r\n Marathi: 'mr',\r\n Moldavian: 'mo',\r\n Mongolian: 'mn',\r\n Nauru: 'na',\r\n Nepali: 'ne',\r\n Norwegian: 'nb',\r\n Occitan: 'oc',\r\n Oriya: 'or',\r\n Pashto: 'ps',\r\n Persian: 'fa',\r\n Polish: 'pl',\r\n Portuguese: 'pt',\r\n Punjabi: 'pa',\r\n Quechua: 'qu',\r\n 'Rhaeto-Romance': 'rm',\r\n Romanian: 'ro',\r\n Russian: 'ru',\r\n Samoan: 'sm',\r\n Sangro: 'sg',\r\n Sanskrit: 'sa',\r\n 'Scots Gaelic': 'gd',\r\n Serbian: 'sr',\r\n 'Serbo-Croatian': 'sh',\r\n Sesotho: 'st',\r\n Setswana: 'tn',\r\n Shona: 'sn',\r\n 'Simplified Chinese': 'zh-hans',\r\n Sindhi: 'sd',\r\n Singhalese: 'si',\r\n Siswati: 'ss',\r\n Slovak: 'sk',\r\n Slovenian: 'sl',\r\n Somali: 'so',\r\n Spanish: 'es',\r\n Sundanese: 'su',\r\n Swahili: 'sw',\r\n Swedish: 'sv',\r\n Tagalog: 'tl',\r\n Tajik: 'tg',\r\n Tamil: 'ta',\r\n Tatar: 'tt',\r\n Telugu: 'te',\r\n Thai: 'th',\r\n Tibetan: 'bo',\r\n Tigrinya: 'ti',\r\n 'Tonga (Nyasa)': 'to',\r\n Tsonga: 'ts',\r\n Turkish: 'tr',\r\n Turkmen: 'tk',\r\n Twi: 'tw',\r\n Ukrainian: 'uk',\r\n Urdu: 'ur',\r\n Uzbek: 'uz',\r\n Vietnamese: 'vi',\r\n Volapuk: 'vo',\r\n Welsh: 'cy',\r\n Wolof: 'wo',\r\n Xhosa: 'xh',\r\n Yiddish: 'ji',\r\n Yoruba: 'yo',\r\n Zulu: 'zu',\r\n};\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport template from '@bingads-webui-campaign-legacy/auto-targets/template/category-targets/category-grid.pug';\r\nimport addToListTmpl from '@bingads-webui-campaign-legacy/auto-targets/template/category-targets/addToList.pug';\r\nimport categoryNameTmpl from '@bingads-webui-campaign-legacy/auto-targets/template/category-targets/categoryName.pug';\r\nimport categoryNameHeaderTmpl from '@bingads-webui-campaign-legacy/auto-targets/template/category-targets/categoryNameHeader.pug';\r\n\r\nimport pgrid from '@bingads-webui-component-legacy/github/modules/projection-grid/module/projection-grid';\r\nimport jsdataCampaign from '@bingads-webui-component-legacy/js-data-campaign/index';\r\n\r\nimport paginationPlugin from '@bingads-webui-campaign-legacy/bingadsgrid/plugin/pagination';\r\nimport paginationTemplate from '@bingads-webui-component-legacy/bingads-grid/template/pagination.pug';\r\nimport searhBoxPlugin from '@bingads-webui-campaign-legacy/auto-targets/view/category-targets/autoSuggestionSearchBoxPlugin';\r\n\r\nimport uiBlocker from '@bingads-webui-component-legacy/uiblocker/service/uiBlocker';\r\nimport convert from '@bingads-webui-campaign-legacy/auto-targets/service/convert';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\n\r\nimport instrumentationService from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport instrumentationSettings from '@bingads-webui-static-legacy/instrumentation/campaignSchemaAndSetting';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\n\r\nimport { DoubleListA11yHacker } from '@bingads-webui-campaign-legacy/auto-targets/view/double-list-a11y-hacker';\r\nimport { languageCodeMap } from '@bingads-webui-campaign-legacy/auto-targets/view/category-targets/const';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\nconst categorySchema = window.globalLegacySchema.get('CategoryTarget');\r\n\r\nexport default class Categories extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = options;\r\n this.previousCategoryScope = [];\r\n this.currentCategoryScope = ko.observable('');\r\n this.odataQuery = this._convert2JSDataQuery(this.options.setting);\r\n this.odataOptions = {\r\n path: 'AdInsight/V2/',\r\n url: '/Customers(:advertisercustomer_id)/Accounts(:account_id)/Default.DSACategoryList',\r\n };\r\n this.isInternalUpdate = false;\r\n this.isContainerHidden = options.isContainerHidden;\r\n }\r\n\r\n //this is work around, RnR team will convert it\r\n _convert2JSDataQuery({\r\n Language = 'en',\r\n DomainName = '',\r\n }) {\r\n let domainName = _.isString(DomainName) ? DomainName.toLowerCase() : '';\r\n let languageCode = _.result(languageCodeMap, Language, Language);\r\n\r\n return {domainName, languageCode};\r\n }\r\n\r\n render() {\r\n const pageSize = 1000;\r\n const self = this;\r\n const minRoundCoverage = 0.0001;\r\n\r\n _.invoke([instrumentationService], 'startScenario', instrumentationSettings.SCENARIONAME.DynamicSearchAd);\r\n _.invoke([instrumentationService], 'startActivity', instrumentationSettings.ACTIVITYNAME.LoadCategoryGrid);\r\n\r\n self.$el.html(template({ i18n }));\r\n self.$grid = self.$('.grid-table');\r\n self.grid = pgrid.factory()\r\n .use(paginationPlugin)\r\n .use(searhBoxPlugin)\r\n .create({\r\n name: i18n.get('DSA_AutoTargets_Category_Grid_Name'),\r\n el: self.$grid,\r\n dataSource: {\r\n type: 'js-data',\r\n resource: jsdataCampaign.CategoryTarget,\r\n schema: categorySchema,\r\n query: self.odataQuery,\r\n options: self.odataOptions,\r\n },\r\n columns: [{\r\n name: 'CategoryName',\r\n sortable: true,\r\n filterable: true,\r\n headerAttributes: {\r\n 'aria-label': i18n.get('DSA_AutoTargets_Category_Grid_Column_Header_Name'),\r\n 'tabindex': '0',\r\n 'data-name': 'CategoryName',\r\n 'aria-sort': 'none',\r\n 'class': 'clickable',\r\n },\r\n popupId: 'pop_BA_CampaignCreate_Keywords_RecommendedCatsColumn',\r\n headerTemplate() {\r\n return categoryNameHeaderTmpl({title: i18n.get('DSA_AutoTargets_Category_Grid_Column_Header_Name'), i18n});\r\n },\r\n template(local) {\r\n const categoryName = local.model.CategoryName;\r\n\r\n return categoryNameTmpl({\r\n isParent: (/.*\\/$/).test(categoryName),\r\n categoryNames: _.map(convert.multiLine(categoryName), (line, index, list) => {\r\n return {\r\n name: line,\r\n isTail: index === list.length - 1,\r\n };\r\n }),\r\n ariaLabel: i18n.get('DSA_AutoTargets_Category_Grid_To_Next_Level').replace('{0}', categoryName.replace(/\\/$/, '')),\r\n });\r\n },\r\n }, {\r\n name: 'Coverage',\r\n title: i18n.get('DSA_AutoTargets_Category_Grid_Column_Header_Coverage'),\r\n sortable: true,\r\n filterable: false,\r\n popupId: 'pop_BA_CampaignCreate_Keywords_WebsiteCoverage',\r\n headerAttributes: {\r\n 'aria-label': i18n.get('DSA_AutoTargets_Category_Grid_Column_Header_Coverage'),\r\n 'tabindex': '0',\r\n 'data-name': 'Coverage',\r\n 'aria-sort': 'none',\r\n 'class': 'clickable',\r\n },\r\n template(local) {\r\n return addToListTmpl({\r\n i18n,\r\n value: local.model.Coverage < minRoundCoverage && local.model.Coverage > 0 ? i18n.get('Website_Coverage_Less_01') : decimal.fromFloatToPercentString(local.model.Coverage * 100),\r\n hideAddToList: self.options.hideAddToList,\r\n disableItem: _.find(_.result(self.options, 'selectedItems', []), (selected) => {\r\n return selected.type === 'category' &&\r\n _.first(selected.conditions).ArgumentOperand.toString() === local.model.CategoryName;\r\n }),\r\n ariaLabel: `${i18n.getString('DoubleListBox_Select')} ${local.model.CategoryName.replace(/\\/$/, '')}`,\r\n });\r\n },\r\n }],\r\n pageable: {\r\n pageSize,\r\n availablePageSizes: [pageSize],\r\n },\r\n pluginsConfig: {\r\n autoSuggestionSearchBox: {\r\n el: self.$('.autoSuggSearchBoxContainer'),\r\n dataSource: () => {\r\n //TODO: remove the log after debugging\r\n if (_.isEmpty(self.odataQuery.domainName)) {\r\n const stack = new Error().stack;\r\n\r\n instrumentationService.logError('Categories-AutoSuggestion', `domainName is empty\\t${stack}`);\r\n }\r\n\r\n return jsdataCampaign.CategoryTarget.findAll({\r\n query: _.extend({$select: 'CategoryName', $top: 20000}, self.odataQuery),\r\n }, _.defaults({cacheResponse: false}, self.odataOptions));\r\n },\r\n },\r\n pagination: {\r\n container: self.$('.pager'),\r\n template: paginationTemplate,\r\n },\r\n },\r\n });\r\n\r\n self.grid.gridView.on('layout:click:cell', self._gridClicked.bind(self));\r\n self.grid.gridView.on('update:beginning', () => {\r\n if (this.isInternalUpdate) {\r\n this.isInternalUpdate = false;\r\n } else {\r\n self.uiBlockerToken = uiBlocker.block(self.$grid);\r\n }\r\n });\r\n self.grid.gridView.on('layout:click:header', (event) => {\r\n const name = this.$(event.target).closest('th').attr('data-name');\r\n\r\n self.grid.gridView.once('update:finished', () => _.defer(() => {\r\n const el = this.$(`th[data-name=\"${name}\"]`).get(0);\r\n const columns = _.chain(self.grid.gridView)\r\n .result('layout')\r\n .result('data')\r\n .result('columns')\r\n .value();\r\n const targetColumn = columns[name];\r\n const dir = _.chain(targetColumn)\r\n .result('$orderby')\r\n .result('dir')\r\n .value();\r\n const isAsc = dir === 1;\r\n const isDesc = dir === -1;\r\n\r\n if (el) {\r\n el.focus();\r\n }\r\n\r\n if (isAsc) {\r\n this.$(el).attr('aria-sort', 'ascending');\r\n } else if (isDesc) {\r\n this.$(el).attr('aria-sort', 'descending');\r\n } else {\r\n this.$(el).attr('aria-sort', 'none');\r\n }\r\n }));\r\n });\r\n\r\n if (ko.isObservable(self.isContainerHidden)) {\r\n self.isContainerHidden.subscribe((newValue) => {\r\n if (self.uiBlockerToken && newValue === false) {\r\n self.uiBlockerToken = uiBlocker.block(self.$grid, self.uiBlockerToken);\r\n }\r\n });\r\n }\r\n\r\n const a11yHacker = new DoubleListA11yHacker({\r\n rootSelector: '.category-container .grid-table',\r\n listViewSelector: '.category-container .grid-table table.grid tbody',\r\n itemSelector: 'tr',\r\n interactableElementSelector: 'a.next-level, td.col-Coverage .arrow-button.clickable',\r\n listAriaLabel: i18n.get('DSA_AutoTargets_Category_Grid_Name'),\r\n });\r\n\r\n self.grid.gridView.on('update:finished', () => {\r\n _.defer(() => {\r\n a11yHacker.refresh();\r\n });\r\n\r\n const totalRecordCount = self.grid.projection.data.attributes.count;\r\n const searchText = self.grid.autoSuggestionSearchBox.searchBox.ko_model.value();\r\n const isCategoriesEmpty = totalRecordCount === 0 && _.isEmpty(searchText);\r\n\r\n if (isCategoriesEmpty) {\r\n self.$('.grid-container').hide();\r\n _.invoke([instrumentationService], 'startActivity', instrumentationSettings.ACTIVITYNAME.NoCategoryLoadedForWebsite);\r\n } else {\r\n self.$('.grid-container').show();\r\n }\r\n instrumentationService.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, 'IsCategoriesEmpty', `${isCategoriesEmpty}`);\r\n\r\n self.trigger('categoryLoaded', isCategoriesEmpty);\r\n\r\n self.grid.pagination.itemCount = totalRecordCount;\r\n\r\n if ( totalRecordCount < pageSize) {\r\n self.grid.pagination.$el.hide();\r\n }\r\n if (self.uiBlockerToken) {\r\n setTimeout(() => {\r\n uiBlocker.unblock(self.$grid, self.uiBlockerToken);\r\n self.uiBlockerToken = null;\r\n }, 1);\r\n }\r\n\r\n if (self.currentCategoryScope()) {\r\n const $prevLevelIcon = self.$('.glyphicon-arrow-left');\r\n\r\n $prevLevelIcon.css('display', 'block');\r\n $prevLevelIcon.get(0).focus();\r\n }\r\n });\r\n self.grid.gridView.render({ fetch: !_.isEmpty(this.odataQuery.domainName) });\r\n self.grid.pagination.render();\r\n self.grid.autoSuggestionSearchBox.render();\r\n if (!_.isEmpty(this.odataQuery.domainName)) {\r\n this.grid.autoSuggestionSearchBox.load().catch(() => {\r\n self.$('.category-error').show();\r\n });\r\n }\r\n self.currentCategoryScope.subscribe((newValue) => {\r\n self.grid.projection.set({\r\n 'jsdata.query': newValue ? _.extend({ category: newValue }, self.odataQuery) : self.odataQuery,\r\n 'page.number': 0,\r\n });\r\n });\r\n self.$('.grid-table').on('click', '.glyphicon-arrow-left', (e) => {\r\n self.currentCategoryScope(self.previousCategoryScope.pop());\r\n if (!self.currentCategoryScope()) {\r\n self.$('.glyphicon-arrow-left').css('display', 'none');\r\n }\r\n e.stopPropagation();\r\n });\r\n self.on('update:setting', (setting) => {\r\n if (!_.isEmpty(setting.DomainName)) {\r\n self.odataQuery = this._convert2JSDataQuery(setting);\r\n self.grid.projection.set('jsdata.query', this.odataQuery);\r\n self.$('.category-error').hide();\r\n self.grid.autoSuggestionSearchBox.searchBox.ko_model.value('');\r\n self.grid.autoSuggestionSearchBox.load().catch(() => {\r\n self.$('.category-error').show();\r\n });\r\n\r\n // check the disable status of category option in case the request is cached\r\n // and the grid may not be reloaded, thus the categoryLoaded event is not triggered\r\n const totalRecordCount = self.grid.projection.data.attributes.count;\r\n const searchText = self.grid.autoSuggestionSearchBox.searchBox.ko_model.value();\r\n const isCategoriesEmpty = totalRecordCount === 0 && _.isEmpty(searchText);\r\n\r\n self.trigger('categoryLoaded', isCategoriesEmpty);\r\n }\r\n });\r\n self.on('update:items', () => {\r\n this.isInternalUpdate = true;\r\n if (!_.isEmpty(this.odataQuery.DomainName)) {\r\n self.grid.gridView.render({ fetch: true });\r\n }\r\n });\r\n return self;\r\n }\r\n show() {\r\n this.$el.show();\r\n return this;\r\n }\r\n hide() {\r\n this.$el.hide();\r\n return this;\r\n }\r\n _gridClicked(e, data) {\r\n if (e.target && e.target.className && e.target.className.indexOf('arrow-button') > -1) {\r\n if (e.target.className.indexOf('form-control-disabled') < 0) {\r\n this.trigger('selectTarget', this._convertToTarget(data));\r\n }\r\n } else if (e.target && e.target.className && e.target.className.indexOf('next-level') > -1 && data.column.property === 'CategoryName' && _.last(data.model.CategoryName) === '/') {\r\n this.previousCategoryScope.push(this.currentCategoryScope());\r\n this.currentCategoryScope(data.model.CategoryName);\r\n }\r\n }\r\n _convertToTarget(data) {\r\n return {\r\n conditions: [{Operand: 'Category', ArgumentOperand: data.model.CategoryName}],\r\n type: 'category',\r\n };\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\n// import koSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\n\r\n// const webpageCondition = window.globalLegacySchema.get('WebpageCondition');\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\n\r\nexport default class ViewModel {\r\n constructor() {\r\n this.urls = ko.observable('');\r\n\r\n this.values = ko.computed(() => {\r\n const items = this.urls().split(/\\r?\\n/);\r\n\r\n return _.map(items, (item) => {\r\n return {\r\n Operand: 'Url',\r\n ArgumentOperand: item,\r\n Operator: 'Equals',\r\n DisplayOperator: i18n.get('DSA_AutoTargets_Specific_Target_Equals'),\r\n DisplayOperand: i18n.get('DSA_AutoTargets_Specific_Target_Operand_URL'),\r\n };\r\n\r\n });\r\n });\r\n\r\n this.reset = () => {\r\n this.urls('');\r\n };\r\n\r\n this.hasError = ko.observable(false);\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport { filter, difference, contains } from 'underscore';\r\nimport tmpl from '@bingads-webui-campaign-legacy/auto-targets/template/create/exactURLs.pug';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/auto-targets/viewmodel/create/exactURLs';\r\nimport { isValidUrl } from '@bingads-webui/url-util';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\n\r\nconst isValidUrlWithComma = (url) => {\r\n if (contains(url, ',')) {\r\n return isValidUrl(url.replace(',', ''));\r\n }\r\n return isValidUrl(url);\r\n};\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(this.options);\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .addall-button': 'selectTarget',\r\n };\r\n }\r\n\r\n render() {\r\n this.$el.html(tmpl({\r\n i18n,\r\n containerTitle: this.options.isExclude ? i18n.get('DSA_Target_ExactURLs_Container_Title_Exclude') : i18n.get('DSA_Target_ExactURLs_Container_Title'),\r\n }));\r\n ko.applyBindings(this.viewmodel, this.el);\r\n return this;\r\n }\r\n\r\n show() {\r\n this.$el.show();\r\n return this;\r\n }\r\n\r\n hide() {\r\n this.$el.hide();\r\n return this;\r\n }\r\n\r\n selectTarget() {\r\n\r\n let validUrls = filter(this.viewmodel.values(), this.validate);\r\n\r\n // Get invalid urls and filter out empty url\r\n let invalidUrls = difference(this.viewmodel.values(), validUrls).map((condition) => condition.ArgumentOperand).filter((url) => url);\r\n\r\n this.viewmodel.hasError(invalidUrls.length !== 0);\r\n\r\n if (invalidUrls) {\r\n this.viewmodel.urls(invalidUrls.join('\\r\\n'));\r\n } else {\r\n this.viewmodel.reset();\r\n }\r\n\r\n this.trigger('selectTarget', {\r\n conditions: validUrls,\r\n type: 'exacturls',\r\n shouldCheckArgumentOperandFormat: this.options.shouldCheckArgumentOperandFormat,\r\n });\r\n }\r\n\r\n reset() {\r\n this.viewmodel.reset();\r\n }\r\n\r\n validate(condition) {\r\n // Auto patch https for valid url\r\n if (!condition.ArgumentOperand.startsWith('http://') && !condition.ArgumentOperand.startsWith('https://')) {\r\n const isValid = isValidUrlWithComma(`https://${condition.ArgumentOperand}`);\r\n\r\n if (isValid) {\r\n condition.ArgumentOperand = `https://${condition.ArgumentOperand}`;\r\n }\r\n return isValid;\r\n } else {\r\n return isValidUrlWithComma(condition.ArgumentOperand);\r\n }\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport tmpl from '@bingads-webui-campaign-legacy/auto-targets/template/create/specificWebpagePreview.pug';\r\nimport SpecificTargetView from '@bingads-webui-campaign-legacy/auto-targets/view/specific-target';\r\nimport TargetPreviewView from '@bingads-webui-campaign-legacy/auto-targets/view/create/targetPreview';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = options;\r\n }\r\n get events() {\r\n return {\r\n 'click .arrow-button': 'selectTarget',\r\n 'click .preview': 'renderPreview',\r\n };\r\n }\r\n render() {\r\n this.$el.html(tmpl({ i18n }));\r\n this.specificTarget = new SpecificTargetView({\r\n el: this.$('.conditions'),\r\n setting: this.options.setting,\r\n isShowUrlOnly: this.options.isShowUrlOnly,\r\n }).render();\r\n ko.applyBindings(this.specificTarget.viewmodel, this.$('.summary')[0]);\r\n\r\n this.on('update:setting', (setting) => {\r\n this.specificTarget.trigger('update:setting', setting);\r\n });\r\n return this;\r\n }\r\n show() {\r\n this.$el.show();\r\n return this;\r\n }\r\n hide() {\r\n this.$el.hide();\r\n return this;\r\n }\r\n selectTarget() {\r\n this.trigger('selectTarget', {\r\n conditions: this.specificTarget.viewmodel.items(),\r\n type: 'specificpage',\r\n shouldCheckArgumentOperandFormat: this.options.shouldCheckArgumentOperandFormat,\r\n });\r\n }\r\n renderPreview() {\r\n const targetClass = 'popover-operand';\r\n\r\n if (this.previewView) {\r\n this.previewView.close();\r\n }\r\n\r\n if (this.$(`.${targetClass}`).length > 0) {\r\n this.$(`.${targetClass}`).remove();\r\n }\r\n\r\n this.$('.preview-operand').append(``);\r\n\r\n this.previewView = new TargetPreviewView({target: this.$(`.${targetClass}`), conditions: this.specificTarget.viewmodel.items}).render();\r\n }\r\n reset() {\r\n this.specificTarget.viewmodel.reset();\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport tmpl from '@bingads-webui-campaign-legacy/auto-targets/template/create/all-webpage.pug';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\n\r\nexport default class View extends Backbone.View {\r\n get events() {\r\n return {\r\n 'click .arrow-button': 'selectTarget',\r\n };\r\n }\r\n render() {\r\n this.$el.html(tmpl({\r\n i18n,\r\n }));\r\n ko.applyBindings(self.viewModel, this.el);\r\n return this;\r\n }\r\n show() {\r\n this.$el.show();\r\n return this;\r\n }\r\n hide() {\r\n this.$el.hide();\r\n return this;\r\n }\r\n selectTarget() {\r\n this.trigger('selectTarget', {\r\n conditions: [],\r\n type: 'allwebpage',\r\n });\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\n\r\nexport default class ViewModel {\r\n constructor({\r\n setting = {},\r\n }) {\r\n this.selectedItem = ko.observable();\r\n this.disabledItems = ko.observable('');\r\n this.setting = ko.observable(setting);\r\n\r\n this.enableCustomLabel = ko.computed(() => {\r\n const campaignSetting = this.setting();\r\n\r\n return _.result(config.get('Permissions'), 'IsDynamicSearchAdsPageFeedEnabled') && campaignSetting.Source !== 'SystemIndex' && _.size(campaignSetting.Source) > 0;\r\n });\r\n\r\n const permissions = config.get('Permissions');\r\n\r\n const urlEqualsEnabled = permissions && permissions.dynamic && permissions.dynamic.DSAUrlEquals;\r\n\r\n this.radiogroup = ko.computed(() => {\r\n const options = [\r\n {value: 'category', text: i18n.get('DSA_AutoTargets_Dropdown_Title_Category'), popupId: 'pop_BA_CampaignCreate_Keywords_RecommendedCats', isDisabled: this.disabledItems().indexOf('category') >= 0 },\r\n {value: 'allwebpage', text: i18n.get('DSA_AutoTargets_Dropdown_Title_All'), popupId: 'pop_BA_CampaignCreate_Keywords_AllPages', isDisabled: this.disabledItems().indexOf('allwebpage') >= 0},\r\n {value: urlEqualsEnabled ? 'mixedspecificwebpage' : 'specificpage', text: i18n.get('DSA_AutoTargets_Dropdown_Title_Specific'), popupId: 'pop_BA_CampaignCreate_Keywords_SpecificPages', isDisabled: this.disabledItems().indexOf('specificpage') >= 0 },\r\n ];\r\n\r\n if (this.enableCustomLabel()) {\r\n options.push({\r\n value: 'customlabel',\r\n text: i18n.get('DSA_AutoTargets_Dropdown_Title_Custom_Label'),\r\n popupId: 'pop_BA_PageFeeds_CustomLabel',\r\n isDisabled: this.disabledItems().indexOf('customlabel') >= 0,\r\n });\r\n }\r\n return options;\r\n });\r\n\r\n this.radiogroup.subscribe((radios) => {\r\n const radio = _.findWhere(radios, { value: this.selectedItem() });\r\n\r\n if (!radio) {\r\n this.selectedItem('allwebpage');\r\n }\r\n });\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport Backbone from 'backbone';\r\nimport template from '@bingads-webui-campaign-legacy/auto-targets/template/create/radiogroup.pug';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/auto-targets/viewmodel/create/radiogroup';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\n\r\nexport default class DropdownView extends Backbone.View {\r\n initialize(options = {}) {\r\n this.viewmodel = new ViewModel(options);\r\n this.on('update:setting', (setting) => {\r\n this.viewmodel.setting(setting);\r\n });\r\n this.viewmodel.radiogroup.subscribe((radios) => {\r\n this.trigger('change:radiogroup', radios);\r\n });\r\n }\r\n\r\n render() {\r\n this.$el.html(template({ learnMore: i18n.get('Learn_more_link_text') }));\r\n ko.applyBindings(this.viewmodel, this.el);\r\n return this;\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport koSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\nimport tmpl from '@bingads-webui-campaign-legacy/auto-targets/template/create/custom-label.pug';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\nconst webpageCondition = window.globalLegacySchema.get('WebpageCondition');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options) {\r\n this.options = options;\r\n this.viewModel = {};\r\n koSchema.properties(this.viewModel, webpageCondition, ['ArgumentOperand', 'Operand', 'Operator']);\r\n this.viewModel.Operand('CustomLabel'); //eslint-disable-line\r\n this.viewModel.Operator('Equals'); //eslint-disable-line\r\n }\r\n get events() {\r\n return {\r\n 'click .arrow-button': 'selectTarget',\r\n };\r\n }\r\n render() {\r\n this.$el.html(tmpl({\r\n i18n,\r\n }));\r\n ko.applyBindings(this.viewModel, this.el);\r\n return this;\r\n }\r\n reset() {\r\n this.viewModel.ArgumentOperand(''); //eslint-disable-line\r\n this.viewModel.ArgumentOperand.errors([]);\r\n this.viewModel.errors([]);\r\n }\r\n show() {\r\n this.$el.show();\r\n return this;\r\n }\r\n hide() {\r\n this.$el.hide();\r\n return this;\r\n }\r\n selectTarget() {\r\n if (!this.viewModel.validate()) {\r\n return;\r\n }\r\n const condition = {\r\n DisplayOperand: i18n.get('DSA_AutoTargets_Specific_Target_Operand_Custom_Label'),\r\n DisplayOperator: i18n.get('DSA_AutoTargets_Specific_Target_Equals'),\r\n };\r\n\r\n koSchema.properties(condition, webpageCondition, ['ArgumentOperand', 'Operand', 'Operator'], this.viewModel.toObject());\r\n this.trigger('selectTarget', {\r\n conditions: [condition],\r\n type: 'specificpage',\r\n shouldCheckArgumentOperandFormat: this.options.shouldCheckArgumentOperandFormat,\r\n });\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport tmpl from '@bingads-webui-campaign-legacy/auto-targets/template/create/mixedSpecificWebPage.pug';\r\n\r\nimport SpecificTargetView from '@bingads-webui-campaign-legacy/auto-targets/view/create/specificWebPageWithoutPreview';\r\nimport ExactURLsView from '@bingads-webui-campaign-legacy/auto-targets/view/create/exactURLs';\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize() {\r\n this.defaultTarget = 'exacturls';\r\n }\r\n\r\n render() {\r\n\r\n this.$el.html(tmpl({\r\n i18n,\r\n }));\r\n\r\n this.viewSelection = [\r\n {\r\n name: 'specificpage',\r\n instance: new SpecificTargetView({\r\n setting: this.options.setting,\r\n el: this.$('.rules-container'),\r\n shouldCheckArgumentOperandFormat: this.options.shouldCheckArgumentOperandFormat,\r\n isShowUrlOnly: this.options.isShowUrlOnly,\r\n isExclude: this.options.isExclude,\r\n }).render(),\r\n },\r\n {\r\n name: 'exacturls',\r\n instance: new ExactURLsView({\r\n el: this.$('.exacturls-container'),\r\n isExclude: this.options.isExclude,\r\n }).render(),\r\n },\r\n ];\r\n\r\n this.toggleTarget(this.defaultTarget);\r\n this.on('update:selecttarget', (target) => {\r\n this.toggleTarget(target);\r\n });\r\n\r\n _.each(this.viewSelection, (view) => {\r\n view.instance.on({\r\n 'selectTarget': (target) => {\r\n this.trigger('selectTarget', target);\r\n },\r\n });\r\n });\r\n\r\n this.on('update:setting', (setting) => {\r\n _.each(this.viewSelection, (view) => {\r\n view.instance.trigger('update:setting', setting);\r\n });\r\n });\r\n\r\n this.on('update:items', (items) => {\r\n _.each(this.viewSelection, (view) => {\r\n view.instance.trigger('update:items', items);\r\n });\r\n });\r\n\r\n return this;\r\n }\r\n\r\n toggleTarget(target) {\r\n _.each(this.viewSelection, (view) => {\r\n if (view.name === target) {\r\n view.instance.show();\r\n } else {\r\n view.instance.hide();\r\n }\r\n });\r\n }\r\n\r\n show() {\r\n this.$el.show();\r\n return this;\r\n }\r\n\r\n hide() {\r\n this.$el.hide();\r\n return this;\r\n }\r\n\r\n reset(selectedType) {\r\n _.each(this.viewSelection, (view) => {\r\n if (view.name === selectedType) {\r\n view.instance.reset();\r\n }\r\n });\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport { appendLearnMoreLink } from '@bingads-webui-component-legacy/help/index';\r\nimport tmpl from '@bingads-webui-campaign-legacy/auto-targets/template/create/index.pug';\r\nimport CategoryView from '@bingads-webui-campaign-legacy/auto-targets/view/category-targets/category-grid';\r\nimport SpecificTargetView from '@bingads-webui-campaign-legacy/auto-targets/view/create/specificWebPageWithPreview';\r\nimport AllWebpageTargetView from '@bingads-webui-campaign-legacy/auto-targets/view/create/all-webpage';\r\nimport SelectedTargetsView from '@bingads-webui-campaign-legacy/auto-targets/view/create/selectedTargets';\r\nimport RadioGroupView from '@bingads-webui-campaign-legacy/auto-targets/view/create/radiogroup';\r\nimport CustomeLabelView from '@bingads-webui-campaign-legacy/auto-targets/view/create/custom-label';\r\nimport { PillControl } from '@bingads-webui/pill-control';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport MixedSpecificWebPageView from '@bingads-webui-campaign-legacy/auto-targets/view/create/mixedSpecificWebPage';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n if (options.perfMarker) {\r\n this.perfMarker = options.perfMarker.createChild('Show_DSA_Targets_View');\r\n this.perfMarker.willInit();\r\n }\r\n this.options = _.defaults(options, {\r\n updateDomain: (domainName) => {\r\n this.$('.domain-name').text(domainName);\r\n },\r\n showHeader: false,\r\n setting: {},\r\n shouldCheckArgumentOperandFormat: true,\r\n hideWebsiteLabel: false,\r\n });\r\n this.changes = [];\r\n this.isViewHidden = options.isViewHidden;\r\n const permissions = config.get('Permissions');\r\n\r\n this.urlEqualsEnabled = permissions && permissions.dynamic && permissions.dynamic.DSAUrlEquals;\r\n }\r\n render() {\r\n if (this.perfMarker) {\r\n this.perfMarker.willRender();\r\n }\r\n const { DomainName: domainName } = this.options.setting;\r\n\r\n this.$el.html(tmpl({\r\n appendLearnMoreLink,\r\n i18n,\r\n domainName,\r\n showHeader: this.options.showHeader,\r\n showPillControl: this.urlEqualsEnabled,\r\n hideWebsiteLabel: this.options.hideWebsiteLabel,\r\n }));\r\n\r\n if (this.urlEqualsEnabled) {\r\n this.targetSwitcher = new PillControl({\r\n items: [{\r\n value: 'exacturls',\r\n text: i18n.get('DSA_AutoTargets_Editor_Exact_URLs'),\r\n tabPanelId: 'auto-target-exacturls-panel',\r\n }, {\r\n value: 'specificpage',\r\n text: i18n.get('DSA_AutoTargets_Editor_Rules'),\r\n tabPanelId: 'auto-target-rules-panel',\r\n }],\r\n el: this.$('.pill-control'),\r\n }).render();\r\n }\r\n\r\n this.selectedTargetsView = new SelectedTargetsView({\r\n el: this.$('.selected-targets-container'),\r\n defaultBid: this.options.defaultBid,\r\n isForVNext: this.options.isForVNext,\r\n activityLogger: this.options.activityLogger,\r\n isNegativeAutoTarget: this.options.isNegativeAutoTarget,\r\n }).render();\r\n\r\n this.viewSelection = [\r\n {\r\n name: 'category',\r\n instance: new CategoryView({\r\n setting: this.options.setting,\r\n selectedItems: this.selectedTargetsView.viewmodel.items,\r\n el: this.$('.category-container'),\r\n isContainerHidden: this.isViewHidden,\r\n }).render(),\r\n },\r\n {\r\n name: 'allwebpage',\r\n instance: new AllWebpageTargetView({\r\n el: this.$('.allwebpage-container'),\r\n }).render(),\r\n },\r\n {\r\n name: this.urlEqualsEnabled ? 'mixedspecificwebpage' : 'specificpage',\r\n instance: this.urlEqualsEnabled ? new MixedSpecificWebPageView({\r\n setting: this.options.setting,\r\n el: this.$('.mixedspecificwebpage-container'),\r\n shouldCheckArgumentOperandFormat: this.options.shouldCheckArgumentOperandFormat,\r\n isShowUrlOnly: this.options.isShowUrlOnly,\r\n isExclude: this.options.isExclude,\r\n }).render() : new SpecificTargetView({\r\n setting: this.options.setting,\r\n el: this.$('.specificwebpage-container'),\r\n shouldCheckArgumentOperandFormat: this.options.shouldCheckArgumentOperandFormat,\r\n isShowUrlOnly: this.options.isShowUrlOnly,\r\n }).render(),\r\n },\r\n {\r\n name: 'customlabel',\r\n instance: new CustomeLabelView({\r\n setting: this.options.setting,\r\n el: this.$('.autotarget-customlabel-container'),\r\n shouldCheckArgumentOperandFormat: this.options.shouldCheckArgumentOperandFormat,\r\n }).render(),\r\n },\r\n ];\r\n\r\n if (this.urlEqualsEnabled) {\r\n this.targetSwitcher.on('select', (target) => {\r\n _.each(this.viewSelection, (view) => {\r\n view.instance.trigger('update:selecttarget', target.item.value);\r\n });\r\n });\r\n }\r\n\r\n this.selectedTargetsView.on('update:values', (values) => {\r\n const isValidate = this.validate();\r\n\r\n this.trigger('update:value', {\r\n values,\r\n isValidate,\r\n });\r\n if (_.isFunction(this.options.onChange)) {\r\n this.options.onChange(this.getChanges(), isValidate);\r\n }\r\n });\r\n\r\n _.each(this.viewSelection, (view) => {\r\n view.instance.on({\r\n 'selectTarget': (target) => {\r\n if (this.urlEqualsEnabled && view.name === 'mixedspecificwebpage' && target.type === 'exacturls') {\r\n const uniqueConditions = _.uniq(target.conditions);\r\n const conditions = [];\r\n\r\n _.each( uniqueConditions, (condition) => {\r\n conditions.push({\r\n type: target.type,\r\n conditions: [condition],\r\n shouldCheckArgumentOperandFormat: target.shouldCheckArgumentOperandFormat,\r\n });\r\n });\r\n this.selectedTargetsView.viewmodel.addBatch(conditions);\r\n } else {\r\n if (_.indexOf(_.invoke(target.conditions, 'validate'), false) >= 0) {\r\n return; // do not accept any invalid condition\r\n }\r\n\r\n this.selectedTargetsView.viewmodel.add(target);\r\n }\r\n\r\n if (this.urlEqualsEnabled && view.name === 'mixedspecificwebpage' && target.type !== 'exacturls') {\r\n // Reset specific target view\r\n view.instance.reset(target.type);\r\n } else if (view.name === 'specificpage' || view.name === 'customlabel') {\r\n view.instance.reset();\r\n }\r\n },\r\n 'categoryLoaded': (isCategoriesEmpty) => {\r\n if (isCategoriesEmpty) {\r\n if (this.radiogroup.viewmodel.selectedItem() === 'category') {\r\n if (this.options.activityLogger) {\r\n this.options.activityLogger.signal('categories are empty ', 'auto targets');\r\n }\r\n this.radiogroup.viewmodel.selectedItem('allwebpage');\r\n }\r\n this.radiogroup.viewmodel.disabledItems('category');\r\n } else {\r\n this.radiogroup.viewmodel.disabledItems('');\r\n this.radiogroup.viewmodel.selectedItem('category');\r\n }\r\n if (this.perfMarker) {\r\n this.perfMarker.done();\r\n }\r\n },\r\n });\r\n });\r\n\r\n this.selectedTargetsView.on('update:items', (items) => {\r\n _.each(this.viewSelection, (view) => {\r\n view.instance.trigger('update:items', items);\r\n });\r\n });\r\n\r\n this.radiogroup = new RadioGroupView({\r\n el: this.$('.target-type-radiogroup'),\r\n setting: this.options.setting,\r\n selectedItem: this.options.selectedItem,\r\n }).render();\r\n\r\n if (this.options.hideViewSelection) {\r\n this.radiogroup.$el.hide();\r\n }\r\n\r\n this.radiogroup.on('change:radiogroup', () => {\r\n this.selectedTargetsView.viewmodel.clear();\r\n });\r\n\r\n this.radiogroup.viewmodel.selectedItem.subscribe((selectedType) => {\r\n this.toggleView(selectedType);\r\n });\r\n\r\n if (this.options.selectedItem) {\r\n this.radiogroup.viewmodel.selectedItem(this.options.selectedItem);\r\n } else if (this.options.setting && !this.options.setting.DomainName) {\r\n this.radiogroup.viewmodel.selectedItem('allwebpage');\r\n this.radiogroup.viewmodel.disabledItems('category');\r\n this.toggleView('allwebpage');\r\n } else {\r\n this.radiogroup.viewmodel.selectedItem('category');\r\n }\r\n\r\n this.radiogroup.viewmodel.selectedItem.subscribe((value) => {\r\n if (this.options.activityLogger) {\r\n this.options.activityLogger.signal(`ad target option change: ${value}`, 'auto targets');\r\n }\r\n });\r\n\r\n this.on('update:setting', (setting, shouldReserveSelectedItems) => {\r\n const selectedItems = this.selectedTargetsView.viewmodel.items();\r\n\r\n _.each(this.viewSelection, (view) => {\r\n view.instance.trigger('update:setting', setting);\r\n });\r\n\r\n this.options.updateDomain(setting.DomainName);\r\n this.radiogroup.trigger('update:setting', setting);\r\n\r\n if (shouldReserveSelectedItems) {\r\n this.selectedTargetsView.viewmodel.items(selectedItems);\r\n }\r\n });\r\n\r\n this.on('update:bid', (bid) => {\r\n this.selectedTargetsView.viewmodel.adGroupBid(bid);\r\n });\r\n\r\n this.on('errors', (errors) => {\r\n this.selectedTargetsView.setErrors(errors);\r\n });\r\n\r\n return this;\r\n }\r\n\r\n toggleView(selectedType) {\r\n _.each(this.viewSelection, (view) => {\r\n if (view.name === selectedType) {\r\n view.instance.show();\r\n } else {\r\n view.instance.hide();\r\n }\r\n });\r\n\r\n // Show targetSwitcher for specific target\r\n if (this.urlEqualsEnabled) {\r\n if (selectedType === 'mixedspecificwebpage') {\r\n this.targetSwitcher.$el.show();\r\n } else {\r\n this.targetSwitcher.$el.hide();\r\n }\r\n }\r\n }\r\n\r\n validate() {\r\n const isValid = this.selectedTargetsView.validate();\r\n\r\n if (!isValid && this.options.activityLogger) {\r\n this.options.activityLogger.signal('auto target is not valid', 'auto targets');\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n getChanges() {\r\n return this.selectedTargetsView.getChanges();\r\n }\r\n\r\n getValues(adgroupName, campaignName) {\r\n return {\r\n DsaTargets: _.map(this.getChanges(), (target) => {\r\n return _.extend(target, {\r\n AdGroupName: adgroupName,\r\n CampaignName: campaignName,\r\n });\r\n }),\r\n };\r\n }\r\n\r\n updateViewModels(targets) {\r\n this.selectedTargetsView.updateViewModels(targets);\r\n }\r\n\r\n hasChanges() {\r\n return this.selectedTargetsView.viewmodel.hasChanges;\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport koSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nconst s$DsaTarget = window.globalLegacySchema.get('DsaTarget');\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\n\r\nexport default class ViewModel {\r\n constructor(options = {}) {\r\n const permissions = config.get('Permissions');\r\n\r\n this.urlEqualsEnabled = permissions && permissions.dynamic && permissions.dynamic.DSAUrlEquals;\r\n this.keyToItemMapping = {};\r\n this.hasChanges = true;\r\n this.adGroupBid = ko.observable(options.defaultBid);\r\n this.errors = ko.observableArray([]);\r\n this.items = ko.observableArray([]);\r\n this.items.subscribe(() => {\r\n this.hasChanges = true;\r\n }, this);\r\n this.logActivity = (message) => {\r\n if (options.activityLogger) {\r\n options.activityLogger.signal(message, 'ad target selection');\r\n }\r\n };\r\n\r\n this.add = (item) => {\r\n let dsaTarget = this.generateDSATarget(item);\r\n\r\n if (dsaTarget != null) {\r\n this.items.push(dsaTarget);\r\n this.logActivity(`ad target add: ${item.type}`);\r\n }\r\n };\r\n\r\n this.generateDSATarget = (item) => {\r\n const conditionsWithOperator = [];\r\n const conditionsWithoutOperator = [];\r\n const conditionsWithoutDisplayValue = [];\r\n\r\n _.each(item.conditions, (condition) => {\r\n const conditionWithOperator = {\r\n Operand: ko.unwrap(condition.Operand),\r\n Operator: ko.unwrap(condition.Operator),\r\n ArgumentOperand: ko.unwrap(condition.ArgumentOperand),\r\n DisplayOperand: ko.unwrap(condition.DisplayOperand),\r\n DisplayOperator: ko.unwrap(condition.DisplayOperator),\r\n };\r\n\r\n if (conditionWithOperator.ArgumentOperand && item.shouldCheckArgumentOperandFormat) {\r\n conditionWithOperator.ArgumentOperand = this.checkArgumentOperandFormat(conditionWithOperator.ArgumentOperand);\r\n }\r\n conditionsWithOperator.push(conditionWithOperator);\r\n conditionsWithoutDisplayValue.push(_.pick(conditionWithOperator, 'Operand', 'Operator', 'ArgumentOperand'));\r\n conditionsWithoutOperator.push(_.pick(conditionWithOperator, 'Operand', 'ArgumentOperand'));\r\n });\r\n\r\n const key = this.urlEqualsEnabled ? JSON.stringify(conditionsWithoutDisplayValue) : JSON.stringify(conditionsWithoutOperator);\r\n\r\n if (!this.keyToItemMapping[key]) {\r\n const dsaTarget = {};\r\n\r\n koSchema.properties(dsaTarget, s$DsaTarget, _.keys(s$DsaTarget.properties));\r\n dsaTarget.conditions = item.conditions;\r\n\r\n if (item.type === 'specificpage' || item.type === 'exacturls') {\r\n dsaTarget.serializedConditions = JSON.stringify(conditionsWithOperator);\r\n } else {\r\n dsaTarget.serializedConditions = '';\r\n }\r\n dsaTarget.type = item.type;\r\n dsaTarget.Bid(item.bid);//eslint-disable-line\r\n\r\n dsaTarget.Bid.subscribe(() => {\r\n this.hasChanges = true;\r\n this.logActivity('ad target bid changed');\r\n }, this);\r\n dsaTarget.Criterion ({//eslint-disable-line\r\n Type: 'Webpage',\r\n WebPage: {\r\n Parameter: {\r\n Conditions: this.urlEqualsEnabled ? conditionsWithoutDisplayValue : conditionsWithoutOperator,\r\n },\r\n }});\r\n dsaTarget.hasErrors = false;\r\n\r\n this.keyToItemMapping[key] = dsaTarget;\r\n dsaTarget.key = key;\r\n\r\n return dsaTarget;\r\n }\r\n return null;\r\n };\r\n\r\n // knockout model has performance issue when populating value to observableArray one by one.\r\n // This function is designed to solve performance issue by only notify ui once all elements have been added.\r\n this.addBatch = (items) => {\r\n\r\n let underlyingArray = this.items();\r\n\r\n _.each(items, (item) => {\r\n let dsaTarget = this.generateDSATarget(item);\r\n\r\n if (dsaTarget != null) {\r\n underlyingArray.push(dsaTarget);\r\n }\r\n });\r\n this.items.valueHasMutated(); //notifies ui once all elements have been added\r\n };\r\n\r\n this.remove = (item) => {\r\n this.items.remove(item);\r\n delete this.keyToItemMapping[item.key];\r\n this.logActivity(`ad target removed: ${item.type}`);\r\n };\r\n\r\n this.update = (items, removedItems) => {\r\n _.each(removedItems, (item) => {\r\n delete this.keyToItemMapping[item.key];\r\n });\r\n\r\n this.items(items);\r\n };\r\n\r\n this.resetBids = () => {\r\n _.each(this.items(), (item) => {\r\n item.Bid(null);//eslint-disable-line\r\n item.Bid._string.notifySubscribers();\r\n });\r\n this.logActivity('clear all target bid');\r\n };\r\n this.clear = () => {\r\n this.items([]);\r\n this.keyToItemMapping = {};\r\n this.logActivity('remove all target');\r\n };\r\n this.isListEmpty = ko.computed(() => {\r\n return this.items().length === 0;\r\n });\r\n this.values = ko.computed(_.bind(() => {\r\n return _.map(this.items(), (item) => {\r\n if (this.hasChanges) {\r\n item.hasErrors = false;\r\n }\r\n if (options.isNegativeAutoTarget) {\r\n return _.pick(item.toObject(), 'Criterion');\r\n } else {\r\n return _.pick(item.toObject(), 'Bid', 'Criterion');\r\n }\r\n });\r\n }, this));\r\n this.description = ko.computed(() => {\r\n return i18n.get('DSA_AutoTargets_Select_Description', {\r\n amount: this.adGroupBid(),\r\n currency: config.get('AccountCurrencyCode'),\r\n });\r\n });\r\n this.checkArgumentOperandFormat = (argumentOperand) => {\r\n let hasComma = false;\r\n let hasDoubleQuote = false;\r\n let resultArgumentOperand = argumentOperand;\r\n\r\n if (argumentOperand.includes(',')) {\r\n hasComma = true;\r\n }\r\n if (argumentOperand.includes('\"')) {\r\n hasDoubleQuote = true;\r\n }\r\n if (hasDoubleQuote) {\r\n resultArgumentOperand = resultArgumentOperand.replaceAll('\"', '\"\"');\r\n }\r\n if (hasDoubleQuote || hasComma) {\r\n resultArgumentOperand = `\"${resultArgumentOperand}\"`;\r\n }\r\n return resultArgumentOperand;\r\n };\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport $ from 'jquery';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/auto-targets/viewmodel/create/selectedTargets';\r\nimport template from '@bingads-webui-campaign-legacy/auto-targets/template/create/selectedTargets.pug';\r\nimport TargetPreviewView from '@bingads-webui-campaign-legacy/auto-targets/view/create/targetPreview';\r\nimport { isCampaignApiError } from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nimport { DoubleListA11yHacker } from '@bingads-webui-campaign-legacy/auto-targets/view/double-list-a11y-hacker';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = options;\r\n this.viewmodel = new ViewModel({\r\n defaultBid: this.options.defaultBid,\r\n activityLogger: this.options.activityLogger,\r\n isNegativeAutoTarget: this.options.isNegativeAutoTarget,\r\n });\r\n this.savedTargets = {};\r\n this.viewmodel.values.subscribe((values) => {\r\n this.trigger('update:values', values);\r\n });\r\n this.viewmodel.items.subscribe((items) => {\r\n this.trigger('update:items', items);\r\n\r\n // wait for dom updated\r\n _.defer(() => {\r\n this.doubleListA11yHacker.refresh();\r\n });\r\n });\r\n\r\n // Validate if show no target selected error message\r\n this.validate();\r\n\r\n this.doubleListA11yHacker = new DoubleListA11yHacker({\r\n rootSelector: '.dlb-selected-container ul[data-bind=\"foreach: items\"]',\r\n listViewSelector: '.dlb-selected-container ul[data-bind=\"foreach: items\"]',\r\n itemSelector: 'li',\r\n interactableElementSelector: 'input[type=text], a.arrow-button, a.clickable',\r\n listAriaLabel: i18n.get('DSA_AutoTargets_Select_Title'),\r\n });\r\n\r\n this.isNegativeAutoTarget = this.options.isNegativeAutoTarget;\r\n this.popupId = this.options.isNegativeAutoTarget ? 'pop_BA_CampaignCreate_Targets_NegativeTargets' : 'pop_BA_CampaignCreate_Keywords_SelectedTargets';\r\n }\r\n get events() {\r\n return {\r\n 'click .specificpage': 'renderPreview',\r\n 'click .exacturls': 'renderPreview',\r\n };\r\n }\r\n render() {\r\n this.$el.html(template({i18n, accountCurrencyCode: config.get('AccountCurrencyCode'), isForVNext: this.options.isForVNext, isNegativeAutoTarget: this.isNegativeAutoTarget, popupId: this.popupId }));\r\n ko.applyBindings(this.viewmodel, this.el);\r\n return this;\r\n }\r\n renderPreview(e) {\r\n if (this.targetPreviewView) {\r\n this.targetPreviewView.close();\r\n }\r\n\r\n const targetClass = 'popover-operand';\r\n\r\n $(e.currentTarget).find(`.${targetClass}`).remove();\r\n\r\n $(e.currentTarget).find('.preview-operand').append(``);\r\n\r\n this.targetPreviewView = new TargetPreviewView({target: $(e.currentTarget).find(`.${targetClass}`), conditions: $(e.currentTarget).data('conditions')}).render();\r\n }\r\n getChanges() {\r\n const changes = [];\r\n\r\n _.each(this.viewmodel.items(), (item) => {\r\n const targetSaved = this.savedTargets[item.key];\r\n\r\n if (!targetSaved || targetSaved.Bid !== item.Bid()) {//eslint-disable-line\r\n const targetToSave = _.pick(item.toObject(), 'Bid', 'Criterion');\r\n\r\n if (targetSaved) {\r\n targetToSave.Criterion.WebPage.Parameter.Conditions = [];\r\n targetToSave.Id = targetSaved.Id;\r\n }\r\n changes.push(targetToSave);\r\n }\r\n });\r\n\r\n const keysOfDeletedTargets = _.difference(_.keys(this.savedTargets), _.pluck(this.viewmodel.items(), 'key'));\r\n\r\n _.each(keysOfDeletedTargets, (key) => {\r\n const targetSaved = this.savedTargets[key];\r\n\r\n targetSaved.Status = 'Deleted';\r\n targetSaved.Criterion.WebPage.Parameter.Conditions = [];\r\n changes.push(targetSaved);\r\n });\r\n return changes;\r\n }\r\n updateViewModels(targets) {\r\n _.each(targets, (target) => {\r\n const key = _.findKey(this.savedTargets, (value) => {\r\n return value.Id === target.Id;\r\n }) || this.getKey(target);\r\n\r\n const targetInVm = this.viewmodel.keyToItemMapping[key];\r\n\r\n if (targetInVm) {\r\n targetInVm.errors.clear(isCampaignApiError);\r\n }\r\n\r\n if (target.errors) {\r\n if (targetInVm) {\r\n targetInVm.errors.add(target.errors);\r\n targetInVm.hasErrors = true;\r\n }\r\n } else {\r\n const previouslySavedTarget = this.savedTargets[key];\r\n\r\n if (previouslySavedTarget && previouslySavedTarget.Status === 'Deleted') {\r\n delete this.savedTargets[key];\r\n } else {\r\n this.savedTargets[key] = target;\r\n }\r\n }\r\n });\r\n this.viewmodel.hasChanges = false;\r\n }\r\n validate() {\r\n if (this.viewmodel.items().length === 0) {\r\n this.viewmodel.errors([i18n.get('DSA_Dynamic_AutoTargets_Error_No_Target')]);\r\n if (this.options.activityLogger) {\r\n this.options.activityLogger.signal('no target selected', 'ad target selection');\r\n }\r\n return false;\r\n } else {\r\n this.viewmodel.errors([]);\r\n }\r\n\r\n return _.every(this.viewmodel.items(), (item) => item.validate() && !item.hasErrors);\r\n }\r\n getKey(target) {\r\n return JSON.stringify(ko.unwrap(target.Criterion).WebPage.Parameter.Conditions);\r\n }\r\n\r\n setErrors(errors) {\r\n const viewModelItems = this.viewmodel.items();\r\n const errorItems = [];\r\n const needRemovedItems = [];\r\n\r\n for (let i = 0; i < viewModelItems.length; i++) {\r\n if (errors[i]) {\r\n viewModelItems[i].errors([errors[i]]);\r\n errorItems.push(viewModelItems[i]);\r\n } else {\r\n needRemovedItems.push(viewModelItems[i]);\r\n }\r\n }\r\n\r\n // Keep error items in selected panel\r\n this.viewmodel.update(errorItems, needRemovedItems);\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport tmpl from '@bingads-webui-campaign-legacy/auto-targets/template/create/specificWebpageWithoutPreview.pug';\r\nimport SpecificTargetView from '@bingads-webui-campaign-legacy/auto-targets/view/specific-target';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = options;\r\n }\r\n get events() {\r\n return {\r\n 'click .addall-button': 'selectTarget',\r\n };\r\n }\r\n render() {\r\n this.$el.html(tmpl({\r\n i18n,\r\n containerTitle: this.options.isExclude ? i18n.get('DSA_Target_SpecificWebPage_Container_Title_Exclude') : i18n.get('DSA_Target_SpecificWebPage_Container_Title'),\r\n }));\r\n this.specificTarget = new SpecificTargetView({\r\n el: this.$('.conditions'),\r\n setting: this.options.setting,\r\n isShowUrlOnly: this.options.isShowUrlOnly,\r\n }).render();\r\n this.on('update:setting', (setting) => {\r\n this.specificTarget.trigger('update:setting', setting);\r\n });\r\n return this;\r\n }\r\n show() {\r\n this.$el.show();\r\n return this;\r\n }\r\n hide() {\r\n this.$el.hide();\r\n return this;\r\n }\r\n selectTarget() {\r\n this.trigger('selectTarget', {\r\n conditions: this.specificTarget.viewmodel.items(),\r\n type: 'specificpage',\r\n shouldCheckArgumentOperandFormat: this.options.shouldCheckArgumentOperandFormat,\r\n });\r\n }\r\n reset() {\r\n this.specificTarget.viewmodel.reset();\r\n }\r\n}\r\n","import 'bootstrap';\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport ko from 'knockout';\r\nimport Backbone from 'backbone';\r\nimport template from '@bingads-webui-campaign-legacy/auto-targets/template/create/targetPreview.pug';\r\n\r\nexport default class TargetPreview extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = options;\r\n this.conditions = _.map(ko.unwrap(this.options.conditions) || [],\r\n (item) => _.extend({ Operator: '' }, { Operator: ko.unwrap(item.Operator), Operand: ko.unwrap(item.Operand), ArgumentOperand: ko.unwrap(item.ArgumentOperand), DisplayOperand: ko.unwrap(item.DisplayOperand), DisplayOperator: ko.unwrap(item.DisplayOperator)}));\r\n this.onEscClick = this.onEscClick.bind(this);\r\n }\r\n\r\n close() {\r\n if ($('.popover').length > 0) {\r\n this.target.popover('hide');\r\n }\r\n }\r\n\r\n render() {\r\n this.$el.html(template());\r\n ko.applyBindings({conditions: this.conditions}, this.el);\r\n\r\n this.target = $(this.options.target);\r\n this.target.popover({\r\n html: true,\r\n trigger: 'manual',\r\n content: this.$el.html(),\r\n placement: 'bottom',\r\n });\r\n this.target.on('shown.bs.popover', () => {\r\n $('.popover').css('top', '25px');\r\n $('.popover').css('left', '0px');\r\n });\r\n this.target.popover('show');\r\n\r\n this._bindEvents();\r\n return this;\r\n }\r\n\r\n onEscClick(evt) {\r\n const { keyCode } = evt;\r\n\r\n // escape\r\n if (keyCode === 27) {\r\n this.close();\r\n }\r\n }\r\n\r\n _bindEvents() {\r\n const self = this;\r\n\r\n $(document).off('click.body');\r\n $(document).on('click.body', (e) => {\r\n if ($(e.target).parents('.preview').length === 0) {\r\n self.close();\r\n $(document).off('click.body');\r\n e.stopPropagation();\r\n }\r\n });\r\n $(document).off('keydown', this.onEscClick).on('keydown', this.onEscClick);\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport { defer } from 'underscore';\r\n\r\nconst LIST_CLASS = 'a11y-adapter-list';\r\nconst ITEM_CLASS = 'a11y-adapter-item';\r\nconst FOCUS_CLASS = 'a11y-adapter-item-focused';\r\nconst SELECT_CLASS = 'a11y-adapter-item-selected';\r\nconst UP_KEY_CODE = 40;\r\nconst DOWN_KEY_CODE = 38;\r\nconst SPACE_KEY_CODE = 32;\r\n\r\nexport class DoubleListA11yHacker {\r\n constructor(options) {\r\n const {\r\n rootSelector = 'body',\r\n listViewSelector,\r\n itemSelector,\r\n interactableElementSelector,\r\n listAriaLabel,\r\n } = options;\r\n\r\n this.rootSelector = rootSelector;\r\n this.listViewSelector = listViewSelector;\r\n this.itemSelector = itemSelector;\r\n this.interactableElementSelector = interactableElementSelector;\r\n this.listAriaLabel = listAriaLabel;\r\n this.$lastFocusedElement = null;\r\n this.rowPositions = [];\r\n this.rowHeights = [];\r\n this.vh = 0;\r\n this.maxScrollTop = 0;\r\n this.$interactableElements = null;\r\n\r\n this._onListViewKeyDown = this._onListViewKeyDown.bind(this);\r\n this._onListViewClick = this._onListViewClick.bind(this);\r\n this._onListViewBlur = this._onListViewBlur.bind(this);\r\n this._onListViewFocus = this._onListViewFocus.bind(this);\r\n }\r\n\r\n refresh() {\r\n this.$lastFocusedElement = null;\r\n this.$root = $(this.rootSelector);\r\n this.vh = this.$root.innerHeight();\r\n this.$listView = $(this.listViewSelector);\r\n this.$listView.attr({\r\n role: 'listbox',\r\n 'aria-label': this.listAriaLabel,\r\n tabindex: '0',\r\n }).addClass(LIST_CLASS);\r\n this.$rows = this.$listView.find(this.itemSelector);\r\n this.$rows.attr({\r\n role: 'option',\r\n 'aria-selected': 'false',\r\n }).addClass(ITEM_CLASS);\r\n\r\n this.rowPositions = [];\r\n this.rowHeights = [];\r\n this.$rows.each((index) => {\r\n const $row = this.$rows.eq(index);\r\n\r\n this.rowPositions.push($row.position().top);\r\n this.rowHeights.push($row.outerHeight(true));\r\n });\r\n\r\n this.$interactableElements = this.$listView.find(this.itemSelector).find(this.interactableElementSelector);\r\n\r\n this.$interactableElements.attr({\r\n tabindex: '-1',\r\n });\r\n\r\n this._initializeEvents();\r\n }\r\n\r\n _initializeEvents() {\r\n this.$listView\r\n .off('keydown', this._onListViewKeyDown)\r\n .off('focus', this._onListViewFocus)\r\n .off('blur', this._onListViewBlur)\r\n .off('click', this.itemSelector, this._onListViewClick);\r\n\r\n this.$listView\r\n .on('focus', this._onListViewFocus)\r\n .on('blur', this._onListViewBlur)\r\n .on('keydown', this._onListViewKeyDown)\r\n .on('click', this.itemSelector, this._onListViewClick);\r\n }\r\n\r\n _onListViewFocus() {\r\n // make sure onclick handler executes first\r\n defer(() => {\r\n if (!this.$lastFocusedElement) {\r\n this.$lastFocusedElement = this.$rows.first();\r\n }\r\n this.focusRow(this.$lastFocusedElement);\r\n });\r\n }\r\n\r\n _onListViewBlur() {\r\n this.blurAll();\r\n }\r\n\r\n _onListViewClick(evt) {\r\n const { currentTarget, target } = evt;\r\n\r\n const isDescendantOfInteractableEle = this.$interactableElements.has(target).length > 0;\r\n const isInteractableEle = this.$interactableElements.index(target) !== -1;\r\n\r\n // check if the event is triggered inside a interactable element or is exactly an interactable element\r\n if (!isDescendantOfInteractableEle && !isInteractableEle) {\r\n this.focusRow($(currentTarget));\r\n }\r\n }\r\n\r\n _onListViewKeyDown(evt) {\r\n const { keyCode } = evt;\r\n\r\n if (this.$listView.is(':focus')) {\r\n const currentIndex = this.$lastFocusedElement ? this.$lastFocusedElement.index() : -1;\r\n\r\n if (keyCode === UP_KEY_CODE) {\r\n const newIndex = (currentIndex + 1) % this.$rows.length;\r\n\r\n evt.preventDefault();\r\n this.focusRowAtIndex(newIndex);\r\n this.scrollToCenter(newIndex);\r\n } else if (keyCode === DOWN_KEY_CODE) {\r\n const newIndex = (currentIndex - 1 + this.$rows.length) % this.$rows.length;\r\n\r\n evt.preventDefault();\r\n this.focusRowAtIndex(newIndex);\r\n this.scrollToCenter(newIndex);\r\n } else if (keyCode === SPACE_KEY_CODE) {\r\n evt.stopPropagation();\r\n evt.preventDefault();\r\n this.selectRowAtIndex(currentIndex);\r\n }\r\n }\r\n }\r\n\r\n focusRow($row) {\r\n this.deselectAll();\r\n this.blurAll();\r\n $row.addClass(FOCUS_CLASS);\r\n this.$lastFocusedElement = $row;\r\n }\r\n\r\n blurAll() {\r\n this.$rows.removeClass(FOCUS_CLASS);\r\n }\r\n\r\n focusRowAtIndex(index = 0) {\r\n const $row = this.$rows.eq(index);\r\n\r\n this.focusRow($row);\r\n }\r\n\r\n selectRow($row) {\r\n this.focusRow($row);\r\n this.deselectAll();\r\n const $interactableElementsInRow = $row.find(this.interactableElementSelector);\r\n\r\n $interactableElementsInRow.attr('tabindex', '0');\r\n $row.addClass(SELECT_CLASS).attr('aria-selected', 'true');\r\n }\r\n\r\n deselectAll() {\r\n this.$interactableElements\r\n .attr('tabindex', '-1');\r\n\r\n this.$rows.removeClass(SELECT_CLASS).attr('aria-selected', 'false');\r\n }\r\n\r\n selectRowAtIndex(index) {\r\n const $row = this.$rows.eq(index);\r\n\r\n this.selectRow($row);\r\n }\r\n\r\n scrollToCenter(rowIndex) {\r\n const rowPos = this.rowPositions[rowIndex];\r\n const rowHeight = this.rowHeights[rowIndex];\r\n\r\n if (rowPos != null) {\r\n let centerOffset = rowPos - (this.vh / 2) - (rowHeight / 2);\r\n\r\n if (centerOffset < 0) {\r\n centerOffset = 0;\r\n }\r\n\r\n this.$root.scrollTop(centerOffset);\r\n }\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport DataStore from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport edmCampaign from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport itemTemplate from '@bingads-webui-campaign-legacy/auto-targets/template/pagefeed/feed-preview.pug';\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/auto-targets');\r\n\r\nexport default class ViewModel {\r\n constructor({\r\n source,\r\n campaignId,\r\n loadSource,\r\n }) {\r\n this.radioList = [{\r\n value: 'SystemIndex',\r\n text: i18n.get('Campaign_TargetingSource_Bing_Index'),\r\n }, {\r\n value: 'AdvertiserSuppliedUrls',\r\n text: i18n.get('Campaign_TargetingSource_Page_Feed'),\r\n }, {\r\n value: 'All',\r\n text: i18n.get('Campaign_TargetingSource_Both_Index_Feed'),\r\n }];\r\n this.originSelectedFeeds = ko.observableArray([]);\r\n this.source = ko.observable(source || this.radioList[0].value);\r\n this.selectedFeeds = ko.observableArray([]);\r\n this.allFeeds = loadSource;\r\n this.itemTemplate = itemTemplate;\r\n this.showPagefeedSelector = ko.computed(() => _.contains(['AdvertiserSuppliedUrls', 'All'], this.source()));\r\n\r\n this.campaignId = ko.observable(campaignId);\r\n this.targetingSource = ko.computed(() => ({\r\n source: this.source(),\r\n selectedFeeds: this.selectedFeeds(),\r\n }));\r\n this.updateSelectedFeedsByCampaignId(this.campaignId(), true);\r\n this.campaignId.subscribe((newCampaignId) => this.updateSelectedFeedsByCampaignId(newCampaignId));\r\n this.associateList = ko.computed(() => {\r\n const originList = _.pluck(this.originSelectedFeeds(), 'Id');\r\n const selectedList = _.pluck(this.selectedFeeds(), 'Id');\r\n\r\n return _.difference(selectedList, originList);\r\n });\r\n\r\n this.originSelectedIdList = ko.computed(() => _.pluck(this.originSelectedFeeds(), 'Id'));\r\n this.selectedIdList = ko.computed(() => _.pluck(this.selectedFeeds(), 'Id'));\r\n\r\n this.errors = ko.computed(() => {\r\n const ret = [];\r\n\r\n if (this.source() !== 'SystemIndex' && _.size(this.selectedFeeds()) === 0 ) {\r\n ret.push(i18n.get('Campaign_TargetingSource_Page_Select_At_Least_One'));\r\n }\r\n return ret;\r\n });\r\n }\r\n\r\n updateSelectedFeedsByCampaignId(campaignId, isEditing = false) {\r\n if (campaignId) {\r\n // load associated page feeds\r\n DataStore.FeedAssociation.findAll({\r\n skip: 0,\r\n limit: 100,\r\n }, {\r\n entitySet: edmCampaign.currentAccount.Campaigns.$withKey(campaignId).FeedAssociations,\r\n cacheResponse: false,\r\n 'x-ms-refreshcampaigncache': 'true',\r\n }).then((values) => {\r\n instrumentation.logMessage([\r\n constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO,\r\n 'GetFeedAssociation',\r\n '1');\r\n const items = _.map(values, (val) => ({ Id: val.FeedId, Name: val.FeedName }));\r\n\r\n this.selectedFeeds(items);\r\n if (isEditing) {\r\n this.originSelectedFeeds(items);\r\n }\r\n }).catch((e) => {\r\n instrumentation.logMessage([\r\n constants.LOGCATEGORY.ERROR], constants.LOGLEVEL.VERBOSE,\r\n 'GetFeedAssociation',\r\n e);\r\n return null;\r\n });\r\n }\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport Promise from 'bluebird';\r\nimport DataStore from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport edmCampaign from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport withUIBlocker from '@bingads-webui-component-legacy/uiblocker/index';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/auto-targets/viewmodel/pagefeed/targeting-source';\r\nimport template from '@bingads-webui-campaign-legacy/auto-targets/template/pagefeed/targeting-source.pug';\r\nimport '@bingads-webui-component-legacy/double-list-box/ko/doubleListBoxBinding';\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/auto-targets');\r\n\r\nexport default class TargetingSource extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = options;\r\n this.koModel = new ViewModel(_.defaults({}, options, {\r\n loadSource: this.loadSource.bind(this),\r\n }));\r\n\r\n this.koModel.targetingSource.subscribe((val) => {\r\n this.logActivity(`target source changed: ${val.source}`);\r\n this.trigger('update', val);\r\n });\r\n\r\n this.on('set', ({source, campaignId}) => { // interface for copy from campaign\r\n this.koModel.source(source);\r\n this.koModel.campaignId(campaignId);\r\n });\r\n }\r\n\r\n logActivity(message) {\r\n if (this.options.activityLogger) {\r\n this.options.activityLogger.signal(message, 'target source');\r\n }\r\n }\r\n\r\n render() {\r\n this.$el.html(template({ i18n }));\r\n ko.applyBindings(this.koModel, this.el);\r\n return this;\r\n }\r\n\r\n validate() {\r\n return _.size(this.koModel.errors()) === 0;\r\n }\r\n\r\n loadSource(request, cb) {\r\n const params = { //eslint-disable-line\r\n where: {\r\n Name: {\r\n $contains: request.filterText,\r\n },\r\n FeedCategoryFilter: {\r\n $eq: 'Enum.FeedCategory\\'PageFeed\\'',\r\n },\r\n Status: {\r\n $eq: 'Enum.FeedStatus\\'Active\\'',\r\n },\r\n },\r\n offset: request.skip,\r\n limit: request.take,\r\n };\r\n\r\n DataStore.Feed.findAll(params, {\r\n entitySet: edmCampaign.currentAccount.Feeds,\r\n cacheResponse: false,\r\n 'x-ms-refreshcampaigncache': 'true',\r\n filterOptions: {\r\n odata: {\r\n custom: {\r\n FeedCategoryFilter: () => 'FeedCategories/any(c:c eq Enum.FeedCategory\\'PageFeed\\')',\r\n },\r\n },\r\n },\r\n }).then((items) => cb(null, {\r\n items: _.map(items, (item) => ({ Id: item.Id, Name: item.Name })),\r\n total: items.totalCount,\r\n })).finally(withUIBlocker(this.$el));\r\n }\r\n\r\n save(id) {\r\n const EntityId = String(id);\r\n\r\n if (this.koModel.source() === 'SystemIndex') {\r\n return Promise.resolve();\r\n }\r\n const disAssociateList = _.difference(this.koModel.originSelectedIdList(), this.koModel.selectedIdList());\r\n const associateList = _.difference(this.koModel.selectedIdList(), this.koModel.originSelectedIdList());\r\n let requests = _.map(associateList, (FeedId) => ({ '@odata.type': '#Model.FeedAssociation', FeedId, EntityId, AssociationType: 'Campaign', Status: 'Active' }));\r\n\r\n requests = requests.concat(_.map(disAssociateList, (FeedId) => ({ '@odata.type': '#Model.FeedAssociation', FeedId, EntityId, AssociationType: 'Campaign', Status: 'Deleted' })));\r\n if (_.size(requests) === 0) {\r\n return Promise.resolve();\r\n }\r\n return DataStore.FeedAssociation.create({\r\n Associations: requests,\r\n }, {\r\n cacheResponse: false,\r\n 'x-ms-refreshcampaigncache': 'true',\r\n cast: 'Default.Associate',\r\n }).then((data) => {\r\n instrumentation.logMessage(\r\n [constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO,\r\n 'CreateFeedAssociation',\r\n '1'\r\n );\r\n this.logActivity('feed association created');\r\n return data;\r\n }).then(() => {\r\n return this.koModel.updateSelectedFeedsByCampaignId(id, true);\r\n }).catch((e) => {\r\n instrumentation.logMessage(\r\n [constants.LOGCATEGORY.ERROR], constants.LOGLEVEL.VERBOSE,\r\n 'CreateFeedAssociation',\r\n e\r\n );\r\n return null;\r\n });\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport koSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nconst webpageCondition = window.globalLegacySchema.get('WebpageCondition');\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\n\r\nclass Condition {\r\n constructor(item = {}) {\r\n koSchema.properties(this, webpageCondition, ['ArgumentOperand', 'Operand']);\r\n\r\n /* eslint-disable */\r\n this.Operand(item.Operand || 'Url');\r\n this.ArgumentOperand(item.ArgumentOperand || '');\r\n this.Operator = ko.computed(() => {\r\n if (_.contains(['Category', 'CustomLabel'], this.Operand())) {\r\n return 'Equals';\r\n }\r\n return 'Contains';\r\n });\r\n\r\n this.showSelect = ko.computed(() => {\r\n return this.Operand() === 'Category';\r\n });\r\n\r\n this.showSelect.subscribe(() => {\r\n this.ArgumentOperand('');\r\n });\r\n\r\n this.showOperatorAndValue = ko.computed(() => {\r\n return !this.showSelect() || this.ArgumentOperand();\r\n });\r\n /* eslint-enable */\r\n }\r\n}\r\n\r\nconst operatorMap = {\r\n 'Equals': i18n.get('DSA_AutoTargets_Specific_Target_Equals'),\r\n 'Contains': i18n.get('DSA_AutoTargets_Specific_Target_Contains'),\r\n};\r\n\r\nconst operandMap = {\r\n 'Url': i18n.get('DSA_AutoTargets_Specific_Target_Operand_URL'),\r\n 'Category': i18n.get('DSA_AutoTargets_Specific_Target_Operand_CATEGORY'),\r\n 'PageTitle': i18n.get('DSA_AutoTargets_Specific_Target_Operand_PAGE_TITLE'),\r\n 'PageContent': i18n.get('DSA_AutoTargets_Specific_Target_Operand_PAGE_CONTENT'),\r\n 'CustomLabel': i18n.get('DSA_AutoTargets_Specific_Target_Operand_Custom_Label'),\r\n};\r\n\r\nexport default class ViewModel {\r\n constructor(options = {}) {\r\n this.options = _.defaults(options, {conditions: [{Operand: 'Url'}]});\r\n this.items = ko.observableArray(ko.unwrap(this.options.conditions).map( (cond) => {\r\n return new Condition(cond);\r\n }));\r\n\r\n if (_.isEmpty(this.items())) {\r\n this.items.push(new Condition());\r\n }\r\n\r\n this.setting = ko.observable(this.options.setting);\r\n\r\n this.isCustomLabelEnabled = ko.computed(() => {\r\n const setting = this.setting();\r\n\r\n return _.result(config.get('Permissions'), 'IsDynamicSearchAdsPageFeedEnabled') && setting.Source !== 'SystemIndex';\r\n });\r\n\r\n this.operandOptions = ko.computed(() => {\r\n let operands = this.options.isShowUrlOnly ? [{\r\n value: 'Url',\r\n text: operandMap.Url,\r\n }] : [{\r\n value: 'Url',\r\n text: operandMap.Url,\r\n }, {\r\n value: 'Category',\r\n text: operandMap.Category,\r\n }, {\r\n value: 'PageTitle',\r\n text: operandMap.PageTitle,\r\n }, {\r\n value: 'PageContent',\r\n text: operandMap.PageContent,\r\n }];\r\n\r\n if (!this.options.isShowUrlOnly && this.isCustomLabelEnabled()) {\r\n operands.push({\r\n value: 'CustomLabel',\r\n text: operandMap.CustomLabel,\r\n });\r\n }\r\n return operands;\r\n });\r\n\r\n this.isCategoriesEmpty = ko.observable(false);\r\n\r\n this.isConditionDeleteEnabled = ko.computed(() => {\r\n return _.size(this.items()) > 1;\r\n });\r\n\r\n this.isConditionAddEnabled = ko.computed(() => {\r\n return _.size(this.items()) < 3;\r\n });\r\n\r\n /* eslint-disable */\r\n this.values = ko.computed(() => {\r\n return this.items().map( (item) => {\r\n item.DisplayOperand = ko.computed(() => {\r\n return item.Operand() ? operandMap[item.Operand()] : '';\r\n });\r\n item.DisplayOperator = ko.computed(() => {\r\n return item.Operator() ? operatorMap[item.Operator()] : '';\r\n });\r\n\r\n if (_.isEmpty(item.errors()) && _.isEmpty(item.ArgumentOperand.errors())) {\r\n return {\r\n Operand: item.Operand(),\r\n ArgumentOperand: item.ArgumentOperand().trim(),\r\n DisplayOperand: item.DisplayOperand(),\r\n DisplayOperator: item.DisplayOperator(),\r\n };\r\n }\r\n return {\r\n Operand: item.Operand(),\r\n ArgumentOperand: '',\r\n DisplayOperand: item.DisplayOperand(),\r\n DisplayOperator: item.DisplayOperator(),\r\n };\r\n });\r\n });\r\n /* eslint-enable */\r\n\r\n this.addItem = () => {\r\n this.items.push(new Condition());\r\n };\r\n\r\n this.deleteItem = (item) => {\r\n this.items.remove(item);\r\n };\r\n\r\n this.updateCategories = (categories) => {\r\n this.categories(categories);\r\n };\r\n\r\n this.reset = () => {\r\n this.items([new Condition()]);\r\n };\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/auto-targets/viewmodel/specific-target';\r\nimport template from '@bingads-webui-campaign-legacy/auto-targets/template/specific-target-template.pug';\r\nimport CategoryGridView from '@bingads-webui-campaign-legacy/auto-targets/view/category-targets/category-grid';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/auto-targets');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = options;\r\n\r\n this.categoryViews = {};\r\n\r\n this.viewmodel = new ViewModel(this.options);\r\n\r\n this.viewmodel.values.subscribe((newValues) => {\r\n this.refreshCategoryView();\r\n this.trigger('update', newValues);\r\n if (ko.isObservable(this.options.conditions)) {\r\n this.options.conditions(newValues);\r\n }\r\n });\r\n const permissions = config.get('Permissions');\r\n\r\n this.urlEqualsEnabled = permissions && permissions.dynamic && permissions.dynamic.DSAUrlEquals;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'change .specific-target-condition select': 'onOperandChange',\r\n 'click .edit-category-icon': 'addCategoryView',\r\n };\r\n }\r\n\r\n render() {\r\n this.$el.html(template({i18n, showAND: this.urlEqualsEnabled }));\r\n ko.applyBindings(this.viewmodel, this.el);\r\n\r\n this.on('update:setting', (setting) => {\r\n if (!_.isEmpty(setting.DomainName)) {\r\n _.each(this.categoryViews, (view) => {\r\n view.trigger('update:setting', setting);\r\n });\r\n }\r\n\r\n this.viewmodel.setting(setting);\r\n this.viewmodel.reset();\r\n });\r\n\r\n return this;\r\n }\r\n\r\n refreshCategoryView() {\r\n _.each(_.keys(this.categoryViews), (uuid) => {\r\n if (this.$(`div[uuid='${uuid}']`).length === 0) {\r\n this.removeCategoryView(uuid);\r\n }\r\n });\r\n }\r\n\r\n removeCategoryView(uuid) {\r\n if (_.isEmpty(this.categoryViews[uuid])) {\r\n return;\r\n }\r\n this.categoryViews[uuid].remove();\r\n delete this.categoryViews[uuid];\r\n }\r\n\r\n getCategoryContainer(e) {\r\n let $eventTarget = $(e.currentTarget);\r\n\r\n return $('.category-container', $eventTarget.closest('.specific-target-condition'));\r\n }\r\n\r\n clearCategoryView(e) {\r\n let $container = this.getCategoryContainer(e);\r\n\r\n if ($container.length > 0) {\r\n _.each($container.children(), (child) => {\r\n this.removeCategoryView($(child).attr('uuid'));\r\n });\r\n }\r\n }\r\n\r\n addCategoryView(e) {\r\n let $container = this.getCategoryContainer(e);\r\n let uuid = _.uniqueId('category_view_');\r\n\r\n this.clearCategoryView(e);\r\n this.categoryViews[uuid] = new CategoryGridView({hideAddToList: true, setting: this.viewmodel.setting(), isContainerHidden: false}).render();\r\n this.categoryViews[uuid].$el.attr('uuid', uuid);\r\n $container.append(this.categoryViews[uuid].el);\r\n this.categoryViews[uuid].grid.gridView.on('layout:click:cell', (event, data) => {\r\n if (event.target && event.target.className && event.target.className.indexOf('next-level') > -1 && data.column.property === 'CategoryName' && _.last(data.model.CategoryName) === '/') {\r\n return;\r\n }\r\n const currentViewModel = ko.dataFor(event.target);\r\n\r\n currentViewModel.ArgumentOperand(data.model.CategoryName);//eslint-disable-line\r\n this.removeCategoryView(uuid);\r\n });\r\n this.categoryViews[uuid].on('categoryLoaded', (isCategoriesEmpty) => {\r\n this.viewmodel.isCategoriesEmpty(isCategoriesEmpty);\r\n });\r\n }\r\n\r\n\r\n onOperandChange(e) {\r\n if ($(e.currentTarget).val() === 'Category') {\r\n this.addCategoryView(e);\r\n } else {\r\n this.clearCategoryView(e);\r\n }\r\n }\r\n}\r\n","export function validateBid(bid) {\r\n const isDecimal = parseInt(bid) === Number(bid);\r\n const isNonNegative = parseInt(bid) >= 0;\r\n\r\n const bidStr = bid.toString();\r\n const isNotEmpty = bidStr.length > 0;\r\n // This is a locale agnostic way to address cases like \"2.\" which shouldn't pass validation\r\n const isEndingWithDigit = isNotEmpty && !isNaN(parseInt(bidStr.slice(-1)));\r\n\r\n return {\r\n isDecimal,\r\n isNotEmpty,\r\n isNonNegative,\r\n isEndingWithDigit,\r\n };\r\n}\r\n","import 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 function load(campaignId, adgroupId, typesToLoad, schema = {}) {\r\n let filterString = '';\r\n let schemaName = schema.name || (adgroupId ? 'AdGroupCriterion' : 'CampaignCriterion');\r\n\r\n for (let i = 0; i < typesToLoad.length; i++) {\r\n filterString += `isof(Criterion,'Model.${typesToLoad[i]}')`;\r\n\r\n if (i !== typesToLoad.length - 1) {\r\n filterString += ' or ';\r\n }\r\n }\r\n\r\n let entitySet = adgroupId ?\r\n edmCampaign.currentAccount.Campaigns.$withKey(Number(campaignId)).AdGroups.$withKey(Number(adgroupId)) :\r\n edmCampaign.currentAccount.Campaigns.$withKey(Number(campaignId));\r\n\r\n entitySet = entitySet[`${schemaName}s`][`Model.${schemaName}`];\r\n\r\n return 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 );\r\n}\r\n","/* eslint-disable no-bitwise */\r\nimport _ from 'underscore';\r\nimport targetConstants from '@bingads-webui-campaign-legacy/base-targets/viewmodel/targetConstants';\r\nimport targetTypes from '@bingads-webui-campaign-legacy/base-targets/viewmodel/targetTypes';\r\nimport { validateBid } from '@bingads-webui-campaign-legacy/base-targets/util/bidValidator';\r\nimport { getBulkApiErrors } from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport ko from 'knockout';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport { isCashbackPercentValid, getCashbackPercentValidationError, getCashbackInheritOptions } from '@bingads-webui-campaign/target-bid-adjustment';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nexport default class BaseTargetViewModel {\r\n constructor(options = {}) {\r\n this.options = options;\r\n this.targetTypePrefix = options.targetTypePrefix;\r\n this.targetRowKeys = options.targetRowKeys;\r\n this.criterionType = options.criterionType;\r\n this.criterionTypeTarget = options.criterionTypeTarget;\r\n this.MTBidAdjustmentErrorCode = options.MTBidAdjustmentErrorCode;\r\n this.MTBidAdjustmentErrorNumber = options.MTBidAdjustmentErrorNumber;\r\n this.targetPopupId = options.targetPopupId;\r\n this.rowExtenders = options.rowExtenders;\r\n\r\n this.targetDescription = i18n.get(`${this.targetTypePrefix}_Description`);\r\n this.targetHeader = i18n.get(`${this.targetTypePrefix}_Header`);\r\n this.bidAdjustmentHeader = i18n.get('Target_ColumnHeaderBidAdjustment');\r\n this.level = options.level;\r\n this.useCampaignSettings = ko.observable(false);\r\n this.useCampaignSettings.subscribe(this.onCampaignSettingsCheckChange, this);\r\n this.showAdGroupOverrideInformation = ko.observable(false);\r\n this.isForVNext = ko.observable(options.isForVNext);\r\n this.readonlyBid = ko.computed(this.computeReadonlyBid, this);\r\n this.rows = [];\r\n this.targetTypeToErrorProperty = {};\r\n this.logInteraction = _.once(() => {\r\n if (this.options.activityLogger) {\r\n this.options.activityLogger.signal(`${this.options.targetType} bid adjustment changed`, `${this.options.targetType} target`);\r\n }\r\n });\r\n this.supportCashbackSettings = ko.observable(options.supportCashbackSettings && !pageContext.Permissions.IsPersonalizedOffersV3Enabled);\r\n this.currentCampaign = options.currentCampaign;\r\n this.currentAdGroup = options.currentAdGroup;\r\n this.populateRows(options);\r\n }\r\n\r\n populateRows(dataset) {\r\n _.each(_.keys(dataset), (key) => {\r\n if (_.has(this.options, key)) {\r\n this.options[key] = dataset[key];\r\n }\r\n });\r\n\r\n _.each(this.targetRowKeys, (targetRowKey) => {\r\n let row;\r\n\r\n this[`${this.targetTypePrefix}${targetRowKey}Row`] = row = {\r\n targetKey: targetRowKey,\r\n targetName: i18n.get(`${this.targetTypePrefix}_${targetRowKey}`),\r\n bidAdjustmentOptions: this.targetTypePrefix === 'MultimediaAdType' ? targetConstants.multimediaBidAdjustmentOptions : targetConstants.bidAdjustmentOptions,\r\n selectedBidAdjustmentOption: ko.observable(this.getSelectedBidAdjustmentOption(targetRowKey, dataset)),\r\n bidAdjustmentValue: ko.observable(this.getBidAdjustmentValue(targetRowKey, dataset)),\r\n koErrorObservable: `${this.targetTypePrefix}${targetRowKey}ErrorObservable`,\r\n cashbackPercentValue: ko.observable(this.getCashbackPercentValue(targetRowKey, dataset)),\r\n koErrorType: `${this.targetTypePrefix}${targetRowKey}ErrorType`,\r\n };\r\n row.bidAdjustmentValue.subscribe(() => {\r\n this.validate();\r\n this.logInteraction();\r\n }, this);\r\n row.selectedBidAdjustmentOption.subscribe(() => {\r\n this.validate();\r\n this.logInteraction();\r\n }, this);\r\n row.cashbackPercentValue.subscribe(() => {\r\n this.validate();\r\n this.logInteraction();\r\n });\r\n const campaignCashbackPercent = dataset[`${this.targetTypePrefix}${targetRowKey}CampaignCashbackPercent`];\r\n const adGroupCashbackPercent = dataset[`${this.targetTypePrefix}${targetRowKey}AdGroupCashbackPercent`];\r\n\r\n this[`original${this.targetTypePrefix}${targetRowKey}CampaignBidAdjustmentValue`] = dataset[`${this.targetTypePrefix}${targetRowKey}CampaignBidAdjustment`];\r\n this[`original${this.targetTypePrefix}${targetRowKey}AdgroupBidAdjustmentValue`] = dataset[`${this.targetTypePrefix}${targetRowKey}AdgroupBidAdjustment`];\r\n this[`original${this.targetTypePrefix}${targetRowKey}CampaignCashbackPercentValue`] = campaignCashbackPercent;\r\n this[`original${this.targetTypePrefix}${targetRowKey}AdgroupCashbackPercentValue`] = adGroupCashbackPercent;\r\n this[`${this.targetTypePrefix}${targetRowKey}CampaignBidId`] = dataset[`${this.targetTypePrefix}${targetRowKey}CampaignBidId`];\r\n this[`${this.targetTypePrefix}${targetRowKey}AdgroupBidId`] = dataset[`${this.targetTypePrefix}${targetRowKey}AdgroupBidId`];\r\n this[`${this.targetTypePrefix}${targetRowKey}CampaignCashbackPercentValue`] = campaignCashbackPercent;\r\n this[`${this.targetTypePrefix}${targetRowKey}AdGroupCashbackPercentValue`] = adGroupCashbackPercent;\r\n this[`${this.targetTypePrefix}${targetRowKey}ErrorObservable`] = ko.observable(true).extend({\r\n validate: [],\r\n });\r\n this[`${this.targetTypePrefix}${targetRowKey}ErrorType`] = ko.observable(null);\r\n\r\n let currentRow = this[`${this.targetTypePrefix}${targetRowKey}Row`];\r\n\r\n if (_.has(this.rowExtenders, targetRowKey)) {\r\n currentRow = _.extend(currentRow, this.rowExtenders[targetRowKey]);\r\n }\r\n\r\n this.rows.push(currentRow);\r\n this.targetTypeToErrorProperty[`${targetRowKey}`] = `${this.targetTypePrefix}${targetRowKey}ErrorObservable`;\r\n });\r\n\r\n //uncheck \"Use my campaign settings\" checkbox if one row having its own value\r\n const anyAdGroupValue = _.some(this.targetRowKeys, (targetRowKey) => {\r\n let targetHasValue = false;\r\n\r\n if (this.options.level === 'adgroup') {\r\n if (this.options.scenario === 'adgroup-create') {\r\n if (targetRowKey === 'MultimediaAdsBids') {\r\n return false;\r\n }\r\n const targetRow = this[`${this.targetTypePrefix}${targetRowKey}Row`];\r\n\r\n targetHasValue = targetRow.bidAdjustmentValue() !== 0 ||\r\n !this.isCashbackValueEmpty(targetRow.cashbackPercentValue());\r\n } else if (this.options.scenario === 'adgroup-settings') {\r\n if (targetRowKey === 'NativeAdsBids') {\r\n targetHasValue = !_.isNull(this.options[`${this.targetTypePrefix}${targetRowKey}AdgroupBidAdjustment`]) ||\r\n !this.isCashbackValueEmpty(this.options[`${this.targetTypePrefix}${targetRowKey}AdGroupCashbackPercent`]);\r\n } else if (targetRowKey === 'MultimediaAdsBids') {\r\n targetHasValue = !_.isNull(this.options[`${this.targetTypePrefix}${targetRowKey}AdgroupBidAdjustment`]);\r\n } else {\r\n targetHasValue = this[`${this.targetTypePrefix}${targetRowKey}AdgroupBidId`] > 0;\r\n }\r\n }\r\n }\r\n\r\n return targetHasValue;\r\n });\r\n\r\n if (this.options.level === 'adgroup' && !anyAdGroupValue) {\r\n this.useCampaignSettings(true);\r\n this.setShowAdGroupOverrideInformation();\r\n }\r\n\r\n this.setupCashbackValuesForAllRows();\r\n\r\n this.useCampaignSettings.subscribe(() => {\r\n this.resetCashbackInheritInfoInAllRows();\r\n });\r\n }\r\n\r\n setupCashbackValuesForAllRows() {\r\n const dataset = this.options;\r\n\r\n _.each(this.targetRowKeys, (targetRowKey) => {\r\n const row = this[`${this.targetTypePrefix}${targetRowKey}Row`];\r\n\r\n const campaignCashbackPercent = dataset[`${this.targetTypePrefix}${targetRowKey}CampaignCashbackPercent`];\r\n const adGroupCashbackPercent = dataset[`${this.targetTypePrefix}${targetRowKey}AdGroupCashbackPercent`];\r\n\r\n this.setCashbackInheritInfo({\r\n campaignCashbackPercent,\r\n adGroupCashbackPercent,\r\n targetRowKey,\r\n row,\r\n dataset,\r\n });\r\n\r\n row.cashbackOptions = ko.observable(this.getCashbackOptions(targetRowKey, dataset));\r\n row.selectedCashbackOption = ko.observable(this.getSelectedCashbackOption(targetRowKey, dataset));\r\n row.cashbackInheritValue = ko.observable(this.getCashbackInheritValue(targetRowKey, dataset));\r\n row.snapshotOverrideCashbackPercent = ko.observable(row.cashbackPercentValue());\r\n\r\n row.selectedCashbackOption.subscribe((currentSelectedOption) => {\r\n if (currentSelectedOption === 'override') {\r\n row.snapshotOverrideCashbackPercent(row.cashbackPercentValue());\r\n }\r\n }, row, 'beforeChange');\r\n\r\n row.selectedCashbackOption.subscribe((selectedOption) => {\r\n if (selectedOption === 'override') {\r\n row.cashbackPercentValue(row.snapshotOverrideCashbackPercent());\r\n } else if (selectedOption === 'noCashback') {\r\n row.cashbackPercentValue(0);\r\n } else {\r\n row.cashbackPercentValue(null);\r\n }\r\n });\r\n });\r\n }\r\n\r\n findTargetKey(entity) {\r\n switch (entity.CriterionType) {\r\n case targetTypes.Device:\r\n return entity.Criterion.DeviceCriterion.DeviceName;\r\n case targetTypes.Age:\r\n return entity.Criterion.AgeCriterion.Target;\r\n case targetTypes.Gender:\r\n return entity.Criterion.GenderCriterion.Target;\r\n default:\r\n break;\r\n }\r\n return '';\r\n }\r\n\r\n setData(updatingEntity) {\r\n const updatingEntityRowKey = this.findTargetKey(updatingEntity);\r\n const levelText = this.level === 'campaign' ? 'Campaign' : 'Adgroup';\r\n const key = `${this.targetTypePrefix}${updatingEntityRowKey}${levelText}BidId`;\r\n\r\n if (updatingEntity.Status === 'Deleted') {\r\n this[key] = this.options[key] = '';\r\n return;\r\n }\r\n\r\n if (updatingEntity.CriterionType === targetTypes.Device && updatingEntityRowKey === 'Computers') {\r\n this[key] = this.options[key] = updatingEntity.Id;\r\n return;\r\n }\r\n\r\n _.each(this.rows, (row) => {\r\n if (row.targetKey === updatingEntityRowKey) {\r\n this[key] = this.options[key] = updatingEntity.Id;\r\n }\r\n });\r\n }\r\n\r\n setLevel(level) {\r\n this.options.level = this.level = level;\r\n }\r\n\r\n computeReadonlyBid() {\r\n return this.level === 'adgroup' && this.useCampaignSettings();\r\n }\r\n\r\n onCampaignSettingsCheckChange() {\r\n _.each(this.targetRowKeys, (targetRowKey) => {\r\n this[`${this.targetTypePrefix}${targetRowKey}Row`].selectedBidAdjustmentOption(this.getSelectedBidAdjustmentOption(targetRowKey, this.options));\r\n this[`${this.targetTypePrefix}${targetRowKey}Row`].bidAdjustmentValue(this.getBidAdjustmentValue(targetRowKey, this.options));\r\n if (this[`${this.targetTypePrefix}${targetRowKey}Row`].snapshotOverrideCashbackPercent) {\r\n this[`${this.targetTypePrefix}${targetRowKey}Row`].snapshotOverrideCashbackPercent(this.getCashbackPercentValue(targetRowKey, this.options));\r\n }\r\n this[`${this.targetTypePrefix}${targetRowKey}Row`].cashbackPercentValue(this.getCashbackPercentValue(targetRowKey, this.options));\r\n });\r\n }\r\n\r\n getSelectedBidAdjustmentOption(targetRowKey, dataset) {\r\n if (this.options.level === 'campaign' || this.useCampaignSettings()) {\r\n return dataset[`${this.targetTypePrefix}${targetRowKey}CampaignBidAdjustment`] >= 0 ? targetConstants.bidAdjustmentIncreaseValue : targetConstants.bidAdjustmentDecreaseValue;\r\n } else {\r\n return dataset[`${this.targetTypePrefix}${targetRowKey}AdgroupBidAdjustment`] >= 0 ? targetConstants.bidAdjustmentIncreaseValue : targetConstants.bidAdjustmentDecreaseValue;\r\n }\r\n }\r\n\r\n getBidAdjustmentValue(targetRowKey, dataset) {\r\n if (this.options.level === 'campaign' || this.useCampaignSettings()) {\r\n return Math.abs(dataset[`${this.targetTypePrefix}${targetRowKey}CampaignBidAdjustment`]);\r\n } else {\r\n if (targetRowKey === 'MultimediaAdsBids') {\r\n return Math.abs(dataset[`${this.targetTypePrefix}${targetRowKey}AdgroupBidAdjustment`] ? dataset[`${this.targetTypePrefix}${targetRowKey}AdgroupBidAdjustment`] : targetConstants.multimediaAdDefaultBid);\r\n }\r\n\r\n return Math.abs(dataset[`${this.targetTypePrefix}${targetRowKey}AdgroupBidAdjustment`]);\r\n }\r\n }\r\n\r\n getCashbackPercentValue(targetRowKey, dataset) {\r\n if (this.options.level === 'campaign' || this.useCampaignSettings()) {\r\n return dataset[`${this.targetTypePrefix}${targetRowKey}CampaignCashbackPercent`];\r\n } else {\r\n return dataset[`${this.targetTypePrefix}${targetRowKey}AdGroupCashbackPercent`];\r\n }\r\n }\r\n\r\n getCashbackOptions(targetRowKey, dataset) {\r\n if (this.options.level === 'campaign' || this.useCampaignSettings()) {\r\n return dataset[`${this.targetTypePrefix}${targetRowKey}CampaignCashbackOptions`];\r\n }\r\n return dataset[`${this.targetTypePrefix}${targetRowKey}AdGroupCashbackOptions`];\r\n }\r\n\r\n getSelectedCashbackOption(targetRowKey, dataset) {\r\n if (this.options.level === 'campaign' || this.useCampaignSettings()) {\r\n return dataset[`${this.targetTypePrefix}${targetRowKey}CampaignCashbackSelectedOption`];\r\n }\r\n return dataset[`${this.targetTypePrefix}${targetRowKey}AdGroupCashbackSelectedOption`];\r\n }\r\n\r\n getCashbackInheritValue(targetRowKey, dataset) {\r\n let value;\r\n\r\n if (this.options.level === 'campaign' || this.useCampaignSettings()) {\r\n value = dataset[`${this.targetTypePrefix}${targetRowKey}CampaignCashbackInheritValue`];\r\n }\r\n value = dataset[`${this.targetTypePrefix}${targetRowKey}AdGroupCashbackInheritValue`];\r\n return value === '-' ? value : decimal.fromFloatToString(value, 2);\r\n }\r\n\r\n getValues() {\r\n let values = [];\r\n\r\n //if we're in the adgroup level and the useCampaignSettings checkbox is checked, return an empty list as the adgroup targets use their campaign level settings\r\n //TODO[imang]: this is only a true logic in create mode. in the update mode: we have to set adgroup targets for delete if using campaign level settings\r\n if (this.options.scenario === 'adgroup-create' && this.useCampaignSettings()) {\r\n return values;\r\n } else if (this.options.scenario === 'adgroup-settings' && this.useCampaignSettings()) {\r\n _.each(this.targetRowKeys, (targetRowKey) => {\r\n if (this[`${this.targetTypePrefix}${targetRowKey}AdgroupBidId`] > 0) {\r\n let criterion = {\r\n 'Type': this.criterionType,\r\n };\r\n\r\n criterion[`${this.criterionType}Criterion`] = {};\r\n criterion[`${this.criterionType}Criterion`][`${this.criterionTypeTarget}`] = targetRowKey;\r\n\r\n values.push({\r\n 'Id': this[`${this.targetTypePrefix}${targetRowKey}AdgroupBidId`],\r\n 'CriterionType': this.criterionType,\r\n 'Criterion': criterion,\r\n 'Status': 'Deleted',\r\n });\r\n }\r\n });\r\n\r\n return values;\r\n }\r\n\r\n let levelPrefix = this.options.level === 'campaign' || this.useCampaignSettings() ? 'Campaign' : 'Adgroup';\r\n let anyDeviceChange = this.findIfThereIsAnyDeviceChange(levelPrefix);\r\n\r\n _.each(this.targetRowKeys, (targetRowKey) => {\r\n const currentRow = this[`${this.targetTypePrefix}${targetRowKey}Row`];\r\n let rowBidAdjustment = Number(currentRow.bidAdjustmentValue()) * currentRow.selectedBidAdjustmentOption();\r\n const rowCashbackPercent = currentRow.cashbackPercentValue();\r\n\r\n //consider the row for create/update only if\r\n //there is a BidId (update):\r\n // if in adgroup-settings and useCampaignSettings\r\n // true\r\n // else\r\n // input bid is different from original bid\r\n //there is no BidId (create):\r\n // input bid is not zero\r\n let addEntry = false;\r\n\r\n if (this[`${this.targetTypePrefix}${targetRowKey}${levelPrefix}BidId`]) {\r\n if (this.options.level === 'adgroup' && this.useCampaignSettings()) {\r\n addEntry = true;\r\n } else {\r\n addEntry = rowBidAdjustment !== this[`original${this.targetTypePrefix}${targetRowKey}${levelPrefix}BidAdjustmentValue`] ||\r\n this.isCashbackValuesEqual(rowCashbackPercent, this[`original${this.targetTypePrefix}${targetRowKey}${levelPrefix}CashbackPercentValue`]);\r\n }\r\n } else if (this.options.level === 'adgroup' && !this.useCampaignSettings()) {\r\n addEntry = true;\r\n } else {\r\n addEntry = rowBidAdjustment !== 0 || !this.isCashbackValueEmpty(rowCashbackPercent);\r\n }\r\n\r\n //this is a workaround to always send all three device types to MT no matter what. They don't work if we don't provide all device target types.\r\n if (this.criterionType === 'Device' && anyDeviceChange) {\r\n addEntry = true;\r\n }\r\n\r\n if (addEntry) {\r\n let criterion = {\r\n 'Type': this.criterionType,\r\n 'BidAdjustment': rowBidAdjustment,\r\n };\r\n\r\n if (this.supportCashbackSettings()) {\r\n criterion.CashbackPercent = rowCashbackPercent;\r\n }\r\n\r\n criterion[`${this.criterionType}Criterion`] = {};\r\n criterion[`${this.criterionType}Criterion`][`${this.criterionTypeTarget}`] = targetRowKey;\r\n\r\n values.push({\r\n 'Id': this[`${this.targetTypePrefix}${targetRowKey}${levelPrefix}BidId`] || '',\r\n 'CriterionType': this.criterionType,\r\n 'Criterion': criterion,\r\n });\r\n }\r\n });\r\n\r\n return values;\r\n }\r\n\r\n findIfThereIsAnyDeviceChange(levelPrefix) {\r\n let result = false;\r\n\r\n if (this.criterionType === 'Device') {\r\n _.each(this.targetRowKeys, (targetRowKey) => {\r\n const currentRow = this[`${this.targetTypePrefix}${targetRowKey}Row`];\r\n let rowBidAdjustment = Number(currentRow.bidAdjustmentValue()) * currentRow.selectedBidAdjustmentOption();\r\n const rowCashbackPercent = currentRow.cashbackPercentValue();\r\n\r\n if (this[`${this.targetTypePrefix}${targetRowKey}${levelPrefix}BidId`]) {\r\n if (this.options.level === 'adgroup' && this.useCampaignSettings()) {\r\n result = true;\r\n } else {\r\n result = result || rowBidAdjustment !== this[`original${this.targetTypePrefix}${targetRowKey}${levelPrefix}BidAdjustmentValue`] ||\r\n rowCashbackPercent !== this[`original${this.targetTypePrefix}${targetRowKey}${levelPrefix}CashbackPercentValue`];\r\n }\r\n } else if (this.options.level === 'adgroup' && !this.useCampaignSettings()) {\r\n result = true;\r\n } else {\r\n result = result || rowBidAdjustment !== 0 || rowCashbackPercent !== '';\r\n }\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n isInRange(rowBid, targetRowKey) {\r\n if (targetRowKey === 'MultimediaAdsBids') {\r\n return this[`${this.targetTypePrefix}${targetRowKey}Row`].selectedBidAdjustmentOption() === targetConstants.bidAdjustmentIncreaseValue &&\r\n rowBid <= targetConstants.maximumBid[`${this.targetTypePrefix}_${targetRowKey}`] &&\r\n rowBid >= targetConstants.minimumBid[`${this.targetTypePrefix}_${targetRowKey}`];\r\n }\r\n\r\n return rowBid >= 0 &&\r\n (this[`${this.targetTypePrefix}${targetRowKey}Row`].selectedBidAdjustmentOption() === targetConstants.bidAdjustmentIncreaseValue ?\r\n rowBid <= targetConstants.maximumBid[`${this.targetTypePrefix}_${targetRowKey}`] :\r\n rowBid <= targetConstants.minimumBid[`${this.targetTypePrefix}_${targetRowKey}`]);\r\n }\r\n\r\n validate() {\r\n if (!this.errors) {\r\n return true;\r\n }\r\n let bidErrors = [];\r\n const cashbackErrors = [];\r\n let isValid = true;\r\n\r\n _.each(this.targetRowKeys, (targetRowKey) => {\r\n const row = this[`${this.targetTypePrefix}${targetRowKey}Row`];\r\n const rowBid = row.bidAdjustmentValue();\r\n\r\n let isInRange = this.isInRange(rowBid, targetRowKey);\r\n const {\r\n isNotEmpty,\r\n isDecimal,\r\n isNonNegative,\r\n isEndingWithDigit,\r\n } = validateBid(rowBid);\r\n\r\n let bidValid = isNotEmpty && isInRange && isDecimal && isNonNegative && isEndingWithDigit;\r\n\r\n const rowCashbackPercent = row.cashbackPercentValue();\r\n const cashbackPercentValidated = !this.supportCashbackSettings() || isCashbackPercentValid(rowCashbackPercent, decimal);\r\n\r\n isValid = isValid && bidValid && cashbackPercentValidated;\r\n\r\n\r\n this[`${this.targetTypePrefix}${targetRowKey}ErrorObservable`](bidValid);\r\n\r\n if (isValid) {\r\n this[`${this.targetTypePrefix}${targetRowKey}ErrorType`](null);\r\n } else {\r\n this[`${this.targetTypePrefix}${targetRowKey}ErrorType`](cashbackPercentValidated ? 'BID' : 'CASHBACK');\r\n }\r\n\r\n if (!isNotEmpty) {\r\n bidErrors.push({\r\n Error: i18n.get('AdvancedTargeting_Error_BidValueMustNotBeEmpty'),\r\n ErrorNumber: '',\r\n Property: `${this.targetTypePrefix}${targetRowKey}ErrorObservable`,\r\n });\r\n } else if (!isDecimal || !isNonNegative || !isEndingWithDigit) {\r\n bidErrors.push({\r\n Error: i18n.get('Validation_InvalidBidAdjustment'),\r\n ErrorNumber: '',\r\n Property: `${this.targetTypePrefix}${targetRowKey}ErrorObservable`,\r\n });\r\n } else if (!isInRange) {\r\n bidErrors.push({\r\n Error: this.MTBidAdjustmentErrorCode,\r\n ErrorNumber: this.MTBidAdjustmentErrorNumber,\r\n Property: `${this.targetTypePrefix}${targetRowKey}ErrorObservable`,\r\n });\r\n }\r\n\r\n if (!cashbackPercentValidated) {\r\n const errorMessage = getCashbackPercentValidationError(rowCashbackPercent, i18n, decimal);\r\n\r\n cashbackErrors.push({\r\n Error: errorMessage,\r\n ErrorNumber: '',\r\n Property: `${this.targetTypePrefix}${targetRowKey}ErrorObservable`,\r\n });\r\n }\r\n });\r\n\r\n bidErrors = bidErrors.concat(cashbackErrors);\r\n bidErrors = getBulkApiErrors(bidErrors);\r\n bidErrors = this.populateErrorMessageConstants(bidErrors);\r\n\r\n this.errors.add(bidErrors);\r\n\r\n return isValid;\r\n }\r\n\r\n isCashbackValueEmpty(v) {\r\n return v == null || v === '' || !this.supportCashbackSettings();\r\n }\r\n\r\n isCashbackValuesEqual(v1, v2) {\r\n if (v1 == null) {\r\n v1 = ''; // eslint-disable-line\r\n }\r\n if (v2 == null) {\r\n v2 = ''; // eslint-disable-line\r\n }\r\n\r\n if (!this.supportCashbackSettings()) {\r\n return true;\r\n }\r\n return v1 === v2;\r\n }\r\n\r\n resetCashbackInheritInfoInAllRows(inheritInfo) {\r\n if (inheritInfo != null) {\r\n const { value, level } = inheritInfo;\r\n\r\n if (level === 'AdGroup') {\r\n this.currentAdGroup = _.extend({}, this.currentAdGroup, {\r\n AdGroupCashback: _.extend({}, this.currentAdGroup ? this.currentAdGroup.AdGroupCashback : {}, {\r\n Percent: value,\r\n }),\r\n });\r\n } else if (level === 'Campaign') {\r\n this.currentCampaign = _.extend({}, this.currentCampaign, {\r\n CampaignCashback: _.extend({}, this.currentCampaign ? this.currentCampaign.CampaignCashback : {}, {\r\n Percent: value,\r\n }),\r\n });\r\n }\r\n }\r\n _.each(this.targetRowKeys, (targetRowKey) => {\r\n const row = this[`${this.targetTypePrefix}${targetRowKey}Row`];\r\n let campaignCashbackPercent = null;\r\n let adGroupCashbackPercent = null;\r\n\r\n if (this.options.level === 'campaign' || this.useCampaignSettings()) {\r\n campaignCashbackPercent = row.cashbackPercentValue();\r\n } else {\r\n campaignCashbackPercent = row.cashbackInheritValue();\r\n adGroupCashbackPercent = row.cashbackPercentValue();\r\n }\r\n const dataset = this.options;\r\n\r\n this.setCashbackInheritInfo({\r\n campaignCashbackPercent,\r\n adGroupCashbackPercent,\r\n dataset: this.options,\r\n row,\r\n targetRowKey,\r\n });\r\n row.cashbackInheritValue(this.getCashbackInheritValue(targetRowKey, dataset));\r\n row.cashbackOptions(this.getCashbackOptions(targetRowKey, dataset));\r\n row.selectedCashbackOption(this.getSelectedCashbackOption(targetRowKey, dataset));\r\n });\r\n }\r\n\r\n setCashbackInheritInfo({\r\n campaignCashbackPercent,\r\n adGroupCashbackPercent,\r\n dataset,\r\n targetRowKey,\r\n }) {\r\n const campaignCashbackInheritOptions = getCashbackInheritOptions({\r\n viewContext: {\r\n currentAdGroup: this.currentAdGroup,\r\n currentCampaign: this.currentCampaign,\r\n },\r\n i18n,\r\n readonly: this.readonlyBid(),\r\n CashbackPercent: campaignCashbackPercent,\r\n });\r\n const adGroupCashbackInheritOptions = getCashbackInheritOptions({\r\n viewContext: {\r\n currentAdGroup: this.currentAdGroup,\r\n currentCampaign: this.currentCampaign,\r\n },\r\n i18n,\r\n readonly: this.readonlyBid(),\r\n CashbackPercent: adGroupCashbackPercent,\r\n });\r\n\r\n dataset[`${this.targetTypePrefix}${targetRowKey}CampaignCashbackOptions`] = campaignCashbackInheritOptions.options;\r\n dataset[`${this.targetTypePrefix}${targetRowKey}AdGroupCashbackOptions`] = adGroupCashbackInheritOptions.options;\r\n dataset[`${this.targetTypePrefix}${targetRowKey}CampaignCashbackInheritValue`] = campaignCashbackInheritOptions.inheritValue;\r\n dataset[`${this.targetTypePrefix}${targetRowKey}AdGroupCashbackInheritValue`] = adGroupCashbackInheritOptions.inheritValue;\r\n dataset[`${this.targetTypePrefix}${targetRowKey}CampaignCashbackSelectedOption`] = campaignCashbackInheritOptions.selected;\r\n dataset[`${this.targetTypePrefix}${targetRowKey}AdGroupCashbackSelectedOption`] = adGroupCashbackInheritOptions.selected;\r\n }\r\n\r\n populateErrorMessageConstants(errors) {\r\n let result = [];\r\n\r\n _.each(errors, (bidError) => {\r\n //always use the first row's min and max bid values as all rows should have equal values\r\n //if the values for different rows are different (e.g. device targets), the child class should override this behaviour.\r\n bidError.message = bidError.message\r\n .replace('{0}', targetConstants.minimumBid[`${this.targetTypePrefix}_${this.targetRowKeys[0]}`])\r\n .replace('{1}', targetConstants.maximumBid[`${this.targetTypePrefix}_${this.targetRowKeys[0]}`]);\r\n result.push(bidError);\r\n });\r\n return result;\r\n }\r\n\r\n extractTargetingErrors(bulkResponse) {\r\n let errors = bulkResponse.errors;\r\n let remainingErrors = [];\r\n let criterionErrors = [];\r\n\r\n _.map(errors, (error) => {\r\n if (error.Error === this.MTBidAdjustmentErrorCode) {\r\n let errorEntity = _.find(bulkResponse.entity.CampaignCriterions, (campaignCriterion) => {\r\n return campaignCriterion['Client Id'] === error['Client Id'];\r\n });\r\n\r\n if (errorEntity) {\r\n error.Property = this.targetTypeToErrorProperty[errorEntity.Criterion[`${this.criterionType}Criterion`][`${this.criterionTypeTarget}`]];\r\n }\r\n criterionErrors.push(error);\r\n } else {\r\n remainingErrors.push(error);\r\n }\r\n });\r\n return {\r\n criterionErrors,\r\n remainingErrors,\r\n };\r\n }\r\n\r\n handleErrors(response) {\r\n let criterionErrorExtracts = this.extractTargetingErrors(response);\r\n let criterionResponseErrors = criterionErrorExtracts.criterionErrors;\r\n let criterionErrors = getBulkApiErrors(criterionResponseErrors);\r\n\r\n criterionErrors = this.populateErrorMessageConstants(criterionErrors);\r\n this.errors.add(criterionErrors);\r\n\r\n return criterionErrorExtracts.remainingErrors;\r\n }\r\n\r\n setShowAdGroupOverrideInformation() {\r\n // no-op in base class\r\n }\r\n}\r\n","import koSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\nimport _ from 'underscore';\r\nimport targetConstants from '@bingads-webui-campaign-legacy/base-targets/viewmodel/targetConstants';\r\nimport BaseTargetViewModel from '@bingads-webui-campaign-legacy/base-targets/viewmodel/baseTargets';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nexport default class DeviceViewModel extends BaseTargetViewModel {\r\n constructor(options = {}) {\r\n super(_.defaults({\r\n targetTypePrefix: 'DeviceType',\r\n targetRowKeys: targetConstants.rowKeys.Device,\r\n criterionType: 'Device',\r\n criterionTypeTarget: 'DeviceName',\r\n MTBidAdjustmentErrorCode: 'CampaignServiceInvalidDeviceTargetBidAdjustment',\r\n MTBidAdjustmentErrorNumber: '2934',\r\n targetPopupId: 'pop_BA_TargetingSettingsPopup_TargetTablet',\r\n }, {}, options));\r\n\r\n koSchema.properties(this);\r\n }\r\n\r\n isInRange(rowBid, targetRowKey) {\r\n return rowBid >= 0 &&\r\n (this[`${this.targetTypePrefix}${targetRowKey}Row`].selectedBidAdjustmentOption() === targetConstants.bidAdjustmentIncreaseValue ?\r\n rowBid <= targetConstants.maximumBid[`${this.targetTypePrefix}_${targetRowKey}`] :\r\n rowBid <= targetConstants.minimumBid[`${this.targetTypePrefix}_${targetRowKey}`]);\r\n }\r\n\r\n populateErrorMessageConstants(errors) {\r\n const mapping = {\r\n 'DeviceTypeComputersErrorObservable': 'DeviceType_Computers',\r\n 'DeviceTypeTabletsErrorObservable': 'DeviceType_Tablets',\r\n 'DeviceTypeSmartphonesErrorObservable': 'DeviceType_Smartphones',\r\n };\r\n\r\n return _.map(errors, (bidError) => {\r\n let rawMessage = bidError.property === 'DeviceTypeComputersErrorObservable' && bidError.ErrorNumber === this.MTBidAdjustmentErrorNumber ?\r\n i18n.get('ErrorNumber_BidAdjustment_OutOfRange') :\r\n bidError.message;\r\n\r\n bidError.message = rawMessage\r\n .replace('{0}', targetConstants.minimumBid[mapping[bidError.property]])\r\n .replace('{1}', targetConstants.maximumBid[mapping[bidError.property]]);\r\n\r\n return bidError;\r\n });\r\n }\r\n\r\n onCampaignSettingsCheckChange(checked) {\r\n super.onCampaignSettingsCheckChange(checked);\r\n this.showAdGroupOverrideInformation(false);\r\n }\r\n\r\n setShowAdGroupOverrideInformation() {\r\n this.showAdGroupOverrideInformation(this.options.fromSettingsGrid);\r\n }\r\n}\r\n","import targetConstants from '@bingads-webui-campaign-legacy/base-targets/viewmodel/targetConstants';\r\n\r\nexport default {\r\n getSelectedBidAdjustmentOption(key, dataset, level, useCampaignSettings) {\r\n if (level === 'campaign' || useCampaignSettings) {\r\n return dataset[`${key}CampaignBidAdjustment`] >= 0 ? targetConstants.bidAdjustmentIncreaseValue : targetConstants.bidAdjustmentDecreaseValue;\r\n } else {\r\n return dataset[`${key}AdgroupBidAdjustment`] >= 0 ? targetConstants.bidAdjustmentIncreaseValue : targetConstants.bidAdjustmentDecreaseValue;\r\n }\r\n },\r\n getBidAdjustmentValue(key, dataset, level, useCampaignSettings) {\r\n if (level === 'campaign' || useCampaignSettings) {\r\n return Math.abs(dataset[`${key}CampaignBidAdjustment`]);\r\n } else {\r\n return Math.abs(dataset[`${key}AdgroupBidAdjustment`]);\r\n }\r\n },\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 targetConstants from '@bingads-webui-campaign-legacy/base-targets/viewmodel/targetConstants';\r\nimport helper from '@bingads-webui-campaign-legacy/base-targets/util/helper';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\nconst i18nApiError = window.globalLegacyI18n.get('component/i18n/loader!component/api-errors-campaign');\r\n\r\nko.subscribable.fn.subscribeChanged = (callback, observable) => {\r\n let previousValue;\r\n\r\n observable.subscribe((_previousValue) => {\r\n previousValue = _previousValue;\r\n }, undefined, 'beforeChange');\r\n observable.subscribe((latestValue) => {\r\n callback(latestValue, previousValue);\r\n });\r\n};\r\n\r\nclass Device {\r\n constructor(device, viewmodel) {\r\n this.key = `DeviceType${device.key}`;\r\n this.name = device.key;\r\n this.displayName = device.name;\r\n this.bidAdjustmentOptions = targetConstants.bidAdjustmentOptions;\r\n this.error = ko.observable('');\r\n this.expandLinkText = ko.observable(i18n.get('EditLink'));\r\n this.readonlyBid = ko.computed(() => (viewmodel.level === 'adgroup' && viewmodel.useCampaignSettings()) ||\r\n (!viewmodel.options.showLevelToggle && viewmodel.options.isParentView));\r\n this.selectedBidAdjustmentOption = ko.observable(\r\n helper.getSelectedBidAdjustmentOption(this.key, viewmodel.options, viewmodel.level, viewmodel.useCampaignSettings()),\r\n );\r\n this.selectedBidAdjustmentOption.subscribe(() => {\r\n viewmodel._validateBid(this);\r\n }, this);\r\n this.bidAdjustmentValue = ko.observable(\r\n helper.getBidAdjustmentValue(this.key, viewmodel.options, viewmodel.level, viewmodel.useCampaignSettings()),\r\n );\r\n this.bidAdjustmentValue.subscribe((value) => {\r\n this.bidAdjustmentValue(value);\r\n viewmodel._validateBid(this);\r\n }, this);\r\n this.originalCampaignBidAdjustmentValue = viewmodel.options[`${this.key}CampaignBidAdjustment`];\r\n this.originalAdgroupBidAdjustmentValue = viewmodel.options[`${this.key}AdgroupBidAdjustment`];\r\n this.CampaignBidId = viewmodel.options[`${this.key}CampaignBidId`];\r\n this.AdgroupBidId = viewmodel.options[`${this.key}AdgroupBidId`];\r\n this.selectedOsCount = ko.observable(0);\r\n this.isSelected = ko.observable();\r\n this.isSelected.subscribeChanged((newValue, oldValue) => {\r\n if (!oldValue && newValue) {\r\n viewmodel.selectedDeviceCount++;\r\n } else if (oldValue && !newValue) {\r\n viewmodel.selectedDeviceCount--;\r\n }\r\n }, this.isSelected);\r\n this.isSelected(viewmodel._shouldSelectTarget(this.key));\r\n this.onClick = () => {\r\n if (!this.isSelected() && viewmodel.selectedDeviceCount === 0) {\r\n this.isSelected(true);\r\n } else {\r\n _.each(this.operatingSystems, (os) => {\r\n os.isSelected(this.isSelected());\r\n });\r\n }\r\n viewmodel._countValidatedDevices();\r\n return true;\r\n };\r\n this.changeText = (currentDevice, event) => {\r\n if (event.currentTarget.className.indexOf('collapsed') > -1) {\r\n currentDevice.expandLinkText(i18n.get('EditLink_Hide'));\r\n } else {\r\n currentDevice.expandLinkText(i18n.get('EditLink'));\r\n }\r\n };\r\n this.operatingSystems = _.map(device.operatingSystems, (osName) => {\r\n const isSelected = ko.observable();\r\n\r\n isSelected.subscribeChanged((newValue, oldValue) => {\r\n if (!oldValue && newValue) {\r\n this.isSelected(true);\r\n this.selectedOsCount(this.selectedOsCount() + 1);\r\n } else if (oldValue && !newValue) {\r\n this.selectedOsCount(this.selectedOsCount() - 1);\r\n }\r\n }, isSelected);\r\n\r\n isSelected(viewmodel._shouldSelectTarget(this.key) || viewmodel._shouldSelectTarget(`${this.key}${osName}`));\r\n const os = {\r\n name: osName,\r\n displayName: i18n.get(`Targeting_Device_OperatingSystem_${osName}`),\r\n parentName: this.name,\r\n CampaignBidId: viewmodel.options[`${this.key}${osName}CampaignBidId`],\r\n AdgroupBidId: viewmodel.options[`${this.key}${osName}AdgroupBidId`],\r\n originalCampaignBidAdjustmentValue: viewmodel.options[`${this.key}${osName}CampaignBidAdjustment`],\r\n originalAdgroupBidAdjustmentValue: viewmodel.options[`${this.key}${osName}AdgroupBidAdjustment`],\r\n selectedBidAdjustmentOption: ko.computed(() => {\r\n return this.selectedBidAdjustmentOption();\r\n }, this),\r\n bidAdjustmentValue: ko.computed(() => {\r\n return this.bidAdjustmentValue();\r\n }, this),\r\n isSelected,\r\n onClick: () => {\r\n if (!isSelected() && this.selectedOsCount() === 0) {\r\n isSelected(true);\r\n }\r\n viewmodel._countValidatedDevices();\r\n return true;\r\n },\r\n };\r\n\r\n if ((viewmodel.levelPrefix() === 'Campaign' && os.CampaignBidId > 0) ||\r\n (viewmodel.levelPrefix() === 'Adgroup' && os.AdgroupBidId > 0)) {\r\n this.selectedBidAdjustmentOption(helper.getSelectedBidAdjustmentOption(`${this.key}${osName}`, viewmodel.options, viewmodel.level, viewmodel.useCampaignSettings()));\r\n this.bidAdjustmentValue(helper.getBidAdjustmentValue(`${this.key}${osName}`, viewmodel.options, viewmodel.level, viewmodel.useCampaignSettings()));\r\n }\r\n return os;\r\n });\r\n this.osSelected = ko.computed(() => {\r\n if (this.selectedOsCount() === this.operatingSystems.length) {\r\n return i18n.get('Targeting_TargetOSAllOS');\r\n } else if (this.selectedOsCount() < this.operatingSystems.length && this.selectedOsCount() > 0) {\r\n return _.chain(this.operatingSystems)\r\n .filter((os) => {\r\n return os.isSelected();\r\n })\r\n .pluck('displayName')\r\n .value().join(',');\r\n } else {\r\n return '';\r\n }\r\n }, this);\r\n }\r\n}\r\n\r\nexport default class ViewModel {\r\n constructor(options = {}) {\r\n this.options = options;\r\n this.level = options.level;\r\n this.useCampaignSettings = ko.observable(false);\r\n this.isForVNext = ko.observable(options.isForVNext);\r\n this.useCampaignSettings.subscribe(this._onCampaignSettingsCheckChange, this);\r\n this.showAdGroupOverrideInformation = ko.observable(false);\r\n this.devices = [];\r\n this.selectedDeviceCount = 0;\r\n this.levelPrefix = ko.computed(() => {\r\n return this.options.level === 'campaign' || this.useCampaignSettings() ? 'Campaign' : 'Adgroup';\r\n }, this);\r\n this._populatedevices();\r\n }\r\n _ifAnyAdgroupBidAdjustment(target) {\r\n let anyAdgroupBidAdjustment = false;\r\n\r\n if (this.options.scenario === 'adgroup-settings') {\r\n anyAdgroupBidAdjustment = target.AdgroupBidId > 0;\r\n }\r\n return anyAdgroupBidAdjustment;\r\n }\r\n _populatedevices() {\r\n let anyAdgroupBidAdjustment = false;\r\n\r\n _.each(targetConstants.rowKeys.Device, (deviceKey) => {\r\n const device = new Device({\r\n key: deviceKey,\r\n name: i18n.get(`DeviceType_${deviceKey}`),\r\n operatingSystems: targetConstants.osNames[deviceKey],\r\n }, this);\r\n\r\n this.devices.push(device);\r\n if (this.options.level === 'adgroup') {\r\n anyAdgroupBidAdjustment = anyAdgroupBidAdjustment || this._ifAnyAdgroupBidAdjustment(device);\r\n if (!anyAdgroupBidAdjustment) {\r\n anyAdgroupBidAdjustment = anyAdgroupBidAdjustment || _.some(device.operatingSystems, (os) => {\r\n return this._ifAnyAdgroupBidAdjustment(os);\r\n });\r\n }\r\n }\r\n });\r\n\r\n if (this.options.level === 'adgroup' && !anyAdgroupBidAdjustment &&\r\n this.options.showLevelToggle) {\r\n this.useCampaignSettings(true);\r\n this.showAdGroupOverrideInformation(this.options.fromSettingsGrid);\r\n } else if (this.selectedDeviceCount === 0) {\r\n this._selectAll();\r\n }\r\n }\r\n _onCampaignSettingsCheckChange() {\r\n _.each(this.devices, (device) => {\r\n const shouldSelectDevice = this._shouldSelectTarget(device.key);\r\n\r\n device.isSelected(false);//Reset the observable\r\n device.isSelected(shouldSelectDevice);\r\n device.selectedBidAdjustmentOption(helper.getSelectedBidAdjustmentOption(device.key, this.options, this.level, this.useCampaignSettings()));\r\n device.bidAdjustmentValue(helper.getBidAdjustmentValue(device.key, this.options, this.level, this.useCampaignSettings()));\r\n\r\n _.each(device.operatingSystems, (os) => {\r\n const shouldSelectOs = this._shouldSelectTarget(`${device.key}${os.name}`);\r\n\r\n os.isSelected(false);//Reset the observable\r\n os.isSelected(shouldSelectDevice || shouldSelectOs);\r\n if (shouldSelectOs) {\r\n device.selectedBidAdjustmentOption(helper.getSelectedBidAdjustmentOption(`${device.key}${os.name}`, this.options, this.level, this.useCampaignSettings()));\r\n device.bidAdjustmentValue(helper.getBidAdjustmentValue(`${device.key}${os.name}`, this.options, this.level, this.useCampaignSettings()));\r\n }\r\n });\r\n });\r\n if (this.selectedDeviceCount === 0) {\r\n this._selectAll();\r\n }\r\n this.showAdGroupOverrideInformation(false);\r\n }\r\n _selectAll() {\r\n _.each(this.devices, (device) => {\r\n device.isSelected(true);\r\n _.each(device.operatingSystems, (os) => {\r\n os.isSelected(true);\r\n });\r\n });\r\n }\r\n _shouldSelectTarget(key) {\r\n const useCampaignSettings = this.useCampaignSettings();\r\n\r\n if (this.options.scenario === 'creation-workflow') { //campaign-create scenario\r\n return true;\r\n } else if (this.options.scenario === 'adgroup-create') {\r\n return !useCampaignSettings || this.options[`${key}CampaignBidId`] > 0;\r\n } else if (this.options.scenario === 'campaign-settings') {\r\n return this.options[`${key}CampaignBidId`] > 0;\r\n } else {\r\n if (this.options.subScenario === 'targeting-settings-inherited-copy-over') {\r\n return this.options[`${key}CampaignBidId`] > 0;\r\n }\r\n\r\n return useCampaignSettings ? this.options[`${key}CampaignBidId`] > 0 : this.options[`${key}AdgroupBidId`] > 0;\r\n }\r\n }\r\n _getCriterion(id, deviceName, osName, bidAdjustment, isDelete) {\r\n const criterion = {\r\n Id: id,\r\n CriterionType: 'Device',\r\n Criterion: {\r\n Type: 'Device',\r\n DeviceCriterion: {\r\n DeviceName: deviceName,\r\n },\r\n },\r\n };\r\n\r\n if (bidAdjustment) {\r\n criterion.Criterion.BidAdjustment = bidAdjustment;\r\n }\r\n if (osName) {\r\n criterion.Criterion.DeviceCriterion.OSName = osName;\r\n }\r\n if (isDelete) {\r\n criterion.Status = 'Deleted';\r\n }\r\n return criterion;\r\n }\r\n _deleteCriterionWhenAppropriate(device, os, values) {\r\n const levelPrefix = this.levelPrefix();\r\n const target = os ? os : device;\r\n\r\n if (target[`${levelPrefix}BidId`] > 0) {\r\n if (!target.isSelected() ||\r\n (os && device.selectedOsCount() === device.operatingSystems.length) || //this is because if user selects os level targets and then checks at the device level, we need to delete the os levels targets\r\n (!os && device.selectedOsCount() < device.operatingSystems.length)) { //vise versa\r\n values.push(\r\n this._getCriterion(target[`${levelPrefix}BidId`],\r\n target.parentName ? target.parentName : target.name,\r\n target.parentName ? target.name : null,\r\n null, true));\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n _addOrUpdateCriterion(target, values) {\r\n const rowBidAdjustment = Number(target.bidAdjustmentValue()) * target.selectedBidAdjustmentOption();\r\n const levelPrefix = this.levelPrefix();\r\n\r\n let addEntry = false;\r\n const isSelected = target.isSelected();\r\n\r\n if (target[`${levelPrefix}BidId`]) {\r\n addEntry = isSelected && rowBidAdjustment !== target[`original${levelPrefix}BidAdjustmentValue`];\r\n } else {\r\n addEntry = isSelected;\r\n }\r\n\r\n if (addEntry) {\r\n values.push(this._getCriterion(\r\n target[`${levelPrefix}BidId`],\r\n target.parentName ? target.parentName : target.name,\r\n target.parentName ? target.name : null,\r\n rowBidAdjustment));\r\n }\r\n }\r\n _countValidatedDevices() {\r\n let valid = true;\r\n\r\n this.devices.forEach((deviceRow) => {\r\n if (deviceRow.error() !== '') {\r\n valid = false;\r\n }\r\n });\r\n if (this.options.onChange) {\r\n this.options.onChange(valid, this.getValues());\r\n }\r\n }\r\n _validateBid(device) {\r\n let isInRange = true;\r\n let isDecimal = true;\r\n let isNotEmpty = true;\r\n let isNonNegative = true;\r\n const rowBid = device.bidAdjustmentValue();\r\n\r\n isInRange = rowBid >= 0 &&\r\n (device.selectedBidAdjustmentOption() === targetConstants.bidAdjustmentIncreaseValue ?\r\n rowBid <= targetConstants.maximumBid.DeviceType_Smartphones :\r\n (device.name === 'Smartphones' && Number(rowBid) === 100) || rowBid <= targetConstants.minimumBid.DeviceType_Smartphones);\r\n isDecimal = parseInt(rowBid) === Number(rowBid);\r\n isNotEmpty = rowBid.toString().length > 0;\r\n isNonNegative = rowBid >= 0;\r\n\r\n const bidValid = isNotEmpty && isInRange && isDecimal && isNonNegative;\r\n\r\n if (bidValid) {\r\n device.error('');\r\n } else if (!isNotEmpty) {\r\n device.error(i18n.get('AdvancedTargeting_Error_BidValueMustNotBeEmpty'));\r\n } else if (!isDecimal || !isNonNegative) {\r\n device.error(i18n.get('Validation_InvalidBidAdjustment'));\r\n } else if (!isInRange) {\r\n const rawMessage = device.name === 'Smartphones' ? i18n.get('EnhancedCampaign_Mobile_Validation') : i18nApiError.get('Error_Campaign_API_InvalidDeviceTargetBidAdjustment');\r\n\r\n device.error(rawMessage.replace('{0}', targetConstants.minimumBid.DeviceType_Smartphones).replace('{1}', targetConstants.maximumBid.DeviceType_Smartphones));\r\n }\r\n this._countValidatedDevices();\r\n return bidValid;\r\n }\r\n setLevel(level) {\r\n this.options.level = this.level = level;\r\n }\r\n validate() {\r\n let isValid = true;\r\n\r\n _.each(this.devices, (device) => {\r\n isValid = isValid && this._validateBid(device);\r\n }, this);\r\n return isValid;\r\n }\r\n getValues() {\r\n let values = [];\r\n\r\n if (this.options.scenario === 'adgroup-create' && this.useCampaignSettings()) {\r\n return values;\r\n } else if (this.options.scenario === 'adgroup-settings' && this.useCampaignSettings()) { //delete existing adgroup targets when select use campaign setting\r\n _.each(this.devices, (device) => {\r\n if (device.AdgroupBidId > 0) {\r\n values.push(this._getCriterion(device.AdgroupBidId, device.name, null, null, true));\r\n } else {\r\n _.each(device.operatingSystems, (os) => {\r\n if (os.AdgroupBidId > 0) {\r\n values.push(this._getCriterion(os.AdgroupBidId, device.name, os.name, null, true));\r\n }\r\n });\r\n }\r\n });\r\n return values;\r\n }\r\n\r\n _.each(this.devices, (device) => {\r\n if (!this._deleteCriterionWhenAppropriate(device, null, values) &&\r\n device.selectedOsCount() === device.operatingSystems.length) { //Top level targets\r\n this._addOrUpdateCriterion(device, values);\r\n }\r\n _.each(device.operatingSystems, (os) => {\r\n if (!this._deleteCriterionWhenAppropriate(device, os, values) &&\r\n device.selectedOsCount() < device.operatingSystems.length) { // Os level targets\r\n this._addOrUpdateCriterion(os, values);\r\n }\r\n }, this);\r\n }, this);\r\n return values;\r\n }\r\n setData(updatingEntity) {\r\n if (updatingEntity.Id && !updatingEntity.errors) {\r\n const deviceName = updatingEntity.Criterion.DeviceCriterion.DeviceName;\r\n const osName = updatingEntity.Criterion.DeviceCriterion.OSName;\r\n let deviceToUpdate = _.find(this.devices, (device) => {\r\n return device.name === deviceName;\r\n });\r\n\r\n if (deviceToUpdate) {\r\n deviceToUpdate.error('');\r\n if (osName) {\r\n deviceToUpdate = _.find(deviceToUpdate.operatingSystems, (os) => {\r\n return os.name === osName;\r\n });\r\n }\r\n }\r\n if (deviceToUpdate) {\r\n if (updatingEntity.Status === 'Deleted') {\r\n deviceToUpdate[`${this.levelPrefix()}BidId`] = '';\r\n } else {\r\n deviceToUpdate[`${this.levelPrefix()}BidId`] = updatingEntity.Id;\r\n }\r\n }\r\n }\r\n }\r\n handleErrors(response) {\r\n const remainingErrors = [];\r\n const apiErrors = getBulkApiErrors(response.errors);\r\n const criterionEntities = this.options.level === 'campaign' ?\r\n response.entity.CampaignCriterions : response.entity.AdGroupCriterions;\r\n\r\n _.map(response.errors, (error) => {\r\n const errorEntity = _.find(criterionEntities, (criterion) => {\r\n return criterion['Client Id'] === error['Client Id'];\r\n });\r\n\r\n if (errorEntity) {\r\n const failedDevice = _.find(this.devices, (device) => {\r\n return errorEntity.Criterion.DeviceCriterion && device.name === errorEntity.Criterion.DeviceCriterion.DeviceName;\r\n });\r\n\r\n if (failedDevice) {\r\n const errorWithMes = _.find(apiErrors, (apiError) => {\r\n return apiError.code === error.Error;\r\n });\r\n\r\n failedDevice.error(errorWithMes.message);\r\n } else {\r\n remainingErrors.push(error);\r\n }\r\n } else {\r\n remainingErrors.push(error);\r\n }\r\n });\r\n return remainingErrors;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport koSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\nimport BaseTargetViewModel from '@bingads-webui-campaign-legacy/base-targets/viewmodel/baseTargets';\r\nimport targetConstants from '@bingads-webui-campaign-legacy/base-targets/viewmodel/targetConstants';\r\n\r\nexport default class AgeViewModel extends BaseTargetViewModel {\r\n constructor(options = {}) {\r\n super(_.defaults({\r\n targetTypePrefix: 'AgeType',\r\n targetRowKeys: targetConstants.rowKeys.Age,\r\n criterionType: 'Age',\r\n criterionTypeTarget: 'Target',\r\n MTBidAdjustmentErrorCode: 'CampaignServiceInvalidAgeTargetBidAdjustment',\r\n MTBidAdjustmentErrorNumber: '2936',\r\n }, options));\r\n\r\n koSchema.properties(this);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport koSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\nimport BaseTargetViewModel from '@bingads-webui-campaign-legacy/base-targets/viewmodel/baseTargets';\r\nimport targetConstants from '@bingads-webui-campaign-legacy/base-targets/viewmodel/targetConstants';\r\n\r\nexport default class GenderViewModel extends BaseTargetViewModel {\r\n constructor(options = {}) {\r\n super(_.defaults({\r\n targetTypePrefix: 'GenderType',\r\n targetRowKeys: targetConstants.rowKeys.Gender,\r\n criterionType: 'Gender',\r\n criterionTypeTarget: 'Target',\r\n MTBidAdjustmentErrorCode: 'CampaignServiceInvalidGenderTargetBidAdjustment',\r\n MTBidAdjustmentErrorNumber: '2937',\r\n }, options));\r\n\r\n koSchema.properties(this);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport koSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\nimport BaseTargetViewModel from '@bingads-webui-campaign-legacy/base-targets/viewmodel/baseTargets';\r\nimport targetConstants from '@bingads-webui-campaign-legacy/base-targets/viewmodel/targetConstants';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nexport default class NativeAdViewModel extends BaseTargetViewModel {\r\n constructor(options = {}) {\r\n super(_.defaults({\r\n targetTypePrefix: 'NativeAdType',\r\n targetRowKeys: targetConstants.rowKeys.NativeAd,\r\n criterionType: 'NativeAd',\r\n criterionTypeTarget: 'Target',\r\n /*TODO [lizho] MT doesn't return errors when native ad bid adjustment is out of range. Use AgeTarget error number for now in order to do UI validaiton, will change\r\n to use correct one after MT supports range validaiton*/\r\n MTBidAdjustmentErrorCode: 'CampaignServiceInvalidAgeTargetBidAdjustment',\r\n MTBidAdjustmentErrorNumber: '2936',\r\n targetPopupId: 'pop_BA_NativeAd_BidAdj',\r\n }, options));\r\n\r\n koSchema.properties(this);\r\n\r\n // Override certain properties if Native ads rebranding is enabled\r\n if (this.options.isNativeAdsRebrandingEnabled) {\r\n this.targetHeader = i18n.getString('AdvancedTargeting_AudienceAdsText');\r\n if (this.rows && this.rows.length > 0) {\r\n this.rows[0].targetName = i18n.getString('AdvancedTargeting_AudienceAdsBids');\r\n }\r\n }\r\n }\r\n\r\n getValues() {\r\n let rowBidAdjustment;\r\n\r\n if ((this.options.scenario === 'adgroup-create' || this.options.scenario === 'adgroup-settings') && this.useCampaignSettings()) {\r\n rowBidAdjustment = null;\r\n } else {\r\n rowBidAdjustment = Number(this.NativeAdTypeNativeAdsBidsRow.bidAdjustmentValue()) * this.NativeAdTypeNativeAdsBidsRow.selectedBidAdjustmentOption();\r\n }\r\n\r\n return {\r\n NativeBidAdjustment: rowBidAdjustment,\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport koSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\nimport BaseTargetViewModel from '@bingads-webui-campaign-legacy/base-targets/viewmodel/baseTargets';\r\nimport targetConstants from '@bingads-webui-campaign-legacy/base-targets/viewmodel/targetConstants';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nexport default class MultimediaAdViewModel extends BaseTargetViewModel {\r\n constructor(options = {}) {\r\n super(_.defaults({\r\n targetTypePrefix: 'MultimediaAdType',\r\n targetRowKeys: targetConstants.rowKeys.MultimediaAd,\r\n criterionType: 'MultimediaAd',\r\n criterionTypeTarget: 'Target',\r\n /*TODO [lizho] MT doesn't return errors when native ad bid adjustment is out of range. Use AgeTarget error number for now in order to do UI validaiton, will change\r\n to use correct one after MT supports range validaiton*/\r\n MTBidAdjustmentErrorCode: 'CampaignServiceInvalidAgeTargetBidAdjustment',\r\n MTBidAdjustmentErrorNumber: '2942',\r\n targetPopupId: 'pop_BA_MMA_BidAdjustment',\r\n }, options));\r\n\r\n koSchema.properties(this);\r\n\r\n this.targetHeader = i18n.getString('AdvancedTargeting_MultimediaAdsText');\r\n if (this.rows && this.rows.length > 0) {\r\n this.rows[0].targetName = i18n.getString('AdvancedTargeting_MultimediaAdsBids');\r\n }\r\n }\r\n\r\n getValues() {\r\n let rowBidAdjustment;\r\n\r\n if ((this.options.scenario === 'adgroup-create' || this.options.scenario === 'adgroup-settings') && this.useCampaignSettings()) {\r\n rowBidAdjustment = null;\r\n } else {\r\n rowBidAdjustment = Number(this.MultimediaAdTypeMultimediaAdsBidsRow.bidAdjustmentValue()) * this.MultimediaAdTypeMultimediaAdsBidsRow.selectedBidAdjustmentOption();\r\n }\r\n\r\n return {\r\n MultimediaAdBidAdjustment: rowBidAdjustment,\r\n };\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 'bootstrap';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport targetConstants from '@bingads-webui-campaign-legacy/base-targets/viewmodel/targetConstants';\r\nimport ToggleView from '@bingads-webui-component-legacy/toggle/view/index';\r\nimport DeviceTargetViewModel from '@bingads-webui-campaign-legacy/base-targets/viewmodel/deviceTargets';\r\nimport OriginalDeviceTargetViewModel from '@bingads-webui-campaign-legacy/base-targets/viewmodel/originalDeviceTargets';\r\nimport AgeTargetViewModel from '@bingads-webui-campaign-legacy/base-targets/viewmodel/ageTargets';\r\nimport GenderTargetViewModel from '@bingads-webui-campaign-legacy/base-targets/viewmodel/genderTargets';\r\nimport NativeAdViewModel from '@bingads-webui-campaign-legacy/base-targets/viewmodel/nativeAds';\r\nimport MultimediaAdViewModel from '@bingads-webui-campaign-legacy/base-targets/viewmodel/multimediaAds';\r\nimport tmpl from '@bingads-webui-campaign-legacy/base-targets/template/baseTargets.pug';\r\nimport originalDeviceTargetTmpl from '@bingads-webui-campaign-legacy/base-targets/template/originalDeviceTargets.pug';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport targetTypes from '@bingads-webui-campaign-legacy/base-targets/viewmodel/targetTypes';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nconst targetTypeToViewModel = {\r\n Device: DeviceTargetViewModel,\r\n OriginalDevice: OriginalDeviceTargetViewModel,\r\n Age: AgeTargetViewModel,\r\n Gender: GenderTargetViewModel,\r\n NativeAd: NativeAdViewModel,\r\n MultimediaAd: MultimediaAdViewModel,\r\n};\r\n\r\nconst targetTypeToTmpl = {\r\n Device: tmpl,\r\n OriginalDevice: originalDeviceTargetTmpl,\r\n Age: tmpl,\r\n Gender: tmpl,\r\n NativeAd: tmpl,\r\n MultimediaAd: tmpl,\r\n};\r\n\r\nfunction TargetViewModelFactory(targetType, options) {\r\n return new targetTypeToViewModel[targetType](options);\r\n}\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = options;\r\n _.defaults(this.options, {\r\n campaignId: '',\r\n adgroupId: '',\r\n level: 'campaign',\r\n scenario: 'creation-workflow',\r\n targetType: targetTypes.Device,\r\n DeviceTypeTabletsCampaignBidAdjustment: 0,\r\n DeviceTypeTabletsAndroidCampaignBidAdjustment: 0,\r\n DeviceTypeTabletsBlackBerryCampaignBidAdjustment: 0,\r\n DeviceTypeTabletsiOSCampaignBidAdjustment: 0,\r\n DeviceTypeTabletsWindowsCampaignBidAdjustment: 0,\r\n DeviceTypeTabletsOtherCampaignBidAdjustment: 0,\r\n DeviceTypeSmartphonesAndroidCampaignBidAdjustment: 0,\r\n DeviceTypeSmartphonesBlackBerryCampaignBidAdjustment: 0,\r\n DeviceTypeSmartphonesiOSCampaignBidAdjustment: 0,\r\n DeviceTypeSmartphonesCampaignBidAdjustment: 0,\r\n DeviceTypeSmartphonesWindowsCampaignBidAdjustment: 0,\r\n DeviceTypeSmartphonesOtherCampaignBidAdjustment: 0,\r\n DeviceTypeComputersCampaignBidAdjustment: 0,\r\n DeviceTypeComputersWindowsCampaignBidAdjustment: 0,\r\n AgeTypeEighteenToTwentyFiveCampaignBidAdjustment: 0,\r\n AgeTypeTwentyFiveToThirtyFiveCampaignBidAdjustment: 0,\r\n AgeTypeThirtyFiveToFiftyCampaignBidAdjustment: 0,\r\n AgeTypeFiftyToSixtyFiveCampaignBidAdjustment: 0,\r\n AgeTypeSixtyFiveAndAboveCampaignBidAdjustment: 0,\r\n GenderTypeMaleCampaignBidAdjustment: 0,\r\n GenderTypeFemaleCampaignBidAdjustment: 0,\r\n DeviceTypeTabletsAdgroupBidAdjustment: 0,\r\n DeviceTypeTabletsAndroidAdgroupBidAdjustment: 0,\r\n DeviceTypeTabletsBlackBerryAdgroupBidAdjustment: 0,\r\n DeviceTypeTabletsiOSAdgroupBidAdjustment: 0,\r\n DeviceTypeTabletsWindowsAdgroupBidAdjustment: 0,\r\n DeviceTypeTabletsOtherAdgroupBidAdjustment: 0,\r\n DeviceTypeSmartphonesAdgroupBidAdjustment: 0,\r\n DeviceTypeSmartphonesAndroidAdgroupBidAdjustment: 0,\r\n DeviceTypeSmartphonesBlackBerryAdgroupBidAdjustment: 0,\r\n DeviceTypeSmartphonesiOSAdgroupBidAdjustment: 0,\r\n DeviceTypeSmartphonesWindowsAdgroupBidAdjustment: 0,\r\n DeviceTypeSmartphonesOtherAdgroupBidAdjustment: 0,\r\n DeviceTypeComputersAdgroupBidAdjustment: 0,\r\n DeviceTypeComputersWindowsAdgroupBidAdjustment: 0,\r\n AgeTypeEighteenToTwentyFiveAdgroupBidAdjustment: 0,\r\n AgeTypeTwentyFiveToThirtyFiveAdgroupBidAdjustment: 0,\r\n AgeTypeThirtyFiveToFiftyAdgroupBidAdjustment: 0,\r\n AgeTypeFiftyToSixtyFiveAdgroupBidAdjustment: 0,\r\n AgeTypeSixtyFiveAndAboveAdgroupBidAdjustment: 0,\r\n GenderTypeMaleAdgroupBidAdjustment: 0,\r\n GenderTypeFemaleAdgroupBidAdjustment: 0,\r\n NativeAdTypeNativeAdsBidsCampaignBidAdjustment: 0,\r\n NativeAdTypeNativeAdsBidsAdgroupBidAdjustment: 0,\r\n MultimediaAdTypeMultimediaAdsBidsCampaignBidAdjustment: targetConstants.multimediaAdDefaultBid,\r\n MultimediaAdTypeMultimediaAdsBidsAdgroupBidAdjustment: targetConstants.multimediaAdDefaultBid,\r\n fromSettingsGrid: false,\r\n showLevelToggle: true,\r\n isNativeAdsRebrandingEnabled: pageContext.Permissions.IsNativeAdsRebrandingEnabled,\r\n currentCampaign: pageContext.CurrentCampaign,\r\n currentAdGroup: pageContext.CurrentAdGroup,\r\n });\r\n\r\n if (pageContext.Permissions.IsPersonalizedOffersEnabled) {\r\n this.populateCashbackProperties(this.options);\r\n }\r\n\r\n this.isMSANBoostEnabled = pageContext.Permissions.IsAmplifyEnabled;\r\n this.isHideBidAdjustmentForBoostEnabled = pageContext.Permissions.dynamic && pageContext.Permissions.dynamic.HideBidAdjustmentForBoost;\r\n\r\n this.viewmodel = new TargetViewModelFactory(this.options.targetType, options);\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: 'base-use-campaign-settings',\r\n });\r\n this.toggleView.setToggleState(this.viewmodel.useCampaignSettings() ? 'on' : 'off');\r\n this.listenTo(this.toggleView, 'change', (toggleState) => {\r\n this.viewmodel.useCampaignSettings(toggleState === 'on');\r\n }, this);\r\n }\r\n\r\n populateCashbackProperties(options) {\r\n Object.keys(options).forEach((key) => {\r\n if (key.search('DeviceType') !== -1 || key.search('NativeAdType') !== -1) {\r\n const cashbackKey = key.replace(/BidAdjustment$/, 'CashbackPercent');\r\n const originalValue = options[cashbackKey];\r\n\r\n options[cashbackKey] = originalValue == null ? '' : options[cashbackKey];\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n this.$el.html(targetTypeToTmpl[this.options.targetType]({\r\n i18n,\r\n level: this.options.level,\r\n targetDescription: this.viewmodel.targetDescription,\r\n targetHeader: this.viewmodel.targetHeader,\r\n bidAdjustmentHeader: this.viewmodel.bidAdjustmentHeader,\r\n rows: this.viewmodel.rows,\r\n percentSymbol: config.get('globalization.number.percentSymbol'),\r\n targetType: this.options.targetType,\r\n targetPopupId: this.viewmodel.targetPopupId,\r\n showLevelToggle: this.options.showLevelToggle,\r\n showBidAdjustment: !(this.isMSANBoostEnabled && this.isHideBidAdjustmentForBoostEnabled),\r\n }));\r\n ko.applyBindings(this.viewmodel, this.el);\r\n this.toggleView.render();\r\n this.$('.toggle-campaign-settings-switch').append(this.toggleView.el);\r\n return this;\r\n }\r\n\r\n getValues() {\r\n return this.viewmodel.getValues();\r\n }\r\n\r\n validate() {\r\n return this.viewmodel.validate();\r\n }\r\n\r\n setLevel(level) {\r\n this.options.level = level;\r\n this.viewmodel.setLevel(level);\r\n }\r\n\r\n handleErrors(response) {\r\n return this.viewmodel.handleErrors(response);\r\n }\r\n\r\n remove(...args) {\r\n if (this.toggleView) {\r\n this.toggleView.remove();\r\n }\r\n super.remove(...args);\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport _ from 'underscore';\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 BaseTargetsView from '@bingads-webui-campaign-legacy/base-targets/view/baseTargets';\r\nimport tmpl from '@bingads-webui-campaign-legacy/base-targets/template/update.pug';\r\nimport targetTypes from '@bingads-webui-campaign-legacy/base-targets/viewmodel/targetTypes';\r\nimport targetConstants from '@bingads-webui-campaign-legacy/base-targets/viewmodel/targetConstants';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\n\r\nexport default class View extends Backbone.View {\r\n\r\n initialize(options = {}) {\r\n this.options = _.defaults(options, {\r\n targetType: targetTypes.Device,\r\n campaignId: '',\r\n adgroupId: '',\r\n level: 'campaign',\r\n fromSettingsGrid: false,\r\n showLevelToggle: true,\r\n });\r\n }\r\n\r\n render() {\r\n this.$el.html(tmpl());\r\n\r\n this.targetsView = new BaseTargetsView(this.options);\r\n this.$('.update-container').html(this.targetsView.render().el);\r\n\r\n return this;\r\n }\r\n\r\n toggleCashbackPercentColumns(supportCashbackSettings, inheritInfo) {\r\n this.targetsView.viewmodel.supportCashbackSettings(supportCashbackSettings && !pageContext.Permissions.IsPersonalizedOffersV3Enabled);\r\n this.targetsView.viewmodel.resetCashbackInheritInfoInAllRows(inheritInfo);\r\n this.targetsView.viewmodel.validate();\r\n }\r\n\r\n getCriterionFilter() {\r\n switch (this.options.targetType) {\r\n case targetTypes.Device:\r\n case targetTypes.OriginalDevice:\r\n return 'isof(Criterion,DeviceCriterion)';\r\n case targetTypes.Age:\r\n return 'isof(Criterion,AgeCriterion)';\r\n case targetTypes.Gender:\r\n return 'isof(Criterion,GenderCriterion)';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n getCriterions() {\r\n return jsData.CampaignCriterion.findAll(\r\n {query: {$filter: this.getCriterionFilter()}},\r\n {entitySet: edmCampaign.currentAccount.Campaigns.$withKey(Number(this.options.campaignId)).CampaignCriterions, cacheResponse: false}\r\n );\r\n }\r\n\r\n getViewOptions(data, targetKeys, targetType) {\r\n let result = {\r\n targetType,\r\n campaignId: this.options.campaignId,\r\n adgroupId: this.options.adgroupId,\r\n level: this.options.level,\r\n };\r\n\r\n _.each(targetKeys, (key) => {\r\n let entry = _.find(data, (element) => {\r\n return element.Criterion[`${targetConstants.targetTypeToFilterProperty[targetType]}`] === key;\r\n });\r\n\r\n result[`${targetType}Type${key}BidId`] = entry ? entry.Id : '';\r\n result[`${targetType}Type${key}BidAdjustment`] = entry ? entry.CriterionBid.Multiplier : '';\r\n });\r\n return result;\r\n }\r\n\r\n getValues() {\r\n return this.targetsView ? this.targetsView.getValues() : [];\r\n }\r\n\r\n setData(dataset) {\r\n this.targetsView.viewmodel.setData(dataset);\r\n }\r\n\r\n setLevel(level) {\r\n this.options.level = level;\r\n this.targetsView.setLevel(level);\r\n }\r\n\r\n handleErrors(response) {\r\n return this.targetsView.handleErrors(response);\r\n }\r\n\r\n validate() {\r\n const isValid = this.targetsView.validate();\r\n\r\n if (!isValid && this.options.activityLogger) {\r\n this.options.activityLogger.signal(`${this.options.targetType} bid adjustment is not valid`, `${this.options.targetType} target`);\r\n }\r\n\r\n return isValid;\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nconst isOriginalDeviceTargetingEnabled = _.result(config.get('Permissions'), 'IsOriginalDeviceTargetingEnabled');\r\nconst isExpandedDeviceTargetingEnabled = !isOriginalDeviceTargetingEnabled;\r\nconst bidAdjustmentIncreaseText = i18n.get('BidAdjustment_IncreaseText');\r\nconst bidAdjustmentDecreaseText = i18n.get('BidAdjustment_DecreaseText');\r\nconst bidAdjustmentIncreaseValue = 1;\r\nconst bidAdjustmentDecreaseValue = -1;\r\nconst ageMinimumBid = 90;\r\nconst ageMaximumBid = 900;\r\nconst genderMinimumBid = 90;\r\nconst genderMaximumBid = 900;\r\nconst deviceTabletsMinimumBid = isExpandedDeviceTargetingEnabled ? 100 : 20;\r\nconst deviceTabletsMaximumBid = isExpandedDeviceTargetingEnabled ? 900 : 300;\r\nconst deviceSmartphonesMinimumBid = isExpandedDeviceTargetingEnabled ? 100 : 90;\r\nconst deviceSmartphonesMaximumBid = isExpandedDeviceTargetingEnabled ? 900 : 300;\r\nconst specialDeviceSmartphonesBidAdjustmentValue = 100;\r\nconst deviceComputersMinimumBid = 100;\r\nconst deviceComputersMaximumBid = 900;\r\nconst locationMinimumBid = 90;\r\nconst locationMaximumBid = 900;\r\nconst nativeAdMinimumBid = 100;\r\nconst nativeAdMaximumBid = 900;\r\nconst multimediaAdMinimumBid = 20;\r\nconst multimediaAdMaximumBid = 900;\r\nconst multimediaAdDefaultBid = 40;\r\n\r\nexport default {\r\n bidAdjustmentIncreaseText,\r\n bidAdjustmentDecreaseText,\r\n bidAdjustmentIncreaseValue,\r\n bidAdjustmentDecreaseValue,\r\n multimediaAdDefaultBid,\r\n minimumBid: {\r\n 'AgeType_EighteenToTwentyFive': ageMinimumBid,\r\n 'AgeType_TwentyFiveToThirtyFive': ageMinimumBid,\r\n 'AgeType_ThirtyFiveToFifty': ageMinimumBid,\r\n 'AgeType_FiftyToSixtyFive': ageMinimumBid,\r\n 'AgeType_SixtyFiveAndAbove': ageMinimumBid,\r\n 'DeviceType_Tablets': deviceTabletsMinimumBid,\r\n 'DeviceType_Smartphones': deviceSmartphonesMinimumBid,\r\n 'DeviceType_Computers': deviceComputersMinimumBid,\r\n 'GenderType_Male': genderMinimumBid,\r\n 'GenderType_Female': genderMinimumBid,\r\n 'NativeAdType_NativeAdsBids': nativeAdMinimumBid,\r\n 'MultimediaAdType_MultimediaAdsBids': multimediaAdMinimumBid,\r\n 'Location': locationMinimumBid,\r\n },\r\n maximumBid: {\r\n 'AgeType_EighteenToTwentyFive': ageMaximumBid,\r\n 'AgeType_TwentyFiveToThirtyFive': ageMaximumBid,\r\n 'AgeType_ThirtyFiveToFifty': ageMaximumBid,\r\n 'AgeType_FiftyToSixtyFive': ageMaximumBid,\r\n 'AgeType_SixtyFiveAndAbove': ageMaximumBid,\r\n 'DeviceType_Tablets': deviceTabletsMaximumBid,\r\n 'DeviceType_Smartphones': deviceSmartphonesMaximumBid,\r\n 'DeviceType_Computers': deviceComputersMaximumBid,\r\n 'GenderType_Male': genderMaximumBid,\r\n 'GenderType_Female': genderMaximumBid,\r\n 'NativeAdType_NativeAdsBids': nativeAdMaximumBid,\r\n 'MultimediaAdType_MultimediaAdsBids': multimediaAdMaximumBid,\r\n 'Location': locationMaximumBid,\r\n },\r\n bidAdjustmentOptions: ko.observableArray([\r\n {\r\n text: bidAdjustmentIncreaseText,\r\n value: bidAdjustmentIncreaseValue,\r\n }, {\r\n text: bidAdjustmentDecreaseText,\r\n value: bidAdjustmentDecreaseValue,\r\n },\r\n ]),\r\n multimediaBidAdjustmentOptions: ko.observableArray([\r\n {\r\n text: bidAdjustmentIncreaseText,\r\n value: bidAdjustmentIncreaseValue,\r\n },\r\n ]),\r\n\r\n rowKeys: {\r\n 'Age': [\r\n 'EighteenToTwentyFive',\r\n 'TwentyFiveToThirtyFive',\r\n 'ThirtyFiveToFifty',\r\n 'FiftyToSixtyFive',\r\n 'SixtyFiveAndAbove',\r\n ],\r\n 'Device': isOriginalDeviceTargetingEnabled || isExpandedDeviceTargetingEnabled ? [\r\n 'Computers',\r\n 'Tablets',\r\n 'Smartphones',\r\n ] : [\r\n 'Tablets',\r\n 'Smartphones',\r\n ],\r\n 'Gender': [\r\n 'Male',\r\n 'Female',\r\n ],\r\n 'NativeAd': [\r\n 'NativeAdsBids',\r\n ],\r\n 'MultimediaAd': [\r\n 'MultimediaAdsBids',\r\n ],\r\n },\r\n\r\n osNames: {\r\n 'Computers': [\r\n 'Windows',\r\n ],\r\n 'Tablets': [\r\n 'Android',\r\n 'BlackBerry',\r\n 'iOS',\r\n 'Other',\r\n ],\r\n 'Smartphones': [\r\n 'Android',\r\n 'BlackBerry',\r\n 'iOS',\r\n 'Windows',\r\n 'Other',\r\n ],\r\n },\r\n\r\n targetTypeToFilterProperty: {\r\n 'Age': 'AgeRange',\r\n 'Gender': 'GenderType',\r\n 'Device': 'DeviceName',\r\n 'NativeAd': 'NativeAd',\r\n 'MultimediaAd': 'MultimediaAd',\r\n },\r\n\r\n specialDeviceSmartphonesBidAdjustmentValue,\r\n};\r\n","export default {\r\n 'Age': 'Age',\r\n 'Gender': 'Gender',\r\n 'Demographic': 'Demographic',\r\n 'Device': 'Device',\r\n 'Location': 'Location',\r\n 'MultimediaAd': 'MultimediaAd',\r\n 'NativeAd': 'NativeAd',\r\n 'OriginalDevice': 'OriginalDevice',\r\n};\r\n","/* eslint-disable */\r\nexport default {\r\n parent: 'InheritFromParent',\r\n manual: 'ManualCpc',\r\n manualCpv: 'ManualCpv',\r\n manualCpm: 'ManualCpm',\r\n manualCpa: 'ManualCpa',\r\n enhancedCPC: 'EnhancedCpc',\r\n maximizeClicks: 'MaxClicks',\r\n maximizeConversions: 'MaxConversions',\r\n targetCpa: 'TargetCpa',\r\n targetRoas: 'TargetRoas',\r\n maxConversionValue: 'MaxConversionValue',\r\n targetImpressionShare: 'TargetImpressionShare',\r\n portfolioBidStrategy: 'PortfolioBidStrategy',\r\n costPerSale: 'CostPerSale',\r\n percentCpc: 'PercentCpc',\r\n commission: 'Commission',\r\n biddingStrategyTypeId: {\r\n InheritFromParent: 0,\r\n ManualCpc: 1,\r\n MaxClicks: 2,\r\n MaxConversions: 3,\r\n TargetCpa: 4,\r\n EnhancedCpc: 5,\r\n TargetRoas: 6,\r\n MaxConversionValue: 8,\r\n TargetImpressionShare: 9,\r\n ManualCpv: 11,\r\n ManualCpm: 12,\r\n PercentCpc: 13,\r\n Commission: 14,\r\n CostPerSale: 15,\r\n ManualCpa: 16\r\n },\r\n biddingStrategyType: {\r\n 0: 'InheritFromParent',\r\n 1: 'ManualCpc',\r\n 2: 'MaxClicks',\r\n 3: 'MaxConversions',\r\n 4: 'TargetCpa',\r\n 5: 'EnhancedCpc',\r\n 6: 'TargetRoas',\r\n 8: 'MaxConversionValue',\r\n 9: 'TargetImpressionShare',\r\n 11: 'ManualCpv',\r\n 12: 'ManualCpm',\r\n 13: 'PercentCpc',\r\n 14: 'Commission',\r\n 15: 'CostPerSale',\r\n 16: 'ManualCpa'\r\n },\r\n biddingStrategyOption: {\r\n ManualCpc: 'BidStrategy_Manual',\r\n MaxClicks: 'BidStrategy_MaxClicks',\r\n MaxConversions: 'BidStrategy_MaxConversions',\r\n TargetCpa: 'BidStrategy_TargetCpa',\r\n EnhancedCpc: 'BidStrategy_EnhancedCPC',\r\n TargetRoas: 'BidStrategy_TargetRoas',\r\n MaxConversionValue: 'BidStrategy_MaxConversionValue',\r\n TargetImpressionShare: 'BidStrategy_TargetImpressionShare',\r\n PercentCpc: 'BidStrategy_PercentCpc',\r\n Commission: 'BidStrategy_Commission',\r\n ManualCpa: 'BidStrategy_ManualCpa'\r\n }\r\n};\r\n\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport PageContext from '@bingads-webui-static-legacy/page-context';\r\nimport template from '@bingads-webui-campaign-legacy/bidding-strategy/template/setting.pug';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/bidding-strategy/viewmodel/setting';\r\nimport types from '@bingads-webui-campaign-legacy/bidding-strategy/bidding-strategy-type';\r\nimport decimalNumber from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport { getBidStrategyByCampaignTypeWhenPersonalizedOffersEnabled } from '@bingads-webui-campaign/personalized-offer-shared';\r\nimport { getBiddingStrategyForSponsoredCampaign } from '@bingads-webui-campaign/sponsored-campaign-shared';\r\n\r\nimport { PortfolioSelectorView } from '@bingads-webui-campaign-react/portfolio-bid-strategy-selector';\r\n\r\nconst i18n = window.globalLegacyI18n && window.globalLegacyI18n.get('module/extension/requirejs/i18n!global');\r\n\r\nconst defaultPopupIds = {\r\n BidStrategy: 'pop_BA_CampaignGrids_BidStrategy',\r\n};\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options) {\r\n this.options = _.extend({\r\n entityType: 'Campaign',\r\n biddingStrategyType: types.manual,\r\n hideHeader: false,\r\n }, options);\r\n\r\n this.isPortfolioBidStrategyEnabled = _.result(_.result(_.result(PageContext, 'Permissions'), 'dynamic'), 'PortfolioBidStrategy', false);\r\n this.isPredictiveMatchingEnabled = _.result(_.result(_.result(PageContext, 'Permissions'), 'dynamic'), 'PredictiveMatching', false);\r\n this.isRSABidStrategyAutoTargetingEnabled = !this.isPredictiveMatchingEnabled && _.result(_.result(_.result(PageContext, 'Permissions'), 'dynamic'), 'RSABidStrategyAutoTargeting', false);\r\n\r\n if (this.isPortfolioBidStrategyEnabled && this.options.entityType === 'Campaign') {\r\n if (this.options.bidStrategyName) {\r\n // initialize model for portfolio bid strategy\r\n // when a campaign is associated with a portfolio bid strategy, it will be returned from MT with biddingStrategyType set to the portfolio bid strategy type\r\n // and an extra field bidStrategyName set to the selected portfolio bid strategy name\r\n this.options.portfolioBidStrategyType = this.options.biddingStrategyType;\r\n this.options.biddingStrategyType = types.portfolioBidStrategy;\r\n }\r\n }\r\n\r\n this.viewModel = new ViewModel(_.pick(\r\n this.options,\r\n 'entityType',\r\n 'biddingStrategyType',\r\n 'biddingStrategyId',\r\n 'bidStrategyName',\r\n 'costPerSale',\r\n 'portfolioBidStrategyType',\r\n 'maxCpc',\r\n 'targetCpa',\r\n 'targetRoas',\r\n 'targetAdPosition',\r\n 'targetImpressionShare',\r\n 'targetCommissionRate',\r\n 'isPortfolio',\r\n 'isInitialize',\r\n 'isCreation',\r\n 'isAfterSave',\r\n 'campaignSettings',\r\n 'campaignType',\r\n 'isBulkEdit',\r\n 'campaignSubType',\r\n 'activityLogger',\r\n 'i18nNewDesign',\r\n 'getCampaignTypeGlobalFilter',\r\n 'campaignBiddingStrategyType',\r\n 'isMSStoreAdsGAWorkflow',\r\n 'hideHeader',\r\n 'autoTargetingEnabled',\r\n 'validateWithBudget',\r\n 'budgetAmount',\r\n 'ccJsData',\r\n 'isBroadMatchOnlyCampaign',\r\n 'isRenderedInReact',\r\n ));\r\n this.template = template;\r\n this.popupIds = _.defaults({}, options.popupIds, defaultPopupIds);\r\n\r\n // set PO v2 options and value\r\n // set during initialization or we could not set the CPS that is not in the normal options list\r\n if (this.options.shouldSupportCashbackSettings) {\r\n this.setPersonalizedOffersOptionsAndValue({\r\n enabled: true,\r\n campaignType: this.options.campaignType,\r\n });\r\n }\r\n\r\n if (this.options.shouldShowSponsoredCampaignCashback) {\r\n this.setSponsoredCampaignOptionsAndValue({\r\n isSponsoredCampaignCashbackOptedIn: this.options.isSponsoredCampaignCashbackOptedIn,\r\n isSponsoredCampaignShowManualCpcOption: this.options.isSponsoredCampaignShowManualCpcOption,\r\n });\r\n }\r\n\r\n if (this.options.withRealTimeUpdates) {\r\n this.oldValueTracking = {};\r\n this.subscribeForRealTimeUpdates('selectedBidStrategy');\r\n this.subscribeForRealTimeUpdates('selectedPortfolioBidStrategy');\r\n this.subscribeForRealTimeUpdates('targetCpa');\r\n this.subscribeForRealTimeUpdates('isTargetCpaCheckboxSelected');\r\n this.subscribeForRealTimeUpdates('targetRoas');\r\n this.subscribeForRealTimeUpdates('isTargetRoasCheckboxSelected');\r\n this.subscribeForRealTimeUpdates('meetConversionGoal');\r\n this.subscribeForRealTimeUpdates('meetRevenueGoal');\r\n this.subscribeForRealTimeUpdates('showConversionCountCheckErrorMessage');\r\n this.subscribeForRealTimeUpdates('showRevenueCheckErrorMessage');\r\n this.subscribeForRealTimeUpdates('costPerSale');\r\n this.subscribeForRealTimeUpdates('maxCpc');\r\n this.subscribeForRealTimeUpdates('checkAutoTargeting');\r\n this.subscribeForRealTimeUpdates('checkCPC');\r\n this.subscribeForRealTimeUpdates('targetImpressionShare');\r\n }\r\n }\r\n\r\n render() {\r\n const element = this.$el;\r\n let prefixBiddingScheme = '';\r\n\r\n if (this.options.entityType === 'Campaign') {\r\n prefixBiddingScheme = 'Settings.';\r\n }\r\n\r\n element.html(this.template({\r\n i18n,\r\n PageContext,\r\n prefixBiddingScheme,\r\n popupIds: this.popupIds,\r\n }));\r\n if (element.length > 0) {\r\n ko.cleanNode(element[0]);\r\n }\r\n ko.applyBindings(this.viewModel, element[0]);\r\n this.triggerChangeEvent('render');\r\n\r\n return this;\r\n }\r\n\r\n ensurePortfolioSelectorView() {\r\n if (this.isPortfolioBidStrategyEnabled && !this.portfolioSelectorView) {\r\n if (!this.options.i18nNewDesign) {\r\n throw new Error('ensurePortfolioSelectorView: i18nNewDesign is missing');\r\n }\r\n\r\n this.portfolioSelectorView = new PortfolioSelectorView(\r\n {\r\n model: {\r\n campaignType: this.options.campaignType,\r\n bidStrategyName: this.options.bidStrategyName,\r\n isBulkEdit: this.options.isBulkEdit,\r\n },\r\n deps: {\r\n BiddingStrategyView: View,\r\n jsdata,\r\n },\r\n PageContext,\r\n i18n: this.options.i18nNewDesign,\r\n needConfirmManagePortfolio: this.options.needConfirmManagePortfolio,\r\n activityLogger: this.options.activityLogger,\r\n },\r\n (pbs) => this.onSelectPortfolioBidStrategy(pbs));\r\n\r\n this.$('.portfolio-selector-container').empty().html(this.portfolioSelectorView.render().$el);\r\n }\r\n }\r\n\r\n get events() {\r\n return {\r\n 'change select.form-control': 'onBidStrategyChange',\r\n 'click a.portfolio-bid-strategy-edit': 'enablePortfolioSelector',\r\n };\r\n }\r\n\r\n onSelectPortfolioBidStrategy(pbs) {\r\n this.viewModel.selectedPortfolioBidStrategy(pbs);\r\n }\r\n\r\n onBidStrategyChange(evt) {\r\n // Disable conversion checkin in automated bidding v1 to drive demand first\r\n // this.viewModel.checkConversionTracking();\r\n if (evt.target.value === types.portfolioBidStrategy && !this.options.bidStrategyName) {\r\n // if original bid strategy is not portfolio bid strategy, then display the selector\r\n this.ensurePortfolioSelectorView();\r\n }\r\n }\r\n\r\n enablePortfolioSelector() {\r\n this.viewModel.showPortfolioSelector(true);\r\n this.ensurePortfolioSelectorView();\r\n }\r\n\r\n action() {\r\n const selectedBidStrategy = this.viewModel.selectedBidStrategy();\r\n\r\n if (selectedBidStrategy === types.portfolioBidStrategy) {\r\n const selectedPortfolio = _.pick(this.viewModel.selectedPortfolioBidStrategy(), 'Id', 'Name');\r\n\r\n return {\r\n Actions: [{\r\n '@odata.type': '#Model.TextAction',\r\n 'Property': 'BidStrategyId',\r\n 'ActionType': 'Set',\r\n 'Value': JSON.stringify(selectedPortfolio),\r\n }],\r\n };\r\n }\r\n\r\n const TypeId = types.biddingStrategyTypeId[selectedBidStrategy];\r\n let value = '{\"Type\":{0}'.replace('{0}', TypeId);\r\n\r\n if (this.viewModel.showCPC() && this.viewModel.checkCPC()) {\r\n value = value + ',\"MaxCpc\":{\"Amount\":{0}}'.replace('{0}', this.viewModel.maxCpc() ? decimalNumber.fromLocalToFloat(this.viewModel.maxCpc()) : 'null');\r\n }\r\n if (this.viewModel.showTargetCPA()) {\r\n value = value + ',\"TargetCpa\":{0}'.replace('{0}', this.viewModel.targetCpa() ? decimalNumber.fromLocalToFloat(this.viewModel.targetCpa()) : 'null');\r\n }\r\n if (this.viewModel.showTargetROAS()) {\r\n value = value + ',\"TargetRoas\":{0}'.replace('{0}', this.viewModel.targetRoas() ? decimalNumber.fromLocalToFloat(this.viewModel.targetRoas()) / this.viewModel.multiplier : 'null');\r\n }\r\n if (this.viewModel.showTargetImpressionShare()) {\r\n value = value + ',\"TargetAdPosition\":\"{0}\",\"TargetImpressionShare\":{1}'\r\n .replace('{0}', this.viewModel.targetImpressionShareAdPosition())\r\n .replace('{1}', this.viewModel.targetImpressionShare() ? decimalNumber.fromLocalToFloat(this.viewModel.targetImpressionShare()) : 'null');\r\n }\r\n if (this.viewModel.showCostPerSale()) {\r\n value = value + ',\"CostPerSale\":{0}'.replace('{0}', this.viewModel.costPerSale() ? decimalNumber.fromLocalToFloat(this.viewModel.costPerSale()) : 'null');\r\n }\r\n\r\n if (this.viewModel.showCommissionRate()) {\r\n value = value + ',\"CommissionRate\":{0}'.replace('{0}', this.viewModel.targetCommissionRate() ? decimalNumber.fromLocalToFloat(this.viewModel.targetCommissionRate()) : 'null');\r\n }\r\n\r\n value += '}';\r\n\r\n const action = {\r\n Actions: [{\r\n '@odata.type': '#Model.TextAction',\r\n 'Property': 'BiddingScheme',\r\n 'ActionType': 'Set',\r\n 'Value': value,\r\n }],\r\n };\r\n\r\n if (this.isRSABidStrategyAutoTargetingEnabled && this.viewModel.showAutoTargeting()) {\r\n action.Actions.push({\r\n '@odata.type': '#Model.TextAction',\r\n 'Property': 'CampaignSettings/PredictiveTargetingEnabled',\r\n 'ActionType': 'Set',\r\n 'Value': this.viewModel.checkAutoTargeting() ? 'True' : 'False',\r\n });\r\n }\r\n\r\n if (this.isPredictiveMatchingEnabled && this.viewModel.showPredictiveMatching()) {\r\n action.Actions.push({\r\n '@odata.type': '#Model.TextAction',\r\n 'Property': 'CampaignSettings/PredictiveTargetingEnabled',\r\n 'ActionType': 'Set',\r\n 'Value': this.viewModel.predictiveMatchingChecked() ? 'True' : 'False',\r\n });\r\n }\r\n\r\n return action;\r\n }\r\n\r\n update(model) {\r\n this.viewModel.selectedBidStrategy(model.Type);\r\n if (this.options.withRealTimeUpdates) {\r\n this.viewModel.update(model);\r\n }\r\n }\r\n\r\n validate() {\r\n return this.viewModel.validate();\r\n }\r\n\r\n getErrorMessages() {\r\n return this.viewModel.errorMessages();\r\n }\r\n\r\n getValues() {\r\n return this.viewModel.getValues();\r\n }\r\n\r\n onAdGroupTypeChanged(adGroupType) {\r\n let adGroupstrategyOptions = [{\r\n Value: types.manual,\r\n Text: i18n.getString('BidStrategy_Option_Manual'),\r\n }];\r\n\r\n if (adGroupType === 'BidBoost') {\r\n // Only manual strategy is allowed for bid boost ad group\r\n this.viewModel.strategyOptions(adGroupstrategyOptions);\r\n this.viewModel.selectedBidStrategy(types.manual);\r\n } else {\r\n adGroupstrategyOptions.unshift({\r\n Value: types.parent,\r\n Text: i18n.getString('BidStrategy_Option_ParentCampaign'),\r\n });\r\n\r\n this.viewModel.strategyOptions(adGroupstrategyOptions);\r\n this.viewModel.selectedBidStrategy(types.parent);\r\n }\r\n }\r\n\r\n setPersonalizedOffersOptionsAndValue({ enabled, campaignType = this.options.campaignType }) {\r\n if (PageContext.Permissions.IsPersonalizedOffersV2Enabled ||\r\n PageContext.Permissions.IsPersonalizedOffersV3Enabled ||\r\n PageContext.Permissions.IsCostPerSaleEnabled) {\r\n this.viewModel.isPersonalizedOffersEnabled(enabled);\r\n if (enabled) {\r\n const { targetBidStrategy, bidStrategyOptions } = getBidStrategyByCampaignTypeWhenPersonalizedOffersEnabled({\r\n campaignType,\r\n i18n,\r\n Permissions: PageContext.Permissions,\r\n isAfterSave: this.viewModel.isAfterSave(),\r\n selectedBidStrategy: this.viewModel.selectedBidStrategy(),\r\n });\r\n\r\n this.viewModel.strategyOptions(bidStrategyOptions);\r\n // if selectedBidStrategy is not included in the bidStaregyOptions, use the targetBidStrategy\r\n if (!bidStrategyOptions.includes(this.viewModel.selectedBidStrategy())) {\r\n this.viewModel.selectedBidStrategy(targetBidStrategy);\r\n }\r\n } else {\r\n this.updateBidStrategy();\r\n }\r\n }\r\n }\r\n\r\n setSponsoredCampaignOptionsAndValue({\r\n isSponsoredCampaignCashbackOptedIn: isSponsoredCampaignCashbackEnabled = false,\r\n isSponsoredCampaignShowManualCpcOption: isShowManualBidStrategy = false,\r\n } = {},\r\n ) {\r\n const isMranEcpcEnabled = _.result(PageContext, ['Permissions', 'dynamic', 'MranEcpc'], false);\r\n const isMranTroasEnabled = _.result(PageContext, ['Permissions', 'dynamic', 'MranTroas'], false);\r\n const { targetBidStrategy, bidStrategyOptions, showBidStrategySection, forceReadOnly } = getBiddingStrategyForSponsoredCampaign({\r\n isSponsoredCampaignCashbackEnabled,\r\n isMranEcpcEnabled,\r\n isMranTroasEnabled,\r\n isShowManualBidStrategy,\r\n i18n,\r\n isMSStoreAdsGAWorkflow: this.options.isMSStoreAdsGAWorkflow,\r\n });\r\n\r\n this.viewModel.strategyOptions(bidStrategyOptions);\r\n this.viewModel.selectedBidStrategy(bidStrategyOptions.find((v) => v.Value === this.options.biddingStrategyType) ? this.options.biddingStrategyType : targetBidStrategy);\r\n this.viewModel.forceHideBidStrategySection(!showBidStrategySection);\r\n this.viewModel.forceReadOnly(forceReadOnly);\r\n }\r\n\r\n subscribeForRealTimeUpdates(source) {\r\n const observable = this.viewModel[source];\r\n\r\n this.oldValueTracking[source] = observable();\r\n observable.subscribe((oldValue) => {\r\n this.oldValueTracking[source] = oldValue;\r\n }, undefined, 'beforeChange');\r\n observable.subscribe((newValue) => {\r\n this.triggerChangeEvent(source, this.oldValueTracking[source], newValue);\r\n this.oldValueTracking[source] = newValue;\r\n }, undefined, 'change');\r\n }\r\n\r\n triggerChangeEvent(source, oldValue, newValue) {\r\n if (this.options.withRealTimeUpdates) {\r\n const isFromInitialization =\r\n source === 'render' ||\r\n (source === 'meetConversionGoal' && oldValue === -1 && newValue !== -1) ||\r\n (source === 'meetRevenueGoal' && oldValue === -1 && newValue !== -1) ||\r\n (source === 'showConversionCountCheckErrorMessage' && this.oldValueTracking.meetConversionGoal === -1) ||\r\n (source === 'showRevenueCheckErrorMessage' && this.oldValueTracking.meetRevenueGoal === -1);\r\n\r\n this.trigger('change', this.getValues(), this.validate(), isFromInitialization);\r\n }\r\n }\r\n\r\n updateBidStrategy(isCoOpStore) {\r\n // for shopping campaigns, when a co-op store is selected,\r\n // the only bidding type shown should be manual.\r\n // otherwise, the already decided campaign bidding strategy options are shown.\r\n\r\n const manualOnlyOption = [{\r\n Value: types.manual,\r\n Text: i18n.getString('BidStrategy_Option_Manual_Campaign'),\r\n }];\r\n\r\n if (isCoOpStore) {\r\n this.viewModel.strategyOptions(manualOnlyOption);\r\n this.viewModel.selectedBidStrategy(types.manual);\r\n } else {\r\n this.viewModel.strategyOptions(this.viewModel.campaignBiddingStrategyOptions);\r\n\r\n if (this.options.campaignSubType === 'ShoppingSmartAds') {\r\n this.viewModel.selectedBidStrategy(types.maxConversionValue);\r\n } else if (this.viewModel.isCreation) {\r\n this.viewModel.selectedBidStrategy(types.enhancedCPC);\r\n }\r\n }\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 odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport dateUtils from '@bingads-webui-component-legacy/humanize/date';\r\nimport appConfig from '@bingads-webui-component-legacy/config/index';\r\nimport kendo from '@bingads-webui/kendo/kendo.core';\r\nimport { CoOpCampaignSubType } from '@bingads-webui-campaign-legacy/adgroup-create-advanced/util/showCpgAdGroupType';\r\nimport types from '@bingads-webui-campaign-legacy/bidding-strategy/bidding-strategy-type';\r\nimport decimalNumber from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport { CampaignSubTypes, CampaignSubTypeMapping } from '@bingads-webui-campaign/audience-campaign-shared';\r\nimport { isBidLessThanFiveCentsForShoppingCampaign } from '@bingads-webui-campaign-legacy/adgroup-create-advanced/util/bidLessThanFiveCents';\r\nimport { CampaignTypeToStringMap } from '@bingads-webui-campaign/campaign-ui-common';\r\nimport { countNumberOfDigits } from '@bingads-webui-campaign-legacy/budget/shared/countNumberOfDigits';\r\nimport { GetJsDataInfo } from '@bingads-webui-clientcenter/js-data-cc-rest-base';\r\nimport { FAC_FEATURE_ID } from '@bingads-webui-campaign/recommendation-core';\r\nimport { Constants as CCUIConstants } from '@bingads-webui-clientcenter/entity-utils';\r\nimport {\r\n isXandrServing,\r\n isXandrDisplayAdsCampaign,\r\n isXandrVideoAdsCampaign,\r\n} from '@bingads-webui-campaign-react/constants';\r\n\r\nconst BROAD_ONLY_BID_STRATEGY_OPTIONS = new Set([\r\n types.targetCpa,\r\n types.targetRoas,\r\n types.maximizeConversions,\r\n]);\r\n\r\nconst FAC_STATUS = Object.freeze({\r\n NOT_IN_PROGRESS: CCUIConstants.RecommendationAdoptionStatus.NotInProgess,\r\n ACTIVE: CCUIConstants.RecommendationAdoptionStatus.Active,\r\n ADOPTED: CCUIConstants.RecommendationAdoptionStatus.Adopted,\r\n});\r\n\r\nconst AUTO_BIDDING_FEATURE_IDS = Object.freeze({\r\n MAX_CLICKS: parseInt(FAC_FEATURE_ID.AUTO_BIDDING_MAX_CLICKS, 10),\r\n MAX_CONVERSIONS: parseInt(FAC_FEATURE_ID.AUTO_BIDDING_MAX_CONVERSIONS, 10),\r\n});\r\n\r\nconst autoBidUpfrontSpendValue = 50;\r\n\r\nconst i18n = window.globalLegacyI18n && window.globalLegacyI18n.get('module/extension/requirejs/i18n!global');\r\n\r\n/* global _TL_ */\r\n\r\nconst percentageThreshold = 20;\r\nconst exampleBid = 12.3;\r\nconst multiplier = 100.0;\r\n\r\nexport const NumberRange = {\r\n costPerSale: {\r\n minValue: PageContext && PageContext.KeywordBidRange && PageContext.KeywordBidRange.FloorValue ? PageContext.KeywordBidRange.FloorValue : 0.01,\r\n maxValue: (PageContext && PageContext.KeywordBidRange && PageContext.KeywordBidRange.CeilingValue ? PageContext.KeywordBidRange.CeilingValue : 1000) * 4,\r\n },\r\n manualCpi: {\r\n minValue: 1,\r\n maxValue: 100000,\r\n },\r\n manualCpc: {\r\n minValue: 1,\r\n maxValue: 100000,\r\n },\r\n targetRoas: {\r\n minValue: 1,\r\n maxValue: 100000,\r\n },\r\n targetCpa: {\r\n minValue: PageContext && PageContext.KeywordBidRange && PageContext.KeywordBidRange.FloorValue ? PageContext.KeywordBidRange.FloorValue : 0.01,\r\n maxValue: (PageContext && PageContext.KeywordBidRange && PageContext.KeywordBidRange.CeilingValue ? PageContext.KeywordBidRange.CeilingValue : 1000) * 4,\r\n },\r\n targetImpressionShare: {\r\n minValue: 0.01,\r\n maxValue: 100,\r\n },\r\n targetCommissionRate: {\r\n minValue: appConfig.get('KeywordCommissionRateRange') && appConfig.get('KeywordCommissionRateRange').FloorValue,\r\n maxValue: appConfig.get('KeywordCommissionRateRange') && appConfig.get('KeywordCommissionRateRange').CeilingValue,\r\n },\r\n maxCpcKeyword: {\r\n minValue: PageContext && PageContext.KeywordBidRange && PageContext.KeywordBidRange.FloorValue ? PageContext.KeywordBidRange.FloorValue : 0.01,\r\n maxValue: PageContext && PageContext.KeywordBidRange && PageContext.KeywordBidRange.CeilingValue ? PageContext.KeywordBidRange.CeilingValue : 1000,\r\n },\r\n maxCpcProductGroup: {\r\n minValue: PageContext && PageContext.ProductGroupBidRange && PageContext.ProductGroupBidRange.FloorValue ? PageContext.ProductGroupBidRange.FloorValue : 0.01,\r\n maxValue: PageContext && PageContext.ProductGroupBidRange && PageContext.ProductGroupBidRange.CeilingValue ? PageContext.ProductGroupBidRange.CeilingValue : 1000,\r\n },\r\n};\r\nconst outOfRangeTemplate = {\r\n costPerSale: 'BidStrategy_BidOutOfRangeError', // CPSTODO: out of range message\r\n targetRoas: 'BidStrategy_TargetROASOutOfRangeError',\r\n targetCpa: 'BidStrategy_BidOutOfRangeError',\r\n targetImpressionShare: 'BidStrategy_TargetImpressionShareOutOfRangeError',\r\n targetCommissionRate: 'BidStrategy_TargetCommissionRateOutOfRangeError',\r\n maxCpcKeyword: 'BidStrategy_BidOutOfRangeError',\r\n maxCpcProductGroup: 'BidStrategy_BidOutOfRangeError',\r\n};\r\nconst outOfRange = (type) => i18n.getString(outOfRangeTemplate[type])\r\n .replace('{0}', decimalNumber.fromFloatToString(NumberRange[type].minValue))\r\n .replace('{1}', decimalNumber.fromFloatToString(NumberRange[type].maxValue));\r\nconst INVALID = i18n && i18n.getString('BidStrategy_InvalidBidError')\r\n .replace('{0}', decimalNumber.fromFloatToString(exampleBid, 2));\r\n\r\nconst validateNumber = function (v, type, excludeMin = false, excludeMax = false, isDirty = true) {\r\n if (!isDirty) {\r\n return '';\r\n }\r\n\r\n if (!decimalNumber.isValid(v)) {\r\n return INVALID;\r\n }\r\n\r\n const value = decimalNumber.fromLocalToFloat(v);\r\n const lowerThanMin = excludeMin ? value <= NumberRange[type].minValue : value < NumberRange[type].minValue;\r\n const higherThanMax = excludeMax ? value >= NumberRange[type].maxValue : value > NumberRange[type].maxValue;\r\n\r\n if (lowerThanMin || higherThanMax) {\r\n return outOfRange(type);\r\n }\r\n\r\n if (type === 'targetCommissionRate' && countNumberOfDigits(value) > 2) {\r\n return i18n.getString('Validation_Number_Max_Length');\r\n }\r\n\r\n return '';\r\n};\r\n\r\nconst {\r\n IsCampaignTargetROASBidStrategyEnabled,\r\n IsNewCampaignTargetROASBidStrategyEnabled,\r\n IsSmartShoppingCampaignEnabled,\r\n IsMaximizeConversionValueEnabled,\r\n IsTargetImpressionShareEnabled,\r\n IsManualBiddingDeprecationEnabled,\r\n IsManualCpmEnabled,\r\n IsVideoAdsForCampaignEnabled,\r\n IsCostPerSaleEnabled,\r\n IsHideCpmForFeedbasedCampaginEnabled,\r\n IsManualCpcForVideoAdsEnabled,\r\n IsAudienceCampaignAutoBiddingV2Enabled,\r\n IsMSANMaxConversionsEnabled,\r\n IsEnabledDeprecateManualCpcForAudienceCampaign,\r\n IsDomesticSimplifiedChineseEnabled,\r\n} = _.result(PageContext, 'Permissions', {});\r\n\r\nconst IsPortfolioBidStrategyEnabled = _.result(PageContext && PageContext.Permissions && PageContext.Permissions.dynamic, 'PortfolioBidStrategy', false);\r\nconst IsHotelCampaignEnabled = _.result(PageContext && PageContext.Permissions && PageContext.Permissions.dynamic, 'HotelCampaign', false);\r\nconst IsSponsoredPromotionsByBrandsEnabled = _.result(PageContext && PageContext.Permissions && PageContext.Permissions.dynamic, 'SponsoredPromotionsByBrands', false);\r\nconst IsPersonalizedOffersV4Enabled = _.result(PageContext, ['Permissions', 'IsPersonalizedOffersV4Enabled'], false);\r\nconst IsWindowsStoreAdsManualCPAEnabled = _.result(PageContext && PageContext.Permissions && PageContext.Permissions.dynamic, 'WindowsStoreAdsManualCPA', false);\r\nconst isMaxConversionForSscEnabled = _.result(PageContext && PageContext.Permissions && PageContext.Permissions.dynamic, 'SupportMaxConversionsForSsc', false);\r\nconst isPredictiveMatchingPilotEnabled = _.result(PageContext, ['Permissions', 'dynamic', 'PredictiveMatching']);\r\nconst isRSABidStrategyAutoTargetingEnabled = !isPredictiveMatchingPilotEnabled && _.result(PageContext && PageContext.Permissions && PageContext.Permissions.dynamic, 'RSABidStrategyAutoTargeting', false);\r\nconst isXandrVideoCampaignEnabled = _.result(PageContext && PageContext.Permissions && PageContext.Permissions.dynamic, 'XandrVideoCampaigns', false);\r\nconst isMaxConversionValueInSearchShoppingEnabled = _.result(PageContext && PageContext.Permissions, 'IsMaxConversionValueInSearchShoppingEnabled', false);\r\nconst isMaxConversionValueInSearchEnabled = _.result(PageContext && PageContext.Permissions && PageContext.Permissions.dynamic, 'MaxConversionValueInSearchCampaign', false);\r\nconst isPmaxLiteEnabled = _.result(PageContext, ['Permissions', 'dynamic', 'PMaxLite']);\r\nconst isBroadOnlyPilotEnabled = _.result(PageContext, ['Permissions', 'dynamic', 'BroadOnly']);\r\nconst isEnableMSANDisplayCampaignsEnabled = _.result(PageContext, ['Permissions', 'dynamic', 'EnableMSANDisplayCampaigns']);\r\nconst isEnableMSANVideoCampaignsEnabled = _.result(PageContext, ['Permissions', 'dynamic', 'EnableMSANVideoCampaigns']);\r\n\r\nexport default function ViewModel(model) {\r\n let isMaximizeConversionValueEnabled = IsMaximizeConversionValueEnabled;\r\n let isTargetImpressionShareEnabled = IsTargetImpressionShareEnabled;\r\n let isPortfolioBidStrategyEnabled = IsPortfolioBidStrategyEnabled;\r\n let isHotelCampaignEnabled = IsHotelCampaignEnabled;\r\n let isCostPerSaleEnabled = IsCostPerSaleEnabled;\r\n const globalFilterCampaignType = model.getCampaignTypeGlobalFilter && CampaignTypeToStringMap[model.getCampaignTypeGlobalFilter()];\r\n\r\n this.ccJsData = model.ccJsData;\r\n this.campaignSettings = model.campaignSettings;\r\n this.campaignType = model.campaignType; // can be undefined if isBulkEdit\r\n this.campaignSubType = model.campaignSubType;\r\n this.isCreation = model.isCreation;\r\n this.isBulkEdit = model.isBulkEdit;\r\n this.originalBidStrategy = model.biddingStrategyType;\r\n this.i18nNewDesign = model.i18nNewDesign;\r\n this.isGlobalFilterAllCampaign = this.isBulkEdit && globalFilterCampaignType === 'All';\r\n this.isGlobalFilterAudienceCampaign = this.isBulkEdit && globalFilterCampaignType === 'Audience';\r\n this.isGlobalFilterHotelCampaign = this.isBulkEdit && globalFilterCampaignType === 'Hotel';\r\n this.campaignBiddingStrategyType = model.campaignBiddingStrategyType;\r\n this.validateWithBudget = model.validateWithBudget;\r\n this.budgetAmount = model.budgetAmount;\r\n\r\n this.multiplier = multiplier;\r\n this.showHeader = !model.hideHeader;\r\n this.showBidStrategySelection = !model.isPortfolio;\r\n this.forceHideBidStrategySection = ko.observable(!!model.forceHideBidStrategySection);\r\n\r\n this.isVideo = this.campaignSubType === 'AudienceVideoAds';\r\n this.isFeedBased = (this.campaignSubType === 'AudienceFeedBased') || (this.campaignSubType === 'AudienceDynamicFeedBased');\r\n\r\n const isSponsoredCampaign = this.campaignType === 'shopping' && this.campaignSubType === 'ShoppingSponsoredProductAd';\r\n\r\n const isMicrosoftStoreAd = model.isMSStoreAdsGAWorkflow;\r\n\r\n const isSmartShopping = this.campaignType === 'shopping' && this.campaignSubType === 'ShoppingSmartAds';\r\n const isSmartShoppingWithMaxConversionsForSsc = isSmartShopping && isMaxConversionForSscEnabled;\r\n const isSearchShopping = this.campaignType === 'shopping' && !this.campaignSubType;\r\n const isSearchShoppingWithMaxConversionValue = isSearchShopping && isMaxConversionValueInSearchShoppingEnabled;\r\n\r\n const isChinaMarketAudienceCampaign = this.campaignType === 'audience' && IsDomesticSimplifiedChineseEnabled;\r\n\r\n this.isPmax = this.campaignType === 'performanceMax';\r\n this.isAppAds = this.campaignType === 'appads';\r\n const isBulkEditWithMaxConversionsForSsc = this.isBulkEdit && isMaxConversionForSscEnabled;\r\n\r\n const isCampaignTargetROASBidStrategyEnabled = IsCampaignTargetROASBidStrategyEnabled || IsNewCampaignTargetROASBidStrategyEnabled || (IsSmartShoppingCampaignEnabled && model.campaignSubType === 'ShoppingSmartAds') || this.isPmax;\r\n\r\n const isEnabledAutoBiddingForAudienceCampaign = this.campaignType === 'audience' &&\r\n [\r\n CampaignSubTypes.AudienceStatic,\r\n CampaignSubTypes.AudienceFeedBased,\r\n CampaignSubTypes.AudienceDynamicFeedBased,\r\n CampaignSubTypes.BrandAwarenessVideoAds,\r\n CampaignSubTypes.DisplayAds,\r\n ].includes(this.campaignSubType);\r\n\r\n this.isAudienceCampaignMaxConversionsEnabled =\r\n (isEnabledAutoBiddingForAudienceCampaign && (IsAudienceCampaignAutoBiddingV2Enabled || IsMSANMaxConversionsEnabled)) ||\r\n (isEnableMSANDisplayCampaignsEnabled && isXandrDisplayAdsCampaign(this.campaignSubType)) ||\r\n (isEnableMSANVideoCampaignsEnabled && isXandrVideoAdsCampaign(this.campaignSubType));\r\n\r\n this.isSearchCampaignMaxConversionValueEnabled = this.campaignType === 'search' && isMaxConversionValueInSearchEnabled;\r\n\r\n this.shouldEnableManualBiddingDeprecation = () => {\r\n // Only need to calculate once per bidding-strategy ViewModel\r\n if (this.isManualBiddingDeprecationEnabledForCurrentPath === undefined) {\r\n // isCampaignTypeSupportedForManualBiddingDeprecation is used for removing the manual bidding option in campaign creation and campaign settings,\r\n // and also for removing the bid strategy section from adgroup creation, and adgroup settings. All of which is only for the supported campaigns in this variable.\r\n // Note that during CPG campaign creation, bidding-strategy/view/setting.es will use updateBidStrategy to update the campaignBiddingStrategyOptions\r\n const isCampaignTypeSupportedForManualBiddingDeprecation = this.campaignType === 'search' || this.campaignType === 'shopping';\r\n\r\n // isBulkEditViaCampaignsGrid is used to disable manual bidding in the bid strategy dropdown in the top of campaigns grid form (Old and New UI).\r\n // The bid strategy dropdown in the toolbar for Old UI has a different source for its dropdown items, projection-grid-bid-strategy/src/menu-items.js.\r\n const isBulkEditViaCampaignsGrid = this.isBulkEdit && model.entityType === 'Campaign';\r\n\r\n const isCPG = this.campaignType === 'shopping' && (this.campaignSubType === 'ShoppingCoOperative' || this.campaignSubType === CoOpCampaignSubType);\r\n\r\n // For existing campaigns of type Search/DSA/non-CPG Shopping that have manual CPC, disable MBD in Campaign Settings.\r\n // The !isCPG check is covered in this.isManualBiddingDeprecationEnabledForCurrentPath.\r\n const isCampaignSettingsWhereCampaignHasManualCPC = model.entityType === 'Campaign' &&\r\n !this.isCreation && !this.isBulkEdit &&\r\n isCampaignTypeSupportedForManualBiddingDeprecation &&\r\n this.originalBidStrategy === types.manual;\r\n\r\n this.isManualBiddingDeprecationEnabledForCurrentPath = IsManualBiddingDeprecationEnabled &&\r\n (isCampaignTypeSupportedForManualBiddingDeprecation || isBulkEditViaCampaignsGrid) &&\r\n !isCPG &&\r\n !isMicrosoftStoreAd &&\r\n !isCampaignSettingsWhereCampaignHasManualCPC &&\r\n // In campaigns grid, ManualCpc is hidden only when user selects non-audience campaign waterfall filter in the left nav like \"Search campaigns\".\r\n !this.isGlobalFilterAllCampaign &&\r\n !this.isGlobalFilterAudienceCampaign &&\r\n !this.isGlobalFilterHotelCampaign;\r\n\r\n if (isEnabledAutoBiddingForAudienceCampaign && IsEnabledDeprecateManualCpcForAudienceCampaign) {\r\n this.isManualBiddingDeprecationEnabledForCurrentPath = true;\r\n }\r\n }\r\n\r\n return this.isManualBiddingDeprecationEnabledForCurrentPath;\r\n };\r\n\r\n this.determineSupportedCampaignBiddingStrategyOptions = () => {\r\n this.campaignBiddingStrategyOptions = [];\r\n\r\n if (isSmartShoppingWithMaxConversionsForSsc) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.maximizeConversions,\r\n Text: i18n.getString('BidStrategy_Option_MaximizeConversions'),\r\n });\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.maxConversionValue,\r\n Text: i18n.getString('BidStrategy_Option_MaxConversionValue'),\r\n });\r\n\r\n // No need for any other strategyt for SSC creation flow with MaxConversion support\r\n return;\r\n }\r\n\r\n // auto bidding show come before manual ones.\r\n if (this.campaignType === 'audience' &&\r\n [\r\n CampaignSubTypes.AudienceStatic,\r\n CampaignSubTypes.AudienceFeedBased,\r\n CampaignSubTypes.AudienceDynamicFeedBased,\r\n CampaignSubTypes.BrandAwarenessVideoAds,\r\n CampaignSubTypes.DisplayAds,\r\n CampaignSubTypeMapping.BrandAwarenessVideoAds,\r\n CampaignSubTypeMapping.DisplayAds,\r\n ].includes(this.campaignSubType)) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.enhancedCPC,\r\n Text: i18n.getString('BidStrategy_Option_EnhancedCPC'),\r\n });\r\n }\r\n\r\n if (this.isAudienceCampaignMaxConversionsEnabled) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.maximizeConversions,\r\n Text: i18n.getString('BidStrategy_Option_MaximizeConversions'),\r\n });\r\n }\r\n\r\n if (this.isPmax) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.maximizeConversions,\r\n Text: i18n.getString('BidStrategy_Option_MaximizeConversions'),\r\n });\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.maxConversionValue,\r\n Text: i18n.getString('BidStrategy_Option_MaxConversionValue'),\r\n });\r\n\r\n // No need for any other strategyt for pmax creation flow with MaxConversion support\r\n return;\r\n }\r\n\r\n if (this.isAppAds) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.enhancedCPC,\r\n Text: i18n.getString('BidStrategy_Option_Manual_CPI'),\r\n });\r\n return;\r\n }\r\n\r\n if (!this.shouldEnableManualBiddingDeprecation()) {\r\n if ((this.isBulkEdit || !this.isVideo || IsManualCpcForVideoAdsEnabled || isMicrosoftStoreAd) &&\r\n (!(isEnableMSANDisplayCampaignsEnabled && isXandrDisplayAdsCampaign(this.campaignSubType)) &&\r\n !(isEnableMSANVideoCampaignsEnabled && isXandrVideoAdsCampaign(this.campaignSubType)))) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.manual,\r\n Text: i18n.getString('BidStrategy_Option_Manual_Campaign'),\r\n });\r\n }\r\n }\r\n /**\r\n * Manual CPV is enabled in 2 cases:\r\n * 1. Campaigns grid bulk edit and under video pilot\r\n * 2. Setting page of video campaign\r\n */\r\n if (\r\n (this.isBulkEdit && model.entityType === 'Campaign' && IsVideoAdsForCampaignEnabled) ||\r\n (!this.isBulkEdit && this.isVideo)) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.manualCpv,\r\n Text: isXandrVideoCampaignEnabled ? i18n.getString('BidStrategy_Option_Manual_CPV_CPCV_Campaign') : i18n.getString('BidStrategy_Option_Manual_CPV_Campaign'),\r\n });\r\n }\r\n /**\r\n * Manual CPM is enabled in 2 cases when user is under CPM pilot:\r\n * 1. Campaigns grid bulk edit\r\n * 2. Audience campaign setting page\r\n */\r\n if (IsManualCpmEnabled) {\r\n if (this.isBulkEdit || this.campaignType === 'audience') {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.manualCpm,\r\n Text: isXandrVideoCampaignEnabled ? i18n.getString('BidStrategy_Option_Manual_Or_Viewable_CPM_Campaign') : i18n.getString('BidStrategy_Option_Manual_CPM_Campaign'),\r\n });\r\n }\r\n }\r\n\r\n if (IsHideCpmForFeedbasedCampaginEnabled) {\r\n if (!this.isBulkEdit && this.isFeedBased) {\r\n this.campaignBiddingStrategyOptions = this.campaignBiddingStrategyOptions.filter((option) => option.Value !== types.manualCpm);\r\n }\r\n }\r\n\r\n if (IsWindowsStoreAdsManualCPAEnabled && (isMicrosoftStoreAd || this.isBulkEdit)) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.manualCpa,\r\n Text: i18n.getString('BidStrategy_Option_Manual_CPA_Campaign'),\r\n });\r\n }\r\n\r\n if (this.campaignType !== 'audience' && !isMicrosoftStoreAd) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.enhancedCPC,\r\n Text: i18n.getString('BidStrategy_Option_EnhancedCPC'),\r\n });\r\n\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.maximizeClicks,\r\n Text: i18n.getString('BidStrategy_Option_MaximizeClicks'),\r\n });\r\n\r\n if (this.campaignType !== 'shopping' || isBulkEditWithMaxConversionsForSsc) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.maximizeConversions,\r\n Text: i18n.getString('BidStrategy_Option_MaximizeConversions'),\r\n });\r\n }\r\n\r\n if (isMaxConversionValueInSearchEnabled && this.campaignType === 'search') {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.maxConversionValue,\r\n Text: i18n.getString('BidStrategy_Option_MaxConversionValue'),\r\n });\r\n }\r\n\r\n if (this.campaignType !== 'shopping') {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.targetCpa,\r\n Text: i18n.getString('BidStrategy_Option_TargetCPA'),\r\n });\r\n }\r\n\r\n if (isCampaignTargetROASBidStrategyEnabled) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.targetRoas,\r\n Text: i18n.getString('BidStrategy_Option_TargetROAS'),\r\n });\r\n }\r\n\r\n const showMaxConversionValue =\r\n (isMaximizeConversionValueEnabled && (this.campaignType === 'search' || this.campaignType === 'shopping' || this.isPmax || this.isBulkEdit)) ||\r\n isBulkEditWithMaxConversionsForSsc || isSearchShoppingWithMaxConversionValue;\r\n\r\n if (showMaxConversionValue) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.maxConversionValue,\r\n Text: i18n.getString('BidStrategy_Option_MaxConversionValue'),\r\n });\r\n }\r\n\r\n if (isTargetImpressionShareEnabled && (this.campaignType === 'search' || this.isBulkEdit)) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.targetImpressionShare,\r\n Text: i18n.getString('BidStrategy_Option_TargetImpressionShare'),\r\n });\r\n }\r\n\r\n if (isPortfolioBidStrategyEnabled &&\r\n (this.campaignType === 'search' || this.campaignType === 'shopping' || this.isBulkEdit) &&\r\n // isPortfolio means it is creating a portoflio from portfolio bid strategies grid. Need to exclude this case.\r\n !this.isPortfolio) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.portfolioBidStrategy,\r\n Text: i18n.getString('BidStrategy_Option_PortfolioBidStrategy'),\r\n });\r\n }\r\n\r\n if (isHotelCampaignEnabled && (this.campaignType === 'hotel' || this.isBulkEdit)) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.percentCpc,\r\n Text: i18n.getString('BidStrategy_Option_PercentCpc'),\r\n });\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.commission,\r\n Text: i18n.getString('BidStrategy_Option_Commission'),\r\n });\r\n }\r\n\r\n if (IsCostPerSaleEnabled && IsPersonalizedOffersV4Enabled &&\r\n this.campaignType === 'shopping' && this.campaignSubType == null && (this.isCreation || this.originalBidStrategy === types.costPerSale)) {\r\n const costPerSaleBidStrategy = {\r\n Value: 'CostPerSale',\r\n Text: i18n.getString('BidStrategy_Option_CostPerSale'),\r\n };\r\n\r\n this.campaignBiddingStrategyOptions.push(costPerSaleBidStrategy);\r\n }\r\n }\r\n\r\n if (this.campaignType === 'audience' && isXandrServing(this.campaignSubType, this.campaignSettings) &&\r\n (!(isEnableMSANDisplayCampaignsEnabled && isXandrDisplayAdsCampaign(this.campaignSubType)) &&\r\n !(isEnableMSANVideoCampaignsEnabled && isXandrVideoAdsCampaign(this.campaignSubType)))) {\r\n this.campaignBiddingStrategyOptions = [{\r\n Value: types.manualCpm,\r\n Text: i18n.getString('BidStrategy_Option_Viewable_CPM_Campaign'),\r\n }];\r\n }\r\n\r\n if (IsDomesticSimplifiedChineseEnabled && !isMicrosoftStoreAd) {\r\n this.campaignBiddingStrategyOptions = [{\r\n Value: types.enhancedCPC,\r\n Text: i18n.getString('BidStrategy_Option_EnhancedCPC'),\r\n }];\r\n\r\n if (this.campaignType === 'search' || this.isBulkEdit) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.maximizeClicks,\r\n Text: i18n.getString('BidStrategy_Option_MaximizeClicks'),\r\n });\r\n\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.maximizeConversions,\r\n Text: i18n.getString('BidStrategy_Option_MaximizeConversions'),\r\n });\r\n\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.targetCpa,\r\n Text: i18n.getString('BidStrategy_Option_TargetCPA'),\r\n });\r\n\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.targetRoas,\r\n Text: i18n.getString('BidStrategy_Option_TargetROAS'),\r\n });\r\n\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.portfolioBidStrategy,\r\n Text: i18n.getString('BidStrategy_Option_PortfolioBidStrategy'),\r\n });\r\n }\r\n\r\n if (this.campaignType === 'audience' || this.isBulkEdit) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.maximizeConversions,\r\n Text: i18n.getString('BidStrategy_Option_MaximizeConversions'),\r\n });\r\n }\r\n\r\n if (this.campaignType === 'shopping' || this.isBulkEdit) {\r\n this.campaignBiddingStrategyOptions.push({\r\n Value: types.maximizeClicks,\r\n Text: i18n.getString('BidStrategy_Option_MaximizeClicks'),\r\n });\r\n }\r\n }\r\n\r\n // Make sure we dont have any duplicates\r\n this.campaignBiddingStrategyOptions = [...new Set(this.campaignBiddingStrategyOptions)];\r\n };\r\n\r\n this.determineSupportedCampaignBiddingStrategyOptions();\r\n\r\n const adGroupBiddingStrategyOptions = [{\r\n Value: types.parent,\r\n Text: i18n.getString('BidStrategy_Option_ParentCampaign'),\r\n }, {\r\n Value: types.manual,\r\n Text: i18n.getString('BidStrategy_Option_Manual'),\r\n }];\r\n\r\n if (this.isVideo) {\r\n adGroupBiddingStrategyOptions.pop();\r\n }\r\n\r\n const keywordBiddingStrategyOptions = [{\r\n Value: types.parent,\r\n Text: i18n.getString('BidStrategy_Option_ParentAdGroup'),\r\n }, {\r\n Value: types.manual,\r\n Text: i18n.getString('BidStrategy_Option_Manual'),\r\n }];\r\n\r\n this.strategyOptions = ko.observable({\r\n 'Campaign': this.campaignBiddingStrategyOptions,\r\n 'AdGroup': adGroupBiddingStrategyOptions,\r\n 'Keyword': keywordBiddingStrategyOptions,\r\n }[model.entityType] || []);\r\n\r\n this.targetImpressionSharePositionOptions = [\r\n {\r\n Value: 'FirstPage',\r\n Text: i18n.getString('BidStrategySetting_TargetImpressionShare_AdPosition_Anywhere'),\r\n },\r\n {\r\n Value: 'MainLine',\r\n Text: i18n.getString('BidStrategySetting_TargetImpressionShare_AdPosition_Top'),\r\n },\r\n {\r\n Value: 'MainLine1',\r\n Text: i18n.getString('BidStrategySetting_TargetImpressionShare_AdPosition_AbsoluteTop'),\r\n },\r\n ];\r\n\r\n this.selectedBidStrategy = ko.observable(model.biddingStrategyType);\r\n this.selectedPortfolioBidStrategy = ko.observable(this.originalBidStrategy === types.portfolioBidStrategy ? { Name: model.bidStrategyName, Type: model.portfolioBidStrategyType, Id: model.biddingStrategyId } : null);\r\n this.isAfterSave = ko.observable(model.isAfterSave);\r\n this.forceReadOnly = ko.observable(false);\r\n this.isReadOnly = ko.computed(() =>\r\n (IsSponsoredPromotionsByBrandsEnabled && this.forceReadOnly()) ||\r\n (this.isAfterSave() && this.selectedBidStrategy() === types.costPerSale) ||\r\n (isXandrServing(this.campaignSubType, this.campaignSettings) && (!(isEnableMSANDisplayCampaignsEnabled && isXandrDisplayAdsCampaign(this.campaignSubType)) &&\r\n !(isEnableMSANVideoCampaignsEnabled && isXandrVideoAdsCampaign(this.campaignSubType)))) ||\r\n (this.isAfterSave() && isMicrosoftStoreAd && IsWindowsStoreAdsManualCPAEnabled),\r\n );\r\n\r\n this.showTargetCpaCheckbox = ko.computed(() => {\r\n return this.selectedBidStrategy() === types.maximizeConversions &&\r\n (this.isAudienceCampaignMaxConversionsEnabled || isSmartShoppingWithMaxConversionsForSsc || this.isPmax || isBulkEditWithMaxConversionsForSsc || isChinaMarketAudienceCampaign);\r\n });\r\n\r\n // The actual bid strategy type applied to campaign\r\n // 1. if the selected strategy is a individual bid strategy, then it's the individual bid strategy itself\r\n // 2. if the selected strategy is a portfolio bid strategy, then it's the bid strategy type of the portfolio\r\n this.actualBidStrategy = ko.computed(() => {\r\n if (this.selectedBidStrategy() === types.portfolioBidStrategy && this.selectedPortfolioBidStrategy()) {\r\n return this.selectedPortfolioBidStrategy().Type;\r\n }\r\n\r\n return this.selectedBidStrategy();\r\n });\r\n\r\n this.isInitialize = model.isInitialize;\r\n this.isConversionChecking = ko.observable(true);\r\n\r\n this.errorMessageMaxCpc = ko.observable();\r\n this.errorMessageTargetCpa = ko.observable();\r\n this.errorMessageTargetRoas = ko.observable();\r\n this.errorMessageTargetImpressionSharePercent = ko.observable();\r\n this.errorMessageMaxConversionValue = ko.observable();\r\n this.errorMessagePortfolioBidStrategy = ko.observable();\r\n this.errorMessageCostPerSale = ko.observable();\r\n this.errorMessageTargetCommissionRate = ko.observable();\r\n this.maxCpcDefaultValueAlertMessge = ko.observable();\r\n this.targetCpaDefaultValueAlertMessge = ko.observable();\r\n this.targetRoasDefaultValueAlertMessge = ko.observable();\r\n this.targetCommissionRateDefaultValueAlertMessge = ko.observable();\r\n this.costPerSaleDefaultValueAlertMessge = ko.observable();\r\n\r\n // show a message for campaign level's setting page and bulk edit UI\r\n // when the type change to other than manual.\r\n this.showAutobiddingChangeAlert = ko.computed(() => model.entityType === 'Campaign' &&\r\n !this.isCreation && // setting UI or bulk edit UI\r\n !this.isPmax && //not showing on Pmax\r\n !_.contains([types.manual, types.manualCpv, types.manualCpm, types.commission, types.percentCpc], this.selectedBidStrategy()) &&\r\n (this.isBulkEdit || this.selectedBidStrategy() !== this.originalBidStrategy));\r\n\r\n this.selectedBidStrategy.subscribe((value) => {\r\n this.errorMessageMaxCpc('');\r\n this.errorMessageTargetCpa('');\r\n this.errorMessageTargetRoas('');\r\n this.errorMessageMaxConversionValue('');\r\n this.errorMessageCostPerSale('');\r\n this.errorMessageTargetCommissionRate('');\r\n if (value === types.maximizeConversions && this.campaignType === 'search') {\r\n this.isTargetCpaCheckboxSelected(false);\r\n }\r\n if (model.activityLogger) {\r\n model.activityLogger.signal(`bidding strategy type change: ${value}`, 'bidding strategy');\r\n }\r\n }, this);\r\n\r\n this.isPersonalizedOffersEnabled = ko.observable(model.shouldSupportCashbackSettings);\r\n this.isTargetRoasCheckboxSelected = ko.observable(model.targetRoas != null);\r\n this.isBidStrategyReadonly = ko.computed(() => {\r\n return isSmartShopping && !isMaxConversionForSscEnabled;\r\n });\r\n\r\n // TODO: remove else path after GA of manual bidding deprecation\r\n if (IsManualBiddingDeprecationEnabled) {\r\n // The code in adgroup-create-advanced/view/steps/settings.es will now pass in campaignType and campaignSubType,\r\n // we don't want to change selected bid strategy for ad groups so enforce the campaign entity type when in manual bidding deprecation pilot.\r\n if (model.entityType === 'Campaign' && isSmartShopping && !isMaxConversionForSscEnabled) {\r\n this.selectedBidStrategy(types.maxConversionValue);\r\n }\r\n } else {\r\n // eslint-disable-next-line no-lonely-if\r\n if ((this.campaignType === 'shopping' && this.campaignSubType === 'ShoppingSmartAds') || this.isPmax) {\r\n this.selectedBidStrategy(types.maxConversionValue);\r\n }\r\n }\r\n\r\n this.showTargetRoasCheckbox = ko.computed(() => {\r\n return this.selectedBidStrategy() === types.maxConversionValue &&\r\n (this.isSearchCampaignMaxConversionValueEnabled || isSmartShopping || this.isPmax || isBulkEditWithMaxConversionsForSsc || isSearchShoppingWithMaxConversionValue);\r\n });\r\n\r\n this.showCostPerSale = ko.computed(() => {\r\n return this.selectedBidStrategy() === types.costPerSale &&\r\n !this.isBulkEdit;\r\n });\r\n\r\n this.showConversionChecking = ko.computed(() => {\r\n return (this.selectedBidStrategy() === types.enhancedCPC) &&\r\n !this.isConversionChecking();\r\n });\r\n\r\n this.isTargetCpaCheckboxSelected = ko.observable(model.targetCpa != null);\r\n\r\n this.showTargetCPA = ko.computed(() => {\r\n const targetCpaInputNeeded = this.selectedBidStrategy() === types.targetCpa || (this.selectedBidStrategy() === types.maximizeConversions && this.isTargetCpaCheckboxSelected());\r\n\r\n return targetCpaInputNeeded && !this.showConversionChecking();\r\n });\r\n\r\n this.showCPC = ko.computed(() => {\r\n return (this.selectedBidStrategy() === types.maximizeClicks ||\r\n (this.selectedBidStrategy() === types.maximizeConversions && !isSmartShoppingWithMaxConversionsForSsc && !this.isPmax) ||\r\n this.selectedBidStrategy() === types.targetCpa ||\r\n this.selectedBidStrategy() === types.targetRoas ||\r\n this.selectedBidStrategy() === types.targetImpressionShare) &&\r\n !this.showConversionChecking();\r\n });\r\n\r\n this.showAutoTargeting = ko.computed(() => {\r\n const supportedBidStrategies = [\r\n types.targetCpa,\r\n types.targetRoas,\r\n types.maximizeConversions,\r\n ];\r\n\r\n return this.showBidStrategySelection && (model.campaignType === 'search' || model.isBulkEdit) && isRSABidStrategyAutoTargetingEnabled && supportedBidStrategies.indexOf(this.selectedBidStrategy()) > -1;\r\n });\r\n\r\n this.showPredictiveMatching = ko.computed(() => {\r\n const supportedBidStrategies = [\r\n types.targetCpa,\r\n types.targetRoas,\r\n types.maximizeConversions,\r\n ];\r\n\r\n return this.showBidStrategySelection && model.isBulkEdit && isPredictiveMatchingPilotEnabled && supportedBidStrategies.indexOf(this.selectedBidStrategy()) > -1;\r\n });\r\n\r\n this.showTargetROAS = ko.computed(() => {\r\n return (this.selectedBidStrategy() === types.targetRoas ||\r\n (this.selectedBidStrategy() === types.maxConversionValue && this.isTargetRoasCheckboxSelected() &&\r\n (this.isSearchCampaignMaxConversionValueEnabled || isSmartShopping || this.isPmax || isBulkEditWithMaxConversionsForSsc || isSearchShoppingWithMaxConversionValue))) &&\r\n !this.showConversionChecking();\r\n });\r\n\r\n this.showTargetImpressionShare = ko.computed(() => {\r\n return this.selectedBidStrategy() === types.targetImpressionShare;\r\n });\r\n\r\n this.showCommissionRate = ko.computed(() => {\r\n return this.selectedBidStrategy() === types.commission;\r\n });\r\n\r\n this.checkCPC = ko.observable(false);\r\n this.checkCPC.subscribe((value) => {\r\n if (model.activityLogger) {\r\n model.activityLogger.signal(`set max CPC: ${value}`, 'bidding strategy');\r\n }\r\n });\r\n\r\n this.checkAutoTargeting = ko.observable(model.autoTargetingEnabled);\r\n this.checkAutoTargeting.subscribe((value) => {\r\n if (model.activityLogger) {\r\n model.activityLogger.signal(`set auto targeting: ${value}`, 'bidding strategy');\r\n }\r\n });\r\n\r\n this.predictiveMatchingChecked = ko.observable(false);\r\n this.predictiveMatchingChecked.subscribe((value) => {\r\n if (model.activityLogger) {\r\n model.activityLogger.signal(`set predictive matching: ${value}`, 'bidding strategy');\r\n }\r\n });\r\n\r\n const logMaxCpcChange = _.once(() => {\r\n if (model.activityLogger) {\r\n model.activityLogger.signal('max CPC value change', 'bidding strategy');\r\n }\r\n });\r\n\r\n this.imaxCPCBidBase = ko.observable(-1);\r\n this.maxCpcBid = ko.observable();\r\n this.isMaxCpcDirty = ko.observable(false);\r\n this.maxCpc = ko.computed({\r\n read: () => {\r\n return this.maxCpcBid();\r\n },\r\n write: (value) => {\r\n this.errorMessageMaxCpc('');\r\n this.maxCpcBid(value);\r\n logMaxCpcChange();\r\n if (this.checkConversionCountAndRevenue) {\r\n this.checkConversionCountAndRevenue();\r\n }\r\n },\r\n owner: this,\r\n });\r\n this.showMaxCpcDefaultValueAlert = ko.computed(() => {\r\n if (this.selectedBidStrategy() === types.maximizeClicks ||\r\n this.selectedBidStrategy() === types.maximizeConversions ||\r\n this.selectedBidStrategy() === types.targetCpa ||\r\n (this.selectedBidStrategy() === types.targetRoas || this.isTargetRoasCheckboxSelected())) {\r\n if (this.checkCPC()) {\r\n const maxCpc = this.maxCpc();\r\n const maxCpcKey = `maxCpc${isBidLessThanFiveCentsForShoppingCampaign(this.campaignType, this.isBulkEdit) ? 'ProductGroup' : 'Keyword'}`;\r\n\r\n if (maxCpc !== undefined && this.isMaxCpcDirty() === false) {\r\n this.isMaxCpcDirty(true);\r\n }\r\n const result = validateNumber(maxCpc, maxCpcKey, false, false, this.isMaxCpcDirty());\r\n\r\n if (!_.isEmpty(result)) {\r\n return false;\r\n }\r\n const realValue = decimalNumber.fromLocalToFloat(maxCpc);\r\n\r\n if (this.imaxCPCBidBase() >= 0) {\r\n if (realValue < this.imaxCPCBidBase() * (1 - (percentageThreshold / 100))) {\r\n this.maxCpcDefaultValueAlertMessge(i18n.getString(\r\n 'BidStrategySetting_Message_MaxCPC_LessAlert',\r\n maxCpc,\r\n decimalNumber.fromFloatToString(this.imaxCPCBidBase(), 2),\r\n decimalNumber.fromFloatToString(percentageThreshold, 0),\r\n ));\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n });\r\n\r\n this.itargetCpaBidBase = ko.observable(-1);\r\n this.targetCpaBid = ko.observable();\r\n this.isTargetCpaDirty = ko.observable(false);\r\n this.targetCpa = ko.computed({\r\n read: () => {\r\n return this.targetCpaBid();\r\n },\r\n write: (value) => {\r\n this.errorMessageTargetCpa('');\r\n this.targetCpaBid(value);\r\n },\r\n owner: this,\r\n });\r\n this.showTargetCpaDefaultValueAlert = ko.computed(() => {\r\n if (this.selectedBidStrategy() !== types.targetCpa && !this.isTargetCpaCheckboxSelected()) {\r\n return false;\r\n }\r\n const targetCpa = this.targetCpa();\r\n\r\n if (targetCpa !== undefined && this.isTargetCpaDirty() === false) {\r\n this.isTargetCpaDirty(true);\r\n }\r\n const result = validateNumber(targetCpa, 'targetCpa', false, false, this.isTargetCpaDirty());\r\n\r\n if (!_.isEmpty(result)) {\r\n this.targetCpaDefaultValueAlertMessge(result);\r\n return true;\r\n }\r\n\r\n const realValue = decimalNumber.fromLocalToFloat(targetCpa);\r\n\r\n if (this.itargetCpaBidBase() >= 0) {\r\n if (realValue < this.itargetCpaBidBase() * (1 - (percentageThreshold / 100))) {\r\n this.targetCpaDefaultValueAlertMessge(i18n.getString(\r\n 'BidStrategySetting_Message_TargetCPA_LessAlert',\r\n targetCpa,\r\n decimalNumber.fromFloatToString(this.itargetCpaBidBase(), 2),\r\n decimalNumber.fromFloatToString(percentageThreshold, 0),\r\n ));\r\n return true;\r\n }\r\n }\r\n return false;\r\n });\r\n\r\n // Commission Rate section\r\n this.targetCommissionRateValue = ko.observable();\r\n this.targetCommissionRate = ko.computed({\r\n read: () => {\r\n return this.targetCommissionRateValue();\r\n },\r\n write: (value) => {\r\n this.errorMessageTargetCommissionRate('');\r\n this.targetCommissionRateValue(value);\r\n },\r\n owner: this,\r\n });\r\n this.showTargetCommissionRateDefaultValueAlert = ko.computed(() => {\r\n if (this.selectedBidStrategy() !== types.commission) {\r\n return false;\r\n }\r\n const targetCommissionRate = this.targetCommissionRate();\r\n const result = validateNumber(targetCommissionRate, 'targetCommissionRate', true);\r\n\r\n if (!_.isEmpty(result)) {\r\n this.targetCommissionRateDefaultValueAlertMessge(result);\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n\r\n // ROAS section\r\n this.itargetRoasBidBase = ko.observable(-1);\r\n this.targetRoasBid = ko.observable();\r\n this.targetRoas = ko.computed({\r\n read: () => {\r\n return this.targetRoasBid();\r\n },\r\n write: (value) => {\r\n this.errorMessageTargetRoas('');\r\n this.targetRoasBid(value);\r\n },\r\n owner: this,\r\n });\r\n this.showTargetRoasDefaultValueAlert = ko.computed(() => {\r\n if (this.selectedBidStrategy() !== types.targetRoas && !this.isTargetRoasCheckboxSelected()) {\r\n return false;\r\n }\r\n const targetRoas = this.targetRoas();\r\n const result = validateNumber(targetRoas, 'targetRoas');\r\n\r\n if (!_.isEmpty(result)) {\r\n this.targetRoasDefaultValueAlertMessge(result);\r\n return true;\r\n }\r\n const realValue = decimalNumber.fromLocalToFloat(targetRoas);\r\n\r\n if (this.itargetRoasBidBase() >= 0) {\r\n if (realValue < this.itargetRoasBidBase() * 0.8) {\r\n this.targetRoasDefaultValueAlertMessge(i18n.getString('BidStrategy_TargetROAS_LessWarning', this.itargetRoasBidBase()));\r\n return true;\r\n }\r\n if (realValue > this.itargetRoasBidBase() * 1.2) {\r\n this.targetRoasDefaultValueAlertMessge(i18n.getString('BidStrategy_TargetROAS_MoreWarning', this.itargetRoasBidBase()));\r\n return true;\r\n }\r\n }\r\n return false;\r\n });\r\n\r\n // TIS section\r\n this.targetImpressionShareAdPosition = ko.observable(model.targetAdPosition || 'FirstPage');\r\n this.targetImpressionShareAdPositionUpdate = ko.computed({\r\n read: () => {\r\n return this.targetImpressionShareAdPosition();\r\n },\r\n write: (value) => {\r\n this.targetImpressionShareAdPosition(value);\r\n },\r\n });\r\n this.targetImpressionSharePercent = ko.observable(model.targetImpressionShare);\r\n this.targetImpressionShare = ko.computed({\r\n read: () => {\r\n return this.targetImpressionSharePercent();\r\n },\r\n write: (value) => {\r\n this.errorMessageTargetImpressionSharePercent('');\r\n this.targetImpressionSharePercent(value);\r\n },\r\n owner: this,\r\n });\r\n\r\n // PBS section\r\n this.showPortfolioSection = ko.computed(() => {\r\n return this.selectedBidStrategy() === types.portfolioBidStrategy;\r\n });\r\n\r\n if (this.originalBidStrategy === types.portfolioBidStrategy) {\r\n // when the original bid strategy is portfolio bid strategy, at the beginning display current selected\r\n // portfolio bid strategy instead of the portfolio selector\r\n this.showPortfolioSelector = ko.observable(false);\r\n this.originalPortfolioBidStrategy = `${model.bidStrategyName} (${i18n.getString(types.biddingStrategyOption[model.portfolioBidStrategyType])}) `;\r\n } else {\r\n this.showPortfolioSelector = ko.observable(true);\r\n this.originalPortfolioBidStrategy = '';\r\n }\r\n\r\n // CPS section\r\n this.costPerSaleValue = ko.observable(model.costPerSale);\r\n this.costPerSale = ko.computed({\r\n read: () => {\r\n return this.costPerSaleValue();\r\n },\r\n write: (value) => {\r\n if (!model.isRenderedInReact) {\r\n this.errorMessageCostPerSale('');\r\n }\r\n\r\n this.costPerSaleValue(value);\r\n },\r\n owner: this,\r\n });\r\n this.showCostPerSaleDefaultValueAlert = ko.computed(() => {\r\n if (this.selectedBidStrategy() !== types.costPerSale) {\r\n return false;\r\n }\r\n const costPerSale = this.costPerSale();\r\n const result = validateNumber(costPerSale, 'costPerSale');\r\n\r\n if (!_.isEmpty(result)) {\r\n this.costPerSaleDefaultValueAlertMessge(result);\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n if (model.maxCpc) {\r\n this.checkCPC(true);\r\n this.maxCpc(decimalNumber.fromFloatToString(model.maxCpc, 2));\r\n }\r\n\r\n if (model.targetCpa) {\r\n this.isTargetCpaCheckboxSelected(true);\r\n this.targetCpa(decimalNumber.fromFloatToString(model.targetCpa, 2));\r\n }\r\n\r\n if (model.targetRoas) {\r\n this.targetRoas(decimalNumber.fromFloatToString(model.targetRoas * this.multiplier, 2));\r\n }\r\n\r\n if (model.costPerSale) {\r\n this.costPerSale(decimalNumber.fromFloatToString(model.costPerSale, 2));\r\n }\r\n\r\n this.setConversionChecking = function (value) {\r\n if (this.isConversionChecking() !== value) {\r\n this.isConversionChecking(value);\r\n this.isConversionChecking.notifySubscribers();\r\n if (value === false && this.isInitialize === true && this.selectedBidStrategy() === types.enhancedCPC) {\r\n this.isInitialize = false;\r\n // this.selectedBidStrategy(types.manual);\r\n }\r\n }\r\n };\r\n\r\n this.checkConversionTracking = function () {\r\n const self = this;\r\n\r\n if (this.selectedBidStrategy() === types.enhancedCPC) {\r\n const today = new Date();\r\n const startDate = dateUtils.format(kendo.date.addDays(today, -30), 'M/d/yyyy');\r\n const endDate = dateUtils.format(today, 'M/d/yyyy');\r\n const url = `/Customers(${PageContext.CurrentAccount.AdvertiserCustomerID})/Accounts(${PageContext.CurrentAccount.Id})/Goals?startdate=${startDate}&enddate=${endDate}&$top=1&$orderby=Name&$filter=(TrackingStatus+eq+Enum.GoalTrackingStatus'NoRecentConversion'+or+TrackingStatus+eq+Enum.GoalTrackingStatus'RecordingConversions')&$count=true`;\r\n\r\n odata.get(url)\r\n .then((response) => {\r\n if (!response || !response.value || response.value.length < 1) {\r\n self.setConversionChecking(false); // no matched tracking status\r\n } else {\r\n self.setConversionChecking(true);\r\n }\r\n })\r\n .catch(() => {\r\n // ignore the error case and do not block the user because the default is no op\r\n self.setConversionChecking(true);\r\n });\r\n }\r\n };\r\n\r\n // auto-bidding coupon notification\r\n this.dismissCouponNotification = function () {\r\n this.isAutoBiddingCouponNotificationDismissed(true);\r\n };\r\n\r\n this.getAutoBiddingCoupon = function () {\r\n // use the ccJsData instance from the parent if it exists to avoid duplicate call\r\n let ccJsDataInstance = this.ccJsData;\r\n\r\n if (!ccJsDataInstance) {\r\n // eslint-disable-next-line new-cap\r\n ccJsDataInstance = GetJsDataInfo({\r\n cidFetcher: () => PageContext.CurrentCustomer.Id,\r\n uidFetcher: () => PageContext.CurrentUser.Id,\r\n willSupportCors: true,\r\n }, PageContext.CCBaseUrl, ['FeatureAdoptionCoupon']).jsDataCcRest;\r\n }\r\n\r\n ccJsDataInstance.FeatureAdoptionCoupon\r\n .findAll({ aid: PageContext.CurrentAccount.Id })\r\n .then((coupons) => _.filter(\r\n coupons,\r\n ({ Status, FeatureId }) => (FeatureId === AUTO_BIDDING_FEATURE_IDS.MAX_CLICKS || FeatureId === AUTO_BIDDING_FEATURE_IDS.MAX_CONVERSIONS) &&\r\n Status === FAC_STATUS.ACTIVE,\r\n )).then((coupons) => {\r\n if (coupons.length > 0) {\r\n this.autoBiddingCoupon(coupons[0]);\r\n } else {\r\n this.autoBiddingCoupon(null);\r\n }\r\n });\r\n };\r\n\r\n // TODO: handle internationalized currency\r\n this.autoBidMaxClicksDescription = i18n.getString('BidStrategySettings_Auto_Bid_Coupon_Description_Max_Clicks').replace('{0}', `$${autoBidUpfrontSpendValue}`);\r\n this.autoBidMaxConversionsDescription = i18n.getString('BidStrategySettings_Auto_Bid_Coupon_Description_Max_Conversions').replace('{0}', `$${autoBidUpfrontSpendValue}`);\r\n this.autoBiddingCoupon = ko.observable(null);\r\n this.autoBiddingCoupon(this.getAutoBiddingCoupon());\r\n this.isAutoBiddingCouponNotificationDismissed = ko.observable(false);\r\n\r\n this.shouldDisplayNotification = function () {\r\n return this.autoBiddingCoupon() && !this.isAutoBiddingCouponNotificationDismissed();\r\n };\r\n\r\n this.autoBiddingCouponDescription = ko.computed(() => {\r\n if (this.autoBiddingCoupon()) {\r\n switch (this.autoBiddingCoupon().FeatureId) {\r\n case AUTO_BIDDING_FEATURE_IDS.MAX_CLICKS:\r\n return this.autoBidMaxClicksDescription;\r\n case AUTO_BIDDING_FEATURE_IDS.MAX_CONVERSIONS:\r\n return this.autoBidMaxConversionsDescription;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n return null;\r\n });\r\n\r\n // When PmaxLite pilot is enabled we need to skip the conversion check\r\n this.shouldSkipConversionCheck = ko.computed(() => this.isPmax || this.isBulkEdit);\r\n // initialize with -1 to indicated not get odata result yet. 0 means not met and 1 means campaign met the conversion goal >15\r\n // IsActiveConversionGoalPresent is for this.meetConversionGoal\r\n this.meetConversionGoal = ko.observable(this.shouldSkipConversionCheck() ? 1 : -1);\r\n // initialize with -1 to indicated not get odata result yet. 0 means not met and 1 means campaign met the revenue goal >0\r\n // IsActiveConversionGoalPresentWithValidRevenueValue is for this.meetRevenueGoal\r\n this.meetRevenueGoal = ko.observable(this.shouldSkipConversionCheck() ? 1 : -1);\r\n this.checkConversionCountAndRevenueCalled = false;\r\n\r\n this.checkConversionCountAndRevenue = () => {\r\n if (this.shouldSkipConversionCheck()) {\r\n return;\r\n }\r\n\r\n if (this.checkConversionCountAndRevenueCalled) {\r\n return;\r\n }\r\n this.checkConversionCountAndRevenueCalled = true;\r\n\r\n {\r\n const url = `/Customers(${PageContext.CurrentAccount.AdvertiserCustomerID})/Accounts(${PageContext.CurrentAccount.Id})/ConversionGoalDetails`;\r\n\r\n odata.get(url)\r\n .then((response) => {\r\n this.meetConversionGoal(response.IsActiveConversionGoalPresent ? 1 : 0);\r\n this.meetRevenueGoal(response.IsActiveConversionGoalPresentWithValidRevenueValue ? 1 : 0);\r\n })\r\n .catch(() => {\r\n this.meetConversionGoal(0);\r\n this.meetRevenueGoal(0);\r\n });\r\n }\r\n\r\n if (PageContext.CurrentCampaign && PageContext.CurrentCampaign.Id) {\r\n const utcnow = dateUtils.utcNow();\r\n\r\n utcnow.setDate(utcnow.getDate() - 1);\r\n\r\n const endDate = dateUtils.format(utcnow, 'M/d/yyyy');\r\n\r\n utcnow.setDate(utcnow.getDate() - 29);\r\n\r\n const startDate = dateUtils.format(utcnow, 'M/d/yyyy');\r\n const url = `/Customers(${PageContext.CurrentAccount.AdvertiserCustomerID})/Accounts(${PageContext.CurrentAccount.Id})/Campaigns?startdate=${startDate}&enddate=${endDate}&$select=Id,Name,PerformanceMetrics&$expand=Budget&$filter=Id+eq+${PageContext.CurrentCampaign.Id}&$top=1`;\r\n\r\n odata.get(url)\r\n .then((response) => {\r\n if (response && response.value && response.value.length > 0 && response.value[0].PerformanceMetrics) {\r\n this.itargetCpaBidBase(parseFloat(response.value[0].PerformanceMetrics.CPA));\r\n if (_.isUndefined(this.targetCpaBid())) {\r\n this.targetCpaBid(decimalNumber.fromFloatToString(this.itargetCpaBidBase(), 2));\r\n }\r\n this.imaxCPCBidBase(parseFloat(response.value[0].PerformanceMetrics.AverageCPC));\r\n this.itargetRoasBidBase(parseFloat(response.value[0].PerformanceMetrics.RevenueOnAdSpend));\r\n if (_.isUndefined(this.targetRoasBid())) {\r\n this.targetRoasBid(decimalNumber.fromFloatToString(this.itargetRoasBidBase(), 2));\r\n }\r\n }\r\n })\r\n .catch(_.noop);\r\n }\r\n };\r\n\r\n this.checkErrorMessage = (meetValue, checkSelectedBidStrategy) => {\r\n if (checkSelectedBidStrategy) {\r\n if (meetValue === -1) {\r\n this.checkConversionCountAndRevenue();\r\n return false;\r\n }\r\n if (!this.isBulkEdit && this.selectedBidStrategy() === this.originalBidStrategy) {\r\n return false;\r\n }\r\n if (meetValue === 1) {\r\n return false;\r\n } else if (meetValue === 0) {\r\n return true;\r\n } else { //should not be come here.\r\n return true;\r\n }\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n this.showConversionCountCheckErrorMessage = ko.computed(() => {\r\n return this.checkErrorMessage(\r\n this.meetConversionGoal(),\r\n this.actualBidStrategy() === types.maximizeConversions || this.actualBidStrategy() === types.targetCpa || this.actualBidStrategy() === types.targetRoas,\r\n );\r\n });\r\n\r\n this.showRevenueCheckErrorMessage = ko.computed(() => {\r\n if (isCampaignTargetROASBidStrategyEnabled) {\r\n return this.checkErrorMessage(\r\n this.meetRevenueGoal(),\r\n this.actualBidStrategy() === types.targetRoas || this.actualBidStrategy() === types.maxConversionValue,\r\n );\r\n } else {\r\n return false;\r\n }\r\n });\r\n\r\n this.meetMaxConversionValueGoal = ko.observable(-1); // initialize with -1 to indicated not get odata result yet. 0 means not met and 1 means campaign met the max conversion value goals\r\n\r\n\r\n this.showMaxConversionValueLocationTargetMessage = ko.computed(() => {\r\n if (this.campaignSubType === 'ShoppingSmartAds') {\r\n return false;\r\n }\r\n if (this.isPmax) {\r\n return false;\r\n }\r\n if (this.isSearchCampaignMaxConversionValueEnabled) {\r\n return false;\r\n }\r\n if (isMaximizeConversionValueEnabled && this.selectedBidStrategy() === types.maxConversionValue) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n\r\n this.showManualCpcDeprecationBannerForAudienceCampaign = ko.computed(() => {\r\n if (this.selectedBidStrategy() === types.manual && this.campaignType === 'audience' && !this.isVideo) {\r\n return true;\r\n }\r\n\r\n return false;\r\n });\r\n\r\n // We won't display warning in adgroup or bulk edit case or non-audience campaign\r\n this.showSwitchStrategyWarningMessage = ko.computed(() =>\r\n model.entityType === 'Campaign' &&\r\n this.campaignType === 'audience' && !isXandrServing(this.campaignSubType, this.campaignSettings) &&\r\n this.selectedBidStrategy().toLowerCase() !== this.originalBidStrategy.toLowerCase() && !this.isBulkEdit && !this.isCreation,\r\n );\r\n\r\n // pilot on & search campaign & broad only setting on & not supported strategy options -> block\r\n this.showBroadOnlyErrorMessage = ko.observable(false);\r\n this.isBroadMatchOnlyCampaign = ko.observable(model.isBroadMatchOnlyCampaign);\r\n this.isBroadMatchOnlyCampaign.subscribe((value) => {\r\n if (isBroadOnlyPilotEnabled && !isPredictiveMatchingPilotEnabled && model.entityType === 'Campaign' && this.campaignType === 'search') {\r\n this.showBroadOnlyErrorMessage(value && !BROAD_ONLY_BID_STRATEGY_OPTIONS.has(this.selectedBidStrategy()));\r\n }\r\n });\r\n this.selectedBidStrategy.subscribe((value) => {\r\n if (isBroadOnlyPilotEnabled && !isPredictiveMatchingPilotEnabled && model.entityType === 'Campaign' && this.campaignType === 'search') {\r\n this.showBroadOnlyErrorMessage(this.isBroadMatchOnlyCampaign() && !BROAD_ONLY_BID_STRATEGY_OPTIONS.has(value));\r\n }\r\n });\r\n\r\n if (this.isInitialize === true) {\r\n this.checkConversionTracking();\r\n }\r\n\r\n this.errorMessages = () => {\r\n const maxCpc = [this.errorMessageMaxCpc()];\r\n const targetCpa = [this.errorMessageTargetCpa()];\r\n const targetRoas = [this.errorMessageTargetRoas()];\r\n const maxConversionValue = [this.errorMessageMaxConversionValue()];\r\n const targetImpressionSharePercent = [this.errorMessageTargetImpressionSharePercent()];\r\n const costPerSale = [this.errorMessageCostPerSale()];\r\n const targetCommissionRate = [this.errorMessageTargetCommissionRate()];\r\n\r\n return {\r\n maxCpc,\r\n targetCpa,\r\n targetRoas,\r\n maxConversionValue,\r\n targetImpressionSharePercent,\r\n costPerSale,\r\n targetCommissionRate,\r\n };\r\n };\r\n\r\n this.validate = () => {\r\n this.errorMessageMaxCpc('');\r\n this.errorMessageTargetCpa('');\r\n this.errorMessageTargetRoas('');\r\n this.errorMessageMaxConversionValue('');\r\n this.errorMessageTargetImpressionSharePercent('');\r\n this.errorMessagePortfolioBidStrategy('');\r\n this.errorMessageCostPerSale('');\r\n this.errorMessageTargetCommissionRate('');\r\n\r\n if (this.showConversionCountCheckErrorMessage()) {\r\n return false;\r\n }\r\n\r\n if (this.showRevenueCheckErrorMessage()) {\r\n return false;\r\n }\r\n\r\n if (this.showBroadOnlyErrorMessage()) {\r\n return false;\r\n }\r\n\r\n if (this.selectedBidStrategy() === types.maximizeClicks ||\r\n this.selectedBidStrategy() === types.maximizeConversions ||\r\n this.selectedBidStrategy() === types.targetCpa ||\r\n (this.selectedBidStrategy() === types.targetRoas || (this.isTargetRoasCheckboxSelected() && this.selectedBidStrategy() !== types.maxConversionValue)) ||\r\n this.selectedBidStrategy() === types.targetImpressionShare) {\r\n if (this.checkCPC()) {\r\n const maxCpc = this.maxCpc();\r\n const maxCpcKey = `maxCpc${isBidLessThanFiveCentsForShoppingCampaign(this.campaignType, this.isBulkEdit) ? 'ProductGroup' : 'Keyword'}`;\r\n const result = validateNumber(maxCpc, maxCpcKey, false, false, this.isMaxCpcDirty());\r\n\r\n if (!_.isEmpty(result)) {\r\n this.errorMessageMaxCpc(result);\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n if (this.selectedBidStrategy() === types.targetCpa ||\r\n (this.selectedBidStrategy() === types.maximizeConversions && this.isTargetCpaCheckboxSelected() && (this.isAudienceCampaignMaxConversionsEnabled || isMaxConversionForSscEnabled || isChinaMarketAudienceCampaign))\r\n ) {\r\n const targetCpa = this.targetCpa();\r\n const result = validateNumber(targetCpa, 'targetCpa', false, false, this.selectedBidStrategy() === types.targetCpa ? true : this.isTargetCpaDirty());\r\n\r\n if (!_.isEmpty(result)) {\r\n this.errorMessageTargetCpa(result);\r\n return false;\r\n }\r\n }\r\n\r\n if (isCampaignTargetROASBidStrategyEnabled && this.selectedBidStrategy() === types.targetRoas) {\r\n const targetRoas = this.targetRoas();\r\n const result = validateNumber(targetRoas, 'targetRoas');\r\n\r\n if (!_.isEmpty(result)) {\r\n this.errorMessageTargetRoas(result);\r\n return false;\r\n }\r\n }\r\n\r\n if (this.selectedBidStrategy() === types.maxConversionValue && this.isTargetRoasCheckboxSelected()) {\r\n if (!this.isTargetRoasCheckboxSelected()) {\r\n return true;\r\n }\r\n const targetRoas = this.targetRoas();\r\n const result = validateNumber(targetRoas, 'targetRoas');\r\n\r\n if (!_.isEmpty(result)) {\r\n this.errorMessageTargetRoas(result);\r\n return false;\r\n }\r\n }\r\n\r\n if (isTargetImpressionShareEnabled && this.selectedBidStrategy() === types.targetImpressionShare) {\r\n const targetImpressionShare = this.targetImpressionShare();\r\n const result = validateNumber(targetImpressionShare, 'targetImpressionShare');\r\n\r\n if (!_.isEmpty(result)) {\r\n this.errorMessageTargetImpressionSharePercent(result);\r\n return false;\r\n }\r\n }\r\n\r\n if (isPortfolioBidStrategyEnabled && this.selectedBidStrategy() === types.portfolioBidStrategy) {\r\n const portfolioBidStrategy = this.selectedPortfolioBidStrategy();\r\n\r\n if (!portfolioBidStrategy) {\r\n this.errorMessagePortfolioBidStrategy(this.i18nNewDesign.getString(_TL_('You haven\\'t selected any portfolio bid strategy.')));\r\n return false;\r\n }\r\n }\r\n\r\n if (isCostPerSaleEnabled && this.selectedBidStrategy() === types.costPerSale) {\r\n const costPerSale = this.costPerSale();\r\n let result = validateNumber(costPerSale, 'costPerSale');\r\n\r\n if (this.validateWithBudget) {\r\n const vCps = decimalNumber.fromLocalToFloat(costPerSale);\r\n const vBudget = decimalNumber.fromLocalToFloat(this.budgetAmount);\r\n\r\n if (_.isEmpty(result) && vCps > vBudget) {\r\n result = i18n.getString('BidStrategySetting_Message_Bid_GreaterThanBudget');\r\n }\r\n }\r\n\r\n if (!_.isEmpty(result)) {\r\n this.errorMessageCostPerSale(result);\r\n return false;\r\n }\r\n }\r\n\r\n if (this.selectedBidStrategy() === types.commission) {\r\n const targetCommissionRate = this.targetCommissionRate();\r\n const result = validateNumber(targetCommissionRate, 'targetCommissionRate', true);\r\n\r\n if (!_.isEmpty(result)) {\r\n this.errorMessageTargetCommissionRate(result);\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n this.getValues = () => {\r\n if (isPortfolioBidStrategyEnabled && this.selectedBidStrategy() === types.portfolioBidStrategy) {\r\n const portfolioBidStrategy = this.selectedPortfolioBidStrategy();\r\n\r\n if (portfolioBidStrategy && portfolioBidStrategy.Id) {\r\n return {\r\n BidStrategyId: portfolioBidStrategy.Id,\r\n BidStrategyName: portfolioBidStrategy.Name,\r\n Type: portfolioBidStrategy.Type,\r\n };\r\n } else {\r\n // does not change selected portfolio bid strategy,\r\n // in that case we don't know what's the selected portfolio bid strategy details (like id)\r\n return {};\r\n }\r\n }\r\n\r\n let value = {\r\n Type: this.selectedBidStrategy(),\r\n };\r\n\r\n if (this.selectedBidStrategy() === types.maximizeClicks ||\r\n this.selectedBidStrategy() === types.maximizeConversions ||\r\n this.selectedBidStrategy() === types.targetCpa ||\r\n (this.selectedBidStrategy() === types.targetRoas || this.isTargetRoasCheckboxSelected()) ||\r\n this.selectedBidStrategy() === types.targetImpressionShare) {\r\n if (this.checkCPC()) {\r\n value.MaxCpc = {\r\n Amount: decimalNumber.fromLocalToFloat(this.maxCpc()),\r\n };\r\n }\r\n }\r\n\r\n if (this.selectedBidStrategy() === types.targetCpa || (this.selectedBidStrategy() === types.maximizeConversions && this.isTargetCpaCheckboxSelected())) {\r\n value.TargetCpa = decimalNumber.fromLocalToFloat(this.targetCpa());\r\n }\r\n if (isRSABidStrategyAutoTargetingEnabled && this.showAutoTargeting() && this.checkAutoTargeting()) {\r\n value.AutoTargetingEnabled = true;\r\n }\r\n if ((isCampaignTargetROASBidStrategyEnabled && this.selectedBidStrategy() === types.targetRoas) || (this.selectedBidStrategy() === types.maxConversionValue && this.isTargetRoasCheckboxSelected())) {\r\n value.TargetRoas = decimalNumber.fromLocalToFloat(this.targetRoas()) / this.multiplier;\r\n }\r\n if (isTargetImpressionShareEnabled && this.selectedBidStrategy() === types.targetImpressionShare) {\r\n value.TargetAdPosition = this.targetImpressionShareAdPosition();\r\n value.TargetImpressionShare = decimalNumber.fromLocalToFloat(this.targetImpressionShare());\r\n }\r\n if (this.originalBidStrategy === types.portfolioBidStrategy) {\r\n // If the campaign was associated with portfolio bid strategy, disassociate with it\r\n value.BidStrategyId = 0;\r\n }\r\n\r\n if (this.selectedBidStrategy() === types.costPerSale) {\r\n value.CostPerSale = decimalNumber.fromLocalToFloat(this.costPerSale());\r\n }\r\n\r\n if (this.selectedBidStrategy() === types.maxConversionValue &&\r\n this.campaignSubType !== 'ShoppingSmartAds' && !this.isPmax && !this.isSearchCampaignMaxConversionValueEnabled && !isSearchShoppingWithMaxConversionValue) {\r\n value.TargetRoas = null;\r\n }\r\n\r\n return value;\r\n };\r\n\r\n this.showBidStrategySection = ko.computed(() => {\r\n if (this.forceHideBidStrategySection()) {\r\n return false;\r\n }\r\n\r\n // Hide the bid strategy section in ad group creation and ad group settings for supported campaign types (see shouldEnableManualBiddingDeprecation()). We don't want to hide the section during a bulk edit of ad groups.\r\n // Bulk edit in the ad groups grid for both legacy and new UI also uses this viewmodel for the bid strategy dropdown. We want to show the section (return true) in that case and any other cases.\r\n if (model.entityType === 'AdGroup' && !this.isBulkEdit) {\r\n if (model.isMSStoreAdsGAWorkflow) {\r\n return false;\r\n }\r\n // We should hide bid strategy section in adgroup belonging to Audience campaign\r\n if (this.campaignType === 'audience') {\r\n return false;\r\n }\r\n if (this.campaignBiddingStrategyType === types.costPerSale) {\r\n return false;\r\n }\r\n return !this.shouldEnableManualBiddingDeprecation();\r\n } else {\r\n return true;\r\n }\r\n });\r\n\r\n this.update = function (mtModel) {\r\n if (mtModel.TargetCpa) {\r\n this.isTargetCpaCheckboxSelected(true);\r\n this.targetCpa(decimalNumber.fromFloatToString(mtModel.TargetCpa, 2));\r\n }\r\n if (mtModel.TargetRoas) {\r\n this.isTargetRoasCheckboxSelected(true);\r\n this.targetRoas(decimalNumber.fromFloatToString(mtModel.TargetRoas * this.multiplier, 2));\r\n }\r\n };\r\n}\r\n\r\nexport const testables = {\r\n NumberRange,\r\n};\r\n","import 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\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/bidlandscape');\r\n\r\nexport default class {\r\n constructor(parentItem, parentView) {\r\n this.parentView = parentView;\r\n this.entityType = ko.observable('');\r\n this.suggestedNewValue = ko.observable(_.result(parentItem, 'SuggestedNewValue', ''));\r\n this.currentValue = ko.observable(_.result(parentItem, 'CurrentValue', ''));\r\n this.dataArray = ko.observable([]);\r\n\r\n this.helpId = ko.observable('');\r\n this.showHelp = ko.pureComputed(() => {\r\n return !_.isEmpty(this.helpId());\r\n });\r\n\r\n this.userInput = ko.observable('').extend({\r\n validate: [\r\n validator.custom((value) => {\r\n return !_.isEmpty(value) && decimalNumber.isValid(value, true);\r\n }, i18n.get('ErrorMessage_InputNumericValue'), false),\r\n\r\n validator.custom((value) => {\r\n return decimalNumber.fromLocalToFloat(value) > 0;\r\n }, i18n.get('InputValueGreaterThanZero'), false),\r\n ],\r\n });\r\n\r\n this.currentSelectedId = ko.observable(-1);\r\n this.landscapePointsLength = ko.pureComputed(() => {\r\n return _.size(this.dataArray());\r\n });\r\n this.currentSelectedId.subscribe(() => {\r\n this.parentView.selectionUpdated();\r\n });\r\n this.currentSelectedId.extend({ notify: 'always' });\r\n\r\n this.inputInvalidByUser = ko.observable(false);\r\n this.inputValid = ko.computed({\r\n read: () => {\r\n const notCustomInput = this.currentSelectedId() !== this.landscapePointsLength();\r\n const customInputAndUserNotInvalidIt = this.userInput.isValid() && !this.inputInvalidByUser();\r\n\r\n return notCustomInput || customInputAndUserNotInvalidIt;\r\n },\r\n write: _.noop,\r\n });\r\n\r\n this.inputValid.subscribe((newValue) => {\r\n if (!newValue && !this.userInput.isValid() && !_.isEmpty(this.userInput.errors())) {\r\n this.inputErrorMessage(this.userInput.errors()[0]);\r\n }\r\n });\r\n\r\n this.inputErrorMessage = ko.observable('');\r\n this.radioName = ko.observable(`${_.result(parentItem, 'Id', '')}Radio`);\r\n this.hasData = ko.pureComputed(() => {\r\n return !_.isEmpty(this.dataArray());\r\n });\r\n\r\n this.startDateString = ko.observable('');\r\n this.endDateString = ko.observable('');\r\n this.inSimpleMode = ko.observable(false);\r\n this.isClickGraph = ko.observable(false);\r\n\r\n this.valueToApply = ko.computed({\r\n read: () => {\r\n if (this.currentSelectedId() < this.landscapePointsLength() && this.currentSelectedId() >= 0) {\r\n return this.dataArray()[this.currentSelectedId()].bid;\r\n }\r\n\r\n if (this.currentSelectedId() === this.landscapePointsLength() && this.userInput.isValid()) {\r\n return decimalNumber.fromLocalToFloat(this.userInput());\r\n }\r\n return null;\r\n },\r\n write: _.noop,\r\n });\r\n\r\n this.updatedSelectedIndex = function (index) {\r\n this.currentSelectedId(index);\r\n return true; // so that the action can spread to its radio\r\n }.bind(this);\r\n }\r\n\r\n convertDataFromResposne(dataToShow, hasZeroCurrentPoint) {\r\n let landscapePoints = [],\r\n selectedIndex = -1,\r\n showClick = false,\r\n currentBid = decimalNumber.fromLocalToFloat(this.currentValue()),\r\n suggestedBid = decimalNumber.fromLocalToFloat(this.suggestedNewValue());\r\n\r\n if (!_.isEmpty(dataToShow) && !_.isEmpty(dataToShow.BidLandscapePoints)) {\r\n const hasClick = (dataToShow.CurveType & 2) === 2; // eslint-disable-line\r\n\r\n landscapePoints = _.chain(dataToShow.BidLandscapePoints)\r\n .sortBy((point) => -point.Bid)\r\n .uniq((point) => point.Bid)\r\n .map((point, id) => {\r\n const result = {\r\n impressions: point.Impressions,\r\n impressionsStr: decimalNumber.fromFloatToString(point.Impressions, 0),\r\n mlImpressions: point.MLImpressions,\r\n mlImpressionsStr: decimalNumber.fromFloatToString(point.MLImpressions, 0),\r\n bid: point.Bid,\r\n bidStr: decimalNumber.fromFloatToString(point.Bid, 2),\r\n comment: '',\r\n index: id,\r\n clicks: point.Clicks || 0,\r\n clicksStr: decimalNumber.fromFloatToString(point.Clicks || 0, 0),\r\n cost: point.Cost || 0,\r\n costStr: decimalNumber.fromFloatToString(point.Cost || 0, 2),\r\n };\r\n\r\n if (!hasZeroCurrentPoint && point.Bid === currentBid) {\r\n selectedIndex = selectedIndex < 0 ? id : selectedIndex;\r\n result.comment = `(${i18n.get('Current')})`;\r\n } else if (this.suggestedNewValue() > 0 && point.Bid === suggestedBid) {\r\n selectedIndex = id;\r\n result.comment = i18n.get('Suggested');\r\n }\r\n\r\n showClick = hasClick && point.Clicks > 0 ? true : showClick;\r\n return result;\r\n }).filter((point) => {\r\n if (point.bid === 0 && hasZeroCurrentPoint) { // for adgroup bid landscape, bid 0 means current\r\n this.customBidCurrentPoint(point);\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }).value();\r\n\r\n selectedIndex = selectedIndex < 0 && !_.isEmpty(dataToShow.BidLandscapePoints) ? 0 : selectedIndex;\r\n }\r\n return {\r\n dataArray: landscapePoints,\r\n selectedIndex,\r\n showClick,\r\n };\r\n }\r\n\r\n convertDataForBidLandscape(response) {\r\n if (!_.isEmpty(response.ChartData)) {\r\n const data = this.convertDataFromResposne(response.ChartData);\r\n\r\n this.isClickGraph(data.showClick);\r\n this.dataArray(data.dataArray);\r\n this.currentSelectedId(data.selectedIndex);\r\n this.startDateString(response.ChartData.StartDateString);\r\n this.endDateString(response.ChartData.EndDateString);\r\n }\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport BidLandscapeModel from '@bingads-webui-campaign-legacy/bidlandscape/viewmodel/bid-landscape';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/bidlandscape');\r\n\r\nexport default class extends BidLandscapeModel {\r\n constructor(parentItem, parentView) {\r\n super(parentItem, parentView);\r\n\r\n this.entityType('keyword');\r\n this.tableBidText = ko.computed(() => {\r\n return i18n.get('BidLandscape_kpiMaxCpC');\r\n });\r\n }\r\n}\r\n","import decimalNumber from '@bingads-webui-component-legacy/humanize/decimal';\r\n\r\nconst colors = {\r\n labelColor: '#B3B3B3',\r\n lineColor: '#EAECEE',\r\n pointHoverColor: 'rgb(230, 110, 0)',\r\n makerColor: '#E66400',\r\n makerFillColor: '#FFFFFF',\r\n seriesColor: '#009AD9',\r\n adgroupCurrentPointColor: '#606060',\r\n markerPointColor: '#aaff99',\r\n};\r\n\r\nfunction getSlideChartOptions(clickGraph) {\r\n return {\r\n series: { animation: false },\r\n chart: {\r\n type: 'line',\r\n animation: false,\r\n },\r\n title: { text: null },\r\n xAxis: {\r\n allowDecimals: !clickGraph,\r\n labels: {\r\n enabled: true,\r\n align: 'left',\r\n y: 20,\r\n style: {\r\n color: colors.labelColor,\r\n fontWeight: 'bold',\r\n fontSize: '12px',\r\n },\r\n formatter() {\r\n return clickGraph ? decimalNumber.fromFloatToString(this.value, 0) : decimalNumber.fromFloatToString(this.value, 2); // eslint-disable-line\r\n },\r\n },\r\n title: { text: null },\r\n categories: null,\r\n showGridlines: true,\r\n gridLineWidth: 1,\r\n gridLineColor: colors.lineColor,\r\n lineWidth: 1,\r\n lineColor: colors.lineColor,\r\n startOnTick: true,\r\n endOnTick: true,\r\n tickPositioner() {\r\n let positions = [],\r\n tick = this.dataMin, // eslint-disable-line\r\n increment = (this.dataMax - this.dataMin) / 3; // eslint-disable-line\r\n\r\n positions.push(this.dataMin); // eslint-disable-line\r\n for (let i = 1; i <= 2; i++) {\r\n tick += increment;\r\n positions.push(clickGraph ? Math.ceil(tick) : Math.ceil(tick * 100) / 100);\r\n }\r\n\r\n positions.push(clickGraph ? Math.ceil(this.dataMax) : Math.ceil(this.dataMax * 100) / 100); // eslint-disable-line\r\n return positions;\r\n },\r\n },\r\n yAxis: {\r\n allowDecimals: clickGraph,\r\n opposite: true,\r\n title: { text: null },\r\n tickPositioner() {\r\n let positions = [],\r\n increment = (this.dataMax - this.dataMin) / 2; // eslint-disable-line\r\n\r\n positions.push(this.dataMin); // eslint-disable-line\r\n\r\n positions.push(clickGraph ? Math.ceil((this.dataMin + increment) * 100) / 100 : Math.ceil(this.dataMin + increment)); // eslint-disable-line\r\n positions.push(clickGraph ? Math.ceil(this.dataMax * 100) / 100 : Math.ceil(this.dataMax)); // eslint-disable-line\r\n return positions;\r\n },\r\n labels: {\r\n enabled: true,\r\n step: 2,\r\n formatter() {\r\n return clickGraph ? decimalNumber.fromFloatToString(this.value, 2) : decimalNumber.fromFloatToString(this.value, 0); // eslint-disable-line\r\n },\r\n style: {\r\n color: colors.labelColor,\r\n fontWeight: 'bold',\r\n fontSize: '12px',\r\n },\r\n align: 'left',\r\n },\r\n showGridlines: true,\r\n gridLineWidth: 1,\r\n gridLineColor: colors.lineColor,\r\n lineWidth: 1,\r\n lineColor: colors.lineColor,\r\n startOnTick: true,\r\n endOnTick: false,\r\n },\r\n legend: { enabled: false },\r\n credits: { enabled: false }, ////get rid of hightcharts.com\r\n tooltip: {\r\n enabled: false,\r\n crosshairs: {\r\n enabled: true,\r\n color: '#E66400',\r\n dashStyle: 'longdash',\r\n },\r\n },\r\n plotOptions: {\r\n line: {\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n marker: {\r\n enabled: true,\r\n },\r\n enableMouseTracking: true,\r\n },\r\n series: {\r\n animation: false,\r\n grouping: false,\r\n shadow: false,\r\n marker: {\r\n fillColor: colors.makerColor,\r\n radius: 3,\r\n lineWidth: 1,\r\n lineColor: colors.makerColor,\r\n states: {\r\n hover: {\r\n radius: 4.5,\r\n },\r\n },\r\n },\r\n color: colors.seriesColor,\r\n borderWidth: 0,\r\n pointWidth: 1,\r\n lineWidth: 2,\r\n states: {\r\n hover: {\r\n color: colors.pointHoverColor,\r\n },\r\n },\r\n point: { events: {} },\r\n },\r\n },\r\n };\r\n}\r\n\r\nfunction getBidlandscapeChartOptions(isClickGraph) {\r\n return getSlideChartOptions(isClickGraph);\r\n}\r\n\r\nfunction getAdgroupCurrentPointSetting() {\r\n return {\r\n color: colors.markerPointColor,\r\n marker: {\r\n enable: true,\r\n symbol: 'circle',\r\n radius: 4.5,\r\n lineWidth: 1,\r\n lineColor: colors.adgroupCurrentPointColor,\r\n fillColor: colors.adgroupCurrentPointColor,\r\n },\r\n };\r\n}\r\n\r\nfunction getMakerSetting() {\r\n return {\r\n marker: {\r\n enable: true,\r\n radius: 4.5,\r\n lineWidth: 1,\r\n lineColor: colors.makerColor,\r\n fillColor: colors.makerFillColor,\r\n },\r\n color: colors.markerPointColor,\r\n };\r\n}\r\n\r\nexport default {\r\n getBidlandscapeChartOptions,\r\n getMakerSetting,\r\n getAdgroupCurrentPointSetting,\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/bidlandscape/viewmodel/bid-landscape';\r\nimport highchartsConfig from '@bingads-webui-campaign-legacy/bidlandscape/viewmodel/highcharts-config';\r\nimport 'highcharts';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/bidlandscape');\r\n\r\nfunction percentileCeil(original) {\r\n const floor = Math.floor(original * 100) / 100;\r\n\r\n return floor + 0.01;\r\n}\r\n\r\n/**\r\n * @fires update\r\n * @fires input\r\n * @fires apply\r\n * @fires cancel\r\n */\r\nexport default class BidLandscape extends Backbone.View {\r\n get events() {\r\n return {\r\n 'click .btn-primary': 'onApply',\r\n 'click .btn-default': 'onCancel',\r\n 'click .closeimage': 'onCancel',\r\n };\r\n }\r\n\r\n initialize({\r\n parentItem = {},\r\n viewModel = null,\r\n helpId = null,\r\n inSimpleMode = false,\r\n dataToShow = {},\r\n } = {}) {\r\n this.parentItem = parentItem;\r\n this.viewModel = viewModel || new ViewModel(this.parentItem, this);\r\n if (!_.isEmpty(helpId)) {\r\n this.viewModel.helpId(helpId);\r\n }\r\n this.viewModel.i18n = i18n;\r\n this.slideChartOptions = null;\r\n this.viewModel.inSimpleMode(inSimpleMode);\r\n\r\n this.viewModel.valueToApply.subscribe((value) => {\r\n /**\r\n * update event.\r\n *\r\n * @event BidLandscape#update\r\n * @type {object}\r\n * @property {?string} valueToApply - the bid value to apply.\r\n * @property {boolean} inputValid - the bid is valid or not.\r\n */\r\n this.trigger('update', {\r\n valueToApply: value,\r\n inputValid: this.viewModel.inputValid(),\r\n });\r\n if (this.viewModel.currentSelectedId() === this.viewModel.landscapePointsLength()) {\r\n /**\r\n * user input event.\r\n *\r\n * @event BidLandscape#input\r\n * @type {string}\r\n */\r\n this.trigger('input', this.viewModel.userInput());\r\n }\r\n });\r\n\r\n this.dataToShow = dataToShow;\r\n }\r\n\r\n /**\r\n * Setup template.\r\n * @abstract\r\n * @returns {void}\r\n */\r\n prepareView() {\r\n throw new TypeError('sub class should implement this function');\r\n }\r\n\r\n /**\r\n * Need extra chart series preparation or not, if need, this is an series data array.\r\n * @abstract\r\n * @returns {?array} - extra chart series data.\r\n */\r\n prepareExtraSeries() {\r\n return null;\r\n }\r\n\r\n onApply() {\r\n /**\r\n * apply event.\r\n *\r\n * @event BidLandscape#apply.\r\n */\r\n this.trigger('apply');\r\n }\r\n\r\n onCancel() {\r\n /**\r\n * cancel event.\r\n *\r\n * @event BidLandscape#cancel.\r\n */\r\n this.trigger('cancel');\r\n }\r\n\r\n inputValueInvalid(msg) {\r\n this.viewModel.inputInvalidByUser(!_.isEmpty(msg));\r\n if (!_.isEmpty(msg)) {\r\n this.viewModel.inputErrorMessage(msg);\r\n }\r\n }\r\n\r\n render() {\r\n this.prepareView();\r\n this.viewModel.convertDataForBidLandscape(this.dataToShow);\r\n this.initBidLandscapeCharts();\r\n\r\n ko.applyBindings(this.viewModel, this.el);\r\n this.delegateEvents();\r\n return this;\r\n }\r\n\r\n close() {\r\n this.remove();\r\n }\r\n\r\n getTableKpiIndex4Point(data, clickEvent) {\r\n const kpiIndexInSortOrder = clickEvent && clickEvent === 'true' ? data.index : data.point.index;\r\n\r\n return this.viewModel.landscapePointsLength() - 1 - kpiIndexInSortOrder;\r\n }\r\n\r\n selectionUpdated() {\r\n // trigger keydown each time select custom input\r\n if (this.viewModel.currentSelectedId() >= this.viewModel.landscapePointsLength()) {\r\n this.$('.bidlandscape-input').trigger('keydown');\r\n }\r\n\r\n this.$('.bidlandscape-chart').highcharts(this.initSlideChartForBid()); //render landscape chart\r\n }\r\n\r\n landscapePointClicked(event, pointClicked) {\r\n const tableKPiIndex = this.getTableKpiIndex4Point(pointClicked, 'true');\r\n\r\n if (_.isNumber(tableKPiIndex)) {\r\n this.viewModel.currentSelectedId(tableKPiIndex);\r\n }\r\n }\r\n\r\n initBidLandscapeCharts() {\r\n this.slideChartOptions = highchartsConfig.getBidlandscapeChartOptions(this.viewModel.isClickGraph());\r\n // add click event for highcharts\r\n const self = this;\r\n\r\n this.slideChartOptions.plotOptions.series.point.events.click = function (event) {\r\n event.stopImmediatePropagation();\r\n self.landscapePointClicked(event, this);\r\n };\r\n }\r\n\r\n clickCurrentRow() {\r\n this.selectionUpdated();\r\n }\r\n\r\n initSlideChartForBid() {\r\n this.slideChartOptions = this.slideChartOptions || highchartsConfig.getBidlandscapeChartOptions(this.viewModel.isClickGraph());\r\n // draw chart\r\n let maxIndex = -1;\r\n let maxX = 0,\r\n maxY = 0,\r\n minX = -1,\r\n minY = -1;\r\n const xAxisName = this.viewModel.isClickGraph() ? i18n.get('KPI_EstClick') : this.viewModel.tableBidText();\r\n const title = this.viewModel.isClickGraph() ? i18n.get('KPI_EstCost') : i18n.get('KPI_EstImp');\r\n let graphPoint;\r\n\r\n this.slideChartOptions.xAxis.title.text = xAxisName.toUpperCase();\r\n this.slideChartOptions.yAxis.title.text = title.toUpperCase();\r\n const seriesData = _.map(this.viewModel.dataArray(), (point, index) => {\r\n if (point.bid > 0) {\r\n graphPoint = {\r\n x: this.viewModel.isClickGraph() ? point.clicks : point.bid,\r\n y: this.viewModel.isClickGraph() ? point.cost : point.impressions,\r\n index, // index in tableData\r\n };\r\n\r\n if (maxIndex < 0) {\r\n maxX = graphPoint.x;\r\n maxY = graphPoint.y;\r\n maxIndex = index;\r\n }\r\n\r\n minX = minX > 0 && minX <= graphPoint.x ? minX : graphPoint.x;\r\n minY = minY > 0 && minY <= graphPoint.y ? minY : graphPoint.y;\r\n\r\n if ((this.viewModel.currentSelectedId() >= 0) && (index === this.viewModel.currentSelectedId())) {\r\n graphPoint = _.extend(graphPoint, highchartsConfig.getMakerSetting());\r\n }\r\n }\r\n return graphPoint;\r\n });\r\n\r\n this.slideChartOptions.series = [];\r\n this.slideChartOptions.series.push({\r\n name: xAxisName,\r\n data: seriesData.reverse(),\r\n });\r\n\r\n // let son class finish extra series preparation\r\n const extraSeries = this.prepareExtraSeries();\r\n\r\n if (_.isObject(extraSeries)) {\r\n this.slideChartOptions.series.push({\r\n data: extraSeries,\r\n });\r\n }\r\n\r\n this.slideChartOptions.xAxis.min = minX;\r\n this.slideChartOptions.yAxis.min = minY;\r\n this.slideChartOptions.xAxis.max = percentileCeil(maxX);\r\n this.slideChartOptions.yAxis.max = percentileCeil(maxY);\r\n\r\n return this.slideChartOptions;\r\n }\r\n\r\n hasData() {\r\n return this.viewModel.hasData();\r\n }\r\n\r\n valueToApply() {\r\n return this.viewModel.valueToApply();\r\n }\r\n\r\n inputValid() {\r\n return this.viewModel.inputValid();\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport template from '@bingads-webui-campaign-legacy/bidlandscape/template/keywordBidLandscape.pug';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/bidlandscape/viewmodel/keyword';\r\nimport BaseView from '@bingads-webui-campaign-legacy/bidlandscape/view/bid-landscape';\r\n\r\nexport default class KeywordBidLandscape extends BaseView {\r\n initialize({\r\n parentItem = {},\r\n helpId = null,\r\n inSimpleMode = false,\r\n dataToShow = {},\r\n }) {\r\n super.initialize({\r\n viewModel: new ViewModel(parentItem, this),\r\n parentItem,\r\n helpId,\r\n inSimpleMode,\r\n dataToShow,\r\n });\r\n }\r\n\r\n prepareView() {\r\n this.$el.append(template(_.extend(this.viewModel, {\r\n Id: this.parentItem.Id,\r\n EntityName: this.parentItem.KeywordName,\r\n })));\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport preferencesService from '@bingads-webui-component-legacy/preference/service/index';\r\n\r\n//Adding instrumentation to log additional information for cachemiss sorting issue.\r\nimport instrumentation from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\n\r\nexport function handleSortChange(changes, view, sortInfoKey) {\r\n if (_.has(changes, 'sortableHeader')) {\r\n const orderby = _.result(changes.query, 'orderby') ||\r\n _.result(view.get('query'), 'orderby') ||\r\n _.chain(view)\r\n .result('dataSource')\r\n .result('dataSource')\r\n .result('orderby')\r\n .value();\r\n const sortableHeader = changes.sortableHeader;\r\n const preference = { sortInfo: { orderby, sortableHeader } };\r\n\r\n // Remove once cachemiss sorting issue is fixed.\r\n const isDataFetchManagerEnabled = view.get('isDataFetchManagerSource');\r\n\r\n if (!orderby && isDataFetchManagerEnabled === true) {\r\n const currentsortableHeader = changes.sortableHeader;\r\n const currentQuery = _.omit(_.result(changes, 'query'), 'options');\r\n const queryFromView = _.omit(view.get('query'), 'options');\r\n\r\n instrumentation.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, 'cachemiss-handleSortChange', JSON.stringify({ currentQuery, queryFromView, currentsortableHeader}));\r\n }\r\n\r\n const UIGrids = ['PerformanceGrid', 'summary_tab_campaign', 'summary_tab_ad_group', 'summary_tab_ad'];\r\n const isUIGrid = UIGrids.includes(sortInfoKey);\r\n\r\n // TODO: investigate why handleSortChange gets called automatically when redirecting to Ad groups page\r\n if (isUIGrid) {\r\n instrumentation.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, 'grid-column-sort', JSON.stringify({sortInfoKey, sortableHeader}));\r\n }\r\n preferencesService.setAtUserLevel({ Name: `WebApp.CampaignUI.${sortInfoKey}`, Data: preference });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport { defineGridPlugin } from '@bingads-webui/projection-grid-plugin';\r\nimport { getLoadDirectlyLinkedAccountsPreference, setLoadDirectlyLinkedAccounts } from '@bingads-webui-component-legacy/bingads-grid/service/linked-accounts-preferences';\r\n\r\nconst selectorId = 'accountsSelection_selector';\r\n\r\nexport default defineGridPlugin('customerHierarchy', [\r\n 'dataSource',\r\n 'gridView',\r\n 'config',\r\n 'toolbar',\r\n], (\r\n dataSource,\r\n gridView,\r\n config,\r\n toolbar,\r\n) => {\r\n const originalQuery = dataSource.query;\r\n const gridName = config.name;\r\n const { isForVNext, i18n } = _.result(config.plugins, 'customerHierarchy', {});\r\n\r\n dataSource.query = (params) => {\r\n return getLoadDirectlyLinkedAccountsPreference(gridName).then(({ loadDirectlyLinkedAccounts }) => {\r\n const options = params.options;\r\n let queryParams = params;\r\n\r\n if (options.entitySet) {\r\n const entitySet = edm.root.identifyEntitySet(options.entitySet.toJSON());\r\n const action = entitySet.navigation.source;\r\n const { parameters } = entitySet.navigation;\r\n\r\n _.extend(parameters, { isCustomerHierachyRequest: true, loadDirectlyLinkedAccounts });\r\n queryParams = _.defaults({\r\n options: _.defaults({\r\n entitySet: action.$call(parameters),\r\n }, options),\r\n }, queryParams);\r\n }\r\n\r\n gridView.set({ queryParams });\r\n return originalQuery.call(dataSource, queryParams);\r\n });\r\n };\r\n\r\n if (isForVNext) {\r\n const toolbarEditor = toolbar.gridToolbarGroup.toolbarWithItem();\r\n\r\n const menuItems = {\r\n showAllAccounts: {\r\n key: 'accountsSelection_showAllAccounts',\r\n text: i18n.getString('AccountsSelection_showAllAccounts'),\r\n loadDirectlyLinkedAccounts: false,\r\n },\r\n showDirectlyLinkedAccounts: {\r\n key: 'accountsSelection_showLinkedAccounts',\r\n text: i18n.getString('AccountsSelection_showDirectlyLinkedAccounts'),\r\n loadDirectlyLinkedAccounts: true,\r\n },\r\n };\r\n\r\n const items = _.map(menuItems, ({ key, text, loadDirectlyLinkedAccounts }) => ({\r\n key,\r\n text,\r\n onClick: () => {\r\n toolbarEditor.update({\r\n id: selectorId,\r\n button: { text },\r\n });\r\n\r\n setLoadDirectlyLinkedAccounts(gridName, loadDirectlyLinkedAccounts.toString()).then(() => {\r\n gridView.refresh(true);\r\n });\r\n },\r\n }));\r\n\r\n getLoadDirectlyLinkedAccountsPreference(gridName).then(({ loadDirectlyLinkedAccounts: rawValue }) => {\r\n // Due to the way the value is set, it can be a string or a bool.\r\n const loadDirectlyLinkedAccounts = _.isBoolean(rawValue) ? rawValue : rawValue === 'true';\r\n const customerHierarchySelector = {\r\n id: selectorId,\r\n type: 'dropdown',\r\n button: {\r\n text: _.findWhere(menuItems, { loadDirectlyLinkedAccounts }).text,\r\n },\r\n menu: {\r\n items,\r\n },\r\n };\r\n\r\n toolbarEditor.update(customerHierarchySelector);\r\n });\r\n }\r\n});\r\n","import {\r\n inlineDownloadPlugin,\r\n inlineDownloadWithoutSegmentPlugin as originalInlineDownloadWithoutSegmentPlugin,\r\n inlineDownloadWithoutFilterstatePlugin as withoutFilterStatePlugin,\r\n} from '@bingads-webui-campaign/projection-grid-inline-download';\r\nimport { merge } from '@bingads-webui-universal/primitive-utilities';\r\nimport globalConfig from '@bingads-webui-component-legacy/config/index';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport { DownloadViewV1, DownloadViewV2 } from '@bingads-webui-campaign-legacy/griddownload/view/adapter';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/bingadsgrid');\r\n\r\nfunction wrapPlugin(originalPlugin) {\r\n return (definePlugin) => originalPlugin((name, dependencies, callback) => {\r\n return definePlugin(name, dependencies, (config, ...restDependencies) => {\r\n const Permissions = globalConfig.get('permissions') || {};\r\n const {\r\n isInlineDownloadReportV2Enabled = Permissions.IsInlineDownloadReportV2Enabled,\r\n } = config.plugins.inlineDownload;\r\n const ReportEmailRule = state.get('$ReportEmailRule');\r\n\r\n state.unset('$ReportEmailRule');\r\n\r\n return callback(merge({\r\n plugins: {\r\n inlineDownload: {\r\n i18n,\r\n DownloadView: isInlineDownloadReportV2Enabled ? DownloadViewV2 : DownloadViewV1,\r\n ReportEmailRule,\r\n },\r\n },\r\n }, config), ...restDependencies);\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * @typedef InlineDownloadConfig\r\n * @type {object}\r\n * @property {string} button - The id of the download button.\r\n * It must match the download button id defined in toolbar plugin.\r\n * @property {boolean} isAvailable - Whether the download feature is enabled\r\n * @property {string[]} segmentationTypes\r\n * @property {string} entity\r\n * @property {string} gridId\r\n * @property {Object.} columns - DEPRECATED: The override column config.\r\n * add your column-property mapping into @bingads-webui-campaign/inline-download-grids-metadata\r\n *\r\n * @deprecated\r\n * @typedef InlineDownloadColumns\r\n * @type {InlineDownloadColumnConfig|InlineDownloadColumnConfig[]}\r\n *\r\n * @deprecated\r\n * @typedef InlineDownloadColumnConfig\r\n * @type {object}\r\n * @property {string} property - The property path in form of 'foo/bar'.\r\n * @property {string} title - The localized column header string.\r\n */\r\n\r\nexport default wrapPlugin(inlineDownloadPlugin);\r\n\r\nexport const inlineDownloadWithoutSegmentPlugin = wrapPlugin(originalInlineDownloadWithoutSegmentPlugin);\r\n\r\nexport const inlineDownloadWithoutFilterStatePlugin = wrapPlugin(withoutFilterStatePlugin);\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport React from 'react';\r\nimport ReactDom from 'react-dom';\r\nimport { getPrimaryContacts, postPrimaryContactUpdate } from '@bingads-webui-campaign-legacy/primary-contact/index';\r\nimport { defineGridPlugin } from '@bingads-webui/projection-grid-plugin';\r\nimport { EditPrimaryContact } from '@bingads-webui-cc-react/edit-primary-contact';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!@bingads-webui-cc-react/edit-primary-contact');\r\n\r\n// This plugin responds to the event of clicking \"bulk edit primary contacts\" in Management Grid\r\n// The plugin will first make a ajax call to CCUI to see if selected accounts are eligible to make the change\r\n// and get the primary contact list for submitting.\r\nexport default defineGridPlugin(\r\n 'primaryContactBulkEditor',\r\n ['gridView'], (gridView, pulginConfig ) => {\r\n\r\n const containerId = 'BulkEditContainer';\r\n let editorContainer;\r\n let toolbar;\r\n let isEditing = false;\r\n\r\n if (pulginConfig && pulginConfig.existingContainer && $(pulginConfig.existingContainer).length) {\r\n editorContainer = $(pulginConfig.existingContainer);\r\n } else {\r\n editorContainer = $(`
`);\r\n editorContainer.hide();\r\n $('.bingadsgrid').prepend(editorContainer);\r\n }\r\n editorContainer.empty();\r\n\r\n function showToolbar() {\r\n toolbar.show();\r\n // In Management tab the grid itself has fixed height so hide it here.\r\n // TODO: Bug#1895168 to see if we have better way to hide the toolbar.\r\n $('.grid-toolbar').show();\r\n }\r\n\r\n function hideToolbar() {\r\n // In Management tab the grid itself has fixed height so hide/show it here.\r\n // TODO: Bug#1895168 to see if we have better way to hide the toolbar.\r\n $('.grid-toolbar').hide();\r\n toolbar.hide();\r\n }\r\n\r\n function hide() {\r\n editorContainer.slideUp('normal', () => ReactDom.unmountComponentAtNode(editorContainer[0]));\r\n showToolbar();\r\n isEditing = false;\r\n }\r\n\r\n const afterUpdate = ({result, callBack}) => {\r\n if (result.IsSuccess) {\r\n window.App.views.alertCenter.showConfirmation(result.Message);\r\n hide();\r\n callBack();\r\n }\r\n };\r\n\r\n const renderPrimaryContactReactComponent = (props) => {\r\n ReactDom.render(\r\n React.createElement(EditPrimaryContact, props, null),\r\n editorContainer[0]\r\n );\r\n };\r\n\r\n const renderEditComponent = ({cid, uid, callBack, data}) => {\r\n let props = {\r\n contacts: data.contacts,\r\n selected: data.selectedUser || {},\r\n warning: data.warningMessage || '',\r\n i18n,\r\n };\r\n\r\n props.onSelect = (userId) => {\r\n props.selected = _.findWhere(data.contacts, { 'Value': userId });\r\n renderPrimaryContactReactComponent(props);\r\n };\r\n\r\n props.onSubmit = () => {\r\n const accountIds = _.pluck(gridView.selectedItems(), 'Id');\r\n\r\n postPrimaryContactUpdate(cid, uid, accountIds, props.selected.Value)\r\n .then((result) => afterUpdate({result, callBack}));\r\n };\r\n\r\n props.onCancel = () => hide();\r\n\r\n renderPrimaryContactReactComponent(props);\r\n hideToolbar();\r\n editorContainer.slideDown();\r\n isEditing = true;\r\n };\r\n\r\n function show({cid, uid, callBack}) {\r\n if (gridView.selectedItems().length) {\r\n if (toolbar === undefined) {\r\n throw new Error('Call registerToolbar of this plug in before show the editor.');\r\n }\r\n\r\n const accountIds = _.pluck(gridView.selectedItems(), 'Id');\r\n\r\n\r\n getPrimaryContacts(cid, uid, accountIds)\r\n .then(\r\n (data) => {\r\n if (data.Alert && data.AlertContent) {\r\n window.App.views.alertCenter.showWarning(data.AlertContent);\r\n } else {\r\n renderEditComponent({cid, uid, callBack, data});\r\n }\r\n }\r\n );\r\n } else {\r\n hide();\r\n }\r\n }\r\n\r\n function registerToolbar(targetToolbar) {\r\n toolbar = targetToolbar;\r\n }\r\n\r\n function isInEditing() {\r\n return isEditing;\r\n }\r\n\r\n return { registerToolbar, isInEditing, show };\r\n }\r\n);\r\n","import _ from 'underscore';\r\n\r\n// this function can only handle float or int as input\r\n// could not handle local numbers in string\r\nexport const countNumberOfDigits = (num) => {\r\n const decimal = num.toString().split('.')[1];\r\n\r\n return _.isUndefined(decimal) ? 0 : decimal.length;\r\n};\r\n","import config from '@bingads-webui-component-legacy/config/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/competition-tab');\r\n\r\n/**\r\n * Monetary, always with two decimal places\r\n */\r\nconst monetaryOptions = {\r\n compact: 'short',\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2,\r\n};\r\nconst currencyCode = config.get('AccountCurrencyCode');\r\n\r\nexport const formatCost = (value) =>\r\n i18n.formatCurrency(value, currencyCode, monetaryOptions);\r\n","import _ from 'underscore';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\n\r\nexport function getTrafficEstimationOp(adGroup, bid, budget, locationIds = [190], languages = [] ) {\r\n let adGroupRequests;\r\n\r\n if (_.isArray(adGroup)) {\r\n adGroupRequests = _.map(adGroup, (item) => {\r\n return {\r\n 'AdGroupName': item.Name,\r\n 'KeywordTrafficEstimateParameters': _.map(item.Keywords, (keyword) => {\r\n return {\r\n 'MatchType': keyword.MatchType,\r\n 'Text': keyword.Text,\r\n };\r\n }),\r\n 'MaxCPC': decimal.fromLocalToFloat(item.Bid),\r\n };\r\n });\r\n } else {\r\n adGroupRequests = [{\r\n 'AdGroupName': adGroup.Name,\r\n 'KeywordTrafficEstimateParameters': _.map(adGroup.Keywords, (keyword) => {\r\n return {\r\n 'MatchType': keyword.MatchType,\r\n 'Text': keyword.Text,\r\n };\r\n }),\r\n 'MaxCPC': decimal.fromLocalToFloat(bid),\r\n }];\r\n }\r\n\r\n const targetings = _\r\n .chain(locationIds)\r\n .compact()\r\n .map((locationId) => {\r\n return {\r\n '@odata.type': '#Model.TrafficEstimate.LocationTargeting',\r\n 'LocationId': locationId,\r\n };\r\n }).value();\r\n\r\n // send it when trafficestimation support more than one language in multi-language pilot\r\n if (!_.isEmpty(languages)) {\r\n _.each(languages, (language) => {\r\n targetings.push({\r\n '@odata.type': '#Model.TrafficEstimate.LanguageTargeting',\r\n 'Language': language,\r\n });\r\n });\r\n }\r\n\r\n let op = {\r\n data: {\r\n 'CampaignTrafficEstimate': {\r\n 'AdGroupTrafficEstimateParameters': adGroupRequests,\r\n 'Budget': decimal.fromLocalToFloat(budget),\r\n 'Targetings': targetings,\r\n },\r\n },\r\n path: 'AdInsight/V2',\r\n // host: 'http://stcvm-607:823/', // for local debug only\r\n };\r\n\r\n return op;\r\n}\r\n\r\nexport function getDailyBudgetAmount(budgetObj) {\r\n return budgetObj.Type === 'Monthly' ? budgetObj.Amount / 30 : parseFloat(budgetObj.Amount);\r\n}\r\n","import _ from 'underscore';\r\n\r\nfunction extract(formattedEstimationOp) {\r\n const adGroups = _.map(\r\n formattedEstimationOp.data.CampaignTrafficEstimate.AdGroupTrafficEstimateParameters,\r\n (adGroup) => {\r\n return {\r\n Keywords: adGroup.KeywordTrafficEstimateParameters,\r\n Bid: adGroup.MaxCPC,\r\n };\r\n },\r\n );\r\n const adGroupsWithoutBid = _.map(\r\n formattedEstimationOp.data.CampaignTrafficEstimate.AdGroupTrafficEstimateParameters,\r\n (adGroup) => {\r\n return {\r\n Keywords: adGroup.KeywordTrafficEstimateParameters,\r\n };\r\n },\r\n );\r\n const targetings = formattedEstimationOp.data.CampaignTrafficEstimate.Targetings;\r\n const locationIds = _\r\n .chain(targetings)\r\n .map((targeting) => targeting.LocationId)\r\n .compact()\r\n .value();\r\n const languages = _\r\n .chain(targetings)\r\n .map((targeting) => targeting.Language)\r\n .compact()\r\n .value();\r\n\r\n return {\r\n adGroups,\r\n locationIds,\r\n languages,\r\n adGroupsWithoutBid,\r\n };\r\n}\r\n\r\nexport function budgetSuggestionOpFormatter(formattedEstimationOp, params) {\r\n const extractedOp = extract(formattedEstimationOp);\r\n\r\n return {\r\n data: {\r\n Request: {\r\n Campaigns: [{\r\n AdGroups: extractedOp.adGroups,\r\n CurrentBudget: params.budget,\r\n InitialBudget: params.initBudget,\r\n Languages: extractedOp.languages,\r\n LocationIds: extractedOp.locationIds,\r\n }],\r\n },\r\n },\r\n path: formattedEstimationOp.path,\r\n };\r\n}\r\n\r\nexport function bidSuggestionOpFormatter(formattedEstimationOp) {\r\n const extractedOp = extract(formattedEstimationOp);\r\n\r\n return {\r\n data: {\r\n Request: {\r\n AdGroups: extractedOp.adGroupsWithoutBid,\r\n Languages: extractedOp.languages,\r\n LocationIds: extractedOp.locationIds,\r\n },\r\n },\r\n path: formattedEstimationOp.path,\r\n };\r\n}\r\n","import getTrafficEstimation from '@bingads-webui-campaign-legacy/budget/shared/getTrafficEstimation';\r\nimport { bidSuggestionOpFormatter, budgetSuggestionOpFormatter } from '@bingads-webui-campaign-legacy/budget/shared/bidBudgetSuggestionFormatter';\r\n\r\nconst bidSuggestionEndpoint = '/Customers(:advertisercustomer_id)/Accounts(:account_id)/Default.CampaignTrafficEstimateWithSuggestedBid';\r\nconst budgetSuggestionEndpoint = '/Customers(:advertisercustomer_id)/Accounts(:account_id)/Default.GetEstimatedBudgetByCampaigns';\r\n\r\nfunction getSuggestion(params, callbacks, options, timestamp, isBid) {\r\n const endpoint = isBid ? bidSuggestionEndpoint : budgetSuggestionEndpoint;\r\n const formatter = isBid ? bidSuggestionOpFormatter : budgetSuggestionOpFormatter;\r\n\r\n return getTrafficEstimation(params, callbacks, options, endpoint, formatter, timestamp);\r\n}\r\n\r\nexport function getBidSuggestion(params, callbacks, options, timestamp) {\r\n return getSuggestion(params, callbacks, options, timestamp, true);\r\n}\r\n\r\nexport function getBudgetSuggestion(params, callbacks, options, timestamp) {\r\n return getSuggestion(params, callbacks, options, timestamp, false);\r\n}\r\n","import _ from 'underscore';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport uiBlocker from '@bingads-webui-component-legacy/uiblocker/index';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport { getTrafficEstimationOp } from '@bingads-webui-campaign-legacy/budget/shared/formatter';\r\nimport { getSupportedLocationIds } from '@bingads-webui-campaign-legacy/location-targets/util/filters';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nconst MAX_KEYWORDS_COUNT = 1000;\r\nconst MAX_KEYWORD_LENGTH = 100;\r\nconst MAX_LOCATION_IDS_COUNT = 2000;\r\nconst estimationEndpoint = '/Customers(:advertisercustomer_id)/Accounts(:account_id)/Default.CampaignTrafficEstimate';\r\n\r\n// adinsight has limitation: keyword's length < 200, but follows ui limitation which is 100\r\nfunction isKeywordLengthInvalid(op) {\r\n return _.some(op.data.CampaignTrafficEstimate.AdGroupTrafficEstimateParameters, (adgroup) => {\r\n return _.some(adgroup.KeywordTrafficEstimateParameters, (keyword) => {\r\n return keyword && keyword.Text && keyword.Text.length >= MAX_KEYWORD_LENGTH;\r\n });\r\n });\r\n}\r\n\r\nexport default function (params, callbacks, options, endPoint = estimationEndpoint, opTransformer, timestamp) {\r\n const odataHost = config.get('adinsight.odata.url');\r\n let locations = getSupportedLocationIds(params.locations);\r\n\r\n if (locations.supportedCount > MAX_LOCATION_IDS_COUNT && _.isFunction(callbacks.onServiceNotSupported)) {\r\n // this case is only for budget and bid suggestion and no notification will show, so no wording here\r\n // for \"Get performance estimates\", when count of location ids > 2000, the button will be hided\r\n callbacks.onServiceNotSupported('', timestamp);\r\n } else {\r\n let op = getTrafficEstimationOp(params.adGroup, params.bid, params.budget, locations.items, params.languages);\r\n\r\n // adinsight has limitation: keywords count < 1000\r\n if (_.sumBy(op.data.CampaignTrafficEstimate.AdGroupTrafficEstimateParameters, (adgroup) => adgroup.KeywordTrafficEstimateParameters.length) >= MAX_KEYWORDS_COUNT) {\r\n if (_.isFunction(callbacks.onServiceNotSupported)) {\r\n callbacks.onServiceNotSupported(i18n.get('Budget_TrafficEstimation_MoreKeywordRequestsThanServiceAllowed'), timestamp);\r\n }\r\n } else if (isKeywordLengthInvalid(op)) {\r\n if (_.isFunction(callbacks.onServiceNotSupported)) {\r\n callbacks.onServiceNotSupported(i18n.get('Budget_TrafficEstimation_MoreKeywordLengthRequestsThanServiceAllowed'), timestamp);\r\n }\r\n } else {\r\n if (_.isFunction(opTransformer)) {\r\n op = opTransformer(op, params);\r\n }\r\n\r\n const adGroupTrafficEstimateParameters = _.chain(op)\r\n .result('data')\r\n .result('CampaignTrafficEstimate')\r\n .result('AdGroupTrafficEstimateParameters')\r\n .value() || [];\r\n const isDSAMixedModeCampaignEnabled = _.result(config.get('Permissions'), 'IsDSAMixedModeCampaignEnabled', false);\r\n\r\n // if user enabled mixed mode campaign creation\r\n // there might be a scenario that all created ad groups are dynamic ad groups, and they don't have any keyword in it\r\n // after the parsing of opTransformer there should be no AdGroupTrafficEstimateParameters, which is not acceptable by trafficEstimation API\r\n // as a result we need to return an empty response manually\r\n if (adGroupTrafficEstimateParameters.length === 0 && isDSAMixedModeCampaignEnabled && params.campaignType === 'search') {\r\n callbacks.onSuccess([{ value: [] }], timestamp);\r\n } else {\r\n odata.post(endPoint, _.extend(op, {host: odataHost}),\r\n (dummy, response, textStatus, xhr) => {\r\n if (response && xhr && _.isFunction(xhr.getResponseHeader)) {\r\n response.suggestedBidRequestId = (xhr && xhr.getResponseHeader('x-ms-requestid')) || '';\r\n }\r\n },\r\n )\r\n .then((...args) => {\r\n if (_.isFunction(callbacks.onSuccess)) {\r\n callbacks.onSuccess(...args, timestamp );\r\n }\r\n })\r\n .catch((...args) => {\r\n if (_.isFunction(callbacks.onRequestError)) {\r\n callbacks.onRequestError(...args, timestamp);\r\n }\r\n })\r\n .finally(options.spinner ? uiBlocker(options.spinner) : _.noop);\r\n }\r\n }\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\n\r\nexport function logBidView(adgroup, activity) {\r\n if (activity && _.isFunction(activity.trace)) {\r\n activity.trace(\r\n `View adgroup bid suggestion success for ${adgroup.Id} with suggested bid ${adgroup.suggestedBid} (from NKW: ${adgroup.isNKW}), Currency: ${pageContext.AccountCurrencyCode}`,\r\n 'SuggestionInCreationWorkflow/ViewBid'\r\n );\r\n }\r\n}\r\n\r\nexport function logBidAdoption(adgroup, activity) {\r\n if (activity && _.isFunction(activity.trace)) {\r\n activity.trace(\r\n `Apply adgroup bid suggestion success for ${adgroup.Id} with suggested bid ${adgroup.suggestedBid} (from NKW: ${adgroup.isNKW}) and saved bid ${adgroup.SearchBid}, viewedSuggestion: ${adgroup.viewedSuggestion}, Currency: ${pageContext.AccountCurrencyCode}`,\r\n 'SuggestionInCreationWorkflow/ApplyBid'\r\n );\r\n }\r\n}\r\n\r\nexport function logBudgetView(campaign, activity) {\r\n if (activity && _.isFunction(activity.trace)) {\r\n activity.trace(\r\n `View campaign budget suggestion success for ${campaign.Id} with suggested budget ${campaign.suggestedBudget} and init budget ${campaign.initBudget}, current budget ${campaign.budget}, Currency: ${pageContext.AccountCurrencyCode}`,\r\n 'SuggestionInCreationWorkflow/ViewBudget'\r\n );\r\n }\r\n}\r\n\r\nexport function logBudgetAdoption(campaign, activity) {\r\n if (activity && _.isFunction(activity.trace)) {\r\n activity.trace(\r\n `Apply campaign budget suggestion success for ${campaign.Id} with suggested budget ${campaign.suggestedBudget} and init budget ${campaign.initBudget}, saved budget ${campaign.budget}, Currency: ${pageContext.AccountCurrencyCode}`,\r\n 'SuggestionInCreationWorkflow/ApplyBudget'\r\n );\r\n }\r\n}\r\n\r\nexport function logBudgetLandScapeView(campaignId, clientName, optId, suggestedBudgetValue, currency, activity) {\r\n if (activity && _.isFunction(activity.trace)) {\r\n activity.trace(\r\n `View inline budget suggestion success for CampaignId:${campaignId}, ClientName:${clientName}, BudgetSuggestionId:${optId}, SuggestedBudget:${suggestedBudgetValue}, Currency:${currency}`,\r\n 'InlineBudgetEditor/ViewBudget'\r\n );\r\n }\r\n}\r\n\r\nexport function logBudgetLandScapeAdoption(campaignId, clientName, optId, suggestedBudgetValue, userInputBudgetValue, currency, activity) {\r\n if (activity && _.isFunction(activity.trace)) {\r\n activity.trace(\r\n `Apply inline budget suggestion success for CampaignId:${campaignId}, ClientName:${clientName}, BudgetSuggestionId:${optId}, SuggestedBudget:${suggestedBudgetValue}, SavedBudget:${userInputBudgetValue}, Currency:${currency}`,\r\n 'InlineBudgetEditor/ApplyBudget'\r\n );\r\n }\r\n}\r\n\r\nexport function logBudgetLandScapeForSharedBudgetCampaignView(budgetId, clientName, optId, suggestedBudgetValue, currency, activity) {\r\n if (activity && _.isFunction(activity.trace)) {\r\n activity.trace(\r\n `View inline shared budget suggestion success for BudgetId:${budgetId}, ClientName:${clientName}, BudgetSuggestionId:${optId}, SuggestedBudget:${suggestedBudgetValue}, Currency:${currency}`,\r\n 'InlineBudgetEditor/ViewBudget'\r\n );\r\n }\r\n}\r\n\r\nexport function logBudgetLandScapeForSharedBudgetCampaignAdoption(budgetId, clientName, optId, suggestedBudgetValue, userInputBudgetValue, currency, activity) {\r\n if (activity && _.isFunction(activity.trace)) {\r\n activity.trace(\r\n `Apply inline shared budget suggestion success for BudgetId:${budgetId}, ClientName:${clientName}, BudgetSuggestionId:${optId}, SuggestedBudget:${suggestedBudgetValue}, SavedBudget:${userInputBudgetValue}, Currency:${currency}`,\r\n 'InlineBudgetEditor/ApplyBudget'\r\n );\r\n }\r\n}\r\n","export const weekly2Monthly = (weeklyVal) => {\r\n return weeklyVal * 30.4 / 7;\r\n};\r\n\r\nexport const weekly2MonthlyInt = (weeklyVal) => {\r\n return Math.round(weekly2Monthly(weeklyVal));\r\n};\r\n","/* global _TL_ */\r\nimport ko from 'knockout';\r\nimport { formatCost } from '@bingads-webui-campaign-legacy/budget/shared/currencyFormatter';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\n\r\nexport default class ViewModel {\r\n constructor(i18n, suggestedBid, bidHintKey, suggestedClicks, impressionsMore, newI18n) {\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n this.suggestedBid = ko.observable(decimal.fromLocalToFloat(suggestedBid));\r\n this.bidHintKey = ko.observable(bidHintKey);\r\n this.click = ko.observable(suggestedClicks);\r\n this.imporessionMore = ko.observable(impressionsMore);\r\n this.bidSuggestion = ko.computed(() => {\r\n return this.i18n.get('Creation_Workflow_Bid_Suggestion_Action', {\r\n bid: formatCost(this.suggestedBid()),\r\n });\r\n }, this);\r\n this.applyBtnText = ko.computed(() => {\r\n return newI18n.getString(_TL_('Apply'));\r\n }, this);\r\n this.lowBidBtnTitle = ko.computed(() => {\r\n return newI18n.getString(_TL_('Recommended ad group bid'));\r\n }, this);\r\n this.normalBidSuggestion = ko.computed(() => {\r\n return newI18n.getString(_TL_('The recommended bid is {{suggestedBid}}. You could get {{imporessionMore}} more impressions and {{click}} more clicks if you apply.'),\r\n {\r\n suggestedBid: this.suggestedBid(),\r\n imporessionMore: parseInt(this.imporessionMore()),\r\n click: parseInt(this.click()),\r\n }\r\n );\r\n }, this);\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport template from '@bingads-webui-campaign-legacy/budget/template/bid-suggestion-popup.pug';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/budget/viewmodel/bid-suggestion-popup';\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options) {\r\n this.i18n = options.i18n;\r\n this.options = options;\r\n this.koModel = new ViewModel(this.i18n, this.options.suggestedBid, this.options.bidHintKey, this.options.suggestedClicks, this.options.impressionsMore, this.options.newI18n);\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .apply': 'apply',\r\n 'click .cancel': 'cancel',\r\n 'click .apply-link': 'apply',\r\n 'click .cancel-link': 'cancel',\r\n 'click .close': 'cancel',\r\n 'click .close-button': 'cancel',\r\n };\r\n }\r\n\r\n updateSuggestedBid(suggestedBid) {\r\n this.koModel.suggestedBid(suggestedBid);\r\n }\r\n\r\n cancel() {\r\n this.$el.hide();\r\n }\r\n\r\n apply() {\r\n this.options.callback(this.koModel.suggestedBid());\r\n if (this.activityLogger) {\r\n this.activityLogger.signal({\r\n Scenario: 'CampaignCreation',\r\n SuggestedBid: this.options.suggestedBid,\r\n OriginalInputBid: this.options.Bid,\r\n EventName: 'CreationFlowLowBidSuggestionApply',\r\n SuggestedBidRequestId: this.options.suggestedBidRequestId,\r\n }\r\n );\r\n }\r\n this.cancel();\r\n }\r\n\r\n render () {\r\n this.$el.html(template({ i18n: this.i18n }));\r\n ko.applyBindings(this.koModel, this.el);\r\n return this;\r\n }\r\n}\r\n","import ko from 'knockout';\r\n\r\nexport default class ViewModel {\r\n constructor(options = {\r\n Amount: '',\r\n isEditing: false,\r\n AccountCurrencyCode: '',\r\n }) {\r\n this.amount = ko.observable(options.Amount);\r\n this.accountCurrencyCode = options.AccountCurrencyCode;\r\n this.isEditing = ko.observable(options.isEditing);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport BudgetView from '@bingads-webui-campaign-legacy/budget/view/budget';\r\nimport template from '@bingads-webui-campaign-legacy/budget/template/budget-panel.pug';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/budget/viewmodel/budget-panel';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n let self = this;\r\n\r\n self.options = options;\r\n\r\n self.koModel = new ViewModel({\r\n Amount: self.model.Amount,\r\n AccountCurrencyCode: pageContext.AccountCurrencyCode,\r\n isEditing: false,\r\n });\r\n\r\n self.budgetView = new BudgetView({\r\n model: self.model,\r\n initBudget: options.initBudget,\r\n haveBudgetSuggestion: options.haveBudgetSuggestion,\r\n languages: options.languages,\r\n campaignId: options.campaignId,\r\n activity: options.activity,\r\n isForVNext: options.isForVNext,\r\n activityLogger: options.activityLogger,\r\n });\r\n\r\n self.budgetView.on('budget.updated', (dailyBudget) => {\r\n self.trigger('budget.updated', dailyBudget);\r\n });\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .link-edit > a': 'expandEditor',\r\n };\r\n }\r\n\r\n render() {\r\n this.$el.html(template({ i18n }));\r\n ko.applyBindings(this.koModel, this.el);\r\n this.$('.budget-editor').empty().append(this.budgetView.render().el);\r\n return this;\r\n }\r\n\r\n update(model) {\r\n if (_.isUndefined(model.Amount)) {\r\n // If there is no budget amount, then we should prompt the user for it instead of displaying a blank panel\r\n if (_.isUndefined(this.koModel.amount())) {\r\n this.koModel.isEditing(true);\r\n }\r\n } else {\r\n this.koModel.amount(decimal.fromFloatToString(model.Amount));\r\n }\r\n\r\n this.budgetView.update(model);\r\n }\r\n\r\n updateSuggestedBudget(adGroups, fromBudgetUpdate) {\r\n this.budgetView.updateSuggestedBudget(adGroups, fromBudgetUpdate);\r\n }\r\n\r\n validate() {\r\n return this.budgetView.validate();\r\n }\r\n\r\n getValues() {\r\n return this.budgetView.ko_model.toObject();\r\n }\r\n\r\n expandEditor() {\r\n this.koModel.isEditing(true);\r\n }\r\n\r\n enough() {\r\n return this.budgetView.enough();\r\n }\r\n\r\n getSuggestedBudget() {\r\n return this.budgetView.getSuggestedBudget();\r\n }\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 config from '@bingads-webui-component-legacy/config/index';\r\nimport * as budgetRangeModule from '@bingads-webui-campaign-legacy/common-grid-config/budget/get-budget-range';\r\nimport decimalNumber from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport humanizeNumber from '@bingads-webui-component-legacy/humanize/number';\r\nimport ko_schema from '@bingads-webui-component-legacy/ko-schema/index';\r\nimport * as _currenyFormatter from '@bingads-webui-campaign-legacy/budget/shared/currencyFormatter';\r\nimport '@bingads-webui-component-legacy/extension/underscore';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\nvar s$Budget = window.globalLegacySchema.get('Budget');\r\nvar formatCost = _currenyFormatter.formatCost;\r\nvar BudgetTypes = {\r\n DailyStandard: 'DailyStandard',\r\n DailyAccelerated: 'DailyAccelerated',\r\n LifetimeBudgetStandard: 'LifetimeBudgetStandard'\r\n};\r\nvar BudgetScopes = {\r\n Daily: 'Daily',\r\n Lifetime: 'Lifetime'\r\n};\r\nvar BudgetTypesToBudgetScope = {\r\n [BudgetTypes.DailyStandard]: BudgetScopes.Daily,\r\n [BudgetTypes.DailyAccelerated]: BudgetScopes.Daily,\r\n [BudgetTypes.LifetimeBudgetStandard]: BudgetScopes.Lifetime\r\n};\r\nvar BudgetTypeSectionOptions = [{\r\n value: BudgetTypes.DailyStandard,\r\n text: i18n.get('BudgetLimitType_Daily')\r\n}, {\r\n value: BudgetTypes.LifetimeBudgetStandard,\r\n text: i18n.get('BudgetLimitType_Lifetime')\r\n}];\r\nvar currencyCode = config.get('AccountCurrencyCode');\r\nvar isDeprecateAcceleratedBudgetEnabled = pageContext.Permissions.IsDeprecateAcceleratedBudgetEnabled;\r\nvar isDeprecateAcceleratedBudgetOptout = pageContext.Permissions.IsDeprecateAcceleratedBudgetOptoutEnabled;\r\nvar ViewModel = function (options) {\r\n var budgetRangeNew = budgetRangeModule.getBudgetRange(currencyCode);\r\n var budgetRange = budgetRangeModule.getBudgetRangeOld(currencyCode);\r\n if (options.validationDailyMinBudget && !_.isEmpty(budgetRange)) {\r\n budgetRange.DailyRange.FloorValue = options.validationDailyMinBudget;\r\n }\r\n var USDefaultBudget = pageContext.Permissions.IsDefaultBudgetExperimentationEnabled ? 25 : 20;\r\n var realDefaultBudget = budgetRangeNew.Daily.Default;\r\n var defaultBudget = pageContext.AccountCurrencyCode && pageContext.AccountCurrencyCode === 'USD' ? USDefaultBudget : realDefaultBudget;\r\n if (options.validationDailyMinBudget && defaultBudget < options.validationDailyMinBudget) {\r\n defaultBudget = options.validationDailyMinBudget;\r\n }\r\n var budget = _.defaults({}, options.budget, {\r\n Amount: defaultBudget,\r\n Type: BudgetTypes.DailyStandard\r\n });\r\n this.suggestedBudget = ko.observable(0);\r\n this.clicksIncrease = ko.observable(0);\r\n this.isDailyBudgetExpanded = ko.observable(false);\r\n this.showFACHint = ko.observable(false);\r\n this.featureAdoptionCouponValue = ko.observable(0);\r\n this.budgetTypeSelectionOptions = BudgetTypeSectionOptions;\r\n this.selectedBudgetType = ko.observable(BudgetTypes.DailyStandard);\r\n this.showBudgetTypeSelectionOptions = options.showBudgetTypeSelection;\r\n this.allowBudgetTypeSelection = options.allowBudgetTypeSelection;\r\n this.budgetAmountPlaceholder = i18n.get('CampaignSetting_Placeholder_Budget').replace('{0}', decimalNumber.fromLocalToString(defaultBudget));\r\n ko_schema.properties(this, s$Budget, ['Amount', 'Type'], budget);\r\n this.BudgetScope = ko.observable(BudgetTypesToBudgetScope[budget.Type]);\r\n this.isDailyStandard = ko.observable(budget.Type === BudgetTypes.DailyStandard);\r\n this.hideDailyBudgetOptions = options.hideDailyBudgetOptions;\r\n this.readOnly = options.readOnly;\r\n this.hideAcceleratedBudgetOption = ko.computed(function () {\r\n return isDeprecateAcceleratedBudgetEnabled && budget.Type === BudgetTypes.DailyStandard;\r\n });\r\n this.showSuggestedBudget = ko.computed(function () {\r\n return this.Amount() < this.suggestedBudget() && this.clicksIncrease() > 0;\r\n }, this);\r\n this.showBudgetMinRecommend = ko.computed(function () {\r\n const showBudgetMinRecommend = options.showBudgetMinRecommend && options.minimumBudget && options.minimumBudget >= 0.05 && this.Amount() && this.Amount() < options.minimumBudget;\r\n if (options.activityLogger && showBudgetMinRecommend) {\r\n options.activityLogger.trace('BCCForBudgetMinimumRecommendation: show');\r\n }\r\n return showBudgetMinRecommend;\r\n }, this);\r\n this.budgetSuggestion = ko.computed(function () {\r\n return i18n.get('Creation_Workflow_Budget_Suggestion_Per_Month', {\r\n increasedClicks: humanizeNumber.format(this.clicksIncrease()),\r\n budget: formatCost(this.suggestedBudget())\r\n });\r\n }, this);\r\n this.isDailyStandard.forEditing = ko.computed({\r\n read: function () {\r\n return this.isDailyStandard().toString();\r\n },\r\n write: function (newValue) {\r\n return this.isDailyStandard(newValue === 'true');\r\n }\r\n }, this);\r\n this.budgetLimit = ko.computed(function () {\r\n if (!_.isEmpty(budgetRange)) {\r\n var budgetScope = this.BudgetScope();\r\n return budgetScope === BudgetScopes.Daily ? budgetRange.DailyRange : budgetRange.LifetimeRange;\r\n }\r\n }, this);\r\n this.featureAdoptionCouponHint = ko.computed(function () {\r\n return i18n.get('Coupon_applied_10days', {\r\n value: this.featureAdoptionCouponValue()\r\n });\r\n }, this);\r\n ko.computed(function () {\r\n if (this.showBudgetTypeSelectionOptions && this.allowBudgetTypeSelection) {\r\n this.Type(this.selectedBudgetType());\r\n this.BudgetScope(BudgetTypesToBudgetScope[this.selectedBudgetType()]);\r\n }\r\n }, this);\r\n var amountTypeValidator = _.result(this.Amount.validators, 'type');\r\n if (amountTypeValidator) {\r\n amountTypeValidator.message = i18n.get('Campaigns_InlineValidBudgetInputMsg');\r\n }\r\n var amountSizeValidator = _.result(this.Amount.validators, 'decimalLength');\r\n if (amountSizeValidator) {\r\n amountSizeValidator.message = i18n.get('Campaigns_InlineValidBudgetInputMsg');\r\n }\r\n (this.computeBudgetError = function () {\r\n var budget = this.Amount(), minValue = this.budgetLimit().FloorValue, maxValue = this.budgetLimit().CeilingValue;\r\n if (_.isNil(budget)) {\r\n return i18n.get('CampaignBudget_Validation_RequiredField');\r\n }\r\n if (_.isEmpty(budgetRange)) {\r\n return '';\r\n }\r\n if (this.Amount.isValid() && (budget < minValue || budget > maxValue)) {\r\n return this.BudgetScope() === BudgetScopes.Daily ? i18n.get('Budget_InputValueError_Daily').replace('{0}', options.accountCurrencyCode).replace('{1}', decimalNumber.fromFloatToString(this.budgetLimit().FloorValue)) : i18n.get('Budget_InputValueError_Lifetime').replace('{0}', options.accountCurrencyCode).replace('{1}', decimalNumber.fromFloatToString(this.budgetLimit().FloorValue)).replace('{2}', options.accountCurrencyCode).replace('{3}', decimalNumber.fromFloatToString(this.budgetLimit().CeilingValue));\r\n }\r\n return '';\r\n }, this.useSuggestedBudget = function () {\r\n this.Amount(this.suggestedBudget());\r\n });\r\n this.applySuggestedBudget = function () {\r\n if (options.minimumBudget) {\r\n if (options.activityLogger) {\r\n options.activityLogger.trace('BCCForBudgetMinimumRecommendation: apply');\r\n }\r\n this.Amount(options.minimumBudget * 1);\r\n }\r\n };\r\n this.budgetError = ko.computed(this.computeBudgetError, this);\r\n this.Amount.subscribe(() => {\r\n this.Amount.validate();\r\n });\r\n this.budgetInvalid = ko.computed(function () {\r\n return !_.isEmpty(this.budgetError()) || !this.Amount.isValid();\r\n }, this);\r\n this.budget = ko.computed(function () {\r\n return this.Amount();\r\n }, this);\r\n this.budgetType = ko.computed(function () {\r\n return this.Type();\r\n }, this);\r\n this.budgetLabel = ko.computed(function () {\r\n return this.budgetInvalid() ? i18n.get('Label_Budget') : i18n.get('Campaign budget per day by {{unit}}').replace('{{unit}}', options.accountCurrencyCode);\r\n }, this);\r\n this.budgetTypeLabel = ko.computed(function () {\r\n return i18n.get('Label_BudgetType');\r\n }, this);\r\n};\r\nViewModel.prototype.updateSuggestedBudget = function (suggestedBudget, clicksIncrease) {\r\n this.suggestedBudget(suggestedBudget ? suggestedBudget : 0);\r\n this.clicksIncrease(clicksIncrease ? clicksIncrease : 0);\r\n};\r\nViewModel.prototype.update = function (model) {\r\n if (_.isObject(model)) {\r\n if (this.Amount() !== model.Amount) {\r\n this.Amount(model.Amount);\r\n }\r\n this.Type(model.Type);\r\n this.BudgetScope(BudgetTypesToBudgetScope[model.Type]);\r\n this.isDailyStandard(model.Type === BudgetTypes.DailyStandard);\r\n this.selectedBudgetType(model.Type);\r\n }\r\n};\r\nViewModel.prototype.enough = function () {\r\n return this.Amount() >= this.suggestedBudget();\r\n};\r\nViewModel.prototype.updateFeatureAdoptionCoupon = function ({showFACHint, couponValue}) {\r\n this.showFACHint(showFACHint);\r\n this.featureAdoptionCouponValue(couponValue);\r\n};\r\nexport default ViewModel;\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport template from '@bingads-webui-campaign-legacy/budget/template/budget.pug';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/budget/viewmodel/budget';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport * as _getSuggestion from '@bingads-webui-campaign-legacy/budget/shared/getBudgetBidSuggestion';\r\nimport * as _logger from '@bingads-webui-campaign-legacy/budget/shared/log';\r\nimport * as _weeklyToMonthly from '@bingads-webui-campaign-legacy/budget/shared/weeklyToMonthly';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\nvar getBudgetSuggestion = _getSuggestion.getBudgetSuggestion;\r\nvar logBudgetView = _logger.logBudgetView;\r\nvar weekly2MonthlyInt = _weeklyToMonthly.weekly2MonthlyInt;\r\nfunction formatAdGroupClickList(adGroupClickList) {\r\n return _.map(adGroupClickList, weekly2MonthlyInt);\r\n}\r\nfunction sumAdGroupClickList(adGroupClickList) {\r\n return _.reduce(formatAdGroupClickList(adGroupClickList), function (memo, num) {\r\n return memo + num;\r\n }, 0);\r\n}\r\nvar View = Backbone.View.extend({\r\n initialize: function (options) {\r\n options = options || ({});\r\n this.options = options;\r\n this.ko_model = new ViewModel({\r\n budget: this.model,\r\n showBudgetMinRecommend: this.options.showBudgetMinRecommend,\r\n minimumBudget: this.options.minimumBudget ? this.options.minimumBudget.toFixed(2) : undefined,\r\n showBudgetTypeSelection: this.options.showBudgetTypeSelection,\r\n allowBudgetTypeSelection: this.options.allowBudgetTypeSelection,\r\n accountCurrencyCode: pageContext.AccountCurrencyCode,\r\n activityLogger: this.options.activityLogger,\r\n hideDailyBudgetOptions: this.options.hideDailyBudgetOptions,\r\n validationDailyMinBudget: this.options.validationDailyMinBudget,\r\n currencySymbol: this.options.currencySymbol,\r\n readOnly: this.options.readOnly,\r\n });\r\n this.initBudget = options.initBudget;\r\n this.haveBudgetSuggestion = options.haveBudgetSuggestion;\r\n this.languages = options.languages;\r\n this.campaignId = options.campaignId;\r\n this.activity = options.activity;\r\n this.isForVNext = options.isForVNext;\r\n this.isDailyStandardName = _.uniqueId('isDailyStandard_');\r\n },\r\n events: {\r\n 'click .expander-dailyType': 'toggleDailyType',\r\n 'click .use-suggested-budget': 'useSuggestedBudget',\r\n 'change input.budget-amount': 'budgetChanged',\r\n 'click .apply-budget': 'applySuggestedBudget',\r\n 'change input.budget-type': 'budgetTypeChanged'\r\n },\r\n render: function () {\r\n this.$el.html(template({\r\n i18n: i18n,\r\n accountCurrencyCode: pageContext.AccountCurrencyCode,\r\n minimumBudget: this.options.minimumBudget ? this.options.minimumBudget.toFixed(2) : 'undefined',\r\n currencySymbol: this.options.currencySymbol || '',\r\n isForVNext: this.isForVNext,\r\n isDailyStandardName: this.isDailyStandardName\r\n }));\r\n this.ko_model.budget.subscribe((function (val) {\r\n if (!this.ko_model.budgetInvalid()) {\r\n this.trigger('budget.updated', val);\r\n }\r\n this.triggerChangeEvent();\r\n }).bind(this));\r\n this.ko_model.budgetType.subscribe((function (val) {\r\n this.triggerChangeEvent();\r\n }).bind(this));\r\n ko.applyBindings(this.ko_model, this.el);\r\n return this;\r\n },\r\n validate: function () {\r\n var valid = _.isEmpty(this.ko_model.budgetError());\r\n var isValid = this.ko_model.validate() && valid;\r\n if (!isValid) {\r\n if (this.options.activityLogger) {\r\n this.options.activityLogger.signal('budget is not valid', 'budget');\r\n }\r\n }\r\n return isValid;\r\n },\r\n triggerChangeEvent: function () {\r\n if (this.options.withRealTimeUpdates) {\r\n this.trigger('change', this.ko_model.toObject(), !this.ko_model.budgetInvalid());\r\n }\r\n },\r\n update: function (model) {\r\n this.ko_model.update(model);\r\n },\r\n toggleDailyType: function () {\r\n this.ko_model.isDailyBudgetExpanded(!this.ko_model.isDailyBudgetExpanded());\r\n this.$('#AdvancedBudgetOptions').toggleClass('displayNone');\r\n },\r\n useSuggestedBudget: function () {\r\n this.ko_model.useSuggestedBudget();\r\n },\r\n applySuggestedBudget: function () {\r\n this.ko_model.applySuggestedBudget();\r\n },\r\n budgetChanged: function () {\r\n if (this.options.activityLogger) {\r\n this.options.activityLogger.signal('budget change', 'budget');\r\n }\r\n },\r\n budgetTypeChanged: function () {\r\n if (this.options.activityLogger) {\r\n this.options.activityLogger.signal('budget type change', 'budgetType');\r\n }\r\n },\r\n getValues: function () {\r\n return this.ko_model.toObject();\r\n },\r\n enough: function () {\r\n return this.ko_model.enough();\r\n },\r\n getSuggestedBudget: function () {\r\n return this.ko_model.suggestedBudget();\r\n },\r\n updateSuggestedBudget: function (adGroups, fromBudgetUpdate) {\r\n var self = this;\r\n fromBudgetUpdate = !!fromBudgetUpdate;\r\n if (!this.validate()) {\r\n self.ko_model.updateSuggestedBudget(0, 0);\r\n } else if (this.haveBudgetSuggestion && adGroups.length > 0 && !(fromBudgetUpdate && self.ko_model.Amount() >= self.ko_model.suggestedBudget())) {\r\n getBudgetSuggestion({\r\n locations: jsdata.Intermediate.getAll('CampaignCriterion'),\r\n adGroup: adGroups,\r\n budget: this.ko_model.budget(),\r\n initBudget: this.initBudget,\r\n languages: this.languages\r\n }, {\r\n onSuccess: function (data) {\r\n if (data && data.value && data.value.length) {\r\n var clicksAsSuggestedBudget = sumAdGroupClickList(data.value[0].EstimatedAdGroupClicksAsSuggestedBudget);\r\n var clicksAsCurrentBudget = sumAdGroupClickList(data.value[0].EstimatedAdGroupClicksAsCurrentBudget);\r\n var EstimatedAmountAsSuggestedBudget = data.value[0].EstimatedAmountAsSuggestedBudget;\r\n var clicksIncrease = clicksAsSuggestedBudget - clicksAsCurrentBudget;\r\n var suggestedBudget = Math.ceil(EstimatedAmountAsSuggestedBudget.Amount);\r\n self.ko_model.updateSuggestedBudget(suggestedBudget, clicksIncrease);\r\n if (self.ko_model.showSuggestedBudget()) {\r\n logBudgetView({\r\n Id: self.campaignId,\r\n suggestedBudget: self.ko_model.suggestedBudget(),\r\n initBudget: self.initBudget,\r\n budget: self.ko_model.budget()\r\n }, self.activity);\r\n }\r\n } else {\r\n self.ko_model.updateSuggestedBudget(0, 0);\r\n }\r\n },\r\n onRequestError: function () {\r\n self.ko_model.updateSuggestedBudget(0, 0);\r\n }\r\n }, {});\r\n }\r\n }\r\n});\r\nexport default View;\r\n","/* eslint-disable */\r\nimport ko from 'knockout';\r\nimport ko_schema from '@bingads-webui-component-legacy/ko-schema/index';\r\nvar ViewModel = function () {\r\n this.isCampaignTargetsExpanded = ko.observable(false);\r\n this.BidStrategy = ko.observable();\r\n this.isCampaignLevelGoalEnabled = ko.observable(false);\r\n this.isbiddingStrategyTypeCPC = ko.observable(true);\r\n ko_schema.properties(this);\r\n this.hasChanges = ko.observable(false);\r\n this.estimateTrafficSupported = ko.observable(false);\r\n this.showPerformanceGrid = ko.computed(function () {\r\n return this.estimateTrafficSupported() && this.isbiddingStrategyTypeCPC();\r\n }, this);\r\n this.showAdgroupBidGrid = ko.computed(function () {\r\n return !this.showPerformanceGrid() && this.isbiddingStrategyTypeCPC();\r\n }, this);\r\n};\r\nexport default ViewModel;\r\n\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport { appendLearnMoreLink } from '@bingads-webui-component-legacy/help/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nexport default class ViewModel {\r\n constructor() {\r\n this.errorMessage = ko.observable('');\r\n\r\n this.showError = ko.computed(() => {\r\n return !_.isEmpty(this.errorMessage());\r\n }, this);\r\n\r\n this.infoMessage = ko.observable('');\r\n\r\n this.showInfo = ko.computed(() => {\r\n return !_.isEmpty(this.infoMessage());\r\n }, this);\r\n\r\n this.hasUnsupportedLocations = ko.observable(false);\r\n this.showSearchBidValidationError = ko.observable(false);\r\n\r\n this.infoMessageWithLearnMore = ko.computed(() => {\r\n if (this.hasUnsupportedLocations()) {\r\n return appendLearnMoreLink(this.infoMessage(), 'app54508', {\r\n linkText: i18n.get('HelpLink_TrafficEstimate_UnsupportedLocations'),\r\n });\r\n }\r\n\r\n return this.infoMessage();\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport { countNumberOfDigits } from '@bingads-webui-campaign-legacy/budget/shared/countNumberOfDigits';\r\n\r\nconst bidLimitations = config.get('KeywordBidRange');\r\n\r\nexport const validate = function(adgroups) {\r\n return _.every(adgroups, (adGroup) => {\r\n let bid = decimal.fromLocalToFloat(adGroup.Bid);\r\n\r\n return decimal.isValid(adGroup.Bid, true) &&\r\n _.isFinite(bid) &&\r\n _.isNumber(bid) &&\r\n bid >= bidLimitations.FloorValue &&\r\n bid <= bidLimitations.CeilingValue &&\r\n countNumberOfDigits(bid) <= 2;\r\n });\r\n};\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport Backbone from 'backbone';\r\nimport config from '@bingads-webui-component-legacy/config/index';\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 { inlineErrorPlugin } from '@bingads-webui/projection-grid-inline-error';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport template from '@bingads-webui-campaign-legacy/budget/template/base-bid-grid.pug';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/budget/viewmodel/base-bid-grid';\r\nimport { validate as validateData } from '@bingads-webui-campaign-legacy/budget/shared/bidValidate';\r\nimport { countNumberOfDigits } from '@bingads-webui-campaign-legacy/budget/shared/countNumberOfDigits';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nconst bidRange = config.get('KeywordBidRange');\r\n\r\nexport class BaseAdGroupBidGrid extends Backbone.View {\r\n initialize({\r\n gridColumns = [],\r\n gridName,\r\n defaultBid = bidRange.FloorValue,\r\n newI18n,\r\n activityLogger,\r\n girdAriaLabel,\r\n } = {}) {\r\n this.gridColumns = gridColumns;\r\n this.defaultBid = defaultBid;\r\n this.gridName = gridName;\r\n this.activityLogger = activityLogger;\r\n this.isBidChanged = false;\r\n this.newI18n = newI18n;\r\n this.viewModel = new ViewModel();\r\n this.girdAriaLabel = girdAriaLabel;\r\n }\r\n\r\n render() {\r\n this.$el.append(template({i18n}));\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n this.grid = pgrid.factory({ vnext: true })\r\n .use(paginationPlugin)\r\n .use(inlineErrorPlugin({\r\n errorIconClasses: ['grid-error', 'spritedimage'],\r\n }))\r\n .create({\r\n name: this.gridName,\r\n tableClasses: ['table', 'table-bordered'],\r\n tableAttributes: { 'aria-label': this.girdAriaLabel },\r\n dataSource: {\r\n type: 'memory',\r\n data: [],\r\n primaryKey: 'Id',\r\n },\r\n rows: {\r\n bodyRows: [{\r\n type: 'data-rows',\r\n classes: ['adgroup-bid-row'],\r\n }],\r\n },\r\n columns: this.gridColumns,\r\n events: {\r\n 'change .input-bid': (event) => {\r\n if (this.activityLogger) {\r\n this.activityLogger.signal(`adgroup bid changed: ${event.target && event.target.value}`);\r\n }\r\n this.bidUpdated(event);\r\n },\r\n },\r\n });\r\n\r\n this.$('.grid').html(this.grid.gridView.render().el);\r\n\r\n return this;\r\n }\r\n\r\n bidUpdated() {\r\n throw new Error('Should implement bidUpdated function');\r\n }\r\n\r\n patchError(newError) {\r\n const { errors } = this.grid.gridView.get('inlineError');\r\n\r\n this.grid.inlineError.setErrors(_.extend({}, errors, newError));\r\n }\r\n\r\n validateBid(item) {\r\n const newBidFloat = decimal.fromLocalToFloat(item.Bid);\r\n\r\n if (!decimal.isValid(item.Bid, true)) {\r\n this.patchError({\r\n [item.Id]: [i18n.get('Validation_BidFormatInvalid')],\r\n });\r\n\r\n return {\r\n isValid: false,\r\n bidHintKey: 'Validation_BidFormatInvalid',\r\n };\r\n } else if (newBidFloat < bidRange.FloorValue || newBidFloat > bidRange.CeilingValue) {\r\n const message = i18n.get('Budget_TrafficEstimation_BidLimitationError')\r\n .replace('{0}', bidRange.FloorValue)\r\n .replace('{1}', bidRange.CeilingValue);\r\n\r\n this.patchError({\r\n [item.Id]: [message],\r\n });\r\n\r\n return {\r\n isValid: false,\r\n bidHintKey: 'Budget_TrafficEstimation_BidLimitationError',\r\n };\r\n } else if (countNumberOfDigits(newBidFloat) > 2) {\r\n this.patchError({\r\n [item.Id]: [i18n.get('Validation_Number_Max_Length')],\r\n });\r\n\r\n return {\r\n isValid: false,\r\n bidHintKey: 'Validation_Number_Max_Length',\r\n };\r\n }\r\n\r\n this.patchError({\r\n [item.Id]: [],\r\n });\r\n\r\n return {\r\n isValid: true,\r\n };\r\n }\r\n\r\n resetMesages() {\r\n this.viewModel.errorMessage('');\r\n this.viewModel.infoMessage('');\r\n this.viewModel.hasUnsupportedLocations(false);\r\n this.viewModel.showSearchBidValidationError(false);\r\n }\r\n\r\n update({ adGroups, campaignId, budget, languages }) {\r\n this.resetMesages();\r\n\r\n if (_.isArray(adGroups)) {\r\n this.adGroups = adGroups;\r\n this.refreshGrid(adGroups);\r\n }\r\n\r\n if (!_.isUndefined(campaignId)) {\r\n this.campaignId = campaignId;\r\n }\r\n\r\n if (!_.isUndefined(languages)) {\r\n this.languages = languages;\r\n }\r\n\r\n // Always validate bid when switching from step 3 to step 4\r\n const isAllBidValid = _.reduce(this.adGroups, (memo, adGroup) => {\r\n return this.validateBid(adGroup).isValid && memo;\r\n }, true);\r\n\r\n if (!this.viewModel.showSearchBidValidationError()) {\r\n this.viewModel.showSearchBidValidationError(true);\r\n }\r\n\r\n if (!_.isUndefined(budget)) {\r\n this.updateBudget(budget, isAllBidValid);\r\n }\r\n }\r\n\r\n updateBudget() {\r\n //do nothing\r\n }\r\n\r\n refreshGrid(data) {\r\n this.grid.gridView.patch({\r\n dataSource: {\r\n data: _.map(data, (item) => {\r\n const defaultBid = item.suggestedAvgCpc ? Math.max(item.suggestedAvgCpc, this.defaultBid) : this.defaultBid;\r\n\r\n return _.defaults(item, {\r\n Bid: decimal.fromFloatToString(defaultBid),\r\n });\r\n }),\r\n },\r\n });\r\n }\r\n\r\n getAdGroups() {\r\n return _.map(this.grid.gridView.get('dataSource').data, (adGroup) => {\r\n return {\r\n Campaign: {\r\n Id: this.campaignId,\r\n },\r\n Id: adGroup.Id,\r\n SearchBid: decimal.fromLocalToFloat(adGroup.Bid),\r\n isNKW: adGroup.isNKW || false,\r\n suggestedBid: adGroup.suggestedBid,\r\n viewedSuggestion: adGroup.viewedSuggestion || false,\r\n suggestedBidRequestId: adGroup.suggestedBidRequestId,\r\n };\r\n }, this);\r\n }\r\n\r\n validate() {\r\n return validateData(this.grid.gridView.get('dataSource').data);\r\n }\r\n\r\n enough() {\r\n return true;\r\n }\r\n\r\n remove(...args) {\r\n this.grid.gridView.remove();\r\n this.grid.pagination.remove();\r\n\r\n super.remove(...args);\r\n }\r\n}\r\n","/* global _TL_ */\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport popoverExtender from '@bingads-webui-component-legacy/extension/bootstrap/popover';\r\nimport { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport { appendLearnMoreLink } from '@bingads-webui-component-legacy/help/index';\r\nimport bidToolTipLowBid from '@bingads-webui-campaign-legacy/budget/template/bidToolTipLowBid.pug';\r\nimport getTrafficEstimation from '@bingads-webui-campaign-legacy/budget/shared/getTrafficEstimation';\r\nimport bidEditorTemplate from '@bingads-webui-campaign-legacy/budget/template/bidEditor.pug';\r\nimport estimatedNumTemplate from '@bingads-webui-campaign-legacy/budget/template/estimatedNum.pug';\r\nimport { BaseAdGroupBidGrid } from '@bingads-webui-campaign-legacy/budget/view/base-bid-grid';\r\nimport PopupContentView from '@bingads-webui-campaign-legacy/budget/view/bid-suggestion-popup';\r\nimport { logBidView } from '@bingads-webui-campaign-legacy/budget/shared/log';\r\nimport { weekly2Monthly, weekly2MonthlyInt } from '@bingads-webui-campaign-legacy/budget/shared/weeklyToMonthly';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport { adGroupTypeEnum } from '@bingads-webui-campaign-legacy/adgroup-create-advanced/util/adGroupTypeEnum';\r\nimport { setClarityTag } from '@bingads-webui-universal/clarity';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nconst maxKeywordsToEstimate = 1000;\r\nconst bidRange = config.get('KeywordBidRange');\r\nconst bidHintKey = {\r\n NoClicks: 'TrafficEstimation_Hint_NoClicks',\r\n CriticalLowBid: 'TrafficEstimation_Hint_CriticalLowBid',\r\n NormalLowBid: 'TrafficEstimation_Hint_NormalLowBid',\r\n BidInvalid: 'Validation_BidFormatInvalid',\r\n BidExceedRange: 'Budget_TrafficEstimation_BidLimitationError',\r\n BidExceedMaxLength: 'Validation_Number_Max_Length',\r\n Other: 'GenericErrorMessage',\r\n};\r\nconst bidStatus = {\r\n Error: 'error',\r\n Warning: 'warning',\r\n Suggesiton: 'suggestion',\r\n Good: 'ok',\r\n};\r\n\r\nfunction getBIValueByAdGroupType(item, value, campaignType) {\r\n if (item == null) {\r\n return null;\r\n }\r\n\r\n const isDSAMixedModeCampaignEnabled = _.result(config.get('Permissions'), 'IsDSAMixedModeCampaignEnabled', false);\r\n\r\n if (isDSAMixedModeCampaignEnabled && item.AdGroupType === adGroupTypeEnum.SearchDynamic && campaignType === 'search') {\r\n return null;\r\n }\r\n\r\n return value;\r\n}\r\n\r\nexport class PerformanceGridView extends BaseAdGroupBidGrid {\r\n initialize({\r\n defaultBid,\r\n isBidEditable,\r\n activity,\r\n suggestionEnabled,\r\n activityLogger,\r\n campaignType,\r\n campaignId,\r\n currencyCode,\r\n newI18n,\r\n } = {}) {\r\n this.campaignType = campaignType;\r\n this.defaultBid = defaultBid;\r\n this.activity = activity;\r\n this.suggestionEnabled = suggestionEnabled;\r\n this.campaignId = campaignId;\r\n this.currencyCode = currencyCode;\r\n this.newI18n = newI18n;\r\n const lowBidBtnText = newI18n.getString(_TL_('Low Bid'));\r\n\r\n setClarityTag({ PerformanceGridView: 'true' });\r\n\r\n const gridColumns = [{\r\n name: 'adGroup',\r\n title: i18n.get('ColumnHeader_AdGroup'),\r\n property: (item) => item.Name,\r\n width: 130,\r\n }, bingadsGridColumn({\r\n i18n,\r\n name: 'bid',\r\n title: 'ColumnHeader_Bid',\r\n headClasses: ['grid-header-bidEditor'],\r\n helpId: 'pop_BA_CampaignCreate_Budget_Bid',\r\n template: (local) => {\r\n return bidEditorTemplate({\r\n i18n,\r\n bid: local.value.Bid,\r\n currency: config.get('AccountCurrencyCode'),\r\n bidHintKey: local.value && local.value.bidHintKey,\r\n bidStatus: local.value && local.value.bidStatus,\r\n suggestedBid: local.value && local.value.suggestedBid,\r\n isBidEditable,\r\n suggestionEnabled,\r\n lowBidBtnText,\r\n bidStatusENUM: bidStatus,\r\n adGroupType: local.value && local.value.AdGroupType,\r\n });\r\n },\r\n property: (item) => item,\r\n }), bingadsGridColumn({\r\n i18n,\r\n name: 'click',\r\n title: 'EstimatedClicks',\r\n helpId: 'pop_BA_CampaignCreate_Budget_EstClicks',\r\n template: (local) => {\r\n return estimatedNumTemplate({\r\n i18n,\r\n estimatedNum: local.value && getBIValueByAdGroupType(local.value, weekly2MonthlyInt(local.value && local.value.Clicks), campaignType),\r\n bidHintKey: local.value && local.value.bidHintKey,\r\n adGroupType: local.value && local.value.AdGroupType,\r\n bidStatus: local.value && local.value.bidStatus,\r\n });\r\n },\r\n property: (item) => item,\r\n type: 'number',\r\n format: 'integer',\r\n }), bingadsGridColumn({\r\n i18n,\r\n name: 'impression',\r\n title: 'EstimatedImpressions',\r\n helpId: 'pop_BA_CampaignCreate_Budget_EstImpressions',\r\n headClasses: ['grid-header-EstimatedImpressions'],\r\n template: (local) => {\r\n return estimatedNumTemplate({\r\n i18n,\r\n estimatedNum: local.value && getBIValueByAdGroupType(local.value, weekly2MonthlyInt(local.value && local.value.Impressions), campaignType),\r\n bidHintKey: local.value && local.value.bidHintKey,\r\n adGroupType: local.value && local.value.AdGroupType,\r\n bidStatus: local.value && local.value.bidStatus,\r\n });\r\n },\r\n property: (item) => item,\r\n type: 'number',\r\n format: 'integer',\r\n }), bingadsGridColumn({\r\n i18n,\r\n name: 'spend',\r\n title: 'EstimatedSpend',\r\n helpId: 'pop_BA_CampaignCreate_Budget_EstSpend',\r\n property: (item) => getBIValueByAdGroupType(item, weekly2Monthly(item.TotalCost), campaignType),\r\n type: 'number',\r\n })];\r\n\r\n super.initialize({\r\n defaultBid,\r\n gridColumns,\r\n gridName: 'performanceGrid',\r\n activityLogger,\r\n girdAriaLabel: this.options.newI18n.getString(_TL_('Performance Grid')),\r\n });\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .low_bid': 'raiseBidPopup',\r\n 'click .icon-info': 'toggleBidHint',\r\n 'mouseover .icon-info': 'toggleBidHint',\r\n };\r\n }\r\n\r\n checkLimitaion() {\r\n const count = _.reduce(this.adGroups, ( memo, num ) => memo + _.size(num.Keywords), 0);\r\n\r\n return count <= maxKeywordsToEstimate;\r\n }\r\n\r\n getAdGroupsData() {\r\n return this.grid.gridView.get('dataSource').data;\r\n }\r\n\r\n bidUpdated(e, bid) {\r\n const newBidString = _.isUndefined(bid) ? e.target.value : bid;\r\n const selectedItem = this.grid.gridView.itemOfElement(e.target);\r\n\r\n if (this.activityLogger) {\r\n this.activityLogger.signal(`get new bid from: ${_.isUndefined(bid) ? 'user input' : 'other/suggestion'}, new value: ${newBidString}`);\r\n }\r\n\r\n selectedItem.Bid = newBidString;\r\n const validateResult = this.validateBid(selectedItem);\r\n\r\n if (validateResult.isValid) {\r\n // input bid value is valid\r\n this.fetchEstimate();\r\n this.trigger('bid.updated', this.grid.gridView.get('dataSource').data);\r\n } else {\r\n // input bid value is not valid\r\n _.extend(selectedItem, {\r\n bidStatus: bidStatus.Error,\r\n bidHintKey: validateResult.bidHintKey,\r\n });\r\n\r\n this.refreshGrid(this.grid.gridView.get('dataSource').data);\r\n }\r\n }\r\n\r\n updateBudget(budget, isAllBidValid) {\r\n this.budget = budget;\r\n\r\n if (this.checkLimitaion() && isAllBidValid) {\r\n // fetch data when bid is valid and keyword count is within limitation\r\n if (_.isArray(this.adGroups) && !_.isEmpty(this.adGroups)) {\r\n this.fetchEstimate();\r\n }\r\n }\r\n }\r\n\r\n updateAdGroups(adGroup, data) {\r\n if (!_.isArray(adGroup)) {\r\n adGroup = [adGroup]; //eslint-disable-line\r\n }\r\n\r\n const adGroups = _.map(this.grid.gridView.get('dataSource').data, (item) => {\r\n const targetAdgroup = _.chain(adGroup).where({ Id: item.Id }).first().value();\r\n\r\n if (!_.isUndefined(targetAdgroup)) {\r\n return _.isEmpty(data) ? targetAdgroup : _.extend(targetAdgroup, this.calcTraffic(data, targetAdgroup), this.statusUpdate(targetAdgroup));\r\n }\r\n\r\n return item;\r\n }, this);\r\n\r\n this.refreshGrid(adGroups);\r\n }\r\n\r\n fetchEstimate(adGroup = this.adGroups, bid = null, spinner = this.$('.grid')) {\r\n this.resetMesages();\r\n\r\n if (!_.isArray(adGroup)) {\r\n adGroup = [adGroup]; //eslint-disable-line\r\n }\r\n\r\n getTrafficEstimation({\r\n locations: jsdata.Intermediate.getAll('CampaignCriterion'),\r\n adGroup,\r\n bid,\r\n budget: decimal.fromFloatToString(this.budget),\r\n languages: this.languages,\r\n campaignType: this.campaignType,\r\n }, {\r\n onNotAllSupported: (supportedCount, totalCount) => {\r\n this.viewModel.infoMessage(i18n.get('TarfficEstimation_PartiallyNonSupported')\r\n .replace('{0}', supportedCount)\r\n .replace('{1}', totalCount));\r\n this.viewModel.hasUnsupportedLocations(true);\r\n },\r\n onSuccess: (data) => {\r\n this.updateAdGroups(adGroup, data);\r\n },\r\n onRequestError: () => {\r\n this.viewModel.errorMessage(i18n.get('Budget_TrafficEstimation_RequestError'));\r\n\r\n _.each(adGroup, (item) => {\r\n _.extend(item, {\r\n bidStatus: bidStatus.Error,\r\n bidHintKey: bidHintKey.Other,\r\n });\r\n });\r\n\r\n this.updateAdGroups(adGroup);\r\n },\r\n onNonSupported: () => {\r\n // todo [yucongj] hint for no locations supported\r\n },\r\n onServiceNotSupported: (message) => {\r\n this.viewModel.errorMessage(message);\r\n },\r\n }, {\r\n spinner,\r\n }, undefined, (op) => {\r\n const isDSAMixedModeCampaignEnabled = _.result(config.get('Permissions'), 'IsDSAMixedModeCampaignEnabled', false);\r\n\r\n if (isDSAMixedModeCampaignEnabled) {\r\n const campaignTrafficEstimate = _.chain(op)\r\n .result('data')\r\n .result('CampaignTrafficEstimate')\r\n .value();\r\n\r\n // For mixed mode campaign, there may be dynamic ad groups created which don't have any keyword in it\r\n // we need to filter out these ad groups or trafficEstimate API will return error\r\n if (campaignTrafficEstimate && campaignTrafficEstimate.AdGroupTrafficEstimateParameters) {\r\n campaignTrafficEstimate.AdGroupTrafficEstimateParameters = _.filter(campaignTrafficEstimate.AdGroupTrafficEstimateParameters, (param) => {\r\n return param.KeywordTrafficEstimateParameters && param.KeywordTrafficEstimateParameters.length > 0;\r\n });\r\n }\r\n }\r\n\r\n return op;\r\n });\r\n }\r\n\r\n calcTraffic(response, adgroup) {\r\n try {\r\n const adGroupResult = _\r\n .chain(response.value)\r\n .where({\r\n AdGroupName: adgroup.Name,\r\n })\r\n .first()\r\n .result('AdGroupEstimatedTraffic')\r\n .pick('Clicks', 'Impressions', 'TotalCost', 'AveragePosition')\r\n .value();\r\n\r\n if (\r\n adgroup.Bid < adgroup.suggestedBid &&\r\n adgroup.Bid > adgroup.suggestedBid / 2 &&\r\n adgroup.suggestedClicks > adGroupResult.Clicks &&\r\n adgroup.suggestedImpressions > adGroupResult.Impressions) {\r\n _.extend(adGroupResult, {\r\n bidStatus: bidStatus.Warning,\r\n bidHintKey: bidHintKey.NormalLowBid,\r\n });\r\n\r\n if (this.activityLogger) {\r\n this.activityLogger.signal(JSON.stringify({\r\n Scenario: 'CampaignCreation',\r\n SuggestedBid: adgroup.suggestedBid,\r\n InputBid: adgroup.Bid,\r\n LowBidAlertType: 'Normal',\r\n EventName: 'CreationFlowLowBidAlertShow',\r\n SuggestedBidRequestId: adgroup.suggestedBidRequestId,\r\n CampaignId: this.campaignId,\r\n AdgroupId: adgroup.Id,\r\n CurrencyId: this.currencyCode,\r\n }));\r\n }\r\n } else if (\r\n adgroup.Bid < adgroup.suggestedBid / 2 &&\r\n adgroup.suggestedClicks > adGroupResult.Clicks &&\r\n adgroup.suggestedImpressions > adGroupResult.Impressions) {\r\n _.extend(adGroupResult, {\r\n bidStatus: bidStatus.Warning,\r\n bidHintKey: bidHintKey.CriticalLowBid,\r\n });\r\n\r\n if (this.activityLogger) {\r\n this.activityLogger.signal(JSON.stringify({\r\n Scenario: 'CampaignCreation',\r\n SuggestedBid: adgroup.suggestedBid,\r\n InputBid: adgroup.Bid,\r\n LowBidAlertType: 'Critical',\r\n EventName: 'CreationFlowLowBidAlertShow',\r\n SuggestedBidRequestId: adgroup.suggestedBidRequestId,\r\n CampaignId: this.campaignId,\r\n AdgroupId: adgroup.Id,\r\n CurrencyId: this.currencyCode,\r\n }));\r\n }\r\n } else {\r\n adGroupResult.bidStatus = bidStatus.Good;\r\n }\r\n return adGroupResult;\r\n } catch (e) {\r\n throw new Error('Exception happens when parsing the traffic estimations');\r\n }\r\n }\r\n\r\n statusUpdate(adgroup) {\r\n if (this.suggestionEnabled) {\r\n return {\r\n bidStatus:\r\n adgroup.suggestedBid > decimal.fromLocalToFloat(adgroup.Bid) ?\r\n bidStatus.Warning : bidStatus.Good,\r\n };\r\n } else {\r\n return {};\r\n }\r\n }\r\n\r\n toggleBidHint(e) {\r\n const hintKey = e.target.dataset.hintKey;\r\n // const forCriticalLowBid = hintKey === bidHintKey.CriticalLowBid || hintKey === bidHintKey.NormalLowBid;\r\n let contentText = i18n.get(hintKey || bidHintKey.Other);\r\n\r\n if (hintKey === bidHintKey.BidExceedRange) {\r\n contentText = contentText.replace('{0}', bidRange.FloorValue)\r\n .replace('{1}', bidRange.CeilingValue);\r\n }\r\n\r\n const selectedItem = this.grid.gridView.itemOfElement(e.target);\r\n\r\n const suggestionBid = selectedItem.suggestedBid;\r\n const click = weekly2MonthlyInt(selectedItem.suggestedClicks - selectedItem.Clicks);\r\n const impressionsMore = weekly2MonthlyInt(selectedItem.suggestedImpressions - selectedItem.Impressions);\r\n const lowBidBtnTitle = this.options.newI18n.getString(_TL_('Recommended ad group bid'));\r\n const lowBidBtnContent = this.options.newI18n.getString(_TL_('You could get {{impressionsMore}} more impressions and {{click}} more clicks if you adjust the bid to {{suggestionBid}}.'),\r\n {\r\n suggestionBid,\r\n impressionsMore,\r\n click,\r\n }\r\n );\r\n const applyBtnText = this.options.newI18n.getString(_TL_('Apply'));\r\n\r\n if (this.activityLogger) {\r\n this.activityLogger.signal(JSON.stringify([{\r\n Scenario: 'CampaignCreation',\r\n SuggestedBid: suggestionBid,\r\n InputBid: selectedItem.Bid,\r\n EventName: 'CreationFlowLowBidAlertClick',\r\n SuggestedBidRequestId: selectedItem.suggestedBidRequestId,\r\n CampaignId: this.campaignId,\r\n AdgroupId: selectedItem.Id,\r\n CurrencyId: this.currencyCode,\r\n }]));\r\n }\r\n\r\n const content = bidToolTipLowBid({\r\n appendLearnMoreLink,\r\n i18n,\r\n contentText,\r\n hintKey,\r\n bidHintKey,\r\n lowBidBtnTitle,\r\n lowBidBtnContent,\r\n applyBtnText,\r\n });\r\n\r\n $(e.target).popover({\r\n html: true,\r\n trigger: 'manual',\r\n content,\r\n placement: 'right',\r\n });\r\n\r\n popoverExtender.decorate($(e.target),\r\n this.excludeCb,\r\n _.bind(this.clickCb, this),\r\n _.bind(this.closeCb, this, null));\r\n\r\n $(e.target).popover('toggle');\r\n\r\n $('.close-button').click(() => {\r\n $(e.target).popover('destroy');\r\n $(this).closest('.popover').remove();\r\n });\r\n\r\n $('.cancel-link').click(() => {\r\n $(e.target).popover('destroy');\r\n $(this).closest('.popover').remove();\r\n });\r\n\r\n $('.apply-link').click(() => {\r\n if (this.activityLogger) {\r\n this.activityLogger.signal(JSON.stringify([{\r\n Scenario: 'CampaignCreation',\r\n SuggestedBid: suggestionBid,\r\n OriginalInputBid: selectedItem.Bid,\r\n EventName: 'CreationFlowLowBidSuggestionApply',\r\n SuggestedBidRequestId: selectedItem.suggestedBidRequestId,\r\n CampaignId: this.campaignId,\r\n AdgroupId: selectedItem.Id,\r\n CurrencyId: this.currencyCode,\r\n }]));\r\n }\r\n this.bidUpdated(e, decimal.fromFloatToString(suggestionBid));\r\n $(e.target).popover('destroy');\r\n $(this).closest('.popover').remove();\r\n });\r\n }\r\n\r\n raiseBidPopup(e) {\r\n const target = $(e.target);\r\n const popup = target.children('.raise-bid-popup-container');\r\n const content = popup.children('.raise-bid-popup-content');\r\n const visibleContent = popup.children('.raise-bid-popup-content:visible');\r\n const suggestedBid = popup.data('suggested_bid');\r\n const selectedItem = this.grid.gridView.itemOfElement(e.target);\r\n const suggestedClicks = weekly2MonthlyInt(selectedItem.suggestedClicks - selectedItem.Clicks);\r\n const impressionsMore = weekly2MonthlyInt(selectedItem.suggestedImpressions - selectedItem.Impressions);\r\n\r\n if (popup.length > 0 && visibleContent.length === 0) {\r\n $('.raise-bid-popup-container').hide();\r\n if (content.length === 0) {\r\n if (selectedItem.bidHintKey === 'TrafficEstimation_Hint_NormalLowBid') {\r\n const view = new PopupContentView({\r\n i18n,\r\n suggestedBid,\r\n bidHintKey: selectedItem.bidHintKey,\r\n suggestedClicks,\r\n impressionsMore,\r\n el: popup,\r\n newI18n: this.options.newI18n,\r\n callback: () => this.bidUpdated(e, decimal.fromFloatToString(suggestedBid)),\r\n });\r\n\r\n view.render();\r\n } else {\r\n const view = new PopupContentView({\r\n i18n,\r\n suggestedBid,\r\n bidHintKey: selectedItem.bidHintKey,\r\n el: popup,\r\n newI18n: this.options.newI18n,\r\n callback: () => this.bidUpdated(e, decimal.fromFloatToString(suggestedBid)),\r\n });\r\n\r\n view.render();\r\n }\r\n\r\n }\r\n logBidView(_.defaults(\r\n selectedItem,\r\n { campaignId: this.campaignId }\r\n ), this.activity);\r\n selectedItem.viewedSuggestion = true;\r\n popup.show();\r\n }\r\n }\r\n\r\n excludeCb($container, e) {\r\n const $target = $(e.target);\r\n\r\n return Boolean($target.closest('.popover').length > 0 || $target.closest('.bid-hint-text').length > 0);\r\n }\r\n\r\n clickCb() {\r\n $('.icon-info').popover('destroy');\r\n // $('.dismiss-link').closest('.popover').remove();\r\n $('.cancel-link').closest('.popover').remove();\r\n }\r\n\r\n closeCb() {\r\n _.noop();\r\n }\r\n\r\n enough() {\r\n return _.every(_.map(this.grid.gridView.get('dataSource').data, (adGroup) => {\r\n return adGroup.Bid >= adGroup.suggestedBid;\r\n }));\r\n }\r\n}\r\n","/* global _TL_ */\r\n\r\nimport _ from 'underscore';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport bidEditorTemplate from '@bingads-webui-campaign-legacy/budget/template/bidEditor-2.pug';\r\nimport { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport { BaseAdGroupBidGrid } from '@bingads-webui-campaign-legacy/budget/view/base-bid-grid';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nexport class AdgroupBidGridView extends BaseAdGroupBidGrid {\r\n initialize({\r\n defaultBid,\r\n isBidEditable,\r\n activityLogger,\r\n newI18n,\r\n }) {\r\n const gridColumns = [\r\n {\r\n name: 'adGroup',\r\n title: i18n.get('ColumnHeader_AdGroup'),\r\n width: 300,\r\n property: _.property('Name'),\r\n },\r\n bingadsGridColumn({\r\n i18n,\r\n name: 'Bid',\r\n title: 'ColumnHeader_Bid',\r\n template: bidEditorTemplate,\r\n helpId: 'pop_BA_CampaignCreate_Budget_Bid',\r\n property: (item) => {\r\n return {\r\n Bid: item.Bid,\r\n currency: config.get('AccountCurrencyCode'),\r\n isBidEditable,\r\n i18n,\r\n };\r\n },\r\n }),\r\n ];\r\n\r\n super.initialize({\r\n defaultBid,\r\n gridColumns,\r\n gridName: 'adgroupBidGrid',\r\n activityLogger,\r\n girdAriaLabel: newI18n.getString(_TL_('Ad Group Bid Grid')),\r\n });\r\n }\r\n\r\n bidUpdated(e) {\r\n const newBidString = e.target.value;\r\n const selectedItem = this.grid.gridView.itemOfElement(e.target);\r\n\r\n if (!selectedItem) {\r\n return;\r\n }\r\n selectedItem.Bid = newBidString;\r\n\r\n this.validateBid(selectedItem);\r\n\r\n this.refreshGrid(this.grid.gridView.get('dataSource').data);\r\n }\r\n}\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\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 * as scrollUtil from '@bingads-webui-component-legacy/extension/scrollTo';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/budget/viewmodel/create';\r\nimport createTemplate from '@bingads-webui-campaign-legacy/budget/template/create.pug';\r\nimport * as _PerformanceGrid from '@bingads-webui-campaign-legacy/budget/view/performance-grid';\r\nimport * as _AdgroupBidGrid from '@bingads-webui-campaign-legacy/budget/view/adgroup-bid-grid';\r\nimport * as _AdvancedSettingsView from '@bingads-webui-campaign-legacy/advanced-settings/view/advancedSettings';\r\nimport * as _BudgetPanelView from '@bingads-webui-campaign-legacy/budget/view/budget-panel';\r\nimport * as _BiddingStrategyView from '@bingads-webui-campaign-legacy/bidding-strategy/view/setting';\r\nimport biddingStrategyType from '@bingads-webui-campaign-legacy/bidding-strategy/bidding-strategy-type';\r\nimport * as _SharedBudgetView from '@bingads-webui-campaign-legacy/shared-budget/view/shared-budget-switch-editor';\r\nimport * as trafficRequestFormatter from '@bingads-webui-campaign-legacy/budget/shared/formatter';\r\nimport * as DefaultBid from '@bingads-webui-campaign-legacy/budget/shared/defaultBid';\r\nimport * as locationFilters from '@bingads-webui-campaign-legacy/location-targets/util/filters';\r\nimport timeZoneMapper from '@bingads-webui-component-legacy/timezonemapper/index';\r\nimport instrumentation from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport * as audienceCampaignLoader from '@bingads-webui-campaign-legacy/audience-campaign/loader';\r\nimport * as locationTargetTypes from '@bingads-webui-campaign-legacy/location-targets/util/locationTargetTypes';\r\nimport * as _getBidSuggestion from '@bingads-webui-campaign-legacy/budget/shared/getBudgetBidSuggestion';\r\nimport * as _getTrafficEstimationWithSuggestedBid from '@bingads-webui-campaign-legacy/budget/shared/getTrafficEstimationWithSuggestedBid';\r\nimport * as _logger from '@bingads-webui-campaign-legacy/budget/shared/log';\r\nimport * as campaignInstrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport * as POUtils from '@bingads-webui-campaign/personalized-offer-shared';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport * as goalSelector from '@bingads-webui-campaign-react/goal-selector';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\nvar AdgroupBidGrid = _AdgroupBidGrid.AdgroupBidGridView;\r\nvar BudgetPanelView = _BudgetPanelView.default;\r\nvar BiddingStrategyView = _BiddingStrategyView.default;\r\nvar AdvancedSettingsView = _AdvancedSettingsView.default;\r\nvar SharedBudgetView = _SharedBudgetView.default;\r\nvar PerformanceGrid = _PerformanceGrid.PerformanceGridView;\r\nvar AudienceAdvancedTargetSettings = audienceCampaignLoader.AudienceAdvancedTargetSettings;\r\nvar AudienceTargetInfo = audienceCampaignLoader.AudienceTargetInfo;\r\nvar getBidSuggestion = _getBidSuggestion.getBidSuggestion;\r\nvar getTrafficEstimationWithSuggestedBid = _getTrafficEstimationWithSuggestedBid.default;\r\nvar IsSuggestionInCampaignCreationWorkflowEnabled = pageContext.Permissions.IsSuggestionInCampaignCreationWorkflowEnabled;\r\nvar IsSuggestionInCampaignCreationWorkflowVNextEnabled = pageContext.Permissions.IsSuggestionInCampaignCreationWorkflowVNextEnabled;\r\nvar dynamicPermissions = _.result(pageContext.Permissions, 'dynamic', {});\r\nvar showDisclaimerBanner = _.result(dynamicPermissions, 'AgeGenderDisclaimer', false);\r\nvar logBidAdoption = _logger.logBidAdoption;\r\nvar logBudgetAdoption = _logger.logBudgetAdoption;\r\nvar logBidView = _logger.logBidView;\r\nvar activity = campaignInstrumentation.default.suggestionInCreationWorkflow.create().campaignCreation.create();\r\nvar bidRange = config.get('KeywordBidRange');\r\nvar MAX_NUMBER_OF_KEYWORD = 1000;\r\nconst bidSugggestionNewApi = '/Customers(:advertisercustomer_id)/Accounts(:account_id)/Default.CampaignTrafficEstimateWithSuggestedBid';\r\nvar View = Backbone.View.extend({\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n if (this.options && this.options.perfMarker) {\r\n this.showBudgetAndBidMarker = this.options.perfMarker.createChild('Show_Budget_And_Bid', {\r\n autoEnd: true\r\n });\r\n this.showBudgetAndBidMarker.willInit();\r\n }\r\n this.ko_model = new ViewModel();\r\n this.isSuggestionInCampaignCreationWorkflowEnabled = !!this.options.isForVNext && IsSuggestionInCampaignCreationWorkflowVNextEnabled || !this.options.isForVNext && IsSuggestionInCampaignCreationWorkflowEnabled;\r\n this.biddingStrategyView = new BiddingStrategyView({\r\n biddingStrategyType: biddingStrategyType.enhancedCPC,\r\n isInitialize: true,\r\n isCreation: true,\r\n campaignType: this.options.campaignType,\r\n activityLogger: this.options.activityLogger,\r\n i18nNewDesign: options.i18nNewDesign,\r\n ccJsData: options.ccJsData,\r\n isBroadMatchOnlyCampaign: false\r\n });\r\n this.supportCashbackSettings = options.supportCashbackSettings;\r\n var isBidEditable = (function () {\r\n var type = this.biddingStrategyView.getValues().Type;\r\n this.ko_model.isbiddingStrategyTypeCPC(type === biddingStrategyType.enhancedCPC);\r\n return type === biddingStrategyType.enhancedCPC || type === biddingStrategyType.manual;\r\n }).bind(this);\r\n this.defaultBid = DefaultBid.defaultBid();\r\n this.performanceGrid = new PerformanceGrid({\r\n defaultBid: this.defaultBid,\r\n isBidEditable: isBidEditable,\r\n activity: activity,\r\n suggestionEnabled: this.isSuggestionInCampaignCreationWorkflowEnabled,\r\n activityLogger: this.options.activityLogger,\r\n campaignType: this.options.campaignType,\r\n newI18n: this.options.i18nNewDesign\r\n });\r\n this.adgroupBidGrid = new AdgroupBidGrid({\r\n defaultBid: this.defaultBid,\r\n isBidEditable: isBidEditable,\r\n activityLogger: this.options.activityLogger,\r\n newI18n: this.options.i18nNewDesign\r\n });\r\n this.gridView = this.performanceGrid;\r\n this.performanceGrid.on('bid.updated', (function (adGroups) {\r\n if (this.performanceGrid.validate()) {\r\n this.budgetView.updateSuggestedBudget(adGroups);\r\n }\r\n }).bind(this));\r\n this.advancedSettingsView = new AdvancedSettingsView({\r\n campaignId: '',\r\n TimeZone: timeZoneMapper.getAccountTimeZone(),\r\n campaignType: this.options.campaignType,\r\n activityLogger: this.options.activityLogger,\r\n newI18n: this.options.i18nNewDesign\r\n });\r\n },\r\n updateGrid: function (adGroups, languages, removePreviousContent) {\r\n removePreviousContent = _.isUndefined(removePreviousContent) ? true : removePreviousContent;\r\n if (removePreviousContent) {\r\n adGroups = _.map(adGroups, function (adgroup) {\r\n return _.extend(adgroup, {\r\n suggestedBid: 0,\r\n isNKW: false,\r\n viewedSuggestion: false\r\n });\r\n });\r\n }\r\n this.gridView.update({\r\n adGroups: adGroups,\r\n campaignId: this.campaignId,\r\n budget: this.dailyBudget,\r\n languages: languages\r\n });\r\n },\r\n fetchSuggestedBid: function (adGroups, languages, spinner) {\r\n var self = this;\r\n getTrafficEstimationWithSuggestedBid({\r\n adGroup: adGroups,\r\n locations: jsdata.Intermediate.getAll('CampaignCriterion'),\r\n budget: parseFloat(this.dailyBudget),\r\n languages: languages\r\n }, {\r\n onSuccess: function (res) {\r\n if (res && res.value && res.value.length) {\r\n adGroups = _.map(adGroups, function (adgroup, index) {\r\n var defaultBid = adgroup.suggestedAvgCpc ? Math.max(adgroup.suggestedAvgCpc, self.defaultBid) : self.defaultBid;\r\n var nkwSuggestion = _.isNull(res.value[index]) ? 0 : res.value[index].Amount;\r\n var isNKW = nkwSuggestion >= defaultBid;\r\n var suggestedBid = parseFloat(res.value[index].SuggestedBid).toFixed(2);\r\n const clicks = parseInt(res.value[index].AdGroupEstimatedTraffic.Clicks);\r\n const impressions = parseInt(res.value[index].AdGroupEstimatedTraffic.Impressions);\r\n const reqId = res.suggestedBidRequestId;\r\n adgroup = _.extend(adgroup, {\r\n suggestedBid: suggestedBid,\r\n isNKW: isNKW,\r\n suggestedClicks: clicks,\r\n suggestedImpressions: impressions,\r\n suggestedBidRequestId: reqId\r\n });\r\n if (_.isUndefined(adgroup.Bid)) {\r\n logBidView(adgroup, activity);\r\n }\r\n if (_.isUndefined(adgroup.Bid)) {\r\n if (!_.isUndefined(suggestedBid) && suggestedBid > 0) {\r\n adgroup.Bid = decimal.fromFloatToString(suggestedBid, 2);\r\n adgroup.viewedSuggestion = true;\r\n } else {\r\n adgroup.Bid = self.defaultBid;\r\n adgroup.viewedSuggestion = true;\r\n }\r\n } else {\r\n adgroup.viewedSuggestion = false;\r\n }\r\n return adgroup;\r\n });\r\n self.updateGrid(adGroups, languages, false);\r\n } else {\r\n self.updateGrid(adGroups, languages);\r\n }\r\n },\r\n onRequestError: function () {\r\n self.updateGrid(adGroups, languages);\r\n },\r\n onServiceNotSupported: function () {\r\n self.updateGrid(adGroups, languages);\r\n },\r\n onNonSupported: function () {\r\n self.updateGrid(adGroups, languages);\r\n }\r\n }, {\r\n spinner: spinner\r\n }, bidSugggestionNewApi);\r\n },\r\n willShow: function () {\r\n var numKeywords = _.sumBy(this.options.context.get('AdGroups'), function (adgroup) {\r\n return _.isUndefined(adgroup.Keywords) ? 0 : adgroup.Keywords.length;\r\n });\r\n this.canFetchSuggestion = numKeywords <= MAX_NUMBER_OF_KEYWORD && this.isSuggestionInCampaignCreationWorkflowEnabled;\r\n window.scrollTo(0, 0);\r\n this.ko_model.hasChanges(false);\r\n var budgetFactory = SharedBudgetView.newFactory(BudgetPanelView);\r\n var languages;\r\n var campaignId;\r\n if (_.isObject(this.options.context)) {\r\n var campaignObj = this.options.context.get('Campaign');\r\n if (!_.isUndefined(campaignObj)) {\r\n if (_.isObject(campaignObj.Budget)) {\r\n this.initBudget = campaignObj.Budget.Amount;\r\n languages = campaignObj.Languages;\r\n campaignId = campaignObj.Id;\r\n }\r\n }\r\n }\r\n this.budgetView = budgetFactory({\r\n model: _.isObject(this.model) ? this.model.budget : {},\r\n initBudget: this.initBudget,\r\n haveBudgetSuggestion: this.canFetchSuggestion,\r\n languages: languages,\r\n campaignId: campaignId,\r\n activity: activity,\r\n perfMarker: this.showBudgetAndBidMarker,\r\n isForVNext: this.options.isForVNext,\r\n activityLogger: this.options.activityLogger\r\n });\r\n this.$('.budget').empty().html(this.budgetView.render().el);\r\n this.budgetView.on('budget.updated', (function (dailyBudget) {\r\n this.performanceGrid.update({\r\n budget: parseFloat(dailyBudget)\r\n });\r\n if (this.performanceGrid.validate()) {\r\n this.budgetView.updateSuggestedBudget(this.performanceGrid.getAdGroupsData(), true);\r\n }\r\n }).bind(this));\r\n if (_.isObject(this.options.context)) {\r\n var campaignObj = this.options.context.get('Campaign');\r\n if (!_.isUndefined(campaignObj)) {\r\n this.campaignId = campaignObj.Id;\r\n this.campaignName = campaignObj.Name;\r\n this.budgetView.update(campaignObj.Budget);\r\n this.initialBudget = campaignObj.Budget.Amount;\r\n this.dailyBudget = trafficRequestFormatter.getDailyBudgetAmount(campaignObj.Budget);\r\n this.ko_model.estimateTrafficSupported(true);\r\n this.gridView = this.ko_model.showAdgroupBidGrid() ? this.adgroupBidGrid : this.performanceGrid;\r\n this.canFetchSuggestion = this.canFetchSuggestion && this.ko_model.showPerformanceGrid();\r\n if (this.canFetchSuggestion) {\r\n if (this.options && this.options.perfMarker) {\r\n this.fetchSuggestedBidMarker = this.options.perfMarker.createChild('Fetch_Suggested_Bid');\r\n this.fetchSuggestedBidMarker.willInit();\r\n this.fetchSuggestedBidMarker.willFetchData();\r\n }\r\n this.fetchSuggestedBid(this.options.context.get('AdGroups'), campaignObj.Languages, this.$('.grid'));\r\n if (this.fetchSuggestedBidMarker) {\r\n this.fetchSuggestedBidMarker.done();\r\n }\r\n } else {\r\n this.fetchSuggestedBid(this.options.context.get('AdGroups'), campaignObj.Languages, this.$('.grid'));\r\n }\r\n if (!_.isEmpty(campaignObj.BiddingScheme)) {\r\n this.biddingStrategyView.update(campaignObj.BiddingScheme);\r\n }\r\n if (this.advancedSettingsView) {\r\n this.advancedSettingsView.update(campaignObj.Languages);\r\n }\r\n this.initCampaignTargets(_.defaults({\r\n CampaignType: this.options.campaignType\r\n }, campaignObj));\r\n this.updateCampaignTargets();\r\n if (pageContext.Permissions.IsPersonalizedOffersEnabled) {\r\n var subViewsNeedToUpdateCashbackColumn = _.compact([this.campaignTargetsView, this.advancedSettingsView.adScheduleView, this.advancedSettingsView.locationTargetsView]);\r\n var shouldShowCashbackColumn = POUtils.shouldSupportCashbackSettings(campaignObj, pageContext.Permissions);\r\n subViewsNeedToUpdateCashbackColumn.forEach(function (subView) {\r\n subView.toggleCashbackPercentColumns(shouldShowCashbackColumn, {\r\n level: 'Campaign',\r\n value: campaignObj.CampaignCashback && campaignObj.CampaignCashback.Percent\r\n });\r\n });\r\n if (pageContext.Permissions.IsPersonalizedOffersV2Enabled || pageContext.Permissions.IsPersonalizedOffersV3Enabled) {\r\n this.biddingStrategyView.setPersonalizedOffersOptionsAndValue({\r\n enabled: shouldShowCashbackColumn,\r\n campaignType: this.options.campaignType\r\n });\r\n }\r\n }\r\n const params = {\r\n queryParameters: {\r\n entitySet: campaignObj,\r\n expand: ['CampaignConversionGoal/Goals']\r\n },\r\n bypassCache: true\r\n };\r\n jsdata.Campaign.find(Number(campaignObj.Id), params).then(campaign => {\r\n const isSPA = campaign.CampaignSubType === 'ShoppingSponsoredProductAd';\r\n const isCPS = campaign.CampaignCashback != null && (campaign.CampaignCashback.PersonalizedOffersEnabled === true || campaign.CampaignCashback.MonthlyBudget > 0);\r\n const isSelectorEnabled = !isSPA && !isCPS;\r\n if (isSelectorEnabled) {\r\n this.campaignGoalSelectionView = new goalSelector.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 });\r\n this.$('.conversion-goal-selector').empty().html(this.campaignGoalSelectionView.render().el);\r\n this.ko_model.isCampaignLevelGoalEnabled(true);\r\n } else {\r\n this.ko_model.isCampaignLevelGoalEnabled(false);\r\n }\r\n if (pageContext.Permissions.dynamic.BroadOnly && !pageContext.Permissions.dynamic.PredictiveMatching) {\r\n this.biddingStrategyView.viewModel.isBroadMatchOnlyCampaign(campaign && campaign.IsBroadMatchOnlyCampaign);\r\n }\r\n });\r\n }\r\n }\r\n },\r\n hasChanges: function () {\r\n return this.ko_model.hasChanges();\r\n },\r\n events: {\r\n 'show.bs.collapse .campaign-targets': 'onShowCampaignTargets',\r\n 'hide.bs.collapse .campaign-targets': 'onHideCampaignTargets'\r\n },\r\n onShowCampaignTargets: function () {\r\n this.ko_model.isCampaignTargetsExpanded(true);\r\n },\r\n onHideCampaignTargets: function () {\r\n this.ko_model.isCampaignTargetsExpanded(false);\r\n },\r\n initCampaignTargets: function (campaign) {\r\n if (this.campaignTargetsView) {\r\n return;\r\n }\r\n var audienceTargetInfo = new AudienceTargetInfo({\r\n resourceName: 'CampaignCriterion',\r\n listenToLocationCriterion: false,\r\n useLocationControl: false,\r\n initAudienceAssociationView: false\r\n });\r\n this.campaignTargetsView = new AudienceAdvancedTargetSettings({\r\n viewContext: {\r\n accountCurrencyCode: pageContext.AccountCurrencyCode,\r\n currentCampaign: campaign,\r\n level: 'campaign'\r\n },\r\n scenario: 'campaign-creation',\r\n currentLevelTargetInfo: audienceTargetInfo,\r\n activityLogger: this.options.activityLogger\r\n });\r\n this.$('.campaign-targets').empty().html(this.campaignTargetsView.render().el);\r\n if (_.has(this.advancedSettingsView, 'locationTargetsView')) {\r\n this.campaignTargetsView.$('.location-setting-controller').append(this.advancedSettingsView.locationTargetsView.render().el);\r\n }\r\n },\r\n updateCampaignTargets: function () {\r\n if (!this.campaignTargetsView) {\r\n return;\r\n }\r\n var criterions = jsdata.Intermediate.getAll('CampaignCriterion');\r\n var shouldShow = _.find(criterions, function (criterion) {\r\n return criterion.SelectionStatus === locationTargetTypes.Included;\r\n });\r\n if (shouldShow) {\r\n this.campaignTargetsView.$('.selection-item-container[data-key=location]').removeClass('hide');\r\n this.campaignTargetsView.$('.location-target-setting-container').removeClass('hide');\r\n } else {\r\n this.campaignTargetsView.$('.selection-item-container[data-key=location]').addClass('hide');\r\n this.campaignTargetsView.$('.location-target-setting-container').addClass('hide');\r\n }\r\n },\r\n render: function () {\r\n this.$el.html(createTemplate({\r\n i18n: i18n,\r\n isShowDisclaimerBannerEnabled: showDisclaimerBanner\r\n }));\r\n ko.applyBindings(this.ko_model, this.el);\r\n this.$('.performance-grid').empty().html(this.performanceGrid.render().el);\r\n this.$('.adgroupbid-grid').empty().html(this.adgroupBidGrid.render().el);\r\n this.$('.bidding-strategy__container').empty().html(this.biddingStrategyView.render().el);\r\n this.$('.bidding-strategy__container')[0].addEventListener('change', (function () {\r\n this.gridView.grid.gridView.refresh(true);\r\n }).bind(this), false);\r\n this.$('.budget-bid-settings')[0].addEventListener('change', (function () {\r\n this.ko_model.hasChanges(true);\r\n }).bind(this), false);\r\n if (this.advancedSettingsView) {\r\n this.$('.advanced-settings-section').empty().html(this.advancedSettingsView.render().el);\r\n }\r\n this.biddingStrategyView.viewModel.selectedBidStrategy.subscribe(value => {\r\n this.advancedSettingsView.onSelectedBidStrategyChange(value);\r\n });\r\n return this;\r\n },\r\n shouldCancel: function () {\r\n return this.save();\r\n },\r\n shouldBack: function () {\r\n if (_.isObject(this.options.context)) {\r\n if (this.budgetView) {\r\n this.options.context.set('Draft.Budget', this.budgetView.getValues({}));\r\n }\r\n if (this.gridView) {\r\n var origin = this.options.context.get('AdGroups');\r\n var updated = this.gridView.getAdGroups();\r\n this.options.context.set('AdGroups', _.map(origin, function (adgroup) {\r\n _.each(updated, function (updatedAdgroup) {\r\n if (updatedAdgroup.Id === adgroup.Id) {\r\n adgroup.Bid = updatedAdgroup.SearchBid;\r\n }\r\n });\r\n return adgroup;\r\n }));\r\n }\r\n }\r\n return true;\r\n },\r\n validate: function () {\r\n return _.reduce([this.budgetView.validate(), this.advancedSettingsView.validate(), this.gridView ? this.gridView.validate() : true, this.biddingStrategyView.validate(), this.campaignTargetsView ? this.campaignTargetsView.validate() : true], function (memo, val) {\r\n return memo && val;\r\n }, true);\r\n },\r\n enough: function () {\r\n return _.every([this.budgetView.enough(), this.gridView ? this.gridView.enough() : true]);\r\n },\r\n errorElements: function () {\r\n return this.$('.budget-bid-settings .error, .budget-bid-settings .alert-danger').filter(':visible');\r\n },\r\n logBidAdoption: function (adGroups) {\r\n _.each(adGroups, function (adgroup) {\r\n logBidAdoption(adgroup, activity);\r\n });\r\n },\r\n logBidSuggestion: function (adGroups) {\r\n _.each(adGroups, function (adgroup) {\r\n instrumentation.logMessage([constants.LOGCATEGORY.SUBSTRATE], constants.LOGLEVEL.INFO, 'CreationFlowBidSave', JSON.stringify({\r\n Scenario: 'CampaignCreation',\r\n SuggestedBid: adgroup.suggestedBid,\r\n SaveBid: adgroup.SearchBid,\r\n EventName: 'CreationFlowBidSave',\r\n SuggestedBidRequestId: adgroup.suggestedBidRequestId,\r\n CampaignId: adgroup.Campaign.Id,\r\n AdgroupId: adgroup.Id,\r\n CurrencyId: pageContext.AccountCurrencyCode\r\n }));\r\n });\r\n },\r\n logBudgetAdoption: function (campaign, suggestedBudget) {\r\n if (_.isUndefined(campaign.BudgetId) || _.isNull(campaign.BudgetId)) {\r\n if (!_.isUndefined(suggestedBudget)) {\r\n logBudgetAdoption({\r\n Id: campaign.Id,\r\n suggestedBudget: suggestedBudget,\r\n budget: campaign.Budget.Amount,\r\n initBudget: this.initBudget\r\n }, activity);\r\n }\r\n }\r\n },\r\n save: function () {\r\n var self = this;\r\n if (!this.validate()) {\r\n scrollUtil.scrollAndCenter(this.errorElements());\r\n return false;\r\n }\r\n var saveBudgetAndBidMarker = null;\r\n if (this.options && this.options.perfMarker) {\r\n saveBudgetAndBidMarker = this.options.perfMarker.createChild('Save_Budget_And_Bid');\r\n saveBudgetAndBidMarker.willInit();\r\n }\r\n this.clearApiErrors();\r\n var adGroups = this.gridView.getAdGroups();\r\n var campaignToSave = {\r\n Id: this.campaignId,\r\n Name: this.campaignName,\r\n AdGroups: _.map(adGroups, function (adgroup) {\r\n adgroup.Status = 'Active';\r\n return _.omit(adgroup, ['isNKW', 'suggestedBid', 'viewedSuggestion', 'SuggestedBidRequestId']);\r\n })\r\n };\r\n campaignToSave.Budget = this.budgetView.getValues(campaignToSave);\r\n const biddingSchema = this.biddingStrategyView.getValues();\r\n campaignToSave['BiddingScheme'] = biddingSchema;\r\n if (pageContext.Permissions.dynamic.RSABidStrategyAutoTargeting && !pageContext.Permissions.dynamic.PredictiveMatching && this.options.campaignType === 'search') {\r\n campaignToSave.AutoTargetingEnabled = biddingSchema.AutoTargetingEnabled || false;\r\n }\r\n var advancedSettings = this.advancedSettingsView.getValues();\r\n if (pageContext.Permissions.dynamic.PredictiveMatching) {\r\n campaignToSave.AutoTargetingEnabled = advancedSettings.AutoTargetingEnabled || false;\r\n }\r\n var dateSettings = advancedSettings.dateSettings;\r\n var netWorkOptions = advancedSettings.netWorkOptions;\r\n _.each(campaignToSave.AdGroups, function (adGroup) {\r\n _.extend(adGroup, dateSettings, netWorkOptions);\r\n });\r\n this.populateCriterionCampaignIds(advancedSettings.deviceTargets);\r\n this.populateCriterionCampaignIds(advancedSettings.locationTargets);\r\n this.populateCriterionCampaignIds(advancedSettings.scheduling);\r\n campaignToSave.CampaignCriterions = advancedSettings.deviceTargets.concat(advancedSettings.locationTargets).concat(advancedSettings.scheduling);\r\n if (this.campaignTargetsView) {\r\n var campaignTargetsData = this.campaignTargetsView.getData();\r\n var campaignTargetsCriterions = _.result(campaignTargetsData, 'CampaignCriterions', []);\r\n campaignTargetsCriterions = _.map(campaignTargetsCriterions, function (criterion) {\r\n return _.defaults({\r\n Campaign: {\r\n Id: campaignToSave.Id\r\n }\r\n }, criterion);\r\n });\r\n campaignToSave.CampaignCriterions = campaignToSave.CampaignCriterions.concat(campaignTargetsCriterions);\r\n }\r\n _.extend(campaignToSave, advancedSettings.nativeAds);\r\n _.extend(campaignToSave, advancedSettings.multimediaAds);\r\n _.extend(campaignToSave, advancedSettings.vanityUrlSettings);\r\n if (this.advancedSettingsView && this.advancedSettingsView.adScheduleView) {\r\n campaignToSave.AdScheduleUseSearcherTimeZone = _.result(this.advancedSettingsView.adScheduleView, 'getAdScheduleUseSearcherTimeZone');\r\n }\r\n if (this.campaignGoalSelectionView) {\r\n campaignToSave.CampaignConversionGoalAssociations = this.campaignGoalSelectionView.convertToMTFormat(this.campaignId);\r\n }\r\n return jsdata.Campaign.update(this.campaignId, campaignToSave, {\r\n adapter: 'bulk'\r\n }).then(function (res) {\r\n var targetToCountMapping = {};\r\n _.each(res.CampaignCriterions, function (criterion) {\r\n var targetKey = criterion.Criterion.Type === 'Location' || criterion.Criterion.Type === 'Radius' ? 'update' + criterion.SelectionStatus + criterion.Criterion.Type + 'Targets' : 'create' + criterion.Criterion.Type + 'Targets';\r\n var count = targetToCountMapping[targetKey];\r\n targetToCountMapping[targetKey] = (_.isUndefined(count) ? 0 : count) + 1;\r\n });\r\n for (var target in targetToCountMapping) {\r\n var count = targetToCountMapping[target];\r\n if (count > 0) {\r\n instrumentation.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, target, count);\r\n }\r\n }\r\n if (saveBudgetAndBidMarker) {\r\n saveBudgetAndBidMarker.done();\r\n }\r\n if (self.canFetchSuggestion) {\r\n self.logBidAdoption(adGroups);\r\n self.logBudgetAdoption(campaignToSave, self.budgetView.getSuggestedBudget());\r\n }\r\n self.logBidSuggestion(adGroups);\r\n return true;\r\n }).catch((function (response) {\r\n i18nErrors.getPartial(response, ['AdGroups', 'CampaignCriterions']);\r\n this.advancedSettingsView.setData(response);\r\n response.errors = this.advancedSettingsView.handleErrors(response);\r\n if (this.campaignTargetsView) {\r\n this.campaignTargetsView.fillCriterionsWithId(_.result(response.entity, 'CampaignCriterions'));\r\n }\r\n this.ko_model.errors.add(i18nErrors.getBulkApiErrors(response.errors));\r\n scrollUtil.scrollAndCenter(this.errorElements());\r\n if (this.options.activityLogger) {\r\n _.chain(response.errors).map(function (error) {\r\n return error.Error;\r\n }).uniq().each(function (error) {\r\n this.options.activityLogger.signal(error, 'campaign budget api error');\r\n }, this);\r\n }\r\n return false;\r\n }).bind(this)).finally(withUiBlock());\r\n },\r\n clearApiErrors: function () {\r\n this.advancedSettingsView.clearApiErrors();\r\n this.ko_model.errors.clear(i18nErrors.isCampaignApiError);\r\n },\r\n populateCriterionCampaignIds: function (criterions) {\r\n _.each(criterions, function (criterion) {\r\n criterion.Status = _.isEmpty(criterion.Status) ? 'Active' : criterion.Status;\r\n criterion.Campaign = {\r\n Id: this.campaignId\r\n };\r\n }, this);\r\n },\r\n remove: function () {\r\n if (this.performanceGrid) {\r\n this.performanceGrid.remove();\r\n }\r\n if (this.adgroupBidGrid) {\r\n this.adgroupBidGrid.remove();\r\n }\r\n if (this.biddingStrategyView) {\r\n this.biddingStrategyView.remove();\r\n }\r\n if (this.advancedSettingsView) {\r\n this.advancedSettingsView.remove();\r\n }\r\n if (this.campaignTargetsView) {\r\n this.campaignTargetsView.remove();\r\n }\r\n if (this.campaignGoalSelectionView) {\r\n this.campaignGoalSelectionView.remove();\r\n }\r\n Backbone.View.prototype.remove.apply(this, arguments);\r\n }\r\n});\r\nexport default View;\r\n\r\n","import getTrafficEstimation from '@bingads-webui-campaign-legacy/budget/shared/getTrafficEstimation';\r\nconst endpoint = '/Customers(:advertisercustomer_id)/Accounts(:account_id)/Default.CampaignTrafficEstimateWithSuggestedBid';\r\n\r\nexport default function (params, callbacks, options, timestamp) {\r\n return getTrafficEstimation(params, callbacks, options, endpoint, timestamp);\r\n}\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport koSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\nimport decimalNumber from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport { isXandrServing } from '@bingads-webui-campaign-react/constants';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\nconst s$Budget = window.globalLegacySchema.get('Budget');\r\n\r\nconst accountCurrencyCode = config.get('AccountCurrencyCode');\r\n\r\nconst DAILY_BUDGET_TYPE = 'DailyStandard';\r\nconst DAILY_ACCELERATED_BUDGET_TYPE = 'DailyAccelerated';\r\nconst LIFETIME_BUDGET_TYPE = 'LifetimeBudgetStandard';\r\n\r\nconst dailyBudget = {\r\n text: i18n.get('BudgetType_DailyStandard'),\r\n value: DAILY_BUDGET_TYPE,\r\n};\r\n\r\nconst dailyAcceleratedBudget = {\r\n text: i18n.get('BudgetType_DailyAccelerated'),\r\n value: DAILY_ACCELERATED_BUDGET_TYPE,\r\n};\r\n\r\nconst lifetimeBudget = {\r\n text: i18n.get('BudgetType_LifetimeBudgetStandard'),\r\n value: LIFETIME_BUDGET_TYPE,\r\n};\r\n\r\nconst budgetTypes = [dailyBudget, dailyAcceleratedBudget, lifetimeBudget];\r\n\r\nexport default class ViewModel {\r\n constructor({\r\n Amount,\r\n Type,\r\n CampaignType,\r\n showBudgetMinRecommend,\r\n CampaignSubType,\r\n CampaignSettings,\r\n budgetRange,\r\n } = {}) {\r\n const { activity } = instrumentation.createScenarioAndActivity({\r\n scenarioName: 'InlineBudgetEdit',\r\n activityName: 'EditBudget',\r\n });\r\n\r\n koSchema.properties(this, s$Budget, ['Amount', 'Type'], { Amount, Type }, {\r\n Amount: {\r\n isValid: (value) => {\r\n if (_.isNumber(value)) {\r\n return value >= budgetRange.FloorValue && value <= budgetRange.CeilingValue;\r\n }\r\n\r\n return true;\r\n },\r\n message: Type === LIFETIME_BUDGET_TYPE ?\r\n i18n.get('Budget_InputValueError_Lifetime')\r\n .replace('{0}', accountCurrencyCode)\r\n .replace('{1}', decimalNumber.fromFloatToString(budgetRange.FloorValue))\r\n .replace('{2}', accountCurrencyCode)\r\n .replace('{3}', decimalNumber.fromFloatToString(budgetRange.CeilingValue)) :\r\n i18n.get('Budget_InputValueError_Daily')\r\n .replace('{0}', accountCurrencyCode)\r\n .replace('{1}', decimalNumber.fromFloatToString(budgetRange.FloorValue)),\r\n },\r\n });\r\n\r\n const requiredValidator = _.result(this.Amount.validators, 'required');\r\n\r\n requiredValidator.nullable = false;\r\n this.budgetTypes = ko.computed(() => {\r\n if (pageContext.Permissions.IsDeprecateAcceleratedBudgetEnabled &&\r\n Type === DAILY_BUDGET_TYPE) {\r\n return [dailyBudget];\r\n } else if (Type === LIFETIME_BUDGET_TYPE) {\r\n return [lifetimeBudget];\r\n }\r\n return budgetTypes;\r\n });\r\n this.campaignType = CampaignType;\r\n this.selectedType = ko.observable(_.find(budgetTypes, (type) => {\r\n return type.value === Type;\r\n }) || _.first(this.budgetTypes));\r\n ko.computed(() => {\r\n this.Type(this.selectedType().value); //eslint-disable-line\r\n });\r\n this.showBudgetMinRecommend = ko.computed(() => {\r\n // eslint-disable-next-line new-cap\r\n const showBudgetMinRecommendation = showBudgetMinRecommend && Amount && Amount >= 0.1 && this.Amount() && this.Amount() < (Amount * 0.5).toFixed(2) && !isXandrServing(CampaignSubType, CampaignSettings);\r\n\r\n if (showBudgetMinRecommendation) {\r\n activity.trace('BCCForBudgetMinimumRecommendation: show');\r\n }\r\n return showBudgetMinRecommendation;\r\n }, this);\r\n this.applySuggestedBudget = () => {\r\n activity.trace('BCCForBudgetMinimumRecommendation: apply');\r\n // eslint-disable-next-line new-cap\r\n this.Amount((Amount * 0.5).toFixed(2) * 1);\r\n };\r\n this.applySuggestedBudgetLog = () => {\r\n // eslint-disable-next-line new-cap\r\n if (Amount && Amount >= 0.1 && this.Amount() && this.Amount() < (Amount * 0.5).toFixed(2)) {\r\n // eslint-disable-next-line new-cap\r\n activity.trace(`Bid${this.Amount()} Less than 50% of current budget${Amount}`);\r\n\r\n }\r\n };\r\n }\r\n\r\n isValid() {\r\n this.errors.clear();\r\n return this.validate();\r\n }\r\n\r\n handleErrors(errors) {\r\n this.errors.clear();\r\n this.errors.add(errors);\r\n }\r\n}\r\n\r\n","/* eslint-disable */\r\nexport default function load(module) {\r\n switch(module) {\r\n case '@bingads-webui/i18n-amd-loader!campaignui/feature/competition-tab':\r\n return Promise.resolve(window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/competition-tab'));\r\n case '@bingads-webui-component-legacy/http/channel/odata':\r\n return import(/* webpackChunkName: \"settings-page-dynamic-feature-odata\" */ '@bingads-webui-component-legacy/http/channel/odata').then(legacyModule => legacyModule.default);\r\n case '@bingads-webui-component-legacy/config/index':\r\n return import(/* webpackChunkName: \"settings-page-dynamic-feature-config\" */ '@bingads-webui-component-legacy/config/index').then(legacyModule => legacyModule.default);\r\n case '@bingads-webui-campaign-legacy/instrumentation/index':\r\n return import(/* webpackChunkName: \"settings-page-dynamic-feature-instrumentation\" */ '@bingads-webui-campaign-legacy/instrumentation/index');\r\n case '@bingads-webui-campaign/recommendation-inline-budget-view':\r\n return import(/* webpackChunkName: \"settings-page-dynamic-feature-inline-budget\" */ '@bingads-webui-campaign/recommendation-inline-budget-view');\r\n default:\r\n return new Promise(null);\r\n }\r\n}\r\n","import Promise from 'bluebird';\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport { getBulkApiErrors } from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport withUiBlock from '@bingads-webui-component-legacy/uiblocker/index';\r\nimport jsData from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport template from '@bingads-webui-campaign-legacy/budget/template/inline-budget-editor.pug';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/budget/viewmodel/inline-budget-editor';\r\nimport templateWithLandscape from '@bingads-webui-campaign-legacy/budget/template/inline-budget-editor-with-landscape.pug';\r\nimport { logBudgetLandScapeView, logBudgetLandScapeAdoption } from '@bingads-webui-campaign-legacy/budget/shared/log';\r\nimport load from '@bingads-webui-campaign-legacy/budget/view/dynamic-require-es6-load';\r\nimport { MinXandrDailyBudgetRangePerCurrency, LinkedInBudgetRangePerCurrency, getBudgetRangeOld } from '@bingads-webui-campaign-legacy/common-grid-config/budget/get-budget-range';\r\nimport { isXandrServing } from '@bingads-webui-campaign-react/constants';\r\n\r\nconst accountCurrencyCode = config.get('AccountCurrencyCode');\r\nconst i18nGlobal = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nconst BUDGET_SUGGESTION = 'BudgetSuggestions';\r\nconst LIFETIME_BUDGET_TYPE = 'LifetimeBudgetStandard';\r\n\r\nfunction getErrors(response) {\r\n const unexpectedError = [i18nGlobal.getString('ErrorNumber_-1')];\r\n\r\n if (!response || !response.errors) {\r\n return unexpectedError;\r\n }\r\n\r\n const errors = getBulkApiErrors(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\nfunction fetchBudgetLandscape(campaignId, odata) {\r\n const odataPath = config.get('adinsight.odata.url');\r\n const uri = `Customers(:customer_id)/Accounts(:account_id)/Campaigns(${campaignId})/Opportunity.GetBudgetLandscape`;\r\n\r\n return odata.get(uri, {\r\n path: 'AdInsight/V2/',\r\n host: odataPath,\r\n });\r\n}\r\n\r\nexport default class View extends Backbone.View {\r\n initialize({ item, $elToBlock, isForVNext, permissions, currencySymbol, clientName, perfMarker, showBudgetMinRecommend, importNotificationCallback }) {\r\n if (!item.Id || !item.Budget) {\r\n throw new Error('Campaign Id or Budget not found when update budget.');\r\n }\r\n\r\n this.item = item;\r\n this.$elToBlock = $elToBlock;\r\n this.isForVNext = isForVNext;\r\n this.permissions = permissions;\r\n this.currencySymbol = currencySymbol;\r\n this.clientName = clientName;\r\n this.perfMarker = perfMarker;\r\n this.landscapeEnabled = permissions.IsBudgetInlineSuggestionEnabled;\r\n this.importNotificationCallback = importNotificationCallback;\r\n\r\n const budgetRange = getBudgetRangeOld(accountCurrencyCode);\r\n const { Type: budgetType, Amount, LifetimeBudgetAmount } = item.Budget || {};\r\n\r\n this.budgetAmount = budgetType === LIFETIME_BUDGET_TYPE ? LifetimeBudgetAmount : Amount;\r\n\r\n this.budgetRange = {\r\n CeilingValue: budgetType === LIFETIME_BUDGET_TYPE ? budgetRange.LifetimeRange.CeilingValue : budgetRange.DailyRange.CeilingValue,\r\n FloorValue: budgetType === LIFETIME_BUDGET_TYPE ? budgetRange.LifetimeRange.FloorValue : budgetRange.DailyRange.FloorValue,\r\n };\r\n const { CampaignType, CampaignSubType, CampaignSettings } = item;\r\n\r\n if (isXandrServing(CampaignSubType, CampaignSettings) && MinXandrDailyBudgetRangePerCurrency[accountCurrencyCode]) {\r\n this.budgetRange.FloorValue = MinXandrDailyBudgetRangePerCurrency[accountCurrencyCode];\r\n }\r\n\r\n if (CampaignType === 'LinkedIn' && LinkedInBudgetRangePerCurrency[accountCurrencyCode]) {\r\n this.budgetRange.FloorValue = LinkedInBudgetRangePerCurrency[accountCurrencyCode].Min;\r\n this.budgetRange.CeilingValue = LinkedInBudgetRangePerCurrency[accountCurrencyCode].Max;\r\n }\r\n\r\n this.viewModel = new ViewModel(\r\n _.extend(\r\n _.pick(item.Budget, 'Type', 'CampaignType'),\r\n { showBudgetMinRecommend, CampaignSubType, CampaignSettings, budgetRange: this.budgetRange, Amount: this.budgetAmount },\r\n ));\r\n const hasBudgetLandscape = _.contains(this.item.DeliveryStatusDetails, BUDGET_SUGGESTION) ||\r\n this.item.DeliveryStatus === BUDGET_SUGGESTION;\r\n\r\n if (hasBudgetLandscape && this.landscapeEnabled) {\r\n const budgetSuggestionPerfMarker = this.createMarker('Open_BudgetSuggestion');\r\n\r\n budgetSuggestionPerfMarker('willFetchFile');\r\n\r\n const i18nForBudgetLandscapePromise = load('@bingads-webui/i18n-amd-loader!campaignui/feature/competition-tab');\r\n const odataPromise = load('@bingads-webui-component-legacy/http/channel/odata');\r\n const instrumentationPromise = load('@bingads-webui-campaign-legacy/instrumentation/index');\r\n const budgetLandScapeTablePromise = load('@bingads-webui-campaign/recommendation-inline-budget-view');\r\n\r\n Promise.all([i18nForBudgetLandscapePromise, odataPromise,\r\n instrumentationPromise, budgetLandScapeTablePromise,\r\n ]).then(([\r\n i18nForBudgetLandscape,\r\n odata,\r\n instrumentation,\r\n { BudgetLandScapeTable },\r\n ]) => {\r\n budgetSuggestionPerfMarker('willInit');\r\n this.activity = instrumentation.default.inlineBudgetEditor.create().recordBudgetLandscape.create();\r\n\r\n budgetSuggestionPerfMarker('willFetchData');\r\n fetchBudgetLandscape(item.Id, odata).then((res) => {\r\n const rawData = _.chain(res).result('value').first().value();\r\n\r\n if (rawData) {\r\n budgetSuggestionPerfMarker('willRender');\r\n this.tableView = new BudgetLandScapeTable({\r\n opportunityData: rawData,\r\n i18n: i18nForBudgetLandscape,\r\n conversionSummaryStatus: rawData.ConversionStatus,\r\n budgetRange: this.budgetRange,\r\n currentBudget: this.budgetAmount,\r\n fromBudgetColumn: true,\r\n fromCampaignTab: true,\r\n view: this,\r\n el: this.$('.landscape-table'),\r\n });\r\n\r\n this.tableView.render();\r\n budgetSuggestionPerfMarker('done');\r\n\r\n // landscape view log\r\n logBudgetLandScapeView(\r\n rawData.Target && rawData.Target.CampaignId,\r\n this.clientName,\r\n rawData.OpportunityId,\r\n this.tableView.ko_model.rawSuggestedBudget,\r\n i18nForBudgetLandscape.currency,\r\n this.activity,\r\n );\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .save': 'save',\r\n 'click .cancel': 'cancel',\r\n 'click .apply-budget': 'applySuggestedBudget',\r\n };\r\n }\r\n\r\n render() {\r\n if (this.landscapeEnabled) {\r\n this.$el.html(templateWithLandscape({\r\n i18nGlobal,\r\n i18n,\r\n currencySymbol: this.currencySymbol,\r\n minimumBudget: this.item.Budget ? (this.budgetAmount * 0.5).toFixed(2) : 'undefined',\r\n currencySymbolClassName: `symbol-size-${this.currencySymbol.length}`,\r\n }));\r\n } else {\r\n this.$el.html(template({\r\n i18nGlobal,\r\n i18n,\r\n }));\r\n }\r\n\r\n ko.applyBindings(this.viewModel, this.el);\r\n return this;\r\n }\r\n\r\n save() {\r\n if (!this.viewModel.isValid()) {\r\n return;\r\n }\r\n\r\n let updatedBudget = _.defaults(this.viewModel.toObject(), this.item.Budget);\r\n\r\n // update budget by selecting value from landscape data\r\n if (this.tableView) {\r\n updatedBudget.Amount = this.tableView.getSelectedNewBudget();\r\n } else {\r\n this.viewModel.applySuggestedBudgetLog();\r\n }\r\n const updated = _.defaults({\r\n Budget: updatedBudget,\r\n }, _.pick(this.item, 'Id'));\r\n const $elToBlock = this.$elToBlock || this.$el.parent();\r\n\r\n jsData.Campaign\r\n .update(this.item.Id, updated, { adapter: 'bulk', cacheResponse: false })\r\n .finally(withUiBlock($elToBlock))\r\n .then(() => {\r\n this.trigger('close', updatedBudget);\r\n if (this.importNotificationCallback) {\r\n this.importNotificationCallback(updatedBudget);\r\n }\r\n if (this.tableView) {\r\n // landscape adopt log\r\n logBudgetLandScapeAdoption(\r\n this.tableView.campaignId,\r\n this.clientName,\r\n this.tableView.opportunityId,\r\n this.tableView.ko_model.rawSuggestedBudget,\r\n updatedBudget.Amount,\r\n this.tableView.i18n.currency,\r\n this.activity,\r\n );\r\n }\r\n })\r\n .catch((response) => {\r\n this.viewModel.handleErrors(getErrors(response));\r\n });\r\n }\r\n\r\n cancel() {\r\n this.trigger('close');\r\n }\r\n\r\n applySuggestedBudget() {\r\n this.viewModel.applySuggestedBudget();\r\n }\r\n\r\n createMarker(name) {\r\n let marker = () => { /* empty because don't have perfmarket in campaign new ui */ };\r\n\r\n if (this.perfMarker) {\r\n const childMarker = this.perfMarker.createChild(name);\r\n\r\n marker = (event) => {\r\n childMarker[event]();\r\n };\r\n }\r\n\r\n return marker;\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport { Dialog } from '@bingads-webui/dialog';\r\nimport messageTemplate from './template/bulk-delete-lightbox-message.pug';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/bulk-action-accounts-grid');\r\n\r\nexport class MessageView extends Backbone.View {\r\n initialize({message}) {\r\n this.message = message;\r\n }\r\n\r\n render() {\r\n this.$el.html(messageTemplate({message: this.message}));\r\n return this;\r\n }\r\n}\r\n\r\nexport default class View extends Backbone.View {\r\n initialize({\r\n proceedButtonClickCallback,\r\n accountsCount,\r\n }) {\r\n this.proceedButtonClickCallback = proceedButtonClickCallback;\r\n this.accountsCount = accountsCount;\r\n let buttons = [{\r\n text: i18n.getString('BulkAccountDelete_Proceed'),\r\n name: 'primaryButton',\r\n class: 'btn btn-primary lightboxPrimary',\r\n disabled: accountsCount <= 0,\r\n }, {\r\n text: i18n.getString('BulkAccountDelete_Goback'),\r\n name: 'defaultButton',\r\n class: 'btn btn-default lightboxDefault',\r\n }];\r\n\r\n this.lightboxDiv = new Dialog({ className: 'bulk-delete-dialog', showCloseButton: false });\r\n this.lightboxDiv.setContent(new MessageView({message: i18n.getString('BulkAccountDelete_Body')}));\r\n this.lightboxDiv.setState({\r\n title: i18n.getString('BulkAccountDelete_Title'),\r\n buttons,\r\n });\r\n this.lightboxDiv.on('clickedButton', (name) => {\r\n if (name === 'primaryButton') {\r\n this.proceedButtonClickCallback();\r\n }\r\n this.lightboxDiv.remove();\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","/* eslint-disable no-undef */\r\nimport Backbone from 'backbone';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport { CommonDialog } from '@bingads-webui-cc-react/dialogs';\r\n\r\nconst { AlertDialog } = CommonDialog;\r\n\r\nconst dialogContent = ({ i18n, accountNumbersList }) =>\r\n <>\r\n

\r\n {i18n.getString(_TL_('The reactivation action is successful but due to not having required account business location (ABL) information, the following account(s) can’t serve ads until ABL is completed. Please notify the customer to fill in corresponding fields on their account setting page.')) }\r\n

\r\n

\r\n {accountNumbersList}\r\n

\r\n ;\r\n\r\nexport default class View extends Backbone.View {\r\n initialize({\r\n i18n,\r\n accountNumbers,\r\n onAction,\r\n }) {\r\n this.i18n = i18n;\r\n this.accountNumbersList = accountNumbers.join(', ');\r\n this.onAction = onAction;\r\n }\r\n\r\n hide() {\r\n ReactDOM.unmountComponentAtNode(this.el);\r\n this.remove();\r\n }\r\n\r\n render() {\r\n ReactDOM.render(React.createElement(\r\n AlertDialog,\r\n {\r\n name: 'bulk-reactivate-abl-missing',\r\n onAction: () => {\r\n this.hide();\r\n this.onAction();\r\n },\r\n title: this.i18n.getString(_TL_('Account business location (ABL) required')),\r\n content: dialogContent({ i18n: this.i18n, accountNumbersList: this.accountNumbersList }),\r\n alertButtonText: this.i18n.getString(_TL_('OK')),\r\n },\r\n ), this.el);\r\n return this;\r\n }\r\n}\r\n","export const AccountHoldStatus = {\r\n AccountHoldStatusInvalid: 'AccountHoldStatusInvalid',\r\n AccountHoldStatusUpdateFailure: 'AccountHoldStatusUpdateFailure',\r\n};\r\n\r\nexport const AccountInactiveReasons = {\r\n AccountMissingABL: 19,\r\n};\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport 'jquery.redirect';\r\nimport instrument from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport instrumentConsts from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport BulkDeleteLightbox from './bulk-delete-lightbox';\r\nimport BulkReactivateABLMisssingLightbox from './bulk-reactivate-abl-missing-lightbox';\r\nimport { getCCUrl } from '@bingads-webui-component-legacy/bingads-grid/shared/clientcenter-url-helper';\r\nimport { AccountHoldStatus, AccountInactiveReasons } from './constants';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/bulk-action-accounts-grid');\r\n\r\nconst alertCenter = window.App.views.alertCenter;\r\n\r\nconst postRequestWithErrorHandled = ({ url, data, successCallback, logMethodName }) => {\r\n $.advertiser.ajaxPost({\r\n url,\r\n xhrFields: {\r\n withCredentials: true,\r\n },\r\n contentType: 'application/json',\r\n dataType: 'json',\r\n data: JSON.stringify(data),\r\n onSuccess: (response) => {\r\n if (response) {\r\n if (response.IsSuccess === true) {\r\n successCallback(response);\r\n } else {\r\n // else: Error messages from a onSuccess ajax call are handled in $.advertiser.ajaxPost, so no need to display them to the user at this moment\r\n instrument.logMessage(instrumentConsts.LOGCATEGORY.INFO, instrumentConsts.LOGLEVEL.INFO, logMethodName, `response with errors. query parameters: ${JSON.stringify(data)}, response: ${JSON.stringify(response)}`);\r\n }\r\n } else {\r\n alertCenter.showWarning(i18n.getString('GenericErrorMessage_Short'));\r\n instrument.logMessage(instrumentConsts.LOGCATEGORY.ERROR, instrumentConsts.LOGLEVEL.INFO, logMethodName, `response empty: ${JSON.stringify(data)}`);\r\n }\r\n },\r\n onError: (e) => {\r\n alertCenter.showWarning(i18n.getString('GenericErrorMessage_Short'));\r\n instrument.logMessage(instrumentConsts.LOGCATEGORY.ERROR, instrumentConsts.LOGLEVEL.INFO, logMethodName, `response/ajaxPost failed with ${JSON.stringify(e)}`);\r\n },\r\n hideLoadingPanelOnSuccess: true,\r\n });\r\n};\r\n\r\nconst handleErrorMessage = (errors, logMethodName, data) => {\r\n let firstError = _.first(errors);\r\n\r\n if (!_.isEmpty(firstError)) {\r\n let errorCodes = _.map(errors, (error) => error.Code);\r\n\r\n instrument.logMessage(instrumentConsts.LOGCATEGORY.INFO, instrumentConsts.LOGLEVEL.INFO, logMethodName,\r\n `response with errors. query parameters: ${JSON.stringify(data)}, response: Error codes = ${JSON.stringify(errorCodes)}`);\r\n return firstError.Message;\r\n }\r\n\r\n return firstError;\r\n};\r\n\r\nconst postRequestWithBatchErrorHandled = ({ url, data, successCallback, logMethodName }) => {\r\n $.advertiser.ajaxPost({\r\n url,\r\n xhrFields: {\r\n withCredentials: true,\r\n },\r\n contentType: 'application/json',\r\n dataType: 'json',\r\n data: JSON.stringify(data),\r\n onSuccess: (responses) => {\r\n if (responses) {\r\n _.each(responses, (response) => {\r\n const { Value: { IsSuccess: isSuccess, InternalErrors, SenderErrors } = {} } = response;\r\n const isAccountAlreadyHoldOrUnHold = _.isEmpty(InternalErrors) && _.all(SenderErrors, (error) => error.Code === AccountHoldStatus.AccountHoldStatusInvalid);\r\n\r\n if (isSuccess || isAccountAlreadyHoldOrUnHold) {\r\n successCallback(data);\r\n } else {\r\n let showWarning;\r\n\r\n showWarning = handleErrorMessage(InternalErrors, logMethodName, data);\r\n showWarning = handleErrorMessage(SenderErrors, logMethodName, data);\r\n if (_.isEmpty(showWarning)) {\r\n alertCenter.showWarning(i18n.getString('GenericErrorMessage_Short'));\r\n } else {\r\n alertCenter.showWarning(showWarning);\r\n }\r\n }\r\n });\r\n } else {\r\n alertCenter.showWarning(i18n.getString('GenericErrorMessage_Short'));\r\n instrument.logMessage(instrumentConsts.LOGCATEGORY.ERROR, instrumentConsts.LOGLEVEL.INFO, logMethodName, `response empty: ${JSON.stringify(data)}`);\r\n }\r\n },\r\n onError: (e) => {\r\n alertCenter.showWarning(i18n.getString('GenericErrorMessage_Short'));\r\n instrument.logMessage(instrumentConsts.LOGCATEGORY.ERROR, instrumentConsts.LOGLEVEL.INFO, logMethodName, `response/ajaxPost failed with ${JSON.stringify(e)}`);\r\n },\r\n hideLoadingPanelOnSuccess: true,\r\n });\r\n};\r\n\r\nconst fetchAccountsData = (accountIds, successCallback) => {\r\n $.advertiser.ajaxGet({\r\n url: getCCUrl('api/account', { accountIds }),\r\n xhrFields: {\r\n withCredentials: true,\r\n },\r\n contentType: 'application/json',\r\n dataType: 'json',\r\n onSuccess: (response) => {\r\n if (response) {\r\n successCallback(response.value);\r\n }\r\n },\r\n hideLoadingPanelOnSuccess: true,\r\n });\r\n};\r\n\r\nconst postRequestRedirect = (url, data) => {\r\n $.redirect(url, data);\r\n};\r\n\r\nexport function bulkEditAbl({selectedAccounts, customerId, userId}) {\r\n const bulkEditTaxesValidationErrorsSegments = 'accounts/BulkEditTaxesValidationErrors';\r\n const accountsUpdateSegments = 'accounts/update';\r\n const logMethodName = 'BulkEditTaxesValidationErrors';\r\n\r\n const data = {\r\n cid: customerId,\r\n uid: userId,\r\n accountIds: _.pluck(selectedAccounts, 'Id'),\r\n };\r\n\r\n const bulkEditTaxesValidationErrorsUrl = getCCUrl(bulkEditTaxesValidationErrorsSegments);\r\n const accountsUpdateUrl = getCCUrl(accountsUpdateSegments, _.pick(data, 'cid', 'uid'));\r\n\r\n postRequestWithErrorHandled({\r\n url: bulkEditTaxesValidationErrorsUrl,\r\n data,\r\n successCallback: () => {\r\n postRequestRedirect(accountsUpdateUrl, data);\r\n },\r\n logMethodName,\r\n });\r\n}\r\n\r\nexport function bulkEditManualHold({selectedAccounts, isApplyHold, successCallback }) {\r\n const bulkEditManualHoldSegments = 'accounts/BatchAccountManualHold';\r\n const logMethodName = 'BatchAccountManualHold';\r\n\r\n const data = {\r\n accountIds: _.pluck(selectedAccounts, 'Id'),\r\n isApplyHold,\r\n };\r\n const bulkEditManualHoldUrl = getCCUrl(bulkEditManualHoldSegments, data);\r\n\r\n postRequestWithBatchErrorHandled({\r\n url: bulkEditManualHoldUrl,\r\n data,\r\n successCallback,\r\n logMethodName,\r\n });\r\n}\r\n\r\nexport function bulkDeleteAccounts({selectedAccounts, successCallback}) {\r\n const accountsDeleteSegments = 'accounts/Delete';\r\n const logMethodName = 'bulkDeleteAccounts';\r\n\r\n const data = {\r\n accountIds: _.pluck(selectedAccounts, 'Id'),\r\n };\r\n const accountsDeleteUrl = getCCUrl(accountsDeleteSegments);\r\n\r\n if (data.accountIds && data.accountIds.length) {\r\n const dialogView = new BulkDeleteLightbox({\r\n accountsCount: data.accountIds.length,\r\n proceedButtonClickCallback: () => {\r\n postRequestWithErrorHandled({\r\n url: accountsDeleteUrl,\r\n data,\r\n successCallback,\r\n logMethodName,\r\n });\r\n },\r\n });\r\n\r\n dialogView.render();\r\n }\r\n}\r\n\r\nexport function bulkReactivateAccounts({i18n: newI18n, selectedAccounts, successCallback}) {\r\n const accountsReactivateSegments = 'accounts/Reactivate';\r\n const logMethodName = 'bulkReactivateAccounts';\r\n const getABLMissingAccounts = (accounts) => _.filter(accounts, (account) => {\r\n const accountInactiveReasons = _.get(account, 'AccountInactiveReasonsV1', []);\r\n\r\n return Array.isArray(accountInactiveReasons) && accountInactiveReasons.some((reason) => reason.Reason === AccountInactiveReasons.AccountMissingABL);\r\n });\r\n const selectedAccountIds = _.pluck(selectedAccounts, 'Id');\r\n const data = {\r\n accountIds: selectedAccountIds,\r\n };\r\n const accountsReactivateUrl = getCCUrl(accountsReactivateSegments);\r\n\r\n postRequestWithErrorHandled({\r\n url: accountsReactivateUrl,\r\n data,\r\n successCallback: () => {\r\n fetchAccountsData(selectedAccountIds, (accounts) => {\r\n const ABLMissingAccounts = getABLMissingAccounts(accounts);\r\n\r\n if (ABLMissingAccounts.length) {\r\n const ABLMissingAlertView = new BulkReactivateABLMisssingLightbox({\r\n i18n: newI18n,\r\n accountNumbers: _.pluck(ABLMissingAccounts, 'Number'),\r\n onAction: successCallback,\r\n });\r\n\r\n ABLMissingAlertView.render();\r\n } else {\r\n successCallback();\r\n }\r\n });\r\n },\r\n logMethodName,\r\n });\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { queryify } from '@bingads-webui/url-util';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport $http from '@bingads-webui-component-legacy/http/channel/core';\r\n\r\nconst exclusionUrl = '/Campaign/campaigns/BulkUpdate';\r\n\r\nfunction getUrl() {\r\n return queryify(exclusionUrl, {\r\n cid: state.get('customer_id'),\r\n uid: state.get('user_id'),\r\n aid: state.get('account_id'),\r\n __adcenterAJAX: 'true',\r\n });\r\n}\r\n\r\nexport function exclusionsUpdate(data) {\r\n return $http.post(getUrl(), {\r\n contentType: 'application/x-www-form-urlencoded',\r\n 'data': _.defaults({\r\n __RequestVerificationToken: $('input[name=\"__RequestVerificationToken\"]').val(),\r\n 'CampaignsGrid.Action': 'BulkAction',\r\n }, data),\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport { CampaignType } from '@bingads-webui-campaign/campaign-ui-common';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/bulk-campaign-exclusions');\r\n\r\nconst whitelistCampaignTypesForDefaultSelections = [\r\n CampaignType.None,\r\n CampaignType.Default,\r\n CampaignType.Shopping,\r\n CampaignType.DynamicSearchAds,\r\n CampaignType.Audience,\r\n CampaignType.Smart,\r\n CampaignType.Hotel,\r\n CampaignType.All,\r\n];\r\n\r\nconst defaultSelections = [\r\n {\r\n value: '3',\r\n text: i18n.get('BulkEdit_SiteExclusions_Label'),\r\n label: i18n.get('BulkEdit_SiteExclusions_Label'),\r\n confirmText: i18n.get('BulkEdit_Campaigns_UpdateSiteExclusionConfirmMsg'),\r\n helpTopic: 'Page_CampaignExclusionSettingsPopup_WebsitesToExclude',\r\n name: 'SiteExclusions',\r\n helpAriaLabel: (i18n.get('Click to learn more about {{item}}') || '').replace('{{item}}', i18n.get('BulkEdit_SiteExclusions_Label')),\r\n }, {\r\n value: '5',\r\n text: i18n.get('BulkEdit_IPExclusions_Label'),\r\n label: i18n.get('BulkEdit_IPExclusions_Label'),\r\n confirmText: i18n.get('BulkEdit_Campaigns_UpdateIPExclusionConfirmMsg'),\r\n helpTopic: 'Page_CampaignExclusionSettingsPopup_IPAddressToExclude',\r\n name: 'IPExclusions',\r\n helpAriaLabel: (i18n.get('Click to learn more about {{item}}') || '').replace('{{item}}', i18n.get('BulkEdit_IPExclusions_Label')),\r\n },\r\n];\r\n\r\nconst endDateSelection = {\r\n value: '7',\r\n text: i18n.get('Audience_Campaign_BulkEdit_EndDate'),\r\n label: i18n.get('Audience_Campaign_BulkEdit_EndDate'),\r\n confirmText: i18n.get('Audience_Campaign__BulkEndDate_ConfirmMsg'),\r\n name: 'EndDate',\r\n shouldGridReload: true,\r\n};\r\n\r\nconst adScheduleTimeZoneSelection = {\r\n value: '6',\r\n text: i18n.get('BulkEdit_AdScheduleTimeZone_OptionText'),\r\n label: i18n.get('BulkEdit_AdScheduleTimeZone_Label'),\r\n confirmText: i18n.get('BulkEdit_Campaigns_UpdateAdScheduleTimeZoneConfirmMsg'),\r\n helpTopic: 'pop_BA_Targeting_TimeZone',\r\n name: 'AdScheduleUseSearcherTimeZone',\r\n helpAriaLabel: (i18n.get('Click to learn more about {{item}}') || '').replace('{{item}}', i18n.get('BulkEdit_AdScheduleTimeZone_Label')),\r\n};\r\n\r\nexport default class ViewModel {\r\n constructor(options = {}) {\r\n this.options = options;\r\n this.isForVNext = options.isForVNext;\r\n const selections = _.map(_.includes(whitelistCampaignTypesForDefaultSelections, options.campaignType) ? defaultSelections : [], (defaultSelection) => {\r\n return _.defaults({\r\n textAreaValue: ko.observable(''),\r\n }, defaultSelection);\r\n });\r\n\r\n if (options.campaignLifetimeBudget) {\r\n selections.push(endDateSelection);\r\n }\r\n\r\n if (!_.find(selections, (o) => o.name === 'AdScheduleUseSearcherTimeZone')) {\r\n selections.push(adScheduleTimeZoneSelection);\r\n }\r\n\r\n this.selectedValue = ko.observable([selections[0].value]);\r\n this.selections = selections;\r\n this.learnMoreText = i18n.get('Control_PaneHelp_LearnMore');\r\n this.title = i18n.get('Page_CampSummary_BulkToolTitleText');\r\n this.selectLabel = i18n.get('BulkEdit_Campaigns_BulkEditTitle');\r\n this.applyForThisPageOnlyInfo = i18n.get('BulkEdit_OtherChanges_ApplyForThisPageOnlyInfo');\r\n this.applyButtonText = i18n.get('BulkEdit_ApplyButton');\r\n this.cancelButtonText = i18n.get('BulkEdit_CancelButton');\r\n this.errorMsg = ko.observable('');\r\n }\r\n\r\n getSelection() {\r\n const result = _.find(this.selections, (selection) => {\r\n return selection.value === this.selectedValue()[0];\r\n });\r\n\r\n if (!result) {\r\n throw new Error('Unknown selected value for campaign bulk exclusions.');\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getResult(datePicker) {\r\n const result = {};\r\n const selection = this.getSelection();\r\n\r\n result.SelectedBulkEditOption = selection.value;\r\n if (selection.name === 'EndDate') {\r\n const endDateMachine = datePicker.getSelectedDate();\r\n let endDateUTC = null;\r\n\r\n if (!datePicker.getState().isNodateSelected) {\r\n endDateUTC = i18n.realI18n.parseDate(i18n.realI18n.formatDate(endDateMachine, {\r\n timeZone: null,\r\n }), { timeZone: 'UTC' });\r\n }\r\n\r\n result[selection.name] = endDateUTC === null ? '' : i18n.realI18n.formatDate(endDateUTC, {\r\n timeZone: 'UTC',\r\n culture: this.options.scope && this.options.scope.culture,\r\n });\r\n result.HasEndDate = result[selection.name] === '' ? 'False' : 'True';\r\n } else {\r\n result[selection.name] = selection.textAreaValue();\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getConfirmText() {\r\n return this.getSelection().confirmText;\r\n }\r\n\r\n validate(endDatePicker) {\r\n const selection = this.getSelection();\r\n let isValid = true;\r\n\r\n if (selection.name === 'EndDate') {\r\n const endDate = endDatePicker.getSelectedDate();\r\n\r\n isValid = !!endDate || endDatePicker.getState().isNodateSelected;\r\n }\r\n\r\n if (!isValid) {\r\n this.errorMsg(i18n.get('Validation_EndDateRequired'));\r\n }\r\n\r\n return isValid;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport popup from '@bingads-webui-component-legacy/dialog/popup';\r\nimport { exclusionsUpdate } from '../model/bulk-campaign-exclusions';\r\nimport withUiBlock from '@bingads-webui-component-legacy/uiblocker/index';\r\nimport ViewModel from '../viewmodel/bulk-campaign-exclusions';\r\nimport template from '../template/bulk-campaign-exclusions.pug';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport BulkEditAdScheduleTimeZoneView from '@bingads-webui-campaign-legacy/campaign-bulk-edit/view/bulkEditAdScheduleTimeZone';\r\nimport BulkEditAdScheduleTimeZoneModel from '@bingads-webui-campaign-legacy/campaign-bulk-edit/model/bulkEditAdScheduleTimeZone';\r\nimport { CampaignsDatePicker } from '@bingads-webui-campaign/campaigns-date-picker';\r\n\r\nconst i18nGlobal = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\nlet dynamicPermissions = _.result(pageContext.Permissions, 'dynamic', {});\r\nlet currentAlertId = null;\r\n\r\nfunction dismissAlert() {\r\n if (currentAlertId) {\r\n window.App.views.alertCenter.dismiss(currentAlertId);\r\n currentAlertId = null;\r\n }\r\n}\r\n\r\nfunction showAlert(message) {\r\n dismissAlert();\r\n\r\n currentAlertId = window.App.views.alertCenter.show({\r\n message,\r\n level: 'Error',\r\n dismissible: true,\r\n }, currentAlertId);\r\n}\r\n\r\nfunction showUnknownError() {\r\n const unexpectedError = i18nGlobal.getString('ErrorNumber_-1');\r\n\r\n showAlert(unexpectedError);\r\n}\r\n\r\nexport default class View extends Backbone.View {\r\n initialize({ gridView, inlineError, isForVNext, grid, campaignType }) {\r\n this.gridView = gridView;\r\n this.inlineError = inlineError;\r\n this.viewModel = new ViewModel({ isForVNext, campaignType, campaignLifetimeBudget: dynamicPermissions.CampaignLifetimeBudget });\r\n\r\n const senario = instrumentation.bulkEditCampaignExclusions.create();\r\n\r\n this.activity = senario.bulkEditCampaignExclusions.create();\r\n this.activity.start();\r\n\r\n this.endDatePicker = new CampaignsDatePicker({\r\n allowNoDate: true,\r\n noDateLabel: i18nGlobal.getString('noEndDate'),\r\n dateLabel: i18nGlobal.getString('EndBy'),\r\n noDateGroupAriaLabel: i18nGlobal.getString('Audience_Campaign_BulkEdit_EndDate'),\r\n datePickerAriaLabel: i18nGlobal.getString('Audience_Campaign_BulkEdit_EndDate'),\r\n });\r\n\r\n this.endDatePicker.on('dateChanged', () => {\r\n this.viewModel.errorMsg('');\r\n });\r\n\r\n this.adScheduleTimeZoneView = new BulkEditAdScheduleTimeZoneView(_.defaults({\r\n model: new BulkEditAdScheduleTimeZoneModel({ entity: 'Campaign' }),\r\n onOperationSuccess: () => {\r\n this.trigger('hide');\r\n },\r\n }, {\r\n grid,\r\n isForVNext,\r\n }));\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .btn-primary': 'save',\r\n 'click .btn-default': 'cancel',\r\n 'click .nodate': () => this.viewModel.errorMsg(''),\r\n };\r\n }\r\n\r\n render() {\r\n this.$el.html(template(this.viewModel));\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n if (this.adScheduleTimeZoneView) {\r\n this.$('.schedule-timezone-setting-container').append(this.adScheduleTimeZoneView.render().el);\r\n }\r\n\r\n if (dynamicPermissions.CampaignLifetimeBudget && this.endDatePicker) {\r\n this.$('[data-ref=\"childView\"]').append(this.endDatePicker.render().el);\r\n }\r\n return this;\r\n }\r\n\r\n save() {\r\n if (!this.viewModel.validate(this.endDatePicker)) {\r\n return;\r\n }\r\n\r\n if (!popup.confirm(this.viewModel.getConfirmText())) {\r\n return;\r\n }\r\n\r\n dismissAlert();\r\n\r\n if (this.viewModel.getSelection().name === 'AdScheduleUseSearcherTimeZone' &&\r\n this.adScheduleTimeZoneView) {\r\n this.adScheduleTimeZoneView.submitJob();\r\n return;\r\n }\r\n\r\n const selectedIds = this.gridView.selectedKeys() || [];\r\n const idData = _.reduce(selectedIds, (memo, id, index) => {\r\n memo[`CampaignsGrid.SelectedIds[${index}]`] = id;\r\n return memo;\r\n }, {});\r\n const exclusionData = this.viewModel.getResult(this.endDatePicker);\r\n const formData = _.extend({}, idData, exclusionData);\r\n\r\n exclusionsUpdate(formData)\r\n .finally(withUiBlock(this.gridView.$el))\r\n .then((res) => {\r\n if (res && _.isArray(res.Errors) && res.Errors[0] && res.Errors[0].Message) {\r\n this.viewModel.errorMsg(res.Errors[0].Message);\r\n showAlert(res.Errors[0].Message);\r\n } else if (res && res.Records && res.Records.Rows) {\r\n const errors = _.chain(res.Records.Rows)\r\n .map((row) => {\r\n return _.isArray(row.Errors) && row.Errors.length > 0 && row.Errors[0].Message && row.Errors[0].Message.length > 0 ?\r\n [row.Id, [row.Errors[0].Message[0]]] :\r\n null;\r\n })\r\n .compact()\r\n .object()\r\n .value();\r\n\r\n if (_.isEmpty(errors)) {\r\n this.inlineError.clearErrors();\r\n this.gridView.deselectAll();\r\n } else {\r\n this.inlineError.setErrors(errors);\r\n\r\n this.gridView.once('willReload', () => {\r\n this.inlineError.clearErrors();\r\n });\r\n }\r\n\r\n this.trigger('hide');\r\n } else {\r\n showUnknownError();\r\n }\r\n this.activity.stop();\r\n })\r\n .catch(() => {\r\n showUnknownError();\r\n });\r\n }\r\n\r\n cancel() {\r\n this.trigger('hide');\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport getParams from '@bingads-webui-campaign-legacy/bulk-edit/service/get-params';\r\nimport DataStore from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport SummaryDataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\n\r\n// Keep it consistent with resourceMap in\r\n// private\\components\\packages\\campaign-cache-manager\\src\\context-manager-bridge.es\r\nconst EntityGridIdMap = {\r\n DsaTarget: 'DsaTargetGrid',\r\n NegativeAdGroupDsaTarget: 'NegativeAdGroupDsaTargetGrid',\r\n NegativeCampaignDsaTarget: 'NegativeCampaignDsaTargetGrid',\r\n};\r\n\r\nconst pollStatus = (taskId, successCb, failedCb) => {\r\n DataStore.BulkEditSession.find(taskId, {cacheResponse: false}).then((response) => {\r\n successCb(response);\r\n })\r\n .catch(failedCb);\r\n};\r\n\r\nconst processResponse = (completeCB, failedCB, progressCB, response) => {\r\n if (_.contains(['Completed', 'CompletedWithErrors'], response.Status)) {\r\n completeCB(response);\r\n } else if (_.contains(['Failed', 'Aborted', 'Expired'], response.Status)) {\r\n failedCB(response);\r\n } else { //task is inprogress or pending\r\n progressCB(response);\r\n setTimeout(_.partial(pollStatus, response.Id, _.partial(processResponse, completeCB, failedCB, progressCB), failedCB), 500);\r\n }\r\n return response;\r\n};\r\n\r\nconst bulkEdit = (options, preview = false) => {\r\n let params = options.params;\r\n\r\n let opt = _.defaults({}, options, {\r\n campaignId: null,\r\n adgroupId: null,\r\n completeCB: _.noop,\r\n failedCB: _.noop,\r\n progressCB: _.noop,\r\n });\r\n\r\n let process = preview ? _.identity : _.partial(processResponse, opt.completeCB, opt.failedCB, opt.progressCB);\r\n\r\n let urlParameters = {$expand: 'BulkEditResults'};\r\n\r\n if (_.isEmpty(params)) {\r\n params = getParams(opt.projection, opt.batchActions, opt.entity, opt.campaignId, opt.adgroupId, preview);\r\n }\r\n\r\n if (preview) {\r\n urlParameters.preview = true;\r\n }\r\n\r\n return DataStore.BulkEditSession.create(params, {\r\n urlParameters,\r\n cacheResponse: false,\r\n }).then((response) => {\r\n if (!preview) {\r\n const { Entity } = response;\r\n const gridId = EntityGridIdMap[Entity];\r\n\r\n if (gridId) {\r\n SummaryDataContextManager.updateContext([gridId]);\r\n }\r\n }\r\n\r\n return response;\r\n })\r\n .then(process)\r\n .catch(opt.failedCB);\r\n};\r\n\r\nexport function bulkEditChange(options) {\r\n return bulkEdit(options);\r\n}\r\n\r\nexport function bulkEditPreview(options) {\r\n return bulkEdit(options, true);\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport { convertToOData } from '@bingads-webui/filter-entity';\r\n\r\nconst getDateRange = () => {\r\n try {\r\n let dateRange = state.get('$daterange');\r\n let startdate = (dateRange.start || dateRange.RangeStartDate).toISOString();\r\n let enddate = (dateRange.end || dateRange.RangeEndDate).toISOString();\r\n\r\n return `startdate=${startdate}&enddate=${enddate}`;\r\n } catch (e) {\r\n return '';\r\n }\r\n};\r\n\r\nconst getSelectedIds = (projection) => {\r\n if (!projection) {\r\n return [];\r\n }\r\n\r\n if (!_.isUndefined(projection.selectedIds)) {\r\n return projection.selectedIds;\r\n }\r\n if (_.isFunction(projection.get)) {\r\n //TODO: process select all page\r\n return projection.get('row.check.list');\r\n }\r\n\r\n return [];\r\n};\r\n\r\nconst getQueryStringRaw = (projection) => {\r\n let dateRange = getDateRange();\r\n let query = '';\r\n let selectedIds = getSelectedIds(projection);\r\n\r\n if (_.isEmpty(projection)) {\r\n return dateRange;\r\n }\r\n\r\n if (projection.isSelectAll || _.size(selectedIds) === 0) { //check selectedIds size only for compatible original logic\r\n let projectionFilters = '';\r\n\r\n if (!_.isUndefined(projection.filters)) {\r\n projectionFilters = projection.filters;\r\n } else if (_.isFunction(projection.get)) {\r\n projectionFilters = projection.get('filter');\r\n }\r\n\r\n let filters = convertToOData(projectionFilters, _.defaults({}, projection.filterOptions));\r\n\r\n query = `$filter=${encodeURIComponent(filters)}`;\r\n } else if (_.size(selectedIds) > 0) { //select some ids will distinguish it when new grid support select cross page\r\n let idFilters = _.map(selectedIds, (id) => {\r\n return `Id eq ${id}`;\r\n }).join(' or ');\r\n\r\n query = $.param({$filter: `(${idFilters})`});\r\n }\r\n\r\n return `${query}&${dateRange}`;\r\n};\r\n\r\nconst getQueryString = (projection) => {\r\n const queryString = getQueryStringRaw(projection);\r\n\r\n if (_.isFunction(projection.queryStringProcess)) {\r\n return projection.queryStringProcess(queryString);\r\n }\r\n return queryString;\r\n};\r\n\r\nconst getSelection = (projection, campaignId = null, adgroupId = null) => {\r\n return {\r\n QueryString: getQueryString(projection),\r\n CampaignId: campaignId,\r\n AdGroupId: adgroupId,\r\n };\r\n};\r\n\r\nconst getDescription = (projection) => {\r\n let description = {\r\n idsCount: _.size(getSelectedIds(projection)),\r\n };\r\n\r\n return JSON.stringify(description);\r\n};\r\n\r\nexport default (projection, batchActions, entity, campaignId, adgroupId, preview) => {\r\n const params = {\r\n BatchAction: batchActions,\r\n Description: getDescription(projection),\r\n Entity: entity,\r\n Selection: getSelection(projection, campaignId, adgroupId),\r\n };\r\n\r\n if (preview) {\r\n return _.extend({\r\n PreviewEntityIds: getSelectedIds(projection),\r\n }, params);\r\n }\r\n return params;\r\n};\r\n","/* eslint-disable */\r\nimport backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport odata from '@bingads-webui-static-legacy/communication/channel/odata';\r\nvar Job = backbone.Model.extend({\r\n defaults: {\r\n Id: null,\r\n Selection: '',\r\n TotalRowCount: 0,\r\n SuccessRowCount: 0,\r\n ErrorRowCount: 0,\r\n Status: '',\r\n CreationTime: '',\r\n ExecutionStartTime: '',\r\n CompletionTime: '',\r\n CreatedBy: '',\r\n BulkEditResults: [],\r\n selectedEntityCount: 0,\r\n PreviewEntityIds: [],\r\n PreviewCompositeIds: []\r\n },\r\n updateSummaryDataContext: function (metadata, action, url) {\r\n var entityType = this.get('Entity');\r\n var isPreviewMode = url.indexOf('preview') > 0;\r\n if (metadata && entityType) {\r\n switch (entityType) {\r\n case 'Campaign':\r\n metadata.gridIds = ['CampaignsGrid'];\r\n if (!isPreviewMode) {\r\n metadata.dependentIds = ['CampaignsGrid', 'AdGroupGrid', 'PagedAdGroupGrid', 'AdGrid', 'KeywordGrid', 'AudiencesAssociationGrid', 'SitePlacementGrid', 'CampaignsSettingsGrid', 'AccountAdExtensionsGrid', 'CampaignAdExtensionsGrid', 'AdGroupAdExtensionsGrid'];\r\n }\r\n break;\r\n case 'AdGroup':\r\n metadata.gridIds = ['AdGroupGrid'];\r\n if (!isPreviewMode) {\r\n metadata.dependentIds = ['CampaignsGrid', 'AdGroupGrid', 'PagedAdGroupGrid', 'AdGrid', 'KeywordGrid', 'AudiencesAssociationGrid', 'SitePlacementGrid', 'AccountAdExtensionsGrid', 'CampaignAdExtensionsGrid', 'AdGroupAdExtensionsGrid'];\r\n }\r\n break;\r\n case 'Keyword':\r\n metadata.gridIds = ['KeywordGrid'];\r\n if (!isPreviewMode) {\r\n metadata.dependentIds = ['KeywordGrid'];\r\n }\r\n break;\r\n case 'Ad':\r\n metadata.gridIds = ['AdGrid'];\r\n if (!isPreviewMode) {\r\n metadata.dependentIds = ['AdGrid'];\r\n }\r\n break;\r\n case 'AudienceAssociation':\r\n case 'AdGroupAudienceAssociation':\r\n metadata.gridIds = ['AudiencesAssociationGrid'];\r\n if (!isPreviewMode) {\r\n metadata.dependentIds = ['AudiencesAssociationGrid'];\r\n }\r\n break;\r\n case 'CampaignCriterion':\r\n metadata.gridIds = ['CampaignSettingsGrid'];\r\n if (!isPreviewMode) {\r\n metadata.dependentIds = ['CampaignSettingsGrid'];\r\n }\r\n break;\r\n case 'AdGroupCriterion':\r\n metadata.gridIds = ['AdGroupSettingsGrid'];\r\n if (!isPreviewMode) {\r\n metadata.dependentIds = ['AdGroupSettingsGrid'];\r\n }\r\n break;\r\n case 'PerformanceTarget':\r\n metadata.gridIds = ['PerformanceTargetsSummaryGrid'];\r\n if (!isPreviewMode) {\r\n metadata.dependentIds = ['PerformanceTargetsSummaryGrid'];\r\n }\r\n break;\r\n }\r\n }\r\n return metadata;\r\n },\r\n parse: function (response) {\r\n if (response) {\r\n return {\r\n Id: response.Id.length > 0 ? response.Id : null,\r\n Selection: response.Selection,\r\n Description: response.Description,\r\n TotalRowCount: response.TotalRowCount,\r\n SuccessRowCount: response.SuccessRowCount,\r\n ErrorRowCount: response.ErrorRowCount,\r\n Status: response.Status,\r\n CreationTime: response.CreationTime,\r\n ExecutionStartTime: response.ExecutionStartTime,\r\n CompletionTime: response.CompletionTime,\r\n CreatedBy: response.CreatedBy,\r\n BulkEditResults: response.BulkEditResults,\r\n UserErrors: response.UserErrors\r\n };\r\n }\r\n return undefined;\r\n },\r\n sync: function (method, model, options) {\r\n var url = _.template(this.url)({\r\n jobId: this.get('Id')\r\n });\r\n if (method === 'create') {\r\n options.type = 'Post';\r\n var data = {\r\n 'Entity': model.get('Entity'),\r\n 'BatchAction': model.get('BatchAction'),\r\n 'Selection': model.get('Selection'),\r\n 'Description': model.get('Description'),\r\n 'PreviewEntityIds': model.get('PreviewEntityIds'),\r\n 'PreviewCompositeIds': model.get('PreviewCompositeIds')\r\n };\r\n if (model.get('RequestProperties')) {\r\n data['RequestProperties'] = model.get('RequestProperties');\r\n }\r\n if (model.get('CurrentCustomerId')) {\r\n data['CurrentCustomerId'] = model.get('CurrentCustomerId');\r\n }\r\n options.data = JSON.stringify(data);\r\n if (model.get('currentCustomerIdFirst')) {\r\n options.currentCustomerIdFirst = true;\r\n }\r\n } else {\r\n options.type = 'Get';\r\n }\r\n return odata.jq_ajax_adapter.call(this, url, options);\r\n },\r\n idAttribute: 'Id'\r\n});\r\nexport default Job;\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nfunction capValue(value) {\r\n var maxLength = 100;\r\n if (!_.isString(value) || value.length < maxLength) {\r\n return value;\r\n }\r\n return value.substring(0, maxLength);\r\n}\r\nfunction toDescriptionWithDataFilter(filter) {\r\n var expressions = _.without(filter.FilterExpressions, null, undefined);\r\n var idStringExpressions = _.filter(expressions, function (expression) {\r\n return expression.SelectedColumn == 'IdString';\r\n });\r\n var otherExpressions = _.reject(expressions, function (expression) {\r\n return expression.SelectedColumn == 'IdString';\r\n });\r\n var compactOthers = _.map(otherExpressions, function (expr) {\r\n return [expr.SelectedColumn, expr.SelectedOperator, _.map(expr.Values, capValue)];\r\n });\r\n if (idStringExpressions.length != 0) {\r\n var compactIds = [{\r\n idsCount: idStringExpressions[0].Values.length\r\n }];\r\n return JSON.stringify(_.union(compactIds, compactOthers));\r\n } else {\r\n return JSON.stringify(compactOthers);\r\n }\r\n}\r\nfunction toDescription(filter) {\r\n if (!filter || !filter.FilterExpressions) {\r\n return null;\r\n }\r\n var expressions = _.without(filter.FilterExpressions, null, undefined);\r\n if (!_.isArray(expressions) || expressions.length == 0) {\r\n return null;\r\n }\r\n var dataFilterExpressions = _.filter(expressions, function (expression) {\r\n return expression.SelectedColumn === 'Criterion' || expression.SelectedColumn === 'LevelOfDetails';\r\n });\r\n if (dataFilterExpressions.length > 0) {\r\n return toDescriptionWithDataFilter(filter);\r\n } else if (filter.idBased) {\r\n return JSON.stringify({\r\n idsCount: expressions[0].Values.length\r\n });\r\n }\r\n var compact = _.map(expressions, function (expr) {\r\n return [expr.SelectedColumn, expr.SelectedOperator, _.map(expr.Values, capValue)];\r\n });\r\n return JSON.stringify(compact);\r\n}\r\nfunction fromDescription(description) {\r\n var compactFilter, filter;\r\n if (!description) {\r\n return null;\r\n }\r\n var returnDescription = {};\r\n compactFilter = JSON.parse(description);\r\n if (!!compactFilter.idsCount) {\r\n returnDescription.idBased = true;\r\n returnDescription.idsCount = compactFilter.idsCount;\r\n return returnDescription;\r\n } else if (compactFilter && compactFilter.length > 0 && !!compactFilter[0].idsCount) {\r\n returnDescription.idBased = true;\r\n returnDescription.idsCount = compactFilter[0].idsCount;\r\n compactFilter = compactFilter.slice(1);\r\n }\r\n compactFilter = compactFilter && compactFilter.Filter ? compactFilter.Filter : compactFilter;\r\n filter = _.map(compactFilter, _.bind(_.object, _, ['SelectedColumn', 'SelectedOperator', 'Values']));\r\n returnDescription.FilterExpressions = filter;\r\n return returnDescription;\r\n}\r\nfunction toRuleDescription(filter, acrossAllPages, idsCount) {\r\n var expressions;\r\n if (!filter || !filter.FilterExpressions || !_.isArray(filter.FilterExpressions) || filter.FilterExpressions.length == 0) {\r\n return null;\r\n }\r\n expressions = filter.FilterExpressions;\r\n var result = {};\r\n if (filter.idBased) {\r\n result.idsCount = acrossAllPages ? idsCount : expressions[0].Values.length;\r\n }\r\n var expressionsToMap = acrossAllPages ? _.without(expressions, expressions[0]) : expressions;\r\n var compact = _.map(expressionsToMap, function (expr) {\r\n return _.isEmpty(expr.SelectedNames) ? [expr.SelectedColumn, expr.SelectedOperator, _.map(expr.Values, capValue)] : [expr.SelectedColumn, expr.SelectedOperator, _.map(expr.Values, capValue), _.map(expr.SelectedNames, capValue)];\r\n });\r\n result.Filter = compact;\r\n return JSON.stringify(result);\r\n}\r\nfunction fromRuleDescription(description) {\r\n var compact, compactFilter, filter, result = {};\r\n if (!description) {\r\n return null;\r\n }\r\n compact = JSON.parse(description);\r\n if (!!compact.idsCount) {\r\n result = {\r\n idBased: true,\r\n idsCount: compact.idsCount\r\n };\r\n }\r\n compactFilter = compact.Filter ? compact.Filter : compact;\r\n filter = _.map(compactFilter, function (element) {\r\n var mapped = {\r\n 'SelectedColumn': element[0],\r\n 'SelectedOperator': element[1],\r\n 'Values': element[2]\r\n };\r\n if (element[0] === 'Labels' && element.length > 3) {\r\n mapped.SelectedNames = element[3];\r\n }\r\n return mapped;\r\n });\r\n result.FilterExpressions = filter;\r\n return result;\r\n}\r\nfunction toQueryString(filterExpressions) {\r\n var expressionStrings = _.map(filterExpressions, function (expression, index) {\r\n return _.map(expression, function (value, key) {\r\n var template = 'filter[' + index + '].' + key + '=';\r\n return _.isArray(value) ? _.map(value, function (val) {\r\n return template + val;\r\n }).join('&') : template + value;\r\n }).join('&');\r\n });\r\n return expressionStrings.join('&');\r\n}\r\nexport default {\r\n toDescription: toDescription,\r\n fromDescription: fromDescription,\r\n toQueryString: toQueryString,\r\n toRuleDescription: toRuleDescription,\r\n fromRuleDescription: fromRuleDescription\r\n};\r\n\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport Backbone from 'backbone';\r\nimport { Dialog } from '@bingads-webui/dialog';\r\nimport { ARWUnthemedBulkErrorView } from '@bingads-webui-campaign-react/account-reparenting-errors';\r\nimport messageTemplate from './template/bulk-transfer-lightbox-message.pug';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/bulk-transfer-accounts');\r\n\r\nexport class MessageView extends Backbone.View {\r\n initialize({message}) {\r\n this.message = message;\r\n }\r\n\r\n render() {\r\n this.$el.html(messageTemplate({message: this.message}));\r\n return this;\r\n }\r\n}\r\n\r\nexport default class View extends Backbone.View {\r\n initialize({\r\n buttonEvent,\r\n accountsCount,\r\n errorDetails,\r\n isBlocking = false,\r\n }) {\r\n this.errorDetails = errorDetails;\r\n if (accountsCount > 20) {\r\n // block single reparenting jobs with more than 20 accounts due to possible backend processing freezing\r\n this.errorDetails = { ReparentingNotAllowedForAccountsMaxLimit: [] };\r\n }\r\n this.buttonEvent = buttonEvent;\r\n this.accountsCount = accountsCount;\r\n let buttons = [{\r\n text: i18n.getString('BulkAccountTransfer_Proceed'),\r\n name: 'primaryButton',\r\n class: 'btn btn-primary lightboxPrimary',\r\n disabled: accountsCount <= 0 || accountsCount > 20 || isBlocking,\r\n }, {\r\n text: i18n.getString('BulkAccountTransfer_Goback'),\r\n name: 'defaultButton',\r\n class: 'btn btn-default lightboxDefault',\r\n }];\r\n\r\n this.lightboxDiv = new Dialog({ className: 'bulk-transfer-dialog', showCloseButton: false });\r\n this.lightboxDiv.setContent(new MessageView({message: i18n.getString('BulkAccountTransfer_Body').replace(/\\{0\\}/g, this.accountsCount)}));\r\n this.lightboxDiv.setState({\r\n title: i18n.getString('BulkAccountTransfer_Title'),\r\n buttons,\r\n });\r\n this.lightboxDiv.on('clickedButton', (name) => {\r\n if (name === 'primaryButton') {\r\n this.buttonEvent();\r\n }\r\n this.lightboxDiv.remove();\r\n });\r\n document.body.appendChild(this.lightboxDiv.el);\r\n }\r\n\r\n render() {\r\n this.lightboxDiv.show();\r\n if (this.errorDetails) {\r\n ReactDOM.render(React.createElement(ARWUnthemedBulkErrorView, { i18n, errorDetails: this.errorDetails, classes: {} }), document.getElementById('transfer-errors'));\r\n }\r\n return this;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport BulkTransferLightbox from './bulk-transfer-lightbox';\r\nimport instrument from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport instrumentConsts from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport { getCCUrl } from '@bingads-webui-component-legacy/bingads-grid/shared/clientcenter-url-helper';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/bulk-transfer-accounts');\r\n\r\nconst transferAccountsUrlConfirmation = 'managers/bulktransferaccountsconfirmation';\r\nconst reparentingJobAddUrl = 'reparenting/jobadd';\r\n\r\nconst reparentingJobAddHandler = ({ customerId, userId, accountIds, successCallback }) => {\r\n $.advertiser.ajaxPost({\r\n url: getCCUrl(reparentingJobAddUrl, { cid: customerId, uid: userId }),\r\n xhrFields: {\r\n withCredentials: true,\r\n },\r\n data: { accountIds },\r\n traditional: true,\r\n onSuccess: (data) => successCallback({ reparentingId: data.id }),\r\n });\r\n};\r\n\r\nexport default function bulkTransferAccounts({\r\n selectedAccounts,\r\n i18n: newI18n,\r\n customerId,\r\n userId,\r\n onSuccessCallBack,\r\n}) {\r\n // select only Advertiser account entities\r\n let accounts = _.filter(selectedAccounts, (account) => account.accountType === 'AdAccount');\r\n\r\n accounts = _.map(selectedAccounts, (account) => {\r\n return {\r\n id: account.Id,\r\n };\r\n });\r\n const bulkTransferModel = { accounts };\r\n const transferConfirmationUrl = getCCUrl(transferAccountsUrlConfirmation);\r\n\r\n $.advertiser.ajaxPost({\r\n url: transferConfirmationUrl,\r\n xhrFields: {\r\n withCredentials: true,\r\n },\r\n data: {cid: customerId, uid: userId, transferacc: JSON.stringify(bulkTransferModel)},\r\n onSuccess: (model) => {\r\n if (model && model.accounts) {\r\n const accountIds = _.map(model.accounts, (acc) => acc.id);\r\n const dialogView = new BulkTransferLightbox({\r\n newI18n,\r\n accountsCount: accountIds.length,\r\n errorDetails: model.errorDetails,\r\n isBlocking: model.isBlocking,\r\n buttonEvent: () => {\r\n const successCallback = ({ reparentingId }) => {\r\n if (_.isFunction(onSuccessCallBack) && _.isNumber(reparentingId)) {\r\n onSuccessCallBack({\r\n accounts: model.accounts,\r\n rpid: reparentingId,\r\n });\r\n }\r\n };\r\n\r\n reparentingJobAddHandler({ customerId, userId, accountIds, successCallback });\r\n },\r\n });\r\n\r\n dialogView.render();\r\n }\r\n },\r\n onError: (e) => {\r\n $.advertiser.appendErrorSummary(i18n.getString('GenericErrorMessage_Short'));\r\n instrument.logMessage(instrumentConsts.LOGCATEGORY.ERROR, instrumentConsts.LOGLEVEL.INFO, `bulktransferaccounts/ajaxPost failed with ${JSON.stringify(e)}`, JSON.stringify(bulkTransferModel));\r\n },\r\n hideLoadingPanelOnSuccess: true,\r\n });\r\n}\r\n","import Backbone from 'backbone';\r\nimport { Dialog } from '@bingads-webui/dialog';\r\nimport messageTemplate from './template/bulk-unlink-lightbox-message.pug';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/bulk-unlink-accounts');\r\n\r\nexport class MessageView extends Backbone.View {\r\n initialize({message}) {\r\n this.message = message;\r\n }\r\n\r\n render() {\r\n this.$el.html(messageTemplate({message: this.message}));\r\n return this;\r\n }\r\n}\r\n\r\nexport default class View extends Backbone.View {\r\n initialize({\r\n buttonEvent,\r\n accountsCount,\r\n }) {\r\n this.buttonEvent = buttonEvent;\r\n this.accountsCount = accountsCount;\r\n let buttons = [{\r\n text: i18n.getString('Hierarchy_BulkUnlink_Proceed'),\r\n name: 'primaryButton',\r\n class: 'btn btn-primary lightboxPrimary',\r\n disabled: accountsCount <= 0,\r\n }, {\r\n text: i18n.getString('Hierarchy_BulkUnlink_Goback'),\r\n name: 'defaultButton',\r\n class: 'btn btn-default lightboxDefault',\r\n }];\r\n\r\n this.lightboxDiv = new Dialog({ className: 'bulk-unlink-dialog', showCloseButton: false });\r\n this.lightboxDiv.setContent(new MessageView({message: i18n.getString('Hierarchy_BulkUnlink_Body').replace(/\\{0\\}/g, this.accountsCount)}));\r\n this.lightboxDiv.setState({\r\n title: i18n.getString('Hierarchy_BulkUnlink_Title'),\r\n buttons,\r\n });\r\n this.lightboxDiv.on('clickedButton', (name) => {\r\n if (name === 'primaryButton') {\r\n this.buttonEvent();\r\n }\r\n this.lightboxDiv.remove();\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 _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport { Constants } from '@bingads-webui-clientcenter/entity-utils';\r\nimport BulkUnlinkLightbox from './bulk-unlink-lightbox';\r\nimport instrument from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport instrumentConsts from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport { getCCUrl } from '@bingads-webui-component-legacy/bingads-grid/shared/clientcenter-url-helper';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/bulk-unlink-accounts');\r\n\r\nconst unlinkaccountsUrl = 'managers/bulkunlinkaccounts';\r\nconst unlinkaccountsUrlConfirmation = 'managers/bulkunlinkaccountsconfirmation';\r\nconst { HierarchyAccountTypeValue } = Constants;\r\n\r\nexport default function bulkUnlinkAccounts({selectedAccounts, customerId, userId, onConfirm}) {\r\n const bulkUnlinkModel = {\r\n accounts: _.map(selectedAccounts, (account) => {\r\n return {\r\n number: account.AccountNumber,\r\n name: account.Name,\r\n type: HierarchyAccountTypeValue[account.AccountType] || HierarchyAccountTypeValue.Unknown,\r\n id: account.Id,\r\n managers: _.map(account.ManagerAccounts, (manager) => {\r\n return {\r\n name: manager.Name,\r\n number: manager.CustomerNumber,\r\n id: manager.Id,\r\n };\r\n }),\r\n };\r\n }),\r\n };\r\n const unlinkConfirmationUrl = getCCUrl(unlinkaccountsUrlConfirmation);\r\n\r\n $.advertiser.ajaxPost({\r\n url: unlinkConfirmationUrl,\r\n xhrFields: {\r\n withCredentials: true,\r\n },\r\n data: {cid: customerId, uid: userId, unlinkacc: JSON.stringify(bulkUnlinkModel)},\r\n onSuccess: (model) => {\r\n if (model && model.accounts) {\r\n const dialogView = new BulkUnlinkLightbox({\r\n accountsCount: model.accounts.length,\r\n buttonEvent: () => {\r\n const revisedModel = {accounts: model.accounts, returnUrl: window.location.href };\r\n const redirectUri = getCCUrl(unlinkaccountsUrl, { cid: customerId, uid: userId });\r\n\r\n onConfirm(revisedModel, redirectUri);\r\n },\r\n });\r\n\r\n dialogView.render();\r\n } else {\r\n $.advertiser.appendErrorSummary(i18n.getString('GenericErrorMessage_Short'));\r\n instrument.logMessage(instrumentConsts.LOGCATEGORY.ERROR, instrumentConsts.LOGLEVEL.INFO, 'bulkunlinkaccounts empty model', JSON.stringify(bulkUnlinkModel));\r\n }\r\n },\r\n onError: (e) => {\r\n $.advertiser.appendErrorSummary(i18n.getString('GenericErrorMessage_Short'));\r\n instrument.logMessage(instrumentConsts.LOGCATEGORY.ERROR, instrumentConsts.LOGLEVEL.INFO, `bulkunlinkaccounts/ajaxPost failed with ${JSON.stringify(e)}`, JSON.stringify(bulkUnlinkModel));\r\n },\r\n hideLoadingPanelOnSuccess: true,\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport BaseModel from '@bingads-webui-campaign-legacy/bulk-operation/util/bulk-edit-job';\r\n\r\nexport default class AdScheduleTimeZoneModel extends BaseModel {\r\n // entity is Campaign or AdGroup\r\n initialize(entity) {\r\n this.defaults = _.extend({}, BaseModel.prototype.defaults, {\r\n Entity: entity,\r\n BatchAction: {\r\n Actions: [{\r\n '@odata.type': '#Model.TextAction',\r\n 'Property': 'AdScheduleUseSearcherTimeZone',\r\n 'ActionType': 'Set',\r\n 'Value': false,\r\n 'SearchString': '',\r\n 'Options': 'None',\r\n }],\r\n },\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport BaseModel from '@bingads-webui-campaign-legacy/bulk-operation/util/bulk-edit-job';\r\n\r\nexport default class ChangeLanguageModel extends BaseModel {\r\n\r\n initialize() {\r\n this.defaults = _.extend({}, BaseModel.prototype.defaults, {\r\n Entity: 'Campaign',\r\n BatchAction: {\r\n Actions: [{\r\n '@odata.type': '#Model.TextAction',\r\n 'Property': 'Languages',\r\n 'ActionType': 'Set',\r\n 'Value': '',\r\n 'SearchString': '',\r\n 'Options': 'None',\r\n }],\r\n },\r\n });\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport BaseViewModel from '@bingads-webui-static-legacy/bulk-edit/viewmodel/bulkEditJob';\r\nimport timeZoneMapper from '@bingads-webui-component-legacy/timezonemapper/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/bulk-campaign-exclusions');\r\n\r\nexport default class ViewModel {\r\n constructor() {\r\n BaseViewModel.call(this);\r\n\r\n this.adScheduleUseSearcherTimeZone = ko.observable(false);\r\n this.adScheduleUseSearcherTimeZoneEdit = ko.computed({\r\n read() {\r\n return this.adScheduleUseSearcherTimeZone().toString();\r\n },\r\n write(value) {\r\n this.adScheduleUseSearcherTimeZone(value === 'true');\r\n },\r\n }, this);\r\n\r\n this.timeZoneText = timeZoneMapper.getAccountTimeZoneText();\r\n this.i18n = i18n;\r\n }\r\n}\r\n","import filterHelper from '@bingads-webui-static-legacy/bulk-edit/view/filterHelper';\r\nimport BaseView from '@bingads-webui-static-legacy/bulk-edit/view/bulkEditJob';\r\nimport template from '@bingads-webui-campaign-legacy/campaign-bulk-edit/template/bulkEditAdScheduleTimeZone.pug';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/campaign-bulk-edit/viewmodel/bulkEditAdScheduleTimeZone';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\n\r\nexport default class View extends BaseView {\r\n initialize(options) {\r\n super.initialize(options);\r\n this.template = template;\r\n this.options = options;\r\n this.onOperationSuccess = options.onOperationSuccess;\r\n // eslint-disable-next-line camelcase\r\n this.ko_model = new ViewModel(this.model);\r\n }\r\n\r\n attributes() {\r\n return {\r\n 'class': 'schedule-timezone-setting',\r\n };\r\n }\r\n\r\n render() {\r\n super.render();\r\n\r\n return this;\r\n }\r\n\r\n setAction() {\r\n const action = {\r\n Actions: [{\r\n '@odata.type': '#Model.TextAction',\r\n Property: 'AdScheduleUseSearcherTimeZone',\r\n ActionType: 'Set',\r\n Value: this.ko_model.adScheduleUseSearcherTimeZone().toString(),\r\n SearchString: '',\r\n Options: 'None',\r\n }],\r\n };\r\n\r\n this.model.set('BatchAction', action);\r\n this.model.set('Entity', this.model.attributes.entity);\r\n }\r\n\r\n getIdFilter() {\r\n return filterHelper.getIdFilter(this.grid, this.model.attributes.entity);\r\n }\r\n\r\n getProgressText() {\r\n return i18n.getString('BulkEdit_Campaigns_ProgressText');\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport BaseViewModel from '@bingads-webui-static-legacy/bulk-edit/viewmodel/bulkEditJob';\r\nimport { get as getDefaultLanguage } from '@bingads-webui-component-legacy/language-selector/util/defaultLanguage';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\n\r\nexport default class ViewModel {\r\n constructor(model) {\r\n BaseViewModel.call(this);\r\n this.showPreviewButton(false);\r\n this.showPanel = ko.observable(true);\r\n this.selectedEntityCount(model.get('selectedEntityCount'));\r\n this.selectedLanguages = ko.observable([getDefaultLanguage()]);\r\n this.titleText = ko.computed(() => {\r\n const entityCount = this.selectedEntityCount();\r\n\r\n if (entityCount > 1) {\r\n return i18n.getString('EditCampaignsLanguageTitle', entityCount );\r\n }\r\n\r\n return i18n.getString('EditCampaignLanguageTitle', entityCount );\r\n }, this);\r\n\r\n this.errorRole = ko.computed(() => {\r\n const error = this.errorMessage();\r\n\r\n return error === '' ? 'none' : 'alert';\r\n }, this);\r\n\r\n this.validate = () => {\r\n if (this.selectedLanguages().length < 1) {\r\n this.errorMessage(i18n.getString('Campaign_Validation_LanguageSelectionRequired'));\r\n return false;\r\n }\r\n this.errorMessage('');\r\n return true;\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { showSuccess as success } from '@bingads-webui-component-legacy/toast/index';\r\nimport { MultiLanguageSelector } from '@bingads-webui-campaign/multi-language-selector';\r\n\r\nimport globalConfig from '@bingads-webui-component-legacy/config/index';\r\nimport filterHelper from '@bingads-webui-static-legacy/bulk-edit/view/filterHelper';\r\nimport BaseView from '@bingads-webui-static-legacy/bulk-edit/view/bulkEditJob';\r\nimport template from '@bingads-webui-campaign-legacy/campaign-bulk-edit/template/bulkEditLanguage.pug';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/campaign-bulk-edit/viewmodel/bulkEditLanguage';\r\n\r\nconst s$AdGroup = window.globalLegacySchema.get('AdGroup');\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\n\r\nconst {\r\n IsSimplifiedChineseLanguageEnabledInMultipleLanguage,\r\n IsAdsGlobalizationPhase1Enabled,\r\n IsAdsGlobalizationPhase2Enabled,\r\n IsAdsGlobalizationPhase6Enabled,\r\n IsAdsGlobalizationPhase2JapanEnabled,\r\n IsDomesticSimplifiedChineseEnabled,\r\n IsAdsGlobalizationPhase9Enabled,\r\n IsAdsGlobalizationPhase9VIEnabled,\r\n} = globalConfig.get('Permissions');\r\n\r\nexport default class View extends BaseView {\r\n initialize(options) {\r\n super.initialize(options);\r\n this.template = template;\r\n // eslint-disable-next-line camelcase\r\n this.ko_model = new ViewModel(this.model);\r\n this.languageSelector = null;\r\n this.onOperationSuccess = () => {\r\n if (this.selectionAcrossPage()) {\r\n success(i18n.getString('campaign_language_association_success'));\r\n } else {\r\n success(i18n.getString('campaign_language_association_success_for_selected_campaigns'));\r\n }\r\n this.deselectAll();\r\n };\r\n }\r\n\r\n render(options) {\r\n super.render(options);\r\n let languages = _.without(s$AdGroup.properties.Language.enum, 'None');\r\n\r\n if (!IsAdsGlobalizationPhase1Enabled) {\r\n languages = _.without(languages, 'Greek', 'Polish', 'Bulgarian', 'Croatian', 'Czech', 'Estonian', 'Hungarian', 'Latvian', 'Lithuanian', 'Maltese', 'Romanian', 'Slovak', 'Slovenian');\r\n }\r\n\r\n if (!IsAdsGlobalizationPhase2Enabled) {\r\n languages = _.without(languages, 'Turkish', 'Serbian', 'Bosnian', 'Albanian', 'Macedonian', 'Icelandic');\r\n }\r\n\r\n if (!IsAdsGlobalizationPhase6Enabled) {\r\n languages = _.without(languages, 'Hebrew', 'Arabic', 'Russian');\r\n }\r\n\r\n if (!IsAdsGlobalizationPhase2JapanEnabled) {\r\n languages = _.without(languages, 'Japanese');\r\n }\r\n\r\n if (!IsAdsGlobalizationPhase9Enabled) {\r\n languages = _.without(languages, 'Hindi', 'Malay', 'Thai', 'Indonesian', 'Tagalog');\r\n }\r\n\r\n if (!IsAdsGlobalizationPhase9VIEnabled) {\r\n languages = _.without(languages, 'Vietnamese');\r\n }\r\n\r\n const languageOptions = {\r\n languages: _.sortBy(languages), // sort languages\r\n inEditMode: true,\r\n selectedLanguages: this.ko_model.selectedLanguages(),\r\n i18n,\r\n };\r\n\r\n if (!IsSimplifiedChineseLanguageEnabledInMultipleLanguage) {\r\n languageOptions.languages = _.without(languageOptions.languages, 'SimplifiedChinese');\r\n }\r\n\r\n if (IsDomesticSimplifiedChineseEnabled) {\r\n languageOptions.languages = ['SimplifiedChinese'];\r\n }\r\n\r\n this.languageSelector = new MultiLanguageSelector(languageOptions);\r\n\r\n this.$('.language-selector-container').html(this.languageSelector.render().el);\r\n\r\n this.languageSelector.on('selectedLanguages:changed', () => {\r\n this.ko_model.selectedLanguages(this.languageSelector.getSelectedLanguages());\r\n });\r\n\r\n return this;\r\n }\r\n\r\n setAction() {\r\n const action = {\r\n Actions: [{\r\n '@odata.type': '#Model.TextAction',\r\n Property: 'Languages',\r\n ActionType: 'Set',\r\n Value: JSON.stringify(this.ko_model.selectedLanguages()),\r\n SearchString: '',\r\n Options: 'None',\r\n }],\r\n };\r\n\r\n this.model.set('BatchAction', action);\r\n this.model.set('Entity', 'Campaign');\r\n }\r\n\r\n selectionAcrossPage() {\r\n const { grid } = this.options;\r\n const { pgridPlugins } = grid;\r\n\r\n return pgridPlugins &&\r\n pgridPlugins.crossPageSelectAll &&\r\n pgridPlugins.crossPageSelectAll.isAllSelected;\r\n }\r\n\r\n deselectAll() {\r\n if (this.selectionAcrossPage()) {\r\n this.options.grid.pgridPlugins.crossPageSelectAll.deselectAll();\r\n } else {\r\n this.options.grid.gridView.deselectAll();\r\n }\r\n }\r\n\r\n getIdFilter() {\r\n return filterHelper.getIdFilter(this.grid, 'Campaign');\r\n }\r\n\r\n getProgressText() {\r\n return i18n.getString('BulkEdit_Campaigns_ProgressText');\r\n }\r\n\r\n formatPreviewOrError(rows) {\r\n // returned values are in this format \"[\\\"English\\\",\\\"French\\\"]\"\r\n // update it to English, French, with localization\r\n const getLanguageString = (returnedValue) => {\r\n if (returnedValue) {\r\n const languages = returnedValue.replace(/\\[|\\]|\"/g, '').split(',');\r\n\r\n return _.map(languages, (lang) => {\r\n return i18n.getString(`Language_${lang}`);\r\n }).join(', ');\r\n }\r\n return returnedValue;\r\n };\r\n\r\n if (rows) {\r\n _.each(rows, (value) => {\r\n value.Entity = _.find(value.EntityKey, (item) => {\r\n return item.Key === 'CampaignName';\r\n });\r\n\r\n value.data = [];\r\n value.data.push({value: value.Entity && value.Entity.Value ? value.Entity.Value : '', isHtml: false});\r\n\r\n if (value.Changes && value.Changes.length) {\r\n //for changeBid we can only have one element in value.Changes array\r\n value.data.push({value: getLanguageString(value.Changes[0].OriginalValue), isHtml: false});\r\n value.data.push({value: getLanguageString(value.Changes[0].NewValue), isHtml: false});\r\n } else {\r\n value.data.push({value: '', isHtml: false});\r\n value.data.push({value: '', isHtml: false});\r\n }\r\n });\r\n }\r\n return rows;\r\n }\r\n\r\n formatErrors(errors) {\r\n return this.formatPreviewOrError(errors);\r\n }\r\n\r\n formatPreviewResults(results) {\r\n return this.formatBid(results);\r\n }\r\n}\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport $ from 'jquery';\r\nimport summaryDataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport constants from '@bingads-webui-static-legacy/constants';\r\nimport StepsWizardView from '@bingads-webui-component-legacy/steps-wizard/view/index';\r\nimport ModalManager from '@bingads-webui-component-legacy/dialog/modalManager';\r\nimport localStorage from '@bingads-webui-component-legacy/storage/localStorage';\r\nimport * as _preferencesService from '@bingads-webui-component-legacy/preference/service/index';\r\nimport CampaignSettingsView from '@bingads-webui-campaign-legacy/crud-campaign/view/create';\r\nimport AdGroupUpdateView from '@bingads-webui-campaign-legacy/crud-adgroup/view/update';\r\nimport popup from '@bingads-webui-component-legacy/dialog/popup';\r\nimport * as instrumentationSvc from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport * as keywordAdGroupUpdateDecorator from '@bingads-webui-campaign-legacy/crud-adgroup/view/update-keyword-adgroup-decorator';\r\nimport * as keywordAdGroupInstru from '@bingads-webui-campaign-legacy/crud-adgroup/share/instrumentKeywordAdGroup';\r\nimport * as SuccessDialog from '@bingads-webui-campaign-legacy/campaign-create-advanced/view/success-dialog';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\nvar i18nGlobal = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\nvar preferencesService = _preferencesService.default || _preferencesService;\r\nvar modalManager = new ModalManager(i18n.get('Browser_Reload_AlertMessage'));\r\nvar campaign2ObjectiveMapping = {\r\n 'search': ['WebsiteVisits', 'LocationVisits', 'WebsiteConversions', 'PhoneCalls', 'AppInstalls'],\r\n 'shopping': ['ShoppingCampaign']\r\n};\r\nvar railViewIds = {\r\n 'search': {\r\n step1: 'SearchCampaignCreate_Step1',\r\n step2: 'SearchCampaignCreate_Step2',\r\n step3: 'SearchCampaignCreate_Step3',\r\n step4: 'SearchCampaignCreate_Step4'\r\n }\r\n};\r\nvar View = StepsWizardView.extend({\r\n _exitWithSave: function () {\r\n StepsWizardView.prototype.cancel.call(this).then((function (shouldCancel) {\r\n if (shouldCancel) {\r\n this.logToSubstrate('save and exit: successful');\r\n this.logToSubstrateStop();\r\n this.navigateToCampaignSummaryPage();\r\n } else {\r\n this.logToSubstrate('save and exit: failed');\r\n setTimeout(function () {\r\n popup.alert(i18n.get('CampaignCreation_Cancel_AlertMessage'));\r\n }, 10);\r\n }\r\n }).bind(this));\r\n },\r\n _cancel: function () {\r\n this.logToSubstrate('cancel clicked');\r\n this.logToSubstrateStop();\r\n this.navigateToRoute('campaign');\r\n },\r\n logToSubstrate: function (message) {\r\n var stepIndex = this.ko_model.stepIndex();\r\n var api = 'advanced campaign creation';\r\n this.stepActivities[stepIndex].signal(message, api);\r\n },\r\n logToSubstrateStop: function () {\r\n var stepIndex = this.ko_model.stepIndex();\r\n var api = 'advanced campaign creation';\r\n this.stepActivities[stepIndex].stopSignal('campaign creation end', api);\r\n },\r\n getAdGroupCreateViewFactory: function () {\r\n var permissions = config.get('Permissions');\r\n var isDSAMixedModeCampaignEnabled = permissions.IsDSAMixedModeCampaignEnabled;\r\n var campaignObjective = config.get('CampaignObjective');\r\n var campaignType = this.getCampaignType(campaignObjective);\r\n if (isDSAMixedModeCampaignEnabled && campaignType === 'search') {\r\n return import(/* webpackMode: 'eager' */'@bingads-webui-campaign-legacy/crud-adgroup/view/mixed-mode-create').then(_MixedModeAdGroupView => {\r\n return _MixedModeAdGroupView.default;\r\n });\r\n }\r\n var importPromises = [import(/* webpackMode: 'eager' */'@bingads-webui-campaign-legacy/crud-adgroup/view/create'), import(/* webpackMode: 'eager' */'@bingads-webui-campaign-legacy/crud-adgroup/view/create-keyword-adgroup-decorator')];\r\n return Promise.all(importPromises).spread((_AdGroupView, keywordAdGroupCreateDecorator) => {\r\n return keywordAdGroupCreateDecorator.decorate(_AdGroupView.default);\r\n });\r\n },\r\n getAdCreateViewFactory: function () {\r\n return import(/* webpackMode: 'eager' */'@bingads-webui-campaign-legacy/crud-ad/view/create').then(_AdsCreateView => {\r\n return _AdsCreateView.default;\r\n });\r\n },\r\n getBudgetCreateViewFactory: function () {\r\n return import(/* webpackMode: 'eager' */'@bingads-webui-campaign-legacy/budget/view/create').then(BudgetCreateView => {\r\n return BudgetCreateView.default;\r\n });\r\n },\r\n initialize: function (options) {\r\n if (options && options.perfMarker) {\r\n this.perfMarker = options.perfMarker;\r\n }\r\n var router = _.chain(options.deps).result('router', {}).value();\r\n this.navigateToRoute = router.navigateToRoute || _.noop;\r\n this.eventDelegator = _.result(options.deps, 'eventDelegator', {});\r\n this.isNextButtonEnabled = !(pageContext.Permissions.IsReadOnlyUser || pageContext.CurrentAccountInActive);\r\n var campaignObjective = config.get('CampaignObjective');\r\n var campaignSaved = false;\r\n if (_.isUndefined(campaignObjective)) {\r\n if (localStorage.supportsStorage()) {\r\n campaignObjective = localStorage.get('CampaignObjective');\r\n config.set('CampaignObjective', campaignObjective);\r\n }\r\n if (!_.isString(campaignObjective)) {\r\n this.navigateToRoute('campaign_create_objective');\r\n }\r\n }\r\n var campaignType = this.getCampaignType(campaignObjective);\r\n var defaultBid = 1;\r\n this.campaignType = campaignType;\r\n this.scenario = instrumentationSvc.default[campaignType + 'CampaignCreation'].create();\r\n this.stepActivities = [];\r\n this.stepActivities[0] = this.scenario.campaignCreationStep1.create();\r\n this.stepActivities[1] = this.scenario.campaignCreationStep2.create();\r\n this.stepActivities[2] = this.scenario.campaignCreationStep3.create();\r\n this.stepActivities[3] = this.scenario.campaignCreationStep4.create();\r\n this.stepActivities[0].startSignal();\r\n this.stepActivities[0].start();\r\n this.stepActivities[0].stop();\r\n var permissions = config.get('Permissions');\r\n var isDSAMixedModeCampaignEnabled = permissions.IsDSAMixedModeCampaignEnabled;\r\n var description = null;\r\n var descriptionHelpId = null;\r\n var descriptionHelpText = null;\r\n if (isDSAMixedModeCampaignEnabled) {\r\n description = i18n.get('MixedMode_AdGroupsStepDescription');\r\n } else {\r\n description = i18n.get('AdGroupsKeywordsStepDescription');\r\n descriptionHelpId = 'app54522';\r\n descriptionHelpText = i18n.get('AdGroupsKeywordsStepDescriptionHelpText');\r\n }\r\n _.extend(options || ({}), {\r\n stageStepLoading: true,\r\n contentClass: 'advanced-campaign-creation__wrapper',\r\n enableStepSwitch: true,\r\n steps: [{\r\n title: i18n.get('CampaignSettingsStepTitle'),\r\n pageTitle: i18n.get('CampaignSettingsStep_PageTitle'),\r\n railViewId: _.result(railViewIds[campaignType], 'step1'),\r\n description: i18n.get('CampaignSettingsStepDescription'),\r\n viewFactory: CampaignSettingsView,\r\n options: {\r\n campaignType: campaignType,\r\n showLanguage: true,\r\n perfMarker: options ? options.perfMarker : null,\r\n deps: options ? options.deps : {},\r\n usePanel: options && options.usePanel,\r\n isForVNext: options && options.isForVNext,\r\n activityLogger: this.stepActivities[0],\r\n serverContext: options && options.serverContext,\r\n scope: options && options.scope\r\n }\r\n }, {\r\n title: isDSAMixedModeCampaignEnabled ? i18n.get('MixedMode_AdGroupsStepTitle') : i18n.get('AdGroupsKeywordsStepTitle'),\r\n pageTitle: isDSAMixedModeCampaignEnabled ? i18n.get('MixedMode_AdGroupStep_PageTitle') : i18n.get('AdGroupsKeywordsStep_PageTitle'),\r\n railViewId: _.result(railViewIds[campaignType], 'step2'),\r\n description: description,\r\n descriptionHelpId: descriptionHelpId,\r\n descriptionHelpText: descriptionHelpText,\r\n viewFactory: _.bind(this.getAdGroupCreateViewFactory, this),\r\n options: {\r\n isDelayLoading: true,\r\n isAutoTargetCampaign: false,\r\n UpdateView: keywordAdGroupUpdateDecorator.decorate(AdGroupUpdateView),\r\n instrumentation: keywordAdGroupInstru,\r\n campaignType: campaignType,\r\n defaultBid: defaultBid,\r\n perfMarker: options ? options.perfMarker : null,\r\n usePanel: options && options.usePanel,\r\n isForVNext: options && options.isForVNext,\r\n activityLogger: this.stepActivities[1]\r\n }\r\n }, {\r\n title: i18n.get('AdsAdExtensionStepTitle'),\r\n pageTitle: i18n.get('AdsAdExtensionStep_PageTitle'),\r\n railViewId: _.result(railViewIds[campaignType], 'step3'),\r\n description: i18n.get('AdsAdExtensionStepDescription'),\r\n viewFactory: _.bind(this.getAdCreateViewFactory, this),\r\n options: {\r\n isDelayLoading: true,\r\n campaignType: campaignType,\r\n perfMarker: options ? options.perfMarker : null,\r\n usePanel: options && options.usePanel,\r\n isForVNext: options && options.isForVNext,\r\n adExtensionsDynamicFeatures: options && options.adExtensionsDynamicFeatures,\r\n activityLogger: this.stepActivities[2],\r\n serverContext: options && options.serverContext\r\n }\r\n }, {\r\n title: i18n.get('BudgetBidsStepTitle'),\r\n pageTitle: i18n.get('BudgetBidsStep_PageTitle'),\r\n railViewId: _.result(railViewIds[campaignType], 'step4'),\r\n description: i18n.get('BudgetBidsStepDescription'),\r\n viewFactory: _.bind(this.getBudgetCreateViewFactory, this),\r\n options: {\r\n isDelayLoading: true,\r\n accountCurrencyCode: this.options.accountCurrencyCode,\r\n campaignType: campaignType,\r\n perfMarker: options ? options.perfMarker : null,\r\n isForVNext: options.isForVNext,\r\n activityLogger: this.stepActivities[3],\r\n i18nNewDesign: _.result(options.deps, 'i18nNewDesign')\r\n }\r\n }],\r\n customButtons: [{\r\n key: 'next',\r\n extendDefaultButtons: true,\r\n extendedParameters: {\r\n enable: this.isNextButtonEnabled\r\n }\r\n }, 'finish', 'back', {\r\n key: 'exitWithSave',\r\n cssClass: 'btn-default',\r\n visible: function () {\r\n var isLast = this.isLast();\r\n return !isLast && (campaignSaved || this.maxAvailabeStepIndex() >= 1);\r\n },\r\n Text: i18n.get('Button_SaveAndExit'),\r\n event: _.bind(this._exitWithSave, this)\r\n }, {\r\n key: 'cancel',\r\n cssClass: 'btn-default',\r\n visible: function () {\r\n if (this.maxAvailabeStepIndex() >= 1) {\r\n campaignSaved = true;\r\n }\r\n return !campaignSaved;\r\n },\r\n Text: i18nGlobal.get('Button_Cancel'),\r\n event: _.bind(this._cancel, this)\r\n }]\r\n });\r\n modalManager.on();\r\n StepsWizardView.prototype.initialize.call(this, options);\r\n },\r\n render: function () {\r\n if (_.isFunction(this.options.callbackBeforeRender)) {\r\n this.options.callbackBeforeRender((function () {\r\n StepsWizardView.prototype.render.call(this);\r\n }).bind(this));\r\n } else {\r\n StepsWizardView.prototype.render.call(this);\r\n }\r\n return this;\r\n },\r\n getCampaignType: function (contextValue) {\r\n var campaignType = 'search';\r\n _.each(campaign2ObjectiveMapping, function (map, key) {\r\n if (_.contains(map, contextValue)) {\r\n campaignType = key;\r\n }\r\n });\r\n return campaignType;\r\n },\r\n diaplaySuccessDialog: function () {\r\n var callback = (function (err, doNotShowAgain) {\r\n if (err || !doNotShowAgain) {\r\n var CurrentAccount = config.get('CurrentAccount');\r\n if (_.isObject(CurrentAccount)) {\r\n var aid = CurrentAccount.Id;\r\n var cid = CurrentAccount.AdvertiserCustomerID;\r\n var isPendingPaymentMethod = CurrentAccount.Status === constants.enums.accountStatus.pendingPaymentInstrument;\r\n var isAccountOnHold = CurrentAccount.Status !== constants.enums.accountStatus.active;\r\n var accountPausedReason = constants.enums.accountInactiveReason.notSet;\r\n if (_.isArray(CurrentAccount.InactiveReasons) && CurrentAccount.InactiveReasons.length > 0) {\r\n var accountPausedReasons = [constants.enums.accountInactiveReason.pausedDueToSystemIssue, constants.enums.accountInactiveReason.pausedZeroBalance, constants.enums.accountInactiveReason.pausedNoValidiO];\r\n CurrentAccount.InactiveReasons.some(function (reason) {\r\n if (accountPausedReasons.indexOf(reason) != -1) {\r\n accountPausedReason = reason;\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n }\r\n var CurrentUser = config.get('CurrentUser');\r\n var uid = 0;\r\n if (_.isObject(CurrentUser)) {\r\n uid = CurrentUser.Id;\r\n }\r\n this.successDialog = new SuccessDialog.default({\r\n aid: aid,\r\n cid: cid,\r\n uid: uid,\r\n isPendingPaymentMethod: isPendingPaymentMethod,\r\n isAccountOnHold: isAccountOnHold,\r\n accountPausedReason: accountPausedReason\r\n }).show();\r\n }\r\n }\r\n }).bind(this);\r\n preferencesService.initialize().then(function () {\r\n var preference = preferencesService.findByName('WebApp.CampaignUI.successDialog') || ({\r\n Data: {}\r\n });\r\n var doNotShowAgain = preference && preference.Data && preference.Data.doNotShowAgain;\r\n callback(null, doNotShowAgain);\r\n });\r\n },\r\n navigateToCampaignSummaryPage: function () {\r\n summaryDataContextManager.getContext('/campaign/NewCampaign/Create?');\r\n this.navigateToRoute('campaign');\r\n if (!_.isUndefined(pageContext.Permissions) && pageContext.Permissions.IsCampaignCreationSuccessDialogEnabled) {\r\n this.diaplaySuccessDialog();\r\n }\r\n var campaign = this.model.get('Campaign');\r\n if (!_.isEmpty(campaign) && !_.isEmpty(campaign.Id) && !_.isEmpty(campaign.Name) && this.eventDelegator.trigger) {\r\n this.eventDelegator.trigger('campaignReload');\r\n }\r\n },\r\n save: function () {\r\n StepsWizardView.prototype.save.call(this).then((function (shouldNext) {\r\n if (shouldNext) {\r\n this.logToSubstrate('save clicked: successful');\r\n this.logToSubstrateStop();\r\n var activity = this.scenario.campaignCreationFlowFinished.create();\r\n activity.start();\r\n this.navigateToCampaignSummaryPage();\r\n activity.stop();\r\n if (this.perfMarker) {\r\n this.perfMarker.done({\r\n campaignType: this.campaignType\r\n });\r\n }\r\n } else {\r\n this.logToSubstrate('save clicked: failed');\r\n }\r\n }).bind(this));\r\n },\r\n onSwitch: function (args) {\r\n var delta;\r\n if (args.delta) {\r\n delta = args.delta;\r\n } else if (args.direction === 'next') {\r\n delta = 1;\r\n } else {\r\n delta = -1;\r\n }\r\n var stepNumber = args.stepIndex + delta + 1;\r\n var activity = this.scenario['campaignCreationStep' + stepNumber].create();\r\n activity.start();\r\n activity.stop();\r\n this.stepActivities[args.stepIndex].stopSignal();\r\n this.stepActivities[stepNumber - 1].startSignal();\r\n },\r\n onSwitched: function (args) {\r\n var target = args.stepTo.$el.closest('.content.content-container').length > 0 ? args.stepTo.$el.closest('.content.content-container') : args.stepTo.$el;\r\n $('[role=listbox][tabindex=0],:input:enabled,[role=heading][tabindex=-1]', target).filter(':visible:first').focus();\r\n $(window).trigger('scroll.uiBlock');\r\n },\r\n remove: function () {\r\n if (modalManager.active) {\r\n modalManager.off();\r\n }\r\n if (localStorage.supportsStorage()) {\r\n localStorage.invalidate('CampaignObjective');\r\n }\r\n if (_.isFunction(this.options.callbackBeforeRemove)) {\r\n this.options.callbackBeforeRemove();\r\n }\r\n StepsWizardView.prototype.remove.call(this);\r\n }\r\n});\r\nexport default View;\r\n\r\n","import Promise from 'bluebird';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\n\r\nexport function fetchHasAvailableConversionGoals() {\r\n const url = `/Customers(${pageContext.CurrentAccount.AdvertiserCustomerID})/Accounts(${pageContext.CurrentAccount.Id})/ConversionGoalDetails`;\r\n\r\n return odata.get(url, {\r\n path: 'Advertiser/V2',\r\n }).then((response) => {\r\n return response.IsActiveConversionGoalPresent;\r\n });\r\n}\r\n\r\nfunction fetchSmartShoppingCampaignCountIsLessThan100() {\r\n const url = `/Customers(${pageContext.CurrentAccount.AdvertiserCustomerID})/Accounts(${pageContext.CurrentAccount.Id})/Campaigns/Default.GetCampaignsCount(campaignType='Shopping',campaignSubType='ShoppingSmartAds')`;\r\n\r\n return odata.get(url, {\r\n path: 'Advertiser/V2',\r\n }).then((response) => {\r\n return response && response.value && response.value[0] < 100;\r\n });\r\n}\r\n\r\nexport const noSmartShoppingReason = {\r\n NO_AVAILABLE_GOAL: 'NO_AVAILABLE_GOAL',\r\n MORE_THAN_100: 'MORE_THAN_100',\r\n NO_PILOT: 'NO_PILOT',\r\n};\r\n\r\nexport function fetchIsSmartShoppingCampaignSupported() {\r\n const isSmartShoppingCampaignEnabled = pageContext.Permissions.IsSmartShoppingCampaignEnabled;\r\n\r\n if (!isSmartShoppingCampaignEnabled) {\r\n return Promise.resolve({\r\n supported: false,\r\n reason: noSmartShoppingReason.NO_PILOT,\r\n });\r\n }\r\n\r\n return new Promise((resolve) => {\r\n Promise.all([\r\n fetchHasAvailableConversionGoals(),\r\n // fetchHasUETTag(),\r\n fetchSmartShoppingCampaignCountIsLessThan100(),\r\n ]).then(([hasAvailableConversionGoal, isSSCCountLessThan100]) => {\r\n const supported = hasAvailableConversionGoal && isSSCCountLessThan100;\r\n let reason;\r\n\r\n if (!supported) {\r\n if (!hasAvailableConversionGoal) { // eslint-disable-line\r\n reason = noSmartShoppingReason.NO_AVAILABLE_GOAL;\r\n } else {\r\n reason = noSmartShoppingReason.MORE_THAN_100;\r\n }\r\n }\r\n resolve({\r\n supported,\r\n reason,\r\n });\r\n }).catch(() => {\r\n resolve({\r\n supported: false,\r\n reason: null,\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 URI from 'urijs';\r\nimport dialogTemplateInReview from '@bingads-webui-campaign-legacy/campaign-create-advanced/template/successDialogInReview.pug';\r\nimport dialogTemplatePendingPaymentMethod from '@bingads-webui-campaign-legacy/campaign-create-advanced/template/successDialogPendingPaymentMethod.pug';\r\nimport dialogTemplateAccountOnHold from '@bingads-webui-campaign-legacy/campaign-create-advanced/template/successDialogAccountOnHold.pug';\r\nimport dialogTemplateAccountPaused from '@bingads-webui-campaign-legacy/campaign-create-advanced/template/successDialogAccountPaused.pug';\r\nimport constants from '@bingads-webui-static-legacy/constants';\r\nimport preferencesService from '@bingads-webui-component-legacy/preference/service/index';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\nconst i18nGlobal = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\n\r\n/**\r\n * @this {Success}\r\n * @returns {void}\r\n**/\r\nfunction close() {\r\n this.trigger('close');\r\n}\r\n\r\n/**\r\n * @this {Success}\r\n * @returns {void}\r\n**/\r\nfunction save() {\r\n preferencesService.setAtUserLevel({\r\n Name: 'WebApp.CampaignUI.successDialog',\r\n Data: { doNotShowAgain: this.viewModel.doNotShowAgain() },\r\n });\r\n}\r\n\r\nexport class Success extends Backbone.View {\r\n initialize({\r\n aid = null,\r\n cid = null,\r\n uid = null,\r\n isPendingPaymentMethod = false,\r\n isAccountOnHold = false,\r\n accountPausedReason = constants.enums.accountInactiveReason.notSet,\r\n } = {}) {\r\n this.isPendingPaymentMethod = isPendingPaymentMethod;\r\n this.isAccountOnHold = isAccountOnHold;\r\n this.accountPausedReason = accountPausedReason;\r\n this.aid = aid;\r\n this.cid = cid;\r\n this.uid = uid;\r\n\r\n this.viewModel = {\r\n doNotShowAgain: ko.observable(false),\r\n };\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .got-it': close,\r\n 'click .dont-show': save,\r\n };\r\n }\r\n\r\n render() {\r\n if (this.accountPausedReason) {\r\n let reason;\r\n let action;\r\n let link;\r\n\r\n switch (this.accountPausedReason) {\r\n case constants.enums.accountInactiveReason.pausedDueToSystemIssue:\r\n reason = 'SystemIssue';\r\n action = 'ContactSupport';\r\n link = new URI('http://go.microsoft.com/fwlink/?LinkId=258669').toString();\r\n break;\r\n case constants.enums.accountInactiveReason.pausedZeroBalance:\r\n reason = 'ZeroBalance';\r\n action = 'AddFunds';\r\n link = new URI('/cc/Payment/Prepay').setQuery({\r\n aid: this.aid,\r\n cid: this.cid,\r\n uid: this.uid,\r\n }).toString();\r\n break;\r\n case constants.enums.accountInactiveReason.pausedNoValidiO:\r\n reason = 'NoValidIO';\r\n action = 'CreateInsertionOrder';\r\n link = new URI('/cc/InsertionOrder').setQuery({\r\n aid: this.aid,\r\n cid: this.cid,\r\n uid: this.uid,\r\n }).toString();\r\n break;\r\n default:\r\n break;\r\n }\r\n this.$el.html(dialogTemplateAccountPaused({\r\n _,\r\n i18n,\r\n i18nGlobal,\r\n reason,\r\n action,\r\n link,\r\n }));\r\n } else if (this.isPendingPaymentMethod) {\r\n const hrefAddPaymentMethod = new URI('/cc/PaymentMethods').setQuery({\r\n aid: this.aid,\r\n cid: this.cid,\r\n uid: this.uid,\r\n showTaxForm: false,\r\n }).toString();\r\n\r\n this.$el.html(dialogTemplatePendingPaymentMethod({\r\n _,\r\n i18n,\r\n i18nGlobal,\r\n hrefAddPaymentMethod,\r\n }));\r\n } else if (this.isAccountOnHold) {\r\n const hrefFixIt = new URI('/cc/CreditHold/Dashboard').setQuery({\r\n aid: this.aid,\r\n cid: this.cid,\r\n uid: this.uid,\r\n }).toString();\r\n\r\n this.$el.html(dialogTemplateAccountOnHold({\r\n _,\r\n i18n,\r\n i18nGlobal,\r\n hrefFixIt,\r\n }));\r\n } else {\r\n this.$el.html(dialogTemplateInReview({\r\n _,\r\n i18n,\r\n i18nGlobal,\r\n }));\r\n }\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n return this;\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport { Dialog } from '@bingads-webui/dialog';\r\nimport { focusLockInstanceDecorator } from '@bingads-webui/focus-lock-decorator';\r\nimport { Success } from './success';\r\n\r\nexport default class SuccessDialog extends Backbone.View {\r\n initialize({\r\n aid,\r\n cid,\r\n uid,\r\n isPendingPaymentMethod,\r\n isAccountOnHold,\r\n accountPausedReason,\r\n lockRegionAriaLabel = '',\r\n }) {\r\n this.dialogView = new Dialog({\r\n className: 'campaign-creation-success-dialog',\r\n });\r\n this.successView = new Success({\r\n aid,\r\n cid,\r\n uid,\r\n isPendingPaymentMethod,\r\n isAccountOnHold,\r\n accountPausedReason,\r\n });\r\n this.dialogView.setContent(this.successView);\r\n\r\n const FocusLockPopupEditor = focusLockInstanceDecorator(this.dialogView, {\r\n onExit: () => this.dialogView.remove(),\r\n lockRegionAriaLabel,\r\n focusFirstItemOnMount: true,\r\n }, {\r\n managed: true,\r\n });\r\n\r\n this.focusLockSuccessPopupEditor = new FocusLockPopupEditor();\r\n\r\n this.successView.on('close', () => {\r\n this.dialogView.remove();\r\n this.focusLockSuccessPopupEditor.remove();\r\n this.focusLockSuccessPopupEditor = null;\r\n });\r\n }\r\n\r\n show() {\r\n this.dialogView.render();\r\n document.body.appendChild(this.focusLockSuccessPopupEditor.render().el);\r\n this.dialogView.$('.modal').modal({\r\n backdrop: this.dialogView.backdrop,\r\n keyboard: this.dialogView.keyboard,\r\n });\r\n this.dialogView.$('.modal').on('focus', () => this.dialogView.$('button.close').focus());\r\n return this;\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { showPopup } from '@bingads-webui/automatic-positioning-popover';\r\nimport { DeterministicViewForBackBoneView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { PopupContentView } from './view';\r\n\r\nlet contentView;\r\nlet timeoutForBudgetLandscapePopover;\r\n\r\nexport function dismissHelpInfo() {\r\n if (contentView) {\r\n contentView.trigger('remove');\r\n }\r\n contentView = null;\r\n}\r\n\r\nexport function getTemplate({\r\n targetEntity,\r\n i18n,\r\n eventName,\r\n isForecasting,\r\n}) {\r\n const view = new PopupContentView({\r\n i18n,\r\n targetEntity,\r\n eventName,\r\n isForecasting,\r\n });\r\n\r\n return view.template();\r\n}\r\n\r\nexport function showHelpInfo({\r\n event,\r\n targetEntity,\r\n i18n,\r\n showSuggestionClickedCallback,\r\n eventName,\r\n isForecasting,\r\n}) {\r\n const container = $('.budget-lanscape-popover-container');\r\n\r\n dismissHelpInfo();\r\n clearTimeout(timeoutForBudgetLandscapePopover);\r\n\r\n timeoutForBudgetLandscapePopover = setTimeout(() => {\r\n const view = new PopupContentView({\r\n i18n,\r\n targetEntity,\r\n eventName,\r\n isForecasting,\r\n });\r\n\r\n if (_.isFunction(showSuggestionClickedCallback)) {\r\n view.on('budget-landscape-action-link:clicked', () => {\r\n dismissHelpInfo();\r\n showSuggestionClickedCallback();\r\n });\r\n }\r\n\r\n contentView = new DeterministicViewForBackBoneView({ view: view.render() });\r\n\r\n return showPopup({\r\n contentView,\r\n i18n,\r\n container,\r\n classes: ['budget-landscape-help-info-container'],\r\n anchor: $(event.target),\r\n });\r\n }, 200);\r\n}\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport expDateUtils from '@bingads-webui-campaign-legacy/experiments-tab/experiment-date-utils-loader';\r\nimport template from './template.pug';\r\n\r\nconst isExperimentsOpenBetaEnabled = _.result(pageContext.Permissions, 'IsExperimentsOpenBetaEnabled');\r\n\r\nexport class PopupContentView extends Backbone.View {\r\n initialize({ targetEntity, i18n, eventName = '', isForecasting = false}) {\r\n this.entity = targetEntity;\r\n this.i18n = i18n;\r\n this.eventName = eventName;\r\n this.isForecasting = isForecasting;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .budget-landscape-action-link': 'actionClicked',\r\n };\r\n }\r\n\r\n actionClicked(event) {\r\n this.trigger('budget-landscape-action-link:clicked', {event});\r\n }\r\n\r\n template() {\r\n const params = {\r\n i18n: this.i18n,\r\n deliveryStatus: this.entity.DeliveryStatus,\r\n landscapeDisabled: this.entity.landscapeDisabled,\r\n eventName: this.eventName,\r\n isForecasting: this.isForecasting,\r\n };\r\n\r\n if (isExperimentsOpenBetaEnabled && this.entity.ExperimentId && this.entity.AssociatedExperiment) {\r\n params.ExperimentId = this.entity.ExperimentId;\r\n params.AssociatedExperiment = this.entity.AssociatedExperiment;\r\n params.percentSymbol = pageContext.DecimalFormatter.percentSymbol;\r\n params.expDateUtils = expDateUtils;\r\n }\r\n\r\n return template(params);\r\n }\r\n\r\n render () {\r\n this.$el.html(this.template());\r\n\r\n return this;\r\n }\r\n}\r\n","import ko from 'knockout';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/budgetlandscape');\r\n\r\nexport default class ViewModel {\r\n constructor() {\r\n this.isThumbVisible = ko.observable(true);\r\n this.isSelected = false;\r\n\r\n this.isLikeVisible = ko.observable(true);\r\n this.isLikeSolidVisible = ko.observable(false);\r\n this.isDislikeVisible = ko.observable(true);\r\n this.isDislikeSolidVisible = ko.observable(false);\r\n\r\n this.isRecommendedPageLinkVisible = ko.observable(false);\r\n\r\n this.feedbackComment = ko.observable(i18n.get('Budget_Landscape_Feedback_IsHelpful'));\r\n\r\n this.overLike = () => {\r\n if (!this.isSelected) {\r\n this.isLikeVisible(false);\r\n this.isLikeSolidVisible(true);\r\n }\r\n };\r\n\r\n this.overLikeOut = () => {\r\n if (!this.isSelected) {\r\n this.isLikeVisible(true);\r\n this.isLikeSolidVisible(false);\r\n }\r\n };\r\n\r\n this.overDislike = () => {\r\n if (!this.isSelected) {\r\n this.isDislikeVisible(false);\r\n this.isDislikeSolidVisible(true);\r\n }\r\n };\r\n\r\n this.overDislikeOut = () => {\r\n if (!this.isSelected) {\r\n this.isDislikeVisible(true);\r\n this.isDislikeSolidVisible(false);\r\n }\r\n };\r\n\r\n this.onClickLike = () => {\r\n this.isSelected = true;\r\n this.isThumbVisible(false);\r\n this.feedbackComment(i18n.get('Budget_Landscape_Feedback_Thanks'));\r\n };\r\n\r\n this.onClickDislike = () => {\r\n this.isSelected = true;\r\n this.isThumbVisible(false);\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport Backbone from 'backbone';\r\nimport template from '@bingads-webui-campaign-legacy/budgetlandscape/template/budgetLandscapeViewRecommendation.pug';\r\nimport { BudgetLandScapeTable, BudgetLandScapeChart } from '@bingads-webui-campaign/recommendation-inline-budget-view';\r\nimport { showDismissFeedbackPopupForBudgetLandscape } from '@bingads-webui-campaign-react/recommendation-dismiss-feedback';\r\nimport { NAVIGATE_REASON } from '@bingads-webui-campaign-react/recommendation-feedback-modal';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/budgetlandscape/viewModel/viewModel';\r\nimport {\r\n RECOMMENDATION_TYPES,\r\n formatLocaledSeasonalEventType,\r\n ADINSIGHT_LOG_API_NAME,\r\n RECOMMENDATION_IDS,\r\n ADINSIGHT_LOG_ACTION_TYPE,\r\n CHANNEL_TYPES,\r\n RecommendationService,\r\n schema,\r\n TYPE_DESCRIPTION_TABLE,\r\n} from '@bingads-webui-campaign/recommendation-core';\r\nimport { levelAtConstant } from '@bingads-webui-campaign/scope-constants';\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 instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport appConfig from '@bingads-webui-component-legacy/config/index';\r\nimport preferencesService from '@bingads-webui-component-legacy/preference/service/index';\r\nimport {\r\n logBudgetLandScapeForSharedBudgetCampaignView,\r\n logBudgetLandScapeForSharedBudgetCampaignAdoption,\r\n} from '@bingads-webui-campaign-legacy/budget/shared/log';\r\n\r\nconst activity = instrumentation.campaignTab.create().budgetLandscape.create();\r\nconst Permissions = appConfig.get('Permissions');\r\nconst context = {\r\n Level: levelAtConstant.ACCOUNT,\r\n CampaignIds: [],\r\n AdGroupIds: [],\r\n};\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/budgetlandscape');\r\nconst i18nRecommendation = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/competition-tab');\r\nconst preferenceName = 'WebApp.CampaignUI.BudgetLandscape.DataVersionFeedback';\r\n\r\nexport class BudgetLandscapeView extends Backbone.View {\r\n initialize(options) {\r\n this.viewModel = new ViewModel();\r\n this.options = options || {};\r\n this.opportunityData = options.data;\r\n this.i18n = i18n;\r\n this.el = this.options.el;\r\n this.parentItem = this.options.parentItem || {};\r\n this.seasonalEvents = this.opportunityData.SeasonalEvents || [];\r\n this.campaignId = options.campaignId;\r\n this.dataVersion = this.opportunityData.Version;\r\n this.opportunityId = options.opportunityId;\r\n this.appConfig = appConfig;\r\n this.isForVNext = options.isForVNext;\r\n this.isInProductFeedbackLoopOn = Permissions && Permissions.IsRecommendationInProductFeedbackLoopEnabled && this.isForVNext;\r\n this.navigateToType = null;\r\n\r\n if (this.isInProductFeedbackLoopOn) {\r\n const preference = preferencesService.findByName(preferenceName) || {};\r\n\r\n this.preferenceData = preference.Data || {};\r\n this.generateScope();\r\n this.initializeInstrumentation();\r\n this.dataService = new RecommendationService({\r\n scope: this.scope,\r\n currentScenario: this.currentScenario,\r\n currentActivity: this.currentActivity,\r\n odataPath: appConfig.get('adinsight.odata.url'),\r\n permissions: Permissions,\r\n lcid: pageContext.CultureLcid,\r\n ccJsData: null,\r\n isNoExpand: true,\r\n });\r\n\r\n if (this.preferenceData[this.campaignId] === this.dataVersion) {\r\n this.viewModel.feedbackComment(i18n.get('Budget_Landscape_Feedback_Thanks'));\r\n this.viewModel.isThumbVisible(false);\r\n }\r\n }\r\n\r\n const isForecasting = this.opportunityData.IsForecasting || false;\r\n\r\n this.showForecastingMessage = isForecasting && this.options.campaignOutOfBudget;\r\n if (this.options.data.IsShared) {\r\n this.budgetTitle = i18n.get('Details_View_Increase_Shared_Budget').replace('{{entity_name}}', this.opportunityData.Shared.BudgetName);\r\n } else {\r\n this.budgetTitle = i18n.get('BudgetLandscape_Title').replace('{0}', _.result(this.parentItem, 'CampaignName') || '');\r\n }\r\n\r\n const conversionSummaryStatus = this.opportunityData.ConversionStatus || 0;\r\n\r\n this.tableView = new BudgetLandScapeTable({\r\n i18n: i18nRecommendation,\r\n conversionSummaryStatus,\r\n opportunityData: this.opportunityData,\r\n appConfig: options.appConfig,\r\n fromCampaignTab: true,\r\n currentBudget: options.currentBudget,\r\n isSharedBudget: this.options.data.IsShared,\r\n permissions: Permissions,\r\n });\r\n this.chartView = new BudgetLandScapeChart({\r\n tableViewmodel: this.tableView.getViewModel(),\r\n i18n: i18nRecommendation,\r\n conversionSummaryStatus,\r\n legacyRouter: options.legacyRouter,\r\n });\r\n this.tableView.on('selectedRowChanged selectedColumnChanged estimationChanged', () => {\r\n this.chartView.redraw();\r\n });\r\n this.chartView.on('close_poputil', () => {\r\n this.onCancel();\r\n });\r\n const hasData = !_.isEmpty(this.tableView.getViewModel().rawLandscapeData);\r\n const notExceed = !this.opportunityData.currentLargerThanMax;\r\n\r\n this.showData = hasData && notExceed;\r\n\r\n if (this.options.campaignOutOfBudget) {\r\n this.helpText = i18n.get('BudgetLandscape_HelpText_OutofBudget');\r\n } else if (this.seasonalEvents.length > 0) {\r\n const name = formatLocaledSeasonalEventType(this.i18n, _.first(this.seasonalEvents).Name);\r\n\r\n this.helpText = (isForecasting ? i18n.get('BudgetLandscape_HelpText_Forecasting_Seasonal_Strong') : i18n.get('BudgetLandscape_HelpText_Recovery_Seasonal_Strong')).replace('{0}', name);\r\n } else {\r\n this.helpText = isForecasting ? i18n.get('BudgetLandscape_HelpText_Forecasting_Non_Seasonal') : i18n.get('BudgetLandscape_HelpText_Recovery_Non_Seasonal');\r\n }\r\n\r\n // this.options.data.Shared.BudgetId\r\n if (this.options.data.IsShared) {\r\n logBudgetLandScapeForSharedBudgetCampaignView(\r\n this.options.data.Shared.BudgetId,\r\n 'bingadsweb[incontextrecommendation]',\r\n this.opportunityId,\r\n _.result(_.find(this.opportunityData.Landscapes, (i) => i.Comment === 'Suggested'), 'EstimatedBudget'),\r\n i18nRecommendation.currency,\r\n activity\r\n );\r\n } else {\r\n this.logAdInsight(ADINSIGHT_LOG_ACTION_TYPE.VIEW);\r\n this.logAdInsight(ADINSIGHT_LOG_ACTION_TYPE.IMPRESSION);\r\n }\r\n }\r\n\r\n generateScope() {\r\n const campaignId = this.campaignId;\r\n\r\n this.scope = {\r\n customerId: _.result(this.parentItem, 'CustomerId') || '0',\r\n accountId: _.result(this.parentItem, 'AcctId') || '0',\r\n campaignId,\r\n campaignName: _.result(appConfig.get('CurrentCampaign'), 'Name'),\r\n token: appConfig.get('Token'),\r\n levelAt: levelAtConstant.CAMPAIGN,\r\n entityIds: [campaignId],\r\n };\r\n }\r\n\r\n initializeInstrumentation() {\r\n instrumentation.addScenario(schema);\r\n this.currentScenario = instrumentation.loadRecommendationTab.create();\r\n this.currentActivity = this.currentScenario.loadRecommendationTab.create();\r\n }\r\n\r\n logUserFeedback(formattedReason, isLike = false) {\r\n const type = RECOMMENDATION_TYPES.BUDGET_OPPORTUNITY;\r\n\r\n activity.trace({\r\n type,\r\n action: ADINSIGHT_LOG_ACTION_TYPE.FEEDBACK,\r\n campaignId: this.campaignId,\r\n input: {\r\n isLike,\r\n formattedReason: _.isNull(formattedReason) ? null : {\r\n reason: JSON.parse(formattedReason.reason),\r\n },\r\n },\r\n context: _.extend(context, { opportunityId: this.opportunityId }),\r\n });\r\n }\r\n\r\n logAdInsight(action) {\r\n const type = RECOMMENDATION_TYPES.BUDGET_OPPORTUNITY;\r\n // now budget landscape could only show in campaign tab\r\n // so, level can only by account\r\n\r\n activity.trace({\r\n id: this.opportunityId,\r\n type,\r\n typeId: RECOMMENDATION_IDS[type],\r\n action,\r\n campaignId: this.campaignId,\r\n channel: CHANNEL_TYPES.INCONTEXT,\r\n context: JSON.stringify(context),\r\n }, ADINSIGHT_LOG_API_NAME.RECOMMENDATION);\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .apply': 'onApply',\r\n 'click #budget-landscape-cancel': 'onCancel',\r\n 'click #budget-landscape-close-image': 'onCancel',\r\n 'click .more-suggestion': 'onCancel',\r\n 'click .more-recommendation a': this.gotoRecommendationTab,\r\n 'click .budget-landscape-dislike': this.handleFeedbackDislike,\r\n 'click .budget-landscape-like': this.handleFeedbackLike,\r\n 'click .navigate-to-recommended-page-link': this.gotoCustomizedRecommendationTab,\r\n };\r\n }\r\n\r\n onSubmitFeedback(formattedReason, reasonId) {\r\n this.logUserFeedback(formattedReason);\r\n\r\n switch (reasonId) {\r\n case NAVIGATE_REASON.NoBudget: // navigate to different recommendation detail page for certain reason\r\n this.navigateToType = RECOMMENDATION_TYPES.REALLOCATE_BUDGET;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (this.navigateToType) {\r\n this.dataService.getSummary({\r\n channel: CHANNEL_TYPES.RECOMMENDATION,\r\n ignoreCoupons: true,\r\n type: this.navigateToRoute,\r\n }).then((opt) => {\r\n this.oppo = opt.data.value;\r\n const recommendationTypeAvailable = _.map(this.oppo, (ele) => {\r\n return ele.OpportunityType;\r\n });\r\n\r\n if (recommendationTypeAvailable.includes(this.navigateToType)) {\r\n this.viewModel.feedbackComment(i18n.get('Budget_Landscape_Feedback_SuggestRecommendation', { recommendationDescription: TYPE_DESCRIPTION_TABLE[this.navigateToType] }));\r\n this.viewModel.isRecommendedPageLinkVisible(true);\r\n }\r\n });\r\n }\r\n }\r\n\r\n saveDataVersionPreference() {\r\n preferencesService.set({\r\n Name: preferenceName,\r\n Data: _.extend(this.preferenceData, {\r\n [this.campaignId]: this.dataVersion,\r\n }),\r\n });\r\n }\r\n\r\n handleFeedbackDislike() {\r\n this.viewModel.feedbackComment(i18n.get('Budget_Landscape_Feedback_Thanks'));\r\n showDismissFeedbackPopupForBudgetLandscape({\r\n i18n: i18nRecommendation,\r\n permissions: Permissions,\r\n onSubmit: (formattedReason, reasonId) => this.onSubmitFeedback(formattedReason, reasonId),\r\n isForVNext: this.isForVNext,\r\n el: '.popup-container .budget-landscape-container-outer',\r\n });\r\n this.logUserFeedback(null, false);\r\n this.saveDataVersionPreference();\r\n }\r\n\r\n handleFeedbackLike() {\r\n this.logUserFeedback(null, true);\r\n this.saveDataVersionPreference();\r\n }\r\n\r\n prepareView() {\r\n this.$el.append(\r\n template({\r\n Id: this.parentItem.Id,\r\n CustomerId: _.result(this.parentItem, 'CustomerId') || '0',\r\n AcctId: _.result(this.parentItem, 'AcctId') || '0',\r\n BudgetTypeString: this.parentItem.IsDailyBudgt ? i18n.get('BudgetLimitType_Daily') : i18n.get('BudgetLimitType_Monthly'),\r\n hasEvent: this.seasonalEvents.length > 0,\r\n showData: this.showData,\r\n i18n: this.i18n,\r\n helpId: _.result(this.options, 'helpId') || '',\r\n helpText: this.helpText,\r\n isForward: this.showForecastingMessage,\r\n budgetTitle: this.budgetTitle,\r\n isInProductFeedbackLoopOn: this.isInProductFeedbackLoopOn,\r\n })\r\n );\r\n }\r\n\r\n render() {\r\n this.prepareView();\r\n this.$('.landscape-table').html(this.tableView.render().el);\r\n this.$('.landscape-chart').html(this.chartView.render().el);\r\n\r\n if (this.showData) {\r\n ko.applyBindings(this.tableView.getViewModel(), this.$('.budget-landscape-actions')[0]);\r\n }\r\n if (this.isInProductFeedbackLoopOn) {\r\n ko.applyBindings(this.viewModel, this.$('.budget-landscape-feedback-actions')[0]);\r\n }\r\n return this;\r\n }\r\n\r\n onApply() {\r\n if (this.tableView.isValid()) {\r\n const newBudget = this.tableView.getSelectedNewBudget();\r\n\r\n if (this.options.data.IsShared) {\r\n logBudgetLandScapeForSharedBudgetCampaignAdoption(\r\n this.options.data.Shared.BudgetId,\r\n 'bingadsweb[incontextrecommendation]',\r\n this.opportunityId,\r\n _.result(_.find(this.opportunityData.Landscapes, (i) => i.Comment === 'Suggested'), 'EstimatedBudget'),\r\n newBudget,\r\n i18nRecommendation.currency,\r\n activity\r\n );\r\n }\r\n\r\n this.trigger('apply', { newBudget });\r\n }\r\n }\r\n\r\n onCancel() {\r\n this.trigger('cancel');\r\n }\r\n\r\n close() {\r\n this.remove();\r\n }\r\n\r\n remove() {\r\n this.chartView.remove();\r\n this.tableView.remove();\r\n super.remove();\r\n }\r\n\r\n gotoRecommendationTab(e) {\r\n e.preventDefault();\r\n this.appConfig.set('recsrc', CHANNEL_TYPES.INCONTEXT);\r\n\r\n legacyRouter.navigateToRoute('campaign_recommendation_details', {\r\n type: RECOMMENDATION_TYPES.BUDGET_OPPORTUNITY,\r\n 'campaign_id': this.campaignId,\r\n });\r\n }\r\n\r\n gotoCustomizedRecommendationTab() {\r\n this.onCancel();\r\n legacyRouter.navigateToRoute('campaign_recommendation_details', {\r\n type: this.navigateToType,\r\n 'campaign_id': this.campaignId,\r\n });\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport { show as showPopup, dismiss } from '@bingads-webui-component-legacy/popup/view/index';\r\nimport { dismissHelpInfo, showHelpInfo, getTemplate } from '@bingads-webui-campaign-legacy/campaigns-tab-campaigns/grid/budgetlandscape/popover/index';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport popupUtil from '@bingads-webui-static-legacy/popup';\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\nimport { BudgetLandscapeView } from '@bingads-webui-campaign-legacy/budgetlandscape/view/budgetlandscape';\r\nimport { getBudgetRange } from '@bingads-webui-campaign-legacy/common-grid-config/budget/get-budget-range';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport logger from '@bingads-webui-static-legacy/instrumentation/logger';\r\nimport decimalNumber from '@bingads-webui-component-legacy/humanize/decimal';\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 { formatLocaledSeasonalEventType } from '@bingads-webui-campaign/recommendation-core';\r\nimport dataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\n\r\nconst COMMENT_TYPES = {\r\n SUGGESTED: 'Suggested',\r\n CURRENT: 'Current',\r\n MAXVALUE: 'MaxValue',\r\n OTHER: 'Other',\r\n};\r\n\r\nfunction isSharedBudgetCampaign(entity) {\r\n const budget = _.result(entity, 'Budget');\r\n const budgetName = _.result(budget, 'Name');\r\n\r\n return !_.isEmpty(budgetName);\r\n}\r\n\r\nfunction isSharedBudgetRecommendation(budgetLandscapeView) {\r\n const options = _.result(budgetLandscapeView, 'options');\r\n const data = _.result(options, 'data');\r\n\r\n return _.result(data, 'IsShared');\r\n}\r\n\r\nfunction fetchBudgetLandscape(campaign) {\r\n let uri;\r\n const odataPath = config.get('adinsight.odata.url');\r\n\r\n if (isSharedBudgetCampaign(campaign)) {\r\n uri = `Customers(:customer_id)/Accounts(:account_id)/Recommendation.GetSharedBudgetLandscape(SharedBudgetId=${campaign.Budget.Id})`;\r\n } else {\r\n uri = `Customers(:customer_id)/Accounts(:account_id)/Campaigns(${campaign.Id})/Opportunity.GetBudgetLandscape`;\r\n }\r\n\r\n return odata.get(uri, {\r\n path: 'AdInsight/V2/',\r\n host: odataPath,\r\n });\r\n}\r\n\r\nlet currentAlertId = null;\r\n\r\nfunction dismissAlert() {\r\n if (currentAlertId) {\r\n window.App.views.alertCenter.dismiss(currentAlertId);\r\n currentAlertId = null;\r\n }\r\n}\r\n\r\nfunction showAlert(message) {\r\n dismissAlert();\r\n\r\n currentAlertId = window.App.views.alertCenter.show({\r\n message,\r\n level: 'Error',\r\n dismissible: true,\r\n }, currentAlertId);\r\n}\r\n\r\n// Process budget landscape data for rendering by recommention-inline-budget-view\r\n/*\r\n 1. check if the current budget is the suggested budget, if so, do not show the landscape\r\n 2. change the indicator of current budget according to campaign current budget\r\n*/\r\nfunction processBudgetLandscapeResult(res, currentBudget) {\r\n const opportunityData = _.chain(res)\r\n .result('value').first()\r\n .value();\r\n\r\n if (!opportunityData || _.isEmpty(opportunityData)) {\r\n return {};\r\n } else {\r\n const landscapes = opportunityData.Landscapes;\r\n const maxBudgetInLandscape = _.max(_.map(landscapes, (landscape) => {\r\n return landscape.EstimatedBudget;\r\n }));\r\n const currentLargerThanMax = currentBudget >= maxBudgetInLandscape;\r\n\r\n const processedLandscapes = _.map(landscapes, (landscape) => {\r\n let { Comment } = landscape;\r\n const { EstimatedBudget } = landscape;\r\n const isCurrent = EstimatedBudget === currentBudget;\r\n\r\n if (Comment !== COMMENT_TYPES.MAXVALUE && Comment !== COMMENT_TYPES.SUGGESTED) {\r\n Comment = isCurrent ? COMMENT_TYPES.CURRENT : COMMENT_TYPES.OTHER;\r\n }\r\n return _.extend({}, landscape, { Comment });\r\n });\r\n\r\n return _.extend({ currentLargerThanMax }, opportunityData, { 'Landscapes': processedLandscapes });\r\n }\r\n}\r\n\r\nfunction getEventForecasting(res) {\r\n const opportunityData = _.chain(res)\r\n .result('value').first()\r\n .value();\r\n\r\n if (!opportunityData || _.isEmpty(opportunityData)) {\r\n return {\r\n eventName: '',\r\n isForecasting: false,\r\n };\r\n }\r\n return {\r\n eventName: opportunityData.SeasonalEvents.length > 0 ?\r\n formatLocaledSeasonalEventType(i18n, opportunityData.SeasonalEvents[0].Name) : '',\r\n isForecasting: opportunityData.IsForecasting,\r\n };\r\n}\r\n\r\nfunction onAction(event) {\r\n const action = event.currentTarget.attributes['data-action'].value;\r\n\r\n dismiss(action);\r\n}\r\n\r\nfunction onNoBudgetLandscapeForCampaignOutOfBudget(e, grid, isForVNext = false) {\r\n return showPopup(_.extend({},\r\n {\r\n positioningMethod: isForVNext ? 'fixed' : 'fit',\r\n positioningOptions: {\r\n positionAttribute: isForVNext ? 'fixed' : 'absolute',\r\n threshold: 0.5,\r\n },\r\n classes: ['popup--labels'],\r\n events: {\r\n 'click .action': onAction,\r\n },\r\n template: () => i18n.getString('BudgetLandscape_NoBudget_InCampaignOutOfBudget'),\r\n },\r\n {\r\n container: grid.gridView.$el,\r\n anchor: $(e.target),\r\n }));\r\n}\r\n\r\nfunction p$updateBudget(update) {\r\n if (isSharedBudgetCampaign(update)) {\r\n return jsData.Budget.update(update.Budget.Id, _.pick(update.Budget, 'Amount'), { adapter: 'bulk', cacheResponse: false });\r\n } else {\r\n return jsData.Campaign.update(update.Id, update, { adapter: 'bulk', cacheResponse: false });\r\n }\r\n}\r\n\r\nfunction notifyAdInsight(id, budgetAmount, opportunityId) {\r\n const uri = 'Customers(:customer_id)/Accounts(:account_id)/Opportunity.Track',\r\n odataPath = config.get('adinsight.odata.url');\r\n const params = {\r\n 'Request': {\r\n '@odata.type': '#Microsoft.Advertiser.AdInsight.Opportunity.Core.Adoption.Interface.Entity.ApplyBulkOpportunitiesRequest',\r\n 'CampaignAdGroups': [{\r\n Key: id,\r\n Value: [],\r\n }],\r\n 'Channel': 'incontextrecommendation',\r\n 'OpportunityType': 'BudgetOpportunity',\r\n 'UserAction': 'Accept',\r\n 'UserInputs': [{\r\n '@odata.type': '#Microsoft.Advertiser.AdInsight.Opportunity.Core.Adoption.Interface.Entity.ApplyBudgetOpportunityUserInputV2',\r\n 'NewBudget': budgetAmount,\r\n 'OpportunityId': opportunityId,\r\n }],\r\n },\r\n };\r\n\r\n return odata.post(uri, {\r\n path: 'AdInsight/V2/',\r\n host: odataPath,\r\n data: params,\r\n }).then(() => {\r\n logger.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, 'afterApplyBugetLandscape', 'Apply budget landscape success and notify ad insight finished');\r\n }).catch(() => {\r\n logger.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, 'afterApplyBugetLandscape', 'Apply budget landscape success but notify ad insight fail');\r\n });\r\n}\r\n\r\nfunction acceptBudgtLandscapeSuggestions(grid, campaign, newBudget, budgetLandscapeView, opportunityId) {\r\n // Convert localized value to float\r\n const budgetAmount = decimalNumber.fromLocalToFloat(newBudget);\r\n\r\n dismissAlert();\r\n\r\n p$updateBudget({\r\n Id: campaign.Id,\r\n Budget: _.defaults({ Amount: budgetAmount }, campaign.Budget),\r\n }).finally(withUiBlock(budgetLandscapeView.$el.closest('.popup-container')))\r\n .finally(() => {\r\n popupUtil.close();\r\n })\r\n .then((response) => {\r\n if (response.Errors) {\r\n return Promise.reject(response);\r\n } else {\r\n jsData.Campaign.findAll({\r\n limit: 1,\r\n select: ['DeliveryStatus', 'DeliveryStatusDetails'],\r\n where: { Id: { $eq: campaign.Id } },\r\n }).then((res) => {\r\n if (res.length && res.length > 0) {\r\n if (isSharedBudgetCampaign(campaign)) {\r\n dataContextManager.updateContext(['CampaignsGrid']);\r\n grid.gridView.refresh(true);\r\n } else {\r\n grid.gridView.trigger('didEdit', _.defaults({\r\n Budget: _.defaults({ Amount: budgetAmount }, campaign.Budget),\r\n DeliveryStatus: res[0].DeliveryStatus,\r\n DeliveryStatusDetail: res[0].DeliveryStatusDetail,\r\n }, campaign));\r\n grid.gridView.refresh(true);\r\n }\r\n } else {\r\n throw new Error('empty res from jsdata');\r\n }\r\n }).catch(() => {\r\n if (isSharedBudgetCampaign(campaign)) {\r\n dataContextManager.updateContext(['CampaignsGrid']);\r\n grid.gridView.refresh(true);\r\n } else {\r\n grid.gridView.trigger('didEdit', _.defaults({\r\n Budget: _.defaults({ Amount: budgetAmount }, campaign.Budget),\r\n }, campaign));\r\n }\r\n });\r\n\r\n if (!isSharedBudgetRecommendation(budgetLandscapeView)) {\r\n notifyAdInsight(campaign.Id, budgetAmount, opportunityId);\r\n }\r\n\r\n return Promise.resolve();\r\n }\r\n })\r\n .catch((response) => {\r\n if (response.Errors != null && response.Errors.length > 0 && response.Errors[0].Message != null) {\r\n showAlert(response.Errors[0].Message);\r\n } else {\r\n showAlert(i18n.getString('ErrorNumber_-1'));\r\n }\r\n });\r\n}\r\n\r\nfunction onFetchBudgetLandscapeSuccess(grid, campaign, data, event, isForVNext = false) {\r\n const parentItem = {\r\n CustomerId: state.get('customer_id'),\r\n AcctId: state.get('account_id'),\r\n CampaignName: campaign.Name,\r\n IsDailyBudgt: false,\r\n };\r\n\r\n if (campaign.Budget && campaign.Budget.Amount) {\r\n const budgetRange = getBudgetRange(config.get('AccountCurrencyCode'));\r\n\r\n parentItem.currentBudget = campaign.Budget.Amount;\r\n if (campaign.Budget.Type === 'Monthly') {\r\n parentItem.minBudget = budgetRange.Monthly.Min;\r\n parentItem.maxBudget = budgetRange.Monthly.Max;\r\n } else {\r\n parentItem.IsDailyBudgt = true;\r\n parentItem.minBudget = budgetRange.Daily.Min;\r\n parentItem.maxBudget = budgetRange.Daily.Max;\r\n }\r\n }\r\n const processedData = processBudgetLandscapeResult(data, parentItem.currentBudget);\r\n\r\n if ((!processedData || _.isEmpty(processedData)) && (campaign.DeliveryStatus === 'CampaignBudgetPaused')) {\r\n onNoBudgetLandscapeForCampaignOutOfBudget(event, grid, isForVNext);\r\n return;\r\n }\r\n\r\n const container = $('
');\r\n\r\n let budgetLandscapeView = new BudgetLandscapeView({\r\n el: container[0],\r\n campaignOutOfBudget: campaign.DeliveryStatus && campaign.DeliveryStatus === 'CampaignBudgetPaused',\r\n parentItem,\r\n helpId: 'app51009',\r\n data: processedData,\r\n appConfig: config,\r\n legacyRouter,\r\n campaignId: campaign.Id,\r\n opportunityId: _.result(processedData, 'OpportunityId'),\r\n currentBudget: parentItem.currentBudget,\r\n isForVNext,\r\n });\r\n\r\n budgetLandscapeView.on('cancel', () => {\r\n popupUtil.close();\r\n });\r\n budgetLandscapeView.on('apply', ({ newBudget }) => {\r\n acceptBudgtLandscapeSuggestions(\r\n grid,\r\n campaign,\r\n newBudget,\r\n budgetLandscapeView,\r\n _.result(processedData, 'OpportunityId'),\r\n );\r\n });\r\n\r\n budgetLandscapeView.render();\r\n popupUtil.render(container);\r\n}\r\n\r\n/**\r\n * show budget landscape panel, and bind alll related actions including apply/cancel\r\n *\r\n * @param {Object} event - The backbone click event from where the quality score cell was clicked.\r\n * @param {Object} campaign - campaign entity that triggered this call, currently this status should only happen in campagin grid\r\n * @param {Object} grid - The grid where the call was triggered\r\n * @param {Boolean} isForVNext - Is new ui or not.\r\n * @returns {undefined}.\r\n*/\r\nexport function openBudgetLandscapePanel(event, campaign, grid, isForVNext = false) {\r\n //close previous one, and stop other bindings\r\n popupUtil.close();\r\n event.stopPropagation();\r\n $('.budget-lanscape-popover-container').hide();\r\n\r\n fetchBudgetLandscape(campaign).then((res) => {\r\n onFetchBudgetLandscapeSuccess(grid, campaign, res, event, isForVNext);\r\n }).catch(() => {\r\n onNoBudgetLandscapeForCampaignOutOfBudget(event, grid, isForVNext);\r\n }).finally(withUiBlock($(event.target).parent()));\r\n}\r\n\r\nexport function showBudgetLandscapeHelpInfo(event, campaign, grid, isForVNext = false) {\r\n const container = $('.budget-lanscape-popover-container');\r\n\r\n container.show();\r\n if (container.data('campaignId') !== campaign.Id || container.find('.budget-landscape-help-info-container').length === 0) {\r\n container.data('campaignId', campaign.Id);\r\n fetchBudgetLandscape(campaign).then((res) => {\r\n const { eventName, isForecasting } = getEventForecasting(res);\r\n\r\n showHelpInfo({\r\n event,\r\n targetEntity: campaign,\r\n i18n,\r\n eventName,\r\n isForecasting,\r\n showSuggestionClickedCallback: () => {\r\n openBudgetLandscapePanel(event, campaign, grid, isForVNext);\r\n },\r\n });\r\n }).catch(() => {\r\n showHelpInfo({\r\n event,\r\n targetEntity: campaign,\r\n i18n,\r\n eventName: '',\r\n isForecasting: false,\r\n showSuggestionClickedCallback: () => {\r\n openBudgetLandscapePanel(event, campaign, grid, isForVNext);\r\n },\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport function getBudgetLandscapeHelpInfoTemplate(campaign) {\r\n return fetchBudgetLandscape(campaign).then((res) => {\r\n const { eventName, isForecasting } = getEventForecasting(res);\r\n\r\n return getTemplate({\r\n targetEntity: campaign,\r\n i18n,\r\n eventName,\r\n isForecasting,\r\n });\r\n }).catch(() => {\r\n return getTemplate({\r\n targetEntity: campaign,\r\n i18n,\r\n eventName: '',\r\n isForecasting: false,\r\n });\r\n });\r\n}\r\n\r\nexport function showBidLandscapeHelpInfo(event, campaign) {\r\n const container = $('.budget-lanscape-popover-container');\r\n\r\n if (container) {\r\n container.data('campaignId', null);\r\n }\r\n\r\n showHelpInfo({\r\n event,\r\n targetEntity: campaign,\r\n i18n,\r\n eventName: null,\r\n isForecasting: false,\r\n showSuggestionClickedCallback: _.noop,\r\n });\r\n}\r\n\r\nexport function dismissBudgetLandscapeHelpInfo() {\r\n return dismissHelpInfo();\r\n}\r\n","/* global _TL_ */\r\nimport Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { ThemeProvider } from 'react-jss';\r\nimport { getBudgetRange, MinXandrDailyBudgetRangePerCurrency } from '@bingads-webui-campaign-legacy/common-grid-config/budget/get-budget-range';\r\nimport { InstrumentationContext } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { ComponentSettings, ThemeFluent } from '@bingads-webui-theme-2018/theme-fluent';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { ServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { ScopeContext } from '@bingads-webui-react/scope-service';\r\nimport { BudgetSuggestionDialog } from '@bingads-webui-campaign-react/budget-suggestion-v2';\r\nimport { FluentProvider, webLightTheme } from '@fluentui/react-components';\r\nimport { Scenario, Activity } from '@bingads-webui-react/hoc-with-signal';\r\nimport { isXandrServing } from '@bingads-webui-campaign-react/constants';\r\n\r\nexport class BudgetSuggestionContainer extends Backbone.View {\r\n initialize({\r\n scope,\r\n campaignId,\r\n serverContext,\r\n i18n,\r\n CustomerId,\r\n AcctId,\r\n currency,\r\n budget,\r\n activity,\r\n campaign,\r\n grid,\r\n instrumentation,\r\n }) {\r\n this.scope = scope;\r\n this.campaignId = campaignId;\r\n this.serverContext = serverContext;\r\n this.i18n = i18n;\r\n this.currency = currency;\r\n this.CustomerId = CustomerId;\r\n this.AcctId = AcctId;\r\n this.budget = budget;\r\n this.parentRemove = super.remove;\r\n this.activity = activity;\r\n this.scenario = 'Edit-DisplayAds';\r\n this.campaign = campaign;\r\n this.grid = grid;\r\n this.instrumentation = instrumentation;\r\n this.showDialog = true;\r\n this.budgetRange = getBudgetRange(this.currency);\r\n\r\n if (campaign.Budget.Type === 'Monthly') {\r\n this.minBudget = this.budgetRange.Monthly.Min;\r\n this.maxBudget = this.budgetRange.Monthly.Max;\r\n } else {\r\n this.IsDailyBudgt = true;\r\n this.minBudget = this.budgetRange.Daily.Min;\r\n this.maxBudget = this.budgetRange.Daily.Max;\r\n }\r\n\r\n const { CampaignSubType, CampaignSettings } = this.campaign;\r\n\r\n if (isXandrServing(CampaignSubType, CampaignSettings) && MinXandrDailyBudgetRangePerCurrency[this.currency]) {\r\n this.minBudget = MinXandrDailyBudgetRangePerCurrency[this.currency];\r\n }\r\n\r\n this.render();\r\n }\r\n\r\n refreshGrid() {\r\n this.grid.gridView.refresh({force: true});\r\n }\r\n\r\n onTriggerDialog() {\r\n this.showDialog = !this.showDialog;\r\n this.render();\r\n }\r\n\r\n render() {\r\n const scenarioName = 'BudgetSuggestionEditing';\r\n const activityName = 'Grid';\r\n\r\n ReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n this.el,\r\n );\r\n return this;\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport expDateUtils from '@bingads-webui-campaign-legacy/experiments-tab/experiment-date-utils-loader';\r\n\r\nimport { DeliveryStatusPopupFactory } from '@bingads-webui-campaign-legacy/common-grid-config/column/delivery-status/index';\r\nimport { openInlineOpportunitiesPanel } from '@bingads-webui-campaign-legacy/campaigns-tab-campaigns/grid/inlineopportunity/index';\r\n\r\nimport {\r\n dismissBudgetLandscapeHelpInfo,\r\n showBudgetLandscapeHelpInfo,\r\n showBidLandscapeHelpInfo,\r\n openBudgetLandscapePanel,\r\n getBudgetLandscapeHelpInfoTemplate,\r\n} from '@bingads-webui-campaign-legacy/campaigns-tab-campaigns/grid/budgetlandscape/index';\r\nimport deliverStatusDetailTemplate from '@bingads-webui-campaign-legacy/common-grid-config/column/delivery-status/popup/delivery-status-details-popup.pug';\r\nimport { BLACKLIST } from '@bingads-webui-campaign/delivery-status-popup-factory';\r\nimport {openBudgetSuggestionDialog} from '../budget-suggestion/index';\r\n\r\nimport autobiddingTemplate from './autobidding-popover-template.pug';\r\n\r\nconst i18nGlobal = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\n\r\nconst isExperimentsOpenBetaEnabled = _.result(pageContext.Permissions, 'IsExperimentsOpenBetaEnabled');\r\nconst isReadOnlyUser = _.result(pageContext.Permissions, 'IsReadOnlyUser');\r\nconst showBudgetSuggestion = _.result(pageContext.Permissions.dynamic, 'EnableBudgetSuggestion');\r\n\r\nlet showCampaignRejectionReasons = (event, campaign) => {\r\n return () => {\r\n const blackList = [\r\n 'InlineOpportunity',\r\n 'BudgetSuggestions',\r\n 'CampaignBudgetPaused',\r\n ];\r\n const details = _.difference(campaign.DeliveryStatusDetails, blackList);\r\n\r\n /**\r\n * Below code is added for in-context repair recommmendation feature in old UI.\r\n * For the following 3 delivery status, it needs to add a link in the popup content for\r\n * new UI, but the pure text for old UI. So, we provide different i18n string saperately\r\n * for new UI and old UI.\r\n * 'deliveryStatus' is to get the i18n string with link.\r\n * 'deliveryStatus_WithoutLink' is to get the pure text i18n string without link.\r\n */\r\n const toBeUpdated = ['NoEligibleAdGroups', 'NoEligibleAds', 'NoEligibleKeywords'];\r\n\r\n toBeUpdated.forEach((NoEligible) => {\r\n const findIndex = details.indexOf(NoEligible);\r\n\r\n if (findIndex >= 0) {\r\n details.splice(findIndex, 1, `${NoEligible}_WithoutLink`);\r\n }\r\n });\r\n\r\n const params = {\r\n i18n: i18nGlobal,\r\n DeliveryStatusDetails: details,\r\n collectionSize: details.length > 3 ?\r\n 3 : details.length, // max of 3 reasons shown, as in other grids\r\n $,\r\n };\r\n\r\n if (isExperimentsOpenBetaEnabled && campaign.ExperimentId && campaign.AssociatedExperiment) {\r\n params.ExperimentId = campaign.ExperimentId;\r\n params.AssociatedExperiment = campaign.AssociatedExperiment;\r\n params.statusForCombinedPopup = campaign.statusForCombinedPopup;\r\n params.percentSymbol = pageContext.DecimalFormatter.percentSymbol;\r\n params.expDateUtils = expDateUtils;\r\n }\r\n\r\n const detailsHtml = deliverStatusDetailTemplate(params);\r\n\r\n $.gridPopup.Callback(detailsHtml); // eslint-disable-line new-cap\r\n };\r\n};\r\n\r\n/**\r\n * Manages creation of delivery status column popups for the Campaigns grid\r\n */\r\nclass CampaignDeliveryStatusPopupFactory extends DeliveryStatusPopupFactory {\r\n constructor({\r\n grid,\r\n perfMarker,\r\n scope,\r\n instrumentation,\r\n }) {\r\n super({\r\n grid,\r\n handler: showCampaignRejectionReasons,\r\n });\r\n\r\n this.perfMarker = perfMarker;\r\n this.scope = scope;\r\n this.instrumentation = instrumentation;\r\n }\r\n /**\r\n * Creates campaign entity object from event target using the grid associated with the factory.\r\n *\r\n * @param {Object} event - The backbone click event from where the quality score cell was clicked.\r\n * @returns {Object} campaign entity - An object with properties containing Campaign Id and Name.\r\n */\r\n getEventTargetEntity(event) {\r\n const model = this.getEventTargetModel(event);\r\n\r\n const result = {\r\n Id: model.Id,\r\n Name: model.Name,\r\n Budget: model.Budget,\r\n DeliveryStatus: model.DeliveryStatus,\r\n DeliveryStatusDetails: _.clone(model.DeliveryStatusDetails),\r\n };\r\n\r\n if (isExperimentsOpenBetaEnabled && model.ExperimentId && model.AssociatedExperiment) {\r\n result.ExperimentId = model.ExperimentId;\r\n result.AssociatedExperiment = model.AssociatedExperiment;\r\n result.statusForCombinedPopup = [\r\n 'CampaignUserPaused',\r\n 'InvalidFinancialStatusOther',\r\n 'CampaignSuspended',\r\n 'AutoBiddingLimitedByNotEnoughConversions',\r\n ];\r\n\r\n if ($(event.target).hasClass('experiment-delivery-status-override') ||\r\n _.contains(['Promoted', 'Graduated', 'Ended'], model.AssociatedExperiment.Status)\r\n ) {\r\n // Show experiment info only\r\n result.DeliveryStatusDetails = ['ExperimentInfo'];\r\n } else if (!_.contains(result.statusForCombinedPopup, result.DeliveryStatus)) {\r\n // Show original info and experiment info in different pages\r\n result.DeliveryStatusDetails = _.union(result.DeliveryStatusDetails, ['ExperimentInfo']);\r\n }\r\n // Otherwise show original info combined with experiment info within the same page\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * show budget landscape\r\n *\r\n * @param {Object} event - The backbone click event from where the quality score cell was clicked.\r\n * @param {Boolean} isForVNext - Is new ui or not.\r\n * @param {Object} serverContext - Server Context\r\n * @param {Object} activity - Activity logger.\r\n * @param {Object} newI18n - new I18n Localization component\r\n * @returns {undefined}.\r\n */\r\n showBudgetLandscapePopup(event, isForVNext = false, serverContext = null, activity = null, newI18n = {}) {\r\n dismissBudgetLandscapeHelpInfo();\r\n const entity = this.getEventTargetModel(event);\r\n\r\n if (showBudgetSuggestion) {\r\n return openBudgetSuggestionDialog(event, entity, this.grid, serverContext, activity, newI18n, this.instrumentation);\r\n } else {\r\n return openBudgetLandscapePanel(event, entity, this.grid, isForVNext);\r\n }\r\n }\r\n\r\n /**\r\n * show inilne opportunity\r\n *\r\n * @param {Object} event - The backbone click event from where the quality score cell was clicked.\r\n * @param {Boolean} isForVNext - Is new ui or not.\r\n * @returns {undefined}.\r\n */\r\n showInlineOpportunityPanel(event, isForVNext) {\r\n let deliveryStatusPopupPerfMarker;\r\n\r\n if (this.perfMarker) {\r\n deliveryStatusPopupPerfMarker = this.perfMarker.createChild('Delivery_Status_Opportunity_Popup');\r\n }\r\n\r\n const entity = this.getEventTargetEntity(event);\r\n\r\n return openInlineOpportunitiesPanel(event, entity, this.grid, isForVNext, deliveryStatusPopupPerfMarker);\r\n }\r\n\r\n showBudgetLandscapeHelpInfo(event, isForVNext = false) {\r\n const entity = this.getEventTargetModel(event);\r\n\r\n return showBudgetLandscapeHelpInfo(event, entity, this.grid, isForVNext);\r\n }\r\n\r\n getBudgetLandscapeHelpInfoTemplate(event) {\r\n const entity = this.getEventTargetModel(event);\r\n\r\n return getBudgetLandscapeHelpInfoTemplate(entity);\r\n }\r\n\r\n getAutobiddingLimitedHelpInfoTemplate(deliveryStatus, index, event) {\r\n const entity = this.getEventTargetModel(event);\r\n const campaignDeliveryStatusDetails = _.filter(entity.CampaignDeliveryStatusDetails, (detail) => !_.contains(BLACKLIST, detail.Status));\r\n const detail = campaignDeliveryStatusDetails && campaignDeliveryStatusDetails[index];\r\n const isPortfolio = detail && detail.Entity === 'PortfolioBidStrategy';\r\n let suggestedValue = detail && detail.RecommendedValue;\r\n const targetType = entity.BiddingScheme.Type;\r\n const showApply = !isPortfolio && deliveryStatus !== 'AutoBiddingLimitedInventoryLimit' && deliveryStatus !== 'AutoBiddingPortfolioBidStrategyTrainingStatus' && deliveryStatus !== 'AutoBiddingLimitedUnAttainableTarget';\r\n const applyStringMap = {\r\n AutoBiddingLimitedMaxCPCRestriction: 'ApplyRecommendedCPC',\r\n AutoBiddingLimitedBudgetRestriction: 'ApplyRecommendedBudget',\r\n AutoBiddingLimitedUnAttainableTarget: 'ApplyRecommendedTarget',\r\n };\r\n\r\n suggestedValue = suggestedValue || 0;\r\n\r\n let formattedSuggestedValue = i18nGlobal.realI18n.formatDecimal(suggestedValue, {\r\n minimumFractionDigits: 2,\r\n maximumFractionDigits: 2,\r\n });\r\n\r\n let detailMessage = i18nGlobal.getString(`Message_DeliveryStatus_${deliveryStatus}${isPortfolio ? '_Portfolio' : ''}`).replace('{suggestedValue}', formattedSuggestedValue);\r\n\r\n if (deliveryStatus === 'AutoBiddingLimitedUnAttainableTarget') {\r\n switch (targetType) {\r\n case 'MaxConversions':\r\n case 'TargetCpa':\r\n detailMessage = i18nGlobal.getString('Message_DeliveryStatus_AutoBiddingLimitedUnAttainableTarget_TCPA');\r\n break;\r\n case 'MaxConversionValue':\r\n case 'TargetRoas':\r\n detailMessage = i18nGlobal.getString('Message_DeliveryStatus_AutoBiddingLimitedUnAttainableTarget_TROAS');\r\n break;\r\n case 'TargetImpressionShare': // no support from backend\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const activity = this.instrumentation && this.instrumentation.autobiddingLimitedStatus.create().hoverDeliveryStatus.create();\r\n\r\n if (activity) {\r\n activity.trace(JSON.stringify({\r\n campaignId: entity.Id,\r\n deliveryStatus,\r\n suggestedValue,\r\n isPortfolio,\r\n }));\r\n }\r\n\r\n return autobiddingTemplate({\r\n deliveryStatus,\r\n detailMessage,\r\n learnMoreString: i18nGlobal.getString('LearnMoreAboutThisStatus'),\r\n showApply,\r\n applyString: showApply ? i18nGlobal.getString(applyStringMap[deliveryStatus]) : '',\r\n enableApply: !isReadOnlyUser,\r\n });\r\n }\r\n\r\n showLandscapeDisabledHelpInfo(event) {\r\n const entity = this.getEventTargetModel(event);\r\n const { DeliveryStatus } = entity;\r\n\r\n return showBidLandscapeHelpInfo(event, { landscapeDisabled: true, DeliveryStatus });\r\n }\r\n\r\n dismissLandscapeDisabledHelpInfo() {\r\n dismissBudgetLandscapeHelpInfo();\r\n }\r\n}\r\n\r\nexport { CampaignDeliveryStatusPopupFactory };\r\n","import config from '@bingads-webui-component-legacy/config/index';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport { BudgetSuggestionContainer } from './container';\r\n\r\n/**\r\n * show budget landscape panel, and bind alll related actions including apply/cancel\r\n *\r\n * @param {Object} event - The backbone click event from where the quality score cell was clicked.\r\n * @param {Object} campaign - campaign entity that triggered this call, currently this status should only happen in campagin grid\r\n * @param {Object} grid - The grid where the call was triggered\r\n * @param {Object} serverContext - Server Context\r\n * @param {Object} activity - Activity logger.\r\n * @param {Object} newI18n - new I18n Localization component\r\n * @param {Object} instrumentation - instrumentation object\r\n * @returns {undefined}.\r\n*/\r\nexport function openBudgetSuggestionDialog(event, campaign, grid, serverContext = null, activity = null, newI18n = {}, instrumentation = {}) {\r\n new BudgetSuggestionContainer({\r\n i18n: newI18n,\r\n campaign,\r\n campaignId: campaign.Id,\r\n campaignType: campaign.CampaignType,\r\n budget: campaign.Budget,\r\n currency: config.get('AccountCurrencyCode'),\r\n CustomerId: state.get('customer_id'),\r\n AcctId: state.get('account_id'),\r\n serverContext,\r\n activity,\r\n grid,\r\n instrumentation,\r\n });\r\n}\r\n","import { openInlineOpportunityForCampaign } from '@bingads-webui-campaign-legacy/inline-opportunity/view/panel-manager';\r\n\r\n/**\r\n * show inline opportunity, and bind all related actions including apply/cancel\r\n * todo: update it after migrate budget landscape part\r\n *\r\n * @param {Object} event - The backbone click event from where the quality score cell was clicked.\r\n * @param {Object} campaign - campaign entity that triggered this call, currently this status should only happen in campagin grid\r\n * @param {Object} grid - projection grid instance\r\n * @param {Boolean} isForVNext - Is new ui or not.\r\n * @param {Object} perfMarker performance marker\r\n * @returns {undefined}.\r\n */\r\nexport function openInlineOpportunitiesPanel(event, campaign, grid, isForVNext, perfMarker) {\r\n event.stopImmediatePropagation();\r\n\r\n openInlineOpportunityForCampaign(event, campaign.Id, campaign.Name, isForVNext, perfMarker);\r\n}\r\n","import _ from 'underscore';\r\nimport appConfig from '@bingads-webui-component-legacy/config/index';\r\nimport headerTemplate from '@bingads-webui-component-legacy/bingads-grid/template/header.pug';\r\n\r\nconst permissions = appConfig.get('Permissions') || {};\r\n\r\n/**\r\n * Abstracts a grid column configuration for projection grid.\r\n *\r\n * See {@link https://microsoft.github.io/projection-grid/} for description of the fields provided\r\n * by the getters and setters here.\r\n */\r\nclass BaseGridColumn {\r\n /**\r\n * Constructs a GridColumn object.\r\n */\r\n constructor() {\r\n this.model = {\r\n // This must use an arrow function in order to bind 'this'\r\n template: (local) => {\r\n return this.template(local.value);\r\n },\r\n };\r\n }\r\n\r\n /**\r\n * Method Can be override by child class to provide a template for the grid cell.\r\n * If subclass already set formatter, then this is not required\r\n *\r\n * @returns {String} the template HTML text.\r\n */\r\n template() {\r\n throw new Error('Error: a subclass of GridColumn must implement the abstract template method.');\r\n }\r\n\r\n setName(name) {\r\n this.model.name = name;\r\n }\r\n\r\n get name() {\r\n return this.model.name;\r\n }\r\n\r\n setTitle(title) {\r\n this.model.title = title;\r\n if (!_.has(this.model.headAttributes, 'title')) {\r\n this.setTooltip(title);\r\n }\r\n }\r\n\r\n get title() {\r\n return this.model.title;\r\n }\r\n\r\n setSortable(sortable) {\r\n this.model.sortable = sortable;\r\n }\r\n\r\n setEditable(editable) {\r\n if (permissions.IsReadOnlyUser) {\r\n return;\r\n }\r\n\r\n this.model.editable = editable;\r\n }\r\n\r\n setBodyClasses(classes) {\r\n this.model.bodyClasses = classes;\r\n }\r\n\r\n setHeadClasses(classes) {\r\n this.model.headClasses = classes;\r\n }\r\n\r\n setField(field) {\r\n this.model.field = field;\r\n }\r\n\r\n setHelpId(helpId) {\r\n this.model.helpId = helpId;\r\n }\r\n\r\n setType(type) {\r\n this.model.type = type;\r\n }\r\n\r\n /**\r\n * Method sets column property. By default, the whole model is passed\r\n * back from property.get()\r\n *\r\n * @param {Array} properties List of properties to expose to plugins\r\n * @returns {void}\r\n */\r\n setProperties(properties) {\r\n this.model.property = {\r\n get(model) {\r\n return model;\r\n },\r\n key: properties,\r\n };\r\n }\r\n\r\n setHeaderHtml(headerHtml) {\r\n this.model.html = headerHtml;\r\n }\r\n\r\n setTooltip(tooltip) {\r\n this.model.headAttributes = _.defaults({\r\n title: tooltip,\r\n }, this.model.headAttributes);\r\n }\r\n\r\n getConfig() {\r\n if (_.isEmpty(this.model.html) && !_.isEmpty(this.model.helpId)) {\r\n this.model.html = headerTemplate(this.model); // udpate header to support popupHelp\r\n }\r\n\r\n return this.model;\r\n }\r\n\r\n toJSON() {\r\n return this.getConfig();\r\n }\r\n\r\n /**\r\n * Make a grid columns config from a list of column classes.\r\n *\r\n * @param {Array} columnClasses An array of column classes.\r\n * @param {Object} view Has a grid created by pgrid.factory().create()\r\n * @returns {Array} a grid columns config array.\r\n */\r\n static newColumnsConfig(columnClasses, view) {\r\n const columnsConfig = _.map(columnClasses, (Column) => new Column(view).getConfig());\r\n\r\n return columnsConfig;\r\n }\r\n\r\n /**\r\n * Make a list of column names from a list of column classes.\r\n *\r\n * @param {Array} columnClasses An array of column classes.\r\n * @returns {Array} an array of column names.\r\n */\r\n static getColumnNames(columnClasses) {\r\n const columnsConfig = BaseGridColumn.newColumnsConfig(columnClasses);\r\n\r\n return _.map(columnsConfig, (columnConfig) => columnConfig.name);\r\n }\r\n}\r\n\r\nexport { BaseGridColumn };\r\n","import _ from 'underscore';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\n\r\nimport { BaseGridColumn } from '../base-grid-column';\r\nimport deliveryStatusTemplate from './delivery-status-template.pug';\r\nimport { deliveryStatusBaseColumn } from '@bingads-webui-campaign-legacy/campaigns-tab-campaigns/grid/columns-config-base';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\n\r\nclass DeliveryStatusColumn extends BaseGridColumn {\r\n constructor() {\r\n super();\r\n\r\n const deliveryStatusColumn = deliveryStatusBaseColumn();\r\n\r\n this.setName(deliveryStatusColumn.name);\r\n this.setSortable('DeliveryStatus');\r\n this.setTitle(i18n.get('ColumnName_DeliveryStatus'));\r\n this.setProperties(deliveryStatusColumn.property);\r\n this.setHelpId('Page_CampaignGrids_Delivery');\r\n }\r\n\r\n template(model) {\r\n let name = model.Name;\r\n\r\n if (_.isUndefined(name) && !_.isUndefined(model.AdGroup)) {\r\n name = model.AdGroup.Name;\r\n }\r\n if (_.isUndefined(name) && !_.isUndefined(model.Campaign)) {\r\n name = model.Campaign.Name;\r\n }\r\n\r\n this.campaignEntityObject = {\r\n Name: name,\r\n Id: model.Id,\r\n };\r\n\r\n const params = {\r\n Id: model.Id,\r\n DeliveryStatus: model.DeliveryStatus,\r\n i18n,\r\n Budget: model.Budget,\r\n IsAppealable: model.IsAppealable,\r\n };\r\n\r\n if (_.result(pageContext.Permissions, 'IsExperimentsOpenBetaEnabled') && model.ExperimentId && model.AssociatedExperiment) {\r\n params.showEllipsisForExperiment = true;\r\n }\r\n\r\n return deliveryStatusTemplate(params);\r\n }\r\n}\r\n\r\nexport { DeliveryStatusColumn };\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\n\r\n/**\r\n * Manages creation of delivery status column popups\r\n */\r\nclass DeliveryStatusPopupFactory {\r\n /**\r\n * Constructs the factory, associating with a grid and rejection view handler\r\n * @param {Object} grid - The grid to which this factory will be associated\r\n * @param {Object} handler - Rejection view handler\r\n */\r\n constructor({\r\n grid,\r\n handler,\r\n }) {\r\n this.grid = grid;\r\n this.handler = handler;\r\n }\r\n /**\r\n * Creates entity object from event target using the grid associated with the factory.\r\n *\r\n * @param {Object} event - The backbone click event from where the quality score cell was clicked.\r\n * @returns {Object} entity - An object which contains Id as property.\r\n */\r\n getEventTargetEntity(event) {\r\n const model = this.getEventTargetModel(event);\r\n\r\n return {\r\n Id: model.Id,\r\n };\r\n }\r\n /**\r\n * Gets model object from event target using the grid associated with the factory.\r\n *\r\n * @param {Object} event - The backbone click event from where the quality score cell was clicked.\r\n * @returns {Object} model - Model associated with the entity targeted by the event passed as an argument.\r\n */\r\n getEventTargetModel(event) {\r\n const key = this.grid.gridView.keyOfElement(event.target);\r\n\r\n return this.grid.gridView.itemWithKey(key);\r\n }\r\n /**\r\n * show campaign reject reasons\r\n * Todo: apjia:update after odata side support return status details, or have new interface that do this\r\n * Todo: if each entity return same StatusDeliveryDetails, then merge different handlers into one\r\n *\r\n * @param {Object} event - The backbone click event from where the quality score cell was clicked.\r\n * @returns {undefined}.\r\n */\r\n showRejectionPopup(event) {\r\n const entity = this.getEventTargetEntity(event);\r\n\r\n if (!_.isUndefined(this.handler)) {\r\n $.gridPopup.clickEvent(event,\r\n this.handler(event, entity),\r\n 'rejectionContainer',\r\n '',\r\n true);\r\n }\r\n\r\n // return popup container to allow view to hide popup\r\n return $('#rejectionContainer');\r\n }\r\n\r\n /**\r\n * close rejection popup handler\r\n * call this function to close closest rejection container\r\n * @param {Object} event the backbone click event from where the click from\r\n * @returns {undefined}\r\n */\r\n closeRejectionPopup(event) {\r\n if (!$(event.target).closest('#rejectionContainer').length) {\r\n if (document.getElementById('rejectionContainer').style.display !== 'none') {\r\n $('#rejectionContainer').css('display', 'none');\r\n $.gridPopup.ResetImage(event); //eslint-disable-line\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport { DeliveryStatusPopupFactory };\r\n","import $ from 'jquery';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\n\r\n/**\r\n * show the quality score detail in the dialog next to it\r\n *\r\n * @param {Object} event - The backbone click event from where the quality score cell was clicked.\r\n * @param {Object} qualityScore - The qualityscore detailed object.\r\n * @param {String} qsContainerId - The container id to show the quality score detail info.\r\n * @returns {undefined}.\r\n */\r\nexport function showQualityScoreDetail(event, qualityScore, qsContainerId) {\r\n const {\r\n KeywordRelevance,\r\n LandingPageQuality,\r\n LandingPageRelevance,\r\n OverallQualityScore,\r\n } = qualityScore || {};\r\n\r\n $.gridPopup.clickEvent(event, () => {\r\n $.advertiser.controls.qualityscore.DisplayQsFlyout( // eslint-disable-line new-cap\r\n KeywordRelevance || 0,\r\n LandingPageQuality || 0,\r\n LandingPageRelevance || 0,\r\n OverallQualityScore || 0);\r\n },\r\n qsContainerId,\r\n `${i18n.getString('QualityScoreFlyOut_TotalScoreHeading')} ${OverallQualityScore} ${i18n.getString('QualityScoreFlyOut_TotalScore')}`);\r\n}\r\n","import _ from 'underscore';\r\nimport globalConfig from '@bingads-webui-component-legacy/config/index';\r\nimport * as putil from '@bingads-webui-universal/primitive-utilities';\r\nimport preferenceService from '@bingads-webui-component-legacy/preference/service/index';\r\nimport {\r\n initialize, updateEntitySchemaForSOV,\r\n updateEntitySchemaForRemovedPerformanceMetrics,\r\n enableForAudienceSOVFeatures,\r\n} from '@bingads-webui-campaign/common-grid-config';\r\n\r\ninitialize({ globalConfig, preferenceService });\r\n\r\nexport { updateEntitySchemaForSOV, updateEntitySchemaForRemovedPerformanceMetrics, enableForAudienceSOVFeatures };\r\n\r\nconst Permissions = globalConfig.get('Permissions');\r\n\r\n// get whether feature is enabled by property name\r\nfunction getFeaturePermissionByPropertyName(propertyName) {\r\n switch (propertyName.toLowerCase()) {\r\n case 'campaigntype':\r\n return !Permissions.IsEnhancedShoppingCampaignAllowed &&\r\n !Permissions.IsDynamicSearchAdsV1Enabled &&\r\n !Permissions.IsAIMCampaignEnabled;\r\n\r\n case 'associationscount':\r\n case 'trackingstatus':\r\n return Permissions.IsAudienceGridNewColumnsSupported;\r\n\r\n case 'audiencetrackingstatus':\r\n return Permissions.IsAIMCampaignEnabled ||\r\n Permissions.IsRemarketingSimilarAudienceAllowed ||\r\n (Permissions.IsCustomerHierarchyEnabled && Permissions.IsSharedLibraryPhase1Enabled);\r\n\r\n case 'aimreach':\r\n return Permissions.IsAudienceListSizeEnabled;\r\n\r\n case 'isexperiment':\r\n return Permissions.IsExperimentsEnabled &&\r\n // only enable experiment filter in account scope\r\n !globalConfig.get('CurrentCampaign');\r\n\r\n case 'ismainconversiongoal':\r\n return true; // [hagu1]todo: skip this method for 'ismainconversiongoal'\r\n\r\n default:\r\n return false;\r\n }\r\n}\r\n\r\nfunction removeEnumValuesFromProperty(schema, propertyName, removeEnumArray, depth = 0) {\r\n if (depth > 1) {\r\n return schema;\r\n }\r\n\r\n if (!_.isEmpty(schema.properties[propertyName])) {\r\n schema.properties[propertyName].enum = _.difference(schema.properties[propertyName].enum, removeEnumArray);\r\n }\r\n\r\n _.each(schema.properties, (property) => {\r\n if (_.has(property, 'schema')) {\r\n removeEnumValuesFromProperty(property.schema, propertyName, removeEnumArray, depth + 1);\r\n }\r\n });\r\n\r\n return schema;\r\n}\r\n\r\nfunction updateEnumValueSets(schema) {\r\n const entityName = schema.name.toLowerCase();\r\n\r\n // Listing here all the enum valus to remove in different pilots (or always remove)\r\n const disabledTargets = [\r\n {\r\n disabled: !Permissions.IsDynamicSearchAdsV1Enabled && (entityName === 'ad'),\r\n property: 'Type',\r\n enumValueSets: ['DynamicSearch'], // this will not used in any where in filter options\r\n },\r\n {\r\n disabled: !Permissions.IsDynamicSearchAdsV1Enabled && (entityName === 'campaign'),\r\n property: 'CampaignType',\r\n enumValueSets: ['DynamicSearchAds'], // remove dynamic search ads from other entity\r\n },\r\n {\r\n // Bug 1692445: BetaProd: [Campaigns] Some check box conditions are not shown for filter of Campaign status/Campaign type/Bid strategy type on prod.\r\n // This should be controlled by pilot\r\n disabled: !Permissions.IsSmartCampaignPhase2Enabled && (entityName === 'campaign'),\r\n property: 'CampaignType',\r\n enumValueSets: ['Smart'],\r\n },\r\n {\r\n disabled: entityName === 'campaign' && !Permissions.IsSmartCampaignPhase2Enabled,\r\n property: 'Status',\r\n enumValueSets: ['InProgress'], // remove this when there are localized strings for this enum value\r\n },\r\n {\r\n disabled: true,\r\n property: 'Delivery',\r\n enumValueSets: ['CampaignInProgress'],\r\n },\r\n {\r\n disabled: !Permissions.IsSmartCampaignPhase2Enabled,\r\n property: 'DeliveryStatus',\r\n enumValueSets: ['CampaignInProgress'],\r\n },\r\n {\r\n disabled: true,\r\n property: 'Type',\r\n enumValueSets: ['HotelBookingGoal'],\r\n },\r\n {\r\n disabled: true,\r\n property: 'DisplayBiddingStrategyType',\r\n enumValueSets: ['InheritFromParent', 'MaxRoas', 'TargetCostPerSale'], // this will not used in any where in filter options\r\n },\r\n {\r\n disabled: !(Permissions.IsCampaignTargetROASBidStrategyEnabled ||\r\n Permissions.IsNewCampaignTargetROASBidStrategyEnabled),\r\n property: 'DisplayBiddingStrategyType',\r\n enumValueSets: ['TargetRoas'],\r\n },\r\n {\r\n disabled: !Permissions.IsMaximizeConversionValueEnabled && !Permissions.IsSmartShoppingCampaignEnabled,\r\n property: 'DisplayBiddingStrategyType',\r\n enumValueSets: ['MaxConversionValue'],\r\n },\r\n {\r\n disabled: !Permissions.IsCostPerSaleEnabled,\r\n property: 'DisplayBiddingStrategyType',\r\n enumValueSets: ['CostPerSale'],\r\n },\r\n {\r\n disabled: !Permissions.IsTargetImpressionShareEnabled,\r\n property: 'DisplayBiddingStrategyType',\r\n enumValueSets: ['TargetImpressionShare'],\r\n },\r\n {\r\n disabled: !Permissions.IsAIMCampaignEnabled && (entityName === 'campaign'),\r\n property: 'CampaignType',\r\n enumValueSets: ['Audience'], // remove audience campaign from other entity\r\n },\r\n {\r\n disabled: !(Permissions.IsCustomerHierarchyEnabled && Permissions.IsSharedLibraryPhase1Enabled),\r\n property: 'AudienceTrackingStatus',\r\n enumValueSets: ['InactiveDueToTagUnavailable'],\r\n },\r\n {\r\n disabled: !Permissions.IsAdsGlobalizationPhase1Enabled,\r\n property: 'Language',\r\n enumValueSets: ['Greek', 'Polish', 'Bulgarian', 'Croatian', 'Czech', 'Estonian', 'Hungarian', 'Latvian', 'Lithuanian', 'Maltese', 'Romanian', 'Slovak', 'Slovenian'],\r\n },\r\n {\r\n disabled: !Permissions.IsAdsGlobalizationPhase2Enabled,\r\n property: 'Language',\r\n enumValueSets: ['Turkish', 'Serbian', 'Bosnian', 'Albanian', 'Macedonian', 'Icelandic'],\r\n },\r\n {\r\n disabled: !Permissions.IsAdsGlobalizationPhase6Enabled,\r\n property: 'Language',\r\n enumValueSets: ['Arabic', 'Hebrew', 'Russian'],\r\n },\r\n {\r\n disabled: !Permissions.IsAdsGlobalizationPhase2JapanEnabled,\r\n property: 'Language',\r\n enumValueSets: ['Japanese'],\r\n },\r\n {\r\n disabled: !Permissions.IsAdsGlobalizationPhase9Enabled,\r\n property: 'Language',\r\n enumValueSets: ['Hindi', 'Malay', 'Thai', 'Indonesian', 'Tagalog'],\r\n },\r\n {\r\n disabled: !Permissions.IsAdsGlobalizationPhase9VIEnabled,\r\n property: 'Language',\r\n enumValueSets: ['Vietnamese'],\r\n },\r\n ];\r\n\r\n _.chain(disabledTargets)\r\n .filter({disabled: true})\r\n .each((target) => {\r\n removeEnumValuesFromProperty(schema, target.property, target.enumValueSets);\r\n });\r\n}\r\n\r\nexport function enableForExperimentFeature(schema) {\r\n const isInPilot = Permissions.IsExperimentsEnabled;\r\n const campaignProperty = schema.properties.Campaign;\r\n const isExperimentProperty = putil.get(campaignProperty, 'schema.properties.IsExperiment');\r\n\r\n if (isInPilot && campaignProperty && isExperimentProperty) {\r\n isExperimentProperty.filterable = true;\r\n }\r\n\r\n return schema;\r\n}\r\n\r\nexport function enableForMainGoalSelectionFeature(schema) {\r\n const performanceMetricsProperty = schema.properties.PerformanceMetrics;\r\n const allConvMetrics = [\r\n 'AllConversionCPA',\r\n 'AllConversions',\r\n 'AllConversionRate',\r\n 'AllConversionAdvertiserReportedRevenue',\r\n 'AllConversionRevenueOnAdSpend',\r\n ];\r\n\r\n _.each(allConvMetrics, (allConvMetric) => {\r\n if (performanceMetricsProperty && putil.get(performanceMetricsProperty.schema.properties, allConvMetric)) {\r\n schema.properties.PerformanceMetrics.schema.properties[allConvMetric].filterable = true;\r\n }\r\n });\r\n\r\n return schema;\r\n}\r\n\r\nexport function enableForViewThroughConversionsFeature(schema) {\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n } = Permissions;\r\n const performanceMetricsProperty = schema.properties.PerformanceMetrics;\r\n\r\n const viewThroughConvMetrics = [\r\n 'ViewThroughConversions',\r\n ];\r\n\r\n _.each(viewThroughConvMetrics, (viewThroughConvMetric) => {\r\n if (performanceMetricsProperty && putil.get(performanceMetricsProperty.schema.properties, viewThroughConvMetric)) {\r\n schema.properties.PerformanceMetrics.schema.properties[viewThroughConvMetric].filterable = IsViewThroughConversionEnabled || false;\r\n }\r\n });\r\n\r\n const viewThroughConvRevenueMetrics = [\r\n 'ViewThroughConversionsRevenue',\r\n 'ViewThroughConversionsCPA',\r\n 'ViewThroughConversionsReturnOnAdSpend',\r\n 'ViewThroughConversionsRate',\r\n ];\r\n\r\n _.each(viewThroughConvRevenueMetrics, (metric) => {\r\n if (performanceMetricsProperty && putil.get(performanceMetricsProperty.schema.properties, metric)) {\r\n schema.properties.PerformanceMetrics.schema.properties[metric].filterable = IsViewThroughConversionsRevenueEnabled || false;\r\n }\r\n });\r\n\r\n return schema;\r\n}\r\n\r\nfunction enableFilterForPilotProperties(schema, propertyNameArray) {\r\n _.each(propertyNameArray, (propertyName) => {\r\n if (getFeaturePermissionByPropertyName(propertyName) && !_.isEmpty(schema.properties[propertyName])) {\r\n schema.properties[propertyName].filterable = true;\r\n }\r\n });\r\n\r\n return schema;\r\n}\r\n\r\n\r\nexport function updateFilterSchemaForPilotFeatures(originalSchema) {\r\n const schema = putil.cloneDeep(originalSchema);\r\n\r\n // first enable properties (filter type) for features in pilot\r\n updateEntitySchemaForSOV(schema, false);\r\n updateEntitySchemaForRemovedPerformanceMetrics(schema, false);\r\n enableForExperimentFeature(schema);\r\n enableForMainGoalSelectionFeature(schema);\r\n enableForViewThroughConversionsFeature(schema);\r\n enableForAudienceSOVFeatures(schema);\r\n enableFilterForPilotProperties(schema, ['CampaignType', 'AssociationsCount', 'TrackingStatus', 'AudienceTrackingStatus', 'AIMReach', 'IsExperiment', 'IsMainConversionGoal']);\r\n\r\n // enable enum values (filter value set) for features in pilot\r\n updateEnumValueSets(schema);\r\n return schema;\r\n}\r\n","import _ from 'underscore';\r\nimport {\r\n jsdataRawDataPlugin as commonJsdataRawDataPlugin,\r\n} from '@bingads-webui/projection-grid-js-data-raw-data';\r\n\r\nexport const jsdataRawDataPlugin = commonJsdataRawDataPlugin({\r\n getRawData: _.property('raw'),\r\n});\r\n","import AssociationView from '@bingads-webui-static-legacy/bulk-edit/view/label/association';\r\nimport { showError as error, showSuccess as success } from '@bingads-webui-component-legacy/toast/index';\r\nimport template from '@bingads-webui-static-legacy/bulk-edit/template/label/association.pug';\r\nimport globalConfig from '@bingads-webui-component-legacy/config/index';\r\nimport { getLoadDirectlyLinkedAccounts } from '@bingads-webui-component-legacy/bingads-grid/service/linked-accounts-preferences';\r\n\r\nconst i18nGlobal = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\nconst permissions = globalConfig.get('permissions');\r\n\r\nexport class LabelAssociationView extends AssociationView {\r\n initialize({\r\n el,\r\n stats,\r\n selectionInfo,\r\n grid,\r\n isForVNext,\r\n gridName,\r\n disableDeselectAll = false,\r\n isManagementRequest = undefined,\r\n }) {\r\n this.selectionInfo = selectionInfo;\r\n this.grid = grid;\r\n this.disableDeselectAll = disableDeselectAll;\r\n const loadDirectlyLinkedAccountsObj = getLoadDirectlyLinkedAccounts(gridName);\r\n const loadDirectlyLinkedAccountsValue = loadDirectlyLinkedAccountsObj ? loadDirectlyLinkedAccountsObj.loadDirectlyLinkedAccounts : 'false';\r\n const loadDirectlyLinkedAccounts = loadDirectlyLinkedAccountsValue === true || loadDirectlyLinkedAccountsValue === 'true' ? 'true' : 'false';\r\n\r\n const options = {\r\n el,\r\n template,\r\n entity: this.selectionInfo.entityType,\r\n stats,\r\n onOperationSuccess: this.onOperationSuccess(this.selectionInfo.selectedRowCount),\r\n onOperationFailure: () => error(i18nGlobal.getString('label_association_error')),\r\n grid,\r\n isForVNext,\r\n loadDirectlyLinkedAccounts,\r\n };\r\n\r\n if (permissions && permissions.IsAccountLabelsEnabled && this.selectionInfo.entityType === 'Account') {\r\n options.scope = 'Customer';\r\n options.isManagementRequest = isManagementRequest;\r\n }\r\n super.initialize(options);\r\n }\r\n\r\n render() {\r\n if (this.selectionInfo.allPages) {\r\n this.ko_model.showProgress(true);\r\n this.ko_model.showButtonBar(false);\r\n } else {\r\n this.ko_model.showPanel = false;\r\n }\r\n this.renderBulkEditJobView();\r\n this.submitJob();\r\n return this;\r\n }\r\n\r\n onOperationSuccess(num) {\r\n return () => {\r\n success(i18nGlobal.getString('label_association_success', num));\r\n if (!this.disableDeselectAll) {\r\n if (this.grid.pgridPlugins && this.grid.pgridPlugins.crossPageSelectAll) {\r\n this.grid.pgridPlugins.crossPageSelectAll.deselectAll();\r\n } else {\r\n this.grid.gridView.deselectAll();\r\n }\r\n }\r\n };\r\n }\r\n}\r\n","import { isFunction } from 'underscore';\r\nimport { applyBindings } from 'knockout';\r\nimport koSchema from '@bingads-webui-component-legacy/ko-schema/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 CommonViewModel {\r\n configSchema(schema = null, keys = [], model = null, customValidators = {}) {\r\n koSchema.properties(this, schema, keys, model, customValidators);\r\n }\r\n\r\n set el(el) {\r\n this.bindEl(el);\r\n }\r\n\r\n bindEl(el) {\r\n applyBindings(this, el);\r\n }\r\n\r\n showGenericErrors() {\r\n if (this.errors && isFunction(this.errors.add)) {\r\n this.errors.add();\r\n }\r\n }\r\n}\r\n\r\nexport default CommonViewModel;\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 (ariaLabel, disableItem, hideAddToList, i18n, value) {if (hideAddToList) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"col-sm-7\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-5\\\"\\u003E\\u003Ca href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_AutoTargets_Category_Grid_Row_Select')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"col-sm-8\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-3\\\"\\u003E\";\nif (disableItem) {\npug_html = pug_html + \"\\u003Cspan class=\\\"enabled arrow-button form-control-disabled\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\" + (\" class=\\\"enabled arrow-button clickable\\\"\"+pug.attr(\"aria-label\", ariaLabel, true, true)+\" role=\\\"button\\\"\") + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"ariaLabel\" in locals_for_with?locals_for_with.ariaLabel:typeof ariaLabel!==\"undefined\"?ariaLabel:undefined,\"disableItem\" in locals_for_with?locals_for_with.disableItem:typeof disableItem!==\"undefined\"?disableItem:undefined,\"hideAddToList\" in locals_for_with?locals_for_with.hideAddToList:typeof hideAddToList!==\"undefined\"?hideAddToList:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"panel-form noPadding grid-container\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Ch3 class=\\\"panel-title\\\"\\u003E\\u003Cspan class=\\\"h5 type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_Target_Category_Container_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body noPadding\\\"\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"autoSuggSearchBoxContainer col-sm-7\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"grid-table\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"pager\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-danger category-error\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_Dynamic_AutoTargets_Error_Category_Load_Failed')) ? \"\" : pug_interp)) + \"\\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 (ariaLabel, categoryNames, isParent) {pug_html = pug_html + \"\\u003Cdiv class=\\\"col-sm-1\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-8\\\"\\u003E\";\n// iterate categoryNames\n;(function(){\n var $$obj = categoryNames;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var item = $$obj[pug_index0];\nif (item.isTail) {\npug_html = pug_html + \"\\u003Cdiv\\u003E\";\nif (isParent) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"next-level\\\"\"+\" href=\\\"javascript:void(0)\\\"\"+pug.attr(\"aria-label\", ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = item.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = item.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan class=\\\"inactive\\\"\\u003E\" + (pug.escape(null == (pug_interp = item.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var item = $$obj[pug_index0];\nif (item.isTail) {\npug_html = pug_html + \"\\u003Cdiv\\u003E\";\nif (isParent) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"next-level\\\"\"+\" href=\\\"javascript:void(0)\\\"\"+pug.attr(\"aria-label\", ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = item.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = item.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan class=\\\"inactive\\\"\\u003E\" + (pug.escape(null == (pug_interp = item.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"ariaLabel\" in locals_for_with?locals_for_with.ariaLabel:typeof ariaLabel!==\"undefined\"?ariaLabel:undefined,\"categoryNames\" in locals_for_with?locals_for_with.categoryNames:typeof categoryNames!==\"undefined\"?categoryNames:undefined,\"isParent\" in locals_for_with?locals_for_with.isParent:typeof isParent!==\"undefined\"?isParent: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, title) {pug_html = pug_html + \"\\u003Cdiv class=\\\"col-sm-1\\\"\\u003E\\u003Cspan\" + (\" class=\\\"glyphicon glyphicon-arrow-left clickable\\\"\"+\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.get('DSA_AutoTargets_Category_Grid_To_Previous_Level'), true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-8\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"panel-form noPadding\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Ch3 class=\\\"panel-title\\\"\\u003E\\u003Cspan class=\\\"h5 type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get(\"DSA_Target_AllWebpage_Container_Title\")) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body\\\"\\u003E\\u003Cdiv class=\\\"dlb-source-container\\\"\\u003E\\u003Cdiv class=\\\"select\\\"\\u003E\\u003Cdiv class=\\\"col-sm-11\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get(\"DSA_AutoTargets_All_Webpage\")) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-1\\\"\\u003E\\u003Cspan\" + (\" class=\\\"enabled arrow-button clickable\\\"\"+\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.get('DSA_AutoTargets_Editor_Add_All_Webpages'), true, true)+\" tabindex=\\\"0\\\"\") + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\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) {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};\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-form noPadding\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Ch3 class=\\\"panel-title\\\"\\u003E\\u003Cspan class=\\\"h5 type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get(\"DSA_Target_CustomLabel_Container_Title\")) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-11\\\"\\u003E\\u003Cdiv class=\\\"col-sm-5 form-control-static custom-label-form-label\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.get(\"DSA_Target_CustomLabel_Label\")) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-7 custom-label-input\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control\\\"\"+\" data-bind=\\\"valueUpdate: "input", value: ArgumentOperand, attr: { maxlength: ArgumentOperand.maxLength }, css: {error: !ArgumentOperand.isValid()}\\\"\"+pug.attr(\"aria-label\", i18n.get('DSA_AutoTargets_Specific_Target_Operand_Custom_Label'), true, true)) + \"\\u003E\\u003Cdiv class=\\\"remaining-hint help-block\\\" data-bind=\\\"text: ArgumentOperand.char_rem\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\npug_mixins[\"koValidationError\"]('ArgumentOperand');\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-1 form-control-static\\\"\\u003E\\u003Cspan\" + (\" class=\\\"enabled arrow-button clickable\\\"\"+\" role=\\\"button\\\" tabindex=\\\"0\\\"\"+pug.attr(\"aria-label\", i18n.get('DSA_AutoTargets_Editor_Add_Custom_Label'), true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\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 (containerTitle, i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"panel-form noPadding\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Ch3 class=\\\"panel-title\\\"\\u003E\\u003Cspan class=\\\"h5 type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = containerTitle) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body\\\"\\u003E\\u003Cdiv class=\\\"exact-urls-container\\\"\\u003E\\u003Cdiv class=\\\"web-condition\\\"\\u003E\\u003Cspan class=\\\"operand\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_AutoTargets_Specific_Target_Operand_URL')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"operator\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_AutoTargets_Specific_Target_Equals')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ctextarea\" + (\" class=\\\"form-control exacturl-textarea\\\"\"+\" data-bind=\\\"value: urls, valueUpdate:'input'\\\"\"+pug.attr(\"placeholder\", i18n.get('DSA_AutoTargets_Editor_Add_Exact_URLs_TextareaDefault'), true, true)) + \"\\u003E\\u003C\\u002Ftextarea\\u003E\\u003Cdiv class=\\\"alert alert-danger url-equals-error\\\" data-bind=\\\"visible: hasError\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_AutoTargets_Invalid_Url')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"addall\\\"\\u003E\\u003Ca class=\\\"enabled addall-button clickable\\\" href=\\\"javascript:void(0)\\\" role=\\\"button\\\" tabindex=\\\"0\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_AutoTargets_Specific_Target_AddAll')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"containerTitle\" in locals_for_with?locals_for_with.containerTitle:typeof containerTitle!==\"undefined\"?containerTitle: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 (appendLearnMoreLink, domainName, hideWebsiteLabel, i18n, showHeader, showPillControl) {pug_html = pug_html + \"\\u003Cdiv class=\\\"panel authoring-container\\\"\\u003E\";\nif (showHeader) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-heading\\\" role=\\\"heading\\\" aria-level=\\\"2\\\"\\u003E\\u003Cdiv class=\\\"panel-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Grid_AddAsDATButtonText')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = appendLearnMoreLink(i18n.get('DSA_AutoTargets_Explanatory_Info'), 'app54494')) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-body form-horizontal\\\"\\u003E\\u003Cdiv class=\\\"form-group col-sm-12\\\"\\u003E\";\nif (!hideWebsiteLabel) {\npug_html = pug_html + \"\\u003Cspan class=\\\"type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_Dynamic_AutoTargets_Website')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cspan class=\\\"domain-name\\\"\\u003E\" + (pug.escape(null == (pug_interp = domainName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group col-sm-6\\\"\\u003E\\u003Cdiv class=\\\"target-type-radiogroup\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (showPillControl) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"pill-control\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group doubleListBox\\\"\\u003E\\u003Cdiv class=\\\"col-sm-7\\\"\\u003E\\u003Cdiv class=\\\"category-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"allwebpage-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"specificwebpage-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"mixedspecificwebpage-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"autotarget-customlabel-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"selected-targets-container col-sm-5\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"appendLearnMoreLink\" in locals_for_with?locals_for_with.appendLearnMoreLink:typeof appendLearnMoreLink!==\"undefined\"?appendLearnMoreLink:undefined,\"domainName\" in locals_for_with?locals_for_with.domainName:typeof domainName!==\"undefined\"?domainName:undefined,\"hideWebsiteLabel\" in locals_for_with?locals_for_with.hideWebsiteLabel:typeof hideWebsiteLabel!==\"undefined\"?hideWebsiteLabel:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"showHeader\" in locals_for_with?locals_for_with.showHeader:typeof showHeader!==\"undefined\"?showHeader:undefined,\"showPillControl\" in locals_for_with?locals_for_with.showPillControl:typeof showPillControl!==\"undefined\"?showPillControl: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=\\\"rules-container\\\" id=\\\"auto-target-rules-panel\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"exacturls-container\\\" id=\\\"auto-target-exacturls-panel\\\"\\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;pug_html = pug_html + \"\\u003Cdiv role=\\\"radiogroup\\\" data-bind=\\\"foreach: radiogroup\\\"\\u003E\\u003Clabel class=\\\"radio cursor-pointer\\\"\\u003E\\u003Cinput type=\\\"radio\\\" data-bind=\\\"value: value, checked: $parent.selectedItem, disable: isDisabled\\\"\\u003E\\u003Cspan class=\\\"type-normal\\\" data-bind=\\\"text: text\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C!-- ko if: popupId --\\u003E\\u003Ca class=\\\"helpbutton\\\" data-bind=\\\"attr: {topic: popupId}\\\" type=\\\"helppopup\\\" data-help onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\" aria-label=\\\"Learn more\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C!-- \\u002Fko --\\u003E\\u003C\\u002Flabel\\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 (accountCurrencyCode, i18n, isForVNext, isNegativeAutoTarget, popupId) {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_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=\\\"panel-form noPadding\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Ch3 class=\\\"panel-title\\\"\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-8 selected-header\\\"\\u003E\\u003Cspan class=\\\"h5 type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_AutoTargets_Select_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\npug_mixins[\"popupHelp\"](popupId, i18n.get('DSA_AutoTargets_Select_Title'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\nif (!isNegativeAutoTarget) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"col-sm-4 h5\\\"\\u003E\\u003Ca class=\\\"pull-right\\\" data-bind=\\\"click:resetBids\\\" role=\\\"button\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_Authoring_Remove_Bids')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\nif (!isNegativeAutoTarget) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12 selected-description\\\"\\u003E\\u003Cspan class=\\\"h5\\\" data-bind=\\\"text: description\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fh3\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body noPadding\\\"\\u003E\\u003Cdiv class=\\\"dlb-selected-container\\\"\\u003E\\u003Cdiv class=\\\"dlb-selected dlb-selected-list\\\" data-bind=\\\"css: {"validation-error": errors().length > 0}\\\"\\u003E\\u003Cdiv class=\\\"panel-body form-control-static inactive\\\" data-bind=\\\"visible: items().length === 0\\\"\\u003E\" + (pug.escape(null == (pug_interp = isForVNext ? i18n.get('DSA_Dynamic_AutoTargets_Selected_Placeholder_ForVNext') : i18n.get('DSA_Dynamic_AutoTargets_Selected_Placeholder')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"remove-all\\\"\\u003E\\u003Ca class=\\\"arrow-button remove a11y-k-listview-button col-sm-1\\\" data-bind=\\\"click: clear, visible: items().length > 0\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003Ca class=\\\"col-sm-5\\\" href=\\\"#\\\" role=\\\"button\\\" data-bind=\\\"click: clear, visible: items().length > 0\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_Authoring_Remove_Targets')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cul data-bind=\\\"foreach: items\\\"\\u003E\\u003Cli\\u003E\\u003Cdiv class=\\\"dlbItem\\\"\\u003E\\u003Cdiv class=\\\"dlbItem-content\\\"\\u003E\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"col-sm-7\",\"targetName\",isNegativeAutoTarget? 'negative-targetName': ''], [false,false,true]), false, true)) + \"\\u003E\\u003Cdiv class=\\\"category\\\" data-bind=\\\"if:type==='category'\\\"\\u003E\\u003Cdiv\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_Target_Selected_Category_Header')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"truncated\\\"\\u003E\\u003Cspan data-bind=\\\"text:conditions[0].ArgumentOperand\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"allwebpage\\\" data-bind=\\\"if:type==='allwebpage'\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_AutoTargets_All_Webpage')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"specificpage preview\\\" data-bind=\\\"if:type==='specificpage', attr: { 'data-conditions': serializedConditions }\\\"\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"operand\\\" data-bind=\\\"text:conditions[0].DisplayOperand\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"operator\\\" data-bind=\\\"text:conditions[0].DisplayOperator\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"preview-operand\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"truncated\\\"\\u003E\\u003Ca\" + (\" class=\\\"argument clickable\\\"\"+\" href=\\\"javascript:void(0)\\\" data-bind=\\\"text:conditions[0].ArgumentOperand().concat(conditions.length > 1 ? "..." : "")\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.get('DSA_AutoTargets_Editor_Show_Preview_Popup'), true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"exacturls preview\\\" data-bind=\\\"if:type==='exacturls', attr: { 'data-conditions': serializedConditions }\\\"\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"operand\\\" data-bind=\\\"text:conditions[0].DisplayOperand\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"operator\\\" data-bind=\\\"text:conditions[0].DisplayOperator\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"preview-operand\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"truncated\\\"\\u003E\\u003Ca\" + (\" class=\\\"argument clickable\\\"\"+\" href=\\\"javascript:void(0)\\\" data-bind=\\\"text:conditions[0].ArgumentOperand\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.get('DSA_AutoTargets_Editor_Show_Preview_Popup'), true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (!isNegativeAutoTarget) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cdiv class=\\\"input-group\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control\\\"\"+\" type=\\\"text\\\" data-bind=\\\"valueUpdate: "input", value:Bid.string, hasFocus: Bid.editing, css: {error: !Bid.isValid()}\\\"\"+pug.attr(\"aria-label\", i18n.get('DSA_AutoTargets_Bid_Input_Label'), true, true)) + \"\\u003E\\u003Cspan class=\\\"input-group-addon\\\"\\u003E\" + (pug.escape(null == (pug_interp = accountCurrencyCode) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Ca\" + (\" class=\\\"arrow-button remove a11y-k-listview-button clickable\\\"\"+\" data-bind=\\\"click: $parent.remove\\\"\"+pug.attr(\"aria-label\", i18n.getString('DSA_AutoTargets_Exclusion_Target_Grid_Toolbar_Remove'), true, true)+\" role=\\\"button\\\"\") + \"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"indented-section\\\"\\u003E\";\npug_mixins[\"koValidationError\"]('Bid');\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\npug_mixins[\"koErrors\"]();\npug_html = pug_html + \"\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\npug_mixins[\"koErrors\"]();}.call(this,\"accountCurrencyCode\" in locals_for_with?locals_for_with.accountCurrencyCode:typeof accountCurrencyCode!==\"undefined\"?accountCurrencyCode:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isForVNext\" in locals_for_with?locals_for_with.isForVNext:typeof isForVNext!==\"undefined\"?isForVNext:undefined,\"isNegativeAutoTarget\" in locals_for_with?locals_for_with.isNegativeAutoTarget:typeof isNegativeAutoTarget!==\"undefined\"?isNegativeAutoTarget: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 (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"panel-form noPadding\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Ch3 class=\\\"panel-title\\\"\\u003E\\u003Cspan class=\\\"h5 type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_Target_SpecificWebPage_Container_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body condition-container\\\"\\u003E\\u003Cdiv class=\\\"conditions\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"summary container-fluid\\\"\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"preview col-sm-11\\\" data-bind=\\\"if: items().length>1||items()[0].ArgumentOperand\\\"\\u003E\\u003Cdiv class=\\\"preview-operand\\\"\\u003E\\u003Cspan class=\\\"operand\\\" data-bind=\\\"text:items()[0].DisplayOperand\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"operator\\\" data-bind=\\\"text:items()[0].DisplayOperator\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"truncated\\\"\\u003E\\u003Ca href=\\\"javascript:void(0)\\\" data-bind=\\\"text:items()[0].ArgumentOperand\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-1\\\"\\u003E\\u003Cspan\" + (\" class=\\\"enabled arrow-button clickable\\\"\"+\" role=\\\"button\\\" tabindex=\\\"0\\\"\"+pug.attr(\"aria-label\", i18n.get('DSA_AutoTargets_Editor_Add_Specific_Webpage'), true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\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 (containerTitle, i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"panel-form noPadding\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Ch3 class=\\\"panel-title\\\"\\u003E\\u003Cspan class=\\\"h5 type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = containerTitle) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body condition-container\\\"\\u003E\\u003Cdiv class=\\\"conditions\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"addall\\\"\\u003E\\u003Ca\" + (\" class=\\\"enabled addall-button clickable\\\"\"+\" href=\\\"javascript:void(0)\\\" role=\\\"button\\\" tabindex=\\\"0\\\"\"+pug.attr(\"aria-label\", i18n.get('DSA_AutoTargets_Editor_Add_Specific_Webpage'), true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_AutoTargets_Specific_Target_AddAll')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"containerTitle\" in locals_for_with?locals_for_with.containerTitle:typeof containerTitle!==\"undefined\"?containerTitle: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;pug_html = pug_html + \"\\u003Cdiv class=\\\"conditions\\\" data-bind=\\\"foreach: conditions\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cspan class=\\\"operand\\\" data-bind=\\\"text: DisplayOperand\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"operator\\\" data-bind=\\\"text: DisplayOperator\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"argument\\\"\\u003E\\u003Cspan data-bind=\\\"text: ArgumentOperand\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"itemTemplate-text\\\"\\u003E\\u003Cspan\\u003E#:data.Name#\\u003C\\u002Fspan\\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 role=\\\"radiogroup\\\" data-bind=\\\"foreach: radioList\\\"\\u003E\\u003Clabel class=\\\"radio cursor-pointer\\\"\\u003E\\u003Cinput type=\\\"radio\\\" data-bind=\\\"checked: $parent.source, value: value\\\"\\u003E\\u003Cspan class=\\\"type-normal\\\" data-bind=\\\"text: text\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"pagefeed-selector-container\\\" data-bind=\\\"visible: showPagefeedSelector\\\"\\u003E\\u003Cspan class=\\\"pagefeed-selector-description\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Campaign_TargetingSource_Page_Selector_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv\" + (\" class=\\\"doubleListBox\\\"\"+pug.attr(\"data-bind\", \"doubleListBox: selectedFeeds,\\\n dlbData: { sourceItems: allFeeds, itemIdField: 'Id', pageSize: 10, itemFilterField: 'Name', useCallbackForFetchOnly:false },\\\n dlbItemActions: {},\\\n dlbFeatures: {selectAll: false, deselectAll: false, paging: true, dragAndDrop: true},\\\n dlbTemplates: {sourceItemContentTemplate: itemTemplate, selectedItemContentTemplate: itemTemplate },\\\n dlbStrings: {sourceItems: '\" + i18n.get('Campaign_TargetingSource_Page_Selector_Source') + \"',\\\n selectedItems: '\" + i18n.get('Campaign_TargetingSource_Page_Selector_Selected') + \"',\\\n filterWatermark: '\" + i18n.get('Campaign_TargetingSource_Page_Selector_Search') + \"'}\", true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cul data-bind=\\\"foreach: errors\\\"\\u003E\\u003Cli\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\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, showAND) {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};\npug_html = pug_html + \"\\u003Cdiv class=\\\"specific-target-container container-fluid\\\"\\u003E\\u003Cdiv class=\\\"specific-target-conditions-container form-horizontal\\\" data-bind=\\\"foreach: items\\\"\\u003E\\u003Cdiv class=\\\"specific-target-condition form-group row\\\"\\u003E\\u003C!-- ko if: $index()\\u003E0 --\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = showAND?i18n.get('DSA_AutoTargets_Specific_Target_And_Capitalization'):i18n.get('DSA_AutoTargets_Specific_Target_And')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko --\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cselect\" + (\" class=\\\"form-control\\\"\"+\" data-bind=\\\"options: $parent.operandOptions, value: $data.Operand, optionsText: "text", optionsValue: "value" \\\"\"+pug.attr(\"aria-label\", i18n.get('DSA_AutoTargets_Editor_Select_Operand'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-2 form-control-static\\\"\\u003E\\u003Clabel data-bind=\\\"text: $data.DisplayOperator, visible: showOperatorAndValue\\\"\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-5\\\"\\u003E\\u003C!-- ko if: $data.showSelect --\\u003E\\n\\u003C!-- ko if: $parent.isCategoriesEmpty --\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DSA_AutoTargets_Specific_Target_Operand_Category_Empty')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C!-- \\u002Fko --\\u003E\\n\\u003C!-- \\u002Fko --\\u003E\\n\\u003C!-- ko ifnot: $data.showSelect --\\u003E\\u003Cinput\" + (\" class=\\\"form-control\\\"\"+\" data-bind=\\\"valueUpdate: "input", value: ArgumentOperand, attr: { maxlength: ArgumentOperand.maxLength }, css: {error: !ArgumentOperand.isValid()}\\\"\"+pug.attr(\"aria-label\", i18n.get('DSA_AutoTargets_Editor_Operand_Contains'), true, true)) + \"\\u003E\\u003Cdiv class=\\\"remaining-hint help-block\\\" data-bind=\\\"text: ArgumentOperand.char_rem\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\npug_mixins[\"koValidationError\"]('ArgumentOperand');\npug_html = pug_html + \"\\u003C!-- \\u002Fko --\\u003E\\n\\u003C!-- ko if: $data.showSelect --\\u003E\\u003Cdiv class=\\\"form-control-static\\\"\\u003E\\u003Cspan data-bind=\\\"text: ArgumentOperand\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"edit-category-icon glyphicon glyphicon-pencil cursor-pointer\\\" data-bind=\\\"visible: showOperatorAndValue\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko --\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-1 form-control-static\\\" data-bind=\\\"click: $parent.deleteItem, visible: $parent.isConditionDeleteEnabled\\\"\\u003E\\u003Ca\" + (\" class=\\\"spritedimage closeimage clickable\\\"\"+\" role=\\\"button\\\"\"+pug.attr(\"title\", i18n.get('Remove'), true, true)+pug.attr(\"aria-label\", i18n.get('Remove'), true, true)+\" tabindex=\\\"0\\\"\") + \"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"category-container col-sm-11\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ca class=\\\"add-row clickable\\\" data-bind=\\\"click: addItem, visible: isConditionAddEnabled\\\" role=\\\"button\\\" tabindex=\\\"0\\\"\\u003E\" + (pug.escape(null == (pug_interp = showAND?i18n.get('DSA_AutoTargets_Specific_Target_And_Capitalization'):i18n.get('DSA_AutoTargets_Specific_Target_Add')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"showAND\" in locals_for_with?locals_for_with.showAND:typeof showAND!==\"undefined\"?showAND: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 (bidAdjustmentHeader, i18n, percentSymbol, rows, showBidAdjustment, targetDescription, targetHeader, targetPopupId, targetType) {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_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[\"adGroupOverrideInformation\"] = pug_interp = function(target){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\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', 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', 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\";\n};\npug_mixins[\"koErrors\"]();\npug_html = pug_html + \"\\u003C!--ko if: level === 'adgroup'--\\u003E\";\npug_mixins[\"adGroupOverrideInformation\"](i18n.getString('Target_Settings_Override_Device_Target'));\npug_html = pug_html + \"\\u003C!--ko if: isForVNext()--\\u003E\\u003Clabel class=\\\"control-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('TargetingSettings_Devices')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Clabel class=\\\"type-normal\\\" id=\\\"base-use-campaign-settings\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('CreationWorkflowsInheritanceFlagLabel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"toggle-campaign-settings-switch form-control-static\\\" data-bind=\\\"checked: useCampaignSettings\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv class=\\\"form-control-static\\\"\\u003E\" + (pug.escape(null == (pug_interp = targetDescription) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Ctable\" + (\" class=\\\"advance-targeting-grid table new-advance-target-grid-container\\\"\"+pug.attr(\"target-type\", targetType, true, true)+\" data-bind=\\\"css: {showCashbackPercent:supportCashbackSettings}\\\"\") + \"\\u003E\\u003Cthead\\u003E\\u003Ctr\\u003E\\u003Cth class=\\\"col-sm-4\\\"\\u003E\" + (pug.escape(null == (pug_interp = targetHeader) ? \"\" : pug_interp)) + \"\\u003C\\u002Fth\\u003E\";\nif (showBidAdjustment) {\npug_html = pug_html + (\"\\u003Cth class=\\\"col-sm-3\\\" colspan=\\\"2\\\"\\u003E\" + (pug.escape(null == (pug_interp = bidAdjustmentHeader) ? \"\" : pug_interp)));\nif (targetPopupId) {\npug_mixins[\"popupHelp\"](targetPopupId, bidAdjustmentHeader, i18n);\n}\npug_html = pug_html + \"\\u003C\\u002Fth\\u003E\";\n}\npug_html = pug_html + \"\\u003C!-- ko if: $root.supportCashbackSettings()--\\u003E\\u003Cth class=\\\"cashback-percent-head\\\" colspan=\\\"2\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Campaign_Maximum_Cashback_Offer')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fth\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody\\u003E\";\n// iterate rows\n;(function(){\n var $$obj = rows;\n if ('number' == typeof $$obj.length) {\n for (var index = 0, $$l = $$obj.length; index < $$l; index++) {\n var row = $$obj[index];\npug_html = pug_html + \"\\u003Ctr\" + (pug.attr(\"data-index\", (index + 1), true, true)) + \"\\u003E\\u003Ctd\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = row.targetName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Ftd\\u003E\";\nif (showBidAdjustment) {\npug_html = pug_html + \"\\u003Ctd\\u003E\\u003Cselect\" + (\" class=\\\"form-control\\\"\"+pug.attr(\"data-bind\", 'options: rows['+index+'].bidAdjustmentOptions, optionsText: \"text\", optionsValue: \"value\", value: rows['+index+'].selectedBidAdjustmentOption, disable: rows['+index+'].readonly ? \"true\" : readonlyBid', true, true)+pug.attr(\"aria-label\", i18n.getString('BidAdjustment_Options'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Ftd\\u003E\\u003Ctd\\u003E\\u003Cinput\" + (\" class=\\\"form-control display-inline bidBoost-percentValue\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"data-bind\", 'value: rows['+index+'].bidAdjustmentValue, valueUpdate: \"input\", disable: readonlyBid, css: {\"validation-error\": !' + row.koErrorObservable + '.isValid() && '+row.koErrorType+'() === \"BID\"}', true, true)+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\\u002Ftd\\u003E\";\n}\npug_html = pug_html + \"\\u003C!-- ko if: $root.supportCashbackSettings()--\\u003E\\u003Ctd class=\\\"cashback-option-select-col\\\"\\u003E\\u003Cselect\" + (\" class=\\\"cashback-option-select form-control\\\"\"+pug.attr(\"data-bind\", 'options: rows['+index+'].cashbackOptions, optionsText:\"text\", optionsValue: \"value\", value: rows['+index+'].selectedCashbackOption, disable: readonlyBid', true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Ftd\\u003E\\u003Ctd class=\\\"cashback-value-col\\\"\\u003E\\u003Cspan\" + (\" class=\\\"inherit-cashback-value\\\"\"+pug.attr(\"data-bind\", 'visible: rows['+index+'].selectedCashbackOption() === \"inherit\"', true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"form-control display-inline cashback-percent-value\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"data-bind\", 'value: rows['+index+'].cashbackInheritValue, valueUpdate: \"input\", disable: true, css: {\"validation-error\": !' + row.koErrorObservable + '.isValid() && '+row.koErrorType+'() === \"CASHBACK\"}', true, true)+pug.attr(\"aria-label\", i18n.getString('Campaign_Maximum_Cashback_Offer'), true, true)) + \"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Campaign_Discount')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\" + (\" class=\\\"cashback-input-container\\\"\"+pug.attr(\"data-bind\", 'visible: rows['+index+'].selectedCashbackOption() === \"override\"', true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"form-control display-inline cashback-percent-value\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"data-bind\", 'value: rows['+index+'].cashbackPercentValue, valueUpdate: \"input\", disable: readonlyBid, css: {\"validation-error\": !' + row.koErrorObservable + '.isValid() && '+row.koErrorType+'() === \"CASHBACK\"}', true, true)+pug.attr(\"aria-label\", i18n.getString('Campaign_Maximum_Cashback_Offer'), true, true)) + \"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Campaign_Discount')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftr\\u003E\";\nif (row.tipText) {\npug_html = pug_html + \"\\u003Ctr class=\\\"table-row__tip-text\\\"\\u003E\\u003Ctd\\u003E\\u003C\\u002Ftd\\u003E\\u003Ctd colspan=\\\"2\\\"\\u003E\\u003Cspan class=\\\"row-tip\\\"\\u003E\" + (pug.escape(null == (pug_interp = row.tipText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n}\npug_html = pug_html + \"\\u003Ctr\\u003E\\u003Ctd colspan=\\\"3\\\"\\u003E\";\npug_mixins[\"koValidationError\"](row.koErrorObservable);\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var index in $$obj) {\n $$l++;\n var row = $$obj[index];\npug_html = pug_html + \"\\u003Ctr\" + (pug.attr(\"data-index\", (index + 1), true, true)) + \"\\u003E\\u003Ctd\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = row.targetName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Ftd\\u003E\";\nif (showBidAdjustment) {\npug_html = pug_html + \"\\u003Ctd\\u003E\\u003Cselect\" + (\" class=\\\"form-control\\\"\"+pug.attr(\"data-bind\", 'options: rows['+index+'].bidAdjustmentOptions, optionsText: \"text\", optionsValue: \"value\", value: rows['+index+'].selectedBidAdjustmentOption, disable: rows['+index+'].readonly ? \"true\" : readonlyBid', true, true)+pug.attr(\"aria-label\", i18n.getString('BidAdjustment_Options'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Ftd\\u003E\\u003Ctd\\u003E\\u003Cinput\" + (\" class=\\\"form-control display-inline bidBoost-percentValue\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"data-bind\", 'value: rows['+index+'].bidAdjustmentValue, valueUpdate: \"input\", disable: readonlyBid, css: {\"validation-error\": !' + row.koErrorObservable + '.isValid() && '+row.koErrorType+'() === \"BID\"}', true, true)+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\\u002Ftd\\u003E\";\n}\npug_html = pug_html + \"\\u003C!-- ko if: $root.supportCashbackSettings()--\\u003E\\u003Ctd class=\\\"cashback-option-select-col\\\"\\u003E\\u003Cselect\" + (\" class=\\\"cashback-option-select form-control\\\"\"+pug.attr(\"data-bind\", 'options: rows['+index+'].cashbackOptions, optionsText:\"text\", optionsValue: \"value\", value: rows['+index+'].selectedCashbackOption, disable: readonlyBid', true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Ftd\\u003E\\u003Ctd class=\\\"cashback-value-col\\\"\\u003E\\u003Cspan\" + (\" class=\\\"inherit-cashback-value\\\"\"+pug.attr(\"data-bind\", 'visible: rows['+index+'].selectedCashbackOption() === \"inherit\"', true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"form-control display-inline cashback-percent-value\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"data-bind\", 'value: rows['+index+'].cashbackInheritValue, valueUpdate: \"input\", disable: true, css: {\"validation-error\": !' + row.koErrorObservable + '.isValid() && '+row.koErrorType+'() === \"CASHBACK\"}', true, true)+pug.attr(\"aria-label\", i18n.getString('Campaign_Maximum_Cashback_Offer'), true, true)) + \"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Campaign_Discount')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\" + (\" class=\\\"cashback-input-container\\\"\"+pug.attr(\"data-bind\", 'visible: rows['+index+'].selectedCashbackOption() === \"override\"', true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"form-control display-inline cashback-percent-value\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"data-bind\", 'value: rows['+index+'].cashbackPercentValue, valueUpdate: \"input\", disable: readonlyBid, css: {\"validation-error\": !' + row.koErrorObservable + '.isValid() && '+row.koErrorType+'() === \"CASHBACK\"}', true, true)+pug.attr(\"aria-label\", i18n.getString('Campaign_Maximum_Cashback_Offer'), true, true)) + \"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Campaign_Discount')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftr\\u003E\";\nif (row.tipText) {\npug_html = pug_html + \"\\u003Ctr class=\\\"table-row__tip-text\\\"\\u003E\\u003Ctd\\u003E\\u003C\\u002Ftd\\u003E\\u003Ctd colspan=\\\"2\\\"\\u003E\\u003Cspan class=\\\"row-tip\\\"\\u003E\" + (pug.escape(null == (pug_interp = row.tipText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n}\npug_html = pug_html + \"\\u003Ctr\\u003E\\u003Ctd colspan=\\\"3\\\"\\u003E\";\npug_mixins[\"koValidationError\"](row.koErrorObservable);\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\";}.call(this,\"bidAdjustmentHeader\" in locals_for_with?locals_for_with.bidAdjustmentHeader:typeof bidAdjustmentHeader!==\"undefined\"?bidAdjustmentHeader:undefined,\"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,\"rows\" in locals_for_with?locals_for_with.rows:typeof rows!==\"undefined\"?rows:undefined,\"showBidAdjustment\" in locals_for_with?locals_for_with.showBidAdjustment:typeof showBidAdjustment!==\"undefined\"?showBidAdjustment:undefined,\"targetDescription\" in locals_for_with?locals_for_with.targetDescription:typeof targetDescription!==\"undefined\"?targetDescription:undefined,\"targetHeader\" in locals_for_with?locals_for_with.targetHeader:typeof targetHeader!==\"undefined\"?targetHeader:undefined,\"targetPopupId\" in locals_for_with?locals_for_with.targetPopupId:typeof targetPopupId!==\"undefined\"?targetPopupId:undefined,\"targetType\" in locals_for_with?locals_for_with.targetType:typeof targetType!==\"undefined\"?targetType: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, showBidAdjustment, showLevelToggle, targetType) {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_mixins[\"adGroupOverrideInformation\"] = pug_interp = function(target){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\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', 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', 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\";\n};\npug_html = pug_html + \"\\u003C!--ko if: level === 'adgroup'--\\u003E\";\npug_mixins[\"adGroupOverrideInformation\"](i18n.getString('Target_Settings_Override_DeviceOS_Target'));\npug_html = pug_html + \"\\u003C!--ko if: isForVNext()--\\u003E\\u003Clabel class=\\\"control-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('TargetingSettings_Devices')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C!-- \\u002Fko--\\u003E\";\nif (showLevelToggle === true) {\npug_html = pug_html + \"\\u003Clabel class=\\\"type-normal\\\" id=\\\"base-use-campaign-settings\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('CreationWorkflowsInheritanceFlagLabel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"toggle-campaign-settings-switch form-control-static\\\" data-bind=\\\"checked: useCampaignSettings\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C!-- \\u002Fko--\\u003E\\u003C!--ko if: level === 'campaign'--\\u003E\\u003C!--ko if: isForVNext()--\\u003E\\u003Clabel class=\\\"control-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('TargetingSettings_Devices')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv class=\\\"form-control-static\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DeviceType_Description')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Ctable\" + (\" class=\\\"advance-targeting-grid table new-advance-target-grid-container\\\"\"+pug.attr(\"target-type\", targetType, true, true)) + \"\\u003E\\u003Cthead\\u003E\\u003Ctr\\u003E\\u003Cth class=\\\"col-sm-4\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('DeviceType_Header')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fth\\u003E\";\nif (showBidAdjustment) {\npug_html = pug_html + (\"\\u003Cth class=\\\"col-sm-3\\\" colspan=\\\"2\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Target_ColumnHeaderBidAdjustment')) ? \"\" : pug_interp)));\npug_mixins[\"popupHelp\"]('pop_BA_TargetingSettingsPopup_TargetTablet', i18n.get('Target_ColumnHeaderBidAdjustment'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fth\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ftr\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody data-bind=\\\"foreach: devices\\\"\\u003E\\u003Ctr class=\\\"deviceSettings target\\\" data-bind=\\\"attr:{'data-index': $index()+1}\\\"\\u003E\\u003Ctd\\u003E\\u003Cdiv class=\\\"checkbox\\\"\\u003E\\u003Cspan class=\\\"checkbox-label\\\" data-bind=\\\"text: displayName\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cinput class=\\\"targetDevice target\\\" type=\\\"checkbox\\\" data-bind=\\\"checked: isSelected, click: onClick, disable: readonlyBid\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"OSDisplayName\\\" data-bind=\\\"text: osSelected\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"device-separator\\\"\\u003E\" + (pug.escape(null == (pug_interp = ' | ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"link expander2 collapsed\\\" data-bind=\\\"attr:{'data-target':'#os'+$index(),'data-toggle':'collapse'}, click: changeText, text: expandLinkText\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003Cdiv class=\\\"advanced-targeting-section OSBox collapse\\\" data-bind=\\\"attr:{id:'os'+$index()}\\\"\\u003E\\u003Cspan class=\\\"item-description type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Targeting_TargetOSTitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"OSList\\\"\\u003E\\u003Cdiv data-bind=\\\"foreach: operatingSystems\\\"\\u003E\\u003Cdiv class=\\\"checkbox checkbox-label\\\" data-bind=\\\"attr:{name: name}\\\"\\u003E\\u003Cspan data-bind=\\\"text: displayName\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cinput type=\\\"checkbox\\\" data-bind=\\\"checked: isSelected, click: onClick, disable: $parent.readonlyBid\\\" style=\\\"margin: 4px 0px 0px 10px\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\";\nif (showBidAdjustment) {\npug_html = pug_html + \"\\u003Ctd\\u003E\\u003Cselect\" + (\" class=\\\"form-control\\\"\"+\" data-bind=\\\"options: bidAdjustmentOptions, optionsText: "text", optionsValue: "value", value: selectedBidAdjustmentOption, disable: readonlyBid\\\"\"+pug.attr(\"aria-label\", i18n.getString('BidAdjustment_Options'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Ftd\\u003E\\u003Ctd\\u003E\\u003Cinput\" + (\" class=\\\"form-control display-inline bidBoost-percentValue\\\"\"+\" type=\\\"text\\\" data-bind=\\\"value: bidAdjustmentValue, valueUpdate: "input", disable: readonlyBid\\\"\"+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\\u002Ftd\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ftr\\u003E\\u003Ctr\\u003E\\u003Ctd colspan=\\\"3\\\"\\u003E\";\npug_mixins[\"koError\"]('error');\npug_html = pug_html + \"\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\";}.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,\"showBidAdjustment\" in locals_for_with?locals_for_with.showBidAdjustment:typeof showBidAdjustment!==\"undefined\"?showBidAdjustment:undefined,\"showLevelToggle\" in locals_for_with?locals_for_with.showLevelToggle:typeof showLevelToggle!==\"undefined\"?showLevelToggle:undefined,\"targetType\" in locals_for_with?locals_for_with.targetType:typeof targetType!==\"undefined\"?targetType: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=\\\"update-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (PageContext, i18n, popupIds, prefixBiddingScheme) {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 + \"\\u003Cdiv class=\\\"bid-strategy-container\\\" data-bind=\\\"visible: showBidStrategySection()\\\"\\u003E\\u003Cdiv class=\\\"bid-strategy-selection-container form-group\\\" data-bind=\\\"visible: showBidStrategySelection\\\"\\u003E\\u003Cdiv class=\\\"form-control-static\\\" data-bind=\\\"visible: shouldDisplayNotification()\\\"\\u003E\\u003Cdiv class=\\\"alert alert-coupon\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\\u003Cspan class=\\\"title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySettings_Auto_Bid_Coupon_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"description\\\" data-bind=\\\"text: autoBiddingCouponDescription()\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ca class=\\\"alert-dismiss-button\\\" data-bind=\\\"click: dismissCouponNotification\\\"\\u003E\\u003Cdiv class=\\\"alert-dismiss\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ch2 class=\\\"control-label col-sm-2\\\" data-bind=\\\"visible: showHeader\\\"\\u003E\\u003Clabel id=\\\"BidStrategySetting_BidStrategy_Label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Label_BidStrategy')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"](popupIds.BidStrategy, i18n.getString('BidStrategySetting_Label_BidStrategy'), i18n);\npug_html = pug_html + (\"\\u003C\\u002Fh2\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003C!-- ko if: !isBidStrategyReadonly()--\\u003E\\u003Cdiv class=\\\"form-control-static\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_OptionQuestion')) ? \"\" : pug_interp)) + \" \\u003Ca\" + (\" class=\\\"HelpTopic\\\"\"+\" query=\\\"56786\\\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"aria-label\", (i18n.getString('Click to learn more about {{item}}') || '').replace('{{item}}', i18n.getString('BidStrategySetting_OptionQuestion')), true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('LearnMore')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cselect\" + (\" class=\\\"form-control form-group-subset\\\"\"+\" data-bind=\\\"options:strategyOptions, optionsText: "Text", optionsValue: "Value", value: selectedBidStrategy, disable: isReadOnly\\\"\"+pug.attr(\"name\", prefixBiddingScheme + 'BiddingScheme.Type', true, true)+pug.attr(\"aria-label\", i18n.getString('BidStrategySetting_OptionQuestion'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!-- ko if: isBidStrategyReadonly()--\\u003E\\u003Cdiv class=\\\"form-text form-group-subset\\\"\\u003E\\u003Cp\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategy_Option_MaxConversionValue')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fp\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003Cspan class=\\\"form-text form-group-subset\\\" data-bind=\\\"visible: showConversionChecking\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Message_NoConversionTracking')) ? \"\" : pug_interp)) + \"\\u003Ca class=\\\"HelpTopic\\\" query=\\\"56680\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('LearnMore')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"form-text form-group-subset error\\\" data-bind=\\\"if: !showRevenueCheckErrorMessage(), visible: showConversionCountCheckErrorMessage\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Message_ActiveConversionGoalPresent')) ? \"\" : pug_interp)) + \"\\u003Ca\" + (\" class=\\\"HelpTopic\\\"\"+\" query=\\\"app54720\\\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"aria-label\", i18n.getString('BidStrategySetting_Message_ActiveConversionGoalPresent') + ' ' + i18n.getString('LearnMore'), true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('LearnMore')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"form-text form-group-subset error\\\" data-bind=\\\"visible: showRevenueCheckErrorMessage\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Message_ActiveConversionGoalPresentWithValidRevenueValue')) ? \"\" : pug_interp)) + \"\\u003Ca\" + (\" class=\\\"HelpTopic\\\"\"+\" query=\\\"app54721\\\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"aria-label\", i18n.getString('BidStrategySetting_Message_ActiveConversionGoalPresentWithValidRevenueValue') + ' ' + i18n.getString('LearnMore'), true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('LearnMore')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv id=\\\"broadOnlyRestrictionError\\\"\\u003E\\u003Cspan class=\\\"form-text form-group-subset error\\\" data-bind=\\\"visible: showBroadOnlyErrorMessage\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Message_BroadOnlyErrorMessage')) ? \"\" : pug_interp)) + \"\\u003Ca\" + (\" class=\\\"HelpTopic\\\"\"+\" query=\\\"app54760\\\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"aria-label\", i18n.getString('BidStrategySetting_Message_BroadOnlyErrorMessage') + ' ' + i18n.getString('LearnMore'), true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('LearnMore')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-control-static\\\" data-bind=\\\"visible: showSwitchStrategyWarningMessage\\\"\\u003E\\u003Cdiv class=\\\"alert alert-warning\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-warning-inline\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Message_SwitchStrategyWarning')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: selectedBidStrategy() === \\\"MaxConversionValue\\\"--\\u003E\\u003Cdiv class=\\\"form-control-static\\\" data-bind=\\\"visible: showMaxConversionValueLocationTargetMessage\\\"\\u003E\\u003Cdiv class=\\\"alert alert-info\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Message_MaxConversionValueGoal_LocationTarget')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003Cdiv class=\\\"form-control-static\\\" data-bind=\\\"visible: showAutobiddingChangeAlert\\\"\\u003E\\u003Cdiv class=\\\"alert alert-info\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Message_ChangeAlert')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"checkbox troas-container\\\" data-bind=\\\"visible: showTargetRoasCheckbox\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Checkbox_Label_TargetROAS')) ? \"\" : pug_interp)) + \"\\u003Cinput type=\\\"checkbox\\\" data-bind=\\\"css: { checked: isTargetRoasCheckboxSelected }, checked: isTargetRoasCheckboxSelected\\\"\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"checkbox tcpa-container\\\" data-bind=\\\"visible: showTargetCpaCheckbox\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Checkbox_Label_TargetCPA')) ? \"\" : pug_interp)) + \"\\u003Cinput type=\\\"checkbox\\\" data-bind=\\\"css: { checked: isTargetCpaCheckboxSelected }, checked: isTargetCpaCheckboxSelected\\\"\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"bid-strategy-details-container form-group\\\" data-bind=\\\"visible: showTargetCPA() || showCPC() || showTargetROAS() || showPortfolioSection() || showCostPerSale() || showCommissionRate() || showTargetRoasCheckbox()\\\"\\u003E\\u003Clabel class=\\\"control-label col-sm-2\\\"\\u003E\\u003Cspan data-bind=\\\"visible: showTargetCPA\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Label_CPA')) ? \"\" : pug_interp)));\npug_mixins[\"popupHelp\"]('pop_BA_Settings_TargetCPA', i18n.getString('BidStrategySetting_Label_CPA'), i18n);\npug_html = pug_html + (\"\\u003C\\u002Fspan\\u003E\\u003Cspan data-bind=\\\"visible: showTargetROAS\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Label_TargetROAS')) ? \"\" : pug_interp)));\npug_mixins[\"popupHelp\"]('pop_BA_Settings_TargetROAS', i18n.getString('BidStrategySetting_Label_TargetROAS'), i18n);\npug_html = pug_html + (\"\\u003C\\u002Fspan\\u003E\\u003Cspan data-bind=\\\"visible: showCostPerSale\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Label_CostPerSale') || 'Cost per Sale') ? \"\" : pug_interp)));\npug_mixins[\"popupHelp\"]('pop_BA_CampaignCreate_Settings_PP_Cost', i18n.getString('BidStrategySetting_Label_CostPerSale'), i18n);\npug_html = pug_html + (\"\\u003C\\u002Fspan\\u003E\\u003Cspan data-bind=\\\"visible: showCommissionRate\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Label_CommissionRate')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Cdiv class=\\\"form-control-static\\\" data-bind=\\\"visible: showCostPerSale\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_CostPerSalePrefix') || \"My target CPS is\") ? \"\" : pug_interp)) + \"\\u003Cinput\" + (\" class=\\\"form-control builkEdit-bid custom-param__key-field\\\"\"+\" type=\\\"text\\\" data-bind=\\\"value: costPerSale, valueUpdate: "input"\\\" aria-describedby=\\\"setCostPerSaleBidError currencyLabelCostPerSale\\\"\"+pug.attr(\"name\", prefixBiddingScheme + 'BiddingScheme.CostPerSale', true, true)+pug.attr(\"aria-label\", i18n.getString('BidStrategySetting_CostPerSalePrefix'), true, true)) + \"\\u003E\\u003Cspan class=\\\"control-label\\\" id=\\\"currencyLabelCostPerSale\\\"\\u003E\" + (pug.escape(null == (pug_interp = PageContext.AccountCurrencyCode) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv id=\\\"setCostPerSaleBidError\\\" role=\\\"alert\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorMessageCostPerSale\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-info\\\" data-bind=\\\"visible: showCostPerSaleDefaultValueAlert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan data-bind=\\\"html: costPerSaleDefaultValueAlertMessge\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"checkbox target-roas-container\\\" data-bind=\\\"visible: !showBidStrategySelection && showTargetRoasCheckbox\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"checkbox\\\" data-bind=\\\"css: { checked: isTargetRoasCheckboxSelected }, checked: isTargetRoasCheckboxSelected\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Checkbox_Label_TargetROAS')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-control-static\\\" data-bind=\\\"visible: showTargetROAS\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_TargetROASPrefix')) ? \"\" : pug_interp)) + \"\\u003Cinput\" + (\" class=\\\"form-control builkEdit-bid custom-param__key-field\\\"\"+\" type=\\\"text\\\" data-bind=\\\"value: targetRoas, valueUpdate: "input"\\\" aria-describedby=\\\"setTargetRoasBidError currencyLabelTargetRoas\\\"\"+pug.attr(\"name\", prefixBiddingScheme + 'BiddingScheme.TargetRoas', true, true)+pug.attr(\"aria-label\", i18n.getString('BidStrategySetting_TargetROASPrefix'), true, true)) + \"\\u003E\\u003Cspan class=\\\"control-label\\\" id=\\\"currencyLabelTargetRoas\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_TargetROASPercent')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv id=\\\"setTargetRoasBidError\\\" role=\\\"alert\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorMessageTargetRoas\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-info\\\" data-bind=\\\"visible: showTargetRoasDefaultValueAlert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan data-bind=\\\"html: targetRoasDefaultValueAlertMessge\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-control-static\\\" data-bind=\\\"visible: showTargetImpressionShare\\\"\\u003E\\u003Cdiv class=\\\"form-control-static description\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_TargetImpressionShare_AdPosition_Header')) ? \"\" : pug_interp)));\npug_mixins[\"popupHelp\"]('pop_BA_Settings_TargetImpSh_Where', i18n.getString('BidStrategySetting_TargetImpressionShare_AdPosition_Header'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"target-impression-share-positions\\\"\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"targetImpressionAdPositionAnywhereOnThePage\\\" value=\\\"FirstPage\\\" data-bind=\\\"checked: targetImpressionShareAdPositionUpdate\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_TargetImpressionShare_AdPosition_AnywhereOnThePage')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"targetImpressionAdPositionTopOfThePage\\\" value=\\\"MainLine\\\" data-bind=\\\"checked: targetImpressionShareAdPositionUpdate\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_TargetImpressionShare_AdPosition_TopOfThePage')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"targetImpressionAdPositionAbsoluteTopOfThePage\\\" value=\\\"MainLine1\\\" data-bind=\\\"checked: targetImpressionShareAdPositionUpdate\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_TargetImpressionShare_AdPosition_AbsoluteTopOfThePage')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-control-static\\\"\\u003E\\u003Cspan class=\\\"description\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_TargetImpressionShare_SharePercent_Header')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cinput class=\\\"form-control custom-param__key-field target-impression-share-percent-field\\\" type=\\\"text\\\" data-bind=\\\"value: targetImpressionShare, valueUpdate: "input"\\\" aria-describedby=\\\"setTargetCpaBidError currencyLabelTargetCpa\\\"\\u003E\\u003Cspan class=\\\"target-impression-share-percent\\\"\\u003E\" + (pug.escape(null == (pug_interp = '%') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv id=\\\"setTargetImpressionShareError\\\" role=\\\"alert\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorMessageTargetImpressionSharePercent\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-control-static target-cpc-container\\\" data-bind=\\\"visible: showTargetCPA\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_TargetCPAPrefix')) ? \"\" : pug_interp)) + \"\\u003Cinput\" + (\" class=\\\"form-control builkEdit-bid custom-param__key-field\\\"\"+\" type=\\\"text\\\" data-bind=\\\"value: targetCpa, valueUpdate: "input"\\\" aria-describedby=\\\"setTargetCpaBidError currencyLabelTargetCpa\\\"\"+pug.attr(\"name\", prefixBiddingScheme + 'BiddingScheme.TargetCpa', true, true)+pug.attr(\"aria-label\", i18n.getString('BidStrategySetting_TargetCPAPrefix'), true, true)) + \"\\u003E\\u003Cspan class=\\\"control-label\\\" id=\\\"currencyLabelTargetCpa\\\"\\u003E\" + (pug.escape(null == (pug_interp = PageContext.AccountCurrencyCode) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv id=\\\"setTargetCpaBidError\\\" role=\\\"alert\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorMessageTargetCpa\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-info\\\" data-bind=\\\"visible: showTargetCpaDefaultValueAlert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan data-bind=\\\"html: targetCpaDefaultValueAlertMessge\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"checkbox max-cpc-container\\\" data-bind=\\\"visible: showCPC\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"checkbox\\\" data-bind=\\\"css: { checked: checkCPC }, checked: checkCPC\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_SetMaxCPC')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"]('pop_BA_Settings_MaxCPC', i18n.getString('BidStrategySetting_SetMaxCPC'), i18n);\npug_html = pug_html + (\"\\u003Cdiv class=\\\"form-control-static\\\" data-bind=\\\"visible: checkCPC\\\"\\u003E\\u003Cdiv class=\\\"row max-cpc-input-row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-3 input-group\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control builkEdit-bid\\\"\"+\" type=\\\"text\\\" data-bind=\\\"value: maxCpc, valueUpdate: "input"\\\"\"+pug.attr(\"aria-label\", i18n.getString('BidStrategy_MaxCPC_Label'), true, true)+\" aria-describedby=\\\"setMaxCpcBidError currencyLabelMaxCpc\\\"\"+pug.attr(\"name\", prefixBiddingScheme + 'BiddingScheme.MaxCpc.Amount', true, true)) + \"\\u003E\\u003Cspan class=\\\"input-group-addon\\\" id=\\\"currencyLabelMaxCpc\\\"\\u003E\" + (pug.escape(null == (pug_interp = PageContext.AccountCurrencyCode) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv id=\\\"setMaxCpcBidError\\\" role=\\\"alert\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorMessageMaxCpc\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-info\\\" data-bind=\\\"visible: showMaxCpcDefaultValueAlert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan data-bind=\\\"html: maxCpcDefaultValueAlertMessge\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-control-static\\\" data-bind=\\\"visible: showPortfolioSection\\\"\\u003E\\u003Cdiv class=\\\"original-portfolio-strategy-container\\\" data-bind=\\\"visible: !showPortfolioSelector()\\\"\\u003E\\u003Cspan class=\\\"original-portfolio-bid-strategy\\\" data-bind=\\\"text: originalPortfolioBidStrategy\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"portfolio-bid-strategy-edit\\\" style=\\\"vertical-align:middle;\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Edit')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"portfolio-selector-container\\\" data-bind=\\\"visible: showPortfolioSelector\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv id=\\\"setPortfolioBidStrategyError\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorMessagePortfolioBidStrategy\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-control-static\\\" data-bind=\\\"visible: showCommissionRate\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control builkEdit-bid custom-param__key-field\\\"\"+\" type=\\\"text\\\" data-bind=\\\"value: targetCommissionRate, valueUpdate: "input"\\\" aria-describedby=\\\"setTargetCommissionRateError currencyLabelTargetCommissionRate\\\"\"+pug.attr(\"name\", prefixBiddingScheme + 'BiddingScheme.TargetCommissionRate', true, true)) + \"\\u003E\\u003Cspan class=\\\"control-label\\\" id=\\\"currencyLabelTargetCommissionRate\\\"\\u003E\" + (pug.escape(null == (pug_interp = '%') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv id=\\\"setTargetCommissionRateError\\\" role=\\\"alert\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorMessageTargetCommissionRate\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-info\\\" data-bind=\\\"visible: showTargetCommissionRateDefaultValueAlert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan data-bind=\\\"html: targetCommissionRateDefaultValueAlertMessge\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"predictive-targeting-container form-group\\\" data-bind=\\\"visible: showAutoTargeting\\\"\\u003E\\u003Clabel class=\\\"control-label col-sm-2\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_Label_Auto_Targeting')) ? \"\" : pug_interp)));\npug_mixins[\"popupHelp\"]('pop_BA_CampaignCreate_PredictiveTargeting', i18n.getString('BidStrategySetting_AutoTargeting'), i18n);\npug_html = pug_html + (\"\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Cdiv class=\\\"checkbox auto-targeting-container\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"checkbox\\\" data-bind=\\\"css: { checked: checkAutoTargeting }, checked: checkAutoTargeting\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BidStrategySetting_AutoTargeting')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"predictive-matching-container form-group\\\" data-bind=\\\"visible: showPredictiveMatching\\\"\\u003E\\u003Clabel class=\\\"control-label col-sm-2\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdvancedSetting_PredictiveMatching_Header')) ? \"\" : pug_interp)));\npug_mixins[\"popupHelp\"]('pop_BA_Keywords_PredictiveMatching', i18n.getString('AdvancedSetting_PredictiveMatching_Header'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Cdiv class=\\\"checkbox predictive-matching-container\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"checkbox\\\" data-bind=\\\"css: { checked: predictiveMatchingChecked }, checked: predictiveMatchingChecked\\\"\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdvancedSetting_PredictiveMatching_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003Cdiv style=\\\"padding-left: 8px;\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdvancedSetting_PredictiveMatching_Description')) ? \"\" : pug_interp)) + \" \\u003Ca class=\\\"HelpTopic\\\" href=\\\"javascript:void(0);\\\" query=\\\"help:app54583\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('LearnMoreLinkText')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"PageContext\" in locals_for_with?locals_for_with.PageContext:typeof PageContext!==\"undefined\"?PageContext: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,\"prefixBiddingScheme\" in locals_for_with?locals_for_with.prefixBiddingScheme:typeof prefixBiddingScheme!==\"undefined\"?prefixBiddingScheme: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=\\\"clear\\\" data-bind=\\\"visible: !inSimpleMode()&& hasData()\\\"\\u003E\\u003Cdiv class=\\\"bidlandscape-action padding-bottom-fifteen\\\" id=\\\"applyButtonsDiv\\\"\\u003E\\u003Cinput\" + (\" class=\\\"btn btn-primary\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.get('Save'), 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\";}.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 + \"\\u003Ctable class=\\\"bidlandscape-detail-table table-full text-right vertical-align-middle\\\"\\u003E\\u003Ccolgroup\\u003E\\u003Ccol class=\\\"bid-landscape__col bid-landscape__col--radio\\\"\\u003E\\u003Ccol class=\\\"bid-landscape__col bid-landscape__col--bid\\\"\\u003E\\u003C!-- ko if: $root.isClickGraph()--\\u003E\\u003Ccol class=\\\"bid-landscape__col bid-landscape__col--bi\\\"\\u003E\\u003Ccol class=\\\"bid-landscape__col bid-landscape__col--bi\\\"\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Ccol class=\\\"bid-landscape__col bid-landscape__col--bi\\\"\\u003E\\u003C!-- ko if: $root.entityType() != 'product-partition'--\\u003E\\u003Ccol class=\\\"bid-landscape__col bid-landscape__col--bi\\\"\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Ccol class=\\\"bid-landscape__col bid-landscape__col--extra\\\"\\u003E\\u003C\\u002Fcolgroup\\u003E\\u003Cthead\\u003E\\u003Ctr class=\\\"bidlandscape-table-row\\\"\\u003E\\u003Cth class=\\\"text-right bidlandscape-firstColumn\\\"\\u003E\\u003C\\u002Fth\\u003E\\u003Cth class=\\\"text-left\\\"\\u003E\\u003Clabel class=\\\"bidlandscape-label bold\\\" data-bind=\\\"text:tableBidText()\\\"\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fth\\u003E\\u003C!-- ko if: $root.isClickGraph()--\\u003E\\u003Cth class=\\\"text-right bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('KPI_EstCost')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fth\\u003E\\u003Cth class=\\\"text-right bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('KPI_EstClick')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fth\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cth class=\\\"text-right bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('KPI_EstImp')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fth\\u003E\\u003C!-- ko if: $root.entityType() != 'product-partition'--\\u003E\\u003Cth class=\\\"text-right bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('KPI_EstMlImp')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fth\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cth\\u003E\\u003C\\u002Fth\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody data-bind=\\\"foreach: dataArray()\\\"\\u003E\\u003C!-- ko if: $index() ==0 && $root.entityType() == 'adgroup' && $root.clearBid() && _.size($root.customBidCurrentPoint()) \\u003E0--\\u003E\\u003Ctr class=\\\"bidlandscape-table-row cursor-pointer col-xs-12\\\" onclick=\\\"return false;\\\"\\u003E\\u003Ctd\\u003E\\u003C\\u002Ftd\\u003E\\u003Ctd class=\\\"text-left\\\"\\u003E\\u003Clabel class=\\\"bidlandscape-label vertical-align-middle type-normal\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Current')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- ko if: $root.isClickGraph()--\\u003E\\u003Ctd data-bind=\\\"text:$root.customBidCurrentPoint().costStr\\\"\\u003E\\u003C\\u002Ftd\\u003E\\u003Ctd data-bind=\\\"text:$root.customBidCurrentPoint().clicksStr\\\"\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Ctd data-bind=\\\"text:$root.customBidCurrentPoint().impressionsStr\\\"\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- ko if: $root.entityType() != 'product-partition'--\\u003E\\u003Ctd data-bind=\\\"text:$root.customBidCurrentPoint().mlImpressionsStr\\\"\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Ctd\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Ctr class=\\\"bidlandscape-table-row cursor-pointer col-xs-12\\\" data-bind=\\\"click: $root.updatedSelectedIndex.bind($data, $index()), css:{'bid-current-row':$index() == $root.currentSelectedId()}\\\"\\u003E\\u003Ctd\\u003E\\u003Cinput class=\\\"bidlandscape-firstColumn cursor-pointer bid-landscape__radio\\\" type=\\\"radio\\\" data-bind=\\\"value:$index(), checked:$root.currentSelectedId(), attr:{name:$root.radioName(),id:$root.radioName()+$index(), "aria-label":"Bid "+bidStr}\\\"\\u003E\\u003C\\u002Ftd\\u003E\\u003Ctd class=\\\"text-left\\\"\\u003E\\u003Clabel class=\\\"bidlandscape-label vertical-align-middle type-normal\\\" data-bind=\\\"attr:{'for':$root.radioName()+$index()}, text: bidStr+comment\\\"\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- ko if: $root.isClickGraph()--\\u003E\\u003Ctd data-bind=\\\"text:costStr\\\"\\u003E\\u003C\\u002Ftd\\u003E\\u003Ctd data-bind=\\\"text:clicksStr\\\"\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Ctd data-bind=\\\"text:impressionsStr\\\"\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- ko if: $root.entityType() != 'product-partition'--\\u003E\\u003Ctd data-bind=\\\"text:mlImpressionsStr\\\"\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Ctd\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftbody\\u003E\\u003Ctr class=\\\"bidlandscape-table-row cursor-pointer col-xs-12\\\" data-bind=\\\"click: $root.updatedSelectedIndex.bind($data, landscapePointsLength()),css:{'bid-current-row':landscapePointsLength() == currentSelectedId()}\\\"\\u003E\\u003Ctd\\u003E\\u003Cinput class=\\\"cursor-pointer bid-landscape__radio\\\" type=\\\"radio\\\" data-bind=\\\"value:landscapePointsLength(), checked:currentSelectedId(), attr:{name:radioName()}\\\"\\u003E\\u003C\\u002Ftd\\u003E\\u003Ctd class=\\\"bid-landscape__td--input\\\" data-bind=\\\"attr:{colspan:dataArray().length+1}\\\"\\u003E\\u003Cdiv class=\\\"bid-landscape__input-group\\\"\\u003E\\u003Clabel class=\\\"bidlandscape-label vertical-align-middle type-normal bidlandscape-user-input-label pull-left\\\" id=\\\"otherbidlabel\\\" data-bind=\\\"attr:{for:dataArray().length}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('BidLandscape_CustomInputText')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cinput class=\\\"bid-landscape__input form-control\\\" aria-labelledby=\\\"otherbidlabel\\\" data-bind=\\\"attr:{id:radioName()+'RadioInput'}, hasFocus:landscapePointsLength() == currentSelectedId(), value:userInput, valueUpdate:'keyup'\\\" name=\\\"newValue\\\" type=\\\"text\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftable\\u003E\\u003Cdiv class=\\\"error clear\\\" data-bind=\\\"visible: !inputValid(), text: inputErrorMessage()\\\"\\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 (EntityName, i18n) {pug_mixins[\"fwLink\"] = pug_interp = function(linkId, displayText, ariaLabelContext){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", 'https://go.microsoft.com/fwlink/?linkid=' + linkId, true, true)+\" target=\\\"_blank\\\"\"+pug.attr(\"aria-label\", (ariaLabelContext || '') + ' ' + displayText, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = displayText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n};\npug_html = pug_html + (\"\\u003Cdiv class=\\\"bid-landscape\\\" name=\\\"KeywordlandscapeContainer4Bid\\\" data-bind=\\\"css :{"bidlandscape-smiple-version":inSimpleMode() && hasData(), "panel-form modal-body bid-landscape-normal-version":!inSimpleMode()&& hasData()}, attr: { "data-type": entityType }\\\"\\u003E\\u003Cdiv data-bind=\\\"visible: !inSimpleMode() &&hasData()\\\"\\u003E\\u003Cdiv class=\\\"bidlandscape-title type-bold col-xs-9 padding-zero\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('BidLandscape_Title').replace('{0}', EntityName)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"close closeimage clickable\\\"\"+\" onclick=\\\"$(document).click()\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.get('Close'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"clear bidlandscape-subTitle\\\" data-bind=\\\"visible:hasData()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Bidlandscape_SubTitleText')) ? \"\" : pug_interp)));\npug_mixins[\"fwLink\"]('403679', i18n.get('LearnMore'), i18n.get('Bidlandscape_SubTitleText'));\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"bidlandscape-data-panel\\\" data-bind=\\\"visible:hasData()\\\"\\u003E\\u003Cdiv class=\\\"bidlandscape-left-div pull-left col-xs-7 bid-landscape__table\\\"\\u003E\" + (null == (pug_interp = require(\"./bidlandscapeTable.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"bidlandscape-right-div padding-zero col-xs-4 pull-left bid-landscape__chart\\\"\\u003E\\u003Cdiv class=\\\"bidlandscape-chart\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"bidlandscape-nodata-panel reasonDiv radius5px\\\" data-bind=\\\"visible:!hasData(), css:{'display-inline-block':!hasData()}\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"close closeimage clickable\\\"\"+\" onclick=\\\"$(document).click()\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.get('Close'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Keyword_NoBidLandscapeText')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\" + (null == (pug_interp = require(\"./actionPanel.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003Cdiv class=\\\"clear bidlandscape-footer type-normal\\\" data-bind=\\\"visible: !inSimpleMode() && hasData(), html: i18n.get('bidlandscapeHelpText').replace('{0}', '').replace('{1}','').replace('{2}', '<b>'+startDateString()+'<\\u002Fb>').replace('{3}','<b>'+endDateString()+'<\\u002Fb>')\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"EntityName\" in locals_for_with?locals_for_with.EntityName:typeof EntityName!==\"undefined\"?EntityName: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 (className, type, value) {var cls = [];\nif (className) {\ncls.push(className)\n}\nif (type == 'integer' || type == 'number') {\ncls.push('grid-cell-number')\n}\nelse {\ncls.push('grid-cell-text')\n}\ncls = cls.join(' ')\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([cls], [true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"className\" in locals_for_with?locals_for_with.className:typeof className!==\"undefined\"?className:undefined,\"type\" in locals_for_with?locals_for_with.type:typeof type!==\"undefined\"?type:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"alert alert-danger\\\" data-bind=\\\"visible: showError\\\" role=\\\"alert\\\"\\u003E\\u003Cdiv data-bind=\\\"text: errorMessage\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-info\\\" data-bind=\\\"visible: showInfo\\\" role=\\\"alert\\\"\\u003E\\u003Cspan data-bind=\\\"html: infoMessageWithLearnMore\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"grid bingadsgrid\\\"\\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 (_TL_, i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"raise-bid-popup-content normal-low-bid\\\"\\u003E\\u003Cspan\" + (\" class=\\\"closeimage close-button clickable\\\"\"+\" role=\\\"button\\\" tabindex=\\\"0\\\"\"+pug.attr(\"aria-label\", i18n.get('Button_Close'), true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"normal-low-bid-content\\\"\\u003E\\u003Cstrong class=\\\"normal-low-bid-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = 'Recommended ad group bid') ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\\u003Cdiv class=\\\"normal-low-bid-subcontent\\\"\\u003E\\u003Cspan class=\\\"bid-suggestion\\\" data-bind=\\\"text: normalBidSuggestion()\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"normal-low-bid-footer\\\"\\u003E\\u003Ca class=\\\"apply-link\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = 'Apply') ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E |\\u003Ca class=\\\"cancel-link\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString(_TL_('Cancel'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"_TL_\" in locals_for_with?locals_for_with._TL_:typeof _TL_!==\"undefined\"?_TL_:undefined,\"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 + \"\\u003Cdiv class=\\\"input-group\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control input-bid\\\"\"+pug.attr(\"value\", value.Bid, true, true)+pug.attr(\"disabled\", !value.isBidEditable(), true, true)+pug.attr(\"aria-label\", value.i18n.get('Label_Bid'), true, true)) + \"\\u003E\\u003Cspan class=\\\"input-group-addon\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.currency) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (adGroupType, bid, bidHintKey, bidStatus, bidStatusENUM, currency, i18n, isBidEditable, lowBidBtnText, suggestedBid, suggestionEnabled) {var inputClass = suggestionEnabled ? 'col-sm-10' : 'col-sm-9'\npug_html = pug_html + \"\\u003Cdiv class=\\\"status-row row\\\"\\u003E\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([inputClass], [true]), false, true)) + \"\\u003E\\u003Cdiv class=\\\"input-group\\\"\\u003E\\u003Cinput\" + (pug.attr(\"class\", pug.classes([\"form-control\",\"input-bid\",bidStatus === 'error' ? 'error' : ''], [false,false,true]), false, true)+pug.attr(\"value\", bid, true, true)+pug.attr(\"disabled\", !isBidEditable(), true, true)+pug.attr(\"aria-label\", i18n.get('Label_Bid'), true, true)) + \"\\u003E\\u003Cspan class=\\\"input-group-addon\\\"\\u003E\" + (pug.escape(null == (pug_interp = currency) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-1 bid-status-icon\\\"\\u003E\";\nif (adGroupType !== 'SearchDynamic') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"status-icon\\\"\\u003E\";\nswitch (bidStatus){\ncase bidStatusENUM.Good:\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"status_success\",\"spritedimagealign\",suggestionEnabled ? 'margin-left-1' : ''], [false,false,true]), false, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n break;\ncase bidStatusENUM.Warning:\nif (suggestionEnabled) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"status_warning spritedimagealign low_bid clickable\\\"\"+\" role=\\\"button\\\" tabindex=\\\"0\\\"\"+pug.attr(\"aria-label\", i18n.get('Creation_Workflow_Bid_Suggestion_Title'), true, true)) + \"\\u003E\\u003Cdiv\" + (\" class=\\\"raise-bid-popup-container\\\"\"+pug.attr(\"data-suggested_bid\", suggestedBid, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\nif (bidHintKey == 'TrafficEstimation_Hint_CriticalLowBid') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"status_warning spritedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"span iconba iconba-Lightbulb spritedimagealign low_bid clickable\\\"\"+\" role=\\\"button\\\" tabindex=\\\"0\\\"\"+pug.attr(\"aria-label\", i18n.get('Creation_Workflow_Bid_Suggestion_Title'), true, true)) + \"\\u003E\\u003Cdiv\" + (\" class=\\\"raise-bid-popup-container\\\"\"+pug.attr(\"data-suggested_bid\", suggestedBid, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}\n break;\ncase bidStatusENUM.Error:\npug_html = pug_html + \"\\u003Cdiv class=\\\"status_error spritedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n break;\ndefault:\npug_html = pug_html + \"\\u003Cdiv class=\\\"spritedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n break;\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\nif (!suggestionEnabled) {\nif (bidHintKey == 'TrafficEstimation_Hint_CriticalLowBid') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"col-sm-2 bid-hint-text\\\"\\u003E\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"status-image\",bidStatus === bidStatusENUM.Error || bidStatus === bidStatusENUM.Warning ? '' : 'displayNone'], [false,true]), false, true)) + \"\\u003E\\u003Cdiv\" + (\" class=\\\"span iconba critical-low-bid icon-info clickable\\\"\"+pug.attr(\"data-hint-key\", bidHintKey, true, true)+\" role=\\\"button\\\" tabindex=\\\"0\\\" aria-label=\\\"Low bid\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = lowBidBtnText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"adGroupType\" in locals_for_with?locals_for_with.adGroupType:typeof adGroupType!==\"undefined\"?adGroupType:undefined,\"bid\" in locals_for_with?locals_for_with.bid:typeof bid!==\"undefined\"?bid:undefined,\"bidHintKey\" in locals_for_with?locals_for_with.bidHintKey:typeof bidHintKey!==\"undefined\"?bidHintKey:undefined,\"bidStatus\" in locals_for_with?locals_for_with.bidStatus:typeof bidStatus!==\"undefined\"?bidStatus:undefined,\"bidStatusENUM\" in locals_for_with?locals_for_with.bidStatusENUM:typeof bidStatusENUM!==\"undefined\"?bidStatusENUM:undefined,\"currency\" in locals_for_with?locals_for_with.currency:typeof currency!==\"undefined\"?currency:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isBidEditable\" in locals_for_with?locals_for_with.isBidEditable:typeof isBidEditable!==\"undefined\"?isBidEditable:undefined,\"lowBidBtnText\" in locals_for_with?locals_for_with.lowBidBtnText:typeof lowBidBtnText!==\"undefined\"?lowBidBtnText:undefined,\"suggestedBid\" in locals_for_with?locals_for_with.suggestedBid:typeof suggestedBid!==\"undefined\"?suggestedBid:undefined,\"suggestionEnabled\" in locals_for_with?locals_for_with.suggestionEnabled:typeof suggestionEnabled!==\"undefined\"?suggestionEnabled: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 (applyBtnText, bidHintKey, contentText, hintKey, i18n, lowBidBtnContent, lowBidBtnTitle) {pug_html = pug_html + \"\\u003Cdiv class=\\\"low-bid-popup\\\"\\u003E\\u003Cdiv class=\\\"close close-button closeimage clickable\\\" role=\\\"button\\\" aria-label=\\\"Close\\\" tabindex=\\\"0\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\nswitch (hintKey){\ncase bidHintKey.CriticalLowBid:\npug_html = pug_html + \"\\u003Cdiv class=\\\"low-bid-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = lowBidBtnTitle) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"low-bid-subcontent\\\"\\u003E\" + (pug.escape(null == (pug_interp = lowBidBtnContent) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n break;\ndefault:\npug_html = pug_html + \"\\u003Cp\\u003E\" + (pug.escape(null == (pug_interp = contentText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fp\\u003E\";\n break;\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"footer\\\"\\u003E\\u003Ca class=\\\"apply-link\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = applyBtnText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E |\\u003Ca class=\\\"cancel-link\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"applyBtnText\" in locals_for_with?locals_for_with.applyBtnText:typeof applyBtnText!==\"undefined\"?applyBtnText:undefined,\"bidHintKey\" in locals_for_with?locals_for_with.bidHintKey:typeof bidHintKey!==\"undefined\"?bidHintKey:undefined,\"contentText\" in locals_for_with?locals_for_with.contentText:typeof contentText!==\"undefined\"?contentText:undefined,\"hintKey\" in locals_for_with?locals_for_with.hintKey:typeof hintKey!==\"undefined\"?hintKey:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"lowBidBtnContent\" in locals_for_with?locals_for_with.lowBidBtnContent:typeof lowBidBtnContent!==\"undefined\"?lowBidBtnContent:undefined,\"lowBidBtnTitle\" in locals_for_with?locals_for_with.lowBidBtnTitle:typeof lowBidBtnTitle!==\"undefined\"?lowBidBtnTitle: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=\\\"budget-editor\\\" data-bind=\\\"visible: isEditing()\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-control-static\\\" data-bind=\\\"visible: !isEditing()\\\"\\u003E\\u003Cdiv class=\\\"col-sm-fluid col-sm-fluid__no-padding-left\\\" data-bind=\\\"text: amount\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-fluid col-sm-fluid__no-padding-left\\\" data-bind=\\\"text: accountCurrencyCode\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-fluid link-edit\\\"\\u003E\\u003Ca href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EditLink')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\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, currencySymbol, i18n, isDailyStandardName, isForVNext, minimumBudget) {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};\n\n\n\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=\\\"container-budget\\\"\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-3\\\" role=\\\"presentation\\\"\\u003E\\u003Cdiv class=\\\"input-group\\\" role=\\\"presentation\\\"\\u003E\\u003Cinput class=\\\"budget-amount form-control\\\" type=\\\"text\\\" data-bind=\\\"textInput: Amount.string, hasFocus: Amount.editing, attr: {placeholder: budgetAmountPlaceholder, "aria-invalid": budgetInvalid, "aria-label": budgetLabel, "disabled": readOnly }, css: {"validation-error": budgetInvalid}\\\" aria-required=\\\"true\\\" aria-describedby=\\\"budgetError\\\"\\u003E\\u003C!-- ko if: showBudgetTypeSelectionOptions --\\u003E\\u003Cspan class=\\\"budget-currency input-group-addon lifetime-currency\\\"\\u003E\" + (pug.escape(null == (pug_interp = accountCurrencyCode) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C!-- \\u002Fko --\\u003E\\n\\u003C!-- ko ifnot: showBudgetTypeSelectionOptions --\\u003E\\u003Cspan class=\\\"budget-currency input-group-addon\\\"\\u003E\" + (pug.escape(null == (pug_interp = accountCurrencyCode) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C!-- \\u002Fko --\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- ko ifnot: showBudgetTypeSelectionOptions --\\u003E\\u003Cdiv class=\\\"col-sm-3 form-control-static\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Control_CampaignBudgetControl_DailyBudgetOption')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko --\\u003E\\n\\u003C!-- ko if: showBudgetTypeSelectionOptions --\\u003E\\u003Cdiv class=\\\"col-sm-3\\\"\\u003E\\u003Cselect class=\\\"form-control\\\" id=\\\"budget-type\\\" data-bind=\\\"options: budgetTypeSelectionOptions, optionsText: "text", optionsValue: "value", value: selectedBudgetType, disable: !allowBudgetTypeSelection, attr: {"aria-label": budgetTypeLabel}\\\" aria-required=\\\"true\\\"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko --\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\";\npug_mixins[\"koError\"]('budgetError');\npug_mixins[\"koValidationError\"]('Amount', 'Campaigns_InlineValidBudgetInputMsg');\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"row\\\" data-bind=\\\"visible: showSuggestedBudget()\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cdiv class=\\\"budget-suggestion-container alert-info\\\"\\u003E\";\nif (isForVNext) {\npug_html = pug_html + \"\\u003Cspan class=\\\"iconba iconba-Lightbulb\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan class=\\\"infomark\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cspan class=\\\"budget-suggestion\\\" data-bind=\\\"text: budgetSuggestion()\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\nif (isForVNext) {\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn use-suggested-budget\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Creation_Workflow_Use_Budget_Suggestion')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca class=\\\"link use-suggested-budget\\\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Creation_Workflow_Use_Budget_Suggestion')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"row\\\" data-bind=\\\"visible: BudgetScope() === "Daily" && !hideDailyBudgetOptions\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Ca class=\\\"link expander expander-dailyType\\\" id=\\\"CampaignSettings_AdvancedBudgetOptions_Label\\\" href=\\\"javascript:void(0);\\\" data-bind=\\\"attr: {"aria-expanded": isDailyBudgetExpanded() ? "true" : "false"}\\\" role=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('CampaignSettings_AdvancedBudgetOptions')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-12 expandable displayNone\\\" id=\\\"AdvancedBudgetOptions\\\" role=\\\"radiogroup\\\" aria-labelledby=\\\"CampaignSettings_AdvancedBudgetOptions_Label\\\"\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput\" + (\" type=\\\"radio\\\"\"+pug.attr(\"name\", isDailyStandardName, true, true)+\" value=\\\"true\\\" data-bind=\\\"checked:isDailyStandard.forEditing\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('BudgetDistribution_Standard')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- ko ifnot: hideAcceleratedBudgetOption() --\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput\" + (\" type=\\\"radio\\\"\"+pug.attr(\"name\", isDailyStandardName, true, true)+\" value=\\\"false\\\" data-bind=\\\"checked:isDailyStandard.forEditing\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('BudgetDistribution_Accelerated')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko --\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-info budget-alert\\\" data-bind=\\\"visible: showFACHint()\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\\u003Cspan data-bind=\\\"text: featureAdoptionCouponHint()\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-info budget-alert\\\" data-bind=\\\"visible: showBudgetMinRecommend()\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('AdjustmentForCampaignBudgets_AlertMessage')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = currencySymbol+minimumBudget) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '.') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-budget-button\\\"\\u003E\\u003Cbutton class=\\\"btn btn-default apply-budget\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('AdjustmentForCampaignBudgets_ApplyRecommendationButton')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"accountCurrencyCode\" in locals_for_with?locals_for_with.accountCurrencyCode:typeof accountCurrencyCode!==\"undefined\"?accountCurrencyCode:undefined,\"currencySymbol\" in locals_for_with?locals_for_with.currencySymbol:typeof currencySymbol!==\"undefined\"?currencySymbol:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isDailyStandardName\" in locals_for_with?locals_for_with.isDailyStandardName:typeof isDailyStandardName!==\"undefined\"?isDailyStandardName:undefined,\"isForVNext\" in locals_for_with?locals_for_with.isForVNext:typeof isForVNext!==\"undefined\"?isForVNext:undefined,\"minimumBudget\" in locals_for_with?locals_for_with.minimumBudget:typeof minimumBudget!==\"undefined\"?minimumBudget: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, isShowDisclaimerBannerEnabled) {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 row budget-bid-settings\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\";\npug_mixins[\"koErrors\"]();\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Ch2 class=\\\"control-label col-sm-2\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Label_Budget')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"]('pop_BA_CampaignCreate_Budget_SharedBudget', i18n.get('Label_Budget'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fh2\\u003E\\u003Cdiv class=\\\"col-sm-10 budget\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"bidding-strategy__container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\" data-bind=\\\"visible: showPerformanceGrid || showAdgroupBidGrid\\\"\\u003E\\u003Ch2 class=\\\"control-label col-sm-2\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('AdGroup_Bid')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"]('pop_BA_CampaignCreate_Budget_Bid', i18n.get('AdGroup_Bid'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fh2\\u003E\\u003Cdiv class=\\\"form-control-static col-sm-10\\\" data-bind=\\\"visible: showPerformanceGrid\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('AdGroup_Bid_Description')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-control-static col-sm-10\\\" data-bind=\\\"visible: showAdgroupBidGrid\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('AdGroup_Bid_Description_No_Estimation')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\" data-bind=\\\"visible: showPerformanceGrid\\\"\\u003E\\u003Cdiv class=\\\"col-sm-offset-2 col-sm-10 performance-grid\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\" data-bind=\\\"visible: showAdgroupBidGrid\\\"\\u003E\\u003Cdiv class=\\\"col-sm-offset-2 col-sm-5 adgroupbid-grid\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\" data-bind=\\\"visible: isCampaignLevelGoalEnabled\\\"\\u003E\\u003Ch2 class=\\\"control-label col-sm-2\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Campaign_Goals_Section_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fh2\\u003E\\u003Cdiv class=\\\"form-control-static col-sm-10\\\" data-bind=\\\"visible: isCampaignLevelGoalEnabled\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('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\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-10 conversion-goal-selector\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Ca class=\\\"col-sm-12\\\" data-toggle=\\\"collapse\\\" data-target=\\\".campaign-targets\\\" href=\\\"javascript:void(0);\\\" data-bind=\\\"attr: {"aria-expanded": isCampaignTargetsExpanded() ? "true" : "false"}\\\" role=\\\"button\\\"\\u003E\\u003Cspan class=\\\"bedded-icon-marker spritedimagealign\\\" data-bind=\\\"css: isCampaignTargetsExpanded() ? "expandedImage" : "expanderImage"\\\"\\u003E\\u003C\\u002Fspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SectionTitle_CampaignTargets')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cdiv class=\\\"collapse campaign-targets col-sm-12\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"advanced-settings-section\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (isShowDisclaimerBannerEnabled) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"alert alert-info\\\"\\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}}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isShowDisclaimerBannerEnabled\" in locals_for_with?locals_for_with.isShowDisclaimerBannerEnabled:typeof isShowDisclaimerBannerEnabled!==\"undefined\"?isShowDisclaimerBannerEnabled: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 (bidHintKey, bidStatus, estimatedNum) {pug_html = pug_html + \"\\u003Cdiv class=\\\"estimated-num\\\"\\u003E\";\nif (bidHintKey === 'TrafficEstimation_Hint_CriticalLowBid' && bidStatus === 'warning') {\npug_html = pug_html + \"\\u003Cspan class=\\\"status-icon status_warning spritedimagealign\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cspan class=\\\"estimated-num-val\\\"\\u003E\" + (pug.escape(null == (pug_interp = estimatedNum) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"bidHintKey\" in locals_for_with?locals_for_with.bidHintKey:typeof bidHintKey!==\"undefined\"?bidHintKey:undefined,\"bidStatus\" in locals_for_with?locals_for_with.bidStatus:typeof bidStatus!==\"undefined\"?bidStatus:undefined,\"estimatedNum\" in locals_for_with?locals_for_with.estimatedNum:typeof estimatedNum!==\"undefined\"?estimatedNum: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 (currencySymbol, currencySymbolClassName, i18n, i18nGlobal, minimumBudget) {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};\n\n\n\n\npug_html = pug_html + \"\\u003Cdiv class=\\\"inline-budget-editor\\\" style=\\\"max-width:500px\\\"\\u003E\\u003Cdiv class=\\\"title-container\\\"\\u003E\\u003Cdiv class=\\\"title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Inline_Budget_Editor_Title')) ? \"\" : 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=\\\"input-budget-container\\\"\\u003E\\u003Cspan class=\\\"budgetText\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Inline_Budget_Editor_Budget_Text')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"input-box\\\"\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"currency-symbol\",currencySymbolClassName], [false,true]), false, true)+\" data-bind=\\\"css: {error: !Amount.isValid()}\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = currencySymbol) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cinput class=\\\"inline-budget-edit-value form-control grid-error-field\\\" type=\\\"text\\\" data-bind=\\\"textInput: Amount.string, hasFocus: Amount.editing, css: {error: !Amount.isValid()}\\\" maxlength=\\\"15\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-info budget-alert\\\" data-bind=\\\"visible: showBudgetMinRecommend()\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('AdjustmentForCampaignBudgets_AlertMessage')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = currencySymbol+minimumBudget) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '.') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-budget-button\\\"\\u003E\\u003Cbutton class=\\\"btn btn-default apply-budget\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('AdjustmentForCampaignBudgets_ApplyRecommendationButton')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\npug_mixins[\"koValidationError\"]('Amount');\npug_mixins[\"koErrors\"]();\npug_html = pug_html + \"\\u003Cdiv class=\\\"budget-landscape-container\\\"\\u003E\\u003Cdiv class=\\\"landscape-table\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"select-budget-container\\\"\\u003E\\u003Cspan class=\\\"budgetType\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Inline_Budget_Editor_Budget_Type')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cselect class=\\\"inline-budget-edit-type form-control grid-error-field\\\" data-bind=\\\"options: budgetTypes, optionsText: "text", value: selectedType, disable: "true"\\\"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"inline-budget-editor-actions\\\"\\u003E\\u003Cinput\" + (\" class=\\\"grid-edit-menu save btn btn-primary\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18nGlobal.get('Grid_SaveButtonText'), true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"cancel btn btn-default grid-edit-menu\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18nGlobal.get('Grid_CancelButtonText'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"currencySymbol\" in locals_for_with?locals_for_with.currencySymbol:typeof currencySymbol!==\"undefined\"?currencySymbol:undefined,\"currencySymbolClassName\" in locals_for_with?locals_for_with.currencySymbolClassName:typeof currencySymbolClassName!==\"undefined\"?currencySymbolClassName: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,\"minimumBudget\" in locals_for_with?locals_for_with.minimumBudget:typeof minimumBudget!==\"undefined\"?minimumBudget: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 (i18nGlobal) {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};\n\n\n\n\npug_html = pug_html + \"\\u003Cdiv class=\\\"inline-budget-editor\\\" style=\\\"max-width:500px\\\"\\u003E\\u003Cdiv class=\\\"display-inline\\\"\\u003E\\u003Cinput class=\\\"inline-budget-edit-value form-control grid-error-field\\\" type=\\\"text\\\" data-bind=\\\"textInput: Amount.string, hasFocus: Amount.editing, css: {error: !Amount.isValid()}\\\" maxlength=\\\"15\\\"\\u003E\\u003Cselect class=\\\"inline-budget-edit-type form-control grid-error-field\\\" data-bind=\\\"options: budgetTypes, optionsText: "text", value: selectedType, disable: "true"\\\"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cinput\" + (\" class=\\\"grid-edit-menu save btn btn-primary\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18nGlobal.get('Grid_SaveButtonText'), true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"cancel btn btn-default grid-edit-menu\\\"\"+\" 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\";}.call(this,\"i18nGlobal\" in locals_for_with?locals_for_with.i18nGlobal:typeof i18nGlobal!==\"undefined\"?i18nGlobal: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 (budgetTitle, hasEvent, helpId, helpText, i18n, isForward, isInProductFeedbackLoopOn, showData) {pug_mixins[\"seemore\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Ca href=\\\"javascript:;\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('BudgetRecommendation_StatusLink')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"budget-landscape-container-outer\\\"\\u003E\";\nif (hasEvent && showData) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"budgetlandscape-seasonal-title\\\"\\u003E\\u003Ch5 class=\\\"budgetlandscape-seasonal-title-text col-xs-11 padding-zero margin-zero bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('BudgetLandscape_Seaonal_Recommendation')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh5\\u003E\\u003Cdiv\" + (\" class=\\\"iconba iconba-Cancel close closeimage clickable\\\"\"+\" id=\\\"budget-landscape-close-image\\\" onclick=\\\"$(document).click()\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.get('Close'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (showData) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"budget-landscape panel panel-white panel-default padding-zero budgetlandscape-normal-view\\\"\\u003E\\u003Cdiv class=\\\"panel-outer-body\\\"\\u003E\\u003Ch2 class=\\\"budgetlandscape-title col-xs-11 padding-zero margin-zero bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = budgetTitle) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh2\\u003E\";\nif (!hasEvent) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"iconba iconba-Cancel close closeimage clickable\\\"\"+\" onclick=\\\"$(document).click()\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.get('Close'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-body padding-zero clear\\\"\\u003E\\u003Ch5 class=\\\"clear budgetlandscape-helptext margin-zero\\\"\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = helpText) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\";\nif (isForward) {\npug_html = pug_html + \"\\u003Cspan class=\\\"bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('BudgetLandscape_ForecastingText')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca\" + (\" class=\\\"HelpTopic\\\"\"+pug.attr(\"query\", 'help:'+helpId, true, true)+\" href=\\\"javascript:void(0);\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('LearnMore')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"budget-landscape-div clear\\\"\\u003E\\u003Cdiv class=\\\"budget-landscape-container\\\"\\u003E\\u003Cdiv class=\\\"landscape-table\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"landscape-chart\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (!isInProductFeedbackLoopOn) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"pull-left more-suggestion more-recommendation\\\"\\u003E\";\npug_mixins[\"seemore\"]();\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"clear\\\"\\u003E\";\nif (!isInProductFeedbackLoopOn) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"bidlandscape-footer padding-zero margin-top-ten\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('BudgetLandscape_Note')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"with-feedback-footer\\\"\\u003E\\u003Cdiv class=\\\"budget-landscape-actions\\\"\\u003E\\u003Cbutton class=\\\"btn btn-hero btn-primary apply\\\" data-bind=\\\"disable: isCurrentDataRowSelected() || showErrorMessage()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Save')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default cancel\\\" id=\\\"budget-landscape-cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (isInProductFeedbackLoopOn) {\npug_html = pug_html + \"\\u003Cspan class=\\\"budget-landscape-feedback-actions\\\"\\u003E\\u003Cspan class=\\\"feedback-comment\\\" data-bind=\\\"text: feedbackComment\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"navigate-to-recommended-page-link\\\" data-bind=\\\"visible: isRecommendedPageLinkVisible\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Budget_Landscape_Feedback_GiveItTry')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan class=\\\"thumb-action\\\" data-bind=\\\"visible: isThumbVisible\\\"\\u003E\\u003Cspan class=\\\"iconba iconba-Like budget-landscape-like\\\" role=\\\"button\\\" data-bind=\\\"visible: isLikeVisible, event: { mouseover: overLike, mouseout: overLikeOut}, click: onClickLike\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"iconba iconba-LikeSolid budget-landscape-like\\\" role=\\\"button\\\" data-bind=\\\"visible: isLikeSolidVisible, event: { mouseover: overLike, mouseout: overLikeOut}, click: onClickLike\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"iconba iconba-Like budget-landscape-dislike\\\" role=\\\"button\\\" data-bind=\\\"visible: isDislikeVisible, event: { mouseover: overDislike, mouseout: overDislikeOut}, click: onClickDislike\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"iconba iconba-LikeSolid budget-landscape-dislike\\\" role=\\\"button\\\" data-bind=\\\"visible: isDislikeSolidVisible, event: { mouseover: overDislike, mouseout: overDislikeOut}, click: onClickDislike\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (!showData) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"budget-landscape panel panel-default col-xs-10 col-xs-pull-1 col-xs-push-1\\\"\\u003E\\u003Cdiv class=\\\"panel-heading margin-top-ten\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"iconba iconba-Cancel close closeimage clickable\\\"\"+\" onclick=\\\"$(document).click()\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.get('Close'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body\\\"\\u003E\\u003Ch4\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('BudgetRecommendation_ErrorText')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh4\\u003E\\u003Cdiv class=\\\"budget-status-link more-suggestion more-recommendation\\\"\\u003E\";\npug_mixins[\"seemore\"]();\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"clear margin-top-ten\\\"\\u003E\\u003Cbutton class=\\\"btn btn-default cancel\\\" id=\\\"budget-landscape-cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Close')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"budgetTitle\" in locals_for_with?locals_for_with.budgetTitle:typeof budgetTitle!==\"undefined\"?budgetTitle:undefined,\"hasEvent\" in locals_for_with?locals_for_with.hasEvent:typeof hasEvent!==\"undefined\"?hasEvent:undefined,\"helpId\" in locals_for_with?locals_for_with.helpId:typeof helpId!==\"undefined\"?helpId:undefined,\"helpText\" in locals_for_with?locals_for_with.helpText:typeof helpText!==\"undefined\"?helpText:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isForward\" in locals_for_with?locals_for_with.isForward:typeof isForward!==\"undefined\"?isForward:undefined,\"isInProductFeedbackLoopOn\" in locals_for_with?locals_for_with.isInProductFeedbackLoopOn:typeof isInProductFeedbackLoopOn!==\"undefined\"?isInProductFeedbackLoopOn:undefined,\"showData\" in locals_for_with?locals_for_with.showData:typeof showData!==\"undefined\"?showData: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 (message) {pug_html = pug_html + \"\\u003Cp class=\\\"lightbox-sub-message\\\"\\u003E\" + (null == (pug_interp = message) ? \"\" : pug_interp) + \"\\u003C\\u002Fp\\u003E\";}.call(this,\"message\" in locals_for_with?locals_for_with.message:typeof message!==\"undefined\"?message:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (applyButtonText, applyForThisPageOnlyInfo, cancelButtonText, isForVNext, selectLabel, title) {pug_html = pug_html + \"\\u003Cdiv class=\\\"form-horizontal panel\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\" role=\\\"heading\\\" aria-level=\\\"2\\\"\\u003E\\u003Cdiv class=\\\"panel-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Clabel class=\\\"col-sm-2 control-label\\\" id=\\\"CampaignExclusionCampaignSettingsLabel\\\"\\u003E\" + (pug.escape(null == (pug_interp = selectLabel) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cselect class=\\\"form-control\\\" id=\\\"SelectedBulkEditOption\\\" autocomplete=\\\"off\\\" autofocus=\\\"autofocus\\\" name=\\\"SelectedBulkEditOption\\\" aria-labelledby=\\\"CampaignExclusionCampaignSettingsLabel\\\" data-bind=\\\"options: selections, optionsText: "text", optionsValue: "value", selectedOptions: selectedValue\\\"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko foreach: selections--\\u003E\\u003Cform data-bind=\\\"visible: $root.selectedValue()[0] === value\\\"\\u003E\\u003Cdiv class=\\\"form-group row\\\"\\u003E\\u003C!--ko if: name !== 'AdScheduleUseSearcherTimeZone' && name !== 'EndDate'--\\u003E\\u003Clabel class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Cspan data-bind=\\\"text: label, attr: { id: "CampaignExclusionInputAreaLabel_" + $index() }\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"helpbutton\\\" id=\\\"exclusionHelp\\\" data-bind=\\\"attr: {topic: helpTopic, "aria-label": helpAriaLabel}\\\" type=\\\"helppopup\\\" href=\\\"javascript:void(0);\\\" onclick=\\\"PopupController.PopupJsClick(this)\\\" role=\\\"button\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-4 exclusion-textarea-container\\\"\\u003E\\u003Ctextarea class=\\\"form-control\\\" data-bind=\\\"attr: { name: name, "aria-labelledby": "CampaignExclusionInputAreaLabel_" + $index() }, textInput: textAreaValue\\\" rows=\\\"6\\\"\\u003E\\u003C\\u002Ftextarea\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko if: name == 'AdScheduleUseSearcherTimeZone'--\\u003E\\u003Clabel class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Cspan data-bind=\\\"text: label, attr: { id: "CampaignExclusionInputAreaLabel_" + $index() }\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"helpbutton\\\" id=\\\"exclusionHelp\\\" data-bind=\\\"attr: {topic: helpTopic, "aria-label": helpAriaLabel}\\\" type=\\\"helppopup\\\" href=\\\"javascript:void(0);\\\" onclick=\\\"PopupController.PopupJsClick(this)\\\" role=\\\"button\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-4 schedule-timezone-setting-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko if: name === 'EndDate'--\\u003E\\u003Clabel class=\\\"col-sm-2 control-label\\\"\\u003E\\u003Cspan data-bind=\\\"text: label, attr: { id: "CampaignExclusionInputAreaLabel_" + $index() }\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-4 checkbox form-inline\\\" id=\\\"endDateContainer\\\"\\u003E\\u003Cdiv data-ref=\\\"childView\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"font-error\\\"\\u003E\\u003Cdiv data-bind=\\\"text: $root.errorMsg\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\\u003C!--\\u002Fko--\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Ci class=\\\"infomark spritedimage\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = applyForThisPageOnlyInfo) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer save-bar\\\"\\u003E\";\nif (isForVNext) {\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-primary\\\" id=\\\"save\\\"\\u003E\" + (pug.escape(null == (pug_interp = applyButtonText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default\\\" id=\\\"cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = cancelButtonText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"btn btn-primary\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", applyButtonText, true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"btn btn-default\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", cancelButtonText, true, true)) + \"\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"applyButtonText\" in locals_for_with?locals_for_with.applyButtonText:typeof applyButtonText!==\"undefined\"?applyButtonText:undefined,\"applyForThisPageOnlyInfo\" in locals_for_with?locals_for_with.applyForThisPageOnlyInfo:typeof applyForThisPageOnlyInfo!==\"undefined\"?applyForThisPageOnlyInfo:undefined,\"cancelButtonText\" in locals_for_with?locals_for_with.cancelButtonText:typeof cancelButtonText!==\"undefined\"?cancelButtonText:undefined,\"isForVNext\" in locals_for_with?locals_for_with.isForVNext:typeof isForVNext!==\"undefined\"?isForVNext:undefined,\"selectLabel\" in locals_for_with?locals_for_with.selectLabel:typeof selectLabel!==\"undefined\"?selectLabel:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (message) {pug_html = pug_html + \"\\u003Cdiv\\u003E\\u003Cp class=\\\"lightbox-sub-message\\\"\\u003E\" + (null == (pug_interp = message) ? \"\" : pug_interp) + \"\\u003C\\u002Fp\\u003E\\u003Cdiv id=\\\"transfer-errors\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cbr\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"message\" in locals_for_with?locals_for_with.message:typeof message!==\"undefined\"?message:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (message) {pug_html = pug_html + \"\\u003Cp class=\\\"lightbox-sub-message\\\"\\u003E\" + (null == (pug_interp = message) ? \"\" : pug_interp) + \"\\u003C\\u002Fp\\u003E\";}.call(this,\"message\" in locals_for_with?locals_for_with.message:typeof message!==\"undefined\"?message:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel class=\\\"schedule-timezone-setting-account\\\"\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"adScheduleUseSearcherTimeZone\\\" value=\\\"false\\\" data-bind=\\\"checked: adScheduleUseSearcherTimeZoneEdit\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('ImprovedAdScheduling_TimeZone_LocationOfYourAccount')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"schedule-timezone-setting-text\\\" data-bind=\\\"text: timeZoneText\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel class=\\\"schedule-timezone-setting-viewer\\\"\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"adScheduleUseSearcherTimeZone\\\" value=\\\"true\\\" data-bind=\\\"checked: adScheduleUseSearcherTimeZoneEdit\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('ImprovedAdScheduling_TimeZone_LocationOfPerson')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\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_mixins[\"previewGrid\"] = pug_interp = function(columns){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: showPreview\\\"\\u003E\\u003Cdiv data-bind=\\\"html: changeText\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewTable grid\\\" data-bind=\\\"if: results().length > 0, visible: results().length > 0\\\"\\u003E\\u003Ctable\\u003E\\u003Cthead\\u003E\\u003C!--ko if: $root.previewGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\" data-bind=\\\"foreach: previewGrids\\\"\\u003E\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\" data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko ifnot: $root.previewGrids--\\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\\\"\\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\\\"\\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!--\\u002Fko--\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody data-bind=\\\"foreach: results\\\"\\u003E\\u003Ctr class=\\\"grid-row\\\" data-bind=\\\"foreach: $data.data\\\"\\u003E\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003C!-- ko if: $data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"html: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- ko if: !$data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"text: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_mixins[\"errorsGrid\"] = pug_interp = function(columns, errorColumnIsHtml){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: showErrors() && !isCampaignAdGroupCopyPasteOperation()\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorCountString\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ca class=\\\"errorCountLink\\\" data-bind=\\\"html: errorCountLinkText\\\" href=\\\"javascript:void(0)\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003Cbr\\u003E\\u003Cdiv class=\\\"previewTable grid\\\" data-bind=\\\"visible: showErrorGrid\\\"\\u003E\\u003Ctable\\u003E\\u003Cthead\\u003E\\u003C!--ko if: $root.errorsGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\" data-bind=\\\"foreach: errorsGrids\\\"\\u003E\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\" data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C!--ko if: $index() === $parent.errorsGrids().length - 1--\\u003E\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_InlineError_ErrorHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko ifnot: $root.errorsGrids--\\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_index1 = 0, $$l = $$obj.length; pug_index1 < $$l; pug_index1++) {\n var column = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\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_index1 in $$obj) {\n $$l++;\n var column = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\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 + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_InlineError_ErrorHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody data-bind=\\\"foreach: inlineErrors\\\"\\u003E\\u003Ctr class=\\\"grid-row\\\"\\u003E\\u003C!-- ko foreach: $data.data--\\u003E\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003C!-- ko if: $data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"html: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- ko if: !$data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"text: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" role=\\\"alert\\\"\\u003E\\u003C!-- ko foreach: $data.combinedErrors --\\u003E\";\nif (errorColumnIsHtml) {\npug_html = pug_html + \"\\u003Cspan data-bind=\\\"html: $data\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cbr\\u003E\\u003C!-- \\u002Fko --\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: showErrors() && isCampaignAdGroupCopyPasteOperation()\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: completedWithErrorsBulkEditResultsString\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_html = pug_html + (\"\\u003Cdiv class=\\\"panel\\\" data-bind=\\\"visible: showPanel\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\" role=\\\"heading\\\" aria-level=\\\"2\\\"\\u003E\\u003Cdiv class=\\\"panel-title\\\" data-bind=\\\"html: titleText\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body form-horizontal\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('SetCampaignLanguageTo')) ? \"\" : pug_interp)) + \"\\u003Cspan class=\\\"updateLanguage\\\"\\u003E\\u003Cdiv class=\\\"language-selector-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"div\\\" data-bind=\\\"attr: { role: errorRole }\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorMessage\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\" + (null == (pug_interp = require(\"../../../@bingads-webui-static-legacy/bulk-edit/template/status.pug\").call(this, locals)) ? \"\" : pug_interp));\nvar header1 = i18n.getString('BulkEdit_Campaign_EntityNameHeader')\nvar header2 = i18n.getString('BulkEdit_Campaign_OldLanguageHeader')\nvar header3 = i18n.getString('BulkEdit_Campaign_NewLanguageHeader')\npug_mixins[\"previewGrid\"]([header1, header2, header3]);\nvar header5 = i18n.getString('BulkEdit_Campaign_EntityNameHeader')\nvar header6 = i18n.getString('BulkEdit_Campaign_OldLanguageHeader')\nvar header7 = i18n.getString('BulkEdit_Campaign_AttemptedLanguageHeader')\npug_mixins[\"errorsGrid\"]([header5, header6, header7]);\npug_html = pug_html + (null == (pug_interp = require(\"../../../@bingads-webui-static-legacy/bulk-edit/template/footer.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\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 (hrefFixIt, i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"success-dialog\\\"\\u003E\\u003Cdiv class=\\\"success-dialog__header\\\"\\u003E\\u003Ch2\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_OnHold_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh2\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"success-dialog__content\\\"\\u003E\\u003Cspan class=\\\"content-line\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_OnHold_DescriptionLine1')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"content-line\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_OnHold_DescriptionLine2')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"dialog-diagram\\\"\\u003E\\u003Cdiv class=\\\"dialog-diagram__bar\\\"\\u003E\\u003Cspan class=\\\"campaign-creation-status-icon-active\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"horizontal-line-1of3rd horizontal-line-success\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"campaign-creation-status-icon-danger\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"horizontal-line-1of3rd\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"campaign-creation-status-icon-inactive\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"horizontal-line-1of3rd\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"campaign-creation-status-icon-inactive\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-diagram__row\\\"\\u003E\\u003Cspan class=\\\"dialog-diagram__row__cell campaign-creation-status-text-active\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Progress_CreateCampaign')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"dialog-diagram__row__cell campaign-creation-status-text-danger\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Progress_AccountOnHold')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"dialog-diagram__row__cell\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Progress_InReview')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"dialog-diagram__row__cell\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Progress_Approved')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-form\\\"\\u003E\\u003Cdiv class=\\\"dialog-form__row\\\"\\u003E\\u003Cdiv class=\\\"dialog-form__row__cell\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-form__row__cell\\\"\\u003E\\u003Ca\" + (\" class=\\\"btn btn-default\\\"\"+pug.attr(\"href\", hrefFixIt, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Button_FixIt')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-form__row__cell\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"success-dialog__footer\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"hrefFixIt\" in locals_for_with?locals_for_with.hrefFixIt:typeof hrefFixIt!==\"undefined\"?hrefFixIt:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (action, i18n, link, reason) {pug_html = pug_html + \"\\u003Cdiv class=\\\"success-dialog\\\"\\u003E\\u003Cdiv class=\\\"success-dialog__header\\\"\\u003E\\u003Ch2\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Paused_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh2\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"success-dialog__content\\\"\\u003E\\u003Cspan class=\\\"content-line\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Paused_' + reason + '_DescriptionLine1')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"content-line\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Paused_' + reason + '_DescriptionLine2')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"dialog-diagram\\\"\\u003E\\u003Cdiv class=\\\"dialog-diagram__bar\\\"\\u003E\\u003Cspan class=\\\"campaign-creation-status-icon-active\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"horizontal-line-1of3rd horizontal-line-success\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"campaign-creation-status-icon-danger\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"horizontal-line-1of3rd\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"campaign-creation-status-icon-inactive\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"horizontal-line-1of3rd\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"campaign-creation-status-icon-inactive\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-diagram__row\\\"\\u003E\\u003Cspan class=\\\"dialog-diagram__row__cell campaign-creation-status-text-active\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Progress_CreateCampaign')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"dialog-diagram__row__cell campaign-creation-status-text-danger\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Progress_AccountOnHold')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"dialog-diagram__row__cell\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Progress_InReview')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"dialog-diagram__row__cell\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Progress_Approved')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-form\\\"\\u003E\\u003Cdiv class=\\\"dialog-form__row\\\"\\u003E\\u003Cdiv class=\\\"dialog-form__row__cell\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-form__row__cell\\\"\\u003E\\u003Ca\" + (\" class=\\\"btn btn-default\\\"\"+pug.attr(\"href\", link, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Button_' + action)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-form__row__cell\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"success-dialog__footer\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"action\" in locals_for_with?locals_for_with.action:typeof action!==\"undefined\"?action:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"link\" in locals_for_with?locals_for_with.link:typeof link!==\"undefined\"?link:undefined,\"reason\" in locals_for_with?locals_for_with.reason:typeof reason!==\"undefined\"?reason: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) {var InReviewDescriptionLine3 = i18n.get('CampaignCreationSuccessDialog_InReview_DescriptionLine3', {\nadsApprovalLink: '' + i18n.getString('CampaignCreationSuccessDialog_Link_AdsApproval') + '',\nadsIsRunningLink: '' + i18n.getString('CampaignCreationSuccessDialog_Link_AdsIsRunning') + '',\nperformanceDataLink: '' + i18n.getString('CampaignCreationSuccessDialog_Link_PerformanceData') + '',\ntrackSalesLink: '' + i18n.getString('CampaignCreationSuccessDialog_Link_TrackSales') + '',\ntrackAnalyticsLink: '' + i18n.getString('CampaignCreationSuccessDialog_Link_TrackAnalytics') + '',\n})\npug_html = pug_html + \"\\u003Cdiv class=\\\"success-dialog\\\"\\u003E\\u003Cdiv class=\\\"success-dialog__header\\\"\\u003E\\u003Ch2\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_InReview_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh2\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"success-dialog__content\\\"\\u003E\\u003Cspan class=\\\"content-line\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_InReview_DescriptionLine1')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"content-line\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_InReview_DescriptionLine2')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"dialog-diagram\\\"\\u003E\\u003Cdiv class=\\\"dialog-diagram__bar\\\"\\u003E\\u003Cspan class=\\\"campaign-creation-status-icon-active\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"horizontal-line-1of2rd horizontal-line-success\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"campaign-creation-status-icon-active\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"horizontal-line-1of2rd\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"campaign-creation-status-icon-inactive\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-diagram__row\\\"\\u003E\\u003Cspan class=\\\"dialog-diagram__row__cell campaign-creation-status-text-active\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Progress_CreateCampaign')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"dialog-diagram__row__cell campaign-creation-status-text-active\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Progress_InReview')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"dialog-diagram__row__cell\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Progress_Approved')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-form\\\"\\u003E\\u003Cdiv class=\\\"dialog-form__row\\\"\\u003E\\u003Cdiv class=\\\"dialog-form__row__cell\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-form__row__cell\\\"\\u003E\\u003Cbutton class=\\\"btn btn-default got-it\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Button_GotIt')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-form__row__cell\\\"\\u003E\\u003Cdiv class=\\\"checkbox dont-show\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"checkbox\\\" data-bind=\\\"checked: doNotShowAgain\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_CheckBox_DoNotShowAgain')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"success-dialog__footer\\\"\\u003E\\u003Cp\\u003E\" + (null == (pug_interp = InReviewDescriptionLine3) ? \"\" : pug_interp) + \"\\u003C\\u002Fp\\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 (hrefAddPaymentMethod, i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"success-dialog\\\"\\u003E\\u003Cdiv class=\\\"success-dialog__header\\\"\\u003E\\u003Ch2\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_AddPaymentMethod_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh2\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"success-dialog__content\\\"\\u003E\\u003Cspan class=\\\"content-line\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_AddPaymentMethod_DescriptionLine1')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"content-line\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_AddPaymentMethod_DescriptionLine2')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"dialog-diagram\\\"\\u003E\\u003Cdiv class=\\\"dialog-diagram__bar\\\"\\u003E\\u003Cspan class=\\\"campaign-creation-status-icon-active\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"horizontal-line-1of3rd horizontal-line-success\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"campaign-creation-status-icon-warning\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"horizontal-line-1of3rd\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"campaign-creation-status-icon-inactive\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"horizontal-line-1of3rd\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"campaign-creation-status-icon-inactive\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-diagram__row\\\"\\u003E\\u003Cspan class=\\\"dialog-diagram__row__cell campaign-creation-status-text-active\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Progress_CreateCampaign')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"dialog-diagram__row__cell campaign-creation-status-text-warning\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Progress_AddPaymentMethod')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"dialog-diagram__row__cell\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Progress_InReview')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"dialog-diagram__row__cell\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Progress_Approved')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-form\\\"\\u003E\\u003Cdiv class=\\\"dialog-form__row\\\"\\u003E\\u003Cdiv class=\\\"dialog-form__row__cell\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-form__row__cell\\\"\\u003E\\u003Ca\" + (\" class=\\\"btn btn-default button-add-payment-method\\\"\"+pug.attr(\"href\", hrefAddPaymentMethod, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CampaignCreationSuccessDialog_Button_AddPaymentMethod')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dialog-form__row__cell\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"success-dialog__footer\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"hrefAddPaymentMethod\" in locals_for_with?locals_for_with.hrefAddPaymentMethod:typeof hrefAddPaymentMethod!==\"undefined\"?hrefAddPaymentMethod: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 (AssociatedExperiment, ExperimentId, deliveryStatus, eventName, expDateUtils, i18n, isForecasting, landscapeDisabled, percentSymbol) {pug_mixins[\"experimentInfo\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cp\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Experiment_Status_Long_' + AssociatedExperiment.Status)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fp\\u003E\\u003Cp\\u003E\\u003Cdiv\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Experiment_DeliveryStatus_StartDate')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\" + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + (pug.escape(null == (pug_interp = expDateUtils.reformatDate(AssociatedExperiment.StartDate)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Experiment_DeliveryStatus_EndDate')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\" + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + (pug.escape(null == (pug_interp = expDateUtils.reformatDate(AssociatedExperiment.EndDate)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fp\\u003E\\u003Cdiv\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Experiment_DeliveryStatus_Split')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\" + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + (pug.escape(null == (pug_interp = AssociatedExperiment.TrafficSplitPercent) ? \"\" : pug_interp)) + (pug.escape(null == (pug_interp = percentSymbol) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n};\nvar descriptionKey = 'BudgetLandscape_'+deliveryStatus+'_HelpText';\nvar actionKey = 'BudgetLandscape_'+deliveryStatus+'_ActionText';\nif (landscapeDisabled) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"description-text bold margin-zero\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Campaign_BidLandscape_Disabled_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"description-text margin-zero\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Campaign_BidLandscape_Disabled_Desc_'+deliveryStatus)||i18n.getString('Campaign_BidLandscape_Disabled_Desc')+i18n.getString('Label_DeliveryStatus_' + deliveryStatus)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (ExperimentId && AssociatedExperiment) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"description-text margin-zero\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Experiment_DeliveryStatus_' + deliveryStatus)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Chr\\u003E\";\npug_mixins[\"experimentInfo\"]();\n}\nelse\nif (deliveryStatus === 'CampaignBudgetPaused') {\nvar actionStringWithFormat = ''+i18n.getString(actionKey)+'';\npug_html = pug_html + \"\\u003Cdiv class=\\\"description-text\\\"\\u003E\" + (null == (pug_interp = i18n.getString(descriptionKey).replace('{0}', actionStringWithFormat)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\nif (eventName.length > 0) {\nif (isForecasting) {\npug_html = pug_html + \"\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BudgetLandscape_BudgetSuggestions_ActionText_Forecasting_Seasonal').replace('{0}', eventName)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\\u003Cdiv class=\\\"description-text margin-zero\\\"\\u003E\" + (null == (pug_interp = i18n.getString('BudgetLandscape_BudgetSuggestions_HelpText_Forecasting_Seasonal_Strong').replace('{0}', eventName)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"description-text margin-zero\\\"\\u003E\" + (null == (pug_interp = i18n.getString('BudgetLandscape_BudgetSuggestions_HelpText_Recovery_Seasonal_Strong').replace('{0}', eventName)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse {\nif (isForecasting) {\npug_html = pug_html + \"\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BudgetLandscape_BudgetSuggestions_ActionText_Forecasting_Non_Seasonal')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\\u003Cdiv class=\\\"description-text margin-zero\\\"\\u003E\" + (null == (pug_interp = i18n.getString('BudgetLandscape_BudgetSuggestions_HelpText_Forecasting_Non_Seasonal')) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"description-text margin-zero\\\"\\u003E\" + (null == (pug_interp = i18n.getString('BudgetLandscape_BudgetSuggestions_HelpText_Recovery_Non_Seasonal')) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n}\n}}.call(this,\"AssociatedExperiment\" in locals_for_with?locals_for_with.AssociatedExperiment:typeof AssociatedExperiment!==\"undefined\"?AssociatedExperiment:undefined,\"ExperimentId\" in locals_for_with?locals_for_with.ExperimentId:typeof ExperimentId!==\"undefined\"?ExperimentId:undefined,\"deliveryStatus\" in locals_for_with?locals_for_with.deliveryStatus:typeof deliveryStatus!==\"undefined\"?deliveryStatus:undefined,\"eventName\" in locals_for_with?locals_for_with.eventName:typeof eventName!==\"undefined\"?eventName:undefined,\"expDateUtils\" in locals_for_with?locals_for_with.expDateUtils:typeof expDateUtils!==\"undefined\"?expDateUtils:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isForecasting\" in locals_for_with?locals_for_with.isForecasting:typeof isForecasting!==\"undefined\"?isForecasting:undefined,\"landscapeDisabled\" in locals_for_with?locals_for_with.landscapeDisabled:typeof landscapeDisabled!==\"undefined\"?landscapeDisabled:undefined,\"percentSymbol\" in locals_for_with?locals_for_with.percentSymbol:typeof percentSymbol!==\"undefined\"?percentSymbol: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 (applyString, deliveryStatus, detailMessage, enableApply, learnMoreString, showApply) {pug_html = pug_html + (\"\\u003Ctable class=\\\"reasonDiv\\\"\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"reason\\\"\\u003E\\u003Cdiv\\u003E\\u003Cdiv\" + (\" class=\\\"gridPopup-reasonList autobidding-suggestion\\\"\"+pug.attr(\"data-delivery-status\", deliveryStatus, true, true)) + \"\\u003E\" + (null == (pug_interp = detailMessage) ? \"\" : pug_interp) + (null == (pug_interp = ' ') ? \"\" : pug_interp));\nif (showApply) {\nif (enableApply) {\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"class\", pug.classes([\"ms-Link\",\"apply\",deliveryStatus], [false,false,true]), false, true)+\" role=\\\"button\\\" href=\\\"#!\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = applyString) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca class=\\\"ms-Link disabled\\\" role=\\\"button\\\" href=\\\"#!\\\" aria-disabled=\\\"true\\\"\\u003E\" + (pug.escape(null == (pug_interp = applyString) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\n}\npug_html = pug_html + \"\\u003Cdiv\\u003E\\u003Ca href=\\\"http:\\u002F\\u002Fgo.microsoft.com\\u002Ffwlink?LinkId=2285976\\\" target=\\\"_blank\\\"\\u003E\" + (pug.escape(null == (pug_interp = learnMoreString) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftable\\u003E\";}.call(this,\"applyString\" in locals_for_with?locals_for_with.applyString:typeof applyString!==\"undefined\"?applyString:undefined,\"deliveryStatus\" in locals_for_with?locals_for_with.deliveryStatus:typeof deliveryStatus!==\"undefined\"?deliveryStatus:undefined,\"detailMessage\" in locals_for_with?locals_for_with.detailMessage:typeof detailMessage!==\"undefined\"?detailMessage:undefined,\"enableApply\" in locals_for_with?locals_for_with.enableApply:typeof enableApply!==\"undefined\"?enableApply:undefined,\"learnMoreString\" in locals_for_with?locals_for_with.learnMoreString:typeof learnMoreString!==\"undefined\"?learnMoreString:undefined,\"showApply\" in locals_for_with?locals_for_with.showApply:typeof showApply!==\"undefined\"?showApply: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 (Budget, DeliveryStatus, GeoCodeStatus, Id, i18n, showEllipsisForExperiment) {pug_mixins[\"ellipsis\"] = pug_interp = function(forExperiment){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"status-image\\\"\\u003E\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"status_icon\",\"gridDetailsImage\",\"spritedimagealign\",\"clickable\",\"delivery_status_with_reject_reasons\",forExperiment ? 'experiment-delivery-status-override' : ''], [false,false,false,false,false,true]), false, true)+pug.attr(\"title\", i18n.getString('Page_Keywords_DeliveryStatusDetails'), true, true)+pug.attr(\"aria-label\", i18n.getString('Page_Keywords_DeliveryStatusDetails'), true, true)+pug.attr(\"id\", 'reasonImage' + Id, true, true)+\" tabindex=\\\"0\\\" role=\\\"button\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\nif (DeliveryStatus) {\nvar showBudgetLandscape = (DeliveryStatus === 'BudgetSuggestions' || DeliveryStatus === 'CampaignBudgetPaused') && !!Budget;\nvar className= showBudgetLandscape ? 'layout-marked-element status-row budget-landscape-row' : 'layout-marked-element status-row';\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([className], [true]), false, true)) + \"\\u003E\\u003Cdiv class=\\\"mark-container\\\"\\u003E\";\nif (DeliveryStatus != 'Eligible' && DeliveryStatus != 'EditorialApprovedLimited' && DeliveryStatus != 'Incomplete' && DeliveryStatus != 'InlineOpportunity' && DeliveryStatus != 'AdGroupAudienceAssociationPaused' && DeliveryStatus != 'AdGroupAudienceAssociationExcluded') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"status-icon\\\"\\u003E\";\nif (DeliveryStatus === 'CreditCardExpired' || DeliveryStatus === 'IOExceeded' || DeliveryStatus === 'PaymentInformationMissing' || DeliveryStatus === 'InvalidFinancialStatusOther' || DeliveryStatus === 'MigrationPaused' || DeliveryStatus === 'CampaignDeleted' || DeliveryStatus === 'CampaignBudgetPaused' || DeliveryStatus === 'AdGroupDeleted' || DeliveryStatus === 'CamAssetRejected' || DeliveryStatus === 'EditorialRejected') {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"status_error spritedimagealign\\\"\"+pug.attr(\"title\", i18n.getString('DeliveryStatusIcon_Tooltip_Error'), true, true)+pug.attr(\"aria-label\", i18n.getString('DeliveryStatusIcon_Tooltip_Error'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"status_warning spritedimagealign\\\"\"+pug.attr(\"title\", i18n.getString('DeliveryStatusIcon_Tooltip_Warning'), true, true)+pug.attr(\"aria-label\", i18n.getString('DeliveryStatusIcon_Tooltip_Warning'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"decorated-element\\\"\\u003E\";\nif (DeliveryStatus === 'GeoCodingIncomplete') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"status-column\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Label_DeliveryStatus_1101_' + GeoCodeStatus)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"status-column\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Label_DeliveryStatus_' + DeliveryStatus)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"glyph-container\\\"\\u003E\";\nif (DeliveryStatus !== 'Eligible' && DeliveryStatus !== 'BudgetSuggestions' && DeliveryStatus !== 'Incomplete' && DeliveryStatus !== 'GeoCodingIncomplete' && DeliveryStatus !== 'CampaignBudgetPaused' && DeliveryStatus !== 'InlineOpportunity') {\npug_mixins[\"ellipsis\"]();\n}\nelse\nif (showBudgetLandscape) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"bidlandscape_icon gridDetailsImage spritedimagealign clickable delivery_status_with_budget_suggestions\\\"\"+pug.attr(\"data-entityId\", Id, true, true)+\" title=\\\"\\\"\"+pug.attr(\"id\", 'BudgetImage' + Id, true, true)+\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.getString('BidLandscape_ClickableIconText'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (DeliveryStatus === 'InlineOpportunity') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"inline-opportunity-status\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"inline-recommendation-grid-icon clickable delivery_status_with_inline_opportunities\\\"\"+pug.attr(\"data-entityId\", Id, true, true)+pug.attr(\"title\", i18n.getString('InlineOpportunity_Bubble_TooltipText'), true, true)+pug.attr(\"aria-label\", i18n.getString('InlineOpportunity_Bubble_TooltipText'), true, true)+pug.attr(\"id\", 'InlineOpportunity' + Id, true, true)+\" tabindex=\\\"0\\\" role=\\\"button\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (showEllipsisForExperiment) {\npug_mixins[\"ellipsis\"](true);\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\n}}.call(this,\"Budget\" in locals_for_with?locals_for_with.Budget:typeof Budget!==\"undefined\"?Budget:undefined,\"DeliveryStatus\" in locals_for_with?locals_for_with.DeliveryStatus:typeof DeliveryStatus!==\"undefined\"?DeliveryStatus:undefined,\"GeoCodeStatus\" in locals_for_with?locals_for_with.GeoCodeStatus:typeof GeoCodeStatus!==\"undefined\"?GeoCodeStatus:undefined,\"Id\" in locals_for_with?locals_for_with.Id:typeof Id!==\"undefined\"?Id:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"showEllipsisForExperiment\" in locals_for_with?locals_for_with.showEllipsisForExperiment:typeof showEllipsisForExperiment!==\"undefined\"?showEllipsisForExperiment: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 (AssociatedExperiment, DeliveryStatusDetails, ExperimentId, collectionSize, expDateUtils, i18n, percentSymbol, statusForCombinedPopup) {pug_mixins[\"experimentInfo\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cp\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Experiment_Status_Long_' + AssociatedExperiment.Status)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fp\\u003E\\u003Cp\\u003E\\u003Cdiv\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Experiment_DeliveryStatus_StartDate')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\" + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + (pug.escape(null == (pug_interp = expDateUtils.reformatDate(AssociatedExperiment.StartDate)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Experiment_DeliveryStatus_EndDate')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\" + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + (pug.escape(null == (pug_interp = expDateUtils.reformatDate(AssociatedExperiment.EndDate)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fp\\u003E\\u003Cdiv\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Experiment_DeliveryStatus_Split')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\" + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + (pug.escape(null == (pug_interp = AssociatedExperiment.TrafficSplitPercent) ? \"\" : pug_interp)) + (pug.escape(null == (pug_interp = percentSymbol) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"gridPopup type5\\\" id=\\\"gridPopup\\\"\\u003E\\u003Cdiv class=\\\"gridPopup-body\\\" id=\\\"gridPopup-body\\\"\\u003E\\u003Cdiv class=\\\"gridPopup-outerBox\\\"\\u003E\\u003Cdiv class=\\\"gridPopup-close\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"closeimage spritedimage spritedimagealign clickable\\\"\"+\" tabindex=\\\"0\\\" role=\\\"button\\\" onclick=\\\"$(document).click()\\\"\"+pug.attr(\"aria-label\", i18n.getString('CampaignImport_ButtonFinish'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (collectionSize > 0) {\n// iterate DeliveryStatusDetails\n;(function(){\n var $$obj = DeliveryStatusDetails;\n if ('number' == typeof $$obj.length) {\n for (var index = 0, $$l = $$obj.length; index < $$l; index++) {\n var deliveryStatus = $$obj[index];\nvar clName = 'gridPopup-reasonDiv-' + index\nif (index != 0) {\nvar st = 'display:none'\n}\nelse {\nvar st = ''\n}\npug_html = pug_html + \"\\u003Ctable\" + (\" class=\\\"reasonDiv\\\"\"+pug.attr(\"id\", clName, true, true)+pug.attr(\"style\", pug.style(st), true, true)) + \"\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"reason\\\" id=\\\"gridPopup-reasonValue-top\\\"\\u003E\\u003Cdiv\\u003E\\u003Cdiv class=\\\"gridPopup-reasonList\\\"\\u003E\";\nif (deliveryStatus == '') {\npug_html = pug_html + (pug.escape(null == (pug_interp = i18n.getString('NoRejectionReasonFound')) ? \"\" : pug_interp));\n}\nelse\nif ((ExperimentId && AssociatedExperiment)) {\nif ((deliveryStatus === 'ExperimentInfo')) {\npug_mixins[\"experimentInfo\"]();\n}\nelse\nif ((statusForCombinedPopup.indexOf(deliveryStatus) > -1)) {\npug_html = pug_html + \"\\u003Cp\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Experiment_DeliveryStatus_' + deliveryStatus)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fp\\u003E\\u003Chr\\u003E\";\npug_mixins[\"experimentInfo\"]();\n}\nelse {\npug_html = pug_html + (null == (pug_interp = i18n.getString('Experiment_DeliveryStatus_' + deliveryStatus) || i18n.getString('Message_DeliveryStatus_' + deliveryStatus)) ? \"\" : pug_interp);\n}\n}\nelse {\npug_html = pug_html + (null == (pug_interp = i18n.getString('Message_DeliveryStatus_' + deliveryStatus)) ? \"\" : pug_interp);\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftable\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var index in $$obj) {\n $$l++;\n var deliveryStatus = $$obj[index];\nvar clName = 'gridPopup-reasonDiv-' + index\nif (index != 0) {\nvar st = 'display:none'\n}\nelse {\nvar st = ''\n}\npug_html = pug_html + \"\\u003Ctable\" + (\" class=\\\"reasonDiv\\\"\"+pug.attr(\"id\", clName, true, true)+pug.attr(\"style\", pug.style(st), true, true)) + \"\\u003E\\u003Ctr\\u003E\\u003Ctd class=\\\"reason\\\" id=\\\"gridPopup-reasonValue-top\\\"\\u003E\\u003Cdiv\\u003E\\u003Cdiv class=\\\"gridPopup-reasonList\\\"\\u003E\";\nif (deliveryStatus == '') {\npug_html = pug_html + (pug.escape(null == (pug_interp = i18n.getString('NoRejectionReasonFound')) ? \"\" : pug_interp));\n}\nelse\nif ((ExperimentId && AssociatedExperiment)) {\nif ((deliveryStatus === 'ExperimentInfo')) {\npug_mixins[\"experimentInfo\"]();\n}\nelse\nif ((statusForCombinedPopup.indexOf(deliveryStatus) > -1)) {\npug_html = pug_html + \"\\u003Cp\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Experiment_DeliveryStatus_' + deliveryStatus)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fp\\u003E\\u003Chr\\u003E\";\npug_mixins[\"experimentInfo\"]();\n}\nelse {\npug_html = pug_html + (null == (pug_interp = i18n.getString('Experiment_DeliveryStatus_' + deliveryStatus) || i18n.getString('Message_DeliveryStatus_' + deliveryStatus)) ? \"\" : pug_interp);\n}\n}\nelse {\npug_html = pug_html + (null == (pug_interp = i18n.getString('Message_DeliveryStatus_' + deliveryStatus)) ? \"\" : pug_interp);\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftable\\u003E\";\n }\n }\n}).call(this);\n\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('NoRejectionReasonFound')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (collectionSize > 1) {\nvar prevOnClick = \"$.gridPopup.pagePrev('gridPopup-reasonDiv-',\" + collectionSize + \")\"\nvar nextOnClick = \"$.gridPopup.pageNext('gridPopup-reasonDiv-',\" + collectionSize + \")\"\npug_html = pug_html + \"\\u003Cdiv class=\\\"gridPopup-pagination\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"spritedimage grid-previous-disabled clickable\\\"\"+\" id=\\\"gridPopup-Pager-prev\\\"\"+pug.attr(\"onclick\", prevOnClick, true, true)+\" role=\\\"button\\\" tabindex=\\\"-1\\\"\"+pug.attr(\"aria-label\", i18n.getString('Grid_PreviousPage'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan id=\\\"gridPopup-Pager-cur\\\" data-val=\\\"1\\\"\\u003E\" + (pug.escape(null == (pug_interp = 1) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = 'of') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan id=\\\"gridPopup-Pager-tot\\\"\\u003E\" + (pug.escape(null == (pug_interp = collectionSize) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv\" + (\" class=\\\"spritedimage grid-next clickable\\\"\"+\" id=\\\"gridPopup-Pager-next\\\"\"+pug.attr(\"onclick\", nextOnClick, true, true)+\" role=\\\"button\\\" tabindex=\\\"0\\\"\"+pug.attr(\"aria-label\", i18n.getString('Grid_NextPage'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"AssociatedExperiment\" in locals_for_with?locals_for_with.AssociatedExperiment:typeof AssociatedExperiment!==\"undefined\"?AssociatedExperiment:undefined,\"DeliveryStatusDetails\" in locals_for_with?locals_for_with.DeliveryStatusDetails:typeof DeliveryStatusDetails!==\"undefined\"?DeliveryStatusDetails:undefined,\"ExperimentId\" in locals_for_with?locals_for_with.ExperimentId:typeof ExperimentId!==\"undefined\"?ExperimentId:undefined,\"collectionSize\" in locals_for_with?locals_for_with.collectionSize:typeof collectionSize!==\"undefined\"?collectionSize:undefined,\"expDateUtils\" in locals_for_with?locals_for_with.expDateUtils:typeof expDateUtils!==\"undefined\"?expDateUtils:undefined,\"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,\"statusForCombinedPopup\" in locals_for_with?locals_for_with.statusForCombinedPopup:typeof statusForCombinedPopup!==\"undefined\"?statusForCombinedPopup:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {if (value) {\nif (value.OverallQualityScore && value.OverallQualityScore > 0) {\npug_html = pug_html + \"\\u003Cspan class=\\\"noWrap\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.OverallQualityScore + '/10 ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cdiv\" + (\" class=\\\"status-image status_icon gridDetailsImage spritedimagealign quality-score-detail\\\"\"+pug.attr(\"title\", value.title, true, true)+pug.attr(\"id\", 'qsImage' + value.Id, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan class=\\\"noWrap\\\"\\u003E\" + (pug.escape(null == (pug_interp = '-') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\n}}.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 (direction, html) {pug_html = pug_html + \"\\u003Cdiv class=\\\"column-header-container\\\"\\u003E\";\nif (direction < 0) {\npug_html = pug_html + \"\\u003Cspan class=\\\"sort-indicator glyphicon glyphicon-arrow-down\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nelse\nif (direction > 0) {\npug_html = pug_html + \"\\u003Cspan class=\\\"sort-indicator glyphicon glyphicon-arrow-up\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + (null == (pug_interp = html) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"direction\" in locals_for_with?locals_for_with.direction:typeof direction!==\"undefined\"?direction:undefined,\"html\" in locals_for_with?locals_for_with.html:typeof html!==\"undefined\"?html:undefined));;return pug_html;};\nmodule.exports = template;"],"names":["AimAudienceAssociationView","_AudienceAssociationV","_classCallCheck","_callSuper","arguments","_inherits","_createClass","key","value","_ref","_ref$campaignId","campaignId","_ref$adGroupId","adGroupId","_ref$isShoppingCampai","isShoppingCampaign","_ref$customizedTempla","customizedTemplates","_ref$deps","deps","_ref$isForVNext","isForVNext","_ref$perfMarker","perfMarker","_ref$isAudienceCreati","isAudienceCreationWorkflow","_ref$isFromAudienceDa","isFromAudienceDashboard","_ref$campaignSubType","campaignSubType","_ref$hideExclusion","hideExclusion","_ref$hideAssociationH","hideAssociationHeader","biddingScheme","campaignSettings","_ref$isIMARedesignEna","isIMARedesignEnabled","_ref$hideCustomSegmen","hideCustomSegmentsOption","this","_superPropGet","campaignType","campaignTypes","audience","associationType","AssociationTypes","Aim","refreshOnInitialize","shouldShowUiBlockOnRender","isNewUI","isAIMAudienceAssociationView","canExpandAssociation","canExpandExclusion","resetSelectionListBox","doubleListBoxViewModel","setSelectedCategory","audienceType","Product","selectedBidType","bidTypes","TargetAndBid","remove","_this","_this$getLists","getLists","associationList","exclusionList","jsonify","isTargeting","originalAssociations","_","item","Criterion","AudienceCriterion","association","Id","AudienceId","bidMultiplier","result","cashbackPercent","associationId","status","audienceStatus","Active","Excluded","Paused","BidType","Status","AudienceName","Name","AudienceType","Type","BidMultiplier","pageContext","Permissions","IsPersonalizedOffersEnabled","CashbackPercent","parseInt","selectedAdgroupId","selectedCampaignId","selectedAdgroupName","selectedCampaignName","AudienceAssociationView","Model","_BaseModel","get","$","BaseModel","defaults","Entity","BatchAction","Actions","BidOnly","i18n","window","globalLegacyI18n","View","_CommonAssociationVie","options","template","validate","validateCPSelection","onSuccessCallback","_onSuccess","formatAssociation","formatCampaignAssociation","entityLevel","levelAtConstant","CAMPAIGN","cpValidationEnum","App","trigger","rows","EntityKey","Key","data","push","Value","isHtml","Changes","length","NewValue","selectedListsCount","results","doubleListBoxView","clearAllErrors","error","NoChosenList","_this$doubleListBoxVi","associationListIds","exclusionListIds","allListIds","allList","conflictList","intersection","map","id","pluck","ListConflicting","param","gridHelper","getSelectedRowsCount","grid","config","BulkAudienceCriterionMaxLimit","TooManyAssociations","IsAIMCampaignEnabled","scope","currentScope","DeliveryChannel","showErrorMessage","anyCriticalErrors","validationResults","validationResult","maxAudienceCriterionMaxLimit","limitMessage","replace","decimalUtil","fromFloatToString","limitError","AssociationError","errorEnum","ExceedMaxLimit","isCritical","level","addError","noChosenError","messageContent","errormessagetemp","AdgroupTargeting","concat","AdgroupExclusions","message","join","conflictingError","IsProductAudienceForSearchEnabled","CommonAssociationView","BulkAssociationSectionView","fromBulkEdit","readOnlyMode","Bulk","currentCampaign","newI18n","associationInfoText","isNewAudienceEnabled","exclusionInfoText","associationInfoTextCampaign","bulkEditIntro","getString","assoicationQueryLink","exclusionQueryLink","initCashbackPercentControlView","bidType","action","supportCashbackSettings","cashbackPercentControlView","getCashbackPercentValue","CashbackAdjustment","instrumentationSvc","logMessage","configSettings","setting","instrumentConsts","LOGCATEGORY","TRACE","LOGLEVEL","INFO","JSON","stringify","type","targeting","selectedLists","exclusion","errors","clearAll","add","property","isBidPercentageValid","getBidPercentage","$el","find","focus","ViewModel","Base","call","showPreviewButton","ko","IsNewAudienceEnabled","_BaseView","scopeService","getScope","ko_model","BulkEditAssociationViewModel","router","on","cancelJob","_this2","willRender","func","after","render","el","show","removeAttr","validateSelection","asLoggingStart","instrumentSetting","ACTIVITYNAME","LoadBulkEditTargetingExclusionByDmp","LoadBulkEditTargetingExclusion","SCENARIONAME","BulkEditTargetingExclusionByDmp","BulkEditTargetingExclusion","DmpEnabled","jobSucceeded","validateBidPercentage","validateCustomRestriction","validateCashbackPercent","_this3","getAction","model","set","SaveBulkEditTargetingExclusionByDmp","SaveBulkEditTargetingExclusion","filterHelper","getAdGroupIdFilterExcludingContentOnly","_formatAssociation","BaseView","DependencyResolver","preferences","SharedBudgetView","Budget","jsdata","Campaign","AdGroup","ResponsiveAd","timeZoneMapper","LocationTargetsView","UrlEditor","i18nErrors","UrlOptions","ShoppingCampaign","ShoppingSettingsView","biddingStrategyTypes","BiddingStrategyView","BudgetPanel","AdScheduleView","state","odata","Searchbox","pgrid","bingadsGridColumn","targetConstants","BaseTargetUpdateView","targetTypes","CurrentAccount","CurrentCustomerId","CurrentCustomer","isFilterCriterionLevelAdGroup","Constants","SuccessDialog","stateManager","CopySettings","criterionLoader","AdvancedSettingsUrlOptions","urlOptionsTemplate","AdRotationView","exclusionRepository","BaseExclusionView","edmCampaign","summaryDataContextManager","instrumentation","ToggleView","eventDispatcher","TestUurl","ko_schema","decimal","CopyCampaignSetting","ActionLanguageAdapter","ActionTypeAdapter","loadResponsiveAdEditorPromise","loadResponsiveAdEditorAsync","Promise","resolve","then","ResponsiveAdEditorModule","ResponsiveAdEditor","definePlugin","gridView","projection","paginationConfig","pluginsConfig","pagination","container","pageNumberLabelText","pageSize","pageable","availablePageSizes","pageSizeText","totalPageCountText","pageNumber","previousPageText","nextPageText","enableRandomPage","pager","PaginationView","itemCount","hide","preferencesService","Data","rowsPerPage","singleLine","categoryName","RegExp","multiLine","split","_Backbone$View","undefined","searchBox","defaultText","append","dataSource","categories","kendoAutoComplete","kendoData","DataSource","serverFiltering","schema","parse","pattern","test","CategoryName","dataTextField","highlightFirst","height","convert","toString","select","e","name","sender","dataItem","index","Backbone","searchbox","autoSuggestionSearchBox","$or","$startswith","$contains","languageCodeMap","Abkhazian","Afar","Afrikaans","Albanian","Amharic","Arabic","Armenian","Assamese","Aymara","Azerbaijani","Bashkir","Basque","Bengali","Bhutani","Bihari","Bislama","Bosnian","Breton","Bulgarian","Burmese","Byelorussian","Cambodian","Catalan","Chinese","Corsican","Croatian","Czech","Danish","Dari","Dutch","English","Esperanto","Estonian","Faeroese","Fiji","Finnish","French","Frisian","Galician","Georgian","German","Greek","Greenlandic","Guarani","Gujarati","Hausa","Hebrew","Hindi","Hungarian","Icelandic","Indonesian","Interlingua","Interlingue","Inupiak","Irish","Italian","Japanese","Javanese","Kannada","Kashmiri","Kazakh","Kinyarwanda","Kirghiz","Kirundi","Korean","Kurdish","Laothian","Latin","Latvian","Lingala","Lithuanian","Macedonian","Malagasy","Malay","Malayalam","Maltese","Maori","Marathi","Moldavian","Mongolian","Nauru","Nepali","Norwegian","Occitan","Oriya","Pashto","Persian","Polish","Portuguese","Punjabi","Quechua","Romanian","Russian","Samoan","Sangro","Sanskrit","Serbian","Sesotho","Setswana","Shona","Sindhi","Singhalese","Siswati","Slovak","Slovenian","Somali","Spanish","Sundanese","Swahili","Swedish","Tagalog","Tajik","Tamil","Tatar","Telugu","Thai","Tibetan","Tigrinya","Tsonga","Turkish","Turkmen","Twi","Ukrainian","Urdu","Uzbek","Vietnamese","Volapuk","Welsh","Wolof","Xhosa","Yiddish","Yoruba","Zulu","categorySchema","globalLegacySchema","Categories","previousCategoryScope","currentCategoryScope","odataQuery","_convert2JSDataQuery","odataOptions","path","url","isInternalUpdate","isContainerHidden","_ref$Language","Language","_ref$DomainName","DomainName","domainName","toLowerCase","languageCode","self","instrumentationService","instrumentationSettings","DynamicSearchAd","LoadCategoryGrid","html","$grid","use","paginationPlugin","searhBoxPlugin","create","resource","jsdataCampaign","CategoryTarget","query","columns","sortable","filterable","headerAttributes","popupId","headerTemplate","categoryNameHeaderTmpl","title","local","categoryNameTmpl","isParent","categoryNames","line","list","isTail","ariaLabel","addToListTmpl","Coverage","fromFloatToPercentString","hideAddToList","disableItem","selected","conditions","ArgumentOperand","stack","Error","logError","findAll","$select","$top","cacheResponse","paginationTemplate","_gridClicked","bind","uiBlockerToken","uiBlocker","block","event","target","closest","attr","once","targetColumn","dir","isAsc","isDesc","subscribe","newValue","a11yHacker","DoubleListA11yHacker","rootSelector","listViewSelector","itemSelector","interactableElementSelector","listAriaLabel","refresh","totalRecordCount","attributes","count","searchText","isCategoriesEmpty","NoCategoryLoadedForWebsite","constants","setTimeout","unblock","$prevLevelIcon","css","fetch","load","catch","category","pop","stopPropagation","className","indexOf","_convertToTarget","column","Operand","urls","values","items","Operator","DisplayOperator","DisplayOperand","reset","hasError","isValidUrlWithComma","contains","isValidUrl","viewmodel","tmpl","containerTitle","isExclude","validUrls","filter","invalidUrls","difference","condition","shouldCheckArgumentOperandFormat","startsWith","isValid","specificTarget","SpecificTargetView","isShowUrlOnly","targetClass","previewView","close","TargetPreviewView","viewModel","_ref$setting","selectedItem","disabledItems","enableCustomLabel","campaignSetting","Source","permissions","urlEqualsEnabled","dynamic","DSAUrlEquals","radiogroup","text","isDisabled","radios","DropdownView","learnMore","webpageCondition","koSchema","properties","toObject","defaultTarget","viewSelection","instance","ExactURLsView","toggleTarget","view","selectedType","createChild","willInit","updateDomain","showHeader","hideWebsiteLabel","changes","isViewHidden","appendLearnMoreLink","showPillControl","targetSwitcher","PillControl","tabPanelId","selectedTargetsView","SelectedTargetsView","defaultBid","activityLogger","isNegativeAutoTarget","CategoryView","selectedItems","AllWebpageTargetView","MixedSpecificWebPageView","CustomeLabelView","isValidate","onChange","getChanges","uniqueConditions","addBatch","signal","done","RadioGroupView","hideViewSelection","clear","toggleView","shouldReserveSelectedItems","bid","adGroupBid","setErrors","adgroupName","campaignName","DsaTargets","AdGroupName","CampaignName","targets","updateViewModels","hasChanges","s$DsaTarget","keyToItemMapping","logActivity","dsaTarget","generateDSATarget","conditionsWithOperator","conditionsWithoutOperator","conditionsWithoutDisplayValue","conditionWithOperator","checkArgumentOperandFormat","serializedConditions","Bid","WebPage","Parameter","Conditions","hasErrors","underlyingArray","valueHasMutated","update","removedItems","resetBids","_string","notifySubscribers","isListEmpty","description","amount","currency","argumentOperand","hasComma","hasDoubleQuote","resultArgumentOperand","includes","replaceAll","savedTargets","doubleListA11yHacker","accountCurrencyCode","targetPreviewView","currentTarget","targetSaved","targetToSave","keysOfDeletedTargets","getKey","targetInVm","isCampaignApiError","previouslySavedTarget","viewModelItems","errorItems","needRemovedItems","i","TargetPreview","onEscClick","popover","content","placement","_bindEvents","evt","keyCode","document","off","parents","FOCUS_CLASS","SELECT_CLASS","_options$rootSelector","$lastFocusedElement","rowPositions","rowHeights","vh","maxScrollTop","$interactableElements","_onListViewKeyDown","_onListViewClick","_onListViewBlur","_onListViewFocus","$root","innerHeight","$listView","role","tabindex","addClass","$rows","each","$row","eq","position","top","outerHeight","_initializeEvents","defer","first","focusRow","blurAll","isDescendantOfInteractableEle","has","isInteractableEle","is","currentIndex","newIndex","preventDefault","focusRowAtIndex","scrollToCenter","selectRowAtIndex","deselectAll","removeClass","selectRow","rowIndex","rowPos","rowHeight","centerOffset","scrollTop","source","loadSource","radioList","originSelectedFeeds","selectedFeeds","allFeeds","itemTemplate","showPagefeedSelector","targetingSource","updateSelectedFeedsByCampaignId","newCampaignId","associateList","originList","selectedList","originSelectedIdList","selectedIdList","ret","isEditing","DataStore","FeedAssociation","skip","limit","entitySet","currentAccount","Campaigns","$withKey","FeedAssociations","val","FeedId","FeedName","ERROR","VERBOSE","TargetingSource","koModel","request","cb","params","where","filterText","FeedCategoryFilter","$eq","offset","take","Feed","Feeds","filterOptions","custom","total","totalCount","finally","withUIBlocker","EntityId","String","disAssociateList","requests","AssociationType","Associations","cast","Condition","showSelect","showOperatorAndValue","operatorMap","operandMap","cond","isCustomLabelEnabled","operandOptions","operands","Url","Category","PageTitle","PageContent","CustomLabel","isConditionDeleteEnabled","isConditionAddEnabled","trim","addItem","deleteItem","updateCategories","categoryViews","newValues","refreshCategoryView","showAND","uuid","removeCategoryView","$eventTarget","_this4","$container","getCategoryContainer","children","child","_this5","clearCategoryView","CategoryGridView","addCategoryView","validateBid","isDecimal","Number","isNonNegative","bidStr","isNotEmpty","isEndingWithDigit","isNaN","slice","adgroupId","typesToLoad","filterString","schemaName","AdGroups","$filter","bypassCache","headers","lcid","CultureLcid","BaseTargetViewModel","targetTypePrefix","targetRowKeys","criterionType","criterionTypeTarget","MTBidAdjustmentErrorCode","MTBidAdjustmentErrorNumber","targetPopupId","rowExtenders","targetDescription","targetHeader","bidAdjustmentHeader","useCampaignSettings","onCampaignSettingsCheckChange","showAdGroupOverrideInformation","readonlyBid","computeReadonlyBid","targetTypeToErrorProperty","logInteraction","targetType","IsPersonalizedOffersV3Enabled","currentAdGroup","populateRows","dataset","targetRowKey","row","targetKey","targetName","bidAdjustmentOptions","multimediaBidAdjustmentOptions","selectedBidAdjustmentOption","getSelectedBidAdjustmentOption","bidAdjustmentValue","getBidAdjustmentValue","koErrorObservable","cashbackPercentValue","koErrorType","campaignCashbackPercent","adGroupCashbackPercent","extend","currentRow","anyAdGroupValue","targetHasValue","scenario","targetRow","isCashbackValueEmpty","setShowAdGroupOverrideInformation","setupCashbackValuesForAllRows","resetCashbackInheritInfoInAllRows","setCashbackInheritInfo","cashbackOptions","getCashbackOptions","selectedCashbackOption","getSelectedCashbackOption","cashbackInheritValue","getCashbackInheritValue","snapshotOverrideCashbackPercent","currentSelectedOption","selectedOption","entity","CriterionType","Device","DeviceCriterion","DeviceName","Age","AgeCriterion","Target","Gender","GenderCriterion","updatingEntity","updatingEntityRowKey","findTargetKey","levelText","bidAdjustmentIncreaseValue","bidAdjustmentDecreaseValue","Math","abs","multimediaAdDefaultBid","_this6","criterion","levelPrefix","anyDeviceChange","findIfThereIsAnyDeviceChange","rowBidAdjustment","rowCashbackPercent","addEntry","isCashbackValuesEqual","_this7","rowBid","maximumBid","minimumBid","_this8","bidErrors","cashbackErrors","isInRange","_validateBid","bidValid","cashbackPercentValidated","isCashbackPercentValid","ErrorNumber","Property","errorMessage","getCashbackPercentValidationError","getBulkApiErrors","populateErrorMessageConstants","v","v1","v2","inheritInfo","_this9","AdGroupCashback","Percent","CampaignCashback","campaignCashbackInheritOptions","getCashbackInheritOptions","viewContext","readonly","adGroupCashbackInheritOptions","inheritValue","_this10","bidError","bulkResponse","_this11","remainingErrors","criterionErrors","errorEntity","CampaignCriterions","campaignCriterion","response","criterionErrorExtracts","extractTargetingErrors","criterionResponseErrors","DeviceViewModel","_BaseTargetViewModel","rowKeys","mapping","rawMessage","checked","fromSettingsGrid","i18nApiError","fn","subscribeChanged","callback","observable","previousValue","_previousValue","latestValue","device","displayName","expandLinkText","showLevelToggle","isParentView","helper","originalCampaignBidAdjustmentValue","originalAdgroupBidAdjustmentValue","CampaignBidId","AdgroupBidId","selectedOsCount","isSelected","oldValue","selectedDeviceCount","_shouldSelectTarget","onClick","operatingSystems","os","_countValidatedDevices","changeText","currentDevice","osName","parentName","osSelected","_onCampaignSettingsCheckChange","devices","_populatedevices","anyAdgroupBidAdjustment","deviceKey","osNames","_ifAnyAdgroupBidAdjustment","_selectAll","shouldSelectDevice","shouldSelectOs","subScenario","deviceName","bidAdjustment","isDelete","BidAdjustment","OSName","_getCriterion","valid","forEach","deviceRow","getValues","DeviceType_Smartphones","_deleteCriterionWhenAppropriate","_addOrUpdateCriterion","deviceToUpdate","apiErrors","criterionEntities","AdGroupCriterions","failedDevice","errorWithMes","apiError","code","AgeViewModel","GenderViewModel","NativeAdViewModel","NativeAd","isNativeAdsRebrandingEnabled","NativeBidAdjustment","NativeAdTypeNativeAdsBidsRow","MultimediaAdViewModel","MultimediaAd","MultimediaAdBidAdjustment","MultimediaAdTypeMultimediaAdsBidsRow","targetTypeToViewModel","DeviceTargetViewModel","OriginalDevice","OriginalDeviceTargetViewModel","AgeTargetViewModel","GenderTargetViewModel","targetTypeToTmpl","originalDeviceTargetTmpl","TargetViewModelFactory","DeviceTypeTabletsCampaignBidAdjustment","DeviceTypeTabletsAndroidCampaignBidAdjustment","DeviceTypeTabletsBlackBerryCampaignBidAdjustment","DeviceTypeTabletsiOSCampaignBidAdjustment","DeviceTypeTabletsWindowsCampaignBidAdjustment","DeviceTypeTabletsOtherCampaignBidAdjustment","DeviceTypeSmartphonesAndroidCampaignBidAdjustment","DeviceTypeSmartphonesBlackBerryCampaignBidAdjustment","DeviceTypeSmartphonesiOSCampaignBidAdjustment","DeviceTypeSmartphonesCampaignBidAdjustment","DeviceTypeSmartphonesWindowsCampaignBidAdjustment","DeviceTypeSmartphonesOtherCampaignBidAdjustment","DeviceTypeComputersCampaignBidAdjustment","DeviceTypeComputersWindowsCampaignBidAdjustment","AgeTypeEighteenToTwentyFiveCampaignBidAdjustment","AgeTypeTwentyFiveToThirtyFiveCampaignBidAdjustment","AgeTypeThirtyFiveToFiftyCampaignBidAdjustment","AgeTypeFiftyToSixtyFiveCampaignBidAdjustment","AgeTypeSixtyFiveAndAboveCampaignBidAdjustment","GenderTypeMaleCampaignBidAdjustment","GenderTypeFemaleCampaignBidAdjustment","DeviceTypeTabletsAdgroupBidAdjustment","DeviceTypeTabletsAndroidAdgroupBidAdjustment","DeviceTypeTabletsBlackBerryAdgroupBidAdjustment","DeviceTypeTabletsiOSAdgroupBidAdjustment","DeviceTypeTabletsWindowsAdgroupBidAdjustment","DeviceTypeTabletsOtherAdgroupBidAdjustment","DeviceTypeSmartphonesAdgroupBidAdjustment","DeviceTypeSmartphonesAndroidAdgroupBidAdjustment","DeviceTypeSmartphonesBlackBerryAdgroupBidAdjustment","DeviceTypeSmartphonesiOSAdgroupBidAdjustment","DeviceTypeSmartphonesWindowsAdgroupBidAdjustment","DeviceTypeSmartphonesOtherAdgroupBidAdjustment","DeviceTypeComputersAdgroupBidAdjustment","DeviceTypeComputersWindowsAdgroupBidAdjustment","AgeTypeEighteenToTwentyFiveAdgroupBidAdjustment","AgeTypeTwentyFiveToThirtyFiveAdgroupBidAdjustment","AgeTypeThirtyFiveToFiftyAdgroupBidAdjustment","AgeTypeFiftyToSixtyFiveAdgroupBidAdjustment","AgeTypeSixtyFiveAndAboveAdgroupBidAdjustment","GenderTypeMaleAdgroupBidAdjustment","GenderTypeFemaleAdgroupBidAdjustment","NativeAdTypeNativeAdsBidsCampaignBidAdjustment","NativeAdTypeNativeAdsBidsAdgroupBidAdjustment","MultimediaAdTypeMultimediaAdsBidsCampaignBidAdjustment","MultimediaAdTypeMultimediaAdsBidsAdgroupBidAdjustment","IsNativeAdsRebrandingEnabled","CurrentCampaign","CurrentAdGroup","populateCashbackProperties","isMSANBoostEnabled","IsAmplifyEnabled","isHideBidAdjustmentForBoostEnabled","HideBidAdjustmentForBoost","toggleText","labelledbyId","setToggleState","listenTo","toggleState","Object","keys","search","cashbackKey","originalValue","percentSymbol","showBidAdjustment","setLevel","handleErrors","_len","args","Array","_key","targetsView","BaseTargetsView","jsData","CampaignCriterion","getCriterionFilter","targetKeys","entry","element","targetTypeToFilterProperty","CriterionBid","Multiplier","setData","isOriginalDeviceTargetingEnabled","isExpandedDeviceTargetingEnabled","bidAdjustmentIncreaseText","bidAdjustmentDecreaseText","ageMaximumBid","deviceTabletsMinimumBid","deviceTabletsMaximumBid","deviceSmartphonesMinimumBid","deviceSmartphonesMaximumBid","specialDeviceSmartphonesBidAdjustmentValue","parent","manual","manualCpv","manualCpm","manualCpa","enhancedCPC","maximizeClicks","maximizeConversions","targetCpa","targetRoas","maxConversionValue","targetImpressionShare","portfolioBidStrategy","costPerSale","percentCpc","commission","biddingStrategyTypeId","InheritFromParent","ManualCpc","MaxClicks","MaxConversions","TargetCpa","EnhancedCpc","TargetRoas","MaxConversionValue","TargetImpressionShare","ManualCpv","ManualCpm","PercentCpc","Commission","CostPerSale","ManualCpa","biddingStrategyType","biddingStrategyOption","defaultPopupIds","BidStrategy","entityType","types","hideHeader","isPortfolioBidStrategyEnabled","PageContext","isPredictiveMatchingEnabled","isRSABidStrategyAutoTargetingEnabled","bidStrategyName","portfolioBidStrategyType","popupIds","shouldSupportCashbackSettings","setPersonalizedOffersOptionsAndValue","enabled","shouldShowSponsoredCampaignCashback","setSponsoredCampaignOptionsAndValue","isSponsoredCampaignCashbackOptedIn","isSponsoredCampaignShowManualCpcOption","withRealTimeUpdates","oldValueTracking","subscribeForRealTimeUpdates","prefixBiddingScheme","triggerChangeEvent","portfolioSelectorView","i18nNewDesign","PortfolioSelectorView","isBulkEdit","needConfirmManagePortfolio","pbs","onSelectPortfolioBidStrategy","empty","selectedPortfolioBidStrategy","ensurePortfolioSelectorView","showPortfolioSelector","selectedBidStrategy","selectedPortfolio","TypeId","showCPC","checkCPC","maxCpc","decimalNumber","fromLocalToFloat","showTargetCPA","showTargetROAS","multiplier","showTargetImpressionShare","targetImpressionShareAdPosition","showCostPerSale","showCommissionRate","targetCommissionRate","showAutoTargeting","checkAutoTargeting","showPredictiveMatching","predictiveMatchingChecked","errorMessages","adGroupType","adGroupstrategyOptions","Text","strategyOptions","unshift","_ref$campaignType","IsPersonalizedOffersV2Enabled","IsCostPerSaleEnabled","isPersonalizedOffersEnabled","_getBidStrategyByCamp","getBidStrategyByCampaignTypeWhenPersonalizedOffersEnabled","isAfterSave","targetBidStrategy","bidStrategyOptions","updateBidStrategy","_ref2","_ref2$isSponsoredCamp","isSponsoredCampaignCashbackEnabled","_ref2$isSponsoredCamp2","isShowManualBidStrategy","isMranEcpcEnabled","isMranTroasEnabled","_getBiddingStrategyFo","getBiddingStrategyForSponsoredCampaign","isMSStoreAdsGAWorkflow","showBidStrategySection","forceReadOnly","forceHideBidStrategySection","isFromInitialization","meetConversionGoal","meetRevenueGoal","isCoOpStore","manualOnlyOption","campaignBiddingStrategyOptions","isCreation","BROAD_ONLY_BID_STRATEGY_OPTIONS","Set","FAC_STATUS","freeze","NOT_IN_PROGRESS","CCUIConstants","RecommendationAdoptionStatus","NotInProgess","ACTIVE","ADOPTED","Adopted","AUTO_BIDDING_FEATURE_IDS","MAX_CLICKS","FAC_FEATURE_ID","AUTO_BIDDING_MAX_CLICKS","MAX_CONVERSIONS","AUTO_BIDDING_MAX_CONVERSIONS","autoBidUpfrontSpendValue","percentageThreshold","NumberRange","minValue","KeywordBidRange","FloorValue","maxValue","CeilingValue","manualCpi","manualCpc","appConfig","maxCpcKeyword","maxCpcProductGroup","ProductGroupBidRange","outOfRangeTemplate","INVALID","validateNumber","excludeMin","excludeMax","lowerThanMin","higherThanMax","outOfRange","countNumberOfDigits","_$result","IsCampaignTargetROASBidStrategyEnabled","IsNewCampaignTargetROASBidStrategyEnabled","IsSmartShoppingCampaignEnabled","IsMaximizeConversionValueEnabled","IsTargetImpressionShareEnabled","IsManualBiddingDeprecationEnabled","IsManualCpmEnabled","IsVideoAdsForCampaignEnabled","IsHideCpmForFeedbasedCampaginEnabled","IsManualCpcForVideoAdsEnabled","IsAudienceCampaignAutoBiddingV2Enabled","IsMSANMaxConversionsEnabled","IsEnabledDeprecateManualCpcForAudienceCampaign","IsDomesticSimplifiedChineseEnabled","IsPortfolioBidStrategyEnabled","IsHotelCampaignEnabled","IsSponsoredPromotionsByBrandsEnabled","IsPersonalizedOffersV4Enabled","IsWindowsStoreAdsManualCPAEnabled","isMaxConversionForSscEnabled","isPredictiveMatchingPilotEnabled","isXandrVideoCampaignEnabled","isMaxConversionValueInSearchShoppingEnabled","isMaxConversionValueInSearchEnabled","isBroadOnlyPilotEnabled","isEnableMSANDisplayCampaignsEnabled","isEnableMSANVideoCampaignsEnabled","isMaximizeConversionValueEnabled","isTargetImpressionShareEnabled","isHotelCampaignEnabled","isCostPerSaleEnabled","globalFilterCampaignType","getCampaignTypeGlobalFilter","CampaignTypeToStringMap","ccJsData","originalBidStrategy","isGlobalFilterAllCampaign","isGlobalFilterAudienceCampaign","isGlobalFilterHotelCampaign","campaignBiddingStrategyType","validateWithBudget","budgetAmount","showBidStrategySelection","isPortfolio","isVideo","isFeedBased","isMicrosoftStoreAd","isSmartShopping","isSmartShoppingWithMaxConversionsForSsc","isSearchShoppingWithMaxConversionValue","isChinaMarketAudienceCampaign","isPmax","isAppAds","isBulkEditWithMaxConversionsForSsc","isCampaignTargetROASBidStrategyEnabled","isEnabledAutoBiddingForAudienceCampaign","CampaignSubTypes","AudienceStatic","AudienceFeedBased","AudienceDynamicFeedBased","BrandAwarenessVideoAds","DisplayAds","isAudienceCampaignMaxConversionsEnabled","isXandrDisplayAdsCampaign","isXandrVideoAdsCampaign","isSearchCampaignMaxConversionValueEnabled","shouldEnableManualBiddingDeprecation","isManualBiddingDeprecationEnabledForCurrentPath","isCampaignTypeSupportedForManualBiddingDeprecation","isBulkEditViaCampaignsGrid","isCPG","CoOpCampaignSubType","isCampaignSettingsWhereCampaignHasManualCPC","determineSupportedCampaignBiddingStrategyOptions","CampaignSubTypeMapping","option","costPerSaleBidStrategy","isXandrServing","_toConsumableArray","adGroupBiddingStrategyOptions","keywordBiddingStrategyOptions","targetImpressionSharePositionOptions","biddingStrategyId","isReadOnly","showTargetCpaCheckbox","actualBidStrategy","isInitialize","isConversionChecking","errorMessageMaxCpc","errorMessageTargetCpa","errorMessageTargetRoas","errorMessageTargetImpressionSharePercent","errorMessageMaxConversionValue","errorMessagePortfolioBidStrategy","errorMessageCostPerSale","errorMessageTargetCommissionRate","maxCpcDefaultValueAlertMessge","targetCpaDefaultValueAlertMessge","targetRoasDefaultValueAlertMessge","targetCommissionRateDefaultValueAlertMessge","costPerSaleDefaultValueAlertMessge","showAutobiddingChangeAlert","isTargetCpaCheckboxSelected","isTargetRoasCheckboxSelected","isBidStrategyReadonly","showTargetRoasCheckbox","showConversionChecking","supportedBidStrategies","autoTargetingEnabled","logMaxCpcChange","imaxCPCBidBase","maxCpcBid","isMaxCpcDirty","read","write","checkConversionCountAndRevenue","owner","showMaxCpcDefaultValueAlert","maxCpcKey","isBidLessThanFiveCentsForShoppingCampaign","realValue","itargetCpaBidBase","targetCpaBid","isTargetCpaDirty","showTargetCpaDefaultValueAlert","targetCommissionRateValue","showTargetCommissionRateDefaultValueAlert","itargetRoasBidBase","targetRoasBid","showTargetRoasDefaultValueAlert","targetAdPosition","targetImpressionShareAdPositionUpdate","targetImpressionSharePercent","showPortfolioSection","originalPortfolioBidStrategy","costPerSaleValue","isRenderedInReact","showCostPerSaleDefaultValueAlert","setConversionChecking","checkConversionTracking","today","Date","startDate","dateUtils","format","kendo","addDays","endDate","AdvertiserCustomerID","dismissCouponNotification","isAutoBiddingCouponNotificationDismissed","getAutoBiddingCoupon","ccJsDataInstance","GetJsDataInfo","cidFetcher","uidFetcher","CurrentUser","willSupportCors","CCBaseUrl","jsDataCcRest","FeatureAdoptionCoupon","aid","coupons","FeatureId","autoBiddingCoupon","autoBidMaxClicksDescription","autoBidMaxConversionsDescription","shouldDisplayNotification","autoBiddingCouponDescription","shouldSkipConversionCheck","checkConversionCountAndRevenueCalled","IsActiveConversionGoalPresent","IsActiveConversionGoalPresentWithValidRevenueValue","utcnow","utcNow","setDate","getDate","PerformanceMetrics","parseFloat","CPA","AverageCPC","RevenueOnAdSpend","checkErrorMessage","meetValue","checkSelectedBidStrategy","showConversionCountCheckErrorMessage","showRevenueCheckErrorMessage","meetMaxConversionValueGoal","showMaxConversionValueLocationTargetMessage","showManualCpcDeprecationBannerForAudienceCampaign","showSwitchStrategyWarningMessage","showBroadOnlyErrorMessage","isBroadMatchOnlyCampaign","_TL_","vCps","vBudget","BidStrategyId","BidStrategyName","MaxCpc","Amount","AutoTargetingEnabled","TargetAdPosition","mtModel","_default","parentItem","parentView","suggestedNewValue","currentValue","dataArray","helpId","showHelp","userInput","validator","currentSelectedId","landscapePointsLength","selectionUpdated","notify","inputInvalidByUser","inputValid","notCustomInput","customInputAndUserNotInvalidIt","inputErrorMessage","radioName","hasData","startDateString","endDateString","inSimpleMode","isClickGraph","valueToApply","updatedSelectedIndex","dataToShow","hasZeroCurrentPoint","landscapePoints","selectedIndex","showClick","currentBid","suggestedBid","BidLandscapePoints","hasClick","CurveType","sortBy","point","uniq","impressions","Impressions","impressionsStr","mlImpressions","MLImpressions","mlImpressionsStr","comment","clicks","Clicks","clicksStr","cost","Cost","costStr","customBidCurrentPoint","ChartData","convertDataFromResposne","StartDateString","EndDateString","_BidLandscapeModel","tableBidText","BidLandscapeModel","colors","getBidlandscapeChartOptions","series","animation","chart","xAxis","allowDecimals","clickGraph","labels","align","y","style","color","fontWeight","fontSize","formatter","showGridlines","gridLineWidth","gridLineColor","lineWidth","lineColor","startOnTick","endOnTick","tickPositioner","positions","tick","dataMin","increment","dataMax","ceil","yAxis","opposite","step","legend","credits","tooltip","crosshairs","dashStyle","plotOptions","dataLabels","marker","enableMouseTracking","grouping","shadow","fillColor","radius","states","hover","borderWidth","pointWidth","events","getMakerSetting","enable","getAdgroupCurrentPointSetting","symbol","percentileCeil","original","floor","BidLandscape","_ref$parentItem","_ref$viewModel","_ref$helpId","_ref$inSimpleMode","_ref$dataToShow","slideChartOptions","TypeError","msg","prepareView","convertDataForBidLandscape","initBidLandscapeCharts","delegateEvents","clickEvent","kpiIndexInSortOrder","highcharts","initSlideChartForBid","pointClicked","tableKPiIndex","getTableKpiIndex4Point","highchartsConfig","click","stopImmediatePropagation","landscapePointClicked","graphPoint","maxIndex","maxX","maxY","minX","minY","xAxisName","toUpperCase","seriesData","x","reverse","extraSeries","prepareExtraSeries","min","max","KeywordBidLandscape","EntityName","KeywordName","handleSortChange","sortInfoKey","orderby","sortableHeader","preference","sortInfo","isDataFetchManagerEnabled","currentsortableHeader","currentQuery","queryFromView","selectorId","defineGridPlugin","toolbar","originalQuery","gridName","plugins","getLoadDirectlyLinkedAccountsPreference","loadDirectlyLinkedAccounts","queryParams","edm","root","identifyEntitySet","toJSON","navigation","parameters","isCustomerHierachyRequest","$call","toolbarEditor","gridToolbarGroup","toolbarWithItem","menuItems","showAllAccounts","showDirectlyLinkedAccounts","button","setLoadDirectlyLinkedAccounts","_ref3","rawValue","customerHierarchySelector","menu","wrapPlugin","originalPlugin","dependencies","globalConfig","_config$plugins$inlin","inlineDownload","isInlineDownloadReportV2Enabled","IsInlineDownloadReportV2Enabled","ReportEmailRule","unset","restDependencies","apply","merge","DownloadView","DownloadViewV2","DownloadViewV1","inlineDownloadPlugin","inlineDownloadWithoutSegmentPlugin","originalInlineDownloadWithoutSegmentPlugin","inlineDownloadWithoutFilterStatePlugin","withoutFilterStatePlugin","pulginConfig","editorContainer","slideUp","ReactDom","existingContainer","prepend","renderPrimaryContactReactComponent","props","React","EditPrimaryContact","renderEditComponent","cid","uid","callBack","contacts","selectedUser","warning","warningMessage","userId","onSubmit","accountIds","postPrimaryContactUpdate","IsSuccess","views","alertCenter","showConfirmation","Message","afterUpdate","onCancel","slideDown","registerToolbar","targetToolbar","isInEditing","getPrimaryContacts","Alert","AlertContent","showWarning","num","monetaryOptions","compact","minimumFractionDigits","maximumFractionDigits","currencyCode","formatCost","formatCurrency","getTrafficEstimationOp","adGroup","budget","adGroupRequests","locationIds","languages","Keywords","keyword","MatchType","targetings","locationId","language","getDailyBudgetAmount","budgetObj","extract","formattedEstimationOp","adGroups","CampaignTrafficEstimate","AdGroupTrafficEstimateParameters","KeywordTrafficEstimateParameters","MaxCPC","adGroupsWithoutBid","Targetings","LocationId","budgetSuggestionOpFormatter","extractedOp","Request","CurrentBudget","InitialBudget","initBudget","Languages","LocationIds","bidSuggestionOpFormatter","bidSuggestionEndpoint","budgetSuggestionEndpoint","getSuggestion","callbacks","timestamp","isBid","endpoint","getTrafficEstimation","getBidSuggestion","getBudgetSuggestion","MAX_KEYWORDS_COUNT","MAX_KEYWORD_LENGTH","MAX_LOCATION_IDS_COUNT","estimationEndpoint","endPoint","opTransformer","odataHost","locations","getSupportedLocationIds","supportedCount","onServiceNotSupported","op","adgroup","isKeywordLengthInvalid","adGroupTrafficEstimateParameters","isDSAMixedModeCampaignEnabled","onSuccess","post","host","dummy","textStatus","xhr","getResponseHeader","suggestedBidRequestId","onRequestError","_len2","_key2","spinner","logBidView","activity","trace","isNKW","AccountCurrencyCode","logBidAdoption","SearchBid","viewedSuggestion","logBudgetView","campaign","suggestedBudget","logBudgetAdoption","logBudgetLandScapeView","clientName","optId","suggestedBudgetValue","logBudgetLandScapeAdoption","userInputBudgetValue","logBudgetLandScapeForSharedBudgetCampaignView","budgetId","logBudgetLandScapeForSharedBudgetCampaignAdoption","weekly2Monthly","weeklyVal","weekly2MonthlyInt","round","bidHintKey","suggestedClicks","impressionsMore","imporessionMore","bidSuggestion","applyBtnText","lowBidBtnTitle","normalBidSuggestion","Scenario","SuggestedBid","OriginalInputBid","EventName","SuggestedBidRequestId","cancel","budgetView","BudgetView","haveBudgetSuggestion","dailyBudget","fromBudgetUpdate","updateSuggestedBudget","enough","getSuggestedBudget","s$Budget","_currenyFormatter","BudgetTypes","BudgetScopes","BudgetTypesToBudgetScope","_defineProperty","BudgetTypeSectionOptions","isDeprecateAcceleratedBudgetEnabled","IsDeprecateAcceleratedBudgetEnabled","IsDeprecateAcceleratedBudgetOptoutEnabled","budgetRangeNew","budgetRangeModule","budgetRange","validationDailyMinBudget","DailyRange","USDefaultBudget","IsDefaultBudgetExperimentationEnabled","realDefaultBudget","Daily","Default","defaultBudget","clicksIncrease","isDailyBudgetExpanded","showFACHint","featureAdoptionCouponValue","budgetTypeSelectionOptions","selectedBudgetType","showBudgetTypeSelectionOptions","showBudgetTypeSelection","allowBudgetTypeSelection","budgetAmountPlaceholder","fromLocalToString","BudgetScope","isDailyStandard","hideDailyBudgetOptions","readOnly","hideAcceleratedBudgetOption","showSuggestedBudget","showBudgetMinRecommend","minimumBudget","budgetSuggestion","increasedClicks","humanizeNumber","forEditing","budgetLimit","LifetimeRange","featureAdoptionCouponHint","amountTypeValidator","validators","amountSizeValidator","computeBudgetError","useSuggestedBudget","applySuggestedBudget","budgetError","budgetInvalid","budgetType","budgetLabel","budgetTypeLabel","prototype","updateFeatureAdoptionCoupon","couponValue","_getSuggestion","_logger","_weeklyToMonthly","sumAdGroupClickList","adGroupClickList","formatAdGroupClickList","memo","initialize","toFixed","currencySymbol","isDailyStandardName","toggleDailyType","toggleClass","budgetChanged","budgetTypeChanged","Intermediate","getAll","clicksAsSuggestedBudget","EstimatedAdGroupClicksAsSuggestedBudget","clicksAsCurrentBudget","EstimatedAdGroupClicksAsCurrentBudget","EstimatedAmountAsSuggestedBudget","isCampaignTargetsExpanded","isCampaignLevelGoalEnabled","isbiddingStrategyTypeCPC","estimateTrafficSupported","showPerformanceGrid","showAdgroupBidGrid","showError","infoMessage","showInfo","hasUnsupportedLocations","showSearchBidValidationError","infoMessageWithLearnMore","linkText","bidLimitations","bidRange","BaseAdGroupBidGrid","_ref$gridColumns","gridColumns","_ref$defaultBid","girdAriaLabel","isBidChanged","vnext","inlineErrorPlugin","errorIconClasses","tableClasses","tableAttributes","primaryKey","bodyRows","classes","bidUpdated","newError","inlineError","newBidFloat","patchError","resetMesages","refreshGrid","isAllBidValid","updateBudget","patch","suggestedAvgCpc","adgroups","NoClicks","CriticalLowBid","NormalLowBid","BidInvalid","BidExceedRange","BidExceedMaxLength","Other","bidStatus","Warning","Suggesiton","Good","getBIValueByAdGroupType","AdGroupType","adGroupTypeEnum","SearchDynamic","PerformanceGridView","_BaseAdGroupBidGrid","isBidEditable","suggestionEnabled","lowBidBtnText","setClarityTag","width","headClasses","bidEditorTemplate","bidStatusENUM","estimatedNumTemplate","estimatedNum","TotalCost","newBidString","itemOfElement","validateResult","fetchEstimate","checkLimitaion","targetAdgroup","calcTraffic","statusUpdate","onNotAllSupported","updateAdGroups","onNonSupported","campaignTrafficEstimate","adGroupResult","pick","suggestedImpressions","InputBid","LowBidAlertType","CampaignId","AdgroupId","CurrencyId","hintKey","contentText","suggestionBid","lowBidBtnContent","bidToolTipLowBid","popoverExtender","decorate","excludeCb","clickCb","closeCb","popup","visibleContent","PopupContentView","$target","Boolean","AdgroupBidGridView","AdgroupBidGrid","_AdgroupBidGrid","BudgetPanelView","_BudgetPanelView","_BiddingStrategyView","AdvancedSettingsView","_AdvancedSettingsView","_SharedBudgetView","PerformanceGrid","_PerformanceGrid","AudienceAdvancedTargetSettings","audienceCampaignLoader","AudienceTargetInfo","getTrafficEstimationWithSuggestedBid","_getBidSuggestion","IsSuggestionInCampaignCreationWorkflowEnabled","IsSuggestionInCampaignCreationWorkflowVNextEnabled","dynamicPermissions","showDisclaimerBanner","campaignInstrumentation","suggestionInCreationWorkflow","campaignCreation","showBudgetAndBidMarker","autoEnd","isSuggestionInCampaignCreationWorkflowEnabled","biddingStrategyView","DefaultBid","performanceGrid","adgroupBidGrid","advancedSettingsView","TimeZone","getAccountTimeZone","updateGrid","removePreviousContent","fetchSuggestedBid","res","AdGroupEstimatedTraffic","reqId","willShow","numKeywords","context","canFetchSuggestion","scrollTo","budgetFactory","newFactory","campaignObj","getAdGroupsData","initialBudget","trafficRequestFormatter","fetchSuggestedBidMarker","willFetchData","BiddingScheme","initCampaignTargets","CampaignType","updateCampaignTargets","subViewsNeedToUpdateCashbackColumn","campaignTargetsView","adScheduleView","locationTargetsView","shouldShowCashbackColumn","POUtils","subView","toggleCashbackPercentColumns","queryParameters","expand","isSPA","CampaignSubType","isCPS","PersonalizedOffersEnabled","MonthlyBudget","campaignGoalSelectionView","goalSelector","realI18n","isMultiMode","isHideSaveBar","BroadOnly","PredictiveMatching","IsBroadMatchOnlyCampaign","onShowCampaignTargets","onHideCampaignTargets","audienceTargetInfo","resourceName","listenToLocationCriterion","useLocationControl","initAudienceAssociationView","currentLevelTargetInfo","criterions","SelectionStatus","locationTargetTypes","createTemplate","isShowDisclaimerBannerEnabled","addEventListener","onSelectedBidStrategyChange","shouldCancel","save","shouldBack","origin","updated","getAdGroups","updatedAdgroup","errorElements","logBidSuggestion","SUBSTRATE","SaveBid","BudgetId","scrollUtil","saveBudgetAndBidMarker","clearApiErrors","campaignToSave","biddingSchema","RSABidStrategyAutoTargeting","advancedSettings","dateSettings","netWorkOptions","populateCriterionCampaignIds","deviceTargets","locationTargets","scheduling","campaignTargetsData","getData","campaignTargetsCriterions","nativeAds","multimediaAds","vanityUrlSettings","AdScheduleUseSearcherTimeZone","CampaignConversionGoalAssociations","convertToMTFormat","adapter","targetToCountMapping","fillCriterionsWithId","withUiBlock","DAILY_BUDGET_TYPE","LIFETIME_BUDGET_TYPE","dailyAcceleratedBudget","lifetimeBudget","budgetTypes","CampaignSettings","createScenarioAndActivity","scenarioName","activityName","nullable","showBudgetMinRecommendation","applySuggestedBudgetLog","module","legacyModule","default","i18nGlobal","BUDGET_SUGGESTION","$elToBlock","importNotificationCallback","landscapeEnabled","IsBudgetInlineSuggestionEnabled","getBudgetRangeOld","LifetimeBudgetAmount","MinXandrDailyBudgetRangePerCurrency","LinkedInBudgetRangePerCurrency","Min","Max","DeliveryStatusDetails","DeliveryStatus","budgetSuggestionPerfMarker","createMarker","i18nForBudgetLandscapePromise","odataPromise","instrumentationPromise","budgetLandScapeTablePromise","_ref4","_slicedToArray","i18nForBudgetLandscape","BudgetLandScapeTable","inlineBudgetEditor","recordBudgetLandscape","odataPath","uri","fetchBudgetLandscape","rawData","tableView","opportunityData","conversionSummaryStatus","ConversionStatus","currentBudget","fromBudgetColumn","fromCampaignTab","OpportunityId","rawSuggestedBudget","templateWithLandscape","currencySymbolClassName","updatedBudget","getSelectedNewBudget","opportunityId","unexpectedError","getErrors","childMarker","MessageView","messageTemplate","_Backbone$View2","proceedButtonClickCallback","accountsCount","buttons","class","disabled","lightboxDiv","Dialog","showCloseButton","setContent","setState","body","appendChild","AlertDialog","CommonDialog","dialogContent","accountNumbersList","_jsxs","_Fragment","_jsx","accountNumbers","onAction","ReactDOM","alertButtonText","AccountHoldStatus","AccountInactiveReasons","AccountMissingABL","postRequestWithErrorHandled","successCallback","logMethodName","ajaxPost","xhrFields","withCredentials","contentType","dataType","instrument","onError","hideLoadingPanelOnSuccess","handleErrorMessage","firstError","errorCodes","Code","postRequestWithBatchErrorHandled","responses","_response$Value","_response$Value2","isSuccess","InternalErrors","SenderErrors","isAccountAlreadyHoldOrUnHold","fetchAccountsData","ajaxGet","getCCUrl","postRequestRedirect","bulkEditAbl","selectedAccounts","customerId","bulkEditTaxesValidationErrorsUrl","accountsUpdateUrl","bulkEditManualHold","isApplyHold","bulkEditManualHoldUrl","bulkDeleteAccounts","_ref5","accountsDeleteUrl","BulkDeleteLightbox","bulkReactivateAccounts","_ref6","selectedAccountIds","accountsReactivateUrl","accounts","ABLMissingAccounts","account","accountInactiveReasons","isArray","some","reason","Reason","getABLMissingAccounts","BulkReactivateABLMisssingLightbox","exclusionsUpdate","$http","queryify","__adcenterAJAX","__RequestVerificationToken","whitelistCampaignTypesForDefaultSelections","None","Shopping","DynamicSearchAds","Audience","Smart","Hotel","All","defaultSelections","label","confirmText","helpTopic","helpAriaLabel","endDateSelection","shouldGridReload","adScheduleTimeZoneSelection","selections","defaultSelection","textAreaValue","campaignLifetimeBudget","o","selectedValue","learnMoreText","selectLabel","applyForThisPageOnlyInfo","applyButtonText","cancelButtonText","errorMsg","selection","datePicker","getSelection","SelectedBulkEditOption","endDateMachine","getSelectedDate","endDateUTC","getState","isNodateSelected","parseDate","formatDate","timeZone","culture","HasEndDate","endDatePicker","currentAlertId","dismissAlert","dismiss","showAlert","dismissible","showUnknownError","CampaignLifetimeBudget","senario","bulkEditCampaignExclusions","start","CampaignsDatePicker","allowNoDate","noDateLabel","dateLabel","noDateGroupAriaLabel","datePickerAriaLabel","adScheduleTimeZoneView","BulkEditAdScheduleTimeZoneView","BulkEditAdScheduleTimeZoneModel","onOperationSuccess","confirm","getConfirmText","submitJob","selectedIds","selectedKeys","idData","exclusionData","getResult","Errors","Records","Rows","object","clearErrors","stop","EntityGridIdMap","DsaTarget","NegativeAdGroupDsaTarget","NegativeCampaignDsaTarget","pollStatus","taskId","successCb","failedCb","BulkEditSession","processResponse","completeCB","failedCB","progressCB","bulkEdit","preview","opt","process","urlParameters","$expand","getParams","batchActions","gridId","SummaryDataContextManager","updateContext","bulkEditChange","bulkEditPreview","getSelectedIds","getQueryStringRaw","dateRange","startdate","RangeStartDate","toISOString","enddate","end","RangeEndDate","getDateRange","isSelectAll","projectionFilters","filters","convertToOData","encodeURIComponent","idFilters","getQueryString","queryString","queryStringProcess","QueryString","AdGroupId","getDescription","idsCount","Description","Selection","PreviewEntityIds","Job","backbone","TotalRowCount","SuccessRowCount","ErrorRowCount","CreationTime","ExecutionStartTime","CompletionTime","CreatedBy","BulkEditResults","selectedEntityCount","PreviewCompositeIds","updateSummaryDataContext","metadata","isPreviewMode","gridIds","dependentIds","UserErrors","sync","method","jobId","currentCustomerIdFirst","jq_ajax_adapter","idAttribute","capValue","substring","toDescription","FilterExpressions","expressions","expression","SelectedColumn","idStringExpressions","otherExpressions","compactOthers","expr","SelectedOperator","Values","compactIds","toDescriptionWithDataFilter","idBased","fromDescription","compactFilter","returnDescription","Filter","toQueryString","filterExpressions","toRuleDescription","acrossAllPages","expressionsToMap","SelectedNames","fromRuleDescription","mapped","buttonEvent","errorDetails","_ref2$isBlocking","isBlocking","ReparentingNotAllowedForAccountsMaxLimit","ARWUnthemedBulkErrorView","getElementById","transferAccountsUrlConfirmation","reparentingJobAddHandler","traditional","reparentingId","bulkTransferAccounts","onSuccessCallBack","bulkTransferModel","accountType","transferConfirmationUrl","transferacc","acc","BulkTransferLightbox","rpid","appendErrorSummary","unlinkaccountsUrl","unlinkaccountsUrlConfirmation","HierarchyAccountTypeValue","bulkUnlinkAccounts","onConfirm","bulkUnlinkModel","number","AccountNumber","AccountType","Unknown","managers","ManagerAccounts","manager","CustomerNumber","unlinkConfirmationUrl","unlinkacc","BulkUnlinkLightbox","revisedModel","returnUrl","location","href","redirectUri","AdScheduleTimeZoneModel","ChangeLanguageModel","BaseViewModel","adScheduleUseSearcherTimeZone","adScheduleUseSearcherTimeZoneEdit","timeZoneText","getAccountTimeZoneText","ActionType","SearchString","Options","getIdFilter","showPanel","selectedLanguages","getDefaultLanguage","titleText","entityCount","errorRole","s$AdGroup","_globalConfig$get","IsSimplifiedChineseLanguageEnabledInMultipleLanguage","IsAdsGlobalizationPhase1Enabled","IsAdsGlobalizationPhase2Enabled","IsAdsGlobalizationPhase6Enabled","IsAdsGlobalizationPhase2JapanEnabled","IsAdsGlobalizationPhase9Enabled","IsAdsGlobalizationPhase9VIEnabled","languageSelector","selectionAcrossPage","success","enum","languageOptions","inEditMode","MultiLanguageSelector","getSelectedLanguages","pgridPlugins","crossPageSelectAll","isAllSelected","getLanguageString","returnedValue","lang","OriginalValue","formatPreviewOrError","formatBid","_preferencesService","modalManager","ModalManager","campaign2ObjectiveMapping","railViewIds","step1","step2","step3","step4","StepsWizardView","_exitWithSave","logToSubstrate","logToSubstrateStop","navigateToCampaignSummaryPage","alert","_cancel","navigateToRoute","stepIndex","stepActivities","stopSignal","getAdGroupCreateViewFactory","IsDSAMixedModeCampaignEnabled","campaignObjective","getCampaignType","_MixedModeAdGroupView","importPromises","all","spread","_AdGroupView","keywordAdGroupCreateDecorator","getAdCreateViewFactory","_AdsCreateView","getBudgetCreateViewFactory","BudgetCreateView","eventDelegator","isNextButtonEnabled","IsReadOnlyUser","CurrentAccountInActive","campaignSaved","localStorage","supportsStorage","campaignCreationStep1","campaignCreationStep2","campaignCreationStep3","campaignCreationStep4","startSignal","descriptionHelpId","descriptionHelpText","stageStepLoading","contentClass","enableStepSwitch","steps","pageTitle","railViewId","viewFactory","CampaignSettingsView","showLanguage","usePanel","serverContext","isDelayLoading","isAutoTargetCampaign","UpdateView","keywordAdGroupUpdateDecorator","AdGroupUpdateView","keywordAdGroupInstru","adExtensionsDynamicFeatures","customButtons","extendDefaultButtons","extendedParameters","cssClass","visible","isLast","maxAvailabeStepIndex","callbackBeforeRender","contextValue","diaplaySuccessDialog","err","doNotShowAgain","isPendingPaymentMethod","enums","accountStatus","pendingPaymentInstrument","isAccountOnHold","active","accountPausedReason","accountInactiveReason","notSet","InactiveReasons","accountPausedReasons","pausedDueToSystemIssue","pausedZeroBalance","pausedNoValidiO","successDialog","findByName","getContext","IsCampaignCreationSuccessDialogEnabled","shouldNext","campaignCreationFlowFinished","onSwitch","delta","direction","stepNumber","onSwitched","stepTo","invalidate","callbackBeforeRemove","fetchHasAvailableConversionGoals","fetchSmartShoppingCampaignCountIsLessThan100","noSmartShoppingReason","NO_AVAILABLE_GOAL","MORE_THAN_100","NO_PILOT","fetchIsSmartShoppingCampaignSupported","hasAvailableConversionGoal","isSSCCountLessThan100","supported","Success","_ref$aid","_ref$cid","_ref$uid","_ref$isPendingPayment","_ref$isAccountOnHold","_ref$accountPausedRea","link","URI","setQuery","dialogTemplateAccountPaused","hrefAddPaymentMethod","showTaxForm","dialogTemplatePendingPaymentMethod","hrefFixIt","dialogTemplateAccountOnHold","dialogTemplateInReview","_ref$lockRegionAriaLa","lockRegionAriaLabel","dialogView","successView","FocusLockPopupEditor","focusLockInstanceDecorator","onExit","focusFirstItemOnMount","managed","focusLockSuccessPopupEditor","modal","backdrop","keyboard","contentView","timeoutForBudgetLandscapePopover","isExperimentsOpenBetaEnabled","targetEntity","_ref$eventName","eventName","_ref$isForecasting","isForecasting","deliveryStatus","landscapeDisabled","ExperimentId","AssociatedExperiment","DecimalFormatter","expDateUtils","dismissHelpInfo","getTemplate","showHelpInfo","showSuggestionClickedCallback","clearTimeout","DeterministicViewForBackBoneView","showPopup","anchor","isThumbVisible","isLikeVisible","isLikeSolidVisible","isDislikeVisible","isDislikeSolidVisible","isRecommendedPageLinkVisible","feedbackComment","overLike","overLikeOut","overDislike","overDislikeOut","onClickLike","onClickDislike","legacyRouter","_bingads_webui_component_legacy_legacy_router_index","campaignTab","budgetLandscape","Level","ACCOUNT","CampaignIds","AdGroupIds","i18nRecommendation","preferenceName","BudgetLandscapeView","seasonalEvents","SeasonalEvents","dataVersion","Version","isInProductFeedbackLoopOn","IsRecommendationInProductFeedbackLoopEnabled","navigateToType","preferenceData","generateScope","initializeInstrumentation","dataService","RecommendationService","currentScenario","currentActivity","isNoExpand","IsForecasting","showForecastingMessage","campaignOutOfBudget","IsShared","budgetTitle","Shared","BudgetName","isSharedBudget","chartView","BudgetLandScapeChart","tableViewmodel","getViewModel","redraw","rawLandscapeData","notExceed","currentLargerThanMax","showData","helpText","formatLocaledSeasonalEventType","Landscapes","Comment","logAdInsight","ADINSIGHT_LOG_ACTION_TYPE","VIEW","IMPRESSION","accountId","token","levelAt","entityIds","addScenario","loadRecommendationTab","formattedReason","isLike","RECOMMENDATION_TYPES","BUDGET_OPPORTUNITY","FEEDBACK","input","typeId","RECOMMENDATION_IDS","channel","CHANNEL_TYPES","INCONTEXT","ADINSIGHT_LOG_API_NAME","RECOMMENDATION","gotoRecommendationTab","handleFeedbackDislike","handleFeedbackLike","gotoCustomizedRecommendationTab","reasonId","logUserFeedback","NAVIGATE_REASON","NoBudget","REALLOCATE_BUDGET","getSummary","ignoreCoupons","oppo","ele","OpportunityType","recommendationDescription","TYPE_DESCRIPTION_TABLE","showDismissFeedbackPopupForBudgetLandscape","onSubmitFeedback","saveDataVersionPreference","CustomerId","AcctId","BudgetTypeString","IsDailyBudgt","hasEvent","isForward","newBudget","COMMENT_TYPES","isSharedBudgetCampaign","budgetName","getEventForecasting","onNoBudgetLandscapeForCampaignOutOfBudget","positioningMethod","positioningOptions","positionAttribute","threshold","acceptBudgtLandscapeSuggestions","budgetLandscapeView","popupUtil","dataContextManager","DeliveryStatusDetail","isSharedBudgetRecommendation","logger","notifyAdInsight","onFetchBudgetLandscapeSuccess","getBudgetRange","minBudget","Monthly","maxBudget","processedData","landscapes","maxBudgetInLandscape","landscape","EstimatedBudget","processedLandscapes","processBudgetLandscapeResult","openBudgetLandscapePanel","dismissBudgetLandscapeHelpInfo","BudgetSuggestionContainer","parentRemove","showDialog","_this$campaign","force","InstrumentationContext","Provider","ThemeProvider","theme","components","ComponentSettings","core","ThemeFluent","FluentProvider","webLightTheme","I18nContext","Activity","ScopeContext","ServerContext","BudgetSuggestionDialog","enableSaving","onGridRefresh","onTriggerDialog","isReadOnlyUser","showBudgetSuggestion","showCampaignRejectionReasons","details","NoEligible","findIndex","splice","collectionSize","statusForCombinedPopup","detailsHtml","deliverStatusDetailTemplate","Callback","CampaignDeliveryStatusPopupFactory","_DeliveryStatusPopupF","handler","getEventTargetModel","hasClass","openBudgetSuggestionDialog","deliveryStatusPopupPerfMarker","openInlineOpportunityForCampaign","openInlineOpportunitiesPanel","getEventTargetEntity","_getEventForecasting","showBudgetLandscapeHelpInfo","_getEventForecasting2","campaignDeliveryStatusDetails","CampaignDeliveryStatusDetails","detail","BLACKLIST","suggestedValue","RecommendedValue","showApply","formattedSuggestedValue","formatDecimal","detailMessage","autobiddingLimitedStatus","hoverDeliveryStatus","autobiddingTemplate","learnMoreString","applyString","AutoBiddingLimitedMaxCPCRestriction","AutoBiddingLimitedBudgetRestriction","AutoBiddingLimitedUnAttainableTarget","enableApply","showBidLandscapeHelpInfo","DeliveryStatusPopupFactory","keyOfElement","itemWithKey","display","ResetImage","showQualityScoreDetail","qualityScore","qsContainerId","KeywordRelevance","LandingPageQuality","LandingPageRelevance","OverallQualityScore","controls","qualityscore","DisplayQsFlyout","preferenceService","removeEnumValuesFromProperty","propertyName","removeEnumArray","depth","updateEnumValueSets","entityName","disabledTargets","IsDynamicSearchAdsV1Enabled","enumValueSets","IsSmartCampaignPhase2Enabled","IsCustomerHierarchyEnabled","IsSharedLibraryPhase1Enabled","enableForExperimentFeature","isInPilot","IsExperimentsEnabled","campaignProperty","isExperimentProperty","putil","enableForMainGoalSelectionFeature","performanceMetricsProperty","allConvMetric","enableForViewThroughConversionsFeature","IsViewThroughConversionEnabled","IsViewThroughConversionsRevenueEnabled","viewThroughConvMetric","metric","enableFilterForPilotProperties","propertyNameArray","IsEnhancedShoppingCampaignAllowed","IsAudienceGridNewColumnsSupported","IsRemarketingSimilarAudienceAllowed","IsAudienceListSizeEnabled","getFeaturePermissionByPropertyName","updateFilterSchemaForPilotFeatures","originalSchema","updateEntitySchemaForSOV","updateEntitySchemaForRemovedPerformanceMetrics","enableForAudienceSOVFeatures","jsdataRawDataPlugin","commonJsdataRawDataPlugin","getRawData","LabelAssociationView","_AssociationView","stats","selectionInfo","_ref$disableDeselectA","disableDeselectAll","_ref$isManagementRequ","isManagementRequest","loadDirectlyLinkedAccountsObj","getLoadDirectlyLinkedAccounts","loadDirectlyLinkedAccountsValue","selectedRowCount","onOperationFailure","IsAccountLabelsEnabled","allPages","showProgress","showButtonBar","renderBulkEditJobView","AssociationView","CommonViewModel","customValidators","bindEl","applyBindings","isFunction","pug","exports","locals","pug_interp","pug_html","locals_for_with","escape","$$obj","pug_index0","$$l","pug_mixins","ariaLabelContext","templateString","tipText","linkId","displayText","cls","inputClass","errorColumnIsHtml","pug_index1","header1","header2","header3","header5","header6","header7","InReviewDescriptionLine3","adsApprovalLink","adsIsRunningLink","performanceDataLink","trackSalesLink","trackAnalyticsLink","reformatDate","StartDate","EndDate","TrafficSplitPercent","descriptionKey","actionKey","actionStringWithFormat","GeoCodeStatus","showEllipsisForExperiment","forExperiment","showBudgetLandscape","clName","st","prevOnClick","nextOnClick"],"sourceRoot":""}