{"version":3,"file":"static/js/application.async.non-landing~8f4a66a6.754f8217.chunk.js","mappings":"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","sources":["../../../node_modules/@bingads-webui-campaign/ad-extensions-data/src/adextension-schema-processor.js","../../../node_modules/@bingads-webui-campaign/ad-extensions-data/src/filter-config.js","../../../node_modules/@bingads-webui-campaign/ad-extensions-data/src/data-fetch-config.js","../../../node_modules/@bingads-webui-campaign/ad-extensions-data/src/column-config.js","../../../node_modules/@bingads-webui-campaign/ad-extensions-data/src/data-fetch-source.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/demo/mock/dummy-js-data-resource.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/demo/mock/dummy-data-source.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/demo/mock/schema.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/index.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/tooltips/campaign-managed-date-tooltip.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/ad-groups-grid.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/inline-editable/save.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/ad-group-cashback-percent-column.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/ad-group-cashback-scope-column.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/ad-group-coupon-column.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/inline-editable/language-view.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/language.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/inline-editable/prompt.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/index.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/ad-group.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/campaign.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/bid-strategy-type.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/bid-base-column.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/search-bid-column.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/cpm-bid-column.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/cpv-bid-column.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/percent-cpc-bid-column.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/pay-per-stay-bid-column.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/quality-score.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/medium.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/ad-group-id.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/start-date.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/end-date.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/status-enum-map.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/status-icon.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/ad-group-type.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/tracking-template-columns.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/grid-config.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/demo/mock/edm.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/plugins.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/ad-group-gridview-factory.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/bid-landscape/index.js","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/ad-group.pug","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/bid-base-column.pug","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/bid-strategy-type.pug","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/campaign.pug","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/date.pug","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/medium.pug","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/quality-score.pug","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/status-icon-header-template.pug","../../../node_modules/@bingads-webui-campaign/ad-groups-grid/src/columns/attributes/status-icon.pug"],"sourcesContent":["\r\nimport { BaseSchemaProcessor, addCampaignTypePropertyForFilter } from '@bingads-webui-campaign/common-grid-config';\r\nimport * as putil from '@bingads-webui-universal/primitive-utilities';\r\nimport globalConfig from '@bingads-webui-component-legacy/config/index';\r\nimport cacheService from '@bingads-webui-static-legacy/cache-service';\r\nimport dataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport _ from 'underscore';\r\nimport { updateDeliveryStatusOptionForFilter } from '@bingads-webui-campaign-legacy/common-grid-config/filter/update-delivery-status-option-for-filter';\r\n\r\nexport class AdExtensionSchemaProcessor extends BaseSchemaProcessor {\r\n constructor(adextensionType, hasCampaignColumn, hasAdGroupColumn, disableScheduling, isForVNext, i18n, schemaI18nCampaign) {\r\n super({\r\n globalConfig,\r\n schemaI18nCampaign,\r\n i18n,\r\n cacheService,\r\n dataContextManager,\r\n jsdata,\r\n });\r\n this.adextensionType = adextensionType;\r\n this.hasCampaignColumn = hasCampaignColumn;\r\n this.hasAdGroupColumn = hasAdGroupColumn;\r\n this.disableScheduling = disableScheduling;\r\n this.isForVNext = isForVNext;\r\n this.i18n = i18n;\r\n }\r\n\r\n updateEntitySchemaForFeatures(entitySchema) {\r\n const updatedSchema = super.updateEntitySchemaForFeatures(entitySchema);\r\n\r\n // update schema to remove labels property\r\n updatedSchema.properties = _.omit(updatedSchema.properties, 'Labels');\r\n\r\n // update schema to reflect all conv metrics filters\r\n const allConvMetrics = [\r\n 'PerformanceMetricsAllConversionCPA',\r\n 'PerformanceMetricsAllConversions',\r\n 'PerformanceMetricsAllConversionRate',\r\n 'PerformanceMetricsAllConversionAdvertiserReportedRevenue',\r\n 'PerformanceMetricsAllConversionRevenueOnAdSpend',\r\n 'PerformanceMetricsAllPartialConversionCPA',\r\n 'PerformanceMetricsAllConversionsCredit',\r\n 'PerformanceMetricsAllPartialConversionRate',\r\n ];\r\n\r\n _.each(allConvMetrics, (allConvMetric) => {\r\n if (putil.get(updatedSchema.properties, allConvMetric)) {\r\n updatedSchema.properties[allConvMetric].filterable = true;\r\n }\r\n });\r\n\r\n // AdExtension does not support ViewThroughConversions\r\n updatedSchema.properties = _.omit(updatedSchema.properties, [\r\n 'PerformanceMetricsViewThroughConversions',\r\n 'PerformanceMetricsViewThroughConversionsCredit',\r\n ]);\r\n\r\n const deliveryStatusProperty = updatedSchema.properties.AdExtensionDelivery;\r\n\r\n let deliveryEnum = ['Eligible',\r\n 'EditorialApprovedLimited',\r\n 'InvalidFinancialStatusOther',\r\n 'CampaignDeleted',\r\n 'CampaignBudgetPaused',\r\n 'EditorialRejected',\r\n 'CampaignSuspended',\r\n 'EditorialUnderAppeal',\r\n 'EditorialPending',\r\n 'CampaignUserPaused',\r\n 'AssociationDeleted'];\r\n\r\n if (this.adextensionType === 'PriceAdExtension') {\r\n deliveryEnum.splice(6, 0, 'StoreIdNotAssociated');\r\n }\r\n\r\n if (this.adextensionType === 'AppAdExtension') {\r\n deliveryEnum = deliveryEnum.concat(['ApplicationNotFound', 'UrlInvalid', 'ApplicationDestinationUrlMismatch']);\r\n }\r\n if (this.adextensionType === 'VideoAdExtension') {\r\n deliveryEnum = deliveryEnum.concat([\r\n 'VideoExtensionProcessing',\r\n 'VideoExtensionVideoProcessingFailed',\r\n 'VideoExtensionVideoTooSmall',\r\n 'VideoExtensionVideoAspectRatioInvalid',\r\n 'VideoExtensionVideoDurationInvalid',\r\n 'VideoExtensionThumbnailProcessingFailed',\r\n 'VideoExtensionThumbnailTooSmall',\r\n 'VideoExtensionThumbnailAspectInvalid',\r\n ]);\r\n }\r\n if (!_.isEmpty(deliveryStatusProperty)) {\r\n updateDeliveryStatusOptionForFilter(deliveryStatusProperty, deliveryEnum, this.i18n);\r\n }\r\n\r\n if (!this.hasCampaignColumn) {\r\n updatedSchema.properties.CampaignName.filterable = false;\r\n }\r\n\r\n if (!this.hasAdGroupColumn) {\r\n updatedSchema.properties.AdGroupName.filterable = false;\r\n }\r\n\r\n if (this.isForVNext) {\r\n addCampaignTypePropertyForFilter({ entitySchema, permissions: this.Permissions });\r\n\r\n updatedSchema.properties.CampaignType.filterable = false;\r\n\r\n updatedSchema.properties.AdExtensionSchedulingEndDate.filterable = false;\r\n updatedSchema.properties.AdExtensionSchedulingStartDate.filterable = false;\r\n }\r\n\r\n // Hide global filters from UI\r\n updatedSchema.properties.CampaignStatus.filterable = false;\r\n updatedSchema.properties.AdGroupStatus.filterable = false;\r\n\r\n updatedSchema.properties = _.omit(updatedSchema.properties, 'PerformanceMetricsAveragePosition');\r\n\r\n if (this.adextensionType === 'CalloutAdExtension' || this.adextensionType === 'StructuredSnippetAdExtension') {\r\n updatedSchema.properties = _.omit(updatedSchema.properties, [\r\n 'PerformanceMetricsClicks',\r\n 'PerformanceMetricsCTR',\r\n ]);\r\n }\r\n\r\n // Exclude entity columns for AutomatedExtensions\r\n if (this.adextensionType === 'AutomatedAdExtension') {\r\n updatedSchema.properties = _.omit(updatedSchema.properties, [\r\n 'AdExtensionDelivery',\r\n 'AdExtensionId',\r\n 'AdExtensionSchedulingEndDate',\r\n 'AdExtensionSchedulingStartDate',\r\n 'AdExtensionStatus',\r\n 'AdExtensionUpdatedOnLastImport',\r\n 'AdGroupName',\r\n 'CampaignName',\r\n 'CampaignIsExperiment',\r\n ]);\r\n }\r\n\r\n if (this.disableScheduling) {\r\n updatedSchema.properties = _.omit(updatedSchema.properties, [\r\n 'AdExtensionSchedulingStartDate',\r\n 'AdExtensionSchedulingEndDate',\r\n ]);\r\n }\r\n\r\n return updatedSchema;\r\n }\r\n\r\n updateOdataOptions(odataOptions) {\r\n super.updateOdataOptions(odataOptions);\r\n\r\n _.extendOwn(odataOptions.custom, {\r\n 'AdExtension/UpdatedOnLastImport': {\r\n eq: (value) => {\r\n const url = `AdExtension/UpdatedOnLastImport eq ${value}`;\r\n\r\n return url.replace(/Enum.AdExtensionUpdatedOnLastImport'1'/g, '1');\r\n },\r\n },\r\n });\r\n\r\n return odataOptions;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { getCommonFilterConfig } from '@bingads-webui-campaign/common-grid-config';\r\nimport cacheService from '@bingads-webui-static-legacy/cache-service';\r\nimport dataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\nimport { getFilters } from '@bingads-webui-component-legacy/bingads-grid/service/filter-preferences';\r\nimport globalConfig from '@bingads-webui-component-legacy/config/index';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport sessionStore from '@bingads-webui-component-legacy/js-data-storage/session-storage';\r\nimport * as customColumnPreference from '@bingads-webui-component-legacy/bingads-grid/service/custom-column-preferences';\r\nimport { AdExtensionSchemaProcessor } from './adextension-schema-processor';\r\n\r\n\r\nconst AdExtensionAssociationSchema = window.globalLegacySchema.get('AdExtensionAssociation');\r\n\r\nexport const mockI18n = {\r\n get: _.identity,\r\n getString: _.identity,\r\n type: _.identity,\r\n enum: _.identity,\r\n value: _.identity,\r\n enumMappedString: _.identity,\r\n enumDescription: _.identity,\r\n valueDescription: _.identity,\r\n parseInt: _.identity,\r\n property: _.identity,\r\n};\r\nconst i18nCache = {\r\n i18n: mockI18n,\r\n newI18n: mockI18n,\r\n legacyGlobalI18n: mockI18n,\r\n schemaI18nCampaign: mockI18n,\r\n};\r\n\r\nexport function getFilterConfig(featureName, adextensionType, associationType, hasCampaignColumn, hasAdGroupColumn, disableScheduling, preferenceService, extraPerformanceColumns) {\r\n const isForVNext = true;\r\n const adExtensionSchemaProcessor = new AdExtensionSchemaProcessor(adextensionType, hasCampaignColumn, hasAdGroupColumn, disableScheduling, isForVNext, i18nCache.i18n, i18nCache.schemaI18nCampaign);\r\n\r\n const filterConfig = {\r\n featureName,\r\n preferenceService,\r\n customColumnPreference,\r\n schemaProcessor: adExtensionSchemaProcessor,\r\n enableCampaignWaterfall: true,\r\n enableAdGroupWaterfall: true,\r\n editor: {},\r\n selector: [{\r\n property: 'AdExtensionStatus',\r\n items: [{\r\n text: i18nCache.i18n.getString('AdExtensions_Quickfilter_ButDeleted'),\r\n value: ['Enum.AdExtensionStatus\\'Active\\''],\r\n }, {\r\n text: i18nCache.i18n.getString('AdExtensions_Quickfilter_All'),\r\n value: null,\r\n }],\r\n removable: false,\r\n defaultValue: ['Enum.AdExtensionStatus\\'Active\\''],\r\n }],\r\n ...i18nCache,\r\n entitySchema: AdExtensionAssociationSchema,\r\n sessionStore,\r\n preferenceStoreFactory: getFilters,\r\n globalConfig,\r\n cacheService,\r\n dataContextManager,\r\n jsdata,\r\n extraPerformanceColumns,\r\n };\r\n return getCommonFilterConfig(filterConfig);\r\n}\r\n\r\n","import _ from 'underscore';\r\nimport { getColumnsConversionMap } from '@bingads-webui-campaign/column-conversions';\r\nimport { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport { adextensionGridColumn } from '@bingads-webui-campaign-legacy/adextension-shared/viewmodel/adextension-grid-column';\r\nimport { getUseTotalsPlugin } from '@bingads-webui-campaign-legacy/adextension-shared/util/feature-control';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport DataStore from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport appConfig from '@bingads-webui-component-legacy/config/index';\r\nimport dateUtil from '@bingads-webui-component-legacy/humanize/date';\r\nimport * as customColumnPreference from '@bingads-webui-component-legacy/bingads-grid/service/custom-column-preferences';\r\nimport * as ColumnChooserPreference from '@bingads-webui-component-legacy/bingads-grid/service/column-chooser-preferences';\r\nimport * as SegmentationPreference from '@bingads-webui-component-legacy/bingads-grid/service/segmentation-preferences';\r\nimport { fetchPaginationConfig } from '@bingads-webui-component-legacy/bingads-grid/service/fetch-pagination';\r\nimport { fetchSortInfo } from '@bingads-webui-component-legacy/bingads-grid/service/fetch-sortinfo';\r\nimport { getGridDataParams } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { FilterService } from '@bingads-webui/filter-service';\r\nimport * as putil from '@bingads-webui/primitive-utilities';\r\nimport { getNewColumnChooserConfig } from './column-config';\r\nimport { getFilterConfig } from './filter-config';\r\n\r\nfunction specificAggRowText(item, property) {\r\n const prop = property.replace(/\\//g, '.');\r\n\r\n if (item.isAggregateRow || item.$total) {\r\n return '-';\r\n }\r\n return putil.get(item, prop);\r\n}\r\nconst AdExtensionAssociationSchema = window.globalLegacySchema.get('AdExtensionAssociation');\r\nconst isOdataActionSource = true;\r\nconst refreshCampaignCache = 'x-ms-refreshcampaigncache';\r\n\r\nexport function getDataSourceConfig({\r\n logActivity,\r\n scope,\r\n preferenceService,\r\n adextensionType,\r\n associationType,\r\n gridName,\r\n filter,\r\n}) {\r\n const permissions = appConfig.get('Permissions');\r\n const {campaignId} = scope.values;\r\n const {adGroupId} = scope.values;\r\n const headerRefreshCache = 'x-ms-refreshcampaigncache';\r\n\r\n\r\n let columns = [];\r\n let completeColumns = [];\r\n let excludedColumns = [];\r\n let extraPerformanceColumns = [];\r\n let campaignNameColumnExist;\r\n let adgroupNameColumnExist;\r\n\r\n const useTotalsPlugin = getUseTotalsPlugin(permissions);\r\n\r\n if (adextensionType === 'AutomatedAdExtension') {\r\n columns = [useTotalsPlugin ? adextensionGridColumn({\r\n property: _.identity,\r\n }) : bingadsGridColumn({\r\n name: 'AdExtension',\r\n property: {\r\n get: _.identity,\r\n key: 'Id',\r\n },\r\n })];\r\n excludedColumns = ['Status', 'AdExtensionId', 'StartDate', 'EndDate', 'TimeZone', 'Schedule', 'Delivery'];\r\n } else if (adextensionType === 'StructuredSnippetAdExtension') {\r\n columns = [useTotalsPlugin ? adextensionGridColumn({\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.AdExtension, 'Category', 'Texts');\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'AdExtension',\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.AdExtension, 'Category', 'Texts');\r\n },\r\n title: 'ErrorGrid_AdExtension_Column',\r\n })];\r\n excludedColumns = ['Clicks', 'CTR'];\r\n } else if (adextensionType === 'ReviewAdExtension') {\r\n columns = [useTotalsPlugin ? adextensionGridColumn({\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.AdExtension, 'Text', 'Source');\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'AdExtension',\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.AdExtension, 'Text', 'Source');\r\n },\r\n title: 'ErrorGrid_AdExtension_Column',\r\n })];\r\n } else if (adextensionType === 'PriceAdExtension') {\r\n columns = [useTotalsPlugin ? adextensionGridColumn({\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.AdExtension, 'TableRows');\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'AdExtension',\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.AdExtension, 'TableRows');\r\n },\r\n title: 'ErrorGrid_AdExtension_Column',\r\n })];\r\n } else if (adextensionType === 'LocationAdExtension') {\r\n columns = [useTotalsPlugin ? adextensionGridColumn({\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.formatData, 'CompanyName', 'Address', 'PhoneNumber');\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'AdExtension',\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.formatData, 'CompanyName', 'Address', 'PhoneNumber');\r\n },\r\n title: 'ErrorGrid_AdExtension_Column',\r\n })];\r\n } else if (adextensionType === 'ImageAdExtension') {\r\n columns = [useTotalsPlugin ? adextensionGridColumn({\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.AdExtension, 'DisplayText', 'AltText', 'Images', 'DestinationUrl', 'FinalUrls');\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'AdExtension',\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.AdExtension, 'DisplayText', 'AltText', 'Images', 'DestinationUrl', 'FinalUrls');\r\n },\r\n title: 'ErrorGrid_AdExtension_Column',\r\n })];\r\n } else if (adextensionType === 'CalloutAdExtension') {\r\n columns = [useTotalsPlugin ? adextensionGridColumn({\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.AdExtension, 'Text');\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'AdExtension',\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.AdExtension, 'Text');\r\n },\r\n title: 'ErrorGrid_AdExtension_Column',\r\n })];\r\n excludedColumns = ['Clicks', 'CTR'];\r\n } else if (adextensionType === 'CallAdExtension') {\r\n columns = [useTotalsPlugin ? adextensionGridColumn({\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.AdExtension, 'PhoneNumber', 'IsCallTrackingEnabled');\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'AdExtension',\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.AdExtension, 'PhoneNumber', 'IsCallTrackingEnabled');\r\n },\r\n title: 'ErrorGrid_AdExtension_Column',\r\n })];\r\n } else if (adextensionType === 'AppAdExtension') {\r\n columns = [useTotalsPlugin ? adextensionGridColumn({\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.AdExtension, 'AppPlatform', 'DisplayText');\r\n },\r\n }) : bingadsGridColumn({\r\n name: 'AdExtension',\r\n property: (item) => {\r\n if (item.isAggregateRow) {\r\n return item.AdExtension;\r\n }\r\n return _.pick(item.AdExtension, 'AppPlatform', 'DisplayText');\r\n },\r\n title: 'ErrorGrid_AdExtension_Column',\r\n })];\r\n } else {\r\n if (adextensionType === 'VideoAdExtension') {\r\n extraPerformanceColumns = permissions.IsVideoAdExtensionsPerfMetricsEnabled ? [\r\n 'VideoViews',\r\n 'ViewThroughRate',\r\n 'AverageCPV',\r\n 'TotalWatchTimeInMS',\r\n 'AverageWatchTimePerImpression',\r\n 'AverageWatchTimePerVideoView',\r\n 'VideoViewsAt25Percent',\r\n 'VideoViewsAt50Percent',\r\n 'VideoViewsAt75Percent',\r\n 'CompletedVideoViews',\r\n 'VideoCompletionRate'] : [];\r\n }\r\n columns = [useTotalsPlugin ? adextensionGridColumn({\r\n property: item => item.AdExtension,\r\n }) : bingadsGridColumn({\r\n name: 'AdExtension',\r\n property: item => item.AdExtension,\r\n })];\r\n }\r\n\r\n const hasCampaignNameColumn = _.isUndefined(campaignNameColumnExist) ?\r\n !campaignId && associationType !== 'Account' :\r\n campaignNameColumnExist;\r\n const hasAdGroupNameColumn = _.isUndefined(adgroupNameColumnExist) ?\r\n !adGroupId && associationType === 'AdGroup' :\r\n adgroupNameColumnExist;\r\n\r\n const BaseCols = [bingadsGridColumn({\r\n name: 'Status',\r\n property: {\r\n get(item) {\r\n return specificAggRowText(item, 'AdExtension/Status');\r\n },\r\n key: 'AdExtension',\r\n },\r\n }), bingadsGridColumn({\r\n name: 'AdExtensionId',\r\n property: {\r\n get(item) {\r\n return specificAggRowText(item, 'AdExtension/Id');\r\n },\r\n key: 'AdExtension',\r\n },\r\n }), bingadsGridColumn({\r\n name: 'StartDate',\r\n property: {\r\n get(item) {\r\n return specificAggRowText(item, 'AdExtension/Scheduling/StartDate');\r\n },\r\n key: 'AdExtension',\r\n },\r\n }), bingadsGridColumn({\r\n name: 'EndDate',\r\n property: {\r\n get(item) {\r\n return specificAggRowText(item, 'AdExtension/Scheduling/EndDate');\r\n },\r\n key: 'AdExtension',\r\n },\r\n }), bingadsGridColumn({\r\n name: 'TimeZone',\r\n property: {\r\n get(item) {\r\n return specificAggRowText(item, 'AdExtension/Scheduling/UseSearcherTimeZone');\r\n },\r\n key: 'AdExtension',\r\n },\r\n }), bingadsGridColumn({\r\n name: 'Schedule',\r\n property: {\r\n get(item) {\r\n return specificAggRowText(item, 'AdExtension/Scheduling/DayTimeRanges');\r\n },\r\n key: 'AdExtension',\r\n },\r\n })];\r\n\r\n let PerformanceColumns = [bingadsGridColumn({\r\n name: 'Clicks',\r\n property: 'PerformanceMetrics/Clicks',\r\n }),\r\n bingadsGridColumn({\r\n name: 'Impressions',\r\n property: 'PerformanceMetrics/Impressions',\r\n }), bingadsGridColumn({\r\n name: 'CTR',\r\n property: 'PerformanceMetrics/CTR',\r\n }), bingadsGridColumn({\r\n name: 'AverageCPC',\r\n property: 'PerformanceMetrics/AverageCPC',\r\n }),\r\n bingadsGridColumn({\r\n name: 'AverageCPM',\r\n property: 'PerformanceMetrics/AverageCPM',\r\n }), bingadsGridColumn({\r\n name: 'Spend',\r\n property: 'PerformanceMetrics/Spend',\r\n })];\r\n\r\n\r\n const usePartialConversions = permissions.dynamic.PartialConversions && permissions.dynamic.ColumnConversion;\r\n let ConversionColumns = [\r\n usePartialConversions ? bingadsGridColumn({\r\n name: 'PartialConversionCPA',\r\n property: 'PerformanceMetrics/PartialConversionCPA',\r\n }) : bingadsGridColumn({\r\n name: 'CPA',\r\n property: 'PerformanceMetrics/CPA',\r\n }), usePartialConversions ? bingadsGridColumn({\r\n name: 'ConversionsCredit',\r\n property: 'PerformanceMetrics/ConversionsCredit',\r\n }) : bingadsGridColumn({\r\n name: 'Conversions',\r\n property: 'PerformanceMetrics/Conversions',\r\n }),\r\n bingadsGridColumn({\r\n name: 'RevenueOnAdSpend',\r\n property: 'PerformanceMetrics/RevenueOnAdSpend',\r\n }), bingadsGridColumn({\r\n name: 'AdvertiserReportedRevenue',\r\n property: 'PerformanceMetrics/AdvertiserReportedRevenue',\r\n }), usePartialConversions ?\r\n bingadsGridColumn({\r\n name: 'PartialConversionRate',\r\n property: 'PerformanceMetrics/PartialConversionRate',\r\n }) : bingadsGridColumn({\r\n name: 'ConversionRate',\r\n property: 'PerformanceMetrics/ConversionRate',\r\n }),\r\n usePartialConversions ?\r\n bingadsGridColumn({\r\n name: 'AllConversionsCredit',\r\n property: 'PerformanceMetrics/AllConversionsCredit',\r\n }) : bingadsGridColumn({\r\n name: 'AllConversions',\r\n property: 'PerformanceMetrics/AllConversions',\r\n }),\r\n usePartialConversions ?\r\n bingadsGridColumn({\r\n name: 'AllPartialConversionCPA',\r\n property: 'PerformanceMetrics/AllPartialConversionCPA',\r\n }) : bingadsGridColumn({\r\n name: 'AllConversionCPA',\r\n property: 'PerformanceMetrics/AllConversionCPA',\r\n }),\r\n usePartialConversions ?\r\n bingadsGridColumn({\r\n name: 'AllPartialConversionRate',\r\n property: 'PerformanceMetrics/AllPartialConversionRate',\r\n }) : bingadsGridColumn({\r\n name: 'AllConversionRate',\r\n property: 'PerformanceMetrics/AllConversionRate',\r\n }),\r\n bingadsGridColumn({\r\n name: 'AllConversionAdvertiserReportedRevenue',\r\n property: 'PerformanceMetrics/AllConversionAdvertiserReportedRevenue',\r\n }), bingadsGridColumn({\r\n name: 'AllConversionRevenueOnAdSpend',\r\n property: 'PerformanceMetrics/AllConversionRevenueOnAdSpend',\r\n }),\r\n ];\r\n const ExtraPerfCol = [bingadsGridColumn({\r\n name: 'VideoViews',\r\n property: 'PerformanceMetrics/VideoViews',\r\n }), bingadsGridColumn({\r\n name: 'ViewThroughRate',\r\n property: 'PerformanceMetrics/ViewThroughRate',\r\n }), bingadsGridColumn({\r\n name: 'AverageCPV',\r\n property: 'PerformanceMetrics/AverageCPV',\r\n }), bingadsGridColumn({\r\n name: 'TotalWatchTimeInMS',\r\n property: 'PerformanceMetrics/TotalWatchTimeInMS',\r\n }), bingadsGridColumn({\r\n name: 'AverageWatchTimePerImpression',\r\n property: 'PerformanceMetrics/AverageWatchTimePerImpression',\r\n }), bingadsGridColumn({\r\n name: 'AverageWatchTimePerVideoView',\r\n property: 'PerformanceMetrics/AverageWatchTimePerVideoView',\r\n }), bingadsGridColumn({\r\n name: 'VideoViewsAt25Percent',\r\n property: 'PerformanceMetrics/VideoViewsAt25Percent',\r\n }), bingadsGridColumn({\r\n name: 'VideoViewsAt50Percent',\r\n property: 'PerformanceMetrics/VideoViewsAt50Percent',\r\n }), bingadsGridColumn({\r\n name: 'VideoViewsAt75Percent',\r\n property: 'PerformanceMetrics/VideoViewsAt75Percent',\r\n }), bingadsGridColumn({\r\n name: 'CompletedVideoViews',\r\n property: 'PerformanceMetrics/CompletedVideoViews',\r\n }), bingadsGridColumn({\r\n name: 'VideoCompletionRate',\r\n property: 'PerformanceMetrics/VideoCompletionRate',\r\n })];\r\n\r\n const EntityCampaignColumn = [bingadsGridColumn({\r\n name: 'CampaignName',\r\n property: item => _.extend(_.pick(item.Campaign, 'Id', 'Name', 'BaseCampaignName'), {\r\n IsDeleted: _.result(item.AdExtension, 'Delivery', '') === 'CampaignDeleted',\r\n }),\r\n })];\r\n\r\n const EntityAdGroupColumn = [bingadsGridColumn({\r\n name: 'AdGroupName',\r\n property: item => _.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\r\n const DeliveryColumn = [bingadsGridColumn({\r\n name: 'Delivery',\r\n property: 'AdExtension',\r\n })];\r\n\r\n let SharedColumns = [\r\n bingadsGridColumn({\r\n name: 'TopImpressionRate',\r\n property: 'PerformanceMetrics/TopImpressionRate',\r\n }), bingadsGridColumn({\r\n name: 'AbsoluteTopImpressionRate',\r\n property: 'PerformanceMetrics/AbsoluteTopImpressionRate',\r\n })];\r\n\r\n SharedColumns = SharedColumns.concat(BaseCols);\r\n SharedColumns = SharedColumns.concat(ExtraPerfCol);\r\n\r\n if (excludedColumns !== []) {\r\n columns = _.reject(columns, col => _.contains(excludedColumns, col.name));\r\n SharedColumns = _.reject(SharedColumns, col => _.contains(excludedColumns, col.name));\r\n ConversionColumns = _.reject(ConversionColumns, col => _.contains(excludedColumns, col.name));\r\n PerformanceColumns = _.reject(PerformanceColumns, col => _.contains(excludedColumns, col.name));\r\n }\r\n\r\n completeColumns = completeColumns.concat(columns);\r\n completeColumns = completeColumns.concat(SharedColumns);\r\n completeColumns = completeColumns.concat(DeliveryColumn);\r\n completeColumns = completeColumns.concat(ConversionColumns);\r\n completeColumns = completeColumns.concat(PerformanceColumns);\r\n\r\n if (adextensionType === 'VideoAdExtension') { PerformanceColumns = PerformanceColumns.concat(ExtraPerfCol); }\r\n\r\n const perfColumns = _.map(PerformanceColumns, colObj => colObj.name);\r\n\r\n if (hasCampaignNameColumn) {\r\n completeColumns = completeColumns.concat(EntityCampaignColumn);\r\n }\r\n if (hasAdGroupNameColumn) {\r\n completeColumns = completeColumns.concat(EntityAdGroupColumn);\r\n }\r\n\r\n const disableScheduling = false;\r\n\r\n const filterConfig = filter || getFilterConfig(gridName, adextensionType, associationType, hasCampaignNameColumn, hasAdGroupNameColumn, disableScheduling, preferenceService, extraPerformanceColumns);\r\n const automatedType = adextensionType === 'AutomatedAdExtension';\r\n\r\n const columnConfig = getNewColumnChooserConfig({\r\n columnsConfig: completeColumns,\r\n performanceCols: perfColumns,\r\n associationType,\r\n permissions,\r\n });\r\n\r\n const extraImgExpand = adextensionType === 'ImageAdExtension' ? '($expand=Model.ImageAdExtension/Images)' : '';\r\n\r\n const { dynamic = {} } = permissions;\r\n const { ColumnConversion: IsColumnConversionEnabled } = dynamic;\r\n const initialQuery = isOdataActionSource ? { gridDataParameters: getGridDataParams(appConfig), query: { nullifynotapplybidamounts: true, $expand: `AdExtension${extraImgExpand},Campaign,AdGroup` } } : {};\r\n\r\n\r\n let edmEntity = edm.currentAccount;\r\n\r\n if (!_.isUndefined(campaignId)) {\r\n edmEntity = edmEntity.Campaigns.$withKey(campaignId);\r\n }\r\n\r\n if (!_.isUndefined(adGroupId)) {\r\n edmEntity = edmEntity.AdGroups.$withKey(adGroupId);\r\n }\r\n\r\n const entitySet = automatedType ? edmEntity.AutomatedExtensions['Default.GridData'] : edmEntity.AdExtensionAssociations['Default.GridData'];\r\n\r\n const filterService = new FilterService(filterConfig);\r\n\r\n const quickFilterName = `quick-filter-storage-campaignwebui-${filterConfig.featureName}-undefined/QuickFilter`;\r\n const quickFilterValue = preferenceService.findByNameAtUserLevel(quickFilterName);\r\n\r\n if (!quickFilterValue) {\r\n const defaultFilter = {\r\n query:\r\n {\r\n AdExtensionStatus:\r\n {\r\n $in: ['Enum.AdExtensionStatus\\'Active\\''],\r\n },\r\n },\r\n };\r\n filterService.setQuickFilter('', defaultFilter);\r\n }\r\n const gridDataParameterDecorator = { name: 'gridDataParameters', entitySet };\r\n const decorators = [\r\n {\r\n ...columnConfig,\r\n name: 'columnChooser',\r\n customColumnsEnabled: true,\r\n addPoPColumnsOnComparisonEnabled: true,\r\n IsAvgPositionDeprecationPhase2Enabled: permissions.IsAvgPositionDeprecationPhase2Enabled,\r\n comparisonPoPColumns: [\r\n 'PeriodPerformanceMetrics',\r\n 'PerformanceMetricsChange',\r\n 'PerformanceMetricsChangePercentage',\r\n ],\r\n },\r\n { name: 'dateFilter' },\r\n { name: 'segment' },\r\n { name: 'pagination', defaultPageSize: 50 },\r\n { name: 'sorting' },\r\n { name: 'filter', filterService },\r\n ];\r\n gridDataParameterDecorator.associationType = associationType;\r\n gridDataParameterDecorator.adExtensionTypes = [adextensionType];\r\n decorators.push(gridDataParameterDecorator);\r\n\r\n return {\r\n dataSource: {\r\n type: 'jsdata',\r\n primaryKey: 'Id',\r\n entity: DataStore[AdExtensionAssociationSchema.name],\r\n options:\r\n {\r\n entitySet: edmEntity.AdExtensionAssociations,\r\n usePendingFindAll: false,\r\n useDfmCache: false,\r\n cacheResponse: false,\r\n headers: {\r\n [refreshCampaignCache]: true,\r\n [headerRefreshCache]: true,\r\n },\r\n },\r\n query: {\r\n $expand: `AdExtension${extraImgExpand},Campaign,AdGroup`,\r\n },\r\n schema: AdExtensionAssociationSchema,\r\n },\r\n queryBuilder: {\r\n decorators,\r\n commonConfig: {\r\n featureName: gridName,\r\n isOdataActionSource,\r\n deps: {\r\n dateUtil,\r\n state,\r\n ColumnChooserPreference,\r\n CustomColumnPreference: customColumnPreference,\r\n SegmentationPreference,\r\n fetchPaginationConfig,\r\n fetchSortInfo,\r\n },\r\n IsColumnConversionEnabled,\r\n ...IsColumnConversionEnabled ? {\r\n columnConversions: getColumnsConversionMap('AdExtensionsGrid', permissions),\r\n } : {},\r\n },\r\n logActivity,\r\n initialQuery,\r\n },\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { applyPartialConversionColumnName } from '@bingads-webui-campaign/column-conversions';\r\n\r\n\r\nexport function getNewColumnChooserConfig({\r\n columnsConfig,\r\n performanceCols,\r\n associationType,\r\n permissions,\r\n}) {\r\n const columnPropertyMap = {};\r\n\r\n _.each(columnsConfig, (column) => {\r\n columnPropertyMap[column.name] = column.property;\r\n });\r\n\r\n const columnsMap = _.object(_.map(columnsConfig, column => [column.name, column.property]));\r\n\r\n const perfColumns = performanceCols;\r\n\r\n const selectedColumns = _.chain(applyPartialConversionColumnName(permissions, ['AdExtension', 'Delivery', 'Conversions']))\r\n .concat((associationType === 'Campaign' || associationType === 'AdGroup') && 'CampaignName')\r\n .concat((associationType === 'AdGroup') && 'AdGroupName')\r\n .concat(perfColumns)\r\n .compact()\r\n .value();\r\n\r\n const lockedColumns = _.chain(['AdExtension', 'AdExtensionId'])\r\n .concat((associationType === 'Campaign' || associationType === 'AdGroup') && 'CampaignName')\r\n .concat((associationType === 'AdGroup') && 'AdGroupName')\r\n .compact()\r\n .value();\r\n\r\n return {\r\n lockedColumns,\r\n defaultColumns: selectedColumns,\r\n columnsMap,\r\n };\r\n}\r\n","/* eslint-disable no-param-reassign */\r\nimport Promise from 'bluebird';\r\nimport { getGridName } from '@bingads-webui-campaign/inline-download-grids-metadata';\r\nimport DataStore from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport logger from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport { connect } from '@bingads-webui-campaign/dqb-grid-datasource-connector';\r\nimport { DataSourceStore } from '@bingads-webui-campaign/data-source-store';\r\nimport { QueryBuilderFactory } from '@bingads-webui-campaign/query-builder';\r\nimport { dataSource as AdExtensionsGridDataSource } from '@bingads-webui-component-legacy/github/modules/projection-grid/module/projection-grid';\r\nimport { QueryErrorFactory } from '@bingads-webui-campaign/dqb-grid-datasource-error-handler';\r\nimport { getDataSourceConfig } from './data-fetch-config';\r\n\r\nconst extensionItems = {\r\n ActionAdExtension: { associationType: 'Account', typeString: _TL_('Action Extensions'), schema: window.globalLegacySchema.get('ActionAdExtension') },\r\n AppAdExtension: { associationType: 'Account', typeString: _TL_('App Extensions'), schema: window.globalLegacySchema.get('AppAdExtension') },\r\n CallAdExtension: { associationType: 'Campaign', typeString: _TL_('Call Extensions'), schema: window.globalLegacySchema.get('CallAdExtension') },\r\n CalloutAdExtension: { associationType: 'Account', typeString: _TL_('Callout Extensions'), schema: window.globalLegacySchema.get('CalloutAdExtension') },\r\n ImageAdExtension: { associationType: 'Account', typeString: _TL_('Image Extensions'), schema: window.globalLegacySchema.get('ImageAdExtension') },\r\n LocationAdExtension: { associationType: 'Account', typeString: _TL_('Location Extensions'), schema: window.globalLegacySchema.get('LocationAdExtension') },\r\n PriceAdExtension: { associationType: 'Account', typeString: _TL_('Price Extensions'), schema: window.globalLegacySchema.get('PriceAdExtension') },\r\n ReviewAdExtension: { associationType: 'Account', typeString: _TL_('Review Extensions'), schema: window.globalLegacySchema.get('ReviewAdExtension') },\r\n Sitelink2AdExtension: { associationType: 'Account', typeString: _TL_('Sitelink Extensions'), schema: window.globalLegacySchema.get('Sitelink2AdExtension') },\r\n StructuredSnippetAdExtension: { associationType: 'Account', typeString: _TL_('Structured Snippet Extensions'), schema: window.globalLegacySchema.get('StructuredSnippetAdExtension') },\r\n AutomatedAdExtension: { associationType: 'Account', typeString: _TL_('Automated Extensions Report'), schema: window.globalLegacySchema.get('AutomatedExtension') },\r\n PromotionAdExtension: { associationType: 'Account', typeString: _TL_('Promotion Extensions'), schema: window.globalLegacySchema.get('PromotionAdExtension') },\r\n FilterLinkAdExtension: { associationType: 'Account', typeString: _TL_('Filter Link Extensions'), schema: window.globalLegacySchema.get('FilterLinkAdExtension') },\r\n FlyerAdExtension: { associationType: 'Account', typeString: _TL_('Flyer Extensions'), schema: window.globalLegacySchema.get('FlyerAdExtension') },\r\n VideoAdExtension: { associationType: 'Account', typeString: _TL_('Video Extensions'), schema: window.globalLegacySchema.get('VideoAdExtension') },\r\n LeadFormAdExtension: { associationType: 'Account', typeString: _TL_('Lead form Extensions'), schema: window.globalLegacySchema.get('LeadFormAdExtension') },\r\n BusinessInfoAdExtension: { associationType: 'Account', typeString: _TL_('Logo Extensions'), schema: window.globalLegacySchema.get('LogoAdExtension') },\r\n // TODO CHANGE TO BusinessInfoAdExtension\r\n};\r\nconst AdExtensionAssociationSchema = window.globalLegacySchema.get('AdExtensionAssociation');\r\nexport function getDataSource({\r\n logActivity,\r\n scope,\r\n adextensionType,\r\n preferenceService,\r\n associationType,\r\n useCache,\r\n filter,\r\n}) {\r\n const { campaignId } = scope.values;\r\n const { adGroupId } = scope.values;\r\n // eslint-disable-next-line no-nested-ternary\r\n const associationScope = adGroupId ? 'AdGroup' : (campaignId ? 'Campaign' : undefined);\r\n\r\n const gridName = adextensionType === 'AutomatedAdExtension' ?\r\n getGridName('AutomatedExtension', {\r\n CampaignId: campaignId,\r\n AdGroupId: adGroupId,\r\n }) :\r\n getGridName('AdExtensionAssociation', {\r\n AdExtensionType: adextensionType,\r\n AssociationType: associationType || associationScope || extensionItems[adextensionType].associationType,\r\n CampaignId: campaignId,\r\n AdGroupId: adGroupId,\r\n });\r\n\r\n if (useCache) {\r\n const existingDataSource = DataSourceStore.get(gridName);\r\n if (existingDataSource) {\r\n return existingDataSource;\r\n }\r\n }\r\n\r\n const configParams = {\r\n logActivity,\r\n scope,\r\n preferenceService,\r\n gridName,\r\n adextensionType,\r\n associationType: associationType || associationScope || extensionItems[adextensionType].associationType,\r\n filter,\r\n };\r\n\r\n const dataFetchConfig = getDataSourceConfig(configParams);\r\n let afterFindAllPromiseResolve = null;\r\n const { featureName } = dataFetchConfig.queryBuilder.commonConfig;\r\n const queryBuilder = QueryBuilderFactory.make(dataFetchConfig.queryBuilder);\r\n const queryErrors = QueryErrorFactory.make(dataFetchConfig.dataSource);\r\n const customDataSource = new AdExtensionsGridDataSource.JSData(dataFetchConfig.dataSource.entity, dataFetchConfig.dataSource.options);\r\n const usingCacheManager = false;\r\n const useJSGridChartDataSource = false;\r\n const afterFindAllPromise = new Promise((res) => {\r\n afterFindAllPromiseResolve = res;\r\n });\r\n const dataSource = connect(\r\n dataFetchConfig.dataSource,\r\n queryBuilder,\r\n featureName,\r\n logger,\r\n usingCacheManager,\r\n useJSGridChartDataSource,\r\n customDataSource,\r\n afterFindAllPromiseResolve\r\n );\r\n dataSource.queryErrors = queryErrors;\r\n dataSource.entity = DataStore[AdExtensionAssociationSchema.name];\r\n dataSource.afterFindAllPromise = afterFindAllPromise;\r\n\r\n DataSourceStore.set(featureName, dataSource);\r\n\r\n return dataSource;\r\n}\r\n","import _ from 'underscore';\r\nimport { DS } from 'js-data';\r\nimport Promise from 'bluebird';\r\nimport mockData from './dummy-data.json';\r\n\r\nconst store = new DS();\r\n\r\nclass CustomerAdapter {\r\n // All of the methods shown here must return a promise\r\n\r\n // \"definition\" is a resource defintion that would\r\n // be returned by DS#defineResource\r\n\r\n // \"options\" would be the options argument that\r\n // was passed into the DS method that is calling\r\n // the adapter method\r\n\r\n findAll(/* definition, params, options */) {\r\n const result = _.clone(mockData.value);\r\n\r\n result.raw = mockData;\r\n return Promise.resolve(result);\r\n }\r\n}\r\n\r\nstore.registerAdapter('AdGroup', new CustomerAdapter(), { default: true });\r\n\r\nexport const adgroup = store.defineResource({\r\n name: 'AdGroup',\r\n idAttribute: 'Id',\r\n});\r\n","import { noop } from 'underscore';\r\nimport { adgroup } from './dummy-js-data-resource';\r\nimport { mockSchema } from './schema';\r\n\r\nexport const dummyDataSource = {\r\n type: 'js-data',\r\n entity: adgroup,\r\n primaryKey: 'Id',\r\n schema: mockSchema,\r\n options: {\r\n entitySet: {\r\n toJSON: noop,\r\n },\r\n },\r\n};\r\n","const PerformanceMetrics = {\r\n name: 'PerformanceMetrics',\r\n type: 'object',\r\n properties: {\r\n Impressions: {\r\n type: 'integer',\r\n nullable: true,\r\n },\r\n Clicks: {\r\n type: 'integer',\r\n nullable: true,\r\n },\r\n CTR: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n Conversions: {\r\n type: 'integer',\r\n nullable: true,\r\n },\r\n Spend: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AverageCPC: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AveragePosition: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AverageCPM: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n CPA: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n WebsiteCoverage: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AuctionWonPercent: {\r\n type: 'number',\r\n nullable: true,\r\n sovcolumn: true,\r\n isPercentValue: true,\r\n },\r\n AuctionLostToBudgetPercent: {\r\n type: 'number',\r\n nullable: true,\r\n sovcolumn: true,\r\n isPercentValue: true,\r\n },\r\n AuctionLostToRankPercent: {\r\n type: 'number',\r\n nullable: true,\r\n sovcolumn: true,\r\n isPercentValue: true,\r\n },\r\n AuctionLostToLandingPercent: {\r\n type: 'number',\r\n nullable: true,\r\n sovcolumn: true,\r\n isPercentValue: true,\r\n },\r\n AuctionLostToAdQualityPercent: {\r\n type: 'number',\r\n nullable: true,\r\n sovcolumn: true,\r\n isPercentValue: true,\r\n },\r\n AuctionLostToBidPercent: {\r\n type: 'number',\r\n nullable: true,\r\n sovcolumn: true,\r\n isPercentValue: true,\r\n },\r\n ClickSharePercent: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n RevenueOnAdSpend: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AdvertiserReportedRevenue: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n ConversionRate: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AllConversionCPA: {\r\n type: 'number',\r\n nullabe: true,\r\n },\r\n AllConversions: {\r\n type: 'integer',\r\n nullabe: true,\r\n },\r\n AllConversionRate: {\r\n type: 'number',\r\n nullabe: true,\r\n },\r\n AllConversionAdvertiserReportedRevenue: {\r\n type: 'number',\r\n nullabe: true,\r\n },\r\n AllConversionRevenueOnAdSpend: {\r\n type: 'number',\r\n nullabe: true,\r\n },\r\n },\r\n};\r\n\r\nconst Labels = {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n schema: {\r\n name: 'Label',\r\n type: 'object',\r\n key: 'Id',\r\n properties: {\r\n Id: {\r\n type: 'integer',\r\n key: true,\r\n nullable: true,\r\n },\r\n Name: {\r\n type: 'string',\r\n maxLength: 80,\r\n required: true,\r\n },\r\n Description: {\r\n type: 'string',\r\n maxLength: 200,\r\n },\r\n ColorCode: {\r\n type: 'integer',\r\n nullable: true,\r\n },\r\n AssociationCounts: {\r\n type: 'object',\r\n schema: {\r\n name: 'LabelAssociationCounts',\r\n type: 'object',\r\n properties: {\r\n CampaignCount: {\r\n type: 'integer',\r\n },\r\n AdGroupCount: {\r\n type: 'integer',\r\n },\r\n AdCount: {\r\n type: 'integer',\r\n },\r\n KeywordCount: {\r\n type: 'integer',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n isRelatedEntity: true,\r\n filterable: true,\r\n};\r\n\r\nexport const mockSchema = {\r\n name: 'AdGroup',\r\n type: 'object',\r\n key: 'Id',\r\n required: ['Name'],\r\n properties: {\r\n Id: {\r\n type: 'integer',\r\n key: true,\r\n },\r\n Name: {\r\n type: 'string',\r\n filterable: true,\r\n maxLength: 256,\r\n },\r\n Campaign: {\r\n type: 'object',\r\n filterable: ['Name'],\r\n schema: {\r\n key: 'Id',\r\n name: 'Campaign',\r\n type: 'object',\r\n properties: {\r\n Name: {\r\n type: 'string',\r\n filterable: true,\r\n },\r\n },\r\n },\r\n },\r\n StartDate: {\r\n type: 'datetime',\r\n filterable: true,\r\n },\r\n EndDate: {\r\n type: 'datetime',\r\n nullable: true,\r\n filterable: true,\r\n },\r\n Status: {\r\n type: 'string',\r\n enum: ['CampaignUserPaused', 'CampaignBudgetPaused', 'CampaignBudgetUserPaused', 'Draft', 'Active', 'Deleted', 'Paused', 'Expired'],\r\n filterable: true,\r\n enumType: 'AdGroupStatus', // the one in our adsappsUI\r\n },\r\n SearchBid: {\r\n type: 'number',\r\n nullable: true,\r\n filterable: true,\r\n },\r\n ContentBid: {\r\n type: 'number',\r\n nullable: true,\r\n filterable: true,\r\n },\r\n PercentCpcBid: {\r\n schema: {\r\n properties: {\r\n RateAmount: {\r\n schema: {\r\n type: 'object',\r\n properties: {\r\n Amount: {\r\n nullable: true,\r\n oneOf: [\r\n {\r\n $ref: 'Edm/Double',\r\n type: 'number',\r\n name: 'Double',\r\n },\r\n {\r\n type: 'null',\r\n },\r\n ],\r\n type: 'number',\r\n name: 'Double',\r\n },\r\n },\r\n $$ODataExtension: {\r\n Name: 'RateAmount',\r\n },\r\n name: 'RateAmount',\r\n $$ref: 'Model/RateAmount',\r\n },\r\n $ref: 'Model/RateAmount',\r\n type: 'object',\r\n },\r\n },\r\n type: 'object',\r\n $$ODataExtension: {\r\n Name: 'RateBid',\r\n },\r\n name: 'RateBid',\r\n $$ref: 'Model/RateBid',\r\n },\r\n $ref: 'Model/RateBid',\r\n type: 'object',\r\n },\r\n AdGroupPercentCpcBid: {\r\n nullable: true,\r\n oneOf: [\r\n {\r\n $ref: 'Edm/Double',\r\n type: 'number',\r\n name: 'Double',\r\n },\r\n {\r\n type: 'null',\r\n },\r\n ],\r\n type: 'number',\r\n name: 'Double',\r\n 'bulk-upload-header': 'Percent Cpc Bid',\r\n },\r\n CommissionRate: {\r\n schema: {\r\n properties: {\r\n RateAmount: {\r\n schema: {\r\n type: 'object',\r\n properties: {\r\n Amount: {\r\n nullable: true,\r\n oneOf: [\r\n {\r\n $ref: 'Edm/Double',\r\n type: 'number',\r\n name: 'Double',\r\n },\r\n {\r\n type: 'null',\r\n },\r\n ],\r\n type: 'number',\r\n name: 'Double',\r\n },\r\n },\r\n $$ODataExtension: {\r\n Name: 'RateAmount',\r\n },\r\n name: 'RateAmount',\r\n $$ref: 'Model/RateAmount',\r\n },\r\n $ref: 'Model/RateAmount',\r\n type: 'object',\r\n },\r\n },\r\n type: 'object',\r\n $$ODataExtension: {\r\n Name: 'RateBid',\r\n },\r\n name: 'RateBid',\r\n $$ref: 'Model/RateBid',\r\n },\r\n $ref: 'Model/RateBid',\r\n type: 'object',\r\n },\r\n AdGroupCommissionRate: {\r\n nullable: true,\r\n oneOf: [\r\n {\r\n $ref: 'Edm/Double',\r\n type: 'number',\r\n name: 'Double',\r\n },\r\n {\r\n type: 'null',\r\n },\r\n ],\r\n type: 'number',\r\n name: 'Double',\r\n 'bulk-upload-header': 'Commission Rate',\r\n },\r\n Medium: {\r\n type: 'string',\r\n enum: ['Search', 'Content', 'SearchAndContent'],\r\n },\r\n PricingModel: {\r\n type: 'string',\r\n enum: ['CPC', 'CPM'],\r\n },\r\n Language: {\r\n type: 'string',\r\n enum: ['Arabic', 'TraditionalChinese', 'Danish', 'Dutch', 'English', 'Finnish', 'French', 'German', 'Italian', 'Norwegian', 'Portuguese', 'Spanish', 'Swedish', 'SimplifiedChinese', 'All'],\r\n nullable: true,\r\n chooseType: 'select',\r\n enumType: 'Language',\r\n },\r\n BidTarget: {\r\n type: 'string',\r\n enum: ['Keyword', 'BehaviorSegment', 'Site'],\r\n },\r\n DeliveryStatus: {\r\n type: 'string',\r\n enum: ['CreditCardExpired', 'IOExceeded', 'PaymentInformationMissing', 'InvalidFinancialStatusOther', 'MigrationPaused', 'CampaignDeleted', 'CampaignSuspended', 'CampaignBudgetPaused', 'DomainLanguageNotSupported', 'ShoppingCampaignStoreNotFound', 'ShoppingCampaignNoOffersPresent', 'AdGroupExpired', 'AdGroupDraft', 'AdGroupDeleted', 'CamAssetRejected', 'CamAssetDeleted', 'EditorialRejected', 'EditorialUnderAppeal', 'UrlInvalid', 'ApplicationNotFound', 'ApplicationDestinationUrlMismatch', 'PendingMetadataSync', 'EditorialPending', 'AssociationDeleted', 'CampaignUserPaused', 'AdGroupUserPaused', 'AdUserPaused', 'KeywordMatchTypeAdGroupMediumCombinationInvalid', 'KeywordUserPaused', 'NegativeKeywordConflicts', 'EditorialApprovedLimited', 'LowSupply', 'LowQuality', 'BidBelowFirstPageBid', 'Incomplete', 'BudgetSuggestions', 'InlineOpportunity', 'GeoCodingIncomplete', 'ProductTargetUserPaused', 'AdExtensionNotPresent', 'AdExtensionDeleted', 'AdExtensionAssociationDeleted', 'StoreIdNotAssociated', 'AdGroupAudienceAssociationPaused', 'AdGroupAudienceAssociationExcluded', 'AdNotPresent', 'AdNotActive', 'ApplicationDestinationUrlValidationIncomplete', 'Eligible'],\r\n filterable: true,\r\n },\r\n CallTrackingStatus: {\r\n type: 'string',\r\n enum: ['NotApplicable', 'Eligible', 'NotEligible', 'ProvisioningPending', 'Provisioned'],\r\n },\r\n PerformanceMetrics: {\r\n type: 'object',\r\n schema: PerformanceMetrics,\r\n filterable: ['Impressions', 'Clicks', 'CTR', 'Spend', 'Conversions',\r\n 'AverageCPC', 'AverageCPM', 'AveragePosition', 'CPA', 'RevenueOnAdSpend',\r\n 'ConversionRate', 'AdvertiserReportedRevenue', 'AllConversionCPA', 'AllConversions',\r\n 'AllConversionRate', 'AllConversionAdvertiserReportedRevenue', 'AllConversionRevenueOnAdSpend'],\r\n alias: {\r\n Spend: {\r\n legacy: 'TotalEffectiveCost',\r\n },\r\n },\r\n },\r\n Labels,\r\n PhonePerformanceMetrics: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n QualityScore: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n UpdatedOnLastImport: {\r\n type: 'boolean',\r\n },\r\n HasAuctionInsight: {\r\n type: 'boolean',\r\n filterable: true,\r\n },\r\n IsBidLandscapeAvailable: {\r\n type: 'boolean',\r\n },\r\n TrackingUrlTemplate: {\r\n type: 'string',\r\n },\r\n UrlCustomParameters: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n },\r\n BiddingScheme: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n NativeBidAdjustment: {\r\n type: 'integer',\r\n nullable: true,\r\n },\r\n Properties: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n },\r\n },\r\n DisplayBiddingStrategyType: {\r\n type: 'string',\r\n enum: ['InheritFromParent', 'ManualCpc', 'MaxClicks', 'MaxConversions', 'TargetCpa', 'EnhancedCpc'],\r\n },\r\n DisplayBiddingStrategyMaxCpc: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n DisplayBiddingStrategyTargetCpa: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n DsaTargets: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n },\r\n DomainCategorys: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n },\r\n NegativeAdGroupDsaTargets: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n },\r\n Categories: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n },\r\n DsaSearchTerms: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n },\r\n },\r\n};\r\n","import Promise from 'bluebird';\r\nimport { map, object } from 'underscore';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\n\r\nimport pkg from './package.json';\r\n\r\nexport { dummyDataSource } from './demo/mock/dummy-data-source';\r\n\r\nexport function getAdGroupGridFactory(initializeGlobalContext = true) {\r\n if (initializeGlobalContext) {\r\n return globalContext.define(\r\n pkg.legacyDependencies,\r\n () => import(/* webpackMode: 'eager' */ './src/ad-group-gridview-factory')\r\n );\r\n }\r\n return import(/* webpackMode: 'eager' */ './src/ad-group-gridview-factory'); // eslint-disable-line no-unused-vars\r\n}\r\n\r\nconst bidLandscapeDependencies = [\r\n 'component/config/index',\r\n '@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab',\r\n 'module/service/shared/popup',\r\n 'campaignui/feature/instrumentation/index',\r\n 'component/api-errors-campaign/index',\r\n 'component/js-data-campaign/index',\r\n 'module/service/communication/channel/odata',\r\n];\r\nlet adGroupBidLandscapeInitializer = null;\r\n\r\nexport function getAdGroupBidLandscapeInitializer(initializeGlobalContext = true) {\r\n if (initializeGlobalContext) {\r\n const landscapePromise = new Promise((resolve) => {\r\n if (adGroupBidLandscapeInitializer) {\r\n resolve(adGroupBidLandscapeInitializer);\r\n } else {\r\n window.require(bidLandscapeDependencies, () => {\r\n const dependecies = object(\r\n bidLandscapeDependencies,\r\n map(bidLandscapeDependencies, dep => window.require(dep))\r\n );\r\n\r\n globalContext.define(\r\n bidLandscapeDependencies,\r\n () => import(/* webpackMode: 'eager' */ './src/bid-landscape/index')\r\n )(dependecies).then((result) => {\r\n adGroupBidLandscapeInitializer = result;\r\n resolve(result);\r\n });\r\n });\r\n }\r\n });\r\n return landscapePromise;\r\n }\r\n return import(/* webpackMode: 'eager' */ './src/bid-landscape/index');\r\n}\r\n\r\n\r\nlet adGroupBidLandscapeInitializerWebpack = null;\r\n\r\nexport function getAdGroupBidLandscapeInitializerWebpack(\r\n initializeGlobalContext = true,\r\n dependecies\r\n) {\r\n if (initializeGlobalContext) {\r\n const landscapePromise = new Promise((resolve) => {\r\n if (adGroupBidLandscapeInitializerWebpack) {\r\n resolve(adGroupBidLandscapeInitializerWebpack);\r\n } else {\r\n globalContext.define(\r\n bidLandscapeDependencies,\r\n () => import(/* webpackMode: 'eager' */ './src/bid-landscape/index')\r\n )(dependecies).then((result) => {\r\n adGroupBidLandscapeInitializerWebpack = result;\r\n resolve(result);\r\n });\r\n }\r\n });\r\n return landscapePromise;\r\n }\r\n return import(/* webpackMode: 'eager' */ './src/bid-landscape/index');\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport $ from 'jquery';\r\nimport URI from 'urijs';\r\nimport classnames from 'classnames';\r\nimport { mergeStyleSets } from '@fluentui/react';\r\nimport { insertPopoverContainer } from '@bingads-webui-campaign/fluctuation-common';\r\nimport { GridTooltip } from '@bingads-webui-campaign/grid-tooltip';\r\nimport { appendScopeParameter, getTargetEntity } from '@bingads-webui-campaign/summary-grid-helper';\r\n\r\nexport const campaignManagedDateContainerId = 'campaign-managed-date-tooltip';\r\n\r\nexport const dismissCampaignManagedDateCallout = () => {\r\n const calloutElement = document.getElementById(campaignManagedDateContainerId);\r\n if (calloutElement) {\r\n ReactDOM.unmountComponentAtNode(calloutElement);\r\n }\r\n};\r\n\r\nexport const renderCampaignManagedDateTooltip = ({\r\n i18n, event, view, router, scope,\r\n}) => {\r\n const styles = mergeStyleSets({\r\n content: {\r\n marginBottom: '8px',\r\n },\r\n });\r\n\r\n const { right } = event.target.getBoundingClientRect();\r\n const calloutMaxWidth = 325; // this value is defined in global style\r\n const placement = right + calloutMaxWidth > window.innerWidth ? 'left' : 'right';\r\n\r\n const url = router.getRoutePathById('settings');\r\n const uri = new URI(url);\r\n const entity = getTargetEntity(event, view);\r\n uri.addQuery('campaignId', entity.Campaign?.Id);\r\n uri.addQuery('entrypoint', 'adgroupsgrid');\r\n appendScopeParameter(uri, scope);\r\n const actionLink = uri.toString();\r\n\r\n insertPopoverContainer(campaignManagedDateContainerId);\r\n const tooltipProps = {\r\n parentView: view,\r\n popoverId: 'campaign-managed-date-tooltip-id',\r\n target: event.currentTarget,\r\n show: true,\r\n onClose: dismissCampaignManagedDateCallout,\r\n onMouseLeave: dismissCampaignManagedDateCallout,\r\n closeButton: false,\r\n placement,\r\n focusLockContent: true,\r\n content: (\r\n <>\r\n
\r\n {i18n.getString('CampaignManagedDate_Tooltip')}\r\n
\r\n \r\n {i18n.getString('CampaignManagedDate_Tooltip_ViewLink')}\r\n \r\n \r\n ),\r\n };\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(campaignManagedDateContainerId)\r\n );\r\n};\r\n\r\nexport const hideCampaignManagedDateTooltip = ({ event, view }) => {\r\n if ($(event.relatedTarget).closest('#campaign-managed-date-tooltip-id').length === 0) {\r\n view.trigger('closePopup');\r\n }\r\n};\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport URI from 'urijs';\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { showLabelsPopup, filterOnLabelClick, navigateToManagePage } from '@bingads-webui-campaign/labels';\r\nimport { showQualityScoreDetail } from '@bingads-webui-campaign/campaignui-common-columns';\r\nimport { DeliveryStatusPopupFactory, showRejectionReasons, registerCountryListEvent } from '@bingads-webui-campaign/delivery-status-popup-factory';\r\nimport { getEditorialReasonsTemplate } from '@bingads-webui-campaign/rsa-ad-customizer-attribute-column';\r\nimport { updateGridQuery, appendScopeParameter, setUpErrorHandling, handleShowRejectionReasonEnter, handleShowRejectionReasonLeave } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { pgridFactory } from '@bingads-webui-campaign/pgrid-factory';\r\nimport { PageReady } from '@bingads-webui/page-ready';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport { getRoutePathById, allSiteMap } from '@bingads-webui-react/with-site-map';\r\n\r\nimport { getAdGroupBidLandscapeInitializer, getAdGroupBidLandscapeInitializerWebpack } from '../index';\r\nimport { hideCampaignManagedDateTooltip, renderCampaignManagedDateTooltip } from './tooltips/campaign-managed-date-tooltip';\r\n\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab');\r\nconst commonI18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ads-tab/common');\r\nconst { handleSortChange } = globalContext.require('campaignui/feature/bingadsgrid/service/state-manager-helper');\r\nconst legacyGlobalI18n = globalContext.require('$/i18n!legacy/global');\r\nconst CopyPaste = globalContext.require('module/view/bulkEdit/copyPaste');\r\nconst Hotkeys = globalContext.require('component/hotkeys/index');\r\nconst instrumentation = globalContext.requireDefault('campaignui/feature/instrumentation/index');\r\n\r\nconst permissions = appConfig.get('Permissions');\r\n\r\nexport class AdGroupsGrid extends DeterministicWrapperView {\r\n viewFactory({\r\n deps,\r\n filterService,\r\n getGridConfig,\r\n getPlugins,\r\n preferenceConfig,\r\n router,\r\n scope,\r\n isForVNext = false,\r\n currentCampaign,\r\n pageName,\r\n preexecuteFlag = false,\r\n }) {\r\n this.instrumentation = instrumentation;\r\n this.gridRemoved = false;\r\n this.currentCampaign = currentCampaign;\r\n const gridConfig = getGridConfig(this);\r\n\r\n this.gridName = gridConfig.name;\r\n this.deps = deps;\r\n this.isForVNext = isForVNext;\r\n this.filterService = filterService;\r\n this.scope = scope;\r\n this.router = router;\r\n this.grid = pgridFactory({\r\n gridConfig,\r\n plugins: getPlugins(this),\r\n preferenceConfig,\r\n });\r\n\r\n this.rejectionPopupContainerSelector = '#rejectionContainer';\r\n this.popoverId = 'delivery-status-popup-callout';\r\n this.pageName = pageName;\r\n this.preexecuteFlag = preexecuteFlag;\r\n this.isMCCLabelEnabled = permissions ? permissions.IsAccountLabelsEnabled : false;\r\n\r\n if (!(permissions.dynamic && permissions.dynamic.AdGroupsPageDFMV2)) {\r\n // If DFMv2 is disabled, we need to add the error handler for dataSource\r\n setUpErrorHandling({\r\n i18n,\r\n scope,\r\n gridView: this,\r\n dataSource: gridConfig.dataSource,\r\n });\r\n }\r\n\r\n if (isForVNext) {\r\n this.filterService.on('filter-state-changed', () => {\r\n if (!this.gridRemoved) {\r\n const oldQuery = _.result(this.grid.gridView.get('query'), 'filter');\r\n const newQuery = _.result(this.filterService.getCombinedFilter(), 'query');\r\n // If filter has not changed, do not update grid query\r\n if (!_.isEqual(oldQuery, newQuery)) {\r\n updateGridQuery(\r\n this.grid.gridView,\r\n this.filterService.getCombinedFilter(), true\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.grid.gridView.on('willUpdate', (changes) => {\r\n handleSortChange(changes, this.grid.gridView, gridConfig.name);\r\n });\r\n\r\n this.grid.gridView.on('didUpdate', () => {\r\n this.gridDidUpdateHandler();\r\n });\r\n\r\n this.grid.gridView.once('didReload', () => {\r\n this.grid.gridView.once('didRedraw', () => {\r\n PageReady.pageIsReady(this.pageName);\r\n }, this);\r\n });\r\n\r\n this.grid.pagination.on('change:page-number', (pageNumber) => {\r\n this.setPageNumberToState(pageNumber);\r\n });\r\n\r\n if (!this.preexecuteFlag && permissions.IsCampaignAdGroupCopyPasteEnabled && this.grid.config.name === 'summary_tab_ad_group') {\r\n const bulkEditGridOptions = {\r\n filterService: this.filterService,\r\n gridView: this.grid.gridView,\r\n pgridPlugins: this.grid,\r\n isForVNext: this.isForVNext,\r\n };\r\n\r\n Hotkeys.on('copy', CopyPaste.copy.bind(CopyPaste, 'adgroup', bulkEditGridOptions));\r\n if (this.isForVNext) {\r\n Hotkeys.on('paste', this.grid.paste.onClick);\r\n } else {\r\n Hotkeys.on('paste', CopyPaste.paste.bind(CopyPaste, bulkEditGridOptions));\r\n }\r\n\r\n Hotkeys.setup();\r\n }\r\n\r\n return this.grid.gridView;\r\n }\r\n\r\n gridDidUpdateHandler() {\r\n const data = this.grid.gridView.dataSource.rawData;\r\n setTimeout(() => {\r\n if (data) {\r\n const count = data['@ns.unfiltered.count'];\r\n this.setCreateBtnDisabled(this.shouldDisableCreateBtn(count));\r\n }\r\n });\r\n }\r\n\r\n setPageNumberToState(number) {\r\n state.set('pgridPageNumber', _.defaults({\r\n [this.gridName]: number,\r\n }, state.get('pgridPageNumber') || {}));\r\n }\r\n\r\n setCreateBtnDisabled(shouldDisableCreateBtn) {\r\n if (shouldDisableCreateBtn) {\r\n $('#button-adgroup-create').attr('disabled', 'disabled');\r\n } else {\r\n $('#button-adgroup-create').prop('disabled', false);\r\n }\r\n }\r\n\r\n shouldDisableCreateBtn(count) {\r\n const campaign = this.currentCampaign;\r\n const CurrentAccount = appConfig.get('CurrentAccount');\r\n const { IsReadOnlyUser } = permissions;\r\n // Disable create button when -\r\n // 1. Current campaign is smart shopping campaign and has one ad group\r\n // 2. Current campaign is LinkedIn campaign and has one ad group\r\n if (this.scope.campaignId != null && campaign &&\r\n (campaign.CampaignType === 'LinkedIn' || campaign.CampaignSubType === 'ShoppingSmartAds' || campaign.CampaignSubType === 12)) {\r\n return count >= 1;\r\n }\r\n return !!(IsReadOnlyUser || (CurrentAccount && CurrentAccount.Status === 32));\r\n }\r\n\r\n remove() {\r\n if (!this.preexecuteFlag && permissions.IsCampaignAdGroupCopyPasteEnabled && this.grid.config.name === 'summary_tab_ad_group') {\r\n Hotkeys.reset();\r\n }\r\n this.gridRemoved = true;\r\n this.setPageNumberToState(0);\r\n return super.remove();\r\n }\r\n\r\n renderTrunk() {\r\n if (this.isForVNext) {\r\n this.filterService.initializeCombinedFilterPromise.then(() => {\r\n if (!this.gridRemoved) {\r\n updateGridQuery(\r\n this.grid.gridView,\r\n this.filterService.getCombinedFilter(), true\r\n );\r\n }\r\n });\r\n }\r\n super.renderTrunk();\r\n }\r\n\r\n get events() {\r\n const events = {\r\n 'click .labels-cell-container #see-all': 'onLabelsRowClicked',\r\n 'click .labels-cell-item': (event) => {\r\n const key = this.grid.gridView.keyOfElement(event.target);\r\n const targetEntity = this.grid.gridView.itemWithKey(key);\r\n filterOnLabelClick(\r\n event,\r\n targetEntity.Labels,\r\n this.grid.gridView,\r\n this.filterService,\r\n this.isMCCLabelEnabled\r\n );\r\n },\r\n 'click .manage-labels-button': () => navigateToManagePage(this.router),\r\n 'click .bidlandscape_icon': 'showBidLandscape',\r\n 'click .quality-score-detail': 'showQualityScoreDetails',\r\n 'click .delivery_status_with_reject_reasons': 'showRejectionReason',\r\n 'mouseenter .dashed-date-entry': event => renderCampaignManagedDateTooltip({\r\n event, view: this.grid.gridView, i18n, router: this.router, scope: this.scope,\r\n }),\r\n 'mouseleave .dashed-date-entry': event => hideCampaignManagedDateTooltip({ event, view: this.grid.gridView }),\r\n };\r\n\r\n if (this.isForVNext) {\r\n events['mouseenter .delivery_status_with_reject_reasons'] = permissions.IsDeferredHoveringPopupEnabled ? _.partial(handleShowRejectionReasonEnter, this, this.showRejectionReason) : 'showRejectionReason';\r\n events['mouseleave .delivery_status_with_reject_reasons'] = permissions.IsDeferredHoveringPopupEnabled ? _.partial(handleShowRejectionReasonLeave, null, _.noop) : null;\r\n events['mouseleave .grid-column-Delivery'] = 'hideRejectionReason';\r\n\r\n events['click .editorial_delivery_status_with_inline_appeals'] = 'showEditorialRejectionReason';\r\n events['mouseenter .editorial_delivery_status_with_inline_appeals'] = 'showEditorialRejectionReason';\r\n }\r\n\r\n return events;\r\n }\r\n\r\n getTargetEnity(event) {\r\n const key = this.grid.gridView.keyOfElement(event.target);\r\n\r\n return this.grid.gridView.itemWithKey(key);\r\n }\r\n\r\n onLabelsRowClicked(event) {\r\n const targetEntity = this.getTargetEnity(event);\r\n this.grid.gridView.trigger('willShowLabelsPopup');\r\n\r\n showLabelsPopup({\r\n labels: targetEntity.Labels,\r\n entityType: 'AdGroup',\r\n entityName: targetEntity.Name,\r\n container: this.isForVNext ? $('.grid-and-disclaim-container') : this.$el,\r\n event,\r\n router: this.router,\r\n i18n,\r\n grid: this.grid,\r\n filterService: this.filterService,\r\n isMCCLabelEnabled: this.isMCCLabelEnabled,\r\n });\r\n if (this.isForVNext) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n showEditorialRejectionReason(event) {\r\n const key = this.grid.gridView.keyOfElement(event.target);\r\n const selectedItem = this.grid.gridView.itemWithKey(key);\r\n const editorialStatus = $(event.target).parent('.delivery-info').data('status');\r\n const attributeId = $(event.target).data('entityid');\r\n const valueLevel = $(event.target).parent('.delivery-info').data('valuelevel');\r\n const activity = instrumentation && instrumentation.editorial && instrumentation.editorial.create().toggleCountryList.create();\r\n\r\n showRejectionReasons({\r\n event,\r\n i18n,\r\n deliveryStatusDetails: [editorialStatus],\r\n getCustomTemplate: _.partial(getEditorialReasonsTemplate, {\r\n event,\r\n ajaxOptions: {\r\n host: appConfig.get('odata.url'),\r\n path: appConfig.get('odata.multipart_path'),\r\n oDataToken: appConfig.get('odata.token'),\r\n params: {\r\n campaign_id: selectedItem.Campaign.Id,\r\n account_id: appConfig.get('CurrentAccount').Id,\r\n customer_id: appConfig.get('CurrentCustomer').Id,\r\n adgroup_id: selectedItem.Id,\r\n },\r\n sessionId: appConfig.get('Omniture').SessionId,\r\n },\r\n instrumentation,\r\n i18n,\r\n attributeId,\r\n deliveryStatus: editorialStatus,\r\n valueLevel,\r\n permissions,\r\n commonI18n,\r\n }),\r\n useCustomTemplate: () => true,\r\n popoverId: this.popoverId,\r\n isForVNext: this.isForVNext,\r\n view: this.grid.gridView,\r\n afterRender: popup => registerCountryListEvent(popup.$el, activity, { id: selectedItem.Id, entity: 'ad group customizer attribute' }),\r\n });\r\n }\r\n\r\n showRejectionReason(event) {\r\n const actionLinks = [];\r\n if (this.isForVNext) {\r\n const entity = this.getTargetEnity(event);\r\n if (entity &&\r\n entity.DeliveryStatusDetails &&\r\n _.intersection(entity.DeliveryStatusDetails, ['NoEligibleAds', 'NoEligibleKeywords']).length > 0) {\r\n const resolveURL = (url) => {\r\n const uri = new URI(url);\r\n appendScopeParameter(uri, this.scope);\r\n uri.addQuery('campaignId', entity.Campaign.Id);\r\n uri.addQuery('adGroupId', entity.Id);\r\n uri.addQuery('isOpenCreatePanel', true);\r\n return uri.toString();\r\n };\r\n\r\n if (entity.DeliveryStatusDetails.includes('NoEligibleAds')) {\r\n const url = this.router.getRoutePathById('ads');\r\n actionLinks.NoEligibleAds = resolveURL(url);\r\n }\r\n if (entity.DeliveryStatusDetails.includes('NoEligibleKeywords')) {\r\n const url = this.router.getRoutePathById('keywords');\r\n actionLinks.NoEligibleKeywords = resolveURL(url);\r\n }\r\n }\r\n\r\n if (entity && entity.DeliveryStatusDetails &&\r\n entity.DeliveryStatusDetails.includes('ShoppingCampaignNoOffersPresent')) {\r\n // use all site map to get merchant center url for different scopes\r\n const url = getRoutePathById(allSiteMap, 'merchant-center');\r\n const uri = new URI(url);\r\n appendScopeParameter(uri, this.scope);\r\n actionLinks.ShoppingCampaignNoOffersPresent = uri.toString();\r\n }\r\n }\r\n\r\n const view = new DeliveryStatusPopupFactory({ grid: this.grid, i18n });\r\n view.showRejectionPopup({\r\n event,\r\n actionLinks,\r\n containerSelector: this.rejectionPopupContainerSelector,\r\n view: this,\r\n popoverId: this.popoverId,\r\n instrumentation,\r\n inContextRepairRecommedationType: 'adGroup',\r\n });\r\n }\r\n\r\n hideRejectionReason(e) {\r\n if ($(e.relatedTarget).closest(`#${this.popoverId}`).length === 0) {\r\n this.grid.gridView.trigger('closeDeliveryStatusPopup');\r\n }\r\n }\r\n\r\n showBidLandscape(event) {\r\n const targetEntity = this.getTargetEnity(event);\r\n\r\n const initializer = this.isForVNext\r\n ? () => getAdGroupBidLandscapeInitializerWebpack(\r\n true,\r\n this.deps.bidLandscapeDependencies\r\n )\r\n : getAdGroupBidLandscapeInitializer;\r\n\r\n initializer()\r\n .then(({ openAdGroupBidLandscape }) =>\r\n openAdGroupBidLandscape({\r\n event,\r\n scope: this.scope,\r\n adgroup: targetEntity,\r\n applyCallback: (updates) => {\r\n const newAdGroup = _.defaults({ ...updates }, targetEntity);\r\n\r\n this.grid.gridView.trigger('didEdit', newAdGroup);\r\n },\r\n applyBlockerEl: this.grid.gridView.$el.parent(),\r\n container: this.$el,\r\n isForVNext: this.isForVNext,\r\n }));\r\n }\r\n\r\n showQualityScoreDetails(event) {\r\n const targetEntity = this.getTargetEnity(event);\r\n\r\n showQualityScoreDetail(event, targetEntity.QualityScore, 'qsContainer', legacyGlobalI18n); // qsContainer is the id from qsContainerTemplate\r\n }\r\n\r\n get className() { return 'ad-groups-grid'; }\r\n}\r\n","import _ from 'underscore';\r\nimport { AlertHelper } from '@bingads-webui-campaign/alert-helper';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\n\r\nconst jsData = globalContext.require('component/js-data-campaign/index');\r\nconst i18nErrors = globalContext.require('component/api-errors-campaign/index');\r\n\r\n// complex fields will impact value of other fields\r\n// or read and write of fields are different schemes\r\nconst complexFields = ['EndDate', 'Status', 'AdGroupPercentCpcBid', 'AdGroupCommissionRate'];\r\n\r\nexport function InlineEditableSave({\r\n view,\r\n i18n,\r\n fieldName,\r\n updated,\r\n editorView,\r\n editorViewCallbackAfterUpdate,\r\n isDateType = false,\r\n}) {\r\n const toUpdate = _.pick(updated, 'Id', fieldName);\r\n\r\n // grid load will get date with ISO format: 2018-04-05T00:00:00.000Z,\r\n // we use bulk upsert api to do inline update, but bulk upsert cannot use the ISO format\r\n // as MT seems doing some sepcial transformation with this format\r\n // to fix this, we upsert with a MM/dd/yyyy format, but update grid with ISO format\r\n if (isDateType) {\r\n toUpdate[fieldName] = updated[fieldName] ?\r\n i18n.formatDate(new Date(updated[fieldName]), { raw: 'MM/dd/yyyy', timeZone: 'UTC' }) :\r\n null;\r\n }\r\n\r\n toUpdate.Campaign = { Id: updated.Campaign.Id };\r\n let blockerContainer;\r\n\r\n if (view.isForVNext && view.grid.config.plugins.uiBlocker.el) {\r\n blockerContainer = view.grid.config.plugins.uiBlocker.el;\r\n } else {\r\n blockerContainer = view.grid.gridView.$el;\r\n }\r\n\r\n jsData.AdGroup\r\n .update(updated.Id, toUpdate, { adapter: 'bulk' })\r\n .finally(withUiBlock(blockerContainer))\r\n .then(() => {\r\n if (editorViewCallbackAfterUpdate && _.isFunction(editorViewCallbackAfterUpdate)) {\r\n editorViewCallbackAfterUpdate();\r\n }\r\n\r\n if (_.contains(complexFields, fieldName)) {\r\n view.grid.gridView.refresh(true);\r\n } else {\r\n view.grid.gridView.trigger('didEdit', updated);\r\n }\r\n })\r\n .catch((response) => {\r\n const errorMapping = {};\r\n const unexpectedError = i18n.getString('ErrorNumber_-1');\r\n\r\n if (!response || !response.errors) {\r\n errorMapping[fieldName] = unexpectedError;\r\n } else {\r\n const errors = i18nErrors.getBulkApiErrors(response.errors, 'newadgroup');\r\n\r\n if (!errors || !errors[0] || !errors[0].message) {\r\n errorMapping[fieldName] = unexpectedError;\r\n } else {\r\n errorMapping[fieldName] = errors[0].message;\r\n }\r\n }\r\n\r\n if (_.isFunction(editorView.setErrors)) {\r\n editorView.setErrors(errorMapping);\r\n } else {\r\n const alertHelper = new AlertHelper({ i18n });\r\n alertHelper.showError(errorMapping[fieldName]);\r\n }\r\n });\r\n}\r\n","import { AdGroupCashbackPercentColumnFactory } from '@bingads-webui-campaign/personalized-offer-columns';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\n\r\nexport const AdGroupCashbackPercentColumn = AdGroupCashbackPercentColumnFactory({\r\n updater: InlineEditableSave,\r\n});\r\n","import { AdGroupCashbackScopeColumnFactory } from '@bingads-webui-campaign/personalized-offer-columns';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\n\r\nexport const AdGroupCashbackScopeColumn = AdGroupCashbackScopeColumnFactory({\r\n updater: InlineEditableSave,\r\n});\r\n","import { AdGroupCouponColumnFactory } from '@bingads-webui-campaign/personalized-offer-columns';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\n\r\nexport const AdGroupCouponColumn = AdGroupCouponColumnFactory({\r\n updater: InlineEditableSave,\r\n});\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { DeterministicView } from '@bingads-webui/deterministic-view';\r\nimport { LanguageSelector } from '@bingads-webui-campaign/language-selector';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { AdGroup } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { customizedInlineEditTemplate } from '@bingads-webui-campaign/summary-grid-helper';\r\n\r\nconst config = globalContext.require('component/config/index');\r\nconst Permissions = config.get('Permissions');\r\n\r\nfunction getLanguages() {\r\n let languages = AdGroup.properties.Language.enum;\r\n if (!Permissions.IsSimplifiedChineseLanguageEnabledInMultipleLanguage) {\r\n languages = _.without(languages, 'SimplifiedChinese');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase1Enabled) {\r\n languages = _.without(languages, 'Greek', 'Polish', 'Bulgarian', 'Croatian', 'Czech', 'Estonian', 'Hungarian', 'Latvian', 'Lithuanian', 'Maltese', 'Romanian', 'Slovak', 'Slovenian');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase2Enabled) {\r\n languages = _.without(languages, 'Turkish', 'Serbian', 'Bosnian', 'Albanian', 'Macedonian', 'Icelandic');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase6Enabled) {\r\n languages = _.without(languages, 'Hebrew', 'Arabic', 'Russian');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase2JapanEnabled) {\r\n languages = _.without(languages, 'Japanese');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase9Enabled) {\r\n languages = _.without(languages, 'Hindi', 'Malay', 'Thai', 'Indonesian', 'Tagalog');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase9VIEnabled) {\r\n languages = _.without(languages, 'Vietnamese');\r\n }\r\n\r\n // make 'All' the first language\r\n languages = _.without(languages, 'All', 'None');\r\n\r\n if (Permissions.IsDomesticSimplifiedChineseEnabled) {\r\n languages = ['SimplifiedChinese'];\r\n }\r\n\r\n return languages;\r\n}\r\n\r\nexport class LanguageInlineEditView extends DeterministicView {\r\n initialize({ selectedLanguage, i18n, campaignHasLanguage }) {\r\n super.initialize({ selectedLanguage, i18n });\r\n\r\n this.options = {\r\n languages: getLanguages(),\r\n i18n,\r\n withInheritOption: campaignHasLanguage,\r\n selectedLanguage,\r\n i18nStrings: {\r\n SaveWarning: '',\r\n Description: i18n.getString('AdGroup_MarketLanguage'),\r\n },\r\n };\r\n this.languageSelector = new LanguageSelector(this.options);\r\n this.setChild('subEditView', this.languageSelector);\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .btn-primary': 'save',\r\n 'click .btn-default': 'cancel',\r\n };\r\n }\r\n\r\n get template() {\r\n return ({ model }) => customizedInlineEditTemplate({ model, i18n: this.options.i18n });\r\n }\r\n\r\n save() {\r\n this.trigger('save', { selectedLanguage: this.languageSelector.getSelectedLanguage() });\r\n }\r\n\r\n cancel() {\r\n this.trigger('close');\r\n }\r\n\r\n setErrors(errors) {\r\n if (errors && !_.isEmpty(errors) && _.isObject(errors)) {\r\n $('.grid-error-list').removeClass('hide');\r\n $('.grid-error-message').html(errors[_.keys(errors)[0]]);\r\n } else {\r\n $('.grid-error-list').addClass('hide');\r\n }\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport { LanguageColumn as LanguageColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { LanguageInlineEditView } from './inline-editable/language-view';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\n\r\n\r\nexport class LanguageColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n i18n, scope, view, isForVNext,\r\n }) {\r\n const title = i18n.getString('ColumnName_Language');\r\n const appConfig = globalContext.require('component/config/index');\r\n const permissions = appConfig.get('Permissions');\r\n const isDSAMixedModeCampaignEnabled = _.result(permissions, 'IsDSAMixedModeCampaignEnabled', false);\r\n\r\n super({\r\n ...LanguageColumnConfig,\r\n title,\r\n editable: true,\r\n type: 'string',\r\n enableEdit: item => this.shouldEnableInlineEdit(item, isDSAMixedModeCampaignEnabled),\r\n helpId: 'pop_BA_Settings_Language',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.scope = scope;\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n shouldEnableInlineEdit(item, isDSAMixedModeCampaignEnabled) {\r\n const adGroupType = item.AdGroupType;\r\n\r\n return item.Campaign && item.Campaign.CampaignType &&\r\n // currently only default type is inline editable\r\n item.Campaign.CampaignType === 'Default' &&\r\n // For users enabled mixed mode campaign pilot,\r\n // we should check whether current ad group is dynamic ad group\r\n ((isDSAMixedModeCampaignEnabled && adGroupType !== 'SearchDynamic') || !isDSAMixedModeCampaignEnabled);\r\n }\r\n\r\n pickProperty(item) {\r\n if (item.$total) {\r\n return ' ';\r\n }\r\n\r\n return item.Language ?\r\n this.i18n.getString(`Language_${item.Language}`) :\r\n this.i18n.getString('Language_Inherit');\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const languageEditorView = new LanguageInlineEditView({\r\n selectedLanguage: item.Language,\r\n i18n: this.i18n,\r\n campaignHasLanguage:\r\n item.Campaign && item.Campaign.Languages && item.Campaign.Languages.length > 0,\r\n });\r\n\r\n languageEditorView.on('save', ({ selectedLanguage }) => {\r\n const updated = _.extendOwn({}, item, { Language: selectedLanguage });\r\n\r\n return InlineEditableSave({\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'Language',\r\n updated,\r\n editorView: languageEditorView,\r\n editorViewCallbackAfterUpdate: () => {\r\n languageEditorView.trigger('close');\r\n },\r\n });\r\n });\r\n const groupClass = `grid-group-${_.result(this.config, 'group', 'other')}`;\r\n const editorView = new GridCustomizedPopupEditor({\r\n editorView: languageEditorView.render(),\r\n cellPosition: this.isForVNext ? newPosition : position,\r\n renderBelow: false,\r\n className: `adgroup-grid-inline-edit-popup grid-popupeditor ${groupClass}`,\r\n parentContainerSelector: this.isForVNext ? '.grid-and-disclaim-container' : null,\r\n });\r\n\r\n return editorView.render();\r\n }\r\n}\r\n","import * as PopupEditor from '@bingads-webui/popup-editor';\r\nimport { AdGroup } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { InlineEditableSave } from './save';\r\n\r\n\r\nexport function InlineEditableColumnPrompt({\r\n position, item, view, i18n, fieldName, saveModel = null, customValidators = null,\r\n adGroupSchema = AdGroup, customClass, customHint,\r\n}) {\r\n let saveModelCallback;\r\n\r\n if (saveModel) {\r\n saveModelCallback = saveModel;\r\n } else {\r\n saveModelCallback = (updated, editorView) =>\r\n InlineEditableSave({\r\n view,\r\n i18n,\r\n fieldName,\r\n updated,\r\n editorView,\r\n editorViewCallbackAfterUpdate: () => editorView.trigger('save', updated),\r\n });\r\n }\r\n\r\n PopupEditor.prompt({\r\n position,\r\n i18n,\r\n schema: adGroupSchema,\r\n model: item,\r\n fields: [fieldName],\r\n hasLabels: false,\r\n template: 'inline',\r\n customValidators,\r\n saveModel: saveModelCallback,\r\n parentContainerSelector: '.grid-and-disclaim-container',\r\n customClass,\r\n customHint,\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { adGroupMetricCategoriesFactory } from '@bingads-webui/custom-columns-shared-config';\r\nimport {\r\n BidStrategyNameColumn,\r\n ColumnConversions,\r\n ColumnViewThroughConversions,\r\n DeliveryColumn,\r\n ColumnTopImpressionRate,\r\n ColumnAbsoluteTopImpressionRate,\r\n ColumnConversionsCredit,\r\n ColumnViewThroughConversionsCredit,\r\n} from '@bingads-webui-campaign/campaignui-common-columns';\r\nimport { RSAAdCustomizerAttributeColumn } from '@bingads-webui-campaign/rsa-ad-customizer-attribute-column';\r\nimport { LabelsColumn } from '@bingads-webui-campaign/labels';\r\nimport { ColumnsConfigBuilder } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { AdGroupCashbackPercentColumn } from './attributes/ad-group-cashback-percent-column';\r\nimport { AdGroupCashbackScopeColumn } from './attributes/ad-group-cashback-scope-column';\r\nimport { AdGroupCouponColumn } from './attributes/ad-group-coupon-column';\r\nimport { LanguageColumn } from './attributes/language';\r\nimport { AdGroupColumn } from './attributes/ad-group';\r\nimport { CampaignColumn } from './attributes/campaign';\r\nimport { BidStrategyTypeColumn } from './attributes/bid-strategy-type';\r\nimport { SearchBidColumn } from './attributes/search-bid-column';\r\nimport { CpmBidColumn } from './attributes/cpm-bid-column';\r\nimport { CpvBidColumn } from './attributes/cpv-bid-column';\r\nimport { PercentCpcBidColumn } from './attributes/percent-cpc-bid-column';\r\nimport { CommissionRateColumn } from './attributes/pay-per-stay-bid-column';\r\nimport { QualityScoreColumn } from './attributes/quality-score';\r\nimport { MediumColumn } from './attributes/medium';\r\nimport { AdGroupIdColumn } from './attributes/ad-group-id';\r\nimport { StartDateColumn } from './attributes/start-date';\r\nimport { EndDateColumn } from './attributes/end-date';\r\nimport { StatusIconColumn } from './attributes/status-icon';\r\nimport { AdGroupTypeColumn } from './attributes/ad-group-type';\r\nimport { CustomParametersColumn, FinalUrlSuffixColumn, TrackingTemplateColumn } from './attributes/tracking-template-columns';\r\nimport {\r\n getLockedBidColumns, getUnlockedBidColumns, isBiddingSchemeUpdated,\r\n getSelectedBidColumns, columnProcessorBeforeSetRecordGetter\r\n} from './dynamic-column-config-utils';\r\n\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab');\r\nconst i18nErrors = globalContext.require('component/api-errors-campaign/index');\r\nconst { Columns, SelectedColumns } = globalContext.require('component/bingads-grid/service/column-chooser-preferences');\r\nconst { LegacyColumns, LegacySelectedColumns } = globalContext.require('component/bingads-grid/service/legacy-column-chooser-preferences');\r\nconst { CustomColumns } = globalContext.require('component/bingads-grid/service/custom-column-preferences');\r\nconst config = globalContext.require('component/config/index');\r\nconst { LegacyGridFlag } = globalContext.require('component/bingads-grid/service/legacy-grid-flag-preferences');\r\nconst jsData = globalContext.require('component/js-data-campaign/index');\r\nconst Permissions = config.get('Permissions');\r\nlet builder = null;\r\nlet campaignIdInLastBuilder;\r\nlet lastGlobalCampaignTypeFilter;\r\n\r\nconst {\r\n IsViewThroughConversionEnabled,\r\n IsAudienceSOVEnabled,\r\n IsDSAMixedModeCampaignEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsPersonalizedOffersEnabled,\r\n IsPersonalizedOffersV3Enabled,\r\n IsVideoAdsForCampaignEnabled,\r\n IsManualCpmEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n IsPersonalizedOffersV4Enabled,\r\n dynamic = {},\r\n} = Permissions;\r\n\r\nconst {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n HotelCampaign: IsHotelCampaignEnabled,\r\n XandrVideoCampaigns,\r\n CPSReporting,\r\n InstallPerformanceColumns,\r\n ConvValueRules: isConversionValueRuleColumnsEnabled,\r\n} = dynamic;\r\n\r\nconst usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\nconst isPortfolioBidStrategyEnabled = _.result(Permissions.dynamic, 'PortfolioBidStrategy');\r\n\r\nconst allBidColumns = [\r\n SearchBidColumn,\r\n CpvBidColumn,\r\n CpmBidColumn,\r\n PercentCpcBidColumn,\r\n CommissionRateColumn,\r\n];\r\n\r\nfunction getBuilder({ campaignId, currentCampaign, globalCampaignTypeFilter }) {\r\n // initialize column config if\r\n // 1: not initialize yet.\r\n // 2: scope has changed from account to campaign level or campaign to account level\r\n // 3: global campaign filter updates\r\n if (builder === null || campaignId !== campaignIdInLastBuilder ||\r\n lastGlobalCampaignTypeFilter !== globalCampaignTypeFilter ||\r\n isBiddingSchemeUpdated({ campaignId, currentCampaign })) {\r\n campaignIdInLastBuilder = campaignId;\r\n lastGlobalCampaignTypeFilter = globalCampaignTypeFilter;\r\n let lockedColumns = [\r\n AdGroupColumn,\r\n ];\r\n\r\n if (!campaignId) {\r\n lockedColumns.push(CampaignColumn);\r\n }\r\n\r\n lockedColumns = lockedColumns.concat(getLockedBidColumns({\r\n campaignId,\r\n currentCampaign,\r\n allBidColumns,\r\n IsVideoAdsForCampaignEnabled: IsVideoAdsForCampaignEnabled || XandrVideoCampaigns,\r\n IsManualCpmEnabled,\r\n IsHotelCampaignEnabled,\r\n config,\r\n globalCampaignTypeFilter,\r\n }));\r\n\r\n builder = new ColumnsConfigBuilder({ Permissions })\r\n .addCategory('Attributes', category => category.addColumns(_.compact(_.union(lockedColumns, [\r\n DeliveryColumn,\r\n isPortfolioBidStrategyEnabled && BidStrategyNameColumn,\r\n BidStrategyTypeColumn,\r\n ...getUnlockedBidColumns({\r\n campaignId,\r\n currentCampaign,\r\n allBidColumns,\r\n IsVideoAdsForCampaignEnabled: IsVideoAdsForCampaignEnabled || XandrVideoCampaigns,\r\n IsManualCpmEnabled,\r\n IsHotelCampaignEnabled,\r\n config,\r\n globalCampaignTypeFilter,\r\n }),\r\n QualityScoreColumn,\r\n MediumColumn,\r\n AdGroupIdColumn,\r\n StartDateColumn,\r\n EndDateColumn,\r\n Permissions.IsCampaignMultipleLanguageEnabled && LanguageColumn,\r\n TrackingTemplateColumn,\r\n CustomParametersColumn,\r\n FinalUrlSuffixColumn,\r\n LabelsColumn,\r\n IsPersonalizedOffersEnabled && !IsPersonalizedOffersV4Enabled\r\n ? AdGroupCashbackPercentColumn : null,\r\n IsPersonalizedOffersEnabled && !IsPersonalizedOffersV4Enabled\r\n ? AdGroupCashbackScopeColumn : null,\r\n IsPersonalizedOffersV3Enabled && !IsPersonalizedOffersV4Enabled\r\n ? AdGroupCouponColumn : null,\r\n IsDSAMixedModeCampaignEnabled && AdGroupTypeColumn,\r\n ]))))\r\n .addPerformanceCategoryForAdGroups({\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n })\r\n .addConversionsCategory({\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n withPartialConversions: IsPartialConversionsEnabled,\r\n IsColumnConversionEnabled,\r\n isCPSEnabled: CPSReporting,\r\n isInstallColumnsEnabled: InstallPerformanceColumns,\r\n isConversionValueRuleColumnsEnabled,\r\n })\r\n .addCompetitiveCategoryForCampaignOrAdGroups({\r\n IsAudienceSOVEnabled,\r\n });\r\n\r\n if (Permissions.IsCallMeteringAllowed) {\r\n builder.addCallDetailsCategory();\r\n }\r\n\r\n builder\r\n .setLockedColumns([\r\n StatusIconColumn,\r\n ...lockedColumns,\r\n ])\r\n .setSelectedColumns(_.compact([\r\n IsDSAMixedModeCampaignEnabled && AdGroupTypeColumn,\r\n DeliveryColumn,\r\n isPortfolioBidStrategyEnabled && BidStrategyNameColumn,\r\n BidStrategyTypeColumn,\r\n ...getSelectedBidColumns({\r\n allBidColumns,\r\n IsVideoAdsForCampaignEnabled: IsVideoAdsForCampaignEnabled || XandrVideoCampaigns,\r\n IsManualCpmEnabled,\r\n }),\r\n LabelsColumn,\r\n QualityScoreColumn,\r\n MediumColumn,\r\n AdGroupIdColumn,\r\n StartDateColumn,\r\n EndDateColumn,\r\n Permissions.IsCampaignMultipleLanguageEnabled && LanguageColumn,\r\n TrackingTemplateColumn,\r\n CustomParametersColumn,\r\n FinalUrlSuffixColumn,\r\n usePartialConversions && ColumnConversionsCredit,\r\n !usePartialConversions && ColumnConversions,\r\n usePartialConversions && ColumnViewThroughConversionsCredit,\r\n !usePartialConversions && ColumnViewThroughConversions,\r\n IsAvgPositionDeprecationPhase1Enabled && ColumnTopImpressionRate,\r\n IsAvgPositionDeprecationPhase1Enabled && ColumnAbsoluteTopImpressionRate,\r\n ]));\r\n }\r\n\r\n return builder;\r\n}\r\n\r\nconst nameFromLegacy = {\r\n StatusIcon: 'Status',\r\n Name: 'AdGroup',\r\n CampaignName: 'Campaign',\r\n DeliveryStatusView: 'Delivery',\r\n DisplayBiddingStrategyType: 'BidStrategyType',\r\n 'Bidding.BroadBid': 'SearchBid',\r\n FormattedMedium: 'Medium',\r\n ID: 'AdGroupId',\r\n TrackingTemplateJson: 'TrackingTemplate',\r\n UrlCustomParametersJson: 'CustomParameters',\r\n ClickCount: 'Clicks',\r\n ImpressionCount: 'Impressions',\r\n ClickThrough: 'CTR',\r\n TotalSpendAmount: 'Spend',\r\n TotalCost: 'ClickAndPhoneSpend',\r\n ConversionCount: 'Conversions',\r\n AdGroupCallTrackingStatus: 'CallForwarding',\r\n PhoneCost: 'PhoneSpend',\r\n PhoneThroughRate: 'PTR',\r\n};\r\n\r\nexport function getColumnsConfig(options) {\r\n return getBuilder(_.defaults({}, options.scope, _.pick(options, 'currentCampaign', 'globalCampaignTypeFilter')))\r\n .getColumnsConfig(options);\r\n}\r\n\r\nexport function getColumnChooserConfig({\r\n scope, currentCampaign, filterService, isForVNext = false,\r\n globalCampaignTypeFilter,\r\n}) {\r\n let customColumnConfig;\r\n\r\n if (Permissions.IsCustomColumnsInAdGroupsSupported) {\r\n const { metricCategories, segmentCategories } = adGroupMetricCategoriesFactory(Permissions);\r\n\r\n customColumnConfig = {\r\n enabled: true,\r\n metricCategories,\r\n segmentCategories,\r\n filterService,\r\n };\r\n }\r\n\r\n const bidColumns = [\r\n 'SearchBid',\r\n 'CpvBid',\r\n 'CpmBid',\r\n 'PercentCpcBid',\r\n 'CommissionRate',\r\n ];\r\n const lockedColumns = getLockedBidColumns({\r\n campaignId: currentCampaign && currentCampaign.Id,\r\n currentCampaign,\r\n allBidColumns: bidColumns,\r\n IsVideoAdsForCampaignEnabled,\r\n IsManualCpmEnabled,\r\n IsHotelCampaignEnabled,\r\n config,\r\n globalCampaignTypeFilter,\r\n });\r\n const columnProcessorBeforeSetRecord = columnProcessorBeforeSetRecordGetter(lockedColumns);\r\n\r\n // eslint-disable-next-line max-len\r\n return _.defaults(getBuilder(_.defaults({}, scope, { currentCampaign, globalCampaignTypeFilter })).getColumnChooserConfig({\r\n i18n,\r\n patchQuery: true,\r\n Columns,\r\n SelectedColumns,\r\n LegacyColumns,\r\n LegacySelectedColumns,\r\n LegacyGridFlag,\r\n nameFromLegacy,\r\n CustomColumns,\r\n customColumnConfig,\r\n permissions: Permissions,\r\n }), {\r\n isForVNext,\r\n i18nErrors,\r\n columnProcessorBeforeSetRecord,\r\n AdCustomizerAttribute: jsData.AdCustomizerAttribute,\r\n resource: jsData.AdGroupAdCustomizerAttribute,\r\n RSAAdCustomizerAttributeColumn,\r\n enableRSAAdCustomizer: true,\r\n });\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { AdGroupColumn as AdGroupColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { InlineEditableColumnPrompt } from './inline-editable/prompt';\r\nimport adGroupTemplate from './ad-group.pug';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\n\r\nexport class AdGroupColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n i18n,\r\n scope,\r\n view,\r\n permissions,\r\n }) {\r\n super({\r\n ...AdGroupColumnConfig,\r\n title: i18n.getString('ColumnName_AdGroup'),\r\n sortable: 'Name',\r\n editable: true,\r\n type: 'string',\r\n bodyClasses: ['grid-column-AdGroup'],\r\n group: 'freezing',\r\n });\r\n\r\n this.scope = scope;\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.permissions = permissions;\r\n }\r\n\r\n pickProperty(item) {\r\n const { customerId: cid, accountId: aid, userId: uid } = this.scope;\r\n const {\r\n Id: adgid,\r\n Campaign: {\r\n Id: cmpid,\r\n CampaignType,\r\n } = {},\r\n Name: name,\r\n AdGroupType,\r\n $total,\r\n } = item;\r\n\r\n let pathName = '/campaign/vnext/keywords';\r\n if (CampaignType === 'Shopping') {\r\n pathName = '/campaign/vnext/productgroups/hierarchy';\r\n } else if (CampaignType === 'Hotel') {\r\n const IsRenameHotelToLodgingEnabled = this.permissions && this.permissions.dynamic && this.permissions.dynamic.IsRenameHotelToLodgingEnabled;\r\n if (IsRenameHotelToLodgingEnabled) {\r\n pathName = '/campaign/vnext/propertygroups/hierarchy';\r\n } else {\r\n pathName = '/campaign/vnext/hotelgroups/hierarchy';\r\n }\r\n } else if (AdGroupType === 'SearchDynamic') {\r\n pathName = '/campaign/vnext/dynamicadtargets/targets';\r\n } else if (CampaignType === 'LinkedIn') {\r\n pathName = '/campaign/vnext/ads';\r\n }\r\n\r\n const vNextHref = `${pathName}?aid=${aid}&cid=${cid}&uid=${uid}&campaignId=${cmpid}&adGroupId=${adgid}`;\r\n\r\n return {\r\n cmpid,\r\n adgid,\r\n $total,\r\n name,\r\n isForVNext: true,\r\n href: vNextHref,\r\n ariaLabel: this.i18n.getString('Click to scope to ad group {{adGroupName}}', { adGroupName: name }),\r\n };\r\n }\r\n\r\n get template() { return adGroupTemplate; }\r\n\r\n onPrompt({\r\n event, item, newPosition,\r\n }) {\r\n if ($(event.target).is('a')) {\r\n event.preventDefault();\r\n return undefined;\r\n }\r\n\r\n return InlineEditableColumnPrompt({\r\n position: newPosition,\r\n item,\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'Name',\r\n saveModel: (updated, editorView) =>\r\n InlineEditableSave({\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'Name',\r\n updated,\r\n editorView,\r\n editorViewCallbackAfterUpdate: () => {\r\n editorView.trigger('save', updated);\r\n // update wunderbar\r\n const response = [{\r\n Id: item.Id,\r\n Name: updated.Name,\r\n }];\r\n\r\n window.App.trigger('adGroupUpdated', { data: response });\r\n },\r\n }),\r\n customClass: `grid-group-${_.result(this.config, 'group', 'other')}`,\r\n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { CampaignColumn as CampaignColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport campaignTemplate from './campaign.pug';\r\n\r\nexport class CampaignColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n i18n, scope, router, isForVNext,\r\n }) {\r\n super({\r\n ...CampaignColumnConfig,\r\n title: i18n.getString('ColumnName_Campaign'),\r\n sortable: 'Campaign/Name',\r\n bodyClasses: ['grid-column-Campaign'],\r\n type: 'string',\r\n });\r\n\r\n this.i18n = i18n;\r\n this.scope = scope;\r\n this.router = router;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n const { customerId: cid, accountId: aid } = this.scope;\r\n const {\r\n Campaign: {\r\n Name: name,\r\n Id: cmpid,\r\n BaseCampaignName: baseCampaignName,\r\n } = {},\r\n } = item;\r\n\r\n const vNextHref = `/campaign/vnext/campaigns?campaignId=${cmpid}`;\r\n\r\n let ariaLabel = this.i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: name });\r\n let className = '';\r\n\r\n if (this.isForVNext && baseCampaignName) {\r\n ariaLabel = this.i18n.getString('Click to scope to experiment {{experimentName}}', { experimentName: name });\r\n className = 'experiment-name';\r\n }\r\n\r\n return {\r\n name,\r\n href: this.isForVNext ? vNextHref : this.router.getRouteTo({\r\n cid,\r\n aid,\r\n cmpid,\r\n }),\r\n cmpid,\r\n baseCampaignName,\r\n isForVNext: this.isForVNext,\r\n ariaLabel,\r\n className,\r\n };\r\n }\r\n\r\n get template() { return campaignTemplate; }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { SchemaI18n } from '@bingads-webui-universal/schema-i18n';\r\nimport { BidStrategyTypeColumn as BidStrategyTypeColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { isXandrServing } from '@bingads-webui-campaign-react/constants';\r\n\r\nimport bidStrategyTypeTemplate from './bid-strategy-type.pug';\r\n\r\nexport class BidStrategyTypeColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n const title = i18n.getString('ColumnName_BidStrategyType');\r\n\r\n super({\r\n ...BidStrategyTypeColumnConfig,\r\n title,\r\n sortable: 'DisplayBiddingStrategyType',\r\n type: 'string',\r\n helpId: 'pop_BA_CampaignGrids_BidStrategy',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.schemaI18n = new SchemaI18n({ i18n });\r\n }\r\n\r\n pickProperty(item) {\r\n let type = item.DisplayBiddingStrategyType;\r\n\r\n if (isXandrServing(_.result(item.Campaign, 'CampaignSubType'), _.result(item.Campaign, 'CampaignSettings'))) {\r\n if (type === 'ManualCpm') {\r\n type = 'ViewableCpm';\r\n } else if (type === 'ManualCpv') {\r\n type = 'Cpcv';\r\n }\r\n }\r\n\r\n return type;\r\n }\r\n\r\n template({ value }) {\r\n return bidStrategyTypeTemplate({ value, schemaI18n: this.schemaI18n });\r\n }\r\n}\r\n","/* eslint-disable no-param-reassign */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { ceil } from 'lodash';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { AdGroup } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { BiddingStrategyToRangeKey, DefaultBidCPVWarningThreshold, BiddingStrategyToPricingModel } from '@bingads-webui-campaign/audience-campaign-shared';\r\nimport { defaultMSStoreMinSuggestionBid } from '@bingads-webui-campaign-legacy/budget/shared/defaultBid';\r\nimport { isMSStoreAdsCampaign } from '@bingads-webui-campaign-react/ms-store-ads-common';\r\nimport { Alert } from '@bingads-webui-react/alert';\r\nimport { isXandrServing, isXandrVideoAdsCampaign } from '@bingads-webui-campaign-react/constants';\r\nimport { InlineEditableColumnPrompt } from './inline-editable/prompt';\r\nimport template from './bid-base-column.pug';\r\n\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst permissions = appConfig.get('Permissions');\r\n\r\nexport const commonBidStrategyListToDisableBidAmountEdit = (keepEnabled = []) => ['ManualCpc', 'ManualCpv', 'ManualCpm', 'ManualCpa', 'EnhancedCpc', 'MaxClicks', 'MaxConversions', 'TargetCpa',\r\n 'TargetRoas', 'MaxConversionValue', 'TargetImpressionShare', 'CostPerSale', 'PercentCpc', 'Commission', 'MaxReach', 'MaxImpressions'].filter(bidStrategyType => !keepEnabled.includes(bidStrategyType));\r\n\r\nexport class BidBaseColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n name, property, title, i18n, view, bidStrategyListToDisableBidAmountEdit, sortable,\r\n }) {\r\n super({\r\n name,\r\n property: property || [name, 'IsBidLandscapeAvailable', 'DisplayBiddingStrategyType'],\r\n title: title || 'Bid',\r\n sortable: sortable || name,\r\n type: 'number',\r\n helpId: `Page_CampaignGrids_${name}`,\r\n enableEdit: item =>\r\n !_.contains(bidStrategyListToDisableBidAmountEdit, item.DisplayBiddingStrategyType),\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.view = view;\r\n this.i18n = i18n;\r\n this.numberFormatter = i18n.decimalToFixedFormatter({ digits: appConfig.get('globalization.number.numberOfDigits') });\r\n this.bidStrategyListToDisableBidAmountEdit = bidStrategyListToDisableBidAmountEdit;\r\n this.defaultMSStoreMinSuggestionBid = defaultMSStoreMinSuggestionBid();\r\n }\r\n\r\n onPrompt({\r\n item, event, newPosition,\r\n }) {\r\n if ($(event.target).hasClass('bidlandscape_icon')) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n const campaignType = (item && item.Campaign) ? _.result(item.Campaign, 'CampaignType') : '';\r\n this.campaignSubType = (item && item.Campaign) ? _.result(item.Campaign, 'CampaignSubType') : '';\r\n this.campaignSettings = (item && item.Campaign) ? _.result(item.Campaign, 'CampaignSettings') : [];\r\n const useProductGroupBidRange = permissions.IsBidLessThan5CentsInShoppingCampaignEnabled && (campaignType === 'Shopping');\r\n const isHotelCampaign = campaignType === 'Hotel';\r\n const isMSStoreAdsCampaignEnabled = isMSStoreAdsCampaign(item.Campaign);\r\n let bidRangeKey;\r\n if (useProductGroupBidRange) {\r\n bidRangeKey = 'ProductGroupBidRange';\r\n if (isMSStoreAdsCampaignEnabled) {\r\n bidRangeKey = 'WindowsStoreAdsBidRange';\r\n }\r\n } else if (isHotelCampaign) {\r\n bidRangeKey = 'KeywordBidRange';\r\n if (this.name === 'PercentCpcBid' || this.name === 'CommissionRate') {\r\n bidRangeKey = `Keyword${this.name}Range`;\r\n }\r\n } else if (isXandrVideoAdsCampaign(this.campaignSubType) && isXandrServing(this.campaignSubType, this.campaignSettings)) {\r\n if (item.DisplayBiddingStrategyType === 'ManualCpv') {\r\n bidRangeKey = 'VideoViewsCPVBidRange';\r\n } else {\r\n bidRangeKey = 'VideoViewsCPMBidRange';\r\n }\r\n } else {\r\n bidRangeKey = BiddingStrategyToRangeKey[item.DisplayBiddingStrategyType] || 'KeywordBidRange';\r\n }\r\n\r\n\r\n let min = _.result(appConfig.get(bidRangeKey), 'FloorValue');\r\n const max = _.result(appConfig.get(bidRangeKey), 'CeilingValue');\r\n\r\n if (isXandrServing(this.campaignSubType, this.campaignSettings)\r\n && permissions.IsDealEnabledForMsAds\r\n && item.DealMinimumBid && item.DealMinimumBid < max) {\r\n min = _.max([min, ceil(item.DealMinimumBid, 2)]);\r\n }\r\n\r\n const currentName = (this.name === 'PercentCpcBid' || this.name === 'CommissionRate') ? `AdGroup${this.name}` : this.name;\r\n const schemaOrigin = AdGroup;\r\n const schemaCopy = {\r\n ...schemaOrigin,\r\n properties: {\r\n ...schemaOrigin.properties,\r\n [currentName]: {\r\n ...schemaOrigin.properties[currentName],\r\n maximum: null,\r\n minimum: null,\r\n },\r\n },\r\n };\r\n let errorMsg = '';\r\n const groupClass = `grid-group-${_.result(this.config, 'group', 'other')}`;\r\n this.isDefaultBidCPVAppended = false;\r\n const pricingModel = BiddingStrategyToPricingModel[item.DisplayBiddingStrategyType];\r\n const isCommissionOrPercentCpc = item && (item.DisplayBiddingStrategyType === 'Commission' || item.DisplayBiddingStrategyType === 'PercentCpc');\r\n\r\n InlineEditableColumnPrompt({\r\n customClass: `bid-editor-prompt ${groupClass}`,\r\n // the empty space is to ensure the customHint element is rendered with empty content. So that we can put the warning in the correct position\r\n customHint: isMSStoreAdsCampaignEnabled ? ' ' : '',\r\n position: newPosition,\r\n item,\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: currentName,\r\n customValidators: {\r\n [currentName]: {\r\n isValid: (bid) => {\r\n this.showDefaultBidWarning = false;\r\n // the setTimeout is ensure the customHint element is rendered before we try to append the warning\r\n setTimeout(() => this.showLowerThanMinSuggestionBidWarning(bid, isMSStoreAdsCampaignEnabled));\r\n if (_.isNull(bid)) {\r\n errorMsg = this.i18n.getString('AdGroupSummary_SearchBidRequired');\r\n this.updateDefaultBidWarning();\r\n return false;\r\n } else if (isCommissionOrPercentCpc && (bid <= min || bid > max)) {\r\n errorMsg = this.i18n.getString('Validation_Number_Range_ExcludeMin', { min, max });\r\n this.updateDefaultBidWarning();\r\n return false;\r\n } else if (bid < min || bid > max) {\r\n errorMsg = this.i18n.getString('Validation_Number_Range_Between', { min, max });\r\n this.updateDefaultBidWarning();\r\n return false;\r\n } else if (pricingModel === 'CPV' && (\r\n (!isXandrVideoAdsCampaign(this.campaignSubType) && bid > DefaultBidCPVWarningThreshold)\r\n )) {\r\n this.showDefaultBidWarning = true;\r\n }\r\n this.updateDefaultBidWarning();\r\n return true;\r\n },\r\n message: () => errorMsg,\r\n },\r\n },\r\n adGroupSchema: schemaCopy,\r\n });\r\n }\r\n\r\n initDefaultBidWarning(element, warning) {\r\n ReactDOM.render(\r\n ,\r\n element\r\n );\r\n }\r\n\r\n updateDefaultBidWarning() {\r\n const defaultBidCPVWarningParent = $('.bid-editor-prompt .form-inline:last-of-type');\r\n const defaultBidCPVWarningId = 'default-bid-cpv-warning';\r\n if (!this.isDefaultBidCPVAppended && defaultBidCPVWarningParent.length === 1) {\r\n defaultBidCPVWarningParent.append(`
`);\r\n this.defaultBidCPVWarning = document.getElementById(defaultBidCPVWarningId);\r\n $(`#${defaultBidCPVWarningId}`).hide();\r\n const warning = this.i18n.getString('Audience_Campaign_DefaultBid_CPV_Warning');\r\n this.initDefaultBidWarning(this.defaultBidCPVWarning, warning);\r\n this.isDefaultBidCPVAppended = true;\r\n }\r\n if (this.defaultBidCPVWarning) {\r\n if (this.showDefaultBidWarning) {\r\n $(`#${defaultBidCPVWarningId}`).show();\r\n } else {\r\n $(`#${defaultBidCPVWarningId}`).hide();\r\n }\r\n }\r\n }\r\n\r\n formatBidString(name, bid, bidstrategy) {\r\n const isAutoBid = bidstrategy === 'TargetCpa' || bidstrategy === 'TargetRoas' || bidstrategy === 'MaxConversionValue' || bidstrategy === 'MaxConversions' || bidstrategy === 'MaxClicks' || bidstrategy === 'TargetImpressionShare';\r\n if (permissions.dynamic && permissions.dynamic.HideAutoBidValueInGrid && isAutoBid && bid !== null) {\r\n return this.i18n.getString('BidStrategy_BidAuto_HideValue');\r\n }\r\n if (bid) {\r\n const formattedBid = this.numberFormatter(bid);\r\n if (name === 'PercentCpcBid' || name === 'CommissionRate') {\r\n return `${formattedBid}%`;\r\n }\r\n switch (bidstrategy) {\r\n case 'EnhancedCpc':\r\n return `${formattedBid} ${this.i18n.getString('BidStrategy_BidEnhanced')}`;\r\n case 'TargetCpa':\r\n case 'TargetRoas':\r\n case 'MaxConversionValue':\r\n case 'MaxConversions':\r\n case 'MaxClicks':\r\n case 'TargetImpressionShare':\r\n return this.i18n.getString('BidStrategy_BidAuto').replace('{0}', formattedBid);\r\n case 'CostPerSale':\r\n return this.i18n.getString('BidStrategy_BidAuto_CPS');\r\n case 'ManualCpc':\r\n default:\r\n return formattedBid;\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n\r\n pickProperty(item) {\r\n const {\r\n IsBidLandscapeAvailable,\r\n DisplayBiddingStrategyType: bidstrategy,\r\n Id: id,\r\n Campaign: campaign,\r\n } = item;\r\n let bid = null;\r\n const {\r\n IsAdgroupLandscapeV2Enabled,\r\n } = permissions;\r\n\r\n if (campaign && campaign.CampaignType !== 'LinkedIn') {\r\n if (this.name === 'PercentCpcBid' || this.name === 'CommissionRate') {\r\n bid = item[this.name] && item[this.name].RateAmount && item[this.name].RateAmount.Amount;\r\n item[`AdGroup${this.name}`] = bid;\r\n } else {\r\n bid = item[this.name];\r\n }\r\n }\r\n\r\n let hasBidlandscape = IsBidLandscapeAvailable;\r\n if (campaign && campaign.CampaignType === 'Audience' && bidstrategy !== 'ManualCpc') {\r\n hasBidlandscape = hasBidlandscape && IsAdgroupLandscapeV2Enabled;\r\n }\r\n\r\n return {\r\n hasBidlandscape,\r\n bid: this.formatBidString(this.name, bid, bidstrategy),\r\n id,\r\n isBidReadOnly: permissions.IsReadOnlyUser ||\r\n appConfig.get('CurrentAccountInActive') ||\r\n _.contains(this.bidStrategyListToDisableBidAmountEdit, bidstrategy),\r\n isSearchMediumType: item.Medium !== 'Content',\r\n i18n: this.i18n,\r\n };\r\n }\r\n\r\n showLowerThanMinSuggestionBidWarning(bid, isMSStoreAdsCampaignEnabled) {\r\n if (!isMSStoreAdsCampaignEnabled) return;\r\n const customHint = $('.bid-editor-prompt .customHint');\r\n if (bid < this.defaultMSStoreMinSuggestionBid) {\r\n customHint.html(`
\r\n
\r\n
\r\n ${this.i18n.getString(_TL_('MinSuggestionBidWarning'), { minSuggestionBid: this.defaultMSStoreMinSuggestionBid })}\r\n
\r\n
`);\r\n customHint.show();\r\n } else {\r\n customHint.hide();\r\n }\r\n }\r\n get template() {\r\n return template;\r\n }\r\n}\r\n","import { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { SearchBidColumn as SearchBidColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { BidBaseColumn, commonBidStrategyListToDisableBidAmountEdit } from './bid-base-column';\r\n\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst permissions = appConfig.get('Permissions');\r\n\r\nexport class SearchBidColumn extends BidBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...SearchBidColumnConfig,\r\n title: (permissions.IsVideoAdsForCampaignEnabled || permissions.IsManualCpmEnabled)\r\n ? i18n.getString('ColumnName_CpcBid')\r\n : i18n.getString('ColumnName_SearchBid'),\r\n i18n,\r\n view,\r\n bidStrategyListToDisableBidAmountEdit: commonBidStrategyListToDisableBidAmountEdit(['EnhancedCpc', 'ManualCpc']),\r\n isForVNext,\r\n });\r\n }\r\n}\r\n","import { CpmBidColumn as CpmBidColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { BidBaseColumn, commonBidStrategyListToDisableBidAmountEdit } from './bid-base-column';\r\n\r\nexport class CpmBidColumn extends BidBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...CpmBidColumnConfig,\r\n title: i18n.getString('ColumnName_CpmBid'),\r\n i18n,\r\n view,\r\n bidStrategyListToDisableBidAmountEdit: commonBidStrategyListToDisableBidAmountEdit(['ManualCpm']),\r\n isForVNext,\r\n });\r\n }\r\n}\r\n","import { CpvBidColumn as CpvBidColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { BidBaseColumn, commonBidStrategyListToDisableBidAmountEdit } from './bid-base-column';\r\n\r\nexport class CpvBidColumn extends BidBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...CpvBidColumnConfig,\r\n title: i18n.getString('ColumnName_CpvBid'),\r\n i18n,\r\n view,\r\n bidStrategyListToDisableBidAmountEdit: commonBidStrategyListToDisableBidAmountEdit(['ManualCpv']),\r\n isForVNext,\r\n });\r\n }\r\n}\r\n","import { PercentCpcBidColumn as PercentCpcBidColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { BidBaseColumn, commonBidStrategyListToDisableBidAmountEdit } from './bid-base-column';\r\n\r\nexport class PercentCpcBidColumn extends BidBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...PercentCpcBidColumnConfig,\r\n sortable: 'PercentCpcBid/RateAmount/Amount',\r\n title: i18n.getString('ColumnName_PercentCpcBid'),\r\n i18n,\r\n view,\r\n bidStrategyListToDisableBidAmountEdit: commonBidStrategyListToDisableBidAmountEdit(['PercentCpc']),\r\n isForVNext,\r\n });\r\n }\r\n}\r\n","import { CommissionRateColumn as CommissionRateColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { BidBaseColumn, commonBidStrategyListToDisableBidAmountEdit } from './bid-base-column';\r\n\r\nexport class CommissionRateColumn extends BidBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...CommissionRateColumnConfig,\r\n sortable: 'CommissionRate/RateAmount/Amount',\r\n title: i18n.getString('ColumnName_CommissionRate'),\r\n i18n,\r\n view,\r\n bidStrategyListToDisableBidAmountEdit: commonBidStrategyListToDisableBidAmountEdit(['Commission']),\r\n isForVNext,\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { QualityScoreColumn as QualityScoreColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport qualityScoreTemplate from './quality-score.pug';\r\n\r\nexport class QualityScoreColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, isForVNext }) {\r\n const title = i18n.getString('ColumnName_QualityScore');\r\n\r\n super({\r\n ...QualityScoreColumnConfig,\r\n title,\r\n sortable: 'QualityScore/OverallQualityScore',\r\n type: 'string',\r\n helpId: 'Page_CampaignGrids_QualScore',\r\n bodyClasses: ['grid-column-QualityScore'],\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.titleDetail = i18n.getString('Page_Keywords_QualityScoreDetails');\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n return _.defaults({\r\n score: item && item.QualityScore && item.QualityScore.OverallQualityScore,\r\n title: this.titleDetail,\r\n });\r\n }\r\n\r\n template(model) {\r\n return qualityScoreTemplate(_.extend({\r\n isForVNext: this.isForVNext,\r\n }, model));\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { SchemaI18n } from '@bingads-webui-universal/schema-i18n';\r\nimport { MediumColumn as MediumColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport mediumTemplate from './medium.pug';\r\n\r\nexport class MediumColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n const title = i18n.getString('ColumnName_Medium');\r\n\r\n super({\r\n ...MediumColumnConfig,\r\n title,\r\n sortable: 'Medium',\r\n type: 'string',\r\n helpId: 'Page_CampaignGrids_Medium',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.schemaI18n = new SchemaI18n({ i18n });\r\n }\r\n\r\n template({ value }) {\r\n return mediumTemplate({ value, schemaI18n: this.schemaI18n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { AdGroupIdColumn as AdGroupIdColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\n\r\nexport class AdGroupIdColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n ...AdGroupIdColumnConfig,\r\n title: i18n.getString('ColumnName_AdGroupId'),\r\n sortable: 'Id',\r\n type: 'number',\r\n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport '@bingads-webui/kendo/kendo.data';\r\nimport { StartDateColumn as StartDateColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { DateInlineEditableColumnPrompt } from '@bingads-webui-campaign/date-inline-edit-prompt';\r\nimport { convertUTCDateToMachineDate, displayDate, getCurrentDate } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\nimport dateTemplate from './date.pug';\r\n\r\nexport class StartDateColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n const title = i18n.getString('ColumnName_StartDate');\r\n\r\n super({\r\n ...StartDateColumnConfig,\r\n title,\r\n editable: true,\r\n sortable: 'StartDate',\r\n type: 'string',\r\n helpId: 'Page_CampaignGrids_StartDate',\r\n enableEdit: item =>\r\n (item.Campaign?.UseCampaignLevelDates ? false : new Date(item.StartDate) > getCurrentDate()),\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n return {\r\n date: this.getStartDate(item),\r\n useCampaignLevelDates: item.Campaign?.UseCampaignLevelDates,\r\n };\r\n }\r\n\r\n getStartDate(item) {\r\n if (item.$total) {\r\n return '';\r\n }\r\n\r\n return item.Campaign?.UseCampaignLevelDates\r\n ? this.displayStartDate(item.Campaign.StartDate)\r\n : this.displayStartDate(item.StartDate);\r\n }\r\n\r\n displayStartDate(startDate) {\r\n return displayDate(startDate, 'StartDate_None', this.i18n);\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const options = {\r\n position: this.isForVNext ? newPosition : position,\r\n isForVNext: this.isForVNext,\r\n item,\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'StartDate',\r\n allowNoDate: false,\r\n selectedDate: convertUTCDateToMachineDate(new Date(item.StartDate), this.i18n),\r\n updater: InlineEditableSave,\r\n };\r\n\r\n if (item.EndDate) {\r\n options.maxDate = convertUTCDateToMachineDate(new Date(item.EndDate), this.i18n);\r\n }\r\n return DateInlineEditableColumnPrompt(options);\r\n }\r\n\r\n template({ value }) {\r\n return dateTemplate(value);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport '@bingads-webui/kendo/kendo.data';\r\nimport { EndDateColumn as EndDateColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { DateInlineEditableColumnPrompt } from '@bingads-webui-campaign/date-inline-edit-prompt';\r\nimport { convertUTCDateToMachineDate, displayDate } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\nimport dateTemplate from './date.pug';\r\n\r\nexport class EndDateColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n const title = i18n.getString('ColumnName_EndDate');\r\n\r\n super({\r\n ...EndDateColumnConfig,\r\n title,\r\n editable: true,\r\n enableEdit: item => !item.Campaign?.UseCampaignLevelDates,\r\n sortable: 'EndDate',\r\n type: 'string',\r\n helpId: 'Page_CampaignGrids_EndDate',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n return {\r\n date: this.getEndDate(item),\r\n useCampaignLevelDates: item.Campaign?.UseCampaignLevelDates,\r\n };\r\n }\r\n\r\n getEndDate(item) {\r\n if (item.$total) {\r\n return '';\r\n }\r\n\r\n return item.Campaign?.UseCampaignLevelDates\r\n ? this.displayEndDate(item.Campaign.EndDate)\r\n : this.displayEndDate(item.EndDate);\r\n }\r\n\r\n displayEndDate(endDate) {\r\n return displayDate(endDate, 'EndDate_None', this.i18n);\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const groupClass = `grid-group-${_.result(this.config, 'group', 'other')}`;\r\n const options = {\r\n position: this.isForVNext ? newPosition : position,\r\n isForVNext: this.isForVNext,\r\n item,\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'EndDate',\r\n allowNoDate: true,\r\n minDate: convertUTCDateToMachineDate(new Date(item.StartDate), this.i18n),\r\n customClass: groupClass,\r\n updater: InlineEditableSave,\r\n };\r\n\r\n if (item.EndDate) {\r\n options.selectedDate = convertUTCDateToMachineDate(new Date(item.EndDate), this.i18n);\r\n }\r\n return DateInlineEditableColumnPrompt(options);\r\n }\r\n\r\n template({ value }) {\r\n return dateTemplate(value);\r\n }\r\n}\r\n","export default {\r\n Paused: 144,\r\n Expired: 150,\r\n CampaignUserPaused: 124,\r\n CampaignBudgetPaused: 126,\r\n CampaignBudgetUserPaused: 127,\r\n PrivacyPending: 137,\r\n TargetingTooNarrow: 139,\r\n Draft: 140,\r\n Active: 141,\r\n Deleted: 143,\r\n};\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { renderStatusPopupEditor } from '@bingads-webui-campaign/status-popup-editor';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { StatusIconColumn as StatusIconColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\nimport statusIconTemplate from './status-icon.pug';\r\nimport statusEnumMap from './status-enum-map';\r\nimport headerTemplate from './status-icon-header-template.pug';\r\n\r\nconst pageContext = globalContext.require('PageContext');\r\nconst enableGridFlexLayout = _.result(pageContext.Permissions.dynamic, 'GridFlexLayout', false);\r\n\r\nexport class StatusIconColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...StatusIconColumnConfig,\r\n title: i18n.getString('ColumnName_Status'),\r\n sortable: 'EntityStatus',\r\n isResizable: false,\r\n type: 'string',\r\n bodyClasses: ['grid-column-Status'],\r\n enableEdit: item => !_.contains(['Draft', 'Expired'], item.EntityStatus),\r\n headerTemplate: () => headerTemplate({}),\r\n group: 'freezing',\r\n });\r\n\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n const {\r\n EntityStatus,\r\n Id,\r\n } = item;\r\n const isExperiment = _.result(item.Campaign, 'ExperimentId');\r\n\r\n return {\r\n EntityStatus,\r\n Id,\r\n isExperiment,\r\n };\r\n }\r\n\r\n template(model) {\r\n return statusIconTemplate(_.extend({}, model, {\r\n i18n: this.i18n,\r\n isForVNext: this.isForVNext,\r\n enableGridFlexLayout,\r\n }));\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const statusEditor = renderStatusPopupEditor({\r\n position: this.isForVNext ? newPosition : position,\r\n isForVNext: this.isForVNext,\r\n i18n: this.i18n,\r\n currentStatus: item.EntityStatus,\r\n statusOptions: (() => {\r\n let options = [\r\n { name: 'Enabled', value: 'Active' },\r\n { name: 'Paused', value: 'Paused' },\r\n ];\r\n const isExperiment = _.result(item.Campaign, 'ExperimentId');\r\n\r\n if (isExperiment) {\r\n options = _.map(options, (option) => {\r\n const iconClass = _.result({\r\n Enabled: 'experiment-active-icon',\r\n Paused: 'experiment-paused-icon',\r\n }, option.name);\r\n\r\n return _.defaults({ iconClass }, option);\r\n });\r\n }\r\n\r\n return options;\r\n })(),\r\n });\r\n\r\n statusEditor.then((status) => {\r\n if (status) {\r\n const updated = _.extend({}, item, { Status: status });\r\n\r\n return InlineEditableSave({\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'Status',\r\n updated,\r\n editorView: statusEditor,\r\n editorViewCallbackAfterUpdate: () => {\r\n const response = [{\r\n Id: item.Id,\r\n Status: statusEnumMap[status],\r\n }];\r\n\r\n window.App.trigger('adGroupUpdated', { data: response });\r\n },\r\n });\r\n }\r\n return undefined;\r\n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { AdGroupTypeColumn as AdGroupTypeColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\n\r\nexport class AdGroupTypeColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n const title = i18n.getString('AdGroupType_Label');\r\n\r\n super({\r\n ...AdGroupTypeColumnConfig,\r\n title,\r\n sortable: 'AdGroupType',\r\n type: 'string',\r\n helpId: 'pop_BA_DSA_AdGroupType',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.i18n = i18n;\r\n }\r\n pickProperty(item) {\r\n return item.AdGroupType !== 'Unknown' && item.AdGroupType != null && item.AdGroupType !== 'HotelAds' ?\r\n this.i18n.getString(`AdGroupType_${item.AdGroupType}`) :\r\n '-';\r\n }\r\n}\r\n","import {\r\n CustomParametersColumn as CustomParametersColumnConfig,\r\n FinalUrlSuffixColumn as FinalUrlSuffixColumnConfig,\r\n TrackingTemplateColumn as TrackingTemplateColumnConfig,\r\n} from '@bingads-webui-campaign/ad-groups-data';\r\nimport {\r\n TrackingTemplateColumn as TrackingTemplateColumnOriginal,\r\n CustomParametersColumn as CustomParametersColumnOriginal,\r\n FinalUrlSuffixColumn as FinalUrlSuffixColumnOriginal,\r\n} from '@bingads-webui-campaign/tracking-template-columns';\r\n\r\nexport class TrackingTemplateColumn extends TrackingTemplateColumnOriginal {\r\n constructor(options) {\r\n super({\r\n ...TrackingTemplateColumnConfig,\r\n ...options,\r\n enableEdit: item => item.Campaign && item.Campaign.CampaignType !== 'LinkedIn',\r\n });\r\n }\r\n}\r\n\r\nexport class FinalUrlSuffixColumn extends FinalUrlSuffixColumnOriginal {\r\n constructor(options) {\r\n super({\r\n ...FinalUrlSuffixColumnConfig,\r\n ...options,\r\n enableEdit: item => item.Campaign && item.Campaign.CampaignType !== 'LinkedIn',\r\n });\r\n }\r\n}\r\n\r\nexport class CustomParametersColumn extends CustomParametersColumnOriginal {\r\n constructor(options) {\r\n super({\r\n ...CustomParametersColumnConfig,\r\n ...options,\r\n enableEdit: item => item.Campaign && item.Campaign.CampaignType !== 'LinkedIn',\r\n });\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { crossPageSelectHeadRow } from '@bingads-webui/projection-grid-cross-page-select-all';\r\nimport { helpers } from '@bingads-webui/projection-grid-toolbar';\r\nimport { getGridName } from '@bingads-webui-campaign/inline-download-grids-metadata';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { sortableHeaderTemplate, validateOrder } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { getColumnsConfig } from './columns/index';\r\nimport { InlineEditableSave } from './columns/attributes/inline-editable/save';\r\n\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab');\r\nconst stateManager = globalContext.require('StateManager/CampaignStateManager');\r\nconst preferenceService = globalContext.requireDefault('component/preference/service/index');\r\nconst config = globalContext.require('component/config/index');\r\nconst decimal = globalContext.require('component/humanize/decimal');\r\n\r\nconst { toolbarRow } = helpers;\r\nconst helpIdMap = {\r\n AverageCPC: 'Page_CampaignGrids_AvgCPC',\r\n AveragePosition: 'Page_CampaignGrids_AvgPosition',\r\n Impressions: 'Page_CampaignGrids_Impr',\r\n AverageCPM: 'Page_CampaignGrids_AvgCPM',\r\n PhoneSpend: null,\r\n PhoneImpressions: 'Page_CampaignGrids_PhoneImpr',\r\n AverageCPP: 'Page_CampaignGrids_AvgCPP',\r\n Conversions: 'Page_CampaignGrids_Conv',\r\n ConversionsCredit: 'Page_CampaignGrids_Conv',\r\n ConversionRate: 'Page_CampaignGrids_ConvRate',\r\n PartialConversionRate: 'Page_CampaignGrids_ConvRate',\r\n AdvertiserReportedRevenue: 'Page_CampaignGrids_Revenue',\r\n RevenueOnAdSpend: 'Page_CampaignGrids_ReturnAdSpend',\r\n AuctionWonPercent: 'pop_BA_CampaignGrids_IS',\r\n AuctionLostToBudgetPercent: 'pop_BA_CampaignGrids_ISBudget',\r\n AuctionLostToRankPercent: 'pop_BA_CampaignGrids_ISRank',\r\n AuctionLostToAdQualityPercent: 'pop_BA_CampaignGrids_ISctr',\r\n AuctionLostToLandingPercent: 'pop_BA_CampaignGrids_ISRelv',\r\n AuctionLostToBidPercent: 'pop_BA_CampaignGrids_ISBid',\r\n ClickSharePercent: 'pop_BA_Reporting_ProductAds_ClickSharePercent',\r\n AbsoluteTopImpressionSharePercent: 'pop_BA_Reporting_ProductAds_AbsoluteTopImpShare',\r\n ManualCalls: 'pop_BA_Reporting_Clarity_PhoneCalls',\r\n AllConversions: 'pop_BA_CampaignGrids_AllConv',\r\n AllConversionCPA: 'pop_BA_CampaignGrids_AllConvCPA',\r\n AllConversionRate: 'pop_BA_CampaignGrids_AllConvRate',\r\n AllConversionAdvertiserReportedRevenue: 'pop_BA_CampaignGrids_AllConvRevenue',\r\n AllConversionRevenueOnAdSpend: 'pop_BA_CampaignGrids_AllConvROAS',\r\n TotalWatchTimeInMS: 'Page_CampaignGrids_TotalWatchTime',\r\n ViewThroughConversionsRevenue: 'pop_BA_Reporting_Clarity_ViewThroughConvRevenue',\r\n ViewThroughConversionsCPA: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n ViewThroughPartialConversionsCPA: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n ViewThroughConversionsReturnOnAdSpend: 'pop_BA_Reporting_Clarity_ViewThroughConvReturnOnAdSpend',\r\n ViewThroughConversionsRate: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n ViewThroughPartialConversionsRate: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n ViewThroughConversions: 'pop_BA_CampaignGrids_ViewThrough',\r\n ViewThroughConversionsCredit: 'pop_BA_CampaignGrids_ViewThrough',\r\n};\r\n\r\nexport function getConfig({\r\n dataSource,\r\n scope,\r\n view,\r\n filterService,\r\n preferenceConfig,\r\n router,\r\n isForVNext,\r\n viewport,\r\n customHeaderOffset,\r\n currentCampaign,\r\n deps,\r\n globalCampaignTypeFilter,\r\n isDataFetchManagerSource,\r\n}) {\r\n const columnHelpId = name => _.result(helpIdMap, name, `Page_CampaignGrids_${name}`);\r\n\r\n const tableName = i18n.getString('EntityType_AdGroup_Plural');\r\n const permissions = config.get('Permissions');\r\n const enableGridFlexLayout = _.result(permissions.dynamic, 'GridFlexLayout', false);\r\n const gridName = getGridName('AdGroup');\r\n\r\n const gridConfig = {\r\n name: gridName,\r\n legacyGridName: 'AdGroupGrid',\r\n tableClasses: enableGridFlexLayout ? ['table'] : ['table', 'table-bordered'],\r\n tableAttributes: { 'aria-label': tableName },\r\n dataSource,\r\n selection: true,\r\n filterService,\r\n rows: {\r\n headRows:\r\n isForVNext\r\n ? [\r\n 'column-header-rows',\r\n ]\r\n : [\r\n toolbarRow('lower-toolbar'),\r\n crossPageSelectHeadRow(),\r\n 'column-header-rows',\r\n ],\r\n },\r\n columns: getColumnsConfig({\r\n i18n,\r\n decimal,\r\n scope,\r\n view,\r\n helpId: columnHelpId,\r\n permissions,\r\n inlineEditableSave: InlineEditableSave,\r\n router,\r\n isForVNext,\r\n currentCampaign,\r\n deps,\r\n globalCampaignTypeFilter,\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: {\r\n 'aria-label': i18n.getString('{{tableName}} table header', { tableName }),\r\n role: 'rowgroup',\r\n },\r\n },\r\n virtualized: true,\r\n },\r\n i18n,\r\n sortableHeader: {\r\n template: sortableHeaderTemplate,\r\n },\r\n stateManager,\r\n preferenceService,\r\n config,\r\n isDataFetchManagerSource,\r\n ...enableGridFlexLayout && { layout: 'flex' },\r\n };\r\n\r\n validateOrder(preferenceConfig, gridConfig.columns, gridName, permissions);\r\n\r\n if (viewport) {\r\n gridConfig.scrolling.viewport = viewport;\r\n }\r\n\r\n return gridConfig;\r\n}\r\n","const navigation = ({\r\n toJSON: () => ({}),\r\n source: {\r\n $call: () => ({\r\n toJSON: () => ({}),\r\n navigation,\r\n }),\r\n },\r\n parameters: {},\r\n});\r\n\r\nexport const mockEdm = {\r\n root: {\r\n identifyEntitySet: () => ({\r\n toJSON: () => ({}),\r\n navigation,\r\n }),\r\n },\r\n};\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\n\r\nimport { paginationPlugin } from '@bingads-webui/projection-grid-pagination';\r\nimport { columnChooserPlugin } from '@bingads-webui-campaign/projection-grid-column-chooser';\r\nimport { editablePlugin } from '@bingads-webui-campaign/projection-grid-editable';\r\nimport { auctionInsightPlugin } from '@bingads-webui-campaign/projection-grid-auction-insight';\r\nimport { inlineDownloadWithoutFilterstatePlugin } from '@bingads-webui-campaign/projection-grid-inline-download';\r\nimport { jsdataRawDataPlugin as commonJsdataRawDataPlugin } from '@bingads-webui/projection-grid-js-data-raw-data';\r\nimport { periodOverPeriodPlugin } from '@bingads-webui-campaign/projection-grid-period-over-period';\r\nimport { segmentPlugin } from '@bingads-webui-campaign/projection-grid-segment';\r\nimport {\r\n campaignSegmentationTypeEnum,\r\n segmentationType,\r\n} from '@bingads-webui-campaign/segmentation-utilities';\r\nimport { inlineErrorPlugin } from '@bingads-webui/projection-grid-inline-error';\r\nimport { bidStrategy } from '@bingads-webui-campaign/projection-grid-bid-strategy';\r\nimport { uiBlockerPlugin } from '@bingads-webui/projection-grid-uiblocker';\r\nimport { assistedSelectionPlugin } from '@bingads-webui/projection-grid-assisted-selection';\r\nimport { performanceLogPlugin, perfMarkerPlugin } from '@bingads-webui-campaign/pgrid-performance-log';\r\nimport { a11yPlugin } from '@bingads-webui/projection-grid-a11y';\r\nimport { aggregatedRowsPluginBuilder } from '@bingads-webui-campaign/pgrid-aggregated-rows';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { dateFilterPlugin } from '@bingads-webui-campaign/projection-grid-date-filter';\r\nimport { AdGroup } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { getPGridColumnResizePlugin } from '@bingads-webui-campaign/projection-grid-column-resize-helper';\r\nimport { projectionGridFlexColumnResize } from '@bingads-webui-campaign/projection-grid-flex-column-resize';\r\nimport { getGridName } from '@bingads-webui-campaign/inline-download-grids-metadata';\r\n\r\nimport { getColumnChooserConfig } from './columns/index';\r\nimport { mockEdm } from '../demo/mock/edm';\r\n\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab');\r\nconst appState = globalContext.require('component/state/index');\r\nconst sessionStore = globalContext.requireDefault('component/js-data-storage/session-storage');\r\nconst edm = globalContext.requireDefault('component/edm-campaign/index');\r\nconst s$i18n = globalContext.require('$/schema-i18n!campaign');\r\nconst { DownloadView } = globalContext.require('campaignui/feature/griddownload/view/adapter');\r\nconst { setSegType, getSegType } = globalContext.require('component/bingads-grid/service/segmentation-preferences');\r\nconst ChangeBiddingStrategyModel = globalContext.require('module/model/bulkEdit/shared/changeBiddingStrategy');\r\nconst ChangeBiddingStrategyView = globalContext.require('module/view/bulkEdit/shared/changeBiddingStrategy');\r\nconst logger = globalContext.require('module/service/instrumentation/index');\r\n\r\nconst permissions = appConfig.get('Permissions');\r\nconst enableGridFlexLayout = _.result(permissions.dynamic, 'GridFlexLayout', false);\r\nconst jsdataRawDataPlugin = commonJsdataRawDataPlugin({\r\n getRawData: _.property('raw'),\r\n rawDataAccessor(ds) {\r\n // eslint-disable-next-line no-underscore-dangle\r\n return ds._rawData || ds.dataSource.dfmRawData;\r\n },\r\n});\r\n\r\nexport function getAdGroupPlugins({\r\n filterService,\r\n router,\r\n scope,\r\n isForVNext,\r\n addDateChangeListener,\r\n p$daterange,\r\n adGroupTabPerfMarker,\r\n currentCampaign,\r\n preexecuteFlag = false,\r\n globalCampaignTypeFilter,\r\n getCampaignTypeGlobalFilter,\r\n preferenceService,\r\n}) {\r\n const isSmartShoppingCampaign = currentCampaign &&\r\n (currentCampaign.CampaignSubType === 12 || currentCampaign.CampaignSubType === 'ShoppingSmartAds');\r\n const aggregatedRowsPlugin = aggregatedRowsPluginBuilder({\r\n i18n,\r\n keys: {\r\n overallI18nKey: 'AdGroupSummary_Total_New',\r\n filteredI18nKey: 'AdGroupSummary_Filtered_Total_New',\r\n waterfallFilterI18nKey: 'AdGroupSummary_Quickfilter_Total_New',\r\n },\r\n permissions,\r\n filterService,\r\n customConfig: {\r\n showLinkedInRow: true,\r\n },\r\n });\r\n const ReportEmailRule = appState.get('$ReportEmailRule');\r\n\r\n const columnChooserConfig = getColumnChooserConfig({\r\n scope,\r\n isForVNext,\r\n filterService,\r\n permissions,\r\n currentCampaign,\r\n globalCampaignTypeFilter,\r\n });\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n appState.unset('$ReportEmailRule');\r\n\r\n const getSegmentationTypes = () => {\r\n if (permissions.IsVerticalAdsReportingPhase1Enabled) {\r\n return [...campaignSegmentationTypeEnum, segmentationType.AdScenario];\r\n }\r\n\r\n return campaignSegmentationTypeEnum;\r\n };\r\n\r\n return _.compact([{\r\n // For accurate grid init latency, PerfMarkerPlugin should be the first plugin to load.\r\n plugin: perfMarkerPlugin,\r\n config: { appConfig, marker: adGroupTabPerfMarker },\r\n }, {\r\n plugin: paginationPlugin,\r\n config: {\r\n availablePageSizes: [20, 50, 100, 200],\r\n enableRandomPage: false,\r\n pageNumberLabelText: isForVNext ? '' : 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: auctionInsightPlugin,\r\n config: {\r\n isForVNext,\r\n pageName: 'adgroups',\r\n i18n,\r\n state: appState,\r\n legacyRouter: router,\r\n route: scope.campaignId ? 'campaign_adgroup_auction_insight' : 'adgroup_auction_insight',\r\n crossPageSelectNotAllowedI18nKey: 'AdGroupSummary_MultiplePageSelectionNotAllowed',\r\n shouldNavigateToCompetitionTab: permissions.IsBAACompetitionEnabled,\r\n scope,\r\n sessionStore,\r\n preferenceService,\r\n permissions,\r\n getCampaignTypeGlobalFilter,\r\n },\r\n },\r\n {\r\n plugin: inlineDownloadWithoutFilterstatePlugin,\r\n config: {\r\n isForVNext,\r\n p$daterange,\r\n\r\n DownloadView,\r\n isAvailable: true,\r\n gridId: 'AdGroupGrid',\r\n schema: AdGroup,\r\n s$i18n,\r\n i18n,\r\n ReportEmailRule,\r\n },\r\n },\r\n {\r\n plugin: segmentPlugin,\r\n config: {\r\n i18n,\r\n permissions,\r\n state: appState,\r\n isOdataActionSource: true,\r\n edm: preexecuteFlag ? mockEdm : edm,\r\n setSegType,\r\n getSegType,\r\n cultureShortDatePattern: appConfig.get('CultureDateTimeFormat').ShortDatePattern,\r\n cellTemplates: {\r\n AdGroup: 'default',\r\n },\r\n segmentationTypes: getSegmentationTypes(),\r\n },\r\n },\r\n !isSmartShoppingCampaign ? {\r\n plugin: bidStrategy,\r\n config: {\r\n isForVNext,\r\n ChangeBiddingStrategyView,\r\n ChangeBiddingStrategyModel,\r\n i18n,\r\n permissions,\r\n },\r\n } : null, !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: $(isForVNext ? '.ad-groups-page' : '#child-page') },\r\n },\r\n {\r\n plugin: performanceLogPlugin,\r\n config: { appConfig, logger },\r\n },\r\n {\r\n plugin: periodOverPeriodPlugin,\r\n config: { i18n },\r\n },\r\n {\r\n plugin: columnChooserPlugin,\r\n config: columnChooserConfig,\r\n },\r\n {\r\n plugin: dateFilterPlugin,\r\n config: {\r\n state: appState,\r\n isOdataActionSource: true,\r\n edm: preexecuteFlag ? mockEdm : edm,\r\n addDateChangeListener,\r\n p$daterange,\r\n },\r\n },\r\n {\r\n plugin: inlineErrorPlugin({\r\n errorIconClasses: ['grid-error'],\r\n }),\r\n },\r\n {\r\n plugin: assistedSelectionPlugin,\r\n },\r\n {\r\n plugin: a11yPlugin,\r\n config: { i18n },\r\n },\r\n {\r\n plugin: aggregatedRowsPlugin,\r\n },\r\n {\r\n plugin: jsdataRawDataPlugin,\r\n },\r\n ...enableGridFlexLayout ? [{\r\n plugin: projectionGridFlexColumnResize,\r\n config: {\r\n gridName: getGridName('AdGroup'),\r\n softDependencies: ['popColumns'],\r\n preferenceService,\r\n },\r\n }] : [getPGridColumnResizePlugin({\r\n gridName: getGridName('AdGroup'),\r\n preferenceService,\r\n permissions,\r\n })],\r\n ]);\r\n}\r\n","import { AdGroupsGrid } from './ad-groups-grid';\r\nimport { getConfig } from './grid-config';\r\nimport { getAdGroupPlugins } from './plugins';\r\n\r\n\r\nexport function createAdGroupGrid({\r\n deps = null,\r\n dataSource,\r\n filterService,\r\n getAdditionalPlugins = () => [],\r\n preferenceConfig,\r\n preferenceService,\r\n router,\r\n scope,\r\n addDateChangeListener,\r\n p$daterange,\r\n isForVNext = false,\r\n viewport,\r\n adGroupTabPerfMarker,\r\n customHeaderOffset,\r\n currentCampaign,\r\n pageName,\r\n preexecuteFlag = false,\r\n globalCampaignTypeFilter,\r\n getCampaignTypeGlobalFilter,\r\n isDataFetchManagerSource,\r\n}) {\r\n return new AdGroupsGrid({\r\n deps,\r\n isForVNext,\r\n filterService,\r\n getGridConfig: view => getConfig({\r\n dataSource,\r\n scope,\r\n view,\r\n filterService,\r\n preferenceConfig,\r\n router,\r\n isForVNext,\r\n viewport,\r\n customHeaderOffset,\r\n currentCampaign,\r\n deps,\r\n globalCampaignTypeFilter,\r\n isDataFetchManagerSource,\r\n }),\r\n getPlugins: view => getAdGroupPlugins({\r\n filterService,\r\n router,\r\n scope,\r\n isForVNext,\r\n addDateChangeListener,\r\n p$daterange,\r\n adGroupTabPerfMarker,\r\n currentCampaign,\r\n preexecuteFlag,\r\n globalCampaignTypeFilter,\r\n getCampaignTypeGlobalFilter,\r\n preferenceService,\r\n }).concat(getAdditionalPlugins(view)),\r\n router,\r\n scope,\r\n preferenceConfig,\r\n currentCampaign,\r\n pageName,\r\n preexecuteFlag,\r\n globalCampaignTypeFilter,\r\n });\r\n}\r\n","import $ from 'jquery';\r\nimport { AdGroupBidLandscape } from '@bingads-webui/bid-landscape';\r\nimport { AlertHelper } from '@bingads-webui-campaign/alert-helper';\r\nimport { showPopup } from '@bingads-webui/automatic-positioning-popover';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { BiddingStrategyToRangeKey, BiddingStrategyToBidParam } from '@bingads-webui-campaign/audience-campaign-shared';\r\nimport { http } from '@bingads-webui/http-util';\r\nimport * as url from '@bingads-webui/url-util';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { generateGuid } from '@bingads-webui-universal/primitive-utilities';\r\n\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab');\r\nconst popupUtil = globalContext.require('module/service/shared/popup');\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst instrumentation = globalContext.requireDefault('campaignui/feature/instrumentation/index');\r\nconst senario = instrumentation.adgroupBidlandscape.create();\r\nconst i18nErrors = globalContext.require('component/api-errors-campaign/index');\r\nconst jsData = globalContext.require('component/js-data-campaign/index');\r\nconst odata = globalContext.require('module/service/communication/channel/odata');\r\nconst currencyCode = appConfig.get('AccountCurrencyCode');\r\nconst permissions = appConfig.get('Permissions');\r\n\r\nfunction showError(msg) {\r\n const alertHelper = new AlertHelper({ i18n });\r\n alertHelper.showError(msg);\r\n}\r\n\r\nfunction applyError(response) {\r\n let error;\r\n const unexpectedError = i18n.getString('ErrorNumber_-1');\r\n\r\n if (!response || !response.errors) {\r\n error = unexpectedError;\r\n } else {\r\n const errors = i18nErrors.getBulkApiErrors(response.errors, 'newadgroup');\r\n\r\n if (!errors || !errors[0] || !errors[0].message) {\r\n error = unexpectedError;\r\n } else {\r\n error = errors[0].message;\r\n }\r\n }\r\n\r\n showError(error);\r\n}\r\n\r\nfunction defaultApply(\r\n adgroup,\r\n adgroupBidLandscapeView,\r\n activity,\r\n applyCallback,\r\n blockerEl,\r\n trackingId\r\n) {\r\n const {\r\n Id, SearchBid, Name, Campaign, CpmBid, CpvBid, DisplayBiddingStrategyType: bidType,\r\n } = adgroup;\r\n let oldValue = SearchBid;\r\n const newValue = i18n.parseDecimal(adgroupBidLandscapeView.valueToApply());\r\n let bidKV = { SearchBid: newValue };\r\n const toUpdate = {\r\n Id,\r\n Campaign: { Id: Campaign.Id },\r\n };\r\n if (permissions.IsAdgroupLandscapeV2Enabled) {\r\n if (bidType === 'ManualCpm') {\r\n bidKV = { CpmBid: newValue };\r\n oldValue = CpmBid;\r\n } else if (bidType === 'ManualCpv') {\r\n bidKV = { CpvBid: newValue };\r\n oldValue = CpvBid;\r\n }\r\n }\r\n const currency = appConfig.get('AccountCurrencyCode');\r\n const isCustomBid = adgroupBidLandscapeView.viewModel.currentSelectedId()\r\n === adgroupBidLandscapeView.viewModel.landscapePointsLength();\r\n const startDate = adgroupBidLandscapeView.viewModel.startDateString();\r\n const endDate = adgroupBidLandscapeView.viewModel.endDateString();\r\n jsData.AdGroup\r\n .update(Id, { ...toUpdate, ...bidKV }, { adapter: 'bulk' })\r\n .then(() => {\r\n popupUtil.close();\r\n applyCallback(bidKV);\r\n activity.trace(\r\n `Apply success for ${Id} [${Name}]: ${oldValue} -> ${newValue}, Currency:${currency}, DataDate: ${startDate}~${endDate}, TrackingId: ${trackingId}, IsCustomBid: ${isCustomBid}, DisplayBiddingStrategyType: ${bidType}`,\r\n 'defaultApply'\r\n );\r\n })\r\n .catch((response) => {\r\n applyError(response);\r\n })\r\n .finally(withUiBlock(blockerEl));\r\n}\r\n\r\nfunction customApply(\r\n adgroup,\r\n adgroupBidLandscapeView,\r\n activity,\r\n scope,\r\n applyCallback,\r\n blockerEl,\r\n trackingId\r\n) {\r\n const { customerId, accountId } = scope;\r\n const campaignId = adgroup.Campaign.Id;\r\n const {\r\n Id, SearchBid, Name, CpmBid, CpvBid, DisplayBiddingStrategyType: bidType,\r\n } = adgroup;\r\n const currency = appConfig.get('AccountCurrencyCode');\r\n const newBidStr = adgroupBidLandscapeView.valueToApply();\r\n const newBid = i18n.parseDecimal(newBidStr);\r\n const isCustomBid = adgroupBidLandscapeView.viewModel.currentSelectedId()\r\n === adgroupBidLandscapeView.viewModel.landscapePointsLength();\r\n const startDate = adgroupBidLandscapeView.viewModel.startDateString();\r\n const endDate = adgroupBidLandscapeView.viewModel.endDateString();\r\n\r\n let oldValue = SearchBid;\r\n let bidKV = { SearchBid: newBid };\r\n if (permissions.IsAdgroupLandscapeV2Enabled) {\r\n if (bidType === 'ManualCpm') {\r\n bidKV = { CpmBid: newBid };\r\n oldValue = CpmBid;\r\n } else if (bidType === 'ManualCpv') {\r\n bidKV = { CpvBid: newBid };\r\n oldValue = CpvBid;\r\n }\r\n }\r\n\r\n const uri = `Advertiser/Customers(${customerId})/Accounts(${accountId})/Campaigns(${campaignId})/AdGroups(${Id})/Default.UpdateBidAndResetKeywordSource`;\r\n\r\n const uiBlocker = withUiBlock(blockerEl);\r\n odata.patch(uri, { Bid: newBid })\r\n .then(() => {\r\n popupUtil.close();\r\n // refresh row\r\n applyCallback(bidKV);\r\n activity.trace(\r\n `Apply success for ${Id} [${Name}]: ${oldValue} -> ${newBid}, Currency:${currency}, DataDate: ${startDate}~${endDate}, TrackingId: ${trackingId}, IsCustomBid: ${isCustomBid}, DisplayBiddingStrategyType: ${bidType}`,\r\n 'customApply'\r\n );\r\n uiBlocker();\r\n }, (error) => {\r\n let errorMessage = '';\r\n if (!error || !error.errorResponseBody || error.errorResponseBody.value.length === 0) {\r\n errorMessage = i18n.getString('ErrorNumber_-1');\r\n } else {\r\n const errorCode = error.errorResponseBody.value[0].Code;\r\n\r\n errorMessage = i18n.getString(`Error_Campaign_API_Bidlandscape_CustomApply_${errorCode}`) ||\r\n i18n.getString(`Error_Campaign_API_${errorCode}`);\r\n }\r\n showError(errorMessage);\r\n uiBlocker();\r\n popupUtil.close();\r\n });\r\n}\r\n\r\nfunction getCurrentAppliedBid(adgroup) {\r\n const {\r\n DisplayBiddingStrategyType: bidType,\r\n } = adgroup;\r\n const bidKey = BiddingStrategyToBidParam[bidType] || 'SearchBid';\r\n return adgroup[bidKey];\r\n}\r\n\r\nfunction fetchAdGroupBidLandscape(adgroupId, scope) {\r\n const { customerId: cid, accountId: aid, userId: uid } = scope;\r\n const uri = url.queryify('/Campaign/BidLandscape/FetchAdGroupBidLandscapeData', {\r\n cid,\r\n uid,\r\n aid,\r\n __adcenterAJAX: 'true',\r\n });\r\n\r\n return http.post(uri, {\r\n contentType: 'application/x-www-form-urlencoded',\r\n data: {\r\n adgroupId,\r\n __RequestVerificationToken: $('input[name=\"__RequestVerificationToken\"]').val(),\r\n },\r\n });\r\n}\r\n\r\nfunction validateBid(newBidStr, bidType) {\r\n const bidRangeKey = BiddingStrategyToRangeKey[bidType] || 'KeywordBidRange';\r\n const bidRange = appConfig.get(bidRangeKey);\r\n const bid = i18n.parseDecimal(newBidStr);\r\n const floorPrice = bidRange.FloorValue;\r\n const ceilingPrice = bidRange.CeilingValue;\r\n\r\n if (bid < floorPrice) {\r\n // @April please avoid to use this method for i18n,\r\n // the same to other places, I just update to make it work temp\r\n return i18n.getString('AdGroupSummary_SearchBidLessThanFloorPrice').replace('#0#', i18n.formatDecimalToFixed(floorPrice));\r\n } else if (bid > ceilingPrice) {\r\n return i18n.getString('AdGroupSummary_SearchBidMoreThanCeilingPrice').replace('#0#', i18n.formatDecimalToFixed(ceilingPrice));\r\n }\r\n return '';\r\n}\r\n\r\nfunction logBidLandscape() {\r\n const { adgroup, adgroupBidLandscapeView, trackingId } = this;\r\n const selectMode = adgroupBidLandscapeView.viewModel.adgroupSelectMode();\r\n if (selectMode !== 'UpdateDefault') {\r\n adgroupBidLandscapeView.off('selectModeChange', logBidLandscape);\r\n }\r\n const activity = senario.fetch.create();\r\n const ariaData = {\r\n Id: adgroup.Id,\r\n ActionName: 'ViewAdGroupBidLandscape',\r\n UIData: {\r\n selectMode,\r\n bidList: adgroupBidLandscapeView.viewModel.dataArray(),\r\n currencyCode,\r\n currentBid: getCurrentAppliedBid(adgroup),\r\n startDate: adgroupBidLandscapeView.viewModel.startDateString(),\r\n endDate: adgroupBidLandscapeView.viewModel.endDateString(),\r\n trackingId,\r\n },\r\n };\r\n activity.trace(ariaData, 'ViewAdGroupBidLandscape');\r\n}\r\n\r\nfunction onCallReturnedForBidLandscape({\r\n adgroup,\r\n response,\r\n event,\r\n scope,\r\n container,\r\n isForVNext,\r\n applyCallback,\r\n applyBlockerEl,\r\n inKeywordCreationWorkflow,\r\n}) {\r\n const trackingId = generateGuid();\r\n const originalBid = getCurrentAppliedBid(adgroup);\r\n const adgroupBidLandscapeView = new AdGroupBidLandscape({\r\n parentItem: {\r\n Id: adgroup.Id,\r\n CurrentValue: originalBid.toString(),\r\n EntityName: adgroup.Name,\r\n campaignType: adgroup.Campaign.CampaignType,\r\n },\r\n i18n,\r\n dataToShow: response,\r\n isForVNext,\r\n inKeywordCreationWorkflow,\r\n helpId: inKeywordCreationWorkflow ? 'app54679' : null,\r\n });\r\n\r\n const { DisplayBiddingStrategyType: bidType } = adgroup;\r\n\r\n adgroupBidLandscapeView.on('cancel', () => {\r\n popupUtil.close();\r\n });\r\n\r\n adgroupBidLandscapeView.on('update', ({ valueToApply }) => {\r\n // check whether input is withing bid allowed range\r\n adgroupBidLandscapeView.markInputValueInvalid(validateBid(valueToApply, bidType));\r\n });\r\n\r\n adgroupBidLandscapeView.on('apply', () => {\r\n // for clear custom bid, let user confirm whether they want to clear all keywords bid\r\n if (adgroupBidLandscapeView.clearBid()) {\r\n // confirm whether user want to clear all keyword's custom bids\r\n // eslint-disable-next-line no-alert\r\n const toSave = window.confirm(i18n.getString('AdGroupBidLandscape_Uniform_SaveConfirmMessageBox'));\r\n if (!toSave) {\r\n return;\r\n }\r\n }\r\n\r\n const activity = adgroupBidLandscapeView.clearBid() ?\r\n senario.applyBidLandscapeAndClearCustomBid.create() :\r\n senario.applyBidLandscapeWitoutClearCustomBid.create();\r\n\r\n activity.trace(\r\n `Getting bid update request from bid landscape, original bid is: ${originalBid}, value trying to apply is:${adgroupBidLandscapeView.valueToApply()}`,\r\n 'ApplyAdGroupBidLandsapeFromCampaignUI'\r\n );\r\n if (adgroupBidLandscapeView.clearBid()) {\r\n customApply(\r\n adgroup,\r\n adgroupBidLandscapeView,\r\n activity,\r\n scope,\r\n applyCallback,\r\n applyBlockerEl,\r\n trackingId\r\n );\r\n } else {\r\n defaultApply(\r\n adgroup,\r\n adgroupBidLandscapeView,\r\n activity,\r\n applyCallback,\r\n applyBlockerEl,\r\n trackingId\r\n );\r\n }\r\n });\r\n\r\n adgroupBidLandscapeView.on('selectModeChange', logBidLandscape, { adgroup, adgroupBidLandscapeView, trackingId });\r\n\r\n adgroupBidLandscapeView.render();\r\n\r\n if (adgroupBidLandscapeView.hasData()) {\r\n popupUtil.render(adgroupBidLandscapeView.$el);\r\n } else {\r\n showPopup({\r\n positioningMethod: 'fit',\r\n positioningOptions: {\r\n anchorPosition: {\r\n top: event.clientY,\r\n left: event.clientX,\r\n width: $(event.target).width(),\r\n height: $(event.target).height(),\r\n },\r\n },\r\n contentView: adgroupBidLandscapeView,\r\n i18n,\r\n classes: ['bidlandscape-container'],\r\n container,\r\n anchor: $(event.target),\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * show bid landscape panel, and bind alll related actions including apply/cancel\r\n *\r\n * @param {Object} event - The backbone click event from where the quality score cell was clicked.\r\n * @param {Object} adgroup - adgroup entity that triggered this call\r\n * @param {Object} scope - scope which includes {customerId, accountId}\r\n * @param {Object} applyCallback - callback function after apply\r\n * @param {Object} inKeywordCreationWorkflow -\r\n * boolean to indicate if the landscape is showed on creation workflow\r\n * @returns {undefined}.\r\n*/\r\nexport function openAdGroupBidLandscape({\r\n event,\r\n scope,\r\n adgroup,\r\n container,\r\n isForVNext,\r\n applyCallback,\r\n applyBlockerEl,\r\n inKeywordCreationWorkflow = false,\r\n}) {\r\n // close previous one, and stop other bindings\r\n popupUtil.close();\r\n event.stopImmediatePropagation();\r\n\r\n fetchAdGroupBidLandscape(adgroup.Id, scope).then((res) => {\r\n onCallReturnedForBidLandscape({\r\n adgroup,\r\n response: res,\r\n event,\r\n scope,\r\n container,\r\n isForVNext,\r\n applyCallback,\r\n applyBlockerEl,\r\n inKeywordCreationWorkflow,\r\n });\r\n const activity = senario.fetch.create();\r\n activity.trace(`Fetch AdGroup bid landscape success for ${adgroup.Id}`, 'adgroupBidlandscape');\r\n }).catch(() => {\r\n onCallReturnedForBidLandscape({\r\n adgroup,\r\n response: {},\r\n event,\r\n scope,\r\n container,\r\n isForVNext,\r\n applyCallback,\r\n applyBlockerEl,\r\n inKeywordCreationWorkflow,\r\n });\r\n }).finally(withUiBlock($(event.target).parent()));\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 (value) {if (value.$total) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value.$total.text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\nif (value.isForVNext) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"scope-navigator\\\"\"+pug.attr(\"href\", value.href, true, true)+pug.attr(\"data-campaignid\", value.cmpid, true, true)+pug.attr(\"data-adgroupid\", value.adgid, true, true)+pug.attr(\"aria-label\", value.ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", value.href, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\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\" + (pug.attr(\"class\", pug.classes([value.isBidReadOnly ? 'bidlandscape-column grid-readonly-cell' : 'bidlandscape-column'], [true]), false, true)) + \"\\u003E\\u003Cdiv class=\\\"bidlandscape-bid-value\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.bid || '-') ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\nif (!value.isBidReadOnly && value.isSearchMediumType && value.id && value.hasBidlandscape) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"iconba iconba-Financial bidlandscape_icon spritedimagealign spritedimage clickable\\\"\"+pug.attr(\"title\", value.i18n.getString('clickableIconText'), true, true)+pug.attr(\"id\", `adgroupBidLandscape${value.id}`, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (schemaI18n, value) {if (value) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = schemaI18n.value('AdGroup', 'DisplayBiddingStrategyType', value)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\n}}.call(this,\"schemaI18n\" in locals_for_with?locals_for_with.schemaI18n:typeof schemaI18n!==\"undefined\"?schemaI18n:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {if (value.name) {\nif (value.baseCampaignName) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"base-campaign-name\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.baseCampaignName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nif (value.isForVNext) {\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"class\", pug.classes([\"scope-navigator\",value.className], [false,true]), false, true)+pug.attr(\"href\", value.href, true, true)+pug.attr(\"data-campaignid\", value.cmpid, true, true)+pug.attr(\"aria-label\", value.ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", value.href, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\n}}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (date, useCampaignLevelDates) {if (useCampaignLevelDates) {\npug_html = pug_html + \"\\u003Cspan class=\\\"grid-cell-text dashed-date-entry\\\"\\u003E\" + (pug.escape(null == (pug_interp = date) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan class=\\\"grid-cell-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = date) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}}.call(this,\"date\" in locals_for_with?locals_for_with.date:typeof date!==\"undefined\"?date:undefined,\"useCampaignLevelDates\" in locals_for_with?locals_for_with.useCampaignLevelDates:typeof useCampaignLevelDates!==\"undefined\"?useCampaignLevelDates:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (schemaI18n, value) {if (value) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = schemaI18n.enum('Medium', value)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\n}}.call(this,\"schemaI18n\" in locals_for_with?locals_for_with.schemaI18n:typeof schemaI18n!==\"undefined\"?schemaI18n: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 (isForVNext, value) {if (value.score > 0) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value.score) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\\u002F10 \\u003C\\u002Fspan\\u003E\";\nif (isForVNext) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"iconba iconba-More quality-score-tooltip\\\"\"+pug.attr(\"title\", value.title, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"status-image status_icon quality-score-detail\\\"\"+pug.attr(\"title\", value.title, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E-\\u003C\\u002Fspan\\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;pug_html = pug_html + \"\\u003Cdiv\\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 (enableGridFlexLayout, i18n, isForVNext, value) {if (value.EntityStatus) {\npug_html = pug_html + \"\\u003Cspan\\u003E\";\nif (value.EntityStatus === 'Paused') {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statuschangetask statusicondisplay statuschangehover clickable\\\"\"+\" tabindex=\\\"0\\\"\"+pug.attr(\"id\", `statusIcon${value.Id}`, true, true)+pug.attr(\"data-rowId\", `${value.Id}`, true, true)+\" data-statusText=\\\"Paused\\\"\"+pug.attr(\"aria-label\", `${i18n.getString('EntityStatus_Paused')}`, true, true)+\" role=\\\"button\\\"\") + \"\\u003E\";\nif (value.isExperiment) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"experiment-paused-icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusPaused_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (isForVNext && enableGridFlexLayout) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"iconba iconba-ChevronDown\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (value.EntityStatus === 'Draft') {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statusicondisplay\\\"\"+pug.attr(\"id\", `statusIcon${value.Id}`, true, true)+pug.attr(\"data-rowId\", `${value.Id}`, true, true)+\" data-statusText=\\\"Draft\\\"\"+pug.attr(\"aria-label\", `${i18n.getString('EntityStatus_Draft')}`, true, true)+\" role=\\\"button\\\"\") + \"\\u003E\";\nif (value.isExperiment) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"experiment-paused-icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusDraft_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (value.EntityStatus === 'Expired') {\nif (isForVNext) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"iconba iconba-Remove\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statushypendisplay\\\"\\u003E\" + (pug.escape(null == (pug_interp = ' - ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statuschangetask statusicondisplay statuschangehover clickable\\\"\"+\" tabindex=\\\"0\\\"\"+pug.attr(\"id\", `statusIcon${value.Id}`, true, true)+pug.attr(\"data-rowId\", `${value.Id}`, true, true)+\" data-statusText=\\\"Enabled\\\"\"+pug.attr(\"aria-label\", `${i18n.getString('EntityStatus_Active')}`, true, true)+\" role=\\\"button\\\"\") + \"\\u003E\";\nif (value.isExperiment) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"experiment-active-icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusEnabled_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (isForVNext && enableGridFlexLayout) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"iconba iconba-ChevronDown\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\n}}.call(this,\"enableGridFlexLayout\" in locals_for_with?locals_for_with.enableGridFlexLayout:typeof enableGridFlexLayout!==\"undefined\"?enableGridFlexLayout:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isForVNext\" in locals_for_with?locals_for_with.isForVNext:typeof isForVNext!==\"undefined\"?isForVNext:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;"],"names":["AdExtensionSchemaProcessor","_BaseSchemaProcessor","adextensionType","hasCampaignColumn","hasAdGroupColumn","disableScheduling","isForVNext","i18n","schemaI18nCampaign","_this","_classCallCheck","_callSuper","globalConfig","cacheService","dataContextManager","jsdata","_inherits","_createClass","key","value","entitySchema","updatedSchema","_superPropGet","properties","_","allConvMetric","putil","filterable","deliveryStatusProperty","AdExtensionDelivery","deliveryEnum","this","splice","concat","updateDeliveryStatusOptionForFilter","CampaignName","AdGroupName","addCampaignTypePropertyForFilter","permissions","Permissions","CampaignType","AdExtensionSchedulingEndDate","AdExtensionSchedulingStartDate","CampaignStatus","AdGroupStatus","odataOptions","custom","eq","replace","BaseSchemaProcessor","AdExtensionAssociationSchema","window","globalLegacySchema","get","mockI18n","getString","type","enum","enumMappedString","enumDescription","valueDescription","parseInt","property","i18nCache","newI18n","legacyGlobalI18n","specificAggRowText","item","prop","isAggregateRow","$total","isOdataActionSource","refreshCampaignCache","getDataSourceConfig","_ref","campaignNameColumnExist","adgroupNameColumnExist","logActivity","scope","preferenceService","associationType","gridName","filter","appConfig","campaignId","values","adGroupId","columns","completeColumns","excludedColumns","extraPerformanceColumns","useTotalsPlugin","getUseTotalsPlugin","adextensionGridColumn","bingadsGridColumn","name","AdExtension","title","formatData","IsVideoAdExtensionsPerfMetricsEnabled","hasCampaignNameColumn","hasAdGroupNameColumn","BaseCols","PerformanceColumns","usePartialConversions","dynamic","PartialConversions","ColumnConversion","ConversionColumns","ExtraPerfCol","EntityCampaignColumn","Campaign","IsDeleted","EntityAdGroupColumn","AdGroup","CampaignId","DeliveryColumn","SharedColumns","col","perfColumns","colObj","filterConfig","featureName","adExtensionSchemaProcessor","_objectSpread","customColumnPreference","schemaProcessor","enableCampaignWaterfall","enableAdGroupWaterfall","editor","selector","items","text","removable","defaultValue","sessionStore","preferenceStoreFactory","getFilters","getCommonFilterConfig","getFilterConfig","automatedType","columnConfig","columnsConfig","performanceCols","columnPropertyMap","column","columnsMap","selectedColumns","applyPartialConversionColumnName","compact","lockedColumns","defaultColumns","getNewColumnChooserConfig","extraImgExpand","_permissions$dynamic","IsColumnConversionEnabled","initialQuery","gridDataParameters","getGridDataParams","query","nullifynotapplybidamounts","$expand","edmEntity","edm","currentAccount","Campaigns","$withKey","AdGroups","entitySet","AutomatedExtensions","AdExtensionAssociations","filterService","FilterService","quickFilterName","findByNameAtUserLevel","setQuickFilter","AdExtensionStatus","$in","gridDataParameterDecorator","decorators","customColumnsEnabled","addPoPColumnsOnComparisonEnabled","IsAvgPositionDeprecationPhase2Enabled","comparisonPoPColumns","defaultPageSize","adExtensionTypes","push","dataSource","primaryKey","entity","DataStore","options","usePendingFindAll","useDfmCache","cacheResponse","headers","_defineProperty","schema","queryBuilder","commonConfig","deps","dateUtil","state","ColumnChooserPreference","CustomColumnPreference","SegmentationPreference","fetchPaginationConfig","fetchSortInfo","columnConversions","getColumnsConversionMap","extensionItems","ActionAdExtension","typeString","_TL_","AppAdExtension","CallAdExtension","CalloutAdExtension","ImageAdExtension","LocationAdExtension","PriceAdExtension","ReviewAdExtension","Sitelink2AdExtension","StructuredSnippetAdExtension","AutomatedAdExtension","PromotionAdExtension","FilterLinkAdExtension","FlyerAdExtension","VideoAdExtension","LeadFormAdExtension","BusinessInfoAdExtension","getDataSource","useCache","associationScope","undefined","getGridName","AdGroupId","AdExtensionType","AssociationType","existingDataSource","DataSourceStore","dataFetchConfig","afterFindAllPromiseResolve","QueryBuilderFactory","make","queryErrors","QueryErrorFactory","customDataSource","AdExtensionsGridDataSource","JSData","afterFindAllPromise","Promise","res","connect","logger","set","store","DS","CustomerAdapter","result","mockData","raw","registerAdapter","default","dummyDataSource","defineResource","idAttribute","required","Id","Name","maxLength","StartDate","EndDate","nullable","Status","enumType","SearchBid","ContentBid","PercentCpcBid","RateAmount","Amount","oneOf","$ref","$$ODataExtension","$$ref","AdGroupPercentCpcBid","CommissionRate","AdGroupCommissionRate","Medium","PricingModel","Language","chooseType","BidTarget","DeliveryStatus","CallTrackingStatus","PerformanceMetrics","Impressions","Clicks","CTR","Conversions","Spend","AverageCPC","AveragePosition","AverageCPM","CPA","WebsiteCoverage","AuctionWonPercent","sovcolumn","isPercentValue","AuctionLostToBudgetPercent","AuctionLostToRankPercent","AuctionLostToLandingPercent","AuctionLostToAdQualityPercent","AuctionLostToBidPercent","ClickSharePercent","RevenueOnAdSpend","AdvertiserReportedRevenue","ConversionRate","AllConversionCPA","nullabe","AllConversions","AllConversionRate","AllConversionAdvertiserReportedRevenue","AllConversionRevenueOnAdSpend","alias","legacy","Labels","Description","ColorCode","AssociationCounts","CampaignCount","AdGroupCount","AdCount","KeywordCount","isRelatedEntity","PhonePerformanceMetrics","$schema","QualityScore","UpdatedOnLastImport","HasAuctionInsight","IsBidLandscapeAvailable","TrackingUrlTemplate","UrlCustomParameters","BiddingScheme","NativeBidAdjustment","Properties","DisplayBiddingStrategyType","DisplayBiddingStrategyMaxCpc","DisplayBiddingStrategyTargetCpa","DsaTargets","DomainCategorys","NegativeAdGroupDsaTargets","Categories","DsaSearchTerms","toJSON","noop","getAdGroupGridFactory","arguments","length","globalContext","define","pkg","bidLandscapeDependencies","adGroupBidLandscapeInitializer","getAdGroupBidLandscapeInitializer","resolve","require","dependecies","object","map","dep","then","adGroupBidLandscapeInitializerWebpack","getAdGroupBidLandscapeInitializerWebpack","campaignManagedDateContainerId","dismissCampaignManagedDateCallout","calloutElement","document","getElementById","ReactDOM","commonI18n","handleSortChange","CopyPaste","Hotkeys","instrumentation","requireDefault","AdGroupsGrid","_DeterministicWrapper","getGridConfig","getPlugins","preferenceConfig","router","_ref$isForVNext","currentCampaign","pageName","_ref$preexecuteFlag","preexecuteFlag","gridRemoved","gridConfig","grid","pgridFactory","plugins","rejectionPopupContainerSelector","popoverId","isMCCLabelEnabled","IsAccountLabelsEnabled","AdGroupsPageDFMV2","setUpErrorHandling","gridView","on","oldQuery","newQuery","getCombinedFilter","updateGridQuery","changes","gridDidUpdateHandler","once","PageReady","pageIsReady","pagination","pageNumber","setPageNumberToState","IsCampaignAdGroupCopyPasteEnabled","config","bulkEditGridOptions","pgridPlugins","copy","bind","paste","onClick","setup","_this2","data","rawData","setTimeout","count","setCreateBtnDisabled","shouldDisableCreateBtn","number","$","attr","campaign","CurrentAccount","IsReadOnlyUser","CampaignSubType","reset","_this3","initializeCombinedFilterPromise","_this4","events","event","keyOfElement","target","targetEntity","itemWithKey","filterOnLabelClick","navigateToManagePage","_entity$Campaign","view","styles","mergeStyleSets","content","marginBottom","placement","getBoundingClientRect","right","innerWidth","url","getRoutePathById","uri","URI","getTargetEntity","addQuery","appendScopeParameter","actionLink","toString","insertPopoverContainer","tooltipProps","parentView","currentTarget","show","onClose","onMouseLeave","closeButton","focusLockContent","_jsxs","_Fragment","children","_jsx","className","classnames","variant","href","GridTooltip","renderCampaignManagedDateTooltip","_ref2","relatedTarget","closest","trigger","hideCampaignManagedDateTooltip","IsDeferredHoveringPopupEnabled","handleShowRejectionReasonEnter","showRejectionReason","handleShowRejectionReasonLeave","getTargetEnity","showLabelsPopup","labels","entityType","entityName","container","$el","preventDefault","selectedItem","editorialStatus","parent","attributeId","valueLevel","activity","editorial","create","toggleCountryList","showRejectionReasons","deliveryStatusDetails","getCustomTemplate","getEditorialReasonsTemplate","ajaxOptions","host","path","oDataToken","params","campaign_id","account_id","customer_id","adgroup_id","sessionId","SessionId","deliveryStatus","useCustomTemplate","afterRender","popup","registerCountryListEvent","id","_this5","actionLinks","DeliveryStatusDetails","resolveURL","includes","NoEligibleAds","NoEligibleKeywords","allSiteMap","ShoppingCampaignNoOffersPresent","DeliveryStatusPopupFactory","showRejectionPopup","containerSelector","inContextRepairRecommedationType","e","_this6","openAdGroupBidLandscape","adgroup","applyCallback","updates","newAdGroup","applyBlockerEl","showQualityScoreDetail","DeterministicWrapperView","jsData","i18nErrors","complexFields","InlineEditableSave","blockerContainer","fieldName","updated","editorView","editorViewCallbackAfterUpdate","_ref$isDateType","isDateType","toUpdate","formatDate","Date","timeZone","uiBlocker","el","update","adapter","finally","withUiBlock","refresh","catch","response","errorMapping","unexpectedError","errors","getBulkApiErrors","message","setErrors","AlertHelper","showError","AdGroupCashbackPercentColumn","AdGroupCashbackPercentColumnFactory","updater","AdGroupCashbackScopeColumn","AdGroupCashbackScopeColumnFactory","AdGroupCouponColumn","AdGroupCouponColumnFactory","getLanguages","languages","IsSimplifiedChineseLanguageEnabledInMultipleLanguage","IsAdsGlobalizationPhase1Enabled","IsAdsGlobalizationPhase2Enabled","IsAdsGlobalizationPhase6Enabled","IsAdsGlobalizationPhase2JapanEnabled","IsAdsGlobalizationPhase9Enabled","IsAdsGlobalizationPhase9VIEnabled","IsDomesticSimplifiedChineseEnabled","LanguageInlineEditView","_DeterministicView","selectedLanguage","campaignHasLanguage","withInheritOption","i18nStrings","SaveWarning","languageSelector","LanguageSelector","setChild","model","customizedInlineEditTemplate","getSelectedLanguage","removeClass","html","addClass","DeterministicView","LanguageColumn","_CampaignuiBaseColumn","isDSAMixedModeCampaignEnabled","LanguageColumnConfig","editable","enableEdit","shouldEnableInlineEdit","helpId","helpAriaLabel","adGroupType","AdGroupType","position","newPosition","languageEditorView","Languages","_ref3","groupClass","GridCustomizedPopupEditor","render","cellPosition","renderBelow","parentContainerSelector","CampaignuiBaseColumn","InlineEditableColumnPrompt","saveModelCallback","_ref$saveModel","saveModel","_ref$customValidators","customValidators","_ref$adGroupSchema","adGroupSchema","customClass","customHint","PopupEditor","fields","hasLabels","template","campaignIdInLastBuilder","lastGlobalCampaignTypeFilter","AdGroupColumn","AdGroupColumnConfig","sortable","bodyClasses","group","_this$scope","cid","customerId","aid","accountId","uid","userId","adgid","_item$Campaign","_item$Campaign2","cmpid","pathName","IsRenameHotelToLodgingEnabled","ariaLabel","adGroupName","adGroupTemplate","is","App","CampaignColumn","CampaignColumnConfig","baseCampaignName","BaseCampaignName","vNextHref","campaignName","experimentName","getRouteTo","campaignTemplate","BidStrategyTypeColumn","BidStrategyTypeColumnConfig","schemaI18n","SchemaI18n","isXandrServing","bidStrategyTypeTemplate","commonBidStrategyListToDisableBidAmountEdit","keepEnabled","bidStrategyType","BidBaseColumn","bidStrategyListToDisableBidAmountEdit","numberFormatter","decimalToFixedFormatter","digits","defaultMSStoreMinSuggestionBid","hasClass","campaignType","campaignSubType","campaignSettings","bidRangeKey","useProductGroupBidRange","IsBidLessThan5CentsInShoppingCampaignEnabled","isHotelCampaign","isMSStoreAdsCampaignEnabled","isMSStoreAdsCampaign","isXandrVideoAdsCampaign","BiddingStrategyToRangeKey","min","max","IsDealEnabledForMsAds","DealMinimumBid","ceil","currentName","schemaOrigin","schemaCopy","maximum","minimum","errorMsg","isDefaultBidCPVAppended","pricingModel","BiddingStrategyToPricingModel","isCommissionOrPercentCpc","isValid","bid","showDefaultBidWarning","showLowerThanMinSuggestionBidWarning","updateDefaultBidWarning","DefaultBidCPVWarningThreshold","element","warning","Alert","level","defaultBidCPVWarningParent","defaultBidCPVWarningId","append","defaultBidCPVWarning","hide","initDefaultBidWarning","bidstrategy","isAutoBid","HideAutoBidValueInGrid","formattedBid","IsAdgroupLandscapeV2Enabled","hasBidlandscape","formatBidString","isBidReadOnly","isSearchMediumType","minSuggestionBid","SearchBidColumn","_BidBaseColumn","SearchBidColumnConfig","IsVideoAdsForCampaignEnabled","IsManualCpmEnabled","CpmBidColumn","CpmBidColumnConfig","CpvBidColumn","CpvBidColumnConfig","PercentCpcBidColumn","PercentCpcBidColumnConfig","CommissionRateColumn","CommissionRateColumnConfig","QualityScoreColumn","QualityScoreColumnConfig","titleDetail","score","OverallQualityScore","qualityScoreTemplate","MediumColumn","MediumColumnConfig","mediumTemplate","AdGroupIdColumn","AdGroupIdColumnConfig","StartDateColumn","StartDateColumnConfig","UseCampaignLevelDates","getCurrentDate","date","getStartDate","useCampaignLevelDates","_item$Campaign3","displayStartDate","startDate","displayDate","allowNoDate","selectedDate","convertUTCDateToMachineDate","maxDate","DateInlineEditableColumnPrompt","dateTemplate","EndDateColumn","EndDateColumnConfig","getEndDate","displayEndDate","endDate","minDate","Paused","Expired","CampaignUserPaused","CampaignBudgetPaused","CampaignBudgetUserPaused","PrivacyPending","TargetingTooNarrow","Draft","Active","Deleted","pageContext","enableGridFlexLayout","StatusIconColumn","StatusIconColumnConfig","isResizable","EntityStatus","headerTemplate","isExperiment","statusIconTemplate","statusEditor","renderStatusPopupEditor","currentStatus","statusOptions","option","iconClass","Enabled","status","statusEnumMap","AdGroupTypeColumn","AdGroupTypeColumnConfig","TrackingTemplateColumn","_TrackingTemplateColu","TrackingTemplateColumnConfig","TrackingTemplateColumnOriginal","FinalUrlSuffixColumn","_FinalUrlSuffixColumn","FinalUrlSuffixColumnConfig","FinalUrlSuffixColumnOriginal","CustomParametersColumn","_CustomParametersColu","CustomParametersColumnConfig","CustomParametersColumnOriginal","_globalContext$requir","Columns","SelectedColumns","_globalContext$requir2","LegacyColumns","LegacySelectedColumns","CustomColumns","LegacyGridFlag","builder","IsViewThroughConversionEnabled","IsAudienceSOVEnabled","IsDSAMixedModeCampaignEnabled","IsAvgPositionDeprecationPhase1Enabled","IsPersonalizedOffersEnabled","IsPersonalizedOffersV3Enabled","IsViewThroughConversionsRevenueEnabled","IsPersonalizedOffersV4Enabled","_Permissions$dynamic","IsPartialConversionsEnabled","IsHotelCampaignEnabled","HotelCampaign","XandrVideoCampaigns","CPSReporting","InstallPerformanceColumns","isConversionValueRuleColumnsEnabled","ConvValueRules","isPortfolioBidStrategyEnabled","allBidColumns","getBuilder","globalCampaignTypeFilter","isBiddingSchemeUpdated","getLockedBidColumns","ColumnsConfigBuilder","addCategory","category","addColumns","BidStrategyNameColumn","_toConsumableArray","getUnlockedBidColumns","IsCampaignMultipleLanguageEnabled","LabelsColumn","addPerformanceCategoryForAdGroups","addConversionsCategory","withPartialConversions","isCPSEnabled","isInstallColumnsEnabled","addCompetitiveCategoryForCampaignOrAdGroups","IsCallMeteringAllowed","addCallDetailsCategory","setLockedColumns","setSelectedColumns","getSelectedBidColumns","ColumnConversionsCredit","ColumnConversions","ColumnViewThroughConversionsCredit","ColumnViewThroughConversions","ColumnTopImpressionRate","ColumnAbsoluteTopImpressionRate","nameFromLegacy","StatusIcon","DeliveryStatusView","FormattedMedium","ID","TrackingTemplateJson","UrlCustomParametersJson","ClickCount","ImpressionCount","ClickThrough","TotalSpendAmount","TotalCost","ConversionCount","AdGroupCallTrackingStatus","PhoneCost","PhoneThroughRate","stateManager","decimal","toolbarRow","helpers","helpIdMap","PhoneSpend","PhoneImpressions","AverageCPP","ConversionsCredit","PartialConversionRate","AbsoluteTopImpressionSharePercent","ManualCalls","TotalWatchTimeInMS","ViewThroughConversionsRevenue","ViewThroughConversionsCPA","ViewThroughPartialConversionsCPA","ViewThroughConversionsReturnOnAdSpend","ViewThroughConversionsRate","ViewThroughPartialConversionsRate","ViewThroughConversions","ViewThroughConversionsCredit","getConfig","viewport","customHeaderOffset","isDataFetchManagerSource","tableName","legacyGridName","tableClasses","tableAttributes","selection","rows","headRows","crossPageSelectHeadRow","inlineEditableSave","getColumnsConfig","scrolling","header","offset","height","attributes","role","virtualized","sortableHeader","sortableHeaderTemplate","layout","validateOrder","navigation","source","$call","parameters","mockEdm","root","identifyEntitySet","appState","s$i18n","DownloadView","setSegType","getSegType","ChangeBiddingStrategyModel","ChangeBiddingStrategyView","jsdataRawDataPlugin","commonJsdataRawDataPlugin","getRawData","rawDataAccessor","ds","_rawData","dfmRawData","getAdGroupPlugins","addDateChangeListener","p$daterange","adGroupTabPerfMarker","getCampaignTypeGlobalFilter","isSmartShoppingCampaign","aggregatedRowsPlugin","aggregatedRowsPluginBuilder","keys","overallI18nKey","filteredI18nKey","waterfallFilterI18nKey","customConfig","showLinkedInRow","ReportEmailRule","columnChooserConfig","customColumnConfig","_ref2$isForVNext","IsCustomColumnsInAdGroupsSupported","_adGroupMetricCategor","adGroupMetricCategoriesFactory","enabled","metricCategories","segmentCategories","columnProcessorBeforeSetRecord","columnProcessorBeforeSetRecordGetter","getColumnChooserConfig","patchQuery","AdCustomizerAttribute","resource","AdGroupAdCustomizerAttribute","RSAAdCustomizerAttributeColumn","enableRSAAdCustomizer","customToolbarIcon","unset","plugin","perfMarkerPlugin","marker","paginationPlugin","availablePageSizes","enableRandomPage","pageNumberLabelText","pageSizeText","totalPageCountText","resetPageNumberOnSort","auctionInsightPlugin","legacyRouter","route","crossPageSelectNotAllowedI18nKey","shouldNavigateToCompetitionTab","IsBAACompetitionEnabled","inlineDownloadWithoutFilterstatePlugin","isAvailable","gridId","segmentPlugin","cultureShortDatePattern","ShortDatePattern","cellTemplates","segmentationTypes","IsVerticalAdsReportingPhase1Enabled","campaignSegmentationTypeEnum","segmentationType","bidStrategy","editablePlugin","uiBlockerPlugin","performanceLogPlugin","periodOverPeriodPlugin","columnChooserPlugin","dateFilterPlugin","inlineErrorPlugin","errorIconClasses","assistedSelectionPlugin","a11yPlugin","projectionGridFlexColumnResize","softDependencies","getPGridColumnResizePlugin","createAdGroupGrid","_ref$deps","_ref$getAdditionalPlu","getAdditionalPlugins","popupUtil","senario","adgroupBidlandscape","odata","currencyCode","msg","defaultApply","adgroupBidLandscapeView","blockerEl","trackingId","CpmBid","CpvBid","bidType","oldValue","newValue","parseDecimal","valueToApply","bidKV","currency","isCustomBid","viewModel","currentSelectedId","landscapePointsLength","startDateString","endDateString","close","trace","error","applyError","getCurrentAppliedBid","BiddingStrategyToBidParam","logBidLandscape","selectMode","adgroupSelectMode","off","fetch","ariaData","ActionName","UIData","bidList","dataArray","currentBid","onCallReturnedForBidLandscape","inKeywordCreationWorkflow","generateGuid","originalBid","AdGroupBidLandscape","parentItem","CurrentValue","EntityName","dataToShow","markInputValueInvalid","newBidStr","bidRange","floorPrice","FloorValue","ceilingPrice","CeilingValue","formatDecimalToFixed","validateBid","clearBid","confirm","applyBidLandscapeAndClearCustomBid","applyBidLandscapeWitoutClearCustomBid","newBid","patch","Bid","errorMessage","errorResponseBody","errorCode","Code","customApply","hasData","showPopup","positioningMethod","positioningOptions","anchorPosition","top","clientY","left","clientX","width","contentView","classes","anchor","_ref3$inKeywordCreati","stopImmediatePropagation","adgroupId","__adcenterAJAX","http","post","contentType","__RequestVerificationToken","val","fetchAdGroupBidLandscape","pug","module","exports","locals","pug_interp","pug_html","locals_for_with","escape","call"],"sourceRoot":""}