{"version":3,"file":"static/js/application.async.non-landing~3e6b5199.cba37bb1.chunk.js","mappings":"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","sources":["../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/columns/adgroup-column.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/columns/adgroup-id-column.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/config.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/columns/bid-adjustment-column.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/columns/campaign-column.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/columns/campaign-id-column.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/columns/campaign-type-column.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/columns/level-column.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/helpers.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/columns/location-column.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/column-config.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/settings-view.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/filter-state-config.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/grid-config.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/common-repository.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/base-grid-view.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/campaign-adgroup-selector-vnext.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/targeting-settings-context.js","../../../node_modules/@bingads-webui-campaign/tracking-template-columns/src/tracking-template.js","../../../node_modules/@bingads-webui-campaign/tracking-template-columns/src/custom-parameters.js","../../../node_modules/@bingads-webui-campaign/tracking-template-columns/src/final-url-suffix.js","../../../node_modules/@bingads-webui-component-legacy/column-chooser/option.js","../../../node_modules/@bingads-webui-component-legacy/column-chooser/category.js","../../../node_modules/@bingads-webui-component-legacy/extension/ko/clickToggle.js","../../../node_modules/@bingads-webui-component-legacy/column-chooser/column-chooser.js","../../../node_modules/@bingads-webui-component-legacy/extension/ko/sortable.js","../../../node_modules/@bingads-webui-component-legacy/column-chooser/index.js","../../../node_modules/@bingads-webui-component-legacy/modal/index.js","../../../node_modules/@bingads-webui-component-legacy/bingads-grid/plugin/column-chooser.js","../../../node_modules/@bingads-webui-component-legacy/bingads-grid/plugin/cross-page-select-all/viewmodel/index.js","../../../node_modules/@bingads-webui-component-legacy/bingads-grid/plugin/cross-page-select-all/view/index.js","../../../node_modules/@bingads-webui-component-legacy/bingads-grid/plugin/cross-page-select-all/index.js","../../../node_modules/@bingads-webui-component-legacy/bingads-grid/plugin/new-performance-log.js","../../../node_modules/@bingads-webui-component-legacy/bingads-grid/plugin/ui-blocker.js","../../../node_modules/@bingads-webui-component-legacy/bingads-grid/service/custom-userinfo-preferences.js","../../../node_modules/@bingads-webui-component-legacy/bingads-grid/service/date-filter-preferences.js","../../../node_modules/@bingads-webui-component-legacy/event-helper/event-helper.js","../../../node_modules/@bingads-webui-component-legacy/grid-customized-popup-editor/index.js","../../../node_modules/@bingads-webui-component-legacy/grid-toolbar/button.js","../../../node_modules/@bingads-webui-component-legacy/grid-toolbar/buttonMenuItem.js","../../../node_modules/@bingads-webui-component-legacy/grid-toolbar/dividerMenuItem.js","../../../node_modules/@bingads-webui-component-legacy/grid-toolbar/dropdown.js","../../../node_modules/@bingads-webui-component-legacy/grid-toolbar/gridToolbar.js","../../../node_modules/@bingads-webui-component-legacy/grid-toolbar/headerMenuItem.js","../../../node_modules/@bingads-webui-component-legacy/grid-toolbar/menuItem.js","../../../node_modules/@bingads-webui-component-legacy/humanize/byte.js","../../../node_modules/@bingads-webui-component-legacy/js-data-delegate/adapter.js","../../../node_modules/@bingads-webui-component-legacy/mutable-model/index.js","../../../node_modules/@bingads-webui-component-legacy/schema-i18n/loader.js","../../../node_modules/@bingads-webui-component-legacy/update-status/view/index.js","../../../node_modules/@bingads-webui-component-legacy/walkme/view/index.js","../../../node_modules/@bingads-webui-component-legacy/walkme/viewmodel/link.js","../../../node_modules/@bingads-webui-component-legacy/walkme/view/link.js","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/bi-refresh-time-footer.pug","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/columns/template/adgroup-column.pug","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/columns/template/bid-adjustment-column.pug","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/columns/template/campaign-column.pug","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/columns/template/extended-bid-adjustment.pug","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/columns/template/location-column.pug","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/navbar-selector.pug","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/segment-value-cell.pug","../../../node_modules/@bingads-webui-campaign/targeting-settings-scaffolds/src/settings-view.pug","../../../node_modules/@bingads-webui-campaign/tracking-template-columns/src/custom-parameters.pug","../../../node_modules/@bingads-webui-component-legacy/bingads-grid/plugin/cross-page-select-all/template/index.pug","../../../node_modules/@bingads-webui-component-legacy/column-chooser/template/index.pug","../../../node_modules/@bingads-webui-component-legacy/grid-toolbar/template/button.pug","../../../node_modules/@bingads-webui-component-legacy/grid-toolbar/template/buttonMenuItem.pug","../../../node_modules/@bingads-webui-component-legacy/grid-toolbar/template/dropdown.pug","../../../node_modules/@bingads-webui-component-legacy/grid-toolbar/template/toolbar.pug","../../../node_modules/@bingads-webui-component-legacy/modal/layout/modal.pug","../../../node_modules/@bingads-webui-component-legacy/update-status/template/index.pug","../../../node_modules/@bingads-webui-component-legacy/walkme/template/link.pug"],"sourcesContent":["import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { TargetingSettingsContext } from '../targeting-settings-context';\r\nimport adGroupColumnTemplate from './template/adgroup-column.pug';\r\n\r\nexport default class ColumnAdGroup extends CampaignuiBaseColumn {\r\n constructor({\r\n i18n,\r\n gridType,\r\n }) {\r\n super({\r\n name: 'AdGroupName',\r\n type: 'string',\r\n property: ['AdGroup/Id', 'AdGroup/Name'],\r\n sortable: 'AdGroup/Name',\r\n title: 'ColumnName_AdGroup',\r\n bodyClasses: ['col-AdGroupName'],\r\n i18n,\r\n });\r\n\r\n this.i18n = i18n;\r\n this.gridType = gridType;\r\n }\r\n\r\n template({ value }) {\r\n if (_.isNull(value)) {\r\n return adGroupColumnTemplate({\r\n name: '',\r\n });\r\n }\r\n\r\n const cid = TargetingSettingsContext.state.get('customer_id');\r\n const aid = TargetingSettingsContext.state.get('account_id');\r\n const link = `/campaign/vnext/${this.gridType}?aid=${aid}&cid=${cid}&campaignId=${value.cmpid}&adGroupId=${value.adgid}`;\r\n\r\n return adGroupColumnTemplate({\r\n link,\r\n name: value.name,\r\n campaignId: value.cmpid,\r\n adgroupId: value.adgid,\r\n airaLabel: this.i18n.getString('Click to scope to ad group {{adGroupName}}', { adGroupName: value.name }),\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: ({ Campaign, AdGroup }) => {\r\n if (_.isUndefined(Campaign) || _.isUndefined(AdGroup)) {\r\n return null;\r\n }\r\n\r\n return {\r\n cmpid: Campaign.Id,\r\n adgid: AdGroup.Id,\r\n name: AdGroup.Name,\r\n };\r\n },\r\n key: this.config.property,\r\n };\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\n\r\nexport default class ColumnAdGroupId extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'AdGroupId',\r\n property: 'AdGroup/Id',\r\n title: 'ColumnName_AdgroupID',\r\n sortable: 'AdGroup/Id',\r\n type: 'number',\r\n i18n,\r\n });\r\n }\r\n}\r\n","export const TargetingType = {\r\n AllSettings: 0,\r\n Locations: 1,\r\n AdSchedule: 2,\r\n Devices: 3,\r\n};\r\n\r\nexport const DeviceName = {\r\n Computers: 'Computers',\r\n Tablets: 'Tablets',\r\n Smartphones: 'Smartphones',\r\n};\r\n\r\nexport const TargetingScope = {\r\n Account: 0,\r\n Campaign: 1,\r\n AdGroup: 2,\r\n};\r\n\r\nexport const TargetingScopeLiterals = [\r\n 'account',\r\n 'campaign',\r\n 'adgroup',\r\n];\r\n\r\nexport const TargetingLevel = {\r\n Campaign: 0,\r\n AdGroup: 1,\r\n};\r\n\r\nexport const TargetingLevelLiterals = [\r\n 'campaign',\r\n 'adgroup',\r\n];\r\n\r\nexport const TargetingRoutes = [\r\n {\r\n allSettings: 'campaign_allsettings',\r\n settings: 'campaign_settings',\r\n },\r\n {\r\n allSettings: 'campaign_edit',\r\n settings: 'campaign_edit_settings',\r\n },\r\n {\r\n allSettings: 'adgroup_edit',\r\n settings: 'adgroup_edit_settings',\r\n },\r\n];\r\n\r\nexport const TabItems = [\r\n {\r\n name: 'allSettings',\r\n text: 'TargetingSettings_All',\r\n value: TargetingType.AllSettings,\r\n routeParams: {},\r\n },\r\n {\r\n name: 'locations',\r\n text: 'TargetingSettings_Locations',\r\n value: TargetingType.Locations,\r\n routeParams: { setting: 'locations' },\r\n },\r\n {\r\n name: 'adSchedule',\r\n text: 'TargetingSettings_AdSchedule',\r\n value: TargetingType.AdSchedule,\r\n routeParams: { setting: 'adschedule' },\r\n },\r\n {\r\n name: 'devices',\r\n text: 'TargetingSettings_Devices',\r\n value: TargetingType.Devices,\r\n routeParams: { setting: 'devices' },\r\n },\r\n];\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport { BidAdjustmentView } from '@bingads-webui-campaign/bid-adjustment';\r\nimport { isXandrServing } from '@bingads-webui-campaign-react/constants';\r\nimport bidAdjColumnTemplate from './template/bid-adjustment-column.pug';\r\nimport { TargetingLevel } from '../config';\r\nimport { TargetingSettingsContext } from '../targeting-settings-context';\r\nimport extendedBidAdjTmpl from './template/extended-bid-adjustment.pug';\r\n\r\nclass ExtendedBidAdjustmentView extends Backbone.View {\r\n initialize(options) {\r\n this.options = options;\r\n }\r\n\r\n render() {\r\n const {\r\n i18n,\r\n value,\r\n customValidators,\r\n currentCampaign,\r\n criterion,\r\n } = this.options;\r\n\r\n this.$el.html(extendedBidAdjTmpl({\r\n i18n: this.options.i18n,\r\n isCommission: _.chain(currentCampaign).result('BiddingScheme').result('Type').value() === 'Commission',\r\n isDevice: _.chain(criterion).result('Type').value() === 'Device',\r\n }));\r\n\r\n if (this.bidAdjustmentView) {\r\n this.bidAdjustmentView.remove();\r\n }\r\n\r\n this.bidAdjustmentView = new BidAdjustmentView({\r\n value,\r\n i18n,\r\n customValidators,\r\n });\r\n\r\n this.$('.bid-adjustment').empty().append(this.bidAdjustmentView.render().$el);\r\n this.listenTo(this.bidAdjustmentView, 'all', this.trigger);\r\n\r\n return this;\r\n }\r\n\r\n remove() {\r\n this.bidAdjustmentView.remove();\r\n return super.remove();\r\n }\r\n}\r\n\r\nexport default class ColumnBidAdjustment extends CampaignuiBaseColumn {\r\n constructor({\r\n i18n, level, parentView, customValidators,\r\n }) {\r\n const localizedTitle = i18n.getString('TargetingSettings_Grid_Column_BidAdj');\r\n const { isDeprecatedLocation } = TargetingSettingsContext;\r\n const permissions = TargetingSettingsContext.pageContext.Permissions;\r\n const isMSANBoostEnabled = _.result(permissions, 'IsAmplifyEnabled', false);\r\n const isHideBidAdjustmentForBoostEnabled = isMSANBoostEnabled && _.result(permissions, ['dynamic', 'HideBidAdjustmentForBoost']);\r\n\r\n super({\r\n name: 'BidAdj',\r\n title: 'TargetingSettings_Grid_Column_BidAdj',\r\n property: level === TargetingLevel.AdGroup ?\r\n 'Model.BiddableAdGroupCriterion/CriterionBid' :\r\n 'Model.BiddableCampaignCriterion/CriterionBid',\r\n sortable: 'CriterionBid',\r\n type: 'number',\r\n format: 'percentage',\r\n helpId: 'pop_BA_Settings_BidAdjustment',\r\n i18n,\r\n parentView,\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: localizedTitle }),\r\n enableEdit: (item) => {\r\n if (isDeprecatedLocation(item.Criterion)) { // non-editable for location deprecation\r\n return false;\r\n }\r\n\r\n const isCommission = _.chain(item.Campaign).result('BiddingScheme').result('Type').value() === 'Commission';\r\n const isAdGroupLevel = level === TargetingLevel.AdGroup;\r\n const isHotelCampaign = _.chain(item.Campaign).result('CampaignType').value() === 'Hotel';\r\n const isPMaxCampaign = _.chain(item.Campaign).result('CampaignType').value() === 'PerformanceMax';\r\n const isLinkedInCampaign = _.chain(item.Campaign).result('CampaignType').value() === 'LinkedIn';\r\n const criterionType = _.chain(item.Criterion).result('Type').value();\r\n const isXandr = isXandrServing(_.chain(item.Campaign).result('CampaignSubType').value(), _.chain(item.Campaign).result('CampaignSettings').value());\r\n const isLocation = criterionType === 'Location' || criterionType === 'Radius';\r\n const isAdSchedule = criterionType === 'DayTime';\r\n const isDevice = criterionType === 'Device';\r\n\r\n if (isCommission && (isLocation || isAdSchedule || (isAdGroupLevel && isDevice))) {\r\n return false;\r\n } else if ((isAdGroupLevel && (isHotelCampaign && (isLocation || isAdSchedule)))) {\r\n return false;\r\n } else if (isPMaxCampaign && (isLocation || isAdSchedule || isDevice)) {\r\n return false;\r\n } else if (isXandr && (isLocation || isAdSchedule || isDevice)) {\r\n return false;\r\n } else if (isHideBidAdjustmentForBoostEnabled) {\r\n return false;\r\n } else if (isLinkedInCampaign) {\r\n return false;\r\n }\r\n\r\n return item.Campaign && item.Campaign.CampaignSubType !== 'ShoppingSmartAds'; // non-editable for smart shopping campaign\r\n },\r\n });\r\n\r\n this.i18n = i18n;\r\n this.customValidators = customValidators;\r\n this.level = level;\r\n this.isHideBidAdjustmentForBoostEnabled = isHideBidAdjustmentForBoostEnabled;\r\n }\r\n\r\n onPrompt({ item, newPosition }) {\r\n if (item.LevelOfDetails === 'Campaign') {\r\n this.parentView.trigger('inlineEdit', item);\r\n } else {\r\n const bidAdjustmentView = new ExtendedBidAdjustmentView({\r\n value: item.CriterionBid.Multiplier,\r\n i18n: this.i18n,\r\n customValidators: _.isFunction(this.customValidators)\r\n ? this.customValidators(item.Criterion, item.Campaign)\r\n : this.customValidators,\r\n currentCampaign: item.Campaign,\r\n criterion: item.Criterion,\r\n }).render();\r\n\r\n const popupEditor = new GridCustomizedPopupEditor({\r\n editorView: bidAdjustmentView,\r\n cellPosition: newPosition,\r\n tableContainer: '.bingadsgrid',\r\n className: 'grid-popupeditor',\r\n parentContainerSelector: '.grid-and-disclaim-container',\r\n }).render();\r\n\r\n popupEditor.on('close', (model) => {\r\n this.parentView.grid.gridView.trigger('didEdit', model, item, 'BidAdjustments');\r\n });\r\n }\r\n }\r\n\r\n get property() {\r\n return {\r\n get: ({\r\n CriterionBid, LevelOfDetails, Campaign, Criterion, Id,\r\n }) => {\r\n if (_.isUndefined(CriterionBid)) {\r\n return null;\r\n }\r\n\r\n const inherited = LevelOfDetails === 'Campaign';\r\n\r\n let multiplier = '';\r\n if (Campaign && (Campaign.CampaignSubType === 'ShoppingSmartAds' || Campaign.CampaignType === 'PerformanceMax')) {\r\n multiplier = this.i18n.getString('TargetingSettings_Grid_Column_BidAdj_Automatic');\r\n } else if (isXandrServing(_.result(Campaign, 'CampaignSubType'), _.result(Campaign, 'CampaignSettings')) || this.isHideBidAdjustmentForBoostEnabled || (Campaign && Campaign.CampaignType === 'LinkedIn')) {\r\n if ((Criterion.Type === 'Device' && CriterionBid.Multiplier === -100) || !Id || Id <= 0) {\r\n multiplier = this.i18n.getString('TargetingSettings_Grid_Column_BidAdj_Disabled');\r\n } else {\r\n multiplier = this.i18n.getString('TargetingSettings_Grid_Column_BidAdj_Enabled');\r\n }\r\n } else {\r\n const formattedValue = this.formatter(Math.abs(CriterionBid.Multiplier) / 100);\r\n if (CriterionBid.Multiplier < 0) {\r\n multiplier = `- ${formattedValue}`;\r\n } else {\r\n multiplier = `+ ${formattedValue}`;\r\n }\r\n }\r\n\r\n const isCommission = _.chain(Campaign).result('BiddingScheme').result('Type').value() === 'Commission';\r\n const isAdGroupLevel = this.level === TargetingLevel.AdGroup;\r\n const criterionType = _.chain(Criterion).result('Type').value();\r\n const isLocation = criterionType === 'Location' || criterionType === 'Radius';\r\n const isAdSchedule = criterionType === 'DayTime';\r\n const isDevice = criterionType === 'Device';\r\n\r\n if (isCommission) {\r\n if (isLocation || isAdSchedule || (isAdGroupLevel && isDevice)) {\r\n multiplier = this.i18n.getString('TargetingSettings_Grid_Column_BidAdj_NotApplicable');\r\n }\r\n }\r\n\r\n return { multiplier, inherited };\r\n },\r\n key: this.config.property,\r\n };\r\n }\r\n\r\n template({ value }) {\r\n if (_.isNull(value)) {\r\n return bidAdjColumnTemplate({});\r\n }\r\n\r\n return bidAdjColumnTemplate({\r\n multiplier: value.multiplier,\r\n inherited: value.inherited,\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { TargetingSettingsContext } from '../targeting-settings-context';\r\nimport campaignColumnTemplate from './template/campaign-column.pug';\r\n\r\nexport default class ColumnCampaign extends CampaignuiBaseColumn {\r\n constructor({\r\n i18n,\r\n gridType,\r\n }) {\r\n super({\r\n name: 'CampaignName',\r\n type: 'string',\r\n property: _.compact([\r\n 'Campaign/Id',\r\n 'Campaign/Name',\r\n 'Campaign/BaseCampaignName',\r\n 'Campaign/CampaignType',\r\n 'Campaign/Status',\r\n ]),\r\n sortable: 'Campaign/Name',\r\n title: 'ColumnName_Campaign',\r\n bodyClasses: ['col-CampaignName'],\r\n i18n,\r\n });\r\n\r\n this.i18n = i18n;\r\n this.gridType = gridType;\r\n }\r\n\r\n template({ value }) {\r\n if (_.isNull(value)) {\r\n return campaignColumnTemplate({\r\n name: '',\r\n });\r\n }\r\n\r\n const cid = TargetingSettingsContext.state.get('customer_id');\r\n const aid = TargetingSettingsContext.state.get('account_id');\r\n const isSmartCampaign = value.CampaignType === 'Smart';\r\n let link = '';\r\n\r\n if (isSmartCampaign) {\r\n link = value.Status === 'InProgress' ?\r\n `/campaign/Smart?cid=${cid}#/CreateCampaign/${value.cmpid}` :\r\n `/campaign/Smart?cid=${cid}#/campaign/${value.cmpid}`;\r\n } else {\r\n link = `/campaign/vnext/${this.gridType}?aid=${aid}&cid=${cid}&campaignId=${value.cmpid}`;\r\n }\r\n\r\n let ariaLabel = this.i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: value.name });\r\n let className = '';\r\n\r\n if (value.baseCampaignName) {\r\n ariaLabel = this.i18n.getString('Click to scope to experiment {{experimentName}}', { experimentName: value.name });\r\n className = 'experiment-name';\r\n }\r\n\r\n return campaignColumnTemplate({\r\n link,\r\n name: value.name,\r\n baseCampaignName: value.baseCampaignName,\r\n campaignId: value.cmpid,\r\n skipScopeNavigation: isSmartCampaign,\r\n ariaLabel,\r\n className,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: ({ Campaign }) => {\r\n if (Campaign) {\r\n return {\r\n cmpid: Campaign.Id,\r\n name: Campaign.Name,\r\n baseCampaignName: Campaign.BaseCampaignName,\r\n Status: Campaign.Status,\r\n CampaignType: Campaign.CampaignType,\r\n };\r\n }\r\n\r\n return null;\r\n },\r\n key: this.config.property,\r\n };\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\n\r\nexport default class ColumnCampaignId extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'CampaignId',\r\n property: 'Campaign/Id',\r\n title: 'ColumnName_CampaignID',\r\n sortable: 'Campaign/Id',\r\n type: 'number',\r\n i18n,\r\n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { TargetingSettingsContext } from '../targeting-settings-context';\r\n\r\nexport default class ColumnCampaignType extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'CampaignType',\r\n property: 'Campaign/CampaignType',\r\n sortable: 'Campaign/CampaignType',\r\n title: 'ColumnName_CampaignType',\r\n i18n,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: ({ Campaign }) => {\r\n if (Campaign) {\r\n return TargetingSettingsContext.i18n.getString(`CampaignType_${Campaign.CampaignType}`);\r\n }\r\n\r\n return '';\r\n },\r\n key: this.config.property,\r\n };\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { TargetingSettingsContext } from '../targeting-settings-context';\r\n\r\nexport default class ColumnLevel extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'Level',\r\n property: 'LevelOfDetails',\r\n sortable: 'LevelOfDetails',\r\n title: 'TargetingSettings_Grid_Column_Level',\r\n i18n,\r\n });\r\n }\r\n\r\n get property() {\r\n return {\r\n get: ({ LevelOfDetails }) => {\r\n if (LevelOfDetails) {\r\n return TargetingSettingsContext.i18n.getString(`TargetingSettings_Grid_TargetLevel_${LevelOfDetails}`);\r\n }\r\n\r\n return '';\r\n },\r\n key: this.config.property,\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { get, set } from '@bingads-webui/cookie';\r\nimport { TargetingScope, TargetingLevel, DeviceName } from './config';\r\nimport { TargetingSettingsContext } from './targeting-settings-context';\r\n\r\nexport function getScope(campaignId, adgroupId) {\r\n let scope = TargetingScope.Account;\r\n\r\n if (campaignId > 0) {\r\n if (adgroupId > 0) {\r\n scope = TargetingScope.AdGroup;\r\n } else {\r\n scope = TargetingScope.Campaign;\r\n }\r\n }\r\n return scope;\r\n}\r\n\r\nexport function getLevel(adgroupId) {\r\n if (adgroupId > 0) {\r\n return TargetingLevel.AdGroup;\r\n }\r\n\r\n return parseInt(get('vnext_settings_level'), 10) || TargetingLevel.Campaign;\r\n}\r\n\r\nexport function setLevel(level) {\r\n set('vnext_settings_level', level, undefined, '/');\r\n}\r\n\r\nexport function getDeviceCriterionModel(model, level) {\r\n let bulkUpdateModel = null;\r\n const modelCashbackPercent = _.chain(model)\r\n .result('CriterionCashback')\r\n .result('CashbackPercent')\r\n .value();\r\n const {\r\n IsPersonalizedOffersEnabled,\r\n } = TargetingSettingsContext.pageContext.Permissions;\r\n\r\n const Criterion = ({\r\n Id, multiplier, deviceName, OSName, Entity,\r\n }) => ({\r\n Id: _.isUndefined(Id) ? '' : Id,\r\n Status: 'Active',\r\n CriterionType: model.Criterion.Type,\r\n [Entity]: { Id: model[Entity].Id },\r\n Criterion: {\r\n BidAdjustment: multiplier,\r\n Type: model.Criterion.Type,\r\n DeviceCriterion: {\r\n DeviceName: deviceName,\r\n OSName,\r\n },\r\n },\r\n });\r\n\r\n if (TargetingLevel.Campaign === level) {\r\n bulkUpdateModel = {\r\n Name: model.Campaign.Name,\r\n Id: model.Campaign.Id,\r\n };\r\n if (_.has(model, 'OSTargets')) {\r\n // OS level targets\r\n _.extend(bulkUpdateModel, {\r\n CampaignCriterions: _.map(model.OSTargets, ({ Key, Value }) => Criterion({\r\n Id: Key,\r\n multiplier: model.CriterionBid.Multiplier,\r\n deviceName: model.Criterion.DeviceName,\r\n OSName: Value,\r\n Entity: 'Campaign',\r\n })),\r\n });\r\n } else {\r\n _.extend(bulkUpdateModel, {\r\n CampaignCriterions: _.map(DeviceName, name => Criterion({\r\n multiplier: 0,\r\n deviceName: name,\r\n Entity: 'Campaign',\r\n })),\r\n });\r\n\r\n const targetToUpdate = _.find(\r\n bulkUpdateModel.CampaignCriterions,\r\n target => _.isEqual(target.Criterion.DeviceCriterion.DeviceName, model.Criterion.DeviceName)\r\n );\r\n targetToUpdate.Criterion.BidAdjustment = model.CriterionBid.Multiplier;\r\n\r\n if (IsPersonalizedOffersEnabled) {\r\n targetToUpdate.Criterion.CashbackPercent = modelCashbackPercent;\r\n }\r\n }\r\n } else {\r\n bulkUpdateModel = {\r\n Name: model.AdGroup.Name,\r\n Id: model.AdGroup.Id,\r\n Campaign: {\r\n Id: _.result(model.Campaign, 'Id') || TargetingSettingsContext.state.get('campaign_id'),\r\n },\r\n AdGroupCriterions: [],\r\n };\r\n if (_.has(model, 'OSTargets')) {\r\n // OS level targets\r\n _.extend(bulkUpdateModel, {\r\n AdGroupCriterions: _.map(model.OSTargets, ({ Key, Value }) => Criterion({\r\n Id: Key,\r\n multiplier: model.CriterionBid.Multiplier,\r\n deviceName: model.Criterion.DeviceName,\r\n OSName: Value,\r\n Entity: 'AdGroup',\r\n })),\r\n });\r\n }\r\n }\r\n\r\n return bulkUpdateModel;\r\n}\r\n\r\nexport function getCriterionType(view) {\r\n const scope = view.model.get('scope');\r\n const level = view.model.get('level');\r\n\r\n return scope === TargetingScope.AdGroup || level === TargetingLevel.AdGroup ? 'AdGroupCriterion' : 'CampaignCriterion';\r\n}\r\n\r\nexport function getNameForRadiusLocation(lat, lon) {\r\n const latComputed = Math.round(lat * 100) / 100;\r\n const longComputed = Math.round(lon * 100) / 100;\r\n\r\n return TargetingSettingsContext.i18n.getString('CustomLocationText')\r\n .replace('{0}', latComputed)\r\n .replace('{1}', longComputed);\r\n}\r\n\r\nexport function getLocationDisplayName(item) {\r\n if (!_.isUndefined(item.Criterion)) {\r\n switch (item.Criterion.Type) {\r\n case 'Location':\r\n return TargetingSettingsContext.unitMaps.areaTargetNameTypeComboGenerator(\r\n item.Criterion.Name,\r\n item.Criterion.LocationType,\r\n item.Criterion.CountryCode\r\n ).replace(' (N/A)', '');\r\n case 'Radius': {\r\n let name = item.Criterion.Name;\r\n if (_.isEmpty(name)) {\r\n name = getNameForRadiusLocation(item.Criterion.Latitude, item.Criterion.Longitude);\r\n }\r\n return TargetingSettingsContext.unitMaps.radiusTargetNameTypeComboGenerator(\r\n item.Criterion.Radius,\r\n item.Criterion.RadiusUnit,\r\n name\r\n );\r\n }\r\n default:\r\n return item.Criterion.Name;\r\n }\r\n }\r\n\r\n if (item.IsSegmentRow) {\r\n return item.SegmentValue;\r\n }\r\n\r\n if (!_.isUndefined(item.$total)) {\r\n return item.$total.text;\r\n }\r\n\r\n return '';\r\n}\r\n\r\nexport function getDayTimeDisplayName(i18n, item) {\r\n if (_.isUndefined(item.Criterion)) {\r\n return item.IsSegmentRow ? item.SegmentValue : item.$total.text;\r\n }\r\n\r\n const {\r\n Day, FromHour, FromMinute, ToHour, ToMinute,\r\n } = item.Criterion;\r\n const minuteMap = {\r\n ZERO: 0,\r\n FIFTEEN: 15,\r\n THIRTY: 30,\r\n FORTY_FIVE: 45,\r\n };\r\n const dayStr = i18n.getDay(Day.toLowerCase().slice(0, 3));\r\n\r\n const numFromHour = Number(FromHour);\r\n const numToHour = Number(ToHour);\r\n\r\n const startTime = i18n.formatDate(\r\n i18n.parseDate(`${numFromHour}:${minuteMap[FromMinute]}`, { raw: 'HH:mm' }),\r\n { skeleton: 'hhm' }\r\n );\r\n\r\n const endTime = i18n.formatDate(\r\n i18n.parseDate(`${numToHour === 24 ? 0 : numToHour}:${minuteMap[ToMinute]}`, { raw: 'HH:mm' }),\r\n { skeleton: 'hhm' }\r\n );\r\n\r\n let timeRangeStr = `${startTime} - ${endTime}`;\r\n if (numFromHour === 0 && FromMinute === 'ZERO' && numToHour === 24 && ToMinute === 'ZERO') {\r\n timeRangeStr = i18n.getString('All_day');\r\n }\r\n\r\n return `${dayStr}, ${timeRangeStr}`;\r\n}\r\n\r\nexport function getDeviceDisplayName(i18n, item) {\r\n if (_.isUndefined(item.Criterion)) {\r\n return item.IsSegmentRow ? item.SegmentValue : item.$total.text;\r\n }\r\n\r\n return i18n.getString(`TargetingSettings_Devices_${item.Criterion.DeviceName}`);\r\n}\r\n\r\nexport const customValidators = (deviceName, currentCampaign) => {\r\n const specialBidMultiplier = -100;\r\n let minBidMultiplier = -100;\r\n let maxBidMultiplier = 900;\r\n let isValid = v => (v < 0 && v >= minBidMultiplier) || (v >= 0 && v <= maxBidMultiplier);\r\n let msgKey = 'TargetingSettings_Device_BidAdj_Error_1';\r\n\r\n if (TargetingSettingsContext.pageContext.Permissions.IsOriginalDeviceTargetingEnabled) {\r\n minBidMultiplier = -90;\r\n maxBidMultiplier = 300;\r\n\r\n if (deviceName.DeviceName === 'Smartphones') {\r\n isValid = v => (v < 0 && (v >= minBidMultiplier || v === specialBidMultiplier))\r\n || (v >= 0 && v <= maxBidMultiplier);\r\n msgKey = 'TargetingSettings_Device_BidAdj_Error_2';\r\n }\r\n }\r\n\r\n const isCommission = _.chain(currentCampaign).result('BiddingScheme').result('Type').value() === 'Commission';\r\n\r\n if (isCommission) {\r\n isValid = v => v === 0 || v === -100;\r\n minBidMultiplier = -100;\r\n maxBidMultiplier = 0;\r\n msgKey = 'TargetingSettings_Device_BidAdj_Error_3';\r\n }\r\n\r\n return i18n => ({\r\n BidMultiplier: {\r\n isValid,\r\n message: () => i18n.getString(msgKey, {\r\n min: Math.abs(minBidMultiplier),\r\n max: Math.abs(maxBidMultiplier),\r\n specialValue: Math.abs(specialBidMultiplier),\r\n }),\r\n },\r\n });\r\n};\r\n","import $ from 'jquery';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { TargetingSettingsContext } from '../targeting-settings-context';\r\nimport { getLocationDisplayName } from '../helpers';\r\nimport locationColumn from './template/location-column.pug';\r\n\r\nexport default class ColumnLocation extends CampaignuiBaseColumn {\r\n constructor({ i18n, isExcludeLocation = '' }) {\r\n const localizedTitle = i18n.getString('TargetingSettings_Grid_Locations_Column_Location');\r\n\r\n super({\r\n name: 'Location',\r\n title: 'TargetingSettings_Grid_Locations_Column_Location',\r\n property: 'Criterion',\r\n sortable: 'Criterion/Name',\r\n type: 'string',\r\n helpId: 'pop_BA_Settings_Location_Location',\r\n i18n,\r\n bodyClasses: ['grid-column-Location'],\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: localizedTitle }),\r\n });\r\n\r\n this.i18n = i18n;\r\n this.gridType = isExcludeLocation ? 'excluded-locations' : 'locations';\r\n this.deprecatedTextMapping = {\r\n PendingDeprecation: {\r\n warning: i18n.getString('Location_Target_Pending_Deprecation'),\r\n title: i18n.getString('Location_Target_Location_Pending_Deprecation_Title'),\r\n text: i18n.getString('Location_Target_Location_Pending_Deprecation_Text'),\r\n },\r\n Deprecated: {\r\n warning: i18n.getString('Location_Target_Deprecated'),\r\n title: i18n.getString('Location_Target_Location_Deprecated_Title'),\r\n text: i18n.getString('Location_Target_Location_Deprecated_Text'),\r\n },\r\n };\r\n }\r\n\r\n get property() {\r\n return {\r\n get: (item) => {\r\n const { LevelOfDetails, Criterion = {}, VirtualId } = item;\r\n const inherited = LevelOfDetails === 'Campaign';\r\n const name = getLocationDisplayName(item);\r\n\r\n const { locationTargetStatusPopup, isDeprecatedLocation, locationConstants }\r\n = TargetingSettingsContext;\r\n const showDeprecatedWarning = isDeprecatedLocation(Criterion);\r\n let deprecatedTexts = {};\r\n\r\n // TODO: remove the mock data\r\n // if (LevelOfDetails) {\r\n // Criterion.LocationStatus = 'Deprecated';\r\n // }\r\n\r\n if (showDeprecatedWarning) {\r\n deprecatedTexts = locationConstants.deprecatedTextMapping[Criterion.LocationStatus];\r\n const containerSelector = `#${VirtualId} .location-cell-status`;\r\n const locationView = $(`.${this.gridType}-view`);\r\n\r\n locationView.on('mouseover', containerSelector, (event) => {\r\n locationTargetStatusPopup(event, deprecatedTexts, containerSelector);\r\n });\r\n\r\n locationView.on('click', containerSelector, (event) => {\r\n locationTargetStatusPopup(event, deprecatedTexts, containerSelector);\r\n });\r\n }\r\n\r\n return {\r\n name,\r\n inherited,\r\n showDeprecatedWarning,\r\n deprecatedText: deprecatedTexts && deprecatedTexts.warning,\r\n };\r\n },\r\n key: this.config.property,\r\n };\r\n }\r\n\r\n template({ value }) {\r\n const options = {\r\n name: value.name,\r\n inherited: value.inherited,\r\n showDeprecatedWarning: value.showDeprecatedWarning,\r\n deprecatedText: value.deprecatedText,\r\n };\r\n\r\n return locationColumn(options);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ColumnsConfigBuilder } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport {\r\n ColumnClicks,\r\n ColumnImpressions,\r\n ColumnCTR,\r\n ColumnAverageCPC,\r\n ColumnAveragePosition,\r\n ColumnSpend,\r\n ColumnAverageCPM,\r\n ColumnTopImpressionRate,\r\n ColumnAbsoluteTopImpressionRate,\r\n} from '@bingads-webui-campaign/campaignui-common-columns';\r\nimport { criterionCashbackPercentColumnFactory } from '@bingads-webui-campaign/personalized-offer-columns';\r\nimport ColumnAdGroup from './columns/adgroup-column';\r\nimport ColumnAdGroupId from './columns/adgroup-id-column';\r\nimport ColumnBidAdjustment from './columns/bid-adjustment-column';\r\nimport ColumnCampaign from './columns/campaign-column';\r\nimport ColumnCampaignId from './columns/campaign-id-column';\r\nimport ColumnCampaignType from './columns/campaign-type-column';\r\nimport ColumnLevel from './columns/level-column';\r\nimport { TargetingSettingsContext } from './targeting-settings-context';\r\nimport { TargetingScope, TargetingLevel, TabItems } from './config';\r\n\r\nconst helpIdMap = {\r\n Clicks: 'Page_CampaignGrids_Clicks',\r\n Impressions: 'Page_CampaignGrids_Impr',\r\n CTR: 'Page_CampaignGrids_CTR',\r\n AverageCPC: 'Page_CampaignGrids_AvgCPC',\r\n AveragePosition: 'Page_CampaignGrids_AvgPosition',\r\n Spend: 'Page_CampaignGrids_Spend',\r\n AverageCPM: 'Page_CampaignGrids_AvgCPM',\r\n CPA: 'Page_CampaignGrids_CPA',\r\n Conversions: 'Page_CampaignGrids_Conv',\r\n ConversionRate: 'Page_CampaignGrids_ConvRate',\r\n AdvertiserReportedRevenue: 'Page_CampaignGrids_Revenue',\r\n RevenueOnAdSpend: 'Page_CampaignGrids_ReturnAdSpend',\r\n ViewThroughConversions: 'pop_BA_CampaignGrids_ViewThrough',\r\n ViewThroughConversionsRevenue: 'pop_BA_Reporting_Clarity_ViewThroughConvRevenue',\r\n ViewThroughConversionsCPA: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n ViewThroughConversionsReturnOnAdSpend: 'pop_BA_Reporting_Clarity_ViewThroughConvReturnOnAdSpend',\r\n ViewThroughConversionsRate: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n AllConversionCPA: 'pop_BA_CampaignGrids_AllConvCPA',\r\n AllConversions: 'pop_BA_CampaignGrids_AllConv',\r\n AllConversionAdvertiserReportedRevenue: 'pop_BA_CampaignGrids_AllConvRevenue',\r\n AllConversionRevenueOnAdSpend: 'pop_BA_CampaignGrids_AllConvROAS',\r\n AllConversionRate: 'pop_BA_CampaignGrids_AllConvRate',\r\n // Partial Conversion\r\n ConversionsCredit: 'Page_CampaignGrids_Conv',\r\n PartialConversionCPA: 'Page_CampaignGrids_CPA',\r\n PartialConversionRate: 'Page_CampaignGrids_ConvRate',\r\n AllPartialConversionCPA: 'pop_BA_CampaignGrids_AllConvCPA',\r\n AllConversionsCredit: 'pop_BA_CampaignGrids_AllConv',\r\n AllPartialConversionRate: 'pop_BA_CampaignGrids_AllConvRate',\r\n ViewThroughPartialConversionsCPA: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n ViewThroughPartialConversionsRate: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n ViewThroughConversionsCredit: 'pop_BA_CampaignGrids_ViewThrough',\r\n};\r\n\r\nexport class ColumnsConfig {\r\n constructor(deps) {\r\n const {\r\n selfColumns,\r\n scope,\r\n level,\r\n parentView,\r\n isExcludeLocation = false,\r\n } = deps;\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsPersonalizedOffersEnabled,\r\n IsPersonalizedOffersV3Enabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n dynamic = {},\r\n } = TargetingSettingsContext.pageContext.Permissions;\r\n const {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n } = dynamic;\r\n const usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\n let columns = [];\r\n const otherAttrColumns = [];\r\n\r\n this.scope = scope;\r\n this.level = level;\r\n this.parentView = parentView;\r\n\r\n if (_.isArray(selfColumns) && selfColumns.length > 0) {\r\n columns = [].concat(selfColumns);\r\n }\r\n\r\n if (scope !== TargetingScope.AdGroup) {\r\n if (scope !== TargetingScope.Campaign) {\r\n columns.push(ColumnCampaign);\r\n otherAttrColumns.push(ColumnCampaignType);\r\n otherAttrColumns.push(ColumnCampaignId);\r\n }\r\n if (level === TargetingLevel.AdGroup) {\r\n columns.push(ColumnAdGroup);\r\n otherAttrColumns.push(ColumnAdGroupId);\r\n }\r\n }\r\n\r\n if (level === TargetingLevel.AdGroup) {\r\n otherAttrColumns.push(ColumnLevel);\r\n }\r\n\r\n if (!isExcludeLocation) {\r\n columns.push(ColumnBidAdjustment);\r\n\r\n if (IsPersonalizedOffersEnabled && !IsPersonalizedOffersV3Enabled) {\r\n const criterionLevel = level === 0 ? 'Campaign' : 'AdGroup';\r\n const CashbackPercentColumn = criterionCashbackPercentColumnFactory({\r\n criterionLevel,\r\n criterionCashbackUpdater: (view, item, model) => {\r\n item.CriterionCashback['@odata.type'] = 'Model.CashbackAdjustment'; // eslint-disable-line\r\n view.grid.gridView.trigger('didEdit', model, item, 'CashbackPercent');\r\n },\r\n criterionCashbackOverrideUpdater: (view, item) => {\r\n view.grid.gridView.trigger('inlineEdit', item);\r\n },\r\n modelName: `Model.Biddable${criterionLevel}Criterion`,\r\n decimal: TargetingSettingsContext.decimal,\r\n });\r\n columns.push(CashbackPercentColumn);\r\n }\r\n }\r\n columns = _.compact(columns);\r\n\r\n this.builder = new ColumnsConfigBuilder()\r\n .addCategory('Attributes', category => category.addColumns(_.union(columns, otherAttrColumns)));\r\n\r\n if (!isExcludeLocation) {\r\n this.builder\r\n .addCategory('Performance', category => category.addColumns(_.compact([\r\n ColumnClicks,\r\n ColumnImpressions,\r\n ColumnCTR,\r\n ColumnAverageCPC,\r\n ColumnSpend,\r\n !IsAvgPositionDeprecationPhase2Enabled && ColumnAveragePosition,\r\n IsAvgPositionDeprecationPhase1Enabled && ColumnTopImpressionRate,\r\n IsAvgPositionDeprecationPhase1Enabled && ColumnAbsoluteTopImpressionRate,\r\n ColumnAverageCPM,\r\n ])))\r\n .addConversionsCategory({\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n withPartialConversions: IsPartialConversionsEnabled,\r\n IsColumnConversionEnabled: usePartialConversions,\r\n });\r\n }\r\n\r\n this.builder\r\n .setLockedColumns(columns)\r\n .setSelectedColumns(_.compact(columns.concat(_.compact([\r\n ColumnClicks,\r\n ColumnImpressions,\r\n ColumnCTR,\r\n ColumnAverageCPC,\r\n !IsAvgPositionDeprecationPhase1Enabled\r\n && !IsAvgPositionDeprecationPhase2Enabled\r\n && ColumnAveragePosition,\r\n IsAvgPositionDeprecationPhase1Enabled && ColumnTopImpressionRate,\r\n IsAvgPositionDeprecationPhase1Enabled && ColumnAbsoluteTopImpressionRate,\r\n ColumnSpend]))));\r\n }\r\n\r\n getColumnsConfig(tabName, customValidators, isExcludeLocation = false) {\r\n const columnHelpId = name => (_.isUndefined(helpIdMap[name]) ? `Page_CampaignGrids_${name}` : helpIdMap[name]);\r\n const gridType = _.findWhere(TabItems, { name: tabName }).routeParams.setting;\r\n\r\n return this.builder.getColumnsConfig({\r\n i18n: TargetingSettingsContext.i18n,\r\n gridType,\r\n isExcludeLocation,\r\n scope: this.scope,\r\n level: this.level,\r\n parentView: this.parentView,\r\n view: this.parentView,\r\n customValidators,\r\n helpId: columnHelpId,\r\n isForVNext: true,\r\n });\r\n }\r\n\r\n getColumnChooserConfig() {\r\n const mandatoryProperties = ['Id'];\r\n\r\n if (this.level === TargetingLevel.AdGroup) {\r\n Array.prototype.push.apply(mandatoryProperties, ['AdGroupId', 'LevelOfDetails']);\r\n }\r\n return _.defaults(this.builder.getColumnChooserConfig({\r\n mandatoryProperties,\r\n i18n: TargetingSettingsContext.i18n,\r\n patchQuery: true,\r\n Columns: TargetingSettingsContext.Columns,\r\n SelectedColumns: TargetingSettingsContext.SelectedColumns,\r\n LegacyColumns: TargetingSettingsContext.LegacyColumns,\r\n LegacySelectedColumns: TargetingSettingsContext.LegacySelectedColumns,\r\n permissions: TargetingSettingsContext.pageContext.Permissions,\r\n }), { isForVNext: true });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { DeterministicView } from '@bingads-webui/deterministic-view';\r\nimport SettingsViewTemplate from './settings-view.pug';\r\nimport { getScope, getLevel } from './helpers';\r\n\r\nexport class SettingsView extends DeterministicView {\r\n initialize(state) {\r\n const scope = getScope(state.campaignId, state.adgroupId);\r\n const level = getLevel(state.adgroupId);\r\n super.setState(_.extend(state, { scope, level }));\r\n this.model.on('change', model => this.onModelChanged(model));\r\n }\r\n\r\n setState(state) {\r\n const scope = getScope(state.campaignId, state.adgroupId);\r\n const level = getLevel(state.adgroupId);\r\n super.setState(_.extend(state, { scope, level }));\r\n }\r\n\r\n onModelChanged() {\r\n }\r\n\r\n remove() {\r\n this.model.off('change');\r\n super.remove();\r\n }\r\n\r\n /**\r\n * Class name of the root element\r\n * @type {string}\r\n * @override\r\n */\r\n get className() { return 'settings-view'; }\r\n\r\n /**\r\n * Template of the SettingsView\r\n * @type {TemplateCallback}\r\n * @override\r\n */\r\n get template() { return SettingsViewTemplate; }\r\n}\r\n","import _ from 'underscore';\r\nimport { TargetingSettingsContext } from './targeting-settings-context';\r\nimport { TargetingLevel, TargetingType } from './config';\r\n\r\nexport function getFilterStateConfig({\r\n setting,\r\n level,\r\n}) {\r\n return {\r\n mapOnlyBaseProperty: false,\r\n entity: (() => {\r\n let filterList = ['Campaign/Id', 'Campaign/Name', 'Campaign/CampaignType', 'AdGroup/Id', 'AdGroup/Name', 'CriterionBid', 'LevelOfDetails'];\r\n\r\n if (setting === TargetingType.Devices) {\r\n filterList = filterList.concat(['Criterion/DeviceCriterion/DeviceName']);\r\n } else if (setting === TargetingType.AdSchedule) {\r\n filterList = filterList.concat(['Criterion/DayTimeCriterion/Day']);\r\n } else if (setting === TargetingType.Locations) {\r\n filterList = filterList.concat(['Criterion/Webpage/Parameter/CriterionName']);\r\n } else if (setting === TargetingType.AllSettings) {\r\n filterList = filterList.concat(['Campaign/Status']);\r\n }\r\n\r\n filterList = filterList.concat(['Campaign/IsExperiment']);\r\n\r\n const criterion = level === TargetingLevel.AdGroup ?\r\n TargetingSettingsContext.BiddableAdGroupCriterion :\r\n TargetingSettingsContext.BiddableCampaignCriterion;\r\n\r\n const rootSchema = TargetingSettingsContext.updateFilterSchemaForPilotFeatures(criterion);\r\n if (rootSchema.properties.AdGroup) {\r\n // enable filter by ad group Id only for settings grid\r\n _.extend(rootSchema.properties.AdGroup.schema.properties.Id, { filterable: true });\r\n }\r\n let filterEntityOptions = TargetingSettingsContext.filterOptionsFromSchema(rootSchema, true);\r\n\r\n const biPattern = /^PerformanceMetrics\\//;\r\n filterEntityOptions.fields = _.filter(\r\n filterEntityOptions.fields,\r\n field => _.contains(filterList, field.property) || biPattern.test(field.property)\r\n );\r\n\r\n filterEntityOptions = TargetingSettingsContext\r\n .appendPeriodOverPeriodFields(filterEntityOptions);\r\n\r\n const deviceNameOption = _.findWhere(\r\n filterEntityOptions.fields,\r\n { property: 'Criterion/DeviceCriterion/DeviceName' }\r\n );\r\n\r\n if (!_.isEmpty(deviceNameOption)) {\r\n deviceNameOption.enum = _.map(\r\n deviceNameOption.enum,\r\n value => value.replace('Enum.DeviceName\\'', '').replace('\\'', '')\r\n );\r\n deviceNameOption.localized = _.object(\r\n _.map(_.keys(deviceNameOption.localized), value => value.replace('Enum.DeviceName\\'', '').replace('\\'', '')),\r\n _.values(deviceNameOption.localized)\r\n );\r\n }\r\n\r\n const levelOfDetailsOption = _.findWhere(\r\n filterEntityOptions.fields,\r\n { property: 'LevelOfDetails' }\r\n );\r\n if (!_.isEmpty(levelOfDetailsOption)) {\r\n levelOfDetailsOption.enum = _.map(\r\n levelOfDetailsOption.enum,\r\n value => value.replace('Enum.LevelOfDetails\\'', '').replace('\\'', '')\r\n );\r\n levelOfDetailsOption.localized = _.object(\r\n _.map(_.keys(levelOfDetailsOption.localized), value => value.replace('Enum.LevelOfDetails\\'', '').replace('\\'', '')),\r\n _.values(levelOfDetailsOption.localized)\r\n );\r\n }\r\n\r\n const criterionNameIndex = _.findIndex(filterEntityOptions.fields, item =>\r\n item.name === 'CriterionName');\r\n if (criterionNameIndex !== -1) {\r\n if (setting === TargetingType.Locations) {\r\n const locationNameOption = filterEntityOptions.fields[criterionNameIndex];\r\n // TODO(quye): fix on schema side, now is 'Criterion/Webpage/Parameter/CriterionName'\r\n locationNameOption.property = 'Criterion/Name';\r\n }\r\n }\r\n\r\n const campaignIdOption = _.find(filterEntityOptions.fields, item => item.property === 'Campaign/Id');\r\n if (!_.isEmpty(campaignIdOption)) {\r\n campaignIdOption.title = TargetingSettingsContext.i18n.getString('FilterColumn_CampaignID');\r\n campaignIdOption.name = 'CampaignId';\r\n }\r\n\r\n const campaignNameOption = _.find(filterEntityOptions.fields, item => item.property === 'Campaign/Name');\r\n if (!_.isEmpty(campaignNameOption)) {\r\n campaignNameOption.title = TargetingSettingsContext.i18n.getString('FilterColumn_CampaignName');\r\n campaignNameOption.name = 'CampaignName';\r\n }\r\n\r\n const adGroupIdOption = _.find(filterEntityOptions.fields, item => item.property === 'AdGroup/Id');\r\n if (!_.isEmpty(adGroupIdOption)) {\r\n adGroupIdOption.title = TargetingSettingsContext.i18n.getString('FilterColumn_AdgroupID');\r\n adGroupIdOption.name = 'AdGroupId';\r\n }\r\n\r\n const adGroupNameOption = _.find(filterEntityOptions.fields, item => item.property === 'AdGroup/Name');\r\n if (!_.isEmpty(adGroupNameOption)) {\r\n adGroupNameOption.title = TargetingSettingsContext.i18n.getString('FilterColumn_AdGroupName');\r\n adGroupNameOption.name = 'AdGroupName';\r\n }\r\n\r\n return filterEntityOptions;\r\n })(),\r\n options: (() => {\r\n const options = { odata: { custom: {} } };\r\n\r\n _.extendOwn(options.odata.custom, {\r\n Criterion: {\r\n isof: value => `isof(Criterion, ${value})`,\r\n },\r\n 'Criterion/DeviceCriterion/DeviceName': (operator, value) => {\r\n const obj = {};\r\n\r\n obj[`$${operator}`] = value;\r\n\r\n const filter = { 'Criterion/Model.DeviceCriterion/DeviceName': obj };\r\n const filterStr = TargetingSettingsContext.ODataConverter.convert(filter);\r\n\r\n return filterStr.replace('Model/DeviceCriterion', 'Model.DeviceCriterion');\r\n },\r\n 'Criterion/DayTimeCriterion/Day': (operator, value) => {\r\n const obj = {};\r\n\r\n obj[`$${operator}`] = value;\r\n\r\n const filter = { 'Criterion/Model.DayTimeCriterion/Day': obj };\r\n const filterStr = TargetingSettingsContext.ODataConverter.convert(filter);\r\n\r\n return filterStr.replace('Model/DayTimeCriterion', 'Model.DayTimeCriterion');\r\n },\r\n 'Campaign/IsExperiment': {\r\n eq: (val) => {\r\n const operator = val ? 'gt' : 'le';\r\n\r\n return `Campaign/ExperimentId ${operator} 0`;\r\n },\r\n },\r\n });\r\n\r\n return options;\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 { TargetingSettingsContext } from './targeting-settings-context';\r\nimport { TargetingScope, TargetingLevel } from './config';\r\nimport { getFilterStateConfig } from './filter-state-config';\r\n\r\nconst { toolbarRow } = helpers;\r\n\r\nexport function getReportEmailRule(entity) {\r\n const stateReportEmailRule = TargetingSettingsContext.state.get('$ReportEmailRule');\r\n if (stateReportEmailRule && stateReportEmailRule.Entity === entity) {\r\n TargetingSettingsContext.state.unset('$ReportEmailRule');\r\n return stateReportEmailRule;\r\n }\r\n return null;\r\n}\r\n\r\nexport const pluginConfig = (view, columnChooser) => {\r\n const setting = view.model.get('setting');\r\n const scope = view.model.get('scope');\r\n const level = view.model.get('level');\r\n\r\n const inlineDownloadEntity =\r\n (scope === TargetingScope.AdGroup || level === TargetingLevel.AdGroup) ? 'AdGroupCriterion' : 'CampaignCriterion';\r\n\r\n return {\r\n pagination: {\r\n pageSize: 20,\r\n availablePageSizes: [20, 50, 100, 200],\r\n enableRandomPage: false,\r\n pageNumberLabelText: TargetingSettingsContext.i18n.getString('Grid_Page_Colon'),\r\n pageSizeText: TargetingSettingsContext.i18n.getString('Grid_ShowRows'),\r\n totalPageCountText: TargetingSettingsContext.i18n.getString('Grid_PageOf'),\r\n },\r\n uiBlocker: {\r\n el: $('#child-page'),\r\n },\r\n placeholder: {\r\n viewRoot: view.$el,\r\n container: '.noresult-container',\r\n text: TargetingSettingsContext.i18n.getString('Grid_NoFilteredRecords'),\r\n filteredContainer: '.noresult-container',\r\n filteredEmptyText: TargetingSettingsContext.i18n.getString('Grid_NoFilteredRecords'),\r\n },\r\n columnChooser,\r\n inlineDownload: {\r\n DownloadView: TargetingSettingsContext.DownloadView,\r\n i18n: TargetingSettingsContext.i18n,\r\n s$i18n: TargetingSettingsContext.s$i18n,\r\n isAvailable: true,\r\n schema: TargetingSettingsContext[`s$${inlineDownloadEntity}`],\r\n gridId: '',\r\n ReportEmailRule: getReportEmailRule(inlineDownloadEntity),\r\n },\r\n filterState: _.defaults({\r\n container: view.$('.filter-bar'),\r\n }, getFilterStateConfig({ setting, level })),\r\n dateFilter: {\r\n isOdataActionSource: true,\r\n comparisonColumns: [\r\n 'PeriodPerformanceMetrics',\r\n 'PerformanceMetricsChange',\r\n 'PerformanceMetricsChangePercentage',\r\n ],\r\n },\r\n popColumns: {\r\n i18n: TargetingSettingsContext.i18n,\r\n },\r\n editable: {\r\n i18n: TargetingSettingsContext.i18n,\r\n },\r\n };\r\n};\r\n\r\nexport function scrollingConfig({\r\n sticky = false,\r\n virtualized = false,\r\n} = {}) {\r\n const config = { virtualized };\r\n if (sticky) {\r\n config.header = {\r\n type: 'sticky',\r\n offset() {\r\n return $('nav.navbar-default.navbar-fixed-top').height();\r\n },\r\n };\r\n }\r\n\r\n return config;\r\n}\r\n\r\nexport function selectionConfig(config) {\r\n return _.extend({\r\n enabled: true,\r\n headClasses: ['text-center'],\r\n bodyClasses: ['text-center'],\r\n }, config);\r\n}\r\n\r\nexport function basicGridConfig() {\r\n return {\r\n tableClasses: ['table', 'table-bordered'],\r\n rows: {\r\n headRows: [\r\n toolbarRow('lower-toolbar'),\r\n crossPageSelectHeadRow(),\r\n 'column-header-rows',\r\n ],\r\n },\r\n scrolling: scrollingConfig({\r\n sticky: true,\r\n virtualized: true,\r\n }),\r\n selection: selectionConfig(),\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport { TargetingSettingsContext } from './targeting-settings-context';\r\nimport { TargetingScope, TargetingLevel } from './config';\r\nimport { getDeviceCriterionModel } from './helpers';\r\n\r\nexport class CommonRepository {\r\n constructor({ deps }) {\r\n const scopeResources = {\r\n [TargetingScope.Account]: TargetingSettingsContext.edmCampaign.currentAccount,\r\n [TargetingScope.Campaign]: TargetingSettingsContext.edmCampaign.currentCampaign,\r\n [TargetingScope.AdGroup]: TargetingSettingsContext.edmCampaign.currentAdGroup,\r\n };\r\n\r\n this.resource = _.result(scopeResources, deps.scope);\r\n\r\n if (deps.level === TargetingLevel.AdGroup) {\r\n this.jsDataResource = TargetingSettingsContext.jsDataCampaign.AdGroupCriterion;\r\n this.entities = this.resource.AdGroupCriterions;\r\n } else {\r\n this.jsDataResource = TargetingSettingsContext.jsDataCampaign.CampaignCriterion;\r\n this.entities = this.resource.CampaignCriterions;\r\n }\r\n\r\n this.jsDataResource = _.defaults({\r\n idAttribute: 'VirtualId',\r\n }, this.jsDataResource);\r\n\r\n this.scope = deps.scope;\r\n this.level = deps.level;\r\n\r\n const { store } = TargetingSettingsContext.edmCampaign.jsdata;\r\n store.registerAdapter('bulk', new TargetingSettingsContext.BulkAdapter(), { default: false });\r\n\r\n this.afterFindAllCallback = _.isFunction(deps.afterFindAllCallback)\r\n ? deps.afterFindAllCallback : null;\r\n }\r\n\r\n getDataSource() {\r\n return {\r\n type: 'jsdata',\r\n entity: this.jsDataResource,\r\n options: {\r\n entitySet: this.entities['Default.GridData'].$call(this.parameters),\r\n },\r\n };\r\n }\r\n\r\n get query() {\r\n if (this.level === TargetingLevel.AdGroup) {\r\n return {\r\n $expand: 'Campaign, AdGroup',\r\n };\r\n }\r\n return {\r\n $expand: 'Campaign',\r\n };\r\n }\r\n\r\n get filterOptions() {\r\n return {\r\n odata: {\r\n custom: {\r\n Criterion: (operand, value) => `${operand}(Criterion, ${value})`,\r\n },\r\n },\r\n };\r\n }\r\n\r\n getQuery() {\r\n return {\r\n query: this.query,\r\n options: {\r\n cacheResponse: false,\r\n entitySet: this.entities['Default.GridData'].$call(this.parameters),\r\n headers: {\r\n lcid: TargetingSettingsContext.pageContext.CultureLcid,\r\n },\r\n filterOptions: this.filterOptions,\r\n afterFindAll: this.afterFindAllCallback,\r\n },\r\n };\r\n }\r\n\r\n getAdGroupEntitySetByScopeAndLevel({ campaignId, adgroupId }) {\r\n const entitySetMap = {\r\n [TargetingScope.Account]: () => this.resource.Campaigns.$withKey(campaignId)\r\n .AdGroups.$withKey(adgroupId).AdGroupCriterions,\r\n [TargetingScope.Campaign]: () => this.resource.AdGroups.$withKey(adgroupId)\r\n .AdGroupCriterions,\r\n [TargetingScope.AdGroup]: () => this.resource.AdGroupCriterions,\r\n };\r\n return _.result(entitySetMap, this.scope);\r\n }\r\n\r\n getCampaignEntitySetByScopeAndLevel({ campaignId }) {\r\n const { edmCampaign } = TargetingSettingsContext;\r\n const entitySetMap = {\r\n [TargetingScope.Account]: () => this.resource.Campaigns.$withKey(campaignId)\r\n .CampaignCriterions,\r\n [TargetingScope.Campaign]: () => this.resource.CampaignCriterions,\r\n [TargetingScope.AdGroup]: () => edmCampaign.currentCampaign.CampaignCriterions,\r\n };\r\n return _.result(entitySetMap, this.scope);\r\n }\r\n\r\n update(model) {\r\n // Use bulkupsert to inline edit bid for device type\r\n // When criterion id < 0, it's virtual targets in MT\r\n const isVirtualTarget = m => _.isNumber(m.Id) && m.Id < 0;\r\n if (model.Criterion.Type === 'Device' && (isVirtualTarget(model) || _.has(model, 'OSTargets'))) {\r\n const newModel = getDeviceCriterionModel(model, this.level);\r\n if (this.level === TargetingLevel.AdGroup) {\r\n return TargetingSettingsContext.jsDataCampaign.AdGroup.update(newModel.Id, newModel, { adapter: 'bulk', cacheResponse: false });\r\n }\r\n\r\n return TargetingSettingsContext.jsDataCampaign.Campaign.update(newModel.Id, newModel, { adapter: 'bulk', cacheResponse: false });\r\n }\r\n\r\n const campaignId = _.result(model.Campaign, 'Id') || TargetingSettingsContext.state.get('campaign_id');\r\n const entitySet = this.level === TargetingLevel.Campaign\r\n ? this.getCampaignEntitySetByScopeAndLevel({ campaignId })\r\n : this.getAdGroupEntitySetByScopeAndLevel({\r\n campaignId,\r\n adgroupId: model.AdGroup.Id,\r\n });\r\n const options = {\r\n entitySet,\r\n cacheResponse: false,\r\n };\r\n const attrs = _.pick(model, '@odata.type', 'CriterionBid', 'CriterionCashback');\r\n\r\n if (this.level === TargetingLevel.AdGroup) {\r\n attrs.Criterion = _.pick(model.Criterion, '@odata.type');\r\n }\r\n return this.jsDataResource.update(model.Id, attrs, options);\r\n }\r\n\r\n bulkUpdate(params) {\r\n const jsData = TargetingSettingsContext.jsDataCampaign;\r\n const entity = this.level === TargetingLevel.AdGroup ? jsData.AdGroup : jsData.Campaign;\r\n return entity.update(params.Id, params, { adapter: 'bulk', cacheResponse: false });\r\n }\r\n\r\n load({ campaignId, adgroupId, params }) {\r\n const entitySet = this.getCampaignEntitySetByScopeAndLevel({ campaignId, adgroupId })['Model.CampaignCriterion'];\r\n const options = {\r\n entitySet,\r\n cacheResponse: false,\r\n bypassCache: true,\r\n };\r\n if (this.level === TargetingLevel.AdGroup) {\r\n const adgroupEntitySet = this.getAdGroupEntitySetByScopeAndLevel({ campaignId, adgroupId })['Model.AdGroupCriterion'];\r\n const adgroupOptions = _.extend({}, options, { entitySet: adgroupEntitySet });\r\n return Promise.join(\r\n this.jsDataResource.findAll(params, adgroupOptions),\r\n TargetingSettingsContext.jsDataCampaign.CampaignCriterion.findAll(params, options),\r\n (adgroupTargets, campaignTargets) => ({ adgroupTargets, campaignTargets })\r\n );\r\n }\r\n\r\n return this.jsDataResource.findAll(params, options);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { DeterministicView } from '@bingads-webui/deterministic-view';\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { TargetingSettingsContext } from './targeting-settings-context';\r\nimport { TargetingScope } from './config';\r\n\r\nexport class GridView extends DeterministicWrapperView {\r\n viewFactory({ grid }) {\r\n return grid.gridView;\r\n }\r\n\r\n get className() {\r\n return '';\r\n }\r\n}\r\n\r\nexport class BaseGridView extends DeterministicView {\r\n initialize({\r\n campaignId,\r\n adgroupId,\r\n dataSource,\r\n setting,\r\n scope,\r\n level,\r\n perfMarker,\r\n }) {\r\n super.setState({\r\n campaignId,\r\n adgroupId,\r\n dataSource,\r\n setting,\r\n scope,\r\n level,\r\n });\r\n\r\n this.initializeAsync = this.buildGrid({\r\n dataSource,\r\n scope,\r\n level,\r\n perfMarker,\r\n }).then(() => {\r\n this.checkGrid('BaseGridView.buildGrid');\r\n const hiddenFilter = this.grid.filterState.createFilter(this.repository.hiddenFilter);\r\n this.grid.filterState.setHiddenFilter(hiddenFilter);\r\n\r\n this.grid.gridView.on('didEdit', this.onItemModified, this);\r\n this.grid.gridView.on('editInherited', this.inlineEditMultiTargets, this);\r\n this.grid.filterState.on('filterUpdated', this.onFilterUpdated, this);\r\n });\r\n\r\n this.showTooMuchDataToDownloadError = false;\r\n }\r\n\r\n checkGrid(api) {\r\n if (_.isUndefined(this.grid)) {\r\n TargetingSettingsContext.logger.logMessage(\r\n 'ClientTrace',\r\n { name: 'Info', value: 0 },\r\n api,\r\n 'Grid hasnot been created.'\r\n );\r\n }\r\n }\r\n\r\n buildGrid() {\r\n throw new Error('Not implemented!');\r\n }\r\n\r\n inlineEditMultiTargets() {\r\n throw new Error('Not implemented!');\r\n }\r\n\r\n renderTrunk() {\r\n super.renderTrunk();\r\n this.initializeAsync.then(() => {\r\n this.checkGrid('BaseGridView.renderTrunk');\r\n this.$('.upper-toolbar').append(this.grid.toolbar.gridToolbarGroup.toolbarWithName('upper-toolbar').$el);\r\n if (this.grid.filterState.getFilterBar()) {\r\n this.$('.filter-bar').append(this.grid.filterState.getFilterBar().$el);\r\n }\r\n });\r\n return this;\r\n }\r\n\r\n onFilterUpdated() {\r\n if (this.grid.filterState.getFilterBar() && this.$('.filter-bar').children().length === 0) {\r\n this.$('.filter-bar').append(this.grid.filterState.getFilterBar().$el);\r\n }\r\n }\r\n\r\n onItemModified(model, item, property) {\r\n if (model) {\r\n let updated = false;\r\n if (property === 'BidAdjustments') {\r\n updated = item.CriterionBid.Multiplier !== model.BidMultiplier;\r\n item.CriterionBid.Multiplier = model.BidMultiplier; // eslint-disable-line no-param-reassign\r\n }\r\n\r\n if (updated) {\r\n this.repository.update(item)\r\n .catch(() => {\r\n window.App.views.alertCenter.showError(TargetingSettingsContext.i18n.getString('GenericErrorMessage'));\r\n })\r\n .finally(() => {\r\n this.grid.gridView.refresh(true);\r\n })\r\n .withUiBlock(this.$el);\r\n }\r\n }\r\n }\r\n\r\n remove() {\r\n if (this.grid) {\r\n if (this.grid.toolbar && this.grid.toolbar.gridToolbarGroup) {\r\n this.grid.toolbar.gridToolbarGroup.remove();\r\n this.grid.toolbar.gridToolbarGroup = null;\r\n }\r\n\r\n if (this.grid.inlineChart) {\r\n this.grid.inlineChart.remove();\r\n this.grid.inlineChart = null;\r\n }\r\n }\r\n if (this.editorView) {\r\n this.editorView.remove();\r\n }\r\n\r\n super.remove();\r\n }\r\n\r\n gridLoadErrorHandler(data) {\r\n if (_.any(data.errors, err => err.Code === 'TooMuchDataToDownload')) {\r\n this.showTooMuchDataToDownloadError = true;\r\n } else {\r\n window.App.views.alertCenter.showError(TargetingSettingsContext.i18n.getString('GenericErrorMessage'));\r\n }\r\n }\r\n\r\n getOverThresholdMessage() {\r\n const scope = this.model.get('scope');\r\n const { i18n } = TargetingSettingsContext;\r\n return _.result({\r\n [TargetingScope.Account]: i18n.getString('TargetingSettings_Grid_OverThreshold_Account'),\r\n [TargetingScope.Campaign]: i18n.getString('TargetingSettings_Grid_OverThreshold_Campaign'),\r\n }, scope);\r\n }\r\n\r\n afterFindAllCallback(options, data) {\r\n if (_.has(data, 'errors')) {\r\n this.gridLoadErrorHandler(data);\r\n } else {\r\n this.grid.gridView.deselectAll();\r\n }\r\n\r\n return data;\r\n }\r\n\r\n showEditor(view) {\r\n // use defer here to wait for the dropdown menu to hide first\r\n _.defer(() => {\r\n if (this.editorView) {\r\n this.editorView.remove();\r\n }\r\n this.editorView = view;\r\n\r\n const editorContainer = this.$el.find('.editor-container');\r\n const gridToolbar = this.$el.find('.grid-toolbar');\r\n\r\n editorContainer.html(this.editorView.$el);\r\n editorContainer.show();\r\n\r\n // hide the toolbar with empty view, which will have blank height\r\n gridToolbar.hide();\r\n this.grid.toolbar.gridToolbarGroup.hideAllToolbars();\r\n\r\n this.editorView.once('close', (response) => {\r\n editorContainer.hide();\r\n this.editorView.remove();\r\n this.editorView = null;\r\n\r\n gridToolbar.show();\r\n this.grid.toolbar.gridToolbarGroup.showAllToolbars();\r\n if (response) {\r\n this.grid.gridView.refresh(true);\r\n }\r\n });\r\n window.scrollTo(0, 0);\r\n });\r\n }\r\n}\r\n","import {\r\n createCampaignAdGroupSelector,\r\n} from '@bingads-webui-campaign-react/campaign-adgroup-selector-control';\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { TargetingSettingsContext } from './targeting-settings-context';\r\n\r\nexport class CampaignAdgroupSelectorVnext extends DeterministicWrapperView {\r\n viewFactory({\r\n scope,\r\n level,\r\n campaignId,\r\n i18n,\r\n selectedCampaign,\r\n selectedAdGroup,\r\n optionalCampaignFilter,\r\n optionalAdgroupFilter,\r\n optionalCampaignSelect,\r\n optionalAdGroupSelect,\r\n optionalAdGroupExpand,\r\n }) {\r\n const { edmCampaign, jsDataCampaign: jsData } = TargetingSettingsContext;\r\n\r\n this.campaignAdgroupSelector = createCampaignAdGroupSelector({\r\n jsData,\r\n edmCampaign,\r\n scope,\r\n level,\r\n campaignId,\r\n i18n,\r\n selectedCampaign,\r\n selectedAdGroup,\r\n parentView: this,\r\n optionalCampaignFilter,\r\n optionalAdgroupFilter,\r\n optionalCampaignSelect,\r\n optionalAdGroupSelect,\r\n optionalAdGroupExpand,\r\n });\r\n return this.campaignAdgroupSelector;\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\nconst legacyDependencies = [\r\n 'AdScheduleView',\r\n 'AlertHelper',\r\n 'AudienceAdgroupSettingsWizard',\r\n 'BaseTargetUpdateView',\r\n 'BiddableAdGroupCriterion',\r\n 'BiddableCampaignCriterion',\r\n 'BulkAdapter',\r\n 'CampaignAdgroupSelectorControl',\r\n 'CampaignCacheManager',\r\n 'CampaignSchema',\r\n 'ChangeStatusModel',\r\n 'ChangeStatusView',\r\n 'ChangeUrlOptionsModel',\r\n 'ChangeUrlOptionsView',\r\n 'ChangeRsaAutoAssetsModel',\r\n 'ChangeRsaAutoAssetsView',\r\n 'Columns',\r\n 'DownloadView',\r\n 'InlineBudgetEditor',\r\n 'InlineSharedBudgetEditor',\r\n 'LegacyColumns',\r\n 'LegacySelectedColumns',\r\n 'LocationMap',\r\n 'LocationTargets',\r\n 'ODataConverter',\r\n 'Picker',\r\n 'SelectedColumns',\r\n 'appendPeriodOverPeriodFields',\r\n 'bidAdjustmentBulkEditPlugin',\r\n 'campaignStatus',\r\n 'config',\r\n 'constants',\r\n 'criterionLoader',\r\n 'decimal',\r\n 'editAdGroupPage',\r\n 'editCampaignPage',\r\n 'editShoppingCampaignPage',\r\n 'editSmartShoppingCampaignPage',\r\n 'edmCampaign',\r\n 'eventDispatcher',\r\n 'fetchPreferenceConfig',\r\n 'filterOptionsFromSchema',\r\n 'filterPlugin',\r\n 'filterStatePlugin',\r\n 'getAccountTimeZoneText',\r\n 'getTimeZoneForDateRangeText',\r\n 'handleSortChange',\r\n 'httpUtils',\r\n 'i18n',\r\n 'i18nErrors',\r\n 'inlineChartPlugin',\r\n 'isDeprecatedLocation',\r\n 'jsDataCampaign',\r\n 'locationConstants',\r\n 'locationTargetConverter',\r\n 'locationTargetStatusPopup',\r\n 'logger',\r\n 'odataOptions',\r\n 'pageContext',\r\n 'preferencesService',\r\n 'quickFilterPlugin',\r\n 'recommendationRepository',\r\n 'removeBulkEditPlugin',\r\n 'router',\r\n 's$AdGroupCriterion',\r\n 's$CampaignCriterion',\r\n 's$NegativeAdGroupCriterion',\r\n 's$NegativeCampaignCriterion',\r\n 's$i18n',\r\n 'segmentPreference',\r\n 'sessionStorage',\r\n 'state',\r\n 'targetConstants',\r\n 'targetTypes',\r\n 'unitMaps',\r\n 'updateFilterSchemaForPilotFeatures',\r\n 'fetchPaginationConfig',\r\n 'segmentTimeChecker',\r\n];\r\n\r\nexport class TargetingSettingsContext {\r\n static initialize({ deps }) {\r\n _.extend(TargetingSettingsContext, deps);\r\n }\r\n\r\n static isInitialized() {\r\n const missingDependencies = [];\r\n _.each(legacyDependencies, (dependency) => {\r\n const missing = _.isUndefined(TargetingSettingsContext[dependency]);\r\n if (missing) {\r\n missingDependencies.push(dependency);\r\n }\r\n });\r\n\r\n if (missingDependencies.length > 0) {\r\n throw new Error(`Dependent modules ${missingDependencies.toString()} are not injected.`);\r\n }\r\n return true;\r\n }\r\n}\r\n","/* eslint-disable no-param-reassign */\r\n/* eslint-disable prefer-destructuring */\r\nimport _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport { TrackingTemplateInlineEditView } from '@bingads-webui-campaign/upgrade-url';\r\nimport { globalContext } from '@bingads-webui-campaign/injection-context';\r\n\r\nexport class TrackingTemplateColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n name, property, i18n, view, inlineEditableSave, isForVNext, deps = null, parentContainerSelector = null, enableEdit,\r\n }) {\r\n const title = i18n.getString('ColumnName_TrackingTemplate');\r\n\r\n super({\r\n name: name || 'TrackingTemplate',\r\n property: property || 'TrackingUrlTemplate',\r\n title: 'ColumnName_TrackingTemplate',\r\n editable: true,\r\n enableEdit,\r\n type: 'string',\r\n helpId: 'Page_CampaignsGrid_TrackingTemplate',\r\n bodyClasses: ['grid-column-TrackingTemplate'],\r\n i18n,\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.inlineEditableSave = inlineEditableSave;\r\n this.isForVNext = isForVNext;\r\n this.deps = deps;\r\n this.parentContainerSelector = parentContainerSelector;\r\n }\r\n\r\n pickProperty(item) {\r\n return item.TrackingUrlTemplate || '';\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const level = item.constructor.name.toLowerCase();\r\n // When tracking template is saved in adgroup, and open again,\r\n // the item.constructor.name will be object\r\n const grid = this.view.constructor.name.toLowerCase();\r\n const gridClass = this.view.el && this.view.el.className;\r\n let isAdGroupLevel = false;\r\n let isKeywordLevel = false;\r\n let testUurlService;\r\n let testUurl;\r\n let uurlLevels;\r\n let showUurlTestTool = false;\r\n\r\n // TODO: refactor this part later\r\n try {\r\n testUurlService = globalContext.require('component/upgraded-url/service/testUurl');\r\n } catch (e) {\r\n if (this.deps) {\r\n testUurlService = this.deps.testUurlService;\r\n }\r\n }\r\n\r\n if (testUurlService && testUurlService.uurlLevels && testUurlService.testUurl) {\r\n uurlLevels = testUurlService.uurlLevels;\r\n testUurl = testUurlService.testUurl;\r\n isAdGroupLevel = level === uurlLevels.AdGroup.toLowerCase() ||\r\n grid.indexOf(uurlLevels.AdGroup.toLowerCase()) >= 0 || gridClass === 'ad-groups-grid';\r\n isKeywordLevel = level === uurlLevels.Keyword.toLowerCase();\r\n // Show the inline test button for keyword and adgroup only\r\n showUurlTestTool = isAdGroupLevel || isKeywordLevel;\r\n }\r\n\r\n const trackingtemplateviewInlineView = new TrackingTemplateInlineEditView({\r\n i18n: this.i18n,\r\n trackingTemplate: item.TrackingUrlTemplate,\r\n showUurlTestTool,\r\n isForVNext: this.isForVNext,\r\n deps: this.deps,\r\n });\r\n const self = this;\r\n\r\n trackingtemplateviewInlineView.on('save', ({ trackingTemplate }) => {\r\n const updated = _.extendOwn({}, item, { TrackingUrlTemplate: trackingTemplate });\r\n\r\n return this.inlineEditableSave({\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'TrackingUrlTemplate',\r\n updated,\r\n editorView: trackingtemplateviewInlineView,\r\n editorViewCallbackAfterUpdate: () => {\r\n trackingtemplateviewInlineView.trigger('close');\r\n },\r\n });\r\n });\r\n\r\n trackingtemplateviewInlineView.on('testUurl', (fn, originalView) => {\r\n if (!trackingtemplateviewInlineView.viewModel.isValid()) {\r\n fn.call(originalView, null); // to stop the loading spinner\r\n return;\r\n }\r\n\r\n originalView.isInline = true;\r\n\r\n if (isKeywordLevel) {\r\n originalView.level = uurlLevels.Keyword;\r\n } else if (isAdGroupLevel) {\r\n originalView.level = uurlLevels.AdGroup;\r\n }\r\n\r\n const params = {\r\n TrackingUrlTemplate: trackingtemplateviewInlineView.trackingTemplateView.viewModel\r\n .trackingTemplate(),\r\n };\r\n\r\n const context = {\r\n customerId: self.view.options.scope.customerId,\r\n userId: self.view.options.scope.userId,\r\n accountId: self.view.options.scope.accountId,\r\n campaignId: item.Campaign.Id,\r\n entityId: item.Id,\r\n };\r\n\r\n if (isKeywordLevel) {\r\n context.adGroupId = item.AdGroup.Id;\r\n } else if (isAdGroupLevel) {\r\n context.adGroupId = item.Id;\r\n }\r\n\r\n const options = {\r\n apiInLog: 'tracking-template/uurlTest',\r\n };\r\n\r\n testUurl(fn, originalView, params, context, options);\r\n });\r\n\r\n const useVNextPosition = this.isForVNext && Object.keys(newPosition).length !== 0;\r\n const groupClass = `grid-group-${_.result(this.config, 'group', 'other')}`;\r\n const editorView = new GridCustomizedPopupEditor({\r\n editorView: trackingtemplateviewInlineView.render(),\r\n cellPosition: useVNextPosition ? newPosition : position,\r\n renderBelow: false,\r\n className: `tracking-template-inline-edit-popup grid-popupeditor ${groupClass}`,\r\n parentContainerSelector: useVNextPosition ? (this.parentContainerSelector || '.grid-and-disclaim-container') : null,\r\n });\r\n\r\n return editorView.render();\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport { CustomParameterInlineEditView } from '@bingads-webui-campaign/upgrade-url';\r\nimport { triggerScrollbarRepositionOnElementHeightChange } from '@bingads-webui-campaign-react/virtual-scrollbar-recalculate-trigger';\r\nimport template from './custom-parameters.pug';\r\n\r\nexport class CustomParametersColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n name,\r\n property,\r\n i18n,\r\n view,\r\n inlineEditableSave,\r\n permissions,\r\n isForVNext,\r\n parentContainerSelector = null,\r\n enableEdit,\r\n }) {\r\n const title = i18n.getString('ColumnName_URLCustomParameters');\r\n\r\n super({\r\n name: name || 'CustomParameters',\r\n property: property || 'UrlCustomParameters',\r\n title: 'ColumnName_URLCustomParameters',\r\n editable: true,\r\n enableEdit,\r\n type: 'string',\r\n helpId: 'Page_CampaignsGrid_URLCustomParameters',\r\n bodyClasses: ['grid-column-CustomParameters'],\r\n i18n,\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.inlineEditableSave = inlineEditableSave;\r\n this.permissions = permissions;\r\n this.isForVNext = isForVNext;\r\n this.parentContainerSelector = parentContainerSelector;\r\n }\r\n\r\n template({ value }) { return template({ value }); }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const customParametersInlineEditView = new CustomParameterInlineEditView({\r\n i18n: this.i18n,\r\n customParameters: item.UrlCustomParameters,\r\n permissions: this.permissions,\r\n entityType: 'phase1Entity', // TODO: remove after custom parameter increase GA.\r\n });\r\n\r\n customParametersInlineEditView.on('save', ({ customParams }) => {\r\n const updated = _.extendOwn({}, item, { UrlCustomParameters: customParams });\r\n\r\n return this.inlineEditableSave({\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'UrlCustomParameters',\r\n updated,\r\n editorView: customParametersInlineEditView,\r\n editorViewCallbackAfterUpdate: () => {\r\n customParametersInlineEditView.trigger('close');\r\n },\r\n });\r\n });\r\n\r\n const useVNextPosition = this.isForVNext && Object.keys(newPosition).length !== 0;\r\n const groupClass = `grid-group-${_.result(this.config, 'group', 'other')}`;\r\n const editorView = new GridCustomizedPopupEditor({\r\n editorView: customParametersInlineEditView.render(),\r\n cellPosition: useVNextPosition ? newPosition : position,\r\n renderBelow: false,\r\n className: `custom-parameters-inline-edit-popup grid-popupeditor ${groupClass}`,\r\n parentContainerSelector: useVNextPosition ? (this.parentContainerSelector || '.grid-and-disclaim-container') : null,\r\n });\r\n\r\n editorView.render();\r\n triggerScrollbarRepositionOnElementHeightChange(editorView.el);\r\n return editorView;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport { FinalUrlSuffixInlineEditView } from '@bingads-webui-campaign/upgrade-url';\r\n\r\nexport class FinalUrlSuffixColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n name, property, i18n, view, inlineEditableSave, isForVNext, parentContainerSelector = null, enableEdit,\r\n }) {\r\n const title = i18n.getString('ColumnName_FinalUrlSuffix');\r\n super({\r\n name: name || 'FinalUrlSuffix',\r\n property: property || 'FinalUrlSuffix',\r\n title: 'ColumnName_FinalUrlSuffix',\r\n editable: true,\r\n enableEdit,\r\n type: 'string',\r\n helpId: 'pop_BA_NewAdCreate_FinalURLSuffix',\r\n bodyClasses: ['grid-column-FinalUrlSuffix'],\r\n i18n,\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.inlineEditableSave = inlineEditableSave;\r\n this.isForVNext = isForVNext;\r\n this.parentContainerSelector = parentContainerSelector;\r\n }\r\n\r\n pickProperty(item) {\r\n return item.FinalUrlSuffix || '';\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const finalUrlSuffixInlineEditView = new FinalUrlSuffixInlineEditView({\r\n i18n: this.i18n,\r\n finalUrlSuffix: item.FinalUrlSuffix,\r\n });\r\n\r\n finalUrlSuffixInlineEditView.on('save', ({ finalUrlSuffix }) => {\r\n const updated = _.extendOwn({}, item, { FinalUrlSuffix: finalUrlSuffix });\r\n\r\n return this.inlineEditableSave({\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'FinalUrlSuffix',\r\n updated,\r\n editorView: finalUrlSuffixInlineEditView,\r\n editorViewCallbackAfterUpdate: () => {\r\n finalUrlSuffixInlineEditView.trigger('close');\r\n },\r\n });\r\n });\r\n\r\n const useVNextPosition = this.isForVNext && Object.keys(newPosition).length !== 0;\r\n const groupClass = `grid-group-${_.result(this.config, 'group', 'other')}`;\r\n const editorView = new GridCustomizedPopupEditor({\r\n editorView: finalUrlSuffixInlineEditView.render(),\r\n cellPosition: useVNextPosition ? newPosition : position,\r\n renderBelow: false,\r\n className: `final-url-suffix-inline-edit-popup grid-popupeditor ${groupClass}`,\r\n parentContainerSelector: useVNextPosition ? (this.parentContainerSelector || '.grid-and-disclaim-container') : null,\r\n });\r\n\r\n return editorView.render();\r\n }\r\n}\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport ko from 'knockout';\r\nfunction Option(configuration, el) {\r\n var defaultSettings = {\r\n isSelected: false,\r\n isDisabled: false,\r\n isMandatory: false\r\n };\r\n $.extend(defaultSettings, configuration.settings);\r\n this._viewModel = {\r\n isFirst: ko.observable(false),\r\n name: ko.observable(configuration.name),\r\n id: ko.observable(configuration.id),\r\n isSelected: ko.observable(defaultSettings.isSelected || defaultSettings.isDisabled),\r\n isDisabled: ko.observable(defaultSettings.isDisabled),\r\n isMandatory: ko.observable(defaultSettings.isMandatory)\r\n };\r\n this.el = el;\r\n this.id = configuration.id;\r\n}\r\nOption.prototype.property = function (propertyName, propertyValue) {\r\n if (propertyValue !== undefined) {\r\n this._viewModel[propertyName](propertyValue);\r\n } else {\r\n return ko.utils.unwrapObservable(this._viewModel[propertyName]);\r\n }\r\n};\r\nexport default Option;\r\n\r\n","/* eslint-disable */\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport Option from '@bingads-webui-component-legacy/column-chooser/option';\r\nfunction Category(name, el) {\r\n this._viewModel = {\r\n 'name': ko.observable(name),\r\n 'options': ko.observableArray([])\r\n };\r\n this.el = el;\r\n}\r\nCategory.prototype.addOption = function (optionData) {\r\n var columnChooserOption = new Option(optionData, this.el);\r\n this._viewModel.options.push(columnChooserOption);\r\n return columnChooserOption;\r\n};\r\nCategory.prototype.removeOption = function (id) {\r\n this._viewModel.options.remove(function (item) {\r\n return id === item.id;\r\n });\r\n};\r\nCategory.prototype.editOption = function (id, newName) {\r\n var i = _.findIndex(this._viewModel.options(), function (option) {\r\n return option.id === id;\r\n });\r\n this._viewModel.options()[i].property('name', newName);\r\n};\r\nCategory.prototype.getOptions = function () {\r\n return this._viewModel.options();\r\n};\r\nCategory.prototype.getUnselectedOptionsCount = function () {\r\n var options = this._viewModel.options();\r\n var unSelectedOptions = _.filter(options, function (option) {\r\n return option.property('isSelected') === false;\r\n });\r\n return unSelectedOptions.length;\r\n};\r\nCategory.prototype.getName = function () {\r\n return this._viewModel.name();\r\n};\r\nexport default Category;\r\n\r\n","/* eslint-disable */\r\nimport ko from 'knockout';\r\nko.bindingHandlers.clickToggle = {\r\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\r\n ko.utils.registerEventHandler(element, 'click', function () {\r\n var modelValue = valueAccessor();\r\n if (typeof modelValue === 'object') {\r\n if (modelValue.condition()) {\r\n modelValue.value(!modelValue.value());\r\n }\r\n } else {\r\n modelValue(!modelValue());\r\n }\r\n });\r\n }\r\n};\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport Category from '@bingads-webui-component-legacy/column-chooser/category';\r\nimport '@bingads-webui-component-legacy/extension/ko/clickToggle';\r\nimport '@bingads-webui-component-legacy/extension/ko/sortable';\r\nfunction ColumnChooser(el, settings) {\r\n var self = this;\r\n this._viewModel = {\r\n text: {},\r\n enableSave: ko.observable(false),\r\n showSave: settings.isSavingColumnsAllowed,\r\n savedName: ko.observable(''),\r\n categories: {\r\n all: ko.observableArray([]),\r\n current: ko.observable(0),\r\n setCategory: function (category, event) {\r\n var context = ko.contextFor(event.target);\r\n self._viewModel.categories.current(context.$index());\r\n }\r\n },\r\n options: {\r\n selected: ko.observableArray([])\r\n },\r\n applyButtonVisible: ko.observable(!settings.autosave),\r\n selectAll: $.proxy(self.selectAll, self),\r\n removeAll: $.proxy(self.removeAll, self),\r\n hasOptions: function () {\r\n return self._viewModel.categories.all()[self._viewModel.categories.current()]._viewModel.options().length !== 0;\r\n },\r\n allActionText: function () {\r\n var unselectedOptionsCount = self._viewModel.options.unselectedCount();\r\n if (unselectedOptionsCount > 0) {\r\n return self._viewModel.text.addAllColumns;\r\n } else {\r\n return self._viewModel.text.removeAllColumns;\r\n }\r\n },\r\n events: {\r\n trigger: function (name) {\r\n var data = self.getSelectedOptions();\r\n $(self.el).trigger('column-chooser.' + name, [data]);\r\n }\r\n }\r\n };\r\n this._viewModel.options.unselectedCount = ko.computed(function () {\r\n var currentCategory = self._viewModel.categories.current();\r\n var category = self._viewModel.categories.all()[currentCategory];\r\n var unselectedOptionsCount = 0;\r\n if (category) {\r\n unselectedOptionsCount = category.getUnselectedOptionsCount();\r\n }\r\n return unselectedOptionsCount;\r\n });\r\n this._viewModel.options.sortedSelection = ko.computed(function () {\r\n var sortedOptions = _.sortBy(self._viewModel.options.selected(), function (option) {\r\n return -option._viewModel.isDisabled();\r\n });\r\n setFirstOption(sortedOptions);\r\n return sortedOptions;\r\n });\r\n this._viewModel.options.available = ko.computed(function () {\r\n var currentCategory = self._viewModel.categories.current();\r\n var category = self._viewModel.categories.all()[currentCategory];\r\n var availableOptions = [], options = [], option;\r\n if (category) {\r\n options = category.getOptions();\r\n if (self.isColumnCategoryAllowed) {\r\n availableOptions = options;\r\n } else {\r\n for (var i = 0; i < options.length; i++) {\r\n option = options[i];\r\n if (!option.property('isSelected')) {\r\n availableOptions.push(option);\r\n }\r\n }\r\n }\r\n }\r\n setFirstOption(availableOptions);\r\n return availableOptions;\r\n });\r\n this._optionCache = {};\r\n this._batchCounter = false;\r\n this.el = el;\r\n this.autosave = settings.autosave || false;\r\n this.isColumnCategoryAllowed = settings.isColumnCategoryAllowed || false;\r\n $.extend(this._viewModel.text, settings.text);\r\n init.call(this, settings);\r\n}\r\nColumnChooser.prototype.setOptions = function (columnsData) {\r\n var columnChooserCategories = [];\r\n var self = this;\r\n this._optionCache = {};\r\n if (columnsData.length > 0) {\r\n for (var columnsDataIndex = 0; columnsDataIndex < columnsData.length; columnsDataIndex++) {\r\n var columnData = columnsData[columnsDataIndex];\r\n var columnChooserCategory = new Category(columnData.name, this.el);\r\n var options = columnData.options;\r\n if (options && options.length) {\r\n for (var optionIndex = 0; optionIndex < options.length; optionIndex++) {\r\n var optionData = options[optionIndex];\r\n var columnChooserOption = columnChooserCategory.addOption(optionData);\r\n setOptionEvents.call(self, columnChooserOption);\r\n self._optionCache[columnChooserOption.id] = columnChooserOption;\r\n }\r\n }\r\n columnChooserCategories.push(columnChooserCategory);\r\n }\r\n }\r\n this._viewModel.categories.all(columnChooserCategories);\r\n};\r\nColumnChooser.prototype.setOptionStateById = function (id, isSelected) {\r\n var option = this.getOptionById(id);\r\n if (option && option._viewModel.isSelected() != isSelected) {\r\n option._viewModel.isSelected(isSelected);\r\n option.property('isSelected', isSelected);\r\n if (isSelected && !_.contains(this._viewModel.options.selected(), option)) {\r\n this._viewModel.options.selected.push(option);\r\n } else {\r\n this._viewModel.options.selected.remove(option);\r\n }\r\n }\r\n};\r\nColumnChooser.prototype.setState = function (state) {\r\n var ids = [], id, option;\r\n if (state && $.isArray(state.selectedColumns) && state.selectedColumns.length > 0) {\r\n ids = state.selectedColumns;\r\n this._batchCounter++;\r\n this.removeAll(!this.isColumnCategoryAllowed, true);\r\n for (var columnId in this._optionCache) {\r\n if (this._optionCache[columnId].property('isDisabled')) {\r\n var exists = false;\r\n for (var i = 0; i < ids.length; i++) {\r\n if (columnId === ids[i]) {\r\n exists = true;\r\n break;\r\n }\r\n }\r\n if (!exists) {\r\n ids.push(columnId);\r\n }\r\n }\r\n }\r\n for (var i = 0; i < ids.length; i++) {\r\n id = ids[i];\r\n option = this.getOptionById(id);\r\n if (option) {\r\n option.property('isSelected', true);\r\n }\r\n }\r\n this._batchCounter--;\r\n }\r\n};\r\nColumnChooser.prototype.selectAll = function (force) {\r\n if (this.isColumnCategoryAllowed) {\r\n var unselectedOptionsCount = this._viewModel.options.unselectedCount();\r\n if (unselectedOptionsCount > 0) {\r\n setAllOptionsSelected.call(this, this._viewModel.options.available(), true, force);\r\n } else {\r\n this.removeAll(force);\r\n }\r\n } else {\r\n setAllOptionsSelected.call(this, this._viewModel.options.available(), true, force);\r\n }\r\n};\r\nColumnChooser.prototype.removeAll = function (force, forceAllCategories) {\r\n var options = [];\r\n if (this._viewModel.categories.all().length > 1 && !forceAllCategories) {\r\n var currentCategory = this._viewModel.categories.current();\r\n var currentCategoryOptions = this._viewModel.categories.all()[currentCategory].getOptions();\r\n _.each(currentCategoryOptions, function (categoryOption) {\r\n options.push(categoryOption);\r\n });\r\n } else {\r\n options = this._viewModel.options.selected();\r\n }\r\n setAllOptionsSelected.call(this, options, false, force);\r\n};\r\nColumnChooser.prototype.getSelectedOptions = function () {\r\n return this._viewModel.options.selected();\r\n};\r\nColumnChooser.prototype.getAvailableOptions = function () {\r\n return this._viewModel.options.available();\r\n};\r\nColumnChooser.prototype.getSelectedOptionsId = function () {\r\n return $.map(this._viewModel.options.selected(), function (item) {\r\n return item.id;\r\n });\r\n};\r\nColumnChooser.prototype.getAvailableOptionsId = function () {\r\n return $.map(this._viewModel.options.available(), function (item) {\r\n return item.id;\r\n });\r\n};\r\nColumnChooser.prototype.getOptionById = function (id) {\r\n return this._optionCache[id];\r\n};\r\nColumnChooser.prototype.getSavedName = function () {\r\n return this._viewModel.savedName().trim();\r\n};\r\nColumnChooser.prototype.setSavedName = function (name) {\r\n this._viewModel.savedName(name);\r\n this._viewModel.enableSave(true);\r\n};\r\nColumnChooser.prototype.enabledSaveColumns = function () {\r\n return this._viewModel.enableSave();\r\n};\r\nColumnChooser.prototype.resetSavedName = function () {\r\n this._viewModel.savedName('');\r\n this._viewModel.enableSave(false);\r\n};\r\nColumnChooser.prototype.addOption = function (category, optionData) {\r\n var cat = getCategoryByName.call(this, category);\r\n var columnChooserOption = cat.addOption(optionData);\r\n setOptionEvents.call(this, columnChooserOption);\r\n this._optionCache[columnChooserOption.id] = columnChooserOption;\r\n};\r\nColumnChooser.prototype.editOption = function (category, optionData) {\r\n var cat = getCategoryByName.call(this, category);\r\n cat.editOption(optionData.id, optionData.name);\r\n};\r\nColumnChooser.prototype.removeOption = function (category, id) {\r\n var cat = getCategoryByName.call(this, category);\r\n this.setOptionStateById(id, false);\r\n cat.removeOption(id);\r\n};\r\nfunction init(settings) {\r\n var self = this;\r\n if (settings.categories) {\r\n this.setOptions(settings.categories);\r\n }\r\n $(this.el).bind('sortstop', function () {\r\n self._viewModel.events.trigger('rearrange');\r\n });\r\n ko.applyBindings(this._viewModel, this.el);\r\n}\r\nfunction getCategoryByName(category) {\r\n return _.find(this._viewModel.categories.all(), function (cat) {\r\n return cat.getName() === category;\r\n });\r\n}\r\nfunction setOptionEvents(columnChooserOption) {\r\n var self = this;\r\n columnChooserOption._viewModel.isSelected.subscribe(function (isSelected) {\r\n setOptionState.call(self, columnChooserOption, isSelected);\r\n });\r\n setOptionState.call(this, columnChooserOption, columnChooserOption._viewModel.isSelected());\r\n}\r\nfunction setOptionState(option, isSelected) {\r\n if (isSelected) {\r\n this._viewModel.options.selected.push(option);\r\n } else {\r\n this._viewModel.options.selected.remove(option);\r\n }\r\n setFirstOption(this._viewModel.options.selected());\r\n if (this._batchCounter === 0) {\r\n this._viewModel.events.trigger('modify');\r\n }\r\n}\r\nfunction setAllOptionsSelected(list, isSelected, force) {\r\n var options = list.slice();\r\n var isDisabled;\r\n this._batchCounter++;\r\n for (var i = 0; i < options.length; i++) {\r\n isDisabled = options[i].property('isDisabled');\r\n if (!isDisabled || force === true) {\r\n options[i].property('isSelected', isSelected);\r\n }\r\n }\r\n this._batchCounter--;\r\n this._viewModel.events.trigger('modify');\r\n}\r\nfunction setFirstOption(options) {\r\n var ifFoundFirstOption = false;\r\n _.each(options, function (option) {\r\n if (option._viewModel.name() && !ifFoundFirstOption) {\r\n option._viewModel.isFirst(true);\r\n ifFoundFirstOption = true;\r\n } else {\r\n option._viewModel.isFirst(false);\r\n }\r\n });\r\n}\r\nexport default ColumnChooser;\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport '@bingads-webui/kendo/kendo.sortable';\r\nko.bindingHandlers.sortable = {\r\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\r\n var value = valueAccessor(), list = _.isObject(value) ? value.list : value, sortableSettings = {\r\n hint: function (element) {\r\n return element.clone().css({\r\n 'list-style': 'none',\r\n 'width': element.width()\r\n });\r\n },\r\n placeholder: function (element) {\r\n if (value && value.placeholder) {\r\n return element.clone().addClass(value.placeholder);\r\n }\r\n return element.clone().css({\r\n 'opacity': 0.2\r\n });\r\n },\r\n filter: value && value.items ? value.items : 'li:not(.column-chooser-option-fixed)',\r\n change: function (e) {\r\n var movedOption = ko.dataFor(e.item[0]);\r\n var delta = e.newIndex - e.oldIndex;\r\n var previousPosition = list.indexOf(movedOption);\r\n list.remove(movedOption);\r\n list.splice(previousPosition + delta, 0, movedOption);\r\n }\r\n };\r\n $(element).kendoSortable(sortableSettings);\r\n }\r\n};\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport tmpl from '@bingads-webui-component-legacy/column-chooser/template/index.pug';\r\nimport ColumnChooser from '@bingads-webui-component-legacy/column-chooser/column-chooser';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!component/column-chooser');\r\nvar View = Backbone.View.extend({\r\n events: {\r\n 'column-chooser.cancel': 'cancel',\r\n 'column-chooser.save': 'save'\r\n },\r\n initialize: function (options) {\r\n this.options = _.defaults(options, {\r\n state: {},\r\n columns: [],\r\n grouping: true,\r\n saving: false,\r\n localization: {}\r\n });\r\n this.state = options.state;\r\n this.columns = options.columns;\r\n this.localization = _.defaults(options.localization, mapObject({\r\n 'header': 'Grid_ColumnChooser_Header',\r\n 'apply': 'Grid_ColumnChooser_Save',\r\n 'cancel': 'Grid_ColumnChooser_Cancel',\r\n 'availableColumns': 'Grid_ColumnChooser_AvailableColumns',\r\n 'addAll': 'Grid_ColumnChooser_AddAll',\r\n 'selectedColumns': 'Grid_ColumnChooser_SelectedColumns',\r\n 'removeAll': 'Grid_ColumnChooser_RemoveAll',\r\n 'selectedColumnsWithReorder': 'Grid_ColumnChooser_SelectedColumnsWithReorder',\r\n 'add': 'Grid_ColumnChooser_AddColumn',\r\n 'added': 'Grid_ColumnChooser_ColumnAdded',\r\n 'remove': 'Grid_ColumnChooser_RemoveColumn',\r\n 'addAllColumns': 'Grid_ColumnChooser_AddAllColumns',\r\n 'removeAllColumns': 'Grid_ColumnChooser_RemoveAllColumns',\r\n 'headerTitle': 'Grid_ColumnChooser_Header_Title',\r\n 'applyColumns': 'Grid_ColumnChooser_Apply',\r\n 'deselectAll': 'Grid_ColumnChooser_DeselectAll',\r\n 'saveColumnSet': 'Grid_ColumnChooser_SaveColumnSet'\r\n }, i18n.get, i18n));\r\n this.categories = groups(this.columns, options.grouping);\r\n this.whenStateReady = $.Deferred();\r\n },\r\n render: function () {\r\n this.$el.html(tmpl({\r\n grouping: this.options.grouping,\r\n text: this.localization\r\n }));\r\n var $elColumnChooser = this.$('.column-chooser');\r\n this.columnChooser = new ColumnChooser($elColumnChooser[0], {\r\n categories: this.categories,\r\n autosave: false,\r\n isColumnCategoryAllowed: this.options.grouping,\r\n isSavingColumnsAllowed: this.options.saving,\r\n text: this.localization\r\n });\r\n this.state.getItem && this.state.getItem(_.bind(this.setState, this));\r\n $('[role=tab]:first', this.$el).focus();\r\n return this;\r\n },\r\n cancel: function () {\r\n this.hide();\r\n _.each(this.columns, function (column) {\r\n this._getOption(column).property('isSelected', column.selected);\r\n }, this);\r\n this.trigger('column-chooser.complete');\r\n },\r\n save: function () {\r\n var name = this.getSavedName();\r\n if (this.options.saving && _.isFunction(this.options.canSaveColumns)) {\r\n this.options.canSaveColumns({\r\n name: name\r\n }).then(_.bind(function (confirm) {\r\n if (confirm) {\r\n this._onSave();\r\n }\r\n }, this));\r\n } else {\r\n this._onSave();\r\n }\r\n },\r\n addOption: function (category, optionData) {\r\n this.columnChooser.addOption(category, optionData);\r\n this.columns = this.columns.concat({\r\n category: category,\r\n id: optionData.id,\r\n name: optionData.name,\r\n selectable: true\r\n });\r\n },\r\n editOption: function (category, optionData) {\r\n this.columnChooser.editOption(category, optionData);\r\n var colIndex = _.findIndex(this.columns, function (col) {\r\n return col.id === optionData.id;\r\n });\r\n this.columns[colIndex].name = optionData.name;\r\n _.findWhere(_.findWhere(this.categories, {\r\n name: category\r\n }).options, {\r\n id: optionData.id\r\n }).name = optionData.name;\r\n },\r\n removeOption: function (category, id) {\r\n this.columnChooser.removeOption(category, id);\r\n this.columns = _.reject(this.columns, function (col) {\r\n return col.id === id;\r\n });\r\n },\r\n setSelectedIds: function (ids) {\r\n this.columnChooser.setState({\r\n selectedColumns: ids.slice(0)\r\n });\r\n },\r\n getSelectedOptionsId: function () {\r\n return this.columnChooser.getSelectedOptionsId();\r\n },\r\n getSavedName: function () {\r\n return this.columnChooser.getSavedName();\r\n },\r\n setSavedName: function (name) {\r\n return this.columnChooser.setSavedName(name);\r\n },\r\n enabledSaveColumns: function () {\r\n return this.columnChooser.enabledSaveColumns();\r\n },\r\n resetSavedName: function () {\r\n return this.columnChooser.resetSavedName();\r\n },\r\n getColumns: function () {\r\n return this.columns;\r\n },\r\n getSelectedColumns: function () {\r\n var selectedOptions = this.columnChooser.getSelectedOptions();\r\n return _.filter(this.columns, function (column) {\r\n return _.some(selectedOptions, function (option) {\r\n return option.id === column.id;\r\n });\r\n });\r\n },\r\n setState: function (err, state) {\r\n if (!err) {\r\n try {\r\n this.columnChooser.setState(state);\r\n } catch (e) {}\r\n }\r\n this._apply();\r\n this.whenStateReady.resolve();\r\n },\r\n show: function () {\r\n this.$('.column-chooser').show();\r\n },\r\n hide: function () {\r\n this.$('.column-chooser').hide();\r\n },\r\n _onSave: function () {\r\n this.hide();\r\n this._apply();\r\n this.state.setItem && this.state.setItem({\r\n 'selectedColumns': this.columnChooser.getSelectedOptionsId()\r\n });\r\n this.trigger('column-chooser.complete');\r\n },\r\n _getOption: function (column) {\r\n return this.columnChooser.getOptionById(column.id);\r\n },\r\n _apply: function () {\r\n var selected = this.columnChooser.getSelectedOptions();\r\n this.trigger('change:columns', _.pluck(filterSort(this.columns, selected, this._getOption.bind(this)), 'id'));\r\n }\r\n});\r\nfunction groupColumns(columns) {\r\n var last = _.last(columns);\r\n return {\r\n name: last ? last.category : 'Available Columns',\r\n options: _.map(columns, function (column) {\r\n return {\r\n id: column.id,\r\n name: column.name,\r\n settings: {\r\n isDisabled: !column.selectable,\r\n isMandatory: column.mandatory,\r\n isSelected: column.selected\r\n }\r\n };\r\n })\r\n };\r\n}\r\nfunction groups(columns, grouping) {\r\n if (grouping) {\r\n return _.map(_.groupBy(columns, 'category'), groupColumns);\r\n } else {\r\n return [groupColumns(columns)];\r\n }\r\n}\r\nfunction mapObject(object, iteratee, context) {\r\n var ret = {};\r\n iteratee = _.bind(iteratee, context);\r\n _.each(object, function (value, key) {\r\n ret[key] = iteratee(value);\r\n });\r\n return ret;\r\n}\r\nfunction filterSort(list, selected, iteratee) {\r\n var cache = {};\r\n _.each(list, function (item) {\r\n var index = _.indexOf(selected, iteratee(item));\r\n if (-1 !== index) {\r\n cache[index] = item;\r\n }\r\n });\r\n return _.toArray(cache);\r\n}\r\nexport default View;\r\n\r\n","/* eslint-disable */\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport template from '@bingads-webui-component-legacy/modal/layout/modal.pug';\r\nvar view = Backbone.View.extend({\r\n events: {\r\n 'click .btn-primary': 'primaryAction'\r\n },\r\n initialize: function () {\r\n this.primary = false;\r\n this.$el.append(template);\r\n this.$el.addClass('modal');\r\n this.ko_model = {\r\n body: ko.observable(''),\r\n primaryText: ko.observable(''),\r\n defaultText: ko.observable(''),\r\n isHtmlContent: ko.observable(false)\r\n };\r\n },\r\n render: function () {\r\n ko.applyBindings(this.ko_model, this.el);\r\n var self = this;\r\n this.$el.on('hidden.bs.modal', function (e) {\r\n self.$el.trigger('close');\r\n });\r\n return this;\r\n },\r\n show: function (content) {\r\n if (!content || content && !(content.text || content.html || content.primaryActionText)) {\r\n return;\r\n }\r\n this.primary = false;\r\n this.ko_model.body(content.html || content.text);\r\n this.ko_model.primaryText(content.primaryActionText);\r\n this.ko_model.defaultText(content.defaultActionText);\r\n this.ko_model.isHtmlContent(content.html);\r\n this.$el.modal('show');\r\n return this;\r\n },\r\n close: function () {\r\n this.$el.modal('hide');\r\n },\r\n primaryAction: function () {\r\n this.primary = true;\r\n this.close();\r\n },\r\n isPrimarySelected: function () {\r\n return this.primary;\r\n }\r\n});\r\nexport default view;\r\n\r\n","import _ from 'underscore';\r\nimport s from 'underscore.string';\r\nimport Promise from 'bluebird';\r\nimport { localizeSegmentationValue } from '@bingads-webui-campaign/segmentation-utilities';\r\nimport ColumnChooserView from '@bingads-webui-component-legacy/column-chooser/index';\r\nimport { Columns, SelectedColumns } from '@bingads-webui-component-legacy/bingads-grid/service/column-chooser-preferences';\r\nimport { LegacyColumns, LegacySelectedColumns } from '@bingads-webui-component-legacy/bingads-grid/service/legacy-column-chooser-preferences';\r\nimport {\r\n columnChooserIcon,\r\n arrowDownIcon,\r\n} from '@bingads-webui-component-legacy/bingads-grid/shared/icons';\r\nimport Modal from '@bingads-webui-component-legacy/modal/index';\r\nimport { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport { CustomColumns } from '@bingads-webui-component-legacy/bingads-grid/service/custom-column-preferences';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/bingadsgrid');\r\nconst sharedComponentI18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!component/bingads-grid');\r\n\r\nconst saveListId = 'dropdown-radio-group-saved-columns';\r\nlet columnPreferenceSaved = Promise.resolve();\r\n\r\nfunction normalizeConfig(config) {\r\n const {\r\n dropdown = 'dropdown-column-chooser',\r\n columns = config.columns || {},\r\n categories = [],\r\n selected = [],\r\n locked = [],\r\n mandatory = [],\r\n patchQuery = false,\r\n toolbar,\r\n customColumn = false,\r\n } = _.result(config.plugins, 'columnChooser', {});\r\n\r\n return {\r\n dropdown,\r\n columns: _.isArray(columns) ? _.indexBy(columns, 'name') : columns,\r\n selected,\r\n locked,\r\n mandatory,\r\n categories,\r\n patchQuery,\r\n toolbar,\r\n customColumn,\r\n };\r\n}\r\n\r\nfunction arrayToIndex(arr) {\r\n return _.reduce(arr, (memo, key) => {\r\n memo[key] = true;\r\n return memo;\r\n }, {});\r\n}\r\n\r\n/*\r\n * Configurations\r\n * @type ColumnChooserConfig\r\n * @member {Object.} columns\r\n * @member {Object.} categories\r\n * @member {string[]} selected\r\n * @member {string[]} locked\r\n * @member {boolean} patchQuery - whether or not we should patch the query for column change\r\n *\r\n * @type ColumnConfig\r\n *\r\n * @type CategoryConfig\r\n * @member {string} title\r\n * @member {string[]} columns\r\n */\r\n/**\r\n * Events\r\n * @event \"columnChanged\" event is triggered when selected columns are changed and pass valid column names as arg\r\n */\r\n\r\nexport default (definePlugin) => definePlugin('columnChooser', [\r\n 'config',\r\n 'gridView',\r\n 'toolbar',\r\n], (config, gridView, toolbar) => {\r\n const pluginConfig = normalizeConfig(config);\r\n let columnChooser = null;\r\n const toolbarEditor = pluginConfig.toolbar || toolbar.gridToolbarGroup.toolbarWithItem(pluginConfig.dropdown);\r\n\r\n function getSelectedColumns() {\r\n return _.map(gridView.get('columns'), _.property('name'));\r\n }\r\n\r\n function setSelectedColumns(names) {\r\n const { columns, locked = [], mandatory = [], patchQuery } = pluginConfig;\r\n const validNames = _.chain([\r\n locked,\r\n _.difference(mandatory, names),\r\n names,\r\n ])\r\n .flatten()\r\n .filter((name) => _.has(columns, name))\r\n .uniq()\r\n .value();\r\n let patch = {\r\n columns: _.map(validNames, (name) => _.defaults({ name }, columns[name])),\r\n };\r\n\r\n if (patchQuery) {\r\n let select = _.reduce(validNames, (memo, name) => {\r\n const column = columns[name];\r\n const property = column && (column.property || column.name);\r\n const key = (_.isString(property) && property) ||\r\n (_.isObject(property) && property.key);\r\n\r\n if (_.isArray(key)) {\r\n Array.prototype.push.apply(memo, key);\r\n } else if (_.isString(key)) {\r\n memo.push(key);\r\n }\r\n\r\n return memo;\r\n }, []);\r\n\r\n const query = gridView.get('query');\r\n\r\n patch.query = _.defaults({\r\n select,\r\n }, query);\r\n }\r\n\r\n gridView.set(patch);\r\n gridView.trigger('columnChanged', { columnNames: validNames });\r\n\r\n // This is a workaround for the column alignment issue on IE & Edge\r\n // After redrawing the table with new column set, IE & Edge doesn't relayout\r\n // the table correctly. We need to reattach the table to DOM to force relayout\r\n gridView.once('didUpdate', () => {\r\n const elTable = gridView.$('table').get(-1);\r\n\r\n if (elTable) {\r\n elTable.parentElement.appendChild(elTable);\r\n }\r\n });\r\n\r\n return Promise.resolve();\r\n }\r\n\r\n const query = {\r\n project: 'CampaignUI',\r\n grid: config.name,\r\n };\r\n\r\n function getSelection() {\r\n return _.first(SelectedColumns.filter({ where: query }));\r\n }\r\n\r\n function getSelectedRecord() {\r\n return _.result(getSelection(), 'name', 'Custom');\r\n }\r\n\r\n function setSelectedRecord(name) {\r\n const selection = getSelection();\r\n\r\n if (selection) {\r\n return SelectedColumns.update(selection.id, { name });\r\n }\r\n\r\n return SelectedColumns.create(_.defaults({ name }, query));\r\n }\r\n\r\n function refreshMenu() {\r\n toolbarEditor.update({\r\n id: saveListId,\r\n items: _.reduce(Columns.filter({ where: query }), (memo, { name }) => {\r\n if (name !== 'Custom') {\r\n memo.push({\r\n text: name,\r\n value: name,\r\n });\r\n }\r\n return memo;\r\n }, [{\r\n text: 'Custom',\r\n value: 'Custom',\r\n locked: true,\r\n }]),\r\n value: getSelectedRecord(),\r\n });\r\n return Promise.resolve();\r\n }\r\n\r\n function getRecord(name) {\r\n return _.first(Columns.filter({\r\n where: _.defaults({ name }, query),\r\n }));\r\n }\r\n\r\n function setRecord(name, columns) {\r\n const record = getRecord(name);\r\n\r\n if (record) {\r\n return Columns.update(record.id, { columns });\r\n }\r\n\r\n return Columns.create(_.defaults({ columns, name }, query));\r\n }\r\n\r\n const legacyQuery = {};\r\n\r\n function legacyDataProcesser() {\r\n const promises = [];\r\n\r\n const legacySelected = LegacySelectedColumns.filter({ where: legacyQuery });\r\n const legacyRecords = LegacyColumns.filter({ where: legacyQuery });\r\n\r\n //deal with selected columnchooser preference in legacy grid\r\n if (legacySelected.length > 0) {\r\n promises.push(LegacySelectedColumns.destroy(_.first(legacySelected).id));\r\n }\r\n\r\n //deal with columnchooser preference in legacy grid\r\n _.each(legacyRecords, (legacyRecord) => {\r\n // this id(-1) means the record is from gridName_selected, this is not what we want here.\r\n // this is a hack to fix the issue that legacy grid save custom record as gridName_custom\r\n // which break the naming convention\r\n if (legacyRecord.id === -1) {\r\n return;\r\n }\r\n\r\n const record = getRecord(legacyRecord.name);\r\n\r\n if (record) {\r\n promises.push(LegacyColumns.destroy(legacyRecord.id));\r\n } else {\r\n const creation = Columns\r\n .create(_.defaults({\r\n columns: legacyRecord.columns,\r\n name: legacyRecord.name,\r\n }, query))\r\n .then(() => {\r\n return LegacyColumns.destroy(legacyRecord.id);\r\n });\r\n\r\n promises.push(creation);\r\n }\r\n });\r\n return Promise.all(promises);\r\n }\r\n\r\n function legacyHandler() {\r\n if (config.legacyGridName) {\r\n _.extend(legacyQuery, {\r\n project: 'CampaignUI',\r\n grid: config.legacyGridName,\r\n });\r\n\r\n return Promise.all([\r\n LegacyColumns.findAll({ where: legacyQuery }),\r\n LegacySelectedColumns.findAll({ where: legacyQuery }),\r\n ])\r\n .then(legacyDataProcesser);\r\n } else {\r\n return Promise.resolve();\r\n }\r\n }\r\n\r\n function applyRecord(name) {\r\n const promises = [];\r\n const record = getRecord(name);\r\n\r\n if (!record) {\r\n promises.push(setRecord(name, pluginConfig.selected));\r\n }\r\n\r\n if (name !== getSelectedColumns()) {\r\n promises.push(setSelectedRecord(name));\r\n }\r\n\r\n return Promise.all(promises)\r\n .then(() => setSelectedColumns(record ? record.columns : pluginConfig.selected)).thenReturn();\r\n }\r\n\r\n function removeRecord(name) {\r\n const promises = [];\r\n const record = getRecord(name);\r\n\r\n if (record) {\r\n promises.push(Columns.destroy(record.id));\r\n if (name === toolbarEditor.get(saveListId).value) {\r\n promises.push(applyRecord('Custom'));\r\n }\r\n }\r\n\r\n return Promise.all(promises).thenReturn();\r\n }\r\n\r\n function applyColumns(columns) {\r\n let name = 'Custom';\r\n\r\n if (columnChooser.enabledSaveColumns()) {\r\n name = columnChooser.getSavedName() || 'Custom';\r\n }\r\n\r\n columnPreferenceSaved = Promise.all([\r\n setRecord(name, columns),\r\n setSelectedRecord(name),\r\n ]).then(() => setSelectedColumns(columns)).then(refreshMenu);\r\n }\r\n\r\n function attemptRemoveRecord(name) {\r\n const modal = new Modal().render();\r\n\r\n modal.show({\r\n text: i18n.getString('ColumnsMenu_PromptBeforeRemove', name),\r\n primaryActionText: i18n.getString('Remove'),\r\n defaultActionText: i18n.getString('Cancel'),\r\n });\r\n\r\n modal.$el.on('close', () => {\r\n if (modal.isPrimarySelected()) {\r\n removeRecord(name).then(refreshMenu);\r\n }\r\n modal.remove();\r\n });\r\n }\r\n\r\n function setCustomColumnsRecord(recordId, customColumns) {\r\n const promises = [];\r\n\r\n if (recordId >= 0) {\r\n promises.push(CustomColumns.update(recordId, { customColumns }));\r\n } else {\r\n promises.push(CustomColumns.create(_.defaults({\r\n customColumns: [customColumns],\r\n },\r\n query\r\n )));\r\n }\r\n\r\n return Promise.all(promises).thenReturn();\r\n }\r\n\r\n function getCustomColumnsRecord() {\r\n return _.first(CustomColumns.filter({where: query}));\r\n }\r\n\r\n function addCustomColumnsRecord(values) {\r\n const record = getCustomColumnsRecord();\r\n\r\n if (record) {\r\n const customColumns = record.get('customColumns').concat(values);\r\n\r\n setCustomColumnsRecord(record.id, customColumns);\r\n } else {\r\n setCustomColumnsRecord(-1, values);\r\n }\r\n }\r\n\r\n function removeCustomColumnsRecord(id) {\r\n const record = getCustomColumnsRecord();\r\n\r\n if (record) {\r\n const customColumns = _.reject(record.get('customColumns'), (col) => {\r\n return id === col.id;\r\n });\r\n\r\n setCustomColumnsRecord(record.id, customColumns);\r\n }\r\n }\r\n\r\n function editCustomColumnsRecord(values) {\r\n const record = getCustomColumnsRecord();\r\n\r\n if (record) {\r\n const customColumns = _.reject(record.get('customColumns'), (col) => {\r\n return values.id === col.id;\r\n }).concat(values);\r\n\r\n\r\n setCustomColumnsRecord(record.id, customColumns);\r\n }\r\n }\r\n\r\n function makeCustomColumn(values) {\r\n return bingadsGridColumn({\r\n name: values.name,\r\n title: values.name,\r\n property: {\r\n get(account) {\r\n if (account.PerformanceMetrics) {\r\n return _.findWhere(account.PerformanceMetrics.CustomColumns, {Id: values.id}).Value;\r\n }\r\n return -1;\r\n },\r\n key: `PerformanceMetrics/CustomColumn${values.id}`,\r\n },\r\n sortable: false,\r\n type: 'number',\r\n format: values.format,\r\n helpId: `CustomColumn${values.id}HelpId`,\r\n });\r\n }\r\n\r\n function saveCustomColumn(settings) {\r\n //add new column to custom columns record\r\n (settings.isEdit ? editCustomColumnsRecord : addCustomColumnsRecord)(settings.values);\r\n\r\n //add option to column chooser view\r\n if (columnChooser) {\r\n if (settings.isEdit) {\r\n columnChooser.editOption('Custom Columns', settings.values);\r\n\r\n const column = _.find(pluginConfig.columns, (col) => {\r\n return !_.isUndefined(col.property) && _.isString(col.property.key) && s.endsWith(col.property.key, settings.values.id);\r\n });\r\n\r\n column.name = settings.values.name;\r\n column.title = settings.values.name;\r\n } else {\r\n columnChooser.addOption('Custom Columns', {\r\n name: settings.values.name,\r\n id: settings.values.id,\r\n });\r\n\r\n const col = [];\r\n\r\n col[settings.values.id] = makeCustomColumn(settings.values);\r\n\r\n _.extend(pluginConfig.columns, col);\r\n }\r\n }\r\n }\r\n\r\n function editCustomColumn(id) {\r\n const record = getCustomColumnsRecord();\r\n const columnInfo = _.findWhere(record.get('customColumns'), {id});\r\n\r\n if (columnChooser) {\r\n columnChooser.openCustomColumnModal(true, columnInfo);\r\n }\r\n }\r\n\r\n function removeCustomColumn(id) {\r\n removeCustomColumnsRecord(id);\r\n\r\n //remove option from column chooser view\r\n if (columnChooser) {\r\n columnChooser.removeOption('Custom Columns', id);\r\n }\r\n }\r\n\r\n function customColumnConfig() {\r\n const record = getCustomColumnsRecord();\r\n const category = { title: 'Custom Columns', columns: [] };\r\n const columns = [];\r\n\r\n if (record) {\r\n const customColumns = record.get('customColumns');\r\n\r\n _.map(customColumns, (columnDefinition) => {\r\n columns[columnDefinition.id] = makeCustomColumn(columnDefinition);\r\n });\r\n\r\n category.columns = _.map(customColumns, (values) => values.id);\r\n }\r\n\r\n return {category, columns};\r\n }\r\n\r\n function destroyColumnChooser() {\r\n if (columnChooser) {\r\n columnChooser.remove();\r\n columnChooser = null;\r\n }\r\n }\r\n\r\n function createColumnChooser() {\r\n if (columnChooser) {\r\n throw new Error('Duplicated column chooser creation');\r\n }\r\n\r\n const { columns, categories, locked, mandatory, customColumn } = pluginConfig;\r\n\r\n if (customColumn.enabled) {\r\n const customColumnConf = customColumnConfig();\r\n\r\n pluginConfig.categories.Custom = customColumnConf.category;\r\n _.extend(pluginConfig.columns, customColumnConf.columns);\r\n\r\n //gets name and title of column to pass to custom column view\r\n if (!customColumn.localizedAdded) {\r\n _.each(customColumn.metrics, (metric) => {\r\n metric.choices = _.map(metric.choices, (colName) => {\r\n return {\r\n name: colName,\r\n localizedTitle: _.findWhere(columns, {name: colName}).title,\r\n };\r\n });\r\n });\r\n\r\n _.each(customColumn.segmentation, (segment) => {\r\n segment.choices = _.map(segment.choices, (choice) => {\r\n return {\r\n name: choice,\r\n localizedTitle: localizeSegmentationValue({\r\n i18n: sharedComponentI18n,\r\n type: segment.name,\r\n value: choice,\r\n }),\r\n };\r\n });\r\n });\r\n customColumn.localizedAdded = true;\r\n }\r\n }\r\n\r\n const selected = getSelectedColumns();\r\n const indexSelected = arrayToIndex(selected);\r\n const indexLocked = arrayToIndex(locked);\r\n const indexMandatory = arrayToIndex(mandatory);\r\n const candidateColumns = _.reduce(categories, (memo, category) => {\r\n _.each(category.columns, (name) => {\r\n const column = columns[name];\r\n\r\n memo.push({\r\n id: name,\r\n name: column.title || column.name,\r\n category: category.title,\r\n selected: indexSelected[name],\r\n selectable: !indexLocked[name],\r\n mandatory: indexMandatory[name],\r\n });\r\n });\r\n return memo;\r\n }, []);\r\n\r\n columnChooser = new ColumnChooserView({\r\n saving: true,\r\n canSaveColumns: ({ name }) => {\r\n return new Promise((resolve) => {\r\n if (_.find(Columns.filter({ where: query }), _.matcher({ name }))) {\r\n const modal = new Modal().render();\r\n const nameExistText = i18n.get('Grid_ColumnChooser_ColumnSetNameAlreadyExists_New', { name });\r\n const replaceText = i18n.get('Grid_ColumnChooser_ReplaceColumnSetName');\r\n\r\n modal.show({\r\n html: `
${nameExistText}
${replaceText}
`,\r\n primaryActionText: i18n.get('Filters_Replace'),\r\n defaultActionText: i18n.get('Cancel'),\r\n });\r\n\r\n modal.$el.on('close', () => {\r\n if (modal.isPrimarySelected()) {\r\n resolve(true);\r\n } else {\r\n resolve(false);\r\n }\r\n });\r\n } else {\r\n resolve(true);\r\n }\r\n });\r\n },\r\n columns: candidateColumns,\r\n customColumn,\r\n }).render();\r\n\r\n columnChooser.setSelectedIds(selected);\r\n\r\n return columnChooser;\r\n }\r\n\r\n function showColumnChooser() {\r\n if (!columnChooser) {\r\n createColumnChooser();\r\n\r\n toolbarEditor.overrideWith(columnChooser);\r\n toolbar.gridToolbarGroup.hideAllToolbars();\r\n\r\n columnChooser.on('column-chooser.complete', () => {\r\n columnPreferenceSaved.then(() => {\r\n toolbarEditor.restoreToolbar();\r\n toolbar.gridToolbarGroup.showAllToolbars();\r\n columnChooser.hide();\r\n destroyColumnChooser();\r\n });\r\n });\r\n columnChooser.on('change:columns', applyColumns);\r\n columnChooser.on('column-chooser.custom-column-save', saveCustomColumn);\r\n columnChooser.on('column-chooser.custom-column-edit', editCustomColumn);\r\n columnChooser.on('column-chooser.custom-column-remove', removeCustomColumn);\r\n\r\n\r\n columnChooser.show();\r\n }\r\n }\r\n\r\n toolbarEditor.update({\r\n id: pluginConfig.dropdown,\r\n button: {\r\n text: i18n.get('Grid_SelectColumns'),\r\n iconLeft: columnChooserIcon,\r\n iconRight: arrowDownIcon,\r\n },\r\n menu: {\r\n items: [{\r\n text: i18n.get('Grid_ColumnChooser_Header_Title'),\r\n onClick: () => _.defer(showColumnChooser),\r\n }, {\r\n type: 'dropdown-divider',\r\n }, {\r\n type: 'dropdown-radio-group',\r\n id: saveListId,\r\n title: i18n.get('ColumnsMenu_ApplySavedColumns'),\r\n items: [],\r\n removeText: i18n.get('Remove'),\r\n onSelect: applyRecord,\r\n onRemove: attemptRemoveRecord,\r\n }],\r\n },\r\n });\r\n\r\n Promise.all([\r\n Columns.findAll({ where: query }),\r\n SelectedColumns.findAll({ where: query }),\r\n CustomColumns.findAll({where: query}),\r\n ])\r\n .then(legacyHandler)\r\n .then(getSelectedRecord)\r\n .then(applyRecord)\r\n .then(refreshMenu);\r\n\r\n return {\r\n remove() {\r\n destroyColumnChooser();\r\n },\r\n setSelectedColumns,\r\n };\r\n});\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!component/bingads-grid');\r\n\r\nexport default class ViewModel {\r\n constructor ({\r\n gridView,\r\n pagination,\r\n }) {\r\n this.gridView = gridView;\r\n this.pagination = pagination;\r\n\r\n this.allSelected = ko.observable(false);\r\n this.currentPageAllRowsSelected = ko.observable(false);\r\n this.shouldShowPlugin = ko.computed(() => {\r\n return this.currentPageAllRowsSelected();\r\n }, this);\r\n\r\n this.selectedRowsCount = 0;\r\n this.totalRowsTotalPageCount = ko.observable(0);\r\n\r\n this.gridView.on('didSelect', (selected) => {\r\n this.selectedRowsCount = _.size(selected);\r\n this.rowsDidUpdate();\r\n });\r\n\r\n this.gridView.on('willReload', () => {\r\n this.silentClearAllSelection();\r\n });\r\n\r\n this.pagination.on('change.complete:pagination', () => {\r\n if (this.allSelected()) {\r\n this.gridView.selectAll();\r\n } else {\r\n this.selectedRowsCount = 0;\r\n this.rowsDidUpdate();\r\n }\r\n });\r\n\r\n this.currentRowsSelectionText = ko.computed(() => {\r\n return i18n.get('Grid_CurrentRowsSelection').replace('{0}', this.pagination.pageSize );\r\n }, this);\r\n\r\n this.selectAllPagesText = ko.computed(() => {\r\n let allPagesRowsCount = this.totalRowsTotalPageCount();\r\n\r\n return i18n.get('Grid_SelectAllPages').replace('{0}', allPagesRowsCount);\r\n }, this);\r\n\r\n this.allRowsSelectedText = ko.computed(() => {\r\n let allPagesRowsCount = this.totalRowsTotalPageCount();\r\n\r\n return i18n.get('Grid_AllPagesSelected').replace('{0}', allPagesRowsCount);\r\n }, this);\r\n\r\n this.clearSelectedText = i18n.get('Grid_ClearSelection');\r\n }\r\n\r\n rowsDidUpdate () {\r\n this.totalRowsTotalPageCount(this.gridView.totalCountRows);\r\n\r\n // >= not ===. Feeling wired, right?\r\n // The reason is that if we change the page size to a smaller number we need to keep the all rows selected status\r\n // \"> 0\" for empty grid or not rendered cases\r\n if (\r\n this.pagination.pageSize > 0 &&\r\n this.selectedRowsCount >= this.pagination.pageSize\r\n ) {\r\n this.onAllRowsSelected();\r\n } else {\r\n this.onNotAllRowsSelected();\r\n }\r\n }\r\n\r\n onAllRowsSelected () {\r\n this.currentPageAllRowsSelected(true);\r\n }\r\n\r\n onNotAllRowsSelected () {\r\n this.currentPageAllRowsSelected(false);\r\n this.allSelected(false);\r\n }\r\n\r\n selectAll () {\r\n this.allSelected(true);\r\n }\r\n\r\n deselectAll () {\r\n this.silentClearAllSelection();\r\n this.gridView.deselectAll();\r\n this.allSelected(false);\r\n }\r\n\r\n silentClearAllSelection() {\r\n let selection = this.gridView.get('selection');\r\n\r\n this.gridView.set({\r\n selection: _.defaults({\r\n selected: [],\r\n }, selection),\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport Backbone from 'backbone';\r\nimport ViewModel from '@bingads-webui-component-legacy/bingads-grid/plugin/cross-page-select-all/viewmodel/index';\r\nimport template from '@bingads-webui-component-legacy/bingads-grid/plugin/cross-page-select-all/template/index.pug';\r\n\r\nexport default class View extends Backbone.View {\r\n initialize (options = {}) {\r\n this.options = options;\r\n this.viewModel = new ViewModel({\r\n gridView: this.options.gridView,\r\n pagination: this.options.pagination,\r\n });\r\n\r\n this.viewModel.allSelected.subscribe(() => {\r\n this.options.gridView.trigger('didSelect', this.options.gridView.selectedKeys());\r\n });\r\n }\r\n\r\n get events () {\r\n return {\r\n 'click a.select-all-cross-page': 'selectAll',\r\n 'click a.deselect-all-cross-page': 'deselectAll',\r\n };\r\n }\r\n\r\n render () {\r\n this.$el.empty().append(template());\r\n\r\n // async bindings - wait all the attach/detach to be finished. The bindings does not work when there are dom detaching and retattaching.\r\n _.defer(() => {\r\n ko.applyBindings(this.viewModel, this.el);\r\n });\r\n\r\n return this;\r\n }\r\n\r\n selectAll () {\r\n this.viewModel.selectAll();\r\n }\r\n\r\n deselectAll () {\r\n this.viewModel.deselectAll();\r\n }\r\n\r\n get isAllSelected() {\r\n return this.viewModel.allSelected();\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport View from '@bingads-webui-component-legacy/bingads-grid/plugin/cross-page-select-all/view/index';\r\n\r\nconst CROSS_PAGE_SELECT_ALL_TYPE = 'cross-page-select-all-row';\r\n\r\nexport function crossPageSelectHeadRow() {\r\n return { type: CROSS_PAGE_SELECT_ALL_TYPE };\r\n}\r\n\r\nexport const crossPageSelectAllPlugin = (definePlugin) => definePlugin('crossPageSelectAll',\r\n ['gridView', 'pagination'],\r\n (gridView, pagination) => {\r\n const view = new View({\r\n gridView,\r\n pagination,\r\n }).render();\r\n\r\n gridView.setHeadRows((rows) => _.map(rows, (row) => {\r\n return _.result(row, 'type') === CROSS_PAGE_SELECT_ALL_TYPE ? _.defaults({\r\n view,\r\n classes: ['grid-cross-page-select-all'],\r\n }, row) : row;\r\n }));\r\n\r\n return view;\r\n }\r\n);\r\n","import _ from 'underscore';\r\nimport pgrid from '@bingads-webui-component-legacy/github/modules/projection-grid/module/projection-grid';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nconst { version } = pgrid;\r\n// Only log the navigation timing info for first grid data load for Grid performance measurement\r\n// during page load.\r\nlet isInitialGridDataLoad = true;\r\n\r\nfunction logMessage(api, instrumentation, message) {\r\n instrumentation.writeRawLog({logCategory: 'ClientPerf',\r\n api,\r\n message: _.isObject(message) ? JSON.stringify(message) : message,\r\n entryType: 'Message'});\r\n}\r\n\r\nfunction logPerformanceInfo({\r\n name,\r\n gridView,\r\n virtualized,\r\n logNavTiming = false,\r\n track,\r\n instrumentation,\r\n}) {\r\n const timeStarted = performance.now();\r\n const activeTimeBeforeStarted = _.result(performance, 'activeTime', NaN);\r\n const { id } = track;\r\n\r\n gridView.once('didReload', (isSuccess) => {\r\n if (isSuccess && id === track.id) {\r\n const timeFetched = performance.now();\r\n const activeTimeBeforeFetched = _.result(performance, 'activeTime', NaN);\r\n\r\n gridView.once('didRedraw', () => {\r\n if (id === track.id) {\r\n // In case the document is hidden, the redraw could be delayed by browser optimization.\r\n // Drop the log in this case.\r\n const timeRendered = performance.now();\r\n const activeTimeBeforeRendered = _.result(performance, 'activeTime', NaN);\r\n\r\n let landingPageUrl = config.get('LandingPageUrl') || '';\r\n\r\n logMessage(name, instrumentation, JSON.stringify(_.defaults({\r\n Version: `projection-grid@${version}`,\r\n GridName: name,\r\n IsVirtualized: virtualized,\r\n TotalRows: gridView.countRows,\r\n TotalServerSideRows: gridView.totalCountRows,\r\n // For the visible rows, do not count the tr.top-filler and tr.bottom-filler\r\n TotalVisibleRows: gridView.$('tbody > tr:visible').length - 2,\r\n TotalColumns: gridView.$('table').last().find('colgroup > col').length,\r\n DataFetchStartTime: timeStarted,\r\n DataFetchStartActiveTime: activeTimeBeforeStarted,\r\n DataFetchingTime: timeFetched - timeStarted,\r\n DataFetchingActiveTime: activeTimeBeforeFetched - activeTimeBeforeStarted,\r\n GridRenderingTime: timeRendered - timeFetched,\r\n GridRenderingActiveTime: activeTimeBeforeRendered - activeTimeBeforeFetched,\r\n }, logNavTiming ? { // Add navigation timing info to indicate this is first Grid load\r\n PageNavStartTime: performance.timing.navigationStart,\r\n PageFetchStartTime: performance.timing.fetchStart,\r\n LandingPageUrl: landingPageUrl,\r\n } : {})));\r\n }\r\n });\r\n }\r\n });\r\n}\r\n\r\nexport const newPerformanceLogPlugin = (definePlugin) => definePlugin('performanceLogNew', [\r\n 'config',\r\n 'gridView',\r\n], ({\r\n scrolling: { virtualized = false } = {},\r\n name,\r\n plugins: { performanceLogNew: { instrumentation = {} } = {} } = {},\r\n}, gridView) => {\r\n const track = {};\r\n\r\n gridView.on('willReload', () => {\r\n track.id = _.uniqueId('log-track-');\r\n\r\n logPerformanceInfo({\r\n name,\r\n virtualized,\r\n gridView,\r\n logNavTiming: isInitialGridDataLoad,\r\n track,\r\n instrumentation,\r\n });\r\n\r\n isInitialGridDataLoad = false;\r\n });\r\n});\r\n","import _ from 'underscore';\r\nimport uiBlocker from '@bingads-webui-component-legacy/uiblocker/service/uiBlocker';\r\n\r\nexport default (definePlugin) =>\r\n definePlugin('uiBlocker', ['config', 'gridView'], (config, gridView) => {\r\n let el = _.chain(config)\r\n .result('plugins')\r\n .result('uiBlocker')\r\n .result('el', gridView.el)\r\n .value();\r\n let uiBlockerToken = null;\r\n\r\n gridView.on('willReload', () => {\r\n if (uiBlockerToken) {\r\n uiBlocker.unblock(el, uiBlockerToken);\r\n }\r\n uiBlockerToken = uiBlocker.block(el);\r\n });\r\n\r\n gridView.on('didReload', () => {\r\n if (uiBlockerToken) {\r\n uiBlocker.unblock(el, uiBlockerToken);\r\n uiBlockerToken = null;\r\n }\r\n });\r\n });\r\n\r\n","import config from '@bingads-webui-component-legacy/config/index';\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport { PreferencesSubadapter } from '@bingads-webui-component-legacy/bingads-grid/service/preference-subadapter';\r\nimport { store, adapter } from '@bingads-webui-component-legacy/bingads-grid/service/grid-preferences';\r\n\r\nexport const CustomUserInfos = store.defineResource('CustomUserInfos');\r\n\r\nadapter.registerSubadapter('CustomUserInfos', new PreferencesSubadapter({\r\n Resource: CustomUserInfos,\r\n prefix({\r\n where: {\r\n project = 'CampaignUI',\r\n } = {},\r\n } = {}) {\r\n if (!project) {\r\n throw new Error('Invalid where clause');\r\n }\r\n return `WebApp.${project}.CustomUserInfos`;\r\n },\r\n serialize(attrs) {\r\n const { id, project, customUserInfos} = attrs;\r\n\r\n if (typeof project !== 'string' || !_.isObject(customUserInfos)) {\r\n throw new Error('Invalid attributes');\r\n }\r\n return {\r\n Id: id,\r\n Name: `WebApp.${project}.CustomUserInfos`,\r\n Data: customUserInfos,\r\n Type: 'object',\r\n Version: 1,\r\n };\r\n },\r\n deserialize(data) {\r\n const match = data.Name.match(/^WebApp\\.(\\w+)\\.CustomUserInfos$/);\r\n\r\n if (!match) {\r\n throw new Error('Invalid preference name');\r\n }\r\n const [project] = match.slice(1);\r\n const customUserInfos = data.Data;\r\n const id = data.Id;\r\n\r\n return { id, project, customUserInfos };\r\n },\r\n}));\r\n\r\nfunction getRecord(project) {\r\n return _.first(CustomUserInfos.filter({\r\n where: _.defaults({ project }),\r\n }));\r\n}\r\n\r\nexport function setCustomUserInfos(item, project = 'CampaignUI') {\r\n const record = getRecord(project);\r\n const customUserInfos = _.result(record, 'customUserInfos');\r\n const newCustomUserInfos = customUserInfos ? _.extend(customUserInfos, item) : item;\r\n\r\n if (record) {\r\n return CustomUserInfos.update(record.id, { customUserInfos: newCustomUserInfos });\r\n }\r\n return CustomUserInfos.create({ customUserInfos: newCustomUserInfos, project }, {\r\n path: config.get('odata.path'),\r\n });\r\n}\r\nexport function getCustomUserInfos(project = 'CampaignUI') {\r\n return CustomUserInfos.findAll({\r\n where: { project },\r\n }).then((record) => {\r\n return Promise.resolve(record.length ? _.result(record[0], 'customUserInfos') : _.noop());\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport { PreferencesSubadapter } from '@bingads-webui-component-legacy/bingads-grid/service/preference-subadapter';\r\nimport { store, adapter } from '@bingads-webui-component-legacy/bingads-grid/service/grid-preferences';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nexport const DateFilters = store.defineResource('DateFilters');\r\n\r\nadapter.registerSubadapter('DateFilters', new PreferencesSubadapter({\r\n Resource: DateFilters,\r\n prefix({\r\n where: {\r\n project = 'CampaignUI',\r\n grid = null,\r\n } = {},\r\n } = {}) {\r\n if (_.some([project, grid], _.negate(_.isString))) {\r\n throw new Error('Invalid where clause');\r\n }\r\n return `WebApp.${project}.DateFilters.${grid}`;\r\n },\r\n serialize(attrs) {\r\n const { id, project, grid, dateFilters} = attrs;\r\n\r\n if (_.some([project, grid], _.negate(_.isString)) || !_.isObject(dateFilters)) {\r\n throw new Error('Invalid attributes');\r\n }\r\n return {\r\n Id: id,\r\n Name: `WebApp.${project}.DateFilters.${grid}`,\r\n Data: dateFilters,\r\n Type: 'object',\r\n Version: 1,\r\n };\r\n },\r\n deserialize(data) {\r\n const match = data.Name.match(/^WebApp\\.(\\w+)\\.DateFilters\\.(\\w+)$/);\r\n\r\n if (!match) {\r\n throw new Error('Invalid preference name');\r\n }\r\n const [project, grid] = match.slice(1);\r\n const dateFilters = data.Data;\r\n const id = data.Id;\r\n\r\n return { id, project, grid, dateFilters };\r\n },\r\n}));\r\n\r\nconst defaultQuery = {\r\n grid: 'grid',\r\n};\r\n\r\nexport function getDateFilter(project) {\r\n return _.first(DateFilters.filter({\r\n where: _.defaults({ project }, defaultQuery),\r\n }));\r\n}\r\nexport function setDateFilter(project, dateFilters) {\r\n const record = getDateFilter(project);\r\n\r\n if (record) {\r\n return DateFilters.update(record.id, { dateFilters });\r\n }\r\n return DateFilters.create(_.defaults({ dateFilters, project }, defaultQuery), {\r\n path: config.get('odata.path'),\r\n });\r\n}\r\nexport function getDateFilterPreference(project) {\r\n return DateFilters.findAll({\r\n where: _.defaults({ project }, defaultQuery),\r\n });\r\n}\r\n","/**\r\n * @file event helper function.\r\n */\r\n\r\n/**\r\n * Return whether event is not simple left mouse click event.\r\n *\r\n * @param {Object} event - the event object\r\n *\r\n * @return {bool} whether it's not a simple left mouse click event\r\n */\r\nexport const isNotSimpleLeftMouseClickEvent = function isNotSimpleLeftMouseClickEvent(event) {\r\n return event && (event.button !== 0 || event.ctrlKey || event.shiftKey || event.altKey || event.metaKey);\r\n};\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport { focusLockInstanceDecorator } from '@bingads-webui/focus-lock-decorator';\r\nimport Backbone from 'backbone';\r\n\r\nconst editorClass = 'grid-popupeditor';\r\n\r\nfunction getPosition(cellPosition, $editor, isRTL, renderBelow) {\r\n const cTop = cellPosition.top;\r\n const cLeft = cellPosition.left;\r\n // scrollTop takes into account a scrolled page\r\n const $cell = $(document.elementFromPoint(cLeft, cTop - $(document).scrollTop())).closest('td');\r\n let left;\r\n let top = cTop;\r\n\r\n if (isRTL) {\r\n left = cLeft - $editor.width() + $cell.width() - 20;\r\n } else {\r\n left = cLeft - 10;\r\n\r\n const widthDiff = cLeft + $editor.outerWidth() - document.body.clientWidth;\r\n\r\n // adjust right edge if it extend past the grid's viewport\r\n if (widthDiff > 0) {\r\n left -= widthDiff;\r\n }\r\n }\r\n\r\n if (renderBelow) {\r\n // render below the content (assumes equal top/bottom padding)\r\n const height = $cell.children().length > 0 ? $cell.children().height() : $cell.height();\r\n let padding = ($cell.outerHeight() - height) / 2;\r\n\r\n // add offset of 5\r\n top += $cell.outerHeight() - padding + 2;\r\n } else {\r\n top -= 10;\r\n }\r\n\r\n return {\r\n top,\r\n left,\r\n };\r\n}\r\n\r\nexport default class View extends Backbone.View {\r\n get attributes() {\r\n return {\r\n 'role': 'dialog',\r\n };\r\n }\r\n\r\n constructor(options) {\r\n options.className = options.className || editorClass;\r\n\r\n super(options);\r\n }\r\n\r\n initialize(options) {\r\n this.editorView = options.editorView;\r\n this.cellPosition = options.cellPosition;\r\n this.renderBelow = options.renderBelow;\r\n this.dismiss = () => {\r\n this.trigger('close');\r\n this.remove();\r\n };\r\n const FocusLockEditorView = focusLockInstanceDecorator(this.editorView, {\r\n onExist: this.dismiss.bind(this),\r\n lockRegionAriaLabel: options.lockRegionAriaLabel,\r\n }, {\r\n managed: true,\r\n });\r\n\r\n this.focusLockEditorView = new FocusLockEditorView();\r\n\r\n this.clickToDismiss = (event) => {\r\n if ($(event.target).closest(`.${this.className.replace(' ', '.')}`).length === 0) {\r\n if (options.noDismiss) {\r\n return;\r\n }\r\n this.dismiss();\r\n }\r\n };\r\n }\r\n\r\n render() {\r\n this.$el.html(this.focusLockEditorView.render().el);\r\n\r\n this.editorView.on('close', (update) => {\r\n this.trigger('close', update);\r\n this.remove();\r\n });\r\n\r\n // position calculation need to be after the element appended to DOM, so defer it\r\n _.defer(() => {\r\n this.$el.css(getPosition(this.cellPosition, this.$el, config.CultureIsRTL, this.renderBelow));\r\n\r\n if (_.isFunction(this.editorView.setFocus)) {\r\n this.editorView.setFocus();\r\n } else if (this.editorView.$el) {\r\n this.editorView.$el.focus();\r\n }\r\n\r\n $(window).on('click', this.clickToDismiss);\r\n });\r\n\r\n $('body').append(this.el);\r\n\r\n return this;\r\n }\r\n\r\n remove() {\r\n this.focusLockEditorView.remove();\r\n this.editorView.remove();\r\n $(window).off('click', this.clickToDismiss);\r\n super.remove();\r\n }\r\n}\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport buttonTmpl from '@bingads-webui-component-legacy/grid-toolbar/template/button.pug';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!component/grid-toolbar');\r\nvar Button = Backbone.View.extend({\r\n className: 'grid-menu-container',\r\n events: {\r\n 'click': '_onClick'\r\n },\r\n initialize: function (options) {\r\n this.options = _.defaults(options || ({}), {\r\n text: '',\r\n leftIconClass: null,\r\n i18n: i18n,\r\n isNewFeature: false,\r\n isAvailable: true\r\n });\r\n },\r\n _onClick: function (event) {\r\n if (this.options.isAvailable === false) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n this.trigger('click', this);\r\n },\r\n isDisabled: function () {\r\n return this.$el.hasClass('disabled');\r\n },\r\n disable: function () {\r\n this.$el.addClass('disabled');\r\n this.$el.attr('aria-disabled', 'true');\r\n var buttonEl = this.$el.find('input.grid-menu');\r\n if (buttonEl.length) {\r\n buttonEl.attr('aria-disabled', 'true');\r\n }\r\n },\r\n enable: function () {\r\n this.$el.removeClass('disabled');\r\n this.$el.attr('aria-disabled', 'false');\r\n var buttonEl = this.$el.find('input.grid-menu');\r\n if (buttonEl.length) {\r\n buttonEl.attr('aria-disabled', 'false');\r\n }\r\n },\r\n render: function () {\r\n this.$el.html(buttonTmpl(this.options));\r\n if (this.options.isAvailable === false) {\r\n this.disable();\r\n }\r\n return this;\r\n }\r\n});\r\nexport default Button;\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport MenuItem from '@bingads-webui-component-legacy/grid-toolbar/menuItem';\r\nimport menuItem from '@bingads-webui-component-legacy/grid-toolbar/template/buttonMenuItem.pug';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!component/grid-toolbar');\r\nvar ButtonMenuItem = MenuItem.extend({\r\n attributes: {\r\n role: 'presentation'\r\n },\r\n events: {\r\n 'click': '_onClick'\r\n },\r\n initialize: function (options) {\r\n this.text = options.text;\r\n this.options = _.defaults(options || ({}), {\r\n text: '',\r\n linkText: '',\r\n i18n: i18n,\r\n isNewFeature: false,\r\n isAvailable: true\r\n });\r\n },\r\n setText: function (text) {\r\n this.text = text;\r\n if (this.options.linkText != null) {\r\n this.$el.find('.primary').text(text);\r\n } else {\r\n this.$el.find('.anchor').text(text);\r\n }\r\n },\r\n getText: function () {\r\n return this.text;\r\n },\r\n disable: function () {\r\n this.$('.anchor').addClass('disabled');\r\n },\r\n enable: function () {\r\n this.$('.anchor').removeClass('disabled');\r\n },\r\n setLinkText: function (text) {\r\n this.$el.find('.secondary').text(text);\r\n },\r\n _onClick: function (event) {\r\n if (this.options.isAvailable === false) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n if ($(event.target).hasClass('secondary')) {\r\n this.trigger('click:link', this);\r\n } else {\r\n this.trigger('click', this);\r\n }\r\n },\r\n render: function () {\r\n this.$el.html(menuItem(this.options));\r\n if (this.options.isAvailable === false) {\r\n this.disable();\r\n }\r\n return this;\r\n }\r\n});\r\nexport default ButtonMenuItem;\r\n\r\n","/* eslint-disable */\r\nimport MenuItem from '@bingads-webui-component-legacy/grid-toolbar/menuItem';\r\nvar DividerMenuItem = MenuItem.extend({\r\n className: 'divider',\r\n attributes: {\r\n role: 'presentation'\r\n }\r\n});\r\nexport default DividerMenuItem;\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport buttonTmpl from '@bingads-webui-component-legacy/grid-toolbar/template/dropdown.pug';\r\nimport 'bootstrap';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!component/grid-toolbar');\r\nvar Dropdown = Backbone.View.extend({\r\n className: 'grid-groupmenu-container dropdown',\r\n initialize: function (options) {\r\n this.options = _.defaults(options || ({}), {\r\n isFirstItem: false,\r\n isShowRightIcon: true,\r\n menuItems: [],\r\n i18n: i18n,\r\n isNewFeature: false,\r\n menuClassNames: []\r\n });\r\n this.menuItems = this.options.menuItems.slice(0);\r\n _.each(this.menuItems, this._initMenuItem.bind(this));\r\n },\r\n getMenuItem: function (index) {\r\n return this.menuItems[index];\r\n },\r\n getMenuItems: function () {\r\n return this.menuItems;\r\n },\r\n pushMenuItem: function (item) {\r\n this.menuItems.push(item);\r\n this._initMenuItem(item);\r\n this._renderMenuItem(item);\r\n },\r\n pushMenuItems: function (items) {\r\n if (!_.isArray(items)) {\r\n items = [items];\r\n }\r\n _.each(items, this.pushMenuItem, this);\r\n },\r\n removeMenuItem: function (item) {\r\n if (item.getGroup) {\r\n return this.removeRadioItem(item);\r\n }\r\n var index = this.menuItems.indexOf(item);\r\n if (index !== -1) {\r\n this.menuItems.splice(index, 1);\r\n }\r\n item.isGroup ? item.remove() : item.$el.remove();\r\n },\r\n removeMenuItems: function (items) {\r\n if (!_.isArray(items)) items = [items];\r\n _.each(items, this.removeMenuItem, this);\r\n },\r\n removeRadioItem: function (item) {\r\n var groupItem = item.getGroup && item.getGroup();\r\n groupItem && groupItem.removeItem(item);\r\n },\r\n _applyItemEvents: function (item) {\r\n item.on('click', function (item) {\r\n this.trigger('click:item', this, item);\r\n }, this);\r\n item.on('click:link', function (item) {\r\n this.trigger('click:link', this, item);\r\n }, this);\r\n },\r\n _initMenuItem: function (item) {\r\n if (item.isGroup) {\r\n _.each(item.items, this._applyItemEvents, this);\r\n } else {\r\n this._applyItemEvents(item);\r\n }\r\n },\r\n _renderMenuItem: function (item) {\r\n this.$itemList && this.$itemList.append(item.render().$el);\r\n },\r\n disable: function () {\r\n this.$('.dropdown-toggle').addClass('disabled');\r\n },\r\n enable: function () {\r\n this.$('.dropdown-toggle').removeClass('disabled');\r\n },\r\n render: function () {\r\n this.$el.html(buttonTmpl(this.options));\r\n if (this.options.isAvailable === false) {\r\n this.disable();\r\n }\r\n this.$itemList = this.$el.children('.dropdown-menu');\r\n _.each(this.menuItems, this._renderMenuItem, this);\r\n return this;\r\n }\r\n});\r\nexport default Dropdown;\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport toolbarTemplate from '@bingads-webui-component-legacy/grid-toolbar/template/toolbar.pug';\r\nvar GridToolbar = Backbone.View.extend({\r\n className: 'grid-toolbar',\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n this.items = this.options.items || [];\r\n },\r\n appendItems: function (items) {\r\n this.items = this.items.concat(items);\r\n this.container && this.renderItems(items);\r\n },\r\n showToolbar: function () {\r\n this.$('.grid-toolbar-container').show();\r\n },\r\n hideToolbar: function () {\r\n this.$('.grid-toolbar-container').hide();\r\n },\r\n expand: function (el) {\r\n this.$('.grid-toolbar-expand').append(el);\r\n },\r\n renderItems: function (items) {\r\n var count = items.length;\r\n _.each(items, function (item, index) {\r\n item.options.isFirstItem = index === 0;\r\n item.options.setSize = count;\r\n item.options.posInSet = index + 1;\r\n this.container.append(item.render().$el);\r\n }, this);\r\n },\r\n setMenuTitle: function (title) {\r\n if (_.isObject(title) && title.text && title.pos) {\r\n this.$('.grid-menu:eq(' + title.pos + ')') && this.$('.grid-menu:eq(' + title.pos + ')').text(title.text);\r\n } else {\r\n this.$('.grid-menu').text(title.toString());\r\n }\r\n },\r\n render: function () {\r\n this.$el.html(toolbarTemplate());\r\n this.container = this.$('.grid-toolbar-container');\r\n this.renderItems(this.items);\r\n return this;\r\n }\r\n});\r\nexport default GridToolbar;\r\n\r\n","/* eslint-disable */\r\nimport MenuItem from '@bingads-webui-component-legacy/grid-toolbar/menuItem';\r\nvar HeaderMenuItem = MenuItem.extend({\r\n tagName: 'li',\r\n className: 'dropdown-header',\r\n attributes: {\r\n role: 'presentation'\r\n },\r\n render: function () {\r\n var text = this.options ? this.options.text : '';\r\n this.$el.text(text);\r\n return this;\r\n }\r\n});\r\nexport default HeaderMenuItem;\r\n\r\n","/* eslint-disable */\r\nimport Backbone from 'backbone';\r\nvar MenuItem = Backbone.View.extend({\r\n tagName: 'li'\r\n});\r\nexport default MenuItem;\r\n\r\n","/* eslint-disable */\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!component/humanize');\r\nvar formatFileSize = function (fileSize) {\r\n var key = 'File_Size_Unit_B';\r\n var locale = config.get('culture') || 'en-US';\r\n if (fileSize >= 1 << 30) {\r\n fileSize = fileSize >> 30;\r\n key = 'File_Size_Unit_GB';\r\n } else if (fileSize >= 1 << 20) {\r\n fileSize = fileSize >> 20;\r\n key = 'File_Size_Unit_MB';\r\n } else if (fileSize >= 1 << 10) {\r\n fileSize = fileSize >> 10;\r\n key = 'File_Size_Unit_KB';\r\n }\r\n var fileSizeString = fileSize.toLocaleString(locale);\r\n return i18n.get(key, {\r\n fileSize: fileSizeString\r\n });\r\n};\r\nexport default {\r\n fileSize: formatFileSize\r\n};\r\n\r\n","class DelegateAdapter {\r\n\r\n constructor(targetName) {\r\n this.targetName = targetName;\r\n }\r\n\r\n // All of the methods shown here must return a promise\r\n\r\n // \"definition\" is a resource definition 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 create(definition, attrs, options) {\r\n // Must resolve the promise with the created item\r\n return definition.getAdapter(this.targetName).create(definition, attrs, options);\r\n }\r\n\r\n find(definition, id, options) {\r\n // Must resolve the promise with the found item\r\n return definition.getAdapter(this.targetName).find(definition, id, options);\r\n }\r\n\r\n findAll(definition, params, options) {\r\n // Must resolve the promise with the found items\r\n return definition.getAdapter(this.targetName).findAll(definition, params, options);\r\n }\r\n\r\n update(definition, id, attrs, options) {\r\n // Must return a promise that resolves with the updated item\r\n return definition.getAdapter(this.targetName).update(definition, id, attrs, options);\r\n }\r\n\r\n updateAll(definition, attrs, params, options) {\r\n // Must resolve the promise with the updated items\r\n return definition.getAdapter(this.targetName).updateAll(definition, attrs, params, options);\r\n }\r\n\r\n destroy(definition, id, options) {\r\n // Must return a promise\r\n return definition.getAdapter(this.targetName).destroy(definition, id, options);\r\n }\r\n\r\n destroyAll(definition, params, options) {\r\n // Must return a promise\r\n return definition.getAdapter(this.targetName).destroyAll(definition, params, options);\r\n }\r\n}\r\n\r\nexport default DelegateAdapter;\r\n","import Backbone from 'backbone';\r\nimport _ from 'underscore';\r\n\r\nexport default class MutableModel {\r\n /**\r\n * constructor\r\n * @param {Array} options.mutables See the examples below\r\n * @param {Object} options.model The initial values\r\n */\r\n\r\n /**\r\n * Example mutables\r\n *{\r\n Name: {},\r\n Language: {},\r\n Medium: {},\r\n NativeBidAdjustment: {},\r\n TrackingUrlTemplate: {},\r\n UrlCustomParameters: {\r\n hasChanges: (value) => {\r\n if (_.isEmpty(value) && _.isEmpty(memo('UrlCustomParameters'))) {\r\n return false;\r\n }\r\n\r\n return !_.isEqual(value, memo('UrlCustomParameters'));\r\n },\r\n },\r\n AdRotation: {\r\n hasChanges: (value) => {\r\n if (memo('AdRotation')) {\r\n return value !== memo('AdRotation').RotationType;\r\n }\r\n return true;\r\n },\r\n },\r\n AdDistribution: {},\r\n SearchBid: {\r\n hasChanges: (value) => {\r\n return decimal.fromLocalToFloat(value) !== memo('SearchBid');\r\n },\r\n },\r\n }\r\n */\r\n constructor({\r\n mutables = [],\r\n model = {},\r\n } = {}) {\r\n this.mutables = mutables;\r\n this.memo = model;\r\n this.model = new Backbone.Model();\r\n this.model.set(model);\r\n this.keys = _.keys(model);\r\n\r\n _.each(this.mutables, (mutable, key) => {\r\n _.defaults(mutable, {\r\n hasChanges: (value) => {\r\n return !_.isEqual(this.memo[key], value);\r\n },\r\n });\r\n });\r\n }\r\n\r\n get(...args) {\r\n return this.model.get(...args);\r\n }\r\n\r\n set(...args) {\r\n if (_.isObject(args[0])) {\r\n this.addKeys(_.keys(args[0]));\r\n } else if (_.isString(args[0])) {\r\n this.addKeys(args[0]);\r\n }\r\n\r\n return this.model.set(...args);\r\n }\r\n\r\n setKeys(keys) {\r\n if (_.isArray(keys)) {\r\n this.keys = keys;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n addKeys(keys) {\r\n let toAdd = [];\r\n\r\n if (_.isString(keys)) {\r\n toAdd = [keys];\r\n } else if (_.isArray(keys)) {\r\n toAdd = keys;\r\n }\r\n\r\n this.keys = _.union(this.keys, toAdd);\r\n\r\n }\r\n\r\n /**\r\n * getIncremental\r\n * @param {array} keys: specified which fields should be covered. If not specified will let this.keys to decide it\r\n * @return {object} all the incremental fields\r\n */\r\n getIncremental(keys) {\r\n const curKeys = _.isArray(keys) && !_.isEmpty(keys) ? keys : this.keys;\r\n\r\n if (this.model) {\r\n let ret = {};\r\n\r\n _.each(curKeys, (key) => {\r\n const curMutable = this.mutables[key];\r\n const curVal = this.model.get(key);\r\n\r\n if (!curMutable || curMutable.hasChanges(curVal)) {\r\n ret[key] = curVal;\r\n }\r\n });\r\n\r\n return ret;\r\n }\r\n\r\n return {};\r\n }\r\n}\r\n","import { capitalize } from '@bingads-webui-component-legacy/string/index';\r\nimport { get } from '@bingads-webui-universal/primitive-utilities';\r\n\r\n\r\nfunction getEnum(i18n, enumType, enumItem) {\r\n return i18n.get(`Schema_Enum_${capitalize(enumType.toString())}_${capitalize(enumItem.toString())}`);\r\n}\r\n\r\nfunction getEnumDescription(i18n, enumType, enumItem) {\r\n return i18n.get(`Schema_Enum_${capitalize(enumType.toString())}_${capitalize(enumItem.toString())}_Description`);\r\n}\r\n\r\nfunction toSchema(schemaOrType = {}) {\r\n if (typeof schemaOrType === 'string') {\r\n return {\r\n name: schemaOrType,\r\n };\r\n }\r\n\r\n if (!schemaOrType.name) {\r\n throw new TypeError(`The schema should have \"name\" property, but is ${JSON.stringify(schemaOrType)}`);\r\n }\r\n\r\n return schemaOrType;\r\n}\r\n\r\nfunction toArray(stringOrArray) {\r\n return Array.isArray(stringOrArray) ? stringOrArray : [stringOrArray];\r\n}\r\n\r\nfunction getType(i18n, schemaOrType) {\r\n return i18n.get(`Schema_${toSchema(schemaOrType).name}`);\r\n}\r\n\r\nfunction getPropertySchema(schema, property) {\r\n const standardPropertySchema = get(schema, ['properties', property]);\r\n\r\n if (standardPropertySchema) {\r\n return standardPropertySchema.schema ?\r\n standardPropertySchema.schema : // for our non-standard schema format\r\n standardPropertySchema;\r\n }\r\n return {\r\n name: property, // most non-primitive property has same name with it's type\r\n };\r\n}\r\n\r\n// For Campaign.PerformanceMetrics.Clicks\r\n// it would use i18n key first exists in following list\r\n// Schema_Campaign_Property_PerformanceMetrics.Clicks\r\n// Schema_PerformanceMetrics_Property_Clicks\r\n// Schema_Clicks\r\nfunction getProperty(i18n, schemaOrType, property) {\r\n const schema = toSchema(schemaOrType);\r\n const arrProperty = toArray(property);\r\n\r\n const exact = i18n.get(`Schema_${schema.name}_Property_${arrProperty.join('.')}`);\r\n\r\n if (exact) {\r\n return exact;\r\n }\r\n\r\n const topLevelPropertySchema = getPropertySchema(schema, arrProperty[0]);\r\n\r\n return arrProperty.length > 1 ?\r\n getProperty(i18n, topLevelPropertySchema, arrProperty.slice(1)) :\r\n getType(i18n, topLevelPropertySchema);\r\n}\r\n\r\nfunction getValue(i18n, schemaOrType, property, value) {\r\n const schema = toSchema(schemaOrType);\r\n\r\n return i18n.get(`Schema_${schema.name}_Property_${property}_Value_${capitalize(value.toString())}`) ||\r\n getEnum(i18n, get(schema, ['properties', property, 'enumType']) || property, value) || // most enum property has same name with it's type\r\n String(value); // default to value itself, useful for already-localized value or no-need-to-localize value\r\n}\r\n\r\nfunction getValueDescription(i18n, schemaOrType, property, value) {\r\n const schema = toSchema(schemaOrType);\r\n\r\n return i18n.get(`Schema_${schema.name}_Property_${property}_Value_${capitalize(value.toString())}_Description`) ||\r\n getEnumDescription(i18n, get(schema, ['properties', property, 'enumType']) || property, value) || // most enum property has same name with it's type\r\n String(value); // default to value itself, useful for already-localized value or no-need-to-localize value\r\n}\r\n\r\nexport function constructSchemaI18n({ _, i18n }) {\r\n return {\r\n type: _.partial(getType, i18n),\r\n property: _.partial(getProperty, i18n),\r\n value: _.partial(getValue, i18n),\r\n enum: _.partial(getEnum, i18n),\r\n // deprecated\r\n enumMappedString: _.partial(getEnum, i18n),\r\n\r\n valueDescription: _.partial(getValueDescription, i18n),\r\n enumDescription: _.partial(getEnumDescription, i18n),\r\n };\r\n}\r\n\r\nexport function load(name, req, onload, config) {\r\n if (config.isBuild) {\r\n onload();\r\n } else {\r\n req([\r\n 'underscore',\r\n `component/i18n/loader!component/schema-i18n-${name}`,\r\n ], (_, i18n) => {\r\n onload(constructSchemaI18n({ _, i18n }));\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Backbone from 'backbone';\r\nimport DataStore from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport edmCampaign from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport template from '@bingads-webui-component-legacy/update-status/template/index.pug';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!component/update-status');\r\n\r\nexport default class view extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = _.extend({\r\n beforeRemove: options.beforeRemove ? options.beforeRemove : _.noop,\r\n afterChange: options.beforeRemove ? options.beforeRemove : _.noop,\r\n }, options);\r\n\r\n this.options = _.defaults(this.options, {\r\n stateWhitelist: ['Active', 'Paused', 'Deleted'],\r\n });\r\n\r\n this.schema = this.options.schema || {};\r\n this.entitySet = this.options.entitySet || edmCampaign.currentAccount;\r\n this.extendData = this.options.extendData || {};\r\n $(document).one('click', _.bind(this.remove, this));\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .active': 'activate',\r\n 'click .paused': 'pause',\r\n 'click .deleted': 'delete',\r\n 'click .paused-as-removed': 'pause',\r\n };\r\n }\r\n\r\n activate(e) {\r\n this.changeStatus('Active', e);\r\n }\r\n\r\n pause(e) {\r\n this.changeStatus('Paused', e);\r\n }\r\n\r\n delete(e) {\r\n this.changeStatus('Deleted', e);\r\n }\r\n\r\n changeStatus(value, e) {\r\n e.stopPropagation();\r\n\r\n if (value.toLowerCase() !== this.options.Status.toLowerCase()) {\r\n let entity = DataStore[this.schema.name];\r\n\r\n //State is the name used by TaskItem schema\r\n let updateObject = {\r\n [this.options.useStateInsteadOfStatus ? 'State' : 'Status']: value,\r\n };\r\n\r\n if (this.options.addImportTypeToStatusUpdate) {\r\n updateObject.Type = this.options.Model.Type;\r\n }\r\n\r\n if (!_.isEmpty(entity) && (!_.isUndefined(this.options.Id) || this.options.ignoreEmptyId)) {\r\n entity.update(this.options.Id, _.extend(updateObject, this.extendData), {\r\n cacheResponse: false,\r\n entitySet: this.entitySet,\r\n }).then(() => {\r\n this.options.afterChange(null, value);\r\n this.remove();\r\n }).catch((err) => {\r\n this.options.afterChange(err);\r\n this.remove();\r\n });\r\n }\r\n }\r\n this.remove();\r\n }\r\n\r\n remove(...args) {\r\n this.options.beforeRemove();\r\n super.remove(...args);\r\n }\r\n\r\n render() {\r\n this.$el.html(template({\r\n i18n,\r\n Status: this.options.Status,\r\n stateWhitelist: this.options.stateWhitelist,\r\n _,\r\n }));\r\n\r\n return this;\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nlet getWalkthrus = (walkthru) => {\r\n let availableWalkthrus = [];\r\n let availableWalkthrusSmart = [];\r\n let allWalkthrus = window.WalkMeAPI.getWalkthrus();\r\n let walkthrus = !walkthru || _.isArray(walkthru) ? walkthru : [walkthru];\r\n let ids = _.pluck(walkthrus, 'id');\r\n let allWalkthrusSmart = window.WalkMeAPI.getFlows();\r\n\r\n if (ids) {\r\n availableWalkthrus = _.reduce(ids, (memo, id) => {\r\n let match = _.find(allWalkthrus, (w) => w.Id === id);\r\n\r\n if (match) {\r\n memo.push(match);\r\n }\r\n\r\n return memo;\r\n }, []);\r\n\r\n availableWalkthrusSmart = _.reduce(ids, (memo, id) => {\r\n let match = _.find(allWalkthrusSmart, (w) => w.Id === id);\r\n\r\n if (match) {\r\n memo.push(match);\r\n }\r\n\r\n return memo;\r\n }, []);\r\n }\r\n\r\n return _.union(availableWalkthrus, availableWalkthrusSmart);\r\n};\r\n\r\nexport default class View extends Backbone.View {\r\n\r\n initialize() {\r\n this.walkthruIds = [];\r\n this.subview = null;\r\n\r\n return this;\r\n }\r\n\r\n setType(type) {\r\n this.type = type;\r\n\r\n return this;\r\n }\r\n\r\n setWalkthrus(ids) {\r\n this.walkthruIds = ids;\r\n\r\n if (this.subview) {\r\n let walkthrus = this.subview.getWalkthrus ? this.subview.getWalkthrus(ids) : getWalkthrus(ids);\r\n\r\n this.subview.set(walkthrus);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n startWalkthru(walkthru) {\r\n if (window.WalkMeAPI && ((typeof window.WalkMeAPI.startWalkthruById !== 'function') || !window.WalkMeAPI.startWalkthruById(walkthru.id))) {\r\n //if regular walkthrough does not exist, do smart walkthrough flow\r\n window.WalkMeAPI.startFlowById(walkthru.id);\r\n }\r\n }\r\n\r\n createSubview() {\r\n let Type = this.type;\r\n let subview;\r\n\r\n this.subview = subview = new Type();\r\n\r\n let walkthrus = subview.getWalkthrus ? subview.getWalkthrus(this.walkthruIds) : getWalkthrus(this.walkthruIds);\r\n\r\n subview.on('start', this.startWalkthru);\r\n subview.set(walkthrus);\r\n subview.render();\r\n subview.$el.addClass('walkme');\r\n\r\n return subview;\r\n }\r\n\r\n render() {\r\n let settings = config.get('Walkme');\r\n\r\n if (settings === 'prod' || settings === 'test') {\r\n let subview = this.createSubview();\r\n\r\n this.setElement(subview.$el);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n}\r\n","import ko from 'knockout';\r\n\r\nexport default class Link {\r\n\r\n constructor() {\r\n this.walkthru = ko.observable(null);\r\n }\r\n\r\n}\r\n","import Backbone from 'backbone';\r\nimport $ from 'jquery';\r\nimport ko from 'knockout';\r\nimport ViewModel from '@bingads-webui-component-legacy/walkme/viewmodel/link';\r\nimport template from '@bingads-webui-component-legacy/walkme/template/link.pug';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!component/walkme');\r\n\r\nexport default class Link extends Backbone.View {\r\n\r\n initialize() {\r\n this.viewModel = new ViewModel();\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click': this.onClick,\r\n };\r\n }\r\n\r\n set(walkthrus) {\r\n if (walkthrus && walkthrus.length === 1) {\r\n this.viewModel.walkthru({\r\n id: walkthrus[0].Id,\r\n });\r\n }\r\n return this;\r\n }\r\n\r\n onClick() {\r\n this.trigger('start', this.viewModel.walkthru());\r\n }\r\n\r\n render() {\r\n this.$link = $(template({ i18n }));\r\n this.setElement(this.$link);\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n return this;\r\n }\r\n\r\n}\r\n","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (model) {var i18n = model.i18n\npug_html = pug_html + \"\\u003Cdiv class=\\\"summarypage-bifreshtime\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BITimeStampNotes_Label')) ? \"\" : pug_interp)) + \"\\u003Ca class=\\\"HelpTopic\\\" query=\\\"ext54480\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Learn_more_link_text')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"summarypage-bifreshtime\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('MRCAccredited_Label')) ? \"\" : pug_interp)) + (pug.escape(null == (pug_interp = model.timeZoneHint) ? \"\" : pug_interp)) + \"\\u003Ca class=\\\"HelpTopic\\\" query=\\\"ext54483\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Learn_more_link_text')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"model\" in locals_for_with?locals_for_with.model:typeof model!==\"undefined\"?model:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (adgroupId, ariaLabel, campaignId, link, name) {pug_html = pug_html + \"\\u003Cspan class=\\\"grid-cell-text\\\"\\u003E\\u003Ca\" + (\" class=\\\"scope-navigator\\\"\"+pug.attr(\"href\", link, true, true)+pug.attr(\"data-campaignid\", campaignId, true, true)+pug.attr(\"data-adgroupid\", adgroupId, true, true)+pug.attr(\"aria-label\", ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fspan\\u003E\";}.call(this,\"adgroupId\" in locals_for_with?locals_for_with.adgroupId:typeof adgroupId!==\"undefined\"?adgroupId:undefined,\"ariaLabel\" in locals_for_with?locals_for_with.ariaLabel:typeof ariaLabel!==\"undefined\"?ariaLabel:undefined,\"campaignId\" in locals_for_with?locals_for_with.campaignId:typeof campaignId!==\"undefined\"?campaignId:undefined,\"link\" in locals_for_with?locals_for_with.link:typeof link!==\"undefined\"?link:undefined,\"name\" in locals_for_with?locals_for_with.name:typeof name!==\"undefined\"?name:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (inherited, multiplier) {pug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"grid-cell-text\",\"text-nowrap\",(inherited ? 'grid-disabled' : '')], [false,false,true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = multiplier) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";}.call(this,\"inherited\" in locals_for_with?locals_for_with.inherited:typeof inherited!==\"undefined\"?inherited:undefined,\"multiplier\" in locals_for_with?locals_for_with.multiplier:typeof multiplier!==\"undefined\"?multiplier:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (ariaLabel, baseCampaignName, campaignId, className, link, name, skipScopeNavigation) {pug_html = pug_html + \"\\u003Cspan class=\\\"grid-cell-text\\\"\\u003E\";\nif (baseCampaignName) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"base-campaign-name\\\"\\u003E\" + (pug.escape(null == (pug_interp = baseCampaignName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nvar skipNavigation = skipScopeNavigation ? 'true' : 'false';\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"class\", pug.classes([\"scope-navigator\",className], [false,true]), false, true)+pug.attr(\"href\", link, true, true)+pug.attr(\"data-campaignid\", campaignId, true, true)+pug.attr(\"data-skipscopenavigation\", skipNavigation, true, true)+pug.attr(\"aria-label\", ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fspan\\u003E\";}.call(this,\"ariaLabel\" in locals_for_with?locals_for_with.ariaLabel:typeof ariaLabel!==\"undefined\"?ariaLabel:undefined,\"baseCampaignName\" in locals_for_with?locals_for_with.baseCampaignName:typeof baseCampaignName!==\"undefined\"?baseCampaignName:undefined,\"campaignId\" in locals_for_with?locals_for_with.campaignId:typeof campaignId!==\"undefined\"?campaignId:undefined,\"className\" in locals_for_with?locals_for_with.className:typeof className!==\"undefined\"?className:undefined,\"link\" in locals_for_with?locals_for_with.link:typeof link!==\"undefined\"?link:undefined,\"name\" in locals_for_with?locals_for_with.name:typeof name!==\"undefined\"?name:undefined,\"skipScopeNavigation\" in locals_for_with?locals_for_with.skipScopeNavigation:typeof skipScopeNavigation!==\"undefined\"?skipScopeNavigation:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, isCommission, isDevice) {pug_html = pug_html + \"\\u003Cdiv class=\\\"bid-adjustment\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (isCommission && isDevice) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"bid-adjustment-disclaimer\\\"\\u003E\\u003Cdiv class=\\\"alert alert-info\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-info-inline\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('TargetingSettings_Grid_Column_BidAdj_Device_Commission_Disclaimer')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isCommission\" in locals_for_with?locals_for_with.isCommission:typeof isCommission!==\"undefined\"?isCommission:undefined,\"isDevice\" in locals_for_with?locals_for_with.isDevice:typeof isDevice!==\"undefined\"?isDevice: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 (deprecatedText, inherited, name, showDeprecatedWarning) {pug_html = pug_html + (\"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"grid-cell-text\",(inherited ? 'grid-disabled' : '')], [false,true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = name) ? \"\" : pug_interp)));\nif (showDeprecatedWarning) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"location-cell-status clickable\\\" tabindex=\\\"0\\\" role=\\\"button\\\" aria-label=\\\"Location deprecation details\\\"\\u003E\\u003Cdiv class=\\\"location-cell-status-inline\\\"\\u003E\\u003Cspan class=\\\"status-icon\\\"\\u003E\\u003Cspan class=\\\"status_warning\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"status-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = deprecatedText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\";}.call(this,\"deprecatedText\" in locals_for_with?locals_for_with.deprecatedText:typeof deprecatedText!==\"undefined\"?deprecatedText:undefined,\"inherited\" in locals_for_with?locals_for_with.inherited:typeof inherited!==\"undefined\"?inherited:undefined,\"name\" in locals_for_with?locals_for_with.name:typeof name!==\"undefined\"?name:undefined,\"showDeprecatedWarning\" in locals_for_with?locals_for_with.showDeprecatedWarning:typeof showDeprecatedWarning!==\"undefined\"?showDeprecatedWarning:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"btn-toolbar\\\"\\u003E\\u003Cdiv class=\\\"nav-tab-btn\\\"\\u003E\\u003Cdiv class=\\\"btn-group\\\"\\u003E\\u003Cdiv data-ref=\\\"navbar\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"btn-group\\\"\\u003E\\u003Cdiv data-ref=\\\"level-selector\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (expanded, hasSegment, helpAriaLabel, helpId, isAggregate, value) {if (isAggregate) {\nif (hasSegment) {\nif (expanded) {\npug_html = pug_html + \"\\u003Cspan class=\\\"icon-right glyphicon glyphicon-triangle-bottom\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan class=\\\"icon-right glyphicon glyphicon-triangle-right\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\n}\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\nif (helpId) {\npug_html = pug_html + \"\\u003Cspan class=\\\"grid-header-helpId\\\"\\u003E\\u003Ca\" + (\" class=\\\"helpbutton\\\"\"+\" type=\\\"helppopup\\\"\"+pug.attr(\"topic\", helpId, true, true)+pug.attr(\"data-help\", true, true, true)+\" onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"aria-label\", helpAriaLabel, true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fspan\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan class=\\\"segment-value\\\"\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}}.call(this,\"expanded\" in locals_for_with?locals_for_with.expanded:typeof expanded!==\"undefined\"?expanded:undefined,\"hasSegment\" in locals_for_with?locals_for_with.hasSegment:typeof hasSegment!==\"undefined\"?hasSegment:undefined,\"helpAriaLabel\" in locals_for_with?locals_for_with.helpAriaLabel:typeof helpAriaLabel!==\"undefined\"?helpAriaLabel:undefined,\"helpId\" in locals_for_with?locals_for_with.helpId:typeof helpId!==\"undefined\"?helpId:undefined,\"isAggregate\" in locals_for_with?locals_for_with.isAggregate:typeof isAggregate!==\"undefined\"?isAggregate:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"settings-view\\\"\\u003E\\u003Cdiv id=\\\"settings-container\\\" data-ref=\\\"settings-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {if (value && value.length > 0) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"parameters\\\"\\u003E\";\n// iterate value\n;(function(){\n var $$obj = value;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var parameter = $$obj[pug_index0];\nif (parameter.Key) {\npug_html = pug_html + \"\\u003Cdiv\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '{_') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = parameter.Key) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '} = ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = parameter.Value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var parameter = $$obj[pug_index0];\nif (parameter.Key) {\npug_html = pug_html + \"\\u003Cdiv\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '{_') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = parameter.Key) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '} = ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = parameter.Value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan class=\\\"grid-cell-text\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"grid-selectAcrossPagesPanel\\\" data-bind=\\\"visible: shouldShowPlugin\\\"\\u003E\\u003Cdiv class=\\\"current-page-all-selected\\\" data-bind=\\\"visible: !allSelected()\\\"\\u003E\\u003Cspan data-bind=\\\"text: currentRowsSelectionText\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"select-all-cross-page\\\" href=\\\"javascript:void(0)\\\" data-bind=\\\"text: selectAllPagesText, attr: {"aria-label": selectAllPagesText}\\\" role=\\\"button\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"cross-page-all-selected\\\" data-bind=\\\"visible: allSelected\\\"\\u003E\\u003Cspan data-bind=\\\"text: allRowsSelectedText\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"deselect-all-cross-page\\\" href=\\\"javascript:void(0)\\\" data-bind=\\\"text: clearSelectedText, attr: {"aria-label": clearSelectedText}\\\" role=\\\"button\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (grouping, text) {if (grouping) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"column-chooser panel\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Cdiv class=\\\"panel-title\\\" data-bind=\\\"text: text.headerTitle\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"small column-chooser-instructions\\\" data-bind=\\\"text: text.subheader\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"panel-body\\\"\\u003E\";\nif (text.notification) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"h5\\\"\\u003E\\u003Cspan class=\\\"infomark infoalign\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = text.notification) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group clearfix\\\"\\u003E\\u003Ch5 class=\\\"pull-left\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option-header\\\"\\u003E\\u003Cb data-bind=\\\"text: text.availableColumns\\\"\\u003E\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cul class=\\\"column-chooser-categories\\\" data-bind=\\\"foreach: categories.all\\\" role=\\\"tablist\\\"\\u003E\\u003Cli class=\\\"column-chooser-category clickable\\\" role=\\\"tab\\\" data-bind=\\\"click: $parent.categories.setCategory, css: { active: $index() === $parent.categories.current() }, attr: { "tabindex": $index() === $parent.categories.current() ? 0 : -1, "aria-selected": $index() === $parent.categories.current() ? "true" : "false", "aria-controls": "column-chooser-options-" + $index(), "aria-label": _viewModel.name }\\\"\\u003E\\u003Ca data-bind=\\\"text: _viewModel.name, css: {"type-bold": $index() === $parent.categories.current()}\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003Cdiv class=\\\"column-chooser-list\\\" data-bind=\\\"attr: {id: "column-chooser-options-" + categories.current()}\\\" role=\\\"tabpanel\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-bulk-control text-right\\\" data-bind=\\\"click: selectAll\\\"\\u003E\\u003Ca class=\\\"deemphasize\\\" data-bind=\\\"text: allActionText()\\\" href=\\\"javascript:void(0);\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003Cspan class=\\\"arrow-button enabled\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cul class=\\\"column-chooser-options available\\\" data-bind=\\\"foreach: options.available\\\" role=\\\"listbox\\\"\\u003E\\u003Cli class=\\\"option\\\" data-bind=\\\"with: _viewModel, visible: _viewModel.name, attr: { "tabindex": _viewModel.isFirst() ? 0 : -1, "aria-selected": _viewModel.isFirst(), "data-name": id }\\\" role=\\\"option\\\"\\u003E\\u003Cspan data-bind=\\\"text: name, css: {"type-bold": !isSelected()}\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C!--ko if: isSelected()--\\u003E\\u003Cspan class=\\\"pull-right\\\" data-bind=\\\"css: { disabled: isDisabled() || isMandatory(), }, text: $root.text.added\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko ifnot: isSelected()--\\u003E\\u003Ca class=\\\"pull-right\\\" data-bind=\\\"clickToggle: isSelected, css: { enabled: !isDisabled(), disabled: isDisabled}, text: $root.text.add, attr: { "tabindex": isFirst() ? 0 : -1 }\\\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fh5\\u003E\\u003Ch5 class=\\\"pull-left\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option-header\\\"\\u003E\\u003Cb data-bind=\\\"text: text.selectedColumnsWithReorder\\\"\\u003E\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-list right\\\"\\u003E\\u003Cul class=\\\"column-chooser-options selected\\\" data-bind=\\\"foreach: options.sortedSelection, sortable: { list: options.selected, placeholder: 'column-chooser-option-placeholder', items: 'li:not(.column-chooser-option-unmovable)' }\\\" role=\\\"listbox\\\"\\u003E\\u003Cli class=\\\"column-chooser-option-selected\\\" role=\\\"option\\\" data-bind=\\\"with: _viewModel, css: { "column-chooser-option-unmovable": _viewModel.isDisabled() && !_viewModel.isMandatory()}, visible: _viewModel.name, attr: { "tabindex": _viewModel.isFirst() ? 0 : -1, "aria-selected": _viewModel.isFirst() }\\\"\\u003E\\u003Cspan class=\\\"trigger-icon\\\" data-bind=\\\"visible: !isDisabled()\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan data-bind=\\\"text: name\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"pull-right remove\\\"\\u003E\\u003C!--ko ifnot: isDisabled() || isMandatory()--\\u003E\\u003Ca class=\\\"a11y-delete\\\" data-bind=\\\"clickToggle: isSelected, text: $root.text.remove, attr: { "tabindex": isFirst() ? 0 : -1 }\\\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fh5\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: showSave--\\u003E\\u003Chr\\u003E\\u003Cdiv class=\\\"form-inline\\\"\\u003E\\u003Ch5 class=\\\"checkbox form-group\\\"\\u003E\\u003Clabel data-omniturelinkname=\\\"columnchooser_savecolumns\\\"\\u003E\\u003Cinput type=\\\"checkbox\\\" data-bind=\\\"checked: enableSave\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = text.saveColumnSet) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003Cinput class=\\\"form-control\\\" type=\\\"text\\\" maxlength=\\\"100\\\" data-bind=\\\"value: savedName, style: { visibility: enableSave() ? 'visible' : 'hidden' }\\\"\\u003E\\u003C\\u002Fh5\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: applyButtonVisible\\\"\\u003E\\u003Cinput class=\\\"btn btn-primary\\\" type=\\\"button\\\" data-omniturelinkname=\\\"columnchooser_ok\\\" data-bind=\\\"value: text.applyColumns, click: function () { events.trigger('save'); }\\\"\\u003E \\u003Cinput class=\\\"btn btn-default\\\" type=\\\"button\\\" data-omniturelinkname=\\\"columnchooser_cancel\\\" data-bind=\\\"value: text.cancel, click: function () { events.trigger('cancel'); }\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"column-chooser panel\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Cdiv class=\\\"panel-title\\\" data-bind=\\\"text: text.heading\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"small column-chooser-instructions\\\" data-bind=\\\"text: text.subheader\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"panel-body\\\"\\u003E\\u003Cdiv class=\\\"form-group clearfix\\\"\\u003E\\u003Cul class=\\\"column-chooser-categories\\\" data-bind=\\\"foreach: categories.all, css: { hide: categories.all().length < 2 }\\\" role=\\\"tablist\\\"\\u003E\\u003Cli class=\\\"column-chooser-category clickable\\\" data-bind=\\\"click: $parent.categories.setCategory, text: _viewModel.name, css: { active: $index() === $parent.categories.current() }, attr: { "tabindex": $index() === $parent.categories.current() ? 0 : -1, "aria-selected": $index() === $parent.categories.current() ? "true" : "false" }\\\" role=\\\"tab\\\" aria-controls=\\\"column-chooser-options-available\\\"\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003Cdiv class=\\\"column-chooser-list\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option-header\\\"\\u003E\\u003Cb data-bind=\\\"text: text.availableColumns\\\"\\u003E\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-bulk-control\\\" data-bind=\\\"click: selectAll\\\"\\u003E\\u003Ca class=\\\"deemphasize\\\" data-bind=\\\"text: text.addAll\\\" href=\\\"javascript:void(0);\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003Cspan class=\\\"arrow-button enabled\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cul class=\\\"column-chooser-options\\\" id=\\\"column-chooser-options-available\\\" data-bind=\\\"foreach: options.available\\\" role=\\\"listbox\\\"\\u003E\\u003Cli class=\\\"column-chooser-option\\\" data-bind=\\\"with: _viewModel, visible: _viewModel.name, attr: { "tabindex": _viewModel.isFirst() ? 0 : -1, "aria-selected": _viewModel.isFirst() }\\\" role=\\\"option\\\"\\u003E\\u003Cspan data-bind=\\\"text: name\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"arrow-button pull-right clickable\\\" data-bind=\\\"clickToggle: isSelected, css: { enabled: !isDisabled(), disabled: isDisabled }, attr: { "tabindex": (isDisabled() || !isFirst()) ? -1 : 0, "title": $root.text.add }\\\" role=\\\"button\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-list\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option-header\\\"\\u003E\\u003Cb data-bind=\\\"text: text.selectedColumns\\\"\\u003E\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-bulk-control\\\" data-bind=\\\"click: removeAll\\\"\\u003E\\u003Cspan class=\\\"arrow-button remove\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"deemphasize\\\" data-bind=\\\"text: text.removeAll\\\" href=\\\"javascript:void(0);\\\"\\u003E= text.deselectAll\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cul class=\\\"column-chooser-options column-chooser-options-selected\\\" data-bind=\\\"foreach: options.selected, sortable: { list: options.selected, placeholder: 'column-chooser-option-placeholder', items: 'li:not(:first)' }\\\" role=\\\"listbox\\\"\\u003E\\u003Cli class=\\\"column-chooser-option-selected\\\" data-bind=\\\"with: _viewModel, style: {height: "28px"}, css: { "column-chooser-option-fixed": $index() === 0 }, visible: _viewModel.name, attr: { "tabindex": _viewModel.isFirst() ? 0 : -1, "aria-selected": _viewModel.isFirst() }\\\" role=\\\"option\\\"\\u003E\\u003Cspan class=\\\"trigger-icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan data-bind=\\\"text: name\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"arrow-button remove pull-right a11y-delete\\\" data-bind=\\\"visible: !isDisabled(), clickToggle: isSelected, attr: { "tabindex": isFirst() ? 0 : -1, "title": $root.text.remove }\\\" role=\\\"button\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: applyButtonVisible\\\"\\u003E\\u003Cinput class=\\\"btn btn-primary\\\" type=\\\"button\\\" data-bind=\\\"value: text.apply, click: function () { events.trigger('save'); }\\\"\\u003E \\u003Cinput class=\\\"btn btn-default\\\" type=\\\"button\\\" data-bind=\\\"value: text.cancel, click: function () { events.trigger('cancel'); }\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"grouping\" in locals_for_with?locals_for_with.grouping:typeof grouping!==\"undefined\"?grouping:undefined,\"text\" in locals_for_with?locals_for_with.text:typeof text!==\"undefined\"?text:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (classes, i18n, isFirstItem, isNewFeature, leftIconClass, posInSet, setSize, text) {pug_mixins[\"newFeature\"] = pug_interp = function(isNewFeature, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nif (isNewFeature) {\npug_html = pug_html + \"\\u003Csup class=\\\"new-feature-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('New_Feature_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fsup\\u003E\";\n}\n};\nif (leftIconClass) {\nclasses = ['spritedimage', 'toolbar-icon', 'toolbar-icon-left', leftIconClass]\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([classes], [true]), false, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"grid-menu\\\"\"+\" type=\\\"button\\\" role=\\\"button\\\"\"+pug.attr(\"value\", text || '', true, true)+pug.attr(\"tabindex\", (isFirstItem ? \"0\" : \"-1\"), true, true)+pug.attr(\"aria-setsize\", setSize, true, true)+pug.attr(\"aria-posinset\", posInSet, true, true)) + \"\\u003E\";\npug_mixins[\"newFeature\"](isNewFeature, i18n);}.call(this,\"classes\" in locals_for_with?locals_for_with.classes:typeof classes!==\"undefined\"?classes:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isFirstItem\" in locals_for_with?locals_for_with.isFirstItem:typeof isFirstItem!==\"undefined\"?isFirstItem:undefined,\"isNewFeature\" in locals_for_with?locals_for_with.isNewFeature:typeof isNewFeature!==\"undefined\"?isNewFeature:undefined,\"leftIconClass\" in locals_for_with?locals_for_with.leftIconClass:typeof leftIconClass!==\"undefined\"?leftIconClass:undefined,\"posInSet\" in locals_for_with?locals_for_with.posInSet:typeof posInSet!==\"undefined\"?posInSet:undefined,\"setSize\" in locals_for_with?locals_for_with.setSize:typeof setSize!==\"undefined\"?setSize:undefined,\"text\" in locals_for_with?locals_for_with.text:typeof text!==\"undefined\"?text:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (classes, i18n, isNewFeature, leftIconClass, linkText, text) {pug_mixins[\"newFeature\"] = pug_interp = function(isNewFeature, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nif (isNewFeature) {\npug_html = pug_html + \"\\u003Csup class=\\\"new-feature-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('New_Feature_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fsup\\u003E\";\n}\n};\npug_mixins[\"generateTitle\"] = pug_interp = function(text, linkText, isNewFeature, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nif (linkText) {\npug_html = pug_html + \"\\u003Cspan class=\\\"primary\\\"\\u003E\" + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\npug_mixins[\"newFeature\"](isNewFeature, i18n);\npug_html = pug_html + \"\\u003Ca class=\\\"secondary text-right\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = linkText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp));\npug_mixins[\"newFeature\"](isNewFeature, i18n);\n}\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"anchor\\\" role=\\\"menuitem\\\" tabindex=\\\"0\\\"\\u003E\";\nif (leftIconClass) {\nclasses = ['spritedimage', 'toolbar-icon', 'toolbar-icon-left', leftIconClass]\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([classes], [true]), false, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_mixins[\"generateTitle\"](text, linkText, isNewFeature, i18n);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"classes\" in locals_for_with?locals_for_with.classes:typeof classes!==\"undefined\"?classes:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isNewFeature\" in locals_for_with?locals_for_with.isNewFeature:typeof isNewFeature!==\"undefined\"?isNewFeature:undefined,\"leftIconClass\" in locals_for_with?locals_for_with.leftIconClass:typeof leftIconClass!==\"undefined\"?leftIconClass:undefined,\"linkText\" in locals_for_with?locals_for_with.linkText:typeof linkText!==\"undefined\"?linkText:undefined,\"text\" in locals_for_with?locals_for_with.text:typeof text!==\"undefined\"?text:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, isFirstItem, isNewFeature, isShowRightIcon, leftIconClass, menuClassNames, menuClasses, menuItems, posInSet, rightIconClass, setSize, title) {pug_mixins[\"newFeature\"] = pug_interp = function(isNewFeature, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nif (isNewFeature) {\npug_html = pug_html + \"\\u003Csup class=\\\"new-feature-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('New_Feature_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fsup\\u003E\";\n}\n};\nmenuClasses = ['grid-menu-container', 'grid-colchooser', 'dropdown-toggle'].concat(menuClassNames);\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"clickable\",menuClasses], [false,true]), false, true)+\" type=\\\"button\\\" data-toggle=\\\"dropdown\\\" role=\\\"button\\\"\"+pug.attr(\"tabindex\", (isFirstItem ? '0' : '-1'), true, true)+pug.attr(\"aria-haspopup\", (menuItems.length > 0 ? 'true' : 'false'), true, true)+pug.attr(\"aria-setsize\", setSize, true, true)+pug.attr(\"aria-posinset\", posInSet, true, true)+\" aria-expanded=\\\"false\\\"\") + \"\\u003E\";\nif (leftIconClass != null) {\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes(['spritedimage toolbar-icon toolbar-icon-left ' + leftIconClass], [true]), false, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cspan class=\\\"grid-menu\\\"\\u003E\" + (pug.escape(null == (pug_interp = title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\npug_mixins[\"newFeature\"](isNewFeature, i18n);\nif (isShowRightIcon) {\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes(['spritedimage toolbar-icon ' + (rightIconClass || 'icon-arrowdown-normal')], [true]), false, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cul class=\\\"dropdown-menu\\\" role=\\\"menu\\\"\\u003E\\u003C\\u002Ful\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isFirstItem\" in locals_for_with?locals_for_with.isFirstItem:typeof isFirstItem!==\"undefined\"?isFirstItem:undefined,\"isNewFeature\" in locals_for_with?locals_for_with.isNewFeature:typeof isNewFeature!==\"undefined\"?isNewFeature:undefined,\"isShowRightIcon\" in locals_for_with?locals_for_with.isShowRightIcon:typeof isShowRightIcon!==\"undefined\"?isShowRightIcon:undefined,\"leftIconClass\" in locals_for_with?locals_for_with.leftIconClass:typeof leftIconClass!==\"undefined\"?leftIconClass:undefined,\"menuClassNames\" in locals_for_with?locals_for_with.menuClassNames:typeof menuClassNames!==\"undefined\"?menuClassNames:undefined,\"menuClasses\" in locals_for_with?locals_for_with.menuClasses:typeof menuClasses!==\"undefined\"?menuClasses:undefined,\"menuItems\" in locals_for_with?locals_for_with.menuItems:typeof menuItems!==\"undefined\"?menuItems:undefined,\"posInSet\" in locals_for_with?locals_for_with.posInSet:typeof posInSet!==\"undefined\"?posInSet:undefined,\"rightIconClass\" in locals_for_with?locals_for_with.rightIconClass:typeof rightIconClass!==\"undefined\"?rightIconClass:undefined,\"setSize\" in locals_for_with?locals_for_with.setSize:typeof setSize!==\"undefined\"?setSize:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"grid-toolbar-expand\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"grid-toolbar grid-toolbar-container\\\" role=\\\"toolbar\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"modal-dialog\\\" role=\\\"dialog\\\"\\u003E\\u003Cdiv class=\\\"modal-content\\\"\\u003E\\u003C!--ko if: isHtmlContent--\\u003E\\u003Cdiv class=\\\"modal-body\\\" data-bind=\\\"html: body()\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko ifnot: isHtmlContent--\\u003E\\u003Cdiv class=\\\"modal-body\\\" data-bind=\\\"text: body()\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\\u003Cbutton class=\\\"btn btn-primary\\\" type=\\\"button\\\" data-bind=\\\"text: primaryText()\\\"\\u003E\\u003C\\u002Fbutton\\u003E\\u003C!--ko if: defaultText()--\\u003E \\u003Cbutton class=\\\"btn btn-default\\\" type=\\\"button\\\" data-dismiss=\\\"modal\\\" data-bind=\\\"text: defaultText()\\\"\\u003E\\u003C\\u002Fbutton\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (Status, _, i18n, stateWhitelist) {pug_html = pug_html + \"\\u003Cdiv class=\\\"dropdown open\\\"\\u003E\\u003Cul class=\\\"dropdown-menu\\\" role=\\\"menu\\\"\\u003E\";\nif (_.contains(stateWhitelist, 'Active')) {\npug_html = pug_html + \"\\u003Cli class=\\\"active text-left\\\" role=\\\"presentation\\\"\\u003E\\u003Cdiv class=\\\"statuschangesubtask\\\"\\u003E\\u003Cspan\" + (\" class=\\\"statuschangelink clickable\\\"\"+pug.attr(\"title\", i18n.get('EntityStatus_Active'), true, true)+\" tabindex=\\\"0\\\" role=\\\"menuitem\\\"\") + \"\\u003E\\u003Cspan class=\\\"statuschange-icon statusEnabled_icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\nif (Status === \"Active\") {\npug_html = pug_html + \"\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Active')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Active')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n}\nif (_.contains(stateWhitelist, 'Paused')) {\npug_html = pug_html + \"\\u003Cli class=\\\"paused text-left\\\" role=\\\"presentation\\\"\\u003E\\u003Cdiv class=\\\"statuschangesubtask\\\"\\u003E\\u003Cspan\" + (\" class=\\\"statuschangelink clickable\\\"\"+pug.attr(\"title\", i18n.get('EntityStatus_Paused'), true, true)+\" tabindex=\\\"0\\\" role=\\\"menuitem\\\"\") + \"\\u003E\\u003Cspan class=\\\"statuschange-icon statusPaused_icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\nif (Status === \"Paused\") {\npug_html = pug_html + \"\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Paused')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Paused')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n}\nif (_.contains(stateWhitelist, 'Deleted')) {\npug_html = pug_html + \"\\u003Cli class=\\\"deleted text-left\\\" role=\\\"presentation\\\"\\u003E\\u003Cdiv class=\\\"statuschangesubtask\\\"\\u003E\\u003Cspan\" + (\" class=\\\"statuschangelink clickable\\\"\"+pug.attr(\"title\", i18n.get('EntityStatus_Deleted'), true, true)+\" tabindex=\\\"0\\\" role=\\\"menuitem\\\"\") + \"\\u003E\\u003Cspan class=\\\"statuschange-icon statusDeleted_icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\nif (Status === \"Deleted\") {\npug_html = pug_html + \"\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Deleted')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Deleted')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n}\nif (_.contains(stateWhitelist, 'PausedAsRemoved')) {\npug_html = pug_html + \"\\u003Cli class=\\\"paused-as-removed text-left\\\" role=\\\"presentation\\\"\\u003E\\u003Cdiv class=\\\"statuschangesubtask\\\"\\u003E\\u003Cspan\" + (\" class=\\\"statuschangelink clickable\\\"\"+pug.attr(\"title\", i18n.get('EntityStatus_Removed'), true, true)+\" tabindex=\\\"0\\\" role=\\\"menuitem\\\"\") + \"\\u003E\\u003Cspan class=\\\"statuschange-icon statusDeleted_icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\nif (Status === \"Paused\") {\npug_html = pug_html + \"\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Removed')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Removed')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"Status\" in locals_for_with?locals_for_with.Status:typeof Status!==\"undefined\"?Status:undefined,\"_\" in locals_for_with?locals_for_with._:typeof _!==\"undefined\"?_:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"stateWhitelist\" in locals_for_with?locals_for_with.stateWhitelist:typeof stateWhitelist!==\"undefined\"?stateWhitelist:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"walkme__link\\\" data-bind=\\\"visible: !!walkthru()\\\"\\u003E\\u003Ci class=\\\"spritedimage icon--tour\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003Ca href=\\\"javascript:void(0);\\\" data-bind=\\\"attr: {"analytics-id": "tour:" + walkthru().name}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Walkme_guided_tour')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;"],"names":["ColumnAdGroup","_CampaignuiBaseColumn","_ref","_this","i18n","gridType","_classCallCheck","_callSuper","name","type","property","sortable","title","bodyClasses","_inherits","_createClass","key","value","_ref2","_","adGroupColumnTemplate","cid","TargetingSettingsContext","state","get","aid","link","concat","this","cmpid","adgid","campaignId","adgroupId","airaLabel","getString","adGroupName","_ref3","Campaign","AdGroup","Id","Name","config","CampaignuiBaseColumn","ColumnAdGroupId","TargetingType","AllSettings","Locations","AdSchedule","Devices","DeviceName","Computers","Tablets","Smartphones","TargetingScope","Account","TargetingLevel","TargetingLevelLiterals","TabItems","text","routeParams","setting","ExtendedBidAdjustmentView","_Backbone$View","arguments","options","_this$options","customValidators","currentCampaign","criterion","$el","html","extendedBidAdjTmpl","isCommission","result","isDevice","bidAdjustmentView","remove","BidAdjustmentView","$","empty","append","render","listenTo","trigger","_superPropGet","Backbone","ColumnBidAdjustment","level","parentView","localizedTitle","isDeprecatedLocation","permissions","pageContext","Permissions","isHideBidAdjustmentForBoostEnabled","format","helpId","helpAriaLabel","item","enableEdit","Criterion","isAdGroupLevel","isHotelCampaign","isPMaxCampaign","isLinkedInCampaign","criterionType","isXandr","isXandrServing","isLocation","isAdSchedule","CampaignSubType","_this2","newPosition","LevelOfDetails","CriterionBid","Multiplier","GridCustomizedPopupEditor","editorView","cellPosition","tableContainer","className","parentContainerSelector","on","model","grid","gridView","_this3","inherited","multiplier","CampaignType","Type","formattedValue","formatter","Math","abs","_ref4","bidAdjColumnTemplate","ColumnCampaign","campaignColumnTemplate","isSmartCampaign","Status","ariaLabel","campaignName","baseCampaignName","experimentName","skipScopeNavigation","BaseCampaignName","ColumnCampaignId","ColumnCampaignType","ColumnLevel","getScope","scope","getLevel","parseInt","setLevel","set","undefined","getCriterionType","view","getNameForRadiusLocation","lat","lon","latComputed","round","longComputed","replace","getLocationDisplayName","unitMaps","areaTargetNameTypeComboGenerator","LocationType","CountryCode","Latitude","Longitude","radiusTargetNameTypeComboGenerator","Radius","RadiusUnit","IsSegmentRow","SegmentValue","$total","getDayTimeDisplayName","_item$Criterion","Day","FromHour","FromMinute","ToHour","ToMinute","minuteMap","ZERO","FIFTEEN","THIRTY","FORTY_FIVE","dayStr","getDay","toLowerCase","slice","numFromHour","Number","numToHour","startTime","formatDate","parseDate","raw","skeleton","endTime","timeRangeStr","getDeviceDisplayName","deviceName","minBidMultiplier","maxBidMultiplier","isValid","v","msgKey","IsOriginalDeviceTargetingEnabled","BidMultiplier","message","min","max","specialValue","ColumnLocation","_ref$isExcludeLocatio","isExcludeLocation","deprecatedTextMapping","PendingDeprecation","warning","Deprecated","VirtualId","locationTargetStatusPopup","locationConstants","showDeprecatedWarning","deprecatedTexts","LocationStatus","containerSelector","locationView","event","deprecatedText","locationColumn","helpIdMap","Clicks","Impressions","CTR","AverageCPC","AveragePosition","Spend","AverageCPM","CPA","Conversions","ConversionRate","AdvertiserReportedRevenue","RevenueOnAdSpend","ViewThroughConversions","ViewThroughConversionsRevenue","ViewThroughConversionsCPA","ViewThroughConversionsReturnOnAdSpend","ViewThroughConversionsRate","AllConversionCPA","AllConversions","AllConversionAdvertiserReportedRevenue","AllConversionRevenueOnAdSpend","AllConversionRate","ConversionsCredit","PartialConversionCPA","PartialConversionRate","AllPartialConversionCPA","AllConversionsCredit","AllPartialConversionRate","ViewThroughPartialConversionsCPA","ViewThroughPartialConversionsRate","ViewThroughConversionsCredit","ColumnsConfig","deps","selfColumns","_deps$isExcludeLocati","_TargetingSettingsCon","IsViewThroughConversionEnabled","IsAvgPositionDeprecationPhase1Enabled","IsAvgPositionDeprecationPhase2Enabled","IsPersonalizedOffersEnabled","IsPersonalizedOffersV3Enabled","IsViewThroughConversionsRevenueEnabled","_TargetingSettingsCon2","dynamic","IsPartialConversionsEnabled","PartialConversions","IsColumnConversionEnabled","ColumnConversion","usePartialConversions","columns","otherAttrColumns","length","push","criterionLevel","CashbackPercentColumn","criterionCashbackPercentColumnFactory","criterionCashbackUpdater","CriterionCashback","criterionCashbackOverrideUpdater","modelName","decimal","builder","ColumnsConfigBuilder","addCategory","category","addColumns","ColumnClicks","ColumnImpressions","ColumnCTR","ColumnAverageCPC","ColumnSpend","ColumnAveragePosition","ColumnTopImpressionRate","ColumnAbsoluteTopImpressionRate","ColumnAverageCPM","addConversionsCategory","withPartialConversions","setLockedColumns","setSelectedColumns","tabName","getColumnsConfig","isForVNext","mandatoryProperties","Array","prototype","apply","getColumnChooserConfig","patchQuery","Columns","SelectedColumns","LegacyColumns","LegacySelectedColumns","SettingsView","_DeterministicView","onModelChanged","off","SettingsViewTemplate","DeterministicView","getFilterStateConfig","mapOnlyBaseProperty","entity","filterList","BiddableAdGroupCriterion","BiddableCampaignCriterion","rootSchema","updateFilterSchemaForPilotFeatures","properties","schema","filterable","filterEntityOptions","filterOptionsFromSchema","biPattern","fields","field","test","appendPeriodOverPeriodFields","deviceNameOption","enum","localized","levelOfDetailsOption","criterionNameIndex","campaignIdOption","campaignNameOption","adGroupIdOption","adGroupNameOption","odata","custom","isof","operator","obj","filter","ODataConverter","convert","eq","val","toolbarRow","helpers","getReportEmailRule","stateReportEmailRule","Entity","unset","pluginConfig","columnChooser","inlineDownloadEntity","pagination","pageSize","availablePageSizes","enableRandomPage","pageNumberLabelText","pageSizeText","totalPageCountText","uiBlocker","el","placeholder","viewRoot","container","filteredContainer","filteredEmptyText","inlineDownload","DownloadView","s$i18n","isAvailable","gridId","ReportEmailRule","filterState","dateFilter","isOdataActionSource","comparisonColumns","popColumns","editable","scrollingConfig","_ref$sticky","sticky","_ref$virtualized","virtualized","header","offset","height","basicGridConfig","tableClasses","rows","headRows","crossPageSelectHeadRow","scrolling","selection","enabled","headClasses","CommonRepository","scopeResources","_defineProperty","edmCampaign","currentAccount","currentAdGroup","resource","jsDataResource","jsDataCampaign","AdGroupCriterion","entities","AdGroupCriterions","CampaignCriterion","CampaignCriterions","idAttribute","jsdata","store","registerAdapter","BulkAdapter","default","afterFindAllCallback","entitySet","$call","parameters","$expand","operand","query","cacheResponse","headers","lcid","CultureLcid","filterOptions","afterFindAll","entitySetMap","Campaigns","$withKey","AdGroups","m","newModel","bulkUpdateModel","modelCashbackPercent","OSName","CriterionType","BidAdjustment","DeviceCriterion","OSTargets","Key","Value","targetToUpdate","target","CashbackPercent","getDeviceCriterionModel","update","adapter","getCampaignEntitySetByScopeAndLevel","getAdGroupEntitySetByScopeAndLevel","attrs","params","jsData","bypassCache","adgroupEntitySet","adgroupOptions","Promise","findAll","adgroupTargets","campaignTargets","GridView","_DeterministicWrapper","DeterministicWrapperView","CampaignAdgroupSelectorVnext","selectedCampaign","selectedAdGroup","optionalCampaignFilter","optionalAdgroupFilter","optionalCampaignSelect","optionalAdGroupSelect","optionalAdGroupExpand","campaignAdgroupSelector","createCampaignAdGroupSelector","legacyDependencies","missingDependencies","dependency","Error","toString","TrackingTemplateColumn","inlineEditableSave","_ref$deps","_ref$parentContainerS","TrackingUrlTemplate","testUurlService","testUurl","uurlLevels","position","constructor","gridClass","isKeywordLevel","showUurlTestTool","globalContext","require","e","indexOf","Keyword","trackingtemplateviewInlineView","TrackingTemplateInlineEditView","trackingTemplate","self","updated","fieldName","editorViewCallbackAfterUpdate","fn","originalView","viewModel","isInline","trackingTemplateView","context","customerId","userId","accountId","entityId","adGroupId","apiInLog","call","useVNextPosition","Object","keys","groupClass","renderBelow","CustomParametersColumn","template","customParametersInlineEditView","CustomParameterInlineEditView","customParameters","UrlCustomParameters","entityType","customParams","triggerScrollbarRepositionOnElementHeightChange","FinalUrlSuffixColumn","FinalUrlSuffix","finalUrlSuffixInlineEditView","FinalUrlSuffixInlineEditView","finalUrlSuffix","Option","configuration","defaultSettings","isSelected","isDisabled","isMandatory","settings","_viewModel","isFirst","ko","id","propertyName","propertyValue","unwrapObservable","Category","addOption","optionData","columnChooserOption","removeOption","editOption","newName","i","option","getOptions","getUnselectedOptionsCount","getName","clickToggle","init","element","valueAccessor","allBindingsAccessor","bindingContext","registerEventHandler","modelValue","condition","ColumnChooser","enableSave","showSave","isSavingColumnsAllowed","savedName","categories","all","current","setCategory","$index","selected","applyButtonVisible","autosave","selectAll","removeAll","hasOptions","allActionText","unselectedCount","addAllColumns","removeAllColumns","events","data","getSelectedOptions","currentCategory","unselectedOptionsCount","sortedSelection","sortedOptions","setFirstOption","available","availableOptions","isColumnCategoryAllowed","_optionCache","_batchCounter","setOptions","bind","getCategoryByName","cat","setOptionEvents","subscribe","setOptionState","setAllOptionsSelected","list","force","ifFoundFirstOption","sortableSettings","hint","clone","css","width","addClass","items","change","movedOption","delta","newIndex","oldIndex","previousPosition","splice","kendoSortable","columnsData","columnChooserCategories","columnsDataIndex","columnData","columnChooserCategory","optionIndex","setOptionStateById","getOptionById","setState","ids","selectedColumns","columnId","exists","forceAllCategories","currentCategoryOptions","categoryOption","getAvailableOptions","getSelectedOptionsId","getAvailableOptionsId","getSavedName","trim","setSavedName","enabledSaveColumns","resetSavedName","window","globalLegacyI18n","View","extend","initialize","grouping","saving","localization","object","iteratee","ret","mapObject","groupColumns","groups","whenStateReady","tmpl","$elColumnChooser","getItem","focus","cancel","hide","column","_getOption","save","canSaveColumns","then","confirm","_onSave","selectable","colIndex","col","setSelectedIds","getColumns","getSelectedColumns","selectedOptions","err","_apply","resolve","show","setItem","cache","index","filterSort","last","mandatory","primary","ko_model","body","primaryText","defaultText","isHtmlContent","content","primaryActionText","defaultActionText","modal","close","primaryAction","isPrimarySelected","sharedComponentI18n","saveListId","columnPreferenceSaved","arrayToIndex","arr","memo","definePlugin","toolbar","_$result","plugins","_$result$dropdown","dropdown","_$result$columns","_$result$categories","_$result$selected","_$result$locked","locked","_$result$mandatory","_$result$patchQuery","_$result$customColumn","customColumn","normalizeConfig","toolbarEditor","gridToolbarGroup","toolbarWithItem","names","_pluginConfig$locked","_pluginConfig$mandato","validNames","flatten","uniq","patch","select","columnNames","once","elTable","parentElement","appendChild","project","getSelection","where","getSelectedRecord","setSelectedRecord","create","refreshMenu","getRecord","setRecord","record","legacyQuery","legacyDataProcesser","promises","legacySelected","legacyRecords","destroy","legacyRecord","creation","applyRecord","thenReturn","applyColumns","setCustomColumnsRecord","recordId","customColumns","CustomColumns","getCustomColumnsRecord","addCustomColumnsRecord","values","editCustomColumnsRecord","makeCustomColumn","bingadsGridColumn","account","PerformanceMetrics","saveCustomColumn","isEdit","s","editCustomColumn","columnInfo","openCustomColumnModal","removeCustomColumn","removeCustomColumnsRecord","destroyColumnChooser","createColumnChooser","customColumnConf","columnDefinition","customColumnConfig","Custom","localizedAdded","metrics","metric","choices","colName","segmentation","segment","choice","localizeSegmentationValue","indexSelected","indexLocked","indexMandatory","candidateColumns","ColumnChooserView","Modal","nameExistText","replaceText","showColumnChooser","overrideWith","hideAllToolbars","restoreToolbar","showAllToolbars","button","iconLeft","columnChooserIcon","iconRight","arrowDownIcon","menu","onClick","removeText","onSelect","onRemove","removeRecord","legacyGridName","ViewModel","allSelected","currentPageAllRowsSelected","shouldShowPlugin","selectedRowsCount","totalRowsTotalPageCount","rowsDidUpdate","silentClearAllSelection","currentRowsSelectionText","selectAllPagesText","allPagesRowsCount","allRowsSelectedText","clearSelectedText","totalCountRows","onAllRowsSelected","onNotAllRowsSelected","deselectAll","selectedKeys","CROSS_PAGE_SELECT_ALL_TYPE","crossPageSelectAllPlugin","setHeadRows","row","classes","version","pgrid","isInitialGridDataLoad","logPerformanceInfo","_ref$logNavTiming","logNavTiming","track","instrumentation","timeStarted","performance","now","activeTimeBeforeStarted","NaN","isSuccess","timeFetched","activeTimeBeforeFetched","timeRendered","activeTimeBeforeRendered","landingPageUrl","api","writeRawLog","logCategory","JSON","stringify","entryType","logMessage","Version","GridName","IsVirtualized","TotalRows","countRows","TotalServerSideRows","TotalVisibleRows","TotalColumns","find","DataFetchStartTime","DataFetchStartActiveTime","DataFetchingTime","DataFetchingActiveTime","GridRenderingTime","GridRenderingActiveTime","PageNavStartTime","timing","navigationStart","PageFetchStartTime","fetchStart","LandingPageUrl","newPerformanceLogPlugin","_ref2$scrolling","_ref2$scrolling2$virt","_ref2$plugins","_ref2$plugins2$perfor","performanceLogNew","_ref2$plugins2$perfor3","uiBlockerToken","unblock","block","CustomUserInfos","defineResource","setCustomUserInfos","customUserInfos","newCustomUserInfos","path","getCustomUserInfos","registerSubadapter","PreferencesSubadapter","Resource","prefix","_ref$where","_ref$where2$project","serialize","Data","deserialize","match","_match$slice","_slicedToArray","DateFilters","_ref$where2","_ref$where2$grid","dateFilters","_match$slice2","defaultQuery","getDateFilter","setDateFilter","getDateFilterPreference","isNotSimpleLeftMouseClickEvent","ctrlKey","shiftKey","altKey","metaKey","dismiss","FocusLockEditorView","focusLockInstanceDecorator","onExist","lockRegionAriaLabel","managed","focusLockEditorView","clickToDismiss","closest","noDismiss","$editor","isRTL","left","cTop","top","cLeft","$cell","document","elementFromPoint","scrollTop","widthDiff","outerWidth","clientWidth","children","padding","outerHeight","getPosition","CultureIsRTL","setFocus","Button","leftIconClass","isNewFeature","_onClick","stopPropagation","hasClass","disable","attr","buttonEl","enable","removeClass","buttonTmpl","ButtonMenuItem","MenuItem","attributes","role","linkText","setText","getText","setLinkText","menuItem","DividerMenuItem","Dropdown","isFirstItem","isShowRightIcon","menuItems","menuClassNames","_initMenuItem","getMenuItem","getMenuItems","pushMenuItem","_renderMenuItem","pushMenuItems","removeMenuItem","getGroup","removeRadioItem","isGroup","removeMenuItems","groupItem","removeItem","_applyItemEvents","$itemList","GridToolbar","appendItems","renderItems","showToolbar","hideToolbar","expand","count","setSize","posInSet","setMenuTitle","pos","toolbarTemplate","HeaderMenuItem","tagName","fileSize","locale","fileSizeString","toLocaleString","DelegateAdapter","targetName","definition","getAdapter","updateAll","destroyAll","MutableModel","_ref$mutables","mutables","_ref$model","mutable","hasChanges","_this$model","_this$model2","addKeys","toAdd","curKeys","curMutable","curVal","getEnum","enumType","enumItem","capitalize","getEnumDescription","toSchema","schemaOrType","TypeError","getType","getProperty","stringOrArray","arrProperty","isArray","exact","join","topLevelPropertySchema","standardPropertySchema","getPropertySchema","getValue","String","getValueDescription","constructSchemaI18n","partial","enumMappedString","valueDescription","enumDescription","beforeRemove","afterChange","stateWhitelist","extendData","one","changeStatus","DataStore","updateObject","useStateInsteadOfStatus","addImportTypeToStatusUpdate","Model","ignoreEmptyId","catch","_len","args","_key","getWalkthrus","walkthru","availableWalkthrus","availableWalkthrusSmart","allWalkthrus","WalkMeAPI","walkthrus","allWalkthrusSmart","getFlows","w","walkthruIds","subview","startWalkthruById","startFlowById","startWalkthru","createSubview","setElement","Link","$link","pug","module","exports","locals","pug_interp","pug_html","locals_for_with","escape","timeZoneHint","skipNavigation","expanded","hasSegment","isAggregate","$$obj","pug_index0","$$l","parameter","notification","saveColumnSet","pug_mixins","menuClasses","rightIconClass","contains"],"sourceRoot":""}