{"version":3,"file":"static/js/application.async.non-landing~e34843e3.68d014dd.chunk.js","mappings":"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","sources":["../../../node_modules/@bingads-webui-campaign-legacy/adextension-app/viewmodel/get-icon-class.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-app/viewmodel/get-media-url.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-app/template/index.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-associations-container/viewmodel/index.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-associations-container/view/index.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-call/template/index.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-callout/template/index.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-image/view/extensionEditor2-vnext.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-location/template/index.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-price/template/index.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-review/template/index.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-shared/util/feature-control.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-shared/view/delivery/adextension-delivery-status-popup-factory.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-shared/viewmodel/adextension-grid-column.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-sitelink/template/index.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-structuredsnippet/template/index.js","../../../node_modules/@bingads-webui-campaign-legacy/adgroup-settings/viewmodel/index.js","../../../node_modules/@bingads-webui-campaign-legacy/adgroup-settings/view/index.js","../../../node_modules/@bingads-webui-campaign-legacy/adgroup-settings/options/mutables.js","../../../node_modules/@bingads-webui-campaign-legacy/audiences/grid/base-column.js","../../../node_modules/@bingads-webui-campaign-legacy/auto-targets/viewmodel/shared/CampaignAdgroupSelector.js","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/config-preprocessor/header-template-config.js","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/shared/update-tool.js","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/shared/control-factory.js","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/plugin/toolbar.js","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/service/fetch-preference-config.js","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/service/set-preference-by-report-email-rule.js","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/vnext/plugin/date-filter.js","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/vnext/plugin/refresh-cache-plugin.js","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/vnext/shared/columns.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-operation/automated-rules/new-ui-deps.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-operation/automated-rules/rule-mapper.js","../../../node_modules/@bingads-webui-campaign-legacy/bulk-operation/edit-detail/detail-mapper.js","../../../node_modules/@bingads-webui-campaign-legacy/campaign-settings/viewmodel/index.js","../../../node_modules/@bingads-webui-campaign-legacy/campaign-settings/view/index.js","../../../node_modules/@bingads-webui-campaign-legacy/campaign-state/index.js","../../../node_modules/@bingads-webui-campaign-legacy/campaign-targeting/view/campaign-targeting.js","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/controls/account-list-view.js","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/controls/tracking-status-popover.js","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/filter/base-filter-config.js","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/filter/update-delivery-status-option-for-filter.js","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/selection.js","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/util/schema-editor.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/common/util/index.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/unassigned-detail-popover.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/column-config.js","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-plugins/perf-data-explanation/perf-data-explanation-view.js","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-plugins/perf-data-explanation/index.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/grid-config.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/index.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/plugin-config.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard-test/grid/grid-config.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard-test/grid/index.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard-test/grid/column-config.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard-test/grid/plugin-config.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard/grid/grid-config.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard/grid/query-config.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard/grid/export-data.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard/grid/index.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard/grid/column-config.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard/grid/plugin-config.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/create/index.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/column-config.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/grid-config.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/index.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/plugin-config.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/upload-conversions/changes-view.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/upload-conversions/history-grid-columns-config.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/upload-conversions/history-grid-data-config.js","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/upload-conversions/history-grid.js","../../../node_modules/@bingads-webui-campaign-legacy/adextension-app/template/universal-item-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/adextension-associations-container/template/layout-new.pug","../../../node_modules/@bingads-webui-campaign-legacy/adextension-image/template/extensionCreator2.pug","../../../node_modules/@bingads-webui-campaign-legacy/adextension-image/template/extensionEditor2.pug","../../../node_modules/@bingads-webui-campaign-legacy/adextension-price/template/gridRowTemplate.pug","../../../node_modules/@bingads-webui-campaign-legacy/adextension-shared/template/totals-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/adgroup-settings/template/index.pug","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/template/header.pug","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/template/status-column.pug","../../../node_modules/@bingads-webui-campaign-legacy/bingadsgrid/vnext/template/deliveryStatusTemplate.pug","../../../node_modules/@bingads-webui-campaign-legacy/campaign-settings/template/index.pug","../../../node_modules/@bingads-webui-campaign-legacy/campaign-targeting/template/campaign-targeting.pug","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/controls/account-list-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/controls/help-link-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-config/controls/tracking-status-popover-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/common-grid-plugins/perf-data-explanation/template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/category-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/goal-read-only-popover-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/goal-type-popover-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/goal-type-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/name-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/revenue-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/status-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/tag-id-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/tracking-status-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/unassigned-category-popover-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/unassigned-revenue-popover-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/template/upload-conversions/changes-view.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/template/upload-conversions/columns/actions.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/template/upload-conversions/columns/datetime-user.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/template/upload-conversions/columns/summary.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/template/upload-conversions/columns/uploaded-file.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/template/upload-conversions/history-grid.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard-test/grid/parameters-received-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard-test/grid/parameters-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard/grid/data-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard/grid/parameters-received-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard/grid/parameters-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/create/sharing-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/create/template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/action-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/audience-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/column-shared-usedby-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/goals-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/name-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/tag-id-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/tag-read-only-popover-template.pug","../../../node_modules/@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/tracking-status-template.pug"],"sourcesContent":["const defaultIconClasses = {\r\n 'Android': 'google-play-store-icon',\r\n 'iOS': 'apple-app-store-icon',\r\n 'Windows Phone': 'windows-phone-store-icon',\r\n 'Windows': 'windows-store-icon',\r\n};\r\n\r\nexport const getIconClass = (extension) => defaultIconClasses[extension.AppPlatform];\r\n","import config from '@bingads-webui-component-legacy/config/index';\r\nimport $url from '@bingads-webui/url-util';\r\n\r\nexport const getMediaUrl = (extension) => {\r\n let mediaUrl = extension.MediaUrl;\r\n\r\n if (mediaUrl) {\r\n const adExtensionConfig = config.get('Feature').AdExtension;\r\n\r\n if (adExtensionConfig && adExtensionConfig.AppExtensionIconBaseUrl &&\r\n mediaUrl.indexOf(adExtensionConfig.AppExtensionIconBaseUrl) !== 0) {\r\n mediaUrl = $url.join(adExtensionConfig.AppExtensionIconBaseUrl, mediaUrl);\r\n }\r\n }\r\n\r\n return mediaUrl;\r\n};\r\n","import { extend } from 'underscore';\r\nimport { getIconClass } from '../viewmodel/get-icon-class';\r\nimport { getMediaUrl } from '../viewmodel/get-media-url';\r\nimport rawItemTemplate from './universal-item-template.pug';\r\n\r\nexport const universalItemTemplate = (arg0) => rawItemTemplate(extend({ getMediaUrl, getIconClass }, arg0));\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/adextensions');\r\n\r\nconst CampaignTypeShopping = 2;\r\nconst CampaignTypeAudience = 8;\r\n\r\nexport default class ViewModel {\r\n constructor(options) {\r\n this.options = options || {};\r\n\r\n this.scope = ko.observable({\r\n campaignId: this.options.campaignId,\r\n adGroupId: this.options.adgroupId,\r\n });\r\n\r\n this.scopes = ko.observableArray();\r\n\r\n this.entitySelectorService = this.options.entitySelectorService;\r\n this.i18nKeys = this.options.i18nKeys;\r\n this.showCampaigns = !this.options.campaignId && (this.options.entityType === 'campaign');\r\n this.showAdGroups = !this.options.adgroupId && (this.options.entityType === 'adgroup');\r\n this.showSelector = this.showCampaigns || this.showAdGroups;\r\n this.maximumSelectedEntities = options.maximumSelectedEntities;\r\n\r\n this.predicates = {\r\n campaign(predicate) {\r\n return predicate && predicate.CampaignType !== CampaignTypeShopping && predicate.CampaignType !== CampaignTypeAudience;\r\n },\r\n adgroup: [[\r\n {operand: 'Campaign/CampaignType', operator: 'eq', value: 'Enum.CampaignType\\'Default\\''},\r\n {operand: 'Campaign/CampaignType', operator: 'eq', value: 'Enum.CampaignType\\'DynamicSearchAds\\''},\r\n ]],\r\n };\r\n\r\n this.toggleEditor = () => this.showEditor(!this.showEditor());\r\n this.scopeContext = this.options.scopeContext;\r\n\r\n this.isMultiSelect = this.options.isMultiSelect;\r\n this.showSelection = this.options.showSelection;\r\n if (this.isMultiSelect && this.showSelector) {\r\n options.i18nKeys.subtitle = options.i18nKeys.multiSelectSubtitle;\r\n }\r\n\r\n this.selectedItemsLimit = this.options.maxDisplayedEntities;\r\n this.remainingItemsText = ko.computed(\r\n () => i18n.get(this.options.i18nKeys.campaignAdgroupLimitText, {\r\n count: this.scopes().length - this.selectedItemsLimit,\r\n }));\r\n\r\n this.showEditor = ko.observable(!this.showSelector);\r\n this.isEditMode = ko.observable(false);\r\n\r\n this.selectedCampaigns = this.isMultiSelect ? ko.observableArray() : ko.observable();\r\n this.selectedAdgroups = this.isMultiSelect ? ko.observableArray() : ko.observable();\r\n\r\n this.selectedCampaigns.subscribe((newCampaign) => {\r\n if (this.options.entityType === 'campaign') {\r\n if (this.isMultiSelect) {\r\n this.scopes(_.map(newCampaign, (campaign) => ({\r\n campaignId: campaign.Id,\r\n adGroupId: 0,\r\n campaignName: campaign.Name || campaign.name,\r\n adGroupName: '',\r\n })));\r\n this.showEditor(true);\r\n return;\r\n }\r\n let current = this.scope(),\r\n newCampaignId = newCampaign ? newCampaign.Id : null;\r\n\r\n if (newCampaignId !== current.campaignId) {\r\n this.scope({\r\n campaignId: newCampaignId,\r\n adGroupId: current.adGroupId,\r\n campaignName: newCampaign.Name || newCampaign.name,\r\n adGroupName: '',\r\n });\r\n this.showEditor(!!newCampaignId);\r\n }\r\n }\r\n });\r\n\r\n this.selectedAdgroups.subscribe((newAdgroup) => {\r\n if (this.options.entityType === 'adgroup') {\r\n if (this.isMultiSelect) {\r\n this.scopes(_.map(newAdgroup, (adgroup) => ({\r\n campaignId: adgroup.Campaign ? adgroup.Campaign.Id : adgroup.campaignId,\r\n adGroupId: adgroup.Id,\r\n campaignName: adgroup.Campaign ? adgroup.Campaign.Name : adgroup.campaignName,\r\n adGroupName: adgroup.Name || adgroup.name,\r\n })));\r\n this.showEditor(true);\r\n return;\r\n }\r\n let current = this.scope(),\r\n newAdgroupId = newAdgroup ? newAdgroup.Id : null;\r\n\r\n if (newAdgroupId !== current.adGroupId) {\r\n this.scope({\r\n campaignId: newAdgroup.Campaign ? newAdgroup.Campaign.Id : newAdgroup.campaignId,\r\n adGroupId: newAdgroupId,\r\n campaignName: newAdgroup.Campaign ? newAdgroup.Campaign.Name : newAdgroup.campaignName,\r\n adGroupName: newAdgroup.Name || newAdgroup.name,\r\n });\r\n this.showEditor(!!newAdgroupId);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","/* eslint-disable camelcase */\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport 'jquery';\r\nimport scopeService from '@bingads-webui-static-legacy/scope-service';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/adextension-associations-container/viewmodel/index';\r\nimport templateNew from '@bingads-webui-campaign-legacy/adextension-associations-container/template/layout-new.pug';\r\nimport { CampaignAdgroupSelectorProxy, AdgroupSelectorProxy, CampaignSelectorProxy } from '@bingads-webui-campaign-react/campaign-adgroup-selector-control';\r\nimport config from '@bingads-webui-component-legacy/config/index';\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 withUiBlock from '@bingads-webui-component-legacy/uiblocker/index';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport { extensionCampaignTypeCheck } from '@bingads-webui-campaign/ad-extensions-shared';\r\n\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/adextensions');\r\nconst CampaignAdgroupSelectorI18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/campaign-adgroup-selector');\r\n\r\nconst campaignFilter = 'CampaignType eq Enum.CampaignType\\'Default\\'';\r\nconst adgroupNoHotelFilter = '(Campaign/CampaignType ne Enum.CampaignType\\'Hotel\\')';\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options, editorOptions = {}) {\r\n const defaultOptions = {\r\n i18nKeys: {\r\n subtitle: [],\r\n editTitle: '',\r\n multiSelectSubtitle: options.entityType === 'adgroup' ? ['AdExtensions_MultiSelect_Adgroups_Container_Subtitle'] : ['AdExtensions_MultiSelect_Container_Subtitle'],\r\n campaignAdgroupLimitText: 'CampaignAdgroupListRemainingCount',\r\n editLabel: 'Edit',\r\n },\r\n maxDisplayedEntities: 3,\r\n maximumSelectedEntities: 100,\r\n isMultiSelect: config.get('Permissions').IsBulkAdExtensionAssociationAllowed,\r\n showSelection: true,\r\n extensionCampaignTypeCheck,\r\n };\r\n\r\n this.options = _.defaults({}, options, defaultOptions);\r\n this.i18nKeys = _.defaults({}, this.options.i18nKeys, defaultOptions.i18nKeys);\r\n this.i18nKeys.subtitle = _.isArray(this.i18nKeys.subtitle) ? this.i18nKeys.subtitle : [this.i18nKeys.subtitle];\r\n let scopeContext = scopeService.getScope();\r\n\r\n //eslint-disable-next-line camelcase\r\n this.ko_model = new ViewModel({\r\n entityType: this.options.entityType,\r\n campaignId: Number(this.options.campaignId) || 0,\r\n adgroupId: Number(this.options.adgroupId) || 0,\r\n scopeContext,\r\n isMultiSelect: this.options.isMultiSelect,\r\n i18nKeys: this.i18nKeys,\r\n maxDisplayedEntities: this.options.maxDisplayedEntities,\r\n maximumSelectedEntities: this.options.maximumSelectedEntities,\r\n entitySelectorService: this.options.entitySelectorService,\r\n showSelection: this.options.showSelection,\r\n });\r\n\r\n this.editor = new this.options.AssociationEditor(_.extend({}, this.options, editorOptions, {\r\n hasSubTitle: this.options.isMultiSelect && this.ko_model.showSelector,\r\n showErrorsInline: false,\r\n campaignName: this.options.campaignName ? this.options.campaignName : _.result(scopeContext.campaign, 'name'),\r\n adGroupName: this.options.adgroupName ? this.options.adgroupName : _.result(scopeContext.adgroup, 'name'),\r\n showEditor: this.ko_model.showEditor(),\r\n entityType: this.options.entityType,\r\n showSelector: this.ko_model.showSelector,\r\n isNewEntitySelector: this.options.isNewEntitySelector,\r\n }));\r\n\r\n this.ko_model.showEditor.subscribe((show) => {\r\n this.editor.ko_model.showEditor(show);\r\n });\r\n\r\n return this;\r\n }\r\n\r\n render() {\r\n this.$el.html(templateNew({\r\n i18n,\r\n i18nKeys: this.i18nKeys,\r\n isMultiSelect: this.options.isMultiSelect,\r\n }));\r\n\r\n let selectorView = null;\r\n\r\n this.showCampaigns = !this.options.campaignId && (this.options.entityType === 'campaign');\r\n this.showAdGroups = !this.options.adgroupId && (this.options.entityType === 'adgroup');\r\n\r\n if (this.showCampaigns && this.options.proxy) {\r\n this.ko_model.showSelection = false;\r\n selectorView = this.options.proxy.createCampaignView({\r\n i18n: this.options.i18nHotelCenter,\r\n ko_model: this.ko_model,\r\n }).render();\r\n } else if (this.showAdGroups && this.options.proxy) {\r\n this.ko_model.showSelection = false;\r\n selectorView = this.options.proxy.createCampaignAdgroupView({\r\n i18n: this.options.i18nHotelCenter,\r\n ko_model: this.ko_model,\r\n }).render();\r\n } else if (this.showCampaigns) {\r\n let currentCampaignFilter = campaignFilter;\r\n let currentAdgroupnFilter = '';\r\n\r\n if (pageContext.Permissions && pageContext.Permissions.dynamic && pageContext.Permissions.dynamic.PerformanceMaxCampaigns &&\r\n _.contains(this.options.extensionCampaignTypeCheck.pmaxSupportedExtentions, this.options.adExtensionType)) {\r\n currentCampaignFilter += ' or CampaignType eq Enum.CampaignType\\'PerformanceMax\\'';\r\n }\r\n\r\n if (pageContext.Permissions && pageContext.Permissions.dynamic && pageContext.Permissions.dynamic.UnifiedAppAds &&\r\n _.contains(this.options.extensionCampaignTypeCheck.appSupportedExtensions, this.options.adExtensionType)\r\n ) {\r\n currentCampaignFilter += ' or CampaignType eq Enum.CampaignType\\'App\\'';\r\n }\r\n\r\n if (pageContext.Permissions && pageContext.Permissions.dynamic && pageContext.Permissions.dynamic.HotelCampaign) {\r\n if (_.contains(this.options.extensionCampaignTypeCheck.hotelSupportedExtentions, this.options.adExtensionType)) {\r\n currentCampaignFilter += ' or CampaignType eq Enum.CampaignType\\'Hotel\\'';\r\n } else {\r\n currentAdgroupnFilter = adgroupNoHotelFilter;\r\n }\r\n }\r\n\r\n currentCampaignFilter = `(${currentCampaignFilter})`;\r\n\r\n const campaignSelectorProxy = new CampaignSelectorProxy({\r\n onSelectDone: (selectedCampaign) => {\r\n this.ko_model.selectedCampaigns(selectedCampaign);\r\n },\r\n jsData: jsdata,\r\n edmCampaign,\r\n withUiBlocker: (uiBlockContainer) => withUiBlock(uiBlockContainer),\r\n i18n: CampaignAdgroupSelectorI18n,\r\n isMultiMode: this.options.isMultiSelect,\r\n optionalCampaignFilter: currentCampaignFilter,\r\n optionalAdgroupFilter: currentAdgroupnFilter,\r\n });\r\n\r\n selectorView = campaignSelectorProxy.getCampaignSelectorView().render();\r\n } else if (this.showAdGroups && this.options.campaignId) {\r\n const adgroupSelectorProxy = new AdgroupSelectorProxy({\r\n onSelectDone: (selectedAdGroup) => {\r\n this.ko_model.selectedAdgroups(selectedAdGroup);\r\n },\r\n jsData: jsdata,\r\n edmCampaign,\r\n withUiBlocker: (uiBlockContainer) => withUiBlock(uiBlockContainer),\r\n i18n: CampaignAdgroupSelectorI18n,\r\n campaignId: this.options.campaignId,\r\n campaign: this.ko_model.scopeContext.campaign,\r\n isMultiMode: this.options.isMultiSelect,\r\n });\r\n\r\n selectorView = adgroupSelectorProxy.getAdgroupSelectorView().render();\r\n } else if (this.showAdGroups && !this.options.campaignId) {\r\n let currentCampaignFilter = campaignFilter;\r\n let currentAdgroupnFilter = '';\r\n\r\n if (pageContext.Permissions && pageContext.Permissions.dynamic && pageContext.Permissions.dynamic.HotelCampaign) {\r\n if (_.contains(this.options.extensionCampaignTypeCheck.hotelSupportedExtentions, this.options.adExtensionType)) {\r\n currentCampaignFilter += ' or CampaignType eq Enum.CampaignType\\'Hotel\\'';\r\n } else {\r\n currentAdgroupnFilter = adgroupNoHotelFilter;\r\n }\r\n }\r\n\r\n currentCampaignFilter = `(${currentCampaignFilter})`;\r\n\r\n const campaignAdgroupSelectorProxy = new CampaignAdgroupSelectorProxy({\r\n onCampaignSelect: (selectedCampaign) => {\r\n this.ko_model.selectedCampaigns(selectedCampaign);\r\n },\r\n onAdGroupSelect: _.noop,\r\n onMultiSelectedDone: (selectedAdGroup) => {\r\n this.ko_model.selectedAdgroups(selectedAdGroup);\r\n },\r\n jsData: jsdata,\r\n edmCampaign,\r\n withUiBlocker: (uiBlockContainer) => withUiBlock(uiBlockContainer),\r\n i18n: CampaignAdgroupSelectorI18n,\r\n isMultiMode: this.options.isMultiSelect,\r\n optionalCampaignFilter: currentCampaignFilter,\r\n optionalAdgroupFilter: currentAdgroupnFilter,\r\n });\r\n\r\n selectorView = campaignAdgroupSelectorProxy.getCampaignAdgroupSelectorView().render();\r\n }\r\n if (selectorView) {\r\n this.$('.panel-body').append(selectorView.el);\r\n }\r\n\r\n ko.applyBindings(this.ko_model, this.$el[0]);\r\n\r\n this.editor.render();\r\n\r\n this.$el.find('.associations').html(this.editor.$el);\r\n\r\n this.ko_model.scope.subscribe((newScope) => {\r\n this.editor.trigger('scope-changed', newScope);\r\n });\r\n\r\n this.ko_model.scopes.subscribe((newScopes) => {\r\n this.editor.trigger('scopes-changed', newScopes);\r\n });\r\n\r\n this.editor.on('save', (param) => {\r\n this.trigger('save', param);\r\n });\r\n\r\n this.editor.on('cancel', (param) => {\r\n this.trigger('cancel', param);\r\n });\r\n\r\n this.editor.on('modeChange', (param) => {\r\n if (param.isEdit) {\r\n this.ko_model.isEditMode(true);\r\n } else {\r\n this.ko_model.isEditMode(false);\r\n }\r\n });\r\n return this;\r\n }\r\n\r\n remove() {\r\n this.undelegateEvents();\r\n this.$el.empty();\r\n ko.cleanNode(this.$el[0]);\r\n if (this.editor) {\r\n this.editor.remove();\r\n }\r\n return this;\r\n }\r\n}\r\n","import { extend } from 'underscore';\r\nimport rawItemTemplate from './gridRowTemplate.pug';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/adextensions');\r\n\r\nexport const universalItemTemplate = (arg0) => rawItemTemplate(extend({ i18n }, arg0));\r\n","import rawItemTemplate from './gridRowTemplate.pug';\r\n\r\nexport const universalItemTemplate = rawItemTemplate;\r\n","/*eslint-disable no-bitwise*/\r\nimport Promise from 'bluebird';\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport backbone from 'backbone';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport UpgradedUrl from '@bingads-webui-component-legacy/upgraded-url/view/index';\r\nimport ImageAdExtensionsRepository from '@bingads-webui-campaign-legacy/adextension-image/service/imageAdExtensionsRepository2';\r\nimport creatorTemplate from '@bingads-webui-campaign-legacy/adextension-image/template/extensionCreator2.pug';\r\nimport editorTemplate from '@bingads-webui-campaign-legacy/adextension-image/template/extensionEditor2.pug';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport imageAspectRatios from '@bingads-webui-campaign-legacy/adextension-shared/imageAspectRatios';\r\nimport { PerfMarkerFactory } from '@bingads-webui/performance-marker';\r\nimport withUiBlock from '@bingads-webui-component-legacy/uiblocker/index';\r\nimport '@bingads-webui/kendo/kendo.listview';\r\nimport '@bingads-webui/kendo/kendo.data';\r\nimport '@bingads-webui-static-legacy/extension/ko/sectionItemBinding';\r\nimport { ExtensionImagesControl } from '@bingads-webui-campaign-react/extension-images-control';\r\nimport dataModelUtil from '@bingads-webui-campaign-legacy/adextension-image/util/dataModelConvert';\r\nimport SchedulingView from '@bingads-webui-campaign-legacy/adextension-shared/view/scheduling';\r\nimport { EligibleLayout } from '@bingads-webui-campaign-legacy/adextension-image/constants';\r\nimport { getAutoCroppedImages } from '@bingads-webui-campaign-react/image-experience';\r\nimport { getAssetEnhancementSettings } from '@bingads-webui-campaign/image-experience-utils';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport preferencesService from '@bingads-webui-component-legacy/preference/service/index';\r\nimport PageContext from '@bingads-webui-static-legacy/page-context';\r\nimport { ServerContext } from '@bingads-webui-campaign-react/server-context';\r\n\r\nimport image191to1 from '../media/1.91to1.jpg';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/adextensions');\r\nconst i18nGlobal = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!global');\r\nconst ImageAdExtensionSchema = window.globalLegacySchema.get('ImageAdExtension');\r\n\r\nconst odataToken = config.get('odata.token');\r\nconst odataPath = config.get('odata.url') + config.get('odata.path');\r\nconst odataRootUrl = config.get('CampaignAzureDomain');\r\nconst permissions = config.get('Permissions');\r\nconst IsAADUser = PageContext.IsAADUser;\r\nconst {\r\n dynamic: {\r\n OptionalDisplayTextForSingleImageAdExtensions,\r\n ImageFittingForImageAnnotation,\r\n ImageFittingForImageExtension,\r\n ImageFittingExlcudeMAE,\r\n ImageFittingUnifiedImageROI,\r\n } = {},\r\n IsTransparentImageAnnotationEnabled,\r\n} = permissions;\r\n\r\nconst oDataConfig = {\r\n odataRootUrl,\r\n odataPath,\r\n odataToken,\r\n oDataPath: odataPath,\r\n oDataToken: odataToken,\r\n};\r\n\r\nexport class ExtensionEditor extends backbone.View {\r\n initialize(options) {\r\n this.perfMarker = PerfMarkerFactory.createMarker('ImageAdExtensionEditor V2', { autoEnd: true });\r\n\r\n this.perfMarker.willInit();\r\n\r\n this.options = options || {};\r\n this.options.createNew = !this.options.extension;\r\n this.options.isRecommendation = !_.isEmpty(options.recommendation);\r\n\r\n let extension = this.options.extension || {};\r\n\r\n if (!this.options.extension) {\r\n extension = {\r\n AltText: null,\r\n DisplayText: null,\r\n Description: null,\r\n DestinationUrl: null,\r\n ImageUrl: null,\r\n MobileFinalUrls: [],\r\n FinalUrls: [],\r\n UrlCustomParameters: [],\r\n TrackingUrlTemplate: null,\r\n Images: [],\r\n Scheduling: null,\r\n EligibleLayout: EligibleLayout.SingleAndMulti,\r\n };\r\n\r\n if (this.options.isRecommendation) {\r\n extension = _.defaults({}, options.recommendation, { ...extension });\r\n }\r\n\r\n this.options.extension = extension;\r\n }\r\n\r\n this.options.systemGenerated = IsTransparentImageAnnotationEnabled && extension.SourceType === 'SystemGenerated';\r\n this.options.readOnly = options.readOnly || this.options.systemGenerated;\r\n\r\n if (!OptionalDisplayTextForSingleImageAdExtensions && !extension.DisplayText) {\r\n extension.DisplayText = extension.AltText;\r\n }\r\n\r\n if (!extension.EligibleLayout || extension.EligibleLayout === EligibleLayout.Unset) {\r\n extension.EligibleLayout = EligibleLayout.Single;\r\n }\r\n\r\n this.viewModel = this._createViewModel(this.options);\r\n this.extensionsRepo = new ImageAdExtensionsRepository({\r\n schema: ImageAdExtensionSchema,\r\n });\r\n\r\n // setup upgraded url view\r\n const isFinal = !extension.DestinationUrl ||\r\n extension.DestinationUrl.length === 0 ||\r\n !(_.isEmpty(extension.FinalUrls) && _.isEmpty(extension.MobileFinalUrls));\r\n const url = isFinal ? _.first(extension.FinalUrls) : extension.DestinationUrl;\r\n\r\n this.upgradedUrlView = new UpgradedUrl({\r\n url,\r\n isFinal,\r\n finalMobileUrl: _.first(extension.MobileFinalUrls),\r\n trackingTemplate: extension.TrackingUrlTemplate,\r\n finalUrlSuffix: extension.FinalUrlSuffix,\r\n customParameters: extension.UrlCustomParameters,\r\n urlOptionsEnabled: !this.options.isRecommendation,\r\n isMobilePreferred: false,\r\n entityType: 'ImageAdExtension',\r\n placeholderEnabled: false,\r\n useUrlOptionsV2: true,\r\n landingPageUrlRequired: false,\r\n showUurlTestTool: false,\r\n destinationURLDisabled: true,\r\n readOnly: this.options.readOnly,\r\n });\r\n\r\n this.subscribeToUrlChanged = (callback) => {\r\n this.upgradedUrlView.urlEditor.on('urlChanged', callback);\r\n };\r\n\r\n this.setFullUrl = (fullUrl) => {\r\n this.upgradedUrlView.urlEditor.ko_model.fullUrl(fullUrl);\r\n };\r\n\r\n this.setError = (errorStr) => {\r\n this.upgradedUrlView.urlEditor.setError(errorStr);\r\n };\r\n\r\n const formatting = {\r\n // default css for label and controls\r\n labelClass: 'col-sm-4',\r\n controlClass: 'col-sm-8',\r\n };\r\n\r\n this.schedulingView = new SchedulingView(_.extend({}, formatting, { model: extension.Scheduling, readOnly: this.options.readOnly }));\r\n\r\n this.imageList = [];\r\n\r\n this.isImageFittingEnabled = ((ImageFittingForImageAnnotation && this.options.systemGenerated) ||\r\n (ImageFittingForImageExtension && !this.options.systemGenerated)) &&\r\n ImageFittingUnifiedImageROI && !ImageFittingExlcudeMAE;\r\n\r\n this.aid = this.options.isRecommendation ? this.options.recommendation.targetAccountId : state.get('account_id');\r\n this.cid = config.get('CurrentAccount') ? config.get('CurrentAccount').AdvertiserCustomerID : config.get('advertiserCustomerID');\r\n\r\n let promise = Promise.resolve();\r\n\r\n if (this.isImageFittingEnabled) {\r\n promise = getAssetEnhancementSettings({ aid: this.aid, cid: this.cid, oDataConfig })\r\n .then((result) => {\r\n if (result.AssetAIEnhancementOptout === 'true') {\r\n this.isImageFittingEnabled = false;\r\n }\r\n });\r\n }\r\n\r\n this.assetEnhancementSettingsPromise = promise.then(() => {\r\n if (extension.Images !== null && extension.Images.length > 0) {\r\n this.imageListLoadPromise = dataModelUtil.getImageListFromMTImagesAsync(extension.Images, this.isImageFittingEnabled).then((imageList) => {\r\n this.imageList = imageList;\r\n });\r\n } else if (this.options.isRecommendation && options.recommendation.hasImageUrl) {\r\n this.imageList = getAutoCroppedImages({\r\n originalImageToCrop: {\r\n Width: 1000,\r\n Height: 706,\r\n Text: null,\r\n Id: null,\r\n IdString: '',\r\n Src: options.recommendation.ImageSourceStr === 'StockImage' ?\r\n _.first(options.recommendation.StockImages).ThumbnailURL :\r\n _.first(options.recommendation.WebsiteImages).ImageURL,\r\n },\r\n isRecommendedImage: true,\r\n });\r\n this.imageListLoadPromise = Promise.resolve();\r\n } else {\r\n this.imageListLoadPromise = Promise.resolve();\r\n }\r\n });\r\n\r\n this.onImageListChanged = this.onImageListChanged.bind(this);\r\n }\r\n\r\n onImageListChanged(imageList) {\r\n this.imageList = imageList;\r\n }\r\n\r\n render() {\r\n const template = this.options.createNew ? creatorTemplate : editorTemplate;\r\n\r\n this.$el.html(template({\r\n i18n,\r\n i18nGlobal,\r\n imageAspectRatios,\r\n OptionalDisplayTextForSingleImageAdExtensions,\r\n isRecommendation: this.options.isRecommendation,\r\n readOnly: this.options.readOnly,\r\n systemGenerated: this.options.systemGenerated,\r\n newI18n: this.options.newI18n,\r\n }));\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n this.assetEnhancementSettingsPromise.then(() => {\r\n this.imageListLoadPromise.then(() => {\r\n this.renderExtensionImagesControl();\r\n });\r\n });\r\n\r\n if (this.upgradedUrlView) {\r\n this.$('.extension-editor__extra').empty().append(this.upgradedUrlView.render().el);\r\n }\r\n\r\n if (this.schedulingView && !this.options.isRecommendation) {\r\n this.schedulingView.render();\r\n this.$('.scheduling').replaceWith(this.schedulingView.el);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n renderExtensionImagesControl() {\r\n const imagesControlOptions = {\r\n perfMarker: this.perfMarker,\r\n i18n,\r\n odata,\r\n genericImage: image191to1,\r\n imageList: this.imageList,\r\n cid: this.cid,\r\n aid: this.aid,\r\n text: '',\r\n url: '',\r\n onImageListChanged: this.onImageListChanged,\r\n isForVNext: this.options.isForVNext,\r\n isStockPhotoEnabled: true,\r\n isImageFittingEnabled: this.isImageFittingEnabled,\r\n oDataConfig,\r\n permissions,\r\n newI18n: this.options.newI18n,\r\n recommendation: this.options.recommendation,\r\n readOnly: this.options.readOnly,\r\n instrumentation,\r\n preferencesService,\r\n subscribeToUrlChanged: this.subscribeToUrlChanged,\r\n setError: this.setError,\r\n setFullUrl: this.setFullUrl,\r\n setImageControlSetText: (callback) => {\r\n this.imageControlSetText = callback;\r\n },\r\n setImageControlSetEligibleLayout: (callback) => {\r\n this.imageControlSetEligibleLayout = callback;\r\n },\r\n setImageControlsValidate: (callback) => {\r\n this.imageControlsValidate = callback;\r\n },\r\n serverContext: {\r\n IsAADUser,\r\n CurrentCustomer: config.get('CurrentCustomer'),\r\n CurrentAccount: config.get('CurrentAccount'),\r\n Token: odataToken,\r\n },\r\n };\r\n\r\n this.imagesControlNode = React.createElement((props) =>\r\n \r\n \r\n , imagesControlOptions);\r\n\r\n ReactDOM.render(this.imagesControlNode, this.$('.image-extension-image-experience')[0]);\r\n\r\n this.onDisplayTextUpdated(this.viewModel.displayText());\r\n this.onEligibleLayoutUpdated(this.viewModel.eligibleLayout());\r\n }\r\n\r\n remove() {\r\n if (this.upgradedUrlView) {\r\n this.upgradedUrlView.remove();\r\n }\r\n\r\n if (this.schedulingView) {\r\n this.schedulingView.remove();\r\n }\r\n\r\n const imageExperienceView = this.$('.image-extension-image-experience')[0];\r\n\r\n if (imageExperienceView) {\r\n ReactDOM.unmountComponentAtNode(imageExperienceView);\r\n }\r\n\r\n super.remove();\r\n }\r\n\r\n _createViewModel(options) {\r\n const viewModel = {\r\n id: ko.observable(options.extension.Id || null),\r\n errorMessages: ko.observableArray([]),\r\n handleErrors: _.bind(this._handleErrors, this),\r\n existingExtension: options.extension,\r\n createNew: options.createNew,\r\n displayText: ko.observable(options.extension.DisplayText || ''),\r\n displayTextIsValid: ko.observable(true),\r\n altTextInternal: ko.observable(options.extension.AltText || ''),\r\n altTextIsValid: ko.observable(true),\r\n shouldAltTextMatchDisplayText: ko.observable((options.extension.AltText || '').length === 0),\r\n description: ko.observable(options.extension.Description || ''),\r\n destinationUrl: ko.observable(options.extension.DestinationUrl || ''),\r\n error: ko.observable(false),\r\n save: _.bind(options.createNew ? this._add : this._update, this),\r\n apply: () => {\r\n this.options.recommendation.applyRecommendation({\r\n newImageExtensionInfo: {\r\n AlternativeText: viewModel.altText(),\r\n DisplayText: viewModel.displayText(),\r\n FinalURL: this.upgradedUrlView.getValues().finalUrl.url,\r\n MobileURL: this.upgradedUrlView.getValues().mobileUrl,\r\n },\r\n imageList: !_.isEmpty(this.imageList) && this.imageList,\r\n isValid: viewModel.validate(),\r\n });\r\n },\r\n cancel: _.bind(this._cancel, this),\r\n validate: _.bind(this._modelIsValid, this),\r\n isSingleEligible: ko.observable(options.extension.EligibleLayout === EligibleLayout.Single ||\r\n options.extension.EligibleLayout === EligibleLayout.SingleAndMulti),\r\n isMultiEligible: ko.observable(options.extension.EligibleLayout === EligibleLayout.Multi ||\r\n options.extension.EligibleLayout === EligibleLayout.SingleAndMulti),\r\n };\r\n\r\n viewModel.eligibleLayout = ko.computed({\r\n read: () => {\r\n if (viewModel.isSingleEligible() && viewModel.isMultiEligible()) {\r\n return EligibleLayout.SingleAndMulti;\r\n } else if (viewModel.isSingleEligible() && !viewModel.isMultiEligible()) {\r\n return EligibleLayout.Single;\r\n } else if (!viewModel.isSingleEligible() && viewModel.isMultiEligible()) {\r\n return EligibleLayout.Multi;\r\n } else {\r\n return EligibleLayout.Unset;\r\n }\r\n },\r\n });\r\n\r\n viewModel.isEligibilityValid = ko.computed(() => {\r\n return viewModel.eligibleLayout() !== EligibleLayout.Unset;\r\n });\r\n\r\n viewModel.altText = ko.computed({\r\n read: () => {\r\n if (viewModel.shouldAltTextMatchDisplayText()) {\r\n return viewModel.displayText();\r\n }\r\n\r\n return viewModel.altTextInternal();\r\n },\r\n write: (newValue) => {\r\n viewModel.shouldAltTextMatchDisplayText(false);\r\n\r\n viewModel.altTextInternal(newValue);\r\n },\r\n });\r\n\r\n viewModel.displayText.subscribe((newValue) => {\r\n this.onDisplayTextUpdated(newValue);\r\n });\r\n\r\n viewModel.eligibleLayout.subscribe((newValue) => {\r\n this.onEligibleLayoutUpdated(newValue);\r\n });\r\n\r\n return viewModel;\r\n }\r\n\r\n onDisplayTextUpdated(text) {\r\n if (this.imageControlSetText) {\r\n this.imageControlSetText(text);\r\n }\r\n }\r\n\r\n onEligibleLayoutUpdated(eligibleLayout) {\r\n if (this.imageControlSetEligibleLayout) {\r\n this.imageControlSetEligibleLayout(eligibleLayout);\r\n }\r\n }\r\n\r\n _getDataForSave() {\r\n this.viewModel.errorMessages([]);\r\n this.upgradedUrlView.clearAllErrors();\r\n\r\n if (!this._modelIsValid()) {\r\n return null;\r\n }\r\n\r\n let extension = {\r\n Id: this.viewModel.id(),\r\n AltText: this.viewModel.altText(),\r\n DisplayText: this.viewModel.displayText(),\r\n Description: this.viewModel.description(),\r\n DestinationUrl: this.viewModel.destinationUrl(),\r\n EligibleLayout: this.viewModel.eligibleLayout(),\r\n };\r\n\r\n // For creation scenario, no Id should be passed in\r\n if (!extension.Id) {\r\n delete extension.Id;\r\n }\r\n\r\n extension.Images = dataModelUtil.getImagesFromImageList(this.imageList, this.isImageFittingEnabled);\r\n\r\n // WorkAround\r\n extension.ImageIds = [extension.Images.map((assetLink) => assetLink.Asset.Id)[0]];\r\n\r\n if (this.upgradedUrlView) {\r\n _.extend(extension, this.upgradedUrlView.toObject());\r\n if (extension.FinalUrls && extension.FinalUrls.length > 0) {\r\n delete extension.DestinationUrl;\r\n }\r\n }\r\n\r\n if (this.schedulingView) {\r\n extension.Scheduling = this.schedulingView.toObject();\r\n }\r\n\r\n // remove the empty values\r\n extension = _.omit(extension, (value) => {\r\n if (!value) {\r\n return true;\r\n } else if (_.isArray(value) || _.isString(value)) {\r\n if (value.length < 1) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n });\r\n\r\n return extension;\r\n }\r\n\r\n _update() {\r\n const extensionData = this._getDataForSave();\r\n\r\n if (!extensionData) {\r\n return;\r\n }\r\n\r\n this.extensionsRepo.update(extensionData)\r\n .then((savedExtension) => {\r\n return this.extensionsRepo.find(savedExtension.Id).then((fetchedExtension) => {\r\n this.trigger('updated', fetchedExtension);\r\n });\r\n }, (error) => {\r\n this.viewModel.handleErrors(error);\r\n })\r\n .finally(withUiBlock());\r\n }\r\n\r\n _add() {\r\n const extensionData = this._getDataForSave();\r\n\r\n if (!extensionData) {\r\n return;\r\n }\r\n\r\n this.extensionsRepo.create(extensionData).then((newExtension) => {\r\n return this.extensionsRepo.find(newExtension.Id).then((createdExtension) => {\r\n newExtension.Images = _.clone(createdExtension.Images);\r\n this.trigger('created', newExtension);\r\n });\r\n }, (error) => {\r\n this.viewModel.handleErrors(error);\r\n }).finally(withUiBlock());\r\n }\r\n\r\n _modelIsValid() {\r\n const displayTextToValidate = this.viewModel.displayText().trim();\r\n const eligibleLayout = this.viewModel.eligibleLayout();\r\n let displayTextIsValid;\r\n\r\n if (OptionalDisplayTextForSingleImageAdExtensions) {\r\n displayTextIsValid = eligibleLayout === EligibleLayout.Single ||\r\n ((eligibleLayout === EligibleLayout.Multi || eligibleLayout === EligibleLayout.SingleAndMulti) && displayTextToValidate.length > 0);\r\n } else {\r\n displayTextIsValid = displayTextToValidate.length > 0;\r\n }\r\n\r\n this.viewModel.displayTextIsValid(displayTextIsValid);\r\n\r\n const altTextToValidate = this.viewModel.altText().trim();\r\n\r\n const altTextIsValid = !_.isNull(altTextToValidate) && altTextToValidate.length > 0;\r\n\r\n this.viewModel.altTextIsValid(altTextIsValid);\r\n\r\n const schedulingValid = _.every([this.schedulingView.validate()]);\r\n\r\n const finalUrlTestRegEx = new RegExp(/^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:%/?#[\\]{}@!\\$&'\\(\\)\\*\\+,;=.]+$/gm); //eslint-disable-line\r\n const mobileUrlTestRegEx = new RegExp(/^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:%/?#[\\]{}@!\\$&'\\(\\)\\*\\+,;=.]+$/gm); //eslint-disable-line\r\n\r\n const urlErrors = {\r\n FinalUrls: [],\r\n MobileFinalUrls: [],\r\n };\r\n\r\n // Custom URL validations\r\n const finalUrl = this.upgradedUrlView.getValues().finalUrl;\r\n const finalUrlUrl = finalUrl ? finalUrl.url : '';\r\n\r\n if (finalUrlUrl && finalUrlUrl.length > 0 && !finalUrlTestRegEx.test(finalUrlUrl)) {\r\n urlErrors.FinalUrls.push(i18n.getString('AdExtensions_Image_Editor_InvalidDestinationUrl'));\r\n }\r\n\r\n const mobileUrl = this.upgradedUrlView.getValues().mobileUrl;\r\n\r\n if (mobileUrl && mobileUrl.length > 0 && !mobileUrlTestRegEx.test(mobileUrl)) {\r\n urlErrors.MobileFinalUrls.push(i18n.getString('AdExtensions_Image_Editor_InvalidDestinationUrl'));\r\n }\r\n\r\n this.upgradedUrlView.handleApiErrors(urlErrors);\r\n\r\n const urlViewIsValid = urlErrors.FinalUrls.length === 0 &&\r\n urlErrors.MobileFinalUrls.length === 0 &&\r\n this.upgradedUrlView.isValid();\r\n\r\n // Image experience validation\r\n const imagesValid = this.imageControlsValidate && this.imageControlsValidate();\r\n\r\n return this.viewModel.isEligibilityValid() &&\r\n displayTextIsValid &&\r\n altTextIsValid &&\r\n schedulingValid &&\r\n urlViewIsValid &&\r\n imagesValid;\r\n }\r\n\r\n _cancel() {\r\n this.trigger('cancel');\r\n }\r\n\r\n _handleErrors(errors) {\r\n if (errors && errors.length > 0) {\r\n const errorMsgList = _.map(errors, (error) => {\r\n return error.toString();\r\n });\r\n\r\n this.viewModel.errorMessages(errorMsgList);\r\n } else {\r\n this.viewModel.errorMessages([i18nGlobal.getString('GenericErrorMessage')]);\r\n }\r\n }\r\n}\r\n","import rawItemTemplate from './gridRowTemplate.pug';\r\n\r\nexport const universalItemTemplate = rawItemTemplate;\r\n","import { extend, size } from 'underscore';\r\nimport rawItemTemplate from './gridRowTemplate.pug';\r\nimport { convertCurrencyCode } from '@bingads-webui-campaign-legacy/adextension-price/utility';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/adextensions');\r\n\r\nconst maxItems = 3;\r\n\r\nexport const universalItemTemplate = (arg0) => {\r\n const moreCount = size(arg0.data.TableRows) - maxItems;\r\n\r\n return rawItemTemplate(extend({}, arg0, {\r\n data: {\r\n TableRows: arg0.data.TableRows.slice(0, maxItems),\r\n moreString: moreCount > 0 ? i18n.get('And_Count_More', { count: moreCount }) : undefined,\r\n },\r\n convertCurrencyCode,\r\n }));\r\n};\r\n","import rawItemTemplate from './gridRowTemplate.pug';\r\n\r\nexport const universalItemTemplate = rawItemTemplate;\r\n","export const getUseTotalsPlugin = (permissions) => {\r\n const { dynamic: { AdExtensionsAudienceAdsTotals, PerformanceMaxCampaignsPhaseTwoCrossNetwork } } = permissions || { dynamic: {} };\r\n\r\n return AdExtensionsAudienceAdsTotals || PerformanceMaxCampaignsPhaseTwoCrossNetwork;\r\n};\r\n","import $ from 'jquery';\r\nimport { DeliveryStatusPopupFactory } from '@bingads-webui-campaign-legacy/common-grid-config/column/delivery-status/index';\r\nimport { queryify } from '@bingads-webui/url-util';\r\nimport _ from 'underscore';\r\n\r\nfunction _url(template, type) {\r\n const args = _.extend({\r\n aid: window.App.state.get('account_id'),\r\n cid: window.App.state.get('customer_id'),\r\n cmpid: window.App.state.get('campaign_id'),\r\n adgid: window.App.state.get('adgroup_id'),\r\n type: type.replace('AdExtension', ''),\r\n });\r\n\r\n return queryify(template, args);\r\n}\r\n\r\nlet showAdExtensionRejectionReasons = (type, overrideAssociationType, BidataNotRequired, event, adextension) => {\r\n const {\r\n Id,\r\n extensionId,\r\n version,\r\n campaignId,\r\n adGroupId,\r\n } = adextension || {};\r\n\r\n\r\n let url = _url('/campaign/AdExtensions.m/GetRejectionReason', type);\r\n const cid = window.App.state.get('campaign_id') || campaignId;\r\n const aid = window.App.state.get('adgroup_id') || adGroupId;\r\n\r\n url = $.advertiser.setUrlParameter('adExtensionId', extensionId, url);\r\n url = $.advertiser.setUrlParameter('campaignId', cid, url);\r\n url = $.advertiser.setUrlParameter('adGroupId', aid, url);\r\n url = $.advertiser.setUrlParameter('version', version, url);\r\n url = $.advertiser.setUrlParameter('overrideAssociationType', overrideAssociationType, url);\r\n url = $.advertiser.setUrlParameter('BidataNotRequired', BidataNotRequired, url);\r\n\r\n $.advertiser.ajaxPost({\r\n url,\r\n data: {},\r\n ignoreBeforeAjax: true,\r\n dataType: 'html',\r\n onSuccess: $.gridPopup.Callback,\r\n onsuccessEventData: { event, rowId: Id },\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 AdExtensionDeliveryStatusPopupFactory extends DeliveryStatusPopupFactory {\r\n constructor({\r\n grid,\r\n type,\r\n overrideEntities = {},\r\n overrideAssociationType = null,\r\n BidataNotRequired = false,\r\n }) {\r\n const showAdExtensionRejectionReasonsHandler = _.partial(showAdExtensionRejectionReasons, type, overrideAssociationType, BidataNotRequired);\r\n\r\n super({\r\n grid,\r\n handler: showAdExtensionRejectionReasonsHandler,\r\n });\r\n this.entityMap = _.extend({ AdGroup: 'AdGroup', Campaign: 'Campaign' }, overrideEntities);\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 return {\r\n extensionId: model.AdExtension.Id,\r\n version: model.AdExtension.Version,\r\n campaignId: model[this.entityMap.Campaign].Id,\r\n adGroupId: model[this.entityMap.AdGroup].Id,\r\n Id: model.Id,\r\n };\r\n }\r\n}\r\n\r\nexport { AdExtensionDeliveryStatusPopupFactory };\r\n","import { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport totalsTemplate from '../template/totals-template.pug';\r\n\r\nconst totalsTextProperty = (userProperty) => (item) => {\r\n if (item.$total) {\r\n return item;\r\n }\r\n return userProperty(item);\r\n};\r\n\r\nconst totalsTextTemplate = (userTemplate) => (local) => {\r\n if (local.value.$total) {\r\n return totalsTemplate(local);\r\n }\r\n return userTemplate(local);\r\n};\r\n\r\nexport const adextensionGridColumn = (options) => bingadsGridColumn({\r\n name: 'AdExtension',\r\n type: 'string',\r\n sortable: false,\r\n title: 'ErrorGrid_AdExtension_Column',\r\n helpId: 'Page_CampaignGrids_AdExtensions',\r\n bodyClasses: ['col-AdExtension'],\r\n\r\n ...options,\r\n\r\n property: totalsTextProperty(options.property),\r\n template: totalsTextTemplate(options.template),\r\n});\r\n","import { extend } from 'underscore';\r\nimport rawItemTemplate from './gridRowTemplate.pug';\r\n\r\nexport const universalItemTemplate = (arg0) =>\r\n rawItemTemplate(extend({}, arg0, {\r\n data: {\r\n SiteLinks: arg0,\r\n },\r\n }));\r\n","import rawItemTemplate from './gridRowTemplate.pug';\r\n\r\nexport const universalItemTemplate = rawItemTemplate;\r\n","/*eslint new-cap:0 */\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport koSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\nimport { AdGroup } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport campaignType from '@bingads-webui-campaign-legacy/adgroup-create-advanced/util/campaignType';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!component/language-selector');\r\nconst adGroupI18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nexport default class ViewModel {\r\n constructor({ isNewUI, isDSAMixedModeCampaignEnabled, supportCashbackSettings = false }) {\r\n koSchema.properties(this, AdGroup, ['Id', 'Name', 'Language', 'AdGroupType']);\r\n this.supportCashbackSettings = ko.observable(isNewUI && supportCashbackSettings);\r\n this.dataLoaded = ko.observable(false);\r\n\r\n this.hideLanguage = ko.computed(() => {\r\n return _.contains(['shopping'], campaignType()) || (isDSAMixedModeCampaignEnabled && campaignType() === 'search' && this.AdGroupType() === 'SearchDynamic');\r\n });\r\n\r\n this.isNewUI = ko.observable(isNewUI);\r\n\r\n this.isDSAMixedModeCampaignEnabled = isDSAMixedModeCampaignEnabled;\r\n\r\n this.shouldShowAdGroupType = ko.computed(() => {\r\n return this.isDSAMixedModeCampaignEnabled && _.contains(['search'], campaignType());\r\n });\r\n\r\n this.languageString = ko.computed(() => {\r\n const keyToUse = this.Language() ? `Language_${this.Language()}` : 'Language_Inherit';\r\n\r\n return i18n.getString(keyToUse);\r\n });\r\n\r\n this.adGroupTypeString = ko.computed(() => {\r\n return this.AdGroupType() === 'Unknown' ? '-' : adGroupI18n.getString(`AdGroupType_${this.AdGroupType()}`);\r\n });\r\n\r\n this.enableLanguageSelection = ko.computed(() => {\r\n return !this.hideLanguage() && campaignType() === 'search';\r\n });\r\n\r\n this.showHighLatencyAlert = ko.observable(false);\r\n }\r\n}\r\n","/*eslint new-cap:0 */\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport Promise from 'bluebird';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport template from '@bingads-webui-campaign-legacy/adgroup-settings/template/index.pug';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/adgroup-settings/viewmodel/index';\r\nimport BidView from '@bingads-webui-campaign-legacy/adgroup-create-advanced/view/steps/bid';\r\nimport LanguageLocationConnector from '@bingads-webui-campaign-legacy/adgroup-create-advanced/connectors/languageLocation';\r\nimport campaignType from '@bingads-webui-campaign-legacy/adgroup-create-advanced/util/campaignType';\r\nimport jsData from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport uiBlocker from '@bingads-webui-component-legacy/uiblocker/index';\r\nimport * as i18nErrors from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport edmCampaign from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport LocationTargetsView from '@bingads-webui-campaign-legacy/location-targets/view/locationTargets';\r\nimport LanguageSettingView from '@bingads-webui-component-legacy/language-selector/view/index';\r\nimport AdvancedSettingsView from '@bingads-webui-campaign-legacy/advanced-settings/view/advancedSettings';\r\nimport summaryDataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\nimport MutableModel from '@bingads-webui-component-legacy/mutable-model/index';\r\nimport eventDispatcher from '@bingads-webui-component-legacy/event-dispatcher/index';\r\nimport { mutables } from '@bingads-webui-campaign-legacy/adgroup-settings/options/mutables';\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 { syndEnum } from '@bingads-webui-campaign-react/constants';\r\nimport logger from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport { loadMap } from '@bingads-webui-campaign-legacy/dashboard-page/service/load-map';\r\nimport AdGroupBidType from '@bingads-webui-campaign-legacy/shopping-campaign/view/cpg-adgroup/bid-type';\r\nimport CpgBidSection from '@bingads-webui-campaign-legacy/shopping-campaign/view/cpg-adgroup/bid-section';\r\nimport showCpgAdGroupType from '@bingads-webui-campaign-legacy/adgroup-create-advanced/util/showCpgAdGroupType';\r\nimport { CashbackSettings } from '@bingads-webui-campaign/cashback-settings';\r\nimport { shouldSupportCashbackSettings, logAdGroupPersonalizedOffers } from '@bingads-webui-campaign/personalized-offer-shared';\r\nimport physicalIntentOptions from '@bingads-webui-campaign-legacy/location-targets/viewmodel/physicalIntentOptions';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport {\r\n AudienceAdvancedTargetSettings,\r\n AudienceTargetInfo,\r\n} from '@bingads-webui-campaign-legacy/audience-campaign/loader';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport { showIMAReachModal, getLocationsInfo, getLocationsInfoFromCampaignCriterions } from '@bingads-webui-campaign-react/ima-reach-representation';\r\nimport { isMSStoreAdsCampaign } from '@bingads-webui-campaign-react/ms-store-ads-common';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nconst backRouteName = 'adgroup_ad';\r\nconst isArabicEnabled = pageContext.Permissions.IsArabicLanguageEnabledInMultipleLanguage;\r\nconst isSimplifiedChineseEnabled = pageContext.Permissions.IsSimplifiedChineseLanguageEnabledInMultipleLanguage;\r\nconst isSponsoredPilotEnabled = pageContext.Permissions.IsSPAv2Enabled;\r\nconst isManualBiddingDeprecationEnabled = pageContext.Permissions.IsManualBiddingDeprecationEnabled;\r\nconst isDSAMixedModeCampaignEnabled = pageContext.Permissions.IsDSAMixedModeCampaignEnabled;\r\nconst SponsoredCampaignSubType = 11;\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n if (options.perfMarker) {\r\n this.adGroupScopePerfMarker = options.perfMarker.createChild('AdGroupScope_AllSettings_EditAdGroup');\r\n }\r\n\r\n this.mark('willInit');\r\n const router = _.chain(options.deps).result('router', {}).value();\r\n\r\n const campaign = pageContext.CurrentCampaign;\r\n\r\n this.isMSStoreAdsGAWorkflow = isMSStoreAdsCampaign(campaign);\r\n\r\n this.navigateToRoute = router.navigateToRoute || _.noop;\r\n this.deps = options.deps || {};\r\n this.isNewUI = _.result(this.deps, 'isNewUI', false);\r\n\r\n const scenario = instrumentation[`${campaignType()}AdGroupSettings`].create();\r\n\r\n this.activity = scenario.adGroupSettings.create();\r\n\r\n this.viewModel = new ViewModel({ isNewUI: this.isNewUI, isDSAMixedModeCampaignEnabled, supportCashbackSettings: false });\r\n const dynamicPermissions = _.result(pageContext.Permissions, 'dynamic', {});\r\n\r\n this.showDisclaimerBanner = _.result(dynamicPermissions, 'AgeGenderDisclaimer', false);\r\n this.isMranEcpcEnabled = _.result(dynamicPermissions, 'MranEcpc', false);\r\n this.isMranTroasEnabled = _.result(dynamicPermissions, 'MranTroas', false);\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .btn-save': 'checkIMAReachAndSave',\r\n 'click .btn-cancel': 'cancel',\r\n };\r\n }\r\n\r\n get className() {\r\n return 'adgroup-settings-page-root';\r\n }\r\n\r\n renderLocationTargets() {\r\n this.locationTargetsView = new LocationTargetsView({\r\n scenario: 'adgroup-settings',\r\n level: 'adgroup',\r\n campaignId: pageContext.CurrentCampaign.Id,\r\n adgroupId: pageContext.CurrentAdGroup.Id,\r\n popupIds: { Location: this.isMSStoreAdsGAWorkflow ? 'pop_BA_StoreAds_Location' : 'pop_BA_AdGroup_Settings_LocationTargeting' },\r\n showInitialUiBlocker: false,\r\n deps: this.deps,\r\n supportCashbackSettings: this.supportCashbackSettings,\r\n isForVNext: this.isNewUI,\r\n showPhysicalIntentView: !this.isMSStoreAdsGAWorkflow,\r\n physicalIntent: this.isMSStoreAdsGAWorkflow ? physicalIntentOptions.PeopleIn : undefined,\r\n });\r\n\r\n /*In adgroup settings scenario, location targeting will load both campaign and adgroup criterions, so initialize languageLocationConnector after refresh ends.\r\n contentBid logic may diff between Web UI and API. So if current adgroup has contentBid and its medium is Mixed though it may fail Web UI checking logic, we\r\n enable contentNetwork checkbox and contentBid input box. But if user changes Language or location targeting, then follow Web UI checking logic.\r\n */\r\n this.locationTargetsView.on('end:refresh', () => {\r\n //if meeting above condition, or if the adgroup's medium is SearchAndContent, then initialize languageLocationConnector\r\n /*\r\n No need check KP and traffic estimation since they are not supported in adgroup settings page now.\r\n */\r\n this.languageLocationConnector = new LanguageLocationConnector(\r\n this.viewModel.Language,\r\n this.bidView,\r\n this.advancedSettingsView.adDistributionView,\r\n false,\r\n this.locationTargetsView.viewmodel.useCampaignSettings());\r\n\r\n if (this.viewModel.enableLanguageSelection()) {\r\n this.languageLocationConnector.setLanguageSet(this.languages);\r\n }\r\n\r\n if (this.adDistribution === syndEnum.BingYahooAndSearchPartners) {\r\n //if synd is default value, then check synd status according to UI logic, if it is not default value, then synd is enabled by default.\r\n this.languageLocationConnector.isSyndicationAllowed();\r\n }\r\n });\r\n }\r\n\r\n renderAdvancedSettings(campaign, adgroup) {\r\n this.advancedSettingsView = new AdvancedSettingsView({\r\n scenario: 'adgroup-settings',\r\n level: 'adgroup',\r\n campaignId: pageContext.CurrentCampaign.Id,\r\n adgroupId: pageContext.CurrentAdGroup.Id,\r\n nativeAdsCampaignBid: campaign.NativeBidAdjustment,\r\n nativeAdsAdgroupBid: adgroup.NativeBidAdjustment,\r\n multimediaAdsCampaignBid: campaign.MultiMediaAdBidAdjustment,\r\n multimediaAdsAdgroupBid: adgroup.MultiMediaAdBidAdjustment,\r\n model: adgroup,\r\n languages: campaign.Languages,\r\n TimeZone: campaign.TimeZone,\r\n campaignType: campaignType(),\r\n campaignSubType: this.isSponsoredCampaign() ? 'ShoppingSponsoredProductAd' : null,\r\n campaignBiddingStrategy: campaign.BiddingScheme.Type,\r\n campaignAdScheduleUseSearcherTimeZone: campaign.AdScheduleUseSearcherTimeZone,\r\n isNewUI: this.isNewUI,\r\n supportCashbackSettings: this.supportCashbackSettings,\r\n isSPBCampaign: campaign.CampaignCashback && campaign.CampaignCashback.IsPromotionsForBrands,\r\n isMSStoreAdsGAWorkflow: this.isMSStoreAdsGAWorkflow,\r\n popupIds: this.isMSStoreAdsGAWorkflow ? {\r\n AdDistribution: 'pop_BA_StoreAds_AdDistribution',\r\n } : undefined,\r\n });\r\n\r\n this.$('.advanced-settings-section').html(this.advancedSettingsView.render().el);\r\n }\r\n\r\n isSponsoredCampaign() {\r\n return isSponsoredPilotEnabled &&\r\n pageContext.CurrentCampaign &&\r\n pageContext.CurrentCampaign.CampaignSubType === SponsoredCampaignSubType;\r\n }\r\n\r\n renderBiddingStrategy(adgroup) {\r\n if (!showCpgAdGroupType() || _.first(adgroup.Settings).BidOption !== 'BidBoost') {\r\n if (isManualBiddingDeprecationEnabled) {\r\n this.biddingStrategyView = new BiddingStrategyView({\r\n entityType: 'AdGroup',\r\n biddingStrategyType: adgroup.BiddingScheme.Type,\r\n campaignType: campaignType(),\r\n campaignSubType: pageContext.CurrentCampaign.CampaignSubType,\r\n campaignBiddingStrategyType: _.chain(pageContext.CurrentCampaign).result('BiddingScheme').result('Type').value(),\r\n isMSStoreAdsGAWorkflow: this.isMSStoreAdsGAWorkflow,\r\n });\r\n } else {\r\n this.biddingStrategyView = new BiddingStrategyView({\r\n entityType: 'AdGroup',\r\n biddingStrategyType: adgroup.BiddingScheme.Type,\r\n campaignBiddingStrategyType: _.chain(pageContext.CurrentCampaign).result('BiddingScheme').result('Type').value(),\r\n isMSStoreAdsGAWorkflow: this.isMSStoreAdsGAWorkflow,\r\n });\r\n }\r\n\r\n if (!this.isSponsoredCampaign()) {\r\n this.$('.bidding-strategy__container').empty().html(this.biddingStrategyView.render().el);\r\n }\r\n }\r\n }\r\n\r\n notShowBidView(campaign) {\r\n // remove bid view for campaign of CPS bidding strategy\r\n return _.chain(campaign).result('BiddingScheme').result('Type').value() === biddingStrategyTypes.costPerSale;\r\n }\r\n\r\n renderBidView(campaign, adgroup, newI18n) {\r\n if (this.notShowBidView(campaign)) {\r\n this.$('.bid-block').hide();\r\n return;\r\n }\r\n this.bidView = new BidView({\r\n showTrafficEstimation: false,\r\n adgroup,\r\n languages: campaign.Languages,\r\n campaign,\r\n newI18n,\r\n });\r\n\r\n // for automated bidding, make bid read-only\r\n if (this.biddingStrategyView) {\r\n this.bidView.resetIsAutoBidding(this.biddingStrategyView.getValues().Type);\r\n } else if (adgroup.BiddingScheme) { // DSA ad group doesn't have autobidding UI.\r\n this.bidView.resetIsAutoBidding(adgroup.BiddingScheme.Type);\r\n }\r\n this.$('.bid-section').append(this.bidView.render().el);\r\n }\r\n\r\n renderLanguageSelector(campaign, adgroup) {\r\n const options = {\r\n enableArabic: isArabicEnabled,\r\n enableSimplifiedChinese: isSimplifiedChineseEnabled,\r\n withInheritOption: !_.isEmpty(this.languages),\r\n i18nStrings: { SaveWarning: '' },\r\n el: this.$('.adgroup-language')[0],\r\n language: adgroup.Language,\r\n IsAdsGlobalizationPhase1Enabled: pageContext.Permissions.IsAdsGlobalizationPhase1Enabled,\r\n IsAdsGlobalizationPhase2Enabled: pageContext.Permissions.IsAdsGlobalizationPhase2Enabled,\r\n IsAdsGlobalizationPhase6Enabled: pageContext.Permissions.IsAdsGlobalizationPhase6Enabled,\r\n IsAdsGlobalizationPhase2JapanEnabled: pageContext.Permissions.IsAdsGlobalizationPhase2JapanEnabled,\r\n IsDomesticSimplifiedChineseEnabled: pageContext.Permissions.IsDomesticSimplifiedChineseEnabled,\r\n IsAdsGlobalizationPhase9Enabled: pageContext.Permissions.IsAdsGlobalizationPhase9Enabled,\r\n IsAdsGlobalizationPhase9VIEnabled: pageContext.Permissions.IsAdsGlobalizationPhase9VIEnabled,\r\n };\r\n\r\n this.languageSelector = new LanguageSettingView(options);\r\n eventDispatcher.on('language:changed', (newLanguage) => {\r\n this.viewModel.Language(newLanguage);\r\n });\r\n\r\n // clean bindings for language selector before rendering\r\n ko.cleanNode(this.$('.adgroup-language')[0]);\r\n this.languageSelector.render();\r\n }\r\n\r\n renderCpgAdGroupType(adgroup) {\r\n this.cpgAdGroupType = new AdGroupBidType(_.first(adgroup.Settings));\r\n if (!this.isSponsoredCampaign()) {\r\n // do not show this container in SPAv2\r\n this.$('.cpg-adgroup-type__container').append(this.cpgAdGroupType.render().el);\r\n }\r\n\r\n this.cpgBidSection = new CpgBidSection(adgroup);\r\n this.$('.cpg-bid-section__container').append(this.cpgBidSection.render().el);\r\n }\r\n\r\n renderAdGroupTargets(campaign, adgroup) {\r\n const adGroupTargetInfo = new AudienceTargetInfo({\r\n resourceName: 'AdGroupCriterion',\r\n listenToLocationCriterion: false,\r\n useLocationControl: false,\r\n initAudienceAssociationView: false,\r\n });\r\n const campaignTargetInfo = new AudienceTargetInfo({\r\n resourceName: 'CampaignCriterion',\r\n listenToLocationCriterion: false,\r\n useLocationControl: false,\r\n initAudienceAssociationView: false,\r\n });\r\n\r\n return Promise.all([\r\n adGroupTargetInfo.fetchCriterions(campaign.Id, adgroup.Id),\r\n campaignTargetInfo.fetchCriterions(campaign.Id),\r\n ]).then(() => {\r\n this.adGroupTargetsView = new AudienceAdvancedTargetSettings({\r\n viewContext: {\r\n accountCurrencyCode: pageContext.AccountCurrencyCode,\r\n currentCampaign: campaign,\r\n currentAdGroup: adgroup,\r\n level: 'adgroup',\r\n },\r\n scenario: 'adgroup-settings',\r\n currentLevelTargetInfo: adGroupTargetInfo,\r\n parentLevelTargetInfo: campaignTargetInfo,\r\n supportCashbackSettings: this.supportCashbackSettings,\r\n isMSStoreAdsGAWorkflow: this.isMSStoreAdsGAWorkflow,\r\n });\r\n this.$('.adgroup-targets').append(this.adGroupTargetsView.render().el);\r\n\r\n if (this.locationTargetsView) {\r\n this.adGroupTargetsView.$('.location-setting-controller').append(this.locationTargetsView.render().el);\r\n\r\n return this.locationTargetsView.initialLoadTask;\r\n }\r\n\r\n return null;\r\n });\r\n }\r\n\r\n initCashbackSettingsView(adgroup, campaign) {\r\n if (this.supportCashbackSettings) {\r\n const CashbackPercent = _.chain(adgroup)\r\n .result('AdGroupCashback')\r\n .result('Percent', null)\r\n .value();\r\n const CouponsEnabled = _.chain(adgroup)\r\n .result('AdGroupCashback')\r\n .result('CouponsEnabled', 'None')\r\n .value();\r\n const CashbackScope = _.chain(adgroup)\r\n .result('AdGroupCashback')\r\n .result('Scope')\r\n .value() || 'None';\r\n const ParentLevelCashbackPercent = _.chain(campaign)\r\n .result('CampaignCashback')\r\n .result('Percent', null)\r\n .value();\r\n const ParentLevelCashbackScope = _.chain(campaign)\r\n .result('CampaignCashback')\r\n .result('Scope')\r\n .value() || 'None';\r\n const ParentCouponsEnabled = _.chain(campaign)\r\n .result('CampaignCashback')\r\n .result('CouponsEnabled', 'None')\r\n .value();\r\n\r\n this.cashbackSettingsView = new CashbackSettings({\r\n CashbackPercent,\r\n CashbackScope,\r\n showCashbackBudget: false,\r\n showEnableCashbackSettingsCheckbox: false,\r\n showInheritFromParentOption: true,\r\n isCashbackScopeReadonly: campaignType() !== 'shopping',\r\n showCoupon: campaignType() === 'shopping',\r\n ParentLevelCashbackPercent,\r\n ParentLevelCashbackScope,\r\n CouponsEnabled,\r\n ParentCouponsEnabled,\r\n deps: {\r\n decimal,\r\n i18n,\r\n pageContext,\r\n },\r\n });\r\n }\r\n }\r\n\r\n onCashbackPercentChange(value) {\r\n if (this.cashbackSettingsView.viewModel.validateCashbackPercent(value)) {\r\n const formattedValue = value === '' || value == null ? null : decimal.fromLocalToFloat(value);\r\n\r\n if (this.adGroupTargetsView) {\r\n this.adGroupTargetsView.toggleCashbackPercentColumns(true, {\r\n level: 'AdGroup',\r\n value: formattedValue,\r\n });\r\n }\r\n\r\n if (this.locationTargetsView) {\r\n this.locationTargetsView.toggleCashbackPercentColumns(true, {\r\n level: 'AdGroup',\r\n value: formattedValue,\r\n });\r\n }\r\n\r\n if (this.advancedSettingsView && this.advancedSettingsView.adScheduleView) {\r\n this.advancedSettingsView.adScheduleView.toggleCashbackPercentColumns(true, {\r\n level: 'AdGroup',\r\n value: formattedValue,\r\n });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n this.$el.html(template({\r\n i18n,\r\n isShowDisclaimerBannerEnabled: this.showDisclaimerBanner,\r\n }));\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n if (!(pageContext && pageContext.CurrentCampaign && pageContext.CurrentCampaign.Id && pageContext.CurrentAdGroup && pageContext.CurrentAdGroup.Id)) {\r\n logger.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, 'loadAdGroupSettingsPage', JSON.stringify(pageContext));\r\n this.viewModel.errors.add();\r\n return null;\r\n }\r\n\r\n this.hideUIBlocker = uiBlocker(this.$('.adgroup-settings-page'));\r\n this.mark('willFetchData');\r\n Promise.join(\r\n jsData.AdGroup.find(Number(pageContext.CurrentAdGroup.Id), { entitySet: edmCampaign.currentCampaign.AdGroups, bypassCache: true }),\r\n jsData.Campaign.find(Number(pageContext.CurrentCampaign.Id), { queryParameters: { entitySet: edmCampaign.currentAccount.Campaigns, expand: ['Budget'] }, bypassCache: true }),\r\n loadMap(),\r\n (adgroup, campaign) => {\r\n this.mark('willRender');\r\n if (_.has(adgroup, 'Id')) {\r\n // mock\r\n // campaign.CashbackSettings = { CashbackMonthlyBudget: 1 };\r\n\r\n this.supportCashbackSettings = shouldSupportCashbackSettings(campaign, pageContext.Permissions) && !this.isSponsoredCampaign();\r\n\r\n this.mutableModel = new MutableModel(mutables(adgroup, this));\r\n\r\n this.viewModel.dataLoaded(true);\r\n\r\n this.viewModel.setModel(adgroup);\r\n this.viewModel.supportCashbackSettings(this.supportCashbackSettings);\r\n\r\n if (this.supportCashbackSettings) {\r\n this.initCashbackSettingsView(adgroup, campaign);\r\n this.$('.cashback-settings-container').empty().append(this.cashbackSettingsView.render().$el);\r\n\r\n this.cashbackSettingsView.viewModel.CashbackPercent.subscribe((value) => {\r\n if (this.cashbackSettingsView.viewModel.validateCashbackPercent(value)) {\r\n const formattedValue = value === '' || value == null ? null : +value;\r\n\r\n if (this.adGroupTargetsView) {\r\n this.adGroupTargetsView.toggleCashbackPercentColumns(true, {\r\n level: 'AdGroup',\r\n value: formattedValue,\r\n });\r\n }\r\n\r\n if (this.locationTargetsView) {\r\n this.locationTargetsView.toggleCashbackPercentColumns(true, {\r\n level: 'AdGroup',\r\n value: formattedValue,\r\n });\r\n }\r\n\r\n if (this.advancedSettingsView && this.advancedSettingsView.adScheduleView) {\r\n this.advancedSettingsView.adScheduleView.toggleCashbackPercentColumns(true, {\r\n level: 'AdGroup',\r\n value: formattedValue,\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.languages = _.isEmpty(campaign.Languages) ? [] : campaign.Languages;\r\n // render language selector for user in multi-language campaign\r\n if (this.viewModel.enableLanguageSelection()) {\r\n this.renderLanguageSelector(campaign, adgroup);\r\n }\r\n\r\n if (showCpgAdGroupType()) {\r\n this.renderCpgAdGroupType(adgroup);\r\n } else {\r\n this.renderBidView(campaign, adgroup, this.options.deps.i18nNewDesign);\r\n }\r\n\r\n if (campaignType() === 'shopping' ||\r\n (isDSAMixedModeCampaignEnabled && campaignType() === 'search' &&\r\n (pageContext.CurrentAdGroup.AdGroupType === 1 || pageContext.CurrentAdGroup.AdGroupType === 'SearchStandard')) ||\r\n (!isDSAMixedModeCampaignEnabled && campaignType() === 'search')) {\r\n this.renderBiddingStrategy(adgroup);\r\n }\r\n\r\n if (this.biddingStrategyView) {\r\n this.$('.bidding-strategy__container')[0].addEventListener('change', () => {\r\n if (this.bidView) {\r\n this.bidView.resetIsAutoBidding(this.biddingStrategyView.getValues().Type);\r\n }\r\n }, false);\r\n }\r\n this.renderAdvancedSettings(campaign, adgroup);\r\n\r\n this.medium = adgroup.Medium;\r\n this.adDistribution = adgroup.AdDistribution;\r\n\r\n this.renderLocationTargets();\r\n\r\n return this.renderAdGroupTargets(campaign, adgroup);\r\n } else {\r\n this.viewModel.errors.add();\r\n\r\n return null;\r\n }\r\n })\r\n .catch(() => {\r\n // todo [yucongj] add more specific error messages\r\n this.viewModel.errors.add();\r\n })\r\n .finally(() => {\r\n this.hideUIBlocker();\r\n this.mark('done');\r\n });\r\n\r\n return this;\r\n }\r\n\r\n validate() {\r\n return _.reduce([\r\n this.viewModel.validate(),\r\n this.bidView ? this.bidView.validate() : true,\r\n this.advancedSettingsView.validate(),\r\n this.locationTargetsView ? this.locationTargetsView.validate() : true,\r\n this.biddingStrategyView ? this.biddingStrategyView.validate() : true,\r\n this.cpgBidSection ? this.cpgBidSection.validate() : true,\r\n this.adGroupTargetsView ? this.adGroupTargetsView.validate() : true,\r\n this.cashbackSettingsView ? this.cashbackSettingsView.validate() : true,\r\n ], (memo, val) => {\r\n return memo && val;\r\n }, true);\r\n }\r\n\r\n checkIMAReachAndSave() {\r\n let checkIMAReachPromise = Promise.resolve(false);\r\n\r\n if (!this.validate()) {\r\n return;\r\n }\r\n\r\n const adGroupCriterions = this.getLocationCriterion();\r\n\r\n const changedLocationCriterions = _.filter(adGroupCriterions, (item) =>\r\n item && (item.CriterionType === 'Location' || item.CriterionType === 'Radius'));\r\n\r\n const hasLocationChanged = changedLocationCriterions && changedLocationCriterions.length > 0;\r\n\r\n const locationCriterions = this.getAllAdGroupLocationCriterion() || [];\r\n\r\n if (hasLocationChanged && pageContext.Permissions.IsIMAReachRepresentationPhase1Enabled && this.isNewUI && locationCriterions.length > 0) {\r\n const onYes = () => this.save();\r\n const locationsInfo = getLocationsInfo(locationCriterions);\r\n\r\n checkIMAReachPromise = showIMAReachModal({\r\n locationsInfo,\r\n onYes,\r\n deliveryChannel: campaignType() === 'audience' ? 'AIM' : 'BingAds',\r\n campaignId: pageContext.CurrentCampaign.Id,\r\n adGroupId: pageContext.CurrentAdGroup.Id,\r\n i18n,\r\n aid: pageContext.CurrentAccount.Id,\r\n cid: pageContext.CurrentAccount.AdvertiserCustomerID,\r\n });\r\n }\r\n\r\n checkIMAReachPromise.then((isIMAReachModalShow) => {\r\n if (isIMAReachModalShow) {\r\n return;\r\n }\r\n this.save();\r\n });\r\n }\r\n\r\n getAllAdGroupLocationCriterion() {\r\n let adGroupCriterions = [];\r\n\r\n if (this.locationTargetsView) {\r\n let locationTargets = this.locationTargetsView.getValues({\r\n level: 'adgroup',\r\n }, {\r\n keepAllLocations: true,\r\n });\r\n\r\n locationTargets.locations = _.filter(locationTargets.locations, (c) => c.Status !== 'Deleted');\r\n\r\n // inherit locations\r\n if (locationTargets.locations.length === 0 &&\r\n this.locationTargetsView.campaignCriterions &&\r\n this.locationTargetsView.campaignCriterions.length > 0) {\r\n const inheritInfo = getLocationsInfoFromCampaignCriterions(this.locationTargetsView.campaignCriterions);\r\n\r\n locationTargets = _.extend(locationTargets, inheritInfo);\r\n }\r\n\r\n adGroupCriterions = adGroupCriterions.concat(locationTargets.locations)\r\n .concat(locationTargets.intent);\r\n }\r\n\r\n if (this.adGroupTargetsView) {\r\n // this is the old logic for audience\r\n let adGroupTargetsData = this.adGroupTargetsView.getAllLocations() || [];\r\n\r\n if (!_.isEmpty(adGroupTargetsData)) {\r\n adGroupTargetsData = _.filter(adGroupTargetsData, (c) => c.Status !== 'Deleted');\r\n\r\n const adGroupCriterionsWithoutIntent = _.filter(adGroupTargetsData, (c) => c.CriterionType !== 'LocationIntentCriterion');\r\n const campaignCriterions = this.adGroupTargetsView.getCampaignLocationCriterions();\r\n\r\n // inherit locations\r\n if (adGroupCriterionsWithoutIntent.length === 0 &&\r\n campaignCriterions &&\r\n campaignCriterions.length > 0) {\r\n const overrideInfo = getLocationsInfoFromCampaignCriterions(campaignCriterions);\r\n\r\n return overrideInfo.locations.concat(overrideInfo.intent);\r\n }\r\n }\r\n\r\n adGroupCriterions = adGroupCriterions.concat(adGroupTargetsData);\r\n }\r\n\r\n return adGroupCriterions;\r\n }\r\n\r\n getLocationCriterion() {\r\n let adGroupCriterions = [];\r\n\r\n if (this.locationTargetsView) {\r\n let locationTargets = this.locationTargetsView.getValues({\r\n level: 'adgroup',\r\n });\r\n\r\n adGroupCriterions = adGroupCriterions.concat(locationTargets.locations)\r\n .concat(locationTargets.intent)\r\n .concat(locationTargets.deletedLocations || []);\r\n }\r\n\r\n if (this.adGroupTargetsView) {\r\n const adGroupTargetsData = this.adGroupTargetsView.getData();\r\n const adGroupTargetsCriterions = _.result(adGroupTargetsData, 'AdGroupCriterions', []);\r\n\r\n adGroupCriterions = adGroupCriterions.concat(adGroupTargetsCriterions);\r\n }\r\n\r\n return adGroupCriterions;\r\n }\r\n\r\n save() {\r\n this.clearApiErrors();\r\n\r\n let params = _.defaults(this.viewModel.toObject(), this.bidView ? this.bidView.getValues() : {});\r\n\r\n params.Campaign = {\r\n Id: pageContext.CurrentCampaign.Id,\r\n };\r\n\r\n const isCostPerSaleCampaign = _.chain(pageContext.CurrentCampaign).result('BiddingScheme').result('Type').value() === biddingStrategyTypes.costPerSale;\r\n\r\n if (this.biddingStrategyView && !this.isMSStoreAdsGAWorkflow) {\r\n if (this.isSponsoredCampaign() && !isCostPerSaleCampaign && !this.isMranEcpcEnabled && !this.isMranTroasEnabled) {\r\n // Bid strategy default to manual cpc in SPAv2\r\n params.BiddingScheme = {\r\n Type: 'ManualCpc',\r\n };\r\n } else {\r\n params.BiddingScheme = this.biddingStrategyView.getValues();\r\n }\r\n }\r\n\r\n let adGroupCriterions = this.getLocationCriterion();\r\n let advancedSettings = this.advancedSettingsView.getValues();\r\n let targets = advancedSettings.deviceTargets\r\n .concat(advancedSettings.ageTargets)\r\n .concat(advancedSettings.genderTargets)\r\n .concat(advancedSettings.scheduling);\r\n\r\n targets = _.map(targets, (target) => {\r\n return _.extendOwn(target, {\r\n 'AdGroup': {\r\n 'Id': pageContext.CurrentAdGroup.Id,\r\n },\r\n });\r\n });\r\n\r\n params.AdGroupCriterions = adGroupCriterions.concat(targets);\r\n\r\n _.extend(params, advancedSettings.urlOptions,\r\n advancedSettings.netWorkOptions,\r\n advancedSettings.adRotation,\r\n advancedSettings.dateSettings,\r\n advancedSettings.nativeAds,\r\n advancedSettings.multimediaAds);\r\n\r\n if (_.isBoolean(advancedSettings.adScheduleUseSearcherTimeZone)) {\r\n params.AdScheduleUseSearcherTimeZone = advancedSettings.adScheduleUseSearcherTimeZone;\r\n }\r\n\r\n if (this.cpgBidSection) {\r\n params = this.cpgBidSection.getValues(params);\r\n }\r\n\r\n this.mutableModel.set(params);\r\n params = this.mutableModel.getIncremental(_.keys(params));\r\n\r\n const highLantencyThreshold = 3000;\r\n\r\n if (_.size(params.AdGroupCriterions) > highLantencyThreshold) {\r\n this.viewModel.showHighLatencyAlert(true);\r\n }\r\n\r\n if (this.cashbackSettingsView) {\r\n _.extend(params, this.cashbackSettingsView.getValues());\r\n }\r\n\r\n const batchSize = 1000;\r\n const chunks = _.chain(params.AdGroupCriterions)\r\n .groupBy((value, index) => Math.floor(index / batchSize))\r\n .toArray()\r\n .value();\r\n\r\n\r\n const batchedParams = {\r\n reqs: _.map(chunks, (batch) => ({\r\n Id: params.Id,\r\n data: _.extend({}, params, { AdGroupCriterions: batch }),\r\n })),\r\n };\r\n const mergeAdGroupCriterions = (responses) => {\r\n const mergedAdGroupCriterions = _.reduce(responses, (dest, res) => dest.concat(res.AdGroupCriterions), []);\r\n\r\n return _.extend({}, _.first(responses), { AdGroupCriterions: mergedAdGroupCriterions });\r\n };\r\n\r\n jsData.AdGroup.update(params.Id, batchedParams, { adapter: 'bulk', cacheResponse: false, overrideResponse: true, batch: true, processResponse: mergeAdGroupCriterions })\r\n .then((response) => {\r\n //we backfill advanced settings models here, so we have correct model if the saveExtensions call fails.\r\n this.advancedSettingsView.setData(response);\r\n logAdGroupPersonalizedOffers(this.supportCashbackSettings, this.activity.signal.bind(this.activity), params);\r\n return this.advancedSettingsView.exclusionsUpdated() ? this.advancedSettingsView.saveExtensions() : {};\r\n })\r\n .then(() => {\r\n summaryDataContextManager.getContext('/campaign/newadgroup/edit?');\r\n window.App.trigger('adGroupUpdated', {\r\n data: [{\r\n Id: Number(params.Id),\r\n Name: params.Name,\r\n CampaignId: params.Campaign.Id,\r\n AccountId: pageContext.CurrentAccount.Id,\r\n Bidding: { Type: 0 },\r\n }],\r\n });\r\n // eslint-disable-next-line camelcase\r\n this.navigateToRoute(backRouteName, { campaign_id: params.Campaign.Id, adgroup_id: params.Id });\r\n })\r\n .catch((response) => {\r\n this.handleApiErrors(response);\r\n })\r\n .finally(uiBlocker(this.$('.adgroup-settings-page')));\r\n }\r\n\r\n clearApiErrors() {\r\n this.advancedSettingsView.clearApiErrors();\r\n this.viewModel.errors.clear(i18nErrors.isCampaignApiError);\r\n }\r\n\r\n handleApiErrors(response) {\r\n if (_.isUndefined(response) || _.isNull(response)) {\r\n this.viewModel.errors.add();\r\n return;\r\n }\r\n\r\n if (response.errors && !response.entity) {\r\n //Ajax error [400] - RowCountExceeded\r\n this.viewModel.errors.add(i18nErrors.getODataErrors(response.errors));\r\n return;\r\n }\r\n\r\n if (response === 'exclusion error') {\r\n return;\r\n }\r\n\r\n i18nErrors.getPartial(response);\r\n\r\n let adgroupErrors = _.reject(response.entity.errors, (error) => {\r\n return _.contains(['TrackingUrlTemplate', 'UrlCustomParameters'], error.property);\r\n });\r\n\r\n this.advancedSettingsView.setData(response);\r\n this.advancedSettingsView.handleErrors(response);\r\n this.viewModel.errors.add(adgroupErrors);\r\n\r\n if (this.locationTargetsView) {\r\n this.locationTargetsView.handleApiErrorsForAdGroupLevel(pageContext.CurrentAdGroup.Id);\r\n }\r\n }\r\n\r\n cancel() {\r\n const adgroupId = pageContext.CurrentAdGroup ? pageContext.CurrentAdGroup.Id : undefined;\r\n\r\n // eslint-disable-next-line camelcase\r\n this.navigateToRoute(backRouteName, { campaign_id: pageContext.CurrentCampaign.Id, adgroup_id: adgroupId });\r\n }\r\n\r\n remove() {\r\n if (this.languageLocationConnector) {\r\n this.languageLocationConnector.stopListening();\r\n }\r\n if (this.locationTargetsView) {\r\n this.locationTargetsView.remove();\r\n }\r\n if (this.adGroupTargetsView) {\r\n this.adGroupTargetsView.remove();\r\n }\r\n\r\n super.remove();\r\n }\r\n\r\n mark(perfMarkerEvent) {\r\n if (this.adGroupScopePerfMarker) {\r\n this.adGroupScopePerfMarker[perfMarkerEvent]();\r\n }\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\n\r\nexport const mutables = (adgroup, context) => {\r\n function memo(key) {\r\n return _.property(key)(context.mutableModel.memo);\r\n }\r\n\r\n return {\r\n mutables: {\r\n Language: {},\r\n Medium: {},\r\n NativeBidAdjustment: {},\r\n TrackingUrlTemplate: {},\r\n UrlCustomParameters: {\r\n hasChanges: (value) => {\r\n if (_.isEmpty(value) && _.isEmpty(memo('UrlCustomParameters'))) {\r\n return false;\r\n }\r\n\r\n return !_.isEqual(value, memo('UrlCustomParameters'));\r\n },\r\n },\r\n AdRotation: {\r\n hasChanges: (value) => {\r\n if (memo('AdRotation')) {\r\n return value !== memo('AdRotation').RotationType;\r\n }\r\n return true;\r\n },\r\n },\r\n AdDistribution: {},\r\n SearchBid: {\r\n hasChanges: (value) => {\r\n return decimal.fromLocalToFloat(value) !== decimal.fromLocalToFloat(memo('SearchBid'));\r\n },\r\n },\r\n ContentBid: {\r\n hasChanges: (value) => {\r\n return decimal.fromLocalToFloat(value) !== decimal.fromLocalToFloat(memo('ContentBid'));\r\n },\r\n },\r\n },\r\n model: adgroup,\r\n };\r\n};\r\n","import _ from 'underscore';\r\nimport { ProjectionGridBaseColumn } from '@bingads-webui/projection-grid-base-column';\r\n\r\nconst audiencesi18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/audiences');\r\n\r\n\r\nexport class AudienceBaseColumn extends ProjectionGridBaseColumn {\r\n constructor(Column, options) {\r\n\r\n const helpAriaLabel = options.helpId ?\r\n audiencesi18n.getString('Click to learn more about {{item}}', { item: audiencesi18n.getString(options.title) }) : '';\r\n\r\n super(_.defaults({}, options,\r\n {\r\n name: Column.Name || Column,\r\n property: Column.Property || Column,\r\n sortable: Column.Property || Column,\r\n bodyClasses: [`audiences-column-${Column.Name || Column}`],\r\n i18n: audiencesi18n,\r\n helpAriaLabel,\r\n columnConversion: Column.columnConversion || Column,\r\n }));\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport scopeService from '@bingads-webui-static-legacy/scope-service'; //TODO: it depends on pageContext, will pass it from view\r\nimport DataStore from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport edmCampaign from '@bingads-webui-component-legacy/edm-campaign/index';\r\n\r\nexport default class ViewModel {\r\n constructor(options = {}) {\r\n this.options = options;\r\n this.selectedCampaigns = ko.observable(this.options.campaign);\r\n this.selectedAdgroups = ko.observable();\r\n this.selectedCampaignId = ko.computed(() => {\r\n if (_.isEmpty(this.selectedCampaigns())) {\r\n return this.options.campaignId;\r\n } else {\r\n return this.selectedCampaigns().Id;\r\n }\r\n });\r\n this.selectedAdgroupId = ko.computed(() => {\r\n if (_.isEmpty(this.selectedAdgroups())) {\r\n return this.options.adgroupId;\r\n } else {\r\n return this.selectedAdgroups().Id;\r\n }\r\n });\r\n this.selectedAdgroups.subscribe((adgroup) => {\r\n const campaignSettings = _.chain(adgroup).result('Campaign').result('CampaignSettings').value();\r\n const campaignId = _.chain(adgroup).result('Campaign').result('Id').value();\r\n\r\n if (campaignId === this.selectedCampaignId()) { // selected campaign no need change\r\n return;\r\n }\r\n\r\n this.selectedCampaigns(null);\r\n\r\n if (_.isEmpty(campaignSettings)) {\r\n DataStore.Campaign.find(campaignId, {\r\n entitySet: edmCampaign.currentAccount.Campaigns,\r\n cacheResponse: false,\r\n findStrictCache: true,\r\n }).then((campaign) => this.selectedCampaigns(campaign));\r\n } else {\r\n this.selectedCampaigns(adgroup.Campaign);\r\n }\r\n });\r\n this.scopeContext = scopeService.getScope();\r\n this.showCampaigns = !this.options.campaignId;\r\n this.showAdGroups = !this.options.adgroupId && this.options.entityType === 'adgroup';\r\n\r\n this.isEmptySelector = ko.computed(() => {\r\n if (this.showAdGroups) {\r\n return this.selectedAdgroupId() === undefined || this.selectedAdgroupId() === 0;\r\n } else {\r\n return this.selectedCampaignId() === undefined || this.selectedCampaignId() === 0;\r\n }\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport headerTemplate from '@bingads-webui-campaign-legacy/bingadsgrid/template/header.pug';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/bingadsgrid');\r\n\r\nexport default (config) => {\r\n _.each(config.columns, (column) => {\r\n if (column.headerTemplate) {\r\n return;\r\n }\r\n\r\n let containerType = null;\r\n\r\n if (column.type === 'number' || column.type === 'integer') {\r\n containerType = 'numbercontainer';\r\n } else {\r\n containerType = 'textcontainer';\r\n }\r\n\r\n column.headerBuilder = (columnInfo, isSubHeader) => {\r\n\r\n let name = isSubHeader ? columnInfo.config.subColTitle || columnInfo.config.title : columnInfo.config.title;\r\n let label = name;\r\n\r\n if (columnInfo.$orderby) {\r\n label = `${name} ${columnInfo.$orderby.dir > 0 ? i18n.getString('Grid_Column_OrderBy_Ascending') : i18n.getString('Grid_Column_OrderBy_Descending')}`;\r\n }\r\n\r\n return headerTemplate({\r\n name,\r\n label,\r\n containerType,\r\n popupId: column.popupId ? columnInfo.config.popupId : null,\r\n column: columnInfo,\r\n });\r\n };\r\n });\r\n\r\n return config;\r\n};\r\n\r\n","import _ from 'underscore';\r\n\r\nconst levelClasses = {\r\n 0: ['grid-toolbar-highlight'],\r\n 1: ['grid-toolbar-front-theme'],\r\n 2: [],\r\n};\r\n\r\nexport const getClassesByLevel = (level) => {\r\n if (_.has(levelClasses, level)) {\r\n return levelClasses[level];\r\n }\r\n return [];\r\n};\r\n\r\nexport const getClassNameByLevel = (level) => getClassesByLevel(level).join(' ');\r\n\r\nexport const updateTool = (view, config) => {\r\n view.$el.addClass(_.union(getClassesByLevel(config.level), config.classes).join(' '));\r\n};\r\n","import _ from 'underscore';\r\nimport Button from '@bingads-webui-component-legacy/grid-toolbar/button';\r\nimport ButtonMenuItem from '@bingads-webui-component-legacy/grid-toolbar/buttonMenuItem';\r\nimport DividerMenuItem from '@bingads-webui-component-legacy/grid-toolbar/dividerMenuItem';\r\nimport DropDown from '@bingads-webui-component-legacy/grid-toolbar/dropdown';\r\nimport HeaderMenuItem from '@bingads-webui-component-legacy/grid-toolbar/headerMenuItem';\r\nimport {updateTool} from '@bingads-webui-campaign-legacy/bingadsgrid/shared/update-tool';\r\n\r\nlet factoryContainer = null;\r\n\r\nconst processAction = (action, toolBarView, gridView) => {\r\n if (_.isFunction(action)) {\r\n action(gridView);\r\n } else if (_.isObject(action)) {\r\n let view = action.viewFactory(gridView);\r\n\r\n view = view && view.render();\r\n\r\n if (action.setMenuTitle) {\r\n toolBarView.setMenuTitle(action.setMenuTitle);\r\n }\r\n\r\n if (_.isEmpty(view)) {\r\n return;\r\n }\r\n\r\n toolBarView.expand(view.el);\r\n if (action.shouldHideToolbar) {\r\n toolBarView.hideToolbar();\r\n }\r\n\r\n view.once('close', (arg) => {\r\n view.remove();\r\n toolBarView.showToolbar();\r\n if (arg && arg.refresh === true) {\r\n gridView.projection.update({\r\n deep: true,\r\n });\r\n }\r\n });\r\n view.once('createNew', (arg) => {\r\n view.remove();\r\n if (arg && arg.refresh === true) {\r\n gridView.projection.update({\r\n deep: true,\r\n });\r\n }\r\n processAction(action, toolBarView, gridView);\r\n });\r\n }\r\n};\r\n\r\nconst buttonMenuItemFactory = (btnMenuItemConfig, toolBarView, gridView) => {\r\n const toolItem = new ButtonMenuItem(btnMenuItemConfig);\r\n\r\n toolItem.on('click', _.partial(processAction, btnMenuItemConfig.action, toolBarView, gridView));\r\n toolItem.on('click:link', _.partial(processAction, btnMenuItemConfig.linkAction, toolBarView, gridView));\r\n\r\n updateTool(toolItem, btnMenuItemConfig);\r\n\r\n return toolItem;\r\n};\r\n\r\nconst buttonFactory = (btnConfig, toolBarView, gridView) => {\r\n const toolItem = new Button(btnConfig);\r\n\r\n toolItem.on('click', _.partial(processAction, btnConfig.action, toolBarView, gridView));\r\n\r\n updateTool(toolItem, btnConfig);\r\n\r\n return toolItem;\r\n};\r\n\r\nconst dropDownFactory = (dropdownConfig, toolBarView, gridView) => {\r\n const menuItems = _.map(dropdownConfig.items, (item) => {\r\n if (_.has(factoryContainer, item.type)) {\r\n let tmpView = factoryContainer[item.type](item, toolBarView, gridView);\r\n\r\n updateTool(tmpView, item);\r\n return tmpView;\r\n }\r\n return null;\r\n });\r\n\r\n let tmpDropdown = new DropDown({\r\n title: dropdownConfig.title,\r\n menuItems: _.compact(menuItems),\r\n isNewFeature: dropdownConfig.isNewFeature,\r\n isAvailable: dropdownConfig.isAvailable,\r\n });\r\n\r\n updateTool(tmpDropdown, dropdownConfig);\r\n\r\n return tmpDropdown;\r\n};\r\n\r\nconst dividerMenuItemFactory = () => {\r\n return new DividerMenuItem();\r\n};\r\n\r\nconst headerMenuItemFactory = (headerMenuItemConfig) => {\r\n return new HeaderMenuItem(headerMenuItemConfig);\r\n};\r\n\r\nfactoryContainer = {\r\n 'button': buttonFactory,\r\n 'dropdown': dropDownFactory,\r\n 'buttonMenuItem': buttonMenuItemFactory,\r\n 'dividerMenuItem': dividerMenuItemFactory,\r\n 'headerMenuItem': headerMenuItemFactory,\r\n};\r\n\r\nexport default factoryContainer;\r\n","import _ from 'underscore';\r\nimport GridToolbar from '@bingads-webui-component-legacy/grid-toolbar/gridToolbar';\r\nimport factoryContainer from '@bingads-webui-campaign-legacy/bingadsgrid/shared/control-factory';\r\nimport {updateTool} from '@bingads-webui-campaign-legacy/bingadsgrid/shared/update-tool';\r\n\r\nexport default function (toolNameList = []) {\r\n const dependencies = ['config', 'gridView'].concat(toolNameList);\r\n\r\n return function(definePlugin) {\r\n return definePlugin('toolbar', dependencies, (...args) => {\r\n const config = args.shift();\r\n\r\n const gridView = args.shift();\r\n const toolItems = args;\r\n\r\n let toolbarConfig = {\r\n el: config.pluginsConfig.toolbar.container,\r\n items: _.size(config.pluginsConfig.toolbar.items) > 0 ? [] : toolItems,\r\n };\r\n\r\n const toolBarView = new GridToolbar(toolbarConfig);\r\n\r\n const configToolItems = _.map(config.pluginsConfig.toolbar.items, (item) => {\r\n if (_.isString(item)) {\r\n const index = _.indexOf(toolNameList, item);\r\n\r\n if (index >= 0) {\r\n let tmpItem = toolItems[index];\r\n\r\n if (tmpItem) {\r\n updateTool(tmpItem, config.pluginsConfig[item]);\r\n }\r\n return tmpItem;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n if (_.has(factoryContainer, item.type)) {\r\n return factoryContainer[item.type](item, toolBarView, gridView);\r\n }\r\n return null;\r\n });\r\n\r\n toolBarView.appendItems(_.compact(configToolItems));\r\n toolBarView.items.forEach((item) => {\r\n if (item.onAttachToolbar) {\r\n item.onAttachToolbar(toolBarView);\r\n }\r\n });\r\n return toolBarView;\r\n });\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport dateUtil from '@bingads-webui-component-legacy/humanize/date';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport { getSegPreference, getSegType } from '@bingads-webui-component-legacy/bingads-grid/service/segmentation-preferences';\r\nimport { getCustomColumnsPreference } from '@bingads-webui-component-legacy/bingads-grid/service/custom-column-preferences';\r\nimport segmentTimeChecker from '@bingads-webui-component-legacy/bingads-grid/shared/timeRangeChecker';\r\nimport { fetchPaginationConfig } from '@bingads-webui-component-legacy/bingads-grid/service/fetch-pagination';\r\n\r\nconst formatDate = (date) => dateUtil.format(date, 'M/d/yyyy');\r\nconst formatDateForGridDataParameters = (date) => dateUtil.format(date, 'yyyy-MM-dd');\r\n\r\n\r\nexport default (gridConfig) => {\r\n const sortInfoKey = gridConfig.name;\r\n\r\n return Promise.all([\r\n state.getPromise('$daterange'),\r\n fetchPaginationConfig(sortInfoKey, 50),\r\n getCustomColumnsPreference(gridConfig.name),\r\n getSegPreference(gridConfig.name),\r\n ]).spread((dateRange, {pageSize, orderbyInfo, sortableHeader}) => {\r\n gridConfig = _.defaults(gridConfig, {pageable: {}}); //eslint-disable-line\r\n\r\n // for customDataSource, need to put 'orderby', 'query' to config.query\r\n let queryConfig;\r\n\r\n if (gridConfig.isDataFetchManagerSource) {\r\n gridConfig.query = gridConfig.query || {};\r\n queryConfig = gridConfig.query;\r\n } else {\r\n queryConfig = gridConfig.dataSource;\r\n }\r\n queryConfig.query = queryConfig.query || {};\r\n\r\n const customColumnsEnabled = _.chain(gridConfig.plugins)\r\n .result('columnChooser')\r\n .result('customColumn')\r\n .result('enabled', false)\r\n .value();\r\n\r\n if (customColumnsEnabled) {\r\n const gridDataParameters = {\r\n CustomColumns: [],\r\n DateRange: {\r\n StartDate: formatDateForGridDataParameters(dateRange.start),\r\n EndDate: formatDateForGridDataParameters(dateRange.end),\r\n },\r\n };\r\n\r\n if (dateRange.compared) {\r\n gridDataParameters.ComparisonDateRange = {\r\n StartDate: formatDateForGridDataParameters(dateRange.compared.start),\r\n EndDate: formatDateForGridDataParameters(dateRange.compared.end),\r\n };\r\n }\r\n\r\n const gridData = edm.currentAccount.Campaigns['Default.GridData'].$call({ gridDataParameters });\r\n\r\n gridConfig.dataSource.options.entitySet = gridData;\r\n queryConfig.query.entitySet = gridData.toJSON();\r\n }\r\n\r\n gridConfig.pageable.pageSize = pageSize;\r\n if (gridConfig.plugins && gridConfig.plugins.pagination) {\r\n gridConfig.plugins.pagination.pageSize = pageSize;\r\n }\r\n queryConfig.query.endDate = formatDate(dateRange.end);\r\n queryConfig.query.startDate = formatDate(dateRange.start);\r\n\r\n if (dateRange.compared) {\r\n queryConfig.query.endDate2 = formatDate(dateRange.compared.end);\r\n queryConfig.query.startDate2 = formatDate(dateRange.compared.start);\r\n queryConfig.query.comparisonEndDate = formatDate(dateRange.compared.end);\r\n queryConfig.query.comparisonStartDate = formatDate(dateRange.compared.start);\r\n }\r\n\r\n const segType = getSegType(gridConfig.name);\r\n\r\n if (segType && segType.segmentationType !== 'None' && segmentTimeChecker.isTimeRangeValid(segType.segmentationType)) {\r\n queryConfig.query.SegmentationTypes = segType.segmentationType;\r\n }\r\n\r\n if (orderbyInfo && orderbyInfo.length > 0) {\r\n queryConfig.orderby = orderbyInfo;\r\n gridConfig.sortableHeader = _.defaults(_.pick(sortableHeader, 'name', 'directionIndex'), gridConfig.sortableHeader);\r\n }\r\n });\r\n};\r\n","import Promise from 'bluebird';\r\nimport _ from 'underscore';\r\nimport { convertSelectionDateRangeToState } from '@bingads-webui-campaign/date-range-utilities';\r\nimport { getGridName, getGridPage, getGridColumnNames, getGridColumnConversions } from '@bingads-webui-campaign/inline-download-grids-metadata';\r\nimport { setSegType } from '@bingads-webui-component-legacy/bingads-grid/service/segmentation-preferences';\r\nimport { Columns } from '@bingads-webui-component-legacy/bingads-grid/service/column-chooser-preferences';\r\n// Here it uses different name with date-filter we are using\r\n// import { setFilter } from '@bingads-webui-component-legacy/bingads-grid/service/filter-preferences';\r\n// import preferencesService from '@bingads-webui-component-legacy/preference/service/index';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport { buildColumnConversions } from '@bingads-webui-campaign/column-conversions';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/campaign-date-filter');\r\nconst permissions = config.get('permissions');\r\nconst { dynamic = {} } = permissions;\r\nconst {\r\n ColumnConversion: IsColumnConversionEnabled,\r\n PartialConversions: IsPartialConversionsEnabled,\r\n} = dynamic;\r\n\r\nconst selectQueryPrefix = '$select=';\r\n\r\nconst ColumnConversionNotEnabledFeatures = {\r\n 'summary_tab_combinations': true,\r\n};\r\n\r\nfunction setGridPreference({\r\n Entity,\r\n SegmentationTypes: [SegmentationType = 'None'],\r\n Selection,\r\n}) {\r\n const {\r\n QueryString,\r\n } = Selection;\r\n const gridName = getGridName(Entity, Selection);\r\n const queries = QueryString.split('&');\r\n const properties = _.find(queries, (query) => query.indexOf(selectQueryPrefix) === 0)\r\n .substr(selectQueryPrefix.length)\r\n .split(',')\r\n .map((property) => property.split('/'));\r\n\r\n const columns = getGridColumnNames(Entity, properties, Selection);\r\n\r\n return Promise.all([\r\n Columns.findAll({\r\n where: {\r\n name: 'Custom',\r\n project: 'CampaignUI',\r\n grid: gridName,\r\n },\r\n }).then(([customColumn]) => {\r\n if (customColumn) {\r\n if (IsColumnConversionEnabled) {\r\n const columnConversions = getGridColumnConversions(Entity, Selection, { withPartialConversion: IsPartialConversionsEnabled && !ColumnConversionNotEnabledFeatures[gridName] });\r\n const { applyColumnConversions } = buildColumnConversions(columnConversions);\r\n const patchedColumns = applyColumnConversions(columns);\r\n\r\n return Columns.update(customColumn.id, { columns: patchedColumns });\r\n }\r\n\r\n return Columns.update(customColumn.id, { columns });\r\n }\r\n // when no column chooser for the grid, customColumn doesn't exist\r\n return null;\r\n }),\r\n setSegType(gridName, SegmentationType),\r\n ]);\r\n}\r\n\r\nfunction setDateRangeForNewUI(Rule, {\r\n convertSelectionDateRangeToDateFilter,\r\n restoreDateFilter,\r\n}) {\r\n const {\r\n DateRange,\r\n ComparisonDateRange,\r\n } = Rule.Selection;\r\n\r\n const dateFilter = convertSelectionDateRangeToDateFilter({\r\n DateRange,\r\n ComparisonDateRange,\r\n });\r\n\r\n restoreDateFilter(dateFilter);\r\n}\r\n\r\nfunction setPreferenceByReportEmailRuleForAccountsSummary(Rule, options = {}) {\r\n if (options.isForNewUI) {\r\n setDateRangeForNewUI(Rule, options);\r\n }\r\n return setGridPreference(Rule);\r\n}\r\n\r\nfunction setPreferenceByReportEmailRuleForCampaigns(Rule, options = {}) {\r\n const {\r\n DateRange,\r\n ComparisonDateRange,\r\n } = Rule.Selection;\r\n\r\n if (options.isForNewUI) {\r\n setDateRangeForNewUI(Rule, options);\r\n } else {\r\n const dateRange = convertSelectionDateRangeToState({\r\n Selection: {\r\n DateRange,\r\n ComparisonDateRange,\r\n },\r\n i18n,\r\n });\r\n\r\n state.set('$daterange', dateRange);\r\n window.App.views.Summary.dateFilter.initializePreference(dateRange);\r\n window.App.views.Summary.dateFilter.save();\r\n }\r\n\r\n return setGridPreference(Rule);\r\n}\r\n\r\nfunction setPreferenceByReportEmailRuleForHotelCenter(Rule, options = {}) {\r\n if (options.isForNewUI) {\r\n setDateRangeForNewUI(Rule, options);\r\n }\r\n return setGridPreference(Rule);\r\n}\r\n\r\nexport default function setPreferenceByReportEmailRule(ReportEmailRule, options) {\r\n switch (getGridPage(ReportEmailRule.Entity, ReportEmailRule.Selection)) {\r\n case 'AccountsSummary':\r\n return setPreferenceByReportEmailRuleForAccountsSummary(ReportEmailRule, options);\r\n case 'HotelCenter':\r\n return setPreferenceByReportEmailRuleForHotelCenter(ReportEmailRule, options);\r\n case 'Campaigns':\r\n default:\r\n return setPreferenceByReportEmailRuleForCampaigns(ReportEmailRule, options);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport dateUtil from '@bingads-webui-component-legacy/humanize/date';\r\nimport Backbone from 'backbone';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport '@bingads-webui-component-legacy/extension/underscore';\r\n\r\nconst formatDateInQuery = (date) => dateUtil.format(date, 'M/d/yyyy');\r\nconst formatDateInEntitySet = (date) => dateUtil.format(date, 'yyyy-MM-dd');\r\nconst parseDate = (dateString) => dateUtil.parse(dateString);\r\nconst defaultComparisonColumns = [\r\n 'PeriodPerformanceMetrics',\r\n 'PerformanceMetricsChange',\r\n 'PerformanceMetricsChangePercentage',\r\n 'PhonePeriodPerformanceMetrics',\r\n 'PhonePerformanceMetricsChange',\r\n 'PhonePerformanceMetricsChangePercentage',\r\n];\r\n\r\nfunction changeEntitySet(queryParams = {}, dateRange) {\r\n const options = queryParams.options;\r\n const entitySet = edm.root.identifyEntitySet(options.entitySet.toJSON());\r\n\r\n const action = entitySet.navigation.source;\r\n const gridDataParameters = _.defaults({\r\n DateRange: {\r\n StartDate: formatDateInEntitySet(dateRange.start) || formatDateInEntitySet(parseDate(dateRange.RangeStartDate)),\r\n EndDate: formatDateInEntitySet(dateRange.end) || formatDateInEntitySet(parseDate(dateRange.RangeEndDate)),\r\n },\r\n ComparisonDateRange: dateRange.compared ? {\r\n StartDate: formatDateInEntitySet(dateRange.compared.start),\r\n EndDate: formatDateInEntitySet(dateRange.compared.end),\r\n } : null,\r\n }, entitySet.navigation.parameters.gridDataParameters);\r\n const { parameters } = entitySet.navigation;\r\n\r\n _.extend(parameters, { gridDataParameters });\r\n\r\n return _.defaults({\r\n options: _.defaults({\r\n entitySet: action.$call(parameters),\r\n }, options),\r\n }, queryParams);\r\n}\r\n\r\nfunction dateRangeEquals(firstRange, secondRange) {\r\n function convertForComparison(range) {\r\n const dates = _.pick(range, 'start', 'end');\r\n\r\n if (range.compared) {\r\n _.extend(dates, {comparedStart: range.compared.start, comparedEnd: range.compared.end});\r\n }\r\n return dates;\r\n }\r\n\r\n if (!firstRange || !secondRange) {\r\n return false;\r\n }\r\n\r\n return JSON.stringify(convertForComparison(firstRange)) === JSON.stringify(convertForComparison(secondRange));\r\n}\r\n\r\nfunction addDateRangeToQueryParams(queryParams, dateRange) {\r\n let query = _.defaults({\r\n startDate: formatDateInQuery(dateRange.start) || formatDateInQuery(parseDate(dateRange.RangeStartDate)),\r\n endDate: formatDateInQuery(dateRange.end) || formatDateInQuery(parseDate(dateRange.RangeEndDate)),\r\n }, queryParams.query);\r\n\r\n if (dateRange.compared) {\r\n query = _.defaults({\r\n comparisonStartDate: formatDateInQuery(dateRange.compared.start),\r\n comparisonEndDate: formatDateInQuery(dateRange.compared.end),\r\n }, query);\r\n } else {\r\n query = _.omit(query, 'comparisonStartDate', 'comparisonEndDate');\r\n }\r\n\r\n return _.defaults({\r\n query,\r\n }, queryParams);\r\n}\r\n\r\nexport default (definePlugin) =>\r\n definePlugin('dateFilter', ['config', 'gridView', 'dataSource'], (config, gridView, dataSource) => {\r\n const events = _.extend({}, Backbone.Events);\r\n const pluginConfig = _.result(config.plugins, 'dateFilter', {});\r\n const { comparisonColumns = defaultComparisonColumns } = pluginConfig;\r\n\r\n const originalQuery = dataSource.query;\r\n\r\n let currentDateRange = null;\r\n\r\n state.getPromise('$daterange').then((dateRange) => {\r\n currentDateRange = dateRange;\r\n });\r\n\r\n if (!config.isDataFetchManagerSource) {\r\n dataSource.query = (params) => {\r\n return state.getPromise('$daterange').then((dateRange) => {\r\n let queryParams;\r\n\r\n if (pluginConfig.isOdataActionSource) {\r\n queryParams = _.defaults({\r\n select: dateRange.compared ? _.union(params.select, comparisonColumns) : _.difference(params.select, comparisonColumns),\r\n }, changeEntitySet(params, dateRange));\r\n } else {\r\n queryParams = addDateRangeToQueryParams(params, dateRange);\r\n }\r\n\r\n gridView.set({ queryParams });\r\n\r\n return originalQuery.call(dataSource, queryParams);\r\n });\r\n };\r\n }\r\n\r\n if (window.App && window.App.views && window.App.views.Summary) {\r\n window.App.views.Summary.bindDateFilterChangeHandler((e, newDateRange) => {\r\n if (dateRangeEquals(currentDateRange, newDateRange)) {\r\n return;\r\n }\r\n\r\n currentDateRange = newDateRange;\r\n gridView.refresh(true);\r\n events.trigger('dateChange');\r\n });\r\n }\r\n\r\n return {\r\n events,\r\n getCurrentDateRange() {\r\n return currentDateRange;\r\n },\r\n p$getCurrentDateRange() {\r\n return state.getPromise('$daterange');\r\n },\r\n };\r\n });\r\n","import _ from 'underscore';\r\nimport * as putil from '@bingads-webui/primitive-utilities';\r\nimport { defineGridPlugin } from '@bingads-webui/projection-grid-plugin';\r\nimport summaryDataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\n\r\nconst headerRefreshCache = 'x-ms-refreshcampaigncache';\r\n\r\nexport default defineGridPlugin('refreshCache', [\r\n 'config',\r\n 'dataSource',\r\n 'gridView',\r\n], (config, dataSource, gridView, {\r\n method = 'GET',\r\n contexts = [],\r\n} = {}) => {\r\n const originalQuery = dataSource.query;\r\n\r\n dataSource.query = (params) => {\r\n const path = putil.get(dataSource, '_options.entitySet.path');\r\n // Fetch the RefreshCampaignData property for the current grid\r\n const context = summaryDataContextManager.getContext(path, true, method);\r\n const refreshCampaignData = putil.get(context, 'data.RefreshCampaignData');\r\n\r\n // If refreshCampaignData is set, override headerRefreshCache to true.\r\n if (refreshCampaignData) {\r\n putil.merge(params, {\r\n options: {\r\n headers: {\r\n [headerRefreshCache]: true,\r\n },\r\n },\r\n });\r\n }\r\n\r\n return originalQuery.call(dataSource, params);\r\n };\r\n\r\n const contextsToUpdate = _.chain(contexts)\r\n .union([config.legacyGridName])\r\n .compact()\r\n .value();\r\n\r\n if (!_.isEmpty(contextsToUpdate)) {\r\n gridView.on('didEdit', () => summaryDataContextManager.updateContext(contextsToUpdate));\r\n }\r\n});\r\n","import _ from '@bingads-webui-component-legacy/extension/underscore';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport statusIconColumnTemplate from '@bingads-webui-campaign-legacy/bingadsgrid/template/status-column.pug';\r\nimport { filterOptionsFromSchema, mapEnumValueForFilter } from '@bingads-webui-component-legacy/bingads-grid/shared/schema-util';\r\nimport deliveryStatusTemplate from '@bingads-webui-campaign-legacy/bingadsgrid/vnext/template/deliveryStatusTemplate.pug';\r\nimport { applyPartialConversionColumnName } from '@bingads-webui-campaign/column-conversions';\r\n\r\nconst s$i18n = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\nconst i18nGlobal = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\n\r\n\r\nexport function withoutColumns(columns, names = []) {\r\n return _.reject(columns, (column) => _.contains(names, column.name));\r\n}\r\n\r\nconst getAriaLabelTextTemplate = (i18n) => {\r\n return i18n ? i18n.getString('Click to learn more about {{item}}') : undefined;\r\n};\r\n\r\nconst getPerformanceMetrics = (i18n) => {\r\n const helpAriaLabelTextTemplate = getAriaLabelTextTemplate(i18n);\r\n\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n dynamic = {},\r\n } = config.get('Permissions');\r\n\r\n const {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n } = dynamic;\r\n\r\n const usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\n // columnConversion field was added for column conversion\r\n return [bingadsGridColumn({\r\n name: 'Clicks',\r\n title: s$i18n.property('PerformanceMetrics', 'Clicks'),\r\n sortable: true,\r\n property: 'PerformanceMetrics/Clicks',\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'Pop_BA_AccountsGrid_Clicks',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'Impressions',\r\n title: s$i18n.property('PerformanceMetrics', 'Impressions'),\r\n sortable: true,\r\n property: 'PerformanceMetrics/Impressions',\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'Pop_BA_AccountsGrid_Impr',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'CTR',\r\n title: s$i18n.property('PerformanceMetrics', 'ClickThruRate'),\r\n sortable: true,\r\n property: 'PerformanceMetrics/CTR',\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Pop_BA_AccountsGrid_CTR',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'AverageCPC',\r\n title: s$i18n.property('PerformanceMetrics', 'AverageCPC'),\r\n property: 'PerformanceMetrics/AverageCPC',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Pop_BA_AccountsGrid_CPC',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'AveragePosition',\r\n title: s$i18n.property('PerformanceMetrics', 'AveragePosition'),\r\n property: 'PerformanceMetrics/AveragePosition',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_AvgPosition',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'TopImpressionRate',\r\n title: s$i18n.property('PerformanceMetrics', 'TopImpressionRate'),\r\n property: 'PerformanceMetrics/TopImpressionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_TopImpressionRate',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'AbsoluteTopImpressionRate',\r\n title: s$i18n.property('PerformanceMetrics', 'AbsoluteTopImpressionRate'),\r\n property: 'PerformanceMetrics/AbsoluteTopImpressionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_AbsoluteTopImpressionRate',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'AverageCPM',\r\n title: s$i18n.property('PerformanceMetrics', 'AverageCPM'),\r\n property: 'PerformanceMetrics/AverageCPM',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_AvgCPM',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'Spend',\r\n title: s$i18n.property('PerformanceMetrics', 'Spend'),\r\n property: 'PerformanceMetrics/Spend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Pop_BA_AccountsGrid_Spend',\r\n helpAriaLabelTextTemplate,\r\n }),\r\n usePartialConversions ? bingadsGridColumn({\r\n name: 'PartialConversionCPA',\r\n title: s$i18n.property('PerformanceMetrics', 'CPA'),\r\n property: 'PerformanceMetrics/PartialConversionCPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_CPA',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'CPA',\r\n sourceSortableProperty: 'PerformanceMetrics/CPA',\r\n targetSortableProperty: 'PerformanceMetrics/PartialConversionCPA',\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'CPA',\r\n title: s$i18n.property('PerformanceMetrics', 'CPA'),\r\n property: 'PerformanceMetrics/CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_CPA',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'PartialConversionCPA',\r\n sourceSortableProperty: 'PerformanceMetrics/PartialConversionCPA',\r\n targetSortableProperty: 'PerformanceMetrics/CPA',\r\n },\r\n }),\r\n usePartialConversions ? bingadsGridColumn({\r\n name: 'ConversionsCredit',\r\n title: s$i18n.property('PerformanceMetrics', 'Conversions'),\r\n property: 'PerformanceMetrics/ConversionsCredit',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Pop_BA_AccountsGrid_Conv',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'Conversions',\r\n sourceSortableProperty: 'PerformanceMetrics/Conversions',\r\n targetSortableProperty: 'PerformanceMetrics/ConversionsCredit',\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'Conversions',\r\n title: s$i18n.property('PerformanceMetrics', 'Conversions'),\r\n property: 'PerformanceMetrics/Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'Pop_BA_AccountsGrid_Conv',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'ConversionsCredit',\r\n sourceSortableProperty: 'PerformanceMetrics/ConversionsCredit',\r\n targetSortableProperty: 'PerformanceMetrics/Conversions',\r\n },\r\n }),\r\n bingadsGridColumn({\r\n name: 'RevenueOnAdSpend',\r\n title: s$i18n.property('PerformanceMetrics', 'RevenueOnAdSpend'),\r\n property: 'PerformanceMetrics/RevenueOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_ReturnAdSpend',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'AdvertiserReportedRevenue',\r\n title: s$i18n.property('PerformanceMetrics', 'AdvertiserReportedRevenue'),\r\n property: 'PerformanceMetrics/AdvertiserReportedRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_Revenue',\r\n helpAriaLabelTextTemplate,\r\n }),\r\n usePartialConversions ?\r\n bingadsGridColumn({\r\n name: 'PartialConversionRate',\r\n title: s$i18n.property('PerformanceMetrics', 'ConversionRate'),\r\n property: 'PerformanceMetrics/PartialConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_ConvRate',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'ConversionRate',\r\n sourceSortableProperty: 'PerformanceMetrics/ConversionRate',\r\n targetSortableProperty: 'PerformanceMetrics/PartialConversionRate',\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'ConversionRate',\r\n title: s$i18n.property('PerformanceMetrics', 'ConversionRate'),\r\n property: 'PerformanceMetrics/ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_ConvRate',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'PartialConversionRate',\r\n sourceSortableProperty: 'PerformanceMetrics/PartialConversionRate',\r\n targetSortableProperty: 'PerformanceMetrics/ConversionRate',\r\n },\r\n }),\r\n usePartialConversions ?\r\n bingadsGridColumn({\r\n name: 'AllConversionsCredit',\r\n title: s$i18n.property('PerformanceMetrics', 'AllConversions'),\r\n property: 'PerformanceMetrics/AllConversionsCredit',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConv',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'AllConversions',\r\n sourceSortableProperty: 'PerformanceMetrics/AllConversions',\r\n targetSortableProperty: 'PerformanceMetrics/AllConversionsCredit',\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'AllConversions',\r\n title: s$i18n.property('PerformanceMetrics', 'AllConversions'),\r\n property: 'PerformanceMetrics/AllConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_AllConv',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'AllConversionsCredit',\r\n sourceSortableProperty: 'PerformanceMetrics/AllConversionsCredit',\r\n targetSortableProperty: 'PerformanceMetrics/AllConversions',\r\n },\r\n }),\r\n usePartialConversions ?\r\n bingadsGridColumn({\r\n name: 'AllPartialConversionCPA',\r\n title: s$i18n.property('PerformanceMetrics', 'AllConversionCPA'),\r\n property: 'PerformanceMetrics/AllPartialConversionCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvCPA',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'AllConversionCPA',\r\n sourceSortableProperty: 'PerformanceMetrics/AllConversionCPA',\r\n targetSortableProperty: 'PerformanceMetrics/AllPartialConversionCPA',\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'AllConversionCPA',\r\n title: s$i18n.property('PerformanceMetrics', 'AllConversionCPA'),\r\n property: 'PerformanceMetrics/AllConversionCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvCPA',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'AllPartialConversionCPA',\r\n sourceSortableProperty: 'PerformanceMetrics/AllPartialConversionCPA',\r\n targetSortableProperty: 'PerformanceMetrics/AllConversionCPA',\r\n },\r\n }),\r\n usePartialConversions ?\r\n bingadsGridColumn({\r\n name: 'AllPartialConversionRate',\r\n title: s$i18n.property('PerformanceMetrics', 'AllConversionRate'),\r\n property: 'PerformanceMetrics/AllPartialConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRate',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'AllConversionRate',\r\n sourceSortableProperty: 'PerformanceMetrics/AllConversionRate',\r\n targetSortableProperty: 'PerformanceMetrics/AllPartialConversionRate',\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'AllConversionRate',\r\n title: s$i18n.property('PerformanceMetrics', 'AllConversionRate'),\r\n property: 'PerformanceMetrics/AllConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRate',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'AllPartialConversionRate',\r\n sourceSortableProperty: 'PerformanceMetrics/AllPartialConversionRate',\r\n targetSortableProperty: 'PerformanceMetrics/AllConversionRate',\r\n },\r\n }),\r\n bingadsGridColumn({\r\n name: 'AllConversionAdvertiserReportedRevenue',\r\n title: s$i18n.property('PerformanceMetrics', 'AllConversionAdvertiserReportedRevenue'),\r\n property: 'PerformanceMetrics/AllConversionAdvertiserReportedRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRevenue',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'AllConversionRevenueOnAdSpend',\r\n title: s$i18n.property('PerformanceMetrics', 'AllConversionRevenueOnAdSpend'),\r\n property: 'PerformanceMetrics/AllConversionRevenueOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvROAS',\r\n helpAriaLabelTextTemplate,\r\n }), ...IsViewThroughConversionEnabled ? [\r\n usePartialConversions ?\r\n bingadsGridColumn({\r\n name: 'ViewThroughConversionsCredit',\r\n title: s$i18n.property('PerformanceMetrics', 'ViewThroughConversions'),\r\n property: 'PerformanceMetrics/ViewThroughConversionsCredit',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'ViewThroughConversions',\r\n sourceSortableProperty: 'PerformanceMetrics/ViewThroughConversions',\r\n targetSortableProperty: 'PerformanceMetrics/ViewThroughConversionsCredit',\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'ViewThroughConversions',\r\n title: s$i18n.property('PerformanceMetrics', 'ViewThroughConversions'),\r\n property: 'PerformanceMetrics/ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'ViewThroughConversionsCredit',\r\n sourceSortableProperty: 'PerformanceMetrics/ViewThroughConversionsCredit',\r\n targetSortableProperty: 'PerformanceMetrics/ViewThroughConversions',\r\n },\r\n })] : [],\r\n ...IsViewThroughConversionsRevenueEnabled ? [\r\n bingadsGridColumn({\r\n name: 'ViewThroughConversionsRevenue',\r\n title: s$i18n.property('PerformanceMetrics', 'ViewThroughConversionsRevenue'),\r\n property: 'PerformanceMetrics/ViewThroughConversionsRevenue',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRevenue',\r\n helpAriaLabelTextTemplate,\r\n }),\r\n usePartialConversions ?\r\n bingadsGridColumn({\r\n name: 'ViewThroughPartialConversionsCPA',\r\n title: s$i18n.property('PerformanceMetrics', 'ViewThroughConversionsCPA'),\r\n property: 'PerformanceMetrics/ViewThroughPartialConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'ViewThroughConversionsCPA',\r\n sourceSortableProperty: 'PerformanceMetrics/ViewThroughConversionsCPA',\r\n targetSortableProperty: 'PerformanceMetrics/ViewThroughPartialConversionsCPA',\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'ViewThroughConversionsCPA',\r\n title: s$i18n.property('PerformanceMetrics', 'ViewThroughConversionsCPA'),\r\n property: 'PerformanceMetrics/ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'ViewThroughPartialConversionsCPA',\r\n sourceSortableProperty: 'PerformanceMetrics/ViewThroughPartialConversionsCPA',\r\n targetSortableProperty: 'PerformanceMetrics/ViewThroughConversionsCPA',\r\n },\r\n }),\r\n bingadsGridColumn({\r\n name: 'ViewThroughConversionsReturnOnAdSpend',\r\n title: s$i18n.property('PerformanceMetrics', 'ViewThroughConversionsReturnOnAdSpend'),\r\n property: 'PerformanceMetrics/ViewThroughConversionsReturnOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvReturnOnAdSpend',\r\n helpAriaLabelTextTemplate,\r\n }),\r\n usePartialConversions ?\r\n bingadsGridColumn({\r\n name: 'ViewThroughPartialConversionsRate',\r\n title: s$i18n.property('PerformanceMetrics', 'ViewThroughConversionsRate'),\r\n property: 'PerformanceMetrics/ViewThroughPartialConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'ViewThroughConversionsRate',\r\n sourceSortableProperty: 'PerformanceMetrics/ViewThroughConversionsRate',\r\n targetSortableProperty: 'PerformanceMetrics/ViewThroughPartialConversionsRate',\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'ViewThroughConversionsRate',\r\n title: s$i18n.property('PerformanceMetrics', 'ViewThroughConversionsRate'),\r\n property: 'PerformanceMetrics/ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n helpAriaLabelTextTemplate,\r\n columnConversion: {\r\n sourceColumnName: 'ViewThroughPartialConversionsRate',\r\n sourceSortableProperty: 'PerformanceMetrics/ViewThroughPartialConversionsRate',\r\n targetSortableProperty: 'PerformanceMetrics/ViewThroughConversionsRate',\r\n },\r\n }),\r\n ] : [],\r\n bingadsGridColumn({\r\n name: 'VideoViews',\r\n title: s$i18n.property('PerformanceMetrics', 'VideoViews'),\r\n property: 'PerformanceMetrics/VideoViews',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_VideoViews',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'ViewThroughRate',\r\n title: s$i18n.property('PerformanceMetrics', 'ViewThroughRate'),\r\n property: 'PerformanceMetrics/ViewThroughRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_ViewThroughRate',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'AverageCPV',\r\n title: s$i18n.property('PerformanceMetrics', 'AverageCPV'),\r\n property: 'PerformanceMetrics/AverageCPV',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_AverageCPV',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'TotalWatchTimeInMS',\r\n title: s$i18n.property('PerformanceMetrics', 'TotalWatchTimeInMS'),\r\n property: 'PerformanceMetrics/TotalWatchTimeInMS',\r\n sortable: true,\r\n type: 'number',\r\n format: 'thousandth',\r\n helpId: 'Page_CampaignGrids_TotalWatchTime',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'AverageWatchTimePerImpression',\r\n title: s$i18n.property('PerformanceMetrics', 'AverageWatchTimePerImpression'),\r\n property: 'PerformanceMetrics/AverageWatchTimePerImpression',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_AverageWatchTimePerImpression',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'AverageWatchTimePerVideoView',\r\n title: s$i18n.property('PerformanceMetrics', 'AverageWatchTimePerVideoView'),\r\n property: 'PerformanceMetrics/AverageWatchTimePerVideoView',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_AverageWatchTimePerVideoView',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'VideoViewsAt25Percent',\r\n title: s$i18n.property('PerformanceMetrics', 'VideoViewsAt25Percent'),\r\n property: 'PerformanceMetrics/VideoViewsAt25Percent',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_VideoViewsAt25Percent',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'VideoViewsAt50Percent',\r\n title: s$i18n.property('PerformanceMetrics', 'VideoViewsAt50Percent'),\r\n property: 'PerformanceMetrics/VideoViewsAt50Percent',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_VideoViewsAt50Percent',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'VideoViewsAt75Percent',\r\n title: s$i18n.property('PerformanceMetrics', 'VideoViewsAt75Percent'),\r\n property: 'PerformanceMetrics/VideoViewsAt75Percent',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_VideoViewsAt75Percent',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'CompletedVideoViews',\r\n title: s$i18n.property('PerformanceMetrics', 'CompletedVideoViews'),\r\n property: 'PerformanceMetrics/CompletedVideoViews',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_CompletedVideoViews',\r\n helpAriaLabelTextTemplate,\r\n }), bingadsGridColumn({\r\n name: 'VideoCompletionRate',\r\n title: s$i18n.property('PerformanceMetrics', 'VideoCompletionRate'),\r\n property: 'PerformanceMetrics/VideoCompletionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_VideoCompletionRate',\r\n helpAriaLabelTextTemplate,\r\n })];\r\n};\r\n\r\nfunction getDeliveryStatus({\r\n DeliveryStatus,\r\n GeoCodeStatus,\r\n i18n,\r\n}) {\r\n const DeliveryStatusError = ['EditorialRejected', 'EditorialAppealRejected', 'CAMEditorialRejected', 'CreditCardExpired', 'IOExceeded', 'PaymentInformationMissing', 'Other', 'CampaignBudgetPaused', 'MigrationPaused', 'AdGroupDeleted', 'AdGroupExpired', 'CampaignDeleted'];\r\n const DeliveryStatusNormal = ['Eligible', 'EditorialApprovedLimited', 'EditorialApprovedLimitedAppealRejected', 'Incomplete', 'InlineOpportunity'];\r\n const GeoCodeStatusEnum = ['Pending', 'Complete', 'Invalid', 'Failed'];\r\n const DeliveryStatusNoGlyph = ['Eligible', 'BudgetSuggestions', 'Incomplete', 'CampaignBudgetPaused', 'GeoCodingIncomplete', 'InlineOpportunity'];\r\n const labelDeliveryStatus = `Label_DeliveryStatus_${DeliveryStatus}`;\r\n\r\n let ret = {\r\n i18n,\r\n deliveryStatus: labelDeliveryStatus,\r\n };\r\n\r\n if (!DeliveryStatus || DeliveryStatusNormal.indexOf(DeliveryStatus) > -1) {\r\n ret.status = 'normal';\r\n } else if (DeliveryStatusError.indexOf(DeliveryStatus) > -1) {\r\n ret.status = 'error';\r\n } else {\r\n ret.status = 'warning';\r\n }\r\n\r\n if (DeliveryStatus === 'GeoCodingIncomplete') {\r\n const GeoStatus = GeoCodeStatusEnum.indexOf(GeoCodeStatus);\r\n\r\n ret.deliveryStatus = `${ret.deliveryStatus}_${GeoStatus}`;\r\n }\r\n\r\n if (DeliveryStatusNoGlyph.indexOf(DeliveryStatus) === -1) {\r\n ret.hasGlyph = true;\r\n }\r\n\r\n return ret;\r\n}\r\n\r\nexport function getDeliveryColumn({ isForVNext, i18n }) {\r\n return bingadsGridColumn({\r\n name: 'Delivery',\r\n property: 'AdExtension',\r\n sortable: 'AdExtension/Delivery',\r\n type: 'string',\r\n title: s$i18n.property('AdExtension', 'Delivery'),\r\n template: (local) => {\r\n if (_.isEmpty(local.value) || _.isEmpty(local.value.Delivery)) {\r\n return '-';\r\n }\r\n\r\n return deliveryStatusTemplate({\r\n DeliveryTemplates: getDeliveryStatus({\r\n DeliveryStatus: local.value.Delivery,\r\n GeoCodeStatus: local.value.GeoCodeStatus,\r\n IsAppealable: _.get(local, ['AdExtensionItemIdToEditorialReasonCollection', 'Value', 'IsAppealable']),\r\n i18n: i18nGlobal,\r\n }),\r\n isForVNext,\r\n });\r\n },\r\n bodyClasses: ['col-Delivery'],\r\n helpId: 'Page_CampaignGrids_Delivery',\r\n helpAriaLabelTextTemplate: getAriaLabelTextTemplate(i18n),\r\n });\r\n}\r\n\r\nconst getEntityColumns = (i18n) => {\r\n return [bingadsGridColumn({\r\n name: 'Status',\r\n sortable: true,\r\n title: s$i18n.property('Campaign', 'Status'),\r\n template: (local) => {\r\n if (_.isEmpty(local.value)) {\r\n return ' ';\r\n }\r\n\r\n return statusIconColumnTemplate({\r\n Status: local.value,\r\n });\r\n },\r\n }), bingadsGridColumn({\r\n name: 'CampaignName',\r\n property: (item) => {\r\n return _.extend(_.pick(item.Campaign, 'Id', 'Name', 'BaseCampaignName'), {\r\n IsDeleted: _.result(item.AdExtension, 'Delivery', '') === 'CampaignDeleted',\r\n });\r\n },\r\n type: 'string',\r\n sortable: 'Campaign/Name',\r\n title: s$i18n.type('Campaign'),\r\n bodyClasses: ['col-CampaignName'],\r\n }), bingadsGridColumn({\r\n name: 'AdGroupName',\r\n property: (item) => {\r\n return _.defaults(_.pick(item.AdGroup, 'Id', 'Name'), {\r\n CampaignId: _.result(item.Campaign, 'Id', ''),\r\n IsDeleted: _.result(item.AdExtension, 'Delivery', '') === 'AdGroupDeleted' || _.result(item.AdExtension, 'Delivery', '') === 'CampaignDeleted',\r\n });\r\n },\r\n type: 'string',\r\n sortable: 'AdGroup/Name',\r\n title: s$i18n.type('Adgroup'),\r\n bodyClasses: ['col-AdGroupName'],\r\n }), bingadsGridColumn({\r\n name: 'DisplayBiddingStrategyType',\r\n sortable: true,\r\n title: s$i18n.property('Campaign', 'DisplayBiddingStrategyType'),\r\n helpId: 'pop_BA_CampaignGrids_BidStrategy',\r\n helpAriaLabelTextTemplate: getAriaLabelTextTemplate(i18n),\r\n template: (local) => {\r\n if (_.isEmpty(local.value)) {\r\n return ' ';\r\n }\r\n\r\n return s$i18n.value('Campaign', 'DisplayBiddingStrategyType', local.value);\r\n },\r\n }), bingadsGridColumn({\r\n name: 'CampaignType',\r\n property: 'Campaign/CampaignType',\r\n sortable: 'Campaign/CampaignType',\r\n title: s$i18n.property('Campaign', 'CampaignType'),\r\n template: (local) => {\r\n if (_.isEmpty(local.value)) {\r\n return ' ';\r\n }\r\n\r\n return s$i18n.value('Campaign', 'CampaignType', local.value);\r\n },\r\n }), getDeliveryColumn({ isForVNext: false, i18n })];\r\n};\r\n\r\nconst Performance = {\r\n title: s$i18n.type('Performance'),\r\n columns: ['Clicks', 'Impressions', 'CTR', 'AverageCPC', 'AveragePosition', 'AverageCPM', 'Spend'],\r\n};\r\n\r\nconst Conversions = {\r\n title: s$i18n.type('Conversions'),\r\n columns: applyPartialConversionColumnName(config.get('Permissions'), [\r\n 'CPA',\r\n 'Conversions',\r\n 'ConversionRate',\r\n 'RevenueOnAdSpend',\r\n 'AdvertiserReportedRevenue',\r\n 'AllConversionCPA',\r\n 'AllConversions',\r\n 'AllConversionRate',\r\n 'AllConversionRevenueOnAdSpend',\r\n 'AllConversionAdvertiserReportedRevenue',\r\n 'ViewThroughConversions',\r\n 'ViewThroughConversionsRevenue',\r\n 'ViewThroughConversionsCPA',\r\n 'ViewThroughConversionsReturnOnAdSpend',\r\n 'ViewThroughConversionsRate']),\r\n};\r\n\r\nconst getColumnChooser = (choosers = {}, appendList = [], blackList = []) => {\r\n let ret = _.clone(choosers);\r\n\r\n ret.columns = _.chain(ret.columns)\r\n .union(appendList)\r\n .difference(blackList)\r\n .value();\r\n return ret;\r\n};\r\n\r\nexport function getPerformanceColumnChooser(appendList = [], blackList = []) {\r\n return getColumnChooser(Performance, appendList, blackList);\r\n}\r\n\r\nexport function getConversionsColumnChooser(appendList = [], blackList = []) {\r\n const permissions = config.get('Permissions');\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n } = permissions;\r\n\r\n const combinedBlackList = applyPartialConversionColumnName(permissions, [\r\n ...IsViewThroughConversionEnabled ? [] : ['ViewThroughConversions'],\r\n ...IsViewThroughConversionsRevenueEnabled ? [] : ['ViewThroughConversionsRevenue', 'ViewThroughConversionsCPA', 'ViewThroughConversionsReturnOnAdSpend', 'ViewThroughConversionsRate'],\r\n ]);\r\n\r\n return getColumnChooser(Conversions, appendList, [...blackList, ...combinedBlackList]);\r\n}\r\n\r\nexport function getSharedColumns(names = [], i18n = null) {\r\n let ret = _.filter(getEntityColumns(i18n), (item) => {\r\n return _.contains(names, item.name);\r\n });\r\n\r\n const performanceMetrics = getPerformanceMetrics(i18n);\r\n\r\n if (_.contains(names, 'PerformanceMetrics')) { //if contains 'PerformanceMetrics' and 'Clicks' at the same time, only add all PerformanceMetrics columns\r\n ret = ret.concat(performanceMetrics);\r\n } else {\r\n const biColumns = _.filter(performanceMetrics, (item) => {\r\n return _.contains(names, item.name);\r\n });\r\n\r\n ret = ret.concat(biColumns);\r\n }\r\n\r\n return ret;\r\n}\r\n\r\nexport function getSharedCustomizedColumns(items = [], i18n = null) {\r\n const names = _.pluck(items, 'name');\r\n let ret = _.filter(getEntityColumns(i18n), (item) => {\r\n return _.contains(names, item.name);\r\n });\r\n\r\n _.each(items, (item) => {\r\n let column = _.find(ret, {name: item.name});\r\n\r\n if (column) {\r\n column.template = (local) => {\r\n const verification = item.name === 'CampaignName' && local.value.Id ? true : _.isNumber(local.value.CampaignId);\r\n\r\n if (_.isEmpty(local.value) || !verification) {\r\n return '-';\r\n }\r\n\r\n let ariaLabel;\r\n\r\n if (i18n) {\r\n if (item.name === 'CampaignName') {\r\n ariaLabel = i18n.getString('Click to scope to campaign {{campaignName}}').replace('{{campaignName}}', local.value.Name);\r\n } else if (item.name === 'AdGroupName') {\r\n ariaLabel = i18n.getString('Click to scope to ad group {{adGroupName}}').replace('{{adGroupName}}', local.value.Name);\r\n }\r\n }\r\n\r\n return item.customizedTemplate({\r\n name: local.value.Name,\r\n parentName: local.value.BaseCampaignName,\r\n cid: _.result(config.get('CurrentCustomer'), 'Id'),\r\n aid: _.result(config.get('CurrentAccount'), 'Id'),\r\n cmpid: item.name === 'CampaignName' ? local.value.Id : local.value.CampaignId,\r\n adgid: local.value.Id,\r\n type: item.associationType,\r\n isDeleted: local.value.IsDeleted,\r\n ariaLabel,\r\n });\r\n };\r\n }\r\n });\r\n\r\n return ret;\r\n}\r\n\r\nexport function getFilterEntity(schema, filterList, includePerformanceMetrics = true) {\r\n let filterEntity = filterOptionsFromSchema(schema);\r\n\r\n filterEntity.fields = _.filter(filterEntity.fields, (field) => {\r\n return _.contains(filterList, field.property) || (includePerformanceMetrics && field.property.indexOf('PerformanceMetrics/') === 0);\r\n });\r\n\r\n //override name\r\n filterEntity.fields = _.map(filterEntity.fields, (field) => {\r\n if (field.property.indexOf('PerformanceMetrics/') !== 0) {\r\n field.name = field.property.replace(/\\//g, '');\r\n }\r\n return field;\r\n });\r\n\r\n //override field DisplayBiddingStrategyType\r\n let bidStrategyOption = _.findWhere(filterEntity.fields, {property: 'DisplayBiddingStrategyType'});\r\n\r\n if (!_.isEmpty(bidStrategyOption)) {\r\n const bidStrategyType = schema.properties.DisplayBiddingStrategyType.enum;\r\n const enumValues = _.map(bidStrategyType, (type) => {\r\n return mapEnumValueForFilter('BiddingStrategyType', type);\r\n });\r\n\r\n _.extend(bidStrategyOption, {\r\n localized: _.object(enumValues, _.map(bidStrategyType, (type) => {\r\n return s$i18n.value('Campaign', 'DisplayBiddingStrategyType', type);\r\n })),\r\n operators: ['eq'],\r\n enum: enumValues,\r\n });\r\n }\r\n\r\n return filterEntity;\r\n}\r\n","import appConfig from '@bingads-webui-component-legacy/config/index';\r\nimport logger from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport stateManager from '@bingads-webui-component-legacy/statemanager/campaignStateManager';\r\nimport {getCreatedBy, getFrequency, getExpression,\r\n getNotificationType, getEditLink} from './rule-mapper';\r\nimport { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport sessionStore from '@bingads-webui-component-legacy/js-data-storage/session-storage';\r\nimport { getFilters } from '@bingads-webui-component-legacy/bingads-grid/service/filter-preferences';\r\nimport cacheService from '@bingads-webui-static-legacy/cache-service';\r\nimport jsdataCampaign from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport odata from '@bingads-webui-static-legacy/communication/channel/odata';\r\nimport preferenceService from '@bingads-webui-component-legacy/preference/service/index';\r\nimport dataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\nimport * as i18nErrors from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport * as customColumnPreference from '@bingads-webui-component-legacy/bingads-grid/service/custom-column-preferences';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/bulk-operation');\r\nconst legacyGlobalI18n = window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\nconst schemaI18nCampaign = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\n\r\nexport const deps = {\r\n i18n,\r\n appConfig,\r\n logger,\r\n stateManager,\r\n getCreatedBy,\r\n getFrequency,\r\n getExpression,\r\n getNotificationType,\r\n getEditLink,\r\n bingadsGridColumn,\r\n jsdataCampaign,\r\n preferenceService,\r\n legacyGlobalI18n,\r\n sessionStore,\r\n getFilters,\r\n schemaI18nCampaign,\r\n cacheService,\r\n dataContextManager,\r\n odata,\r\n i18nErrors,\r\n customColumnPreference,\r\n};\r\n","import _ from 'underscore';\r\nimport kendo from '@bingads-webui/kendo/kendo.core';\r\nimport cronParser from '@bingads-webui-static-legacy/cron';\r\nimport ruleAuthoringOptions from '@bingads-webui-static-legacy/schema/automatedRules/ruleAuthoringOptions';\r\nimport odataParser from '@bingads-webui-static-legacy/bulk-edit/bulkEdit/bulkEditi18n';\r\nimport JobModel from '@bingads-webui-campaign-legacy/bulk-operation/util/bulk-edit-job';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/bulk-operation');\r\nconst i18nGlobal = window.globalLegacyI18n.get('module/extension/requirejs/i18n!global');\r\n\r\n// [Todo: hezhan] check no result string of projection-grid, align the config.\r\nconst noData = '-';\r\n\r\nexport function getDateTime(date) {\r\n const offset = -date.getTimezoneOffset();\r\n const offsetStr = offset === 0 ?\r\n ' (GMT)' :\r\n ` (GMT${\r\n offset >= 0 ? '+' : '-'\r\n }${kendo.toString(Math.abs(offset / 60), '00')\r\n }:${\r\n kendo.toString(Math.abs(offset % 60), '00')\r\n })`;\r\n\r\n return !_.isUndefined(date) && !_.isNull(date) ?\r\n i18n.formatDate(date) + offsetStr :\r\n noData;\r\n}\r\n\r\nexport function getCreatedBy(taskItem) {\r\n return {\r\n modifiedBy: taskItem.ModifiedBy.Name,\r\n modifiedAt: i18n.formatDate(new Date(taskItem.ModifiedAt), { datetime: 'full' }),\r\n };\r\n}\r\n\r\nexport function getFrequency(taskItem) {\r\n if (_.isNull(taskItem) || _.isNull(taskItem.Cron)) {\r\n return noData;\r\n }\r\n\r\n let cronString = '';\r\n let timeZone = '';\r\n let dateRange = '';\r\n const model = cronParser.parse(taskItem.Cron);\r\n\r\n if (model) {\r\n let hourString = i18nGlobal.getString(`DailyOptions_${model.hour}`);\r\n let date = new Date(model.year, model.month - 1, model.dayOfMonth, 0, 0, 0, 0);\r\n\r\n switch (cronParser.getFrequency()) {\r\n case cronParser.frequency.ONCE:\r\n cronString = i18n.getString('AutomatedRules_Frequency_WeeklyTemplate').replace('{0}', i18n.getString('AutomatedRules_FrequencyGrain_Once'));\r\n cronString = cronString.replace('{1}', date.toLocaleDateString());\r\n cronString = cronString.replace('{2}', hourString);\r\n break;\r\n case cronParser.frequency.MONTHLY:\r\n cronString = i18n.getString('AutomatedRules_Frequency_MonthlyTemplate').replace('{0}', i18n.getString('AutomatedRules_FrequencyGrain_Monthly'));\r\n cronString = cronString.replace('{1}', model.dayOfMonth);\r\n cronString = cronString.replace('{2}', hourString);\r\n break;\r\n case cronParser.frequency.WEEKLY:\r\n cronString = i18n.getString('AutomatedRules_Frequency_WeeklyTemplate').replace('{0}', i18n.getString('AutomatedRules_FrequencyGrain_Weekly'));\r\n cronString = cronString.replace('{1}', i18nGlobal.getString(`WeeklyOptions_${model.dayOfWeek}`));\r\n cronString = cronString.replace('{2}', hourString);\r\n break;\r\n case cronParser.frequency.DAILY:\r\n cronString = i18n.getString('AutomatedRules_Frequency_DailyTemplate').replace('{0}', i18n.getString('AutomatedRules_FrequencyGrain_Daily'));\r\n cronString = cronString.replace('{1}', hourString);\r\n break;\r\n case cronParser.frequency.HOURLY:\r\n cronString = i18n.getString('AutomatedRules_FrequencyGrain_Hourly');\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n if (taskItem.TimeZoneId > 0) {\r\n timeZone = i18nGlobal.getString(`TimeZoneId_${taskItem.TimeZoneId}`);\r\n }\r\n if (taskItem.Selection && taskItem.Selection.DateRange && taskItem.Selection.DateRange.DateRangePreset) {\r\n dateRange = i18n.getString('AutomatedRules_DataDateRange_Template').replace('{0}', i18nGlobal.getString(`DataDateRangeOptions_${taskItem.Selection.DateRange.DateRangePreset}`).toLowerCase());\r\n }\r\n\r\n return {\r\n cronString,\r\n timeZone,\r\n dateRange,\r\n };\r\n}\r\n\r\nexport function getNotificationType(taskItem) {\r\n if (_.isNull(taskItem) || _.isNull(taskItem.NotificationType)) {\r\n return noData;\r\n }\r\n const key = 'NotificationType_'.concat(taskItem.NotificationType === ruleAuthoringOptions.emailOptions.OnChangeOrError ? 'OnChangeOrError' : taskItem.NotificationType);\r\n\r\n return i18n.getString(key);\r\n}\r\n\r\nfunction isEmailRule(model) {\r\n\r\n if (!model || model.get('BatchAction').Actions.length !== 1) {\r\n return false;\r\n } else {\r\n return model.get('BatchAction').Actions[0]['@odata.type'] === '#Model.QueryOnlyAction';\r\n }\r\n}\r\n\r\nexport function getExpression(taskItem) {\r\n if (_.isNull(taskItem)) {\r\n return noData;\r\n }\r\n\r\n const tempModel = new JobModel(taskItem);\r\n const desc = odataParser.getRuleSelection(tempModel, 4);\r\n const summary = isEmailRule(tempModel) ? {summary: i18n.getString('AutomatedRules_RulesManagementGrid_EmailActionDisplay')} : odataParser.getJobDescription(tempModel);\r\n\r\n const result = {};\r\n\r\n if (summary) {\r\n _.defaults(result, summary);\r\n }\r\n if (desc) {\r\n _.defaults(result, { desc });\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function getEditLink(taskItem) {\r\n const actionName = taskItem.State === 'Deleted' ? i18n.getString('AutomatedRules_RulesManagementGrid_CreateSimilarRule') : i18n.getString('AutomatedRules_RulesManagementGrid_EditRule');\r\n\r\n return {\r\n id: taskItem.Id,\r\n actionName,\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport odataParser from '@bingads-webui-static-legacy/bulk-edit/bulkEdit/bulkEditi18n';\r\nimport gridFilterSerializer from '@bingads-webui-campaign-legacy/bulk-operation/util/grid-filter-serializer';\r\nimport { getTitlePreviewFromJson, getMoreTitleHintFromJson } from '@bingads-webui-campaign/summary-grid-helper';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/bulk-operation');\r\n\r\nexport function getStartTime(jobModel) {\r\n return i18n.formatDate(jobModel.get('CreationTime'), {\r\n datetime: 'short',\r\n });\r\n}\r\n\r\nexport function getDescription(jobModel) {\r\n const description = odataParser.getJobDescription(jobModel);\r\n\r\n return {\r\n summary: description.summary,\r\n args: description.args,\r\n };\r\n}\r\n\r\nconst entityMap = {\r\n 'Campaign': {\r\n targetTab: 'Campaign',\r\n queryParts: ['campaigns'],\r\n },\r\n 'Keyword': {\r\n targetTab: 'Keywords',\r\n queryParts: ['keywords'],\r\n },\r\n 'AdGroup': {\r\n targetTab: 'AdGroup',\r\n queryParts: ['adgroups'],\r\n },\r\n 'Ad': {\r\n targetTab: 'Ads',\r\n queryParts: ['ads'],\r\n },\r\n 'AdGroupAudienceAssociation': {\r\n targetTab: 'AudiencesAssociation',\r\n queryParts: ['audiences'],\r\n },\r\n 'AudienceAssociation': {\r\n targetTab: 'AudiencesAssociation',\r\n queryParts: ['audiences'],\r\n },\r\n 'DsaTarget': {\r\n targetTab: 'AutoTargets',\r\n queryParts: ['autotargets'],\r\n },\r\n};\r\n\r\nexport function getScopeCallback(jobModel) {\r\n const filter = gridFilterSerializer.fromDescription(jobModel.get('Description'));\r\n const entity = jobModel.get('Entity');\r\n const campaign = jobModel.get('Campaign');\r\n const adgroup = jobModel.get('AdGroup');\r\n const entityObj = _.result(entityMap, entity, {\r\n targetTab: 'Campaign',\r\n queryParts: ['campaigns'],\r\n });\r\n const queryParts = entityObj.queryParts;\r\n let routeArgs;\r\n let routeUrl;\r\n\r\n if (filter && filter.FilterExpressions) {\r\n queryParts.push(`f-${gridFilterSerializer.toQueryString(filter.FilterExpressions)}`);\r\n }\r\n\r\n if (entity !== 'Campaign' && campaign && campaign.Id) {\r\n const campaignId = campaign.Id;\r\n let adgroupId;\r\n\r\n queryParts.push(campaignId);\r\n if (adgroup && adgroup.ID) {\r\n adgroupId = adgroup.ID;\r\n queryParts.push(adgroupId);\r\n }\r\n routeArgs = {\r\n 'campaign_id': campaignId,\r\n 'adgroup_id': adgroupId,\r\n };\r\n\r\n\r\n }\r\n\r\n if (filter && filter.FilterExpressions) {\r\n return _.bind(window.App.router.navigate, window.App.router, queryParts.join('/'));\r\n } else {\r\n routeUrl = window.App.router_new.legacy_tab_to_url(entityObj.targetTab);\r\n return _.bind(window.App.navigate, window.App, routeUrl, { param: routeArgs });\r\n }\r\n}\r\n\r\nexport function getSelection(jobModel, vnextInfo) {\r\n const selection = odataParser.getJobSelection(jobModel);\r\n let scopeCallback = !selection || selection.idBased || vnextInfo ? null : getScopeCallback(jobModel);\r\n\r\n return {\r\n header: selection.header,\r\n scope: selection.scope,\r\n idBased: selection.idBased,\r\n filter: selection.filter,\r\n footer: selection.footer,\r\n scopeCallback,\r\n isForVnext: !!vnextInfo,\r\n };\r\n}\r\n\r\nfunction entityToObject(entityKey) {\r\n const keys = _.pluck(entityKey || [], 'Key');\r\n const values = _.pluck(entityKey || [], 'Value');\r\n\r\n return _.object(keys, values);\r\n}\r\n\r\nfunction getCampaignLink(campaignId) {\r\n return `#/customer/:customer_id/account/:account_id/campaign/${campaignId}/adgroup`;\r\n}\r\n\r\nfunction getUiNextCampaignLink(campaignId, scope) {\r\n const {\r\n values: {\r\n cid,\r\n aid,\r\n },\r\n } = scope;\r\n\r\n return `/campaign/vnext/adgroups?aid=${aid}&cid=${cid}&campaignId=${campaignId}`;\r\n}\r\n\r\nfunction getAdgroupLink({\r\n CampaignId, AdGroupId, AdTitle, AdType,\r\n}) {\r\n let subPath = 'keyword';\r\n\r\n if (_.isString(AdTitle) || AdType === 'Responsive') {\r\n subPath = 'ad';\r\n }\r\n\r\n return `#/customer/:customer_id/account/:account_id/campaign/${CampaignId}/adgroup/${AdGroupId}/${subPath}`;\r\n}\r\n\r\nfunction getUiNextAdgroupLink({\r\n CampaignId, AdGroupId, AdTitle, AdType,\r\n}, scope) {\r\n const {\r\n values: {\r\n cid,\r\n aid,\r\n },\r\n } = scope;\r\n let subPath = 'keywords';\r\n\r\n if (_.isString(AdTitle) || AdType === 'Responsive') {\r\n subPath = 'ads';\r\n }\r\n\r\n return `/campaign/vnext/${subPath}?aid=${aid}&cid=${cid}&campaignId=${CampaignId}&adGroupId=${AdGroupId}`;\r\n}\r\n\r\nconst entityKeyMap = {\r\n 'Campaign': 'CampaignName',\r\n 'AdGroup': 'AdgroupName',\r\n 'Keyword': 'Keyword',\r\n 'Ad': 'AdTitle',\r\n 'AdGroupAudienceAssociation': 'AudienceName',\r\n 'AudienceAssociation': 'AudienceName',\r\n 'DsaTarget': 'AdgroupDsaTargetCriterionName',\r\n 'Hotel': 'HotelName',\r\n 'HotelGroup': 'HotelGroupName',\r\n 'PerformanceTarget': 'PerformanceTargetName',\r\n};\r\n\r\nfunction getEntityKeyField(entityType) {\r\n return entityKeyMap[entityType];\r\n}\r\n\r\nexport function getEntityWrapper(jobModel, vnextInfo) {\r\n const entityKeyField = getEntityKeyField(jobModel.get('Entity'));\r\n const isForVnext = !!vnextInfo;\r\n\r\n return function(bulkEditResult) {\r\n // [todo: hezhan] bug 741286, double check the logic here to origin author\r\n if (!_.isNull(bulkEditResult.EntityKey) && !_.isUndefined(bulkEditResult.EntityKey) && bulkEditResult.EntityKey.length > 1) {\r\n const dictionary = entityToObject(bulkEditResult.EntityKey);\r\n let entityName;\r\n let moreTitleHint;\r\n\r\n if (_.isUndefined(dictionary.AdHeadlines)) {\r\n entityName = entityKeyField && dictionary[entityKeyField];\r\n } else {\r\n entityName = getTitlePreviewFromJson(dictionary.AdHeadlines);\r\n moreTitleHint = getMoreTitleHintFromJson(dictionary.AdHeadlines, i18n);\r\n }\r\n\r\n return {\r\n campaign: {\r\n name: dictionary.CampaignName,\r\n url: isForVnext ?\r\n getUiNextCampaignLink(dictionary.CampaignId, vnextInfo.scope) :\r\n getCampaignLink(dictionary.CampaignId),\r\n id: dictionary.CampaignId,\r\n ariaLabel: i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: dictionary.CampaignName }),\r\n },\r\n adGroup: {\r\n name: dictionary.AdgroupName,\r\n url: isForVnext ?\r\n getUiNextAdgroupLink(_.pick(dictionary, 'CampaignId', 'AdGroupId', 'AdTitle', 'AdType'), vnextInfo.scope) :\r\n getAdgroupLink(_.pick(dictionary, 'CampaignId', 'AdGroupId', 'AdTitle', 'AdType')),\r\n id: dictionary.AdGroupId,\r\n campaignId: dictionary.CampaignId,\r\n ariaLabel: i18n.getString('Click to scope to ad group {{adGroupName}}', { adGroupName: dictionary.AdgroupName }),\r\n },\r\n entityName,\r\n moreTitleHint,\r\n isForVnext,\r\n };\r\n } else {\r\n return {};\r\n }\r\n };\r\n}\r\n\r\nexport function getEntity(bulkEditResult) {\r\n if (!_.isNull(bulkEditResult.EntityKey) && !_.isUndefined(bulkEditResult.EntityKey) && bulkEditResult.EntityKey.length > 1) {\r\n const dictionary = entityToObject(bulkEditResult.EntityKey);\r\n\r\n return {\r\n campaign: {\r\n name: dictionary.CampaignName,\r\n url: getCampaignLink(dictionary.CampaignId),\r\n },\r\n adGroup: {\r\n name: dictionary.AdgroupName,\r\n url: getAdgroupLink(_.pick(dictionary, 'CampaignId', 'AdGroupId', 'AdTitle', 'AdType')),\r\n },\r\n keyword: {\r\n name: dictionary.Keyword,\r\n },\r\n ad: {\r\n title: dictionary.AdTitle || `{${i18n.getString('Ad_DSA_Title')}}`,\r\n },\r\n };\r\n } else {\r\n return {};\r\n }\r\n}\r\n\r\n// split error msg from MT\r\n// \"LabelIdInvalid\" => \"label id invalid\"\r\nfunction splitErrorMsg(errMsg = '') {\r\n const splitStr = errMsg.replace(/([A-Z])/g, ' $1').toLowerCase().trim();\r\n\r\n return splitStr.charAt(0).toUpperCase() + splitStr.slice(1);\r\n}\r\n\r\n// if an error message comes from MT, then split it.\r\nfunction normalizeErrorMsg(current = [], origin = []) {\r\n return current.map((msg) => {\r\n if (origin.includes(msg)) {\r\n return splitErrorMsg(msg);\r\n }\r\n return msg;\r\n });\r\n}\r\n\r\nexport function getStatusText(jobModel) {\r\n return (bulkEditResult) => {\r\n const errors = odataParser.mapEntityErrors(bulkEditResult);\r\n\r\n return {\r\n i18n,\r\n success: !bulkEditResult.HasError,\r\n errors: normalizeErrorMsg(errors, bulkEditResult.Errors || []),\r\n attemptedValue: i18n.getString('BulkEdit_HistoryJobDetails_Entity_AttemptedValue_V2', {\r\n attempted: odataParser.formatEntityValue(jobModel, bulkEditResult.Changes, true),\r\n }),\r\n };\r\n };\r\n}\r\n\r\nexport function getCopyPasteStatusText() {\r\n return (bulkEditResult) => {\r\n const errors = odataParser.mapEntityErrors(bulkEditResult);\r\n\r\n return {\r\n i18n,\r\n success: !bulkEditResult.HasError,\r\n errors: normalizeErrorMsg(errors, bulkEditResult.Errors || []),\r\n attemptedValue: null,\r\n };\r\n };\r\n}\r\n\r\nfunction getResultValue(bulkEditResult, isNew, jobModel, isCopyPaste, vnextInfo) {\r\n if ((isNew && bulkEditResult.HasError) || _.size(bulkEditResult.Changes) < 1) {\r\n return i18n.getString('BulkEdit_HistoryJobDetails_Entity_NoChange');\r\n } else {\r\n const result = odataParser.formatEntityValue(jobModel, bulkEditResult.Changes, isNew, bulkEditResult.EntityKey);\r\n\r\n if (_.isObject(result)) {\r\n const entityKeyField = getEntityKeyField(jobModel.get('Entity'));\r\n const dictionary = entityToObject(bulkEditResult.EntityKey);\r\n\r\n result.isForVnext = !!vnextInfo;\r\n\r\n if (_.isEmpty(dictionary.AdHeadlines)) {\r\n if (isCopyPaste) {\r\n if (entityKeyField && (entityKeyField !== entityKeyMap.Campaign && entityKeyField !== entityKeyMap.AdGroup)) {\r\n result.entityName = dictionary[entityKeyField];\r\n }\r\n } else {\r\n result.entityName = entityKeyField && dictionary[entityKeyField];\r\n }\r\n } else {\r\n result.entityName = getTitlePreviewFromJson(dictionary.AdHeadlines);\r\n }\r\n\r\n if (result.isForVnext) {\r\n if (result.campaignId) {\r\n result.campaignUrl = getUiNextCampaignLink(result.campaignId, vnextInfo.scope);\r\n result.campaignAriaLabel = i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: result.campaignName });\r\n }\r\n\r\n if (result.adGroupId) {\r\n result.adGroupUrl = getUiNextAdgroupLink({\r\n CampaignId: result.campaignId,\r\n AdGroupId: result.adGroupId,\r\n }, vnextInfo.scope);\r\n result.adGroupAriaLabel = i18n.getString('Click to scope to ad group {{adGroupName}}', { adGroupName: result.adGroupName });\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport function getOldValue(jobModel, isCopyPaste = false, vnextInfo = undefined) {\r\n return _.partial(getResultValue, _, false, jobModel, isCopyPaste, vnextInfo);\r\n}\r\n\r\nexport function getNewValue(jobModel, isCopyPaste = false, vnextInfo = undefined) {\r\n return _.partial(getResultValue, _, true, jobModel, isCopyPaste, vnextInfo);\r\n}\r\n","import ko from 'knockout';\r\nimport koSchema from '@bingads-webui-component-legacy/ko-schema/index';\r\n\r\nexport default class ViewModel {\r\n constructor({isNewUI}) {\r\n koSchema.properties(this);\r\n\r\n this.dataLoaded = ko.observable(false);\r\n this.isNewUI = ko.observable(isNewUI);\r\n this.showHighLatencyAlert = ko.observable(false);\r\n this.hasStore = ko.observable(false);\r\n this.isStoreValid = ko.observable(false);\r\n this.showGoalRemoveAlert = ko.observable(false);\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport Promise from 'bluebird';\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport * as httpUtils from '@bingads-webui/http-util';\r\nimport { applyRecommendations, dismissRecommendations } from '@bingads-webui-campaign/recommendation-repository';\r\nimport jsData from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport * as i18nErrors from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport { queryify } from '@bingads-webui/url-util';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport CreateView from '@bingads-webui-campaign-legacy/crud-campaign/view/create';\r\nimport ViewModel from '@bingads-webui-campaign-legacy/campaign-settings/viewmodel/index';\r\nimport template from '@bingads-webui-campaign-legacy/campaign-settings/template/index.pug';\r\nimport edmCampaign from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport uiBlocker from '@bingads-webui-component-legacy/uiblocker/index';\r\nimport AdvancedSettingsView from '@bingads-webui-campaign-legacy/advanced-settings/view/advancedSettings';\r\nimport ShoppingSettingsView from '@bingads-webui-campaign-legacy/shopping-campaign/view/campaign-creation/shopping-settings';\r\nimport campaignType from '@bingads-webui-campaign-legacy/adgroup-create-advanced/util/campaignType';\r\nimport summaryDataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\nimport * as scrollUtils from '@bingads-webui-component-legacy/extension/scrollTo';\r\nimport { shouldSupportCashbackSettings, logCampaignPersonalizedOffers } from '@bingads-webui-campaign/personalized-offer-shared';\r\nimport {\r\n AudienceAdvancedTargetSettings,\r\n AudienceTargetInfo,\r\n} from '@bingads-webui-campaign-legacy/audience-campaign/loader';\r\nimport { showIMAReachModal, getLocationsInfo } from '@bingads-webui-campaign-react/ima-reach-representation';\r\nimport { GoalSelectorView } from '@bingads-webui-campaign-react/goal-selector/src/view';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport { showBudgetBidCampaignNotifications } from '@bingads-webui-campaign/import-shared-utils';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/campaign-creation-advanced');\r\n\r\nconst backRouteName = 'campaign_adgroup';\r\n\r\nconst isEnabledDynamicFeedCampaign = pageContext && pageContext.Permissions && pageContext.Permissions.IsEnabledForDynamicFeedCampaign;\r\nconst isSponsoredPilotEnabled = pageContext && pageContext.Permissions && pageContext.Permissions.IsSPAv2Enabled;\r\nconst isCPGForBSCEnabled = pageContext && pageContext.Permissions && pageContext.Permissions.IsCPGForBSCEnabled;\r\nconst isBSCSmartImportEnabled = pageContext && pageContext.Permissions && pageContext.Permissions.IsBSCSmartImportEnabled;\r\nconst isPredictiveMatchingEnabled = pageContext && pageContext.Permissions && pageContext.Permissions.dynamic.PredictiveMatching;\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = options;\r\n if (options.perfMarker) {\r\n this.campaignScopeAllSettingsPerfMarker = options.perfMarker.createChild('CampaignScope_AllSettings_EditCampaign');\r\n }\r\n\r\n if (campaignType() != null) {\r\n this.scenario = instrumentation[`${campaignType()}CampaignEdit`].create();\r\n this.activity = this.scenario[`${campaignType()}CampaignEdit`].create();\r\n }\r\n\r\n this.mark('willInit');\r\n const router = _.chain(options.deps).result('router', {}).value();\r\n\r\n this.navigateToRoute = router.navigateToRoute || _.noop;\r\n this.isNewUI = _.result(options.deps, 'isNewUI', false);\r\n\r\n this.viewModel = new ViewModel({ isNewUI: this.isNewUI });\r\n this.isMMAForRetailEnabled = pageContext.Permissions.IsMMAForRetailEnabled;\r\n const dynamicPermissions = _.result(pageContext.Permissions, 'dynamic', {});\r\n\r\n this.showDisclaimerBanner = _.result(dynamicPermissions, 'AgeGenderDisclaimer', false);\r\n this.ccJsData = options.ccJsData;\r\n this.serverContext = options.serverContext;\r\n this.scope = options.scope;\r\n }\r\n\r\n\r\n get events() {\r\n return {\r\n 'click .btn-save': 'checkIMAReachAndSave',\r\n 'click .btn-cancel': 'cancel',\r\n };\r\n }\r\n\r\n isNotAudienceCampaign() {\r\n return campaignType() !== 'audience';\r\n }\r\n\r\n renderAdvancedSettings(campaign) {\r\n this.advancedSettingsView = new AdvancedSettingsView({\r\n campaignId: this.options.campaignId,\r\n scenario: 'campaign-settings',\r\n level: 'campaign',\r\n model: campaign,\r\n nativeAdsCampaignBid: campaign.NativeBidAdjustment,\r\n multimediaAdsCampaignBid: campaign.MultiMediaAdBidAdjustment,\r\n TimeZone: campaign.TimeZone,\r\n campaignType: campaign.CampaignType ? campaign.CampaignType : campaignType(),\r\n supportCashbackSettings: shouldSupportCashbackSettings(campaign, pageContext.Permissions),\r\n newI18n: this.options.deps.i18nNewDesign,\r\n activityLogger: this.activity,\r\n });\r\n this.$('.advanced-settings-section').html(this.advancedSettingsView.render().el);\r\n }\r\n\r\n checkIfStoreValid(data) {\r\n const providerId = _.result(this.setting, 'ProviderId');\r\n\r\n return _.some(data.ProductCollectionAccounts, (store) => Number(store.Value) === providerId);\r\n }\r\n\r\n renderShoppingSettings(data) {\r\n this.isAudienceDynamicFeedBasedCampaign = this.campaign.CampaignType === 'Audience' && this.campaign.CampaignSubType === 'AudienceDynamicFeedBased';\r\n this.isSponsoredCampaign = (isSponsoredPilotEnabled && config.get('CampaignObjective') === 'SponsoredShoppingCampaign') || this.campaign.CampaignSubType === 'ShoppingSponsoredProductAd';\r\n this.editMode = _.isFinite(this.options.campaignId);\r\n this.shouldShowPlaceholderStoreIfExists = isBSCSmartImportEnabled && this.editMode;\r\n this.campaignProductScopeId = data.CampaignCriterionsData && data.CampaignCriterionsData.Id;\r\n\r\n const hasAnyStores = (!_.isEmpty(data) && !_.isEmpty(data.ProductCollectionAccounts)) ||\r\n (isEnabledDynamicFeedCampaign && this.isAudienceDynamicFeedBasedCampaign);\r\n\r\n if (hasAnyStores && isSponsoredPilotEnabled) {\r\n if (this.isSponsoredCampaign) {\r\n this.viewModel.hasStore(this.editMode || _.findIndex(data.ProductCollectionAccounts, (item) => item.IsGlobalStore || item.IsCoOpStore) >= 0);\r\n } else {\r\n this.viewModel.hasStore(this.editMode || _.findIndex(data.ProductCollectionAccounts, (item) => !item.IsGlobalStore && !item.IsCoOpStore) >= 0);\r\n }\r\n } else {\r\n this.viewModel.hasStore(hasAnyStores);\r\n }\r\n\r\n let isStoreValid = isCPGForBSCEnabled && this.editMode ? this.checkIfStoreValid(data) : true; // eslint-disable-line newline-after-var\r\n if (isEnabledDynamicFeedCampaign && this.isAudienceDynamicFeedBasedCampaign && this.editMode) {\r\n isStoreValid = true;\r\n }\r\n this.viewModel.isStoreValid(isStoreValid);\r\n\r\n if (this.viewModel.hasStore()) {\r\n data.ProductCollectionAccounts = [{\r\n Text: i18n.get('ShoppingCampaign_ShoppingSetting_DefaultStore'),\r\n Value: -1,\r\n IsCoOpStore: false,\r\n }, ...data.ProductCollectionAccounts];\r\n this.shoppingSettingsView = new ShoppingSettingsView({\r\n data,\r\n model: this.setting,\r\n campaignType: this.campaign.CampaignType,\r\n campaignSubType: this.campaign.CampaignSubType,\r\n campaignId: _.result(this.campaign, 'Id'),\r\n isStoreValid: this.viewModel.isStoreValid(),\r\n activityLogger: this.editMode ? undefined : this.activity,\r\n isSponsoredSettings: { isSponsoredCampaign: this.isSponsoredCampaign, isSponsoredPilotEnabled },\r\n shouldShowPlaceholderStoreIfExists: this.shouldShowPlaceholderStoreIfExists,\r\n deps: this.options.deps,\r\n isSearchCampaign: this.campaign.campaignType === 'Default',\r\n isMMAForRetailWorkflow: true,\r\n ccJsData: this.ccJsData,\r\n }).render();\r\n this.$('.shopping-settings').append(this.shoppingSettingsView.$el);\r\n } else if (!this.editMode) {\r\n this.activity.signal('have no store', this.scenario);\r\n }\r\n }\r\n\r\n getProductData(campaignId) {\r\n let url = queryify('/Campaign/NewCampaign/GetProductScope', {\r\n aid: state.get('account_id'),\r\n cid: state.get('customer_id'),\r\n uid: state.get('user_id'),\r\n });\r\n // We shouldn't cache the response when showing placeholder stores.\r\n // If we do, there will be a bug when the user goes from campaign settings to creation.\r\n // The bug will be that the user sees draft stores in campaign creation since it reads from cache.\r\n let bypassCache = this.shouldShowPlaceholderStoreIfExists;\r\n let cacheResponse = !this.shouldShowPlaceholderStoreIfExists;\r\n\r\n if (campaignId) {\r\n let urlQueryStringObject = {\r\n campaignId,\r\n // salesCountry: \"US\",\r\n };\r\n\r\n url = queryify(url, urlQueryStringObject);\r\n\r\n if (this.shouldShowPlaceholderStoreIfExists) {\r\n url = `${url}&storeTypes=placeholder`;\r\n }\r\n\r\n bypassCache = true;\r\n cacheResponse = false;\r\n }\r\n\r\n const params = {\r\n url,\r\n adapter: 'legacy',\r\n bypassCache,\r\n cacheResponse,\r\n };\r\n\r\n return jsData.Product.find('MetaData', params);\r\n }\r\n\r\n renderCampaignTargets(campaign) {\r\n if (!this.isNotAudienceCampaign()) {\r\n return Promise.resolve();\r\n }\r\n const audienceTargetInfo = new AudienceTargetInfo({\r\n resourceName: 'CampaignCriterion',\r\n listenToLocationCriterion: false,\r\n initAudienceAssociationView: false,\r\n });\r\n\r\n const loadCriterionsTask = audienceTargetInfo.fetchCriterions(campaign.Id).then(() => {\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-settings',\r\n currentLevelTargetInfo: audienceTargetInfo,\r\n supportCashbackSettings: shouldSupportCashbackSettings(campaign, pageContext.Permissions),\r\n });\r\n this.$('.campaign-targets').append(this.campaignTargetsView.render().el);\r\n\r\n return Promise.resolve(_.result(this.createView, 'locationTargetsPromise'));\r\n }).then(() => {\r\n if (_.has(this.createView, 'locationTargetsView')) {\r\n this.campaignTargetsView.$('.location-setting-controller').append(this.createView.locationTargetsView.render().el);\r\n\r\n return this.createView.locationTargetsView.initialLoadTask;\r\n }\r\n\r\n return null;\r\n });\r\n\r\n const loadBudgetTask = _.result(this.createView.budget, 'initialLoadTask');\r\n\r\n return Promise.all([\r\n loadCriterionsTask,\r\n loadBudgetTask,\r\n ]);\r\n }\r\n\r\n renderConversionGoalSelection(campaign) {\r\n // CPG and SPA Campaign:\r\n const isSPA = campaign.CampaignSubType === 'ShoppingSponsoredProductAd';\r\n // Cashback CPS Campaign:\r\n const isCPS = campaign.CampaignCashback != null &&\r\n (campaign.CampaignCashback.PersonalizedOffersEnabled === true ||\r\n campaign.CampaignCashback.MonthlyBudget > 0);\r\n\r\n const isSelectorEnabled = !isSPA && !isCPS;\r\n\r\n if (isSelectorEnabled) {\r\n this.goalSelectionView = new GoalSelectorView({\r\n i18n: i18n.realI18n,\r\n pageSize: 10,\r\n isMultiMode: true,\r\n isHideSaveBar: true,\r\n campaign,\r\n jsdata: jsData,\r\n state,\r\n turnOnRemoveAlert: (shouldShowWarning) => {\r\n this.viewModel.showGoalRemoveAlert(shouldShowWarning);\r\n },\r\n });\r\n this.$('.conversion-goal-selection').empty().html(this.goalSelectionView.render().el);\r\n } else {\r\n this.$('.conversion-goal-section').empty();\r\n }\r\n }\r\n\r\n onEnablePersonalizedOfferCheckboxChange(checked) {\r\n this.campaignTargetsView.toggleCashbackPercentColumns(checked);\r\n if (this.createView.locationTargetsView) {\r\n this.createView.locationTargetsView.toggleCashbackPercentColumns(checked);\r\n }\r\n if (this.advancedSettingsView.adScheduleView) {\r\n this.advancedSettingsView.adScheduleView.toggleCashbackPercentColumns(checked);\r\n }\r\n }\r\n\r\n onCashbackPercentChange(value) {\r\n if (this.createView.cashbackSettingsView.viewModel.validateCashbackPercent(value)) {\r\n const formattedValue = value === '' || value == null ? null : decimal.fromLocalToFloat(value);\r\n\r\n if (this.campaignTargetsView) {\r\n this.campaignTargetsView.toggleCashbackPercentColumns(true, {\r\n level: 'Campaign',\r\n value: formattedValue,\r\n });\r\n }\r\n\r\n if (this.createView.locationTargetsView) {\r\n this.createView.locationTargetsView.toggleCashbackPercentColumns(true, {\r\n level: 'Campaign',\r\n value: formattedValue,\r\n });\r\n }\r\n\r\n if (this.advancedSettingsView && this.advancedSettingsView.adScheduleView) {\r\n this.advancedSettingsView.adScheduleView.toggleCashbackPercentColumns(true, {\r\n level: 'Campaign',\r\n value: formattedValue,\r\n });\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n this.$el.append(template({\r\n i18n,\r\n title: _.result(pageContext.CurrentCampaign, 'ExperimentId') > 0 ? i18n.get('SectionTitle_ExperimentSettings') : i18n.get('SectionTitle_CampaignSettings'),\r\n isNotAudienceCampaign: this.isNotAudienceCampaign(),\r\n isMMAForRetailEnabled: this.isMMAForRetailEnabled,\r\n isShowDisclaimerBannerEnabled: this.showDisclaimerBanner,\r\n }));\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n let params = {\r\n queryParameters: {\r\n entitySet: edmCampaign.currentAccount.Campaigns,\r\n expand: ['Budget', 'CampaignConversionGoal/Goals'],\r\n },\r\n bypassCache: true,\r\n };\r\n\r\n this.mark('willFetchData');\r\n this.hideUIBlocker = uiBlocker(this.$el);\r\n jsData.Campaign.find(Number(this.options.campaignId), params)\r\n .then((data) => {\r\n this.campaign = data;\r\n this.setting = _.first(this.campaign.CampaignSettings) || {};\r\n this.mark('willRender');\r\n\r\n this.createView = new CreateView(_.extend(data, {\r\n scenario: 'campaign-settings',\r\n showLanguage: data.CampaignType === 'Default', // data.CampaignType !== 'shopping'? need to confirm with feature owner\r\n popupIds: { Location: 'pop_BA_Settings_LocationTargeting' },\r\n showInitialUiBlocker: !this.isNotAudienceCampaign(),\r\n deps: this.options.deps,\r\n usePanel: this.isNewUI,\r\n campaignType: data.CampaignType,\r\n campaignSubType: data.CampaignSubType,\r\n isForVNext: this.isNewUI,\r\n activityLogger: this.activity,\r\n serverContext: this.serverContext,\r\n scope: this.scope,\r\n }));\r\n\r\n this.supportCashbackSettings = shouldSupportCashbackSettings(data, pageContext.Permissions);\r\n\r\n this.$('.campaign-update').append(this.createView.render().el);\r\n\r\n this.viewModel.dataLoaded(true);\r\n\r\n this.renderAdvancedSettings(data);\r\n\r\n this.renderConversionGoalSelection(data);\r\n\r\n if (this.createView.cashbackSettingsView) {\r\n this.createView.cashbackSettingsView.viewModel.isEnablePersonalizedOffersChecked.subscribe((checked) => {\r\n this.onEnablePersonalizedOfferCheckboxChange(checked);\r\n });\r\n\r\n this.createView.cashbackSettingsView.viewModel.CashbackPercent.subscribe((value) => {\r\n this.onCashbackPercentChange(value);\r\n });\r\n }\r\n\r\n this.createView.biddingStrategyView.viewModel.selectedBidStrategy.subscribe((value) => {\r\n this.advancedSettingsView.onSelectedBidStrategyChange(value);\r\n });\r\n return this.renderCampaignTargets(data);\r\n })\r\n .then(() => {\r\n if (this.isMMAForRetailEnabled) {\r\n return Promise.resolve(this.getProductData(this.options.campaignId)\r\n .then((data) => {\r\n this.renderShoppingSettings(data);\r\n }));\r\n }\r\n\r\n return Promise.resolve();\r\n })\r\n .catch(({ errors } = {}) => {\r\n this.viewModel.errors.add(_.isEmpty(errors) ? undefined : i18nErrors.getODataErrors(errors));\r\n })\r\n .finally(() => {\r\n this.hideUIBlocker();\r\n this.mark('done');\r\n });\r\n\r\n return this;\r\n }\r\n\r\n clearApiErrors() {\r\n this.advancedSettingsView.clearApiErrors();\r\n }\r\n\r\n validate() {\r\n return _.reduce([\r\n this.createView.validate(),\r\n this.advancedSettingsView.validate(),\r\n this.shoppingSettingsView ? this.shoppingSettingsView.validate() : true,\r\n this.campaignTargetsView ? this.campaignTargetsView.validate() : true,\r\n ], (memo, val) => {\r\n return memo && val;\r\n }, true);\r\n }\r\n\r\n destroyProductScoeIfNeed() {\r\n if (this.campaignProductScopeId && !this.shoppingSettingsView.hasFilteredProducts()) {\r\n jsData.CampaignProductScope.destroy(this.campaignProductScopeId, { adapter: 'bulk', parentId: this.campaign.Id });\r\n }\r\n }\r\n\r\n getParams() {\r\n let params = this.createView.getData();\r\n let advancedSettingsValues = this.advancedSettingsView.getValues();\r\n\r\n if (isPredictiveMatchingEnabled) {\r\n params.AutoTargetingEnabled = advancedSettingsValues.AutoTargetingEnabled || false;\r\n }\r\n\r\n let targets = advancedSettingsValues.deviceTargets\r\n .concat(advancedSettingsValues.ageTargets)\r\n .concat(advancedSettingsValues.genderTargets)\r\n .concat(advancedSettingsValues.scheduling);\r\n\r\n _.each(targets, (criterion) => {\r\n criterion.Status = _.isEmpty(criterion.Status) ? 'Active' : criterion.Status;\r\n criterion.Campaign = {\r\n Id: params.Id,\r\n };\r\n });\r\n\r\n if (this.shoppingSettingsView) {\r\n if (this.shoppingSettingsView.viewModel.hasValidStore()) {\r\n _.extend(params, this.shoppingSettingsView.viewModel.toObject(), {\r\n CampaignType: this.campaign.CampaignType,\r\n });\r\n\r\n // This is for MMA for Retail, only edit mode\r\n if (this.shoppingSettingsView.isFeedProductFilterEnabled) {\r\n if (!this.shoppingSettingsView.viewModel.isFeedFilterChecked()) {\r\n // choose neither feed label nor sales country\r\n params = _.omit(params, 'SalesCountry');\r\n params = _.omit(params, 'FeedLabel');\r\n } else if (params.FeedLabel && params.FeedLabel.length > 0) {\r\n params = _.omit(params, 'SalesCountry');\r\n } else {\r\n params = _.omit(params, 'FeedLabel');\r\n }\r\n if (this.editMode) {\r\n if (!params.SalesCountry) {\r\n params.SalesCountry = 'delete_value';\r\n }\r\n if (!params.FeedLabel) {\r\n params.FeedLabel = 'delete_value';\r\n }\r\n }\r\n }\r\n\r\n if (this.shoppingSettingsView.hasFilteredProducts()) {\r\n params.CampaignProductScope = _.defaults(this.shoppingSettingsView.getProductScope(), {\r\n CampaignName: params.Name,\r\n });\r\n\r\n if (this.campaignProductScopeId) {\r\n params.CampaignProductScope.Id = this.campaignProductScopeId;\r\n }\r\n }\r\n } else {\r\n _.extend(params, this.shoppingSettingsView.viewModel.toObject(), {\r\n ProviderId: 'delete_value',\r\n SalesCountry: 'delete_value',\r\n });\r\n }\r\n }\r\n\r\n const campaignTargetsData = this.campaignTargetsView && this.campaignTargetsView.getData();\r\n const campaignTargetsCriterions = _.result(campaignTargetsData, 'CampaignCriterions', []);\r\n\r\n params.CampaignCriterions = _.union(params.CampaignCriterions, targets, campaignTargetsCriterions);\r\n\r\n _.extend(params,\r\n advancedSettingsValues.urlOptions,\r\n advancedSettingsValues.nativeAds,\r\n advancedSettingsValues.multimediaAds,\r\n advancedSettingsValues.automatedCTA,\r\n advancedSettingsValues.vanityUrlSettings,\r\n );\r\n\r\n if (_.isBoolean(advancedSettingsValues.adScheduleUseSearcherTimeZone)) {\r\n params.AdScheduleUseSearcherTimeZone = advancedSettingsValues.adScheduleUseSearcherTimeZone;\r\n }\r\n\r\n if (this.goalSelectionView) {\r\n params.CampaignConversionGoalAssociations =\r\n this.goalSelectionView.convertToMTFormat(params.Id);\r\n }\r\n return params;\r\n }\r\n\r\n getAllLocationCriterions() {\r\n const allLocations = this.createView.getAllLocations();\r\n const campaignTargetsData = (this.campaignTargetsView && this.campaignTargetsView.getAllLocations()) || [];\r\n\r\n return _.union(allLocations, campaignTargetsData);\r\n }\r\n\r\n\r\n checkIMAReachAndSave() {\r\n let checkIMAReachPromise = Promise.resolve(false);\r\n\r\n if (!this.validate()) {\r\n return;\r\n }\r\n\r\n this.clearApiErrors();\r\n\r\n const params = this.getParams();\r\n\r\n const changedLocationCriterions = params && params.CampaignCriterions && _.filter(params.CampaignCriterions, (item) =>\r\n item && (item.CriterionType === 'Location' || item.CriterionType === 'Radius'));\r\n\r\n const hasLocationChanged = changedLocationCriterions && changedLocationCriterions.length > 0;\r\n\r\n let locationCriterions = this.getAllLocationCriterions();\r\n\r\n locationCriterions = _.filter(locationCriterions, (c) => c.Status !== 'Deleted');\r\n\r\n if (hasLocationChanged && pageContext.Permissions.IsIMAReachRepresentationPhase1Enabled && this.isNewUI && locationCriterions.length > 0) {\r\n const onYes = () => this.save();\r\n const locationsInfo = getLocationsInfo(locationCriterions);\r\n\r\n checkIMAReachPromise = showIMAReachModal({\r\n locationsInfo,\r\n onYes,\r\n deliveryChannel: campaignType() === 'audience' ? 'AIM' : 'BingAds',\r\n campaignId: this.options.campaignId,\r\n i18n,\r\n aid: pageContext.CurrentAccount.Id,\r\n cid: pageContext.CurrentAccount.AdvertiserCustomerID,\r\n });\r\n }\r\n\r\n checkIMAReachPromise.then((isIMAReachModalShow) => {\r\n if (isIMAReachModalShow) {\r\n return;\r\n }\r\n this.save();\r\n });\r\n }\r\n\r\n save() {\r\n if (!this.validate()) {\r\n return;\r\n }\r\n\r\n this.clearApiErrors();\r\n const params = this.getParams();\r\n const highLantencyThreshold = 3000;\r\n\r\n if (_.size(params.CampaignCriterions) > highLantencyThreshold) {\r\n this.viewModel.showHighLatencyAlert(true);\r\n }\r\n\r\n const batchSize = 1000;\r\n const chunks = _.chain(params.CampaignCriterions)\r\n .groupBy((value, index) => Math.floor(index / batchSize))\r\n .toArray()\r\n .value();\r\n let reqs = _.map(chunks, (batch) => ({\r\n Id: params.Id,\r\n data: _.extend({}, params, { CampaignCriterions: batch }),\r\n }));\r\n\r\n if (reqs.length === 0) {\r\n reqs = [{\r\n Id: params.Id,\r\n data: params,\r\n }];\r\n }\r\n const batchedParams = {\r\n reqs,\r\n };\r\n const mergeCampaignCriterions = (responses) => {\r\n const mergedCampaignCriterions = _.reduce(responses, (dest, res) => dest.concat(res.CampaignCriterions), []);\r\n\r\n return _.extend({}, _.first(responses), { CampaignCriterions: mergedCampaignCriterions });\r\n };\r\n\r\n\r\n jsData.Campaign\r\n .update(params.Id, batchedParams, { adapter: 'bulk', cacheResponse: false, overrideResponse: true, batch: true, processResponse: mergeCampaignCriterions })\r\n .then((response) => {\r\n //we backfill advanced settings models here, so we have correct model if the saveExtensions call fails.\r\n const { activity } = instrumentation.createScenarioAndActivity({\r\n scenarioName: 'BudgetBidCampaignImportNotification',\r\n activityName: 'SearchCampaignSettingPage',\r\n });\r\n\r\n showBudgetBidCampaignNotifications({\r\n campaignItemList: [this.campaign],\r\n oldBudget: this.campaign.Budget,\r\n newBudget: params.Budget,\r\n oldBidStrategy: this.campaign.BiddingScheme,\r\n newBidStrategy: params.BiddingScheme,\r\n activity,\r\n });\r\n this.advancedSettingsView.setData(response);\r\n logCampaignPersonalizedOffers(this.createView.cashbackSettingsView, this.activity.signal.bind(this.activity), params);\r\n return this.advancedSettingsView.exclusionsUpdated() ? this.advancedSettingsView.saveExtensions() : {};\r\n })\r\n .then(() => {\r\n return this.createView.saveTargetingSource(params.Id);\r\n }).then(() => {\r\n return this.destroyProductScoeIfNeed();\r\n }).then(() => {\r\n // These are the mappings for campaigns/updatesettings taken from SummaryGridsActionMap\r\n // Campaign name might appear in these grids, and changing a shared budget association\r\n // might affect the budget status in these grids, so the cache needs to be invalidated here.\r\n const contextsToUpdate = [\r\n 'CampaignsGrid',\r\n 'AdGroupGrid',\r\n 'PagedAdGroupGrid',\r\n 'AdGrid',\r\n 'KeywordGrid',\r\n 'AudiencesAssociationGrid',\r\n 'SitePlacementGrid',\r\n 'CampaignsSettingsGrid',\r\n 'AccountAdExtensionsGrid',\r\n 'CampaignAdExtensionsGrid',\r\n 'AdGroupAdExtensionsGrid',\r\n 'ProductGroupsGrid',\r\n 'CampaignSelector',\r\n ];\r\n\r\n summaryDataContextManager.updateContext(contextsToUpdate);\r\n window.App.trigger('campaignUpdated', { data: [{ Id: Number(params.Id), Name: params.Name, Budget: params.Budget }] });\r\n if (params && params.Budget && params.Budget.Amount && this.campaign && this.campaign.Budget && this.campaign.Budget.Amount) {\r\n if (this.campaign.Budget.Amount >= 0.1 && params.Budget.Amount < (this.campaign.Budget.Amount * 0.5).toFixed(2)) {\r\n this.activity.trace(`Bid${params.Budget.Amount} Less than 50% of current budget${this.campaign.Budget.Amount}`);\r\n }\r\n }\r\n const { CurrentCampaign: currentCampaign } = pageContext;\r\n\r\n const permissions = config.get('Permissions');\r\n const isDSAMixedModeCampaignEnabled = _.result(permissions, 'IsDSAMixedModeCampaignEnabled', false);\r\n\r\n // update DSA settings to current campaign\r\n // so that the summary tab can be updated correctly\r\n if (isDSAMixedModeCampaignEnabled && !this.isNewUI && params.DomainName) {\r\n currentCampaign.CampaignSettings = [{\r\n DomainName: params.DomainName,\r\n Source: params.Source,\r\n Language: params.LanguageCode,\r\n DynamicDescriptionEnabled: params.DynamicDescriptionEnabled,\r\n }];\r\n window.App.state.trigger('change:campaign_id');\r\n }\r\n // eslint-disable-next-line camelcase\r\n this.navigateToRoute(backRouteName, { campaign_id: params.Id });\r\n }).then(() => {\r\n const tasks = [];\r\n const {\r\n targetedLocationRecommendations,\r\n dismissedLocationRecommendations,\r\n } = this.createView.getLocationRecommendationsStatus();\r\n const deps = {\r\n httpUtils,\r\n odataOptions: {\r\n host: pageContext.BingAdsAdInsightWebApiUri,\r\n oDataToken: pageContext.Token,\r\n SessionId: _.result(config.get('Omniture'), 'SessionId'),\r\n params: {\r\n 'customer_id': state.get('advertisercustomer_id'),\r\n 'account_id': state.get('account_id'),\r\n },\r\n },\r\n };\r\n const scope = {\r\n customerId: state.get('advertisercustomer_id'),\r\n accountId: state.get('account_id'),\r\n campaignId: params.Id,\r\n };\r\n const recommendationType = 'NewLocationTargetOpportunity';\r\n const channel = 'campaignsetting';\r\n\r\n if (!_.isEmpty(targetedLocationRecommendations)) {\r\n tasks.push(applyRecommendations({\r\n deps,\r\n scope,\r\n recommendations: targetedLocationRecommendations,\r\n recommendationType,\r\n channel,\r\n }));\r\n }\r\n\r\n if (!_.isEmpty(dismissedLocationRecommendations)) {\r\n tasks.push(dismissRecommendations({\r\n deps,\r\n scope,\r\n recommendations: dismissedLocationRecommendations,\r\n recommendationType,\r\n channel,\r\n }));\r\n }\r\n\r\n return Promise.all(tasks);\r\n }).catch((response) => {\r\n this.handleApiErrors(response);\r\n }).finally(uiBlocker(this.$el));\r\n }\r\n\r\n handleApiErrors(response) {\r\n if (_.isUndefined(response) || _.isNull(response)) {\r\n this.viewModel.errors.add();\r\n return;\r\n }\r\n\r\n if (response.errors && !response.entity) {\r\n //Ajax error [400] - RowCountExceeded\r\n this.viewModel.errors.add(i18nErrors.getODataErrors(response.errors));\r\n return;\r\n }\r\n\r\n if (response === 'exclusion error') {\r\n return;\r\n }\r\n\r\n if (response.errors) {\r\n const processItems = ['CampaignCriterions'].concat(response.entity.hasOwnProperty('AdExtensionAssociations') ? ['AdExtensionAssociations'] : []);\r\n\r\n i18nErrors.getPartial(response, processItems);\r\n\r\n let errors = [];\r\n\r\n if (!_.isEmpty(response.entity.errors)) {\r\n errors = errors.concat(response.entity.errors);\r\n }\r\n\r\n // Add all subentity's errors.\r\n _.each(processItems, (item) => {\r\n if (_.isArray(response.entity[item])) {\r\n _.each(response.entity[item], (subEntity) => {\r\n if (!_.isEmpty(subEntity.errors)) {\r\n errors = errors.concat(subEntity.errors);\r\n }\r\n });\r\n } else if (!_.isEmpty(response.entity[item].errors)) {\r\n errors = errors.concat(response.entity[item].errors);\r\n }\r\n });\r\n\r\n let campaignErrors = _.reject(errors, (error) => {\r\n return _.contains(['TrackingUrlTemplate', 'UrlCustomParameters'], error.property);\r\n });\r\n\r\n this.createView.handleApiErrors(campaignErrors || []);\r\n\r\n // should always handle the errors for sub controls since the exsisting campaign id is there\r\n // and campaign level error should not result in sub control's error\r\n this.advancedSettingsView.setData(response);\r\n this.advancedSettingsView.handleErrors(response);\r\n } else {\r\n this.viewModel.errors.add();\r\n }\r\n\r\n this.scrollToErrors();\r\n }\r\n\r\n errorElements() {\r\n return this.$('.campaign-settings__container .error, .campaign-settings__container .alert-danger').filter(':visible');\r\n }\r\n\r\n scrollToErrors() {\r\n scrollUtils.scrollAndCenter(this.errorElements());\r\n }\r\n\r\n cancel() {\r\n // eslint-disable-next-line camelcase\r\n this.navigateToRoute(backRouteName, { campaign_id: this.options.campaignId });\r\n }\r\n\r\n remove() {\r\n if (this.createView) {\r\n this.createView.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.campaignGoalSeletorView) {\r\n this.campaignGoalSeletorView.remove();\r\n }\r\n if (this.goalSelectionView) {\r\n this.goalSelectionView.remove();\r\n }\r\n super.remove();\r\n }\r\n\r\n mark(perfMarkerEvent) {\r\n if (this.campaignScopeAllSettingsPerfMarker) {\r\n this.campaignScopeAllSettingsPerfMarker[perfMarkerEvent]();\r\n }\r\n }\r\n}\r\n\r\n","import state from '@bingads-webui-component-legacy/state/index';\r\n\r\nexport default {\r\n\r\n // returns current level\r\n // it is one of the three values: \"Account\", \"Campaign\" and \"AdGroup\"\r\n get currentLevel() {\r\n if (state.get('adgroup_id')) {\r\n return 'AdGroup';\r\n } else if (state.get('campaign_id')) {\r\n return 'Campaign';\r\n } else {\r\n return 'Account';\r\n }\r\n },\r\n};\r\n","// import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport template from '@bingads-webui-campaign-legacy/campaign-targeting/template/campaign-targeting.pug';\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 timeZoneMapper from '@bingads-webui-component-legacy/timezonemapper/index';\r\nimport { cloneDeep } from '@bingads-webui-universal/primitive-utilities';\r\nimport * as criterionLoader from '@bingads-webui-campaign-legacy/base-targets/util/criterionLoader';\r\nimport withUiBlock from '@bingads-webui-component-legacy/uiblocker/index';\r\nimport targetOptions from '@bingads-webui-campaign-legacy/location-targets/viewmodel/targetOptions';\r\nimport adSchedulingOptions from '@bingads-webui-campaign-legacy/ad-schedule/viewmodel/options';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/campaign-creation-advanced');\r\n\r\nconst defaultOptions = {\r\n model: {\r\n locationTargets: {},\r\n adScheduleModel: {},\r\n },\r\n showDateSettings: true,\r\n needRestore: false,\r\n};\r\n\r\nexport default class View extends Backbone.View {\r\n initialize(options) {\r\n this.options = _.defaults(options, defaultOptions);\r\n this.eventDelegator = options.deps.eventDelegator;\r\n this.template = template;\r\n }\r\n\r\n render() {\r\n const { $el } = this;\r\n\r\n $el.html(this.template({\r\n i18n,\r\n }));\r\n if (this.options.campaignId) {\r\n criterionLoader.load(this.options.campaignId, '', ['DayTimeCriterion'])\r\n .then((campaignTargets) => {\r\n const formattedDayTimeRanges = this.formatLoadedCriterions(campaignTargets);\r\n\r\n this.renderSubViews(formattedDayTimeRanges, this.options.campaignId);\r\n })\r\n .finally(withUiBlock(this.el));\r\n } else {\r\n const { adScheduleModel = {} } = this.options.model || {};\r\n const { dayTimeRanges = [] } = adScheduleModel;\r\n\r\n this.renderSubViews(dayTimeRanges);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n renderSubViews(dayTimeRanges = [], campaignId) {\r\n const { $el } = this;\r\n\r\n this.locationTargetsView = this.renderLocationTargetsView(campaignId);\r\n\r\n this.adScheduleView = this.renderAdScheduleView(dayTimeRanges);\r\n $el.find('.location-targets-container').empty().append(this.locationTargetsView.$el);\r\n $el.find('.ad-schedule').empty().append(this.adScheduleView.$el);\r\n return this;\r\n }\r\n\r\n formatLoadedCriterions(criterions) {\r\n return criterions.map((criterion) => {\r\n return {\r\n Id: String(criterion.Id),\r\n CriterionType: 'DayTime',\r\n campaignName: this.campaignName,\r\n Status: 'Active',\r\n Criterion: {\r\n Type: 'DayTime',\r\n BidAdjustment: 0,\r\n OriginalBidAdjustment: 0,\r\n DayTimeCriterion: criterion.Criterion,\r\n },\r\n };\r\n });\r\n }\r\n\r\n remove(...args) {\r\n this.locationTargetsView.remove(...args);\r\n this.adScheduleView.remove(...args);\r\n super.remove(...args);\r\n }\r\n\r\n renderLocationTargetsView(campaignId) {\r\n const locationTargetsView = new LocationTargetsView({\r\n scenario: 'smart-shopping-campaign',\r\n level: 'campaign',\r\n hideAudience: true,\r\n showInitialUiBlocker: false,\r\n campaignId,\r\n deps: {\r\n eventDelegator: this.eventDelegator,\r\n },\r\n }).render();\r\n\r\n if (campaignId == null) {\r\n locationTargetsView.setLocationData([], 'campaign', false, false);\r\n const existingLocations = (this.options.model &&\r\n this.options.model.locationTargets &&\r\n this.options.model.locationTargets.locations) || [];\r\n\r\n // restore previous selected criterions\r\n if (this.options.needRestore) {\r\n locationTargetsView.setLocationData(existingLocations, 'campaign', false, true, true);\r\n } else { // always check default market option if there is no criterion selected\r\n locationTargetsView.viewmodel.targetOption(targetOptions.bundleOrDefaultMarket);\r\n }\r\n }\r\n\r\n return locationTargetsView;\r\n }\r\n\r\n parseDate(dateString) {\r\n if (dateString == null) {\r\n return null;\r\n }\r\n const splits = dateString.split('/');\r\n const month = splits[0];\r\n const day = splits[1];\r\n const year = splits[2];\r\n\r\n return `${year}-${month.length === 1 ? `0${month}` : month}-${day.length === 1 ? `0${day}` : day}`;\r\n }\r\n\r\n formatSchedulingRows(adDayTimeRanges = []) {\r\n let schedulingRows = [];\r\n\r\n _.each(adDayTimeRanges, (target) => {\r\n let criterion = target.Criterion.DayTimeCriterion;\r\n\r\n schedulingRows.push({\r\n Id: target.Id,\r\n Day: criterion.Day,\r\n StartHour: criterion.FromHour,\r\n StartMinute: typeof criterion.FromMinute === 'string' ? criterion.FromMinute : adSchedulingOptions.minuteToReadMap[criterion.FromMinute],\r\n EndHour: criterion.ToHour,\r\n EndMinute: typeof criterion.ToMinute === 'string' ? criterion.ToMinute : adSchedulingOptions.minuteToReadMap[criterion.ToMinute],\r\n });\r\n });\r\n\r\n return schedulingRows;\r\n }\r\n\r\n renderAdScheduleView(dayTimeRanges) {\r\n const { model, adgroupId, showDateSettings = true } = this.options;\r\n\r\n let adScheduleModel = model && model.adScheduleModel ? model.adScheduleModel : {};\r\n\r\n if (!showDateSettings) {\r\n adScheduleModel = _.omit(adScheduleModel, ['startDate', 'endDate']);\r\n }\r\n\r\n const formatModel = _.extend({}, adScheduleModel, {\r\n startDate: this.parseDate(adScheduleModel.startDate),\r\n endDate: this.parseDate(adScheduleModel.endDate),\r\n adScheduleUseSearcherTimeZone: adScheduleModel.adScheduleUseSearcherTimeZone,\r\n adGroupStatus: adgroupId == null ? 'Draft' : null,\r\n dayTimeRanges: this.formatSchedulingRows(dayTimeRanges),\r\n });\r\n\r\n const adScheduleView = new AdScheduleView({\r\n showBidAdjustmentColumn: false,\r\n showDateSettings,\r\n model: formatModel,\r\n timeZone: timeZoneMapper.getAccountTimeZone(),\r\n isForVNext: this.options.isForVNext,\r\n }).render();\r\n\r\n return adScheduleView;\r\n }\r\n\r\n deletedDayTimeCb(deletedDayTimeCriterions) {\r\n const currentCampaignId = this.options.campaignId;\r\n\r\n _.each(deletedDayTimeCriterions, (criterion) => {\r\n criterion.Status = 'Deleted';\r\n criterion.Campaign = {\r\n Id: currentCampaignId,\r\n };\r\n });\r\n }\r\n\r\n getPropertyValidationErrors() {\r\n return this.adScheduleView.getPropertyValidationErrors();\r\n }\r\n\r\n getValue() {\r\n const isValid = this.adScheduleView.validate() && this.locationTargetsView.validate();\r\n\r\n if (isValid) {\r\n let locationTargetsData = this.locationTargetsView.getValues({}, {\r\n populateParentField: true,\r\n removeNegativeId: true,\r\n });\r\n const adDayTimeRanges = this.adScheduleView.getValues(this.deletedDayTimeCb.bind(this));\r\n const adDateSetting = this.adScheduleView.getDateSettings();\r\n const hasEndDate = this.adScheduleView.dateSettings ? this.adScheduleView.dateSettings.viewModel.hasEndDate() : false;\r\n const adScheduleUseSearcherTimeZone = this.adScheduleView.getAdScheduleUseSearcherTimeZone();\r\n let adScheduleModel = {\r\n dayTimeRanges: adDayTimeRanges,\r\n startDate: adDateSetting.StartDate,\r\n endDate: hasEndDate ? adDateSetting.EndDate : null,\r\n timeZone: timeZoneMapper.getAccountTimeZone(),\r\n adScheduleUseSearcherTimeZone,\r\n };\r\n\r\n if (!this.options.showDateSettings) {\r\n adScheduleModel = _.omit(adScheduleModel, ['startDate', 'endDate']);\r\n }\r\n return {\r\n locationTargets: cloneDeep(locationTargetsData),\r\n adScheduleModel: cloneDeep(adScheduleModel),\r\n };\r\n }\r\n return false;\r\n }\r\n}\r\n","import { DeterministicView } from '@bingads-webui/deterministic-view';\r\nimport accountListTemplate from './account-list-template.pug';\r\n\r\nexport default class AccountListView extends DeterministicView {\r\n initialize({\r\n i18n,\r\n value,\r\n title,\r\n subtitle,\r\n footerText,\r\n }) {\r\n this.i18n = i18n;\r\n this.setState({ value, title, subtitle, footerText });\r\n }\r\n\r\n get template() {\r\n return accountListTemplate;\r\n }\r\n\r\n get className() {\r\n return 'account-list-view';\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\n\r\nimport { PopoverView, positions, contents } from '@bingads-webui-campaign-legacy/popover/index';\r\nimport trackingStatusPopoverTemplate from './tracking-status-popover-template.pug';\r\nimport helpLinkTemplate from './help-link-template.pug';\r\n\r\n/**\r\n * Returns whether the given status is an active status in UET tags grid definition.\r\n * Useful in scenarios that categorizes several different possible status values\r\n * into active and inactive, for UET tracking status\r\n *\r\n * @param {string} status The status to be categorized\r\n * @returns {bool} isActive True if it is categorized into active; False otherwise\r\n */\r\nexport function isActiveTrackingStatusForUet(status) {\r\n return status === 'Active';\r\n}\r\n\r\n/**\r\n * Returns whether the given status is an active status in Conversion goals grid definition.\r\n * Useful in scenarios that categorizes several different possible status values\r\n * into active and inactive, for UET tracking status\r\n *\r\n * @param {string} status The status to be categorized\r\n * @returns {bool} isActive True if it is categorized into active; False otherwise\r\n */\r\nexport function isActiveTrackingStatusForGoals(status) {\r\n return status === 'Active' ||\r\n status === 'RecordingConversions' ||\r\n status === 'NoRecentConversion';\r\n}\r\n\r\n/**\r\n * Shows a popover view for UET tracking status explaining the current status in grid cell\r\n * Useful in scenarios like UET tags, Conversion goals, Audiences grids that have\r\n * the UET tracking status column, where a popover needs to be shown next to such cell\r\n * when customer clicks on the ... button.\r\n * Need to pass in the data item from the row where the button is clicked (e.g.\r\n * via wrapperView.gridView.itemOfElement(event.target)), the target jQuery element of\r\n * the button clicked (e.g. via wrapperView.$(event.target)), and finally a function that\r\n * checkes whether a given status value is considered active like the one above.\r\n *\r\n * @param {Object} item Data item from the button clicked in the row\r\n * @param {Array} target Target jQuery element of the button clicked\r\n * @param {String} className Class name of the popover\r\n * @param {Func} isActiveTrackingStatus Function that checkes if status value is active\r\n * @param {Object} i18n I18nModel where the resource keys needed by this feature can be found\r\n * @param {String} trackingStatusMessagePrefix Resource key prefix of tracking status message\r\n * @param {String} customTitle custom title for tracking status popover\r\n * @param {String} customExtensionEntranceText custom extension entrance text\r\n * @returns {Object} trackingStatusPopoverView The popover view\r\n */\r\nexport function showTrackingStatusDetails(\r\n item,\r\n target,\r\n className,\r\n isActiveTrackingStatus,\r\n i18n,\r\n trackingStatusMessagePrefix,\r\n customTitle = '',\r\n customExtensionEntranceText = '',\r\n) {\r\n const a11yIdPrefix = _.uniqueId('a11y-');\r\n const a11yId = (suffix) => `${a11yIdPrefix}__${suffix}`;\r\n\r\n return new PopoverView({\r\n item,\r\n target,\r\n className,\r\n position: positions.relativeToTableRow({\r\n marginBottom: $('footer > .navbar-footer').height(),\r\n }),\r\n }).setContent(\r\n new contents.TitledContent()\r\n .setTitle(customTitle || i18n.getString('UETTags_Grid_ColumnTrackingStatus'))\r\n .setBody({\r\n html: trackingStatusPopoverTemplate({\r\n i18n,\r\n helpLinkTemplate,\r\n troubleshootTopic: 'app51206',\r\n value: item.TrackingStatus,\r\n a11yId,\r\n isActiveTrackingStatus,\r\n trackingStatusMessagePrefix,\r\n testType: item.Type,\r\n customExtensionEntranceText,\r\n }),\r\n })\r\n );\r\n}\r\n","import _ from 'underscore';\r\nimport globalConfig from '@bingads-webui-component-legacy/config/index';\r\nimport { mapEnumValueForFilterBase } from '@bingads-webui-component-legacy/bingads-grid/shared/schema-util-helper';\r\n\r\nconst Permissions = globalConfig.get('Permissions');\r\n\r\n// this map convers all mapping for exsing delivery status enums\r\n// for each entity (adgroup/campaign/keyword/ad/else), it may only have several enum values\r\nexport const DeliveryStatusToCategoryMap = {\r\n // Eligible\r\n Eligible: 0,\r\n AdGroupAudienceAssociationPaused: 0,\r\n AdGroupAudienceAssociationExcluded: 0,\r\n AdGroupCriterionPaused: 0,\r\n AdGroupCriterionExcluded: 0,\r\n New: 0,\r\n\r\n // Eligible - Limited\r\n EditorialApprovedLimited: 1,\r\n EditorialApprovedLimitedAppealRejected: 1,\r\n LowSupply: 1,\r\n LowQuality: 1,\r\n NegativeKeywordConflicts: 1,\r\n BidBelowFirstPageBid: 1,\r\n BudgetSuggestions: 1,\r\n AutoBiddingLimitedByNotEnoughConversions: 1,\r\n AutoBiddingLimitedByNotEnoughRevenue: 1,\r\n AutoBiddingLimitedInventoryLimit: 1,\r\n AutoBiddingLimitedMaxCPCRestriction: 1,\r\n AutoBiddingLimitedBudgetRestriction: 1,\r\n AutoBiddingLimitedUnAttainableTarget: 1,\r\n AutoBiddingPortfolioBidStrategyTrainingStatus: 1,\r\n AutoBiddingLearning: 1,\r\n\r\n // Critical issues\r\n CreditCardExpired: 2,\r\n IOExceeded: 2,\r\n PaymentInformationMissing: 2,\r\n InvalidFinancialStatusOther: 2,\r\n CampaignSuspended: 2,\r\n CampaignBudgetPaused: 2,\r\n DomainLanguageNotSupported: 2,\r\n AdGroupExpired: 2,\r\n EditorialRejected: 2,\r\n EditorialAppealRejected: 2,\r\n CampaignDeleted: 2,\r\n StoreIdNotAssociated: 2,\r\n AdGroupTargetingTooNarrow: 2,\r\n VideoExtensionVideoProcessingFailed: 2,\r\n VideoExtensionVideoTooSmall: 2,\r\n VideoExtensionVideoAspectRatioInvalid: 2,\r\n VideoExtensionVideoDurationInvalid: 2,\r\n VideoExtensionThumbnailProcessingFailed: 2,\r\n VideoExtensionThumbnailTooSmall: 2,\r\n VideoExtensionThumbnailAspectInvalid: 2,\r\n\r\n //Not Eligible\r\n CampaignUserPaused: 3,\r\n AdGroupUserPaused: 3,\r\n AdGroupDraft: 3,\r\n AdGroupPrivacyPending: 3,\r\n AdUserPaused: 3,\r\n EditorialPending: 3,\r\n AssociationDeleted: 3,\r\n KeywordUserPaused: 3,\r\n EditorialUnderAppeal: 3,\r\n UrlInvalid: 3,\r\n ApplicationNotFound: 3,\r\n ApplicationDestinationUrlMismatch: 3,\r\n PendingMetadataSync: 3,\r\n ProductTargetUserPaused: 3,\r\n AdExtensionDeleted: 3,\r\n AdExtensionAssociationDeleted: 3,\r\n AdNotPresent: 3,\r\n AdNotActive: 3,\r\n VideoExtensionProcessing: 3,\r\n};\r\n\r\n/**\r\n * Map delivery status input enum set to related category for the filter values to render\r\n *\r\n * @param {Array} enumSet - the enums that are valid for specific entity (like campaign)\r\n * @returns {Object} the configs(groupedItems, localized) needed by component/filter to render in category type for delivery status.\r\n*/\r\nfunction getDeliveryStatusCategoryForFilterBase(enumSet) {\r\n const groupedItems = [];\r\n const enumSetToUse = _.uniq(enumSet);\r\n\r\n const categoryEnumValuesMap = _.groupBy(enumSetToUse, (enumValue) => {\r\n return DeliveryStatusToCategoryMap[enumValue];\r\n });\r\n\r\n _.each(categoryEnumValuesMap, (enumValues, category) => {\r\n const mappedValues = _.map(enumValues, (value) => {\r\n return {\r\n value: mapEnumValueForFilterBase('DeliveryStatus', value),\r\n };\r\n });\r\n\r\n const categoryName = `FilterLocalization_DeliveryStatusCategories_${category}`;\r\n\r\n groupedItems.push({\r\n items: _.pluck(mappedValues, 'value'),\r\n name: categoryName,\r\n });\r\n });\r\n\r\n return groupedItems;\r\n}\r\n\r\n/**\r\n * Update delivery status setting for render it in category type in filter\r\n *\r\n * @param {Object} deliveryStatusOption - the option to update for filter\r\n * @param {Array} enumSet - the enums that are valid for specific entity (like campaign)\r\n * @returns {void}\r\n*/\r\nexport function updateDeliveryStatusOptionForFilterBase(deliveryStatusOption, enumSet) {\r\n // get configs needed for category type filter for delivery status, using the allowed values for adgroup\r\n const groupedItems = getDeliveryStatusCategoryForFilterBase(enumSet);\r\n\r\n //Delete enum properties to make delivery status not enum type anymore (enum has more priority in component/filter than category)\r\n if (deliveryStatusOption.enum && _.isArray(deliveryStatusOption.enum)) {\r\n delete deliveryStatusOption.enum;\r\n }\r\n _.extendOwn(deliveryStatusOption, {groupedItems, type: 'category', operators: ['in']});\r\n}\r\n\r\nfunction lambdaConvertForLabels(logic, secondLogic, operator) {\r\n return (values) => {\r\n // if logic is or then format should be like 'Labels/any(d:d/Id eq 1 or d/Id eq 2)'\r\n if (logic === 'or') {\r\n const fieldPrefix = 'd:';\r\n const fieldId = 'd/Id';\r\n let ids = '';\r\n\r\n _.each(values, (value, index) => {\r\n if (index > 0) {\r\n ids += ` ${logic} `;\r\n }\r\n ids += `${fieldId} ${operator} ${value}`;\r\n });\r\n const url = `Labels/${secondLogic}(${fieldPrefix}${ids})`;\r\n\r\n return url;\r\n }\r\n // if logic is and then format should be like\r\n // Labels/any(d:d/Id eq 1) and Labels/any(d:d/Id eq 2)\r\n const fieldId = 'd:d/Id';\r\n let url = '';\r\n\r\n _.each(values, (value, index) => {\r\n if (index > 0) {\r\n url += ` ${logic} `;\r\n }\r\n url += `Labels/${secondLogic}(${fieldId} ${operator} ${value})`;\r\n });\r\n return url;\r\n };\r\n}\r\n\r\nexport function updateFilterStateEntityForLabelsBase(options) {\r\n options.fields.push({\r\n name: 'Labels',\r\n operators: ['containsall', 'containsany', 'containsnone'],\r\n type: 'id',\r\n addtionalParams: {\r\n dataSource: undefined,\r\n },\r\n });\r\n return options;\r\n}\r\n\r\nexport function updateFilterStateOptionsForLabelsBase(options) {\r\n if (options) {\r\n options.odata = options.odata || {custom: {}};\r\n\r\n _.extendOwn(options.odata.custom, {\r\n Labels: {\r\n containsall: lambdaConvertForLabels('and', 'any', 'eq'),\r\n containsany: lambdaConvertForLabels('or', 'any', 'eq'),\r\n containsnone: lambdaConvertForLabels('and', 'all', 'ne'),\r\n },\r\n });\r\n }\r\n}\r\n\r\nfunction lambdaConvertForLanguages(logic, secondLogic, operator) {\r\n return (values) => {\r\n // if logic operator is 'or', format should be contained in a Parenthesis.\r\n // Ex. 'Languages/any(d:d eq Enum.Language'TraditionalChinese' or d eq Enum.Language'Danish')'\r\n if (logic === 'or') {\r\n const fieldPrefix = 'd:';\r\n const fieldId = 'd';\r\n let languages = '';\r\n\r\n _.each(values, (value, index) => {\r\n if (index > 0) {\r\n languages += ` ${logic} `;\r\n }\r\n languages += `${fieldId} ${operator} Enum.Language'${value}'`;\r\n });\r\n const url = `Languages/${secondLogic}(${fieldPrefix}${languages})`;\r\n\r\n return url;\r\n }\r\n // if logic operator is 'and', format should be like\r\n // Languages/any(d:d eq Enum.Language'All') and Languages/any(d:d eq Enum.Language'TraditionalChinese')\r\n const fieldId = 'd:d';\r\n let url = '';\r\n\r\n _.each(values, (value, index) => {\r\n if (index > 0) {\r\n url += ` ${logic} `;\r\n }\r\n url += `Languages/${secondLogic}(${fieldId} ${operator} Enum.Language'${value}')`;\r\n });\r\n return url;\r\n };\r\n}\r\n\r\nexport function updateFilterStateEntityForLanguagesBase(options) {\r\n options.fields.push({\r\n name: 'Languages',\r\n operators: ['containsall', 'containsany', 'containsnone'],\r\n type: 'multi-language',\r\n });\r\n\r\n return options;\r\n}\r\n\r\nexport function updateFilterStateOptionsForLanguagesBase(options) {\r\n if (options) {\r\n options.odata = options.odata || {custom: {}};\r\n\r\n _.extendOwn(options.odata.custom, {\r\n Languages: {\r\n containsall: lambdaConvertForLanguages('and', 'any', 'eq'),\r\n containsany: lambdaConvertForLanguages('or', 'any', 'eq'),\r\n containsnone: lambdaConvertForLanguages('and', 'all', 'ne'),\r\n },\r\n });\r\n }\r\n}\r\n\r\nexport function updateFilterStateOptionsForExperiment(options) {\r\n if (options && Permissions.IsExperimentsEnabled) {\r\n options.odata = options.odata || {custom: {}};\r\n\r\n _.extendOwn(options.odata.custom, {\r\n IsExperiment: {\r\n eq: (val) => {\r\n const operator = val ? 'gt' : 'le';\r\n\r\n return `ExperimentId ${operator} 0`;\r\n },\r\n },\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { mapEnumValueForFilter } from '@bingads-webui-component-legacy/bingads-grid/shared/schema-util';\r\nimport { DeliveryStatusToCategoryMap } from '@bingads-webui-campaign-legacy/common-grid-config/filter/base-filter-config';\r\n\r\n/**\r\n * Map delivery status input enum set to related category for the filter values to render\r\n *\r\n * @param {Array} enumSet - the enums that are valid for specific entity (like campaign)\r\n * @returns {Object} the configs(groupedItems, localized) needed by component/filter to render in category type for delivery status.\r\n*/\r\n\r\nfunction getDeliveryStatusCategoryForFilter(enumSet, mockI18n) {\r\n const i18n = mockI18n || window.globalLegacyI18n.get('component/i18n/loader!legacy/global');\r\n const groupedItems = [];\r\n const enumSetToUse = _.uniq(enumSet);\r\n const localized = {};\r\n\r\n const categoryEnumValuesMap = _.groupBy(enumSetToUse, (enumValue) => {\r\n return DeliveryStatusToCategoryMap[enumValue];\r\n });\r\n\r\n _.each(categoryEnumValuesMap, (enumValues, category) => {\r\n const mappedValues = _.map(enumValues, (value) => {\r\n return {\r\n value: mapEnumValueForFilter('DeliveryStatus', value),\r\n localized: i18n.getString(`Label_DeliveryStatus_${value}`),\r\n };\r\n });\r\n\r\n const categoryName = `FilterLocalization_DeliveryStatusCategories_${category}`;\r\n const itemLocalized = _.object(_.pluck(mappedValues, 'value'), _.pluck(mappedValues, 'localized'));\r\n\r\n groupedItems.push({\r\n items: _.pluck(mappedValues, 'value'),\r\n localized: itemLocalized,\r\n name: categoryName,\r\n });\r\n\r\n localized[categoryName] = i18n.getString(categoryName);\r\n _.extendOwn(localized, itemLocalized);\r\n });\r\n\r\n return {\r\n groupedItems,\r\n localized,\r\n };\r\n}\r\n\r\n/**\r\n * Update delivery status setting for render it in category type in filter\r\n *\r\n * @param {Object} deliveryStatusOption - the option to update for filter\r\n * @param {Array} enumSet - the enums that are valid for specific entity (like campaign)\r\n * @returns {void}\r\n*/\r\n\r\nexport function updateDeliveryStatusOptionForFilter(deliveryStatusOption, enumSet, mockI18n) {\r\n // get configs needed for category type filter for delivery status, using the allowed values for adgroup\r\n const {groupedItems, localized} = getDeliveryStatusCategoryForFilter(enumSet, mockI18n);\r\n\r\n //Delete enum properties to make delivery status not enum type anymore (enum has more priority in component/filter than category)\r\n if (deliveryStatusOption.enum && _.isArray(deliveryStatusOption.enum)) {\r\n delete deliveryStatusOption.enum;\r\n }\r\n _.extendOwn(deliveryStatusOption, {groupedItems, localized, type: 'category', operators: ['in']});\r\n}\r\n","import _ from 'underscore';\r\n\r\nexport function selectionConfig(config) {\r\n return _.extend({\r\n enabled: true,\r\n headClasses: ['text-center'],\r\n bodyClasses: ['text-center'],\r\n }, config);\r\n}\r\n","import _ from 'underscore';\r\n\r\nexport const goalInPilotingMap = {\r\n OfflineConversionGoal: 'IsOfflineConversionsSupported',\r\n InStoreTransactionGoal: 'IsInStoreTransactionAttributionSupported',\r\n MultiStageGoal: 'IsUETFunnelGoalSupported',\r\n};\r\n\r\n// schema is usually a reference or shallow copy here, please be caution when edit it.\r\nexport function filterEnumValuesFromProperty(schema, propertyName, predicate) {\r\n if (!_.isEmpty(schema.properties[propertyName])) {\r\n schema.properties[propertyName].enum = _.filter(schema.properties[propertyName].enum, predicate);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport PageContext from '@bingads-webui-static-legacy/page-context';\r\nimport { goalInPilotingMap, filterEnumValuesFromProperty } from '@bingads-webui-campaign-legacy/common-grid-config/util/schema-editor';\r\n\r\nexport function getErrorMessage(errorCode, i18n) {\r\n const defaultMessage = i18n.getString('UnifiedEventTracking_Tag_Creation_FailedToSaveTag');\r\n const messageMap = {\r\n TagWithSameNameAlreadyExistsUnderCustomer: i18n.getString('UnifiedEventTracking_Tags_DuplicateTagNameError'),\r\n InvalidTagName: i18n.getString('UnifiedEventTracking_Tags_PleaseEnterValidTagName'),\r\n TagNameNullOrEmpty: i18n.getString('UnifiedEventTracking_Tags_PleaseEnterValidTagName'),\r\n InvalidTagDescription: i18n.getString('UnifiedEventTracking_Tags_PleaseEnterValidTagDescription'),\r\n MaxUetTagPerCustomerLimitReached: i18n.getString('UnifiedEventTracking_Tags_MaxUetTagPerCustomerLimitReached'),\r\n CustomerUnderMigration: i18n.getString('UnifiedEventTracking_CustomerMigration'),\r\n SharedLibraryUserPermissionDenied: i18n.getString('SharedLibrary_UserPermissionDenied'),\r\n UpdateFailedForIsClarityTagEnabled: i18n.getString('UnifiedEventTracking_Tags_UpdateFailedForIsClarityTagEnabled'),\r\n };\r\n\r\n return messageMap[errorCode] || defaultMessage;\r\n}\r\n\r\nexport function cleanAlerts(alertIds) {\r\n _.each(alertIds, (alertId) => {\r\n window.App.views.alertCenter.dismiss(alertId);\r\n });\r\n}\r\n\r\nexport function processTypeEnumForGoals({ schema }) {\r\n filterEnumValuesFromProperty(schema, 'Type', (type) => {\r\n if (goalInPilotingMap[type]) {\r\n return _.result(PageContext.Permissions, goalInPilotingMap[type], false);\r\n } else {\r\n return true;\r\n }\r\n });\r\n\r\n // remove the 'Goal from tag' from the option; work item: 1114739\r\n schema.properties.Type.enum = _.reject(schema.properties.Type.enum, (item) => item === 'GoalFromTag');\r\n}\r\n\r\nexport function processTypeBooleanForGoals({ schema, chooseType }) {\r\n if (chooseType === 'radio-boolean' && !_.isEmpty(schema.properties.IsAccountLevel)) {\r\n schema.properties.IsAccountLevel.chooseType = 'radio-boolean';\r\n }\r\n}\r\n\r\nfunction parseConversion(text) {\r\n return _.isFinite(text) ? parseInt(text) : 0;\r\n}\r\n\r\nexport function deParseConversion(minutes) {\r\n if (_.isFinite(minutes)) {\r\n let tempPeriod = minutes;\r\n\r\n const Minutes = tempPeriod % 60;\r\n\r\n tempPeriod = parseInt(tempPeriod / 60);\r\n\r\n const Hours = tempPeriod % 24;\r\n\r\n const Days = parseInt(tempPeriod / 24);\r\n\r\n return {\r\n days: Days,\r\n hours: Hours,\r\n minutes: Minutes,\r\n };\r\n } else {\r\n throw new Error('The minutes is not a finite value');\r\n }\r\n}\r\n\r\nexport function getConversionWindowPeriodInMinutes(days, hours, minutes) {\r\n return (((parseConversion(days) * 24) + parseConversion(hours)) * 60) + parseConversion(minutes);\r\n}\r\n\r\nexport function getDefWithAccountInfo(goalItem) {\r\n const cid = PageContext.CurrentCustomer.Id;\r\n const aid = PageContext.CurrentAccount.Id;\r\n const uid = PageContext.CurrentUser.Id;\r\n const isInternalUser = PageContext.Permissions.IsInternalUser;\r\n const CCBaseUrl = PageContext.CCBaseUrl.toLowerCase();\r\n const accountInfo = {cid, aid, uid, isInternalUser, CCBaseUrl};\r\n const goalDef = _.extend({}, goalItem, accountInfo);\r\n\r\n return goalDef;\r\n}\r\n","import $ from 'jquery';\r\n\r\nimport { PopoverView, positions, contents } from '@bingads-webui-campaign-legacy/popover/index';\r\n\r\nexport function showUnAssignedDetails(\r\n item,\r\n target,\r\n className,\r\n title,\r\n htmlContent,\r\n) {\r\n return new PopoverView({\r\n item,\r\n target,\r\n className,\r\n position: positions.relativeToTableRow({\r\n marginBottom: $('footer > .navbar-footer').height(),\r\n }),\r\n }).setContent(\r\n new contents.TitledContent()\r\n .setTitle(title)\r\n .setBody({\r\n html: htmlContent,\r\n })\r\n );\r\n}\r\n","import _ from 'underscore';\r\nimport { startsWith } from 'underscore.string';\r\nimport { bingadsGridColumn as column } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport {\r\n Columns as ColumnsResource,\r\n SelectedColumns as SelectedColumnsResource,\r\n} from '@bingads-webui-component-legacy/bingads-grid/service/column-chooser-preferences';\r\nimport { getColumnConversions } from '@bingads-webui-campaign/column-conversions';\r\nimport trackingStatusTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/tracking-status-template.pug';\r\nimport tagIdTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/tag-id-template.pug';\r\nimport statusTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/status-template.pug';\r\nimport nameTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/name-template.pug';\r\nimport categoryColumnTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/category-template.pug';\r\nimport revenueTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/revenue-template.pug';\r\nimport smartGoalTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/conversion-goals/grid/goal-type-template.pug';\r\n\r\nconst noData = '-';\r\n\r\nexport const getColumnChooserConfig = ({\r\n i18n,\r\n isForVNext,\r\n columnConfig,\r\n permissions = {},\r\n}) => {\r\n const { dynamic = {} } = permissions;\r\n const {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n } = dynamic;\r\n const usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n const columnConversions = usePartialConversions ?\r\n getColumnConversions(columnConfig) : null;\r\n\r\n const columnNames = _.pluck(columnConfig, 'name');\r\n const locked = _.compact(['Status', 'Name', 'TrackingStatus', 'IsMainConversionGoal']);\r\n const columnChooserConfig = {\r\n categories: [{\r\n name: i18n.getString('Attributes'),\r\n options: _.map(_.reject(columnConfig, ({ name }) => startsWith(name, 'GoalPerformanceMetrics/')), ({ name, title }) => ({\r\n key: name,\r\n name: title,\r\n selectOption: _.indexOf(locked, name) >= 0 ? 'locked' : 'optional',\r\n })),\r\n }, {\r\n name: i18n.getString('Conversions'),\r\n options: _.map(_.filter(columnConfig, ({ name }) => startsWith(name, 'GoalPerformanceMetrics/')), ({ name, title }) => ({\r\n key: name,\r\n name: title,\r\n selectOption: _.indexOf(locked, name) >= 0 ? 'locked' : 'optional',\r\n })),\r\n }],\r\n selected: _.without(columnNames, 'Id'),\r\n locked,\r\n customToolbarIcon: isForVNext ? 'ba-TripleColumnSolid' : '',\r\n Columns: ColumnsResource,\r\n SelectedColumns: SelectedColumnsResource,\r\n i18n,\r\n isForVNext,\r\n columnConversions,\r\n };\r\n\r\n return columnChooserConfig;\r\n};\r\n\r\nfunction getConversionWindow(lookbackWindowInMinutes, i18n, property = 'UnifiedEventTracking_Goals_ConversionWindowTemplate') {\r\n if (!_.isFinite(lookbackWindowInMinutes)) {\r\n return noData;\r\n }\r\n\r\n const minsInAnHr = 60;\r\n const minsInADay = 24 * minsInAnHr;\r\n\r\n let windowInMins = lookbackWindowInMinutes;\r\n\r\n const days = Math.floor(windowInMins / minsInADay);\r\n\r\n windowInMins = windowInMins - (days * minsInADay);\r\n const hrs = Math.floor(windowInMins / minsInAnHr);\r\n const mins = windowInMins - (hrs * minsInAnHr);\r\n\r\n return i18n.getString(property, { days, hrs, mins });\r\n}\r\n\r\nfunction getTagIdLink({ IsUETDashboardEnabled, value, i18n }) {\r\n if (!_.isFinite(value)) {\r\n return noData;\r\n }\r\n\r\n return tagIdTemplate({ IsUETDashboardEnabled, value, i18n });\r\n}\r\n\r\nexport const getColumnConfig = ({\r\n newi18n,\r\n i18n,\r\n s$i18n,\r\n permissions,\r\n appConfig,\r\n isForVNext,\r\n}) => {\r\n const {\r\n IsViewThroughConversionEnabled: isViewThroughConversionEnabled,\r\n dynamic = {},\r\n } = permissions;\r\n\r\n const {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n UETDashboard: IsUETDashboardEnabled,\r\n AllowAutoGoalWizard: IsAllowAutoGoalWizard,\r\n } = dynamic;\r\n const usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\n return _.map(_.compact([{\r\n name: 'Status',\r\n title: s$i18n.property('Goal', 'Status'),\r\n sortable: 'Status',\r\n property: _.identity,\r\n helpId: 'pop_BA_UET_Status',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${s$i18n.property('Goal', 'Status')}`,\r\n template: ({ value: tag }) => {\r\n return statusTemplate({\r\n value: tag.Status === 'Paused' ? 'Removed' : tag.Status,\r\n s$i18n,\r\n permissions,\r\n isReadOnly: tag.IsReadOnly || tag.Type === 'InStoreVisitGoal',\r\n });\r\n },\r\n html: isForVNext ? '
' : '',\r\n }, {\r\n name: 'Name',\r\n title: s$i18n.property('Goal', 'Name'),\r\n property: _.identity,\r\n sortable: 'Name',\r\n bodyClasses: 'UET-conversion-goals-column-Name',\r\n template: ({ value: goal }) => nameTemplate({\r\n isForVNext,\r\n name: goal.Name,\r\n ariaLabel: i18n.getString('ClickToEditGoal', { goalName: goal.Name }),\r\n showGoalSuggestion: (goal.Type === 'DestinationGoal' || goal.Type === 'EventGoal') && (goal.TrackingStatus === 'NoRecentConversion' || goal.TrackingStatus === 'TagInactive') && !goal.IsReadOnly,\r\n goalSuggestionAriaLabel: i18n.getString('Goal Suggestion'),\r\n isReadOnly: goal.IsReadOnly,\r\n isNonSupportGoal: goal.Type === 'InStoreVisitGoal',\r\n isAutoGoal: goal.IsAutoGoal,\r\n }),\r\n }, {\r\n name: 'Id',\r\n title: s$i18n.property('Goal', 'Id'),\r\n sortable: true,\r\n }, {\r\n name: 'Type',\r\n title: s$i18n.property('Goal', 'Type'),\r\n sortable: true,\r\n helpId: 'pop_BA_UET_Type',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${s$i18n.property('Goal', 'Type')}`,\r\n template: ({ value }) => {\r\n if (value === 'SmartGoal') {\r\n return smartGoalTemplate({\r\n isForVNext,\r\n value: i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Smart'),\r\n ariaLabel: `${i18n.getString('Click to learn more about')} ${i18n.getString('UnifiedEventTracking_Goal_Creation_Type_Smart')}`,\r\n });\r\n }\r\n return s$i18n.value('Goal', 'Type', value);\r\n },\r\n }, IsAllowAutoGoalWizard && {\r\n name: 'IsAutoGoal',\r\n title: s$i18n.property('Goal', 'IsAutoGoal'),\r\n sortable: true,\r\n template: ({ value }) => {\r\n return value ?\r\n i18n.getString('UnifiedEventTracking_Goal_Creation_CreationSourceType_AutoGoal') :\r\n i18n.getString('UnifiedEventTracking_Goal_Creation_CreationSourceType_ManualGoal');\r\n },\r\n }, {\r\n name: 'IsAccountLevel',\r\n title: s$i18n.property('Goal', 'IsAccountLevel'),\r\n sortable: true,\r\n helpId: 'pop_BA_UET_Scope',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${s$i18n.property('Goal', 'IsAccountLevel')}`,\r\n template: ({ value }) => {\r\n return value ?\r\n i18n.getString('UnifiedEventTracking_Goal_Creation_TrackingType_CurrentAccount', { acctname: appConfig.get('CurrentAccount').Title }) :\r\n i18n.getString('UnifiedEventTracking_Goal_Creation_TrackingType_AllAccounts');\r\n },\r\n }, {\r\n name: 'IsMainConversionGoal',\r\n title: s$i18n.property('Goal', 'IsMainConversionGoal'),\r\n sortable: true,\r\n helpId: 'pop_BA_ConversionGoal_CountAsConv',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${s$i18n.property('Goal', 'IsMainConversionGoal')}`,\r\n template: ({ value }) => {\r\n return value ?\r\n i18n.getString('UnifiedEventTracking_Goals_IsMainConversionGoal_True') :\r\n i18n.getString('UnifiedEventTracking_Goals_IsMainConversionGoal_False');\r\n },\r\n }, {\r\n name: 'ConversionCountType',\r\n title: s$i18n.property('Goal', 'ConversionCountType'),\r\n property: _.identity,\r\n sortable: 'ConversionCountType',\r\n helpId: 'pop_BA_UET_Count',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${s$i18n.property('Goal', 'ConversionCountType')}`,\r\n template: ({ value: goal }) => {\r\n return goal.Type === 'SmartGoal' || _.isEmpty(goal.ConversionCountType) ? noData : i18n.getString(`Schema_GoalPerformanceMetrics_Property_ConversionCountType_Value_${goal.ConversionCountType}`);\r\n },\r\n }, {\r\n name: 'LookbackWindowInMinutes',\r\n title: s$i18n.property('Goal', 'LookbackWindowInMinutes'),\r\n property: _.identity,\r\n sortable: 'LookbackWindowInMinutes',\r\n helpId: 'pop_BA_UET_ConversionWindow',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${s$i18n.property('Goal', 'LookbackWindowInMinutes')}`,\r\n template: ({ value: goal }) => {\r\n return goal.Type === 'SmartGoal' ? noData : getConversionWindow(goal.LookbackWindowInMinutes, i18n);\r\n },\r\n }, {\r\n name: 'GoalCategory',\r\n title: s$i18n.property('Goal', 'GoalCategory'),\r\n sortable: true,\r\n helpId: 'pop_BA_ConversionGoal_GoalCategory',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${s$i18n.property('Goal', 'GoalCategory')}`,\r\n template: ({ value }) => {\r\n if (_.isNull(value) || value === 'None') {\r\n const unassigned = i18n.getString('Schema_Goal_Property_GoalCategory_Value_None');\r\n\r\n return categoryColumnTemplate({ unassigned, isForVNext });\r\n }\r\n return i18n.getString(`Schema_Goal_Property_GoalCategory_Value_${value}`);\r\n },\r\n }, {\r\n /* eslint-disable no-undef */\r\n name: 'AttributionModelType',\r\n title: newi18n.getString(_TL_('Attribution model type')),\r\n sortable: true,\r\n helpId: 'pop_BA_CampaignGrids_AttributionModelType',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${newi18n.getString(_TL_('Attribution model type'))}`,\r\n template: ({ value }) => {\r\n let attributionModelTypeStr = '';\r\n\r\n switch (value) {\r\n case 'Default':\r\n attributionModelTypeStr = newi18n.getString(_TL_('Last Click'));\r\n break;\r\n case 'External':\r\n attributionModelTypeStr = newi18n.getString(_TL_('External'));\r\n break;\r\n case 'LastTouch':\r\n attributionModelTypeStr = newi18n.getString(_TL_('Last Touch'));\r\n break;\r\n default:\r\n attributionModelTypeStr = value;\r\n }\r\n\r\n return attributionModelTypeStr;\r\n },\r\n /* eslint-enable no-undef */\r\n }, isViewThroughConversionEnabled && { // enable the View-Through window column when ViewThroughConversion feature is enabled\r\n name: 'ViewThroughLookbackWindowinMinutes',\r\n title: s$i18n.property('Goal', 'ViewThroughLookbackWindowInMinutes'),\r\n sortable: true,\r\n helpId: 'pop_BA_UET_VTCWindow ',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${s$i18n.property('Goal', 'ViewThroughLookbackWindowInMinutes')}`,\r\n template: ({ value }) => {\r\n return getConversionWindow(value, i18n, 'UnifiedEventTracking_Goals_ViewThroughConversionWindowTemplate');\r\n },\r\n }, isViewThroughConversionEnabled && { // enable the ViewThoughConversions column when ViewThroughConversion feature is enabled\r\n name: usePartialConversions ? 'GoalPerformanceMetrics/ViewThroughConversionsCredit' : 'GoalPerformanceMetrics/ViewThroughConversions',\r\n title: s$i18n.property('Goal', 'ViewThroughConversions'),\r\n sortable: true,\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${s$i18n.property('Goal', 'ViewThroughConversions')}`,\r\n template: ({ value }) => {\r\n if (!_.isFinite(value) || _.isNull(value)) {\r\n return noData;\r\n }\r\n\r\n return value;\r\n },\r\n columnConversion: usePartialConversions ? {\r\n sourceColumnName: 'GoalPerformanceMetrics/ViewThroughConversions',\r\n sourceSortableProperty: 'GoalPerformanceMetrics/ViewThroughConversions',\r\n targetSortableProperty: 'GoalPerformanceMetrics/ViewThroughConversionsCredit',\r\n } : {\r\n sourceColumnName: 'GoalPerformanceMetrics/ViewThroughConversionsCredit',\r\n sourceSortableProperty: 'GoalPerformanceMetrics/ViewThroughConversionsCredit',\r\n targetSortableProperty: 'GoalPerformanceMetrics/ViewThroughConversions',\r\n },\r\n }, {\r\n name: 'Tag/Id',\r\n title: s$i18n.property('Tag', 'Id'),\r\n sortable: true,\r\n helpId: 'pop_BA_UET_UETTag',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${s$i18n.property('Tag', 'Id')}`,\r\n template: ({ value }) => {\r\n return getTagIdLink({\r\n IsUETDashboardEnabled,\r\n value,\r\n i18n,\r\n });\r\n },\r\n }, {\r\n name: 'TrackingStatus',\r\n title: s$i18n.property('Goal', 'TrackingStatus'),\r\n property: _.identity,\r\n sortable: 'TrackingStatus',\r\n bodyClasses: 'UET-conversion-goals-column-TrackingStatus',\r\n helpId: 'pop_BA_UET_TrackingStatusGoal',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${s$i18n.property('Goal', 'TrackingStatus')}`,\r\n template: ({ value: goal }) => {\r\n return goal.Type === 'OfflineConversionGoal' || goal.Type === 'InStoreTransactionGoal' || goal.Type === 'ApplicationInstallGoal' || goal.Type === 'SmartGoal' || goal.Type === 'InStoreVisitGoal' || goal.IsReadOnly ? noData : trackingStatusTemplate({\r\n s$i18n,\r\n isForVNext,\r\n value: goal.TrackingStatus,\r\n isActiveTrackingStatus: (value) => value === 'RecordingConversions',\r\n });\r\n },\r\n }, isViewThroughConversionEnabled && {\r\n name: usePartialConversions ? 'GoalPerformanceMetrics/AllConversionsCredit' : 'GoalPerformanceMetrics/AllConversions',\r\n title: s$i18n.property('GoalPerformanceMetrics', 'AllConversions'),\r\n sortable: true,\r\n type: 'number',\r\n format: usePartialConversions ? 'decimal' : 'integer',\r\n helpId: 'pop_BA_ConversionGoal_AllConv',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${s$i18n.property('GoalPerformanceMetrics', 'AllConversions')}`,\r\n columnConversion: usePartialConversions ? {\r\n sourceColumnName: 'GoalPerformanceMetrics/AllConversions',\r\n sourceSortableProperty: 'GoalPerformanceMetrics/AllConversions',\r\n targetSortableProperty: 'GoalPerformanceMetrics/AllConversionsCredit',\r\n } : {\r\n sourceColumnName: 'GoalPerformanceMetrics/AllConversionsCredit',\r\n sourceSortableProperty: 'GoalPerformanceMetrics/AllConversionsCredit',\r\n targetSortableProperty: 'GoalPerformanceMetrics/AllConversions',\r\n },\r\n }, !isViewThroughConversionEnabled && {\r\n name: usePartialConversions ? 'GoalPerformanceMetrics/ConversionsCredit' : 'GoalPerformanceMetrics/Conversions',\r\n title: s$i18n.property('GoalPerformanceMetrics', 'AllConversions'),\r\n sortable: true,\r\n type: 'number',\r\n format: usePartialConversions ? 'decimal' : 'integer',\r\n helpId: 'pop_BA_ConversionGoal_AllConv',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${s$i18n.property('GoalPerformanceMetrics', 'AllConversions')}`,\r\n columnConversion: usePartialConversions ? {\r\n sourceColumnName: 'GoalPerformanceMetrics/Conversions',\r\n sourceSortableProperty: 'GoalPerformanceMetrics/Conversions',\r\n targetSortableProperty: 'GoalPerformanceMetrics/ConversionsCredit',\r\n } : {\r\n sourceColumnName: 'GoalPerformanceMetrics/ConversionsCredit',\r\n sourceSortableProperty: 'GoalPerformanceMetrics/ConversionsCredit',\r\n targetSortableProperty: 'GoalPerformanceMetrics/Conversions',\r\n },\r\n }, {\r\n // Rename to all conversions revenue when main goal selection is enabled\r\n name: 'GoalPerformanceMetrics/Revenue',\r\n title: s$i18n.property('GoalPerformanceMetrics', 'AllRevenue'),\r\n sortable: 'GoalPerformanceMetrics/Revenue',\r\n property: _.identity,\r\n type: 'number',\r\n helpId: 'pop_BA_ConversionGoal_AllConvRevenue',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${s$i18n.property('GoalPerformanceMetrics', 'AllRevenue')}`,\r\n template: ({ value: goal }) => {\r\n if (goal.IsReadOnly) {\r\n return noData;\r\n }\r\n if (goal.GoalValueType === 'NoValue' && goal.Type !== 'SmartGoal') {\r\n return revenueTemplate({ value: i18n.getString('ConversionGoals_Grid_Revenue_Unassigned'), isForVNext });\r\n }\r\n return goal.GoalPerformanceMetrics.Revenue || noData;\r\n },\r\n }, {\r\n name: usePartialConversions ? 'GoalPerformanceMetrics/PartialConversionRepeatRate' : 'GoalPerformanceMetrics/RepeatRate',\r\n title: s$i18n.property('GoalPerformanceMetrics', 'RepeatRate'),\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_UET_RepeatRate',\r\n helpAriaLabelTextTemplate: `${i18n.getString('Click to learn more about')} ${s$i18n.property('GoalPerformanceMetrics', 'RepeatRate')}`,\r\n columnConversion: usePartialConversions ? {\r\n sourceColumnName: 'GoalPerformanceMetrics/RepeatRate',\r\n sourceSortableProperty: 'GoalPerformanceMetrics/RepeatRate',\r\n targetSortableProperty: 'GoalPerformanceMetrics/PartialConversionRepeatRate',\r\n } : {\r\n sourceColumnName: 'GoalPerformanceMetrics/PartialConversionRepeatRate',\r\n sourceSortableProperty: 'GoalPerformanceMetrics/PartialConversionRepeatRate',\r\n targetSortableProperty: 'GoalPerformanceMetrics/RepeatRate',\r\n },\r\n }]), column);\r\n};\r\n","import _ from 'underscore';\r\nimport { DeterministicView } from '@bingads-webui/deterministic-view';\r\nimport explanationTemplate from '@bingads-webui-campaign-legacy/common-grid-plugins/perf-data-explanation/template.pug';\r\n// eslint-disable-next-line\r\nimport _bingads_webui_component_legacy_timezonemapper_index from '@bingads-webui-component-legacy/timezonemapper/index';\r\n// eslint-disable-next-line\r\nconst { getTimeZoneForDateRangeText } = _bingads_webui_component_legacy_timezonemapper_index;\r\nimport { appendLearnMoreLink } from '@bingads-webui-component-legacy/help/index';\r\n\r\nexport class PerfDataExplanationView extends DeterministicView {\r\n initialize({ stampNotes, i18n }) {\r\n this.i18n = i18n;\r\n this.stampNotes = stampNotes || appendLearnMoreLink(i18n.get('BITimeStampNotes_Label'), 'ext54480');\r\n this.accountTimeZoneText = getTimeZoneForDateRangeText();\r\n }\r\n\r\n template(locals) {\r\n return explanationTemplate(_.extend({ appendLearnMoreLink }, locals));\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { PerfDataExplanationView } from '@bingads-webui-campaign-legacy/common-grid-plugins/perf-data-explanation/perf-data-explanation-view';\r\nimport { defineGridPlugin } from '@bingads-webui/projection-grid-plugin';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/common-grid-plugins');\r\n\r\nexport const perfDataExplanationPlugin = defineGridPlugin(\r\n 'perfDataExplanation',\r\n ['gridView'],\r\n (gridView, config) => {\r\n const perfDataExplanationView = new PerfDataExplanationView(_.extend({ i18n }, config)).render();\r\n\r\n gridView.appendFootRows([{\r\n view: perfDataExplanationView,\r\n classes: ['noborder'],\r\n }]);\r\n return perfDataExplanationView;\r\n\r\n }\r\n);\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport jsdataCampaign from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport { selectionConfig } from '@bingads-webui-campaign-legacy/common-grid-config/selection';\r\nimport { sortableHeaderTemplate, validateOrder} from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { helpers } from '@bingads-webui/projection-grid-toolbar';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport stateManager from '@bingads-webui-component-legacy/statemanager/campaignStateManager';\r\nimport preferenceService from '@bingads-webui-component-legacy/preference/service/index';\r\n\r\nexport class GridConfig {\r\n constructor({\r\n columnConfig,\r\n isForVNext,\r\n schema,\r\n preferenceConfig,\r\n options: {\r\n customHeaderOffset,\r\n viewport,\r\n },\r\n i18n,\r\n permissions,\r\n }) {\r\n const tableName = i18n.getString('UnifiedEventTracking_Goals_Title');\r\n\r\n const gridName = preferenceConfig.name || 'ConversionGoalsGrid';\r\n\r\n _.extend(this, {\r\n name: gridName,\r\n dataSource: {\r\n type: 'jsdata',\r\n entity: jsdataCampaign.Goal,\r\n primaryKey: 'Id',\r\n schema,\r\n },\r\n query: {\r\n options: {\r\n cacheResponse: false,\r\n },\r\n entitySet: edm.currentAccount.Goals.toJSON(),\r\n query: _.defaults(preferenceConfig.dataSource.query, {\r\n $expand: 'Tag($select=Id)',\r\n }),\r\n orderby: preferenceConfig.dataSource.orderby,\r\n },\r\n scrolling: {\r\n header: {\r\n type: 'sticky',\r\n offset: customHeaderOffset || (() => $('nav.navbar-default.navbar-fixed-top').height()),\r\n attributes: { 'aria-label': i18n.getString('{{tableName}} table header', { tableName }) },\r\n },\r\n virtualized: true,\r\n },\r\n tableClasses: ['table', 'table-bordered'],\r\n tableAttributes: { 'aria-label': tableName },\r\n rows: {\r\n headRows: isForVNext ? [\r\n 'column-header-rows',\r\n ] :\r\n helpers.singleToolbarHeadRows(),\r\n },\r\n columns: columnConfig,\r\n config,\r\n stateManager,\r\n preferenceService,\r\n sortableHeader: _.defaults(preferenceConfig.sortableHeader, {\r\n name: 'Name',\r\n directionIndex: 0,\r\n template: sortableHeaderTemplate,\r\n }),\r\n }, isForVNext ? {} : {\r\n selection: selectionConfig({ single: true }),\r\n });\r\n\r\n validateOrder(preferenceConfig, columnConfig, gridName, permissions);\r\n if (viewport) {\r\n this.scrolling.viewport = viewport;\r\n }\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Promise from 'bluebird';\r\nimport { updateGridQuery } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { constants } from '@bingads-webui/projection-grid-toolbar';\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { notificationApi, NotificationLevel } from '@bingads-webui-react/notification-center';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport jsdataCampaign from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport { triggerQualtricsEvent } from '@bingads-webui-campaign/qualtrics';\r\nimport UpdateStatusView from '@bingads-webui-component-legacy/update-status/view/index';\r\nimport appConfig from '@bingads-webui-component-legacy/config/index';\r\nimport TagViewer from '@bingads-webui-static-legacy/uet/view/tagViewer';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport { processTypeEnumForGoals, processTypeBooleanForGoals, getDefWithAccountInfo } from '@bingads-webui-campaign-legacy/conversion-tracking/common/util/index';\r\nimport { handleSortChange } from '@bingads-webui-campaign-legacy/bingadsgrid/service/state-manager-helper';\r\nimport { isActiveTrackingStatusForGoals, showTrackingStatusDetails } from '@bingads-webui-campaign-legacy/common-grid-config/controls/tracking-status-popover';\r\nimport { contents } from '@bingads-webui-campaign-legacy/popover/index';\r\nimport helpLinkTemplate from '@bingads-webui-campaign-legacy/common-grid-config/controls/help-link-template.pug';\r\nimport trackingStatusPopoverTemplate from '@bingads-webui-campaign-legacy/common-grid-config/controls/tracking-status-popover-template.pug';\r\nimport unassignedCategoryPopoverTemplate from './unassigned-category-popover-template.pug';\r\nimport unassignedRevenuePopoverTemplate from './unassigned-revenue-popover-template.pug';\r\nimport smartGoalTypePopoverTemplate from './goal-type-popover-template.pug';\r\nimport goalReadOnlyPopoverTemplate from './goal-read-only-popover-template.pug';\r\nimport { showUnAssignedDetails } from './unassigned-detail-popover';\r\nimport { getColumnConfig, getColumnChooserConfig } from './column-config';\r\nimport { getDefaultPlugins } from './plugin-config';\r\nimport { GridConfig } from './grid-config';\r\nimport { startConversionAdvisor } from '@bingads-webui-campaign-legacy/popover/conversion-advisor-entrypoint';\r\n\r\nconst schema = window.globalLegacySchema.get('Goal');\r\nconst s$i18n = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\n\r\nprocessTypeEnumForGoals({ schema });\r\nprocessTypeBooleanForGoals({ schema, chooseType: 'radio-boolean' });\r\n\r\nexport class ConversionGoalsGrid extends DeterministicWrapperView {\r\n initialize(options) {\r\n super.initialize(options);\r\n this.initializeInstrumentation();\r\n }\r\n\r\n viewFactory({\r\n newi18n,\r\n i18n,\r\n preferenceConfig,\r\n $blocker,\r\n permissions = {},\r\n pgridFactory,\r\n pluginFactories,\r\n extendPlugins = () => [],\r\n isForVNext,\r\n customHeaderOffset,\r\n viewport,\r\n filterService,\r\n router,\r\n showPopup,\r\n setShowAutoGoalDrawer,\r\n perfMarker,\r\n }) {\r\n this.isForVNext = isForVNext;\r\n this.filterService = filterService;\r\n this.router = router;\r\n this.resource = jsdataCampaign.Goal;\r\n this.newi18n = newi18n;\r\n this.i18n = i18n;\r\n this.$blocker = $blocker;\r\n this.showPopup = showPopup;\r\n this.setShowAutoGoalDrawer = setShowAutoGoalDrawer;\r\n this.permissions = permissions;\r\n this.isInitialGrid = true;\r\n\r\n const columnConfig = getColumnConfig({\r\n newi18n,\r\n i18n,\r\n s$i18n,\r\n permissions,\r\n appConfig,\r\n isForVNext,\r\n });\r\n const gridConfig = new GridConfig({\r\n columnConfig,\r\n isForVNext,\r\n schema,\r\n preferenceConfig,\r\n options: {\r\n customHeaderOffset,\r\n viewport,\r\n },\r\n i18n,\r\n permissions,\r\n });\r\n const defaultPlugins = getDefaultPlugins({\r\n perfMarker,\r\n view: this,\r\n $blocker,\r\n appConfig,\r\n i18n,\r\n isForVNext,\r\n s$i18n,\r\n schema,\r\n columnChooserConfig: getColumnChooserConfig({\r\n i18n,\r\n isForVNext,\r\n columnConfig,\r\n permissions,\r\n }),\r\n pluginFactories,\r\n permissions,\r\n });\r\n const extendedPlugins = extendPlugins({\r\n view: this,\r\n gridConfig,\r\n });\r\n\r\n this.grid = pgridFactory({\r\n gridConfig,\r\n plugins: defaultPlugins.concat(extendedPlugins),\r\n preferenceConfig: preferenceConfig || {},\r\n });\r\n this.gridView = this.grid.gridView;\r\n if (!isForVNext) {\r\n // row selection feature is only available in old UI\r\n this.gridView.on('didSelect', (selected) => {\r\n const toolbarEditor = this.grid.toolbar.gridToolbarGroup.toolbarWithName(constants.DEFAULT_TOOLBAR_NAME);\r\n\r\n toolbarEditor.update({\r\n id: 'dropdown-edit',\r\n disabled: _.isEmpty(selected),\r\n });\r\n });\r\n }\r\n this.gridView.on('didUpdate', (changes) => {\r\n // for the perf issue, should not patch preference when init view\r\n if (this.isInitialGrid) {\r\n this.isInitialGrid = false;\r\n return;\r\n }\r\n handleSortChange(changes, this.gridView, gridConfig.name);\r\n });\r\n\r\n if (this.filterService) {\r\n this.listenTo(this.filterService, 'filter-state-changed', () => {\r\n updateGridQuery(this.gridView, this.filterService.getCombinedFilter(), true);\r\n });\r\n }\r\n\r\n return this.gridView;\r\n }\r\n\r\n get events() {\r\n return _.defaults({\r\n 'click .edit-goal-link': (e) => {\r\n const { Id } = this.gridView.itemOfElement(e.target);\r\n\r\n this.router.navigateToGoalEditingPage({ goalId: Id });\r\n },\r\n 'click .link-tag-id': (e) => {\r\n const item = this.gridView.itemOfElement(e.target);\r\n\r\n if (!_.isEmpty(item)) {\r\n if (item.TrackingStatus === 'InactiveDueToTagUnavailable') {\r\n notificationApi.add({\r\n severity: NotificationLevel.Error,\r\n title: '',\r\n message: this.i18n.getString('ConversionGoals_Grid_TrackingStatusMessage_InactiveDueToTagUnavailable'),\r\n target: 'FloatingBanner',\r\n });\r\n return;\r\n }\r\n this.router.navigateToTagIdPage({ tagId: item.Tag.Id });\r\n }\r\n },\r\n 'click .link-tag': (e) => {\r\n const item = this.gridView.itemOfElement(e.target);\r\n\r\n if (!_.isEmpty(item)) {\r\n if (item.TrackingStatus === 'InactiveDueToTagUnavailable') {\r\n notificationApi.add({\r\n severity: NotificationLevel.Error,\r\n title: '',\r\n message: this.i18n.getString('ConversionGoals_Grid_TrackingStatusMessage_InactiveDueToTagUnavailable'),\r\n target: 'FloatingBanner',\r\n });\r\n return;\r\n }\r\n jsdataCampaign.Tag.find(item.Tag.Id)\r\n .then((Tag) => {\r\n new TagViewer({\r\n tag: {\r\n name: Tag.Name,\r\n id: Tag.Id,\r\n script: Tag.TrackingCode,\r\n },\r\n }).render();\r\n });\r\n }\r\n },\r\n 'click .uet-tags-grid__tracking-status-detail': 'onShowTrackingStatusDetails',\r\n 'click .goals-grid__category-detail': 'onShowUnassignedCategoryPopup',\r\n 'click .goals-grid__revenue-detail': 'onShowUnassignedRevenuePopup',\r\n 'click .goals-grid__smart-goal': 'onShowSmartGoalPopup',\r\n 'click .goals-grid__goal-isAutoGoal': 'onShowGoalEditDrawer',\r\n 'click .goals-grid__goal-readonly': 'onShowGoalReadOnlyPopup',\r\n 'click .goals-grid__goal-nonsupportGoal': 'onShowGoalNotSupportedPopup',\r\n 'click .conversion-goals-light-bulb': 'onShowGoalSuggestion',\r\n 'click .grid-cell .statuschangehover': (e) => {\r\n const resource = this.gridView.get('dataSource').entity;\r\n const item = this.gridView.itemOfElement(e.target);\r\n\r\n if (_.isEmpty(item)) {\r\n return;\r\n }\r\n e.stopPropagation();\r\n if (this.updateStatusView) {\r\n this.updateStatusView.remove();\r\n this.updateStatusView = null;\r\n }\r\n\r\n const stateWhitelist = ['Active', 'Paused'];\r\n\r\n let itemToUpdate = _.omit(item, 'Status');\r\n\r\n if (itemToUpdate.ViewThroughLookbackWindowinMinutes === 0) {\r\n delete itemToUpdate.ViewThroughLookbackWindowinMinutes;\r\n }\r\n\r\n this.updateStatusView = new UpdateStatusView({\r\n Id: item.Id,\r\n Status: item.Status,\r\n schema,\r\n entitySet: edm.currentAccount.Goals,\r\n extendData: itemToUpdate,\r\n afterChange: (err) => {\r\n if (err && err.status === 400) {\r\n const errCode = err.responseJSON && err.responseJSON.value && err.responseJSON.value[0] && err.responseJSON.value[0].Code;\r\n\r\n notificationApi.add({\r\n severity: NotificationLevel.Error,\r\n title: '',\r\n message: errCode ? this.i18n.getString(`ConversionGoals_Grid_ErrorMessage_${errCode}`) : this.i18n.getString('GenericErrorMessage_Short'),\r\n target: 'FloatingBanner',\r\n });\r\n } else {\r\n resource.ejectAll();\r\n this.gridView.refresh(true);\r\n }\r\n },\r\n beforeRemove: () => {\r\n this.updateStatusView = null;\r\n if (item.Type === 'SmartGoal') {\r\n triggerQualtricsEvent('UserPauseSmartGoal');\r\n }\r\n },\r\n stateWhitelist,\r\n }).render();\r\n\r\n $(e.target).closest('td', this.el).append(this.updateStatusView.el);\r\n },\r\n }, this.isForVNext ? {\r\n 'mouseenter .uet-tags-grid__tracking-status-detail': 'onShowTrackingStatusDetails',\r\n 'mouseenter .goals-grid__category-detail': 'onShowUnassignedCategoryPopup',\r\n 'mouseenter .goals-grid__revenue-detail': 'onShowUnassignedRevenuePopup',\r\n 'mouseenter .goals-grid__smart-goal': 'onShowSmartGoalPopup',\r\n 'mouseenter .goals-grid__goal-readonly': 'onShowGoalReadOnlyPopup',\r\n 'mouseleave .goals-grid__category-detail': 'hidePopup',\r\n 'mouseleave .UET-conversion-goals-column-TrackingStatus': 'hidePopup',\r\n 'mouseleave .goals-grid__revenue-detail': 'hidePopup',\r\n 'mouseleave .goals-grid__smart-goal': 'hidePopup',\r\n 'mouseleave .goals-grid__goal-readonly': 'hidePopup',\r\n } : {});\r\n }\r\n\r\n initializeInstrumentation() {\r\n const scenarios = {\r\n testConversionGoals: instrumentation.testConversionGoals.create(),\r\n };\r\n\r\n this.activities = {\r\n clickOnGoalBulbIcon: scenarios.testConversionGoals.clickOnGoalBulbIcon.create(),\r\n clickOnTestThisGoalFromGoalBulbPopup: scenarios.testConversionGoals.clickOnTestThisGoalFromGoalBulbPopup.create(),\r\n clickOnTestThisGoalFromTrackingStatusPopup: scenarios.testConversionGoals.clickOnTestThisGoalFromTrackingStatusPopup.create(),\r\n };\r\n this.activities.clickOnGoalBulbIcon.monitor('onShowGoalSuggestion', this);\r\n }\r\n\r\n hidePopup(e) {\r\n if ($(e.relatedTarget).closest('#popup-callout').length === 0) {\r\n this.trigger('closePopup');\r\n }\r\n }\r\n\r\n onShowGoalSuggestion(e) {\r\n this.onShowTrackingStatusPopover(e,\r\n this.i18n.getString('Test conversion goal'),\r\n 'ConversionGoals_Grid_TestConversionGoalsMessage_',\r\n this.i18n.getString('UnifiedEventTracking_TestConversionGoal_TestInAdvisorExtension'));\r\n }\r\n\r\n onShowTrackingStatusDetails(e) {\r\n this.onShowTrackingStatusPopover(e);\r\n }\r\n\r\n onShowTrackingStatusPopover(e, title = this.i18n.getString('UETTags_Grid_ColumnTrackingStatus'), trackingStatusMessagePrefix = 'ConversionGoals_Grid_TrackingStatusMessage_', customExtensionEntranceText = '') {\r\n const item = this.gridView.itemOfElement(e.target);\r\n const testGoalClickActivity = customExtensionEntranceText ? this.activities.clickOnTestThisGoalFromGoalBulbPopup : this.activities.clickOnTestThisGoalFromTrackingStatusPopup;\r\n const isUnverifiedOrInactive = item.TrackingStatus === 'Unverified' || item.TrackingStatus === 'TagInactive';\r\n const isNoRecentConversions = item.TrackingStatus === 'NoRecentConversion';\r\n const isTrackingStatusColumn = title === this.i18n.getString('UETTags_Grid_ColumnTrackingStatus');\r\n\r\n if (_.isEmpty(item)) {\r\n return;\r\n }\r\n if (this.isForVNext && _.isFunction(this.showPopup)) {\r\n const a11yId = (suffix) => `${_.uniqueId('a11y-')}__${suffix}`;\r\n const contentView = new contents.TitledContent()\r\n .setBody({\r\n html: trackingStatusPopoverTemplate({\r\n i18n: this.i18n,\r\n helpLinkTemplate,\r\n troubleshootTopic: 'app51206',\r\n value: item.TrackingStatus,\r\n a11yId,\r\n isActiveTrackingStatus: isActiveTrackingStatusForGoals,\r\n isUnverifiedOrInactive,\r\n isNoRecentConversions,\r\n isTrackingStatusColumn,\r\n trackingStatusMessagePrefix,\r\n customExtensionEntranceText,\r\n isInPilot: this.permissions.IsConversionAdvisorEntryLinkEnabled,\r\n isUETDashboardEnabled: this.permissions.dynamic.UETDashboard,\r\n testType: item.Type,\r\n isClarityGoal: !!item.ClarityEventDefinitionId,\r\n }),\r\n }).delegateEvents({\r\n 'click .uetdashboard': () => {\r\n if (item.TrackingStatus === 'InactiveDueToTagUnavailable') {\r\n notificationApi.add({\r\n severity: NotificationLevel.Error,\r\n title: '',\r\n message: this.i18n.getString('ConversionGoals_Grid_TrackingStatusMessage_InactiveDueToTagUnavailable'),\r\n target: 'FloatingBanner',\r\n });\r\n return;\r\n }\r\n this.router.navigateToTagIdPage({ tagId: item.Tag.Id });\r\n },\r\n 'click .extension': () => {\r\n let goalDef = getDefWithAccountInfo(item);\r\n\r\n if (testGoalClickActivity && testGoalClickActivity.trace) {\r\n testGoalClickActivity.trace(\r\n 'open extension entrance from conversion goals grid test conversion goals popup',\r\n item.TrackingStatus);\r\n }\r\n\r\n startConversionAdvisor(goalDef);\r\n },\r\n });\r\n\r\n this.showPopup({\r\n containerSelector: '#rejectionContainer',\r\n title,\r\n contentView,\r\n event: e,\r\n parentView: this,\r\n popoverClassName: 'trackingStatusPopover',\r\n });\r\n } else {\r\n const goalItemWithAccountInfo = getDefWithAccountInfo(item);\r\n\r\n showTrackingStatusDetails(\r\n goalItemWithAccountInfo,\r\n this.$(e.target),\r\n 'conversion-goals-grid__tracking-status-popover',\r\n isActiveTrackingStatusForGoals,\r\n this.i18n,\r\n trackingStatusMessagePrefix,\r\n title,\r\n customExtensionEntranceText,\r\n );\r\n }\r\n }\r\n\r\n onShowUnassignedCategoryPopup(e) {\r\n const title = this.i18n.getString('UnifiedEventTracking_Goals_GoalCategory');\r\n const popupMessage = this.i18n.getString('ConversionGoals_Grid_Category_Unassigned_Msg');\r\n const a11yId = (suffix) => `${_.uniqueId('a11y-')}__${suffix}`;\r\n\r\n if (this.isForVNext && _.isFunction(this.showPopup)) {\r\n const contentView = new contents.TitledContent()\r\n .setBody({\r\n html: unassignedCategoryPopoverTemplate({\r\n a11yId,\r\n popupMessage,\r\n }),\r\n });\r\n\r\n this.showPopup({\r\n containerSelector: '#rejectionContainer',\r\n title,\r\n contentView,\r\n event: e,\r\n parentView: this,\r\n });\r\n } else {\r\n showUnAssignedDetails(\r\n this.gridView.itemOfElement(e.target),\r\n this.$(e.target),\r\n 'conversion-goals-grid__unassigned-category-popover',\r\n title,\r\n unassignedCategoryPopoverTemplate({\r\n a11yId,\r\n popupMessage,\r\n }),\r\n );\r\n }\r\n }\r\n\r\n onShowUnassignedRevenuePopup(e) {\r\n const title = this.i18n.getString('ConversionGoals_Grid_Revenue_Unassigned');\r\n const a11yId = (suffix) => `${_.uniqueId('a11y-')}__${suffix}`;\r\n\r\n if (this.isForVNext && _.isFunction(this.showPopup)) {\r\n const contentView = new contents.TitledContent()\r\n .setBody({\r\n html: unassignedRevenuePopoverTemplate({\r\n a11yId,\r\n i18n: this.i18n,\r\n }),\r\n });\r\n\r\n this.showPopup({\r\n containerSelector: '#rejectionContainer',\r\n title,\r\n contentView,\r\n event: e,\r\n parentView: this,\r\n });\r\n } else {\r\n showUnAssignedDetails(\r\n this.gridView.itemOfElement(e.target),\r\n this.$(e.target),\r\n 'conversion-goals-grid__unassigned-revenue-popover',\r\n title,\r\n unassignedRevenuePopoverTemplate({\r\n a11yId,\r\n i18n: this.i18n,\r\n }),\r\n );\r\n }\r\n }\r\n\r\n onShowSmartGoalPopup(e) {\r\n const title = this.i18n.getString('ConversionGoals_Grid_SmartGoal_Popover_Title');\r\n const a11yId = (suffix) => `${_.uniqueId('a11y-')}__${suffix}`;\r\n\r\n if (this.isForVNext && _.isFunction(this.showPopup)) {\r\n const contentView = new contents.TitledContent()\r\n .setBody({\r\n html: smartGoalTypePopoverTemplate({\r\n a11yId,\r\n i18n: this.i18n,\r\n }),\r\n });\r\n\r\n this.showPopup({\r\n containerSelector: '#rejectionContainer',\r\n title,\r\n contentView,\r\n event: e,\r\n parentView: this,\r\n });\r\n } else {\r\n showUnAssignedDetails(\r\n this.gridView.itemOfElement(e.target),\r\n this.$(e.target),\r\n 'conversion-goals-grid__smartgoal-popover',\r\n title,\r\n smartGoalTypePopoverTemplate({\r\n a11yId,\r\n i18n: this.i18n,\r\n }),\r\n );\r\n }\r\n }\r\n\r\n onShowGoalEditDrawer(e) {\r\n if (!_.get(this.permissions, ['dynamic', 'AllowAutoGoalWizard'])) {\r\n return;\r\n }\r\n if (this.isForVNext && _.isFunction(this.setShowAutoGoalDrawer)) {\r\n const goal = this.gridView.itemOfElement(e.target);\r\n\r\n this.setShowAutoGoalDrawer(true /*shouldShow*/, goal);\r\n }\r\n }\r\n\r\n onShowGoalReadOnlyPopup(e) {\r\n const title = this.i18n.getString('ConversionGoals_Grid_Goal_ReadOnly_Popover_Title');\r\n const popupMessage = this.i18n.getString('ConversionGoals_Grid_Goal_ReadOnly_Popover_Message');\r\n const a11yId = (suffix) => `${_.uniqueId('a11y-')}__${suffix}`;\r\n\r\n if (this.isForVNext && _.isFunction(this.showPopup)) {\r\n const contentView = new contents.TitledContent()\r\n .setBody({\r\n html: goalReadOnlyPopoverTemplate({\r\n a11yId,\r\n popupMessage,\r\n }),\r\n });\r\n\r\n this.showPopup({\r\n containerSelector: '#rejectionContainer',\r\n title,\r\n contentView,\r\n event: e,\r\n parentView: this,\r\n });\r\n }\r\n }\r\n\r\n onShowGoalNotSupportedPopup(e) {\r\n const title = this.i18n.getString('ConversionGoals_Grid_Goal_NotSupported_Popover_Title');\r\n const popupMessage = this.i18n.getString('ConversionGoals_Grid_Goal_NotSupported_Popover_Message');\r\n const a11yId = (suffix) => `${_.uniqueId('a11y-')}__${suffix}`;\r\n\r\n if (this.isForVNext && _.isFunction(this.showPopup)) {\r\n const contentView = new contents.TitledContent()\r\n .setBody({\r\n html: goalReadOnlyPopoverTemplate({\r\n a11yId,\r\n popupMessage,\r\n }),\r\n });\r\n\r\n this.showPopup({\r\n containerSelector: '#rejectionContainer',\r\n title,\r\n contentView,\r\n event: e,\r\n parentView: this,\r\n });\r\n }\r\n }\r\n\r\n updateAllStatus(status) {\r\n const resource = this.gridView.get('dataSource').entity;\r\n const selectedItem = _.omit(this.gridView.selectedItems()[0], 'FlexTagScript', 'CampaignAnalyticsGoalName');\r\n const currentStatus = selectedItem.Status;\r\n\r\n if (currentStatus !== status) {\r\n resource.update(selectedItem.Id, _.defaults({\r\n '@odata.type': `#Model.${selectedItem.Type}`,\r\n Status: status,\r\n }, selectedItem), {\r\n afterUpdate: () => {\r\n selectedItem.Status = status;\r\n return Promise.resolve(selectedItem);\r\n },\r\n }).then(() => {\r\n this.gridView.refresh(true);\r\n }).finally(withUiBlock(this.$blocker, this.i18n.getString('loadingtext')));\r\n }\r\n }\r\n\r\n renderTrunk() {\r\n if (this.isForVNext) {\r\n this.filterService.initializeCombinedFilterPromise.then(() => {\r\n updateGridQuery(this.gridView, this.filterService.getCombinedFilter(), true);\r\n });\r\n }\r\n super.renderTrunk();\r\n }\r\n\r\n remove() {\r\n if (this.updateStatusView) {\r\n this.updateStatusView.remove();\r\n this.updateStatusView = null;\r\n }\r\n return super.remove();\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { assistedSelectionPlugin } from '@bingads-webui/projection-grid-assisted-selection';\r\nimport { a11yPlugin } from '@bingads-webui/projection-grid-a11y';\r\nimport dateFilterPlugin from '@bingads-webui-campaign-legacy/bingadsgrid/vnext/plugin/date-filter';\r\nimport { perfDataExplanationPlugin } from '@bingads-webui-campaign-legacy/common-grid-plugins/perf-data-explanation/index';\r\nimport { performanceLogPlugin, perfMarkerPlugin } from '@bingads-webui-campaign/pgrid-performance-log';\r\nimport logger from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport { appendLearnMoreLink } from '@bingads-webui-component-legacy/help/index';\r\nimport { placeholderPlugin } from '@bingads-webui/projection-grid-placeholder';\r\nimport { toolbarPlugin, helpers } from '@bingads-webui/projection-grid-toolbar';\r\n\r\nexport const getDefaultPlugins = ({\r\n view,\r\n $blocker,\r\n appConfig,\r\n i18n,\r\n isForVNext,\r\n columnChooserConfig,\r\n pluginFactories,\r\n permissions,\r\n perfMarker,\r\n}) => _.compact([\r\n { plugin: perfMarkerPlugin, config: { appConfig, marker: perfMarker } },\r\n { plugin: a11yPlugin, config: { i18n } },\r\n !isForVNext && { plugin: assistedSelectionPlugin },\r\n { plugin: dateFilterPlugin },\r\n !isForVNext && {\r\n plugin: perfDataExplanationPlugin,\r\n config: {\r\n stampNotes: appendLearnMoreLink(i18n.getString('BIConversionStampNotes_Label'), 'ext54480'),\r\n },\r\n },\r\n {\r\n plugin: performanceLogPlugin,\r\n config: { appConfig, logger },\r\n },\r\n {\r\n plugin: pluginFactories.columnChooserPlugin,\r\n config: columnChooserConfig,\r\n },\r\n {\r\n plugin: pluginFactories.paginationPlugin,\r\n config: {\r\n pageSize: 20,\r\n availablePageSizes: [20, 50, 100, 200],\r\n enableRandomPage: false,\r\n pageNumberLabelText: i18n.getString('Grid_Page_Number_Label_Text'),\r\n pageSizeText: i18n.getString('Grid_ShowRows'),\r\n totalPageCountText: i18n.getString('Grid_PageOf'),\r\n resetPageNumberOnSort: true,\r\n },\r\n },\r\n {\r\n plugin: pluginFactories.uiBlockerPlugin,\r\n config: {\r\n el: $blocker,\r\n text: i18n.getString('loadingtext'),\r\n },\r\n },\r\n {\r\n plugin: placeholderPlugin,\r\n config: {\r\n container: isForVNext ? '.grid-noresult' : '.goals-grid__placeholder',\r\n text: i18n.getString('Grid_NoRecords'),\r\n filteredContainer: isForVNext ? '.grid-noresult' : '.goals-grid__placeholder',\r\n filteredEmptyText: i18n.getString('Grid_NoFilteredRecords'),\r\n ignoreFilters: [{\r\n 'Status': {\r\n $in: null,\r\n },\r\n }],\r\n },\r\n },\r\n {\r\n plugin: toolbarPlugin,\r\n config: helpers.singleToolbar({\r\n items: _.compact([{\r\n type: 'button',\r\n id: 'button-create-conversion-goal',\r\n text: i18n.getString('UnifiedEventTracking_Goals_CreateConversionGoal'),\r\n classes: ['btn', 'btn-hero'],\r\n onClick: () => window.App.navigate('customer/:customer_id/account/:account_id/uet/goal/create'),\r\n }, {\r\n type: 'dropdown',\r\n id: 'dropdown-edit',\r\n disabled: true,\r\n button: {\r\n text: i18n.getString('UnifiedEventTracking_Edit'),\r\n classes: ['btn btn-secondary'],\r\n },\r\n menu: {\r\n items: [\r\n {\r\n text: i18n.getString('UnifiedEventTracking_Goals_EditGoal'),\r\n id: 'edit-goal',\r\n onClick: () => window.App.navigate(`customer/:customer_id/account/:account_id/uet/goal/${view.gridView.selectedItems()[0].Id}`, { data: { fromGoalEdit: true } }),\r\n }, {\r\n type: 'dropdown-divider',\r\n }, {\r\n iconLeft: ['icon-status-active'],\r\n id: 'enable-target',\r\n text: i18n.getString('UnifiedEventTracking_Enable'),\r\n onClick: () => view.updateAllStatus('Active', $blocker, i18n),\r\n }, {\r\n iconLeft: 'icon-status-pause',\r\n id: 'pause-target',\r\n text: i18n.getString('UnifiedEventTracking_Pause'),\r\n onClick: () => view.updateAllStatus('Paused', $blocker, i18n),\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n type: 'selector',\r\n id: 'quick-filter',\r\n }, {\r\n type: 'dropdown',\r\n id: 'dropdown-column-chooser',\r\n }, {\r\n type: 'dropdown',\r\n id: 'dropdown-filter',\r\n }, {\r\n type: 'search-box',\r\n id: 'search-box-filter',\r\n }]),\r\n }),\r\n },\r\n]);\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport { helpers } from '@bingads-webui/projection-grid-toolbar';\r\nimport { sortableHeaderTemplate } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport stateManager from '@bingads-webui-component-legacy/statemanager/campaignStateManager';\r\nimport preferenceService from '@bingads-webui-component-legacy/preference/service/index';\r\n\r\nexport class UETTagsGridDashboardTestConfig {\r\n constructor({\r\n preferenceConfig,\r\n columnConfig,\r\n options: {\r\n customHeaderOffset,\r\n viewport,\r\n },\r\n dataSource,\r\n isForVNext,\r\n i18n,\r\n }) {\r\n const tableName = i18n.getString('UnifiedEventTracking_Goal_Creation_Tag');\r\n\r\n _.extend(this, {\r\n name: preferenceConfig.name || 'UETTagsDashboardGridTest',\r\n tableClasses: ['table', 'table-bordered'],\r\n dataSource,\r\n config,\r\n stateManager,\r\n preferenceService,\r\n sortableHeader: _.defaults(preferenceConfig.sortableHeader, {\r\n name: 'EventAction',\r\n directionIndex: 0,\r\n template: sortableHeaderTemplate,\r\n }),\r\n rows: {\r\n headRows: isForVNext ? [\r\n 'column-header-rows',\r\n ] :\r\n helpers.singleToolbarHeadRows(),\r\n },\r\n scrolling: {\r\n header: {\r\n type: 'sticky',\r\n offset: customHeaderOffset || (() => $('nav.navbar-default.navbar-fixed-top').height()),\r\n attributes: { 'aria-label': i18n.getString('{{tableName}} table header', { tableName }) },\r\n },\r\n virtualized: true,\r\n },\r\n tableAttributes: { 'aria-label': tableName },\r\n columns: columnConfig,\r\n });\r\n\r\n if (viewport) {\r\n this.scrolling.viewport = viewport;\r\n }\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Promise from 'bluebird';\r\nimport { Storage } from '@bingads-webui/window-name-store';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport jsdataCampaign from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport preferencesService from '@bingads-webui-component-legacy/preference/service/index';\r\nimport { contents } from '@bingads-webui-campaign-legacy/popover/index';\r\nimport parametersReceivedPopoverTemplate from './parameters-received-template';\r\nimport { isActiveTrackingStatusForUet } from '@bingads-webui-campaign-legacy/common-grid-config/controls/tracking-status-popover';\r\nimport { SharedLibraryUtils } from '@bingads-webui-campaign-react/shared-library-scopes';\r\nimport { ClientCenterCustomerService } from '@bingads-webui/clientcenter-customer-service';\r\nimport { getErrorMessage } from '@bingads-webui-campaign-legacy/conversion-tracking/common/util/index';\r\nimport { getUETTagDashboardTestGridColumnConfig } from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard-test/grid/column-config';\r\nimport { getDefaultPlugins } from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard-test/grid/plugin-config';\r\nimport { UETTagsGridDashboardTestConfig } from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard-test/grid/grid-config';\r\n\r\nconst schema = window.globalLegacySchema.get('Tag');\r\nconst s$i18n = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\n\r\nexport function fetchCustomerHierarchy() {\r\n const windowNameStorage = new Storage();\r\n const currentUser = config.get('CurrentUser');\r\n // In ui-next serverContext, ParentCustomerId are put in CurrentUser\r\n const parentCustomerId = _.isUndefined(currentUser.ParentCustomerId) ? config.get('ParentCustomerId') : currentUser.ParentCustomerId;\r\n const currentCustomer = config.get('CurrentCustomer');\r\n const loginCID = currentUser.IsInternal ? windowNameStorage.get('rcid') || currentCustomer.Id : parentCustomerId;\r\n const ccCustomerService = new ClientCenterCustomerService({ ccBaseUrl: config.get('CCBaseUrl') });\r\n const fetchCustomerHierarchyPromise = ccCustomerService.getCustomerHierarchy({\r\n cid: loginCID,\r\n uid: currentUser.Id,\r\n returnOnlyDirectlyLinkedEntities: false,\r\n });\r\n const fetchUserPermissionPromise = fetchCustomerHierarchyPromise.then((data) => {\r\n const { customerHierarchyEntities: customerHierarchy } = data;\r\n const { Id: currentCustomerId } = currentCustomer;\r\n\r\n return SharedLibraryUtils.fetchUserPermissions({\r\n uid: currentUser.Id,\r\n cid: currentCustomerId,\r\n customerHierarchy,\r\n });\r\n });\r\n\r\n return Promise.join(fetchCustomerHierarchyPromise, fetchUserPermissionPromise, (data) => {\r\n const { customerHierarchyEntities: customerHierarchy } = data;\r\n\r\n return customerHierarchy;\r\n });\r\n}\r\n\r\nexport class UETTagsDashboardGridTest extends DeterministicWrapperView {\r\n viewFactory({\r\n i18n,\r\n preferenceConfig,\r\n dataSource,\r\n $blocker,\r\n permissions = {},\r\n isManagerDashboardView = false,\r\n pgridFactory,\r\n pluginFactories,\r\n extendPlugins = () => [],\r\n isForVNext,\r\n customHeaderOffset,\r\n sortableHeader,\r\n viewport,\r\n router,\r\n customerHierarchy,\r\n showPopup,\r\n showAccountListPopup,\r\n perfMarker,\r\n }) {\r\n const windowNameStorage = new Storage();\r\n\r\n this.isManagerDashboardView = isManagerDashboardView;\r\n this.permissions = permissions;\r\n this.i18n = i18n;\r\n this.$blocker = $blocker;\r\n this.router = router;\r\n this.customerHierarchy = customerHierarchy;\r\n this.isForVNext = isForVNext;\r\n this.showPopup = showPopup;\r\n this.showAccountListPopup = showAccountListPopup;\r\n this.isInitialGrid = true;\r\n\r\n edm.customerIdType.useAdvertiserCustomerId = !isManagerDashboardView;\r\n const columnConfig = getUETTagDashboardTestGridColumnConfig({\r\n updateHandler: _.bind(this.updateHandler, this),\r\n customerHierarchy: this.customerHierarchy,\r\n isManagerDashboardView,\r\n windowNameStorage,\r\n isActiveTrackingStatusForUet,\r\n isForVNext,\r\n deps: {\r\n i18n,\r\n s$i18n,\r\n permissions,\r\n config,\r\n },\r\n });\r\n\r\n const gridConfig = new UETTagsGridDashboardTestConfig({\r\n preferenceConfig,\r\n columnConfig,\r\n dataSource,\r\n options: {\r\n customHeaderOffset,\r\n sortableHeader,\r\n viewport,\r\n },\r\n isForVNext: this.isForVNext,\r\n i18n,\r\n });\r\n\r\n const defaultPlugins = getDefaultPlugins({\r\n $blocker,\r\n i18n,\r\n s$i18n,\r\n view: this,\r\n appConfig: config,\r\n preferencesService,\r\n permissions,\r\n pluginFactories,\r\n isForVNext,\r\n perfMarker,\r\n });\r\n const extendedPlugins = extendPlugins({\r\n view: this,\r\n gridConfig,\r\n });\r\n\r\n this.grid = pgridFactory({\r\n gridConfig,\r\n plugins: defaultPlugins.concat(extendedPlugins),\r\n preferenceConfig: preferenceConfig || {},\r\n });\r\n this.gridView = this.grid.gridView;\r\n\r\n return this.gridView;\r\n }\r\n\r\n get events() {\r\n return _.defaults({\r\n 'click .uet-tags-test-table__parameters-tag': 'onShowParametersReceivedDetails',\r\n }, this.isForVNext ? {\r\n 'mouseenter .uet-tags-test-table__parameters-tag': 'onShowParametersReceivedDetails',\r\n 'mouseleave .uet-tags-test-table__parameters-tag': 'hidePopup',\r\n } : {});\r\n }\r\n\r\n onShowParametersReceivedDetails(e) {\r\n this.onShowParametersReceivedPopover(e);\r\n }\r\n\r\n onShowParametersReceivedPopover(e) {\r\n const item = this.gridView.itemOfElement(e.target);\r\n\r\n if (_.isEmpty(item)) {\r\n return;\r\n }\r\n if (_.isFunction(this.showPopup)) {\r\n const contentView = new contents.TitledContent()\r\n .setBody({\r\n html: parametersReceivedPopoverTemplate({\r\n value: item.ParameterMap,\r\n i18n: this.i18n,\r\n newi18n: this.newI18n,\r\n }),\r\n });\r\n\r\n this.showPopup({\r\n containerSelector: '#rejectionContainer',\r\n title: this.i18n.getString('UETTags_Event_Grid_Parameters', { item: `${Object.keys(item.ParameterMap).length}` }),\r\n contentView,\r\n event: e,\r\n parentView: this,\r\n popoverClassName: 'trackingStatusPopover',\r\n });\r\n }\r\n }\r\n\r\n hidePopup(e) {\r\n if ($(e.relatedTarget).closest('#popup-callout').length === 0) {\r\n this.trigger('closePopup');\r\n }\r\n }\r\n\r\n updateHandler(originalItem, patch, editorView) {\r\n const windowNameStorage = new Storage();\r\n\r\n jsdataCampaign.Tag.update(originalItem[schema.key], patch, _.extend({\r\n cacheResponse: false,\r\n entitySet: this.isManagerDashboardView ? edm.currentCustomer.Tags : edm.currentAccount.Tags,\r\n }, config.get('CurrentUser').IsInternal && windowNameStorage.get('rcid') > 0 ? {\r\n headers: { 'x-ms-rootcid': windowNameStorage.get('rcid') },\r\n } : {}))\r\n .then(() => {\r\n if (editorView) {\r\n editorView.trigger('save', patch);\r\n }\r\n this.gridView.refresh(true);\r\n })\r\n .catch((res) => {\r\n const errors = [];\r\n\r\n if (!res || !res.errors) {\r\n errors.push(getErrorMessage('default', this.i18n));\r\n } else {\r\n _.each(res.errors, (error) => {\r\n errors.push(getErrorMessage(error.Code, this.i18n));\r\n });\r\n }\r\n if (editorView) {\r\n editorView.setErrors({ $overall: errors });\r\n }\r\n }).finally(withUiBlock(this.$blocker, this.i18n.getString('loadingtext')));\r\n }\r\n\r\n removeCreateView() {\r\n if (this.createView) {\r\n this.createView.off();\r\n this.createView.remove();\r\n this.createView = null;\r\n }\r\n }\r\n\r\n renderTrunk() {\r\n super.renderTrunk();\r\n }\r\n\r\n remove() {\r\n this.removeCreateView();\r\n return super.remove();\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport parametersColumnTemplate from './parameters-template';\r\n\r\nexport function getUETTagDashboardTestGridColumnConfig({\r\n deps,\r\n}) {\r\n const {\r\n i18n,\r\n } = deps;\r\n const column = (options) => bingadsGridColumn(_.defaults({ i18n }, options));\r\n\r\n return _.compact([\r\n column({\r\n name: 'EventType',\r\n title: 'UETTags_Event_Grid_ColumnEventType',\r\n sortable: false,\r\n helpId: 'pop_BA_UET_EventType',\r\n }),\r\n column({\r\n name: 'EventAction',\r\n title: 'UETTags_Event_Grid_ColumnEvents',\r\n sortable: false,\r\n template: ({ value }) => {\r\n return value === '' ? '-' : value;\r\n },\r\n }),\r\n column({\r\n name: 'PageURL',\r\n title: 'UETTags_Event_Grid_URL',\r\n sortable: false,\r\n helpId: '',\r\n template: ({ value }) => {\r\n return value === '' ? '-' : value;\r\n },\r\n }),\r\n column({\r\n name: 'ParameterMap',\r\n title: 'UETTags_Event_Grid_ColumnParametersReceived',\r\n sortable: false,\r\n helpId: 'pop_BA_UET_ParametersRec',\r\n template: ({ value }) => {\r\n if (_.isEmpty(value)) {\r\n return '-';\r\n }\r\n let val = '';\r\n\r\n for (const key in value) {\r\n val += `${key}: ${value[key]}, `;\r\n }\r\n val = val.slice(0, -2);\r\n return parametersColumnTemplate({\r\n val,\r\n i18n,\r\n });\r\n },\r\n }),\r\n column({\r\n name: 'LastReceived',\r\n title: 'UETTags_Event_Grid_ColumnLastReceived',\r\n sortable: false,\r\n helpId: 'pop_BA_UET_LastRec',\r\n template: ({ value }) => {\r\n const updateDate = new Date(value);\r\n const now = new Date();\r\n const delta = Math.floor(now.getTime() / 1000) - Math.floor(updateDate.getTime() / 1000);\r\n\r\n if (delta >= 86400) {\r\n return Math.floor(delta / 86400) === 1 ? `${Math.floor(delta / 86400).toString()} day ago` : `${Math.floor(delta / 86400).toString()} days ago`;\r\n } else if (delta >= 3600) {\r\n return Math.floor(delta / 3600) === 1 ? `${Math.floor(delta / 3600).toString()} hour ago` : `${Math.floor(delta / 3600).toString()} hours ago`;\r\n } else {\r\n return Math.floor(delta / 60) === 1 ? `${Math.floor(delta / 60).toString()} minute ago` : `${Math.floor(delta / 60).toString()} minutes ago`;\r\n }\r\n },\r\n }),\r\n ]);\r\n}\r\n","import _ from 'underscore';\r\nimport logger from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport { editablePlugin } from '@bingads-webui-campaign/projection-grid-editable';\r\nimport dateFilterPlugin from '@bingads-webui-campaign-legacy/bingadsgrid/vnext/plugin/date-filter';\r\nimport { performanceLogPlugin, perfMarkerPlugin } from '@bingads-webui-campaign/pgrid-performance-log';\r\nimport { a11yPlugin } from '@bingads-webui/projection-grid-a11y';\r\n\r\nexport const getDefaultPlugins = ({\r\n i18n,\r\n isForVNext,\r\n appConfig,\r\n permissions,\r\n pluginFactories,\r\n perfMarker,\r\n}) => _.compact([\r\n { plugin: perfMarkerPlugin, config: { appConfig, marker: perfMarker } },\r\n { plugin: a11yPlugin, config: { i18n } },\r\n { plugin: dateFilterPlugin },\r\n (!appConfig.get('CurrentAccountInActive') && !permissions.IsReadOnlyUser) && {\r\n plugin: editablePlugin,\r\n config: { i18n },\r\n },\r\n {\r\n plugin: performanceLogPlugin,\r\n config: {\r\n appConfig,\r\n logger,\r\n },\r\n },\r\n {\r\n plugin: pluginFactories.placeholderPlugin,\r\n config: {\r\n container: '.uet-tags-test-table .grid-noresult',\r\n text: i18n.getString('Grid_NoRecords'),\r\n filteredContainer: isForVNext ? '.grid-noresult' : '.uet-tags-test-table .grid-noresult',\r\n filteredEmptyText: i18n.getString('Grid_NoFilteredRecords'),\r\n ignoreFilters: [{\r\n 'Status': {\r\n $in: null,\r\n },\r\n }],\r\n },\r\n },\r\n]);\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport kendo from '@bingads-webui/kendo/kendo.core';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport { helpers } from '@bingads-webui/projection-grid-toolbar';\r\nimport { sortableHeaderTemplate } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport stateManager from '@bingads-webui-component-legacy/statemanager/campaignStateManager';\r\nimport preferenceService from '@bingads-webui-component-legacy/preference/service/index';\r\n\r\nexport class UETTagsGridDashboardConfig {\r\n constructor({\r\n preferenceConfig,\r\n columnConfig,\r\n isManagerDashboardView,\r\n appConfig,\r\n afterFindAllCallback,\r\n windowNameStorage,\r\n options: {\r\n customHeaderOffset,\r\n viewport,\r\n },\r\n dataSource,\r\n isForVNext,\r\n i18n,\r\n }) {\r\n const tableName = i18n.getString('UnifiedEventTracking_Goal_Creation_Tag');\r\n\r\n const currentAccount = config.get('CurrentAccount');\r\n const formatDateInEntitySet = (date) => kendo.toString(date, 'yyyy-MM-dd');\r\n const parseDate = (dateString) => kendo.parseDate(dateString);\r\n\r\n const start = preferenceConfig.dataSource.query.startDate;\r\n const end = preferenceConfig.dataSource.query.endDate;\r\n\r\n const startDate = formatDateInEntitySet(parseDate(start));\r\n const endDate = formatDateInEntitySet(parseDate(end));\r\n\r\n const startDateEpoch = new Date(startDate);\r\n const endDateEpoch = new Date(endDate);\r\n\r\n const timeDiff = endDateEpoch.getTime() - startDateEpoch.getTime();\r\n const hoursDiff = Math.floor(timeDiff / (1000 * 60 * 60)); const daysDiff = Math.floor(timeDiff / (1000 * 60 * 60 * 24));\r\n const monthsDiff = (endDateEpoch.getMonth() - startDateEpoch.getMonth()) + (12 * (endDateEpoch.getFullYear() - startDateEpoch.getFullYear()));\r\n\r\n let granularity;\r\n\r\n if (monthsDiff > 12) {\r\n granularity = 'Quarter';\r\n } else if (monthsDiff <= 6 && monthsDiff >= 2) {\r\n granularity = 'Week';\r\n } else if (hoursDiff === 0 || daysDiff === 1) {\r\n granularity = 'Hour';\r\n } else {\r\n granularity = 'Day';\r\n }\r\n\r\n const queryParams = new URLSearchParams(window.location.search);\r\n const tagId = Number(queryParams.get('tagId'));\r\n\r\n edm.customerIdType.useAdvertiserCustomerId = !isManagerDashboardView;\r\n\r\n const entitySet = isManagerDashboardView ? edm.currentCustomer.Tags['Default.GetTagDashboardSummary'] : edm.currentAccount.Tags['Default.GetTagDashboardSummary'];\r\n\r\n _.extend(this, {\r\n name: preferenceConfig.name || 'UETTagsDashboardGrid',\r\n tableClasses: ['table', 'table-bordered'],\r\n dataSource,\r\n query: _.extend(preferenceConfig.dataSource || {}, {\r\n options: _.defaults({\r\n entitySet: entitySet.$call({\r\n tagId,\r\n timezoneId: currentAccount.TimeZone,\r\n performanceTimeSeriesParameters: {\r\n Granularity: granularity,\r\n },\r\n startDate,\r\n endDate,\r\n }),\r\n cacheResponse: false,\r\n afterFindAll: afterFindAllCallback,\r\n }, appConfig.get('CurrentUser').IsInternal && windowNameStorage.get('rcid') > 0 ? {\r\n headers: { 'x-ms-rootcid': windowNameStorage.get('rcid') },\r\n } : {}),\r\n }),\r\n config,\r\n stateManager,\r\n preferenceService,\r\n sortableHeader: _.defaults(preferenceConfig.sortableHeader, {\r\n name: 'EventAction',\r\n directionIndex: 0,\r\n template: sortableHeaderTemplate,\r\n }),\r\n rows: {\r\n headRows: isForVNext ? [\r\n 'column-header-rows',\r\n ] :\r\n helpers.singleToolbarHeadRows(),\r\n },\r\n scrolling: {\r\n header: {\r\n type: 'sticky',\r\n offset: customHeaderOffset || (() => $('nav.navbar-default.navbar-fixed-top').height()),\r\n attributes: { 'aria-label': i18n.getString('{{tableName}} table header', { tableName }) },\r\n },\r\n virtualized: true,\r\n },\r\n tableAttributes: { 'aria-label': tableName },\r\n columns: columnConfig,\r\n });\r\n\r\n if (viewport) {\r\n this.scrolling.viewport = viewport;\r\n }\r\n }\r\n}\r\n","\r\n\r\nexport const getQueryStartAndEndDates = (i18n) => {\r\n const date = new Date();\r\n const fourteenDaysAgoDate = new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate() - 13,\r\n date.getHours(),\r\n date.getMinutes(),\r\n );\r\n const dateFormat = 'yyyy-MM-dd';\r\n\r\n const startDate = i18n.formatDate(fourteenDaysAgoDate, { raw: dateFormat });\r\n const endDate = i18n.formatDate(new Date(), { raw: dateFormat });\r\n\r\n return {startDate, endDate};\r\n};\r\n","import { edmCampaign } from '@bingads-webui/edm-campaign';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport kendo from '@bingads-webui/kendo/kendo.core';\r\nimport { WaterfallFilterStorage, WaterfallFilterType, waterfallDateFilterProcessor } from '@bingads-webui-campaign/filter-storage';\r\nimport { getQueryStartAndEndDates } from './query-config';\r\nimport { notificationApi } from '@bingads-webui-react/notification-center';\r\n\r\nexport default class ExportData {\r\n\r\n download = (action, i18n, permissions, serverContext, preferenceService) => {\r\n const queryParams = new URLSearchParams(window.location.search);\r\n const aid = queryParams.get('aid');\r\n const cid = aid ? config.get('CurrentAccount').AdvertiserCustomerID : queryParams.get('cid');\r\n const currentAccount = config.get('CurrentAccount');\r\n const formatDateInEntitySet = (date) => kendo.toString(date, 'yyyy-MM-dd');\r\n const parseDate = (dateString) => kendo.parseDate(dateString);\r\n const UETDashboardPhase2Enabled = permissions.dynamic.UETDashboardPhase2;\r\n const tagId = Number(queryParams.get('tagId'));\r\n const waterfallFilterStorage = new WaterfallFilterStorage({ preferenceService });\r\n const dateFilter = waterfallDateFilterProcessor(\r\n waterfallFilterStorage.getFilters([WaterfallFilterType.DateFilter]),\r\n serverContext,\r\n );\r\n\r\n const start = dateFilter.RangeStartDate;\r\n const end = dateFilter.RangeEndDate;\r\n\r\n const startDate = UETDashboardPhase2Enabled ? formatDateInEntitySet(parseDate(start)) : getQueryStartAndEndDates(i18n).startDate;\r\n const endDate = UETDashboardPhase2Enabled ? formatDateInEntitySet(parseDate(end)) : getQueryStartAndEndDates(i18n).endDate;\r\n\r\n if (cid && aid) {\r\n return edmCampaign\r\n .Customers.$withKey(cid)\r\n .Accounts.$withKey(aid)\r\n .Tags['Default.GetExportUrlForTagEventDetail']\r\n .$makeCall({\r\n payload: {\r\n tagId,\r\n 'timezoneId': currentAccount.TimeZone,\r\n startDate,\r\n endDate,\r\n eventAction: action,\r\n },\r\n })\r\n .toPromise().then((tagResponse) => {\r\n if (tagResponse && tagResponse.value) {\r\n // eslint-disable-next-line no-undef\r\n notificationApi.showInfo(i18n.getString(_TL_('We are creating your report and it will be downloaded shortly.')), {\r\n autoDismissTime: 1000,\r\n });\r\n return tagResponse.value;\r\n } else {\r\n return null;\r\n }\r\n },\r\n ).catch(() => {\r\n // eslint-disable-next-line no-undef\r\n notificationApi.showWarning(i18n.getString(_TL_('An unexpected error occurred during download. Please try again.')), {\r\n autoDismissTime: 1000,\r\n });\r\n });\r\n } else if (cid) {\r\n return edmCampaign\r\n .Customers.$withKey(cid)\r\n .Tags['Default.GetExportUrlForTagEventDetail']\r\n .$makeCall({\r\n payload: {\r\n tagId,\r\n 'timezoneId': currentAccount.TimeZone,\r\n startDate,\r\n endDate,\r\n eventAction: action,\r\n },\r\n })\r\n .toPromise().then((tagResponse) => {\r\n if (tagResponse && tagResponse.value) {\r\n // eslint-disable-next-line no-undef\r\n notificationApi.showInfo(i18n.getString(_TL_('We are creating your report and it will be downloaded shortly.')), {\r\n autoDismissTime: 1000,\r\n });\r\n return tagResponse.value;\r\n } else {\r\n return null;\r\n }\r\n },\r\n ).catch(() => {\r\n // eslint-disable-next-line no-undef\r\n notificationApi.showWarning(i18n.getString(_TL_('An unexpected error occurred during download. Please try again.')), {\r\n autoDismissTime: 1000,\r\n });\r\n });\r\n } else {\r\n return null;\r\n }\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Promise from 'bluebird';\r\nimport { updateGridQuery } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { Storage } from '@bingads-webui/window-name-store';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport jsdataCampaign from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport preferencesService from '@bingads-webui-component-legacy/preference/service/index';\r\nimport { handleSortChange } from '@bingads-webui-campaign-legacy/bingadsgrid/service/state-manager-helper';\r\nimport { contents } from '@bingads-webui-campaign-legacy/popover/index';\r\nimport parametersReceivedPopoverTemplate from './parameters-received-template';\r\nimport { isActiveTrackingStatusForUet } from '@bingads-webui-campaign-legacy/common-grid-config/controls/tracking-status-popover';\r\nimport { SharedLibraryUtils } from '@bingads-webui-campaign-react/shared-library-scopes';\r\nimport { ClientCenterCustomerService } from '@bingads-webui/clientcenter-customer-service';\r\nimport { getErrorMessage } from '@bingads-webui-campaign-legacy/conversion-tracking/common/util/index';\r\nimport { getUETTagDashboardGridColumnConfig } from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard/grid/column-config';\r\nimport { getDefaultPlugins } from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard/grid/plugin-config';\r\nimport { UETTagsGridDashboardConfig } from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard/grid/grid-config';\r\nimport ExportData from './export-data';\r\n\r\nconst schema = window.globalLegacySchema.get('Tag');\r\nconst s$i18n = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\n\r\nexport function fetchCustomerHierarchy() {\r\n const windowNameStorage = new Storage();\r\n const currentUser = config.get('CurrentUser');\r\n // In ui-next serverContext, ParentCustomerId are put in CurrentUser\r\n const parentCustomerId = _.isUndefined(currentUser.ParentCustomerId) ? config.get('ParentCustomerId') : currentUser.ParentCustomerId;\r\n const currentCustomer = config.get('CurrentCustomer');\r\n const loginCID = currentUser.IsInternal ? windowNameStorage.get('rcid') || currentCustomer.Id : parentCustomerId;\r\n const ccCustomerService = new ClientCenterCustomerService({ ccBaseUrl: config.get('CCBaseUrl') });\r\n const fetchCustomerHierarchyPromise = ccCustomerService.getCustomerHierarchy({\r\n cid: loginCID,\r\n uid: currentUser.Id,\r\n returnOnlyDirectlyLinkedEntities: false,\r\n });\r\n const fetchUserPermissionPromise = fetchCustomerHierarchyPromise.then((data) => {\r\n const { customerHierarchyEntities: customerHierarchy } = data;\r\n const { Id: currentCustomerId } = currentCustomer;\r\n\r\n return SharedLibraryUtils.fetchUserPermissions({\r\n uid: currentUser.Id,\r\n cid: currentCustomerId,\r\n customerHierarchy,\r\n });\r\n });\r\n\r\n return Promise.join(fetchCustomerHierarchyPromise, fetchUserPermissionPromise, (data) => {\r\n const { customerHierarchyEntities: customerHierarchy } = data;\r\n\r\n return customerHierarchy;\r\n });\r\n}\r\n\r\nexport class UETTagsDashboardGrid extends DeterministicWrapperView {\r\n viewFactory({\r\n i18n,\r\n preferenceConfig,\r\n dataSource,\r\n $blocker,\r\n permissions = {},\r\n isManagerDashboardView = false,\r\n pgridFactory,\r\n pluginFactories,\r\n preferenceService,\r\n extendPlugins = () => [],\r\n isForVNext,\r\n customHeaderOffset,\r\n sortableHeader,\r\n viewport,\r\n filterService,\r\n router,\r\n customerHierarchy,\r\n onShowPanel,\r\n showPopup,\r\n showAccountListPopup,\r\n perfMarker,\r\n renderThirdPartyIntegrationView,\r\n serverContext,\r\n }) {\r\n const windowNameStorage = new Storage();\r\n\r\n this.isManagerDashboardView = isManagerDashboardView;\r\n this.permissions = permissions;\r\n this.i18n = i18n;\r\n this.$blocker = $blocker;\r\n this.filterService = filterService;\r\n this.router = router;\r\n this.customerHierarchy = customerHierarchy;\r\n this.isForVNext = isForVNext;\r\n this.onShowPanel = onShowPanel;\r\n this.showPopup = showPopup;\r\n this.showAccountListPopup = showAccountListPopup;\r\n this.isInitialGrid = true;\r\n this.renderThirdPartyIntegrationView = renderThirdPartyIntegrationView;\r\n this.serverContext = serverContext;\r\n this.preferenceService = preferenceService;\r\n\r\n edm.customerIdType.useAdvertiserCustomerId = !isManagerDashboardView;\r\n const columnConfig = getUETTagDashboardGridColumnConfig({\r\n updateHandler: _.bind(this.updateHandler, this),\r\n customerHierarchy: this.customerHierarchy,\r\n isManagerDashboardView,\r\n windowNameStorage,\r\n isActiveTrackingStatusForUet,\r\n isForVNext,\r\n deps: {\r\n i18n,\r\n s$i18n,\r\n permissions,\r\n config,\r\n },\r\n });\r\n const gridConfig = new UETTagsGridDashboardConfig({\r\n preferenceConfig,\r\n columnConfig,\r\n dataSource,\r\n isManagerDashboardView,\r\n appConfig: config,\r\n afterFindAllCallback: _.bind(this.onGridDataLoaded, this),\r\n windowNameStorage,\r\n options: {\r\n customHeaderOffset,\r\n sortableHeader,\r\n viewport,\r\n },\r\n isForVNext: this.isForVNext,\r\n i18n,\r\n });\r\n\r\n const defaultPlugins = getDefaultPlugins({\r\n $blocker,\r\n i18n,\r\n s$i18n,\r\n view: this,\r\n appConfig: config,\r\n preferencesService,\r\n permissions,\r\n pluginFactories,\r\n isForVNext,\r\n perfMarker,\r\n });\r\n const extendedPlugins = extendPlugins({\r\n view: this,\r\n gridConfig,\r\n });\r\n\r\n this.grid = pgridFactory({\r\n gridConfig,\r\n plugins: defaultPlugins.concat(extendedPlugins),\r\n preferenceConfig: preferenceConfig || {},\r\n });\r\n this.gridView = this.grid.gridView;\r\n this.gridView.on('didUpdate', (changes) => {\r\n // for the perf issue, should not patch preference when init view\r\n if (this.isInitialGrid) {\r\n this.isInitialGrid = false;\r\n return;\r\n }\r\n handleSortChange(changes, this.gridView, gridConfig.name);\r\n });\r\n\r\n if (this.filterService) {\r\n this.listenTo(this.filterService, 'filter-state-changed', () => {\r\n updateGridQuery(this.gridView, this.filterService.getCombinedFilter(), true);\r\n });\r\n }\r\n\r\n return this.gridView;\r\n }\r\n\r\n get events() {\r\n const permissions = this.permissions;\r\n const serverContext = this.serverContext;\r\n const preferenceService = this.preferenceService;\r\n\r\n return _.defaults({\r\n 'click .uet-tags-dashboard-grid__data-view-tag': (e) => {\r\n const item = this.gridView.itemOfElement(e.target);\r\n\r\n new ExportData().download(item.EventAction, this.i18n, permissions, serverContext, preferenceService).then((response) => {\r\n window.open(response);\r\n }).catch((err) => {\r\n throw err;\r\n });\r\n },\r\n 'click .uet-tags-dashboard-grid__parameters-tag': 'onShowParametersReceivedDetails',\r\n }, this.isForVNext ? {\r\n 'mouseenter .uet-tags-dashboard-grid__parameters-tag': 'onShowParametersReceivedDetails',\r\n 'mouseleave .uet-tags-dashboard-grid__parameters-tag': 'hidePopup',\r\n } : {});\r\n }\r\n\r\n onShowParametersReceivedDetails(e) {\r\n this.onShowParametersReceivedPopover(e);\r\n }\r\n\r\n onShowParametersReceivedPopover(e) {\r\n const item = this.gridView.itemOfElement(e.target);\r\n\r\n if (_.isEmpty(item)) {\r\n return;\r\n }\r\n\r\n if (_.isFunction(this.showPopup)) {\r\n const contentView = new contents.TitledContent()\r\n .setBody({\r\n html: parametersReceivedPopoverTemplate({\r\n value: item.Parameters,\r\n i18n: this.i18n,\r\n newi18n: this.newI18n,\r\n }),\r\n });\r\n\r\n this.showPopup({\r\n containerSelector: '#rejectionContainer',\r\n title: this.i18n.getString('UETTags_Event_Grid_Parameters', { item: `${item.Parameters.length}` }),\r\n contentView,\r\n event: e,\r\n parentView: this,\r\n popoverClassName: 'trackingStatusPopover',\r\n });\r\n }\r\n }\r\n\r\n hidePopup(e) {\r\n if ($(e.relatedTarget).closest('#popup-callout').length === 0) {\r\n this.trigger('closePopup');\r\n }\r\n }\r\n\r\n onGridDataLoaded(options, data) {\r\n return data;\r\n }\r\n\r\n updateHandler(originalItem, patch, editorView) {\r\n const windowNameStorage = new Storage();\r\n\r\n jsdataCampaign.Tag.update(originalItem[schema.key], patch, _.extend({\r\n cacheResponse: false,\r\n entitySet: this.isManagerDashboardView ? edm.currentCustomer.Tags : edm.currentAccount.Tags,\r\n }, config.get('CurrentUser').IsInternal && windowNameStorage.get('rcid') > 0 ? {\r\n headers: { 'x-ms-rootcid': windowNameStorage.get('rcid') },\r\n } : {}))\r\n .then(() => {\r\n if (editorView) {\r\n editorView.trigger('save', patch);\r\n }\r\n this.gridView.refresh(true);\r\n })\r\n .catch((res) => {\r\n const errors = [];\r\n\r\n if (!res || !res.errors) {\r\n errors.push(getErrorMessage('default', this.i18n));\r\n } else {\r\n _.each(res.errors, (error) => {\r\n errors.push(getErrorMessage(error.Code, this.i18n));\r\n });\r\n }\r\n if (editorView) {\r\n editorView.setErrors({ $overall: errors });\r\n }\r\n }).finally(withUiBlock(this.$blocker, this.i18n.getString('loadingtext')));\r\n }\r\n\r\n removeCreateView() {\r\n if (this.createView) {\r\n this.createView.off();\r\n this.createView.remove();\r\n this.createView = null;\r\n }\r\n }\r\n\r\n renderTrunk() {\r\n if (this.isForVNext) {\r\n this.filterService.initializeCombinedFilterPromise.then(() => {\r\n updateGridQuery(this.gridView, this.filterService.getCombinedFilter(), true);\r\n });\r\n }\r\n super.renderTrunk();\r\n }\r\n\r\n remove() {\r\n this.removeCreateView();\r\n return super.remove();\r\n }\r\n}\r\n\r\nexport { getQueryStartAndEndDates } from './query-config';\r\n","import _ from 'underscore';\r\nimport { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport dataColumnTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard/grid/data-template';\r\nimport parametersColumnTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags-dashboard/grid/parameters-template';\r\n\r\nexport function getUETTagDashboardGridColumnConfig({\r\n deps,\r\n}) {\r\n const {\r\n i18n,\r\n } = deps;\r\n const column = (options) => bingadsGridColumn(_.defaults({ i18n }, options));\r\n\r\n return _.compact([\r\n column({\r\n name: 'EventAction',\r\n title: 'UETTags_Event_Grid_ColumnEvents',\r\n sortable: false,\r\n template: ({ value }) => {\r\n return value === '' ? '-' : value;\r\n },\r\n }),\r\n column({\r\n name: 'EventType',\r\n title: 'UETTags_Event_Grid_ColumnEventType',\r\n sortable: false,\r\n helpId: 'pop_BA_UET_EventType',\r\n }),\r\n column({\r\n name: 'TotalCount',\r\n title: 'UETTags_Event_Grid_ColumnTotalEvents',\r\n sortable: false,\r\n helpId: 'pop_BA_UET_TotalEvent',\r\n type: 'number',\r\n format: 'integer',\r\n }),\r\n column({\r\n name: 'Parameters',\r\n title: 'UETTags_Event_Grid_ColumnParametersReceived',\r\n sortable: false,\r\n helpId: 'pop_BA_UET_ParametersRec',\r\n template: ({ value }) => {\r\n return parametersColumnTemplate({\r\n value,\r\n i18n,\r\n });\r\n },\r\n }),\r\n column({\r\n name: 'LastReceived',\r\n title: 'UETTags_Event_Grid_ColumnLastReceived',\r\n sortable: false,\r\n helpId: 'pop_BA_UET_LastRec',\r\n template: ({ value }) => {\r\n const updateDate = new Date(value);\r\n const now = new Date();\r\n const delta = Math.floor(now.getTime() / 1000) - Math.floor(updateDate.getTime() / 1000);\r\n\r\n if (delta >= 86400) {\r\n return Math.floor(delta / 86400) === 1 ? `${Math.floor(delta / 86400).toString()} day ago` : `${Math.floor(delta / 86400).toString()} days ago`;\r\n } else if (delta >= 3600) {\r\n return Math.floor(delta / 3600) === 1 ? `${Math.floor(delta / 3600).toString()} hour ago` : `${Math.floor(delta / 3600).toString()} hours ago`;\r\n } else {\r\n return Math.floor(delta / 60) === 1 ? `${Math.floor(delta / 60).toString()} minute ago` : `${Math.floor(delta / 60).toString()} minutes ago`;\r\n }\r\n },\r\n }),\r\n column({\r\n name: 'EventAction',\r\n title: 'UETTags_Event_Grid_ColumnAction',\r\n sortable: false,\r\n helpId: 'pop_BA_UET_Action',\r\n template: ({ value }) => {\r\n return dataColumnTemplate({\r\n value,\r\n i18n,\r\n });\r\n },\r\n }),\r\n ]);\r\n}\r\n","import _ from 'underscore';\r\nimport logger from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport { editablePlugin } from '@bingads-webui-campaign/projection-grid-editable';\r\nimport { toolbarPlugin, helpers } from '@bingads-webui/projection-grid-toolbar';\r\nimport uiBlockerPlugin from '@bingads-webui-component-legacy/bingads-grid/plugin/ui-blocker';\r\nimport dateFilterPlugin from '@bingads-webui-campaign-legacy/bingadsgrid/vnext/plugin/date-filter';\r\nimport { performanceLogPlugin, perfMarkerPlugin } from '@bingads-webui-campaign/pgrid-performance-log';\r\nimport { a11yPlugin } from '@bingads-webui/projection-grid-a11y';\r\n\r\nexport const getDefaultPlugins = ({\r\n $blocker,\r\n i18n,\r\n isForVNext,\r\n appConfig,\r\n permissions,\r\n pluginFactories,\r\n perfMarker,\r\n}) => _.compact([\r\n { plugin: perfMarkerPlugin, config: { appConfig, marker: perfMarker } },\r\n { plugin: a11yPlugin, config: { i18n } },\r\n { plugin: dateFilterPlugin },\r\n (!appConfig.get('CurrentAccountInActive') && !permissions.IsReadOnlyUser) && {\r\n plugin: editablePlugin,\r\n config: { i18n },\r\n },\r\n {\r\n plugin: uiBlockerPlugin,\r\n config: { el: $blocker },\r\n },\r\n {\r\n plugin: pluginFactories.paginationPlugin,\r\n config: {\r\n pageSize: 20,\r\n availablePageSizes: [20, 50, 100, 200],\r\n enableRandomPage: false,\r\n pageNumberLabelText: i18n.getString('Grid_Page_Number_Label_Text'),\r\n pageSizeText: i18n.getString('Grid_ShowRows'),\r\n totalPageCountText: i18n.getString('Grid_PageOf'),\r\n resetPageNumberOnSort: true,\r\n },\r\n },\r\n {\r\n plugin: performanceLogPlugin,\r\n config: {\r\n appConfig,\r\n logger,\r\n },\r\n },\r\n {\r\n plugin: pluginFactories.placeholderPlugin,\r\n config: {\r\n container: '.uet-tags-dashboard-page .grid-noresult',\r\n text: i18n.getString('Grid_NoRecords'),\r\n filteredContainer: isForVNext ? '.grid-noresult' : '.uet-tags-dashboard-page .grid-noresult',\r\n filteredEmptyText: i18n.getString('Grid_NoFilteredRecords'),\r\n ignoreFilters: [{\r\n 'Status': {\r\n $in: null,\r\n },\r\n }],\r\n },\r\n },\r\n {\r\n plugin: toolbarPlugin,\r\n config: helpers.singleToolbar({\r\n items: [{\r\n type: 'dropdown',\r\n id: 'dropdown-filter',\r\n }, {\r\n type: 'search-box',\r\n id: 'search-box-filter',\r\n }],\r\n }),\r\n },\r\n]);\r\n","/* eslint-disable new-cap */\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport { Storage } from '@bingads-webui/window-name-store';\r\nimport formTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/create/template.pug';\r\nimport { getErrorMessage, cleanAlerts } from '@bingads-webui-campaign-legacy/conversion-tracking/common/util/index';\r\nimport jsdataCampaign from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport TagViewer from '@bingads-webui-static-legacy/uet/view/tagViewer';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { SimpleForm } from '@bingads-webui/simple-form';\r\nimport {\r\n SharedLibraryUtils,\r\n UETTagManageSopeView,\r\n} from '@bingads-webui-campaign-react/shared-library-scopes';\r\nimport { ClientCenterCustomerService } from '@bingads-webui/clientcenter-customer-service';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport sharingTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/create/sharing-template.pug';\r\n\r\nconst s$Tag = window.globalLegacySchema.get('Tag');\r\nconst schemai18n = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\n\r\nexport class CreateView extends Backbone.View {\r\n get events() {\r\n return {\r\n 'click .btn-tag-create-save': 'saveTag',\r\n 'click .btn-tag-create-cancel': 'cancelTag',\r\n };\r\n }\r\n\r\n initialize({\r\n i18n,\r\n $blocker,\r\n permissions,\r\n appConfig,\r\n isManagerDashboardView,\r\n model = {},\r\n }) {\r\n const groupFields = [{\r\n property: 'Name',\r\n label: i18n.getString('UnifiedEventTracking_Tags_Create_TagName'),\r\n placeholder: i18n.getString('UnifiedEventTracking_Tags_PlaceHolderForTagName'),\r\n validators: {\r\n maxLength: {\r\n message: i18n.getString('UnifiedEventTracking_Tags_ErrorMessageForTagName'),\r\n blockInput: false,\r\n },\r\n },\r\n }, {\r\n property: 'Description',\r\n label: i18n.getString('UnifiedEventTracking_Tags_Create_TagDescription'),\r\n placeholder: i18n.getString('UnifiedEventTracking_Tags_PlaceHolderForTagDescription'),\r\n validators: {\r\n maxLength: {\r\n message: i18n.getString('UnifiedEventTracking_Tags_ErrorMessageForTagDescription'),\r\n blockInput: false,\r\n },\r\n },\r\n }];\r\n\r\n groupFields.push({\r\n property: 'IsClarityTagEnabled',\r\n label: i18n.getString('UnifiedEventTracking_Tags_Create_ClarityOption'),\r\n control: 'checkbox',\r\n message: `${i18n.getString('UnifiedEventTracking_Tags_ClarityDescription')} ${i18n.getString('LearnMore')}
${i18n.getString('UnifiedEventTracking_Tags_ClarityDescription_2')}`,\r\n values: [1, 0],\r\n });\r\n this.i18n = i18n;\r\n this.permissions = permissions;\r\n this.appConfig = appConfig;\r\n this.alertIds = [];\r\n this.$blocker = $blocker;\r\n this.isEditView = !_.isEmpty(model);\r\n this.tagEntity = model;\r\n this.vmDefault = _.pick(model, 'Name', 'Description', 'IsClarityTagEnabled');\r\n if (_.isEmpty(this.vmDefault)) {\r\n this.vmDefault.IsClarityTagEnabled = 1; // by default check the checkbox\r\n }\r\n this.isManagerDashboardView = isManagerDashboardView;\r\n this.windowNameStorage = new Storage();\r\n this.editForm = new SimpleForm({\r\n schema: s$Tag,\r\n s$i18n: schemai18n,\r\n showButtons: false,\r\n i18n,\r\n fields: [{\r\n type: 'group',\r\n description: this.isEditView ? i18n.getString('UnifiedEventTracking_Tags_EditTagPanelTitleDescription') : i18n.getString('UnifiedEventTracking_Tags_CreateTagPanelTitleDescription'),\r\n fields: groupFields,\r\n }],\r\n model: this.vmDefault,\r\n });\r\n this.listenTo(this.editForm, 'clickHelpIcon', (e) => {\r\n window.PopupController.PopupJsClick(e.target);\r\n });\r\n this.initializeInstrumentation();\r\n }\r\n\r\n initializeInstrumentation() {\r\n const scenarios = {\r\n testUetClarity: instrumentation.testUetClarity.create(),\r\n };\r\n\r\n this.activities = {\r\n createTag: scenarios.testUetClarity.createTag.create(),\r\n editTag: scenarios.testUetClarity.editTag.create(),\r\n };\r\n }\r\n\r\n convertSharingScope({ treeSelection }) {\r\n return treeSelection || {Accounts: [], Customers: [], Others: 0, Total: 0 };\r\n }\r\n\r\n saveTag() {\r\n const vm = this.editForm.viewModel;\r\n const payload = _.defaults(\r\n {\r\n Description: vm.Description(),\r\n Name: vm.Name(),\r\n },\r\n { IsClarityTagEnabled: vm.IsClarityTagEnabled() },\r\n this.tagSharingView ? { Owner: this.owner } : null,\r\n this.tagSharingView ? { SharingScope: this.convertSharingScope(this.tagSharingView.getSharingScope()) } : null,\r\n );\r\n\r\n if (this.isEditView) {\r\n this.activities.editTag.trace(\r\n `Edit: clarity ${this.vmDefault.IsClarityTagEnabled} to ${payload.IsClarityTagEnabled}`, // Mes\r\n 'EditTagWithClarity', // Api\r\n );\r\n jsdataCampaign.Tag.update(this.tagEntity[s$Tag.key], payload, _.extend({\r\n cacheResponse: false,\r\n entitySet: this.isManagerDashboardView ? edm.currentCustomer.Tags : edm.currentAccount.Tags,\r\n }, this.appConfig.get('CurrentUser').IsInternal && this.windowNameStorage.get('rcid') > 0 ? {\r\n headers: { 'x-ms-rootcid': this.windowNameStorage.get('rcid') },\r\n } : {}))\r\n .then(() => {\r\n this.trigger('finishTagEdit');\r\n })\r\n .catch((res) => {\r\n cleanAlerts(this.alertIds);\r\n this.alertIds = _.map(res.errors, (error) =>\r\n window.App.views.alertCenter.show({\r\n message: getErrorMessage(error.Code, this.i18n),\r\n level: 'Error',\r\n }));\r\n })\r\n .finally(withUiBlock(this.$blocker, this.i18n.getString('loadingtext')));\r\n } else {\r\n this.activities.createTag.trace(\r\n `Create: clarity ${this.vmDefault.IsClarityTagEnabled} to ${payload.IsClarityTagEnabled}`, // Mes\r\n 'CreateTagWithClarity', // Api\r\n );\r\n jsdataCampaign.Tag.create(payload, _.extend({\r\n cacheResponse: false,\r\n entitySet: this.isManagerDashboardView ? edm.currentCustomer.Tags : edm.currentAccount.Tags,\r\n }, this.appConfig.get('CurrentUser').IsInternal && this.windowNameStorage.get('rcid') > 0 ? {\r\n headers: { 'x-ms-rootcid': this.windowNameStorage.get('rcid') },\r\n } : {}))\r\n .then((item) => {\r\n this.trigger('finishTagCreation');\r\n new TagViewer({\r\n tag: {\r\n name: item.Name,\r\n id: item.Id,\r\n script: item.TrackingCode,\r\n },\r\n }).render();\r\n })\r\n .catch((res) => {\r\n cleanAlerts(this.alertIds);\r\n this.alertIds = _.map(res.errors, (error) =>\r\n window.App.views.alertCenter.show({\r\n message: getErrorMessage(error.Code, this.i18n),\r\n level: 'Error',\r\n }));\r\n })\r\n .finally(withUiBlock(this.$blocker, this.i18n.getString('loadingtext')));\r\n }\r\n }\r\n\r\n cancelTag() {\r\n this.trigger('cancelTagCreation');\r\n }\r\n\r\n render() {\r\n this.$el.html(formTemplate({\r\n i18n: this.i18n,\r\n isEdit: this.isEditView,\r\n }));\r\n this.$('.uet-tags__form-container').append(this.editForm.render().$el);\r\n\r\n const { IsCustomerHierarchyEnabled, IsSharedLibraryPhase1Enabled } = this.permissions;\r\n\r\n if (IsCustomerHierarchyEnabled && IsSharedLibraryPhase1Enabled) {\r\n const currentUser = this.appConfig.get('CurrentUser');\r\n const currentCustomer = _.pick(this.appConfig.get('CurrentCustomer'), ['Id', 'Name', 'Number']);\r\n const { Id: userId } = currentUser;\r\n // In ui-next serverContext, ParentCustomerId are put in CurrentUser\r\n const parentCustomerId = _.isUndefined(currentUser.ParentCustomerId) ? this.appConfig.get('ParentCustomerId') : currentUser.ParentCustomerId;\r\n const loginCID = currentUser.IsInternal ? this.windowNameStorage.get('rcid') || currentCustomer.Id : parentCustomerId;\r\n\r\n if (SharedLibraryUtils.isSuperAdmin({ uid: userId, cid: currentCustomer.Id })) {\r\n const ccCustomerService = new ClientCenterCustomerService({ ccBaseUrl: this.appConfig.get('CCBaseUrl') });\r\n\r\n if (SharedLibraryUtils.isInAccountScope()) {\r\n const currentAccount = this.appConfig.get('CurrentAccount');\r\n const { AdvertiserCustomerID: parentCid } = currentAccount || {};\r\n\r\n // TODO: xuwu - we need also populate the Name and Number of the advertiserCustomer\r\n this.owner = !_.isFinite(parentCid) || parentCid === currentCustomer.Id ? currentCustomer : { Id: parentCid };\r\n } else {\r\n this.owner = currentCustomer;\r\n }\r\n\r\n ccCustomerService.getCustomerHierarchy({\r\n cid: loginCID,\r\n uid: userId,\r\n returnOnlyDirectlyLinkedEntities: false,\r\n }).then((data) => {\r\n const { customerHierarchyEntities: customerHierarchy } = data;\r\n\r\n if (SharedLibraryUtils.hasChildCustomers(customerHierarchy, { cid: loginCID }) && !SharedLibraryUtils.isLinkedAccount(this.appConfig)) {\r\n this.tagSharingView = new UETTagManageSopeView({\r\n customerHierarchy,\r\n scopeOptions: [{\r\n id: SharedLibraryUtils.Scopes.CUSTOMER,\r\n text: this.i18n.getString('SharedLibrary_Tag_SharingScope_Customer', { account: `${this.owner.Name} (${this.owner.Number})` }),\r\n }, {\r\n id: SharedLibraryUtils.Scopes.HIERARCHY,\r\n text: this.i18n.getString('SharedLibrary_Tag_SharingScope_Hierarchy'),\r\n }],\r\n tagEntity: {\r\n Owner: this.owner,\r\n SharingScope: { Customers: [], Accounts: [], Others: 0, Total: 0 },\r\n },\r\n deps: { i18n: this.i18n },\r\n });\r\n }\r\n\r\n if (this.tagSharingView) {\r\n this.$('.uet-tags__form-container form > div[data-type]').append(sharingTemplate({ i18n: this.i18n }));\r\n this.$('#Form-SharedLibrary-Tag-Sharing').append(this.tagSharingView.render().$el);\r\n }\r\n }).finally(withUiBlock(this.$blocker, this.i18n.getString('loadingtext')));\r\n }\r\n }\r\n\r\n return this;\r\n }\r\n\r\n remove() {\r\n this.editForm.remove();\r\n if (this.tagSharingView) {\r\n this.tagSharingView.remove();\r\n this.tagSharingView = null;\r\n }\r\n\r\n super.remove();\r\n cleanAlerts(this.alertIds);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport { SharedLibraryUtils } from '@bingads-webui-campaign-react/shared-library-scopes';\r\nimport actionColumnTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/action-template.pug';\r\nimport trackingStatusColumnTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/tracking-status-template.pug';\r\nimport tagIdTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/tag-id-template.pug';\r\nimport goalsTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/goals-template.pug';\r\nimport audienceTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/audience-template.pug';\r\nimport sharedUsedbyTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/column-shared-usedby-template.pug';\r\nimport nameTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/name-template.pug';\r\n\r\nconst noData = '-';\r\n\r\nfunction getTagIdLink({ IsUETDashboardEnabled, value, i18n }) {\r\n if (!_.isFinite(value)) {\r\n return noData;\r\n }\r\n\r\n return tagIdTemplate({ IsUETDashboardEnabled, value, i18n });\r\n}\r\n\r\nexport function getUETTagGridColumnConfig({\r\n isManagerDashboardView,\r\n windowNameStorage,\r\n // updateHandler,\r\n customerHierarchy,\r\n isActiveTrackingStatusForUet,\r\n deps,\r\n isForVNext,\r\n}) {\r\n const {\r\n i18n,\r\n s$i18n,\r\n permissions,\r\n config,\r\n } = deps;\r\n const { IsCustomerHierarchyEnabled, IsSharedLibraryPhase1Enabled } = permissions;\r\n const IsUETDashboardEnabled = permissions.dynamic.UETDashboard;\r\n const IsUETDashboardPhase2Enabled = permissions.dynamic.UETDashboardPhase2;\r\n const column = (options) => bingadsGridColumn(_.defaults({ i18n }, options));\r\n\r\n return _.compact([\r\n column({\r\n name: 'Name',\r\n title: 'UETTags_Grid_ColumnTagName',\r\n property: _.identity,\r\n sortable: 'Name',\r\n editable: undefined,\r\n template: ({ value: tag }) => {\r\n const enableEdit = IsCustomerHierarchyEnabled && IsSharedLibraryPhase1Enabled && _.result(tag.SharingScope, 'Total') > 0 ? SharedLibraryUtils.isEntityOwner(tag, config) : true;\r\n\r\n return nameTemplate({\r\n IsUETDashboardPhase2Enabled,\r\n isEditable: enableEdit && !tag.IsReadOnly,\r\n isReadOnly: tag.IsReadOnly,\r\n name: tag.Name,\r\n ariaLabel: 'Click to edit UET tag',\r\n });\r\n },\r\n }),\r\n column({\r\n name: 'Description',\r\n title: 'UETTags_Grid_ColumnTagDescription',\r\n sortable: true,\r\n editable: undefined,\r\n }),\r\n column({\r\n name: 'Id',\r\n title: 'UETTags_Grid_ColumnTagId',\r\n sortable: true,\r\n template: ({ value }) => {\r\n return getTagIdLink({\r\n IsUETDashboardEnabled,\r\n value,\r\n i18n,\r\n });\r\n },\r\n }),\r\n column({\r\n name: 'TrackingStatus',\r\n title: 'UETTags_Grid_ColumnTrackingStatus',\r\n sortable: true,\r\n bodyClasses: 'UET-tags-column-TrackingStatus',\r\n property: {\r\n key: 'TrackingStatus',\r\n get: (value) => _.pick(value, ['TrackingStatus', 'IsReadOnly']),\r\n },\r\n helpId: 'pop_BA_UET_TrackingStatus',\r\n template: ({ value: { TrackingStatus: value, IsReadOnly } }) => {\r\n if (!IsReadOnly) {\r\n return trackingStatusColumnTemplate({ value, isForVNext, s$i18n, isActiveTrackingStatus: isActiveTrackingStatusForUet });\r\n }\r\n return noData;\r\n },\r\n }),\r\n IsSharedLibraryPhase1Enabled && IsCustomerHierarchyEnabled ?\r\n column({\r\n name: 'Owner',\r\n title: 'UETTags_Grid_ColumnTagOwner',\r\n sortable: false,\r\n helpId: '',\r\n template: ({ value }) => `${value.Name} (${value.Number})`,\r\n }) : null,\r\n IsSharedLibraryPhase1Enabled && IsCustomerHierarchyEnabled ?\r\n column({\r\n name: 'SharingScope',\r\n title: 'SharedLibrary_GridColumn_Scope',\r\n helpId: '',\r\n bodyClasses: 'UET-tags-column-SharingScope',\r\n property: {\r\n key: 'SharingScope',\r\n get: (value) => _.pick(value, ['SharingScope', 'Owner']),\r\n },\r\n template: ({ value: { SharingScope, Owner } }) => {\r\n if (_.isNull(SharingScope)) { // when switch to linked accounts\r\n return '--';\r\n }\r\n if (_.result(SharingScope, 'Total') <= 1) {\r\n return `${Owner.Name} (${Owner.Number})`;\r\n }\r\n return sharedUsedbyTemplate({\r\n className: 'uet-tags-grid__shared-scope',\r\n text: i18n.getString('UETTags_Grid_Number_Accounts', { number: _.result(SharingScope, 'Total') }),\r\n isForVNext,\r\n });\r\n },\r\n }) : null,\r\n IsSharedLibraryPhase1Enabled && IsCustomerHierarchyEnabled ?\r\n column({\r\n name: 'UsedBy',\r\n title: 'UETTags_Grid_ColumnUsedBy',\r\n helpId: '',\r\n bodyClasses: 'UET-tags-column-UsedBy',\r\n template: ({ value }) => {\r\n if (_.isNull(value)) { // when switch to linked accounts\r\n return '--';\r\n }\r\n if (value.Total === 0) {\r\n return i18n.getString('UnifiedEventTracking_None');\r\n }\r\n if (value.Total === 1) {\r\n if (value.Others === 1) {\r\n return i18n.getString('SharedLibrary_One_Other_Account');\r\n }\r\n\r\n const { Name, Number } = _.first(value.Customers);\r\n\r\n return `${Name} (${Number})`;\r\n }\r\n return sharedUsedbyTemplate({\r\n className: 'uet-tags-grid__used-by',\r\n text: i18n.getString('UETTags_Grid_Number_Accounts', { number: value.Total }),\r\n isForVNext,\r\n });\r\n },\r\n }) : null,\r\n column({\r\n name: 'GoalsCount',\r\n title: 'UETTags_Grid_ColumnGoals',\r\n sortable: true,\r\n helpId: 'pop_BA_UET_Goals',\r\n template: ({ value }) => {\r\n return goalsTemplate({\r\n value: value ? value : i18n.getString('UnifiedEventTracking_None'),\r\n disabled: isManagerDashboardView,\r\n ariaLabel: i18n.getString('ClickToGoals'),\r\n });\r\n },\r\n type: 'number',\r\n }),\r\n column({\r\n name: 'AudiencesCount',\r\n title: 'UETTags_Grid_ColumnAudiences',\r\n sortable: true,\r\n helpId: 'pop_BA_UET_Audience',\r\n template: ({ value }) => {\r\n return audienceTemplate({\r\n value: value ? value : i18n.getString('UnifiedEventTracking_None'),\r\n disabled: isManagerDashboardView,\r\n ariaLabel: i18n.getString('ClickToAudiences'),\r\n });\r\n },\r\n type: 'number',\r\n }),\r\n column({\r\n name: 'Action',\r\n sortable: false,\r\n title: 'UETTags_Grid_ColumnAction',\r\n property: {\r\n key: 'Action',\r\n get: (value) => _.pick(value, ['SharingScope', 'Owner']),\r\n },\r\n template: ({ value }) => {\r\n const currentUser = config.get('CurrentUser');\r\n // In ui-next serverContext, ParentCustomerId are put in CurrentUser\r\n const parentCustomerId = _.isUndefined(currentUser.ParentCustomerId) ? config.get('ParentCustomerId') : currentUser.ParentCustomerId;\r\n const currentCustomer = config.get('CurrentCustomer');\r\n const loginCID = currentUser.IsInternal ? windowNameStorage.get('rcid') || currentCustomer.Id : parentCustomerId;\r\n\r\n return actionColumnTemplate({\r\n value,\r\n i18n,\r\n manageScopePermission: IsCustomerHierarchyEnabled && IsSharedLibraryPhase1Enabled && _.all([\r\n SharedLibraryUtils.isSuperAdmin({ uid: currentUser.Id, cid: value.Owner.Id }),\r\n SharedLibraryUtils.isLinkedAccount(config) === false,\r\n // user on customer that have no child customers in hierarchy is\r\n // not able to manage tag scope, except when the tag is already shared\r\n // to other customers by super admin on parent customers\r\n SharedLibraryUtils.hasChildCustomers(customerHierarchy, { cid: loginCID }) || _.result(value.SharingScope, 'Total') > 0,\r\n ]),\r\n });\r\n },\r\n }),\r\n ]);\r\n}\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport jsdataCampaign from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport { helpers } from '@bingads-webui/projection-grid-toolbar';\r\nimport { sortableHeaderTemplate } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport stateManager from '@bingads-webui-component-legacy/statemanager/campaignStateManager';\r\nimport preferenceService from '@bingads-webui-component-legacy/preference/service/index';\r\n\r\nconst schema = window.globalLegacySchema.get('Tag');\r\n\r\nexport class UETTagsGridConfig {\r\n constructor({\r\n preferenceConfig,\r\n columnConfig,\r\n isManagerDashboardView,\r\n appConfig,\r\n afterFindAllCallback,\r\n windowNameStorage,\r\n options: {\r\n customHeaderOffset,\r\n viewport,\r\n },\r\n isForVNext,\r\n i18n,\r\n isUETTagDeletionEnabled,\r\n }) {\r\n const tableName = i18n.getString('UnifiedEventTracking_Goal_Creation_Tag');\r\n\r\n _.extend(this, {\r\n name: preferenceConfig.name || 'UETTagsGrid',\r\n tableClasses: ['table', 'table-bordered'],\r\n dataSource: {\r\n type: 'jsdata',\r\n entity: jsdataCampaign.Tag,\r\n schema,\r\n },\r\n query: _.defaults(preferenceConfig.dataSource || {}, {\r\n entitySet: isManagerDashboardView ? edm.currentCustomer.Tags.toJSON() : edm.currentAccount.Tags.toJSON(),\r\n options: _.extend({\r\n cacheResponse: false,\r\n afterFindAll: afterFindAllCallback,\r\n }, appConfig.get('CurrentUser').IsInternal && windowNameStorage.get('rcid') > 0 ? {\r\n headers: { 'x-ms-rootcid': windowNameStorage.get('rcid') },\r\n } : {}),\r\n }),\r\n config,\r\n stateManager,\r\n preferenceService,\r\n sortableHeader: _.defaults(preferenceConfig.sortableHeader, {\r\n name: 'Name',\r\n directionIndex: 0,\r\n template: sortableHeaderTemplate,\r\n }),\r\n rows: {\r\n headRows: isForVNext ? [\r\n 'column-header-rows',\r\n ] :\r\n helpers.singleToolbarHeadRows(),\r\n },\r\n scrolling: {\r\n header: {\r\n type: 'sticky',\r\n offset: customHeaderOffset || (() => $('nav.navbar-default.navbar-fixed-top').height()),\r\n attributes: { 'aria-label': i18n.getString('{{tableName}} table header', { tableName }) },\r\n },\r\n virtualized: true,\r\n },\r\n tableAttributes: { 'aria-label': tableName },\r\n columns: columnConfig,\r\n },\r\n isUETTagDeletionEnabled && {selection: true},\r\n );\r\n\r\n if (viewport) {\r\n this.scrolling.viewport = viewport;\r\n }\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Promise from 'bluebird';\r\nimport { Storage } from '@bingads-webui/window-name-store';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { notificationApi, NotificationLevel } from '@bingads-webui-react/notification-center';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport jsdataCampaign from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport TagViewer from '@bingads-webui-static-legacy/uet/view/tagViewer';\r\nimport preferencesService from '@bingads-webui-component-legacy/preference/service/index';\r\nimport { updateGridQuery } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { handleSortChange } from '@bingads-webui-campaign-legacy/bingadsgrid/service/state-manager-helper';\r\nimport { isActiveTrackingStatusForUet, showTrackingStatusDetails } from '@bingads-webui-campaign-legacy/common-grid-config/controls/tracking-status-popover';\r\nimport { contents } from '@bingads-webui-campaign-legacy/popover/index';\r\nimport helpLinkTemplate from '@bingads-webui-campaign-legacy/common-grid-config/controls/help-link-template.pug';\r\nimport trackingStatusPopoverTemplate from '@bingads-webui-campaign-legacy/common-grid-config/controls/tracking-status-popover-template.pug';\r\nimport tagReadOnlyPopoverTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/tag-read-only-popover-template.pug';\r\nimport { PopoverView, positions } from '@bingads-webui/popover';\r\nimport AccountListView from '@bingads-webui-campaign-legacy/common-grid-config/controls/account-list-view';\r\nimport { SharedLibraryUtils, UETTagManageScopeDialog } from '@bingads-webui-campaign-react/shared-library-scopes';\r\nimport { ClientCenterCustomerService } from '@bingads-webui/clientcenter-customer-service';\r\nimport { getErrorMessage } from '@bingads-webui-campaign-legacy/conversion-tracking/common/util/index';\r\nimport { CreateView } from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/create/index';\r\nimport { getUETTagGridColumnConfig } from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/column-config';\r\nimport { getDefaultPlugins } from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/plugin-config';\r\nimport { UETTagsGridConfig } from '@bingads-webui-campaign-legacy/conversion-tracking/uet-tags/grid/grid-config';\r\n\r\nconst schema = window.globalLegacySchema.get('Tag');\r\nconst s$i18n = window.globalLegacyI18n.get('$/schema-i18n!campaign');\r\n\r\nexport function fetchCustomerHierarchy() {\r\n const windowNameStorage = new Storage();\r\n const currentUser = config.get('CurrentUser');\r\n // In ui-next serverContext, ParentCustomerId are put in CurrentUser\r\n const parentCustomerId = _.isUndefined(currentUser.ParentCustomerId) ? config.get('ParentCustomerId') : currentUser.ParentCustomerId;\r\n const currentCustomer = config.get('CurrentCustomer');\r\n const loginCID = currentUser.IsInternal ? windowNameStorage.get('rcid') || currentCustomer.Id : parentCustomerId;\r\n const ccCustomerService = new ClientCenterCustomerService({ ccBaseUrl: config.get('CCBaseUrl') });\r\n const fetchCustomerHierarchyPromise = ccCustomerService.getCustomerHierarchy({\r\n cid: loginCID,\r\n uid: currentUser.Id,\r\n returnOnlyDirectlyLinkedEntities: false,\r\n });\r\n const fetchUserPermissionPromise = fetchCustomerHierarchyPromise.then((data) => {\r\n const { customerHierarchyEntities: customerHierarchy } = data;\r\n const { Id: currentCustomerId } = currentCustomer;\r\n\r\n return SharedLibraryUtils.fetchUserPermissions({\r\n uid: currentUser.Id,\r\n cid: currentCustomerId,\r\n customerHierarchy,\r\n });\r\n });\r\n\r\n return Promise.join(fetchCustomerHierarchyPromise, fetchUserPermissionPromise, (data) => {\r\n const { customerHierarchyEntities: customerHierarchy } = data;\r\n\r\n return customerHierarchy;\r\n });\r\n}\r\n\r\nexport class UETTagsGrid extends DeterministicWrapperView {\r\n viewFactory({\r\n i18n,\r\n preferenceConfig,\r\n $blocker,\r\n permissions = {},\r\n isManagerDashboardView = false,\r\n pgridFactory,\r\n pluginFactories,\r\n extendPlugins = () => [],\r\n isForVNext,\r\n customHeaderOffset,\r\n sortableHeader,\r\n viewport,\r\n filterService,\r\n router,\r\n customerHierarchy,\r\n onShowPanel,\r\n showPopup,\r\n showAccountListPopup,\r\n perfMarker,\r\n renderThirdPartyIntegrationView,\r\n }) {\r\n const windowNameStorage = new Storage();\r\n\r\n this.isManagerDashboardView = isManagerDashboardView;\r\n this.permissions = permissions;\r\n this.i18n = i18n;\r\n this.$blocker = $blocker;\r\n this.filterService = filterService;\r\n this.router = router;\r\n this.customerHierarchy = customerHierarchy;\r\n this.isForVNext = isForVNext;\r\n this.onShowPanel = onShowPanel;\r\n this.showPopup = showPopup;\r\n this.showAccountListPopup = showAccountListPopup;\r\n this.isInitialGrid = true;\r\n this.renderThirdPartyIntegrationView = renderThirdPartyIntegrationView;\r\n\r\n edm.customerIdType.useAdvertiserCustomerId = !isManagerDashboardView;\r\n\r\n const columnConfig = getUETTagGridColumnConfig({\r\n updateHandler: _.bind(this.updateHandler, this),\r\n customerHierarchy: this.customerHierarchy,\r\n isManagerDashboardView,\r\n windowNameStorage,\r\n isActiveTrackingStatusForUet,\r\n isForVNext,\r\n deps: {\r\n i18n,\r\n s$i18n,\r\n permissions,\r\n config,\r\n },\r\n });\r\n const isUETTagDeletionEnabled = _.get(permissions, ['dynamic', 'UETTagDeletion']);\r\n const gridConfig = new UETTagsGridConfig({\r\n preferenceConfig,\r\n columnConfig,\r\n isManagerDashboardView,\r\n appConfig: config,\r\n afterFindAllCallback: _.bind(this.onGridDataLoaded, this),\r\n windowNameStorage,\r\n options: {\r\n customHeaderOffset,\r\n sortableHeader,\r\n viewport,\r\n },\r\n isForVNext: this.isForVNext,\r\n i18n,\r\n isUETTagDeletionEnabled,\r\n });\r\n const defaultPlugins = getDefaultPlugins({\r\n $blocker,\r\n i18n,\r\n s$i18n,\r\n view: this,\r\n appConfig: config,\r\n preferencesService,\r\n permissions,\r\n pluginFactories,\r\n isForVNext,\r\n perfMarker,\r\n });\r\n const extendedPlugins = extendPlugins({\r\n view: this,\r\n gridConfig,\r\n });\r\n\r\n this.grid = pgridFactory({\r\n gridConfig,\r\n plugins: defaultPlugins.concat(extendedPlugins),\r\n preferenceConfig: preferenceConfig || {},\r\n });\r\n this.gridView = this.grid.gridView;\r\n this.gridView.on('didUpdate', (changes) => {\r\n // for the perf issue, should not patch preference when init view\r\n if (this.isInitialGrid) {\r\n this.isInitialGrid = false;\r\n return;\r\n }\r\n handleSortChange(changes, this.gridView, gridConfig.name);\r\n });\r\n\r\n if (this.filterService) {\r\n this.listenTo(filterService, 'filter-state-changed', () => {\r\n updateGridQuery(this.gridView, this.filterService.getCombinedFilter(), true);\r\n });\r\n }\r\n\r\n return this.gridView;\r\n }\r\n\r\n get events() {\r\n return _.defaults({\r\n 'click .edit-tag-link': (e) => {\r\n const item = this.gridView.itemOfElement(e.target);\r\n const isUETDashboardPhase2Enabled = config.get('Permissions').dynamic.UETDashboardPhase2;\r\n\r\n if (isUETDashboardPhase2Enabled) {\r\n if (!_.isEmpty(item)) {\r\n this.router.navigateToTagIdPage({ tagId: item.Id });\r\n }\r\n } else {\r\n this.trigger('editTag', item);\r\n }\r\n },\r\n 'click .edit-tag-btn': (e) => {\r\n const item = this.gridView.itemOfElement(e.target);\r\n\r\n this.trigger('editTag', item);\r\n },\r\n 'click .link-tag-id': (e) => {\r\n const item = this.gridView.itemOfElement(e.target);\r\n\r\n if (!_.isEmpty(item)) {\r\n if (item.TrackingStatus === 'InactiveDueToTagUnavailable') {\r\n notificationApi.add({\r\n severity: NotificationLevel.Error,\r\n title: '',\r\n message: this.i18n.getString('UETTags_Grid_TrackingStatusMessage_InactiveDueToTagUnavailable'),\r\n target: 'FloatingBanner',\r\n });\r\n return;\r\n }\r\n this.router.navigateToTagIdPage({ tagId: item.Id });\r\n }\r\n },\r\n 'click .uet-tags-grid__action-view-tag': (e) => {\r\n const item = this.gridView.itemOfElement(e.target);\r\n\r\n new TagViewer({\r\n tag: {\r\n name: item.Name,\r\n id: item.Id,\r\n script: item.TrackingCode,\r\n },\r\n renderThirdPartyIntegrationView: this.renderThirdPartyIntegrationView,\r\n }).render();\r\n },\r\n 'click .uet-tags-grid__action-manage-sharing-scope': (e) => {\r\n const item = this.gridView.itemOfElement(e.target);\r\n\r\n if (!_.isEmpty(item) && this.onShowPanel) {\r\n this.onShowPanel({\r\n customerHierarchy: this.customerHierarchy,\r\n scopeOptions: [{\r\n id: SharedLibraryUtils.Scopes.CUSTOMER,\r\n text: this.i18n.getString('SharedLibrary_Tag_SharingScope_Customer', { account: `${item.Owner.Name} (${item.Owner.Number})` }),\r\n }, {\r\n id: SharedLibraryUtils.Scopes.HIERARCHY,\r\n text: this.i18n.getString('SharedLibrary_Tag_SharingScope_Hierarchy'),\r\n }],\r\n selectedOption: item.SharingScope.Total > 0 ? SharedLibraryUtils.Scopes.HIERARCHY : SharedLibraryUtils.Scopes.CUSTOMER,\r\n tagEntity: item,\r\n deps: { i18n: this.i18n },\r\n onShowPanel: this.onShowPanel,\r\n update: ({ treeSelection }) => {\r\n const updatedScope = treeSelection || { Accounts: [], Customers: [], Others: 0, Total: 0 };\r\n\r\n this.updateHandler(item, { SharingScope: updatedScope });\r\n },\r\n });\r\n return;\r\n }\r\n const tagSharingView = new UETTagManageScopeDialog({\r\n dialogOptions: {\r\n title: this.i18n.getString('SharedLibrary_UET_ManageScopeDialog_Title'),\r\n },\r\n customerHierarchy: this.customerHierarchy,\r\n scopeOptions: [{\r\n id: SharedLibraryUtils.Scopes.CUSTOMER,\r\n text: this.i18n.getString('SharedLibrary_Tag_SharingScope_Customer', { account: `${item.Owner.Name} (${item.Owner.Number})` }),\r\n }, {\r\n id: SharedLibraryUtils.Scopes.HIERARCHY,\r\n text: this.i18n.getString('SharedLibrary_Tag_SharingScope_Hierarchy'),\r\n }],\r\n selectedOption: item.SharingScope.Total > 0 ? SharedLibraryUtils.Scopes.HIERARCHY : SharedLibraryUtils.Scopes.CUSTOMER,\r\n tagEntity: item,\r\n deps: { i18n: this.i18n },\r\n withFooter: true,\r\n }).render();\r\n\r\n tagSharingView.on('save', ({ treeSelection }) => {\r\n const updatedScope = treeSelection || { Accounts: [], Customers: [], Others: 0, Total: 0 };\r\n\r\n this.updateHandler(item, { SharingScope: updatedScope });\r\n tagSharingView.remove();\r\n });\r\n tagSharingView.on('close cancel', () => {\r\n tagSharingView.remove();\r\n });\r\n },\r\n 'click .uet-tags-grid__tracking-status-detail': 'onShowTrackingStatusDetails',\r\n 'click .uet-tags-grid__shared-scope-detail': 'onShowSharedScopeDetails',\r\n 'click .uet-tags-grid__used-by-detail': 'onShowUsedByDetails',\r\n 'click .tag-grid__tag-readonly': 'onShowTagReadOnlyPopup',\r\n 'click .uet-tags-grid__link-goals': (e) => {\r\n const item = this.gridView.itemOfElement(e.target);\r\n\r\n if (_.isEmpty(item)) {\r\n return;\r\n }\r\n const { Id: tagId, GoalsCount: goalsCount } = item;\r\n\r\n if (this.router && _.isFunction(this.router.navigateToGoals)) {\r\n this.router.navigateToGoals({ tagId, goalsCount });\r\n return;\r\n }\r\n\r\n if (_.isFinite(goalsCount) && goalsCount > 0) {\r\n const filterExpression = {\r\n FilterExpressions: [{\r\n SelectedColumn: 'Id',\r\n SelectedOperator: 'Equal',\r\n Values: [`${tagId}`],\r\n }],\r\n };\r\n const escapedFilter = encodeURIComponent(JSON.stringify(filterExpression));\r\n\r\n window.App.navigate(`customer/:customer_id/account/:account_id/uet/goals/find/${escapedFilter}`);\r\n } else {\r\n window.App.navigate('customer/:customer_id/account/:account_id/uet/goals');\r\n }\r\n },\r\n 'click .uet-tags-grid__link-audience': (e) => {\r\n const item = this.gridView.itemOfElement(e.target);\r\n\r\n if (_.isEmpty(item)) {\r\n return;\r\n }\r\n const { Id: tagId, AudiencesCount: audiencesCount } = item;\r\n\r\n if (this.router && _.isFunction(this.router.navigateToAudiences)) {\r\n this.router.navigateToAudiences({ tagId, audiencesCount });\r\n return;\r\n }\r\n\r\n if (_.isFinite(audiencesCount) && audiencesCount > 0) {\r\n const filterExpression = {\r\n FilterExpressions: [{\r\n SelectedColumn: 'TagId',\r\n SelectedOperator: 'Equal',\r\n Values: [`${tagId}`],\r\n }],\r\n };\r\n const escapedFilter = encodeURIComponent(JSON.stringify(filterExpression));\r\n\r\n window.App.navigate(`customer/:customer_id/account/:account_id/library/audience/find/${escapedFilter}`);\r\n } else {\r\n window.App.navigate('customer/:customer_id/account/:account_id/library/audience');\r\n }\r\n },\r\n }, this.isForVNext ? {\r\n 'mouseenter .uet-tags-grid__tracking-status-detail': 'onShowTrackingStatusDetails',\r\n 'mouseenter .uet-tags-grid__used-by-detail': 'onShowUsedByDetails',\r\n 'mouseenter .uet-tags-grid__shared-scope-detail': 'onShowSharedScopeDetails',\r\n 'mouseenter .tag-grid__tag-readonly': 'onShowTagReadOnlyPopup',\r\n 'mouseleave .UET-tags-column-TrackingStatus': 'hidePopup',\r\n 'mouseleave .UET-tags-column-UsedBy': 'hidePopup',\r\n 'mouseleave .UET-tags-column-SharingScope': 'hidePopup',\r\n 'mouseleave .tag-grid__tag-readonly': 'hidePopup',\r\n } : {});\r\n }\r\n\r\n hidePopup(e) {\r\n if ($(e.relatedTarget).closest('#popup-callout').length === 0) {\r\n this.trigger('closePopup');\r\n }\r\n }\r\n\r\n onShowTrackingStatusDetails(e, title = this.i18n.getString('UETTags_Grid_ColumnTrackingStatus')) {\r\n if (this.isForVNext && _.isFunction(this.showPopup)) {\r\n const item = this.gridView.itemOfElement(e.target);\r\n const isUnverifiedOrInactive = item.TrackingStatus === this.i18n.getString('UnifiedEventTracking_Tags_TrackingStatus_Enum_Unverified') || item.TrackingStatus === this.i18n.getString('UnifiedEventTracking_Tags_TrackingStatus_Enum_InactiveTag');\r\n const isUETDashboardPhase2Enabled = config.get('Permissions').dynamic.UETDashboardPhase2;\r\n const isTrackingStatusColumn = title === this.i18n.getString('UETTags_Grid_ColumnTrackingStatus');\r\n\r\n if (_.isEmpty(item)) {\r\n return;\r\n }\r\n const a11yId = (suffix) => `${_.uniqueId('a11y-')}__${suffix}`;\r\n const contentView = new contents.TitledContent()\r\n .setBody({\r\n html: trackingStatusPopoverTemplate({\r\n i18n: this.i18n,\r\n helpLinkTemplate,\r\n troubleshootTopic: 'app51206',\r\n value: item.TrackingStatus,\r\n a11yId,\r\n isActiveTrackingStatus: isActiveTrackingStatusForUet,\r\n isUnverifiedOrInactive,\r\n isUETAllTagsDashboard: true,\r\n isUETDashboardPhase2Enabled,\r\n isTrackingStatusColumn,\r\n trackingStatusMessagePrefix: 'UETTags_Grid_TrackingStatusMessage_',\r\n }),\r\n }).delegateEvents({\r\n 'click .uetdashboard': () => {\r\n this.router.navigateToTagIdPage({ tagId: item.Id });\r\n }});\r\n\r\n this.showPopup({\r\n containerSelector: '#rejectionContainer',\r\n title: this.i18n.getString('UETTags_Grid_ColumnTrackingStatus'),\r\n contentView,\r\n event: e,\r\n parentView: this,\r\n });\r\n } else {\r\n showTrackingStatusDetails(\r\n this.gridView.itemOfElement(e.target),\r\n this.$(e.target),\r\n 'uet-tags-grid__tracking-status-popover',\r\n isActiveTrackingStatusForUet,\r\n this.i18n,\r\n 'UETTags_Grid_TrackingStatusMessage_',\r\n );\r\n }\r\n }\r\n\r\n onShowSharedScopeDetails(e) {\r\n const item = this.gridView.itemOfElement(e.target);\r\n\r\n if (_.isEmpty(item)) {\r\n return;\r\n }\r\n const { SharingScope: value } = item;\r\n\r\n if (this.isForVNext && _.isFunction(this.showAccountListPopup)) {\r\n this.showAccountListPopup({\r\n i18n: this.i18n,\r\n containerSelector: '#rejectionContainer',\r\n title: this.i18n.getString('Tag_Shared_To_Popover_Title', { number: value.Total }),\r\n subtitle: this.i18n.getString('Tag_Shared_To_Popover_Message'),\r\n event: e,\r\n value,\r\n parentView: this,\r\n });\r\n } else {\r\n const accountListView = new AccountListView({\r\n value,\r\n i18n: this.i18n,\r\n title: this.i18n.getString('Tag_Shared_To_Popover_Title', { number: value.Total }),\r\n subtitle: this.i18n.getString('Tag_Shared_To_Popover_Message'),\r\n footerText: value.Others > 0 ? this.i18n.getString('Tag_Popover_Number_Other_Accounts', { number: value.Others }) : null,\r\n });\r\n\r\n this.sharingScopePopoverView = new PopoverView({\r\n target: this.$(e.target),\r\n containerClassName: ['uet-tags-grid__shared-scope-popover'],\r\n position: positions.relativeToTableRow(),\r\n }).setContent(accountListView);\r\n }\r\n }\r\n\r\n onShowUsedByDetails(e) {\r\n const item = this.gridView.itemOfElement(e.target);\r\n\r\n if (_.isEmpty(item)) {\r\n return;\r\n }\r\n const { UsedBy: value } = item;\r\n\r\n if (this.isForVNext && _.isFunction(this.showAccountListPopup)) {\r\n this.showAccountListPopup({\r\n i18n: this.i18n,\r\n containerSelector: '#rejectionContainer',\r\n title: this.i18n.getString('Tag_Used_By_Popover_Title', { number: value.Total }),\r\n subtitle: this.i18n.getString('Tag_Used_By_Popover_Message'),\r\n value,\r\n event: e,\r\n parentView: this,\r\n });\r\n } else {\r\n const accountListView = new AccountListView({\r\n value,\r\n i18n: this.i18n,\r\n title: this.i18n.getString('Tag_Used_By_Popover_Title', { number: value.Total }),\r\n subtitle: this.i18n.getString('Tag_Used_By_Popover_Message'),\r\n footerText: value.Others > 0 ? this.i18n.getString('Tag_Popover_Number_Other_Accounts', { number: value.Others }) : null,\r\n });\r\n\r\n this.usedByPopoverView = new PopoverView({\r\n target: this.$(e.target),\r\n containerClassName: ['uet-tags-grid__used-by-popover'],\r\n position: positions.relativeToTableRow(),\r\n }).setContent(accountListView);\r\n }\r\n }\r\n\r\n onShowTagReadOnlyPopup(e) {\r\n const title = this.i18n.getString('Tag_ReadOnly_Popover_Title');\r\n const a11yId = (suffix) => `${_.uniqueId('a11y-')}__${suffix}`;\r\n const popupMessage = this.i18n.getString('Tag_ReadOnly_Popover_Message');\r\n\r\n if (this.isForVNext && _.isFunction(this.showPopup)) {\r\n const contentView = new contents.TitledContent()\r\n .setBody({\r\n html: tagReadOnlyPopoverTemplate({\r\n a11yId,\r\n popupMessage,\r\n }),\r\n });\r\n\r\n this.showPopup({\r\n containerSelector: '#rejectionContainer',\r\n title,\r\n contentView,\r\n event: e,\r\n parentView: this,\r\n });\r\n }\r\n }\r\n\r\n getCreationEditor({ permissions }) {\r\n this.createView = new CreateView({\r\n i18n: this.i18n,\r\n $blocker: this.$blocker,\r\n appConfig: config,\r\n permissions,\r\n isManagerDashboardView: this.isManagerDashboardView,\r\n });\r\n\r\n // toolbarEditor.overrideWith(this.createView.render());\r\n this.grid.toolbar.gridToolbarGroup.hideAllToolbars();\r\n this.createView.once('cancelTagCreation', () => {\r\n this.grid.toolbar.gridToolbarGroup.showAllToolbars();\r\n this.removeCreateView();\r\n });\r\n this.createView.once('finishTagCreation', () => {\r\n this.gridView.refresh(true);\r\n this.grid.toolbar.gridToolbarGroup.showAllToolbars();\r\n this.trigger('tagDidCreated');\r\n this.removeCreateView();\r\n });\r\n\r\n return this.createView;\r\n }\r\n\r\n onGridDataLoaded(options, data) {\r\n const { IsCustomerHierarchyEnabled, IsSharedLibraryPhase1Enabled } = this.permissions;\r\n\r\n if (IsCustomerHierarchyEnabled && IsSharedLibraryPhase1Enabled) {\r\n const ownerIds = _.map(data, (item) => item.Owner.Id);\r\n const { Id: currentCustomerId } = config.get('CurrentCustomer');\r\n\r\n ownerIds.push(currentCustomerId);\r\n SharedLibraryUtils.fetchUserPermissions({\r\n uid: config.get('CurrentUser').Id,\r\n cid: currentCustomerId,\r\n customerIds: ownerIds,\r\n }).then((allCIDCached) => {\r\n if (!allCIDCached) {\r\n this.gridView.refresh(true);\r\n }\r\n }).finally(withUiBlock(this.$blocker, this.i18n.getString('loadingtext')));\r\n }\r\n\r\n return data;\r\n }\r\n\r\n updateHandler(originalItem, patch, editorView) {\r\n const windowNameStorage = new Storage();\r\n\r\n jsdataCampaign.Tag.update(originalItem[schema.key], patch, _.extend({\r\n cacheResponse: false,\r\n entitySet: this.isManagerDashboardView ? edm.currentCustomer.Tags : edm.currentAccount.Tags,\r\n }, config.get('CurrentUser').IsInternal && windowNameStorage.get('rcid') > 0 ? {\r\n headers: { 'x-ms-rootcid': windowNameStorage.get('rcid') },\r\n } : {}))\r\n .then(() => {\r\n if (editorView) {\r\n editorView.trigger('save', patch);\r\n }\r\n this.gridView.refresh(true);\r\n })\r\n .catch((res) => {\r\n const errors = [];\r\n\r\n if (!res || !res.errors) {\r\n errors.push(getErrorMessage('default', this.i18n));\r\n } else {\r\n _.each(res.errors, (error) => {\r\n errors.push(getErrorMessage(error.Code, this.i18n));\r\n });\r\n }\r\n if (editorView) {\r\n editorView.setErrors({ $overall: errors });\r\n }\r\n }).finally(withUiBlock(this.$blocker, this.i18n.getString('loadingtext')));\r\n }\r\n\r\n removeCreateView() {\r\n if (this.createView) {\r\n this.createView.off();\r\n this.createView.remove();\r\n this.createView = null;\r\n }\r\n }\r\n\r\n renderTrunk() {\r\n if (this.isForVNext) {\r\n this.filterService.initializeCombinedFilterPromise.then(() => {\r\n updateGridQuery(this.gridView, this.filterService.getCombinedFilter(), true);\r\n });\r\n }\r\n super.renderTrunk();\r\n }\r\n\r\n remove() {\r\n this.removeCreateView();\r\n return super.remove();\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport logger from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport { editablePlugin } from '@bingads-webui-campaign/projection-grid-editable';\r\nimport { toolbarPlugin, helpers } from '@bingads-webui/projection-grid-toolbar';\r\nimport uiBlockerPlugin from '@bingads-webui-component-legacy/bingads-grid/plugin/ui-blocker';\r\nimport dateFilterPlugin from '@bingads-webui-campaign-legacy/bingadsgrid/vnext/plugin/date-filter';\r\nimport { performanceLogPlugin, perfMarkerPlugin } from '@bingads-webui-campaign/pgrid-performance-log';\r\nimport { a11yPlugin } from '@bingads-webui/projection-grid-a11y';\r\n\r\nexport const getDefaultPlugins = ({\r\n $blocker,\r\n i18n,\r\n view,\r\n appConfig,\r\n preferencesService,\r\n permissions,\r\n pluginFactories,\r\n isForVNext,\r\n perfMarker,\r\n}) => _.compact([\r\n { plugin: perfMarkerPlugin, config: { appConfig, marker: perfMarker } },\r\n { plugin: a11yPlugin, config: { i18n } },\r\n { plugin: dateFilterPlugin },\r\n (!appConfig.get('CurrentAccountInActive') && !permissions.IsReadOnlyUser) && {\r\n plugin: editablePlugin,\r\n config: { i18n },\r\n },\r\n {\r\n plugin: uiBlockerPlugin,\r\n config: { el: $blocker },\r\n },\r\n {\r\n plugin: pluginFactories.placeholderPlugin,\r\n config: {\r\n container: isForVNext ? '.grid-noresult' : '.uet-tags-grid__placeholder',\r\n text: i18n.getString('Grid_NoRecords'),\r\n filteredContainer: isForVNext ? '.grid-noresult' : '.uet-tags-grid__placeholder',\r\n filteredEmptyText: i18n.getString('Grid_NoFilteredRecords'),\r\n },\r\n },\r\n {\r\n plugin: pluginFactories.paginationPlugin,\r\n config: {\r\n pageSize: 20,\r\n availablePageSizes: [20, 50, 100, 200],\r\n enableRandomPage: false,\r\n pageNumberLabelText: i18n.getString('Grid_Page_Number_Label_Text'),\r\n pageSizeText: i18n.getString('Grid_ShowRows'),\r\n totalPageCountText: i18n.getString('Grid_PageOf'),\r\n resetPageNumberOnSort: true,\r\n },\r\n },\r\n {\r\n plugin: performanceLogPlugin,\r\n config: {\r\n appConfig,\r\n logger,\r\n },\r\n },\r\n {\r\n plugin: toolbarPlugin,\r\n config: helpers.singleToolbar({\r\n items: [{\r\n type: 'button',\r\n id: 'button-create-new-tag',\r\n classes: ['btn', 'btn-hero'],\r\n text: i18n.getString('UETTags_Grid_ButtonCreateNewTag'),\r\n onClick: () => {\r\n const createMoreTagsPrompt = preferencesService.findByName('WebApp.CampaignUI.UET.Tags.ShowCreateMoreTagsPrompt');\r\n\r\n if ((!createMoreTagsPrompt || createMoreTagsPrompt.Data) && view.gridView.getItemCount() > 0) {\r\n view.trigger('showModal');\r\n } else {\r\n view.trigger('createTag');\r\n }\r\n },\r\n }, {\r\n type: 'dropdown',\r\n id: 'dropdown-filter',\r\n }, {\r\n type: 'search-box',\r\n id: 'search-box-filter',\r\n }],\r\n }),\r\n },\r\n]);\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\n\r\nimport tmpl from '@bingads-webui-campaign-legacy/conversion-tracking/template/upload-conversions/changes-view.pug';\r\n\r\nimport ProjectionGrid from '@bingads-webui-component-legacy/github/modules/projection-grid/module/projection-grid';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport downloadService from '@bingads-webui-component-legacy/download/index';\r\n\r\nimport instrumentationSvc from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport instrumentSetting from '@bingads-webui-static-legacy/instrumentation/campaignSchemaAndSetting';\r\n\r\nimport PageContext from '@bingads-webui-static-legacy/page-context';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/conversion-tracking');\r\n\r\nconst urlTemplate = '/BulkUploadFiles/GetBulkFileUrl(CustomerId=:customer_id,FileIdentifier={{identifier}},BulkFileType={{type}})';\r\n\r\nexport default class View extends Backbone.View {\r\n\r\n get events() {\r\n return {\r\n 'click .btn-apply': 'applyChanges',\r\n 'click .btn-discard': 'discard',\r\n 'click .btn-results': 'downloadResults',\r\n 'click .link-errors': 'downloadErrors',\r\n 'click .btn-errors': 'downloadErrors',\r\n 'click .btn-close': 'close',\r\n };\r\n }\r\n\r\n initialize(options = {}) {\r\n this.options = options || {};\r\n this.isNewUI = !!options.isNewUI;\r\n this.isOfflineConversionGoalCurrencyCustomerScopeSupported = PageContext.Permissions && PageContext.Permissions.IsOfflineConversionGoalCurrencyCustomerScopeSupported;\r\n this.initGridConfig();\r\n }\r\n\r\n render() {\r\n if (this.isNewUI) {\r\n const { data, type } = this.options;\r\n\r\n this.successRows = type === 'review' ? data.SuccessCount : data.RowsProcessed;\r\n this.errorRows = this.options.type === 'review' ? data.ErrorCount : data.TotalRows - data.RowsProcessed;\r\n this.totalRows = (this.successRows || 0) + (this.errorRows || 0);\r\n }\r\n\r\n this.$el.html(tmpl({\r\n type: this.options.type,\r\n hasError: !!this.options.errorsIdentifier,\r\n hasUploadError: this.options.hasUploadError,\r\n hasAcrossAllAccountsOfflineConversionGoal: this.isOfflineConversionGoalCurrencyCustomerScopeSupported && !!this.options.data.HasAcrossAllAccountsOfflineConversionGoal,\r\n i18n,\r\n successRows: this.successRows,\r\n errorRows: this.errorRows,\r\n totalRows: this.totalRows,\r\n isNewUI: this.isNewUI,\r\n }));\r\n\r\n if (!this.isNewUI) {\r\n if (this.options.type === 'review') {\r\n this.config.el = this.$('.changes-grid');\r\n } else if (this.options.type === 'preview' || this.options.type === 'scheduled-preview') {\r\n this.config.el = this.$('.preview-grid');\r\n }\r\n this.grid = ProjectionGrid.factory({vnext: true}).create(this.config).gridView;\r\n this.grid.render();\r\n }\r\n\r\n if (instrumentationSvc.endActivity) {\r\n instrumentationSvc.endActivity();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n initGridConfig() {\r\n switch (this.options.type) {\r\n case 'preview':\r\n case 'scheduled-preview': {\r\n this.config = this.initPreviewGrid(this.options.data);\r\n break;\r\n }\r\n case 'review': {\r\n this.config = this.initSummaryGrid(this.options.data);\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n initPreviewGrid(data) {\r\n const config = {\r\n tableClasses: ['table', 'table-bordered'],\r\n };\r\n\r\n config.dataSource = {\r\n type: 'memory',\r\n data: [{'SuccessCount': data.RowsProcessed, 'ErrorCount': data.TotalRows - data.RowsProcessed}],\r\n };\r\n\r\n config.columns = [{\r\n title: i18n.getString('Import_ColumnHeader_Additions'),\r\n name: 'SuccessCount',\r\n }, {\r\n title: i18n.getString('Import_ColumnHeader_Errors'),\r\n name: 'ErrorCount',\r\n }];\r\n\r\n return config;\r\n }\r\n\r\n initSummaryGrid(data) {\r\n const config = {\r\n tableClasses: ['table', 'table-bordered'],\r\n };\r\n\r\n config.dataSource = {\r\n type: 'memory',\r\n data: [{'SuccessCount': data.SuccessCount, 'ErrorCount': data.ErrorCount}],\r\n };\r\n\r\n config.columns = [{\r\n title: i18n.getString('Import_ColumnHeader_Updates'),\r\n name: 'SuccessCount',\r\n }, {\r\n title: i18n.getString('Import_ColumnHeader_Errors'),\r\n name: 'ErrorCount',\r\n }];\r\n\r\n return config;\r\n }\r\n\r\n handleGenericError(errorLog, err) {\r\n if (instrumentationSvc.logError) {\r\n instrumentationSvc.logError('UploadConversions/changesView/handleGenericError',\r\n `Failed on url ${errorLog.Url}`);\r\n }\r\n\r\n this.trigger('error', {\r\n errorMsgKey: 'UnifiedEventTracking_UploadConversions_GenericError',\r\n log: _.extend(\r\n _.pick(err, 'readyState', 'responseText', 'status', 'statusText'),\r\n _.pick(err.headers, 'x-ms-requestid', 'x-ms-trackingid'),\r\n errorLog),\r\n });\r\n }\r\n\r\n applyChanges() {\r\n //send the create commit rule request to odata api\r\n const op = {\r\n data: {\r\n '@odata.type': '#Model.OfflineConversionUploadTaskItem',\r\n 'FileIdentifier': '',\r\n 'SessionId': this.options.sessionId,\r\n 'Name': this.options.filename,\r\n 'Type': 'OfflineConversionUploadCommit',\r\n 'Cron': '',\r\n },\r\n },\r\n url = '/Customers()/Accounts()/TaskItems?$expand=TaskItemExecutions';\r\n\r\n this.$('.btn-apply').prop('disabled', true);\r\n odata.post(url, op).bind(this)\r\n .then((data) => {\r\n this.$('.btn-apply').prop('disabled', false);\r\n this.trigger('startApply', { TaskId: data.Id, ExecutionId: _.first(data.TaskItemExecutions).Id });\r\n })\r\n .catch((err) => {\r\n this.$('.btn-apply').prop('disabled', false);\r\n this.handleGenericError({Url: url, TaskSessionId: this.options.sessionId}, err);\r\n });\r\n if (instrumentationSvc.asLoggingStart) {\r\n instrumentationSvc.asLoggingStart(instrumentSetting.ACTIVITYNAME.ClickOnApplyChanges);\r\n }\r\n }\r\n\r\n discard() {\r\n this.trigger('discard');\r\n if (instrumentationSvc.asLoggingStart) {\r\n instrumentationSvc.asLoggingStart(instrumentSetting.ACTIVITYNAME.ClickOnDiscard);\r\n }\r\n }\r\n\r\n recoverBinding() {\r\n this.undelegateEvents();\r\n this.delegateEvents();\r\n if (instrumentationSvc.endActivity) {\r\n instrumentationSvc.endActivity();\r\n }\r\n }\r\n\r\n downloadResults() {\r\n const url = _.template(urlTemplate)({\r\n identifier: this.options.resultsIdentifier,\r\n type: 'OfflineConversionAllResultFile',\r\n });\r\n\r\n odata.get(url).bind(this)\r\n .then((data) => {\r\n downloadService.download(data);\r\n })\r\n .catch((err) => {\r\n this.handleGenericError({Url: url}, err);\r\n });\r\n\r\n if (instrumentationSvc.asLoggingStart) {\r\n instrumentationSvc.asLoggingStart(instrumentSetting.ACTIVITYNAME.ClickOnDownloadAllResults);\r\n }\r\n }\r\n\r\n downloadErrors() {\r\n const url = _.template(urlTemplate)({\r\n identifier: this.options.errorsIdentifier,\r\n type: 'OfflineConversionErrorResultFile',\r\n });\r\n\r\n odata.get(url).bind(this)\r\n .then((data) => {\r\n downloadService.download(data);\r\n })\r\n .catch((err) => {\r\n this.handleGenericError({Url: url}, err);\r\n });\r\n\r\n if (instrumentationSvc.asLoggingStart) {\r\n instrumentationSvc.asLoggingStart(instrumentSetting.ACTIVITYNAME.ClickOnDownloadErrorsOnly);\r\n }\r\n }\r\n\r\n close() {\r\n this.trigger('close');\r\n if (instrumentationSvc.asLoggingStart) {\r\n instrumentationSvc.asLoggingStart(instrumentSetting.ACTIVITYNAME.ClickOnClose);\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\nimport datetimeUserTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/template/upload-conversions/columns/datetime-user.pug';\r\nimport uploadedFileTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/template/upload-conversions/columns/uploaded-file.pug';\r\nimport summaryTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/template/upload-conversions/columns/summary.pug';\r\nimport actionsTemplate from '@bingads-webui-campaign-legacy/conversion-tracking/template/upload-conversions/columns/actions.pug';\r\n\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport dateHumanizer from '@bingads-webui-component-legacy/humanize/date';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/conversion-tracking');\r\n\r\nconst dataColumnsConfig = [{\r\n name: 'datetimeuser',\r\n title: i18n.getString('UnifiedEventTracking_UploadConversions_HistoryGrid_DatetimeUser'),\r\n bodyClasses: ['datetimeuser-col'],\r\n template: datetimeUserTemplate,\r\n property: (row) => {\r\n const date = dateHumanizer.parse(row.StartedAt);\r\n\r\n return {\r\n datetime: _.isDate(date) ? date.toLocaleString(config.get('Culture') || pageContext.Culture || 'en-US') : row.StartedAt,\r\n user: row.UserName || i18n.getString('UnifiedEventTracking_UploadConversions_Common_NotAvailable'),\r\n };\r\n },\r\n}, {\r\n name: 'uploadedfile',\r\n title: i18n.getString('UnifiedEventTracking_UploadConversions_HistoryGrid_UploadedFile'),\r\n template: uploadedFileTemplate,\r\n property: (row) => {\r\n const inputFile = _.first(_.where(row.OfflineConversionFiles, {Type: 'InputFile'}));\r\n\r\n let hasExpectedStatus = row.Status === 'Completed' || row.Status === 'PendingExecution' || row.Status === 'Failed';\r\n\r\n return {\r\n name: inputFile && hasExpectedStatus ? inputFile.Name : i18n.getString('UnifiedEventTracking_UploadConversions_Common_NotAvailable'),\r\n identifier: inputFile && hasExpectedStatus ? inputFile.Identifier : '',\r\n shouldDisable: inputFile && hasExpectedStatus ? !(inputFile && inputFile.Identifier) || (inputFile && inputFile.IsExpired) || row.Status === 'Failed' : true,\r\n };\r\n },\r\n}, {\r\n name: 'summary',\r\n title: i18n.getString('UnifiedEventTracking_UploadConversions_HistoryGrid_Summary'),\r\n template: summaryTemplate,\r\n property: (row) => {\r\n if (row.Status === 'PendingExecution') {\r\n return {\r\n isPending: true,\r\n isCompleted: false,\r\n successCount: row.SuccessCount,\r\n errorCount: row.ErrorCount,\r\n i18n,\r\n };\r\n } else if (row.Status === 'Completed') {\r\n return {\r\n isPending: false,\r\n isCompleted: true,\r\n successCount: row.SuccessCount,\r\n errorCount: row.ErrorCount,\r\n i18n,\r\n };\r\n } else if (row.Status === 'Failed' && _.isArray(row.Errors) && !_.isEmpty(row.Errors)) {\r\n const errorCodes = row.Errors.map((error) => error && error.Code).filter(Boolean).map((code) => i18n.getString(code) || i18n.getString(`Error_Campaign_API_${code}`));\r\n\r\n return {\r\n isPending: false,\r\n isCompleted: false,\r\n status: [i18n.getString('GenericUploadError'), ...errorCodes].filter(Boolean).join(' '),\r\n successCount: row.SuccessCount,\r\n errorCount: row.ErrorCount,\r\n i18n,\r\n };\r\n } else {\r\n return {\r\n isPending: false,\r\n isCompleted: false,\r\n status: i18n.getString(`UnifiedEventTracking_UploadConversions_RunResultState_${row.Status}`) || i18n.getString('UnifiedEventTracking_UploadConversions_Common_NotAvailable'),\r\n successCount: row.SuccessCount,\r\n errorCount: row.ErrorCount,\r\n i18n,\r\n };\r\n }\r\n },\r\n}, {\r\n name: 'actions',\r\n title: i18n.getString('UnifiedEventTracking_UploadConversions_HistoryGrid_Actions'),\r\n template: actionsTemplate,\r\n property: (row) => {\r\n const resultsFile = _.first(_.where(row.OfflineConversionFiles, {Type: 'AllRecordsResultFile'}));\r\n const errorsFile = _.first(_.where(row.OfflineConversionFiles, {Type: 'ErrorOnlyResultFile'}));\r\n\r\n return {\r\n isPending: row.Status === 'PendingExecution',\r\n hasError: row.ErrorCount > 0,\r\n resultsId: resultsFile && resultsFile.Identifier,\r\n errorsId: errorsFile && errorsFile.Identifier,\r\n shouldDisable: !(resultsFile && resultsFile.Identifier) || (resultsFile && resultsFile.IsExpired),\r\n i18n,\r\n };\r\n },\r\n}];\r\n\r\nexport const columnsConfig = dataColumnsConfig;\r\n","import DataSource from '@bingads-webui-component-legacy/js-data-campaign/index';\r\n\r\nconst dataSourceConfig = {\r\n type: 'jsdata',\r\n entity: DataSource.OfflineConversionUploadTaskItemExecution,\r\n options: {cacheResponse: false},\r\n query: {\r\n $filter: 'TaskItem/Type eq Enum.TaskItemType\\'OfflineConversionUploadCommit\\' or TaskItem/Type eq Enum.TaskItemType\\'OfflineConversionUploadCommitTest\\'',\r\n },\r\n};\r\n\r\nexport const dataConfig = dataSourceConfig;\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Backbone from 'backbone';\r\n\r\nimport template from '@bingads-webui-campaign-legacy/conversion-tracking/template/upload-conversions/history-grid.pug';\r\nimport { paginationPlugin } from '@bingads-webui/projection-grid-pagination';\r\nimport { placeholderPlugin } from '@bingads-webui/projection-grid-placeholder';\r\nimport { uiBlockerPlugin } from '@bingads-webui/projection-grid-uiblocker';\r\nimport { a11yPlugin } from '@bingads-webui/projection-grid-a11y';\r\n\r\nimport ProjectionGrid from '@bingads-webui-component-legacy/github/modules/projection-grid/module/projection-grid';\r\nimport downloadService from '@bingads-webui-component-legacy/download/index';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\n\r\nimport instrumentationSvc from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport instrumentSetting from '@bingads-webui-static-legacy/instrumentation/campaignSchemaAndSetting';\r\n\r\nimport { columnsConfig } from '@bingads-webui-campaign-legacy/conversion-tracking/upload-conversions/history-grid-columns-config';\r\nimport { dataConfig } from '@bingads-webui-campaign-legacy/conversion-tracking/upload-conversions/history-grid-data-config';\r\nimport { getPGridColumnResizePlugin } from '@bingads-webui-campaign/projection-grid-column-resize-helper';\r\n\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/conversion-tracking');\r\n\r\nconst downloadUrlTemplate = '/BulkUploadFiles/GetBulkFileUrl(CustomerId=:customer_id,FileIdentifier={{identifier}},BulkFileType={{type}})';\r\n\r\nexport default class View extends Backbone.View {\r\n\r\n initialize(options = {}) {\r\n this.data = options.data ? options.data : dataConfig;\r\n this.columns = columnsConfig;\r\n }\r\n\r\n render() {\r\n this.$el.append(template());\r\n const {gridName,\r\n preferenceService} = this;\r\n const resizeConfig = getPGridColumnResizePlugin({\r\n gridName,\r\n preferenceService,\r\n });\r\n\r\n this.grid = ProjectionGrid.factory({ vnext: true })\r\n .use(paginationPlugin)\r\n .use(uiBlockerPlugin)\r\n .use(a11yPlugin)\r\n .use(placeholderPlugin)\r\n .use(resizeConfig.plugin)\r\n .create({\r\n el: this.$('.grid-container'),\r\n tableClasses: ['table', 'grid', 'table-hover'],\r\n dataSource: this.data,\r\n columns: this.columns,\r\n plugins: {\r\n pagination: {\r\n enableRandomPage: false,\r\n pageSize: 20,\r\n availablePageSizes: [20, 50, 100, 200],\r\n pageNumberLabelText: i18n.getString('Grid_Page_Number_Label_Text'),\r\n pageSizeText: i18n.getString('Grid_ShowRows'),\r\n totalPageCountText: i18n.getString('Grid_PageOf'),\r\n },\r\n uiBlocker: {\r\n el: this.$('.history-grid'),\r\n },\r\n placeholder: {\r\n container: this.$('.grid-noresult'),\r\n text: i18n.getString('Grid_NoRecords'),\r\n },\r\n },\r\n }).gridView;\r\n\r\n this.grid.render();\r\n\r\n return this;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .btn-results': 'downloadResults',\r\n 'click .btn-errors': 'downloadErrors',\r\n 'click .btn-file': 'downloadInputFile',\r\n };\r\n }\r\n\r\n downloadResults(e) {\r\n if (e && e.target && $(e.target).is('[disabled]')) {\r\n return;\r\n }\r\n\r\n const id = this.getDataId(e);\r\n\r\n this.download(id, 'OfflineConversionAllResultFile');\r\n if (instrumentationSvc.asLoggingStart) {\r\n instrumentationSvc.asLoggingStart(instrumentSetting.ACTIVITYNAME.ClickToDownloadAllResultsInGrid);\r\n }\r\n }\r\n\r\n downloadErrors(e) {\r\n const id = this.getDataId(e);\r\n\r\n this.download(id, 'OfflineConversionErrorResultFile');\r\n if (instrumentationSvc.asLoggingStart) {\r\n instrumentationSvc.asLoggingStart(instrumentSetting.ACTIVITYNAME.ClickToDownloadErrorsOnlyInGrid);\r\n }\r\n }\r\n\r\n downloadInputFile(e) {\r\n const id = this.getDataId(e);\r\n\r\n this.download(id, 'OfflineConversionInputFile');\r\n if (instrumentationSvc.asLoggingStart) {\r\n instrumentationSvc.asLoggingStart(instrumentSetting.ACTIVITYNAME.ClickToDownloadInputFileInGrid);\r\n }\r\n }\r\n\r\n download(identifier, type) {\r\n const url = _.template(downloadUrlTemplate)({\r\n identifier,\r\n type,\r\n });\r\n\r\n odata.get(url).bind(this)\r\n .then((data) => {\r\n downloadService.download(data);\r\n })\r\n .catch((err) => {\r\n this.trigger('error:system', _.extend({\r\n Url: url,\r\n }, _.pick(err, 'readyState', 'responseText', 'status', 'statusText'),\r\n _.pick(err.headers, 'x-ms-requestid', 'x-ms-trackingid')));\r\n });\r\n }\r\n\r\n getDataId(e) {\r\n return $(e.target).attr('data-id');\r\n }\r\n\r\n}\r\n","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (data, getIconClass, getMediaUrl) {pug_html = pug_html + \"\\u003Cdiv class=\\\"appListItem\\\"\\u003E\";\nif (!!data.MediaUrl) {\npug_html = pug_html + \"\\u003Cimg\" + (\" class=\\\"appListIcon\\\"\"+pug.attr(\"src\", getMediaUrl(data), true, true)) + \"\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"appListIcon\",getIconClass(data)], [false,true]), false, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"appListItem-text\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = data.AppPlatform) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cbr\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = data.DisplayText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"data\" in locals_for_with?locals_for_with.data:typeof data!==\"undefined\"?data:undefined,\"getIconClass\" in locals_for_with?locals_for_with.getIconClass:typeof getIconClass!==\"undefined\"?getIconClass:undefined,\"getMediaUrl\" in locals_for_with?locals_for_with.getMediaUrl:typeof getMediaUrl!==\"undefined\"?getMediaUrl: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, i18nKeys) {pug_mixins[\"selectedItemsContainer\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"campaign-adgroup-list\\\"\\u003E\\u003Cdiv data-bind=\\\"foreach: scopes().slice(0,selectedItemsLimit)\\\"\\u003E\\u003Cdiv class=\\\"selection-item truncated\\\"\\u003E\\u003Cspan data-bind=\\\"text: adGroupName.length>0 ? campaignName + " > " + adGroupName : campaignName, attr: {title: adGroupName.length>0 ? campaignName + " > " + adGroupName : campaignName}\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"remaining-items-text\\\" data-bind=\\\"visible: scopes().length>selectedItemsLimit, text: remainingItemsText()\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-horizontal\\\"\\u003E\\u003Cdiv class=\\\"bulkedit\\\"\\u003E\\u003Cdiv class=\\\"panel\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Ch3 class=\\\"panel-title\\\" data-bind=\\\"visible: !isEditMode()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get(i18nKeys.title)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh3\\u003E\\u003Ch3 class=\\\"panel-title\\\" data-bind=\\\"visible: isEditMode()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get(i18nKeys.editTitle)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh3\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body\\\"\\u003E\\u003Cdiv class=\\\"panel-subtitle-container\\\" data-bind=\\\"visible: !isEditMode()\\\"\\u003E\";\n// iterate i18nKeys.subtitle\n;(function(){\n var $$obj = i18nKeys.subtitle;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var subTitle = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = i18n.get(subTitle)) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var subTitle = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Ch5\\u003E\" + (null == (pug_interp = i18n.get(subTitle)) ? \"\" : pug_interp) + \"\\u003C\\u002Fh5\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"campaignAdgroupSelection col-sm-3\\\" data-bind=\\\"visible: isMultiSelect && showSelection && scopes().length>0 && showEditor()\\\"\\u003E\";\npug_mixins[\"selectedItemsContainer\"]();\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"associations\\\"\\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,\"i18nKeys\" in locals_for_with?locals_for_with.i18nKeys:typeof i18nKeys!==\"undefined\"?i18nKeys: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 (OptionalDisplayTextForSingleImageAdExtensions, _TL_, i18n, i18nGlobal, isRecommendation, newI18n, readOnly) {\n\n\n\n\n\n\n\n\n\n\n\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-horizontal img-editor image-ad-extension-v2-edit\\\"\\u003E\\u003Cdiv class=\\\"imgEditor-form form-horizontal\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Clabel class=\\\"col-sm-4 control-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensions_Image_Dialog_Field_AltText_NEW')) ? \"\" : pug_interp)) + \"\\u003Ca class=\\\"helpbutton\\\" topic=\\\"pop_BA_ImageExtension_Name\\\" type=\\\"helppopup\\\" onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-8\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control text\\\"\"+pug.attr(\"placeholder\", i18n.getString('AdExtensions_Image_Editor_NameMax'), true, true)+\" type=\\\"text\\\" maxlength=\\\"35\\\" required=\\\"required\\\" data-bind=\\\"textInput: displayText, css: { error: !displayTextIsValid() }\\\"\"+pug.attr(\"aria-label\", i18n.getString('AdExtensions_Image_Dialog_Field_AltText_NEW'), true, true)+\" aria-describedby=\\\"ImgExtension_DisplayText_Error\\\"\") + \"\\u003E\\u003Cdiv\" + (\" class=\\\"error\\\"\"+\" id=\\\"ImgExtension_DisplayText_Error\\\"\"+pug.attr(\"data-bind\", 'text: !displayTextIsValid() ? \"' + (OptionalDisplayTextForSingleImageAdExtensions ? i18n.getString('AdExtensions_Image_Editor_InvalidNonoptionalDisplayText') : i18n.getString('AdExtensions_Image_Editor_InvalidAltText_PS4N')) + '\" : \"\"', true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Clabel class=\\\"col-sm-4 control-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensions_Image_Dialog_Field_Image_AltText')) ? \"\" : pug_interp)) + \"\\u003Ca class=\\\"helpbutton\\\" topic=\\\"pop_BA_ImageExtension_AltText\\\" type=\\\"helppopup\\\" onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-8\\\"\\u003E\\u003Cdiv class=\\\"span alt-text-description\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensions_Image_Editor_ImageAltTextDescription')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cinput\" + (\" class=\\\"form-control text\\\"\"+pug.attr(\"placeholder\", i18n.getString('AdExtensions_Image_Editor_ImageAltTextMax'), true, true)+\" type=\\\"text\\\" maxlength=\\\"90\\\" required=\\\"false\\\" data-bind=\\\"textInput: altText, css: { error: !altTextIsValid() }\\\"\"+pug.attr(\"aria-label\", i18n.getString('AdExtensions_Image_Dialog_Field_Image_AltText'), true, true)+\" aria-describedby=\\\"ImgExtension_AltText_Error\\\"\") + \"\\u003E\\u003Cdiv\" + (\" class=\\\"error\\\"\"+\" id=\\\"ImgExtension_AltText_Error\\\"\"+pug.attr(\"data-bind\", 'text: !altTextIsValid() ? \"' + i18n.getString('AdExtensions_Image_Editor_Invalid_ImageAltText') + '\" : \"\"', true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"extension-editor__extra\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (!isRecommendation) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Clabel class=\\\"col-sm-4 control-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensions_Image_Eligibility_Label')) ? \"\" : pug_interp)) + \"\\u003Ca class=\\\"helpbutton\\\" topic=\\\"pop_BA_ImageExtension_Eligibility\\\" type=\\\"helppopup\\\" onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-8\\\"\\u003E\\u003Cdiv class=\\\"checkbox single-eligible\\\"\\u003E\\u003Cinput class=\\\"single-eligible-checkbox\\\" type=\\\"checkbox\\\" data-bind=\\\"checked: isSingleEligible\\\" role=\\\"checkbox\\\"\\u003E\\u003Cdiv class=\\\"text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensions_Image_Eligibility_Single_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"checkbox multi-eligible\\\"\\u003E\\u003Cinput class=\\\"multi-eligible-checkbox\\\" type=\\\"checkbox\\\" data-bind=\\\"checked: isMultiEligible\\\" role=\\\"checkbox\\\"\\u003E\\u003Cdiv class=\\\"text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensions_Image_Eligibility_Multi_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"error\\\"\"+\" id=\\\"ImgExtension_Eligibility_Error\\\"\"+pug.attr(\"data-bind\", 'text: !isEligibilityValid() ? \"' + i18n.getString('AdExtensions_Image_Editor_InvalidEligibility') + '\" : \"\"', true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"scheduling\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"image-extension-image-experience\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-info\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"alert-info-inline\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensions_Created_Latency')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"visible: errorMessages() && errorMessages().length > 0\\\"\\u003E\\u003Cul data-bind=\\\"foreach:errorMessages\\\" role=\\\"alert\\\"\\u003E\\u003Cli\\u003E\\u003Cspan data-bind=\\\"html: $data\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"save-bar imgeditor-save-container\\\"\\u003E\";\nif (isRecommendation) {\npug_html = pug_html + \"\\u003Cbutton\" + (\" class=\\\"btn btn-primary\\\"\"+\" type=\\\"button\\\" data-bind=\\\"click: apply\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = newI18n.getString(_TL_('Apply'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-primary\\\" type=\\\"button\\\" data-bind=\\\"click: save\\\" aria-describedby=\\\"ImgExtension_AltText_Error ImgExtension_DestUrl_Error\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18nGlobal.getString('Button_Save')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-default\\\" type=\\\"button\\\" data-bind=\\\"click: cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18nGlobal.getString('Button_Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"OptionalDisplayTextForSingleImageAdExtensions\" in locals_for_with?locals_for_with.OptionalDisplayTextForSingleImageAdExtensions:typeof OptionalDisplayTextForSingleImageAdExtensions!==\"undefined\"?OptionalDisplayTextForSingleImageAdExtensions:undefined,\"_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,\"i18nGlobal\" in locals_for_with?locals_for_with.i18nGlobal:typeof i18nGlobal!==\"undefined\"?i18nGlobal:undefined,\"isRecommendation\" in locals_for_with?locals_for_with.isRecommendation:typeof isRecommendation!==\"undefined\"?isRecommendation:undefined,\"newI18n\" in locals_for_with?locals_for_with.newI18n:typeof newI18n!==\"undefined\"?newI18n:undefined,\"readOnly\" in locals_for_with?locals_for_with.readOnly:typeof readOnly!==\"undefined\"?readOnly:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (OptionalDisplayTextForSingleImageAdExtensions, i18n, i18nGlobal, readOnly, systemGenerated) {\n\n\n\n\n\n\n\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-horizontal imgEditor-container-edit-ps4n image-ad-extension-v2-edit\\\"\\u003E\";\nif (systemGenerated) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"alert alert-info alert-center-align form-group\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensions_NotEditable_SystemGenerated')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"imgEditor-form form-horizontal\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Clabel class=\\\"col-sm-4 control-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensions_Image_Dialog_Field_AltText_NEW')) ? \"\" : pug_interp)) + \"\\u003Ca class=\\\"helpbutton\\\" topic=\\\"pop_BA_ImageExtension_Name\\\" type=\\\"helppopup\\\" onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-8\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control text\\\"\"+pug.attr(\"placeholder\", i18n.getString('AdExtensions_Image_Editor_NameMax'), true, true)+\" type=\\\"text\\\" maxlength=\\\"35\\\" required=\\\"required\\\" data-bind=\\\"textInput: displayText, css: { error: !displayTextIsValid() }\\\"\"+pug.attr(\"aria-label\", i18n.getString('AdExtensions_Image_Dialog_Field_AltText_NEW'), true, true)+\" aria-describedby=\\\"ImgExtension_DisplayText_Error\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\\u003Cdiv class=\\\"error\\\" id=\\\"ImgExtension_DisplayText_Error\\\" data-bind=\\\"visible: !displayTextIsValid()\\\"\\u003E\" + (pug.escape(null == (pug_interp = OptionalDisplayTextForSingleImageAdExtensions ? i18n.getString('AdExtensions_Image_Editor_InvalidNonoptionalDisplayText') : i18n.getString('AdExtensions_Image_Editor_InvalidAltText_PS4N')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Clabel class=\\\"col-sm-4 control-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensions_Image_Dialog_Field_Image_AltText')) ? \"\" : pug_interp)) + \"\\u003Ca class=\\\"helpbutton\\\" topic=\\\"pop_BA_ImageExtension_AltText\\\" type=\\\"helppopup\\\" onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-8\\\"\\u003E\\u003Cdiv class=\\\"span alt-text-description\\\"\\u003E\" + (pug.escape(null == (pug_interp = systemGenerated ? i18n.getString('AdExtensions_Image_Editor_ImageAltTextDescriptionForSystemGenerated') : i18n.getString('AdExtensions_Image_Editor_ImageAltTextDescription')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cinput\" + (\" class=\\\"form-control text\\\"\"+pug.attr(\"placeholder\", i18n.getString('AdExtensions_Image_Editor_ImageAltTextMax'), true, true)+\" type=\\\"text\\\" maxlength=\\\"90\\\" required=\\\"false\\\" data-bind=\\\"textInput: altText, css: { error: !altTextIsValid() }\\\"\"+pug.attr(\"aria-label\", i18n.getString('AdExtensions_Image_Dialog_Field_Image_AltText'), true, true)+\" aria-describedby=\\\"ImgExtension_AltText_Error\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\\u003Cdiv\" + (\" class=\\\"error\\\"\"+\" id=\\\"ImgExtension_AltText_Error\\\"\"+pug.attr(\"data-bind\", 'text: !altTextIsValid() ? \"' + i18n.getString('AdExtensions_Image_Editor_Invalid_ImageAltText') + '\" : \"\"', true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\" data-bind=\\\"visible: description() && description().length > 0\\\"\\u003E\\u003Clabel class=\\\"control-label col-sm-4\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensions_Image_Dialog_Field_Description')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-8\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control text\\\"\"+pug.attr(\"placeholder\", i18n.getString('AdExtensions_Image_Editor_DescriptionMax'), true, true)+\" type=\\\"text\\\" maxlength=\\\"100\\\" data-bind=\\\"value: description, valueUpdate: "input"\\\"\"+pug.attr(\"aria-label\", i18n.getString('AdExtensions_Image_Dialog_Field_Description'), true, true)+pug.attr(\"disabled\", true, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"extension-editor__extra\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Clabel class=\\\"col-sm-4 control-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensions_Image_Eligibility_Label')) ? \"\" : pug_interp)) + \"\\u003Ca class=\\\"helpbutton\\\" topic=\\\"pop_BA_ImageExtension_Eligibility\\\" type=\\\"helppopup\\\" onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-8\\\"\\u003E\\u003Cdiv class=\\\"checkbox single-eligible\\\"\\u003E\\u003Cinput\" + (\" class=\\\"single-eligible-checkbox\\\"\"+\" type=\\\"checkbox\\\" data-bind=\\\"checked: isSingleEligible\\\" role=\\\"checkbox\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\\u003Cdiv class=\\\"text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensions_Image_Eligibility_Single_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"checkbox multi-eligible\\\"\\u003E\\u003Cinput\" + (\" class=\\\"multi-eligible-checkbox\\\"\"+\" type=\\\"checkbox\\\" data-bind=\\\"checked: isMultiEligible\\\" role=\\\"checkbox\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\\u003Cdiv class=\\\"text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensions_Image_Eligibility_Multi_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"error\\\"\"+\" id=\\\"ImgExtension_Eligibility_Error\\\"\"+pug.attr(\"data-bind\", 'text: !isEligibilityValid() ? \"' + i18n.getString('AdExtensions_Image_Editor_InvalidEligibility') + '\" : \"\"', true, true)+\" role=\\\"alert\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"scheduling\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"image-extension-image-experience\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert alert-info form-group\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"alert-info-inline\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdExtensions_Edited_Latency')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"visible: errorMessages() && errorMessages().length > 0\\\"\\u003E\\u003Cul data-bind=\\\"foreach:errorMessages\\\" role=\\\"alert\\\"\\u003E\\u003Cli\\u003E\\u003Cspan data-bind=\\\"html: $data\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"save-bar form-group imgeditor-save-container\\\"\\u003E\\u003Cbutton\" + (\" class=\\\"btn btn-primary\\\"\"+\" type=\\\"button\\\" data-bind=\\\"click: save\\\"\"+pug.attr(\"disabled\", readOnly, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18nGlobal.getString('Button_Save')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default\\\" type=\\\"button\\\" data-bind=\\\"click: cancel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18nGlobal.getString('Button_Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"OptionalDisplayTextForSingleImageAdExtensions\" in locals_for_with?locals_for_with.OptionalDisplayTextForSingleImageAdExtensions:typeof OptionalDisplayTextForSingleImageAdExtensions!==\"undefined\"?OptionalDisplayTextForSingleImageAdExtensions: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,\"readOnly\" in locals_for_with?locals_for_with.readOnly:typeof readOnly!==\"undefined\"?readOnly:undefined,\"systemGenerated\" in locals_for_with?locals_for_with.systemGenerated:typeof systemGenerated!==\"undefined\"?systemGenerated: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 (convertCurrencyCode, data) {pug_html = pug_html + \"\\u003Cdiv class=\\\"itemTemplate-text\\\"\\u003E\\u003Cul\\u003E\";\n// iterate data.TableRows\n;(function(){\n var $$obj = data.TableRows;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var tableRow = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cli class=\\\"price-adextension-item\\\" style=\\\"text-overflow: ellipsis;overflow: hidden;\\\"\\u003E\\u003Ca\" + (\" class=\\\"price-adextension-header\\\"\"+pug.attr(\"href\", tableRow.FinalUrls[0], true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = tableRow.Header) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' - ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"price-adextension-description\\\"\\u003E\" + (pug.escape(null == (pug_interp = tableRow.Description + ' ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"price-adextension-price-info\\\"\\u003E\" + (pug.escape(null == (pug_interp = convertCurrencyCode(tableRow.CurrencyCode) + tableRow.Price) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var tableRow = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cli class=\\\"price-adextension-item\\\" style=\\\"text-overflow: ellipsis;overflow: hidden;\\\"\\u003E\\u003Ca\" + (\" class=\\\"price-adextension-header\\\"\"+pug.attr(\"href\", tableRow.FinalUrls[0], true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = tableRow.Header) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' - ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"price-adextension-description\\\"\\u003E\" + (pug.escape(null == (pug_interp = tableRow.Description + ' ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"price-adextension-price-info\\\"\\u003E\" + (pug.escape(null == (pug_interp = convertCurrencyCode(tableRow.CurrencyCode) + tableRow.Price) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\nif (data.moreString) {\npug_html = pug_html + \"\\u003Cli class=\\\"price-adextension-more-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = data.moreString) ? \"\" : pug_interp)) + \"\\u003C\\u002Fli\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"convertCurrencyCode\" in locals_for_with?locals_for_with.convertCurrencyCode:typeof convertCurrencyCode!==\"undefined\"?convertCurrencyCode:undefined,\"data\" in locals_for_with?locals_for_with.data:typeof data!==\"undefined\"?data:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value.$total.text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, isShowDisclaimerBannerEnabled) {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[\"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[\"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[\"koCharactersRemaining\"] = pug_interp = function(item, id){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"remaining-hint help-block\\\"\\u003E\\u003Cspan\" + (pug.attr(\"data-bind\", 'text:' + item + '.char_rem', true, true)+pug.attr(\"id\", id ? id : item + '_CharactersRemaining', true, true)+\" role=\\\"status\\\" aria-live=\\\"polite\\\"\") + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_mixins[\"koErrors\"]();\npug_html = pug_html + \"\\u003Cdiv class=\\\"adgroup-settings-page\\\"\\u003E\\u003Cdiv class=\\\"adgroup-settings-container\\\" data-bind=\\\"visible: dataLoaded\\\"\\u003E\\u003C!--ko ifnot: isNewUI()--\\u003E\\u003Ch3 class=\\\"type-bold\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('AdGroupSetting_SectionTitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\\u003Chr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003Cdiv class=\\\"adgroup-settings form-horizontal\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Ch5 class=\\\"adgroup-settings__name-label col-sm-2 control-label\\\"\\u003E\\u003Clabel id=\\\"AdGroupSettings_AdGroup_Name_Label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('AdGroup_Label_Name')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"]('pop_BA_CampaignCreate_Keywords_AdGroupName', i18n.get('AdGroup_Label_Name'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cinput class=\\\"name form-control\\\" data-bind=\\\"value: Name, valueUpdate: "input", css: {"validation-error": !Name.isValid()}\\\" type=\\\"text\\\" aria-labelledby=\\\"AdGroupSettings_AdGroup_Name_Label\\\" aria-describedby=\\\"Name_CharactersRemaining\\\"\\u003E\";\npug_mixins[\"koCharactersRemaining\"]('Name');\npug_html = pug_html + \"\\u003Cdiv class=\\\"clear\\\"\\u003E\";\npug_mixins[\"koValidationError\"]('Name');\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: shouldShowAdGroupType--\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Ch5 class=\\\"adgroup-settings__adgroup-type-label col-sm-2 control-label\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('AdGroupType_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"]('pop_BA_DSA_AdGroupType', i18n.get('AdGroupType_Label'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"col-sm-4 adgroup-type\\\" data-bind=\\\"text: adGroupTypeString\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko if: enableLanguageSelection()--\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Ch5 class=\\\"adgroup-settings__language-selector-label col-sm-2 control-label\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Campaign_Language')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"]('pop_BA_Settings_Language', i18n.get('LanguageLabelText'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"col-sm-4 adgroup-language\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko if: !hideLanguage() && !enableLanguageSelection()--\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Ch5 class=\\\"adgroup-settings__language-label col-sm-2 control-label\\\"\\u003E\\u003Clabel\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Campaign_Language')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\npug_mixins[\"popupHelp\"]('pop_BA_AdGroup_Settings_Language', i18n.get('LanguageLabelText'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fh5\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\\u003Cdiv class=\\\"adgroup-settings__language form-control-static\\\" data-bind=\\\"text: languageString\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003Cdiv class=\\\"bidding-strategy__container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"cpg-adgroup-type__container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: supportCashbackSettings--\\u003E\\u003Cdiv class=\\\"cashback-settings-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Cdiv class=\\\"advanced-settings-section\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"bid-block\\\"\\u003E\\u003Ch3 class=\\\"type-bold\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SectionTitle_SetBids')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\\u003Chr\\u003E\\u003Cdiv class=\\\"bid-section\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"cpg-bid-section__container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ch3 class=\\\"adgroup-targets__label type-bold\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SectionTitle_AdgroupTargets')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\\u003Chr\\u003E\\u003Cdiv class=\\\"adgroup-targets clearfix\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (isShowDisclaimerBannerEnabled) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"alert alert-info form-group page-alert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\" + (null == (pug_interp = i18n.get('Targeting_Disclaimer')) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C!--ko if: showHighLatencyAlert()--\\u003E\\u003Cdiv class=\\\"alert alert-info form-group page-alert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('TargetingSettings_OnSave_HighLantency_Text')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003Cdiv class=\\\"alert alert-info form-group page-alert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('AdGroups_Latency')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"save-bar form-group\\\"\\u003E\\u003C!--ko ifnot: isNewUI()--\\u003E\\u003Cinput\" + (\" class=\\\"btn-save btn btn-primary\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.get('Button_Save'), true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"btn-cancel btn btn-default\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.get('Button_Cancel'), true, true)) + \"\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko if: isNewUI()--\\u003E\\u003Cbutton\" + (\" class=\\\"btn-save btn btn-primary\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.get('Button_Save'), true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Button_Save')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton\" + (\" class=\\\"btn-cancel btn btn-default\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.get('Button_Cancel'), true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Button_Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C!--\\u002Fko--\\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,\"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 (column, containerType, label, name, popupId) {pug_mixins[\"popupHelp\"] = pug_interp = function(popupId, ariaLabelContext, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nvar templateString = (i18n && i18n.get && i18n.get('Click to learn more about {{item}}')) || (i18n && i18n.getString && i18n.getString('Click to learn more about {{item}}')) || null\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"helpbutton\\\"\"+\" type=\\\"helppopup\\\" role=\\\"button\\\"\"+pug.attr(\"topic\", popupId, true, true)+pug.attr(\"data-help\", true, true, true)+\" onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"aria-label\", templateString ? templateString.replace('{{item}}', ariaLabelContext) : ariaLabelContext, true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"grid-header-\" + containerType], [true]), false, true)) + \"\\u003E\";\nif (column.$orderby) {\nif (column.$orderby.dir > 0) {\npug_html = pug_html + \"\\u003Cspan class=\\\"grid-asc\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan class=\\\"grid-des\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\n}\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"grid-header-text\\\"\"+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"aria-label\", label, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\nif (popupId) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"grid-subheader-text\\\"\\u003E\";\npug_mixins[\"popupHelp\"](popupId);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"column\" in locals_for_with?locals_for_with.column:typeof column!==\"undefined\"?column:undefined,\"containerType\" in locals_for_with?locals_for_with.containerType:typeof containerType!==\"undefined\"?containerType:undefined,\"label\" in locals_for_with?locals_for_with.label:typeof label!==\"undefined\"?label:undefined,\"name\" in locals_for_with?locals_for_with.name:typeof name!==\"undefined\"?name: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 (Status, i18n, noHover) {var statusIconLabel\nif (i18n) {\nswitch (Status){\ncase 'Deleted':\nstatusIconLabel = i18n.getString('EntityStatus_Deleted')\n break;\ncase 'Paused':\nstatusIconLabel = i18n.getString('EntityStatus_Paused')\n break;\ndefault:\nstatusIconLabel = i18n.getString('EntityStatus_Active')\n break;\n}\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"grid-cell\\\"\\u003E\";\nif (!Status) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusHeader_icon clickable\\\" tabindex=\\\"0\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (Status === 'Deleted') {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statusicondisplay\\\"\"+pug.attr(\"aria-label\", statusIconLabel, true, true)) + \"\\u003E\\u003Cdiv class=\\\"statusDeleted_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (noHover) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statusicondisplay\\\"\"+pug.attr(\"aria-label\", statusIconLabel, true, true)) + \"\\u003E\";\nif (Status === 'Paused') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusPaused_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusEnabled_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statuschangehover statusicondisplay clickable\\\"\"+\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", statusIconLabel, true, true)) + \"\\u003E\";\nif (Status === 'Paused') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusPaused_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusEnabled_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"Status\" in locals_for_with?locals_for_with.Status:typeof Status!==\"undefined\"?Status:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"noHover\" in locals_for_with?locals_for_with.noHover:typeof noHover!==\"undefined\"?noHover: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 (DeliveryTemplates, isForVNext) {if (isForVNext) {\nvar statusTypeClass = DeliveryTemplates.status === 'error' ? 'status-error' : (DeliveryTemplates.status === 'warning' ? 'status-warning' : 'status-info')\nvar needsPopup = DeliveryTemplates.hasGlyph || DeliveryTemplates.status === 'error' || DeliveryTemplates.status === 'warning'\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"delivery-info\",`${needsPopup ? 'trigger-popup' : ''}`], [false,true]), false, true)) + \"\\u003E\";\nif ((DeliveryTemplates.status === 'error')) {\npug_html = pug_html + \"\\u003Cspan\" + (\" class=\\\"status-icon iconba iconba-ErrorBadge\\\"\"+pug.attr(\"title\", DeliveryTemplates.i18n.getString('DeliveryStatusIcon_Tooltip_Error'), true, true)+pug.attr(\"aria-label\", DeliveryTemplates.i18n.getString('DeliveryStatusIcon_Tooltip_Error'), true, true)+\" tabindex=\\\"0\\\" role=\\\"button\\\"\") + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nelse\nif ((DeliveryTemplates.status === 'warning')) {\npug_html = pug_html + \"\\u003Cspan\" + (\" class=\\\"status-icon iconba iconba-Warning\\\"\"+pug.attr(\"title\", DeliveryTemplates.i18n.getString('DeliveryStatusIcon_Tooltip_Warning'), true, true)+pug.attr(\"aria-label\", DeliveryTemplates.i18n.getString('DeliveryStatusIcon_Tooltip_Warning'), true, true)+\" tabindex=\\\"0\\\" role=\\\"button\\\"\") + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nif (DeliveryTemplates.hasGlyph) {\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"status-column\",\"clickable\",statusTypeClass], [false,false,true]), false, true)+\" tabindex=\\\"0\\\" role=\\\"button\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = DeliveryTemplates.i18n.getString(DeliveryTemplates.deliveryStatus)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"status-column\",statusTypeClass], [false,true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = DeliveryTemplates.i18n.getString(DeliveryTemplates.deliveryStatus)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"layout-marked-element status-row\\\"\\u003E\\u003Cdiv class=\\\"mark-container\\\"\\u003E\";\nif ((DeliveryTemplates.status === 'error')) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"status-icon\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"status_error spritedimagealign\\\"\"+pug.attr(\"title\", DeliveryTemplates.i18n.getString('DeliveryStatusIcon_Tooltip_Error'), true, true)+pug.attr(\"aria-label\", DeliveryTemplates.i18n.getString('DeliveryStatusIcon_Tooltip_Error'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif ((DeliveryTemplates.status === 'warning')) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"status-icon\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"status_warning spritedimagealign\\\"\"+pug.attr(\"title\", DeliveryTemplates.i18n.getString('DeliveryStatusIcon_Tooltip_Warning'), true, true)+pug.attr(\"aria-label\", DeliveryTemplates.i18n.getString('DeliveryStatusIcon_Tooltip_Warning'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"decorated-element\\\"\\u003E\\u003Cdiv class=\\\"status-column\\\"\\u003E\" + (pug.escape(null == (pug_interp = DeliveryTemplates.i18n.getString(DeliveryTemplates.deliveryStatus)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif ((DeliveryTemplates.hasGlyph)) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"glyph-container\\\"\\u003E\\u003Cdiv class=\\\"status-image\\\"\\u003E\\u003Cdiv class=\\\"status_icon gridDetailsImage spritedimagealign clickable\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"DeliveryTemplates\" in locals_for_with?locals_for_with.DeliveryTemplates:typeof DeliveryTemplates!==\"undefined\"?DeliveryTemplates:undefined,\"isForVNext\" in locals_for_with?locals_for_with.isForVNext:typeof isForVNext!==\"undefined\"?isForVNext: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, isMMAForRetailEnabled, isNotAudienceCampaign, isShowDisclaimerBannerEnabled, title) {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[\"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\"]();\npug_html = pug_html + \"\\u003Cdiv class=\\\"campaign-settings-page\\\"\\u003E\\u003Cdiv class=\\\"setting-container\\\" data-bind=\\\"visible: dataLoaded\\\"\\u003E\\u003C!--ko ifnot: isNewUI()--\\u003E\\u003Ch3 class=\\\"type-bold\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\\u003Chr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003Cdiv class=\\\"campaign-update\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"budget-settings\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (isNotAudienceCampaign) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"advanced-settings-section\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (isMMAForRetailEnabled) {\npug_html = pug_html + \"\\u003Ch3 class=\\\"type-bold\\\" data-bind=\\\"visible: hasStore\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('ShoppingCampaign_ShoppingSetting_SectionTitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\npug_mixins[\"popupHelp\"]('pop_BA_MMA_Enable', i18n.get('ShoppingCampaign_ShoppingSetting_SectionTitle'), i18n);\npug_html = pug_html + \"\\u003C\\u002Fh3\\u003E\\u003Chr data-bind=\\\"visible: hasStore\\\"\\u003E\\u003Cdiv class=\\\"shopping-settings\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Ch3 class=\\\"type-bold\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SectionTitle_CampaignTargets')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\\u003Chr\\u003E\\u003Cdiv class=\\\"campaign-targets clearfix\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003C!--ko ifnot: isNewUI()--\\u003E\\u003Ch3 class=\\\"type-bold\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('SectionTitle_AdvancedSettings')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\\u003Chr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003Cdiv class=\\\"advanced-settings-section\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"conversion-goal-section\\\"\\u003E\\u003Ch3 class=\\\"type-bold\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Campaign_Goals_Section_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh3\\u003E\" + (pug.escape(null == (pug_interp = i18n.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\\u003Cdiv class=\\\"conversion-goal-selection\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: showGoalRemoveAlert()--\\u003E\\u003Cdiv class=\\\"alert alert-warning form-group page-alert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Campaign_Conversion_Goal_Remove_Warning')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E \\u003Ca target=\\\"_blank\\\" href=\\\"https:\\u002F\\u002Fhelp.ads.microsoft.com\\u002F#apex\\u002Fads\\u002Fen\\u002F60138\\u002F2\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('LearnMoreLinkText')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\";\nif (isShowDisclaimerBannerEnabled && isNotAudienceCampaign) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"alert alert-info form-group page-alert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\" + (null == (pug_interp = i18n.get('Targeting_Disclaimer')) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C!--ko if: showHighLatencyAlert()--\\u003E\\u003Cdiv class=\\\"alert alert-info form-group page-alert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('TargetingSettings_OnSave_HighLantency_Text')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003Cdiv class=\\\"alert alert-info form-group page-alert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Campaigns_Latency')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cbutton class=\\\"btn btn-primary btn-save\\\" type=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Button_Save')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-cancel\\\" type=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Button_Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isMMAForRetailEnabled\" in locals_for_with?locals_for_with.isMMAForRetailEnabled:typeof isMMAForRetailEnabled!==\"undefined\"?isMMAForRetailEnabled:undefined,\"isNotAudienceCampaign\" in locals_for_with?locals_for_with.isNotAudienceCampaign:typeof isNotAudienceCampaign!==\"undefined\"?isNotAudienceCampaign:undefined,\"isShowDisclaimerBannerEnabled\" in locals_for_with?locals_for_with.isShowDisclaimerBannerEnabled:typeof isShowDisclaimerBannerEnabled!==\"undefined\"?isShowDisclaimerBannerEnabled:undefined,\"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_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=\\\"campaign-targeting\\\"\\u003E\\u003Cdiv class=\\\"location-targets-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"adschedule-targets-container\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Clabel class=\\\"control-label col-sm-2\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('ColumnName_AdSchedule')) ? \"\" : pug_interp)));\npug_mixins[\"popupHelp\"]('pop_BA_Targeting_DayTime', i18n.getString('ColumnName_AdSchedule'), i18n);\npug_html = pug_html + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-10\\\"\\u003E\\u003Cdiv class=\\\"ad-schedule\\\"\\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 (model, view) {pug_html = pug_html + \"\\u003Ch3\\u003E\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = model.title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\\u003C\\u002Fh3\\u003E\\u003Cdiv class=\\\"popover-body\\\"\\u003E\";\nif (model.subtitle) {\npug_html = pug_html + \"\\u003Cp\\u003E\" + (pug.escape(null == (pug_interp = model.subtitle) ? \"\" : pug_interp)) + \"\\u003Ca\" + (\" class=\\\"HelpTopic\\\"\"+\" query=\\\"app54544\\\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"aria-label\", view.i18n.getString('LearnMore'), true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('LearnMore')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fp\\u003E\";\n}\npug_html = pug_html + \"\\u003Cul class=\\\"account-list text-nowrap\\\"\\u003E\";\nif (model.value.Accounts) {\n// iterate model.value.Accounts\n;(function(){\n var $$obj = model.value.Accounts;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var account = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cli\\u003E\" + (pug.escape(null == (pug_interp = account.Name) ? \"\" : pug_interp)) + \" (\" + (pug.escape(null == (pug_interp = account.Number) ? \"\" : pug_interp)) + \") - \\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('Ad_Account')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var account = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cli\\u003E\" + (pug.escape(null == (pug_interp = account.Name) ? \"\" : pug_interp)) + \" (\" + (pug.escape(null == (pug_interp = account.Number) ? \"\" : pug_interp)) + \") - \\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('Ad_Account')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\n}\nif (model.value.Customers) {\n// iterate model.value.Customers\n;(function(){\n var $$obj = model.value.Customers;\n if ('number' == typeof $$obj.length) {\n for (var pug_index1 = 0, $$l = $$obj.length; pug_index1 < $$l; pug_index1++) {\n var customer = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cli\\u003E\" + (pug.escape(null == (pug_interp = customer.Name) ? \"\" : pug_interp)) + \" (\" + (pug.escape(null == (pug_interp = customer.Number) ? \"\" : pug_interp)) + \") - \\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('Manager_Account')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index1 in $$obj) {\n $$l++;\n var customer = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cli\\u003E\" + (pug.escape(null == (pug_interp = customer.Name) ? \"\" : pug_interp)) + \" (\" + (pug.escape(null == (pug_interp = customer.Number) ? \"\" : pug_interp)) + \") - \\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('Manager_Account')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\n}\nif (model.footerText) {\npug_html = pug_html + \"\\u003Cp\\u003E\" + (pug.escape(null == (pug_interp = model.footerText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fp\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"model\" in locals_for_with?locals_for_with.model:typeof model!==\"undefined\"?model:undefined,\"view\" in locals_for_with?locals_for_with.view:typeof view!==\"undefined\"?view: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, label, labelledBy, text, topic) {var attrs = { query: 'help:' + topic, href: 'javascript:void(0)' };\ntext = text || i18n.getString('ConversionTracking_Learn_More');\nif (labelledBy) {\nattrs['aria-labelledby'] = labelledBy + ' ' + labelledBy + '__self';\nattrs['id'] = labelledBy + '__self';\n} else {\nattrs['aria-label'] = label || text;\n}\npug_html = pug_html + \"\\u003Ca\" + (pug.attrs(pug.merge([{\"class\": \"HelpTopic\"},attrs]), true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"label\" in locals_for_with?locals_for_with.label:typeof label!==\"undefined\"?label:undefined,\"labelledBy\" in locals_for_with?locals_for_with.labelledBy:typeof labelledBy!==\"undefined\"?labelledBy:undefined,\"text\" in locals_for_with?locals_for_with.text:typeof text!==\"undefined\"?text:undefined,\"topic\" in locals_for_with?locals_for_with.topic:typeof topic!==\"undefined\"?topic: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 (a11yId, customExtensionEntranceText, helpLinkTemplate, i18n, isActiveTrackingStatus, isAudiencesLibrary, isClarityGoal, isInPilot, isNoRecentConversions, isTrackingStatusColumn, isUETAllTagsDashboard, isUETDashboardEnabled, isUETDashboardPhase2Enabled, isUnverifiedOrInactive, testType, trackingStatusMessagePrefix, value) {pug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"tracking-status-popover\\\"\"+pug.attr(\"id\", a11yId('tracking-status-popover'), true, true)) + \"\\u003E\\u003Cdiv class=\\\"tracking-status-popover__message\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString(trackingStatusMessagePrefix + value)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\nif ((testType === 'DestinationGoal' || testType === 'EventGoal' || (isInPilot && testType === 'ProductConversionGoal') || (isUETDashboardPhase2Enabled && isUETAllTagsDashboard && isUnverifiedOrInactive) || (isUETDashboardEnabled && isAudiencesLibrary && isUnverifiedOrInactive)) && (value !== 'InactiveDueToTagUnavailable')) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"entrances\\\"\\u003E\";\nif (isTrackingStatusColumn && isUETDashboardEnabled && isUnverifiedOrInactive) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"entrance-button-default uetdashboard\\\"\\u003E\\u003Cspan class=\\\"entrance-text-default\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_Goals_ViewDashboard')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"entrance-button extension\\\"\\u003E\\u003Cspan class=\\\"entrance-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = (customExtensionEntranceText || i18n.getString('UnifiedEventTracking_Goals_TestInAdvisorExtension'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (isTrackingStatusColumn && isUETDashboardEnabled && isNoRecentConversions) {\nif (!isClarityGoal) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"entrance-button-default extension\\\"\\u003E\\u003Cspan class=\\\"entrance-text-default\\\"\\u003E\" + (pug.escape(null == (pug_interp = (customExtensionEntranceText || i18n.getString('UnifiedEventTracking_Goals_TestInAdvisorExtension'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"entrance-button uetdashboard\\\"\\u003E\\u003Cspan class=\\\"entrance-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_Goals_ViewDashboard')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (isTrackingStatusColumn && isUETDashboardPhase2Enabled && isUnverifiedOrInactive) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"entrance-button-default uetdashboard\\\"\\u003E\\u003Cspan class=\\\"entrance-text-default\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_Goals_ViewDashboard')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"entrance-button extension\\\"\\u003E\\u003Cspan class=\\\"entrance-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = (customExtensionEntranceText || i18n.getString('UnifiedEventTracking_Goals_TestInAdvisorExtension'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nif (!isActiveTrackingStatus(value)) {\nvar helpLink = helpLinkTemplate({\ni18n: i18n,\ntopic: 'app51206',\nlabelledBy: a11yId('tracking-status-popover'),\ntext: i18n.getString('UETTags_Grid_Troubleshoot'),\n});\npug_html = pug_html + \"\\u003Cdiv class=\\\"tracking-status-popover__troubleshoot\\\"\\u003E\" + (null == (pug_interp = helpLink) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"a11yId\" in locals_for_with?locals_for_with.a11yId:typeof a11yId!==\"undefined\"?a11yId:undefined,\"customExtensionEntranceText\" in locals_for_with?locals_for_with.customExtensionEntranceText:typeof customExtensionEntranceText!==\"undefined\"?customExtensionEntranceText:undefined,\"helpLinkTemplate\" in locals_for_with?locals_for_with.helpLinkTemplate:typeof helpLinkTemplate!==\"undefined\"?helpLinkTemplate:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isActiveTrackingStatus\" in locals_for_with?locals_for_with.isActiveTrackingStatus:typeof isActiveTrackingStatus!==\"undefined\"?isActiveTrackingStatus:undefined,\"isAudiencesLibrary\" in locals_for_with?locals_for_with.isAudiencesLibrary:typeof isAudiencesLibrary!==\"undefined\"?isAudiencesLibrary:undefined,\"isClarityGoal\" in locals_for_with?locals_for_with.isClarityGoal:typeof isClarityGoal!==\"undefined\"?isClarityGoal:undefined,\"isInPilot\" in locals_for_with?locals_for_with.isInPilot:typeof isInPilot!==\"undefined\"?isInPilot:undefined,\"isNoRecentConversions\" in locals_for_with?locals_for_with.isNoRecentConversions:typeof isNoRecentConversions!==\"undefined\"?isNoRecentConversions:undefined,\"isTrackingStatusColumn\" in locals_for_with?locals_for_with.isTrackingStatusColumn:typeof isTrackingStatusColumn!==\"undefined\"?isTrackingStatusColumn:undefined,\"isUETAllTagsDashboard\" in locals_for_with?locals_for_with.isUETAllTagsDashboard:typeof isUETAllTagsDashboard!==\"undefined\"?isUETAllTagsDashboard:undefined,\"isUETDashboardEnabled\" in locals_for_with?locals_for_with.isUETDashboardEnabled:typeof isUETDashboardEnabled!==\"undefined\"?isUETDashboardEnabled:undefined,\"isUETDashboardPhase2Enabled\" in locals_for_with?locals_for_with.isUETDashboardPhase2Enabled:typeof isUETDashboardPhase2Enabled!==\"undefined\"?isUETDashboardPhase2Enabled:undefined,\"isUnverifiedOrInactive\" in locals_for_with?locals_for_with.isUnverifiedOrInactive:typeof isUnverifiedOrInactive!==\"undefined\"?isUnverifiedOrInactive:undefined,\"testType\" in locals_for_with?locals_for_with.testType:typeof testType!==\"undefined\"?testType:undefined,\"trackingStatusMessagePrefix\" in locals_for_with?locals_for_with.trackingStatusMessagePrefix:typeof trackingStatusMessagePrefix!==\"undefined\"?trackingStatusMessagePrefix: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 (appendLearnMoreLink, view) {pug_html = pug_html + \"\\u003Cdiv class=\\\"form-inline\\\"\\u003E\\u003Cdiv class=\\\"summarypage-bifreshtime\\\"\\u003E\" + (null == (pug_interp = view.stampNotes) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"summarypage-bifreshtime\\\"\\u003E\";\nif (view.accountTimeZoneText) {\npug_html = pug_html + (null == (pug_interp = appendLearnMoreLink(view.i18n.get('MRCAccredited_Label') + ' ' + view.accountTimeZoneText, 'ext54483')) ? \"\" : pug_interp);\n}\nelse {\npug_html = pug_html + (null == (pug_interp = view.i18n.get('MRCAccredited_Label')) ? \"\" : pug_interp);\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"appendLearnMoreLink\" in locals_for_with?locals_for_with.appendLearnMoreLink:typeof appendLearnMoreLink!==\"undefined\"?appendLearnMoreLink:undefined,\"view\" in locals_for_with?locals_for_with.view:typeof view!==\"undefined\"?view: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 (isForVNext, unassigned) {if (isForVNext) {\npug_html = pug_html + \"\\u003Cspan class=\\\"goals-grid__category-detail cell-with-popover clickable\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = unassigned) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"pull-left goals-grid__category-unassigned\\\"\\u003E\" + (pug.escape(null == (pug_interp = unassigned) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"pull-right btn btn-flat goals-grid__category-detail\\\"\\u003E\\u003Cdiv class=\\\"category-image status-image status_icon clickable\\\" type=\\\"button\\\" tabindex=\\\"0\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"isForVNext\" in locals_for_with?locals_for_with.isForVNext:typeof isForVNext!==\"undefined\"?isForVNext:undefined,\"unassigned\" in locals_for_with?locals_for_with.unassigned:typeof unassigned!==\"undefined\"?unassigned: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 (a11yId, popupMessage) {pug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"goal-read-only-popover\\\"\"+pug.attr(\"id\", a11yId('goal-read-only-popover'), true, true)) + \"\\u003E\\u003Cdiv class=\\\"goal-read-only-popover__message\\\"\\u003E\" + (pug.escape(null == (pug_interp = popupMessage) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"a11yId\" in locals_for_with?locals_for_with.a11yId:typeof a11yId!==\"undefined\"?a11yId:undefined,\"popupMessage\" in locals_for_with?locals_for_with.popupMessage:typeof popupMessage!==\"undefined\"?popupMessage: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 (a11yId, i18n) {var message = i18n.getString('ConversionGoals_Grid_SmartGoal_Popover_Msg')\nvar learnMoreI18n = i18n.getString('ConversionGoals_Grid_SmartGoal_Popover_Learnmore')\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"goal-type-popover\\\"\"+pug.attr(\"id\", a11yId('goal-type-popover'), true, true)) + \"\\u003E\\u003Cdiv class=\\\"goal-type-popover__message\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = message) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E \\u003Ca\" + (\" class=\\\"HelpTopic\\\"\"+\" href=\\\"https:\\u002F\\u002Fhelp.ads.microsoft.com\\u002F#apex\\u002Fads\\u002Fen\\u002F52099\\u002F-1\\\" query=\\\"hlp_BA_CONC_SmartGoals.htm\\\"\"+pug.attr(\"aria-label\", learnMoreI18n, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = learnMoreI18n) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"a11yId\" in locals_for_with?locals_for_with.a11yId:typeof a11yId!==\"undefined\"?a11yId: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 (ariaLabel, isForVNext, value) {if (isForVNext) {\npug_html = pug_html + \"\\u003Cspan class=\\\"goals-grid__smart-goal cell-with-popover clickable\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"pull-left goals-grid__smart-goal text-left\\\"\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"pull-right btn btn-flat goals-grid__smart-goal\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"status_icon clickable\\\"\"+\" type=\\\"button\\\" tabindex=\\\"0\\\"\"+pug.attr(\"aria-label\", ariaLabel, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"ariaLabel\" in locals_for_with?locals_for_with.ariaLabel:typeof ariaLabel!==\"undefined\"?ariaLabel:undefined,\"isForVNext\" in locals_for_with?locals_for_with.isForVNext:typeof isForVNext!==\"undefined\"?isForVNext: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 (ariaLabel, goalSuggestionAriaLabel, isAutoGoal, isForVNext, isNonSupportGoal, isReadOnly, name, showGoalSuggestion) {if (showGoalSuggestion && !isAutoGoal && !isNonSupportGoal) {\npug_html = pug_html + \"\\u003Cspan\" + (\" class=\\\"conversion-goals-light-bulb clickable\\\"\"+\" type=\\\"button\\\" tabindex=\\\"0\\\"\"+pug.attr(\"aria-label\", goalSuggestionAriaLabel, true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nif (isForVNext && isAutoGoal) {\npug_html = pug_html + \"\\u003Cspan\" + (\" class=\\\"goals-grid__goal-isAutoGoal clickable\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"aria-label\", ariaLabel, true, true)+\" role=\\\"button\\\" tabindex=\\\"0\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse\nif (isForVNext && !isReadOnly && !isNonSupportGoal) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"edit-goal-link\\\"\"+\" href=\\\"javascript:;\\\"\"+pug.attr(\"aria-label\", ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse\nif (isReadOnly) {\npug_html = pug_html + \"\\u003Cspan class=\\\"goals-grid__goal-readonly cell-with-popover clickable\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse\nif (isNonSupportGoal) {\npug_html = pug_html + \"\\u003Cspan class=\\\"goals-grid__goal-nonsupportGoal cell-with-popover clickable\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp));\n}}.call(this,\"ariaLabel\" in locals_for_with?locals_for_with.ariaLabel:typeof ariaLabel!==\"undefined\"?ariaLabel:undefined,\"goalSuggestionAriaLabel\" in locals_for_with?locals_for_with.goalSuggestionAriaLabel:typeof goalSuggestionAriaLabel!==\"undefined\"?goalSuggestionAriaLabel:undefined,\"isAutoGoal\" in locals_for_with?locals_for_with.isAutoGoal:typeof isAutoGoal!==\"undefined\"?isAutoGoal:undefined,\"isForVNext\" in locals_for_with?locals_for_with.isForVNext:typeof isForVNext!==\"undefined\"?isForVNext:undefined,\"isNonSupportGoal\" in locals_for_with?locals_for_with.isNonSupportGoal:typeof isNonSupportGoal!==\"undefined\"?isNonSupportGoal:undefined,\"isReadOnly\" in locals_for_with?locals_for_with.isReadOnly:typeof isReadOnly!==\"undefined\"?isReadOnly:undefined,\"name\" in locals_for_with?locals_for_with.name:typeof name!==\"undefined\"?name:undefined,\"showGoalSuggestion\" in locals_for_with?locals_for_with.showGoalSuggestion:typeof showGoalSuggestion!==\"undefined\"?showGoalSuggestion: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 (isForVNext, value) {if (isForVNext) {\npug_html = pug_html + \"\\u003Cspan class=\\\"goals-grid__revenue-detail cell-with-popover clickable\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"pull-left goals-grid__revenue-unassigned text-left\\\"\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"pull-right btn btn-flat goals-grid__revenue-detail\\\"\\u003E\\u003Cdiv class=\\\"revenue-image status-image status_icon clickable\\\" type=\\\"button\\\" tabindex=\\\"0\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"isForVNext\" in locals_for_with?locals_for_with.isForVNext:typeof isForVNext!==\"undefined\"?isForVNext: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 (isReadOnly, s$i18n, value) {var i18nValue = s$i18n.value('Goal', 'Status', value)\npug_html = pug_html + \"\\u003Cdiv class=\\\"grid-cell\\\"\\u003E\";\nif (!isReadOnly) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statuschangehover statusicondisplay clickable\\\"\"+\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"title\", i18nValue, true, true)+pug.attr(\"aria-label\", i18nValue, true, true)) + \"\\u003E\";\nif (value === 'Removed') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusPaused_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusEnabled_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\nif (value === 'Removed') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusPaused_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusEnabled_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"isReadOnly\" in locals_for_with?locals_for_with.isReadOnly:typeof isReadOnly!==\"undefined\"?isReadOnly:undefined,\"s$i18n\" in locals_for_with?locals_for_with.s$i18n:typeof s$i18n!==\"undefined\"?s$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 (IsUETDashboardEnabled, i18n, value) {pug_html = pug_html + \"\\u003Cdiv class=\\\"goals-grid-tag-id-cell\\\"\\u003E\";\nif (IsUETDashboardEnabled) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"link-tag-id\\\"\"+\" href=\\\"javascript:void(0)\\\"\"+pug.attr(\"id\", 'tagId4Tags_' + value, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = value + ' ') ? \"\" : pug_interp)) + \"\\u003Ca\" + (\" class=\\\"link-tag\\\"\"+\" href=\\\"javascript:void(0)\\\"\"+pug.attr(\"id\", 'tagId4Tags_' + value, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('ConversionGoals_Grid_LinkViewTag')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"IsUETDashboardEnabled\" in locals_for_with?locals_for_with.IsUETDashboardEnabled:typeof IsUETDashboardEnabled!==\"undefined\"?IsUETDashboardEnabled: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 (isActiveTrackingStatus, isForVNext, s$i18n, value) {var statusText = s$i18n.value('Goal', 'TrackingStatus', value);\nvar statusClass = 'uet-tags-grid__tracking-status--' + (isActiveTrackingStatus(value) ? 'active' : 'inactive');\nif (isForVNext) {\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"tracking-status\",\"cell-with-popover\",\"uet-tags-grid__tracking-status-detail\",\"clickable\",statusClass], [false,false,false,false,true]), false, true)+\" tabindex=\\\"0\\\" role=\\\"button\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = statusText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"pull-left\",\"uet-tags-grid__tracking-status\",statusClass], [false,false,true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = statusText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"pull-right btn btn-flat uet-tags-grid__tracking-status-detail\\\"\\u003E\\u003Cdiv class=\\\"status-image status_icon clickable\\\" type=\\\"button\\\" tabindex=\\\"0\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"isActiveTrackingStatus\" in locals_for_with?locals_for_with.isActiveTrackingStatus:typeof isActiveTrackingStatus!==\"undefined\"?isActiveTrackingStatus:undefined,\"isForVNext\" in locals_for_with?locals_for_with.isForVNext:typeof isForVNext!==\"undefined\"?isForVNext:undefined,\"s$i18n\" in locals_for_with?locals_for_with.s$i18n:typeof s$i18n!==\"undefined\"?s$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 (a11yId, popupMessage) {pug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"unassigned-category-popover\\\"\"+pug.attr(\"id\", a11yId('unassigned-category-popover'), true, true)) + \"\\u003E\\u003Cdiv class=\\\"unassigned-category-popover__message\\\"\\u003E\" + (pug.escape(null == (pug_interp = popupMessage) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"a11yId\" in locals_for_with?locals_for_with.a11yId:typeof a11yId!==\"undefined\"?a11yId:undefined,\"popupMessage\" in locals_for_with?locals_for_with.popupMessage:typeof popupMessage!==\"undefined\"?popupMessage: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 (a11yId, i18n) {pug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"unassigned-revenue-popover\\\"\"+pug.attr(\"id\", a11yId('unassigned-revenue-popover'), true, true)) + \"\\u003E\\u003Cdiv class=\\\"unassigned-revenue-popover__message\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('ConversionGoals_Grid_Revenue_Unassigned_Msg_1')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('ConversionGoals_Grid_Revenue_Unassigned_Msg_2_bold')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('ConversionGoals_Grid_Revenue_Unassigned_Msg_3')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('ConversionGoals_Grid_Revenue_Unassigned_Msg_4_bold')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('ConversionGoals_Grid_Revenue_Unassigned_Msg_5')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('ConversionGoals_Grid_Revenue_Unassigned_Msg_6_bold')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('ConversionGoals_Grid_Revenue_Unassigned_Msg_7')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"a11yId\" in locals_for_with?locals_for_with.a11yId:typeof a11yId!==\"undefined\"?a11yId: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 (errorRows, hasAcrossAllAccountsOfflineConversionGoal, hasError, hasUploadError, i18n, isNewUI, successRows, totalRows, type) {pug_mixins[\"resultsView\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"upload-results\\\"\\u003E\\u003Cdiv class=\\\"upload-result-row\\\"\\u003E\\u003Cdiv class=\\\"status_success spritedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"result-row\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_HistoryGrid_ChangesCount', { count: totalRows })) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"upload-result-row\\\"\\u003E\\u003Cdiv class=\\\"status_success spritedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"result-row\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_HistoryGrid_SuccessCount', { count: successRows })) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"upload-result-row\\\"\\u003E\\u003Cdiv class=\\\"status_error spritedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"result-row\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_HistoryGrid_ErrorCount', { count: errorRows })) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"changeview\\\"\\u003E\";\nif (type === 'preview') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Ch3 class=\\\"type-bold panel-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Import_ImportPreview_TableTitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh3\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\";\nif (isNewUI) {\npug_mixins[\"resultsView\"]();\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"bingadsgrid preview-grid\\\"\\u003E\\u003Cdiv class=\\\"grid-table\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (hasError) {\npug_html = pug_html + \"\\u003Ca class=\\\"link-errors\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_DownloadErrorsOnly_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"row action-bar\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Cbutton class=\\\"btn btn-primary btn-apply\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_ApplyChanges_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-discard\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_Discard_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (type === 'scheduled-preview') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Ch3 class=\\\"type-bold panel-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Import_ImportPreview_TableTitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh3\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\";\nif (isNewUI) {\npug_mixins[\"resultsView\"]();\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"bingadsgrid preview-grid\\\"\\u003E\\u003Cdiv class=\\\"grid-table\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"row action-bar\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\";\nif (!hasUploadError) {\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-primary btn-results\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_DownloadAllResults_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\nif (hasError) {\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-default btn-errors\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_DownloadErrorsOnly_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\n}\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-default btn-close\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_Close_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (type === 'review') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Ch3 class=\\\"type-bold panel-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_ChangesViewTitle_AppliedChanges')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh3\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\";\nif (isNewUI) {\npug_mixins[\"resultsView\"]();\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"bingadsgrid changes-grid\\\"\\u003E\\u003Cdiv class=\\\"grid-table\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (hasAcrossAllAccountsOfflineConversionGoal) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Ch4\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_OfflineConversionGoalCurrencyCustomScope')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh4\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"row action-bar\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Cbutton class=\\\"btn btn-primary btn-results\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_DownloadAllResults_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\nif (hasError) {\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-default btn-errors\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_DownloadErrorsOnly_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\npug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-default btn-close\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_Close_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"errorRows\" in locals_for_with?locals_for_with.errorRows:typeof errorRows!==\"undefined\"?errorRows:undefined,\"hasAcrossAllAccountsOfflineConversionGoal\" in locals_for_with?locals_for_with.hasAcrossAllAccountsOfflineConversionGoal:typeof hasAcrossAllAccountsOfflineConversionGoal!==\"undefined\"?hasAcrossAllAccountsOfflineConversionGoal:undefined,\"hasError\" in locals_for_with?locals_for_with.hasError:typeof hasError!==\"undefined\"?hasError:undefined,\"hasUploadError\" in locals_for_with?locals_for_with.hasUploadError:typeof hasUploadError!==\"undefined\"?hasUploadError:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isNewUI\" in locals_for_with?locals_for_with.isNewUI:typeof isNewUI!==\"undefined\"?isNewUI:undefined,\"successRows\" in locals_for_with?locals_for_with.successRows:typeof successRows!==\"undefined\"?successRows:undefined,\"totalRows\" in locals_for_with?locals_for_with.totalRows:typeof totalRows!==\"undefined\"?totalRows:undefined,\"type\" in locals_for_with?locals_for_with.type:typeof type!==\"undefined\"?type:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {if (value.isPending) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"grid-content-container\\\"\\u003E\\u003Cdiv class=\\\"action_pending\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.i18n.getString('UnifiedEventTracking_UploadConversions_PendingText')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (value.shouldDisable) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"results\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (value.hasError) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"results-row\\\"\\u003E\\u003Ca\" + (\" class=\\\"btn-results\\\"\"+pug.attr(\"data-id\", value.resultsId, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.i18n.getString('UnifiedEventTracking_UploadConversions_DownloadAll_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Ca\" + (\" class=\\\"btn-errors\\\"\"+pug.attr(\"data-id\", value.errorsId, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.i18n.getString('UnifiedEventTracking_UploadConversions_DownloadErrors_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"btn-results\\\"\"+pug.attr(\"data-id\", value.resultsId, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.i18n.getString('UnifiedEventTracking_UploadConversions_DownloadResults_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\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 (value) {pug_html = pug_html + \"\\u003Cdiv class=\\\"grid-content-container\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.datetime) ? \"\" : pug_interp)) + \"\\u003Cbr\\u003E\" + (pug.escape(null == (pug_interp = value.user) ? \"\" : pug_interp)) + \"\\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 (value) {if (value.isPending) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"information-popup-container\\\"\\u003E\\u003Cdiv class=\\\"status-row\\\"\\u003E\\u003Cdiv class=\\\"mark-container\\\"\\u003E\\u003Cdiv class=\\\"status-icon\\\"\\u003E\\u003Cdiv class=\\\"status_pending spritedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"decorated-element\\\"\\u003E\\u003Cdiv class=\\\"status-column\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.i18n.getString('UnifiedEventTracking_UploadConversions_HistoryGrid_Processing')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (!value.isCompleted) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"grid-content-container\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.status) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"information-popup-container\\\"\\u003E\\u003Cdiv class=\\\"status-row\\\"\\u003E\\u003Cdiv class=\\\"mark-container\\\"\\u003E\\u003Cdiv class=\\\"status-icon\\\"\\u003E\\u003Cdiv class=\\\"status_success spritedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"decorated-element\\\"\\u003E\\u003Cdiv class=\\\"status-column\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.i18n.getString('UnifiedEventTracking_UploadConversions_HistoryGrid_SuccessCount', { count: value.successCount })) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (value.errorCount > 0) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"status-row\\\"\\u003E\\u003Cdiv class=\\\"mark-container\\\"\\u003E\\u003Cdiv class=\\\"status-icon\\\"\\u003E\\u003Cdiv class=\\\"status_error spritedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"decorated-element\\\"\\u003E\\u003Cdiv class=\\\"status-column\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.i18n.getString('UnifiedEventTracking_UploadConversions_HistoryGrid_ErrorCount', { count: value.errorCount })) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\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 (value) {if (value.shouldDisable) {\npug_html = pug_html + \"\\u003Cspan class=\\\"inactive-grey-bg\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"btn-file clickable\\\"\"+pug.attr(\"data-id\", value.identifier, true, true)+\" tabindex=\\\"0\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\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;pug_html = pug_html + \"\\u003Cdiv class=\\\"history-grid bingadsgrid\\\"\\u003E\\u003Cdiv class=\\\"grid-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"grid-noresult grid-nodata-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (Object, i18n, value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UETTags_Event_Grid_ParametersPopupMessage')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cbr\\u003E\";\n// iterate Object.keys(value)\n;(function(){\n var $$obj = Object.keys(value);\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var key = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = key + ': ' + value[key]) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var key = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = key + ': ' + value[key]) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n}.call(this,\"Object\" in locals_for_with?locals_for_with.Object:typeof Object!==\"undefined\"?Object: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, val) {if (val !== '-')\n{\nlet vals = val.split(',')\nif (vals.length > 2)\n{\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = vals[0]) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' and ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"uet-tags-test-table__parameters-tag\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = `${vals.length - 1}`) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"uet-tags-test-table__parameters-tag\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UETTags_Event_Grid_ColumnOthers')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse if (vals.length === 2)\n{\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = vals[0]) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' and ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"uet-tags-test-table__parameters-tag\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = `${vals.length - 1}`) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"uet-tags-test-table__parameters-tag\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UETTags_Event_Grid_ColumnOther')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse\n{\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = val) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\n}}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"val\" in locals_for_with?locals_for_with.val:typeof val!==\"undefined\"?val: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 + \"\\u003Ca class=\\\"uet-tags-dashboard-grid__data-view-tag\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UETTags_Event_Grid_ColumnExportData')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\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, value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UETTags_Event_Grid_ParametersPopupMessage')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cbr\\u003E\";\n// iterate value\n;(function(){\n var $$obj = value;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var val = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = val) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var val = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = val) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n}.call(this,\"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, value) {if (value.length > 2) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value[0]) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' and ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"uet-tags-dashboard-grid__parameters-tag\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.length-1) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"uet-tags-dashboard-grid__parameters-tag\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UETTags_Event_Grid_ColumnOthers')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse\nif (value.length === 2) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value[0]) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' and ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"uet-tags-dashboard-grid__parameters-tag\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.length-1) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"uet-tags-dashboard-grid__parameters-tag\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UETTags_Event_Grid_ColumnOther')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse\nif (value.length === 1) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value[0]) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '-') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}}.call(this,\"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=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"form-label-container col-sm-4\\\"\\u003E\\u003Clabel class=\\\"control-label\\\" id=\\\"Form-SharedLibrary-Tag-Sharing-Label\\\" for=\\\"Form-SharedLibrary-Tag-Sharing\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('SharedLibrary_Scope_Label_Sharing')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"helpbutton\\\" type=\\\"helppopup\\\" topic=\\\"pop_BA_UET_Hierarchies_Sharing\\\" href=\\\"javascript:void(0)\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-8\\\"\\u003E\\u003Cdiv class=\\\"manageRemarketingListContainer\\\" id=\\\"Form-SharedLibrary-Tag-Sharing\\\" aria-labelledby=\\\"Form-SharedLibrary-Tag-Sharing-Label\\\" aria-required=\\\"false\\\"\\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, isEdit) {pug_html = pug_html + \"\\u003Cdiv class=\\\"panel uet-tags-grid__tag-creator\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\" role=\\\"heading\\\" aria-level=\\\"2\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (isEdit) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_Tags_EditTagPanelTitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_Tags_CreateTagPanelTitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-body uet-tags__form-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\"\\u003E\\u003Cbutton class=\\\"btn btn-primary btn-tag-create-save\\\" type=\\\"button\\\" data-analyticsid=\\\"omniture-UET-create-tag-save\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_Create')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-tag-create-cancel\\\" type=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isEdit\" in locals_for_with?locals_for_with.isEdit:typeof isEdit!==\"undefined\"?isEdit: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, manageScopePermission) {pug_html = pug_html + \"\\u003Ca class=\\\"uet-tags-grid__action-view-tag\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UETTags_Grid_LinkViewTag')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\nif (manageScopePermission) {\npug_html = pug_html + \"\\u003Ca class=\\\"uet-tags-grid__action-manage-sharing-scope\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UETTags_Grid_ManageScope_Action')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"manageScopePermission\" in locals_for_with?locals_for_with.manageScopePermission:typeof manageScopePermission!==\"undefined\"?manageScopePermission: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, disabled, value) {if (disabled) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"uet-tags-grid__link-audience\\\"\"+\" href=\\\"javascript:void(0)\\\"\"+pug.attr(\"aria-label\", ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}}.call(this,\"ariaLabel\" in locals_for_with?locals_for_with.ariaLabel:typeof ariaLabel!==\"undefined\"?ariaLabel:undefined,\"disabled\" in locals_for_with?locals_for_with.disabled:typeof disabled!==\"undefined\"?disabled: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 (className, isForVNext, text) {if (isForVNext) {\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"cell-with-popover\",\"clickable\",className + '-detail'], [false,false,true]), false, true)+\" tabindex=\\\"0\\\" role=\\\"button\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"status_icon\",\"clickable\",\"gridDetailsImage\",className + '-detail'], [false,false,false,true]), false, true)+\" type=\\\"button\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\") + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}}.call(this,\"className\" in locals_for_with?locals_for_with.className:typeof className!==\"undefined\"?className:undefined,\"isForVNext\" in locals_for_with?locals_for_with.isForVNext:typeof isForVNext!==\"undefined\"?isForVNext:undefined,\"text\" in locals_for_with?locals_for_with.text:typeof text!==\"undefined\"?text:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (ariaLabel, disabled, value) {if (disabled) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"uet-tags-grid__link-goals\\\"\"+\" href=\\\"javascript:void(0)\\\"\"+pug.attr(\"aria-label\", ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}}.call(this,\"ariaLabel\" in locals_for_with?locals_for_with.ariaLabel:typeof ariaLabel!==\"undefined\"?ariaLabel:undefined,\"disabled\" in locals_for_with?locals_for_with.disabled:typeof disabled!==\"undefined\"?disabled: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 (IsUETDashboardPhase2Enabled, ariaLabel, isEditable, isReadOnly, name) {if (isEditable && !isReadOnly) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"edit-tag-link\\\"\"+\" href=\\\"javascript:;\\\"\"+pug.attr(\"aria-label\", ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\nif (IsUETDashboardPhase2Enabled) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"pull-right span edit-tag-btn\\\"\\u003E\\u003Ci class=\\\"glyphicon glyphicon-pencil\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse\nif (isReadOnly) {\npug_html = pug_html + \"\\u003Cspan class=\\\"tag-grid__tag-readonly cell-with-popover clickable\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp));\n}}.call(this,\"IsUETDashboardPhase2Enabled\" in locals_for_with?locals_for_with.IsUETDashboardPhase2Enabled:typeof IsUETDashboardPhase2Enabled!==\"undefined\"?IsUETDashboardPhase2Enabled:undefined,\"ariaLabel\" in locals_for_with?locals_for_with.ariaLabel:typeof ariaLabel!==\"undefined\"?ariaLabel:undefined,\"isEditable\" in locals_for_with?locals_for_with.isEditable:typeof isEditable!==\"undefined\"?isEditable:undefined,\"isReadOnly\" in locals_for_with?locals_for_with.isReadOnly:typeof isReadOnly!==\"undefined\"?isReadOnly:undefined,\"name\" in locals_for_with?locals_for_with.name:typeof name!==\"undefined\"?name:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (IsUETDashboardEnabled, value) {pug_html = pug_html + \"\\u003Cdiv class=\\\"grid-tag-id-cell\\\"\\u003E\";\nif (IsUETDashboardEnabled) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"link-tag-id\\\"\"+\" href=\\\"javascript:void(0)\\\"\"+pug.attr(\"id\", 'tagId4Tags_' + value, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"IsUETDashboardEnabled\" in locals_for_with?locals_for_with.IsUETDashboardEnabled:typeof IsUETDashboardEnabled!==\"undefined\"?IsUETDashboardEnabled: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 (a11yId, popupMessage) {pug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"tag-read-only-popover\\\"\"+pug.attr(\"id\", a11yId('tag-read-only-popover'), true, true)) + \"\\u003E\\u003Cdiv class=\\\"tag-read-only-popover__message\\\"\\u003E\" + (pug.escape(null == (pug_interp = popupMessage) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"a11yId\" in locals_for_with?locals_for_with.a11yId:typeof a11yId!==\"undefined\"?a11yId:undefined,\"popupMessage\" in locals_for_with?locals_for_with.popupMessage:typeof popupMessage!==\"undefined\"?popupMessage: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 (isActiveTrackingStatus, isForVNext, s$i18n, value) {var statusText = s$i18n.value('Tag', 'TrackingStatus', value);\nvar statusClass = 'uet-tags-grid__tracking-status--' + (isActiveTrackingStatus(value) ? 'active' : 'inactive');\nif (isForVNext) {\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"tracking-status\",\"cell-with-popover\",\"uet-tags-grid__tracking-status-detail\",\"clickable\",statusClass], [false,false,false,false,true]), false, true)+\" tabindex=\\\"0\\\" role=\\\"button\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = statusText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"pull-left\",\"uet-tags-grid__tracking-status\",statusClass], [false,false,true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = statusText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"pull-right btn btn-flat uet-tags-grid__tracking-status-detail\\\"\\u003E\\u003Cdiv class=\\\"status-image status_icon clickable\\\" type=\\\"button\\\" tabindex=\\\"0\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"isActiveTrackingStatus\" in locals_for_with?locals_for_with.isActiveTrackingStatus:typeof isActiveTrackingStatus!==\"undefined\"?isActiveTrackingStatus:undefined,\"isForVNext\" in locals_for_with?locals_for_with.isForVNext:typeof isForVNext!==\"undefined\"?isForVNext:undefined,\"s$i18n\" in locals_for_with?locals_for_with.s$i18n:typeof s$i18n!==\"undefined\"?s$i18n:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;"],"names":["defaultIconClasses","getIconClass","extension","AppPlatform","getMediaUrl","mediaUrl","MediaUrl","adExtensionConfig","config","get","AdExtension","AppExtensionIconBaseUrl","indexOf","$url","universalItemTemplate","arg0","rawItemTemplate","extend","i18n","window","globalLegacyI18n","ViewModel","_createClass","options","_this","_classCallCheck","this","scope","ko","campaignId","adGroupId","adgroupId","scopes","entitySelectorService","i18nKeys","showCampaigns","entityType","showAdGroups","showSelector","maximumSelectedEntities","predicates","campaign","predicate","CampaignType","adgroup","operand","operator","value","toggleEditor","showEditor","scopeContext","isMultiSelect","showSelection","subtitle","multiSelectSubtitle","selectedItemsLimit","maxDisplayedEntities","remainingItemsText","campaignAdgroupLimitText","count","length","isEditMode","selectedCampaigns","selectedAdgroups","subscribe","newCampaign","_","Id","campaignName","Name","name","adGroupName","current","newCampaignId","newAdgroup","Campaign","newAdgroupId","CampaignAdgroupSelectorI18n","campaignFilter","adgroupNoHotelFilter","View","_Backbone$View","_callSuper","arguments","_inherits","key","editorOptions","undefined","defaultOptions","editTitle","editLabel","IsBulkAdExtensionAssociationAllowed","extensionCampaignTypeCheck","scopeService","getScope","ko_model","Number","editor","AssociationEditor","hasSubTitle","showErrorsInline","adgroupName","isNewEntitySelector","show","_this2","$el","html","templateNew","selectorView","proxy","createCampaignView","i18nHotelCenter","render","createCampaignAdgroupView","currentCampaignFilter","currentAdgroupnFilter","pageContext","Permissions","dynamic","PerformanceMaxCampaigns","pmaxSupportedExtentions","adExtensionType","UnifiedAppAds","appSupportedExtensions","HotelCampaign","hotelSupportedExtentions","concat","CampaignSelectorProxy","onSelectDone","selectedCampaign","jsData","jsdata","edmCampaign","withUiBlocker","uiBlockContainer","withUiBlock","isMultiMode","optionalCampaignFilter","optionalAdgroupFilter","getCampaignSelectorView","AdgroupSelectorProxy","selectedAdGroup","getAdgroupSelectorView","CampaignAdgroupSelectorProxy","onCampaignSelect","onAdGroupSelect","onMultiSelectedDone","getCampaignAdgroupSelectorView","$","append","el","find","newScope","trigger","newScopes","on","param","isEdit","undelegateEvents","empty","remove","Backbone","i18nGlobal","ImageAdExtensionSchema","globalLegacySchema","odataToken","odataPath","odataRootUrl","permissions","IsAADUser","PageContext","_permissions$dynamic","_permissions$dynamic2","OptionalDisplayTextForSingleImageAdExtensions","ImageFittingForImageAnnotation","ImageFittingForImageExtension","ImageFittingExlcudeMAE","ImageFittingUnifiedImageROI","IsTransparentImageAnnotationEnabled","oDataConfig","oDataPath","oDataToken","ExtensionEditor","_backbone$View","perfMarker","PerfMarkerFactory","createMarker","autoEnd","willInit","createNew","isRecommendation","recommendation","AltText","DisplayText","Description","DestinationUrl","ImageUrl","MobileFinalUrls","FinalUrls","UrlCustomParameters","TrackingUrlTemplate","Images","Scheduling","EligibleLayout","SingleAndMulti","_objectSpread","systemGenerated","SourceType","readOnly","Unset","Single","viewModel","_createViewModel","extensionsRepo","ImageAdExtensionsRepository","schema","isFinal","url","upgradedUrlView","UpgradedUrl","finalMobileUrl","trackingTemplate","finalUrlSuffix","FinalUrlSuffix","customParameters","urlOptionsEnabled","isMobilePreferred","placeholderEnabled","useUrlOptionsV2","landingPageUrlRequired","showUurlTestTool","destinationURLDisabled","subscribeToUrlChanged","callback","urlEditor","setFullUrl","fullUrl","setError","errorStr","schedulingView","SchedulingView","labelClass","controlClass","model","imageList","isImageFittingEnabled","aid","targetAccountId","state","cid","AdvertiserCustomerID","promise","Promise","getAssetEnhancementSettings","then","result","AssetAIEnhancementOptout","assetEnhancementSettingsPromise","imageListLoadPromise","dataModelUtil","getImageListFromMTImagesAsync","hasImageUrl","getAutoCroppedImages","originalImageToCrop","Width","Height","Text","IdString","Src","ImageSourceStr","StockImages","ThumbnailURL","WebsiteImages","ImageURL","isRecommendedImage","onImageListChanged","bind","template","creatorTemplate","editorTemplate","imageAspectRatios","newI18n","renderExtensionImagesControl","replaceWith","_this3","imagesControlOptions","odata","genericImage","image191to1","text","isForVNext","isStockPhotoEnabled","instrumentation","preferencesService","setImageControlSetText","imageControlSetText","setImageControlSetEligibleLayout","imageControlSetEligibleLayout","setImageControlsValidate","imageControlsValidate","serverContext","CurrentCustomer","CurrentAccount","Token","imagesControlNode","React","props","_jsx","ServerContext","Provider","children","ExtensionImagesControl","ReactDOM","onDisplayTextUpdated","displayText","onEligibleLayoutUpdated","eligibleLayout","imageExperienceView","_superPropGet","_this4","id","errorMessages","handleErrors","_handleErrors","existingExtension","displayTextIsValid","altTextInternal","altTextIsValid","shouldAltTextMatchDisplayText","description","destinationUrl","error","save","_add","_update","apply","applyRecommendation","newImageExtensionInfo","AlternativeText","altText","FinalURL","getValues","finalUrl","MobileURL","mobileUrl","isValid","validate","cancel","_cancel","_modelIsValid","isSingleEligible","isMultiEligible","Multi","read","isEligibilityValid","write","newValue","clearAllErrors","getImagesFromImageList","ImageIds","map","assetLink","Asset","toObject","_this5","extensionData","_getDataForSave","update","savedExtension","fetchedExtension","finally","_this6","create","newExtension","createdExtension","displayTextToValidate","trim","altTextToValidate","schedulingValid","finalUrlTestRegEx","RegExp","mobileUrlTestRegEx","urlErrors","finalUrlUrl","test","push","getString","handleApiErrors","urlViewIsValid","imagesValid","errors","errorMsgList","toString","backbone","moreCount","size","data","TableRows","slice","moreString","convertCurrencyCode","getUseTotalsPlugin","_ref$dynamic","AdExtensionsAudienceAdsTotals","PerformanceMaxCampaignsPhaseTwoCrossNetwork","showAdExtensionRejectionReasons","type","overrideAssociationType","BidataNotRequired","event","adextension","_ref","extensionId","version","args","App","cmpid","adgid","replace","queryify","_url","setUrlParameter","ajaxPost","ignoreBeforeAjax","dataType","onSuccess","Callback","onsuccessEventData","rowId","AdExtensionDeliveryStatusPopupFactory","_DeliveryStatusPopupF","_ref2","grid","_ref2$overrideEntitie","overrideEntities","_ref2$overrideAssocia","_ref2$BidataNotRequir","showAdExtensionRejectionReasonsHandler","handler","entityMap","AdGroup","getEventTargetModel","Version","DeliveryStatusPopupFactory","adextensionGridColumn","bingadsGridColumn","sortable","title","helpId","bodyClasses","property","userProperty","item","$total","userTemplate","local","totalsTemplate","SiteLinks","adGroupI18n","isNewUI","isDSAMixedModeCampaignEnabled","_ref$supportCashbackS","supportCashbackSettings","koSchema","properties","dataLoaded","hideLanguage","campaignType","AdGroupType","shouldShowAdGroupType","languageString","keyToUse","Language","adGroupTypeString","enableLanguageSelection","showHighLatencyAlert","backRouteName","isArabicEnabled","IsArabicLanguageEnabledInMultipleLanguage","isSimplifiedChineseEnabled","IsSimplifiedChineseLanguageEnabledInMultipleLanguage","isSponsoredPilotEnabled","IsSPAv2Enabled","isManualBiddingDeprecationEnabled","IsManualBiddingDeprecationEnabled","IsDSAMixedModeCampaignEnabled","adGroupScopePerfMarker","createChild","mark","router","deps","CurrentCampaign","isMSStoreAdsGAWorkflow","isMSStoreAdsCampaign","navigateToRoute","scenario","activity","adGroupSettings","dynamicPermissions","showDisclaimerBanner","isMranEcpcEnabled","isMranTroasEnabled","locationTargetsView","LocationTargetsView","level","CurrentAdGroup","popupIds","Location","showInitialUiBlocker","showPhysicalIntentView","physicalIntent","physicalIntentOptions","PeopleIn","languageLocationConnector","LanguageLocationConnector","bidView","advancedSettingsView","adDistributionView","viewmodel","useCampaignSettings","setLanguageSet","languages","adDistribution","syndEnum","BingYahooAndSearchPartners","isSyndicationAllowed","AdvancedSettingsView","nativeAdsCampaignBid","NativeBidAdjustment","nativeAdsAdgroupBid","multimediaAdsCampaignBid","MultiMediaAdBidAdjustment","multimediaAdsAdgroupBid","Languages","TimeZone","campaignSubType","isSponsoredCampaign","campaignBiddingStrategy","BiddingScheme","Type","campaignAdScheduleUseSearcherTimeZone","AdScheduleUseSearcherTimeZone","isSPBCampaign","CampaignCashback","IsPromotionsForBrands","AdDistribution","CampaignSubType","showCpgAdGroupType","Settings","BidOption","biddingStrategyView","BiddingStrategyView","biddingStrategyType","campaignBiddingStrategyType","biddingStrategyTypes","costPerSale","notShowBidView","hide","BidView","showTrafficEstimation","resetIsAutoBidding","enableArabic","enableSimplifiedChinese","withInheritOption","i18nStrings","SaveWarning","language","IsAdsGlobalizationPhase1Enabled","IsAdsGlobalizationPhase2Enabled","IsAdsGlobalizationPhase6Enabled","IsAdsGlobalizationPhase2JapanEnabled","IsDomesticSimplifiedChineseEnabled","IsAdsGlobalizationPhase9Enabled","IsAdsGlobalizationPhase9VIEnabled","languageSelector","LanguageSettingView","eventDispatcher","newLanguage","cpgAdGroupType","AdGroupBidType","cpgBidSection","CpgBidSection","adGroupTargetInfo","AudienceTargetInfo","resourceName","listenToLocationCriterion","useLocationControl","initAudienceAssociationView","campaignTargetInfo","fetchCriterions","adGroupTargetsView","AudienceAdvancedTargetSettings","viewContext","accountCurrencyCode","AccountCurrencyCode","currentCampaign","currentAdGroup","currentLevelTargetInfo","parentLevelTargetInfo","initialLoadTask","CashbackPercent","CouponsEnabled","CashbackScope","ParentLevelCashbackPercent","ParentLevelCashbackScope","ParentCouponsEnabled","cashbackSettingsView","CashbackSettings","showCashbackBudget","showEnableCashbackSettingsCheckbox","showInheritFromParentOption","isCashbackScopeReadonly","showCoupon","decimal","validateCashbackPercent","formattedValue","fromLocalToFloat","toggleCashbackPercentColumns","adScheduleView","isShowDisclaimerBannerEnabled","hideUIBlocker","uiBlocker","entitySet","AdGroups","bypassCache","queryParameters","currentAccount","Campaigns","expand","loadMap","shouldSupportCashbackSettings","mutableModel","MutableModel","context","memo","mutables","Medium","hasChanges","AdRotation","RotationType","SearchBid","ContentBid","setModel","initCashbackSettingsView","renderLanguageSelector","renderCpgAdGroupType","renderBidView","i18nNewDesign","renderBiddingStrategy","addEventListener","renderAdvancedSettings","medium","renderLocationTargets","renderAdGroupTargets","add","catch","logger","logMessage","constants","LOGCATEGORY","TRACE","LOGLEVEL","INFO","JSON","stringify","val","checkIMAReachPromise","adGroupCriterions","getLocationCriterion","changedLocationCriterions","CriterionType","hasLocationChanged","locationCriterions","getAllAdGroupLocationCriterion","IsIMAReachRepresentationPhase1Enabled","locationsInfo","getLocationsInfo","showIMAReachModal","onYes","deliveryChannel","isIMAReachModalShow","locationTargets","keepAllLocations","locations","c","Status","campaignCriterions","inheritInfo","getLocationsInfoFromCampaignCriterions","intent","adGroupTargetsData","getAllLocations","adGroupCriterionsWithoutIntent","getCampaignLocationCriterions","overrideInfo","deletedLocations","getData","adGroupTargetsCriterions","clearApiErrors","params","isCostPerSaleCampaign","advancedSettings","targets","deviceTargets","ageTargets","genderTargets","scheduling","target","AdGroupCriterions","urlOptions","netWorkOptions","adRotation","dateSettings","nativeAds","multimediaAds","adScheduleUseSearcherTimeZone","set","getIncremental","chunks","groupBy","index","Math","floor","toArray","batchedParams","reqs","batch","adapter","cacheResponse","overrideResponse","processResponse","responses","mergedAdGroupCriterions","dest","res","response","setData","logAdGroupPersonalizedOffers","signal","exclusionsUpdated","saveExtensions","summaryDataContextManager","getContext","CampaignId","AccountId","Bidding","campaign_id","adgroup_id","clear","i18nErrors","entity","adgroupErrors","handleApiErrorsForAdGroupLevel","stopListening","perfMarkerEvent","audiencesi18n","AudienceBaseColumn","_ProjectionGridBaseCo","Column","helpAriaLabel","Property","columnConversion","ProjectionGridBaseColumn","selectedCampaignId","selectedAdgroupId","campaignSettings","DataStore","findStrictCache","isEmptySelector","columns","column","headerTemplate","containerType","headerBuilder","columnInfo","isSubHeader","subColTitle","label","$orderby","dir","popupId","levelClasses","getClassesByLevel","updateTool","view","addClass","classes","join","factoryContainer","processAction","action","toolBarView","gridView","viewFactory","setMenuTitle","shouldHideToolbar","hideToolbar","once","arg","showToolbar","refresh","projection","deep","btnConfig","toolItem","Button","dropdownConfig","menuItems","items","tmpView","tmpDropdown","DropDown","isNewFeature","isAvailable","btnMenuItemConfig","ButtonMenuItem","linkAction","DividerMenuItem","headerMenuItemConfig","HeaderMenuItem","toolNameList","dependencies","definePlugin","_len","Array","_key","shift","toolItems","toolbarConfig","pluginsConfig","toolbar","container","GridToolbar","configToolItems","tmpItem","appendItems","forEach","onAttachToolbar","formatDate","date","dateUtil","format","formatDateForGridDataParameters","gridConfig","sortInfoKey","getPromise","fetchPaginationConfig","getCustomColumnsPreference","getSegPreference","spread","dateRange","queryConfig","pageSize","orderbyInfo","sortableHeader","pageable","isDataFetchManagerSource","query","dataSource","plugins","gridDataParameters","CustomColumns","DateRange","StartDate","start","EndDate","end","compared","ComparisonDateRange","gridData","edm","$call","toJSON","pagination","endDate","startDate","endDate2","startDate2","comparisonEndDate","comparisonStartDate","segType","getSegType","segmentationType","segmentTimeChecker","isTimeRangeValid","SegmentationTypes","orderby","IsColumnConversionEnabled","ColumnConversion","IsPartialConversionsEnabled","PartialConversions","selectQueryPrefix","ColumnConversionNotEnabledFeatures","setGridPreference","Entity","_ref$SegmentationType2","_slicedToArray","SegmentationType","Selection","QueryString","gridName","getGridName","queries","split","substr","getGridColumnNames","Columns","findAll","where","project","customColumn","columnConversions","getGridColumnConversions","withPartialConversion","patchedColumns","applyColumnConversions","buildColumnConversions","setSegType","setDateRangeForNewUI","Rule","_ref4","convertSelectionDateRangeToDateFilter","restoreDateFilter","_Rule$Selection","setPreferenceByReportEmailRule","ReportEmailRule","getGridPage","isForNewUI","setPreferenceByReportEmailRuleForAccountsSummary","setPreferenceByReportEmailRuleForHotelCenter","_Rule$Selection2","convertSelectionDateRangeToState","views","Summary","dateFilter","initializePreference","setPreferenceByReportEmailRuleForCampaigns","formatDateInQuery","formatDateInEntitySet","parseDate","dateString","parse","defaultComparisonColumns","events","pluginConfig","_pluginConfig$compari","comparisonColumns","originalQuery","currentDateRange","queryParams","isOdataActionSource","select","root","identifyEntitySet","navigation","source","RangeStartDate","RangeEndDate","parameters","changeEntitySet","addDateRangeToQueryParams","call","bindDateFilterChangeHandler","e","newDateRange","firstRange","secondRange","convertForComparison","range","dates","comparedStart","comparedEnd","dateRangeEquals","getCurrentDateRange","p$getCurrentDateRange","defineGridPlugin","_ref$method","method","_ref$contexts","contexts","path","putil","headers","_defineProperty","contextsToUpdate","union","legacyGridName","compact","updateContext","s$i18n","withoutColumns","names","reject","contains","getAriaLabelTextTemplate","getPerformanceMetrics","helpAriaLabelTextTemplate","_config$get","IsViewThroughConversionEnabled","IsViewThroughConversionsRevenueEnabled","_config$get$dynamic","usePartialConversions","sourceColumnName","sourceSortableProperty","targetSortableProperty","_toConsumableArray","getDeliveryStatus","DeliveryStatus","GeoCodeStatus","ret","deliveryStatus","status","GeoStatus","hasGlyph","getDeliveryColumn","isEmpty","Delivery","deliveryStatusTemplate","DeliveryTemplates","IsAppealable","getEntityColumns","statusIconColumnTemplate","pick","IsDeleted","defaults","Performance","Conversions","applyPartialConversionColumnName","getColumnChooser","choosers","appendList","blackList","clone","chain","difference","getPerformanceColumnChooser","getConversionsColumnChooser","combinedBlackList","getSharedColumns","filter","performanceMetrics","biColumns","getSharedCustomizedColumns","pluck","each","ariaLabel","verification","isNumber","customizedTemplate","parentName","BaseCampaignName","associationType","isDeleted","legacyGlobalI18n","schemaI18nCampaign","appConfig","stateManager","getCreatedBy","getFrequency","getExpression","getNotificationType","getEditLink","jsdataCampaign","preferenceService","sessionStore","getFilters","cacheService","dataContextManager","customColumnPreference","noData","getDateTime","offset","getTimezoneOffset","offsetStr","kendo","abs","taskItem","modifiedBy","ModifiedBy","modifiedAt","Date","ModifiedAt","datetime","Cron","cronString","timeZone","cronParser","hourString","hour","year","month","dayOfMonth","frequency","ONCE","toLocaleDateString","MONTHLY","WEEKLY","dayOfWeek","DAILY","HOURLY","TimeZoneId","DateRangePreset","toLowerCase","NotificationType","ruleAuthoringOptions","emailOptions","OnChangeOrError","tempModel","JobModel","desc","odataParser","getRuleSelection","summary","Actions","isEmailRule","getJobDescription","actionName","State","getStartTime","jobModel","getDescription","targetTab","queryParts","getScopeCallback","routeArgs","routeUrl","gridFilterSerializer","fromDescription","entityObj","FilterExpressions","toQueryString","ID","navigate","router_new","legacy_tab_to_url","getSelection","vnextInfo","selection","getJobSelection","scopeCallback","idBased","header","footer","isForVnext","entityToObject","entityKey","keys","values","getCampaignLink","getUiNextCampaignLink","_scope$values","getAdgroupLink","AdGroupId","AdTitle","AdType","subPath","getUiNextAdgroupLink","_scope$values2","entityKeyMap","getEntityKeyField","getEntityWrapper","entityKeyField","bulkEditResult","EntityKey","entityName","moreTitleHint","dictionary","AdHeadlines","getTitlePreviewFromJson","getMoreTitleHintFromJson","CampaignName","adGroup","AdgroupName","getEntity","keyword","Keyword","ad","normalizeErrorMsg","origin","msg","includes","splitStr","charAt","toUpperCase","splitErrorMsg","getStatusText","mapEntityErrors","success","HasError","Errors","attemptedValue","attempted","formatEntityValue","Changes","getCopyPasteStatusText","getResultValue","isNew","isCopyPaste","campaignUrl","campaignAriaLabel","adGroupUrl","adGroupAriaLabel","getOldValue","getNewValue","hasStore","isStoreValid","showGoalRemoveAlert","isEnabledDynamicFeedCampaign","IsEnabledForDynamicFeedCampaign","isCPGForBSCEnabled","IsCPGForBSCEnabled","isBSCSmartImportEnabled","IsBSCSmartImportEnabled","isPredictiveMatchingEnabled","PredictiveMatching","campaignScopeAllSettingsPerfMarker","isMMAForRetailEnabled","IsMMAForRetailEnabled","ccJsData","activityLogger","providerId","setting","ProductCollectionAccounts","store","Value","isAudienceDynamicFeedBasedCampaign","editMode","shouldShowPlaceholderStoreIfExists","campaignProductScopeId","CampaignCriterionsData","hasAnyStores","IsGlobalStore","IsCoOpStore","checkIfStoreValid","shoppingSettingsView","ShoppingSettingsView","isSponsoredSettings","isSearchCampaign","isMMAForRetailWorkflow","uid","urlQueryStringObject","Product","isNotAudienceCampaign","audienceTargetInfo","loadCriterionsTask","campaignTargetsView","createView","loadBudgetTask","budget","isSPA","isCPS","PersonalizedOffersEnabled","MonthlyBudget","goalSelectionView","GoalSelectorView","realI18n","isHideSaveBar","turnOnRemoveAlert","shouldShowWarning","checked","CampaignSettings","CreateView","showLanguage","usePanel","renderConversionGoalSelection","isEnablePersonalizedOffersChecked","onEnablePersonalizedOfferCheckboxChange","onCashbackPercentChange","selectedBidStrategy","onSelectedBidStrategyChange","renderCampaignTargets","getProductData","renderShoppingSettings","hasFilteredProducts","CampaignProductScope","destroy","parentId","advancedSettingsValues","AutoTargetingEnabled","criterion","hasValidStore","isFeedProductFilterEnabled","isFeedFilterChecked","FeedLabel","SalesCountry","getProductScope","ProviderId","campaignTargetsData","campaignTargetsCriterions","CampaignCriterions","automatedCTA","vanityUrlSettings","CampaignConversionGoalAssociations","convertToMTFormat","allLocations","getParams","getAllLocationCriterions","mergedCampaignCriterions","createScenarioAndActivity","scenarioName","activityName","showBudgetBidCampaignNotifications","campaignItemList","oldBudget","Budget","newBudget","oldBidStrategy","newBidStrategy","logCampaignPersonalizedOffers","saveTargetingSource","destroyProductScoeIfNeed","Amount","toFixed","trace","DomainName","Source","LanguageCode","DynamicDescriptionEnabled","tasks","_this5$createView$get","getLocationRecommendationsStatus","targetedLocationRecommendations","dismissedLocationRecommendations","httpUtils","odataOptions","host","BingAdsAdInsightWebApiUri","SessionId","customerId","accountId","recommendationType","channel","applyRecommendations","recommendations","dismissRecommendations","processItems","hasOwnProperty","subEntity","campaignErrors","scrollToErrors","scrollUtils","errorElements","campaignGoalSeletorView","currentLevel","adScheduleModel","showDateSettings","needRestore","eventDelegator","criterionLoader","campaignTargets","formattedDayTimeRanges","formatLoadedCriterions","renderSubViews","_ref$adScheduleModel","_adScheduleModel$dayT","dayTimeRanges","renderLocationTargetsView","renderAdScheduleView","criterions","String","Criterion","BidAdjustment","OriginalBidAdjustment","DayTimeCriterion","_this$locationTargets","_this$adScheduleView","hideAudience","setLocationData","existingLocations","targetOption","targetOptions","bundleOrDefaultMarket","splits","day","adDayTimeRanges","schedulingRows","Day","StartHour","FromHour","StartMinute","FromMinute","adSchedulingOptions","minuteToReadMap","EndHour","ToHour","EndMinute","ToMinute","_this$options","_this$options$showDat","formatModel","adGroupStatus","formatSchedulingRows","AdScheduleView","showBidAdjustmentColumn","timeZoneMapper","getAccountTimeZone","deletedDayTimeCriterions","currentCampaignId","getPropertyValidationErrors","locationTargetsData","populateParentField","removeNegativeId","deletedDayTimeCb","adDateSetting","getDateSettings","hasEndDate","getAdScheduleUseSearcherTimeZone","cloneDeep","AccountListView","_DeterministicView","footerText","setState","accountListTemplate","DeterministicView","isActiveTrackingStatusForUet","isActiveTrackingStatusForGoals","showTrackingStatusDetails","className","isActiveTrackingStatus","trackingStatusMessagePrefix","customTitle","customExtensionEntranceText","a11yIdPrefix","PopoverView","position","positions","relativeToTableRow","marginBottom","height","setContent","contents","TitledContent","setTitle","setBody","trackingStatusPopoverTemplate","helpLinkTemplate","troubleshootTopic","TrackingStatus","a11yId","suffix","testType","DeliveryStatusToCategoryMap","globalConfig","Eligible","AdGroupAudienceAssociationPaused","AdGroupAudienceAssociationExcluded","AdGroupCriterionPaused","AdGroupCriterionExcluded","New","EditorialApprovedLimited","EditorialApprovedLimitedAppealRejected","LowSupply","LowQuality","NegativeKeywordConflicts","BidBelowFirstPageBid","BudgetSuggestions","AutoBiddingLimitedByNotEnoughConversions","AutoBiddingLimitedByNotEnoughRevenue","AutoBiddingLimitedInventoryLimit","AutoBiddingLimitedMaxCPCRestriction","AutoBiddingLimitedBudgetRestriction","AutoBiddingLimitedUnAttainableTarget","AutoBiddingPortfolioBidStrategyTrainingStatus","AutoBiddingLearning","CreditCardExpired","IOExceeded","PaymentInformationMissing","InvalidFinancialStatusOther","CampaignSuspended","CampaignBudgetPaused","DomainLanguageNotSupported","AdGroupExpired","EditorialRejected","EditorialAppealRejected","CampaignDeleted","StoreIdNotAssociated","AdGroupTargetingTooNarrow","VideoExtensionVideoProcessingFailed","VideoExtensionVideoTooSmall","VideoExtensionVideoAspectRatioInvalid","VideoExtensionVideoDurationInvalid","VideoExtensionThumbnailProcessingFailed","VideoExtensionThumbnailTooSmall","VideoExtensionThumbnailAspectInvalid","CampaignUserPaused","AdGroupUserPaused","AdGroupDraft","AdGroupPrivacyPending","AdUserPaused","EditorialPending","AssociationDeleted","KeywordUserPaused","EditorialUnderAppeal","UrlInvalid","ApplicationNotFound","ApplicationDestinationUrlMismatch","PendingMetadataSync","ProductTargetUserPaused","AdExtensionDeleted","AdExtensionAssociationDeleted","AdNotPresent","AdNotActive","VideoExtensionProcessing","updateDeliveryStatusOptionForFilter","deliveryStatusOption","enumSet","mockI18n","_getDeliveryStatusCat","groupedItems","enumSetToUse","localized","categoryEnumValuesMap","enumValue","enumValues","category","mappedValues","mapEnumValueForFilter","categoryName","itemLocalized","getDeliveryStatusCategoryForFilter","enum","operators","selectionConfig","enabled","headClasses","goalInPilotingMap","OfflineConversionGoal","InStoreTransactionGoal","MultiStageGoal","getErrorMessage","errorCode","defaultMessage","TagWithSameNameAlreadyExistsUnderCustomer","InvalidTagName","TagNameNullOrEmpty","InvalidTagDescription","MaxUetTagPerCustomerLimitReached","CustomerUnderMigration","SharedLibraryUserPermissionDenied","UpdateFailedForIsClarityTagEnabled","cleanAlerts","alertIds","alertId","alertCenter","dismiss","processTypeEnumForGoals","propertyName","filterEnumValuesFromProperty","processTypeBooleanForGoals","chooseType","IsAccountLevel","parseConversion","parseInt","deParseConversion","minutes","tempPeriod","Minutes","Hours","days","hours","Error","getConversionWindowPeriodInMinutes","getDefWithAccountInfo","goalItem","accountInfo","CurrentUser","isInternalUser","IsInternalUser","CCBaseUrl","showUnAssignedDetails","htmlContent","getColumnChooserConfig","columnConfig","_ref$permissions","getColumnConversions","columnNames","locked","categories","startsWith","_ref3","selectOption","_ref5","selected","customToolbarIcon","ColumnsResource","SelectedColumns","SelectedColumnsResource","getConversionWindow","lookbackWindowInMinutes","windowInMins","hrs","mins","getColumnConfig","_ref7","newi18n","isViewThroughConversionEnabled","IsUETDashboardEnabled","UETDashboard","IsAllowAutoGoalWizard","AllowAutoGoalWizard","_ref8","tag","statusTemplate","isReadOnly","IsReadOnly","_ref9","goal","nameTemplate","goalName","showGoalSuggestion","goalSuggestionAriaLabel","isNonSupportGoal","isAutoGoal","IsAutoGoal","_ref10","smartGoalTemplate","_ref11","_ref12","acctname","Title","_ref13","_ref14","ConversionCountType","_ref15","LookbackWindowInMinutes","_ref16","unassigned","categoryColumnTemplate","_TL_","_ref17","attributionModelTypeStr","_ref18","_ref19","_ref20","_ref6","tagIdTemplate","getTagIdLink","_ref21","trackingStatusTemplate","_ref22","GoalValueType","revenueTemplate","GoalPerformanceMetrics","Revenue","getTimeZoneForDateRangeText","_bingads_webui_component_legacy_timezonemapper_index","PerfDataExplanationView","stampNotes","appendLearnMoreLink","accountTimeZoneText","locals","explanationTemplate","perfDataExplanationPlugin","perfDataExplanationView","appendFootRows","GridConfig","preferenceConfig","_ref$options","customHeaderOffset","viewport","tableName","Goal","primaryKey","Goals","$expand","scrolling","attributes","virtualized","tableClasses","tableAttributes","rows","headRows","helpers","singleToolbarHeadRows","directionIndex","sortableHeaderTemplate","single","validateOrder","ConversionGoalsGrid","_DeterministicWrapper","initializeInstrumentation","$blocker","pgridFactory","pluginFactories","_ref$extendPlugins","extendPlugins","filterService","showPopup","setShowAutoGoalDrawer","resource","isInitialGrid","defaultPlugins","columnChooserConfig","plugin","perfMarkerPlugin","marker","a11yPlugin","assistedSelectionPlugin","dateFilterPlugin","performanceLogPlugin","columnChooserPlugin","paginationPlugin","availablePageSizes","enableRandomPage","pageNumberLabelText","pageSizeText","totalPageCountText","resetPageNumberOnSort","uiBlockerPlugin","placeholderPlugin","filteredContainer","filteredEmptyText","ignoreFilters","$in","toolbarPlugin","singleToolbar","onClick","disabled","button","menu","selectedItems","fromGoalEdit","iconLeft","updateAllStatus","getDefaultPlugins","extendedPlugins","gridToolbarGroup","toolbarWithName","DEFAULT_TOOLBAR_NAME","changes","handleSortChange","listenTo","updateGridQuery","getCombinedFilter","itemOfElement","navigateToGoalEditingPage","goalId","notificationApi","severity","NotificationLevel","message","navigateToTagIdPage","tagId","Tag","TagViewer","script","TrackingCode","stopPropagation","updateStatusView","itemToUpdate","ViewThroughLookbackWindowinMinutes","UpdateStatusView","extendData","afterChange","err","errCode","responseJSON","Code","ejectAll","beforeRemove","triggerQualtricsEvent","stateWhitelist","closest","scenarios","testConversionGoals","activities","clickOnGoalBulbIcon","clickOnTestThisGoalFromGoalBulbPopup","clickOnTestThisGoalFromTrackingStatusPopup","monitor","relatedTarget","onShowTrackingStatusPopover","testGoalClickActivity","isUnverifiedOrInactive","isNoRecentConversions","isTrackingStatusColumn","contentView","isInPilot","IsConversionAdvisorEntryLinkEnabled","isUETDashboardEnabled","isClarityGoal","ClarityEventDefinitionId","delegateEvents","goalDef","startConversionAdvisor","containerSelector","parentView","popoverClassName","goalItemWithAccountInfo","popupMessage","unassignedCategoryPopoverTemplate","unassignedRevenuePopoverTemplate","smartGoalTypePopoverTemplate","goalReadOnlyPopoverTemplate","selectedItem","afterUpdate","initializeCombinedFilterPromise","DeterministicWrapperView","UETTagsGridDashboardTestConfig","fetchCustomerHierarchy","windowNameStorage","Storage","currentUser","parentCustomerId","ParentCustomerId","currentCustomer","loginCID","IsInternal","fetchCustomerHierarchyPromise","ClientCenterCustomerService","ccBaseUrl","getCustomerHierarchy","returnOnlyDirectlyLinkedEntities","fetchUserPermissionPromise","customerHierarchy","customerHierarchyEntities","currentCustomerId","SharedLibraryUtils","UETTagsDashboardGridTest","_ref$isManagerDashboa","isManagerDashboardView","showAccountListPopup","customerIdType","useAdvertiserCustomerId","parametersColumnTemplate","updateDate","now","delta","getTime","getUETTagDashboardTestGridColumnConfig","updateHandler","IsReadOnlyUser","editablePlugin","onShowParametersReceivedPopover","parametersReceivedPopoverTemplate","ParameterMap","Object","originalItem","patch","editorView","Tags","setErrors","$overall","off","removeCreateView","UETTagsGridDashboardConfig","afterFindAllCallback","granularity","startDateEpoch","endDateEpoch","timeDiff","hoursDiff","daysDiff","monthsDiff","getMonth","getFullYear","URLSearchParams","location","search","timezoneId","performanceTimeSeriesParameters","Granularity","afterFindAll","getQueryStartAndEndDates","fourteenDaysAgoDate","getDate","getHours","getMinutes","dateFormat","raw","ExportData","download","UETDashboardPhase2Enabled","UETDashboardPhase2","waterfallFilterStorage","WaterfallFilterStorage","waterfallDateFilterProcessor","WaterfallFilterType","DateFilter","Customers","$withKey","Accounts","$makeCall","payload","eventAction","toPromise","tagResponse","showInfo","autoDismissTime","showWarning","UETTagsDashboardGrid","onShowPanel","renderThirdPartyIntegrationView","dataColumnTemplate","getUETTagDashboardGridColumnConfig","onGridDataLoaded","EventAction","open","Parameters","s$Tag","schemai18n","_ref$model","groupFields","placeholder","validators","maxLength","blockInput","control","isEditView","tagEntity","vmDefault","IsClarityTagEnabled","editForm","SimpleForm","showButtons","fields","PopupController","PopupJsClick","testUetClarity","createTag","editTag","treeSelection","Others","Total","vm","tagSharingView","Owner","owner","SharingScope","convertSharingScope","getSharingScope","formTemplate","_this$permissions","IsCustomerHierarchyEnabled","IsSharedLibraryPhase1Enabled","userId","ccCustomerService","parentCid","UETTagManageSopeView","scopeOptions","CUSTOMER","account","HIERARCHY","sharingTemplate","getUETTagGridColumnConfig","IsUETDashboardPhase2Enabled","editable","enableEdit","isEditable","_ref5$value","trackingStatusColumnTemplate","_ref7$value","sharedUsedbyTemplate","number","_$first","goalsTemplate","audienceTemplate","actionColumnTemplate","manageScopePermission","UETTagsGridConfig","isUETTagDeletionEnabled","UETTagsGrid","createMoreTagsPrompt","findByName","Data","getItemCount","UETTagManageScopeDialog","dialogOptions","selectedOption","withFooter","updatedScope","goalsCount","GoalsCount","navigateToGoals","filterExpression","SelectedColumn","SelectedOperator","Values","escapedFilter","encodeURIComponent","audiencesCount","AudiencesCount","navigateToAudiences","isUETDashboardPhase2Enabled","isUETAllTagsDashboard","accountListView","sharingScopePopoverView","containerClassName","UsedBy","usedByPopoverView","tagReadOnlyPopoverTemplate","hideAllToolbars","showAllToolbars","ownerIds","customerIds","allCIDCached","_this7","urlTemplate","isOfflineConversionGoalCurrencyCustomerScopeSupported","IsOfflineConversionGoalCurrencyCustomerScopeSupported","initGridConfig","successRows","SuccessCount","RowsProcessed","errorRows","ErrorCount","TotalRows","totalRows","tmpl","hasError","errorsIdentifier","hasUploadError","hasAcrossAllAccountsOfflineConversionGoal","HasAcrossAllAccountsOfflineConversionGoal","ProjectionGrid","vnext","instrumentationSvc","endActivity","initPreviewGrid","initSummaryGrid","errorLog","logError","Url","errorMsgKey","log","op","sessionId","filename","prop","post","TaskId","ExecutionId","TaskItemExecutions","handleGenericError","TaskSessionId","asLoggingStart","instrumentSetting","ACTIVITYNAME","ClickOnApplyChanges","ClickOnDiscard","identifier","resultsIdentifier","downloadService","ClickOnDownloadAllResults","ClickOnDownloadErrorsOnly","ClickOnClose","columnsConfig","datetimeUserTemplate","row","dateHumanizer","StartedAt","toLocaleString","Culture","user","UserName","uploadedFileTemplate","inputFile","OfflineConversionFiles","hasExpectedStatus","Identifier","shouldDisable","IsExpired","summaryTemplate","isPending","isCompleted","successCount","errorCount","errorCodes","Boolean","code","actionsTemplate","resultsFile","errorsFile","resultsId","errorsId","dataConfig","DataSource","OfflineConversionUploadTaskItemExecution","$filter","resizeConfig","getPGridColumnResizePlugin","use","is","getDataId","ClickToDownloadAllResultsInGrid","ClickToDownloadErrorsOnlyInGrid","ClickToDownloadInputFileInGrid","attr","pug","module","exports","pug_interp","pug_html","locals_for_with","escape","pug_mixins","block","$$obj","pug_index0","$$l","subTitle","tableRow","Header","CurrencyCode","Price","cssClass","ariaLabelContext","templateString","noHover","statusIconLabel","statusTypeClass","needsPopup","pug_index1","customer","labelledBy","topic","attrs","href","merge","isAudiencesLibrary","helpLink","learnMoreI18n","i18nValue","statusText","statusClass","vals"],"sourceRoot":""}