{"version":3,"file":"static/js/application.async.non-landing~182f79bf.9968810e.chunk.js","mappings":"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,CACD,IAAO,KACP,MAAS,sBACR,CACD,IAAO,MACP,MAAS,qBACR,CACD,IAAO,MACP,MAAS,gBACR,CACD,IAAO,MACP,MAAS,4BACR,CACD,IAAO,aACP,MAAS,YACR,CACD,IAAO,OACP,MAAS,yBACR,CACD,IAAO,OACP,MAAS,iCACR,CACD,IAAO,KACP,MAAS,qBACR,CACD,IAAO,OACP,MAAS,QAEX,OAAU,CAAC,CACT,IAAO,IACP,MAAS,QACR,CACD,IAAO,IACP,MAAS,UACR,CACD,IAAO,IACP,MAAS,eACR,CACD,IAAO,KACP,MAAS,aACR,CACD,IAAO,KACP,MAAS,yBACR,CACD,IAAO,KACP,MAAS,gBACR,CACD,IAAO,MACP,MAAS,WACR,CACD,IAAO,MACP,MAAS,cACR,CACD,IAAO,OACP,MAAS,gBACR,CACD,IAAO,MACP,MAAS,kBAEX,gBAAmB,CAAC,CAClB,IAAO,IACP,MAAS,YACR,CACD,IAAO,IACP,MAAS,UACR,CACD,IAAO,IACP,MAAS,UACR,CACD,IAAO,IACP,MAAS,YAEX,iBAAoB,CAAC,CACnB,IAAO,IACP,MAAS,UACR,CACD,IAAO,IACP,MAAS,SAGb,kBAAqB,KACrB,oBAAuB,KACvB,eAAkB,KAClB,iBAAmB,EACnB,qBAAuB,EACvB,oBAAsB,GAExBC,kBAAmB,CACjB,QAAW,KACX,aAAe,EACf,WAAc,UACd,0BAA6B,CAC3B,IAAO,eACP,OAAU,eACV,WAAc,eACd,UAAa,eACb,YAAe,eACf,mBAAsB,gBACtB,YAAe,eACf,WAAc,gBACd,WAAc,gBACd,gBAAmB,eACnB,IAAO,eACP,iBAAoB,eACpB,eAAkB,eAClB,0BAA6B,eAC7B,WAAc,eACd,YAAe,eACf,WAAc,eACd,iBAAoB,eACpB,iBAAoB,eACpB,mBAAsB,eACtB,WAAc,eACd,aAAgB,cAChB,YAAe,cACf,iBAAoB,YACpB,eAAkB,YAClB,SAAY,mBACZ,wBAA2B,gBAC3B,eAAkB,eAClB,0BAA6B,eAC7B,cAAiB,eACjB,sBAAyB,eACzB,WAAc,eACd,UAAa,eACb,aAAgB,eAChB,kBAAqB,eACrB,OAAU,mBACV,2BAA8B,eAC9B,kBAAqB,eACrB,2BAA8B,eAC9B,yBAA4B,eAC5B,kBAAqB,eACrB,0BAA6B,eAC7B,iCAAoC,eACpC,0BAA6B,eAC7B,yBAA4B,eAC5B,uBAA0B,eAC1B,kCAAqC,eACrC,iCAAoC,eACpC,+BAAkC,gBAEpC,4BAA+B,CAC7B,YAAe,CAAC,WAAY,iBAAkB,aAAc,WAAY,QAAS,YACjF,cAAiB,CAAC,WAClB,aAAgB,CAAC,iBACjB,iBAAoB,CAAC,iBACrB,cAAiB,CAAC,UAAW,iBAAkB,OAAQ,cAAe,QAAS,YAC/E,aAAgB,CAAC,UAAW,iBAAkB,OAAQ,cAAe,QAAS,YAC9E,UAAa,CAAC,QAAS,WAAY,UAAW,iBAAkB,OAAQ,cAAe,WACvF,iBAAoB,CAAC,cAAe,cAAe,gBACnD,cAAiB,CAAC,SAClB,aAAgB,CAAC,SACjB,iBAAoB,CAAC,SACrB,mBAAsB,CAAC,aAEzB,oBAAuB,CACrB,eAAkB,iBAClB,SAAY,WACZ,0BAA6B,4BAC7B,cAAiB,gBACjB,2BAA8B,uBAEhC,iCAAoC,CAClC,SAAY,CAAC,CACX,IAAO,KACP,MAAS,MACR,CACD,IAAO,IACP,MAAS,QACR,CACD,IAAO,IACP,MAAS,UACR,CACD,IAAO,KACP,MAAS,UACR,CACD,IAAO,KACP,MAAS,SACR,CACD,IAAO,KACP,MAAS,UACR,CACD,IAAO,KACP,MAAS,WACR,CACD,IAAO,KACP,MAAS,WACR,CACD,IAAO,KACP,MAAS,UACR,CACD,IAAO,KACP,MAAS,WACR,CACD,IAAO,KACP,MAAS,aACR,CACD,IAAO,KACP,MAAS,cACR,CACD,IAAO,MACP,MAAS,WACR,CACD,IAAO,MACP,MAAS,WACR,CACD,IAAO,KACP,MAAS,sBACR,CACD,IAAO,MACP,MAAS,qBACR,CACD,IAAO,KACP,MAAS,SACR,CACD,IAAO,KACP,MAAS,UACR,CACD,IAAO,KACP,MAAS,aACR,CACD,IAAO,KACP,MAAS,SACR,CACD,IAAO,KACP,MAAS,YACR,CACD,IAAO,KACP,MAAS,YACR,CACD,IAAO,KACP,MAAS,aACR,CACD,IAAO,KACP,MAAS,cACR,CACD,IAAO,KACP,MAAS,WACR,CACD,IAAO,KACP,MAAS,WACR,CACD,IAAO,KACP,MAAS,YACR,CACD,IAAO,MACP,MAAS,UACR,CACD,IAAO,MACP,MAAS,aACR,CACD,IAAO,MACP,MAAS,WACR,CACD,IAAO,KACP,MAAS,WACR,CACD,IAAO,MACP,MAAS,WACR,CACD,IAAO,IACP,MAAS,YACR,CACD,IAAO,KACP,MAAS,cACR,CACD,IAAO,KACP,MAAS,aACR,CACD,IAAO,KACP,MAAS,YACR,CACD,IAAO,KACP,MAAS,UACR,CACD,IAAO,KACP,MAAS,WACR,CACD,IAAO,KACP,MAAS,SACR,CACD,IAAO,KACP,MAAS,SACR,CACD,IAAO,MACP,MAAS,QACR,CACD,IAAO,KACP,MAAS,cACR,CACD,IAAO,MACP,MAAS,WACR,CACD,IAAO,MACP,MAAS,eAEX,eAAkB,CAAC,CACjB,IAAO,KACP,MAAS,+BACR,CACD,IAAO,KACP,MAAS,wBACR,CACD,IAAO,KACP,MAAS,kBACR,CACD,IAAO,KACP,MAAS,gBACR,CACD,IAAO,KACP,MAAS,sBACR,CACD,IAAO,MACP,MAAS,qBACR,CACD,IAAO,aACP,MAAS,YACR,CACD,IAAO,KACP,MAAS,qBACR,CACD,IAAO,OACP,MAAS,OACR,CACD,IAAO,KACP,MAAS,6BACR,CACD,IAAO,KACP,MAAS,yBACR,CACD,IAAO,MACP,MAAS,iBACR,CACD,IAAO,MACP,MAAS,uBAEX,0BAA6B,CAAC,CAC5B,IAAO,IACP,MAAS,YACR,CACD,IAAO,IACP,MAAS,eACR,CACD,IAAO,IACP,MAAS,iBACR,CACD,IAAO,IACP,MAAS,uBACR,CACD,IAAO,IACP,MAAS,gBAEX,cAAiB,CAAC,CAChB,IAAO,MACP,MAAS,SACR,CACD,IAAO,MACP,MAAS,UACR,CACD,IAAO,MACP,MAAS,WACR,CACD,IAAO,MACP,MAAS,UACR,CACD,IAAO,MACP,MAAS,WACR,CACD,IAAO,MACP,MAAS,sBACR,CACD,IAAO,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","sources":["../../../../static-resource-legacy/packages/app/layout/index.js","../../../../static-resource-legacy/packages/extension/scrollTo.js","../../../../static-resource-legacy/packages/app/state/hotelcenter-dateFilter.js","../../../../static-resource-legacy/packages/bulk-edit/viewmodel/shared/copyPasteDescriptions.js","../../../../static-resource-legacy/packages/schema/account/deliveryStatus.js","../../../../static-resource-legacy/packages/bulk-edit/bulkEdit/bulkEditi18n.js","../../../../static-resource-legacy/packages/bulk-edit/model/audience/changeBid.js","../../../../static-resource-legacy/packages/bulk-edit/model/audience/changeStatus.js","../../../../static-resource-legacy/packages/bulk-edit/model/demographics/changeCashbackPercent.js","../../../../static-resource-legacy/packages/bulk-edit/model/download/accountSelectionLists.js","../../../../static-resource-legacy/packages/bulk-edit/model/shared/changeUrlOptions.js","../../../../static-resource-legacy/packages/bulk-edit/view/demographics/changeCashbackPercent.js","../../../../static-resource-legacy/packages/bulk-edit/view/escapeHelper.js","../../../../static-resource-legacy/packages/bulk-edit/viewmodel/shared/trackingTemplateActions.js","../../../../static-resource-legacy/packages/bulk-edit/viewmodel/shared/customParametersActions.js","../../../../static-resource-legacy/packages/bulk-edit/viewmodel/shared/entityProgressText.js","../../../../static-resource-legacy/packages/bulk-edit/viewmodel/shared/changeUrlOptions.js","../../../../static-resource-legacy/packages/bulk-edit/viewmodel/shared/changeUrlOptionsActions.js","../../../../static-resource-legacy/packages/bulk-edit/viewmodel/shared/finalUrlSuffixActions.js","../../../../static-resource-legacy/packages/bulk-edit/viewmodel/shared/entityTitleKeys.js","../../../../static-resource-legacy/packages/bulk-edit/view/shared/customParams-inline.js","../../../../static-resource-legacy/packages/bulk-edit/view/shared/changeUrlOptions.js","../../../../static-resource-legacy/packages/bulk-edit/viewmodel/ad/actions.js","../../../../static-resource-legacy/packages/bulk-edit/viewmodel/shared/urlOptionsFields.js","../../../../static-resource-legacy/packages/cron/cron.js","../../../../static-resource-legacy/packages/double-list-box-datasource/doubleListBoxDataSource.js","../../../../static-resource-legacy/packages/wunderbar/data/schemas/new/AdGroup.js","../../../../static-resource-legacy/packages/wunderbar/data/models/adgroup.js","../../../../static-resource-legacy/packages/wunderbar/data/collections/adgroups.js","../../../../static-resource-legacy/packages/entity-service/EntityService.js","../../../../static-resource-legacy/packages/schema/adgroup/entityStatus.js","../../../../static-resource-legacy/packages/wunderbar/data/collections/adgroupsCollection.js","../../../../static-resource-legacy/packages/schema/campaign/entityStatus.js","../../../../static-resource-legacy/packages/schema/account/statusIconLabel.js","../../../../static-resource-legacy/packages/entity-selector-service/entitySelectorService.js","../../../../static-resource-legacy/packages/extension/ko/sectionItemBinding.js","../../../../static-resource-legacy/packages/schema/automatedRules/ruleAuthoringOptions.js","../../../../static-resource-legacy/packages/schema/bulkEdit/audienceChangeBidActions.js","../../../../static-resource-legacy/packages/schema/bulkEdit/textActionOptions.js","../../../../static-resource-legacy/packages/schema/bulkEdit/textActionProperties.js","../../../../static-resource-legacy/packages/schema/bulkEdit/textActionType.js","../../../../static-resource-legacy/packages/shared/viewmodel/doubleListBoxViewModel.js","../../../../static-resource-legacy/packages/shared/view/doubleListBox.js","../../../../static-resource-legacy/packages/shared/view/pager.js","../../../../static-resource-legacy/packages/shared/view/popup.js","../../../../static-resource-legacy/packages/shared/viewmodel/singleListBoxViewModel.js","../../../../static-resource-legacy/packages/shared/view/singleListBox.js","../../../../static-resource-legacy/packages/uet/view/tagViewer.js","../../../../static-resource-legacy/packages/uet/view/uploadConversions/statusPoller.js","../../../../static-resource-legacy/packages/uet/view/uploadConversions/pollerTask.js","../../../../static-resource-legacy/packages/uet/viewmodel/uploadConversions/taskProgress.js","../../../../static-resource-legacy/packages/uet/view/uploadConversions/taskProgress.js","../../../../static-resource-legacy/packages/uet/viewmodel/uploadConversions/index.js","../../../../static-resource-legacy/packages/uet/viewmodel/uploadConversions/filePicker.js","../../../../static-resource-legacy/packages/uet/view/uploadConversions/templateFileUtil.js","../../../../static-resource-legacy/packages/uet/view/uploadConversions/filePicker.js","../../../../static-resource-legacy/packages/uet/view/uploadConversions/uploadFileTask.js","../../../../static-resource-legacy/packages/uet/viewmodel/uploadConversions/errorView.js","../../../../static-resource-legacy/packages/uet/view/uploadConversions/errorView.js","../../../../static-resource-legacy/packages/uet/view/uploadConversions/collaborator.js","../../../../static-resource-legacy/packages/uet/view/uploadConversions/modalManager.js","../../../../static-resource-legacy/packages/uet/view/uploadConversions/uploadConversions.js","../../../../static-resource-legacy/packages/walkme/model/index.js","../../../../summary-tabs/packages/ad-groups-grid/demo/mock/dummy-js-data-resource.js","../../../../summary-tabs/packages/ad-groups-grid/demo/mock/dummy-data-source.js","../../../../summary-tabs/packages/ad-groups-grid/demo/mock/schema.js","../../../../summary-tabs/packages/ad-groups-grid/index.js","../../../../summary-tabs/packages/ad-groups-grid/src/tooltips/campaign-managed-date-tooltip.js","../../../../summary-tabs/packages/ad-groups-grid/src/ad-groups-grid.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/inline-editable/save.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/ad-group-cashback-percent-column.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/ad-group-cashback-scope-column.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/ad-group-coupon-column.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/inline-editable/language-view.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/language.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/inline-editable/prompt.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/index.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/ad-group.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/campaign.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/bid-strategy-type.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/bid-base-column.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/search-bid-column.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/cpm-bid-column.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/cpv-bid-column.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/percent-cpc-bid-column.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/pay-per-stay-bid-column.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/quality-score.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/medium.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/ad-group-id.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/start-date.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/end-date.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/status-enum-map.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/status-icon.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/ad-group-type.js","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/tracking-template-columns.js","../../../../summary-tabs/packages/ad-groups-grid/src/grid-config.js","../../../../summary-tabs/packages/ad-groups-grid/demo/mock/edm.js","../../../../summary-tabs/packages/ad-groups-grid/src/plugins.js","../../../../summary-tabs/packages/ad-groups-grid/src/ad-group-gridview-factory.js","../../../../summary-tabs/packages/ad-groups-grid/src/bid-landscape/index.js","../../../../summary-tabs/packages/ads-grid/demo/mock/dummy-js-data-resource.js","../../../../summary-tabs/packages/ads-grid/demo/mock/dummy-data-source.js","../../../../summary-tabs/packages/ads-grid/demo/mock/schema.js","../../../../summary-tabs/packages/ads-grid/index.js","../../../../summary-tabs/packages/ads-grid/src/ads-editor/initialize-ad-editor.js","../../../../summary-tabs/packages/ads-grid/src/ad-strength/ad-strength-helper.js","../../../../summary-tabs/packages/ads-grid/src/ad-strength/suggestion-popup.js","../../../../summary-tabs/packages/ads-grid/src/instrumentation-schema.js","../../../../summary-tabs/packages/ads-grid/src/editorial-reason/show-rejection-reasons.js","../../../../summary-tabs/packages/ads-grid/src/ads-grid.js","../../../../summary-tabs/packages/ads-grid/src/columns/attributes/status-icon.js","../../../../summary-tabs/packages/ads-grid/src/columns/index.js","../../../../summary-tabs/packages/ads-grid/src/columns/attributes/ad-group.js","../../../../summary-tabs/packages/ads-grid/src/columns/attributes/ad-id.js","../../../../summary-tabs/packages/ads-grid/src/columns/attributes/ad-type.js","../../../../summary-tabs/packages/ads-grid/src/columns/attributes/device-preference.js","../../../../summary-tabs/packages/ads-grid/src/columns/attributes/ad-preview.js","../../../../summary-tabs/packages/ads-grid/src/columns/attributes/ads-by-bing.js","../../../../summary-tabs/packages/ads-grid/src/columns/attributes/ad-strength.js","../../../../summary-tabs/packages/ads-grid/src/grid-config.js","../../../../summary-tabs/packages/ads-grid/demo/mock/edm.js","../../../../summary-tabs/packages/ads-grid/src/ads-status.js","../../../../summary-tabs/packages/ads-grid/src/plugins.js","../../../../summary-tabs/packages/ads-grid/src/ads-gridview-factory.js","../../../../summary-tabs/packages/dimensions-grid/index.js","../../../../summary-tabs/packages/dimensions-grid/src/grid/grid-footer-view.js","../../../../summary-tabs/packages/dimensions-grid/src/grid/dimension-grid-view.js","../../../../summary-tabs/packages/dimensions-grid/src/grid/grid-config.js","../../../../summary-tabs/packages/dimensions-grid/src/grid/plugins.js","../../../../summary-tabs/packages/dimensions-grid/src/grid/gridview-factory.js","../../../../summary-tabs/packages/dimensions-grids-config/src/constants.js","../../../../summary-tabs/packages/dimensions-grids-config/src/add-column-on-level.js","../../../../summary-tabs/packages/dimensions-grids-config/src/shared/columns.js","../../../../summary-tabs/packages/dimensions-grids-config/src/column-config-to-chooser-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/ageGender/ageGender-grid-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/ageGender/ageGender-grid-column-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/callforwarding/callforwarding-grid-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/callforwarding/callforwarding-grid-column-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/shared/util.js","../../../../summary-tabs/packages/dimensions-grids-config/src/geographic/geographic-grid-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/geographic/geographic-grid-column-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/landing/landing-grid-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/landing/landing-grid-column-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/publisher/publisher-grid-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/publisher/publisher-grid-column-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/searchterm/searchterm-grid-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/searchterm/searchterm-grid-column-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/shopping/shopping-grid-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/shopping/shopping-grid-column-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/time/time-grid-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/time/time-grid-column-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/labels/shared/utils.js","../../../../summary-tabs/packages/dimensions-grids-config/src/labels/keyword/keyword-label-grid-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/labels/keyword/keyword-grid-column-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/labels/ad/ad-label-grid-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/labels/ad/ad-grid-column-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/labels/ad-group/ad-group-label-grid-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/labels/ad-group/ad-group-grid-column-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/labels/campaign/campaign-label-grid-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/labels/campaign/campaign-grid-column-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/labels/account/account-label-grid-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/labels/account/account-grid-column-config.js","../../../../summary-tabs/packages/dimensions-grids-config/src/index.js","../../../../summary-tabs/packages/negative-keywords-lists-grid/index.js","../../../../summary-tabs/packages/negative-keywords-lists-grid/src/negative-keyword-list-grid.js","../../../../summary-tabs/packages/negative-keywords-lists-grid/src/columns/attributes/campaign.js","../../../../summary-tabs/packages/negative-keywords-lists-grid/src/columns/attributes/list-name.js","../../../../summary-tabs/packages/negative-keywords-lists-grid/src/columns/index.js","../../../../summary-tabs/packages/negative-keywords-lists-grid/src/grid-config.js","../../../../summary-tabs/packages/negative-keywords-lists-grid/src/plugins.js","../../../../summary-tabs/packages/negative-keywords-lists-grid/src/create-association/create-association-view.js","../../../../summary-tabs/packages/negative-keywords-lists-grid/src/factory.js","../../../../summary-tabs/packages/negative-keywords-lists-keywords-grid/index.js","../../../../summary-tabs/packages/negative-keywords-lists-keywords-grid/src/error-map.js","../../../../summary-tabs/packages/negative-keywords-lists-keywords-grid/src/negative-keywords-lists-keyword-grid.js","../../../../summary-tabs/packages/negative-keywords-lists-keywords-grid/src/inline-editable/save.js","../../../../summary-tabs/packages/negative-keywords-lists-keywords-grid/src/inline-editable/prompt.js","../../../../summary-tabs/packages/negative-keywords-lists-keywords-grid/src/inline-editable/inline-edit-schema.js","../../../../summary-tabs/packages/negative-keywords-lists-keywords-grid/src/columns/attributes/negative-keywords.js","../../../../summary-tabs/packages/negative-keywords-lists-keywords-grid/src/columns/attributes/match-type.js","../../../../summary-tabs/packages/negative-keywords-lists-keywords-grid/src/columns/index.js","../../../../summary-tabs/packages/negative-keywords-lists-keywords-grid/src/grid-config.js","../../../../summary-tabs/packages/negative-keywords-lists-keywords-grid/src/plugins.js","../../../../summary-tabs/packages/negative-keywords-lists-keywords-grid/src/factory.js","../../with-prop-filter/src/with-prop-filter.js","../../../../static-resource-legacy/packages/bulk-edit/template/demographics/changeCashbackPercent.pug","../../../../static-resource-legacy/packages/bulk-edit/template/settings/changeBid.pug","../../../../static-resource-legacy/packages/bulk-edit/template/shared/changeUrlOptions.pug","../../../../static-resource-legacy/packages/bulk-edit/template/targeting/changeCashbackPercent.pug","../../../../static-resource-legacy/packages/shared/template/SectionItem.pug","../../../../static-resource-legacy/packages/shared/template/doubleListBox/defaultLayout.pug","../../../../static-resource-legacy/packages/shared/template/doubleListBox/defaultSelectedItem.pug","../../../../static-resource-legacy/packages/shared/template/doubleListBox/defaultSourceItem.pug","../../../../static-resource-legacy/packages/shared/template/pager.pug","../../../../static-resource-legacy/packages/shared/template/singleListBox/defaultItem.pug","../../../../static-resource-legacy/packages/shared/template/singleListBox/defaultLayout.pug","../../../../static-resource-legacy/packages/static-resources/Migrated/template/2.0/pug/finalUrl-inline.pug","../../../../static-resource-legacy/packages/uet/template/dialog.pug","../../../../static-resource-legacy/packages/uet/template/tagViewerContent.pug","../../../../static-resource-legacy/packages/uet/template/tagViewerFooter.pug","../../../../static-resource-legacy/packages/uet/template/uploadConversions/errorView.pug","../../../../static-resource-legacy/packages/uet/template/uploadConversions/filePicker.pug","../../../../static-resource-legacy/packages/uet/template/uploadConversions/taskProgress.pug","../../../../static-resource-legacy/packages/uet/template/uploadConversions/uploadConversions.pug","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/ad-group.pug","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/bid-base-column.pug","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/bid-strategy-type.pug","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/campaign.pug","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/date.pug","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/medium.pug","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/quality-score.pug","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/status-icon-header-template.pug","../../../../summary-tabs/packages/ad-groups-grid/src/columns/attributes/status-icon.pug","../../../../summary-tabs/packages/ads-grid/src/columns/attributes/ad-group.pug","../../../../summary-tabs/packages/ads-grid/src/columns/attributes/ad-preview.pug","../../../../summary-tabs/packages/ads-grid/src/columns/attributes/ad-strength.pug","../../../../summary-tabs/packages/ads-grid/src/columns/attributes/ad-type.pug","../../../../summary-tabs/packages/ads-grid/src/columns/attributes/ads-by-bing.pug","../../../../summary-tabs/packages/ads-grid/src/columns/attributes/device-preference.pug","../../../../summary-tabs/packages/dimensions-grid/src/grid/grid-footer.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/ageGender/agegender-template.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/ageGender/gender-template.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/ageGender/medium-template.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/callforwarding/callstatus-template.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/callforwarding/time-template.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/geographic/targetLocationType-template.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/labels/shared/label-template.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/publisher/network-template.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/searchterm/campaign-type-template.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/shopping/language-template.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/time/date-template.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/time/dayofweek-template.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/time/month-template.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/time/quarter-template.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/time/week-template.pug","../../../../summary-tabs/packages/dimensions-grids-config/src/time/year-template.pug","../../../../summary-tabs/packages/negative-keywords-lists-grid/src/columns/attributes/clickable-value.pug","../../../../summary-tabs/packages/negative-keywords-lists-grid/src/create-association/create-negative-keywords.pug","../../../../summary-tabs/packages/negative-keywords-lists-keywords-grid/src/columns/attributes/match-type.pug","../../../../summary-tabs/packages/negative-keywords-lists-keywords-grid/src/columns/attributes/negative-keyword.pug"],"sourcesContent":["/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport scrollTo from '@bingads-webui-static-legacy/extension/scrollTo';\r\nexport default {\r\n scrollTo: scrollTo\r\n};\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nexport default function scrollTo($e) {\r\n var $e = $($e), $nav = $('.navbar-fixed-top');\r\n if (!$e || $e.length < 1 || !$nav || $nav.length < 1) {\r\n return;\r\n }\r\n var offset = $e.offset();\r\n if (!offset) {\r\n return;\r\n }\r\n var navBarHeight = $nav.css('position') == 'absolute' ? 0 : 0 + $nav.outerHeight(), top = offset.top - navBarHeight, newTop = top < 0 ? 0 : top;\r\n window.scrollTo(0, newTop);\r\n}\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport * as dateFilterPref from '@bingads-webui-component-legacy/bingads-grid/service/date-filter-preferences';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport dateUtils from '@bingads-webui-static-legacy/utils/date';\r\nimport metadata from '@bingads-webui-static-legacy/date-range-metadata';\r\nimport Promise from 'bluebird';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!global');\r\nfunction getFilterPromise(names) {\r\n return Promise.map(names, function (name) {\r\n return dateFilterPref.getDateFilterPreference(name).then(function () {\r\n var dateFilter = dateFilterPref.getDateFilter(name), today = dateUtils.date(dateUtils.accountTimeZoneNow()), range = dateFilter && dateFilter.dateFilters && dateFilter.dateFilters.primaryRange ? getPSTTime(dateFilter.dateFilters.primaryRange) : getDefaultRange(today), result;\r\n if (!(!!range.start && !!range.end) || !(range.start <= range.end && range.end <= today)) {\r\n range = getDefaultRange(today);\r\n }\r\n var lcid = !_.isEmpty(range) ? range.Rangelcid : 0;\r\n if (lcid > 0 && pageContext && pageContext.CurrentUser && lcid != pageContext.CurrentUser.Locale) {\r\n result = _.extend(getDefaultRange(today), {\r\n grain: 4\r\n });\r\n } else if (!!range.grain && !range.isCustom) {\r\n result = metadata.getRangeByGrainId(i18n, range.grain, null, null, today);\r\n } else if (!range.grain || !range.start || !range.end) {\r\n result = _.extend(getDefaultRange(today), {\r\n grain: 4\r\n });\r\n } else {\r\n result = range;\r\n }\r\n return {\r\n name: name,\r\n value: _.extend(result, {\r\n formattedStart: dateUtils.format(result.start),\r\n formattedEnd: dateUtils.format(result.end),\r\n formatedStart: dateUtils.format(result.start),\r\n formatedEnd: dateUtils.format(result.end),\r\n compared: range.comparedRange\r\n })\r\n };\r\n });\r\n });\r\n}\r\nfunction getDefaultRange(today) {\r\n return metadata.getRanges(i18n, null, null, today).thisMonth;\r\n}\r\nfunction getPSTTime(range) {\r\n range.start = new Date(range.start);\r\n range.end = new Date(range.end);\r\n return range;\r\n}\r\nexport default {\r\n getFilterPromise: getFilterPromise\r\n};\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n actions: {\r\n 'Campaign': 'History_Description_Campaign_Copy',\r\n 'AdGroup': 'History_Description_AdGroup_Copy',\r\n 'Ad': 'History_Description_Ad_Copy',\r\n 'Keyword': 'History_Description_Keyword_Copy',\r\n 'AssetGroup': 'History_Description_AssetGroup_Copy'\r\n },\r\n args: {\r\n 'Bid/Amount': 'History_Description_Arg_Copy_IncludeBids',\r\n 'DestinationUrl': 'History_Description_Arg_Copy_IncludeDestinationURLs',\r\n 'Status': 'History_Description_Arg_Copy_PauseAfterPasting'\r\n },\r\n idBasedSelection: {\r\n 'Campaign': {\r\n 'Singular': 'History_Selection_Copy_IdBased_OneCampaign',\r\n 'Plural': 'History_Selection_Copy_IdBased_NCampaigns'\r\n },\r\n 'AdGroup': {\r\n 'Singular': 'History_Selection_Copy_IdBased_OneAdGroup',\r\n 'Plural': 'History_Selection_Copy_IdBased_NAdGroups'\r\n },\r\n 'Ad': {\r\n 'Singular': 'History_Selection_Copy_IdBased_OneAd',\r\n 'Plural': 'History_Selection_Copy_IdBased_NAds'\r\n },\r\n 'Keyword': {\r\n 'Singular': 'History_Selection_Copy_IdBased_OneKeyword',\r\n 'Plural': 'History_Selection_Copy_IdBased_NKeywords'\r\n },\r\n 'AssetGroup': {\r\n 'Singular': 'History_Selection_Copy_IdBased_OneAssetGroup',\r\n 'Plural': 'History_Selection_Copy_IdBased_NAssetGroups'\r\n }\r\n },\r\n filteredSelection: {\r\n 'Campaign': 'History_Selection_Copy_Filter_Campaign',\r\n 'AdGroup': 'History_Selection_Copy_Filter_AdGroup',\r\n 'Ad': 'History_Selection_Copy_Filter_Ad',\r\n 'Keyword': 'History_Selection_Copy_Filter_Keyword',\r\n 'AssetGroup': 'History_Selection_Copy_Filter_AssetGroup'\r\n },\r\n entityProperties: {\r\n 'AdgroupCampaignId': 'campaignId',\r\n 'AdAdgroupId': 'adGroupId',\r\n 'KeywordAdgroupId': 'adGroupId',\r\n 'CampaignName': 'campaignName',\r\n 'AdgroupName': 'adGroupName',\r\n 'AssetgroupId': 'assetGroupId'\r\n }\r\n};\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n 'CreditCardExpired': 10,\r\n 'IOExceeded': 20,\r\n 'PaymentInformationMissing': 30,\r\n 'InvalidFinancialStatusOther': 40,\r\n 'MigrationPaused': 45,\r\n 'CampaignDeleted': 48,\r\n 'CampaignSuspended': 49,\r\n 'CampaignBudgetPaused': 50,\r\n 'AdGroupExpired': 60,\r\n 'AdGroupDraft': 62,\r\n 'AdGroupDeleted': 63,\r\n 'CamAssetRejected': 64,\r\n 'CamAssetDeleted': 66,\r\n 'AdGroupTargetingTooNarrow': 67,\r\n 'EditorialRejected': 70,\r\n 'EditorialUnderAppeal': 75,\r\n 'UrlInvalid': 76,\r\n 'ApplicationNotFound': 77,\r\n 'ApplicationDestinationUrlMismatch': 78,\r\n 'EditorialPending': 80,\r\n 'AssociationDeleted': 85,\r\n 'CampaignUserPaused': 90,\r\n 'AdGroupPrivacyPending': 91,\r\n 'AdGroupUserPaused': 100,\r\n 'AdUserPaused': 110,\r\n 'KeywordMatchTypeAdGroupMediumCombinationInvalid': 115,\r\n 'KeywordUserPaused': 120,\r\n 'NegativeKeywordConflicts': 130,\r\n 'EditorialApprovedLimited': 200,\r\n 'LowSupply': 300,\r\n 'LowQuality': 400,\r\n 'BidBelowFirstPageBid': 500,\r\n 'Incomplete': 1000,\r\n 'BudgetSuggestions': 1001,\r\n 'InlineOpportunity': 1060,\r\n 'GeoCodingIncomplete': 1101,\r\n 'ProductTargetUserPaused': 1102,\r\n 'AdExtensionNotPresent': 1103,\r\n 'AdExtensionDeleted': 1104,\r\n 'AdExtensionAssociationDeleted': 1105,\r\n 'StoreIdNotAssociated': 1106,\r\n 'AdGroupAudienceAssociationPaused': 1107,\r\n 'AdGroupAudienceAssociationExcluded': 1108,\r\n 'AdNotPresent': 1200,\r\n 'AdNotActive': 1201,\r\n 'ApplicationDestinationUrlValidationIncomplete': 1252,\r\n 'Eligible': 2147483647\r\n};\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport filterSerializer from '@bingads-webui-campaign-legacy/bulk-operation/util/grid-filter-serializer';\r\nimport errorMapper from '@bingads-webui-static-legacy/api-error-mapper-service';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport decimalFormat from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport campaignBudgetTypes from '@bingads-webui-static-legacy/schema/campaign/budgetTypes';\r\nimport * as safeJSON from '@bingads-webui/safe-json';\r\nimport urlOptionsFields from '@bingads-webui-static-legacy/bulk-edit/viewmodel/shared/urlOptionsFields';\r\nimport copyPasteDescriptions from '@bingads-webui-static-legacy/bulk-edit/viewmodel/shared/copyPasteDescriptions';\r\nimport escapeHelper from '@bingads-webui-static-legacy/bulk-edit/view/escapeHelper';\r\nimport deliveryStatus from '@bingads-webui-static-legacy/schema/account/deliveryStatus';\r\nimport * as hotelCenterUtils from '@bingads-webui-campaign-legacy/hotel-center-utils/index';\r\nimport * as RSAHelper from '@bingads-webui-campaign/summary-grid-helper';\r\nimport * as customColumnUtils from '@bingads-webui-universal/custom-column-utils';\r\nimport * as customColumnServiceWrapper from '@bingads-webui/custom-column-service-wrapper';\r\nimport * as customColumnPreference from '@bingads-webui-component-legacy/bingads-grid/service/custom-column-preferences';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!global');\r\nvar bidUtils = hotelCenterUtils.bidUtils;\r\nvar bidMultiplierUtils = hotelCenterUtils.bidMultiplierUtils;\r\nvar metadata = {\r\n 'AdScheduleUseSearcherTimeZone': {\r\n argFields: ['Value'],\r\n additionalArgs: []\r\n },\r\n 'BidAmount/Bid/Amount': {\r\n argFields: ['Value'],\r\n additionalArgs: []\r\n },\r\n 'BidBoost/Multiplier': {\r\n argFields: ['Value'],\r\n additionalArgs: [],\r\n formatEntityValueFunction: _formatBidMultipliersEntityValue\r\n },\r\n 'IsExcluded': {\r\n argFields: ['Value'],\r\n additionalArgs: []\r\n },\r\n 'CriterionBid/Bid/Amount': {\r\n argFields: ['Value'],\r\n additionalArgs: []\r\n },\r\n 'Bid': {\r\n argFields: ['Value'],\r\n additionalArgs: [],\r\n formatEntityValueFunction: _formatBidEntityValue\r\n },\r\n 'BidAdjustment': {\r\n argFields: ['Value'],\r\n additionalArgs: [],\r\n jobSelectionFunction: _bidAdjustmentJobSelectionFunction,\r\n summaryFunction: _bidAdjustmentSummaryFunction\r\n },\r\n 'BidMultipliers': {\r\n argFields: ['Value'],\r\n additionalArgs: [],\r\n formatEntityValueFunction: _formatBidMultipliersEntityValue\r\n },\r\n 'CampaignCashback/Percent': {\r\n argFields: ['Value'],\r\n summaryFunction: _getJobSummaryCashbackPercent\r\n },\r\n 'AdGroupCashback/Percent': {\r\n argFields: ['Value'],\r\n summaryFunction: _getJobSummaryCashbackPercent\r\n },\r\n 'CashbackAdjustment': {\r\n argFields: ['Value'],\r\n summaryFunction: _getJobSummaryCashbackPercent\r\n },\r\n 'PercentCpcBid/RateAmount/Amount': {\r\n argFields: ['Value'],\r\n summaryFunction: _getJobSummaryPercentCpcBid,\r\n localizeAdditionalArgsFunction: _localizePercentAdditionalArgs\r\n },\r\n 'CommissionRate/RateAmount/Amount': {\r\n argFields: ['Value'],\r\n summaryFunction: _getJobSummaryCommissionRate,\r\n localizeAdditionalArgsFunction: _localizePercentAdditionalArgs\r\n },\r\n 'AudienceCriterion/CashbackAdjustment': {\r\n argFields: ['Value'],\r\n summaryFunction: _getJobSummaryCashbackPercent\r\n },\r\n 'ProductGroupCashback/Percent': {\r\n argFields: ['Value'],\r\n summaryFunction: _getJobSummaryCashbackPercent\r\n },\r\n 'CampaignCashback/MonthlyBudget': {\r\n argFields: ['Value'],\r\n summaryFunction: _getJobSummaryCampaignCashbackMonthlyBudget\r\n },\r\n 'Bid/Amount': {\r\n argFields: ['Value'],\r\n additionalArgs: [],\r\n formatEntityValueFunction: _formatBidAmountEntityValue,\r\n localizeAdditionalArgsFunction: _localizeBidAmountAdditionalArgs\r\n },\r\n Status: {\r\n argFields: ['Value'],\r\n summaryFunction: _statusSummaryFunction\r\n },\r\n 'Budget/Amount': {\r\n argFields: ['Value'],\r\n summaryFunction: _getJobSummaryCampaignBudget\r\n },\r\n 'BiddingScheme': {\r\n argFields: ['Value'],\r\n formatEntityValueFunction: _formatBiddingSchemeEntityValue\r\n },\r\n 'BidStrategyId': {\r\n argFields: ['Value'],\r\n formatEntityValueFunction: _formatBidStrategyIdEntityValue\r\n },\r\n 'MatchType': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'ContentBid': {\r\n argFields: ['Value']\r\n },\r\n 'SearchBid': {\r\n argFields: ['Value']\r\n },\r\n 'Title': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'TitlePart2': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'TitlePart3': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'Text': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'TextPart2': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'BusinessName': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'Headline': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'Headlines': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'Descriptions': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'LongHeadline': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'DisplayUrl': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'DestinationUrl': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'FinalUrls': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'Path1': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'Path2': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'MobileFinalUrls': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'DevicePreference': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'TrackingUrlTemplate': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'FinalUrlSuffix': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'UrlCustomParameters': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'UrlCustomParameters/Key': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'UrlCustomParameters/Value': {\r\n argFields: ['Value', 'SearchString']\r\n },\r\n 'AudienceCriterion/BidMultiplier': {\r\n argFields: ['Value']\r\n },\r\n 'AdGroupAudienceAssociation': {\r\n argFields: ['AssociationList']\r\n },\r\n 'AudienceAssociation': {\r\n argFields: ['AssociationList']\r\n },\r\n 'CopyAction': {\r\n argFields: ['DestinationParentEntityIds'],\r\n summaryFunction: _getCopyPasteSummary,\r\n localizeAdditionalArgsFunction: _localizeCopyPasteArgs,\r\n jobSelectionFunction: _getCopyPasteSelection,\r\n formatEntityValueFunction: _formatCopyPasteEntityValue,\r\n historyJobDetails: 'CopyHistoryJobDetails'\r\n },\r\n 'QueryOnlyAction': {\r\n argFields: ['Value']\r\n },\r\n 'LabelAssociation': {\r\n argFields: ['AssociationList']\r\n },\r\n 'LabelDisassociation': {\r\n argFields: ['AssociationList']\r\n },\r\n 'Languages': {\r\n argFields: ['Value']\r\n },\r\n 'Language': {\r\n argFields: ['Value']\r\n }\r\n}, quickFilters = {\r\n enabledCampaigns: {\r\n SelectedColumn: 'CampaignStatus',\r\n SelectedOperator: 'EnumSelection',\r\n Values: ['121', '126']\r\n },\r\n enabledKeywords: {\r\n SelectedColumn: 'KeywordStatus',\r\n SelectedOperator: 'EnumSelection',\r\n Values: ['161']\r\n },\r\n enabledAdGroups: {\r\n SelectedColumn: 'AdGroupStatus',\r\n SelectedOperator: 'EnumSelection',\r\n Values: ['141', '126']\r\n },\r\n enabledAds: {\r\n SelectedColumn: 'AdUiDisplayStatus',\r\n SelectedOperator: 'EnumSelection',\r\n Values: ['1']\r\n }\r\n}, dataSourceFilters = {\r\n criterionType: {\r\n SelectedColumn: 'Criterion',\r\n SelectedOperator: '$isof',\r\n Values: ['Model.AgeCriterion', 'Model.GenderCriterion', 'Model.CompanyNameCriterion', 'Model.JobFunctionCriterion', 'Model.IndustryCriterion']\r\n },\r\n LevelOfDetails: {\r\n SelectedColumn: 'LevelOfDetails',\r\n SelectedOperator: 'Equal',\r\n Values: ['AdGroup']\r\n }\r\n};\r\nvar booleanFields = ['KeywordIsLastImported', 'CampaignIsLastImported', 'AdIsLastImported', 'AdGroupIsLastImported'];\r\nfunction _getJobModelInfo(jobModel) {\r\n var batchAction = jobModel.get('BatchAction'), firstActionModel = batchAction.Actions[0], properties = _.pluck(batchAction.Actions, 'Property'), entity = jobModel.get('Entity'), actionValueType = _getActionValueType(firstActionModel), jobMetadata = metadata[properties[0]] || metadata[actionValueType] || ({}), isCashbackPercent = typeof properties[0] === 'string' ? properties[0].search('Cashback/Percent') !== -1 || properties[0].search('CashbackAdjustment') !== -1 : false, isCashbackBudget = properties[0] === 'CampaignCashback/MontlyBudget';\r\n var isPercentCPCBid = properties[0] === 'PercentCpcBid/RateAmount/Amount';\r\n var isCommissionRate = properties[0] === 'CommissionRate/RateAmount/Amount';\r\n return {\r\n properties: properties,\r\n entity: entity,\r\n metadata: jobMetadata,\r\n actionValueType: actionValueType,\r\n actions: batchAction.Actions,\r\n isNumeric: !!(actionValueType === 'NumericAction' || actionValueType === 'BidEstimateAction'),\r\n isCurrency: firstActionModel.ActionType === 'ChangeByAmount' || firstActionModel.ActionType === 'SetToAmount' && entity !== 'AdGroupAudienceAssociation' && entity !== 'AudienceAssociation' && entity !== 'CampaignCriterion' && entity !== 'AdGroupCriterion' || isCashbackBudget,\r\n isPercent: firstActionModel.ActionType === ('SetToAmount' && (entity === 'AdGroupAudienceAssociation' || entity === 'AudienceAssociation' || entity === 'CampaignCriterion' || entity === 'AdGroupCriterion')) || isCashbackPercent || isPercentCPCBid || isCommissionRate\r\n };\r\n}\r\nfunction _getActionValueType(actionModel) {\r\n var actionValueType = _.chain(actionModel).values().find(function (item) {\r\n return item.indexOf('#Model') === 0;\r\n }).value();\r\n return actionValueType ? actionValueType.substring(('#Model.').length) : 'TextAction';\r\n}\r\nfunction getJobDescription(jobModel) {\r\n var modelInfo = _getJobModelInfo(jobModel), summaryFunction = modelInfo.metadata.summaryFunction || _getJobSummary, localizeAdditionalArgsFunction = modelInfo.metadata.localizeAdditionalArgsFunction || _localizeAdditionalArgs;\r\n return {\r\n summary: summaryFunction(jobModel, modelInfo),\r\n args: localizeAdditionalArgsFunction(modelInfo)\r\n };\r\n}\r\nfunction splitProperty(property) {\r\n var splitStr = property.replace(/([A-Z])/g, ' $1').toLowerCase().trim();\r\n return splitStr.charAt(0).toUpperCase() + splitStr.slice(1);\r\n}\r\nfunction _getJobSummary(jobModel, modelInfo) {\r\n var entityName = i18n.getString('EntityName_' + modelInfo.entity), jobSummary = '';\r\n _.each(modelInfo.actions, function (item, index) {\r\n var singleLineSummary = '';\r\n var property = modelInfo.properties[index];\r\n var propertyMsg = splitProperty(property || '');\r\n var propertyName = i18n.getString('Property_' + property) || propertyMsg;\r\n var i18nActionBasedKey = _geti18nActionBasedKey(modelInfo, index);\r\n var i18nValueBasedKey = _geti18nValueBasedKey(modelInfo, index);\r\n if (property === urlOptionsFields.customParameters && _.isArray(item.Value)) {\r\n var value = _.map(item.Value, function (param, index) {\r\n var val = safeJSON.parseSync(param) || ({});\r\n return '{_' + val.Key + '} =' + val.Value;\r\n });\r\n var localizedKey = i18nActionBasedKey;\r\n var actionType;\r\n if (item.ActionType != modelInfo.actions[0].ActionType) {\r\n localizedKey = 'History_Description_' + modelInfo.actionValueType + '_' + item.ActionType;\r\n }\r\n var summary = i18n.getString(localizedKey, entityName, propertyName, value);\r\n singleLineSummary += summary;\r\n } else {\r\n var jobArgs = _getJobArguments(modelInfo, item);\r\n var args = jobArgs.length ? jobArgs : [item.Value || ''];\r\n if (!modelInfo.isNumeric && !modelInfo.isCurrency) {\r\n _.each(args, function (item, index, list) {\r\n var localizedString = i18n.getString('History_Description_' + item);\r\n if (localizedString) {\r\n list[index] = localizedString;\r\n }\r\n ;\r\n });\r\n }\r\n var i18nActionBasedArgs = [i18nActionBasedKey, entityName, propertyName].concat(args);\r\n var i18nValueBasedArgs = [i18nValueBasedKey, entityName, propertyName].concat(args);\r\n var valueBased = i18n.getString.apply(i18n, i18nValueBasedArgs);\r\n var actionBased = i18n.getString.apply(i18n, i18nActionBasedArgs);\r\n singleLineSummary += valueBased || actionBased;\r\n }\r\n singleLineSummary = escapeHelper.escape(singleLineSummary);\r\n jobSummary = index > 0 ? jobSummary.concat('
') : jobSummary;\r\n jobSummary = jobSummary.concat(singleLineSummary);\r\n });\r\n return jobSummary;\r\n}\r\nfunction _geti18nValueBasedKey(jobInfo, index) {\r\n index = index <= 0 ? 0 : index;\r\n return 'History_Description_' + jobInfo.properties[index] + '_' + jobInfo.entity + '_' + jobInfo.actions[index].Value;\r\n}\r\n;\r\nfunction _geti18nActionBasedKey(jobInfo, index) {\r\n index = index <= 0 ? 0 : index;\r\n var key = 'History_Description_' + jobInfo.actionValueType + '_' + jobInfo.actions[index].ActionType;\r\n if (jobInfo.isNumeric && jobInfo.actions[index].Value && jobInfo.actions[index].ActionType !== 'SetToAmount') {\r\n key = key + (jobInfo.actions[index].Value > 0 ? '_Increase' : '_Decrease');\r\n }\r\n if (jobInfo.entity === 'Keyword' && jobInfo.properties[index] === 'MatchType') {\r\n key = 'History_Description_Keyword_MatchType';\r\n }\r\n if (jobInfo.entity === 'AdGroup' && jobInfo.properties[index] === 'AdGroupAudienceAssociation') {\r\n var isNewAudienceEnabled = pageContext.Permissions.IsNewAudienceEnabled;\r\n key = 'History_Description_AudienceAssociationAction' + '_' + jobInfo.actions[index].BidType + (isNewAudienceEnabled ? '_CustomInMarket' : '');\r\n } else if ((jobInfo.entity === 'AdGroup' || jobInfo.entity === 'Campaign') && jobInfo.properties[index] === 'AudienceAssociation') {\r\n key = 'History_Description_AudienceAssociationAction_Campaign_' + jobInfo.actions[index].BidType;\r\n } else if (jobInfo.properties[index] === 'LabelAssociation' || jobInfo.properties[index] === 'LabelDisassociation') {\r\n var isSingular = jobInfo.actions[index].AssociationList && jobInfo.actions[index].AssociationList.length <= 1;\r\n key = 'History_Description_' + jobInfo.properties[index] + '_' + jobInfo.entity;\r\n if (isSingular) {\r\n key += '_Singular';\r\n }\r\n }\r\n if (_.contains(['Hotel', 'HotelGroup'], jobInfo.entity)) {\r\n if (jobInfo.properties[index] === 'Bid' || jobInfo.properties[index] === 'BidMultipliers') {\r\n key = 'History_Description_NumericAction_SetToAmount';\r\n }\r\n }\r\n return key;\r\n}\r\nfunction _getJobArguments(modelInfo, action) {\r\n return _.map(modelInfo.metadata.argFields, function (argField) {\r\n return _formatActionValue(modelInfo, action[argField]);\r\n });\r\n}\r\nfunction _formatActionValue(modelInfo, value) {\r\n if (modelInfo.properties[0] === 'LabelAssociation' || modelInfo.properties[0] === 'LabelDisassociation') {\r\n return value.length;\r\n }\r\n if (modelInfo.entity === 'AdGroup' && modelInfo.properties[0] === 'AdGroupAudienceAssociation') {\r\n return value.length;\r\n }\r\n if ((modelInfo.entity === 'Campaign' || modelInfo.entity === 'AdGroup') && modelInfo.properties[0] === 'AudienceAssociation') {\r\n return value.length;\r\n }\r\n if (_.contains(['Hotel', 'HotelGroup'], modelInfo.entity)) {\r\n var jsonValue = JSON.parse(value);\r\n if (modelInfo.properties[0] === 'Bid') {\r\n return bidUtils.getText(jsonValue, i18n.getString('BulkEdit_HotelCenter_UseParent'));\r\n } else if (modelInfo.properties[0] === 'BidMultipliers') {\r\n return bidMultiplierUtils.getMultipliersText(jsonValue, false, i18n.getString('BulkEdit_HotelCenter_UseParent'));\r\n }\r\n }\r\n if (modelInfo.properties[0] === 'BidStrategyId') {\r\n return _.result(safeJSON.parseSync(value), 'Name', '');\r\n }\r\n if (modelInfo.properties[0] === 'BiddingScheme') {\r\n return 'BiddingScheme_' + _getBiddingSchemeValue(value);\r\n }\r\n if (modelInfo.properties[0] === 'AdScheduleUseSearcherTimeZone') {\r\n return value === 'true' ? 'AdSchedulingTimeZone_LocationOfPerson' : 'AdSchedulingTimeZone_LocationOfYourAccount';\r\n }\r\n if (!modelInfo.isNumeric) {\r\n return value;\r\n }\r\n var action = modelInfo.actions[0] || ({});\r\n if ((modelInfo.properties[0] === 'PercentCpcBid' || modelInfo.properties[0] === 'CommissionRate') && action.ActionType === 'ChangeByPercent') {\r\n return _formatNumericValue(modelInfo, value, false, false);\r\n }\r\n if ((modelInfo.properties[0] === 'PercentCpcBid' || modelInfo.properties[0] === 'CommissionRate') && action.ActionType === 'ChangeByAmount') {\r\n return _formatNumericValue(modelInfo, value, false, false) + '(%)';\r\n }\r\n return _formatNumericValue(modelInfo, value, modelInfo.isCurrency, modelInfo.isPercent);\r\n}\r\nfunction _localizeAdditionalArgs(modelInfo) {\r\n var additionalArgs = [];\r\n _.each(modelInfo.actions, function (item) {\r\n var mappedValues = _.map(modelInfo.actions[0] || ({}), function (value, key) {\r\n return !!value ? i18n.getString('History_Description_Arg_' + key, value, pageContext.AccountCurrencyCode) : null;\r\n });\r\n additionalArgs = _.union(additionalArgs, _.filter(mappedValues, function (val) {\r\n return !!val;\r\n }));\r\n });\r\n return additionalArgs;\r\n}\r\nfunction _localizeCopyPasteArgs(modelInfo) {\r\n var additionalArgs = [];\r\n _.each(modelInfo.actions, function (action) {\r\n if (action.Property && copyPasteDescriptions.args[action.Property]) {\r\n additionalArgs.push(i18n.getString(copyPasteDescriptions.args[action.Property]));\r\n }\r\n });\r\n return additionalArgs;\r\n}\r\nfunction _getCopyPasteSummary(jobModel, jobInfo) {\r\n return jobInfo.entity && copyPasteDescriptions.actions[jobInfo.entity] ? i18n.getString(copyPasteDescriptions.actions[jobInfo.entity]) : '';\r\n}\r\nfunction _getJobSummaryCashbackPercent(jobModel, jobInfo) {\r\n jobInfo.properties = ['CashbackPercent'];\r\n return _getJobSummary(jobModel, jobInfo);\r\n}\r\nfunction _getJobSummaryCampaignCashbackMonthlyBudget(jobModel, jobInfo) {\r\n jobInfo.properties = ['CampaignCashbackMonthlyBudget'];\r\n return _getJobSummary(jobModel, jobInfo);\r\n}\r\nfunction _getJobSummaryPercentCpcBid(jobModel, jobInfo) {\r\n jobInfo.properties = ['PercentCpcBid'];\r\n return _getJobSummary(jobModel, jobInfo);\r\n}\r\nfunction _getJobSummaryCommissionRate(jobModel, jobInfo) {\r\n jobInfo.properties = ['CommissionRate'];\r\n return _getJobSummary(jobModel, jobInfo);\r\n}\r\nfunction _getJobSummaryCampaignBudget(jobModel, jobInfo) {\r\n var selection = jobModel.get('Selection'), isMonthly = selection && selection.QueryString && (decodeURIComponent(selection.QueryString).indexOf('Budget/Type eq \\'' + campaignBudgetTypes.monthly + '\\'') >= 0 || decodeURIComponent(selection.QueryString).indexOf('Budget/Type eq Enum.BudgetType\\'' + campaignBudgetTypes.monthly + '\\'') >= 0);\r\n jobInfo.properties = isMonthly ? ['MonthlyBudget'] : ['DailyBudget'];\r\n return _getJobSummary(jobModel, jobInfo);\r\n}\r\nfunction _getJobSelection(jobModel, modelInfo) {\r\n var filter = filterSerializer.fromDescription(jobModel.get('Description')), sortedFilter = splitFilter(filter && filter.FilterExpressions || []), quickFilter = sortedFilter.quickFilter, expressions = sortedFilter.expressions;\r\n if (filter && filter.idBased) {\r\n return {\r\n scope: _getIdBasedScopeString(filter, modelInfo),\r\n idBased: true\r\n };\r\n }\r\n if (!filter || expressions.length == 0) {\r\n return {\r\n scope: _getScopeString(jobModel, modelInfo, quickFilter)\r\n };\r\n }\r\n return {\r\n scope: _getScopeString(jobModel, modelInfo, quickFilter),\r\n filter: _getFilterString(expressions)\r\n };\r\n}\r\nfunction _getCopyPasteSelection(jobModel, modelInfo) {\r\n var pasted, filter;\r\n var copied = pasted = '';\r\n var selection = _getJobSelection(jobModel, modelInfo);\r\n if (selection.idBased) {\r\n filter = filterSerializer.fromDescription(jobModel.get('Description'));\r\n copied = filter.idsCount > 1 ? i18n.getString(copyPasteDescriptions.idBasedSelection[modelInfo.entity].Plural, filter.idsCount) : i18n.getString(copyPasteDescriptions.idBasedSelection[modelInfo.entity].Singular, filter.idsCount);\r\n } else {\r\n copied = i18n.getString(copyPasteDescriptions.filteredSelection[modelInfo.entity]);\r\n }\r\n var ids = 0;\r\n _.each(modelInfo.actions, function (action) {\r\n _.each(modelInfo.metadata.argFields, function (argField) {\r\n if (action[argField] && _.isArray(action[argField])) {\r\n ids += action[argField].length;\r\n }\r\n });\r\n });\r\n if (modelInfo.entity === 'AdGroup' || modelInfo.entity === 'AssetGroup') {\r\n pasted = ids > 1 ? i18n.getString('History_Selection_Paste_NCampaigns', ids) : i18n.getString('History_Selection_Paste_OneCampaign', ids);\r\n } else if (modelInfo.entity !== 'Campaign') {\r\n pasted = ids > 1 ? i18n.getString('History_Selection_Paste_NAdGroups', ids) : i18n.getString('History_Selection_Paste_OneAdGroup', ids);\r\n }\r\n return _.extend(selection, {\r\n header: copied,\r\n footer: pasted\r\n });\r\n}\r\nfunction _bidAdjustmentJobSelectionFunction(jobModel, modelInfo) {\r\n if (!_isDemographicsJobModel(jobModel)) {\r\n return _getJobSelection(jobModel, modelInfo);\r\n }\r\n var filter = filterSerializer.fromDescription(jobModel.get('Description'));\r\n var sortedFilter = splitFilter(filter && filter.FilterExpressions || []);\r\n return {\r\n scope: _getScopeString(jobModel, modelInfo, sortedFilter.quickFilter, sortedFilter.dataSourceFilter),\r\n filter: _getFilterString(sortedFilter.expressions)\r\n };\r\n}\r\nfunction _statusSummaryFunction(jobModel, modelInfo) {\r\n if (!_isDemographicsJobModel(jobModel)) {\r\n return _getJobSummary(jobModel, modelInfo);\r\n }\r\n return _getDemographicsJobSummary(jobModel, modelInfo);\r\n}\r\nfunction _bidAdjustmentSummaryFunction(jobModel, modelInfo) {\r\n if (!_isDemographicsJobModel(jobModel)) {\r\n return _getJobSummary(jobModel, modelInfo);\r\n }\r\n return _getDemographicsJobSummary(jobModel, modelInfo);\r\n}\r\nfunction _getDemographicsJobSummary(jobModel, modelInfo) {\r\n var filter = filterSerializer.fromDescription(jobModel.get('Description'));\r\n var sortedFilter = splitFilter(filter && filter.FilterExpressions || []);\r\n var criterionType = sortedFilter.dataSourceFilter.criterionType.Values[0];\r\n var entityName = i18n.getString('EntityName_' + modelInfo.entity + '_' + criterionType);\r\n var jobSummary = '';\r\n _.each(modelInfo.actions, function (item, index) {\r\n var singleLineSummary = '';\r\n var property = modelInfo.properties[index];\r\n var propertyName = i18n.getString('Property_' + property);\r\n var i18nActionBasedKey = _geti18nActionBasedKey(modelInfo, index);\r\n var i18nValueBasedKey = _geti18nValueBasedKey(modelInfo, index);\r\n var args = _getJobArguments(modelInfo, item);\r\n var i18nActionBasedArgs = [i18nActionBasedKey, entityName, propertyName].concat(args);\r\n var i18nValueBasedArgs = [i18nValueBasedKey, entityName, propertyName].concat(args);\r\n var valueBased = i18n.getString.apply(i18n, i18nValueBasedArgs);\r\n var actionBased = i18n.getString.apply(i18n, i18nActionBasedArgs);\r\n singleLineSummary += valueBased || actionBased;\r\n singleLineSummary = escapeHelper.escape(singleLineSummary);\r\n jobSummary = index > 0 ? jobSummary.concat('
') : jobSummary;\r\n jobSummary = jobSummary.concat(singleLineSummary);\r\n });\r\n return jobSummary;\r\n}\r\nfunction _isDemographicsJobModel(jobModel) {\r\n var filter = filterSerializer.fromDescription(jobModel.get('Description'));\r\n var sortedFilter = splitFilter(filter && filter.FilterExpressions || []);\r\n return sortedFilter.dataSourceFilter && sortedFilter.dataSourceFilter.criterionType;\r\n}\r\nfunction getJobSelection(jobModel) {\r\n var modelInfo = _getJobModelInfo(jobModel);\r\n return modelInfo.metadata.jobSelectionFunction ? modelInfo.metadata.jobSelectionFunction(jobModel, modelInfo) : _getJobSelection(jobModel, modelInfo);\r\n}\r\nfunction getRuleSelection(jobModel, numberOfDigits) {\r\n var filter = filterSerializer.fromRuleDescription(jobModel.get('Description')), sortedFilter = splitFilter(filter && filter.FilterExpressions || []), quickFilter = sortedFilter.quickFilter, expressions = sortedFilter.expressions, modelInfo = _getJobModelInfo(jobModel);\r\n if (filter && filter.idBased) {\r\n var qfilter = _.find(_.values(quickFilter), function (filter) {\r\n return !_.isUndefined(filter);\r\n });\r\n if (qfilter) {\r\n expressions.splice(0, 1, qfilter);\r\n } else {\r\n expressions.splice(0, 1);\r\n }\r\n return {\r\n filter: expressions.length > 0 ? _getFilterString(expressions, numberOfDigits) : null,\r\n idBased: true\r\n };\r\n }\r\n if (!filter || expressions.length == 0) {\r\n return {\r\n scope: _getRuleScope(jobModel, modelInfo, quickFilter)\r\n };\r\n }\r\n return {\r\n scope: _getRuleScope(jobModel, modelInfo, quickFilter),\r\n filter: _getFilterString(expressions, numberOfDigits)\r\n };\r\n}\r\nfunction _getRuleScope(jobModel, modelInfo, quickFilter) {\r\n var selection = jobModel.get('Selection'), result = selection && selection.CampaignId ? i18n.getString('RulesManagementGrid_SelectedCampaign') : quickFilter && !!quickFilter.enabledCampaigns ? i18n.getString('History_Selection_AllEnabledCampaigns') : i18n.getString('History_Selection_AllCampaigns');\r\n if (modelInfo.entity == 'Campaign') {\r\n return result;\r\n }\r\n result += ' > ' + (selection && selection.AdGroupId ? i18n.getString('RulesManagementGrid_SelectedAdGroup') : quickFilter && !!quickFilter.enabledAdGroups ? i18n.getString('History_Selection_AllEnabledAdGroups') : i18n.getString('History_Selection_AllAdGroups'));\r\n if (modelInfo.entity == 'AdGroup') {\r\n return result;\r\n }\r\n if (modelInfo.entity == 'Keyword') {\r\n result += ' > ' + (quickFilter && !!quickFilter.enabledKeywords ? i18n.getString('History_Selection_AllEnabledKeywords') : i18n.getString('History_Selection_AllKeywords'));\r\n } else if (modelInfo.entity == 'Ads') {\r\n result += ' > ' + (quickFilter && !!quickFilter.enabledAds ? i18n.getString('History_Selection_AllEnabledAds') : i18n.getString('History_Selection_AllAds'));\r\n } else if (modelInfo.entity == 'DsaTarget') {\r\n result += ' > ' + (quickFilter && !!quickFilter.enabledAds ? i18n.getString('BulkEdit_History_Selection_AllEnabledDsatargets') : i18n.getString('BulkEdit_History_Selection_AllDsatargets'));\r\n }\r\n return result;\r\n}\r\nfunction _getScopeString(jobModel, modelInfo, quickFilter, dataSourceFilter) {\r\n var campaign = jobModel.get('Campaign'), adgroup = jobModel.get('AdGroup'), campaignsLabel = campaign ? campaign.Name : quickFilter && !!quickFilter.enabledCampaigns ? i18n.getString('History_Selection_AllEnabledCampaigns') : i18n.getString('History_Selection_AllCampaigns'), result = campaignsLabel;\r\n if (modelInfo.entity == 'Campaign' || modelInfo.entity == 'CampaignCriterion' || modelInfo.entity == 'NegativeCampaignCriterion') {\r\n return result;\r\n }\r\n result += ' > ' + (adgroup ? adgroup.Name : quickFilter && !!quickFilter.enabledAdGroups ? i18n.getString('History_Selection_AllEnabledAdGroups') : i18n.getString('History_Selection_AllAdGroups'));\r\n switch (modelInfo.entity) {\r\n case 'AdGroup':\r\n return result;\r\n case 'Keyword':\r\n result += ' > ' + (quickFilter && !!quickFilter.enabledKeywords ? i18n.getString('History_Selection_AllEnabledKeywords') : i18n.getString('History_Selection_AllKeywords'));\r\n break;\r\n case 'Ad':\r\n result += ' > ' + (quickFilter && !!quickFilter.enabledAds ? i18n.getString('History_Selection_AllEnabledAds') : i18n.getString('History_Selection_AllAds'));\r\n break;\r\n case 'AdGroupAudienceAssociation':\r\n result += ' > ' + i18n.getString('History_Selection_AllAdGroupAudienceAssociation');\r\n break;\r\n case 'AudienceAssociation':\r\n result += ' > ' + i18n.getString('History_Selection_AllAudienceAssociation');\r\n break;\r\n case 'DsaTarget':\r\n result += ' > ' + i18n.getString('BulkEdit_History_Selection_AllDsatargets');\r\n break;\r\n case 'PerformanceTarget':\r\n result = i18n.getString('BulkEdit_History_Selection_AllPerformancetargets');\r\n break;\r\n }\r\n return result;\r\n}\r\nfunction _getIdBasedScopeString(filter, modelInfo) {\r\n return i18n.getString('History_Selection_IdBased_' + modelInfo.entity, filter.idsCount);\r\n}\r\nfunction _getFilterString(filterExpressions, numberOfDigits) {\r\n if (filterExpressions.length == 0) {\r\n return '';\r\n }\r\n var result = i18n.getString('Filter') + ': ';\r\n _.each(filterExpressions, function (expr) {\r\n if (expr.SelectedColumn === 'DeliveryStatus') {\r\n expr.Values = _.without(expr.Values, deliveryStatus['InlineOpportunity'].toString());\r\n }\r\n if (expr.SelectedColumn === 'AdType' && pageContext.Permissions.IsMultiMediaAdsEnabled) {\r\n var index = expr.Values.indexOf('4096');\r\n if (index >= 0) {\r\n expr.Values[index] = '2048';\r\n }\r\n index = expr.Values.indexOf('Responsive');\r\n if (index >= 0) {\r\n expr.Values[index] = '2048';\r\n }\r\n }\r\n _.extend(expr, {\r\n columnLocalized: _localizeColumnName(expr),\r\n operatorLocalized: _localizeOperator(expr),\r\n valuesLocalized: _localizeValues(expr, numberOfDigits).join(' ' + i18n.getString('Filter_Ampersand') + ' ')\r\n });\r\n });\r\n result = result + _.map(filterExpressions, function (expr) {\r\n if (expr.SelectedColumn === 'Labels') {\r\n return i18n.getString('History_Selection_SelectedLabels');\r\n }\r\n return expr.columnLocalized + ' ' + expr.operatorLocalized + ' ' + expr.valuesLocalized;\r\n }).join(', ');\r\n return result;\r\n}\r\nfunction _localizeColumnName(expression) {\r\n if (expression.SelectedColumn.startsWith('CustomColumn')) {\r\n var customColumnId = expression.SelectedColumn.split('CustomColumn')[1];\r\n var customColumnService = new customColumnServiceWrapper.CustomColumnServiceWrapper({\r\n name: customColumnUtils.getCustomColumnPreferenceName(),\r\n CustomColumns: customColumnPreference.getCustomColumnPreferenceStore()\r\n });\r\n var customColumnData = customColumnService.getAll();\r\n var customColumnInfo = _.find(customColumnData, function (customColumn) {\r\n return customColumn.id === customColumnId;\r\n });\r\n if (customColumnInfo) {\r\n return customColumnInfo.name;\r\n } else {\r\n return i18n.getString('ColumnName_DeletedCustomColumn');\r\n }\r\n }\r\n return i18n.getString('FilterLocalization_DataAttribute_' + expression.SelectedColumn);\r\n}\r\nfunction _localizeOperator(expression) {\r\n return i18n.getString('FilterLocalization_FilterOperator_' + expression.SelectedOperator);\r\n}\r\nfunction _localizeValues(expression, numberOfDigits) {\r\n var valuesToUse = _.isEmpty(expression.SelectedNames) ? expression.Values : expression.SelectedNames;\r\n return _.map(valuesToUse, function (value) {\r\n if (_.contains(['CampaignCashbackScope', 'AdGroupCashbackScope', 'Coupon'], expression.SelectedColumn)) {\r\n var scopeValue;\r\n if (value == null) {\r\n scopeValue = 'None';\r\n } else {\r\n scopeValue = _.result(value.split('\\''), '1');\r\n }\r\n var i18nKey = 'ColumnField_' + expression.SelectedColumn + '_' + scopeValue;\r\n return i18n.getString(i18nKey);\r\n }\r\n if (expression.SelectedColumn === 'DisplayBiddingStrategyType' && !pageContext.Permissions.dynamic.XandrVideoCampaigns) {\r\n if (value === '12') {\r\n return i18n.getString('BidStrategy_ManualCpm');\r\n } else if (value === '11') {\r\n return i18n.getString('BidStrategy_ManualCpv');\r\n }\r\n }\r\n if (expression.SelectedOperator == 'EnumSelection') {\r\n return i18n.getString('FilterLocalization_' + expression.SelectedColumn + '_' + value);\r\n }\r\n if (_.contains(['CampaignLanguages', 'Languages'], expression.SelectedColumn)) {\r\n return i18n.getString('Language_' + value);\r\n }\r\n if (_.contains(booleanFields, expression.SelectedColumn)) {\r\n return i18n.getString('FilterLocalization_BooleanFilter_' + value);\r\n }\r\n if (expression.SelectedColumn === 'HasAuctionInsight') {\r\n return i18n.getString('FilterLocalization_BooleanFilter_Available_' + value);\r\n }\r\n if (expression.SelectedColumn === 'AvailableInsightTypeIds') {\r\n return i18n.getString('Schema_Enum_FluctuationType_' + value);\r\n }\r\n if (!expression.SelectedColumn.match('Id$') && _.isNumber(value)) {\r\n return decimalFormat.fromFloatToString(value, numberOfDigits);\r\n }\r\n if (expression.SelectedColumn === 'AdGroupType') {\r\n if (typeof value === 'string' && value.search('SearchStandard') !== -1) {\r\n return i18n.getString('AdGroupType_SearchStandard');\r\n } else if (typeof value === 'string' && value.search('SearchDynamic') !== -1) {\r\n return i18n.getString('AdGroupType_SearchDynamic');\r\n }\r\n return '-';\r\n }\r\n return value;\r\n });\r\n}\r\nfunction mapEntityErrors(entityResult) {\r\n var apiErrorMessages = _.isArray(entityResult.Errors) ? _.map(entityResult.Errors, function (error) {\r\n return errorMapper.mapCampaignApiErrorCodeShort(error) || errorMapper.mapCampaignApiErrorCode(error);\r\n }) : [], editorialErrors = _.isArray(entityResult.EditorialErrors) ? errorMapper.mapEditorialErrors(entityResult.EditorialErrors, true) : [], editorialErrorMessages = _.map(editorialErrors, function (error) {\r\n return i18n.getString('HistoryJobDetails_EditorialError', error.countryName, error.message);\r\n });\r\n return apiErrorMessages.concat(editorialErrorMessages);\r\n}\r\n;\r\nfunction formatRSAString(value, property) {\r\n var rsaString = '';\r\n if (property === 'AdHeadlines') {\r\n rsaString = RSAHelper.getTitlePreviewFromJson(value);\r\n } else if (property === 'AdDescriptions') {\r\n rsaString = RSAHelper.getDescPreviewFromJson(value);\r\n }\r\n return rsaString;\r\n}\r\nfunction _formatEntityValue(modelInfo, changes, newValue) {\r\n if (changes.length == 1) {\r\n var value = newValue ? changes[0].NewValue : changes[0].OriginalValue;\r\n if (!modelInfo.isNumeric) {\r\n var formattedValue = i18n.getString('History_Description_' + value);\r\n if (_.contains(['AdHeadlines', 'AdDescriptions'], changes[0].Property)) {\r\n value = formatRSAString(value, changes[0].Property);\r\n }\r\n return !formattedValue ? escapeHelper.escape(value) : formattedValue;\r\n }\r\n return _formatNumericValue(modelInfo, value, true, modelInfo.isPercent);\r\n } else {\r\n var formattedValue = '';\r\n _.each(changes, function (item, index) {\r\n var propertyMsg = i18n.getString('BulkEdit_Property_' + changes[index].Property) || splitProperty(changes[index].Property);\r\n var propertyName = ('
').concat(propertyMsg).concat(': '), value = newValue ? changes[index].NewValue : changes[index].OriginalValue;\r\n if (_.contains(['AdHeadlines', 'AdDescriptions'], item.Property)) {\r\n value = formatRSAString(value, item.Property);\r\n } else {\r\n value = escapeHelper.escape(value);\r\n }\r\n formattedValue = propertyName ? formattedValue.concat(propertyName).concat(value) : formattedValue.concat(value);\r\n });\r\n return formattedValue;\r\n }\r\n}\r\nfunction _formatCopyPasteEntityValue(modelInfo, changes, newValue) {\r\n var entity = {};\r\n _.each(changes, function (change) {\r\n var field = copyPasteDescriptions.entityProperties[change.Property];\r\n if (field) {\r\n entity[field] = newValue ? change.NewValue : change.OriginalValue;\r\n }\r\n });\r\n return entity;\r\n}\r\nfunction _formatBiddingSchemeEntityValue(modelInfo, changes, newValue, entityKeys) {\r\n if (changes.length >= 1) {\r\n var originalPBS = safeJSON.parseSync(_.result(_.find(entityKeys, {\r\n Key: 'BidStrategyId'\r\n }), 'Value')) || ({});\r\n if (originalPBS.Id && !newValue) {\r\n return originalPBS.Name;\r\n } else {\r\n var value = newValue ? changes[0].NewValue : changes[0].OriginalValue;\r\n var formattedValue = i18n.getString('History_Description_BiddingScheme_' + _getBiddingSchemeValue(value));\r\n return formattedValue || escapeHelper.escape(value);\r\n }\r\n }\r\n}\r\nfunction _formatBidStrategyIdEntityValue(modelInfo, changes, isNew, entityKeys) {\r\n if (changes.length >= 1) {\r\n var originalValue = safeJSON.parseSync(changes[0].OriginalValue) || ({});\r\n var newValue = safeJSON.parseSync(changes[0].NewValue) || ({});\r\n if (!originalValue.Id && !isNew) {\r\n var originalIBS = _.result(_.find(entityKeys, {\r\n Key: 'BiddingScheme'\r\n }), 'Value', '{}');\r\n var formattedValue = i18n.getString('History_Description_BiddingScheme_' + _getBiddingSchemeValue(originalIBS));\r\n return formattedValue || escapeHelper.escape(originalIBS);\r\n } else {\r\n return isNew ? newValue.Name : originalValue.Name;\r\n }\r\n }\r\n}\r\nfunction _formatBidEntityValue(modelInfo, changes, newValue) {\r\n var value = newValue ? changes[0].NewValue : changes[0].OriginalValue;\r\n try {\r\n value = JSON.parse(value);\r\n return bidUtils.getText(value, i18n.getString('BulkEdit_HotelCenter_UseParent'));\r\n } catch (e) {\r\n return '';\r\n }\r\n}\r\nfunction getHotelCenterBidAmountAddonText(modelInfo) {\r\n var action = modelInfo.actions[0] || ({});\r\n return _.result({\r\n 'ChangeByAmount': pageContext.AccountCurrencyCode,\r\n 'ChangeByPercent': ''\r\n }, action.ActionType);\r\n}\r\nfunction _formatBidAmountEntityValue(modelInfo, changes, newValue) {\r\n if (_.contains(['Hotel', 'HotelGroup'], modelInfo.entity)) {\r\n var value = newValue ? changes[0].NewValue : changes[0].OriginalValue;\r\n var formattedNumber = decimalFormat.fromFloatToString(value);\r\n var addonText = getHotelCenterBidAmountAddonText(modelInfo);\r\n return [formattedNumber, addonText].join(' ');\r\n } else {\r\n return _formatEntityValue(modelInfo, changes, newValue);\r\n }\r\n}\r\nfunction _localizePercentAdditionalArgs(modelInfo) {\r\n var action = modelInfo.actions[0] || ({});\r\n if (action.Limit) {\r\n var limitText = i18n.getString('History_Description_Arg_Limit_NoSpace', action.Limit, '%');\r\n return [limitText];\r\n }\r\n return [];\r\n}\r\nfunction _localizeBidAmountAdditionalArgs(modelInfo) {\r\n if (_.contains(['Hotel', 'HotelGroup'], modelInfo.entity)) {\r\n var action = modelInfo.actions[0] || ({});\r\n if (action.Limit) {\r\n var addonText = getHotelCenterBidAmountAddonText(modelInfo);\r\n var limitText = i18n.getString('History_Description_Arg_Limit', action.Limit, addonText);\r\n return [limitText];\r\n }\r\n return [];\r\n } else {\r\n return _localizeAdditionalArgs(modelInfo);\r\n }\r\n}\r\nfunction _formatBidMultipliersEntityValue(modelInfo, changes, newValue) {\r\n var value = newValue ? changes[0].NewValue : changes[0].OriginalValue;\r\n try {\r\n value = JSON.parse(value);\r\n return bidMultiplierUtils.getMultipliersDetailText(value, i18n.getString('BulkEdit_HotelCenter_UseParent'));\r\n } catch (e) {\r\n return '';\r\n }\r\n}\r\nfunction _getBiddingSchemeValue(value) {\r\n var typeReg = /.*\"Type\":([0-9]+).*$/;\r\n var matches = value.match(typeReg);\r\n if (matches && matches[1]) {\r\n return matches[1];\r\n } else {\r\n return '';\r\n }\r\n}\r\nfunction formatEntityValue(jobModel, changes, newValue, entityKeys) {\r\n var modelInfo = _getJobModelInfo(jobModel);\r\n return modelInfo.metadata.formatEntityValueFunction ? modelInfo.metadata.formatEntityValueFunction(modelInfo, changes, newValue, entityKeys) : _formatEntityValue(modelInfo, changes, newValue);\r\n}\r\nfunction _formatNumericValue(modelInfo, value, asCurrency, isPercent) {\r\n var coverNegativeNumber = modelInfo.entity && (modelInfo.entity === 'AdGroupAudienceAssociation' || modelInfo.entity === 'AudienceAssociation' || modelInfo.entity === 'CampaignCriterion' || modelInfo.entity === 'AdGroupCriterion') ? modelInfo.properties && modelInfo.properties.length >= 1 && (modelInfo.properties[0] === 'AudienceCriterion/BidMultiplier' || modelInfo.properties[0] === 'BidAdjustment') ? true : false : false;\r\n var formattedNumber = decimalFormat.fromFloatToString(coverNegativeNumber ? value : Math.abs(value)), currencySuffix = asCurrency ? ' ' + pageContext.AccountCurrencyCode : '';\r\n var suffix = isPercent ? '%' : currencySuffix;\r\n return formattedNumber + suffix;\r\n}\r\nfunction splitFilter(filterExpressions) {\r\n var quickFilter = _.chain(quickFilters).keys().map(function (qfKey) {\r\n var matchingExpression = _.find(filterExpressions, function (expr) {\r\n return _.isEqual(_.pick(expr, 'SelectedColumn', 'SelectedOperator', 'Values'), quickFilters[qfKey]);\r\n });\r\n return [qfKey, matchingExpression];\r\n }).object().value();\r\n var dataSourceFilter = _.chain(dataSourceFilters).keys().map(function (qfKey) {\r\n var matchingExpression = _.find(filterExpressions, function (expr) {\r\n return _.isEqual(_.pick(expr, 'SelectedColumn', 'SelectedOperator'), _.pick(dataSourceFilters[qfKey], 'SelectedColumn', 'SelectedOperator'));\r\n });\r\n return [qfKey, matchingExpression];\r\n }).object().value();\r\n return {\r\n quickFilter: quickFilter,\r\n dataSourceFilter: dataSourceFilter,\r\n expressions: _.difference(filterExpressions, _.values(quickFilter), _.values(dataSourceFilter))\r\n };\r\n}\r\nfunction getJobDetails(jobModel) {\r\n var modelInfo = _getJobModelInfo(jobModel);\r\n return modelInfo.metadata.historyJobDetails ? modelInfo.metadata.historyJobDetails : 'DefaultHistoryJobDetails';\r\n}\r\nexport default {\r\n getJobDescription: getJobDescription,\r\n getJobSelection: getJobSelection,\r\n mapEntityErrors: mapEntityErrors,\r\n formatEntityValue: formatEntityValue,\r\n getRuleSelection: getRuleSelection,\r\n splitFilter: splitFilter,\r\n getJobDetails: getJobDetails\r\n};\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport Backbone from 'backbone';\r\nimport BaseModel from '@bingads-webui-campaign-legacy/bulk-operation/util/bulk-edit-job';\r\nimport PageContext from '@bingads-webui-static-legacy/page-context';\r\n'use strict;';\r\nvar entity = 'AudienceAssociation';\r\nvar model = BaseModel.extend({\r\n defaults: $.extend({}, BaseModel.prototype.defaults, {\r\n Entity: entity,\r\n BatchAction: {\r\n Actions: [{\r\n '@odata.type': '#Model.NumericAction',\r\n 'Property': 'AudienceCriterion/BidMultiplier',\r\n 'ActionType': 'SetToAmount',\r\n 'Value': '',\r\n 'SearchString': '',\r\n 'Options': 'None'\r\n }]\r\n }\r\n })\r\n});\r\nexport default model;\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport Backbone from 'backbone';\r\nimport BaseModel from '@bingads-webui-campaign-legacy/bulk-operation/util/bulk-edit-job';\r\nimport PageContext from '@bingads-webui-static-legacy/page-context';\r\n'use strict;';\r\nvar model = BaseModel.extend({\r\n defaults: function () {\r\n var entity = 'AudienceAssociation';\r\n return $.extend({}, BaseModel.prototype.defaults, {\r\n Entity: entity,\r\n BatchAction: {\r\n Actions: [{\r\n '@odata.type': '#Model.TextAction',\r\n 'Property': 'Status',\r\n 'ActionType': 'Set',\r\n 'Value': '',\r\n 'SearchString': '',\r\n 'Options': 'None'\r\n }]\r\n }\r\n });\r\n }\r\n});\r\nexport default model;\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport Backbone from 'backbone';\r\nimport BaseModel from '@bingads-webui-campaign-legacy/bulk-operation/util/bulk-edit-job';\r\n'use strict;';\r\nvar model = BaseModel.extend({\r\n defaults: $.extend({}, BaseModel.prototype.defaults, {\r\n Entity: 'AdGroupCriterion',\r\n BatchAction: {\r\n Actions: [{\r\n '@odata.type': '#Model.NumericAction',\r\n 'Property': 'CashbackAdjustment',\r\n 'ActionType': 'SetToAmount',\r\n 'Value': ''\r\n }]\r\n }\r\n })\r\n});\r\nexport default model;\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport backbone from 'backbone';\r\nimport odata from '@bingads-webui-static-legacy/communication/channel/odata';\r\nimport * as urlUtil from '@bingads-webui/url-util';\r\nvar Collection = backbone.Collection.extend({\r\n url: 'Advertiser/Customers()/Accounts?$orderby=Name&$select=Id,Name,Status,AccountNumber',\r\n model: null,\r\n sync: function (method, model, options) {\r\n var today = new Date();\r\n var yesterday = new Date();\r\n yesterday.setDate(today.getDate() - 1);\r\n var start = {\r\n startdate: yesterday.toISOString().slice(0, 10)\r\n };\r\n var end = {\r\n enddate: today.toISOString().slice(0, 10)\r\n };\r\n this.url = urlUtil.queryify(this.url, start);\r\n this.url = urlUtil.queryify(this.url, end);\r\n if (method === 'read') {\r\n return odata.get(this.url, null, options);\r\n }\r\n }\r\n});\r\nexport default Collection;\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport BaseModel from '@bingads-webui-campaign-legacy/bulk-operation/util/bulk-edit-job';\r\nvar model = BaseModel.extend({\r\n defaults: $.extend({}, BaseModel.prototype.defaults, {\r\n Entity: '',\r\n BatchAction: {\r\n Actions: [{\r\n '@odata.type': '#Model.TextAction',\r\n 'Property': 'TrackingUrlTemplate',\r\n 'ActionType': 'Set',\r\n 'Value': '',\r\n 'SearchString': '',\r\n 'Options': 'None'\r\n }]\r\n }\r\n })\r\n});\r\nexport default model;\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport template from '@bingads-webui-static-legacy/bulk-edit/template/demographics/changeCashbackPercent.pug';\r\nimport viewModel from '@bingads-webui-static-legacy/bulk-edit/viewmodel/shared/changeCashbackPercent';\r\nimport BaseView from '@bingads-webui-static-legacy/bulk-edit/view/bulkEditJob';\r\nimport numericActionType from '@bingads-webui-static-legacy/schema/bulkEdit/numericActionType';\r\nimport decimalNumber from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport filterConverter from '@bingads-webui-static-legacy/odata-filter-converter';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!global');\r\nvar formatEntityString = function (entityKeyObject) {\r\n var name = '';\r\n if (entityKeyObject.hasOwnProperty('AgeRange')) {\r\n var ageRangeEnum = entityKeyObject.AgeRange;\r\n name = i18n.getString('Schema_Enum_AgeRange_' + ageRangeEnum);\r\n } else if (entityKeyObject.hasOwnProperty('GenderType')) {\r\n var genderTypeEnum = entityKeyObject.GenderType;\r\n name = genderTypeEnum;\r\n } else if (entityKeyObject.hasOwnProperty('ProfileType')) {\r\n var profileName = entityKeyObject.ProfileName;\r\n name = profileName;\r\n }\r\n return name;\r\n};\r\nvar formatBid = function (rows) {\r\n if (rows) {\r\n _.each(rows, function (value) {\r\n value.data = [];\r\n value.EntityKeyObject = {};\r\n _.each(value.EntityKey, function (obj) {\r\n value.EntityKeyObject[obj.Key] = obj.Value;\r\n });\r\n value.data.push({\r\n value: value.EntityKeyObject.CampaignName,\r\n isHtml: false\r\n });\r\n value.data.push({\r\n value: value.EntityKeyObject.AdgroupName,\r\n isHtml: false\r\n });\r\n var name = formatEntityString(value.EntityKeyObject);\r\n value.data.push({\r\n value: name,\r\n isHtml: false\r\n });\r\n if (value.Changes && value.Changes.length) {\r\n var originalValue = value.Changes[0].OriginalValue;\r\n value.data.push({\r\n value: originalValue === '' || +originalValue === -1 ? i18n.getString('Campaign_Cashback_Offer_Scope_InheritFromParent') : decimalNumber.fromFloatToPercentString(value.Changes[0].OriginalValue, 2),\r\n isHtml: false\r\n });\r\n var newValue = value.Changes[0].NewValue;\r\n var newValueText;\r\n if (+newValue === -1 || newValue === '') {\r\n newValueText = i18n.getString('Campaign_Cashback_Offer_Scope_InheritFromParent');\r\n } else {\r\n newValueText = decimalNumber.fromFloatToPercentString(value.Changes[0].NewValue, 2);\r\n }\r\n value.data.push({\r\n value: newValueText,\r\n isHtml: false\r\n });\r\n } else {\r\n value.data.push({\r\n value: '',\r\n isHtml: false\r\n });\r\n value.data.push({\r\n value: '',\r\n isHtml: false\r\n });\r\n }\r\n });\r\n }\r\n return rows;\r\n};\r\nvar getSelectedEntityIdStrings = function (gridView) {\r\n return _.map(gridView.selectedItems(), function (obj) {\r\n var campaignId = obj.Campaign ? obj.Campaign.Id : $.advertiser.getUrlParameter('cmpid');\r\n return _.compact(['CampaignId=' + campaignId, obj.AdGroup && 'AdGroupId=' + obj.AdGroup.Id, 'TargetGroupDetailId=' + obj.Id]).join(',');\r\n });\r\n};\r\nvar view = BaseView.extend({\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n BaseView.prototype.initialize.apply(this, arguments);\r\n this.template = template;\r\n this.entity = options.entity;\r\n this.ko_model = new viewModel({});\r\n _.extend(this, options);\r\n },\r\n render: function () {\r\n BaseView.prototype.render.apply(this, arguments);\r\n return this;\r\n },\r\n setAction: function (simulateResults) {\r\n var action = null;\r\n this.model.unset('PreviewEntityIds');\r\n this.model.unset('PreviewCompositeIds');\r\n if (simulateResults) {\r\n if (this.grid.pgridPlugins.crossPageSelectAll.isAllSelected) {\r\n this.model.set('PreviewCompositeIds', getSelectedEntityIdStrings(this.grid.gridView));\r\n }\r\n }\r\n var cashbackPercentValue = this.ko_model.getCashbackPercentValueByAction();\r\n action = {\r\n Actions: [{\r\n '@odata.type': '#Model.NumericAction',\r\n Property: 'CashbackAdjustment',\r\n ActionType: numericActionType.setAmount,\r\n Value: cashbackPercentValue\r\n }]\r\n };\r\n this.model.set('BatchAction', action);\r\n },\r\n getIdFilter: function () {\r\n return {\r\n FilterExpressions: [{\r\n SelectedColumn: 'IdString',\r\n SelectedOperator: 'Equal',\r\n Values: getSelectedEntityIdStrings(this.grid.gridView)\r\n }]\r\n };\r\n },\r\n getFilterURLParam: function (filter, entity) {\r\n var conditionString = this.grid.filterService.getCombinedFilter().odataV4();\r\n var result;\r\n if (filter.idBased) {\r\n var idFilterExperessions = _.filter(filter.FilterExpressions, function (filterExpression) {\r\n return filterExpression.SelectedColumn === 'IdString';\r\n });\r\n var idString = filterConverter.convert(idFilterExperessions, entity).$filter;\r\n var criterionTypeConditionRegex = /isof\\(Criterion, 'Model.[\\w]+Criterion'\\)/;\r\n var conditionFragment = conditionString.match(criterionTypeConditionRegex)[0];\r\n result = conditionFragment + ' and ' + idString;\r\n } else {\r\n result = conditionString;\r\n }\r\n return '$filter=(' + encodeURIComponent(result) + ')';\r\n },\r\n formatErrors: function (errors) {\r\n return formatBid(errors);\r\n },\r\n formatPreviewResults: function (results) {\r\n return formatBid(results);\r\n },\r\n getProgressText: function () {\r\n return i18n.getString('BulkEdit_Campaigns_ProgressText');\r\n }\r\n});\r\nexport default view;\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nvar escapeMap = {\r\n '<': '<',\r\n '>': '>'\r\n};\r\nvar regObj = {};\r\n_.each(escapeMap, function (val, key) {\r\n regObj[key] = new RegExp(key, 'g');\r\n});\r\nvar escapeHtmlEntities = function (str) {\r\n if (str) {\r\n _.each(escapeMap, function (escapedVal, key) {\r\n str = str.replace(regObj[key], escapedVal);\r\n });\r\n }\r\n return str;\r\n};\r\nexport default {\r\n escape: escapeHtmlEntities\r\n};\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n set: 'Set',\r\n remove: 'Remove'\r\n};\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n add: 'Add',\r\n replaceAll: 'ReplaceAll',\r\n removeExact: 'RemoveExact',\r\n removeContaining: 'RemoveContaining',\r\n removeAll: 'RemoveAll'\r\n};\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n Ad: {\r\n ProgressText: 'BulkEdit_Ads_ProgressText',\r\n EmptySetTextError: 'BulkEdit_Ads_EmptySetTextError',\r\n TrackingTemplateProperty: 'AdTrackingTemplate',\r\n FinalUrlSuffixProperty: 'AdFinalUrlSuffix'\r\n },\r\n Keyword: {\r\n ProgressText: 'BulkEdit_Keywords_ProgressText',\r\n EmptySetTextError: 'BulkEdit_Keyword_EmptySetTextError',\r\n TrackingTemplateProperty: 'KeywordTrackingTemplate',\r\n FinalUrlSuffixProperty: 'KeywordFinalUrlSuffix'\r\n },\r\n AdGroup: {\r\n ProgressText: 'BulkEdit_AdGroups_ProgressText',\r\n EmptySetTextError: 'BulkEdit_AdGroup_EmptySetTextError',\r\n TrackingTemplateProperty: 'AdGroupTrackingUrlTemplate',\r\n FinalUrlSuffixProperty: 'AdGroupFinalUrlSuffix'\r\n },\r\n Campaign: {\r\n ProgressText: 'BulkEdit_Campaigns_ProgressText',\r\n EmptySetTextError: 'BulkEdit_Campaign_EmptySetTextError',\r\n TrackingTemplateProperty: 'CampaignTrackingUrlTemplate',\r\n FinalUrlSuffixProperty: 'CampaignFinalUrlSuffix'\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 urlOptionsFields from '@bingads-webui-static-legacy/bulk-edit/viewmodel/shared/urlOptionsFields';\r\nimport actionTypes from '@bingads-webui-static-legacy/bulk-edit/viewmodel/ad/actions';\r\nimport textActionTypes from '@bingads-webui-static-legacy/schema/bulkEdit/textActionType';\r\nimport Base from '@bingads-webui-static-legacy/bulk-edit/viewmodel/bulkEditJob';\r\nimport options from '@bingads-webui-static-legacy/schema/bulkEdit/textActionOptions';\r\nimport trackingTemplateActionTypes from '@bingads-webui-static-legacy/bulk-edit/viewmodel/shared/trackingTemplateActions';\r\nimport customParametersActionTypes from '@bingads-webui-static-legacy/bulk-edit/viewmodel/shared/customParametersActions';\r\nimport entityTextMessage from '@bingads-webui-static-legacy/bulk-edit/viewmodel/shared/entityProgressText';\r\nimport globalConfig from '@bingads-webui-component-legacy/config/index';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!global');\r\nvar actionOptions = [{\r\n Value: actionTypes.set,\r\n Text: i18n.getString('BulkEdit_UrlOptions_SetTextOption')\r\n}, {\r\n Value: actionTypes.findReplace,\r\n Text: i18n.getString('BulkEdit_UrlOptions_FindAndReplaceOption')\r\n}, {\r\n Value: actionTypes.append,\r\n Text: i18n.getString('BulkEdit_UrlOptions_AppendTextOption')\r\n}];\r\nvar trackingTemplateActionOptions = [{\r\n Value: trackingTemplateActionTypes.set,\r\n Text: i18n.getString('BulkEdit_UrlOptions_TrackingTemplate_Set')\r\n}, {\r\n Value: trackingTemplateActionTypes.remove,\r\n Text: i18n.getString('BulkEdit_UrlOptions_TrackingTemplate_Remove')\r\n}];\r\nvar customParametersActionOptions = [{\r\n Value: customParametersActionTypes.add,\r\n Text: i18n.getString('BulkEdit_UrlOptions_CustomParameters_Add')\r\n}, {\r\n Value: customParametersActionTypes.replaceAll,\r\n Text: i18n.getString('BulkEdit_UrlOptions_CustomParameters_ReplaceAll')\r\n}, {\r\n Value: customParametersActionTypes.removeExact,\r\n Text: i18n.getString('BulkEdit_UrlOptions_CustomParameters_RemoveExact')\r\n}, {\r\n Value: customParametersActionTypes.removeContaining,\r\n Text: i18n.getString('BulkEdit_UrlOptions_CustomParameters_RemoveContaining')\r\n}, {\r\n Value: customParametersActionTypes.removeAll,\r\n Text: i18n.getString('BulkEdit_UrlOptions_CustomParameters_RemoveAll')\r\n}];\r\nvar fieldOptions = [{\r\n Value: urlOptionsFields.trackingTemplate,\r\n Text: i18n.getString('BulkEdit_UrlOptions_TrackingTemplate')\r\n}, {\r\n Value: urlOptionsFields.finalUrlSuffix,\r\n Text: i18n.getString('BulkEdit_UrlOptions_FinalUrlSuffix')\r\n}, {\r\n Value: urlOptionsFields.customParameters,\r\n Text: i18n.getString('BulkEdit_UrlOptions_CustomParameters')\r\n}, {\r\n Value: urlOptionsFields.customParametersName,\r\n Text: i18n.getString('BulkEdit_UrlOptions_CustomParametersName')\r\n}, {\r\n Value: urlOptionsFields.customParametersValue,\r\n Text: i18n.getString('BulkEdit_UrlOptions_CustomParametersValue')\r\n}];\r\nvar ViewModel = function (model, options) {\r\n Base.call(this);\r\n var entity = model.get('Entity');\r\n var entityLowerCase = entity ? entity.toLowerCase() : '';\r\n var finalUrlSuffixEnabledEntities = ['campaign', 'adgroup', 'keyword', 'ad', 'audience'];\r\n var IsFinalURLSuffixEnabled = finalUrlSuffixEnabledEntities.indexOf(entityLowerCase) >= 0;\r\n this.entityType = options.entityType;\r\n this.actions = actionOptions;\r\n this.showExtaWarningMessage = options.showExtaWarningMessage;\r\n this.trackingTemplateActions = trackingTemplateActionOptions;\r\n this.customParametersActions = customParametersActionOptions;\r\n var fields = _.clone(fieldOptions);\r\n if (!IsFinalURLSuffixEnabled) {\r\n fields = _.filter(fieldOptions, function (opt) {\r\n return opt.Value !== urlOptionsFields.finalUrlSuffix;\r\n });\r\n }\r\n this.fields = fields;\r\n var action = model.get('BatchAction').Actions[0];\r\n this.selectedAction = ko.observable(action.ActionType);\r\n this.selectedField = ko.observable(action.Property);\r\n this.trackingTemplateSelectedAction = ko.observable(action.ActionType);\r\n this.customParametersSelectedAction = ko.observable(action.ActionType);\r\n this.showCustomParamsInput = ko.observable(true);\r\n this.showTrackingTemplateInput = ko.computed(function () {\r\n return this.trackingTemplateSelectedAction() === trackingTemplateActionTypes.set;\r\n }, this);\r\n this.selectedAction.subscribe(function () {\r\n this.errorMessage('');\r\n }, this);\r\n this.showFindReplacePanel = ko.computed(function () {\r\n return this.selectedAction() === actionTypes.findReplace;\r\n }, this);\r\n this.showAppendTextPanel = ko.computed(function () {\r\n return this.selectedAction() === actionTypes.append;\r\n }, this);\r\n this.showSetTextPanel = ko.computed(function () {\r\n return this.selectedAction() === actionTypes.set;\r\n }, this);\r\n this.showFinalUrlSuffixInput = ko.computed(function () {\r\n return IsFinalURLSuffixEnabled && this.showSetTextPanel();\r\n }, this);\r\n this.trackingTemplate = ko.observable('');\r\n this.finalUrlSuffix = ko.observable('');\r\n this.changeTextOption = ko.observable(textActionTypes.append);\r\n this.findTextValue = ko.observable(action.SearchString);\r\n this.findText = ko.computed({\r\n read: function () {\r\n return this.findTextValue();\r\n },\r\n write: function (value) {\r\n this.errorMessage('');\r\n this.findTextValue(value);\r\n },\r\n owner: this\r\n });\r\n this.findText.subscribe(function (value) {\r\n if (value.indexOf(' ') >= 0) {\r\n this.findReplaceOptions(_.without(this.findReplaceOptions, options.MatchWholeWord));\r\n }\r\n }, this);\r\n this.replaceText = ko.observable(action.Value);\r\n this.appendTextValue = ko.observable(action.Value);\r\n this.appendText = ko.computed({\r\n read: function () {\r\n return this.appendTextValue();\r\n },\r\n write: function (value) {\r\n this.errorMessage('');\r\n this.appendTextValue(value);\r\n },\r\n owner: this\r\n });\r\n this.findReplaceOptions = ko.observableArray([]);\r\n this.selectedEntityCount(model.get('selectedEntityCount'));\r\n this.titleText = ko.computed(function () {\r\n switch (this.entityType) {\r\n case 'Ad':\r\n return i18n.getString('BulkEdit_UrlOptions_Ad_Title').replace('{0}', this.selectedEntityCount());\r\n break;\r\n case 'Keyword':\r\n return i18n.getString('BulkEdit_UrlOptions_Keyword_Title').replace('{0}', this.selectedEntityCount());\r\n break;\r\n case 'AdGroup':\r\n return i18n.getString('BulkEdit_UrlOptions_AdGroup_Title').replace('{0}', this.selectedEntityCount());\r\n break;\r\n case 'Campaign':\r\n return i18n.getString('BulkEdit_UrlOptions_Campaign_Title').replace('{0}', this.selectedEntityCount());\r\n break;\r\n }\r\n }, this);\r\n this.maxTrackingTemplateLength = 2048;\r\n this.maxFinalUrlSuffixLength = 1024;\r\n this.maxCustomParametersLength = 16;\r\n this.maxCustomParametersKeyLength = 16;\r\n this.maxCustomParametersValueLength = 200;\r\n this.maxLength = ko.computed(function () {\r\n var field = this.selectedField();\r\n switch (field) {\r\n case urlOptionsFields.trackingTemplate:\r\n return this.maxTrackingTemplateLength;\r\n break;\r\n case urlOptionsFields.finalUrlSuffix:\r\n return this.maxFinalUrlSuffixLength;\r\n break;\r\n case urlOptionsFields.customParameters:\r\n return this.maxCustomParametersLength;\r\n break;\r\n case urlOptionsFields.customParametersName:\r\n return this.maxCustomParametersKeyLength;\r\n break;\r\n case urlOptionsFields.customParametersValue:\r\n return this.maxCustomParametersValueLength;\r\n break;\r\n }\r\n return 32;\r\n }, this);\r\n this.errorRole = ko.computed(function () {\r\n var error = this.errorMessage();\r\n return error === '' ? 'none' : 'alert';\r\n }, this);\r\n this.entityHeaderName = ko.computed(function () {\r\n switch (this.entityType) {\r\n case 'Ad':\r\n return i18n.getString('BulkEdit_Ad_EntityNameHeader');\r\n break;\r\n case 'Keyword':\r\n return i18n.getString('BulkEdit_Keyword_EntityNameHeader');\r\n break;\r\n case 'AdGroup':\r\n return i18n.getString('BulkEdit_AdGroup_EntityNameHeader');\r\n break;\r\n case 'Campaign':\r\n return i18n.getString('BulkEdit_Campaign_EntityNameHeader');\r\n break;\r\n default:\r\n return 'unknown entity';\r\n break;\r\n }\r\n }, this);\r\n this.previewGrids = ko.observableArray([]);\r\n this.errorsGrids = ko.observableArray([]);\r\n this.showPreview = ko.observable(false);\r\n this.validate = function (view) {\r\n this.errorMessage('');\r\n if (this.selectedEntityCount() === 0) {\r\n alert(i18n.getString('Grid_RowSelectionRequired'));\r\n return false;\r\n }\r\n var action = this.selectedAction();\r\n if (action === actionTypes.findReplace) {\r\n if (this.findText() === '' || this.findText() === null) {\r\n this.errorMessage(i18n.getString('BulkEdit_EmptyFindTextError'));\r\n return false;\r\n }\r\n } else if (action === actionTypes.append) {\r\n if (this.appendText() === '' || this.appendText() === null) {\r\n this.errorMessage(i18n.getString('BulkEdit_EmptyAppendTextError'));\r\n return false;\r\n }\r\n } else if (action === actionTypes.set) {\r\n if (this.trackingTemplateSelectedAction() === trackingTemplateActionTypes.set && (this.trackingTemplate() === null || this.trackingTemplate().trim() === '') && (this.finalUrlSuffix() === null || this.finalUrlSuffix().trim() === '') && this.customParametersSelectedAction() !== customParametersActionTypes.removeAll && view.customParams.getValues(true).params.length === 0) {\r\n this.errorMessage(i18n.getString(entityTextMessage[entity].EmptySetTextError));\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n};\r\nexport default ViewModel;\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n set: 'Set',\r\n findReplace: 'FindReplace',\r\n append: 'Append'\r\n};\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n set: 'Set',\r\n remove: 'Remove'\r\n};\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n Keyword: 'Keyword',\r\n Ad: 'AdTitle',\r\n AdGroup: 'AdgroupName',\r\n Campaign: 'CampaignName'\r\n};\r\n\r\n","/* eslint-disable */\r\nfunction anonymous(it) {\r\n var out = '';\r\n var result, value = it.UrlCustomParametersJson || it.UrlCustomParameters;\r\n try {\r\n result = JSON.parse(value.replace(/"/g, '\"'));\r\n } catch (e) {\r\n result = value;\r\n }\r\n if (result && result.Parameters && Array.isArray(result.Parameters)) {\r\n for (var i = 0; i < result.Parameters.length; i++) {\r\n out += '
{_' + result.Parameters[i].Key + '} = ' + result.Parameters[i].Value + '
';\r\n }\r\n } else if (typeof result == 'string') {\r\n out += ' ' + result + '';\r\n }\r\n return out;\r\n}\r\nexport default anonymous;\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport ChangeUrlOptionsVM from '@bingads-webui-static-legacy/bulk-edit/viewmodel/shared/changeUrlOptions';\r\nimport template from '@bingads-webui-static-legacy/bulk-edit/template/shared/changeUrlOptions.pug';\r\nimport actionTypes from '@bingads-webui-static-legacy/bulk-edit/viewmodel/shared/changeUrlOptionsActions';\r\nimport trackingTemplateActionTypes from '@bingads-webui-static-legacy/bulk-edit/viewmodel/shared/trackingTemplateActions';\r\nimport customParametersActionTypes from '@bingads-webui-static-legacy/bulk-edit/viewmodel/shared/customParametersActions';\r\nimport finalUrlSuffixActionTypes from '@bingads-webui-static-legacy/bulk-edit/viewmodel/shared/finalUrlSuffixActions';\r\nimport entityTitleKeys from '@bingads-webui-static-legacy/bulk-edit/viewmodel/shared/entityTitleKeys';\r\nimport entityProgressTextMap from '@bingads-webui-static-legacy/bulk-edit/viewmodel/shared/entityProgressText';\r\nimport BaseView from '@bingads-webui-static-legacy/bulk-edit/view/bulkEditJob';\r\nimport filterHelper from '@bingads-webui-static-legacy/bulk-edit/view/filterHelper';\r\nimport gridHelper from '@bingads-webui-static-legacy/shared/view/gridHelper';\r\nimport customParamsGridTemplate from '@bingads-webui-static-legacy/bulk-edit/view/shared/customParams-inline';\r\nimport urlOptionsFields from '@bingads-webui-static-legacy/bulk-edit/viewmodel/shared/urlOptionsFields';\r\nimport options from '@bingads-webui-static-legacy/schema/bulkEdit/textActionOptions';\r\nimport * as upgradeUrl from '@bingads-webui-campaign/upgrade-url';\r\nimport * as safeJSON from '@bingads-webui/safe-json';\r\nimport escapeHelper from '@bingads-webui-static-legacy/bulk-edit/view/escapeHelper';\r\nimport * as instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport * as bulkOperationBase from '@bingads-webui-campaign/bulk-operation-base';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!global');\r\nvar allowedEntities = ['Campaign', 'AdGroup', 'Keyword', 'Ad'];\r\nvar helper = function (value, defaultValue) {\r\n var obj = safeJSON.parseSync(value);\r\n if (_.isEmpty(obj)) {\r\n return defaultValue;\r\n } else {\r\n obj = _.map(obj, function (item) {\r\n var param = safeJSON.parseSync(item);\r\n _.each(param, function (val, key) {\r\n param[key] = escapeHelper.escape(val);\r\n });\r\n return param;\r\n });\r\n return customParamsGridTemplate({\r\n UrlCustomParametersJson: JSON.stringify({\r\n Parameters: obj\r\n })\r\n });\r\n }\r\n};\r\nvar formatUrlOptions = function (rows, entityType, urlOptionsDisplay) {\r\n if (!rows) {\r\n return null;\r\n }\r\n _.each(rows, function (row) {\r\n var defaultValue = '--';\r\n var pair, oldTrackingTemplate, newTrackingTemplate, oldCustomParams, newCustomParams, oldFinalUrlSuffix, newFinalUrlSuffix;\r\n oldTrackingTemplate = newTrackingTemplate = oldCustomParams = newCustomParams = oldFinalUrlSuffix = newFinalUrlSuffix = defaultValue;\r\n row.data = [];\r\n var entityValues = {};\r\n _.each(row.EntityKey, function (entity) {\r\n entityValues[entity.Key] = entity.Value;\r\n });\r\n var firstCell = {\r\n value: '',\r\n isHtml: false\r\n };\r\n if (entityType === 'Ad') {\r\n firstCell = bulkOperationBase.getAdEntityPreviewCell(entityValues, i18n);\r\n } else {\r\n pair = _.find(row.EntityKey, function (item) {\r\n return item.Key === entityTitleKeys[entityType];\r\n });\r\n firstCell.value = pair ? pair.Value : '';\r\n }\r\n row.data.push(firstCell);\r\n _.each(row.Changes, function (change) {\r\n if (change.Property === entityProgressTextMap[entityType].TrackingTemplateProperty) {\r\n oldTrackingTemplate = change.OriginalValue || defaultValue;\r\n newTrackingTemplate = change.NewValue || defaultValue;\r\n if (urlOptionsDisplay.trackingTemplate) {\r\n row.data.push({\r\n value: oldTrackingTemplate,\r\n isHtml: false\r\n });\r\n row.data.push({\r\n value: newTrackingTemplate,\r\n isHtml: false\r\n });\r\n }\r\n } else if (change.Property === entityProgressTextMap[entityType].FinalUrlSuffixProperty) {\r\n oldFinalUrlSuffix = change.OriginalValue || defaultValue;\r\n newFinalUrlSuffix = change.NewValue || defaultValue;\r\n if (urlOptionsDisplay.finalUrlSuffix) {\r\n row.data.push({\r\n value: oldFinalUrlSuffix,\r\n isHtml: false\r\n });\r\n row.data.push({\r\n value: newFinalUrlSuffix,\r\n isHtml: false\r\n });\r\n }\r\n } else {\r\n oldCustomParams = helper(change.OriginalValue, defaultValue);\r\n newCustomParams = helper(change.NewValue, defaultValue);\r\n if (urlOptionsDisplay.customParameters) {\r\n row.data.push({\r\n value: oldCustomParams,\r\n isHtml: true\r\n });\r\n row.data.push({\r\n value: newCustomParams,\r\n isHtml: true\r\n });\r\n }\r\n }\r\n });\r\n });\r\n return rows;\r\n};\r\nvar view = BaseView.extend({\r\n initialize: function (options) {\r\n var scenarioName = 'bulkEditUrlOptions' + options.entityType;\r\n var senario = instrumentation.default[scenarioName].create();\r\n var activity = senario[scenarioName].create();\r\n activity.start();\r\n options.activity = activity;\r\n var selectedRows = gridHelper.getSelectedRows(options.grid);\r\n var hasExtaSelected = _.find(selectedRows, row => {\r\n return row.Type === 'ExpandedText';\r\n }) || options.entityType === 'Ad' && gridHelper.isCrossPageAllSelected(options.grid);\r\n const permissions = config.get('Permissions') || ({});\r\n BaseView.prototype.initialize.call(this, options);\r\n this.model.set('Entity', options.entityType);\r\n this.ko_model = new ChangeUrlOptionsVM(this.model, {\r\n entityType: options.entityType,\r\n showExtaWarningMessage: !permissions.IsWhiteListEXTAEnabled && hasExtaSelected\r\n });\r\n this.template = template;\r\n this.entityType = options.entityType;\r\n },\r\n render: function () {\r\n BaseView.prototype.render.apply(this, arguments);\r\n this.ko_model.customParametersSelectedAction.subscribe(function (newValue) {\r\n this.ko_model.showCustomParamsInput(newValue !== customParametersActionTypes.removeAll);\r\n switch (newValue) {\r\n case customParametersActionTypes.add:\r\n case customParametersActionTypes.replaceAll:\r\n this.customParams.goToAddReplaceMode();\r\n break;\r\n case customParametersActionTypes.removeContaining:\r\n case customParametersActionTypes.removeExact:\r\n this.customParams.goToRemoveMode();\r\n break;\r\n }\r\n }, this);\r\n this.customParams = new upgradeUrl.CustomParametersView({\r\n i18n: i18n,\r\n permissions: config.get('Permissions') || ({}),\r\n bulkEditMode: true,\r\n entityType: this.entityType,\r\n bulkEditShowAddLabel: true,\r\n bulkEditShowMatchCase: false\r\n }).render();\r\n this.$('.custom-parameters-container').html(this.customParams.$el);\r\n this.ko_model.isDisabled.subscribe(function (newValue) {\r\n this.customParams.setDisabled(newValue);\r\n }, this);\r\n return this;\r\n },\r\n createBaseActionObject: function (odataType, property, actionType) {\r\n return {\r\n '@odata.type': odataType,\r\n Property: property,\r\n ActionType: actionType\r\n };\r\n },\r\n setAction: function () {\r\n var action = {\r\n Actions: []\r\n };\r\n var selectedAction = this.ko_model.selectedAction();\r\n var customParamsValues = this.customParams.getValues(true);\r\n var actionIdx = 0;\r\n switch (selectedAction) {\r\n case actionTypes.set:\r\n if (this.ko_model.trackingTemplateSelectedAction() === trackingTemplateActionTypes.remove || !_.isEmpty(this.ko_model.trackingTemplate().trim())) {\r\n action.Actions[actionIdx] = this.createBaseActionObject('#Model.TextAction', urlOptionsFields.trackingTemplate, trackingTemplateActionTypes.set);\r\n _.extend(action.Actions[actionIdx], {\r\n Value: this.ko_model.trackingTemplateSelectedAction() === trackingTemplateActionTypes.set ? this.ko_model.trackingTemplate().trim() : '',\r\n Options: options.None\r\n });\r\n actionIdx++;\r\n }\r\n if (!_.isEmpty(this.ko_model.finalUrlSuffix().trim())) {\r\n action.Actions[actionIdx] = this.createBaseActionObject('#Model.TextAction', urlOptionsFields.finalUrlSuffix, finalUrlSuffixActionTypes.set);\r\n _.extend(action.Actions[actionIdx], {\r\n Value: this.ko_model.finalUrlSuffix().trim(),\r\n Options: options.None\r\n });\r\n actionIdx++;\r\n }\r\n if (this.ko_model.customParametersSelectedAction() === customParametersActionTypes.removeAll || customParamsValues.params.length > 0) {\r\n var matchOptions = options.None, value = [], actionType = 'Remove';\r\n value = _.map(customParamsValues.params, function (item) {\r\n return JSON.stringify(item);\r\n });\r\n switch (this.ko_model.customParametersSelectedAction()) {\r\n case customParametersActionTypes.add:\r\n actionType = 'Add';\r\n break;\r\n case customParametersActionTypes.removeAll:\r\n actionType = 'Set';\r\n value = [];\r\n break;\r\n case customParametersActionTypes.replaceAll:\r\n actionType = 'Set';\r\n break;\r\n case customParametersActionTypes.removeContaining:\r\n matchOptions = customParamsValues.matchCase ? options.MatchCase : options.None;\r\n break;\r\n case customParametersActionTypes.removeExact:\r\n matchOptions = customParamsValues.matchCase ? options.MatchWholeWord + ',' + options.MatchCase : options.MatchWholeWord;\r\n break;\r\n }\r\n action.Actions[actionIdx] = this.createBaseActionObject('#Model.ListAction', urlOptionsFields.customParameters, actionType);\r\n _.extend(action.Actions[actionIdx], {\r\n Value: value,\r\n MatchOptions: matchOptions\r\n });\r\n actionIdx++;\r\n }\r\n break;\r\n case actionTypes.findReplace:\r\n var findText = this.ko_model.findText().trim();\r\n var replaceText = this.ko_model.replaceText().trim();\r\n var property = this.ko_model.selectedField();\r\n var actionOptions = this.ko_model.findReplaceOptions();\r\n var selectedOptions = actionOptions && actionOptions.length ? actionOptions.join() : options.None;\r\n if (!_.isEmpty(findText)) {\r\n action.Actions[actionIdx] = this.createBaseActionObject('#Model.TextAction', property, selectedAction);\r\n _.extend(action.Actions[actionIdx], {\r\n SearchString: findText,\r\n Value: replaceText,\r\n Options: selectedOptions\r\n });\r\n actionIdx++;\r\n }\r\n break;\r\n case actionTypes.append:\r\n var appendText = this.ko_model.appendText().trim();\r\n var property = this.ko_model.selectedField();\r\n var actionOptions = this.ko_model.changeTextOption();\r\n if (!_.isEmpty(appendText)) {\r\n action.Actions[actionIdx] = this.createBaseActionObject('#Model.TextAction', property, actionOptions);\r\n _.extend(action.Actions[actionIdx], {\r\n SearchString: '',\r\n Value: appendText,\r\n Options: options.None\r\n });\r\n actionIdx++;\r\n }\r\n break;\r\n }\r\n this.model.set('BatchAction', action);\r\n },\r\n getIdFilter: function () {\r\n var ret = {};\r\n if (_.contains(allowedEntities, this.entityType)) {\r\n ret = filterHelper.getIdFilter(this.grid, this.entityType);\r\n }\r\n return ret;\r\n },\r\n getProgressText: function () {\r\n return i18n.getString(entityProgressTextMap[this.entityType].ProgressText) || '';\r\n },\r\n formatGridResults: function (data) {\r\n var previewGrids = [];\r\n var errorsGrids = [];\r\n var urlOptionsDisplay = {\r\n trackingTemplate: false,\r\n finalUrlSuffix: false,\r\n customParameters: false\r\n };\r\n var actions = this.model.get('BatchAction').Actions;\r\n if (actions.length > 0) {\r\n previewGrids.push(this.ko_model.entityHeaderName());\r\n errorsGrids.push(this.ko_model.entityHeaderName());\r\n }\r\n for (var i = 0; i < actions.length; i++) {\r\n var action = actions[i];\r\n var property = action.Property;\r\n if (property === urlOptionsFields.trackingTemplate) {\r\n previewGrids.push(i18n.getString('BulkEdit_UrlOptions_CurrentTrackingTemplate'));\r\n previewGrids.push(i18n.getString('BulkEdit_UrlOptions_NewTrackingTemplate'));\r\n errorsGrids.push(i18n.getString('BulkEdit_UrlOptions_CurrentTrackingTemplate'));\r\n errorsGrids.push(i18n.getString('BulkEdit_UrlOptions_AttemptedNewTrackingTemplate'));\r\n urlOptionsDisplay.trackingTemplate = true;\r\n } else if (property === urlOptionsFields.finalUrlSuffix) {\r\n previewGrids.push(i18n.getString('BulkEdit_UrlOptions_CurrentFinalUrlSuffix'));\r\n previewGrids.push(i18n.getString('BulkEdit_UrlOptions_NewFinalUrlSuffix'));\r\n errorsGrids.push(i18n.getString('BulkEdit_UrlOptions_CurrentFinalUrlSuffix'));\r\n errorsGrids.push(i18n.getString('BulkEdit_UrlOptions_AttemptedNewFinalUrlSuffix'));\r\n urlOptionsDisplay.finalUrlSuffix = true;\r\n } else if (property && property.indexOf(urlOptionsFields.customParameters) > -1) {\r\n previewGrids.push(i18n.getString('BulkEdit_UrlOptions_CurrentCustomParameters'));\r\n previewGrids.push(i18n.getString('BulkEdit_UrlOptions_NewCustomParameters'));\r\n errorsGrids.push(i18n.getString('BulkEdit_UrlOptions_CurrentCustomParameters'));\r\n errorsGrids.push(i18n.getString('BulkEdit_UrlOptions_AttemptedNewCustomParameters'));\r\n urlOptionsDisplay.customParameters = true;\r\n }\r\n }\r\n if (previewGrids.length > 0) {\r\n this.ko_model.previewGrids(previewGrids);\r\n this.ko_model.errorsGrids(errorsGrids);\r\n this.ko_model.showPreview(true);\r\n }\r\n if (actions.length > 0) {\r\n var numberOfActions = actions.length;\r\n var propertiesToChange = null;\r\n var changesToPatch = [];\r\n _.each(data, function (entityChange) {\r\n if (entityChange.Changes.length < numberOfActions) {\r\n changesToPatch.push(entityChange);\r\n } else if (!propertiesToChange) {\r\n propertiesToChange = _.map(entityChange.Changes, function (change) {\r\n return change.Property;\r\n });\r\n }\r\n });\r\n if (changesToPatch.length > 0) {\r\n _.each(changesToPatch, function (entityChange) {\r\n var presentChanges = _.reduce(entityChange.Changes, function (memo, change) {\r\n memo[change.Property] = change;\r\n return memo;\r\n }, {});\r\n var patchedChanges = [];\r\n _.each(propertiesToChange, function (property) {\r\n if (!presentChanges[property]) {\r\n patchedChanges.push({\r\n Property: property,\r\n NewValue: null,\r\n OriginalValue: null\r\n });\r\n } else {\r\n patchedChanges.push(presentChanges[property]);\r\n }\r\n });\r\n entityChange.Changes = patchedChanges;\r\n });\r\n }\r\n }\r\n return formatUrlOptions(data, this.entityType, urlOptionsDisplay);\r\n },\r\n formatPreviewResults: function (results) {\r\n return this.formatGridResults(results);\r\n },\r\n formatErrors: function (errors) {\r\n return this.formatGridResults(errors);\r\n },\r\n transformErrors: function (errors) {\r\n if (errors) {\r\n _.each(errors, function (error) {\r\n if (error.Error === 'TooMuchText') {\r\n error.message = error.message.replace('{0}', i18n.getString('BulkEdit_Property_DestinationUrl')).replace('{1}', 1024);\r\n }\r\n });\r\n }\r\n }\r\n});\r\nexport default view;\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n set: 'Set',\r\n findReplace: 'FindReplace',\r\n append: 'Append',\r\n changeCase: 'ChangeCase',\r\n add: 'Add',\r\n remove: 'Remove',\r\n pin: 'Pin'\r\n};\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n trackingTemplate: 'TrackingUrlTemplate',\r\n finalUrlSuffix: 'FinalUrlSuffix',\r\n customParameters: 'UrlCustomParameters',\r\n customParametersName: 'UrlCustomParameters/Key',\r\n customParametersValue: 'UrlCustomParameters/Value'\r\n};\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport parser from 'cron-parser';\r\nvar cron;\r\nvar year = {};\r\nvar frequency = {\r\n DAILY: 0,\r\n WEEKLY: 1,\r\n MONTHLY: 2,\r\n ONCE: 3,\r\n HOURLY: 4\r\n};\r\nfunction init(cronString) {\r\n if (cronString == null || cronString == '') {\r\n return false;\r\n }\r\n var tokens = cronString.split(' ');\r\n if (tokens.length > 5) {\r\n year = tokens[tokens.length - 1];\r\n cronString = cronString.replace(year, '');\r\n }\r\n cronString = '* ' + cronString;\r\n cron = parser.parseExpressionSync(cronString);\r\n return true;\r\n}\r\nfunction parse(cronString) {\r\n var cronModel = undefined;\r\n if (init(cronString)) {\r\n var minute = getMinute(), hour = getHour(), dayofWeek = getDayofWeek(), dayofMonth = getDayofMonth(), month = getMonth();\r\n cronModel = {\r\n frequency: getFrequency()\r\n };\r\n switch (cronModel.frequency) {\r\n case frequency.ONCE:\r\n cronModel.year = year;\r\n cronModel.month = month[0];\r\n cronModel.dayOfMonth = dayofMonth[0];\r\n cronModel.hour = hour[0];\r\n break;\r\n case frequency.MONTHLY:\r\n cronModel.dayOfMonth = dayofMonth[0];\r\n cronModel.hour = hour[0];\r\n break;\r\n case frequency.WEEKLY:\r\n cronModel.dayOfWeek = dayofWeek[0];\r\n cronModel.hour = hour[0];\r\n break;\r\n case frequency.DAILY:\r\n cronModel.hour = hour[0];\r\n break;\r\n case frequency.HOURLY:\r\n cronModel.min = minute[0];\r\n break;\r\n }\r\n }\r\n return cronModel;\r\n}\r\nfunction getYear() {\r\n return year;\r\n}\r\nfunction getMonth() {\r\n return cron._fields.month;\r\n}\r\nfunction getDayofMonth() {\r\n return cron._fields.dayOfMonth;\r\n}\r\nfunction getDayofWeek() {\r\n return cron._fields.dayOfWeek;\r\n}\r\nfunction getHour() {\r\n return cron._fields.hour;\r\n}\r\nfunction getMinute() {\r\n return cron._fields.minute;\r\n}\r\nfunction generate(options) {\r\n var defaults = {\r\n min: '0',\r\n hour: '*',\r\n dayOfWeek: '*',\r\n dayOfMonth: '*',\r\n month: '*',\r\n year: '*'\r\n };\r\n return _.template('{{min}} {{hour}} {{dayOfMonth}} {{month}} {{dayOfWeek}} {{year}}')(_.defaults(options, defaults));\r\n}\r\nfunction setHourlyCron(min) {\r\n min = min || 0;\r\n if (min < 0 || min > 60) {\r\n return '';\r\n }\r\n return generate({\r\n min: min\r\n });\r\n}\r\nfunction setDailyCron(hour) {\r\n if (hour < 0 || hour > 23) {\r\n return '';\r\n }\r\n return generate({\r\n hour: hour\r\n });\r\n}\r\nfunction setWeeklyCron(hour, dayOfWeek) {\r\n if (hour < 0 || hour > 23 || dayOfWeek < 0 || dayOfWeek > 6) {\r\n return '';\r\n }\r\n return generate({\r\n hour: hour,\r\n dayOfWeek: dayOfWeek\r\n });\r\n}\r\nfunction setMonthlyCron(hour, dayOfMonth) {\r\n if (hour < 0 || hour > 23 || dayOfMonth < 1 || dayOfMonth > 31) {\r\n return '';\r\n }\r\n return generate({\r\n hour: hour,\r\n dayOfMonth: dayOfMonth\r\n });\r\n}\r\nfunction setOnceCron(hour, dayOfMonth, month, year) {\r\n if (hour < 0 || hour > 23 || dayOfMonth < 1 || dayOfMonth > 31 || month < 1 || month > 12 || year < 1 || year > 9999) {\r\n return '';\r\n }\r\n return generate({\r\n hour: hour,\r\n dayOfMonth: dayOfMonth,\r\n month: month,\r\n year: year\r\n });\r\n}\r\nfunction getFrequency() {\r\n if (year.length > 1) {\r\n return frequency.ONCE;\r\n } else if (cron._fields.dayOfMonth.length === 1) {\r\n return frequency.MONTHLY;\r\n } else if (cron._fields.dayOfWeek.length === 1) {\r\n return frequency.WEEKLY;\r\n } else if (cron._fields.hour.length === 1) {\r\n return frequency.DAILY;\r\n } else {\r\n return frequency.HOURLY;\r\n }\r\n}\r\nexport default {\r\n getYear: getYear,\r\n getMonth: getMonth,\r\n getDayofMonth: getDayofMonth,\r\n getDayofWeek: getDayofWeek,\r\n getHour: getHour,\r\n getMinute: getMinute,\r\n setHourlyCron: setHourlyCron,\r\n setDailyCron: setDailyCron,\r\n setWeeklyCron: setWeeklyCron,\r\n setMonthlyCron: setMonthlyCron,\r\n setOnceCron: setOnceCron,\r\n getFrequency: getFrequency,\r\n frequency: frequency,\r\n parse: parse,\r\n init: init\r\n};\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport kendo from '@bingads-webui/kendo/kendo.data';\r\nvar defaultOptions = {\r\n schema: {\r\n model: {\r\n id: '_uniqueId'\r\n },\r\n total: 'total'\r\n },\r\n dataItems: null,\r\n dataCallback: null,\r\n itemIdField: 'id',\r\n itemIdCallback: null,\r\n itemFilterField: 'name',\r\n itemFilterCallback: null,\r\n listItemSeed: {},\r\n pageSize: 20\r\n};\r\nvar dlbDataSource = function (options) {\r\n var self = this;\r\n self.options = $.extend(true, {}, defaultOptions, options);\r\n self.schemaDataProperty = self.options.schema.data || 'items';\r\n self.options.schema.data = function (response) {\r\n return self._mapItems(response[self.schemaDataProperty]);\r\n };\r\n self.externalTransport = _.isFunction(self.options.dataCallback);\r\n self.useCallbackForFilter = self.externalTransport && !self.options.useCallbackForFetchOnly;\r\n self.dataSource = self._createDataSource();\r\n};\r\ndlbDataSource.prototype.addIfNotExists = function (item) {\r\n var self = this;\r\n var uniqueId = self._getItemId(item);\r\n if (!uniqueId) return false;\r\n if (self.dataSource.get(uniqueId)) {\r\n return false;\r\n }\r\n self.dataSource.add(self._createListItem(item));\r\n return true;\r\n};\r\ndlbDataSource.prototype.removeIfExists = function (item) {\r\n var self = this;\r\n var itemData = self._getListItemInfo(item);\r\n if (!itemData.model) {\r\n return false;\r\n }\r\n self.dataSource.remove(itemData.model);\r\n return true;\r\n};\r\ndlbDataSource.prototype.getItemData = function (item) {\r\n return this._getListItemInfo(item).data;\r\n};\r\ndlbDataSource.prototype.getItemId = function (item) {\r\n return this._getListItemInfo(item).uniqueId;\r\n};\r\ndlbDataSource.prototype.filter = function (filterString) {\r\n var self = this;\r\n if (!filterString) {\r\n self.dataSource.filter([]);\r\n } else {\r\n if (self.useCallbackForFilter) {\r\n if (_.isFunction(self.sourceLoadCancelToken)) {\r\n self.sourceLoadCancelToken();\r\n }\r\n self.dataSource.filter({\r\n value: filterString\r\n });\r\n } else if (_.isFunction(self.options.itemFilterCallback)) {\r\n self.dataSource.filter({\r\n field: 'data',\r\n operator: self.options.itemFilterCallback,\r\n value: filterString\r\n });\r\n } else {\r\n self.dataSource.filter({\r\n field: 'data.' + self.options.itemFilterField,\r\n operator: 'contains',\r\n value: filterString\r\n });\r\n }\r\n }\r\n};\r\ndlbDataSource.prototype.refresh = function () {\r\n delete this._data;\r\n this.dataSource.read();\r\n};\r\ndlbDataSource.prototype.refreshItem = function (item) {\r\n var self = this, listItem = self._getListItemInfo(item), seededItem = self._createListItem(item);\r\n if (listItem.model) {\r\n listItem.model.set('data', seededItem.data);\r\n }\r\n};\r\ndlbDataSource.prototype.getData = function () {\r\n return _.map(this.dataSource.data(), function (item) {\r\n return item.get('data').toJSON();\r\n });\r\n};\r\ndlbDataSource.prototype.getFilterData = function () {\r\n var dataSource = this.dataSource;\r\n var filterResult = kendo.data.Query.process(dataSource.data(), {\r\n filter: dataSource.filter()\r\n });\r\n return _.map(filterResult.data, function (item) {\r\n return item.get('data').toJSON();\r\n });\r\n};\r\ndlbDataSource.prototype.setItemProperty = function (item, property, value) {\r\n var sourceItemModel = this._getListItemInfo(item).model;\r\n if (sourceItemModel) {\r\n sourceItemModel.set(property, value);\r\n }\r\n ;\r\n};\r\ndlbDataSource.prototype._getListItemInfo = function (item, ignoreSourceData) {\r\n var self = this;\r\n var model;\r\n var uniqueId = self._getItemId(item);\r\n if (uniqueId && typeof item === 'object') {\r\n model = self.dataSource.get(uniqueId);\r\n return {\r\n uniqueId: uniqueId,\r\n data: item,\r\n model: model\r\n };\r\n } else {\r\n model = self.dataSource.get(item);\r\n return {\r\n uniqueId: item,\r\n data: model ? model.get('data').toJSON() : null,\r\n model: model\r\n };\r\n }\r\n};\r\ndlbDataSource.prototype._getItemId = function (item) {\r\n var self = this;\r\n return _.isFunction(self.options.itemIdCallback) ? self.options.itemIdCallback(item) : item ? item[self.options.itemIdField] : null;\r\n};\r\ndlbDataSource.prototype._mapItems = function (sourceItems) {\r\n var self = this;\r\n return _.map(sourceItems, function (item) {\r\n return self._createListItem(item);\r\n });\r\n};\r\ndlbDataSource.prototype._createListItem = function (item) {\r\n var self = this;\r\n var id = self._getItemId(item);\r\n var seed = _.isFunction(self.options.listItemSeed) ? self.options.listItemSeed(item, id) : self.options.listItemSeed;\r\n return _.extend({}, seed, {\r\n data: item,\r\n _uniqueId: id\r\n });\r\n};\r\ndlbDataSource.prototype._createDataSource = function () {\r\n var self = this;\r\n var dataSet = {};\r\n dataSet[self.schemaDataProperty] = self.options.dataItems;\r\n return new kendo.data.DataSource({\r\n data: dataSet,\r\n schema: self.options.schema,\r\n serverFiltering: self.useCallbackForFilter,\r\n serverPaging: self.useCallbackForFilter,\r\n pageSize: self.options.pageSize,\r\n transport: self.externalTransport ? {\r\n read: _.bind(!self.useCallbackForFilter ? self._loadDataWithMemoryCache : self._loadRemoteData, self)\r\n } : undefined\r\n });\r\n};\r\ndlbDataSource.prototype._loadDataWithMemoryCache = function (kendoReadOptions) {\r\n var originalSuccess = kendoReadOptions.success, self = this;\r\n if (self._data) {\r\n originalSuccess(self._data);\r\n return;\r\n }\r\n kendoReadOptions.success = function (data) {\r\n self._data = data;\r\n originalSuccess(data);\r\n };\r\n self._loadRemoteData(kendoReadOptions);\r\n};\r\ndlbDataSource.prototype._loadRemoteData = function (kendoReadOptions) {\r\n var self = this;\r\n var request = {\r\n filterText: kendoReadOptions.data.filter && kendoReadOptions.data.filter.filters[0] ? kendoReadOptions.data.filter.filters[0].value : '',\r\n skip: kendoReadOptions.data.skip,\r\n take: kendoReadOptions.data.take\r\n };\r\n self.sourceLoadCancelToken = self._getCancellationToken(request, kendoReadOptions.error);\r\n self.options.dataCallback(request, function (error, data) {\r\n self.sourceLoadCancelToken = null;\r\n if (error) {\r\n kendoReadOptions.error(error);\r\n } else if (!request.cancelled) {\r\n kendoReadOptions.success(data);\r\n }\r\n });\r\n};\r\ndlbDataSource.prototype._getCancellationToken = function (request, errorCallback) {\r\n return _.bind(function (req, error) {\r\n error(new Error('Cancel'));\r\n req.cancelled = true;\r\n }, self, request, errorCallback);\r\n};\r\nexport default dlbDataSource;\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n 'title': 'AdGroup',\r\n 'type': 'AdGroup',\r\n 'properties': {\r\n 'CampaignId': {\r\n 'type': 'Number',\r\n 'nullable': false,\r\n 'readonly': true\r\n },\r\n 'CampaignName': {\r\n 'type': 'String',\r\n 'nullable': false,\r\n 'readonly': true\r\n },\r\n 'DeliveryStatus': {\r\n 'type': 'String',\r\n 'nullable': true,\r\n 'readonly': true,\r\n 'enum': ['CreditCardExpired', 'IOExceeded', 'PaymentInformationMissing', 'InvalidFinancialStatusOther', 'MigrationPaused', 'CampaignDeleted', 'CampaignBudgetPaused', 'ShoppingCampaignStoreNotFound', 'ShoppingCampaignNoOffersPresent', 'AdGroupExpired', 'AdGroupDraft', 'CamAssetRejected', 'CamAssetDeleted', 'EditorialRejected', 'EditorialUnderAppeal', 'EditorialPending', 'AssociationDeleted', 'CampaignUserPaused', 'AdGroupUserPaused', 'AdUserPaused', 'KeywordMatchTypeAdGroupMediumCombinationInvalid', 'KeywordUserPaused', 'NegativeKeywordConflicts', 'BidBelowFirstPageBid', 'EditorialApprovedLimited', 'Incomplete', 'BudgetSuggestions', 'GeoCodingIncomplete', 'ProductTargetUserPaused', 'AdExtensionNotPresent', 'AdExtensionDeleted', 'AdExtensionAssociationDeleted', 'StoreIdNotAssociated', 'ApplicationNotFound', 'ApplicationDestinationUrlMismatch', 'PendingMetadataSync', 'Eligible']\r\n },\r\n 'NegativeKeywordCount': {\r\n 'type': 'Number',\r\n 'nullable': true,\r\n 'readonly': true\r\n },\r\n 'BiddingStrategy': {\r\n 'type': 'String',\r\n 'nullable': true,\r\n 'enum': ['Manual', 'CPA']\r\n },\r\n 'Id': {\r\n 'type': 'Number',\r\n 'nullable': false\r\n },\r\n 'MakeAllChildrenInheritCashBackInfo': {\r\n 'type': 'Boolean',\r\n 'nullable': true\r\n },\r\n 'Medium': {\r\n 'type': 'String',\r\n 'nullable': true,\r\n 'readonly': true,\r\n 'enum': ['Search', 'Content']\r\n },\r\n 'Name': {\r\n 'type': 'String',\r\n 'nullable': false,\r\n 'mergeEditable': false,\r\n 'required': true,\r\n 'aggregateType': 'count'\r\n },\r\n 'NegativeKeywords': {\r\n 'type': 'Object',\r\n 'nullable': false\r\n },\r\n 'NegativeSiteURLs': {\r\n 'type': 'Object',\r\n 'nullable': false\r\n },\r\n 'Network': {\r\n 'type': 'String',\r\n 'nullable': true,\r\n 'enum': ['BingYahooAndSearchPartners', 'BingYahooOnly', 'SearchPartnersOnly']\r\n },\r\n 'OptimizationTarget': {\r\n 'type': 'Number',\r\n 'nullable': true\r\n },\r\n 'PricingModel': {\r\n 'type': 'String',\r\n 'nullable': true,\r\n 'enum': ['CPC', 'CPM']\r\n },\r\n 'PublisherCountries': {\r\n 'type': 'Object',\r\n 'nullable': false\r\n },\r\n 'StartDate': {\r\n 'type': 'DateTime',\r\n 'nullable': true\r\n },\r\n 'Status': {\r\n 'type': 'String',\r\n 'nullable': true,\r\n 'enum': ['CampaignUserPaused', 'CampaignBudgetPaused', 'CampaignBudgetUserPaused', 'Draft', 'Active', 'Deleted', 'Paused', 'Expired']\r\n },\r\n 'Timestamp': {\r\n 'type': 'Object',\r\n 'nullable': false\r\n }\r\n }\r\n};\r\n\r\n","/* eslint-disable */\r\nimport schema from '@bingads-webui-static-legacy/wunderbar/data/schemas/new/AdGroup';\r\nimport backbone_schema from '@bingads-webui-static-legacy/wunderbar/libs/int/schema/factory/backbone';\r\nexport default {\r\n name: 'adgroup',\r\n backbone: backbone_schema.from(schema),\r\n schema: schema\r\n};\r\n\r\n","/* eslint-disable */\r\nimport base from '@bingads-webui-static-legacy/wunderbar/data/collections/base';\r\nimport model from '@bingads-webui-static-legacy/wunderbar/data/models/adgroup';\r\nvar collection = base.extend({\r\n model: model.backbone,\r\n url: '/Campaign/WunderBar/GetAdGroups'\r\n});\r\nexport default collection;\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Promise from 'bluebird';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport jsdata from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport AdGroupCollection from '@bingads-webui-static-legacy/wunderbar/data/collections/adgroups';\r\nimport CampaignCollection from '@bingads-webui-static-legacy/wunderbar/data/collections/campaigns';\r\nimport Pristine from '@bingads-webui-static-legacy/wunderbar/data/collections/pristine';\r\nvar adgroupRequest = {\r\n promise: null,\r\n campaignId: null,\r\n adgroupId: null\r\n}, campaignRequest = {\r\n promise: null,\r\n campaignId: null\r\n};\r\nvar adgroups = new Pristine(new AdGroupCollection());\r\nvar campaigns = new Pristine(new CampaignCollection());\r\nfunction userParameters() {\r\n var params = {\r\n cid: pageContext.CurrentCustomer.Id,\r\n uid: pageContext.CurrentUser.Id,\r\n aid: pageContext.CurrentAccount.Id\r\n };\r\n return $.param(params) + '&';\r\n}\r\nfunction clearPromise(request) {\r\n return function () {\r\n request.promise = null;\r\n request.campaignId = null;\r\n if (request.adgroupId) {\r\n request.adgroupId = null;\r\n }\r\n };\r\n}\r\nvar getPristineRequest = function (options) {\r\n options = options || ({});\r\n options.data = options.data || ({});\r\n options.http_method = 'GET';\r\n options.hideLoadingPanelOnSuccess = false;\r\n options.ignoreBeforeAjax = true;\r\n return options;\r\n};\r\nexport default {\r\n getAdgroup: function (campaignId, adgroupId) {\r\n if (adgroupRequest.campaignId === campaignId && adgroupRequest.adgroupId === adgroupId && adgroupRequest.promise) {\r\n return adgroupRequest.promise;\r\n } else {\r\n adgroupRequest.campaignId = campaignId;\r\n adgroupRequest.adgroupId = adgroupId;\r\n adgroupRequest.promise = $.get('/campaign/wunderbar/getAdgroup?' + userParameters() + $.param({\r\n 'cmpid': campaignId,\r\n 'adgid': adgroupId\r\n }));\r\n adgroupRequest.promise.then(function (data) {\r\n window.selectedAdgroupLanguage = data ? data.Language : undefined;\r\n });\r\n adgroupRequest.promise.then(clearPromise(adgroupRequest), clearPromise(adgroupRequest));\r\n return adgroupRequest.promise;\r\n }\r\n },\r\n getCampaign: function (campaignId, experimentId) {\r\n if (campaignRequest.campaignId === campaignId && campaignRequest.promise) {\r\n return campaignRequest.promise;\r\n } else {\r\n campaignRequest.campaignId = campaignId;\r\n campaignRequest.promise = $.get('/campaign/wunderbar/getCampaign?' + userParameters() + $.param({\r\n 'cmpid': campaignId\r\n }));\r\n if (experimentId) {\r\n var fetchExperimentTask = jsdata.Experiment.find(experimentId, {\r\n bypassCache: true,\r\n cacheResponse: true\r\n });\r\n campaignRequest.promise = Promise.join(campaignRequest.promise, fetchExperimentTask).then(function (results) {\r\n return _.defaults({}, results[1], results[0]);\r\n });\r\n }\r\n campaignRequest.promise.then(clearPromise(campaignRequest), clearPromise(campaignRequest));\r\n return campaignRequest.promise;\r\n }\r\n },\r\n getCampaigns: function (options) {\r\n campaigns.fetch(getPristineRequest(options), Pristine.getPristineKey('Campaigns'));\r\n },\r\n getAdgroups: function (options) {\r\n adgroups.fetch(getPristineRequest(options), Pristine.getPristineKey('AdGroups', options.data.campaignId));\r\n }\r\n};\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n 141: 'Active',\r\n 143: 'Deleted',\r\n 8: 'Suspended',\r\n 140: 'Draft',\r\n 144: 'Paused',\r\n 150: 'Expired'\r\n};\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport backbone from 'backbone';\r\nimport PageContext from '@bingads-webui-static-legacy/page-context';\r\nimport memSto from '@bingads-webui-component-legacy/storage/memoryStorage';\r\nimport odata from '@bingads-webui-static-legacy/communication/channel/odata';\r\nimport base from '@bingads-webui-static-legacy/wunderbar/data/collections/base';\r\nimport model from '@bingads-webui-static-legacy/wunderbar/data/models/adgroup';\r\nimport adgroupStatus from '@bingads-webui-static-legacy/schema/adgroup/entityStatus';\r\nimport * as odataQuery from '@bingads-webui/filter-entity';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nvar keys = [];\r\nvar collection = base.extend({\r\n model: model.backbone,\r\n url: 'Advertiser/Customers()/Accounts()/',\r\n initialize: function () {\r\n this._meta = {};\r\n this.set('adgroupOptions', {});\r\n var adgroupChangedEvent = 'adGroupDeleted adGroupUpdated adGroupCreated';\r\n var adgroupChangeCallback = function (res, options) {\r\n var changed = res && _.isArray(res.data) ? res.data : options && _.isArray(options.models) ? options.models : [];\r\n _.each(changed, function (adGroup) {\r\n if (!adGroup.CampaignId) {\r\n _.each(keys, function (key) {\r\n memSto.invalidate(key);\r\n });\r\n keys = [];\r\n } else {\r\n var campaignId = adGroup.CampaignId.toString();\r\n _.each(keys, function (key, i) {\r\n if (key.indexOf(campaignId) > -1) {\r\n memSto.invalidate(key);\r\n keys.splice(i, 1);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n window.App.off(adgroupChangedEvent, adgroupChangeCallback).on(adgroupChangedEvent, adgroupChangeCallback);\r\n },\r\n set: function (prop, value) {\r\n this._meta[prop] = value;\r\n },\r\n get: function (prop) {\r\n return this._meta[prop];\r\n },\r\n sync: function (method, model, options) {\r\n var self = this, adgroupOptions = self.get('adgroupOptions'), canCache = adgroupOptions.allowCaching === true && self._eligibleForCaching(adgroupOptions), adgroups, adgPro;\r\n if (method === 'read') {\r\n if (canCache) {\r\n adgPro = $.Deferred();\r\n adgroups = self._getFromCache(adgroupOptions);\r\n if (adgroups) {\r\n adgPro.resolve(adgroups);\r\n return adgPro.promise();\r\n }\r\n }\r\n var url = self._augmentUrl(self.url, options);\r\n adgPro = odata.get(url, null, options);\r\n if (canCache) {\r\n adgPro.done(function (data) {\r\n self._setCache(adgroupOptions, data);\r\n });\r\n }\r\n return adgPro;\r\n }\r\n },\r\n _eligibleForCaching: function (options) {\r\n return !(_.isUndefined(options.campaignId) || _.isUndefined(options.skip)) && !options.nameFilterText;\r\n },\r\n _setCache: function (options, data) {\r\n var newKey = this._getCacheKey(options), firstKey;\r\n if (keys.length === (options.maxCacheSize || 10)) {\r\n firstKey = keys[0];\r\n memSto.invalidate(firstKey);\r\n keys.shift();\r\n }\r\n memSto.set(newKey, data);\r\n keys.push(newKey);\r\n },\r\n _getFromCache: function (options) {\r\n return memSto.get(this._getCacheKey(options));\r\n },\r\n _getCacheKey: function (options) {\r\n return options.campaignId + '_' + options.skip;\r\n },\r\n _augmentUrl: function (url, options) {\r\n var urlEntity = 'AdGroups', resultUrl = url, adgroupOptions = this.get('adgroupOptions'), currentScope = adgroupOptions.scope ? adgroupOptions.scope.currentScope : null, campaignId = adgroupOptions.campaignId, filterText = adgroupOptions.nameFilterText ? adgroupOptions.nameFilterText : '', filterOptions = adgroupOptions.predicate, filterExpression = '';\r\n if (_.isArray(filterOptions)) {\r\n _.each(filterOptions, function (opt, idx) {\r\n if (idx !== 0) filterExpression += ' and ';\r\n _.each(opt, function (option, index) {\r\n if (index !== 0) filterExpression += ' or '; else filterExpression += '(';\r\n filterExpression += option.operand + ' ' + option.operator + ' ' + option.value;\r\n if (index === opt.length - 1) filterExpression += ')';\r\n });\r\n });\r\n }\r\n if ((filterText === '' || (adgroupOptions.controlMode === 'campaign' || currentScope === 'campaign')) && campaignId) resultUrl += 'Campaigns(' + campaignId + ')/' + urlEntity; else resultUrl += urlEntity;\r\n resultUrl += '?';\r\n resultUrl += '$expand=Campaign($select=Id,Name,CampaignType,CampaignSubType)';\r\n resultUrl += '&$select=Name,Id,Status,Medium,Language';\r\n var isDSAMixedModeCampaignEnabled = _.result(config.get('Permissions'), 'IsDSAMixedModeCampaignEnabled', false);\r\n if (isDSAMixedModeCampaignEnabled) {\r\n resultUrl += ',AdGroupType';\r\n }\r\n resultUrl += '&$top=' + adgroupOptions.take;\r\n resultUrl += '&$skip=' + adgroupOptions.skip;\r\n if (filterText !== '') {\r\n var $filter = odataQuery.convertToOData({\r\n Name: {\r\n $contains: encodeURIComponent(filterText)\r\n }\r\n }, {});\r\n resultUrl += '&$filter=' + $filter;\r\n if (filterExpression !== '') resultUrl += ' and ' + filterExpression;\r\n } else {\r\n if (filterExpression !== '') resultUrl += '&$filter=' + filterExpression;\r\n }\r\n resultUrl += '&$count=true';\r\n return resultUrl;\r\n }\r\n});\r\nexport default collection;\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n 121: 'Active',\r\n 123: 'Deleted',\r\n 8: 'Suspended',\r\n 124: 'UserPaused',\r\n 126: 'BudgetPaused',\r\n 127: 'BudgetUserPaused'\r\n};\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n 'statusEnabled_icon': 'EntityStatus_Active',\r\n 'statusExcluded_icon': 'EntityStatus_Exclude',\r\n 'statusDeleted_icon': 'EntityStatus_Deleted',\r\n 'statusSuspended_icon': 'EntityStatus_InActive',\r\n 'statusPaused_icon': 'EntityStatus_Paused'\r\n};\r\n\r\n","/* eslint-disable */\r\nimport legacy$ from 'jquery';\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport uiBlocker from '@bingads-webui-component-legacy/uiblocker/service/uiBlocker';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport appConfig from '@bingads-webui-component-legacy/config/index';\r\nimport entityService from '@bingads-webui-static-legacy/entity-service';\r\nimport AdGroupCollection from '@bingads-webui-static-legacy/wunderbar/data/collections/adgroupsCollection';\r\nimport campaignStatusList from '@bingads-webui-static-legacy/schema/campaign/entityStatus';\r\nimport adgroupStatusList from '@bingads-webui-static-legacy/schema/adgroup/entityStatus';\r\nimport statusIconLabelList from '@bingads-webui-static-legacy/schema/account/statusIconLabel';\r\nimport setting from '@bingads-webui-static-legacy/instrumentation/campaignSchemaAndSetting';\r\nimport instruSvc from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport '@bingads-webui-static-legacy/instrumentation/instrumentation';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!global');\r\nvar Service = function (entityServiceImplementation, viewModel, options, blockerContainer) {\r\n var serviceInjected = false;\r\n this.useInjectedAdgroupFetch = false;\r\n if (entityServiceImplementation) {\r\n if (_.isFunction(entityServiceImplementation.getCampaigns) && _.isFunction(entityServiceImplementation.getAdgroups)) {\r\n serviceInjected = true;\r\n this.useInjectedAdgroupFetch = !!entityServiceImplementation.useInjectedAdgroupFetch;\r\n } else {\r\n throw new Error('entityServiceImplementation should contain the methods: getCampaigns and getAdgroups');\r\n }\r\n }\r\n this.entityService = serviceInjected ? entityServiceImplementation : entityService;\r\n this.options = options;\r\n this.blockerContainer = blockerContainer;\r\n this.viewModel = viewModel;\r\n};\r\nvar shouldKeepSmartShoppingCampaignAdGroup = function (adgroup, adsCountMap) {\r\n if (adgroup.Campaign.CampaignSubType !== 'ShoppingSmartAds') {\r\n return true;\r\n }\r\n var permissions = appConfig.get('Permissions');\r\n var isResponsiveAdForSSCEnabled = permissions.IsResponsiveAdForSSCEnabled;\r\n var result;\r\n if (isResponsiveAdForSSCEnabled) {\r\n result = adgroup.Campaign.CampaignSubType === 'ShoppingSmartAds' && (!adsCountMap[adgroup.Id] || !adsCountMap[adgroup.Id].Product || !adsCountMap[adgroup.Id].Responsive);\r\n } else {\r\n result = adgroup.Campaign.CampaignSubType === 'ShoppingSmartAds' && (!adsCountMap[adgroup.Id] || !adsCountMap[adgroup.Id].Product);\r\n }\r\n return result;\r\n};\r\nService.shouldKeepSmartShoppingCampaignAdGroup = shouldKeepSmartShoppingCampaignAdGroup;\r\nService.prototype = (function () {\r\n var getCampaignData = function (controlOptions, options, cb) {\r\n uiBlocker.block(this.blockerContainer, 'getCampaignBlocker', true);\r\n var campaignId = this.viewModel.selectedCampaign() ? this.viewModel.selectedCampaign().Id : null, campaign = this.viewModel.selectedCampaign() ? this.viewModel.selectedCampaign() : null, predicate = controlOptions.filterPredicate, campaignPredicate = predicate ? predicate.campaign : null;\r\n this.entityService.getCampaigns({\r\n success: _.bind(_filterCampaigns, this, options, cb),\r\n fail: function (error) {\r\n uiBlocker.unblock(this.blockerContainer, 'getCampaignBlocker');\r\n },\r\n filterPredicate: campaignPredicate,\r\n filterText: options.filterText,\r\n skip: options.skip,\r\n take: options.take,\r\n data: {\r\n campaignId: campaignId,\r\n campaign: campaign\r\n }\r\n });\r\n if (_.isFunction(this.viewModel.RefreshAdgroups)) {\r\n this.viewModel.filterText(options.filterText);\r\n this.viewModel.RefreshAdgroups();\r\n }\r\n };\r\n var _filterCampaigns = function (options, cb, data) {\r\n var scope = this.options && this.options.scope;\r\n if (!data || !data.data) {\r\n return;\r\n }\r\n var campaignData = data.data, query = _.chain(campaignData).filter(_getSearchPredicate(options.filterText)).filter(function (campaign) {\r\n return campaign.CampaignType !== 16;\r\n }).filter(function (campaign) {\r\n var scenario = scope && scope.scenario;\r\n var level = scope && scope.level;\r\n var adgroupLevel = 1;\r\n if ((scenario === 'locations-grid' || scenario === 'ad-schedules-grid') && campaign.CampaignSubType === 12 && level === adgroupLevel) {\r\n return false;\r\n }\r\n if ((scenario === 'negative-keywords-grid' || scenario === 'negative-keyword-lists-grid' || scenario === 'devices-grid') && campaign.CampaignSubType === 12) {\r\n return false;\r\n }\r\n return true;\r\n }).map(function (cam) {\r\n return _.extend(cam, {\r\n name: cam.Name,\r\n statusHtml: getStatusHtml(campaignStatusList, cam.Status, 'Campaign')\r\n });\r\n }), total = data.HasPaged ? data.total : query.value().length, items = data.HasPaged ? query.value() : query.rest(options.skip || 0).first(options.take || Math.pow(2, 31)).value();\r\n cb(null, {\r\n items: items,\r\n total: total\r\n });\r\n uiBlocker.unblock(this.blockerContainer, 'getCampaignBlocker');\r\n };\r\n var removeAllBlockers = function (blockerContext) {\r\n var blockerContainer = blockerContext.blockerContainer;\r\n if (this.blockerContainer && this.blockerContainer.length == 1) {\r\n blockerContainer = this.blockerContainer;\r\n }\r\n uiBlocker.unblock(blockerContainer, 'getCampaignBlocker');\r\n uiBlocker.unblock(blockerContainer, 'getAdgroupBlocker');\r\n };\r\n var getAdgroupDataServer = function (controlOptions, options, cb) {\r\n var campaignId = this.viewModel.selectedCampaign() ? this.viewModel.selectedCampaign().Id : null, campaign = this.viewModel.selectedCampaign() ? this.viewModel.selectedCampaign() : null, predicate = controlOptions.filterPredicate, scope = controlOptions.scope, controlMode = controlOptions.controlMode, filterText = this.viewModel.filterText() || options.filterText, adgroupPredicate = predicate ? predicate.adgroup : null, self = this;\r\n options = _.extend(options, {\r\n data: {\r\n campaignId: campaignId,\r\n campaign: campaign\r\n },\r\n customFilter: adgroupPredicate\r\n });\r\n if (!campaignId && (!filterText || filterText === '')) {\r\n cb(null, {\r\n items: [],\r\n total: 0\r\n });\r\n this.viewModel.adgroups([]);\r\n } else {\r\n instruSvc.startActivity(setting.ACTIVITYNAME.AdgroupSelectorLoadAdgroups);\r\n uiBlocker.block(this.blockerContainer, 'getAdgroupBlocker', true);\r\n var adgroups = new AdGroupCollection();\r\n adgroups.set('adgroupOptions', {\r\n allowCaching: false,\r\n skip: options.skip || 0,\r\n take: options.take || 20000,\r\n campaignId: campaignId,\r\n nameFilterText: filterText,\r\n predicate: adgroupPredicate,\r\n scope: scope,\r\n controlMode: controlMode\r\n });\r\n $.advertiser.clearErrorSummary();\r\n adgroups.fetch().done(_.bind(_filterAdgroupsServer, this, options, scope, cb)).fail(function (error) {\r\n if (_.isFunction(controlOptions.errorCb)) {\r\n controlOptions.errorCb(error);\r\n }\r\n cb(error);\r\n legacy$.advertiser.appendErrorSummary(i18n.getString('GenericErrorMessage'));\r\n uiBlocker.unblock(self.blockerContainer, 'getAdgroupBlocker');\r\n instruSvc.endActivity(setting.ACTIVITYNAME.AdgroupSelectorLoadAdgroups, false);\r\n });\r\n }\r\n };\r\n var getAdgroupDataClient = function (controlOptions, options, cb) {\r\n var campaignId = this.viewModel.selectedCampaign() ? this.viewModel.selectedCampaign().Id : null, campaign = this.viewModel.selectedCampaign() ? this.viewModel.selectedCampaign() : null, scope = controlOptions.scope, filterText = options.filterText || this.viewModel.filterText(), predicate = controlOptions.filterPredicate, adgroupPredicate = predicate ? predicate.adgroup : null;\r\n options = _.extend(options, {\r\n data: {\r\n campaignId: campaignId,\r\n campaign: campaign\r\n },\r\n customFilter: adgroupPredicate,\r\n filterText: filterText,\r\n skip: options.skip,\r\n take: options.take\r\n });\r\n if (!campaignId && !filterText) {\r\n cb(null, {\r\n items: [],\r\n total: 0\r\n });\r\n } else {\r\n uiBlocker.block(this.blockerContainer, 'getAdgroupBlocker', true);\r\n this.entityService.getAdgroups(_.extend(options, {\r\n success: _.bind(_filterAdgroups, this, options, scope, cb),\r\n fail: function (error) {\r\n cb(error);\r\n uiBlocker.unblock(this.blockerContainer, 'getAdgroupBlocker');\r\n },\r\n filterPredicate: adgroupPredicate\r\n }));\r\n }\r\n };\r\n var getAdgroupData = function (controlOptions, options, cb) {\r\n if (this.useInjectedAdgroupFetch) {\r\n return this.getAdgroupDataClient(controlOptions, options, cb);\r\n } else {\r\n return this.getAdgroupDataServer(controlOptions, options, cb);\r\n }\r\n };\r\n var _filterAdgroupsServer = function (options, scope, cb, data) {\r\n var result = {};\r\n result.data = data.value;\r\n result.total = data.hasOwnProperty('@odata.count') ? data['@odata.count'] : 0;\r\n _filterAdgroups.call(this, options, scope, cb, result);\r\n instruSvc.endActivity(setting.ACTIVITYNAME.AdgroupSelectorLoadAdgroups);\r\n };\r\n var getAdsCount = function (adgroupData, campaign, account, customer) {\r\n return new Promise(function (resolve) {\r\n if (campaign && campaign.CampaignSubType !== 12 && campaign.CampaignSubType !== 'ShoppingSmartAds') {\r\n resolve({});\r\n } else if (adgroupData && adgroupData.length === 0) {\r\n resolve({});\r\n } else {\r\n if (!campaign) {\r\n campaign = _.first(adgroupData).Campaign;\r\n }\r\n if (!Array.isArray(adgroupData)) {\r\n adgroupData = [adgroupData];\r\n }\r\n var adgroupIds = _.map(adgroupData, function (adgroup) {\r\n return adgroup.Id;\r\n });\r\n odata.post('Customers(' + customer.Id + ')/Accounts(' + account.Id + ')/Campaigns(' + campaign.Id + ')/Ads/Default.GetAdCount', {\r\n data: {\r\n adGroupIds: adgroupIds\r\n }\r\n }).then(function (obj) {\r\n var adsCount = _.result(obj, 'value', []);\r\n var adsCountMap = {};\r\n adsCount.forEach(function (item) {\r\n adsCountMap[item.AdGroupId] = _.object(item.AdsCountByAdType.Keys, item.AdsCountByAdType.Values);\r\n });\r\n resolve(adsCountMap);\r\n }).catch(function (e) {\r\n console.log(e);\r\n resolve({});\r\n });\r\n }\r\n });\r\n };\r\n var _filterAdgroups = function (options, scope, cb, data) {\r\n var scenario = scope && scope.scenario;\r\n if (!data || !data.data) {\r\n return;\r\n }\r\n var adgroupData = data.data, campaign = options.data.campaign;\r\n _.each(adgroupData, function (ag) {\r\n if (campaign && ag.Campaign.Id === campaign.Id) {\r\n ag.isFeedBasedCampaign = !!_.result(_.take(campaign.CampaignSettings), 'ProviderId');\r\n }\r\n });\r\n Promise.resolve(scenario === 'ads-create' ? getAdsCount(adgroupData, campaign, scope.account, scope.customer) : {}).bind(this).then(function (adsCountMap) {\r\n var query = _.chain(adgroupData).filter(function (adgroup) {\r\n return shouldKeepSmartShoppingCampaignAdGroup(adgroup, adsCountMap);\r\n }).map(function (adg) {\r\n return _.extend(adg, {\r\n parentId: adg.Campaign.Id,\r\n parentName: adg.Campaign.Name,\r\n name: adg.Name,\r\n statusHtml: getStatusHtml(adgroupStatusList, adg.Status, 'Adgroup'),\r\n adsCountMap: adsCountMap\r\n });\r\n });\r\n if (_.isFunction(options.customFilter)) {\r\n query = query.filter(options.customFilter);\r\n }\r\n var items = query.value();\r\n var isShoppingSmartAd = campaign && (campaign.CampaignSubType === 12 || campaign.CampaignSubType === 'ShoppingSmartAds');\r\n var total = !isShoppingSmartAd && data.total ? data.total : items.length;\r\n cb(null, {\r\n items: items,\r\n total: total\r\n });\r\n uiBlocker.unblock(this.blockerContainer, 'getAdgroupBlocker');\r\n });\r\n };\r\n var _getSearchPredicate = function (filterText) {\r\n return function (item) {\r\n if (!item) {\r\n return;\r\n }\r\n return item.Name.toLowerCase().indexOf(filterText.toLowerCase()) !== -1;\r\n };\r\n };\r\n var _getStatusClass = function (status, original) {\r\n var resultClass = original;\r\n switch (status) {\r\n case 'Active':\r\n resultClass = 'statusEnabled_icon';\r\n break;\r\n case 'Excluded':\r\n resultClass = 'statusExcluded_icon';\r\n break;\r\n case 'Deleted':\r\n resultClass = 'statusDeleted_icon';\r\n break;\r\n case 'Suspended':\r\n resultClass = 'statusSuspended_icon';\r\n break;\r\n case 'UserPaused':\r\n case 'BudgetPaused':\r\n case 'BudgetUserPaused':\r\n case 'Paused':\r\n resultClass = 'statusPaused_icon';\r\n break;\r\n }\r\n return resultClass;\r\n };\r\n var getStatusHtml = function (statusList, status, entityType) {\r\n var className = _getStatusClass(status, 'statusEnabled_icon');\r\n className = _getStatusClass(statusList[status], className);\r\n var prefix = '';\r\n if (entityType === 'Adgroup') {\r\n prefix = i18n.getString('EntityType_AdGroup_Singular') + ' ';\r\n } else if (entityType === 'Campaign') {\r\n prefix = i18n.getString('EntityType_Campaign_Singular') + ' ';\r\n }\r\n return '';\r\n };\r\n var setControlScope = function (scope, viewModel) {\r\n switch (scope.currentScope) {\r\n default:\r\n viewModel.scope = viewModel.controlModes.account;\r\n break;\r\n case 'campaign':\r\n var campaign = extendProperties(scope.campaign);\r\n viewModel.selectedCampaign(campaign);\r\n viewModel.scope = viewModel.controlModes.campaign;\r\n break;\r\n case 'adgroup':\r\n var campaign = extendProperties(scope.campaign), adgroup = extendProperties(scope.adgroup);\r\n adgroup = _.extend(adgroup, {\r\n Campaign: campaign\r\n });\r\n viewModel.selectedCampaign(campaign);\r\n if (viewModel.hasOwnProperty('selectedAdgroup')) {\r\n viewModel.selectedAdgroup(adgroup);\r\n }\r\n viewModel.scope = viewModel.controlModes.adgroup;\r\n break;\r\n }\r\n };\r\n var extendProperties = function (entity) {\r\n return _.extend(entity, {\r\n Id: entity.Id || entity.id,\r\n Name: entity.Name || entity.name\r\n });\r\n };\r\n var extendAdgroup = (function (observable, adgroup) {\r\n uiBlocker.block(this.blockerContainer, 'getAdgroupBlocker', true);\r\n entityService.getAdgroup(adgroup.Campaign.Id, adgroup.Id).then(_.bind(function (adg) {\r\n observable(_.extend(adgroup, adg));\r\n uiBlocker.unblock(this.blockerContainer, 'getAdgroupBlocker');\r\n }, this), _.bind(function (error) {\r\n observable(adgroup);\r\n uiBlocker.unblock(this.blockerContainer, 'getAdgroupBlocker');\r\n }, this));\r\n }).asLoggingStart(setting.ACTIVITYNAME.AdgroupSelectorLoadExtendedAdgroup);\r\n return {\r\n getCampaignData: getCampaignData,\r\n getAdgroupData: getAdgroupData,\r\n getAdgroupDataServer: getAdgroupDataServer,\r\n getAdgroupDataClient: getAdgroupDataClient,\r\n removeAllBlockers: removeAllBlockers,\r\n getStatusHtml: getStatusHtml,\r\n setControlScope: setControlScope,\r\n extendProperties: extendProperties,\r\n extendAdgroup: extendAdgroup,\r\n getAdsCount: getAdsCount\r\n };\r\n})();\r\nexport default Service;\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport ko from 'knockout';\r\nimport sectionItemTemplate from '@bingads-webui-static-legacy/shared/template/SectionItem.pug';\r\nko.bindingHandlers.sectionItem = {\r\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\r\n var bindingOptions = valueAccessor();\r\n var innerBindingContext = bindingContext.extend({\r\n bindingOptions: bindingOptions\r\n });\r\n var $element = $(element);\r\n var $newContent = $(sectionItemTemplate()).addClass($element.attr('class'));\r\n $element.children().detach().appendTo($newContent.find('.section-item-editor'));\r\n $(element).replaceWith($newContent);\r\n ko.applyBindingsToDescendants(innerBindingContext, $newContent[0]);\r\n return {\r\n controlsDescendantBindings: true\r\n };\r\n }\r\n};\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nvar Permissions = pageContext.Permissions;\r\nexport default {\r\n dataDateRanges: {\r\n 'Today': 'Today',\r\n 'Yesterday': 'Yesterday',\r\n 'ThisWeekFromSun': 'ThisWeekFromSun',\r\n 'ThisWeekFromMon': 'ThisWeekFromMon',\r\n 'Last7Days': 'LastSevenDays',\r\n 'LastWeekStartingSun': 'LastWeekStartingSun',\r\n 'LastWeekStartingMon': 'LastWeekStartingMon',\r\n 'LastBusinessWeek': 'LastBusinessWeek',\r\n 'Last14Days': 'LastFourteenDays',\r\n 'ThisMonth': 'ThisMonth',\r\n 'Last30Days': 'LastThirtyDays',\r\n 'LastMonth': 'LastMonth',\r\n 'Last3Month': 'LastThreeMonths',\r\n 'Last6Month': 'LastSixMonths',\r\n 'ThisYear': 'ThisYear',\r\n 'LastYear': 'LastYear',\r\n 'AllTime': 'AllTime'\r\n },\r\n frequencyGrain: {\r\n 'Hourly': 4,\r\n 'Daily': 0,\r\n 'Weekly': 1,\r\n 'Monthly': 2,\r\n 'Once': 3\r\n },\r\n weeklyOptions: {\r\n 'Monday': 1,\r\n 'Tuesday': 2,\r\n 'Wednesday': 3,\r\n 'Thursday': 4,\r\n 'Friday': 5,\r\n 'Saturday': 6,\r\n 'Sunday': 0\r\n },\r\n dailyOptions: {\r\n '12AM': 0,\r\n '1AM': 1,\r\n '2AM': 2,\r\n '3AM': 3,\r\n '4AM': 4,\r\n '5AM': 5,\r\n '6AM': 6,\r\n '7AM': 7,\r\n '8AM': 8,\r\n '9AM': 9,\r\n '10AM': 10,\r\n '11AM': 11,\r\n '12PM': 12,\r\n '1PM': 13,\r\n '2PM': 14,\r\n '3PM': 15,\r\n '4PM': 16,\r\n '5PM': 17,\r\n '6PM': 18,\r\n '7PM': 19,\r\n '8PM': 20,\r\n '9PM': 21,\r\n '10PM': 22,\r\n '11PM': 23\r\n },\r\n emailOptions: {\r\n 'Always': 'Always',\r\n 'OnChangeOrError': 'OnChange, OnError',\r\n 'OnError': 'OnError',\r\n 'None': 'None'\r\n },\r\n scopeOptions: {\r\n 'Selected': 0,\r\n 'AllEnabled': 1,\r\n 'AllButRemoved': 2,\r\n 'SelectCampaignOrAdGroup': 3\r\n },\r\n entityRelatedOptions: {\r\n 'EnabledStatusFilterValue': {\r\n 'Campaign': ['121', '126'],\r\n 'Ad': ['1'],\r\n 'AdGroup': ['141', '126'],\r\n 'Keyword': ['161']\r\n },\r\n 'EnabledStatusFilterColumn': {\r\n 'Campaign': 'CampaignStatus',\r\n 'Ad': 'AdUiDisplayStatus',\r\n 'AdGroup': 'AdGroupStatus',\r\n 'Keyword': 'KeywordStatus'\r\n },\r\n 'PauseActionValue': {\r\n 'Campaign': 'UserPaused',\r\n 'Ad': 'Paused',\r\n 'AdGroup': 'Paused',\r\n 'Keyword': 'Paused'\r\n },\r\n 'EntityGridFilterName': {\r\n 'Campaign': 'campaignsFilters',\r\n 'Ad': 'adFilters',\r\n 'AdGroup': 'adGroupFilters',\r\n 'Keyword': 'gridFilter'\r\n },\r\n 'PreviewEntityKey': {\r\n 'Campaign': 'CampaignName',\r\n 'Ad': 'AdTitle',\r\n 'AdGroup': 'AdgroupName',\r\n 'Keyword': 'Keyword'\r\n }\r\n },\r\n campaignFilterData: {\r\n 'Filters': null,\r\n 'UseOrFilter': false,\r\n 'DataDomain': 'Campaign',\r\n 'ColumnToFilterTypeMapping': {\r\n 'CampaignId': 'NumericValue',\r\n 'CTR': 'NumericValue',\r\n 'Clicks': 'NumericValue',\r\n 'ClickShare': 'NumericValue',\r\n 'TotalCost': 'NumericValue',\r\n 'Impressions': 'NumericValue',\r\n 'TotalEffectiveCost': 'CurrencyValue',\r\n 'Conversions': 'NumericValue',\r\n 'AverageCPC': 'CurrencyValue',\r\n 'AverageCPM': 'CurrencyValue',\r\n 'AveragePosition': 'NumericValue',\r\n 'CPA': 'NumericValue',\r\n 'RevenueOnAdSpend': 'NumericValue',\r\n 'ConversionRate': 'NumericValue',\r\n 'AdvertiserReportedRevenue': 'NumericValue',\r\n 'AverageCPP': 'NumericValue',\r\n 'ManualCalls': 'NumericValue',\r\n 'PhoneSpent': 'NumericValue',\r\n 'PhoneImpressions': 'NumericValue',\r\n 'PhoneThroughRate': 'NumericValue',\r\n 'ClickAndPhoneSpent': 'NumericValue',\r\n 'ClickCalls': 'NumericValue',\r\n 'CampaignName': 'StringValue',\r\n 'CampaignStatus': 'EnumSelector',\r\n 'DeliveryStatus': 'EnumSelector',\r\n 'CampaignCampaignType': 'EnumSelector',\r\n 'CampaignIsLastImported': 'BooleanValue',\r\n 'CampaignBudgetAmount': 'NumericValue',\r\n 'CampaignLanguages': 'IdentitySelector',\r\n 'QualityScore': 'NumericValue',\r\n 'HasAuctionInsight': 'BooleanValue',\r\n 'Labels': 'IdentitySelector',\r\n 'DisplayBiddingStrategyType': 'EnumSelector',\r\n 'AuctionWonPercent': 'NumericValue',\r\n 'AuctionLostToBudgetPercent': 'NumericValue',\r\n 'AuctionLostToRankPercent': 'NumericValue',\r\n 'TopImpressionRate': 'NumericValue',\r\n 'AbsoluteTopImpressionRate': 'NumericValue',\r\n 'ExactMatchImpressionSharePercent': 'NumericValue',\r\n 'TopImpressionSharePercent': 'NumericValue',\r\n 'TopISLostToBudgetPercent': 'NumericValue',\r\n 'TopISLostToRankPercent': 'NumericValue',\r\n 'AbsoluteTopImpressionSharePercent': 'NumericValue',\r\n 'AbsoluteTopISLostToBudgetPercent': 'NumericValue',\r\n 'AbsoluteTopISLostToRankPercent': 'NumericValue'\r\n },\r\n 'FilterTypeToOperatorMapping': {\r\n 'StringValue': ['Contains', 'DoesNotContain', 'BeginsWith', 'EndsWith', 'Equal', 'NotEqual'],\r\n 'ExactStringValue': ['Equal'],\r\n 'PartialStringValue': ['Contains'],\r\n 'RangeSelector': ['Between'],\r\n 'EnumSelector': ['EnumSelection'],\r\n 'CurrencyValue': ['Greater', 'GreaterOrEqual', 'Less', 'LessOrEqual', 'Equal', 'NotEqual'],\r\n 'NumericValue': ['Greater', 'GreaterOrEqual', 'Less', 'LessOrEqual', 'Equal', 'NotEqual'],\r\n 'DateValue': ['Equal', 'NotEqual', 'Greater', 'GreaterOrEqual', 'Less', 'LessOrEqual', 'Between'],\r\n 'IdentityValue': ['Equal'],\r\n 'IdentitySelector': ['ContainsAll', 'ContainsAny', 'ContainsNone'],\r\n 'BooleanValue': ['Equal']\r\n },\r\n 'ColumnToEnumMapping': {\r\n 'CampaignStatus': 'CampaignStatus',\r\n 'DeliveryStatus': 'DeliveryStatus',\r\n 'CampaignCampaignType': 'CampaignType',\r\n 'DisplayBiddingStrategyType': 'BiddingStrategyType'\r\n },\r\n 'EnumTypeToAvailableValuesMapping': {\r\n 'CampaignStatus': [{\r\n 'Key': '121',\r\n 'Value': 'Active'\r\n }, {\r\n 'Key': '123',\r\n 'Value': 'Deleted'\r\n }, {\r\n 'Key': '124',\r\n 'Value': 'UserPaused'\r\n }, {\r\n 'Key': '126',\r\n 'Value': 'BudgetPaused'\r\n }, {\r\n 'Key': '127',\r\n 'Value': 'BudgetUserPaused'\r\n }, {\r\n 'Key': '8',\r\n 'Value': 'Suspended'\r\n }],\r\n 'DeliveryStatus': [{\r\n 'Key': '40',\r\n 'Value': 'InvalidFinancialStatusOther'\r\n }, {\r\n 'Key': '50',\r\n 'Value': 'CampaignBudgetPaused'\r\n }, {\r\n 'Key': '90',\r\n 'Value': 'CampaignUserPaused'\r\n }, {\r\n 'Key': '2147483647',\r\n 'Value': 'Eligible'\r\n }, {\r\n 'Key': '49',\r\n 'Value': 'CampaignSuspended'\r\n }, {\r\n 'Key': '1001',\r\n 'Value': 'BudgetSuggestions'\r\n }, {\r\n 'Key': '2000',\r\n 'Value': 'New'\r\n }, {\r\n 'Key': '190',\r\n 'Value': 'AutoBiddingLimitedByNotEnoughConversions'\r\n }, {\r\n 'Key': '107',\r\n 'Value': 'NoEligibleAdGroups'\r\n }],\r\n 'CampaignType': [{\r\n 'Key': '1',\r\n 'Value': 'Default'\r\n }, {\r\n 'Key': '2',\r\n 'Value': 'Shopping'\r\n }, {\r\n 'Key': '4',\r\n 'Value': 'DynamicSearchAds'\r\n }],\r\n 'BiddingStrategyType': _.compact([{\r\n 'Key': '1',\r\n 'Value': 'ManualCpc'\r\n }, {\r\n 'Key': '2',\r\n 'Value': 'MaxClicks'\r\n }, {\r\n 'Key': '3',\r\n 'Value': 'MaxConversions'\r\n }, {\r\n 'Key': '4',\r\n 'Value': 'TargetCpa'\r\n }, {\r\n 'Key': '5',\r\n 'Value': 'EnhancedCpc'\r\n }, (Permissions.IsCampaignTargetROASBidStrategyEnabled || Permissions.IsNewCampaignTargetROASBidStrategyEnabled) && ({\r\n 'Key': '6',\r\n 'Value': 'TargetRoas'\r\n }), (Permissions.IsMaximizeConversionValueEnabled || Permissions.IsSmartShoppingCampaignEnabled) && ({\r\n 'Key': '8',\r\n 'Value': 'MaxConversionValue'\r\n }), Permissions.IsTargetImpressionShareEnabled && ({\r\n 'Key': '9',\r\n 'Value': 'TargetImpressionShare'\r\n })])\r\n },\r\n 'QuickFilterColumn': 'CampaignName',\r\n 'QuickFilterOperator': 'Contains',\r\n 'SelectedFilter': null,\r\n 'FilterByAdgroup': false,\r\n 'OverThresholdFilter': false,\r\n 'ClientLocalization': true\r\n },\r\n adFilterData: {\r\n 'Filters': null,\r\n 'UseOrFilter': false,\r\n 'DataDomain': 'Ad',\r\n 'ColumnToFilterTypeMapping': {\r\n 'CTR': 'NumericValue',\r\n 'Clicks': 'NumericValue',\r\n 'Impressions': 'NumericValue',\r\n 'TotalEffectiveCost': 'CurrencyValue',\r\n 'Conversions': 'NumericValue',\r\n 'AverageCPC': 'CurrencyValue',\r\n 'AveragePosition': 'NumericValue',\r\n 'CPA': 'NumericValue',\r\n 'RevenueOnAdSpend': 'NumericValue',\r\n 'ConversionRate': 'NumericValue',\r\n 'AdvertiserReportedRevenue': 'NumericValue',\r\n 'AdId': 'NumericValue',\r\n 'CampaignName': 'StringValue',\r\n 'AdAdGroupName': 'StringValue',\r\n 'AdTitle': 'StringValue',\r\n 'AdDescription': 'StringValue',\r\n 'AdDisplayUrl': 'StringValue',\r\n 'AdDestinationUrl': 'StringValue',\r\n 'DeliveryStatus': 'EnumSelector',\r\n 'AdType': 'EnumSelector',\r\n 'AdUiDisplayStatus': 'EnumSelector',\r\n 'DevicePreference': 'EnumSelector',\r\n 'AdIsLastImported': 'BooleanValue',\r\n 'CampaignId': 'NumericValue',\r\n 'AdGroupId': 'NumericValue',\r\n 'Labels': 'IdentitySelector',\r\n 'FinalUrls': 'ContainsOrNotContainsStringValue',\r\n 'MobileFinalUrls': 'ContainsOrNotContainsStringValue',\r\n 'TrackingTemplate': 'ExactOrContainsOrNotContainsOrStartsWithStringValue',\r\n 'FinalUrlSuffix': 'ExactOrContainsOrNotContainsOrStartsWithStringValue',\r\n 'AbsoluteTopImpressionSharePercent': 'NumericValue',\r\n 'AdsByBing': 'BooleanValue'\r\n },\r\n 'FilterTypeToOperatorMapping': {\r\n 'StringValue': ['Contains', 'DoesNotContain', 'BeginsWith', 'EndsWith', 'Equal', 'NotEqual'],\r\n 'ContainsOrNotContainsStringValue': ['Contains', 'DoesNotContain'],\r\n 'ExactOrContainsOrNotContainsOrStartsWithStringValue': ['Contains', 'DoesNotContain', 'BeginsWith', 'Equal'],\r\n 'RangeSelector': ['Between'],\r\n 'EnumSelector': ['EnumSelection'],\r\n 'CurrencyValue': ['Greater', 'GreaterOrEqual', 'Less', 'LessOrEqual', 'Equal', 'NotEqual'],\r\n 'NumericValue': ['Greater', 'GreaterOrEqual', 'Less', 'LessOrEqual', 'Equal', 'NotEqual'],\r\n 'DateValue': ['Equal', 'NotEqual', 'Greater', 'GreaterOrEqual', 'Less', 'LessOrEqual', 'Between'],\r\n 'IdentityValue': ['Equal'],\r\n 'IdentitySelector': ['ContainsAll', 'ContainsAny', 'ContainsNone'],\r\n 'BooleanValue': ['Equal'],\r\n 'ExactStringValue': ['Equal'],\r\n 'PartialStringValue': ['Contains']\r\n },\r\n 'ColumnToEnumMapping': {\r\n 'DeliveryStatus': 'DeliveryStatus',\r\n 'AdType': 'AdType',\r\n 'AdUiDisplayStatus': 'UiDisplayStatus',\r\n 'DevicePreference': 'DevicePreference'\r\n },\r\n 'EnumTypeToAvailableValuesMapping': {\r\n 'DeliveryStatus': [{\r\n 'Key': '40',\r\n 'Value': 'InvalidFinancialStatusOther'\r\n }, {\r\n 'Key': '50',\r\n 'Value': 'CampaignBudgetPaused'\r\n }, {\r\n 'Key': '60',\r\n 'Value': 'AdGroupExpired'\r\n }, {\r\n 'Key': '62',\r\n 'Value': 'AdGroupDraft'\r\n }, {\r\n 'Key': '64',\r\n 'Value': 'CamAssetRejected'\r\n }, {\r\n 'Key': '66',\r\n 'Value': 'CamAssetDeleted'\r\n }, {\r\n 'Key': '70',\r\n 'Value': 'EditorialRejected'\r\n }, {\r\n 'Key': '75',\r\n 'Value': 'EditorialUnderAppeal'\r\n }, {\r\n 'Key': '76',\r\n 'Value': 'UrlInvalid'\r\n }, {\r\n 'Key': '77',\r\n 'Value': 'ApplicationNotFound'\r\n }, {\r\n 'Key': '78',\r\n 'Value': 'ApplicationDestinationUrlMismatch'\r\n }, {\r\n 'Key': '79',\r\n 'Value': 'PendingMetadataSync'\r\n }, {\r\n 'Key': '80',\r\n 'Value': 'EditorialPending'\r\n }, {\r\n 'Key': '90',\r\n 'Value': 'CampaignUserPaused'\r\n }, {\r\n 'Key': '100',\r\n 'Value': 'AdGroupUserPaused'\r\n }, {\r\n 'Key': '110',\r\n 'Value': 'AdUserPaused'\r\n }, {\r\n 'Key': '200',\r\n 'Value': 'EditorialApprovedLimited'\r\n }, {\r\n 'Key': '2147483647',\r\n 'Value': 'Eligible'\r\n }, {\r\n 'Key': '1103',\r\n 'Value': 'AdExtensionNotPresent'\r\n }, {\r\n 'Key': '1105',\r\n 'Value': 'AdExtensionAssociationDeleted'\r\n }, {\r\n 'Key': '49',\r\n 'Value': 'CampaignSuspended'\r\n }, {\r\n 'Key': '2000',\r\n 'Value': 'New'\r\n }],\r\n 'AdType': [{\r\n 'Key': '1',\r\n 'Value': 'Text'\r\n }, {\r\n 'Key': '2',\r\n 'Value': 'Mobile'\r\n }, {\r\n 'Key': '4',\r\n 'Value': 'BannerImage'\r\n }, {\r\n 'Key': '16',\r\n 'Value': 'RichMedia'\r\n }, {\r\n 'Key': '32',\r\n 'Value': 'ThirdPartyServedAsset'\r\n }, {\r\n 'Key': '64',\r\n 'Value': 'RichSearchAd'\r\n }, {\r\n 'Key': '128',\r\n 'Value': 'Product'\r\n }, {\r\n 'Key': '256',\r\n 'Value': 'AppInstall'\r\n }, {\r\n 'Key': '1024',\r\n 'Value': 'ExpandedText'\r\n }, {\r\n 'Key': '512',\r\n 'Value': 'DynamicSearch'\r\n }],\r\n 'UiDisplayStatus': [{\r\n 'Key': '0',\r\n 'Value': 'Inactive'\r\n }, {\r\n 'Key': '1',\r\n 'Value': 'Active'\r\n }, {\r\n 'Key': '2',\r\n 'Value': 'Paused'\r\n }, {\r\n 'Key': '3',\r\n 'Value': 'Deleted'\r\n }],\r\n 'DevicePreference': [{\r\n 'Key': '2',\r\n 'Value': 'Mobile'\r\n }, {\r\n 'Key': '0',\r\n 'Value': 'All'\r\n }]\r\n },\r\n 'QuickFilterColumn': null,\r\n 'QuickFilterOperator': null,\r\n 'SelectedFilter': null,\r\n 'FilterByAdgroup': true,\r\n 'OverThresholdFilter': false,\r\n 'ClientLocalization': true\r\n },\r\n adGroupFilterData: {\r\n 'Filters': null,\r\n 'UseOrFilter': false,\r\n 'DataDomain': 'AdGroup',\r\n 'ColumnToFilterTypeMapping': {\r\n 'CTR': 'NumericValue',\r\n 'Clicks': 'NumericValue',\r\n 'ClickShare': 'NumericValue',\r\n 'TotalCost': 'NumericValue',\r\n 'Impressions': 'NumericValue',\r\n 'TotalEffectiveCost': 'CurrencyValue',\r\n 'Conversions': 'NumericValue',\r\n 'AverageCPC': 'CurrencyValue',\r\n 'AverageCPM': 'CurrencyValue',\r\n 'AveragePosition': 'NumericValue',\r\n 'CPA': 'NumericValue',\r\n 'RevenueOnAdSpend': 'NumericValue',\r\n 'ConversionRate': 'NumericValue',\r\n 'AdvertiserReportedRevenue': 'NumericValue',\r\n 'AverageCPP': 'NumericValue',\r\n 'ManualCalls': 'NumericValue',\r\n 'PhoneSpent': 'NumericValue',\r\n 'PhoneImpressions': 'NumericValue',\r\n 'PhoneThroughRate': 'NumericValue',\r\n 'ClickAndPhoneSpent': 'NumericValue',\r\n 'ClickCalls': 'NumericValue',\r\n 'CampaignName': 'StringValue',\r\n 'AdGroupName': 'StringValue',\r\n 'AdGroupStartDate': 'DateValue',\r\n 'AdGroupEndDate': 'DateValue',\r\n 'Language': 'DropdownSelector',\r\n 'AdGroupDefaultSearchBid': 'CurrencyValue',\r\n 'DeliveryStatus': 'EnumSelector',\r\n 'AdGroupCallTrackingStatus': 'EnumSelector',\r\n 'AdGroupStatus': 'EnumSelector',\r\n 'AdGroupIsLastImported': 'BooleanValue',\r\n 'CampaignId': 'NumericValue',\r\n 'AdGroupId': 'NumericValue',\r\n 'QualityScore': 'NumericValue',\r\n 'HasAuctionInsight': 'BooleanValue',\r\n 'Labels': 'IdentitySelector',\r\n 'DisplayBiddingStrategyType': 'EnumSelector',\r\n 'AuctionWonPercent': 'NumericValue',\r\n 'AuctionLostToBudgetPercent': 'NumericValue',\r\n 'AuctionLostToRankPercent': 'NumericValue',\r\n 'TopImpressionRate': 'NumericValue',\r\n 'AbsoluteTopImpressionRate': 'NumericValue',\r\n 'ExactMatchImpressionSharePercent': 'NumericValue',\r\n 'TopImpressionSharePercent': 'NumericValue',\r\n 'TopISLostToBudgetPercent': 'NumericValue',\r\n 'TopISLostToRankPercent': 'NumericValue',\r\n 'AbsoluteTopImpressionSharePercent': 'NumericValue',\r\n 'AbsoluteTopISLostToBudgetPercent': 'NumericValue',\r\n 'AbsoluteTopISLostToRankPercent': 'NumericValue'\r\n },\r\n 'FilterTypeToOperatorMapping': {\r\n 'StringValue': ['Contains', 'DoesNotContain', 'BeginsWith', 'EndsWith', 'Equal', 'NotEqual'],\r\n 'RangeSelector': ['Between'],\r\n 'EnumSelector': ['EnumSelection'],\r\n 'DropdownSelector': ['EnumSelection'],\r\n 'CurrencyValue': ['Greater', 'GreaterOrEqual', 'Less', 'LessOrEqual', 'Equal', 'NotEqual'],\r\n 'NumericValue': ['Greater', 'GreaterOrEqual', 'Less', 'LessOrEqual', 'Equal', 'NotEqual'],\r\n 'DateValue': ['Equal', 'NotEqual', 'Greater', 'GreaterOrEqual', 'Less', 'LessOrEqual', 'Between'],\r\n 'IdentitySelector': ['ContainsAll', 'ContainsAny', 'ContainsNone'],\r\n 'IdentityValue': ['Equal'],\r\n 'BooleanValue': ['Equal'],\r\n 'ExactStringValue': ['Equal'],\r\n 'PartialStringValue': ['Contains']\r\n },\r\n 'ColumnToEnumMapping': {\r\n 'DeliveryStatus': 'DeliveryStatus',\r\n 'Language': 'Language',\r\n 'AdGroupCallTrackingStatus': 'AdGroupCallTrackingStatus',\r\n 'AdGroupStatus': 'AdGroupStatus',\r\n 'DisplayBiddingStrategyType': 'BiddingStrategyType'\r\n },\r\n 'EnumTypeToAvailableValuesMapping': {\r\n 'Language': [{\r\n 'Key': null,\r\n 'Value': null\r\n }, {\r\n 'Key': '0',\r\n 'Value': 'None'\r\n }, {\r\n 'Key': '7',\r\n 'Value': 'Arabic'\r\n }, {\r\n 'Key': '28',\r\n 'Value': 'Danish'\r\n }, {\r\n 'Key': '29',\r\n 'Value': 'Dutch'\r\n }, {\r\n 'Key': '40',\r\n 'Value': 'German'\r\n }, {\r\n 'Key': '30',\r\n 'Value': 'English'\r\n }, {\r\n 'Key': '35',\r\n 'Value': 'Finnish'\r\n }, {\r\n 'Key': '36',\r\n 'Value': 'French'\r\n }, {\r\n 'Key': '55',\r\n 'Value': 'Italian'\r\n }, {\r\n 'Key': '82',\r\n 'Value': 'Norwegian'\r\n }, {\r\n 'Key': '88',\r\n 'Value': 'Portuguese'\r\n }, {\r\n 'Key': '109',\r\n 'Value': 'Spanish'\r\n }, {\r\n 'Key': '112',\r\n 'Value': 'Swedish'\r\n }, {\r\n 'Key': '24',\r\n 'Value': 'TraditionalChinese'\r\n }, {\r\n 'Key': '137',\r\n 'Value': 'SimplifiedChinese'\r\n }, {\r\n 'Key': '41',\r\n 'Value': 'Greek'\r\n }, {\r\n 'Key': '87',\r\n 'Value': 'Polish'\r\n }, {\r\n 'Key': '19',\r\n 'Value': 'Bulgarian'\r\n }, {\r\n 'Key': '27',\r\n 'Value': 'Czech'\r\n }, {\r\n 'Key': '32',\r\n 'Value': 'Estonian'\r\n }, {\r\n 'Key': '26',\r\n 'Value': 'Croatian'\r\n }, {\r\n 'Key': '48',\r\n 'Value': 'Hungarian'\r\n }, {\r\n 'Key': '70',\r\n 'Value': 'Lithuanian'\r\n }, {\r\n 'Key': '68',\r\n 'Value': 'Latvian'\r\n }, {\r\n 'Key': '75',\r\n 'Value': 'Maltese'\r\n }, {\r\n 'Key': '92',\r\n 'Value': 'Romanian'\r\n }, {\r\n 'Key': '106',\r\n 'Value': 'Slovak'\r\n }, {\r\n 'Key': '107',\r\n 'Value': 'Slovenian'\r\n }, {\r\n 'Key': '123',\r\n 'Value': 'Turkish'\r\n }, {\r\n 'Key': '98',\r\n 'Value': 'Serbian'\r\n }, {\r\n 'Key': '138',\r\n 'Value': 'Bosnian'\r\n }, {\r\n 'Key': '5',\r\n 'Value': 'Albanian'\r\n }, {\r\n 'Key': '71',\r\n 'Value': 'Macedonian'\r\n }, {\r\n 'Key': '49',\r\n 'Value': 'Icelandic'\r\n }, {\r\n 'Key': '56',\r\n 'Value': 'Japanese'\r\n }, {\r\n 'Key': '46',\r\n 'Value': 'Hebrew'\r\n }, {\r\n 'Key': '93',\r\n 'Value': 'Russian'\r\n }, {\r\n 'Key': '47',\r\n 'Value': 'Hindi'\r\n }, {\r\n 'Key': '73',\r\n 'Value': 'Malay'\r\n }, {\r\n 'Key': '118',\r\n 'Value': 'Thai'\r\n }, {\r\n 'Key': '50',\r\n 'Value': 'Indonesian'\r\n }, {\r\n 'Key': '113',\r\n 'Value': 'Tagalog'\r\n }, {\r\n 'Key': '126',\r\n 'Value': 'Vietnamese'\r\n }],\r\n 'DeliveryStatus': [{\r\n 'Key': '40',\r\n 'Value': 'InvalidFinancialStatusOther'\r\n }, {\r\n 'Key': '50',\r\n 'Value': 'CampaignBudgetPaused'\r\n }, {\r\n 'Key': '60',\r\n 'Value': 'AdGroupExpired'\r\n }, {\r\n 'Key': '62',\r\n 'Value': 'AdGroupDraft'\r\n }, {\r\n 'Key': '90',\r\n 'Value': 'CampaignUserPaused'\r\n }, {\r\n 'Key': '100',\r\n 'Value': 'AdGroupUserPaused'\r\n }, {\r\n 'Key': '2147483647',\r\n 'Value': 'Eligible'\r\n }, {\r\n 'Key': '49',\r\n 'Value': 'CampaignSuspended'\r\n }, {\r\n 'Key': '2000',\r\n 'Value': 'New'\r\n }, {\r\n 'Key': '67',\r\n 'Value': 'AdGroupTargetingTooNarrow'\r\n }, {\r\n 'Key': '91',\r\n 'Value': 'AdGroupPrivacyPending'\r\n }, {\r\n 'Key': '105',\r\n 'Value': 'NoEligibleAds'\r\n }, {\r\n 'Key': '106',\r\n 'Value': 'NoEligibleKeywords'\r\n }],\r\n 'AdGroupCallTrackingStatus': [{\r\n 'Key': '1',\r\n 'Value': 'Eligible'\r\n }, {\r\n 'Key': '2',\r\n 'Value': 'NotEligible'\r\n }, {\r\n 'Key': '0',\r\n 'Value': 'NotApplicable'\r\n }, {\r\n 'Key': '3',\r\n 'Value': 'ProvisioningPending'\r\n }, {\r\n 'Key': '4',\r\n 'Value': 'Provisioned'\r\n }],\r\n 'AdGroupStatus': [{\r\n 'Key': '140',\r\n 'Value': 'Draft'\r\n }, {\r\n 'Key': '141',\r\n 'Value': 'Active'\r\n }, {\r\n 'Key': '143',\r\n 'Value': 'Deleted'\r\n }, {\r\n 'Key': '144',\r\n 'Value': 'Paused'\r\n }, {\r\n 'Key': '150',\r\n 'Value': 'Expired'\r\n }, {\r\n 'Key': '124',\r\n 'Value': 'CampaignUserPaused'\r\n }, {\r\n 'Key': '126',\r\n 'Value': 'CampaignBudgetPaused'\r\n }, {\r\n 'Key': '127',\r\n 'Value': 'CampaignBudgetUserPaused'\r\n }],\r\n 'BiddingStrategyType': _.compact([{\r\n 'Key': '1',\r\n 'Value': 'ManualCpc'\r\n }, {\r\n 'Key': '2',\r\n 'Value': 'MaxClicks'\r\n }, {\r\n 'Key': '3',\r\n 'Value': 'MaxConversions'\r\n }, {\r\n 'Key': '4',\r\n 'Value': 'TargetCpa'\r\n }, {\r\n 'Key': '5',\r\n 'Value': 'EnhancedCpc'\r\n }, (Permissions.IsCampaignTargetROASBidStrategyEnabled || Permissions.IsNewCampaignTargetROASBidStrategyEnabled) && ({\r\n 'Key': '6',\r\n 'Value': 'TargetRoas'\r\n }), (Permissions.IsMaximizeConversionValueEnabled || Permissions.IsSmartShoppingCampaignEnabled) && ({\r\n 'Key': '8',\r\n 'Value': 'MaxConversionValue'\r\n }), Permissions.IsTargetImpressionShareEnabled && ({\r\n 'Key': '9',\r\n 'Value': 'TargetImpressionShare'\r\n })])\r\n },\r\n 'QuickFilterColumn': 'AdGroupName',\r\n 'QuickFilterOperator': 'Contains',\r\n 'SelectedFilter': null,\r\n 'FilterByAdgroup': false,\r\n 'OverThresholdFilter': false,\r\n 'ClientLocalization': true\r\n },\r\n keywordFilterData: {\r\n 'Filters': null,\r\n 'UseOrFilter': false,\r\n 'DataDomain': 'Keyword',\r\n 'ColumnToFilterTypeMapping': {\r\n 'CTR': 'NumericValue',\r\n 'Clicks': 'NumericValue',\r\n 'Impressions': 'NumericValue',\r\n 'TotalEffectiveCost': 'CurrencyValue',\r\n 'Conversions': 'NumericValue',\r\n 'AverageCPC': 'CurrencyValue',\r\n 'AverageCPM': 'CurrencyValue',\r\n 'AveragePosition': 'NumericValue',\r\n 'CPA': 'NumericValue',\r\n 'RevenueOnAdSpend': 'NumericValue',\r\n 'ConversionRate': 'NumericValue',\r\n 'AdvertiserReportedRevenue': 'NumericValue',\r\n 'FirstPageBid': 'NumericValue',\r\n 'MainlineBid': 'NumericValue',\r\n 'BestPositionBid': 'NumericValue',\r\n 'KeywordName': 'StringValue',\r\n 'DeliveryStatus': 'EnumSelector',\r\n 'KeywordStatus': 'EnumSelector',\r\n 'MatchType': 'EnumSelector',\r\n 'QualityScore': 'NumericValue',\r\n 'OrderItemBid': 'NumericValue',\r\n 'CampaignName': 'StringValue',\r\n 'KeywordAdGroupName': 'StringValue',\r\n 'KeywordIsLastImported': 'BooleanValue',\r\n 'CampaignId': 'NumericValue',\r\n 'AdGroupId': 'NumericValue',\r\n 'HasAuctionInsight': 'BooleanValue',\r\n 'OrderItemId': 'NumericValue',\r\n 'Labels': 'IdentitySelector',\r\n 'DisplayBiddingStrategyType': 'EnumSelector',\r\n 'AuctionWonPercent': 'NumericValue',\r\n 'AuctionLostToBudgetPercent': 'NumericValue',\r\n 'AuctionLostToRankPercent': 'NumericValue',\r\n 'ClickShare': 'NumericValue',\r\n 'FinalUrls': 'ContainsOrNotContainsStringValue',\r\n 'MobileFinalUrls': 'ContainsOrNotContainsStringValue',\r\n 'TrackingTemplate': 'ExactOrContainsOrNotContainsOrStartsWithStringValue',\r\n 'FinalUrlSuffix': 'ExactOrContainsOrNotContainsOrStartsWithStringValue',\r\n 'TopImpressionRate': 'NumericValue',\r\n 'AbsoluteTopImpressionRate': 'NumericValue',\r\n 'ExactMatchImpressionSharePercent': 'NumericValue',\r\n 'TopImpressionSharePercent': 'NumericValue',\r\n 'TopISLostToBudgetPercent': 'NumericValue',\r\n 'TopISLostToRankPercent': 'NumericValue',\r\n 'AbsoluteTopImpressionSharePercent': 'NumericValue',\r\n 'AbsoluteTopISLostToBudgetPercent': 'NumericValue',\r\n 'AbsoluteTopISLostToRankPercent': 'NumericValue'\r\n },\r\n 'FilterTypeToOperatorMapping': {\r\n 'StringValue': ['Contains', 'DoesNotContain', 'BeginsWith', 'EndsWith', 'Equal', 'NotEqual'],\r\n 'ContainsOrNotContainsStringValue': ['Contains', 'DoesNotContain'],\r\n 'ExactOrContainsOrNotContainsOrStartsWithStringValue': ['Contains', 'DoesNotContain', 'BeginsWith', 'Equal'],\r\n 'RangeSelector': ['Between'],\r\n 'EnumSelector': ['EnumSelection'],\r\n 'CurrencyValue': ['Greater', 'GreaterOrEqual', 'Less', 'LessOrEqual', 'Equal', 'NotEqual'],\r\n 'NumericValue': ['Greater', 'GreaterOrEqual', 'Less', 'LessOrEqual', 'Equal', 'NotEqual'],\r\n 'DateValue': ['Equal', 'NotEqual', 'Greater', 'GreaterOrEqual', 'Less', 'LessOrEqual', 'Between'],\r\n 'IdentityValue': ['Equal'],\r\n 'IdentitySelector': ['ContainsAll', 'ContainsAny', 'ContainsNone'],\r\n 'BooleanValue': ['Equal'],\r\n 'ExactStringValue': ['Equal'],\r\n 'PartialStringValue': ['Contains']\r\n },\r\n 'ColumnToEnumMapping': {\r\n 'DeliveryStatus': 'DeliveryStatus',\r\n 'KeywordStatus': 'KeywordStatus',\r\n 'MatchType': 'MatchType',\r\n 'DisplayBiddingStrategyType': 'BiddingStrategyType'\r\n },\r\n 'EnumTypeToAvailableValuesMapping': {\r\n 'DeliveryStatus': [{\r\n 'Key': '40',\r\n 'Value': 'InvalidFinancialStatusOther'\r\n }, {\r\n 'Key': '50',\r\n 'Value': 'CampaignBudgetPaused'\r\n }, {\r\n 'Key': '60',\r\n 'Value': 'AdGroupExpired'\r\n }, {\r\n 'Key': '62',\r\n 'Value': 'AdGroupDraft'\r\n }, {\r\n 'Key': '70',\r\n 'Value': 'EditorialRejected'\r\n }, {\r\n 'Key': '75',\r\n 'Value': 'EditorialUnderAppeal'\r\n }, {\r\n 'Key': '80',\r\n 'Value': 'EditorialPending'\r\n }, {\r\n 'Key': '90',\r\n 'Value': 'CampaignUserPaused'\r\n }, {\r\n 'Key': '100',\r\n 'Value': 'AdGroupUserPaused'\r\n }, {\r\n 'Key': '130',\r\n 'Value': 'NegativeKeywordConflicts'\r\n }, {\r\n 'Key': '135',\r\n 'Value': 'PartialNegativeKeywordConflicts'\r\n }, {\r\n 'Key': '200',\r\n 'Value': 'EditorialApprovedLimited'\r\n }, {\r\n 'Key': '300',\r\n 'Value': 'LowSupply'\r\n }, {\r\n 'Key': '400',\r\n 'Value': 'LowQuality'\r\n }, {\r\n 'Key': '500',\r\n 'Value': 'BidBelowFirstPageBid'\r\n }, {\r\n 'Key': '2000',\r\n 'Value': 'New'\r\n }, {\r\n 'Key': '2147483647',\r\n 'Value': 'Eligible'\r\n }, {\r\n 'Key': '49',\r\n 'Value': 'CampaignSuspended'\r\n }],\r\n 'KeywordStatus': [{\r\n 'Key': '161',\r\n 'Value': 'Active'\r\n }, {\r\n 'Key': '162',\r\n 'Value': 'Paused'\r\n }, {\r\n 'Key': '163',\r\n 'Value': 'Deleted'\r\n }],\r\n 'MatchType': [{\r\n 'Key': '1',\r\n 'Value': 'Exact'\r\n }, {\r\n 'Key': '2',\r\n 'Value': 'Phrase'\r\n }, {\r\n 'Key': '3',\r\n 'Value': 'Broad'\r\n }],\r\n 'BiddingStrategyType': _.compact([{\r\n 'Key': '1',\r\n 'Value': 'ManualCpc'\r\n }, {\r\n 'Key': '2',\r\n 'Value': 'MaxClicks'\r\n }, {\r\n 'Key': '3',\r\n 'Value': 'MaxConversions'\r\n }, {\r\n 'Key': '4',\r\n 'Value': 'TargetCpa'\r\n }, {\r\n 'Key': '5',\r\n 'Value': 'EnhancedCpc'\r\n }, (Permissions.IsCampaignTargetROASBidStrategyEnabled || Permissions.IsNewCampaignTargetROASBidStrategyEnabled) && ({\r\n 'Key': '6',\r\n 'Value': 'TargetRoas'\r\n }), (Permissions.IsMaximizeConversionValueEnabled || Permissions.IsSmartShoppingCampaignEnabled) && ({\r\n 'Key': '8',\r\n 'Value': 'MaxConversionValue'\r\n }), Permissions.IsTargetImpressionShareEnabled && ({\r\n 'Key': '9',\r\n 'Value': 'TargetImpressionShare'\r\n })])\r\n },\r\n 'QuickFilterColumn': 'KeywordName',\r\n 'QuickFilterOperator': 'Contains',\r\n 'SelectedFilter': null,\r\n 'FilterByAdgroup': true,\r\n 'OverThresholdFilter': false,\r\n 'ClientLocalization': true\r\n }\r\n};\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n IncreaseBid: 'IncreaseBid',\r\n DecreaseBid: 'DecreaseBid'\r\n};\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n None: 'None',\r\n MatchCase: 'MatchCase',\r\n MatchWholeWord: 'MatchWholeWord',\r\n PreserveCapitalization: 'PreserveCapitalization',\r\n StartsWith: 'StartsWith'\r\n};\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n Title: 'Title',\r\n TitlePart1: 'TitlePart1',\r\n TitlePart2: 'TitlePart2',\r\n TitlePart3: 'TitlePart3',\r\n Text: 'Text',\r\n TextPart2: 'TextPart2',\r\n Headline: 'Headline',\r\n LongHeadline: 'LongHeadline',\r\n LongHeadlines: 'LongHeadlines',\r\n BusinessName: 'BusinessName',\r\n DisplayUrl: 'DisplayUrl',\r\n FinalUrl: 'FinalUrls',\r\n Path1: 'Path1',\r\n Path2: 'Path2',\r\n MobileFinalUrl: 'MobileFinalUrls',\r\n DestinationUrl: 'DestinationUrl',\r\n DevicePreference: 'DevicePreference',\r\n Headlines: 'Headlines',\r\n Descriptions: 'Descriptions'\r\n};\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n set: 'Set',\r\n findReplace: 'FindReplace',\r\n append: 'Append',\r\n prepend: 'Prepend',\r\n toTitleCase: 'ToTitleCase',\r\n toLowerCase: 'ToLowerCase',\r\n toSentenceCase: 'ToSentenceCase'\r\n};\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport dlbDataSource from '@bingads-webui-static-legacy/double-list-box-datasource';\r\nvar viewModel = function (options) {\r\n var self = this;\r\n self.options = options;\r\n self.strings = _.defaults(options.strings || ({}), {\r\n maximumSelectionAlertString: ko.observable(),\r\n maxSelectedItems: ''\r\n });\r\n self.features = _.defaults(options.features || ({}), {\r\n maxSelectedItemsCount: options && options.features && _.isNumber(options.features.maxSelectedItemsCount) ? options.features.maxSelectedItemsCount : -1\r\n });\r\n self.customData = options.customData || ({});\r\n self.processItem = options.processItem || (function (item) {\r\n return item || ({});\r\n });\r\n self.showMaximumSelectionAlert = ko.observable(false);\r\n self.selectedData = self._createSelectedData();\r\n self.sourceData = self._createSourceData(self.selectedData);\r\n self.sourceDataSource = self.sourceData.dataSource;\r\n self.selectedDataSource = self.selectedData.dataSource;\r\n if (self.selectedDataSource && _.isFunction(self.selectedDataSource.read)) {\r\n self.selectedDataSource.read();\r\n }\r\n self.selectedItems = ko.observable(self.selectedData.getFilterData());\r\n self._initializeFilter();\r\n self._initializeSourceItemsCount();\r\n self.refreshSource = _.bind(self.sourceData.refresh, self.sourceData);\r\n self.selectedItemsCount = ko.computed(function () {\r\n return _.isArray(this.selectedItems()) ? this.selectedItems().length : 0;\r\n }, self);\r\n self.hasMaxSelectedItems = ko.computed(function () {\r\n if (self.features.maxSelectedItemsCount > 0 && self.selectedItemsCount() >= self.features.maxSelectedItemsCount) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n self.showMaximumSelectionAlert = ko.computed(function () {\r\n if (self.hasMaxSelectedItems() && !_.isEmpty(self.strings.maximumSelectionAlertString())) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n self.hasMaxSelectedItems.subscribe((function (newValue) {\r\n var value = newValue ? 'disabled' : '';\r\n _.each(self.sourceData.getData(), (function (item) {\r\n this.sourceData.setItemProperty(item, 'disabled', value);\r\n }).bind(this));\r\n }).bind(this));\r\n};\r\nviewModel.prototype.selectItem = function (item, silent) {\r\n var self = this, changed = false;\r\n if (self.hasMaxSelectedItems()) {\r\n return changed;\r\n } else {\r\n changed = self.selectedData.addIfNotExists(item);\r\n }\r\n if (changed) {\r\n if (!silent || self.features.maxSelectedItemsCount > 0) {\r\n self._notifySubscribers();\r\n }\r\n self.sourceData.setItemProperty(item, 'selected', 'selected');\r\n }\r\n return changed;\r\n};\r\nviewModel.prototype.deselectItem = function (item, silent) {\r\n var self = this;\r\n if (self.selectedData.removeIfExists(item)) {\r\n self.sourceData.setItemProperty(item, 'selected', '');\r\n if (!silent || self.features.maxSelectedItemsCount > 0) {\r\n self._notifySubscribers();\r\n }\r\n }\r\n};\r\nviewModel.prototype.setSelection = function (selection) {\r\n var self = this;\r\n var newSelectionIds = _.map(selection, function (item) {\r\n return self.sourceData.getItemId(item);\r\n });\r\n var oldSelectionIds = _.map(self.selectedItems(), function (item) {\r\n return self.selectedData.getItemId(item);\r\n });\r\n var toSelect = _.filter(selection, function (item) {\r\n return !_.contains(oldSelectionIds, self.sourceData.getItemId(item));\r\n });\r\n var toDeselect = _.difference(oldSelectionIds, newSelectionIds);\r\n _.each(toSelect, function (item) {\r\n self.selectItem(item, true);\r\n });\r\n _.each(toDeselect, function (item) {\r\n self.deselectItem(item, true);\r\n });\r\n if (toSelect.length > 0 || toDeselect.length > 0) {\r\n self._notifySubscribers();\r\n }\r\n};\r\nviewModel.prototype.selectAll = function () {\r\n var sourceItems = this.sourceData.getFilterData(), self = this, changed = false;\r\n _.each(sourceItems, function (item) {\r\n if (self.selectItem(item, true)) {\r\n changed = true;\r\n }\r\n });\r\n if (changed) {\r\n self._notifySubscribers();\r\n }\r\n};\r\nviewModel.prototype.deselectAll = function () {\r\n this.setSelection([]);\r\n};\r\nviewModel.prototype.refreshItem = function (item) {\r\n var self = this;\r\n self.sourceData.refreshItem(item);\r\n self.selectedData.refreshItem(item);\r\n};\r\nviewModel.prototype._notifySubscribers = function () {\r\n this.selectedItems(this.selectedData.getFilterData());\r\n};\r\nviewModel.prototype._initializeFilter = function () {\r\n var self = this;\r\n self.filterText = ko.observable('');\r\n self.filterText.subscribe(function (newValue) {\r\n self.sourceData.filter(newValue);\r\n });\r\n};\r\nviewModel.prototype._initializeSourceItemsCount = function () {\r\n var self = this, total = self.sourceDataSource.total();\r\n self.showEmptyMessage = ko.observable(false);\r\n self.sourceItemsCount = ko.observable(total);\r\n self.sourceDataSource.bind('change', function () {\r\n var newTotal = self.sourceDataSource.total();\r\n self.sourceItemsCount(newTotal);\r\n newTotal === 0 ? self.showEmptyMessage(true) : self.showEmptyMessage(false);\r\n });\r\n};\r\nviewModel.prototype._createSelectedData = function () {\r\n var self = this;\r\n var selectedCustomActions = [];\r\n _.each(self.options.itemActions.selected, function (value, key) {\r\n selectedCustomActions.push({\r\n name: key,\r\n caption: value.caption\r\n });\r\n });\r\n return new dlbDataSource({\r\n dataItems: self.options.data.selectedItems,\r\n itemIdField: self.options.data.itemIdField,\r\n itemIdCallback: self.options.data.itemIdCallback,\r\n listItemSeed: (function (item, id) {\r\n return _.extend(this.processItem(item, id), {\r\n customActions: selectedCustomActions,\r\n strings: self.strings\r\n });\r\n }).bind(this),\r\n pageSize: self.features.paging ? self.options.data.selectedPageSize || self.options.data.pageSize : Math.pow(2, 31)\r\n });\r\n};\r\nviewModel.prototype._createSourceData = function (selectedDataSource) {\r\n var self = this;\r\n var sourceCustomActions = [];\r\n _.each(self.options.itemActions.source, function (value, key) {\r\n sourceCustomActions.push({\r\n name: key,\r\n caption: value.caption\r\n });\r\n });\r\n return new dlbDataSource({\r\n dataCallback: _.isFunction(self.options.data.sourceItems) ? self.options.data.sourceItems : null,\r\n dataItems: !_.isFunction(self.options.data.sourceItems) ? self.options.data.sourceItems : null,\r\n useCallbackForFetchOnly: self.options.data.useCallbackForFetchOnly,\r\n itemIdField: self.options.data.itemIdField,\r\n itemIdCallback: self.options.data.itemIdCallback,\r\n itemFilterField: self.options.data.itemFilterField,\r\n itemFilterCallback: self.options.data.itemFilterCallback,\r\n pageSize: self.features.paging ? self.options.data.pageSize : Math.pow(2, 31),\r\n listItemSeed: (function (item, id) {\r\n return _.extend(this.processItem(item, id), {\r\n customActions: sourceCustomActions,\r\n selected: selectedDataSource.getItemData(id) ? 'selected' : '',\r\n disabled: self.hasMaxSelectedItems() ? 'disabled' : '',\r\n strings: self.strings\r\n });\r\n }).bind(this)\r\n });\r\n};\r\nexport default viewModel;\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport viewModel from '@bingads-webui-static-legacy/shared/viewmodel/doubleListBoxViewModel';\r\nimport defaultLayoutTemplate from '@bingads-webui-static-legacy/shared/template/doubleListBox/defaultLayout.pug';\r\nimport defaultSourceItemTemplate from '@bingads-webui-static-legacy/shared/template/doubleListBox/defaultSourceItem.pug';\r\nimport defaultSelectedItemTemplate from '@bingads-webui-static-legacy/shared/template/doubleListBox/defaultSelectedItem.pug';\r\nimport Pager from '@bingads-webui-static-legacy/shared/view/pager';\r\nimport '@bingads-webui/kendo/kendo.listview';\r\nimport '@bingads-webui/kendo/kendo.draganddrop';\r\nimport '@bingads-webui-component-legacy/searchbox/ko/searchboxBinding';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!global');\r\nvar defaultTemplates = {\r\n layoutTemplate: defaultLayoutTemplate({\r\n i18n: i18n\r\n }),\r\n sourceContainerSelector: '.dlb-source',\r\n selectedContainerSelector: '.dlb-selected',\r\n sourcePagerSelector: '.pager-container',\r\n selectedPagerSelector: '.pager-selected-container',\r\n sourceItemLayoutTemplate: defaultSourceItemTemplate({\r\n i18n: i18n\r\n }),\r\n sourceItemContentSelector: '.dlbItem-content',\r\n sourceItemContentTemplate: '#:data.name#',\r\n selectedItemLayoutTemplate: defaultSelectedItemTemplate({\r\n i18n: i18n\r\n }),\r\n selectedItemContentSelector: '.dlbItem-content',\r\n selectedItemContentTemplate: '#:data.name#'\r\n};\r\nvar listItemCssClass = 'dlbItem';\r\nvar controlView = backbone.View.extend({\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n this.options.data = this.options.data || ({});\r\n var self = this;\r\n self._applyDefaultTemplates();\r\n self.options.features = _.defaults(self.options.features || ({}), {\r\n filtering: true,\r\n paging: true,\r\n selectAll: true,\r\n deselectAll: true,\r\n dragAndDrop: true,\r\n maxSelectedItemsCount: -1\r\n });\r\n self.options.strings = _.defaults({}, self.options.strings, {\r\n filterWatermark: i18n.getString('DoubleListBox_Search')\r\n });\r\n self._viewModel = new viewModel(_.pick(self.options, 'data', 'itemActions', 'strings', 'features', 'customData', 'processItem'));\r\n self.selectItem = _.bind(self._viewModel.selectItem, self._viewModel);\r\n self.deselectItem = _.bind(self._viewModel.deselectItem, self._viewModel);\r\n self.refreshItem = _.bind(self._viewModel.refreshItem, self._viewModel);\r\n self.setSelection = _.bind(self._viewModel.setSelection, self._viewModel);\r\n self.refreshSource = _.bind(self._viewModel.refreshSource, self._viewModel);\r\n self.selectedItems = ko.computed({\r\n read: function () {\r\n return _.clone(self._viewModel.selectedItems());\r\n },\r\n write: function (newSelection) {\r\n self._viewModel.setSelection(newSelection);\r\n }\r\n });\r\n self.selectedItems.subscribe(function (newSelection) {\r\n self.trigger('selectionChanged', newSelection);\r\n });\r\n this._initializeActions();\r\n this._initializeEventHandlers();\r\n },\r\n render: function () {\r\n this._initializeLayout();\r\n this._initializeSource();\r\n this._initializeSelected();\r\n if (this.options.features.dragAndDrop) {\r\n this._initializeDragAndDrop();\r\n }\r\n if (this.options.features.paging) {\r\n this._initializeSourcePager();\r\n this._initializeSelectedPager();\r\n }\r\n return this;\r\n },\r\n _initializeLayout: function () {\r\n var self = this;\r\n self.$wrapper = $('
').appendTo(self.$el).html(self.options.templates.layoutTemplate);\r\n ko.applyBindings(self._viewModel, self.$wrapper[0]);\r\n self.elements = {\r\n $source: self.$(self.options.templates.sourceContainerSelector),\r\n $selection: self.$(self.options.templates.selectedContainerSelector)\r\n };\r\n },\r\n _initializeSource: function () {\r\n var self = this;\r\n self.elements.$source.kendoListView({\r\n navigatable: true,\r\n selectable: true,\r\n dataSource: self._viewModel.sourceDataSource,\r\n template: self._getEffectiveItemTemplate(this.options.templates.sourceItemLayoutTemplate, this.options.templates.sourceItemContentTemplate)\r\n });\r\n },\r\n _initializeSelected: function () {\r\n var self = this;\r\n self.elements.$selection.kendoListView({\r\n navigatable: true,\r\n selectable: true,\r\n dataSource: self._viewModel.selectedDataSource,\r\n template: self._getEffectiveItemTemplate(this.options.templates.selectedItemLayoutTemplate, this.options.templates.selectedItemContentTemplate)\r\n });\r\n },\r\n _getEffectiveItemTemplate: function (layoutTemplate, contentTemplate) {\r\n return layoutTemplate.replace('', contentTemplate);\r\n },\r\n _initializeDragAndDrop: function () {\r\n var self = this;\r\n self._initializeDragAndDropGroup(self.elements.$source, self.elements.$selection, 'select', self._viewModel.sourceData, self.selectItem, self.options.templates.sourceItemContentSelector);\r\n self._initializeDragAndDropGroup(self.elements.$selection, self.elements.$source, 'deselect', self._viewModel.selectedData, self.deselectItem, self.options.templates.selectedItemContentSelector);\r\n },\r\n _initializeDragAndDropGroup: function ($dragContainer, $dropContainer, groupName, dataSource, dropAction, contentSelector) {\r\n var self = this;\r\n $dragContainer.kendoDraggable({\r\n filter: '.' + listItemCssClass,\r\n group: groupName,\r\n container: self.$el,\r\n hint: function (element) {\r\n var $element = $(element);\r\n var hint = $element.find(contentSelector).eq(0).clone();\r\n $(hint).data('_uniqueId', $element.attr('data-id'));\r\n return hint;\r\n }\r\n });\r\n $dropContainer.kendoDropTarget({\r\n group: groupName,\r\n drop: function (e) {\r\n var item = dataSource.getItemData(e.draggable.hint.data()._uniqueId);\r\n if (item) {\r\n dropAction(item);\r\n }\r\n }\r\n });\r\n },\r\n _initializeEventHandlers: function () {\r\n var self = this;\r\n self.events = self.events || ({});\r\n var getEventHandler = function (dataSource, callback, eventType, eventName) {\r\n var proxy = _.bind(callback, this);\r\n return function (event) {\r\n var $itemelement = $(event.target).closest('.' + listItemCssClass);\r\n var item = dataSource.getItemData($itemelement.attr('data-id'));\r\n proxy(item);\r\n self.trigger(eventType, eventName, item);\r\n };\r\n };\r\n _.each(self.sourceActions, function (action, key) {\r\n self.events['click .sourceAction-' + key] = getEventHandler(self._viewModel.sourceData, action.callback, 'sourceItemAction', key);\r\n });\r\n _.each(self.selectedActions, function (action, key) {\r\n self.events['click .selectedAction-' + key] = getEventHandler(self._viewModel.selectedData, action.callback, 'selectedItemAction', key);\r\n });\r\n },\r\n _applyDefaultTemplates: function () {\r\n var self = this;\r\n self.options.templates = self.options.templates || ({});\r\n _.defaults(self.options.templates, defaultTemplates);\r\n },\r\n _initializeActions: function () {\r\n var self = this;\r\n self.sourceActions = {\r\n select: {\r\n callback: self.selectItem\r\n }\r\n };\r\n self.selectedActions = {\r\n deselect: {\r\n callback: self.deselectItem\r\n }\r\n };\r\n _.extend(self.sourceActions, self.options.itemActions.source || ({}));\r\n _.extend(self.selectedActions, self.options.itemActions.selected || ({}));\r\n },\r\n _initializeSourcePager: function () {\r\n var self = this;\r\n var pagerEl = self.$(self.options.templates.sourcePagerSelector);\r\n if (!pagerEl.length) {\r\n return;\r\n }\r\n var dataSource = self._viewModel.sourceDataSource;\r\n var pager = new Pager({\r\n el: pagerEl,\r\n pageSize: _.bind(dataSource.pageSize, dataSource),\r\n pageCount: _.bind(dataSource.totalPages, dataSource),\r\n currentPage: _.bind(dataSource.page, dataSource),\r\n enablePageJump: this.options.data.enablePageJump,\r\n refreshTriggers: [_.bind(dataSource.bind, dataSource, 'change')]\r\n });\r\n pager.currentPage.subscribe(function (newPage) {\r\n if (newPage && newPage !== dataSource.page()) {\r\n dataSource.page(newPage);\r\n }\r\n });\r\n },\r\n _initializeSelectedPager: function () {\r\n var self = this;\r\n var pagerEl = self.$(self.options.templates.selectedPagerSelector);\r\n if (!pagerEl.length) {\r\n return;\r\n }\r\n var dataSource = self._viewModel.selectedDataSource;\r\n var pager = new Pager({\r\n el: pagerEl,\r\n pageSize: _.bind(dataSource.pageSize, dataSource),\r\n totalCount: function () {\r\n return self._viewModel.selectedItems().length;\r\n },\r\n currentPage: _.bind(dataSource.page, dataSource),\r\n enablePageJump: this.options.data.enablePageJump,\r\n refreshTriggers: [_.bind(self._viewModel.selectedItems.subscribe, self._viewModel.selectedItems)]\r\n });\r\n pager.currentPage.subscribe(function (newPage) {\r\n if (newPage && newPage !== dataSource.page()) {\r\n if (dataSource.totalPages() === 0) {\r\n dataSource.page(newPage);\r\n }\r\n dataSource.page(newPage);\r\n }\r\n });\r\n }\r\n});\r\nexport default controlView;\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport decimal from '@bingads-webui-component-legacy/humanize/decimal';\r\nimport pagerTemplate from '@bingads-webui-static-legacy/shared/template/pager.pug';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport * as _preferencesService from '@bingads-webui-component-legacy/preference/service/index';\r\nimport stateManager from '@bingads-webui-component-legacy/statemanager/campaignStateManager';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!global');\r\nvar preferencesService = _preferencesService.default || _preferencesService;\r\nvar pagerView = backbone.View.extend({\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n _.defaults(this.options, {\r\n template: pagerTemplate,\r\n id: undefined,\r\n pageSize: undefined,\r\n totalCount: undefined,\r\n pageCount: undefined,\r\n currentPage: 1,\r\n refreshTriggers: [],\r\n enablePageJump: true,\r\n features: {\r\n pageSizeSelector: false,\r\n saveState: true,\r\n loadState: false\r\n },\r\n pageSizes: pageContext.Permissions && pageContext.Permissions.Support500RowsInGrid ? [20, 50, 100, 200, 500] : [20, 50, 100, 200]\r\n });\r\n this.options.pageSize = this.options.pageSize || this.options.pageSizes && this.options.pageSizes[0] || 20;\r\n if (!this.options.totalCount && this.options.features.pageSizeSelector) {\r\n throw new Error('TotalCount must be specified in order to opt Page Size Selector');\r\n }\r\n this._initializeViewModel();\r\n this._viewModel.value.subscribe(_.bind(this.trigger, this, 'change'));\r\n this.currentPage = this._viewModel.currentPage;\r\n this.pageSize = this._viewModel.pageSize;\r\n this.pageCount = this._viewModel.pageCount;\r\n this.value = this._viewModel.value;\r\n this.refresh = _.bind(this._updateViewModel, this, true);\r\n this.readyPromise = this._initStatePersistence().then(_.bind(function () {\r\n this._initializeSubscriptions();\r\n this._initializeLayout();\r\n }, this));\r\n },\r\n destroy: function () {\r\n ko.cleanNode(this.$el);\r\n this.$el.empty();\r\n },\r\n _initializeLayout: function () {\r\n var template = _.isFunction(this.options.template) ? this.options.template({\r\n i18n: i18n,\r\n features: this.options.features\r\n }) : this.options.template;\r\n this.$el.html(template);\r\n ko.applyBindings(this._viewModel, this.el);\r\n },\r\n _initializeViewModel: function () {\r\n var viewModel = {\r\n pageSize: ko.observable(),\r\n totalCount: ko.observable(),\r\n currentPage: ko.observable(),\r\n nextPage: _.bind(this._nextPage, this),\r\n prevPage: _.bind(this._prevPage, this),\r\n enablePageJump: ko.observable(this.options.enablePageJump),\r\n features: this.options.features,\r\n pageSizes: this.options.pageSizes\r\n };\r\n viewModel.pageCount = !this.options.totalCount ? ko.observable() : ko.computed(function () {\r\n return Math.ceil(viewModel.totalCount() / viewModel.pageSize());\r\n });\r\n _.extend(viewModel, {\r\n pages: ko.computed(function () {\r\n return viewModel.pageCount() >= 1 ? _.range(1, viewModel.pageCount() + 1) : [1];\r\n }),\r\n isFirstPage: ko.computed(function () {\r\n return viewModel.currentPage() == 1;\r\n }),\r\n isLastPage: ko.computed(function () {\r\n return viewModel.currentPage() == viewModel.pageCount();\r\n }),\r\n onKeyPress: function (data, event) {\r\n var keyCode = event.which || event.keyCode;\r\n if (keyCode === 13) {\r\n event.target.blur();\r\n return false;\r\n }\r\n return true;\r\n }\r\n });\r\n this._viewModel = viewModel;\r\n this._updateViewModel(false);\r\n viewModel.value = ko.observable();\r\n this._updateValue();\r\n viewModel.pageSize.subscribe(_.bind(this._updateValue, this));\r\n viewModel.currentPage.subscribe(_.bind(this._updateValue, this));\r\n },\r\n _initializeSubscriptions: function () {\r\n var self = this;\r\n _.each(self.options.refreshTriggers, function (trigger) {\r\n trigger(_.bind(self._updateViewModel, self, true));\r\n });\r\n },\r\n _nextPage: function () {\r\n if (!this._viewModel.isLastPage()) {\r\n this._viewModel.currentPage(this._viewModel.currentPage() + 1);\r\n }\r\n },\r\n _prevPage: function () {\r\n if (!this._viewModel.isFirstPage()) {\r\n this._viewModel.currentPage(this._viewModel.currentPage() - 1);\r\n }\r\n },\r\n _updateViewModel: function (funcOnly) {\r\n this._setValue('pageSize', this.options.pageSize, funcOnly);\r\n this._setValue('totalCount', this.options.totalCount, funcOnly);\r\n this._setValue('currentPage', this.options.currentPage, funcOnly);\r\n if (!ko.isComputed(this._viewModel.pageCount)) {\r\n this._setValue('pageCount', this.options.pageCount, funcOnly);\r\n }\r\n },\r\n _setValue: function (propertyName, valueSource, funcOnly) {\r\n var oldValue = this._viewModel[propertyName](), newValue = _.isFunction(valueSource) ? valueSource() : valueSource;\r\n if (!funcOnly || _.isFunction(valueSource)) {\r\n if (oldValue != newValue) {\r\n this._viewModel[propertyName](newValue);\r\n }\r\n }\r\n },\r\n _updateValue: function () {\r\n var valueObservable = this._viewModel.value;\r\n var currentPageNumber = decimal.fromLocalToFloat(this._viewModel.currentPage(), 0);\r\n if (!_.isNumber(this._viewModel.currentPage()) && _.isNumber(currentPageNumber)) {\r\n this._viewModel.currentPage(currentPageNumber);\r\n }\r\n if (!_.isNumber(currentPageNumber) && _.isNumber(valueObservable().currentPage)) {\r\n this._viewModel.currentPage(valueObservable().currentPage);\r\n } else if (this._viewModel.pageCount() > 0 && this._viewModel.currentPage() > this._viewModel.pageCount()) {\r\n this._viewModel.currentPage(this._viewModel.pageCount());\r\n } else if (this._viewModel.currentPage() < 1) {\r\n this._viewModel.currentPage(1);\r\n }\r\n if (valueObservable() && valueObservable().pageSize == this._viewModel.pageSize() && valueObservable().currentPage == this._viewModel.currentPage()) {\r\n return;\r\n }\r\n valueObservable({\r\n pageSize: this._viewModel.pageSize(),\r\n currentPage: this._viewModel.currentPage(),\r\n skip: (this._viewModel.currentPage() - 1) * this._viewModel.pageSize(),\r\n take: this._viewModel.pageSize()\r\n });\r\n },\r\n _initStatePersistence: function () {\r\n var promise;\r\n if (!this.options.features.loadState) {\r\n promise = $.Deferred().resolve().promise();\r\n } else {\r\n if (!this.options.id) {\r\n throw new Error('You must specifiy \"id\" option to use statePersistance');\r\n }\r\n promise = this._loadState();\r\n }\r\n return promise.then(_.bind(this._initSaveState, this));\r\n },\r\n _initSaveState: function () {\r\n if (!!this.options.id) {\r\n this._viewModel.pageSize.subscribe(_.bind(function (newValue) {\r\n var IsUsePreferencesServiceEnabled = _.result(config.get('permissions'), 'IsUsePreferencesServiceEnabled');\r\n if (IsUsePreferencesServiceEnabled) {\r\n preferencesService.setAtUserLevel({\r\n Name: 'WebApp.CampaignUI.pager_' + this.options.id,\r\n Data: {\r\n pageSize: newValue\r\n }\r\n });\r\n } else {\r\n stateManager.setItem('permanent', 'pager_' + this.options.id, {\r\n pageSize: newValue\r\n });\r\n }\r\n }, this));\r\n }\r\n },\r\n _loadState: function () {\r\n var IsUsePreferencesServiceEnabled = _.result(config.get('permissions'), 'IsUsePreferencesServiceEnabled');\r\n if (IsUsePreferencesServiceEnabled) {\r\n return preferencesService.initialize().then(_.bind(function () {\r\n var preference = preferencesService.findByName('WebApp.CampaignUI.pager_' + this.options.id) || ({});\r\n if (preference.Data && preference.Data.pageSize) {\r\n this._viewModel.pageSize(preference.Data.pageSize);\r\n }\r\n }, this));\r\n } else {\r\n return stateManager.getItem('pager_' + this.options.id).then(_.bind(function (value) {\r\n if (value.permanent.pageSize) {\r\n this._viewModel.pageSize(value.permanent.pageSize);\r\n }\r\n }, this));\r\n }\r\n }\r\n});\r\nexport default pagerView;\r\n\r\n","/* eslint-disable */\r\nfunction alertInternal(message) {\r\n alert(message);\r\n}\r\n;\r\nfunction confirmInternal(message) {\r\n return confirm(message);\r\n}\r\n;\r\nfunction promptInternal(message, defaultText) {\r\n return prompt(message, defaultText);\r\n}\r\n;\r\nexport default {\r\n alert: alertInternal,\r\n confirm: confirmInternal,\r\n prompt: promptInternal\r\n};\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport dlbDataSource from '@bingads-webui-static-legacy/double-list-box-datasource';\r\nvar ViewModel = function (options) {\r\n var self = this;\r\n self.options = options;\r\n self.strings = options.strings || ({});\r\n self.features = options.features || ({});\r\n self.customData = options.customData || ({});\r\n self.dataSource = self._createDataSource();\r\n self.kendoDataSource = self.dataSource.dataSource;\r\n self.selectedItem = ko.observable(self.options.data.selectedItem);\r\n self._initializeFilter();\r\n self._initializeSourceItemsCount();\r\n self.refreshSource = _.bind(self.dataSource.refresh, self.dataSource);\r\n};\r\nViewModel.prototype.setSelectedItem = function (item) {\r\n var self = this, changed = false, currentId = !!self.selectedItem() ? self.dataSource.getItemId(self.selectedItem()) : null, newId = !!item ? self.dataSource.getItemId(item) : null;\r\n if (currentId !== newId) {\r\n self.dataSource.setItemProperty(self.selectedItem(), 'selected', '');\r\n self.selectedItem(item);\r\n self.dataSource.setItemProperty(item, 'selected', 'selected');\r\n changed = true;\r\n }\r\n return changed;\r\n};\r\nViewModel.prototype.refreshItem = function (item) {\r\n var self = this;\r\n self.dataSource.refreshItem(item);\r\n};\r\nViewModel.prototype._initializeFilter = function () {\r\n var self = this;\r\n self.filterText = ko.observable('');\r\n self.filterText.subscribe(function (newValue) {\r\n self.dataSource.filter(newValue);\r\n });\r\n};\r\nViewModel.prototype._initializeSourceItemsCount = function () {\r\n var self = this, total = self.kendoDataSource.total();\r\n self.showEmptyMessage = ko.observable(false);\r\n self.sourceItemsCount = ko.observable(total);\r\n self.kendoDataSource.bind('change', function () {\r\n var newTotal = self.kendoDataSource.total();\r\n self.sourceItemsCount(newTotal);\r\n newTotal === 0 ? self.showEmptyMessage(true) : self.showEmptyMessage(false);\r\n });\r\n};\r\nViewModel.prototype._createDataSource = function () {\r\n var self = this;\r\n var sourceCustomActions = [];\r\n _.each(self.options.itemActions, function (value, key) {\r\n sourceCustomActions.push({\r\n name: key,\r\n caption: value.caption\r\n });\r\n });\r\n return new dlbDataSource({\r\n dataCallback: _.isFunction(self.options.data.sourceItems) ? self.options.data.sourceItems : null,\r\n dataItems: !_.isFunction(self.options.data.sourceItems) ? self.options.data.sourceItems : null,\r\n useCallbackForFetchOnly: self.options.data.useCallbackForFetchOnly,\r\n itemIdField: self.options.data.itemIdField,\r\n itemIdCallback: self.options.data.itemIdCallback,\r\n itemFilterField: self.options.data.itemFilterField,\r\n itemFilterCallback: self.options.data.itemFilterCallback,\r\n pageSize: self.features.paging ? self.options.data.pageSize : Math.pow(2, 31),\r\n listItemSeed: function (item, id) {\r\n return {\r\n customActions: sourceCustomActions,\r\n selected: self.dataSource.getItemId(self.selectedItem()) == id ? 'selected' : '',\r\n strings: self.strings\r\n };\r\n }\r\n });\r\n};\r\nexport default ViewModel;\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport viewModel from '@bingads-webui-static-legacy/shared/viewmodel/singleListBoxViewModel';\r\nimport defaultLayoutTemplate from '@bingads-webui-static-legacy/shared/template/singleListBox/defaultLayout.pug';\r\nimport defaultItemTemplate from '@bingads-webui-static-legacy/shared/template/singleListBox/defaultItem.pug';\r\nimport Pager from '@bingads-webui-static-legacy/shared/view/pager';\r\nimport '@bingads-webui/kendo/kendo.listview';\r\nimport '@bingads-webui-component-legacy/searchbox/ko/searchboxBinding';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!global');\r\nvar defaultTemplates = {\r\n layoutTemplate: defaultLayoutTemplate({\r\n i18n: i18n\r\n }),\r\n listContainerSelector: '.dlb-source',\r\n pagerSelector: '.pager-container',\r\n itemLayoutTemplate: defaultItemTemplate({\r\n i18n: i18n\r\n }),\r\n itemContentSelector: '.dlbItem-content',\r\n itemContentTemplate: '#:data.name#'\r\n};\r\nvar listItemCssClass = 'dlbItem';\r\nvar ControlView = backbone.View.extend({\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n this.options.data = this.options.data || ({});\r\n var self = this;\r\n self._applyDefaultTemplates();\r\n self.options.features = _.defaults(self.options.features || ({}), {\r\n filtering: true,\r\n paging: true\r\n });\r\n self._viewModel = new viewModel(_.pick(self.options, 'data', 'itemActions', 'strings', 'features', 'customData'));\r\n self.refreshItem = _.bind(self._viewModel.refreshItem, self._viewModel);\r\n self.selectItem = _.bind(self._viewModel.setSelectedItem, self._viewModel);\r\n self.refreshSource = _.bind(self._viewModel.refreshSource, self._viewModel);\r\n self.selectedItem = ko.computed({\r\n read: function () {\r\n return self._viewModel.selectedItem();\r\n },\r\n write: function (newSelection) {\r\n self._viewModel.setSelectedItem(newSelection);\r\n }\r\n });\r\n self.selectedItem.subscribe(function (newSelection) {\r\n self.trigger('selectionChanged', newSelection);\r\n });\r\n this._initializeActions();\r\n this._initializeEventHandlers();\r\n },\r\n render: function () {\r\n this._initializeLayout();\r\n this._initializeList();\r\n if (this.options.features.paging) {\r\n this._initializePager();\r\n }\r\n return this;\r\n },\r\n _initializeLayout: function () {\r\n var self = this;\r\n self.$wrapper = $('
').appendTo(self.$el).html(self.options.templates.layoutTemplate);\r\n ko.applyBindings(self._viewModel, self.$wrapper[0]);\r\n self.elements = {\r\n $list: self.$(self.options.templates.listContainerSelector)\r\n };\r\n },\r\n _initializeList: function () {\r\n var self = this;\r\n self.elements.$list.kendoListView({\r\n navigatable: true,\r\n selectable: true,\r\n change: _.partial(self._onSelectChange, self),\r\n dataSource: self._viewModel.kendoDataSource,\r\n template: self._getEffectiveItemTemplate(this.options.templates.itemLayoutTemplate, this.options.templates.itemContentTemplate)\r\n });\r\n },\r\n _getEffectiveItemTemplate: function (layoutTemplate, contentTemplate) {\r\n return layoutTemplate.replace('', contentTemplate);\r\n },\r\n _initializeEventHandlers: function () {\r\n var self = this;\r\n self.events = self.events || ({});\r\n var getEventHandler = function (dataSource, callback, eventType, eventName) {\r\n var proxy = _.bind(callback, self);\r\n return function (event) {\r\n var $itemelement = $(event.target).closest('.' + listItemCssClass);\r\n var item = dataSource.getItemData($itemelement.attr('data-id'));\r\n proxy(item);\r\n self.trigger(eventType, eventName, item);\r\n };\r\n };\r\n _.each(self.itemActions, function (action, key) {\r\n if (key !== 'select') {\r\n self.events['click .itemAction-' + key] = getEventHandler(self._viewModel.dataSource, action.callback, 'itemAction', key);\r\n }\r\n });\r\n },\r\n _onSelectChange: function (view) {\r\n var selectAction = view.itemActions['select'];\r\n if (selectAction) {\r\n var $itemelement = $(this.select());\r\n if ($itemelement.find('.itemAction-select').length) {\r\n var item = view._viewModel.dataSource.getItemData($itemelement.attr('data-id'));\r\n selectAction.callback(item);\r\n view.trigger('itemAction', 'select', item);\r\n }\r\n }\r\n },\r\n _applyDefaultTemplates: function () {\r\n var self = this;\r\n self.options.templates = self.options.templates || ({});\r\n _.defaults(self.options.templates, defaultTemplates);\r\n },\r\n _initializeActions: function () {\r\n var self = this;\r\n self.itemActions = {\r\n select: {\r\n callback: self.selectItem\r\n }\r\n };\r\n _.extend(self.itemActions, self.options.itemActions || ({}));\r\n },\r\n _initializePager: function () {\r\n var self = this;\r\n var pagerEl = self.$(self.options.templates.pagerSelector);\r\n if (!pagerEl.length) {\r\n return;\r\n }\r\n var dataSource = self._viewModel.kendoDataSource;\r\n var pager = new Pager({\r\n el: pagerEl,\r\n pageSize: _.bind(dataSource.pageSize, dataSource),\r\n pageCount: _.bind(dataSource.totalPages, dataSource),\r\n currentPage: _.bind(dataSource.page, dataSource),\r\n refreshTriggers: [_.bind(dataSource.bind, dataSource, 'change')],\r\n enablePageJump: this.options.data.enablePageJump\r\n });\r\n pager.currentPage.subscribe(function (newPage) {\r\n if (newPage && newPage !== dataSource.page()) {\r\n dataSource.page(newPage);\r\n }\r\n });\r\n }\r\n});\r\nexport default ControlView;\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport backbone from 'backbone';\r\nimport dialogTemplate from '@bingads-webui-static-legacy/uet/template/dialog.pug';\r\nimport tagViewerContent from '@bingads-webui-static-legacy/uet/template/tagViewerContent.pug';\r\nimport tagViewerFooter from '@bingads-webui-static-legacy/uet/template/tagViewerFooter.pug';\r\nimport download from '@bingads-webui-component-legacy/download/index';\r\nimport * as url from '@bingads-webui/url-util';\r\nimport instrumentationSettings from '@bingads-webui-static-legacy/instrumentation/campaignSchemaAndSetting';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport '@bingads-webui-static-legacy/instrumentation/instrumentation';\r\nimport 'bootstrap';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!uet');\r\nvar view = backbone.View.extend({\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n this.renderThirdPartyIntegrationView = this.options.renderThirdPartyIntegrationView;\r\n },\r\n events: {\r\n 'click .btn-uet-email-tag': 'emailTag',\r\n 'click .btn-uet-copy-tag': 'copyTag',\r\n 'click .btn-uet-download-tag': 'downloadTag',\r\n 'click .btn-uet-gtm-tag': 'startGTMIntegrationFlow',\r\n 'hidden.bs.modal': 'onClose'\r\n },\r\n render: (function () {\r\n var tag = Object.assign({}, this.options.tag);\r\n const isUetAutoSpaTrackingEnabled = _.result(pageContext.Permissions.dynamic, 'UetAutoSpaTracking');\r\n var scriptMatches = (/`;\r\n }\r\n var isGTMIntegrationEnabled = pageContext.Permissions.IsGTMTagIntegrationForUETGridEnabled && !!this.renderThirdPartyIntegrationView;\r\n var dialog = dialogTemplate({\r\n title: i18n.getString('UnifiedEventTracking_TagViewer_Title'),\r\n content: tagViewerContent({\r\n _,\r\n i18n: i18n,\r\n tag: tag\r\n }),\r\n footer: tagViewerFooter({\r\n i18n: i18n,\r\n isGTMIntegrationEnabled\r\n }),\r\n i18n: i18n,\r\n dialogClass: 'uet tag-viewer'\r\n });\r\n this.setElement(dialog);\r\n this.$el.modal('show');\r\n if ($.support.transition) {\r\n this.$el.on($.support.transition.end, function (event) {\r\n $('.btn-primary', this).focus();\r\n });\r\n }\r\n return this;\r\n }).asLoggingStart(instrumentationSettings.ACTIVITYNAME.OpenUetTrackingCodePopup, instrumentationSettings.SCENARIONAME.ViewUetTrackingCodePopup),\r\n hide: function () {\r\n this.$el.modal('hide');\r\n },\r\n copyTag: (function () {\r\n window.prompt(i18n.getString('UnifiedEventTracking_TagViewer_CopyPrompt'), this.$('.tab-pane.active').val());\r\n }).asLoggingStart(instrumentationSettings.ACTIVITYNAME.CopyTrackingCode, instrumentationSettings.SCENARIONAME.ViewUetTrackingCodePopup),\r\n emailTag: (function () {\r\n var subject = encodeURIComponent(i18n.getString('UnifiedEventTracking_TagViewer_EmailSubject') + this.$('.tag-name').text());\r\n window.location.href = url.mailto('', subject, encodeURIComponent(this.getEmailDownloadBody()));\r\n }).asLoggingStart(instrumentationSettings.ACTIVITYNAME.EmailTrackingCode, instrumentationSettings.SCENARIONAME.ViewUetTrackingCodePopup),\r\n downloadTag: (function () {\r\n download.downloadify(this.$('.tag-name').text() + '.txt', this.getEmailDownloadBody(), 'text/plain');\r\n }).asLoggingStart(instrumentationSettings.ACTIVITYNAME.DownloadTrackingCode, instrumentationSettings.SCENARIONAME.ViewUetTrackingCodePopup),\r\n startGTMIntegrationFlow: (function () {\r\n this.hide();\r\n this.renderThirdPartyIntegrationView(this.options.tag);\r\n }).asLoggingStart(instrumentationSettings.ACTIVITYNAME.IntegrateTrackingCodeWithGTM, instrumentationSettings.SCENARIONAME.ViewUetTrackingCodePopup),\r\n onClose: function () {\r\n this.remove();\r\n },\r\n getEmailDownloadBody: function () {\r\n return i18n.getString('UnifiedEventTracking_TagViewer_EmailHeader') + '\\r\\n\\r\\n' + i18n.getString('UnifiedEventTracking_TagViewer_EmailHelp') + '\\r\\n\\r\\n' + this.$('.tab-pane.active').val();\r\n }\r\n});\r\nexport default view;\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport asyncScheduler from '@bingads-webui-static-legacy/async-scheduler';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport instrumentation from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport * as errors from '@bingads-webui-campaign-legacy/instrumentation/error-codes';\r\nimport '@bingads-webui-static-legacy/instrumentation/instrumentation';\r\nvar urlTemplate = '/Customers()/Accounts()/TaskItemExecutions({{ExecutionId}})';\r\nfunction handleUpdates(result) {\r\n var data = result.data || ({});\r\n this.consecutiveFailureCount = 0;\r\n var isSucceed = _.contains(['Completed'], data.Status);\r\n var isInProgress = _.contains(['InProgress', 'PendingExecution'], data.Status);\r\n var isFailed = !(isSucceed || isInProgress);\r\n if (isFailed && !_.contains(['Failed', 'RetryNeeded', 'AccessDenied', 'UserError'], data.Status)) {\r\n instrumentation.logError('UploadConversions/statusPoller/handleUpdates', 'Unexpected status: ' + data.Status + ', treat is as a failure');\r\n }\r\n if (isSucceed || isFailed) {\r\n this.job.stop();\r\n }\r\n if (data.RowsProcessed && data.TotalRows) {\r\n this.options.parentTask.trigger('update', data.RowsProcessed, data.TotalRows);\r\n }\r\n if (isSucceed) {\r\n instrumentation.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, '/UploadConversions/statusPoller/handleUpdates', 'Finish polling');\r\n this.options.parentTask.trigger('done', data);\r\n } else if (isFailed) {\r\n var trackingid, requestid;\r\n var xhr = this.lastSuccessXHR || ({});\r\n if (_.isFunction(xhr.getResponseHeader)) {\r\n trackingid = xhr.getResponseHeader('x-ms-trackingid');\r\n requestid = xhr.getResponseHeader('x-ms-requestid');\r\n }\r\n this.errorLog = _.extend({}, this.errorLog, _.pick(xhr, 'readyState', 'responseText', 'status', 'statusText'), {\r\n 'x-ms-trackingid': trackingid,\r\n 'x-ms-requestid': requestid\r\n });\r\n var isUserError = false;\r\n try {\r\n var errorCode = xhr.responseJSON && xhr.responseJSON.Errors[0].Code;\r\n isUserError = errors.odataErrorCodes.includes(errorCode.toUpperCase());\r\n } catch (e) {}\r\n if (!isUserError) {\r\n instrumentation.logError('UploadConversions/statusPoller/handleUpdates', 'Details:' + JSON.stringify(this.errorLog));\r\n }\r\n this.options.parentTask.trigger('error', {\r\n errorMsgKey: 'UnifiedEventTracking_UploadConversions_GenericError',\r\n log: this.errorLog,\r\n isUserError: isUserError\r\n });\r\n }\r\n}\r\nfunction handleFailures(result) {\r\n var err = result.error || ({});\r\n this.consecutiveFailureCount++;\r\n if (this.consecutiveFailureCount >= 5) {\r\n this.job.stop();\r\n this.errorLog = _.extend({}, this.errorLog, _.pick(err, 'readyState', 'responseText', 'status', 'statusText'), _.pick(err.headers, 'x-ms-requestid', 'x-ms-trackingid'));\r\n var isUserError = false;\r\n var xhr = this.lastSuccessXHR || ({});\r\n try {\r\n var errorCode = xhr.responseJSON && xhr.responseJSON.Errors[0].Code;\r\n isUserError = errors.odataErrorCodes.includes(errorCode);\r\n } catch (e) {}\r\n if (!isUserError) {\r\n instrumentation.logError('UploadConversions/statusPoller/handleFailures', 'Polling failed ' + this.consecutiveFailureCount + ' times. Details: ' + JSON.stringify(this.errorLog));\r\n }\r\n this.options.parentTask.trigger('error', {\r\n errorMsgKey: 'UnifiedEventTracking_UploadConversions_GenericError',\r\n log: this.errorLog\r\n });\r\n }\r\n}\r\nfunction scheduledTask() {\r\n var options = {\r\n success: (function (data, status, xhr) {\r\n this.lastSuccessXHR = xhr;\r\n }).bind(this)\r\n };\r\n return odata.get(this.url, options);\r\n}\r\nvar Poller = function (options) {\r\n this.options = options || ({});\r\n this.consecutiveFailureCount = 0;\r\n this.url = _.template(urlTemplate)({\r\n ExecutionId: this.options.ExecutionId\r\n });\r\n this.job = asyncScheduler.createTask({\r\n schedule: 2000,\r\n task: scheduledTask.bind(this),\r\n overlapping: 'wait'\r\n });\r\n this.job.on('success', handleUpdates.bind(this));\r\n this.job.on('error', handleFailures.bind(this));\r\n this.errorLog = {\r\n Url: this.url\r\n };\r\n};\r\nPoller.prototype.start = function () {\r\n this.job.start();\r\n};\r\nexport default Poller;\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport backbone from 'backbone';\r\nimport TaskProgressView from '@bingads-webui-static-legacy/uet/view/uploadConversions/taskProgress';\r\nimport StatusPoller from '@bingads-webui-static-legacy/uet/view/uploadConversions/statusPoller';\r\nimport instrumentation from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport '@bingads-webui-static-legacy/instrumentation/instrumentation';\r\nvar Task = function (options) {\r\n this.options = options || ({});\r\n instrumentation.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, '/UploadConversions/pollerTask', 'ExecutionId passed in: ' + this.options.ExecutionId);\r\n this.view = new TaskProgressView({\r\n model: {\r\n statusText: this.options.statusText,\r\n completeText: this.options.completeText\r\n },\r\n task: this\r\n });\r\n this.poller = new StatusPoller({\r\n ExecutionId: this.options.ExecutionId,\r\n parentTask: this\r\n });\r\n};\r\nTask.prototype.run = function () {\r\n this.poller.start();\r\n};\r\n_.extend(Task.prototype, backbone.Events);\r\nexport default Task;\r\n\r\n","/* eslint-disable */\r\nimport ko from 'knockout';\r\nimport humanize from '@bingads-webui-component-legacy/humanize/byte';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!uet');\r\nexport default function (model) {\r\n this.statusText = ko.observable(model.statusText);\r\n this.showProgress = ko.observable(model.showProgress);\r\n this.completed = ko.observable(model.completed);\r\n this.total = ko.observable(model.total);\r\n this.progressDetails = ko.computed((function () {\r\n if (model.type === 'Upload') {\r\n return i18n.getString('UnifiedEventTracking_UploadConversions_UploadProgress_Details', humanize.fileSize(this.completed()), humanize.fileSize(this.total()));\r\n } else {\r\n return i18n.getString('UnifiedEventTracking_UploadConversions_TaskProgress_Details', this.completed(), this.total());\r\n }\r\n }).bind(this));\r\n this.percentage = ko.computed((function () {\r\n return (this.total() === 0 ? 0 : this.completed() / this.total()) * 100 + '%';\r\n }).bind(this));\r\n}\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport taskProgressTemplate from '@bingads-webui-static-legacy/uet/template/uploadConversions/taskProgress.pug';\r\nimport TaskProgressViewModel from '@bingads-webui-static-legacy/uet/viewmodel/uploadConversions/taskProgress';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!uet');\r\nvar defaults = {\r\n showProgress: false,\r\n statusText: '',\r\n completeText: '',\r\n completed: 0,\r\n total: 100\r\n};\r\nfunction close() {\r\n this.options.task && this.options.task.trigger('close');\r\n}\r\nvar view = backbone.View.extend({\r\n events: {\r\n 'click .btn-close': close\r\n },\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n this.options.model = _.defaults({}, this.options.model, defaults);\r\n this.ko_model = new TaskProgressViewModel(this.options.model);\r\n this.isNewUI = config.get('IsNewUI');\r\n if (this.options.task) {\r\n this.options.task.on('update', (function (completed, total) {\r\n this.ko_model.showProgress(!this.isNewUI).completed(completed).total(total);\r\n }).bind(this));\r\n this.options.task.on('done', (function () {\r\n this.ko_model.completed(this.ko_model.total());\r\n this.ko_model.showProgress(false).statusText(this.options.model.completeText);\r\n }).bind(this));\r\n }\r\n },\r\n render: function () {\r\n this.$el.html(taskProgressTemplate({\r\n i18n: i18n,\r\n isNewUI: this.isNewUI\r\n }));\r\n ko.applyBindings(this.ko_model, this.el);\r\n return this;\r\n },\r\n recoverBinding: function () {\r\n ko.cleanNode(this.el);\r\n this.undelegateEvents();\r\n this.delegateEvents();\r\n ko.applyBindings(this.ko_model, this.el);\r\n }\r\n});\r\nexport default view;\r\n\r\n","/* eslint-disable */\r\nimport ko from 'knockout';\r\nimport localStorage from '@bingads-webui-component-legacy/storage/localStorage';\r\nexport default function (options) {\r\n this.options = options || ({});\r\n this.hasError = ko.observable('');\r\n this.tutorialSectionExplandClass = this.options.hideTutorial ? ko.observable('expanderImage') : ko.observable('expandedImage');\r\n this.updateTutorialSectionStatus = function () {\r\n if (this.tutorialSectionExplandClass() === 'expandedImage') {\r\n this.tutorialSectionExplandClass('expanderImage');\r\n localStorage.set('uet_upload_tut_hide', true);\r\n } else {\r\n this.tutorialSectionExplandClass('expandedImage');\r\n localStorage.set('uet_upload_tut_hide', false);\r\n }\r\n };\r\n}\r\n\r\n","/* eslint-disable */\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!uet');\r\nconst tranformFileName = function (filename) {\r\n if (!filename || filename.length <= 25) {\r\n return filename;\r\n }\r\n var preFileName = filename.substr(0, 12);\r\n var postFileName = filename.substr(filename.length - 12, 12);\r\n var newFileName = preFileName + '...' + postFileName;\r\n return newFileName;\r\n};\r\nexport default function (model) {\r\n this.maximumFileSize = _.constant(200 * 1024 * 1024);\r\n this.enableUpload = ko.observable(false);\r\n this.showWarning = ko.observable(false);\r\n this.warningMessage = ko.observable('');\r\n this.fileName = ko.observable('');\r\n const {OnlineConversionRestateRetractUI} = model;\r\n this.showUploadButton = ko.observable(model.isNewUI);\r\n if (!OnlineConversionRestateRetractUI) {\r\n this.uploadButtonClicked = (function () {\r\n this.showUploadButton(false);\r\n }).bind(this);\r\n this.cancelButtonClicked = (function () {\r\n this.showUploadButton(true);\r\n }).bind(this);\r\n }\r\n this.fileDidPick = (function (inputElement) {\r\n if (!_.isUndefined(inputElement.files) && inputElement.files.length > 0) {\r\n var file = _.first(inputElement.files);\r\n var fileSizeExceeded = file && file.size && file.size >= this.maximumFileSize();\r\n var fileEmpty = file && file.size <= 0;\r\n if (!fileEmpty) {\r\n this.fileName(tranformFileName(file.name));\r\n }\r\n var fileNameIsInvalid = file && (function (name) {\r\n var reg = /\\.([^\\.]+)$/;\r\n var matches = name.match(reg);\r\n return !(matches && _.contains(['csv', 'tsv', 'xlsx'], matches[1].toLowerCase()));\r\n })(file.name);\r\n if (fileSizeExceeded || fileEmpty || fileNameIsInvalid) {\r\n this.enableUpload(false);\r\n this.showWarning(true);\r\n if (fileNameIsInvalid) {\r\n this.warningMessage(i18n.getString('UnifiedEventTracking_UploadConversions_Unsupported_Format'));\r\n } else if (fileEmpty) {\r\n this.warningMessage(i18n.getString('UnifiedEventTracking_UploadConversions_File_Empty'));\r\n } else {\r\n this.warningMessage(i18n.getString('UnifiedEventTracking_UploadConversions_UploadError_FileSizeExceeded'));\r\n }\r\n } else {\r\n this.enableUpload(true);\r\n this.showWarning(false);\r\n this.warningMessage('');\r\n }\r\n }\r\n }).bind(this);\r\n}\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nvar excelFileName = 'EXCEL_Conversion_Import_Template.xlsx';\r\nvar csvFileName = 'CSV_Conversion_Import_Template.csv';\r\nfunction getFileUrl(filename) {\r\n return pageContext.TemplatesPathUrl + 'Import/' + filename;\r\n}\r\n;\r\nexport default {\r\n excelFileUrl: getFileUrl(excelFileName),\r\n csvFileUrl: getFileUrl(csvFileName)\r\n};\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport filePickerTemplate from '@bingads-webui-static-legacy/uet/template/uploadConversions/filePicker.pug';\r\nimport FilePickerViewModel from '@bingads-webui-static-legacy/uet/viewmodel/uploadConversions/filePicker';\r\nimport TemplateFileUtil from '@bingads-webui-static-legacy/uet/view/uploadConversions/templateFileUtil';\r\nimport instrumentation from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport setting from '@bingads-webui-static-legacy/instrumentation/campaignSchemaAndSetting';\r\nimport '@bingads-webui-static-legacy/instrumentation/instrumentation';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!uet');\r\nvar uploadFile = (function () {\r\n var file = _.first(_.first(this.$('.file-input')).files);\r\n this.trigger('fileSelected', file);\r\n}).asLoggingStart(setting.ACTIVITYNAME.ClickOnUploadAndPreview);\r\nvar view = backbone.View.extend({\r\n events: {\r\n 'click .btn-upload': uploadFile\r\n },\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n this.options.isNewUI = this.options.isNewUI || false;\r\n const permissions = pageContext.Permissions;\r\n const {dynamic = {}} = permissions;\r\n const {OnlineConversionRestateRetractUI = false} = dynamic;\r\n this.options.OnlineConversionRestateRetractUI = OnlineConversionRestateRetractUI;\r\n this.ko_model = new FilePickerViewModel(this.options);\r\n },\r\n render: function () {\r\n var excelLink = '' + i18n.getString('UnifiedEventTracking_UploadConversions_Excel') + '';\r\n var csvLink = '' + i18n.getString('UnifiedEventTracking_UploadConversions_Csv') + '';\r\n const permissions = pageContext.Permissions;\r\n const {dynamic = {}} = permissions;\r\n const {OnlineConversionRestateRetractUI = false} = dynamic;\r\n var html = filePickerTemplate({\r\n i18n: i18n,\r\n isNewUI: this.options.isNewUI,\r\n IsOfflineConversionRestateRetractFromUIAllowed: this.options.isNewUI && permissions.IsOfflineConversionRestateRetractFromUIAllowed,\r\n OnlineConversionRestateRetractUI: dynamic.OnlineConversionRestateRetractUI\r\n }).replace('{{fileTemplateExcel}}', excelLink).replace('{{fileTemplateCsv}}', csvLink);\r\n this.$el.html(html);\r\n if (this.$('.new-filepicker-tip').length > 0) {\r\n this.$('.new-filepicker-tip').empty().append(this.options.newFilePickerTip.render().$el);\r\n }\r\n ko.applyBindings(this.ko_model, this.el);\r\n instrumentation.endActivity();\r\n return this;\r\n },\r\n recoverBinding: function () {\r\n ko.cleanNode(this.el);\r\n this.undelegateEvents();\r\n this.delegateEvents();\r\n ko.applyBindings(this.ko_model, this.el);\r\n instrumentation.endActivity();\r\n }\r\n});\r\nexport default view;\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport backbone from 'backbone';\r\nimport TaskProgressView from '@bingads-webui-static-legacy/uet/view/uploadConversions/taskProgress';\r\nimport UploadService from '@bingads-webui-component-legacy/azure-upload/index';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport * as safeJson from '@bingads-webui/safe-json';\r\nimport dateUtils from '@bingads-webui-component-legacy/humanize/date';\r\nimport instrumentation from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport '@bingads-webui-static-legacy/instrumentation/instrumentation';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!uet');\r\nfunction processBlobUrl(url) {\r\n var urlWithoutSas = url && url.slice(0, url.indexOf('?'));\r\n this.fileUrl = urlWithoutSas;\r\n this.fileIdentifier = getFileIdentifier(urlWithoutSas);\r\n var message = 'Uploaded successfully. File name: ' + this.options.file.name + ', size: ' + this.options.file.size + 'bytes, blobUrl: ' + urlWithoutSas;\r\n instrumentation.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, 'UploadConversions/uploadFileTask', message);\r\n}\r\nfunction getFileIdentifier(url) {\r\n return url.substr(url.lastIndexOf('/') + 1);\r\n}\r\nfunction createPreviewTask(fileIdentifier) {\r\n var utcNow = dateUtils.utcNow();\r\n this.postData = {\r\n data: {\r\n '@odata.type': '#Model.OfflineConversionUploadTaskItem',\r\n 'FileIdentifier': fileIdentifier,\r\n 'Name': this.options.file.name + dateUtils.toString(utcNow, '_yyyy_MM_dd_HH_mm_ss', 'en-US'),\r\n 'Type': 'OfflineConversionUploadPreview',\r\n 'Cron': '',\r\n 'NotificationType': 'Always',\r\n 'NotificationMedium': 'Email',\r\n 'TimeZoneId': 50\r\n }\r\n };\r\n this.postTaskUrl = '/Customers()/Accounts()/TaskItems?$expand=TaskItemExecutions';\r\n}\r\nfunction processErrorResponse(err) {\r\n if (_.isEmpty(err)) {\r\n err = {};\r\n }\r\n if (_.isString(err)) {\r\n try {\r\n var parsedErr = JSON.parse(err);\r\n err = parsedErr;\r\n } catch (e) {}\r\n }\r\n var errorMsgKey = 'UnifiedEventTracking_UploadConversions_GenericError';\r\n this.errorLog = _.extend({}, this.errorLog, _.pick(err, 'readyState', 'responseText', 'status', 'statusText'), _.pick(err.headers, 'x-ms-requestid', 'x-ms-trackingid'));\r\n if (_.isEmpty(this.errorLog)) {\r\n if (_.isString(err.error) && (err.error.includes('NotReadableError') || err.error.includes('NotFoundError'))) {\r\n instrumentation.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, 'UploadConversions/uploadFileTask', 'Non XHR error:' + JSON.stringify(err));\r\n errorMsgKey = 'FileUpload_FileNotReadableError';\r\n } else {\r\n instrumentation.logMessage([constants.LOGCATEGORY.ERROR], constants.LOGLEVEL.INFO, 'UploadConversions/uploadFileTask', 'Non XHR error:' + JSON.stringify(err));\r\n }\r\n } else {\r\n instrumentation.logMessage([constants.LOGCATEGORY.ERROR], constants.LOGLEVEL.INFO, 'UploadConversions/uploadFileTask', JSON.stringify(this.errorLog));\r\n }\r\n this.trigger('error', {\r\n errorMsgKey: errorMsgKey,\r\n log: this.errorLog\r\n });\r\n}\r\nfunction parseTaskId(data) {\r\n var executionObj = _.first(data.TaskItemExecutions);\r\n this.taskId = data.Id;\r\n this.executionId = executionObj && executionObj.Id;\r\n instrumentation.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, '/UploadConversions/uploadFileTask/run', 'TaskId: ' + this.taskId + ', ExecutionId: ' + this.executionId);\r\n}\r\nvar Task = function (options) {\r\n this.options = options || ({});\r\n this.view = new TaskProgressView({\r\n model: {\r\n type: 'Upload',\r\n statusText: this.options.statusText,\r\n completeText: this.options.completeText\r\n },\r\n task: this\r\n });\r\n};\r\nTask.prototype.run = function (cb) {\r\n var uploadService = new UploadService({\r\n file: this.options.file,\r\n bulkFileType: 'OfflineConversionInputFile',\r\n onProgress: (function (e) {\r\n if (!config.get('IsNewUI')) {\r\n this.trigger('update', e.loaded, e.total);\r\n }\r\n }).bind(this)\r\n });\r\n uploadService.start().bind(this).then(function (data) {\r\n processBlobUrl.call(this, data);\r\n }).then(function () {\r\n createPreviewTask.call(this, this.fileIdentifier);\r\n return odata.post(this.postTaskUrl, this.postData).bind(this);\r\n }).then(function (data) {\r\n parseTaskId.call(this, data);\r\n this.trigger('done', {\r\n TaskId: this.taskId,\r\n ExecutionId: this.executionId,\r\n FileName: this.options.file.name\r\n });\r\n }).catch(function (err) {\r\n processErrorResponse.call(this, err);\r\n }).nodeify(cb);\r\n};\r\n_.extend(Task.prototype, backbone.Events);\r\nexport default Task;\r\n\r\n","/* eslint-disable */\r\nimport ko from 'knockout';\r\nexport default function (model) {\r\n this.hasDetails = model.hasDetails;\r\n this.showDetails = ko.observable(false);\r\n}\r\n\r\n","/* eslint-disable */\r\nimport backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport * as safeJson from '@bingads-webui/safe-json';\r\nimport * as i18nErrors from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport errorViewTemplate from '@bingads-webui-static-legacy/uet/template/uploadConversions/errorView.pug';\r\nimport ErrorViewVM from '@bingads-webui-static-legacy/uet/viewmodel/uploadConversions/errorView';\r\nimport instrumentation from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport setting from '@bingads-webui-static-legacy/instrumentation/campaignSchemaAndSetting';\r\nimport '@bingads-webui-static-legacy/instrumentation/instrumentation';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!uet');\r\nvar close = (function () {\r\n this.trigger('close');\r\n}).asLoggingStart(setting.ACTIVITYNAME.ClickOnCloseInErrorView);\r\nvar showDetails = function () {\r\n this.ko_model.showDetails(true);\r\n};\r\nvar view = backbone.View.extend({\r\n events: {\r\n 'click .btn-close': close,\r\n 'click .btn-details': showDetails\r\n },\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n this.errorMessage = this.getFriendlyError(this.options.log) || i18n.getString(this.options.errorMsgKey || 'UnifiedEventTracking_UploadConversions_GenericError');\r\n this.detailLogs = this.generateLogContent(this.options.log);\r\n this.ko_model = new ErrorViewVM({\r\n hasDetails: this.detailLogs && this.detailLogs.length > 0\r\n });\r\n this.errorMessage = this.ko_model.hasDetails ? this.errorMessage + ' ' : this.errorMessage;\r\n },\r\n render: function () {\r\n this.$el.html(errorViewTemplate({\r\n i18n: i18n,\r\n errorMsg: this.errorMessage,\r\n logArr: this.detailLogs\r\n }));\r\n ko.applyBindings(this.ko_model, this.el);\r\n instrumentation.endActivity();\r\n return this;\r\n },\r\n generateLogContent: function (log) {\r\n var ret = [];\r\n var line = '';\r\n _.each(_.keys(_.pick(log, 'Date', 'TaskId', 'ExecutionId', 'Url', 'ErrorCode')), function (key) {\r\n line = key + ': ' + log[key];\r\n ret.push(line);\r\n });\r\n return ret;\r\n },\r\n getFriendlyError: function (log) {\r\n var errObj;\r\n if (log && log.responseText) {\r\n var resObj = safeJson.parseSync(log.responseText);\r\n if (resObj && resObj.Errors && resObj.Errors.length > 0) {\r\n errObj = _.first(i18nErrors.getODataErrors(resObj.Errors));\r\n } else if (resObj && resObj.value && resObj.value.length > 0) {\r\n errObj = _.first(i18nErrors.getODataErrors(resObj.value));\r\n }\r\n if (errObj) {\r\n this.options.log = _.extend({}, this.options.log, {\r\n ErrorCode: errObj.code\r\n });\r\n return errObj.message === errObj.code ? null : errObj.message;\r\n }\r\n }\r\n return null;\r\n },\r\n recoverBinding: function () {\r\n ko.cleanNode(this.el);\r\n this.undelegateEvents();\r\n this.delegateEvents();\r\n ko.applyBindings(this.ko_model, this.el);\r\n instrumentation.endActivity();\r\n }\r\n});\r\nexport default view;\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nfunction Collaborator(definitions) {\r\n this.definitions = definitions || ({});\r\n this.instances = {};\r\n}\r\nCollaborator.prototype.role = function (name, options) {\r\n if (typeof options === 'undefined' && this.instances[name]) {\r\n return this.instances[name];\r\n }\r\n var definition = this.definitions[name];\r\n if (!definition) {\r\n throw new Error('Role \"' + name + '\" is not defined.');\r\n }\r\n var factory = definition.factory;\r\n if (!factory) {\r\n throw new Error('Role \"' + name + '\" does not have a factory.');\r\n }\r\n this.instances[name] && factory.release && factory.release(this.instances[name]);\r\n this.instances[name] = null;\r\n var instance = factory.create(options);\r\n _.each(definition.events, function (handler, eventName) {\r\n factory.bindEvent(name, instance, eventName, handler);\r\n });\r\n definition.extend && _.extend(instance, definition.extend);\r\n this.instances[name] = instance;\r\n return instance;\r\n};\r\nCollaborator.prototype.clear = function (options) {\r\n var opt = _.defaults({}, options, {\r\n filter: function () {\r\n return true;\r\n }\r\n });\r\n _.each(this.instances, (function (instance, name) {\r\n if (instance && opt.filter(name, instance)) {\r\n this.definitions[name].factory.release(instance);\r\n this.instances[name] = null;\r\n }\r\n }).bind(this));\r\n};\r\nCollaborator.factory = function (Type, strategy, defaults) {\r\n return {\r\n create: function (options) {\r\n var opt = _.defaults({}, options, defaults, strategy.defaults);\r\n var instance = new Type(opt);\r\n strategy.extend && _.extend(instance, strategy.extend);\r\n strategy.initialize && strategy.initialize.call(instance);\r\n return instance;\r\n },\r\n release: function (instance) {\r\n strategy.destroy && strategy.destroy.call(instance);\r\n },\r\n bindEvent: strategy.bindEvent || (function (roleName, instance, eventName, handler) {\r\n instance.on(eventName, handler);\r\n })\r\n };\r\n};\r\nexport default Collaborator;\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nfunction ModalManager(message) {\r\n this.handler = function () {\r\n return message;\r\n };\r\n this.active = false;\r\n}\r\nModalManager.prototype.on = function () {\r\n if (!this.active) {\r\n $(window).on('beforeunload', this.handler);\r\n this.active = true;\r\n }\r\n};\r\nModalManager.prototype.off = function () {\r\n if (this.active) {\r\n $(window).off('beforeunload', this.handler);\r\n this.active = false;\r\n }\r\n};\r\nexport default ModalManager;\r\n\r\n","/* eslint-disable */\r\nimport legacy$ from 'jquery';\r\nimport $ from 'jquery';\r\nimport ko from 'knockout';\r\nimport backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport UploadConversionsTemplate from '@bingads-webui-static-legacy/uet/template/uploadConversions/uploadConversions.pug';\r\nimport UploadConversionsViewModel from '@bingads-webui-static-legacy/uet/viewmodel/uploadConversions/index';\r\nimport FilePickerView from '@bingads-webui-static-legacy/uet/view/uploadConversions/filePicker';\r\nimport * as _HistoryGrid from '@bingads-webui-campaign-legacy/conversion-tracking/upload-conversions/history-grid';\r\nimport UploadFileTask from '@bingads-webui-static-legacy/uet/view/uploadConversions/uploadFileTask';\r\nimport PollerTask from '@bingads-webui-static-legacy/uet/view/uploadConversions/pollerTask';\r\nimport * as _ChangesView from '@bingads-webui-campaign-legacy/conversion-tracking/upload-conversions/changes-view';\r\nimport ErrorView from '@bingads-webui-static-legacy/uet/view/uploadConversions/errorView';\r\nimport Collaborator from '@bingads-webui-static-legacy/uet/view/uploadConversions/collaborator';\r\nimport ModalManager from '@bingads-webui-static-legacy/uet/view/uploadConversions/modalManager';\r\nimport TemplateFileUtil from '@bingads-webui-static-legacy/uet/view/uploadConversions/templateFileUtil';\r\nimport localStorage from '@bingads-webui-component-legacy/storage/localStorage';\r\nimport dateUtils from '@bingads-webui-component-legacy/humanize/date';\r\nimport instrumentation from '@bingads-webui-static-legacy/instrumentation/index';\r\nimport constants from '@bingads-webui-static-legacy/instrumentation/constants';\r\nimport setting from '@bingads-webui-static-legacy/instrumentation/campaignSchemaAndSetting';\r\nimport '@bingads-webui-static-legacy/instrumentation/instrumentation';\r\nimport '@bingads-webui-component-legacy/bingads-grid/service/fetch-pagination';\r\nvar i18n = window.globalLegacyI18n.get('module/extension/requirejs/i18n!uet');\r\nvar HistoryGrid = _HistoryGrid.default;\r\nvar ChangesView = _ChangesView.default;\r\nvar modalManager = new ModalManager(i18n.getString('UnifiedEventTracking_UploadConversions_ModalMessage'));\r\nfunction displayRole(name, options, keepCurrent) {\r\n return function (args) {\r\n var $el = this.$('.operation-area');\r\n if (!keepCurrent) {\r\n $el.empty();\r\n this.currentRoles = {};\r\n }\r\n if (!this.currentRoles[name]) {\r\n instrumentation.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, '/uploadConversions/index/displayRole', 'Passed-in name: ' + name + ', keepCurrent: ' + keepCurrent);\r\n var role = this.collab.role(name, _.isFunction(options) ? options(args) : options);\r\n var view = role.getView();\r\n !options && _.isFunction(view.recoverBinding) && view.recoverBinding();\r\n this.$('.operation-area').append(view.el);\r\n this.currentRoles[name] = role;\r\n if (role.modal) {\r\n modalManager.on();\r\n } else {\r\n modalManager.off();\r\n }\r\n }\r\n };\r\n}\r\nfunction displayHistoryGrid() {\r\n this.historyGrid = new HistoryGrid();\r\n this.historyGrid.on('error:system', this.options.onError);\r\n this.$('.upload-history').empty().html(this.historyGrid.render().el);\r\n}\r\nfunction refreshHistoryGrid() {\r\n if (this.historyGrid) {\r\n this.historyGrid.grid.refresh({\r\n force: true\r\n });\r\n } else {\r\n displayHistoryGrid.apply(this);\r\n }\r\n}\r\nfunction setStatus(status) {\r\n if (!pageContext || !pageContext.CurrentAccount) {\r\n return;\r\n }\r\n var aid = pageContext.CurrentAccount.Id;\r\n var cid = pageContext.CurrentAccount.AdvertiserCustomerID;\r\n localStorage.set('uet_upload_status', _.extend({}, _.pick(status, 'state', 'TaskId', 'ExecutionId', 'FileName'), {\r\n time: dateUtils.toString(new Date(), 'u'),\r\n cid: cid,\r\n aid: aid\r\n }));\r\n}\r\nfunction getStatus() {\r\n if (!pageContext || !pageContext.CurrentAccount) {\r\n return null;\r\n }\r\n var stat = localStorage.get('uet_upload_status');\r\n var aid = pageContext.CurrentAccount.Id;\r\n var cid = pageContext.CurrentAccount.AdvertiserCustomerID;\r\n if (!stat || !stat.aid || !stat.cid || stat.aid !== aid || stat.cid !== cid) {\r\n return null;\r\n }\r\n if (stat && stat.time && stat.state === 'processing') {\r\n var start = dateUtils.parse(stat.time, 'u');\r\n var now = new Date();\r\n if (now - start > 900000) {\r\n resetStatus();\r\n return null;\r\n }\r\n }\r\n return stat;\r\n}\r\nfunction resetStatus() {\r\n localStorage.invalidate('uet_upload_status');\r\n}\r\nfunction resume() {\r\n return Promise.resolve(getStatus());\r\n}\r\nfunction closeView() {\r\n this.sharedInfo = {};\r\n resetStatus();\r\n displayRole('filePickerView', this.filePickerOptions).call(this);\r\n}\r\nfunction composePreviewTableData(data, fileName) {\r\n var identifierOf = function (type) {\r\n return _.chain(data.OfflineConversionFiles).where({\r\n Type: type\r\n }).first().result('Identifier').value();\r\n };\r\n return {\r\n data: data,\r\n sessionId: data.SessionId,\r\n filename: fileName,\r\n errorsIdentifier: identifierOf('ErrorOnlyResultFile')\r\n };\r\n}\r\nfunction composeReviewTableData(data) {\r\n var identifierOf = function (type) {\r\n return _.chain(data.OfflineConversionFiles).where({\r\n Type: type\r\n }).first().result('Identifier').value();\r\n };\r\n return {\r\n data: data,\r\n resultsIdentifier: identifierOf('AllRecordsResultFile'),\r\n errorsIdentifier: identifierOf('ErrorOnlyResultFile')\r\n };\r\n}\r\nfunction composeErrorViewOptions(obj) {\r\n var ret;\r\n ret = obj || ({});\r\n ret.log = _.extend({}, _.pick(this.options, 'trackingId', 'sessionId', 'customerId'), {\r\n Date: new Date().toUTCString()\r\n }, this.sharedInfo, ret.log);\r\n if (ret.errorMsgKey === 'UnifiedEventTracking_UploadConversions_GenericError') {\r\n var msg = JSON.stringify(ret.log);\r\n this.options.logError(msg);\r\n if (!ret.isUserError) {\r\n instrumentation.logError('UploadConverions/index/composeErrorViewOptions', msg);\r\n }\r\n }\r\n return ret;\r\n}\r\nfunction extractSharedInfo(key) {\r\n return function (obj) {\r\n var ret = {};\r\n this.sharedInfo = _.extend({}, this.sharedInfo, _.pick(obj, 'TaskId', 'ExecutionId', 'FileName'));\r\n ret[key] = obj[key];\r\n return ret;\r\n };\r\n}\r\nfunction wrapWithKey(key) {\r\n return function (obj) {\r\n var result = {};\r\n result[key] = obj;\r\n return result;\r\n };\r\n}\r\nvar view = backbone.View.extend({\r\n initialize: function (options) {\r\n this.options = _.defaults({}, options, {\r\n helpId: 'help:app72000',\r\n onError: (function () {\r\n this.ko_model.hasError(true);\r\n }).bind(this),\r\n logError: function () {}\r\n });\r\n this.filePickerOptions = {\r\n newFilePickerTip: this.options.newFilePickerTip,\r\n isNewUI: this.options.isNewUI,\r\n offlineConversionUploadButton: this.options.offlineConversionUploadButton\r\n };\r\n this.options.onError = _.wrap(this.options.onError, (function (func, err) {\r\n func();\r\n var log = _.extend({}, err, _.pick(this.options, 'trackingId', 'sessionId', 'customerId'), {\r\n Date: new Date().toUTCString()\r\n });\r\n var msg = JSON.stringify(log);\r\n instrumentation.logError('uploadConversions/index/onError', msg);\r\n this.options.logError(msg);\r\n }).bind(this));\r\n var self = this;\r\n this.currentRoles = {};\r\n var bindEvent = function (roleName, instance, eventName, handler) {\r\n instance.on(eventName, function () {\r\n if (self.currentRoles[roleName] === instance) {\r\n return handler.apply(instance, arguments);\r\n }\r\n });\r\n };\r\n var viewStrategy = {\r\n initialize: function () {\r\n this.render();\r\n },\r\n destroy: function () {\r\n this.remove();\r\n },\r\n bindEvent: bindEvent,\r\n extend: {\r\n getView: function () {\r\n return this;\r\n }\r\n }\r\n };\r\n var taskStrategy = {\r\n initialize: function () {\r\n this.view.render();\r\n this.run();\r\n },\r\n destroy: function () {\r\n this.view.remove();\r\n },\r\n bindEvent: bindEvent,\r\n extend: {\r\n getView: function () {\r\n return this.view;\r\n }\r\n }\r\n };\r\n this.collab = new Collaborator({\r\n 'filePickerView': {\r\n factory: Collaborator.factory(FilePickerView, viewStrategy, this.filePickerOptions),\r\n events: {\r\n 'fileSelected': displayRole('uploadFileTask', wrapWithKey('file')).bind(this)\r\n }\r\n },\r\n 'uploadFileTask': {\r\n factory: Collaborator.factory(UploadFileTask, taskStrategy, {\r\n statusText: this.options.isNewUI ? i18n.getString('BulkUpload_Processing_Message') : i18n.getString('UnifiedEventTracking_UploadConversions_UploadFile_Status'),\r\n completeText: this.options.isNewUI ? i18n.getString('BulkUpload_Processing_Message') : i18n.getString('UnifiedEventTracking_UploadConversions_UploadFile_CompleteStatus')\r\n }),\r\n events: {\r\n 'done': (function (args) {\r\n setStatus({\r\n state: 'processing',\r\n TaskId: args.TaskId,\r\n ExecutionId: args.ExecutionId,\r\n FileName: args.FileName\r\n });\r\n displayRole('processFileTask', extractSharedInfo('ExecutionId').bind(this)).call(this, args);\r\n }).bind(this),\r\n 'error': displayRole('errorView', composeErrorViewOptions.bind(this)).bind(this)\r\n },\r\n extend: {\r\n modal: true\r\n }\r\n },\r\n 'processFileTask': {\r\n factory: Collaborator.factory(PollerTask, taskStrategy, {\r\n statusText: this.options.isNewUI ? i18n.getString('BulkUpload_Processing_Message') : i18n.getString('UnifiedEventTracking_UploadConversions_ProcessFile_Status'),\r\n completeText: i18n.getString('UnifiedEventTracking_UploadConversions_ProcessFile_CompleteStatus')\r\n }),\r\n events: {\r\n 'done': (function (args) {\r\n var stat = getStatus();\r\n displayRole('changesPreviewView', composePreviewTableData(args, stat.FileName), true).call(this, args);\r\n }).bind(this),\r\n 'error': displayRole('errorView', composeErrorViewOptions.bind(this)).bind(this)\r\n }\r\n },\r\n 'changesPreviewView': {\r\n factory: Collaborator.factory(ChangesView, viewStrategy, {\r\n type: 'preview',\r\n isNewUI: this.options.isNewUI\r\n }),\r\n events: {\r\n 'discard': (function () {\r\n this.sharedInfo = {};\r\n resetStatus();\r\n displayRole('filePickerView').call(this);\r\n }).bind(this),\r\n 'error': (function (obj) {\r\n resetStatus();\r\n displayRole('errorView', composeErrorViewOptions.bind(this, obj)).call(this);\r\n }).bind(this),\r\n 'startApply': (function (args) {\r\n setStatus({\r\n state: 'applying',\r\n TaskId: args.TaskId,\r\n ExecutionId: args.ExecutionId,\r\n FileName: args.FileName\r\n });\r\n displayRole('applyChangesTask', extractSharedInfo('ExecutionId').bind(this)).call(this, args);\r\n }).bind(this)\r\n }\r\n },\r\n 'applyChangesTask': {\r\n factory: Collaborator.factory(PollerTask, taskStrategy, {\r\n statusText: i18n.getString('UnifiedEventTracking_UploadConversions_ApplyChanges_Status'),\r\n completeText: i18n.getString('UnifiedEventTracking_UploadConversions_ApplyChanges_CompleteStatus')\r\n }),\r\n events: {\r\n 'done': (function (data) {\r\n resetStatus();\r\n displayRole('changesReviewView', composeReviewTableData, true).call(this, data);\r\n refreshHistoryGrid.call(this);\r\n }).bind(this),\r\n 'error': displayRole('errorView', composeErrorViewOptions.bind(this)).bind(this)\r\n }\r\n },\r\n 'changesReviewView': {\r\n factory: Collaborator.factory(ChangesView, viewStrategy, {\r\n type: 'review',\r\n isNewUI: this.options.isNewUI\r\n }),\r\n events: {\r\n 'error': displayRole('errorView', composeErrorViewOptions.bind(this)).bind(this),\r\n 'close': (function () {\r\n closeView.call(this);\r\n var emptyFunc = function () {};\r\n emptyFunc.asLoggingStart(setting.ACTIVITYNAME.ReturnToFilePicker, setting.SCENARIONAME.UploadBulkSheet)();\r\n }).bind(this)\r\n }\r\n },\r\n 'errorView': {\r\n factory: Collaborator.factory(ErrorView, viewStrategy),\r\n events: {\r\n 'close': closeView.bind(this)\r\n }\r\n }\r\n });\r\n this.historyGrid = null;\r\n this.ko_model = new UploadConversionsViewModel({\r\n hideTutorial: localStorage.get('uet_upload_tut_hide') || false\r\n });\r\n this.p$status = resume.call(this);\r\n this.sharedInfo = {};\r\n },\r\n events: {\r\n 'click .goal-page-link': 'goToGoalsPage'\r\n },\r\n render: (function () {\r\n if (this.options.perfMarker) {\r\n this.options.perfMarker.willRender();\r\n }\r\n this.$el.html(UploadConversionsTemplate({\r\n i18n: i18n,\r\n _: _,\r\n goalLink: '' + i18n.getString('UnifiedEventTracking_Goal_Page') + '',\r\n helpId: this.options.helpId,\r\n isNewUI: this.options.isNewUI\r\n }));\r\n if (!this.options.isNewUI) {\r\n this.$('a#tutFileXls').attr('href', TemplateFileUtil.excelFileUrl);\r\n this.$('a#tutFileCsv').attr('href', TemplateFileUtil.csvFileUrl);\r\n } else if (this.options.tutorialView) {\r\n this.$('.tutorial-section-for-uinext').empty().append(this.options.tutorialView.render().$el);\r\n }\r\n ko.applyBindings(this.ko_model, this.el);\r\n displayHistoryGrid.call(this);\r\n this.p$status.then((function (status) {\r\n if (status && status.state === 'processing') {\r\n instrumentation.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, '/uploadConversions/index/render', 'Cached status: processing, TaskId: ' + status.TaskId + ' , ExecutionId: ' + status.ExecutionId);\r\n displayRole('processFileTask', extractSharedInfo('ExecutionId').bind(this)).call(this, {\r\n TaskId: status.TaskId,\r\n ExecutionId: status.ExecutionId,\r\n FileName: status.FileName\r\n });\r\n } else if (status && status.state === 'applying') {\r\n instrumentation.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, '/uploadConversions/index/render', 'Cached status: applying, TaskId: ' + status.TaskId + ' , ExecutionId: ' + status.ExecutionId);\r\n displayRole('applyChangesTask', extractSharedInfo('ExecutionId').bind(this)).call(this, {\r\n TaskId: status.TaskId,\r\n ExecutionId: status.ExecutionId,\r\n FileName: status.FileName\r\n });\r\n } else {\r\n instrumentation.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, '/uploadConversions/index/render', 'No cached status');\r\n displayRole('filePickerView', this.filePickerOptions).call(this);\r\n }\r\n }).bind(this)).catch(this.options.onError);\r\n if (this.options.perfMarker) {\r\n this.options.perfMarker.done();\r\n }\r\n return this;\r\n }).asLoggingStart(setting.ACTIVITYNAME.RenderBulkUpload, setting.SCENARIONAME.UploadConverions),\r\n goToGoalsPage: (function () {\r\n window.App.navigate('customer/:customer_id/account/:account_id/uet/goals');\r\n }).asLoggingStart(setting.ACTIVITYNAME.ClickOnPageLink, setting.SCENARIONAME.GoToUetGoalsPageViaHelpLinkInEntryPage),\r\n reactivate: (function () {\r\n displayHistoryGrid.call(this);\r\n this.recoverBinding();\r\n _.each(this.currentRoles, function (role, name) {\r\n instrumentation.logMessage([constants.LOGCATEGORY.TRACE], constants.LOGLEVEL.INFO, '/UploadConversions/index/reactivate', 'Recover binding for role ' + name);\r\n role.getView().recoverBinding();\r\n });\r\n }).asLoggingStart(setting.ACTIVITYNAME.ReactivateBulkUpload, setting.SCENARIONAME.uploadConversions),\r\n recoverBinding: function () {\r\n ko.cleanNode(this.el);\r\n this.undelegateEvents();\r\n this.delegateEvents();\r\n ko.applyBindings(this.ko_model, this.el);\r\n }\r\n});\r\nexport default view;\r\n\r\n","/* eslint-disable */\r\nexport default {\r\n keyword: {\r\n dropdown: {\r\n tour: [{\r\n id: 147930\r\n }, {\r\n id: 142297\r\n }]\r\n },\r\n link: {\r\n addKeyword: {\r\n id: 147930\r\n },\r\n changeBid: {\r\n id: 142297\r\n }\r\n }\r\n },\r\n settings: {\r\n dropdown: {\r\n tour: [{\r\n id: 141547\r\n }]\r\n },\r\n link: {\r\n id: 141547\r\n }\r\n },\r\n audience: {\r\n dropdown: {\r\n tour: [{\r\n id: 144778\r\n }, {\r\n id: 125409\r\n }]\r\n },\r\n link: [{\r\n id: 144778\r\n }, {\r\n id: 125409\r\n }, {\r\n id: 144779\r\n }, {\r\n id: 144780\r\n }, {\r\n id: 144781\r\n }]\r\n }\r\n};\r\n\r\n","import _ from 'underscore';\r\nimport { DS } from 'js-data';\r\nimport Promise from 'bluebird';\r\nimport mockData from './dummy-data.json';\r\n\r\nconst store = new DS();\r\n\r\nclass CustomerAdapter {\r\n // All of the methods shown here must return a promise\r\n\r\n // \"definition\" is a resource defintion that would\r\n // be returned by DS#defineResource\r\n\r\n // \"options\" would be the options argument that\r\n // was passed into the DS method that is calling\r\n // the adapter method\r\n\r\n findAll(/* definition, params, options */) {\r\n const result = _.clone(mockData.value);\r\n\r\n result.raw = mockData;\r\n return Promise.resolve(result);\r\n }\r\n}\r\n\r\nstore.registerAdapter('AdGroup', new CustomerAdapter(), { default: true });\r\n\r\nexport const adgroup = store.defineResource({\r\n name: 'AdGroup',\r\n idAttribute: 'Id',\r\n});\r\n","import { noop } from 'underscore';\r\nimport { adgroup } from './dummy-js-data-resource';\r\nimport { mockSchema } from './schema';\r\n\r\nexport const dummyDataSource = {\r\n type: 'js-data',\r\n entity: adgroup,\r\n primaryKey: 'Id',\r\n schema: mockSchema,\r\n options: {\r\n entitySet: {\r\n toJSON: noop,\r\n },\r\n },\r\n};\r\n","const PerformanceMetrics = {\r\n name: 'PerformanceMetrics',\r\n type: 'object',\r\n properties: {\r\n Impressions: {\r\n type: 'integer',\r\n nullable: true,\r\n },\r\n Clicks: {\r\n type: 'integer',\r\n nullable: true,\r\n },\r\n CTR: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n Conversions: {\r\n type: 'integer',\r\n nullable: true,\r\n },\r\n Spend: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AverageCPC: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AveragePosition: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AverageCPM: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n CPA: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n WebsiteCoverage: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AuctionWonPercent: {\r\n type: 'number',\r\n nullable: true,\r\n sovcolumn: true,\r\n isPercentValue: true,\r\n },\r\n AuctionLostToBudgetPercent: {\r\n type: 'number',\r\n nullable: true,\r\n sovcolumn: true,\r\n isPercentValue: true,\r\n },\r\n AuctionLostToRankPercent: {\r\n type: 'number',\r\n nullable: true,\r\n sovcolumn: true,\r\n isPercentValue: true,\r\n },\r\n AuctionLostToLandingPercent: {\r\n type: 'number',\r\n nullable: true,\r\n sovcolumn: true,\r\n isPercentValue: true,\r\n },\r\n AuctionLostToAdQualityPercent: {\r\n type: 'number',\r\n nullable: true,\r\n sovcolumn: true,\r\n isPercentValue: true,\r\n },\r\n AuctionLostToBidPercent: {\r\n type: 'number',\r\n nullable: true,\r\n sovcolumn: true,\r\n isPercentValue: true,\r\n },\r\n ClickSharePercent: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n RevenueOnAdSpend: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AdvertiserReportedRevenue: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n ConversionRate: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AllConversionCPA: {\r\n type: 'number',\r\n nullabe: true,\r\n },\r\n AllConversions: {\r\n type: 'integer',\r\n nullabe: true,\r\n },\r\n AllConversionRate: {\r\n type: 'number',\r\n nullabe: true,\r\n },\r\n AllConversionAdvertiserReportedRevenue: {\r\n type: 'number',\r\n nullabe: true,\r\n },\r\n AllConversionRevenueOnAdSpend: {\r\n type: 'number',\r\n nullabe: true,\r\n },\r\n },\r\n};\r\n\r\nconst Labels = {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n schema: {\r\n name: 'Label',\r\n type: 'object',\r\n key: 'Id',\r\n properties: {\r\n Id: {\r\n type: 'integer',\r\n key: true,\r\n nullable: true,\r\n },\r\n Name: {\r\n type: 'string',\r\n maxLength: 80,\r\n required: true,\r\n },\r\n Description: {\r\n type: 'string',\r\n maxLength: 200,\r\n },\r\n ColorCode: {\r\n type: 'integer',\r\n nullable: true,\r\n },\r\n AssociationCounts: {\r\n type: 'object',\r\n schema: {\r\n name: 'LabelAssociationCounts',\r\n type: 'object',\r\n properties: {\r\n CampaignCount: {\r\n type: 'integer',\r\n },\r\n AdGroupCount: {\r\n type: 'integer',\r\n },\r\n AdCount: {\r\n type: 'integer',\r\n },\r\n KeywordCount: {\r\n type: 'integer',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n },\r\n isRelatedEntity: true,\r\n filterable: true,\r\n};\r\n\r\nexport const mockSchema = {\r\n name: 'AdGroup',\r\n type: 'object',\r\n key: 'Id',\r\n required: ['Name'],\r\n properties: {\r\n Id: {\r\n type: 'integer',\r\n key: true,\r\n },\r\n Name: {\r\n type: 'string',\r\n filterable: true,\r\n maxLength: 256,\r\n },\r\n Campaign: {\r\n type: 'object',\r\n filterable: ['Name'],\r\n schema: {\r\n key: 'Id',\r\n name: 'Campaign',\r\n type: 'object',\r\n properties: {\r\n Name: {\r\n type: 'string',\r\n filterable: true,\r\n },\r\n },\r\n },\r\n },\r\n StartDate: {\r\n type: 'datetime',\r\n filterable: true,\r\n },\r\n EndDate: {\r\n type: 'datetime',\r\n nullable: true,\r\n filterable: true,\r\n },\r\n Status: {\r\n type: 'string',\r\n enum: ['CampaignUserPaused', 'CampaignBudgetPaused', 'CampaignBudgetUserPaused', 'Draft', 'Active', 'Deleted', 'Paused', 'Expired'],\r\n filterable: true,\r\n enumType: 'AdGroupStatus', // the one in our adsappsUI\r\n },\r\n SearchBid: {\r\n type: 'number',\r\n nullable: true,\r\n filterable: true,\r\n },\r\n ContentBid: {\r\n type: 'number',\r\n nullable: true,\r\n filterable: true,\r\n },\r\n PercentCpcBid: {\r\n schema: {\r\n properties: {\r\n RateAmount: {\r\n schema: {\r\n type: 'object',\r\n properties: {\r\n Amount: {\r\n nullable: true,\r\n oneOf: [\r\n {\r\n $ref: 'Edm/Double',\r\n type: 'number',\r\n name: 'Double',\r\n },\r\n {\r\n type: 'null',\r\n },\r\n ],\r\n type: 'number',\r\n name: 'Double',\r\n },\r\n },\r\n $$ODataExtension: {\r\n Name: 'RateAmount',\r\n },\r\n name: 'RateAmount',\r\n $$ref: 'Model/RateAmount',\r\n },\r\n $ref: 'Model/RateAmount',\r\n type: 'object',\r\n },\r\n },\r\n type: 'object',\r\n $$ODataExtension: {\r\n Name: 'RateBid',\r\n },\r\n name: 'RateBid',\r\n $$ref: 'Model/RateBid',\r\n },\r\n $ref: 'Model/RateBid',\r\n type: 'object',\r\n },\r\n AdGroupPercentCpcBid: {\r\n nullable: true,\r\n oneOf: [\r\n {\r\n $ref: 'Edm/Double',\r\n type: 'number',\r\n name: 'Double',\r\n },\r\n {\r\n type: 'null',\r\n },\r\n ],\r\n type: 'number',\r\n name: 'Double',\r\n 'bulk-upload-header': 'Percent Cpc Bid',\r\n },\r\n CommissionRate: {\r\n schema: {\r\n properties: {\r\n RateAmount: {\r\n schema: {\r\n type: 'object',\r\n properties: {\r\n Amount: {\r\n nullable: true,\r\n oneOf: [\r\n {\r\n $ref: 'Edm/Double',\r\n type: 'number',\r\n name: 'Double',\r\n },\r\n {\r\n type: 'null',\r\n },\r\n ],\r\n type: 'number',\r\n name: 'Double',\r\n },\r\n },\r\n $$ODataExtension: {\r\n Name: 'RateAmount',\r\n },\r\n name: 'RateAmount',\r\n $$ref: 'Model/RateAmount',\r\n },\r\n $ref: 'Model/RateAmount',\r\n type: 'object',\r\n },\r\n },\r\n type: 'object',\r\n $$ODataExtension: {\r\n Name: 'RateBid',\r\n },\r\n name: 'RateBid',\r\n $$ref: 'Model/RateBid',\r\n },\r\n $ref: 'Model/RateBid',\r\n type: 'object',\r\n },\r\n AdGroupCommissionRate: {\r\n nullable: true,\r\n oneOf: [\r\n {\r\n $ref: 'Edm/Double',\r\n type: 'number',\r\n name: 'Double',\r\n },\r\n {\r\n type: 'null',\r\n },\r\n ],\r\n type: 'number',\r\n name: 'Double',\r\n 'bulk-upload-header': 'Commission Rate',\r\n },\r\n Medium: {\r\n type: 'string',\r\n enum: ['Search', 'Content', 'SearchAndContent'],\r\n },\r\n PricingModel: {\r\n type: 'string',\r\n enum: ['CPC', 'CPM'],\r\n },\r\n Language: {\r\n type: 'string',\r\n enum: ['Arabic', 'TraditionalChinese', 'Danish', 'Dutch', 'English', 'Finnish', 'French', 'German', 'Italian', 'Norwegian', 'Portuguese', 'Spanish', 'Swedish', 'SimplifiedChinese', 'All'],\r\n nullable: true,\r\n chooseType: 'select',\r\n enumType: 'Language',\r\n },\r\n BidTarget: {\r\n type: 'string',\r\n enum: ['Keyword', 'BehaviorSegment', 'Site'],\r\n },\r\n DeliveryStatus: {\r\n type: 'string',\r\n enum: ['CreditCardExpired', 'IOExceeded', 'PaymentInformationMissing', 'InvalidFinancialStatusOther', 'MigrationPaused', 'CampaignDeleted', 'CampaignSuspended', 'CampaignBudgetPaused', 'DomainLanguageNotSupported', 'ShoppingCampaignStoreNotFound', 'ShoppingCampaignNoOffersPresent', 'AdGroupExpired', 'AdGroupDraft', 'AdGroupDeleted', 'CamAssetRejected', 'CamAssetDeleted', 'EditorialRejected', 'EditorialUnderAppeal', 'UrlInvalid', 'ApplicationNotFound', 'ApplicationDestinationUrlMismatch', 'PendingMetadataSync', 'EditorialPending', 'AssociationDeleted', 'CampaignUserPaused', 'AdGroupUserPaused', 'AdUserPaused', 'KeywordMatchTypeAdGroupMediumCombinationInvalid', 'KeywordUserPaused', 'NegativeKeywordConflicts', 'EditorialApprovedLimited', 'LowSupply', 'LowQuality', 'BidBelowFirstPageBid', 'Incomplete', 'BudgetSuggestions', 'InlineOpportunity', 'GeoCodingIncomplete', 'ProductTargetUserPaused', 'AdExtensionNotPresent', 'AdExtensionDeleted', 'AdExtensionAssociationDeleted', 'StoreIdNotAssociated', 'AdGroupAudienceAssociationPaused', 'AdGroupAudienceAssociationExcluded', 'AdNotPresent', 'AdNotActive', 'ApplicationDestinationUrlValidationIncomplete', 'Eligible'],\r\n filterable: true,\r\n },\r\n CallTrackingStatus: {\r\n type: 'string',\r\n enum: ['NotApplicable', 'Eligible', 'NotEligible', 'ProvisioningPending', 'Provisioned'],\r\n },\r\n PerformanceMetrics: {\r\n type: 'object',\r\n schema: PerformanceMetrics,\r\n filterable: ['Impressions', 'Clicks', 'CTR', 'Spend', 'Conversions',\r\n 'AverageCPC', 'AverageCPM', 'AveragePosition', 'CPA', 'RevenueOnAdSpend',\r\n 'ConversionRate', 'AdvertiserReportedRevenue', 'AllConversionCPA', 'AllConversions',\r\n 'AllConversionRate', 'AllConversionAdvertiserReportedRevenue', 'AllConversionRevenueOnAdSpend'],\r\n alias: {\r\n Spend: {\r\n legacy: 'TotalEffectiveCost',\r\n },\r\n },\r\n },\r\n Labels,\r\n PhonePerformanceMetrics: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n QualityScore: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n UpdatedOnLastImport: {\r\n type: 'boolean',\r\n },\r\n HasAuctionInsight: {\r\n type: 'boolean',\r\n filterable: true,\r\n },\r\n IsBidLandscapeAvailable: {\r\n type: 'boolean',\r\n },\r\n TrackingUrlTemplate: {\r\n type: 'string',\r\n },\r\n UrlCustomParameters: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n },\r\n BiddingScheme: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n NativeBidAdjustment: {\r\n type: 'integer',\r\n nullable: true,\r\n },\r\n Properties: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n },\r\n },\r\n DisplayBiddingStrategyType: {\r\n type: 'string',\r\n enum: ['InheritFromParent', 'ManualCpc', 'MaxClicks', 'MaxConversions', 'TargetCpa', 'EnhancedCpc'],\r\n },\r\n DisplayBiddingStrategyMaxCpc: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n DisplayBiddingStrategyTargetCpa: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n DsaTargets: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n },\r\n DomainCategorys: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n },\r\n NegativeAdGroupDsaTargets: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n },\r\n Categories: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n },\r\n DsaSearchTerms: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n $schema: {},\r\n },\r\n },\r\n },\r\n};\r\n","import Promise from 'bluebird';\r\nimport { map, object } from 'underscore';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\n\r\nimport pkg from './package.json';\r\n\r\nexport { dummyDataSource } from './demo/mock/dummy-data-source';\r\n\r\nexport function getAdGroupGridFactory(initializeGlobalContext = true) {\r\n if (initializeGlobalContext) {\r\n return globalContext.define(\r\n pkg.legacyDependencies,\r\n () => import(/* webpackMode: 'eager' */ './src/ad-group-gridview-factory')\r\n );\r\n }\r\n return import(/* webpackMode: 'eager' */ './src/ad-group-gridview-factory'); // eslint-disable-line no-unused-vars\r\n}\r\n\r\nconst bidLandscapeDependencies = [\r\n 'component/config/index',\r\n '@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab',\r\n 'module/service/shared/popup',\r\n 'campaignui/feature/instrumentation/index',\r\n 'component/api-errors-campaign/index',\r\n 'component/js-data-campaign/index',\r\n 'module/service/communication/channel/odata',\r\n];\r\nlet adGroupBidLandscapeInitializer = null;\r\n\r\nexport function getAdGroupBidLandscapeInitializer(initializeGlobalContext = true) {\r\n if (initializeGlobalContext) {\r\n const landscapePromise = new Promise((resolve) => {\r\n if (adGroupBidLandscapeInitializer) {\r\n resolve(adGroupBidLandscapeInitializer);\r\n } else {\r\n window.require(bidLandscapeDependencies, () => {\r\n const dependecies = object(\r\n bidLandscapeDependencies,\r\n map(bidLandscapeDependencies, dep => window.require(dep))\r\n );\r\n\r\n globalContext.define(\r\n bidLandscapeDependencies,\r\n () => import(/* webpackMode: 'eager' */ './src/bid-landscape/index')\r\n )(dependecies).then((result) => {\r\n adGroupBidLandscapeInitializer = result;\r\n resolve(result);\r\n });\r\n });\r\n }\r\n });\r\n return landscapePromise;\r\n }\r\n return import(/* webpackMode: 'eager' */ './src/bid-landscape/index');\r\n}\r\n\r\n\r\nlet adGroupBidLandscapeInitializerWebpack = null;\r\n\r\nexport function getAdGroupBidLandscapeInitializerWebpack(\r\n initializeGlobalContext = true,\r\n dependecies\r\n) {\r\n if (initializeGlobalContext) {\r\n const landscapePromise = new Promise((resolve) => {\r\n if (adGroupBidLandscapeInitializerWebpack) {\r\n resolve(adGroupBidLandscapeInitializerWebpack);\r\n } else {\r\n globalContext.define(\r\n bidLandscapeDependencies,\r\n () => import(/* webpackMode: 'eager' */ './src/bid-landscape/index')\r\n )(dependecies).then((result) => {\r\n adGroupBidLandscapeInitializerWebpack = result;\r\n resolve(result);\r\n });\r\n }\r\n });\r\n return landscapePromise;\r\n }\r\n return import(/* webpackMode: 'eager' */ './src/bid-landscape/index');\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport $ from 'jquery';\r\nimport classnames from 'classnames';\r\nimport { mergeStyleSets } from '@fluentui/react';\r\nimport { insertPopoverContainer } from '@bingads-webui-campaign/fluctuation-common';\r\nimport { GridTooltip } from '@bingads-webui-campaign/grid-tooltip';\r\n\r\nexport const campaignManagedDateContainerId = 'campaign-managed-date-tooltip';\r\n\r\nexport const dismissCampaignManagedDateCallout = () => {\r\n const calloutElement = document.getElementById(campaignManagedDateContainerId);\r\n if (calloutElement) {\r\n ReactDOM.unmountComponentAtNode(calloutElement);\r\n }\r\n};\r\n\r\nexport const renderCampaignManagedDateTooltip = ({\r\n i18n, event, view,\r\n}) => {\r\n const styles = mergeStyleSets({\r\n content: {\r\n marginBottom: '8px',\r\n },\r\n });\r\n\r\n const { right } = event.target.getBoundingClientRect();\r\n const calloutMaxWidth = 325; // this value is defined in global style\r\n const placement = right + calloutMaxWidth > window.innerWidth ? 'left' : 'right';\r\n\r\n insertPopoverContainer(campaignManagedDateContainerId);\r\n const tooltipProps = {\r\n parentView: view,\r\n popoverId: 'campaign-managed-date-tooltip-id',\r\n target: event.currentTarget,\r\n show: true,\r\n onClose: dismissCampaignManagedDateCallout,\r\n onMouseLeave: dismissCampaignManagedDateCallout,\r\n closeButton: false,\r\n placement,\r\n focusLockContent: true,\r\n content: (\r\n <>\r\n
\r\n {i18n.getString('CampaignManagedDate_Tooltip')}\r\n
\r\n \r\n ),\r\n };\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(campaignManagedDateContainerId)\r\n );\r\n};\r\n\r\nexport const hideCampaignManagedDateTooltip = ({ event, view }) => {\r\n if ($(event.relatedTarget).closest('#campaign-managed-date-tooltip-id').length === 0) {\r\n view.trigger('closePopup');\r\n }\r\n};\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport URI from 'urijs';\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { showLabelsPopup, filterOnLabelClick, navigateToManagePage } from '@bingads-webui-campaign/labels';\r\nimport { showQualityScoreDetail } from '@bingads-webui-campaign/campaignui-common-columns';\r\nimport { DeliveryStatusPopupFactory, showRejectionReasons, registerCountryListEvent } from '@bingads-webui-campaign/delivery-status-popup-factory';\r\nimport { getEditorialReasonsTemplate } from '@bingads-webui-campaign/rsa-ad-customizer-attribute-column';\r\nimport { updateGridQuery, appendScopeParameter, setUpErrorHandling, handleShowRejectionReasonEnter, handleShowRejectionReasonLeave } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { pgridFactory } from '@bingads-webui-campaign/pgrid-factory';\r\nimport { PageReady } from '@bingads-webui/page-ready';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport { getRoutePathById, allSiteMap } from '@bingads-webui-react/with-site-map';\r\n\r\nimport { getAdGroupBidLandscapeInitializer, getAdGroupBidLandscapeInitializerWebpack } from '../index';\r\nimport { hideCampaignManagedDateTooltip, renderCampaignManagedDateTooltip } from './tooltips/campaign-managed-date-tooltip';\r\n\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab');\r\nconst commonI18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ads-tab/common');\r\nconst { handleSortChange } = globalContext.require('campaignui/feature/bingadsgrid/service/state-manager-helper');\r\nconst legacyGlobalI18n = globalContext.require('$/i18n!legacy/global');\r\nconst CopyPaste = globalContext.require('module/view/bulkEdit/copyPaste');\r\nconst Hotkeys = globalContext.require('component/hotkeys/index');\r\nconst instrumentation = globalContext.requireDefault('campaignui/feature/instrumentation/index');\r\n\r\nconst permissions = appConfig.get('Permissions');\r\n\r\nexport class AdGroupsGrid extends DeterministicWrapperView {\r\n viewFactory({\r\n deps,\r\n filterService,\r\n getGridConfig,\r\n getPlugins,\r\n preferenceConfig,\r\n router,\r\n scope,\r\n isForVNext = false,\r\n currentCampaign,\r\n pageName,\r\n preexecuteFlag = false,\r\n }) {\r\n this.instrumentation = instrumentation;\r\n this.gridRemoved = false;\r\n this.currentCampaign = currentCampaign;\r\n const gridConfig = getGridConfig(this);\r\n\r\n this.gridName = gridConfig.name;\r\n this.deps = deps;\r\n this.isForVNext = isForVNext;\r\n this.filterService = filterService;\r\n this.scope = scope;\r\n this.router = router;\r\n this.grid = pgridFactory({\r\n gridConfig,\r\n plugins: getPlugins(this),\r\n preferenceConfig,\r\n });\r\n\r\n this.rejectionPopupContainerSelector = '#rejectionContainer';\r\n this.popoverId = 'delivery-status-popup-callout';\r\n this.pageName = pageName;\r\n this.preexecuteFlag = preexecuteFlag;\r\n this.isMCCLabelEnabled = permissions ? permissions.IsAccountLabelsEnabled : false;\r\n\r\n if (!(permissions.dynamic && permissions.dynamic.AdGroupsPageDFMV2)) {\r\n // If DFMv2 is disabled, we need to add the error handler for dataSource\r\n setUpErrorHandling({\r\n i18n,\r\n scope,\r\n gridView: this,\r\n dataSource: gridConfig.dataSource,\r\n });\r\n }\r\n\r\n if (isForVNext) {\r\n this.filterService.on('filter-state-changed', () => {\r\n if (!this.gridRemoved) {\r\n const oldQuery = _.result(this.grid.gridView.get('query'), 'filter');\r\n const newQuery = _.result(this.filterService.getCombinedFilter(), 'query');\r\n // If filter has not changed, do not update grid query\r\n if (!_.isEqual(oldQuery, newQuery)) {\r\n updateGridQuery(\r\n this.grid.gridView,\r\n this.filterService.getCombinedFilter(), true\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.grid.gridView.on('willUpdate', (changes) => {\r\n handleSortChange(changes, this.grid.gridView, gridConfig.name);\r\n });\r\n\r\n this.grid.gridView.on('didUpdate', () => {\r\n this.gridDidUpdateHandler();\r\n });\r\n\r\n this.grid.gridView.once('didReload', () => {\r\n this.grid.gridView.once('didRedraw', () => {\r\n PageReady.pageIsReady(this.pageName);\r\n }, this);\r\n });\r\n\r\n this.grid.pagination.on('change:page-number', (pageNumber) => {\r\n this.setPageNumberToState(pageNumber);\r\n });\r\n\r\n if (!this.preexecuteFlag && permissions.IsCampaignAdGroupCopyPasteEnabled && this.grid.config.name === 'summary_tab_ad_group') {\r\n const bulkEditGridOptions = {\r\n filterService: this.filterService,\r\n gridView: this.grid.gridView,\r\n pgridPlugins: this.grid,\r\n isForVNext: this.isForVNext,\r\n };\r\n\r\n Hotkeys.on('copy', CopyPaste.copy.bind(CopyPaste, 'adgroup', bulkEditGridOptions));\r\n if (this.isForVNext) {\r\n Hotkeys.on('paste', this.grid.paste.onClick);\r\n } else {\r\n Hotkeys.on('paste', CopyPaste.paste.bind(CopyPaste, bulkEditGridOptions));\r\n }\r\n\r\n Hotkeys.setup();\r\n }\r\n\r\n return this.grid.gridView;\r\n }\r\n\r\n gridDidUpdateHandler() {\r\n const data = this.grid.gridView.dataSource.rawData;\r\n setTimeout(() => {\r\n if (data) {\r\n const count = data['@ns.unfiltered.count'];\r\n this.setCreateBtnDisabled(this.shouldDisableCreateBtn(count));\r\n }\r\n });\r\n }\r\n\r\n setPageNumberToState(number) {\r\n state.set('pgridPageNumber', _.defaults({\r\n [this.gridName]: number,\r\n }, state.get('pgridPageNumber') || {}));\r\n }\r\n\r\n setCreateBtnDisabled(shouldDisableCreateBtn) {\r\n if (shouldDisableCreateBtn) {\r\n $('#button-adgroup-create').attr('disabled', 'disabled');\r\n } else {\r\n $('#button-adgroup-create').prop('disabled', false);\r\n }\r\n }\r\n\r\n shouldDisableCreateBtn(count) {\r\n const campaign = this.currentCampaign;\r\n const CurrentAccount = appConfig.get('CurrentAccount');\r\n const { IsReadOnlyUser } = permissions;\r\n // Disable create button when -\r\n // 1. Current campaign is smart shopping campaign and has one ad group\r\n // 2. Current campaign is LinkedIn campaign and has one ad group\r\n if (this.scope.campaignId != null && campaign &&\r\n (campaign.CampaignType === 'LinkedIn' || campaign.CampaignSubType === 'ShoppingSmartAds' || campaign.CampaignSubType === 12)) {\r\n return count >= 1;\r\n }\r\n return !!(IsReadOnlyUser || (CurrentAccount && CurrentAccount.Status === 32));\r\n }\r\n\r\n remove() {\r\n if (!this.preexecuteFlag && permissions.IsCampaignAdGroupCopyPasteEnabled && this.grid.config.name === 'summary_tab_ad_group') {\r\n Hotkeys.reset();\r\n }\r\n this.gridRemoved = true;\r\n this.setPageNumberToState(0);\r\n return super.remove();\r\n }\r\n\r\n renderTrunk() {\r\n if (this.isForVNext) {\r\n this.filterService.initializeCombinedFilterPromise.then(() => {\r\n if (!this.gridRemoved) {\r\n updateGridQuery(\r\n this.grid.gridView,\r\n this.filterService.getCombinedFilter(), true\r\n );\r\n }\r\n });\r\n }\r\n super.renderTrunk();\r\n }\r\n\r\n get events() {\r\n const events = {\r\n 'click .labels-cell-container #see-all': 'onLabelsRowClicked',\r\n 'click .labels-cell-item': (event) => {\r\n const key = this.grid.gridView.keyOfElement(event.target);\r\n const targetEntity = this.grid.gridView.itemWithKey(key);\r\n filterOnLabelClick(\r\n event,\r\n targetEntity.Labels,\r\n this.grid.gridView,\r\n this.filterService,\r\n this.isMCCLabelEnabled\r\n );\r\n },\r\n 'click .manage-labels-button': () => navigateToManagePage(this.router),\r\n 'click .bidlandscape_icon': 'showBidLandscape',\r\n 'click .quality-score-detail': 'showQualityScoreDetails',\r\n 'click .delivery_status_with_reject_reasons': 'showRejectionReason',\r\n 'mouseenter .dashed-date-entry': event => renderCampaignManagedDateTooltip({\r\n event, view: this.grid.gridView, i18n, router: this.router, scope: this.scope,\r\n }),\r\n 'mouseleave .dashed-date-entry': event => hideCampaignManagedDateTooltip({ event, view: this.grid.gridView }),\r\n };\r\n\r\n if (this.isForVNext) {\r\n events['mouseenter .delivery_status_with_reject_reasons'] = permissions.IsDeferredHoveringPopupEnabled ? _.partial(handleShowRejectionReasonEnter, this, this.showRejectionReason) : 'showRejectionReason';\r\n events['mouseleave .delivery_status_with_reject_reasons'] = permissions.IsDeferredHoveringPopupEnabled ? _.partial(handleShowRejectionReasonLeave, null, _.noop) : null;\r\n events['mouseleave .grid-column-Delivery'] = 'hideRejectionReason';\r\n\r\n events['click .editorial_delivery_status_with_inline_appeals'] = 'showEditorialRejectionReason';\r\n events['mouseenter .editorial_delivery_status_with_inline_appeals'] = 'showEditorialRejectionReason';\r\n }\r\n\r\n return events;\r\n }\r\n\r\n getTargetEnity(event) {\r\n const key = this.grid.gridView.keyOfElement(event.target);\r\n\r\n return this.grid.gridView.itemWithKey(key);\r\n }\r\n\r\n onLabelsRowClicked(event) {\r\n const targetEntity = this.getTargetEnity(event);\r\n this.grid.gridView.trigger('willShowLabelsPopup');\r\n\r\n showLabelsPopup({\r\n labels: targetEntity.Labels,\r\n entityType: 'AdGroup',\r\n entityName: targetEntity.Name,\r\n container: this.isForVNext ? $('.grid-and-disclaim-container') : this.$el,\r\n event,\r\n router: this.router,\r\n i18n,\r\n grid: this.grid,\r\n filterService: this.filterService,\r\n isMCCLabelEnabled: this.isMCCLabelEnabled,\r\n });\r\n if (this.isForVNext) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n showEditorialRejectionReason(event) {\r\n const key = this.grid.gridView.keyOfElement(event.target);\r\n const selectedItem = this.grid.gridView.itemWithKey(key);\r\n const editorialStatus = $(event.target).parent('.delivery-info').data('status');\r\n const attributeId = $(event.target).data('entityid');\r\n const valueLevel = $(event.target).parent('.delivery-info').data('valuelevel');\r\n const activity = instrumentation && instrumentation.editorial && instrumentation.editorial.create().toggleCountryList.create();\r\n\r\n showRejectionReasons({\r\n event,\r\n i18n,\r\n deliveryStatusDetails: [editorialStatus],\r\n getCustomTemplate: _.partial(getEditorialReasonsTemplate, {\r\n event,\r\n ajaxOptions: {\r\n host: appConfig.get('odata.url'),\r\n path: appConfig.get('odata.multipart_path'),\r\n oDataToken: appConfig.get('odata.token'),\r\n params: {\r\n campaign_id: selectedItem.Campaign.Id,\r\n account_id: appConfig.get('CurrentAccount').Id,\r\n customer_id: appConfig.get('CurrentCustomer').Id,\r\n adgroup_id: selectedItem.Id,\r\n },\r\n sessionId: appConfig.get('Omniture').SessionId,\r\n },\r\n instrumentation,\r\n i18n,\r\n attributeId,\r\n deliveryStatus: editorialStatus,\r\n valueLevel,\r\n permissions,\r\n commonI18n,\r\n }),\r\n useCustomTemplate: () => true,\r\n popoverId: this.popoverId,\r\n isForVNext: this.isForVNext,\r\n view: this.grid.gridView,\r\n afterRender: popup => registerCountryListEvent(popup.$el, activity, { id: selectedItem.Id, entity: 'ad group customizer attribute' }),\r\n });\r\n }\r\n\r\n showRejectionReason(event) {\r\n const actionLinks = [];\r\n if (this.isForVNext) {\r\n const entity = this.getTargetEnity(event);\r\n if (entity &&\r\n entity.DeliveryStatusDetails &&\r\n _.intersection(entity.DeliveryStatusDetails, ['NoEligibleAds', 'NoEligibleKeywords']).length > 0) {\r\n const resolveURL = (url) => {\r\n const uri = new URI(url);\r\n appendScopeParameter(uri, this.scope);\r\n uri.addQuery('campaignId', entity.Campaign.Id);\r\n uri.addQuery('adGroupId', entity.Id);\r\n uri.addQuery('isOpenCreatePanel', true);\r\n return uri.toString();\r\n };\r\n\r\n if (entity.DeliveryStatusDetails.includes('NoEligibleAds')) {\r\n const url = this.router.getRoutePathById('ads');\r\n actionLinks.NoEligibleAds = resolveURL(url);\r\n }\r\n if (entity.DeliveryStatusDetails.includes('NoEligibleKeywords')) {\r\n const url = this.router.getRoutePathById('keywords');\r\n actionLinks.NoEligibleKeywords = resolveURL(url);\r\n }\r\n }\r\n\r\n if (entity && entity.DeliveryStatusDetails &&\r\n entity.DeliveryStatusDetails.includes('ShoppingCampaignNoOffersPresent')) {\r\n // use all site map to get merchant center url for different scopes\r\n const url = getRoutePathById(allSiteMap, 'merchant-center');\r\n const uri = new URI(url);\r\n appendScopeParameter(uri, this.scope);\r\n actionLinks.ShoppingCampaignNoOffersPresent = uri.toString();\r\n }\r\n }\r\n\r\n const view = new DeliveryStatusPopupFactory({ grid: this.grid, i18n });\r\n view.showRejectionPopup({\r\n event,\r\n actionLinks,\r\n containerSelector: this.rejectionPopupContainerSelector,\r\n view: this,\r\n popoverId: this.popoverId,\r\n instrumentation,\r\n inContextRepairRecommedationType: 'adGroup',\r\n });\r\n }\r\n\r\n hideRejectionReason(e) {\r\n if ($(e.relatedTarget).closest(`#${this.popoverId}`).length === 0) {\r\n this.grid.gridView.trigger('closeDeliveryStatusPopup');\r\n }\r\n }\r\n\r\n showBidLandscape(event) {\r\n const targetEntity = this.getTargetEnity(event);\r\n\r\n const initializer = this.isForVNext\r\n ? () => getAdGroupBidLandscapeInitializerWebpack(\r\n true,\r\n this.deps.bidLandscapeDependencies\r\n )\r\n : getAdGroupBidLandscapeInitializer;\r\n\r\n initializer()\r\n .then(({ openAdGroupBidLandscape }) =>\r\n openAdGroupBidLandscape({\r\n event,\r\n scope: this.scope,\r\n adgroup: targetEntity,\r\n applyCallback: (updates) => {\r\n const newAdGroup = _.defaults({ ...updates }, targetEntity);\r\n\r\n this.grid.gridView.trigger('didEdit', newAdGroup);\r\n },\r\n applyBlockerEl: this.grid.gridView.$el.parent(),\r\n container: this.$el,\r\n isForVNext: this.isForVNext,\r\n }));\r\n }\r\n\r\n showQualityScoreDetails(event) {\r\n const targetEntity = this.getTargetEnity(event);\r\n\r\n showQualityScoreDetail(event, targetEntity.QualityScore, 'qsContainer', legacyGlobalI18n); // qsContainer is the id from qsContainerTemplate\r\n }\r\n\r\n get className() { return 'ad-groups-grid'; }\r\n}\r\n","import _ from 'underscore';\r\nimport { AlertHelper } from '@bingads-webui-campaign/alert-helper';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\n\r\nconst jsData = globalContext.require('component/js-data-campaign/index');\r\nconst i18nErrors = globalContext.require('component/api-errors-campaign/index');\r\n\r\n// complex fields will impact value of other fields\r\n// or read and write of fields are different schemes\r\nconst complexFields = ['EndDate', 'Status', 'AdGroupPercentCpcBid', 'AdGroupCommissionRate'];\r\n\r\nexport function InlineEditableSave({\r\n view,\r\n i18n,\r\n fieldName,\r\n updated,\r\n editorView,\r\n editorViewCallbackAfterUpdate,\r\n isDateType = false,\r\n}) {\r\n const toUpdate = _.pick(updated, 'Id', fieldName);\r\n\r\n // grid load will get date with ISO format: 2018-04-05T00:00:00.000Z,\r\n // we use bulk upsert api to do inline update, but bulk upsert cannot use the ISO format\r\n // as MT seems doing some sepcial transformation with this format\r\n // to fix this, we upsert with a MM/dd/yyyy format, but update grid with ISO format\r\n if (isDateType) {\r\n toUpdate[fieldName] = updated[fieldName] ?\r\n i18n.formatDate(new Date(updated[fieldName]), { raw: 'MM/dd/yyyy', timeZone: 'UTC' }) :\r\n null;\r\n }\r\n\r\n toUpdate.Campaign = { Id: updated.Campaign.Id };\r\n let blockerContainer;\r\n\r\n if (view.isForVNext && view.grid.config.plugins.uiBlocker.el) {\r\n blockerContainer = view.grid.config.plugins.uiBlocker.el;\r\n } else {\r\n blockerContainer = view.grid.gridView.$el;\r\n }\r\n\r\n jsData.AdGroup\r\n .update(updated.Id, toUpdate, { adapter: 'bulk' })\r\n .finally(withUiBlock(blockerContainer))\r\n .then(() => {\r\n if (editorViewCallbackAfterUpdate && _.isFunction(editorViewCallbackAfterUpdate)) {\r\n editorViewCallbackAfterUpdate();\r\n }\r\n\r\n if (_.contains(complexFields, fieldName)) {\r\n view.grid.gridView.refresh(true);\r\n } else {\r\n view.grid.gridView.trigger('didEdit', updated);\r\n }\r\n })\r\n .catch((response) => {\r\n const errorMapping = {};\r\n const unexpectedError = i18n.getString('ErrorNumber_-1');\r\n\r\n if (!response || !response.errors) {\r\n errorMapping[fieldName] = unexpectedError;\r\n } else {\r\n const errors = i18nErrors.getBulkApiErrors(response.errors, 'newadgroup');\r\n\r\n if (!errors || !errors[0] || !errors[0].message) {\r\n errorMapping[fieldName] = unexpectedError;\r\n } else {\r\n errorMapping[fieldName] = errors[0].message;\r\n }\r\n }\r\n\r\n if (_.isFunction(editorView.setErrors)) {\r\n editorView.setErrors(errorMapping);\r\n } else {\r\n const alertHelper = new AlertHelper({ i18n });\r\n alertHelper.showError(errorMapping[fieldName]);\r\n }\r\n });\r\n}\r\n","import { AdGroupCashbackPercentColumnFactory } from '@bingads-webui-campaign/personalized-offer-columns';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\n\r\nexport const AdGroupCashbackPercentColumn = AdGroupCashbackPercentColumnFactory({\r\n updater: InlineEditableSave,\r\n});\r\n","import { AdGroupCashbackScopeColumnFactory } from '@bingads-webui-campaign/personalized-offer-columns';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\n\r\nexport const AdGroupCashbackScopeColumn = AdGroupCashbackScopeColumnFactory({\r\n updater: InlineEditableSave,\r\n});\r\n","import { AdGroupCouponColumnFactory } from '@bingads-webui-campaign/personalized-offer-columns';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\n\r\nexport const AdGroupCouponColumn = AdGroupCouponColumnFactory({\r\n updater: InlineEditableSave,\r\n});\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { DeterministicView } from '@bingads-webui/deterministic-view';\r\nimport { LanguageSelector } from '@bingads-webui-campaign/language-selector';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { AdGroup } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { customizedInlineEditTemplate } from '@bingads-webui-campaign/summary-grid-helper';\r\n\r\nconst config = globalContext.require('component/config/index');\r\nconst Permissions = config.get('Permissions');\r\n\r\nfunction getLanguages() {\r\n let languages = AdGroup.properties.Language.enum;\r\n if (!Permissions.IsSimplifiedChineseLanguageEnabledInMultipleLanguage) {\r\n languages = _.without(languages, 'SimplifiedChinese');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase1Enabled) {\r\n languages = _.without(languages, 'Greek', 'Polish', 'Bulgarian', 'Croatian', 'Czech', 'Estonian', 'Hungarian', 'Latvian', 'Lithuanian', 'Maltese', 'Romanian', 'Slovak', 'Slovenian');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase2Enabled) {\r\n languages = _.without(languages, 'Turkish', 'Serbian', 'Bosnian', 'Albanian', 'Macedonian', 'Icelandic');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase6Enabled) {\r\n languages = _.without(languages, 'Hebrew', 'Arabic', 'Russian');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase2JapanEnabled) {\r\n languages = _.without(languages, 'Japanese');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase9Enabled) {\r\n languages = _.without(languages, 'Hindi', 'Malay', 'Thai', 'Indonesian', 'Tagalog');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase9VIEnabled) {\r\n languages = _.without(languages, 'Vietnamese');\r\n }\r\n\r\n // make 'All' the first language\r\n languages = _.without(languages, 'All', 'None');\r\n\r\n if (Permissions.IsDomesticSimplifiedChineseEnabled) {\r\n languages = ['SimplifiedChinese'];\r\n }\r\n\r\n return languages;\r\n}\r\n\r\nexport class LanguageInlineEditView extends DeterministicView {\r\n initialize({ selectedLanguage, i18n, campaignHasLanguage }) {\r\n super.initialize({ selectedLanguage, i18n });\r\n\r\n this.options = {\r\n languages: getLanguages(),\r\n i18n,\r\n withInheritOption: campaignHasLanguage,\r\n selectedLanguage,\r\n i18nStrings: {\r\n SaveWarning: '',\r\n Description: i18n.getString('AdGroup_MarketLanguage'),\r\n },\r\n };\r\n this.languageSelector = new LanguageSelector(this.options);\r\n this.setChild('subEditView', this.languageSelector);\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .btn-primary': 'save',\r\n 'click .btn-default': 'cancel',\r\n };\r\n }\r\n\r\n get template() {\r\n return ({ model }) => customizedInlineEditTemplate({ model, i18n: this.options.i18n });\r\n }\r\n\r\n save() {\r\n this.trigger('save', { selectedLanguage: this.languageSelector.getSelectedLanguage() });\r\n }\r\n\r\n cancel() {\r\n this.trigger('close');\r\n }\r\n\r\n setErrors(errors) {\r\n if (errors && !_.isEmpty(errors) && _.isObject(errors)) {\r\n $('.grid-error-list').removeClass('hide');\r\n $('.grid-error-message').html(errors[_.keys(errors)[0]]);\r\n } else {\r\n $('.grid-error-list').addClass('hide');\r\n }\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport { LanguageColumn as LanguageColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { LanguageInlineEditView } from './inline-editable/language-view';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\n\r\n\r\nexport class LanguageColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n i18n, scope, view, isForVNext,\r\n }) {\r\n const title = i18n.getString('ColumnName_Language');\r\n const appConfig = globalContext.require('component/config/index');\r\n const permissions = appConfig.get('Permissions');\r\n const isDSAMixedModeCampaignEnabled = _.result(permissions, 'IsDSAMixedModeCampaignEnabled', false);\r\n\r\n super({\r\n ...LanguageColumnConfig,\r\n title,\r\n editable: true,\r\n type: 'string',\r\n enableEdit: item => this.shouldEnableInlineEdit(item, isDSAMixedModeCampaignEnabled),\r\n helpId: 'pop_BA_Settings_Language',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.scope = scope;\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n shouldEnableInlineEdit(item, isDSAMixedModeCampaignEnabled) {\r\n const adGroupType = item.AdGroupType;\r\n\r\n return item.Campaign && item.Campaign.CampaignType &&\r\n // currently only default type is inline editable\r\n item.Campaign.CampaignType === 'Default' &&\r\n // For users enabled mixed mode campaign pilot,\r\n // we should check whether current ad group is dynamic ad group\r\n ((isDSAMixedModeCampaignEnabled && adGroupType !== 'SearchDynamic') || !isDSAMixedModeCampaignEnabled);\r\n }\r\n\r\n pickProperty(item) {\r\n if (item.$total) {\r\n return ' ';\r\n }\r\n\r\n return item.Language ?\r\n this.i18n.getString(`Language_${item.Language}`) :\r\n this.i18n.getString('Language_Inherit');\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const languageEditorView = new LanguageInlineEditView({\r\n selectedLanguage: item.Language,\r\n i18n: this.i18n,\r\n campaignHasLanguage:\r\n item.Campaign && item.Campaign.Languages && item.Campaign.Languages.length > 0,\r\n });\r\n\r\n languageEditorView.on('save', ({ selectedLanguage }) => {\r\n const updated = _.extendOwn({}, item, { Language: selectedLanguage });\r\n\r\n return InlineEditableSave({\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'Language',\r\n updated,\r\n editorView: languageEditorView,\r\n editorViewCallbackAfterUpdate: () => {\r\n languageEditorView.trigger('close');\r\n },\r\n });\r\n });\r\n const groupClass = `grid-group-${_.result(this.config, 'group', 'other')}`;\r\n const editorView = new GridCustomizedPopupEditor({\r\n editorView: languageEditorView.render(),\r\n cellPosition: this.isForVNext ? newPosition : position,\r\n renderBelow: false,\r\n className: `adgroup-grid-inline-edit-popup grid-popupeditor ${groupClass}`,\r\n parentContainerSelector: this.isForVNext ? '.grid-and-disclaim-container' : null,\r\n });\r\n\r\n return editorView.render();\r\n }\r\n}\r\n","import * as PopupEditor from '@bingads-webui/popup-editor';\r\nimport { AdGroup } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { InlineEditableSave } from './save';\r\n\r\n\r\nexport function InlineEditableColumnPrompt({\r\n position, item, view, i18n, fieldName, saveModel = null, customValidators = null,\r\n adGroupSchema = AdGroup, customClass, customHint,\r\n}) {\r\n let saveModelCallback;\r\n\r\n if (saveModel) {\r\n saveModelCallback = saveModel;\r\n } else {\r\n saveModelCallback = (updated, editorView) =>\r\n InlineEditableSave({\r\n view,\r\n i18n,\r\n fieldName,\r\n updated,\r\n editorView,\r\n editorViewCallbackAfterUpdate: () => editorView.trigger('save', updated),\r\n });\r\n }\r\n\r\n PopupEditor.prompt({\r\n position,\r\n i18n,\r\n schema: adGroupSchema,\r\n model: item,\r\n fields: [fieldName],\r\n hasLabels: false,\r\n template: 'inline',\r\n customValidators,\r\n saveModel: saveModelCallback,\r\n parentContainerSelector: '.grid-and-disclaim-container',\r\n customClass,\r\n customHint,\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { adGroupMetricCategoriesFactory } from '@bingads-webui/custom-columns-shared-config';\r\nimport {\r\n BidStrategyNameColumn,\r\n ColumnConversions,\r\n ColumnViewThroughConversions,\r\n DeliveryColumn,\r\n ColumnTopImpressionRate,\r\n ColumnAbsoluteTopImpressionRate,\r\n ColumnConversionsCredit,\r\n ColumnViewThroughConversionsCredit,\r\n} from '@bingads-webui-campaign/campaignui-common-columns';\r\nimport { RSAAdCustomizerAttributeColumn } from '@bingads-webui-campaign/rsa-ad-customizer-attribute-column';\r\nimport { LabelsColumn } from '@bingads-webui-campaign/labels';\r\nimport { ColumnsConfigBuilder } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { AdGroupCashbackPercentColumn } from './attributes/ad-group-cashback-percent-column';\r\nimport { AdGroupCashbackScopeColumn } from './attributes/ad-group-cashback-scope-column';\r\nimport { AdGroupCouponColumn } from './attributes/ad-group-coupon-column';\r\nimport { LanguageColumn } from './attributes/language';\r\nimport { AdGroupColumn } from './attributes/ad-group';\r\nimport { CampaignColumn } from './attributes/campaign';\r\nimport { BidStrategyTypeColumn } from './attributes/bid-strategy-type';\r\nimport { SearchBidColumn } from './attributes/search-bid-column';\r\nimport { CpmBidColumn } from './attributes/cpm-bid-column';\r\nimport { CpvBidColumn } from './attributes/cpv-bid-column';\r\nimport { PercentCpcBidColumn } from './attributes/percent-cpc-bid-column';\r\nimport { CommissionRateColumn } from './attributes/pay-per-stay-bid-column';\r\nimport { QualityScoreColumn } from './attributes/quality-score';\r\nimport { MediumColumn } from './attributes/medium';\r\nimport { AdGroupIdColumn } from './attributes/ad-group-id';\r\nimport { StartDateColumn } from './attributes/start-date';\r\nimport { EndDateColumn } from './attributes/end-date';\r\nimport { StatusIconColumn } from './attributes/status-icon';\r\nimport { AdGroupTypeColumn } from './attributes/ad-group-type';\r\nimport { CustomParametersColumn, FinalUrlSuffixColumn, TrackingTemplateColumn } from './attributes/tracking-template-columns';\r\nimport {\r\n getLockedBidColumns, getUnlockedBidColumns, isBiddingSchemeUpdated,\r\n getSelectedBidColumns, columnProcessorBeforeSetRecordGetter\r\n} from './dynamic-column-config-utils';\r\n\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab');\r\nconst i18nErrors = globalContext.require('component/api-errors-campaign/index');\r\nconst { Columns, SelectedColumns } = globalContext.require('component/bingads-grid/service/column-chooser-preferences');\r\nconst { LegacyColumns, LegacySelectedColumns } = globalContext.require('component/bingads-grid/service/legacy-column-chooser-preferences');\r\nconst { CustomColumns } = globalContext.require('component/bingads-grid/service/custom-column-preferences');\r\nconst config = globalContext.require('component/config/index');\r\nconst { LegacyGridFlag } = globalContext.require('component/bingads-grid/service/legacy-grid-flag-preferences');\r\nconst jsData = globalContext.require('component/js-data-campaign/index');\r\nconst Permissions = config.get('Permissions');\r\nlet builder = null;\r\nlet campaignIdInLastBuilder;\r\nlet lastGlobalCampaignTypeFilter;\r\n\r\nconst {\r\n IsViewThroughConversionEnabled,\r\n IsAudienceSOVEnabled,\r\n IsDSAMixedModeCampaignEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsPersonalizedOffersEnabled,\r\n IsPersonalizedOffersV3Enabled,\r\n IsVideoAdsForCampaignEnabled,\r\n IsManualCpmEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n IsPersonalizedOffersV4Enabled,\r\n dynamic = {},\r\n} = Permissions;\r\n\r\nconst {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n HotelCampaign: IsHotelCampaignEnabled,\r\n XandrVideoCampaigns,\r\n CPSReporting,\r\n InstallPerformanceColumns,\r\n ConvValueRules: isConversionValueRuleColumnsEnabled,\r\n} = dynamic;\r\n\r\nconst usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\nconst isPortfolioBidStrategyEnabled = _.result(Permissions.dynamic, 'PortfolioBidStrategy');\r\n\r\nconst allBidColumns = [\r\n SearchBidColumn,\r\n CpvBidColumn,\r\n CpmBidColumn,\r\n PercentCpcBidColumn,\r\n CommissionRateColumn,\r\n];\r\n\r\nfunction getBuilder({ campaignId, currentCampaign, globalCampaignTypeFilter }) {\r\n // initialize column config if\r\n // 1: not initialize yet.\r\n // 2: scope has changed from account to campaign level or campaign to account level\r\n // 3: global campaign filter updates\r\n if (builder === null || campaignId !== campaignIdInLastBuilder ||\r\n lastGlobalCampaignTypeFilter !== globalCampaignTypeFilter ||\r\n isBiddingSchemeUpdated({ campaignId, currentCampaign })) {\r\n campaignIdInLastBuilder = campaignId;\r\n lastGlobalCampaignTypeFilter = globalCampaignTypeFilter;\r\n let lockedColumns = [\r\n AdGroupColumn,\r\n ];\r\n\r\n if (!campaignId) {\r\n lockedColumns.push(CampaignColumn);\r\n }\r\n\r\n lockedColumns = lockedColumns.concat(getLockedBidColumns({\r\n campaignId,\r\n currentCampaign,\r\n allBidColumns,\r\n IsVideoAdsForCampaignEnabled: IsVideoAdsForCampaignEnabled || XandrVideoCampaigns,\r\n IsManualCpmEnabled,\r\n IsHotelCampaignEnabled,\r\n config,\r\n globalCampaignTypeFilter,\r\n }));\r\n\r\n builder = new ColumnsConfigBuilder({ Permissions })\r\n .addCategory('Attributes', category => category.addColumns(_.compact(_.union(lockedColumns, [\r\n DeliveryColumn,\r\n isPortfolioBidStrategyEnabled && BidStrategyNameColumn,\r\n BidStrategyTypeColumn,\r\n ...getUnlockedBidColumns({\r\n campaignId,\r\n currentCampaign,\r\n allBidColumns,\r\n IsVideoAdsForCampaignEnabled: IsVideoAdsForCampaignEnabled || XandrVideoCampaigns,\r\n IsManualCpmEnabled,\r\n IsHotelCampaignEnabled,\r\n config,\r\n globalCampaignTypeFilter,\r\n }),\r\n QualityScoreColumn,\r\n MediumColumn,\r\n AdGroupIdColumn,\r\n StartDateColumn,\r\n EndDateColumn,\r\n Permissions.IsCampaignMultipleLanguageEnabled && LanguageColumn,\r\n TrackingTemplateColumn,\r\n CustomParametersColumn,\r\n FinalUrlSuffixColumn,\r\n LabelsColumn,\r\n IsPersonalizedOffersEnabled && !IsPersonalizedOffersV4Enabled\r\n ? AdGroupCashbackPercentColumn : null,\r\n IsPersonalizedOffersEnabled && !IsPersonalizedOffersV4Enabled\r\n ? AdGroupCashbackScopeColumn : null,\r\n IsPersonalizedOffersV3Enabled && !IsPersonalizedOffersV4Enabled\r\n ? AdGroupCouponColumn : null,\r\n IsDSAMixedModeCampaignEnabled && AdGroupTypeColumn,\r\n ]))))\r\n .addPerformanceCategoryForAdGroups({\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n })\r\n .addConversionsCategory({\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n withPartialConversions: IsPartialConversionsEnabled,\r\n IsColumnConversionEnabled,\r\n isCPSEnabled: CPSReporting,\r\n isInstallColumnsEnabled: InstallPerformanceColumns,\r\n isConversionValueRuleColumnsEnabled,\r\n })\r\n .addCompetitiveCategoryForCampaignOrAdGroups({\r\n IsAudienceSOVEnabled,\r\n });\r\n\r\n if (Permissions.IsCallMeteringAllowed) {\r\n builder.addCallDetailsCategory();\r\n }\r\n\r\n builder\r\n .setLockedColumns([\r\n StatusIconColumn,\r\n ...lockedColumns,\r\n ])\r\n .setSelectedColumns(_.compact([\r\n IsDSAMixedModeCampaignEnabled && AdGroupTypeColumn,\r\n DeliveryColumn,\r\n isPortfolioBidStrategyEnabled && BidStrategyNameColumn,\r\n BidStrategyTypeColumn,\r\n ...getSelectedBidColumns({\r\n allBidColumns,\r\n IsVideoAdsForCampaignEnabled: IsVideoAdsForCampaignEnabled || XandrVideoCampaigns,\r\n IsManualCpmEnabled,\r\n }),\r\n LabelsColumn,\r\n QualityScoreColumn,\r\n MediumColumn,\r\n AdGroupIdColumn,\r\n StartDateColumn,\r\n EndDateColumn,\r\n Permissions.IsCampaignMultipleLanguageEnabled && LanguageColumn,\r\n TrackingTemplateColumn,\r\n CustomParametersColumn,\r\n FinalUrlSuffixColumn,\r\n usePartialConversions && ColumnConversionsCredit,\r\n !usePartialConversions && ColumnConversions,\r\n usePartialConversions && ColumnViewThroughConversionsCredit,\r\n !usePartialConversions && ColumnViewThroughConversions,\r\n IsAvgPositionDeprecationPhase1Enabled && ColumnTopImpressionRate,\r\n IsAvgPositionDeprecationPhase1Enabled && ColumnAbsoluteTopImpressionRate,\r\n ]));\r\n }\r\n\r\n return builder;\r\n}\r\n\r\nconst nameFromLegacy = {\r\n StatusIcon: 'Status',\r\n Name: 'AdGroup',\r\n CampaignName: 'Campaign',\r\n DeliveryStatusView: 'Delivery',\r\n DisplayBiddingStrategyType: 'BidStrategyType',\r\n 'Bidding.BroadBid': 'SearchBid',\r\n FormattedMedium: 'Medium',\r\n ID: 'AdGroupId',\r\n TrackingTemplateJson: 'TrackingTemplate',\r\n UrlCustomParametersJson: 'CustomParameters',\r\n ClickCount: 'Clicks',\r\n ImpressionCount: 'Impressions',\r\n ClickThrough: 'CTR',\r\n TotalSpendAmount: 'Spend',\r\n TotalCost: 'ClickAndPhoneSpend',\r\n ConversionCount: 'Conversions',\r\n AdGroupCallTrackingStatus: 'CallForwarding',\r\n PhoneCost: 'PhoneSpend',\r\n PhoneThroughRate: 'PTR',\r\n};\r\n\r\nexport function getColumnsConfig(options) {\r\n return getBuilder(_.defaults({}, options.scope, _.pick(options, 'currentCampaign', 'globalCampaignTypeFilter')))\r\n .getColumnsConfig(options);\r\n}\r\n\r\nexport function getColumnChooserConfig({\r\n scope, currentCampaign, filterService, isForVNext = false,\r\n globalCampaignTypeFilter,\r\n}) {\r\n let customColumnConfig;\r\n\r\n if (Permissions.IsCustomColumnsInAdGroupsSupported) {\r\n const { metricCategories, segmentCategories } = adGroupMetricCategoriesFactory(Permissions);\r\n\r\n customColumnConfig = {\r\n enabled: true,\r\n metricCategories,\r\n segmentCategories,\r\n filterService,\r\n };\r\n }\r\n\r\n const bidColumns = [\r\n 'SearchBid',\r\n 'CpvBid',\r\n 'CpmBid',\r\n 'PercentCpcBid',\r\n 'CommissionRate',\r\n ];\r\n const lockedColumns = getLockedBidColumns({\r\n campaignId: currentCampaign && currentCampaign.Id,\r\n currentCampaign,\r\n allBidColumns: bidColumns,\r\n IsVideoAdsForCampaignEnabled,\r\n IsManualCpmEnabled,\r\n IsHotelCampaignEnabled,\r\n config,\r\n globalCampaignTypeFilter,\r\n });\r\n const columnProcessorBeforeSetRecord = columnProcessorBeforeSetRecordGetter(lockedColumns);\r\n\r\n // eslint-disable-next-line max-len\r\n return _.defaults(getBuilder(_.defaults({}, scope, { currentCampaign, globalCampaignTypeFilter })).getColumnChooserConfig({\r\n i18n,\r\n patchQuery: true,\r\n Columns,\r\n SelectedColumns,\r\n LegacyColumns,\r\n LegacySelectedColumns,\r\n LegacyGridFlag,\r\n nameFromLegacy,\r\n CustomColumns,\r\n customColumnConfig,\r\n permissions: Permissions,\r\n }), {\r\n isForVNext,\r\n i18nErrors,\r\n columnProcessorBeforeSetRecord,\r\n AdCustomizerAttribute: jsData.AdCustomizerAttribute,\r\n resource: jsData.AdGroupAdCustomizerAttribute,\r\n RSAAdCustomizerAttributeColumn,\r\n enableRSAAdCustomizer: true,\r\n });\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { AdGroupColumn as AdGroupColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { InlineEditableColumnPrompt } from './inline-editable/prompt';\r\nimport adGroupTemplate from './ad-group.pug';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\n\r\nexport class AdGroupColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n i18n,\r\n scope,\r\n view,\r\n permissions,\r\n }) {\r\n super({\r\n ...AdGroupColumnConfig,\r\n title: i18n.getString('ColumnName_AdGroup'),\r\n sortable: 'Name',\r\n editable: true,\r\n type: 'string',\r\n bodyClasses: ['grid-column-AdGroup'],\r\n group: 'freezing',\r\n });\r\n\r\n this.scope = scope;\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.permissions = permissions;\r\n }\r\n\r\n pickProperty(item) {\r\n const { customerId: cid, accountId: aid, userId: uid } = this.scope;\r\n const {\r\n Id: adgid,\r\n Campaign: {\r\n Id: cmpid,\r\n CampaignType,\r\n } = {},\r\n Name: name,\r\n AdGroupType,\r\n $total,\r\n } = item;\r\n\r\n let pathName = '/campaign/vnext/keywords';\r\n if (CampaignType === 'Shopping') {\r\n pathName = '/campaign/vnext/productgroups/hierarchy';\r\n } else if (CampaignType === 'Hotel') {\r\n const IsRenameHotelToLodgingEnabled = this.permissions && this.permissions.dynamic && this.permissions.dynamic.IsRenameHotelToLodgingEnabled;\r\n if (IsRenameHotelToLodgingEnabled) {\r\n pathName = '/campaign/vnext/propertygroups/hierarchy';\r\n } else {\r\n pathName = '/campaign/vnext/hotelgroups/hierarchy';\r\n }\r\n } else if (AdGroupType === 'SearchDynamic') {\r\n pathName = '/campaign/vnext/dynamicadtargets/targets';\r\n } else if (CampaignType === 'LinkedIn') {\r\n pathName = '/campaign/vnext/ads';\r\n }\r\n\r\n const vNextHref = `${pathName}?aid=${aid}&cid=${cid}&uid=${uid}&campaignId=${cmpid}&adGroupId=${adgid}`;\r\n\r\n return {\r\n cmpid,\r\n adgid,\r\n $total,\r\n name,\r\n isForVNext: true,\r\n href: vNextHref,\r\n ariaLabel: this.i18n.getString('Click to scope to ad group {{adGroupName}}', { adGroupName: name }),\r\n };\r\n }\r\n\r\n get template() { return adGroupTemplate; }\r\n\r\n onPrompt({\r\n event, item, newPosition,\r\n }) {\r\n if ($(event.target).is('a')) {\r\n event.preventDefault();\r\n return undefined;\r\n }\r\n\r\n return InlineEditableColumnPrompt({\r\n position: newPosition,\r\n item,\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'Name',\r\n saveModel: (updated, editorView) =>\r\n InlineEditableSave({\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'Name',\r\n updated,\r\n editorView,\r\n editorViewCallbackAfterUpdate: () => {\r\n editorView.trigger('save', updated);\r\n // update wunderbar\r\n const response = [{\r\n Id: item.Id,\r\n Name: updated.Name,\r\n }];\r\n\r\n window.App.trigger('adGroupUpdated', { data: response });\r\n },\r\n }),\r\n customClass: `grid-group-${_.result(this.config, 'group', 'other')}`,\r\n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { CampaignColumn as CampaignColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport campaignTemplate from './campaign.pug';\r\n\r\nexport class CampaignColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n i18n, scope, router, isForVNext,\r\n }) {\r\n super({\r\n ...CampaignColumnConfig,\r\n title: i18n.getString('ColumnName_Campaign'),\r\n sortable: 'Campaign/Name',\r\n bodyClasses: ['grid-column-Campaign'],\r\n type: 'string',\r\n });\r\n\r\n this.i18n = i18n;\r\n this.scope = scope;\r\n this.router = router;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n const { customerId: cid, accountId: aid } = this.scope;\r\n const {\r\n Campaign: {\r\n Name: name,\r\n Id: cmpid,\r\n BaseCampaignName: baseCampaignName,\r\n } = {},\r\n } = item;\r\n\r\n const vNextHref = `/campaign/vnext/campaigns?campaignId=${cmpid}`;\r\n\r\n let ariaLabel = this.i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: name });\r\n let className = '';\r\n\r\n if (this.isForVNext && baseCampaignName) {\r\n ariaLabel = this.i18n.getString('Click to scope to experiment {{experimentName}}', { experimentName: name });\r\n className = 'experiment-name';\r\n }\r\n\r\n return {\r\n name,\r\n href: this.isForVNext ? vNextHref : this.router.getRouteTo({\r\n cid,\r\n aid,\r\n cmpid,\r\n }),\r\n cmpid,\r\n baseCampaignName,\r\n isForVNext: this.isForVNext,\r\n ariaLabel,\r\n className,\r\n };\r\n }\r\n\r\n get template() { return campaignTemplate; }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { SchemaI18n } from '@bingads-webui-universal/schema-i18n';\r\nimport { BidStrategyTypeColumn as BidStrategyTypeColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { isXandrServing } from '@bingads-webui-campaign-react/constants';\r\n\r\nimport bidStrategyTypeTemplate from './bid-strategy-type.pug';\r\n\r\nexport class BidStrategyTypeColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n const title = i18n.getString('ColumnName_BidStrategyType');\r\n\r\n super({\r\n ...BidStrategyTypeColumnConfig,\r\n title,\r\n sortable: 'DisplayBiddingStrategyType',\r\n type: 'string',\r\n helpId: 'pop_BA_CampaignGrids_BidStrategy',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.schemaI18n = new SchemaI18n({ i18n });\r\n }\r\n\r\n pickProperty(item) {\r\n let type = item.DisplayBiddingStrategyType;\r\n\r\n if (isXandrServing(_.result(item.Campaign, 'CampaignSubType'), _.result(item.Campaign, 'CampaignSettings'))) {\r\n if (type === 'ManualCpm') {\r\n type = 'ViewableCpm';\r\n } else if (type === 'ManualCpv') {\r\n type = 'Cpcv';\r\n }\r\n }\r\n\r\n return type;\r\n }\r\n\r\n template({ value }) {\r\n return bidStrategyTypeTemplate({ value, schemaI18n: this.schemaI18n });\r\n }\r\n}\r\n","/* eslint-disable no-param-reassign */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { ceil } from 'lodash';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { AdGroup } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { BiddingStrategyToRangeKey, DefaultBidCPVWarningThreshold, BiddingStrategyToPricingModel } from '@bingads-webui-campaign/audience-campaign-shared';\r\nimport { defaultMSStoreMinSuggestionBid } from '@bingads-webui-campaign-legacy/budget/shared/defaultBid';\r\nimport { isMSStoreAdsCampaign } from '@bingads-webui-campaign-react/ms-store-ads-common';\r\nimport { Alert } from '@bingads-webui-react/alert';\r\nimport { isXandrServing, isXandrVideoAdsCampaign } from '@bingads-webui-campaign-react/constants';\r\nimport { InlineEditableColumnPrompt } from './inline-editable/prompt';\r\nimport template from './bid-base-column.pug';\r\n\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst permissions = appConfig.get('Permissions');\r\n\r\nexport const commonBidStrategyListToDisableBidAmountEdit = (keepEnabled = []) => ['ManualCpc', 'ManualCpv', 'ManualCpm', 'ManualCpa', 'EnhancedCpc', 'MaxClicks', 'MaxConversions', 'TargetCpa',\r\n 'TargetRoas', 'MaxConversionValue', 'TargetImpressionShare', 'CostPerSale', 'PercentCpc', 'Commission', 'MaxReach', 'MaxImpressions'].filter(bidStrategyType => !keepEnabled.includes(bidStrategyType));\r\n\r\nexport class BidBaseColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n name, property, title, i18n, view, bidStrategyListToDisableBidAmountEdit, sortable,\r\n }) {\r\n super({\r\n name,\r\n property: property || [name, 'IsBidLandscapeAvailable', 'DisplayBiddingStrategyType'],\r\n title: title || 'Bid',\r\n sortable: sortable || name,\r\n type: 'number',\r\n helpId: `Page_CampaignGrids_${name}`,\r\n enableEdit: item =>\r\n !_.contains(bidStrategyListToDisableBidAmountEdit, item.DisplayBiddingStrategyType),\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.view = view;\r\n this.i18n = i18n;\r\n this.numberFormatter = i18n.decimalToFixedFormatter({ digits: appConfig.get('globalization.number.numberOfDigits') });\r\n this.bidStrategyListToDisableBidAmountEdit = bidStrategyListToDisableBidAmountEdit;\r\n this.defaultMSStoreMinSuggestionBid = defaultMSStoreMinSuggestionBid();\r\n }\r\n\r\n onPrompt({\r\n item, event, newPosition,\r\n }) {\r\n if ($(event.target).hasClass('bidlandscape_icon')) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n const campaignType = (item && item.Campaign) ? _.result(item.Campaign, 'CampaignType') : '';\r\n this.campaignSubType = (item && item.Campaign) ? _.result(item.Campaign, 'CampaignSubType') : '';\r\n this.campaignSettings = (item && item.Campaign) ? _.result(item.Campaign, 'CampaignSettings') : [];\r\n const useProductGroupBidRange = permissions.IsBidLessThan5CentsInShoppingCampaignEnabled && (campaignType === 'Shopping');\r\n const isHotelCampaign = campaignType === 'Hotel';\r\n const isMSStoreAdsCampaignEnabled = isMSStoreAdsCampaign(item.Campaign);\r\n let bidRangeKey;\r\n if (useProductGroupBidRange) {\r\n bidRangeKey = 'ProductGroupBidRange';\r\n if (isMSStoreAdsCampaignEnabled) {\r\n bidRangeKey = 'WindowsStoreAdsBidRange';\r\n }\r\n } else if (isHotelCampaign) {\r\n bidRangeKey = 'KeywordBidRange';\r\n if (this.name === 'PercentCpcBid' || this.name === 'CommissionRate') {\r\n bidRangeKey = `Keyword${this.name}Range`;\r\n }\r\n } else if (isXandrVideoAdsCampaign(this.campaignSubType) && isXandrServing(this.campaignSubType, this.campaignSettings)) {\r\n if (item.DisplayBiddingStrategyType === 'ManualCpv') {\r\n bidRangeKey = 'VideoViewsCPVBidRange';\r\n } else {\r\n bidRangeKey = 'VideoViewsCPMBidRange';\r\n }\r\n } else {\r\n bidRangeKey = BiddingStrategyToRangeKey[item.DisplayBiddingStrategyType] || 'KeywordBidRange';\r\n }\r\n\r\n\r\n let min = _.result(appConfig.get(bidRangeKey), 'FloorValue');\r\n const max = _.result(appConfig.get(bidRangeKey), 'CeilingValue');\r\n\r\n if (isXandrServing(this.campaignSubType, this.campaignSettings)\r\n && permissions.IsDealEnabledForMsAds\r\n && item.DealMinimumBid && item.DealMinimumBid < max) {\r\n min = _.max([min, ceil(item.DealMinimumBid, 2)]);\r\n }\r\n\r\n const currentName = (this.name === 'PercentCpcBid' || this.name === 'CommissionRate') ? `AdGroup${this.name}` : this.name;\r\n const schemaOrigin = AdGroup;\r\n const schemaCopy = {\r\n ...schemaOrigin,\r\n properties: {\r\n ...schemaOrigin.properties,\r\n [currentName]: {\r\n ...schemaOrigin.properties[currentName],\r\n maximum: null,\r\n minimum: null,\r\n },\r\n },\r\n };\r\n let errorMsg = '';\r\n const groupClass = `grid-group-${_.result(this.config, 'group', 'other')}`;\r\n this.isDefaultBidCPVAppended = false;\r\n const pricingModel = BiddingStrategyToPricingModel[item.DisplayBiddingStrategyType];\r\n const isCommissionOrPercentCpc = item && (item.DisplayBiddingStrategyType === 'Commission' || item.DisplayBiddingStrategyType === 'PercentCpc');\r\n\r\n InlineEditableColumnPrompt({\r\n customClass: `bid-editor-prompt ${groupClass}`,\r\n // the empty space is to ensure the customHint element is rendered with empty content. So that we can put the warning in the correct position\r\n customHint: isMSStoreAdsCampaignEnabled ? ' ' : '',\r\n position: newPosition,\r\n item,\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: currentName,\r\n customValidators: {\r\n [currentName]: {\r\n isValid: (bid) => {\r\n this.showDefaultBidWarning = false;\r\n // the setTimeout is ensure the customHint element is rendered before we try to append the warning\r\n setTimeout(() => this.showLowerThanMinSuggestionBidWarning(bid, isMSStoreAdsCampaignEnabled));\r\n if (_.isNull(bid)) {\r\n errorMsg = this.i18n.getString('AdGroupSummary_SearchBidRequired');\r\n this.updateDefaultBidWarning();\r\n return false;\r\n } else if (isCommissionOrPercentCpc && (bid <= min || bid > max)) {\r\n errorMsg = this.i18n.getString('Validation_Number_Range_ExcludeMin', { min, max });\r\n this.updateDefaultBidWarning();\r\n return false;\r\n } else if (bid < min || bid > max) {\r\n errorMsg = this.i18n.getString('Validation_Number_Range_Between', { min, max });\r\n this.updateDefaultBidWarning();\r\n return false;\r\n } else if (pricingModel === 'CPV' && (\r\n (!isXandrVideoAdsCampaign(this.campaignSubType) && bid > DefaultBidCPVWarningThreshold)\r\n )) {\r\n this.showDefaultBidWarning = true;\r\n }\r\n this.updateDefaultBidWarning();\r\n return true;\r\n },\r\n message: () => errorMsg,\r\n },\r\n },\r\n adGroupSchema: schemaCopy,\r\n });\r\n }\r\n\r\n initDefaultBidWarning(element, warning) {\r\n ReactDOM.render(\r\n ,\r\n element\r\n );\r\n }\r\n\r\n updateDefaultBidWarning() {\r\n const defaultBidCPVWarningParent = $('.bid-editor-prompt .form-inline:last-of-type');\r\n const defaultBidCPVWarningId = 'default-bid-cpv-warning';\r\n if (!this.isDefaultBidCPVAppended && defaultBidCPVWarningParent.length === 1) {\r\n defaultBidCPVWarningParent.append(`
`);\r\n this.defaultBidCPVWarning = document.getElementById(defaultBidCPVWarningId);\r\n $(`#${defaultBidCPVWarningId}`).hide();\r\n const warning = this.i18n.getString('Audience_Campaign_DefaultBid_CPV_Warning');\r\n this.initDefaultBidWarning(this.defaultBidCPVWarning, warning);\r\n this.isDefaultBidCPVAppended = true;\r\n }\r\n if (this.defaultBidCPVWarning) {\r\n if (this.showDefaultBidWarning) {\r\n $(`#${defaultBidCPVWarningId}`).show();\r\n } else {\r\n $(`#${defaultBidCPVWarningId}`).hide();\r\n }\r\n }\r\n }\r\n\r\n formatBidString(name, bid, bidstrategy) {\r\n const isAutoBid = bidstrategy === 'TargetCpa' || bidstrategy === 'TargetRoas' || bidstrategy === 'MaxConversionValue' || bidstrategy === 'MaxConversions' || bidstrategy === 'MaxClicks' || bidstrategy === 'TargetImpressionShare';\r\n if (permissions.dynamic && permissions.dynamic.HideAutoBidValueInGrid && isAutoBid && bid !== null) {\r\n return this.i18n.getString('BidStrategy_BidAuto_HideValue');\r\n }\r\n if (bid) {\r\n const formattedBid = this.numberFormatter(bid);\r\n if (name === 'PercentCpcBid' || name === 'CommissionRate') {\r\n return `${formattedBid}%`;\r\n }\r\n switch (bidstrategy) {\r\n case 'EnhancedCpc':\r\n return `${formattedBid} ${this.i18n.getString('BidStrategy_BidEnhanced')}`;\r\n case 'TargetCpa':\r\n case 'TargetRoas':\r\n case 'MaxConversionValue':\r\n case 'MaxConversions':\r\n case 'MaxClicks':\r\n case 'TargetImpressionShare':\r\n return this.i18n.getString('BidStrategy_BidAuto').replace('{0}', formattedBid);\r\n case 'CostPerSale':\r\n return this.i18n.getString('BidStrategy_BidAuto_CPS');\r\n case 'ManualCpc':\r\n default:\r\n return formattedBid;\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n\r\n pickProperty(item) {\r\n const {\r\n IsBidLandscapeAvailable,\r\n DisplayBiddingStrategyType: bidstrategy,\r\n Id: id,\r\n Campaign: campaign,\r\n } = item;\r\n let bid = null;\r\n const {\r\n IsAdgroupLandscapeV2Enabled,\r\n } = permissions;\r\n\r\n if (campaign && campaign.CampaignType !== 'LinkedIn') {\r\n if (this.name === 'PercentCpcBid' || this.name === 'CommissionRate') {\r\n bid = item[this.name] && item[this.name].RateAmount && item[this.name].RateAmount.Amount;\r\n item[`AdGroup${this.name}`] = bid;\r\n } else {\r\n bid = item[this.name];\r\n }\r\n }\r\n\r\n let hasBidlandscape = IsBidLandscapeAvailable;\r\n if (campaign && campaign.CampaignType === 'Audience' && bidstrategy !== 'ManualCpc') {\r\n hasBidlandscape = hasBidlandscape && IsAdgroupLandscapeV2Enabled;\r\n }\r\n\r\n return {\r\n hasBidlandscape,\r\n bid: this.formatBidString(this.name, bid, bidstrategy),\r\n id,\r\n isBidReadOnly: permissions.IsReadOnlyUser ||\r\n appConfig.get('CurrentAccountInActive') ||\r\n _.contains(this.bidStrategyListToDisableBidAmountEdit, bidstrategy),\r\n isSearchMediumType: item.Medium !== 'Content',\r\n i18n: this.i18n,\r\n };\r\n }\r\n\r\n showLowerThanMinSuggestionBidWarning(bid, isMSStoreAdsCampaignEnabled) {\r\n if (!isMSStoreAdsCampaignEnabled) return;\r\n const customHint = $('.bid-editor-prompt .customHint');\r\n if (bid < this.defaultMSStoreMinSuggestionBid) {\r\n customHint.html(`
\r\n
\r\n
\r\n ${this.i18n.getString(_TL_('MinSuggestionBidWarning'), { minSuggestionBid: this.defaultMSStoreMinSuggestionBid })}\r\n
\r\n
`);\r\n customHint.show();\r\n } else {\r\n customHint.hide();\r\n }\r\n }\r\n get template() {\r\n return template;\r\n }\r\n}\r\n","import { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { SearchBidColumn as SearchBidColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { BidBaseColumn, commonBidStrategyListToDisableBidAmountEdit } from './bid-base-column';\r\n\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst permissions = appConfig.get('Permissions');\r\n\r\nexport class SearchBidColumn extends BidBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...SearchBidColumnConfig,\r\n title: (permissions.IsVideoAdsForCampaignEnabled || permissions.IsManualCpmEnabled)\r\n ? i18n.getString('ColumnName_CpcBid')\r\n : i18n.getString('ColumnName_SearchBid'),\r\n i18n,\r\n view,\r\n bidStrategyListToDisableBidAmountEdit: commonBidStrategyListToDisableBidAmountEdit(['EnhancedCpc', 'ManualCpc']),\r\n isForVNext,\r\n });\r\n }\r\n}\r\n","import { CpmBidColumn as CpmBidColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { BidBaseColumn, commonBidStrategyListToDisableBidAmountEdit } from './bid-base-column';\r\n\r\nexport class CpmBidColumn extends BidBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...CpmBidColumnConfig,\r\n title: i18n.getString('ColumnName_CpmBid'),\r\n i18n,\r\n view,\r\n bidStrategyListToDisableBidAmountEdit: commonBidStrategyListToDisableBidAmountEdit(['ManualCpm']),\r\n isForVNext,\r\n });\r\n }\r\n}\r\n","import { CpvBidColumn as CpvBidColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { BidBaseColumn, commonBidStrategyListToDisableBidAmountEdit } from './bid-base-column';\r\n\r\nexport class CpvBidColumn extends BidBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...CpvBidColumnConfig,\r\n title: i18n.getString('ColumnName_CpvBid'),\r\n i18n,\r\n view,\r\n bidStrategyListToDisableBidAmountEdit: commonBidStrategyListToDisableBidAmountEdit(['ManualCpv']),\r\n isForVNext,\r\n });\r\n }\r\n}\r\n","import { PercentCpcBidColumn as PercentCpcBidColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { BidBaseColumn, commonBidStrategyListToDisableBidAmountEdit } from './bid-base-column';\r\n\r\nexport class PercentCpcBidColumn extends BidBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...PercentCpcBidColumnConfig,\r\n sortable: 'PercentCpcBid/RateAmount/Amount',\r\n title: i18n.getString('ColumnName_PercentCpcBid'),\r\n i18n,\r\n view,\r\n bidStrategyListToDisableBidAmountEdit: commonBidStrategyListToDisableBidAmountEdit(['PercentCpc']),\r\n isForVNext,\r\n });\r\n }\r\n}\r\n","import { CommissionRateColumn as CommissionRateColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { BidBaseColumn, commonBidStrategyListToDisableBidAmountEdit } from './bid-base-column';\r\n\r\nexport class CommissionRateColumn extends BidBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...CommissionRateColumnConfig,\r\n sortable: 'CommissionRate/RateAmount/Amount',\r\n title: i18n.getString('ColumnName_CommissionRate'),\r\n i18n,\r\n view,\r\n bidStrategyListToDisableBidAmountEdit: commonBidStrategyListToDisableBidAmountEdit(['Commission']),\r\n isForVNext,\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { QualityScoreColumn as QualityScoreColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport qualityScoreTemplate from './quality-score.pug';\r\n\r\nexport class QualityScoreColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, isForVNext }) {\r\n const title = i18n.getString('ColumnName_QualityScore');\r\n\r\n super({\r\n ...QualityScoreColumnConfig,\r\n title,\r\n sortable: 'QualityScore/OverallQualityScore',\r\n type: 'string',\r\n helpId: 'Page_CampaignGrids_QualScore',\r\n bodyClasses: ['grid-column-QualityScore'],\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.titleDetail = i18n.getString('Page_Keywords_QualityScoreDetails');\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n return _.defaults({\r\n score: item && item.QualityScore && item.QualityScore.OverallQualityScore,\r\n title: this.titleDetail,\r\n });\r\n }\r\n\r\n template(model) {\r\n return qualityScoreTemplate(_.extend({\r\n isForVNext: this.isForVNext,\r\n }, model));\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { SchemaI18n } from '@bingads-webui-universal/schema-i18n';\r\nimport { MediumColumn as MediumColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport mediumTemplate from './medium.pug';\r\n\r\nexport class MediumColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n const title = i18n.getString('ColumnName_Medium');\r\n\r\n super({\r\n ...MediumColumnConfig,\r\n title,\r\n sortable: 'Medium',\r\n type: 'string',\r\n helpId: 'Page_CampaignGrids_Medium',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.schemaI18n = new SchemaI18n({ i18n });\r\n }\r\n\r\n template({ value }) {\r\n return mediumTemplate({ value, schemaI18n: this.schemaI18n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { AdGroupIdColumn as AdGroupIdColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\n\r\nexport class AdGroupIdColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n ...AdGroupIdColumnConfig,\r\n title: i18n.getString('ColumnName_AdGroupId'),\r\n sortable: 'Id',\r\n type: 'number',\r\n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport '@bingads-webui/kendo/kendo.data';\r\nimport { StartDateColumn as StartDateColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { DateInlineEditableColumnPrompt } from '@bingads-webui-campaign/date-inline-edit-prompt';\r\nimport { convertUTCDateToMachineDate, displayDate, getCurrentDate } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\nimport dateTemplate from './date.pug';\r\n\r\nexport class StartDateColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n const title = i18n.getString('ColumnName_StartDate');\r\n\r\n super({\r\n ...StartDateColumnConfig,\r\n title,\r\n editable: true,\r\n sortable: 'StartDate',\r\n type: 'string',\r\n helpId: 'pop_BA_CampaignsStartDate',\r\n enableEdit: item =>\r\n (item.Campaign?.UseCampaignLevelDates ? false : new Date(item.StartDate) > getCurrentDate()),\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n return {\r\n date: this.getStartDate(item),\r\n useCampaignLevelDates: item.Campaign?.UseCampaignLevelDates,\r\n };\r\n }\r\n\r\n getStartDate(item) {\r\n if (item.$total) {\r\n return '';\r\n }\r\n\r\n return item.Campaign?.UseCampaignLevelDates\r\n ? this.displayStartDate(item.Campaign.StartDate)\r\n : this.displayStartDate(item.StartDate);\r\n }\r\n\r\n displayStartDate(startDate) {\r\n return displayDate(startDate, 'StartDate_None', this.i18n);\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const options = {\r\n position: this.isForVNext ? newPosition : position,\r\n isForVNext: this.isForVNext,\r\n item,\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'StartDate',\r\n allowNoDate: false,\r\n selectedDate: convertUTCDateToMachineDate(new Date(item.StartDate), this.i18n),\r\n updater: InlineEditableSave,\r\n };\r\n\r\n if (item.EndDate) {\r\n options.maxDate = convertUTCDateToMachineDate(new Date(item.EndDate), this.i18n);\r\n }\r\n return DateInlineEditableColumnPrompt(options);\r\n }\r\n\r\n template({ value }) {\r\n return dateTemplate(value);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport '@bingads-webui/kendo/kendo.data';\r\nimport { EndDateColumn as EndDateColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { DateInlineEditableColumnPrompt } from '@bingads-webui-campaign/date-inline-edit-prompt';\r\nimport { convertUTCDateToMachineDate, displayDate } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\nimport dateTemplate from './date.pug';\r\n\r\nexport class EndDateColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n const title = i18n.getString('ColumnName_EndDate');\r\n\r\n super({\r\n ...EndDateColumnConfig,\r\n title,\r\n editable: true,\r\n enableEdit: item => !item.Campaign?.UseCampaignLevelDates,\r\n sortable: 'EndDate',\r\n type: 'string',\r\n helpId: 'pop_BA_CampaignsEndDate',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n return {\r\n date: this.getEndDate(item),\r\n useCampaignLevelDates: item.Campaign?.UseCampaignLevelDates,\r\n };\r\n }\r\n\r\n getEndDate(item) {\r\n if (item.$total) {\r\n return '';\r\n }\r\n\r\n return item.Campaign?.UseCampaignLevelDates\r\n ? this.displayEndDate(item.Campaign.EndDate)\r\n : this.displayEndDate(item.EndDate);\r\n }\r\n\r\n displayEndDate(endDate) {\r\n return displayDate(endDate, 'EndDate_None', this.i18n);\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const groupClass = `grid-group-${_.result(this.config, 'group', 'other')}`;\r\n const options = {\r\n position: this.isForVNext ? newPosition : position,\r\n isForVNext: this.isForVNext,\r\n item,\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'EndDate',\r\n allowNoDate: true,\r\n minDate: convertUTCDateToMachineDate(new Date(item.StartDate), this.i18n),\r\n customClass: groupClass,\r\n updater: InlineEditableSave,\r\n };\r\n\r\n if (item.EndDate) {\r\n options.selectedDate = convertUTCDateToMachineDate(new Date(item.EndDate), this.i18n);\r\n }\r\n return DateInlineEditableColumnPrompt(options);\r\n }\r\n\r\n template({ value }) {\r\n return dateTemplate(value);\r\n }\r\n}\r\n","export default {\r\n Paused: 144,\r\n Expired: 150,\r\n CampaignUserPaused: 124,\r\n CampaignBudgetPaused: 126,\r\n CampaignBudgetUserPaused: 127,\r\n PrivacyPending: 137,\r\n TargetingTooNarrow: 139,\r\n Draft: 140,\r\n Active: 141,\r\n Deleted: 143,\r\n};\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { renderStatusPopupEditor } from '@bingads-webui-campaign/status-popup-editor';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { StatusIconColumn as StatusIconColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\nimport statusIconTemplate from './status-icon.pug';\r\nimport statusEnumMap from './status-enum-map';\r\nimport headerTemplate from './status-icon-header-template.pug';\r\n\r\nconst pageContext = globalContext.require('PageContext');\r\nconst enableGridFlexLayout = _.result(pageContext.Permissions.dynamic, 'GridFlexLayout', false);\r\n\r\nexport class StatusIconColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...StatusIconColumnConfig,\r\n title: i18n.getString('ColumnName_Status'),\r\n sortable: 'EntityStatus',\r\n isResizable: false,\r\n type: 'string',\r\n bodyClasses: ['grid-column-Status'],\r\n enableEdit: item => !_.contains(['Draft', 'Expired'], item.EntityStatus),\r\n headerTemplate: () => headerTemplate({}),\r\n group: 'freezing',\r\n });\r\n\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n const {\r\n EntityStatus,\r\n Id,\r\n } = item;\r\n const isExperiment = _.result(item.Campaign, 'ExperimentId');\r\n\r\n return {\r\n EntityStatus,\r\n Id,\r\n isExperiment,\r\n };\r\n }\r\n\r\n template(model) {\r\n return statusIconTemplate(_.extend({}, model, {\r\n i18n: this.i18n,\r\n isForVNext: this.isForVNext,\r\n enableGridFlexLayout,\r\n }));\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const statusEditor = renderStatusPopupEditor({\r\n position: this.isForVNext ? newPosition : position,\r\n isForVNext: this.isForVNext,\r\n i18n: this.i18n,\r\n currentStatus: item.EntityStatus,\r\n statusOptions: (() => {\r\n let options = [\r\n { name: 'Enabled', value: 'Active' },\r\n { name: 'Paused', value: 'Paused' },\r\n ];\r\n const isExperiment = _.result(item.Campaign, 'ExperimentId');\r\n\r\n if (isExperiment) {\r\n options = _.map(options, (option) => {\r\n const iconClass = _.result({\r\n Enabled: 'experiment-active-icon',\r\n Paused: 'experiment-paused-icon',\r\n }, option.name);\r\n\r\n return _.defaults({ iconClass }, option);\r\n });\r\n }\r\n\r\n return options;\r\n })(),\r\n });\r\n\r\n statusEditor.then((status) => {\r\n if (status) {\r\n const updated = _.extend({}, item, { Status: status });\r\n\r\n return InlineEditableSave({\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'Status',\r\n updated,\r\n editorView: statusEditor,\r\n editorViewCallbackAfterUpdate: () => {\r\n const response = [{\r\n Id: item.Id,\r\n Status: statusEnumMap[status],\r\n }];\r\n\r\n window.App.trigger('adGroupUpdated', { data: response });\r\n },\r\n });\r\n }\r\n return undefined;\r\n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { AdGroupTypeColumn as AdGroupTypeColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\n\r\nexport class AdGroupTypeColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n const title = i18n.getString('AdGroupType_Label');\r\n\r\n super({\r\n ...AdGroupTypeColumnConfig,\r\n title,\r\n sortable: 'AdGroupType',\r\n type: 'string',\r\n helpId: 'pop_BA_DSA_AdGroupType',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.i18n = i18n;\r\n }\r\n pickProperty(item) {\r\n return item.AdGroupType !== 'Unknown' && item.AdGroupType != null && item.AdGroupType !== 'HotelAds' ?\r\n this.i18n.getString(`AdGroupType_${item.AdGroupType}`) :\r\n '-';\r\n }\r\n}\r\n","import {\r\n CustomParametersColumn as CustomParametersColumnConfig,\r\n FinalUrlSuffixColumn as FinalUrlSuffixColumnConfig,\r\n TrackingTemplateColumn as TrackingTemplateColumnConfig,\r\n} from '@bingads-webui-campaign/ad-groups-data';\r\nimport {\r\n TrackingTemplateColumn as TrackingTemplateColumnOriginal,\r\n CustomParametersColumn as CustomParametersColumnOriginal,\r\n FinalUrlSuffixColumn as FinalUrlSuffixColumnOriginal,\r\n} from '@bingads-webui-campaign/tracking-template-columns';\r\n\r\nexport class TrackingTemplateColumn extends TrackingTemplateColumnOriginal {\r\n constructor(options) {\r\n super({\r\n ...TrackingTemplateColumnConfig,\r\n ...options,\r\n enableEdit: item => item.Campaign && item.Campaign.CampaignType !== 'LinkedIn',\r\n });\r\n }\r\n}\r\n\r\nexport class FinalUrlSuffixColumn extends FinalUrlSuffixColumnOriginal {\r\n constructor(options) {\r\n super({\r\n ...FinalUrlSuffixColumnConfig,\r\n ...options,\r\n enableEdit: item => item.Campaign && item.Campaign.CampaignType !== 'LinkedIn',\r\n });\r\n }\r\n}\r\n\r\nexport class CustomParametersColumn extends CustomParametersColumnOriginal {\r\n constructor(options) {\r\n super({\r\n ...CustomParametersColumnConfig,\r\n ...options,\r\n enableEdit: item => item.Campaign && item.Campaign.CampaignType !== 'LinkedIn',\r\n });\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { crossPageSelectHeadRow } from '@bingads-webui/projection-grid-cross-page-select-all';\r\nimport { helpers } from '@bingads-webui/projection-grid-toolbar';\r\nimport { getGridName } from '@bingads-webui-campaign/inline-download-grids-metadata';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { sortableHeaderTemplate, validateOrder } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { getColumnsConfig } from './columns/index';\r\nimport { InlineEditableSave } from './columns/attributes/inline-editable/save';\r\n\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab');\r\nconst stateManager = globalContext.require('StateManager/CampaignStateManager');\r\nconst preferenceService = globalContext.requireDefault('component/preference/service/index');\r\nconst config = globalContext.require('component/config/index');\r\nconst decimal = globalContext.require('component/humanize/decimal');\r\n\r\nconst { toolbarRow } = helpers;\r\nconst helpIdMap = {\r\n AverageCPC: 'Page_CampaignGrids_AvgCPC',\r\n AveragePosition: 'Page_CampaignGrids_AvgPosition',\r\n Impressions: 'Page_CampaignGrids_Impr',\r\n AverageCPM: 'Page_CampaignGrids_AvgCPM',\r\n PhoneSpend: null,\r\n PhoneImpressions: 'Page_CampaignGrids_PhoneImpr',\r\n AverageCPP: 'Page_CampaignGrids_AvgCPP',\r\n Conversions: 'Page_CampaignGrids_Conv',\r\n ConversionsCredit: 'Page_CampaignGrids_Conv',\r\n ConversionRate: 'Page_CampaignGrids_ConvRate',\r\n PartialConversionRate: 'Page_CampaignGrids_ConvRate',\r\n AdvertiserReportedRevenue: 'Page_CampaignGrids_Revenue',\r\n RevenueOnAdSpend: 'Page_CampaignGrids_ReturnAdSpend',\r\n AuctionWonPercent: 'pop_BA_CampaignGrids_IS',\r\n AuctionLostToBudgetPercent: 'pop_BA_CampaignGrids_ISBudget',\r\n AuctionLostToRankPercent: 'pop_BA_CampaignGrids_ISRank',\r\n AuctionLostToAdQualityPercent: 'pop_BA_CampaignGrids_ISctr',\r\n AuctionLostToLandingPercent: 'pop_BA_CampaignGrids_ISRelv',\r\n AuctionLostToBidPercent: 'pop_BA_CampaignGrids_ISBid',\r\n ClickSharePercent: 'pop_BA_Reporting_ProductAds_ClickSharePercent',\r\n AbsoluteTopImpressionSharePercent: 'pop_BA_Reporting_ProductAds_AbsoluteTopImpShare',\r\n ManualCalls: 'pop_BA_Reporting_Clarity_PhoneCalls',\r\n AllConversions: 'pop_BA_CampaignGrids_AllConv',\r\n AllConversionCPA: 'pop_BA_CampaignGrids_AllConvCPA',\r\n AllConversionRate: 'pop_BA_CampaignGrids_AllConvRate',\r\n AllConversionAdvertiserReportedRevenue: 'pop_BA_CampaignGrids_AllConvRevenue',\r\n AllConversionRevenueOnAdSpend: 'pop_BA_CampaignGrids_AllConvROAS',\r\n TotalWatchTimeInMS: 'Page_CampaignGrids_TotalWatchTime',\r\n ViewThroughConversionsRevenue: 'pop_BA_Reporting_Clarity_ViewThroughConvRevenue',\r\n ViewThroughConversionsCPA: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n ViewThroughPartialConversionsCPA: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n ViewThroughConversionsReturnOnAdSpend: 'pop_BA_Reporting_Clarity_ViewThroughConvReturnOnAdSpend',\r\n ViewThroughConversionsRate: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n ViewThroughPartialConversionsRate: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n ViewThroughConversions: 'pop_BA_CampaignGrids_ViewThrough',\r\n ViewThroughConversionsCredit: 'pop_BA_CampaignGrids_ViewThrough',\r\n};\r\n\r\nexport function getConfig({\r\n dataSource,\r\n scope,\r\n view,\r\n filterService,\r\n preferenceConfig,\r\n router,\r\n isForVNext,\r\n viewport,\r\n customHeaderOffset,\r\n currentCampaign,\r\n deps,\r\n globalCampaignTypeFilter,\r\n isDataFetchManagerSource,\r\n}) {\r\n const columnHelpId = name => _.result(helpIdMap, name, `Page_CampaignGrids_${name}`);\r\n\r\n const tableName = i18n.getString('EntityType_AdGroup_Plural');\r\n const permissions = config.get('Permissions');\r\n const enableGridFlexLayout = _.result(permissions.dynamic, 'GridFlexLayout', false);\r\n const gridName = getGridName('AdGroup');\r\n\r\n const gridConfig = {\r\n name: gridName,\r\n legacyGridName: 'AdGroupGrid',\r\n tableClasses: enableGridFlexLayout ? ['table'] : ['table', 'table-bordered'],\r\n tableAttributes: { 'aria-label': tableName },\r\n dataSource,\r\n selection: true,\r\n filterService,\r\n rows: {\r\n headRows:\r\n isForVNext\r\n ? [\r\n 'column-header-rows',\r\n ]\r\n : [\r\n toolbarRow('lower-toolbar'),\r\n crossPageSelectHeadRow(),\r\n 'column-header-rows',\r\n ],\r\n },\r\n columns: getColumnsConfig({\r\n i18n,\r\n decimal,\r\n scope,\r\n view,\r\n helpId: columnHelpId,\r\n permissions,\r\n inlineEditableSave: InlineEditableSave,\r\n router,\r\n isForVNext,\r\n currentCampaign,\r\n deps,\r\n globalCampaignTypeFilter,\r\n }),\r\n scrolling: {\r\n header: {\r\n type: 'sticky',\r\n offset: customHeaderOffset || (() => $('nav.navbar-default.navbar-fixed-top').height()),\r\n attributes: {\r\n 'aria-label': i18n.getString('{{tableName}} table header', { tableName }),\r\n role: 'rowgroup',\r\n },\r\n },\r\n virtualized: true,\r\n },\r\n i18n,\r\n sortableHeader: {\r\n template: sortableHeaderTemplate,\r\n },\r\n stateManager,\r\n preferenceService,\r\n config,\r\n isDataFetchManagerSource,\r\n ...enableGridFlexLayout && { layout: 'flex' },\r\n };\r\n\r\n validateOrder(preferenceConfig, gridConfig.columns, gridName, permissions);\r\n\r\n if (viewport) {\r\n gridConfig.scrolling.viewport = viewport;\r\n }\r\n\r\n return gridConfig;\r\n}\r\n","const navigation = ({\r\n toJSON: () => ({}),\r\n source: {\r\n $call: () => ({\r\n toJSON: () => ({}),\r\n navigation,\r\n }),\r\n },\r\n parameters: {},\r\n});\r\n\r\nexport const mockEdm = {\r\n root: {\r\n identifyEntitySet: () => ({\r\n toJSON: () => ({}),\r\n navigation,\r\n }),\r\n },\r\n};\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\n\r\nimport { paginationPlugin } from '@bingads-webui/projection-grid-pagination';\r\nimport { columnChooserPlugin } from '@bingads-webui-campaign/projection-grid-column-chooser';\r\nimport { editablePlugin } from '@bingads-webui-campaign/projection-grid-editable';\r\nimport { auctionInsightPlugin } from '@bingads-webui-campaign/projection-grid-auction-insight';\r\nimport { inlineDownloadWithoutFilterstatePlugin } from '@bingads-webui-campaign/projection-grid-inline-download';\r\nimport { jsdataRawDataPlugin as commonJsdataRawDataPlugin } from '@bingads-webui/projection-grid-js-data-raw-data';\r\nimport { periodOverPeriodPlugin } from '@bingads-webui-campaign/projection-grid-period-over-period';\r\nimport { segmentPlugin } from '@bingads-webui-campaign/projection-grid-segment';\r\nimport {\r\n campaignSegmentationTypeEnum,\r\n segmentationType,\r\n} from '@bingads-webui-campaign/segmentation-utilities';\r\nimport { inlineErrorPlugin } from '@bingads-webui/projection-grid-inline-error';\r\nimport { bidStrategy } from '@bingads-webui-campaign/projection-grid-bid-strategy';\r\nimport { uiBlockerPlugin } from '@bingads-webui/projection-grid-uiblocker';\r\nimport { assistedSelectionPlugin } from '@bingads-webui/projection-grid-assisted-selection';\r\nimport { performanceLogPlugin, perfMarkerPlugin } from '@bingads-webui-campaign/pgrid-performance-log';\r\nimport { a11yPlugin } from '@bingads-webui/projection-grid-a11y';\r\nimport { aggregatedRowsPluginBuilder } from '@bingads-webui-campaign/pgrid-aggregated-rows';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { dateFilterPlugin } from '@bingads-webui-campaign/projection-grid-date-filter';\r\nimport { AdGroup } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { getPGridColumnResizePlugin } from '@bingads-webui-campaign/projection-grid-column-resize-helper';\r\nimport { projectionGridFlexColumnResize } from '@bingads-webui-campaign/projection-grid-flex-column-resize';\r\nimport { getGridName } from '@bingads-webui-campaign/inline-download-grids-metadata';\r\n\r\nimport { getColumnChooserConfig } from './columns/index';\r\nimport { mockEdm } from '../demo/mock/edm';\r\n\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab');\r\nconst appState = globalContext.require('component/state/index');\r\nconst sessionStore = globalContext.requireDefault('component/js-data-storage/session-storage');\r\nconst edm = globalContext.requireDefault('component/edm-campaign/index');\r\nconst s$i18n = globalContext.require('$/schema-i18n!campaign');\r\nconst { DownloadView } = globalContext.require('campaignui/feature/griddownload/view/adapter');\r\nconst { setSegType, getSegType } = globalContext.require('component/bingads-grid/service/segmentation-preferences');\r\nconst ChangeBiddingStrategyModel = globalContext.require('module/model/bulkEdit/shared/changeBiddingStrategy');\r\nconst ChangeBiddingStrategyView = globalContext.require('module/view/bulkEdit/shared/changeBiddingStrategy');\r\nconst logger = globalContext.require('module/service/instrumentation/index');\r\n\r\nconst permissions = appConfig.get('Permissions');\r\nconst enableGridFlexLayout = _.result(permissions.dynamic, 'GridFlexLayout', false);\r\nconst jsdataRawDataPlugin = commonJsdataRawDataPlugin({\r\n getRawData: _.property('raw'),\r\n rawDataAccessor(ds) {\r\n // eslint-disable-next-line no-underscore-dangle\r\n return ds._rawData || ds.dataSource.dfmRawData;\r\n },\r\n});\r\n\r\nexport function getAdGroupPlugins({\r\n filterService,\r\n router,\r\n scope,\r\n isForVNext,\r\n addDateChangeListener,\r\n p$daterange,\r\n adGroupTabPerfMarker,\r\n currentCampaign,\r\n preexecuteFlag = false,\r\n globalCampaignTypeFilter,\r\n getCampaignTypeGlobalFilter,\r\n preferenceService,\r\n}) {\r\n const isSmartShoppingCampaign = currentCampaign &&\r\n (currentCampaign.CampaignSubType === 12 || currentCampaign.CampaignSubType === 'ShoppingSmartAds');\r\n const aggregatedRowsPlugin = aggregatedRowsPluginBuilder({\r\n i18n,\r\n keys: {\r\n overallI18nKey: 'AdGroupSummary_Total_New',\r\n filteredI18nKey: 'AdGroupSummary_Filtered_Total_New',\r\n waterfallFilterI18nKey: 'AdGroupSummary_Quickfilter_Total_New',\r\n },\r\n permissions,\r\n filterService,\r\n customConfig: {\r\n showLinkedInRow: true,\r\n },\r\n });\r\n const ReportEmailRule = appState.get('$ReportEmailRule');\r\n\r\n const columnChooserConfig = getColumnChooserConfig({\r\n scope,\r\n isForVNext,\r\n filterService,\r\n permissions,\r\n currentCampaign,\r\n globalCampaignTypeFilter,\r\n });\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n appState.unset('$ReportEmailRule');\r\n\r\n const getSegmentationTypes = () => {\r\n if (permissions.IsVerticalAdsReportingPhase1Enabled) {\r\n return [...campaignSegmentationTypeEnum, segmentationType.AdScenario];\r\n }\r\n\r\n return campaignSegmentationTypeEnum;\r\n };\r\n\r\n return _.compact([{\r\n // For accurate grid init latency, PerfMarkerPlugin should be the first plugin to load.\r\n plugin: perfMarkerPlugin,\r\n config: { appConfig, marker: adGroupTabPerfMarker },\r\n }, {\r\n plugin: paginationPlugin,\r\n config: {\r\n availablePageSizes: [20, 50, 100, 200],\r\n enableRandomPage: false,\r\n pageNumberLabelText: isForVNext ? '' : i18n.getString('Grid_Page_Number_Label_Text'),\r\n pageSizeText: i18n.getString('Grid_ShowRows'),\r\n totalPageCountText: i18n.getString('Grid_PageOf'),\r\n resetPageNumberOnSort: true,\r\n },\r\n },\r\n {\r\n plugin: auctionInsightPlugin,\r\n config: {\r\n isForVNext,\r\n pageName: 'adgroups',\r\n i18n,\r\n state: appState,\r\n legacyRouter: router,\r\n route: scope.campaignId ? 'campaign_adgroup_auction_insight' : 'adgroup_auction_insight',\r\n crossPageSelectNotAllowedI18nKey: 'AdGroupSummary_MultiplePageSelectionNotAllowed',\r\n shouldNavigateToCompetitionTab: permissions.IsBAACompetitionEnabled,\r\n scope,\r\n sessionStore,\r\n preferenceService,\r\n permissions,\r\n getCampaignTypeGlobalFilter,\r\n },\r\n },\r\n {\r\n plugin: inlineDownloadWithoutFilterstatePlugin,\r\n config: {\r\n isForVNext,\r\n p$daterange,\r\n\r\n DownloadView,\r\n isAvailable: true,\r\n gridId: 'AdGroupGrid',\r\n schema: AdGroup,\r\n s$i18n,\r\n i18n,\r\n ReportEmailRule,\r\n },\r\n },\r\n {\r\n plugin: segmentPlugin,\r\n config: {\r\n i18n,\r\n permissions,\r\n state: appState,\r\n isOdataActionSource: true,\r\n edm: preexecuteFlag ? mockEdm : edm,\r\n setSegType,\r\n getSegType,\r\n cultureShortDatePattern: appConfig.get('CultureDateTimeFormat').ShortDatePattern,\r\n cellTemplates: {\r\n AdGroup: 'default',\r\n },\r\n segmentationTypes: getSegmentationTypes(),\r\n },\r\n },\r\n !isSmartShoppingCampaign ? {\r\n plugin: bidStrategy,\r\n config: {\r\n isForVNext,\r\n ChangeBiddingStrategyView,\r\n ChangeBiddingStrategyModel,\r\n i18n,\r\n permissions,\r\n },\r\n } : null, !appConfig.get('CurrentAccountInActive') && !permissions.IsReadOnlyUser && {\r\n plugin: editablePlugin,\r\n config: { i18n },\r\n },\r\n {\r\n plugin: uiBlockerPlugin,\r\n config: { el: $(isForVNext ? '.ad-groups-page' : '#child-page') },\r\n },\r\n {\r\n plugin: performanceLogPlugin,\r\n config: { appConfig, logger },\r\n },\r\n {\r\n plugin: periodOverPeriodPlugin,\r\n config: { i18n },\r\n },\r\n {\r\n plugin: columnChooserPlugin,\r\n config: columnChooserConfig,\r\n },\r\n {\r\n plugin: dateFilterPlugin,\r\n config: {\r\n state: appState,\r\n isOdataActionSource: true,\r\n edm: preexecuteFlag ? mockEdm : edm,\r\n addDateChangeListener,\r\n p$daterange,\r\n },\r\n },\r\n {\r\n plugin: inlineErrorPlugin({\r\n errorIconClasses: ['grid-error'],\r\n }),\r\n },\r\n {\r\n plugin: assistedSelectionPlugin,\r\n },\r\n {\r\n plugin: a11yPlugin,\r\n config: { i18n },\r\n },\r\n {\r\n plugin: aggregatedRowsPlugin,\r\n },\r\n {\r\n plugin: jsdataRawDataPlugin,\r\n },\r\n ...enableGridFlexLayout ? [{\r\n plugin: projectionGridFlexColumnResize,\r\n config: {\r\n gridName: getGridName('AdGroup'),\r\n softDependencies: ['popColumns'],\r\n preferenceService,\r\n },\r\n }] : [getPGridColumnResizePlugin({\r\n gridName: getGridName('AdGroup'),\r\n preferenceService,\r\n permissions,\r\n })],\r\n ]);\r\n}\r\n","import { AdGroupsGrid } from './ad-groups-grid';\r\nimport { getConfig } from './grid-config';\r\nimport { getAdGroupPlugins } from './plugins';\r\n\r\n\r\nexport function createAdGroupGrid({\r\n deps = null,\r\n dataSource,\r\n filterService,\r\n getAdditionalPlugins = () => [],\r\n preferenceConfig,\r\n preferenceService,\r\n router,\r\n scope,\r\n addDateChangeListener,\r\n p$daterange,\r\n isForVNext = false,\r\n viewport,\r\n adGroupTabPerfMarker,\r\n customHeaderOffset,\r\n currentCampaign,\r\n pageName,\r\n preexecuteFlag = false,\r\n globalCampaignTypeFilter,\r\n getCampaignTypeGlobalFilter,\r\n isDataFetchManagerSource,\r\n}) {\r\n return new AdGroupsGrid({\r\n deps,\r\n isForVNext,\r\n filterService,\r\n getGridConfig: view => getConfig({\r\n dataSource,\r\n scope,\r\n view,\r\n filterService,\r\n preferenceConfig,\r\n router,\r\n isForVNext,\r\n viewport,\r\n customHeaderOffset,\r\n currentCampaign,\r\n deps,\r\n globalCampaignTypeFilter,\r\n isDataFetchManagerSource,\r\n }),\r\n getPlugins: view => getAdGroupPlugins({\r\n filterService,\r\n router,\r\n scope,\r\n isForVNext,\r\n addDateChangeListener,\r\n p$daterange,\r\n adGroupTabPerfMarker,\r\n currentCampaign,\r\n preexecuteFlag,\r\n globalCampaignTypeFilter,\r\n getCampaignTypeGlobalFilter,\r\n preferenceService,\r\n }).concat(getAdditionalPlugins(view)),\r\n router,\r\n scope,\r\n preferenceConfig,\r\n currentCampaign,\r\n pageName,\r\n preexecuteFlag,\r\n globalCampaignTypeFilter,\r\n });\r\n}\r\n","import $ from 'jquery';\r\nimport { AdGroupBidLandscape } from '@bingads-webui/bid-landscape';\r\nimport { AlertHelper } from '@bingads-webui-campaign/alert-helper';\r\nimport { showPopup } from '@bingads-webui/automatic-positioning-popover';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { BiddingStrategyToRangeKey, BiddingStrategyToBidParam } from '@bingads-webui-campaign/audience-campaign-shared';\r\nimport { http } from '@bingads-webui/http-util';\r\nimport * as url from '@bingads-webui/url-util';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { generateGuid } from '@bingads-webui-universal/primitive-utilities';\r\n\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab');\r\nconst popupUtil = globalContext.require('module/service/shared/popup');\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst instrumentation = globalContext.requireDefault('campaignui/feature/instrumentation/index');\r\nconst senario = instrumentation.adgroupBidlandscape.create();\r\nconst i18nErrors = globalContext.require('component/api-errors-campaign/index');\r\nconst jsData = globalContext.require('component/js-data-campaign/index');\r\nconst odata = globalContext.require('module/service/communication/channel/odata');\r\nconst currencyCode = appConfig.get('AccountCurrencyCode');\r\nconst permissions = appConfig.get('Permissions');\r\n\r\nfunction showError(msg) {\r\n const alertHelper = new AlertHelper({ i18n });\r\n alertHelper.showError(msg);\r\n}\r\n\r\nfunction applyError(response) {\r\n let error;\r\n const unexpectedError = i18n.getString('ErrorNumber_-1');\r\n\r\n if (!response || !response.errors) {\r\n error = unexpectedError;\r\n } else {\r\n const errors = i18nErrors.getBulkApiErrors(response.errors, 'newadgroup');\r\n\r\n if (!errors || !errors[0] || !errors[0].message) {\r\n error = unexpectedError;\r\n } else {\r\n error = errors[0].message;\r\n }\r\n }\r\n\r\n showError(error);\r\n}\r\n\r\nfunction defaultApply(\r\n adgroup,\r\n adgroupBidLandscapeView,\r\n activity,\r\n applyCallback,\r\n blockerEl,\r\n trackingId\r\n) {\r\n const {\r\n Id, SearchBid, Name, Campaign, CpmBid, CpvBid, DisplayBiddingStrategyType: bidType,\r\n } = adgroup;\r\n let oldValue = SearchBid;\r\n const newValue = i18n.parseDecimal(adgroupBidLandscapeView.valueToApply());\r\n let bidKV = { SearchBid: newValue };\r\n const toUpdate = {\r\n Id,\r\n Campaign: { Id: Campaign.Id },\r\n };\r\n if (permissions.IsAdgroupLandscapeV2Enabled) {\r\n if (bidType === 'ManualCpm') {\r\n bidKV = { CpmBid: newValue };\r\n oldValue = CpmBid;\r\n } else if (bidType === 'ManualCpv') {\r\n bidKV = { CpvBid: newValue };\r\n oldValue = CpvBid;\r\n }\r\n }\r\n const currency = appConfig.get('AccountCurrencyCode');\r\n const isCustomBid = adgroupBidLandscapeView.viewModel.currentSelectedId()\r\n === adgroupBidLandscapeView.viewModel.landscapePointsLength();\r\n const startDate = adgroupBidLandscapeView.viewModel.startDateString();\r\n const endDate = adgroupBidLandscapeView.viewModel.endDateString();\r\n jsData.AdGroup\r\n .update(Id, { ...toUpdate, ...bidKV }, { adapter: 'bulk' })\r\n .then(() => {\r\n popupUtil.close();\r\n applyCallback(bidKV);\r\n activity.trace(\r\n `Apply success for ${Id} [${Name}]: ${oldValue} -> ${newValue}, Currency:${currency}, DataDate: ${startDate}~${endDate}, TrackingId: ${trackingId}, IsCustomBid: ${isCustomBid}, DisplayBiddingStrategyType: ${bidType}`,\r\n 'defaultApply'\r\n );\r\n })\r\n .catch((response) => {\r\n applyError(response);\r\n })\r\n .finally(withUiBlock(blockerEl));\r\n}\r\n\r\nfunction customApply(\r\n adgroup,\r\n adgroupBidLandscapeView,\r\n activity,\r\n scope,\r\n applyCallback,\r\n blockerEl,\r\n trackingId\r\n) {\r\n const { customerId, accountId } = scope;\r\n const campaignId = adgroup.Campaign.Id;\r\n const {\r\n Id, SearchBid, Name, CpmBid, CpvBid, DisplayBiddingStrategyType: bidType,\r\n } = adgroup;\r\n const currency = appConfig.get('AccountCurrencyCode');\r\n const newBidStr = adgroupBidLandscapeView.valueToApply();\r\n const newBid = i18n.parseDecimal(newBidStr);\r\n const isCustomBid = adgroupBidLandscapeView.viewModel.currentSelectedId()\r\n === adgroupBidLandscapeView.viewModel.landscapePointsLength();\r\n const startDate = adgroupBidLandscapeView.viewModel.startDateString();\r\n const endDate = adgroupBidLandscapeView.viewModel.endDateString();\r\n\r\n let oldValue = SearchBid;\r\n let bidKV = { SearchBid: newBid };\r\n if (permissions.IsAdgroupLandscapeV2Enabled) {\r\n if (bidType === 'ManualCpm') {\r\n bidKV = { CpmBid: newBid };\r\n oldValue = CpmBid;\r\n } else if (bidType === 'ManualCpv') {\r\n bidKV = { CpvBid: newBid };\r\n oldValue = CpvBid;\r\n }\r\n }\r\n\r\n const uri = `Advertiser/Customers(${customerId})/Accounts(${accountId})/Campaigns(${campaignId})/AdGroups(${Id})/Default.UpdateBidAndResetKeywordSource`;\r\n\r\n const uiBlocker = withUiBlock(blockerEl);\r\n odata.patch(uri, { Bid: newBid })\r\n .then(() => {\r\n popupUtil.close();\r\n // refresh row\r\n applyCallback(bidKV);\r\n activity.trace(\r\n `Apply success for ${Id} [${Name}]: ${oldValue} -> ${newBid}, Currency:${currency}, DataDate: ${startDate}~${endDate}, TrackingId: ${trackingId}, IsCustomBid: ${isCustomBid}, DisplayBiddingStrategyType: ${bidType}`,\r\n 'customApply'\r\n );\r\n uiBlocker();\r\n }, (error) => {\r\n let errorMessage = '';\r\n if (!error || !error.errorResponseBody || error.errorResponseBody.value.length === 0) {\r\n errorMessage = i18n.getString('ErrorNumber_-1');\r\n } else {\r\n const errorCode = error.errorResponseBody.value[0].Code;\r\n\r\n errorMessage = i18n.getString(`Error_Campaign_API_Bidlandscape_CustomApply_${errorCode}`) ||\r\n i18n.getString(`Error_Campaign_API_${errorCode}`);\r\n }\r\n showError(errorMessage);\r\n uiBlocker();\r\n popupUtil.close();\r\n });\r\n}\r\n\r\nfunction getCurrentAppliedBid(adgroup) {\r\n const {\r\n DisplayBiddingStrategyType: bidType,\r\n } = adgroup;\r\n const bidKey = BiddingStrategyToBidParam[bidType] || 'SearchBid';\r\n return adgroup[bidKey];\r\n}\r\n\r\nfunction fetchAdGroupBidLandscape(adgroupId, scope) {\r\n const { customerId: cid, accountId: aid, userId: uid } = scope;\r\n const uri = url.queryify('/Campaign/BidLandscape/FetchAdGroupBidLandscapeData', {\r\n cid,\r\n uid,\r\n aid,\r\n __adcenterAJAX: 'true',\r\n });\r\n\r\n return http.post(uri, {\r\n contentType: 'application/x-www-form-urlencoded',\r\n data: {\r\n adgroupId,\r\n __RequestVerificationToken: $('input[name=\"__RequestVerificationToken\"]').val(),\r\n },\r\n });\r\n}\r\n\r\nfunction validateBid(newBidStr, bidType) {\r\n const bidRangeKey = BiddingStrategyToRangeKey[bidType] || 'KeywordBidRange';\r\n const bidRange = appConfig.get(bidRangeKey);\r\n const bid = i18n.parseDecimal(newBidStr);\r\n const floorPrice = bidRange.FloorValue;\r\n const ceilingPrice = bidRange.CeilingValue;\r\n\r\n if (bid < floorPrice) {\r\n // @April please avoid to use this method for i18n,\r\n // the same to other places, I just update to make it work temp\r\n return i18n.getString('AdGroupSummary_SearchBidLessThanFloorPrice').replace('#0#', i18n.formatDecimalToFixed(floorPrice));\r\n } else if (bid > ceilingPrice) {\r\n return i18n.getString('AdGroupSummary_SearchBidMoreThanCeilingPrice').replace('#0#', i18n.formatDecimalToFixed(ceilingPrice));\r\n }\r\n return '';\r\n}\r\n\r\nfunction logBidLandscape() {\r\n const { adgroup, adgroupBidLandscapeView, trackingId } = this;\r\n const selectMode = adgroupBidLandscapeView.viewModel.adgroupSelectMode();\r\n if (selectMode !== 'UpdateDefault') {\r\n adgroupBidLandscapeView.off('selectModeChange', logBidLandscape);\r\n }\r\n const activity = senario.fetch.create();\r\n const ariaData = {\r\n Id: adgroup.Id,\r\n ActionName: 'ViewAdGroupBidLandscape',\r\n UIData: {\r\n selectMode,\r\n bidList: adgroupBidLandscapeView.viewModel.dataArray(),\r\n currencyCode,\r\n currentBid: getCurrentAppliedBid(adgroup),\r\n startDate: adgroupBidLandscapeView.viewModel.startDateString(),\r\n endDate: adgroupBidLandscapeView.viewModel.endDateString(),\r\n trackingId,\r\n },\r\n };\r\n activity.trace(ariaData, 'ViewAdGroupBidLandscape');\r\n}\r\n\r\nfunction onCallReturnedForBidLandscape({\r\n adgroup,\r\n response,\r\n event,\r\n scope,\r\n container,\r\n isForVNext,\r\n applyCallback,\r\n applyBlockerEl,\r\n inKeywordCreationWorkflow,\r\n}) {\r\n const trackingId = generateGuid();\r\n const originalBid = getCurrentAppliedBid(adgroup);\r\n const adgroupBidLandscapeView = new AdGroupBidLandscape({\r\n parentItem: {\r\n Id: adgroup.Id,\r\n CurrentValue: originalBid.toString(),\r\n EntityName: adgroup.Name,\r\n campaignType: adgroup.Campaign.CampaignType,\r\n },\r\n i18n,\r\n dataToShow: response,\r\n isForVNext,\r\n inKeywordCreationWorkflow,\r\n helpId: inKeywordCreationWorkflow ? 'app54679' : null,\r\n });\r\n\r\n const { DisplayBiddingStrategyType: bidType } = adgroup;\r\n\r\n adgroupBidLandscapeView.on('cancel', () => {\r\n popupUtil.close();\r\n });\r\n\r\n adgroupBidLandscapeView.on('update', ({ valueToApply }) => {\r\n // check whether input is withing bid allowed range\r\n adgroupBidLandscapeView.markInputValueInvalid(validateBid(valueToApply, bidType));\r\n });\r\n\r\n adgroupBidLandscapeView.on('apply', () => {\r\n // for clear custom bid, let user confirm whether they want to clear all keywords bid\r\n if (adgroupBidLandscapeView.clearBid()) {\r\n // confirm whether user want to clear all keyword's custom bids\r\n // eslint-disable-next-line no-alert\r\n const toSave = window.confirm(i18n.getString('AdGroupBidLandscape_Uniform_SaveConfirmMessageBox'));\r\n if (!toSave) {\r\n return;\r\n }\r\n }\r\n\r\n const activity = adgroupBidLandscapeView.clearBid() ?\r\n senario.applyBidLandscapeAndClearCustomBid.create() :\r\n senario.applyBidLandscapeWitoutClearCustomBid.create();\r\n\r\n activity.trace(\r\n `Getting bid update request from bid landscape, original bid is: ${originalBid}, value trying to apply is:${adgroupBidLandscapeView.valueToApply()}`,\r\n 'ApplyAdGroupBidLandsapeFromCampaignUI'\r\n );\r\n if (adgroupBidLandscapeView.clearBid()) {\r\n customApply(\r\n adgroup,\r\n adgroupBidLandscapeView,\r\n activity,\r\n scope,\r\n applyCallback,\r\n applyBlockerEl,\r\n trackingId\r\n );\r\n } else {\r\n defaultApply(\r\n adgroup,\r\n adgroupBidLandscapeView,\r\n activity,\r\n applyCallback,\r\n applyBlockerEl,\r\n trackingId\r\n );\r\n }\r\n });\r\n\r\n adgroupBidLandscapeView.on('selectModeChange', logBidLandscape, { adgroup, adgroupBidLandscapeView, trackingId });\r\n\r\n adgroupBidLandscapeView.render();\r\n\r\n if (adgroupBidLandscapeView.hasData()) {\r\n popupUtil.render(adgroupBidLandscapeView.$el);\r\n } else {\r\n showPopup({\r\n positioningMethod: 'fit',\r\n positioningOptions: {\r\n anchorPosition: {\r\n top: event.clientY,\r\n left: event.clientX,\r\n width: $(event.target).width(),\r\n height: $(event.target).height(),\r\n },\r\n },\r\n contentView: adgroupBidLandscapeView,\r\n i18n,\r\n classes: ['bidlandscape-container'],\r\n container,\r\n anchor: $(event.target),\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * show bid landscape panel, and bind alll related actions including apply/cancel\r\n *\r\n * @param {Object} event - The backbone click event from where the quality score cell was clicked.\r\n * @param {Object} adgroup - adgroup entity that triggered this call\r\n * @param {Object} scope - scope which includes {customerId, accountId}\r\n * @param {Object} applyCallback - callback function after apply\r\n * @param {Object} inKeywordCreationWorkflow -\r\n * boolean to indicate if the landscape is showed on creation workflow\r\n * @returns {undefined}.\r\n*/\r\nexport function openAdGroupBidLandscape({\r\n event,\r\n scope,\r\n adgroup,\r\n container,\r\n isForVNext,\r\n applyCallback,\r\n applyBlockerEl,\r\n inKeywordCreationWorkflow = false,\r\n}) {\r\n // close previous one, and stop other bindings\r\n popupUtil.close();\r\n event.stopImmediatePropagation();\r\n\r\n fetchAdGroupBidLandscape(adgroup.Id, scope).then((res) => {\r\n onCallReturnedForBidLandscape({\r\n adgroup,\r\n response: res,\r\n event,\r\n scope,\r\n container,\r\n isForVNext,\r\n applyCallback,\r\n applyBlockerEl,\r\n inKeywordCreationWorkflow,\r\n });\r\n const activity = senario.fetch.create();\r\n activity.trace(`Fetch AdGroup bid landscape success for ${adgroup.Id}`, 'adgroupBidlandscape');\r\n }).catch(() => {\r\n onCallReturnedForBidLandscape({\r\n adgroup,\r\n response: {},\r\n event,\r\n scope,\r\n container,\r\n isForVNext,\r\n applyCallback,\r\n applyBlockerEl,\r\n inKeywordCreationWorkflow,\r\n });\r\n }).finally(withUiBlock($(event.target).parent()));\r\n}\r\n","import _ from 'underscore';\r\nimport { DS } from 'js-data';\r\nimport Promise from 'bluebird';\r\nimport mockData from './dummy-data.json';\r\n\r\nclass CustomerAdapter {\r\n // All of the methods shown here must return a promise\r\n\r\n // \"definition\" is a resource defintion that would\r\n // be returned by DS#defineResource\r\n\r\n // \"options\" would be the options argument that\r\n // was passed into the DS method that is calling\r\n // the adapter method\r\n\r\n findAll(/* definition, params, options */) {\r\n const result = _.clone(mockData.value);\r\n\r\n result.raw = mockData;\r\n result.totalCount = mockData['@odata.count'];\r\n\r\n return Promise.resolve(result);\r\n }\r\n}\r\n\r\nconst store = new DS();\r\n\r\nstore.registerAdapter('ads', new CustomerAdapter(), { default: true });\r\n\r\nexport const Ads = store.defineResource({\r\n name: 'Ads',\r\n idAttribute: 'Id',\r\n});\r\n","import { noop } from 'underscore';\r\nimport { Ads } from './dummy-js-data-resource';\r\nimport { Ad } from './schema';\r\n\r\nexport const dummyDataSource = {\r\n type: 'js-data',\r\n entity: Ads,\r\n primaryKey: 'Id',\r\n schema: Ad,\r\n options: {\r\n entitySet: {\r\n toJSON: noop,\r\n },\r\n },\r\n};\r\n","const PerformanceMetrics = {\r\n name: 'PerformanceMetrics',\r\n type: 'object',\r\n properties: {\r\n Impressions: {\r\n type: 'integer',\r\n nullable: true,\r\n },\r\n Clicks: {\r\n type: 'integer',\r\n nullable: true,\r\n },\r\n CTR: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n Conversions: {\r\n type: 'integer',\r\n nullable: true,\r\n },\r\n Spend: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AverageCPC: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AveragePosition: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AverageCPM: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n CPA: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n WebsiteCoverage: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AuctionWonPercent: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AuctionLostToBudgetPercent: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AuctionLostToRankPercent: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AuctionLostToLandingPercent: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AuctionLostToAdQualityPercent: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AuctionLostToBidPercent: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n ClickSharePercent: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n RevenueOnAdSpend: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n AdvertiserReportedRevenue: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n ConversionRate: {\r\n type: 'number',\r\n nullable: true,\r\n },\r\n },\r\n};\r\n\r\nexport const Label = {\r\n name: 'Label',\r\n type: 'object',\r\n key: 'Id',\r\n properties: {\r\n Id: {\r\n type: 'integer',\r\n key: true,\r\n nullable: true,\r\n },\r\n Name: {\r\n type: 'string',\r\n maxLength: 80,\r\n required: true,\r\n },\r\n Description: {\r\n type: 'string',\r\n maxLength: 200,\r\n },\r\n ColorCode: {\r\n type: 'integer',\r\n nullable: true,\r\n },\r\n AssociationCounts: {\r\n type: 'object',\r\n $schema: {\r\n name: 'LabelAssociationCounts',\r\n type: 'object',\r\n properties: {\r\n CampaignCount: {\r\n type: 'integer',\r\n },\r\n AdGroupCount: {\r\n type: 'integer',\r\n },\r\n AdCount: {\r\n type: 'integer',\r\n },\r\n KeywordCount: {\r\n type: 'integer',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport const CustomParameter = {\r\n name: 'CustomParameter',\r\n type: 'object',\r\n properties: {\r\n Key: {\r\n type: 'string',\r\n },\r\n Value: {\r\n type: 'string',\r\n },\r\n },\r\n};\r\n\r\nexport const AppUrl = {\r\n name: 'AppUrl',\r\n type: 'object',\r\n properties: {\r\n OsType: {\r\n type: 'string',\r\n },\r\n Url: {\r\n type: 'string',\r\n },\r\n },\r\n};\r\n\r\nexport const Appeal = {\r\n name: 'Appeal',\r\n type: 'object',\r\n properties: {\r\n IsAppealable: {\r\n type: 'boolean',\r\n },\r\n JustificationText: {\r\n type: 'string',\r\n },\r\n },\r\n};\r\n\r\nexport const Ad = {\r\n name: 'Ad',\r\n type: 'object',\r\n key: 'Id',\r\n properties: {\r\n Id: {\r\n type: 'integer',\r\n key: true,\r\n filterable: true,\r\n },\r\n Text: {\r\n type: 'string',\r\n filterable: true,\r\n },\r\n Title: {\r\n type: 'string',\r\n filterable: true,\r\n },\r\n DisplayUrl: {\r\n type: 'string',\r\n filterable: true,\r\n },\r\n DestinationUrl: {\r\n type: 'string',\r\n filterable: true,\r\n },\r\n Type: {\r\n type: 'string',\r\n enum: ['Text', 'Mobile', 'Product', 'AppInstall', 'DynamicSearch', 'ExpandedText', 'Responsive'],\r\n filterable: true,\r\n },\r\n DevicePreference: {\r\n type: 'string',\r\n enum: ['All', 'Mobile'],\r\n nullable: true,\r\n filterable: true,\r\n },\r\n Status: {\r\n type: 'string',\r\n filterable: true,\r\n enum: ['Inactive', 'Active', 'Paused', 'Deleted'],\r\n },\r\n DeliveryStatus: {\r\n type: 'string',\r\n filterable: true,\r\n enum: ['CreditCardExpired', 'IOExceeded', 'PaymentInformationMissing', 'InvalidFinancialStatusOther', 'MigrationPaused', 'CampaignDeleted', 'CampaignSuspended', 'CampaignBudgetPaused', 'DomainLanguageNotSupported', 'ShoppingCampaignStoreNotFound', 'ShoppingCampaignNoOffersPresent', 'AdGroupExpired', 'AdGroupDraft', 'AdGroupDeleted', 'CamAssetRejected', 'CamAssetDeleted', 'AdGroupTargetingTooNarrow', 'EditorialRejected', 'EditorialUnderAppeal', 'UrlInvalid', 'ApplicationNotFound', 'ApplicationDestinationUrlMismatch', 'PendingMetadataSync', 'EditorialPending', 'AssociationDeleted', 'CampaignUserPaused', 'AdGroupPrivacyPending', 'AdGroupUserPaused', 'AdUserPaused', 'KeywordMatchTypeAdGroupMediumCombinationInvalid', 'KeywordUserPaused', 'NegativeKeywordConflicts', 'EditorialApprovedLimited', 'LowSupply', 'LowQuality', 'BidBelowFirstPageBid', 'Incomplete', 'BudgetSuggestions', 'InlineOpportunity', 'GeoCodingIncomplete', 'ProductTargetUserPaused', 'AdExtensionNotPresent', 'AdExtensionDeleted', 'AdExtensionAssociationDeleted', 'StoreIdNotAssociated', 'AdGroupAudienceAssociationPaused', 'AdGroupAudienceAssociationExcluded', 'AdNotPresent', 'AdNotActive', 'ApplicationDestinationUrlValidationIncomplete', 'Eligible', 'DisclaimerInfoRejected'],\r\n },\r\n DeliveryStatusDetails: {\r\n type: 'array',\r\n items: {\r\n type: 'string',\r\n },\r\n },\r\n PerformanceMetrics: {\r\n type: 'object',\r\n $schema: PerformanceMetrics,\r\n },\r\n UpdatedOnLastImport: {\r\n type: 'boolean',\r\n },\r\n TrackingUrlTemplate: {\r\n type: 'string',\r\n filterable: true,\r\n },\r\n UrlCustomParameters: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n $schema: CustomParameter,\r\n },\r\n },\r\n FinalUrls: {\r\n type: 'array',\r\n items: {\r\n type: 'string',\r\n },\r\n },\r\n MobileFinalUrls: {\r\n type: 'array',\r\n items: {\r\n type: 'string',\r\n },\r\n },\r\n AppFinalUrls: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n $schema: AppUrl,\r\n },\r\n },\r\n Appeal: {\r\n type: 'object',\r\n $schema: Appeal,\r\n },\r\n Campaign: {\r\n type: 'object',\r\n filterable: ['Name', 'Id'],\r\n schema: {\r\n properties: {\r\n Name: {\r\n type: 'string',\r\n filterable: true,\r\n },\r\n Id: {\r\n type: 'number',\r\n filterable: true,\r\n },\r\n },\r\n },\r\n alias: {\r\n Name: {\r\n legacy: 'CampaignName',\r\n },\r\n Id: {\r\n legacy: 'CampaignId',\r\n },\r\n },\r\n },\r\n AdGroup: {\r\n type: 'object',\r\n filterable: ['Name', 'Id'],\r\n schema: {\r\n properties: {\r\n Name: {\r\n type: 'string',\r\n filterable: true,\r\n },\r\n Id: {\r\n type: 'number',\r\n filterable: true,\r\n },\r\n },\r\n },\r\n alias: {\r\n Name: {\r\n legacy: 'AdAdGroupName',\r\n },\r\n Id: {\r\n legacy: 'AdGroupId',\r\n },\r\n },\r\n },\r\n Properties: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n },\r\n },\r\n Labels: {\r\n type: 'array',\r\n items: {\r\n type: 'object',\r\n $schema: Label,\r\n },\r\n filterable: true,\r\n },\r\n NativePreference: {\r\n type: 'string',\r\n enum: ['None', 'NativePreference'],\r\n nullable: true,\r\n },\r\n TitlePart1: {\r\n type: 'string',\r\n },\r\n TitlePart2: {\r\n type: 'string',\r\n },\r\n Path1: {\r\n type: 'string',\r\n },\r\n Path2: {\r\n type: 'string',\r\n },\r\n },\r\n};\r\n\r\nexport const mockLabelSchema = {\r\n name: 'Label',\r\n type: 'object',\r\n key: 'Id',\r\n properties: {\r\n Id: {\r\n type: 'integer',\r\n key: true,\r\n nullable: true,\r\n },\r\n Name: {\r\n type: 'string',\r\n maxLength: 80,\r\n required: true,\r\n },\r\n Description: {\r\n type: 'string',\r\n maxLength: 200,\r\n },\r\n ColorCode: {\r\n type: 'integer',\r\n nullable: true,\r\n },\r\n AssociationCounts: {\r\n type: 'object',\r\n $schema: {\r\n name: 'LabelAssociationCounts',\r\n type: 'object',\r\n properties: {\r\n CampaignCount: {\r\n type: 'integer',\r\n },\r\n AdGroupCount: {\r\n type: 'integer',\r\n },\r\n AdCount: {\r\n type: 'integer',\r\n },\r\n KeywordCount: {\r\n type: 'integer',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n};\r\n","import Promise from 'bluebird';\r\nimport _, { map, object } from 'underscore';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport pkg from './package.json';\r\n\r\nexport const { version } = pkg;\r\n\r\nexport { dummyDataSource } from './demo/mock/dummy-data-source';\r\n\r\nexport function getAdsGridFactory(initializeGlobalContext = true) {\r\n if (initializeGlobalContext) {\r\n return globalContext.define(\r\n pkg.legacyDependencies,\r\n () => import(/* webpackMode: 'eager' */ './src/ads-gridview-factory')\r\n );\r\n }\r\n return import(/* webpackMode: 'eager' */ './src/ads-gridview-factory');\r\n}\r\n\r\nconst adEditorDependencies = [\r\n 'campaignui/feature/crud-ad/view/index',\r\n 'component/config/index',\r\n 'module/app/layout/index',\r\n 'SummaryDataContextManager',\r\n];\r\nlet adEditorInitializer = null;\r\n\r\nexport function getAdEditorInitializer(initializeGlobalContext = true) {\r\n if (initializeGlobalContext) {\r\n const adEditorPromise = new Promise((resolve) => {\r\n if (adEditorInitializer) {\r\n resolve(adEditorInitializer);\r\n } else {\r\n window.require(adEditorDependencies, () => {\r\n const dependecies = object(\r\n adEditorDependencies,\r\n map(adEditorDependencies, dep => window.require(dep))\r\n );\r\n\r\n globalContext.define(\r\n adEditorDependencies,\r\n () => import(/* webpackMode: 'eager' */ './src/ads-editor/initialize-ad-editor')\r\n )(dependecies).then((result) => {\r\n adEditorInitializer = result;\r\n resolve(result);\r\n });\r\n });\r\n }\r\n });\r\n return adEditorPromise;\r\n }\r\n return import(/* webpackMode: 'eager' */ './src/ads-editor/initialize-ad-editor');\r\n}\r\n\r\nlet adEditorInitializerWebpack = null;\r\n\r\nexport function getAdEditorInitializerWebpack(\r\n initializeGlobalContext = true,\r\n dependecies\r\n) {\r\n if (initializeGlobalContext) {\r\n const adEditorPromise = new Promise((resolve) => {\r\n if (adEditorInitializerWebpack) {\r\n resolve(adEditorInitializerWebpack);\r\n } else {\r\n globalContext.define(\r\n adEditorDependencies,\r\n () => import(/* webpackMode: 'eager' */ './src/ads-editor/initialize-ad-editor')\r\n )(dependecies).then((result) => {\r\n adEditorInitializerWebpack = result;\r\n resolve(result);\r\n });\r\n }\r\n });\r\n return adEditorPromise;\r\n }\r\n return import(/* webpackMode: 'eager' */ './src/ads-editor/initialize-ad-editor');\r\n}\r\n\r\nfunction isSmartShoppingCampaign(permissions, currentCampaign) {\r\n return permissions.IsSmartShoppingCampaignEnabled && currentCampaign\r\n && (currentCampaign.CampaignSubType === 12\r\n || currentCampaign.CampaignSubType === 'ShoppingSmartAds'); // eslint-disable-line\r\n}\r\n\r\nexport function shouldCallAPIToCreatePA(\r\n currentCampaign, currentAdGroup, permissions,\r\n adsCountMap, isNewUI = false\r\n) {\r\n let shouldCall = false;\r\n\r\n if (currentAdGroup) { // check if ad group level\r\n if (isSmartShoppingCampaign(permissions, currentCampaign)) { // if smart shopping campaign\r\n const isResponsiveAdForSSCEnabled = permissions.IsResponsiveAdForSSCEnabled;\r\n const currentAdsCount = adsCountMap[currentAdGroup.Id];\r\n const hasResponsiveAd = _.result(currentAdsCount, 'Responsive', false);\r\n const hasProductAd = _.result(currentAdsCount, 'Product', false);\r\n\r\n if ((isResponsiveAdForSSCEnabled && hasResponsiveAd && !hasProductAd) ||\r\n (!isResponsiveAdForSSCEnabled && !hasProductAd)) {\r\n shouldCall = true;\r\n }\r\n } else if (currentCampaign.CampaignType === 2\r\n || (isNewUI && currentCampaign.CampaignType === 'Shopping')) {\r\n // in newUI, check if CampaignType === 'Shopping'\r\n shouldCall = true;\r\n }\r\n }\r\n return shouldCall;\r\n}\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\n\r\nconst AdsEditorView = globalContext.requireDefault('campaignui/feature/crud-ad/view/index');\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst layout = globalContext.require('module/app/layout/index');\r\nconst SummaryDataContextManager = globalContext.require('SummaryDataContextManager');\r\nconst permissions = appConfig.get('Permissions') || {};\r\nconst {\r\n IsImpressionTrackingUrlsEnabled,\r\n IsAmplifyEnabled,\r\n EnableIASVerifiedImpressionTrackingURLsForBrandAwarenessCampaign,\r\n dynamic = {},\r\n} = permissions;\r\nconst {\r\n XandrDisplayAdsCampaigns,\r\n EnableDisplayAdsIasTracking,\r\n MultiAdFormat,\r\n} = dynamic;\r\n\r\nconst isIASForAdEnabled = EnableIASVerifiedImpressionTrackingURLsForBrandAwarenessCampaign || (XandrDisplayAdsCampaigns && EnableDisplayAdsIasTracking);\r\n\r\nconst currentAdGroup = appConfig.get('CurrentAdGroup');\r\n\r\nfunction getUpgradedUrl(item) {\r\n const {\r\n FinalUrls, Type, MobileFinalUrls, UrlCustomParameters, TrackingUrlTemplate, FinalUrlSuffix,\r\n DestinationUrl,\r\n } = item;\r\n const isFinal = Type === 'DynamicSearch' ?\r\n !_.isEmpty(UrlCustomParameters) || !_.isEmpty(TrackingUrlTemplate) ||\r\n !_.isEmpty(FinalUrlSuffix) :\r\n !_.isEmpty(FinalUrls);\r\n\r\n if (isFinal) {\r\n return {\r\n FinalUrls,\r\n MobileFinalUrls,\r\n TrackingUrlTemplate,\r\n UrlCustomParameters,\r\n FinalUrlSuffix,\r\n };\r\n }\r\n\r\n return {\r\n DestinationUrl,\r\n };\r\n}\r\n\r\nfunction getBiddingScheme(item) {\r\n const biddingStrategyType = _.get(item, 'Campaign.DisplayBiddingStrategyType');\r\n if (!_.isString(biddingStrategyType || _.isEmpty(biddingStrategyType))) {\r\n return {};\r\n }\r\n\r\n return { BiddingScheme: { Type: biddingStrategyType } };\r\n}\r\n\r\nfunction getModelForCreateOrEdit(item) {\r\n const {\r\n Id,\r\n Type,\r\n Text,\r\n TextPart2,\r\n Title,\r\n FinalUrls,\r\n MobileFinalUrls,\r\n NativePreference,\r\n DevicePreference,\r\n DisplayUrl,\r\n PromotionalText,\r\n TitlePart1,\r\n TitlePart2,\r\n TitlePart3,\r\n Path1,\r\n Path2,\r\n AppStoreId,\r\n AppPlatform,\r\n Headline,\r\n LongHeadline,\r\n TrackingUrlTemplate,\r\n FinalUrlSuffix,\r\n UrlCustomParameters,\r\n BusinessName,\r\n LandscapeImageMediaId,\r\n SquareImageMediaId,\r\n LandscapeLogoMediaId,\r\n SquareLogoMediaId,\r\n CallToAction,\r\n CallToActionLanguage,\r\n CallToActionText,\r\n CallToActionAriaText,\r\n MediaUrl,\r\n DeviceType,\r\n AltText,\r\n Headlines,\r\n LongHeadlines,\r\n Descriptions,\r\n Images,\r\n ImpressionTrackingUrls,\r\n VerifiedTrackingSettings,\r\n Videos,\r\n BoostAnchors,\r\n HotSpots,\r\n Campaign,\r\n AdSubType,\r\n LegacyResponsiveAd,\r\n } = item;\r\n switch (Type) {\r\n case 'Text':\r\n return _.extend({\r\n Id,\r\n Type,\r\n Title,\r\n Text,\r\n DisplayUrl,\r\n DevicePreference,\r\n NativePreference,\r\n }, getUpgradedUrl(item));\r\n case 'ExpandedText':\r\n return _.extend({\r\n Id,\r\n Type,\r\n Text,\r\n TextPart2,\r\n TitlePart1,\r\n TitlePart2,\r\n TitlePart3,\r\n Path1,\r\n Path2,\r\n NativePreference,\r\n DisplayUrl,\r\n }, getUpgradedUrl(item));\r\n case 'Product':\r\n return {\r\n Id,\r\n Type,\r\n PromotionalText,\r\n };\r\n case 'AppInstall':\r\n return _.extend({\r\n Id,\r\n Type,\r\n Title,\r\n Text,\r\n AppStoreId,\r\n AppPlatform,\r\n AltText,\r\n DeviceType,\r\n MediaUrl,\r\n DevicePreference,\r\n }, getUpgradedUrl(item));\r\n case 'DynamicSearch':\r\n return _.extend({\r\n Id,\r\n Type,\r\n Text,\r\n TextPart2,\r\n DisplayUrl,\r\n Path1,\r\n Path2,\r\n DevicePreference,\r\n }, getUpgradedUrl(item));\r\n case 'ResponsiveSearch':\r\n return _.extend({\r\n Id,\r\n Type,\r\n Headlines,\r\n Descriptions,\r\n Path1,\r\n Path2,\r\n NativePreference,\r\n DisplayUrl,\r\n }, getUpgradedUrl(item));\r\n case 'Responsive':\r\n default:\r\n return _.extend(\r\n IsAmplifyEnabled ? { HotSpots } : {},\r\n IsAmplifyEnabled ? { BoostAnchors } : {},\r\n {\r\n Id,\r\n FinalUrls,\r\n MobileFinalUrls,\r\n TrackingUrlTemplate,\r\n UrlCustomParameters,\r\n Text,\r\n Type,\r\n BusinessName,\r\n Headline,\r\n LongHeadline,\r\n Headlines,\r\n LongHeadlines,\r\n Descriptions,\r\n LandscapeImageMediaId,\r\n SquareImageMediaId,\r\n LandscapeLogoMediaId,\r\n SquareLogoMediaId,\r\n CallToAction,\r\n CallToActionLanguage,\r\n CallToActionText,\r\n CallToActionAriaText,\r\n Images,\r\n Videos,\r\n FinalUrlSuffix,\r\n Campaign,\r\n LegacyResponsiveAd,\r\n },\r\n getBiddingScheme(item),\r\n IsImpressionTrackingUrlsEnabled ? { ImpressionTrackingUrls } : {},\r\n isIASForAdEnabled ? { VerifiedTrackingSettings } : {},\r\n MultiAdFormat ? { AdSubType } : {}\r\n );\r\n }\r\n}\r\n\r\nexport function initializeAdEditor({\r\n scope,\r\n gridView,\r\n item = {},\r\n firstTextItem = {},\r\n firstExpandedItem = {},\r\n firstResponsiveSearchItem = {},\r\n isForVNext = false,\r\n newI18n,\r\n inlineSuggestionsEnabled = false,\r\n lazyInject,\r\n showSaveAndCreateAnother = true,\r\n isOpenCreatePanel = false,\r\n shouldSendOpportunityLog,\r\n logOpportunity,\r\n perfMarker,\r\n serverContext,\r\n preferenceService,\r\n triggerAdItemRefresh = false,\r\n navigateToSingleAdEditor = _.noop,\r\n loadClipchampPlayer,\r\n}) {\r\n const parameters = _.extend({\r\n className: isForVNext ? 'panel' : '',\r\n isForVNext,\r\n newI18n,\r\n inlineSuggestionsEnabled,\r\n isTraditionalChinese: currentAdGroup && currentAdGroup.Language === 24,\r\n campaignType: item && item.Campaign ? item.Campaign.CampaignType : null,\r\n campaignSubType: item && item.Campaign ? item.Campaign.CampaignSubType : null,\r\n isDynamicDescriptionEnabled: item && item.Campaign && item.Campaign.CampaignSettings ? _.result(_.first(item.Campaign.CampaignSettings), 'DynamicDescriptionEnabled') : null,\r\n showSaveAndCreateAnother,\r\n isOpenCreatePanel,\r\n shouldSendOpportunityLog,\r\n logOpportunity,\r\n parentPerfMarker: perfMarker,\r\n serverContext,\r\n preferenceService,\r\n loadClipchampPlayer,\r\n }, scope);\r\n\r\n if (!_.isEmpty(item)) {\r\n parameters.model = getModelForCreateOrEdit(item);\r\n }\r\n\r\n if (!_.isEmpty(firstTextItem)) {\r\n parameters.firstTextAdModel = getModelForCreateOrEdit(firstTextItem);\r\n }\r\n if (!_.isEmpty(firstExpandedItem)) {\r\n parameters.firstExpandedTextAdModel = getModelForCreateOrEdit(firstExpandedItem);\r\n }\r\n if (!_.isEmpty(firstResponsiveSearchItem)) {\r\n parameters.firstResponsiveSearchAdModel = getModelForCreateOrEdit(firstResponsiveSearchItem);\r\n }\r\n\r\n if (parameters.campaignType === 'LinkedIn') {\r\n navigateToSingleAdEditor({\r\n campaignId: item.Campaign.Id,\r\n adGroupId: item.AdGroup.Id,\r\n adId: item.Id,\r\n });\r\n return;\r\n }\r\n\r\n const adEditor = new AdsEditorView(parameters);\r\n const backboneGridView = lazyInject ? lazyInject().backboneGridView : gridView;\r\n const { gridDidUpdateHandler } = backboneGridView;\r\n\r\n if (isForVNext) {\r\n backboneGridView.overrideWith(adEditor.render());\r\n\r\n adEditor.on('close', () => {\r\n backboneGridView.overrideWith(null);\r\n adEditor.remove();\r\n if (_.isFunction(gridDidUpdateHandler)) {\r\n gridDidUpdateHandler();\r\n }\r\n });\r\n\r\n adEditor.on('adgroup selected', (adGroup) => {\r\n if (_.get(adGroup, 'Campaign.CampaignType') !== 'LinkedIn') { return; }\r\n\r\n navigateToSingleAdEditor({\r\n campaignId: adGroup.Campaign.Id,\r\n adGroupId: adGroup.Id,\r\n });\r\n });\r\n } else {\r\n const editSelector = '#adEditContainer';\r\n const editorContainer = $(editSelector);\r\n\r\n editorContainer.empty().append(adEditor.render().el).show();\r\n const el = editorContainer.find('.form-control:visible:first');\r\n if (el) {\r\n el.focus();\r\n }\r\n\r\n layout.scrollTo(editorContainer);\r\n const { toolbar } = gridView.grid;\r\n const gridContainer = gridView.$el.closest('.bingadsgrid');\r\n const gridToolbar = gridContainer.find('.grid-toolbar');\r\n gridToolbar.hide();\r\n toolbar.gridToolbarGroup.hideAllToolbars();\r\n\r\n adEditor.on('close', () => {\r\n // show toolbar\r\n gridToolbar.show();\r\n editorContainer.hide();\r\n toolbar.gridToolbarGroup.showAllToolbars();\r\n adEditor.remove();\r\n });\r\n }\r\n\r\n adEditor.on('save', () => {\r\n SummaryDataContextManager.updateContext(['AdGrid']);\r\n backboneGridView.view.refresh(true);\r\n if (triggerAdItemRefresh) {\r\n backboneGridView.grid.showAdStrength.refreshAdItem();\r\n }\r\n });\r\n}\r\n","import _ from 'underscore';\r\n\r\nconst StrengthIcon = {\r\n Poor: 'Error',\r\n Average: 'Warning',\r\n Good: 'Completed',\r\n Excellent: 'Completed',\r\n};\r\n\r\nexport function getStrengthIcon(strength) {\r\n return StrengthIcon[strength] || 'Error';\r\n}\r\n\r\nexport function getActionItems({ i18n, actionItems }) {\r\n const actionItemsList = [];\r\n _.each(actionItems, (item) => {\r\n actionItemsList.push(i18n.getString(`Ad_Strength_Suggestion_${item}`));\r\n });\r\n return actionItemsList;\r\n}\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Label, mergeStyleSets, Callout, DirectionalHint } from '@fluentui/react';\r\nimport { HelpIcon } from '@bingads-webui-campaign-react/help';\r\nimport { PrimaryButton } from '@fluentui/react/lib/Button';\r\nimport { NewAdStrengthScore } from '@bingads-webui-campaign-react/responsive-search-ad-suggestion';\r\nimport { FontIcon } from '@fluentui/react/lib/Icon';\r\n\r\nimport { getAdEditorInitializer, getAdEditorInitializerWebpack } from '../../index';\r\nimport { getActionItems, getStrengthIcon } from './ad-strength-helper';\r\n\r\nfunction showAdEditor({\r\n adStrengthEntity, adsGrid,\r\n}) {\r\n const { Campaign: campaign, AdGroup: adgroup, Type: type } = adStrengthEntity;\r\n const campaignId = (campaign && campaign.Id) || 0;\r\n const adGroupId = (adgroup && adgroup.Id) || 0;\r\n const {\r\n newI18n,\r\n IsRSASuggestionCMUIEnabled,\r\n deps,\r\n shouldSendOpportunityLog,\r\n logOpportunity,\r\n adsTabPerfMarker,\r\n serverContext,\r\n preferenceService,\r\n } = adsGrid;\r\n const initializer = deps\r\n ? () => getAdEditorInitializerWebpack(\r\n true,\r\n deps.adEditorDependencies\r\n )\r\n : getAdEditorInitializer;\r\n const inlineSuggestionsEnabled =\r\n type === 'ResponsiveSearch' ?\r\n IsRSASuggestionCMUIEnabled : false;\r\n ReactDOM.unmountComponentAtNode(document.querySelector('#rejectionContainer'));\r\n initializer().then(({ initializeAdEditor }) => {\r\n initializeAdEditor({\r\n scope: {\r\n campaignId,\r\n adGroupId,\r\n campaignType: _.result(campaign, 'CampaignType'),\r\n },\r\n gridView: adsGrid,\r\n newI18n,\r\n item: adStrengthEntity,\r\n isForVNext: true,\r\n inlineSuggestionsEnabled,\r\n shouldSendOpportunityLog,\r\n logOpportunity,\r\n perfMarker: adsTabPerfMarker,\r\n serverContext,\r\n preferenceService,\r\n });\r\n });\r\n}\r\nexport function renderSuggestionPopup({\r\n i18n, event, containerDOM, adStrengthEntity, adsGrid, closeAdStrengthPopup,\r\n}) {\r\n const {\r\n AdStrength, AdStrengthActionItems, Id, AdGroup, Campaign, FinalUrls,\r\n } = adStrengthEntity;\r\n const { customerId: cid, accountId: aid } = adsGrid.scope;\r\n const actionItemsStrings = getActionItems({ i18n, actionItems: AdStrengthActionItems }) || [];\r\n const iconName = getStrengthIcon(AdStrength);\r\n const styles = mergeStyleSets({\r\n callout: {\r\n width: 'fit-content',\r\n padding: '20px 24px 20px 24px',\r\n fontSize: '12px',\r\n },\r\n pendingcallout: {\r\n width: 320,\r\n padding: '20px 24px',\r\n fontSize: '12px',\r\n },\r\n container: {},\r\n title: {\r\n marginBottom: 12,\r\n '& label': {\r\n fontSize: '20px',\r\n },\r\n },\r\n chart: {\r\n '& .ad-strength-title': {\r\n fontWeight: 600,\r\n fontSize: '14px',\r\n '& .icon': {\r\n fontSize: 10,\r\n marginRight: 4,\r\n height: 20,\r\n width: 20,\r\n lineHeight: '20px',\r\n fontWeight: 600,\r\n textAlign: 'center',\r\n borderRadius: '50%',\r\n },\r\n '& .Poor': {\r\n color: '#BC0505',\r\n background: '#FDE7E9',\r\n },\r\n '& .Average': {\r\n color: '#D83B01',\r\n background: '#FFF4CE',\r\n },\r\n '& .Good': {\r\n color: '#107C10',\r\n background: '#DFF6DD',\r\n },\r\n '& .Excellent': {\r\n color: '#107C10',\r\n background: '#DFF6DD',\r\n },\r\n },\r\n '& .ad-strength-score-vnext': {\r\n marginTop: 8,\r\n },\r\n },\r\n body: {\r\n padding: '10px 0px 0px 0px',\r\n listStylePosition: 'inside',\r\n },\r\n link: {\r\n fontWeight: '700',\r\n },\r\n });\r\n\r\n ReactDOM.render(\r\n (\r\n
\r\n { AdStrength &&\r\n \r\n { AdStrength === 'Pending' ?\r\n
{i18n.getString('Ad_Strength_Pending_Message')}
:\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {i18n.getString(`Ad_Strength_${AdStrength}_Performance`)}\r\n
\r\n \r\n
\r\n
    \r\n {actionItemsStrings.map(item =>\r\n
  • {item}
  • )}\r\n
\r\n {\r\n adsGrid.activityAdStrengthLogger.signal(`ad strength click improve ad - campaignId:{\"AdId\":\"${Id}\",\"OrderId\":\"${AdGroup.Id}\",\"CampaignId\":\"${Campaign && Campaign.Id}\",\"cid\":\"${cid}\",\"aid\":\"${aid}\",\"FinalUrls\": \"${FinalUrls && FinalUrls.toString()}\",\"adstrength\":\"${AdStrength}\"}`);\r\n showAdEditor({\r\n adsGrid,\r\n adStrengthEntity,\r\n });\r\n }}\r\n > {i18n.getString('Ad_Strength_Improve_ad')}\r\n \r\n
\r\n }\r\n
\r\n }\r\n
\r\n ),\r\n containerDOM\r\n );\r\n}\r\n","export const instrumentationSchema = {\r\n scenario: [\r\n {\r\n name: 'adsGrid',\r\n value: 'Ads Grid',\r\n activity: [\r\n {\r\n name: 'fetchRejectionReason',\r\n value: 'Fetch Rejection Reason',\r\n },\r\n {\r\n name: 'loadRSAAssetReportLink',\r\n value: 'Load RSA Asset Report Link',\r\n },\r\n {\r\n name: 'adStrength',\r\n value: 'RSA ad strength',\r\n },\r\n ],\r\n }],\r\n};\r\n","/* eslint-disable no-bitwise */\r\n/* istanbul ignore file */\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport $ from 'jquery';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { getEditorialTemplates, ENTITY } from '@bingads-webui-campaign/delivery-status-popup-factory';\r\nimport { queryify } from '@bingads-webui/url-util';\r\nimport { http } from '@bingads-webui/http-util';\r\nimport { DisclaimerAdExtension } from '@bingads-webui-campaign/campaign-ui-schemas';\r\n\r\nconst odata = globalContext.require('module/service/communication/channel/odata');\r\nconst SharedRepository = globalContext.require('campaignui/feature/adextension-shared/service/repository');\r\n\r\nfunction fetchRejectionReasons({ scope, ad }) {\r\n const url = `Advertiser/Customers(${scope.customerId})/Accounts(${scope.accountId})/Ads/Default.EditorialReasons`;\r\n return odata.post(url, {\r\n EntityIdsParentIds: [{ EntityId: ad.Id, ParentId: ad.AdGroup.Id }],\r\n });\r\n}\r\n\r\nexport function getReasonTemplates({\r\n ad, scope, errI18n, locationI18n, editorialRejection,\r\n i18n, commonI18n, logScenario, permissions,\r\n}, deliveryStatus) {\r\n return new Promise((resolve) => {\r\n const logActivity = logScenario.fetchRejectionReason.create();\r\n // Log if Ad Id is invalid\r\n if (!ad.Id || !_.isNumber(ad.Id)) {\r\n logActivity.error(`Invalid Ad Id: ${ad.Id}`);\r\n }\r\n const IsForDisclaimer = _.contains(['DisclaimerInfoRejected', 'DisclaimerInfoApprovedLimited', 'DisclaimerInfoRejectedAppealRejected', 'DisclaimerInfoApprovedLimitedAppealRejected'], deliveryStatus);\r\n if (IsForDisclaimer) {\r\n const disclaimerRepos = new SharedRepository({\r\n schema: DisclaimerAdExtension,\r\n afterChangeComitted: _.noop,\r\n });\r\n disclaimerRepos.association.findAll({\r\n where: {\r\n campaignId: ad.Campaign.Id,\r\n },\r\n }).then((disclaimerData) => {\r\n let url = '/campaign/AdExtensions.m/GetRejectionReasonData';\r\n const args = _.extend({\r\n aid: scope.accountId,\r\n cid: scope.customerId,\r\n cmpid: scope.campaignId,\r\n type: 'disclaimer',\r\n adExtensionId: disclaimerData && disclaimerData[0] && disclaimerData[0].Id,\r\n campaignId: scope.campaignId || ad.Campaign.Id,\r\n version: disclaimerData && disclaimerData[0] && disclaimerData[0].Version,\r\n });\r\n url = queryify(url, args);\r\n return http.post({\r\n url,\r\n data: { __RequestVerificationToken: $('input[name=\"__RequestVerificationToken\"]').val() },\r\n contentType: 'application/x-www-form-urlencoded',\r\n }).then(({\r\n RejectionReasons,\r\n IsAppealable,\r\n }) => {\r\n const reasonTemplates = getEditorialTemplates({\r\n reasons: _.map(RejectionReasons, Reason => ({\r\n ReasonCode: Reason.ReasonCode,\r\n Location: Reason.Location,\r\n LanguageToCountries: [{\r\n PublisherCountries: Reason.RejectionCountries,\r\n }],\r\n })),\r\n editorialRejection,\r\n errI18n,\r\n i18n,\r\n locationI18n,\r\n commonI18n,\r\n entity: ENTITY.EXTENSION,\r\n deliveryStatus,\r\n permissions,\r\n isAppealable: IsAppealable,\r\n });\r\n resolve(reasonTemplates);\r\n });\r\n });\r\n } else {\r\n // send request to fetch editorial reasons\r\n fetchRejectionReasons({ scope, ad }).then((data) => {\r\n const { value } = data;\r\n if (!value || _.isEmpty(value) || _.isEmpty(value[0].Reasons)) resolve([i18n.getString('NoRejectionReasonFound')]);\r\n\r\n if (logActivity.signal && !value[0].IsAppealable) {\r\n logActivity.signal(`not appealable ad: ${ad.Id}`);\r\n }\r\n\r\n const options = {\r\n reasons: value[0].Reasons,\r\n editorialRejection,\r\n errI18n,\r\n i18n,\r\n locationI18n,\r\n commonI18n,\r\n logActivity,\r\n entity: ENTITY.AD,\r\n deliveryStatus,\r\n ad,\r\n isAppealable: value[0].IsAppealable,\r\n permissions,\r\n isDetectionRejectionTypeEnabled: permissions && permissions.dynamic && permissions.dynamic.DetectionRejectionType,\r\n };\r\n const reasonTemplates = getEditorialTemplates(options);\r\n\r\n resolve(reasonTemplates);\r\n });\r\n }\r\n });\r\n}\r\n","import _, { chain } from 'underscore';\r\nimport $ from 'jquery';\r\nimport URI from 'urijs';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { mergeStyleSets, Callout, DirectionalHint } from '@fluentui/react';\r\n\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { getFilteredCampaignTypeFromRawFilter } from '@bingads-webui-campaign/campaign-ui-common';\r\nimport { showLabelsPopup, filterOnLabelClick, navigateToManagePage } from '@bingads-webui-campaign/labels';\r\nimport { DeliveryStatusPopupFactory, isDeliveryStatusDisapproved, registerCountryListEvent } from '@bingads-webui-campaign/delivery-status-popup-factory';\r\nimport { updateGridQuery, appendScopeParameter, setUpErrorHandling } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { StyledMMABulkConversionView } from '@bingads-webui-campaign/responsive-ad-editor';\r\nimport { pgridFactory } from '@bingads-webui-campaign/pgrid-factory';\r\nimport { PageReady } from '@bingads-webui/page-ready';\r\nimport { getRoutePathById, allSiteMap } from '@bingads-webui-react/with-site-map';\r\nimport { keyVault } from '@bingads-webui-react/popup-manager';\r\nimport { HelpLink } from '@bingads-webui-react/help-link';\r\n\r\nimport { renderSuggestionPopup } from './ad-strength/suggestion-popup';\r\nimport { instrumentationSchema } from './instrumentation-schema';\r\nimport { getReasonTemplates } from './editorial-reason/show-rejection-reasons';\r\n\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ads-tab');\r\nconst AppealAggregator = globalContext.requireDefault('campaignui/feature/editorial-appeal/aggregator');\r\n\r\nconst locationI18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/location-targets');\r\nconst commonI18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ads-tab/common');\r\nconst errI18n = globalContext.require('component/api-errors-campaign/index');\r\nconst editorialRejection = globalContext.require('component/api-errors-campaign/map/editorialRejectionFwdLinkId');\r\nconst { handleSortChange } = globalContext.require('campaignui/feature/bingadsgrid/service/state-manager-helper');\r\nconst instrumentation = globalContext.requireDefault('campaignui/feature/instrumentation/index');\r\nconst Hotkeys = globalContext.require('component/hotkeys/index');\r\nconst CopyPaste = globalContext.require('module/view/bulkEdit/copyPaste');\r\nconst state = globalContext.require('component/state/index');\r\nconst preferenceService = globalContext.requireDefault('component/preference/service/index');\r\nconst popupContentKey = _.uniqueId(`${keyVault.hoveringPopup}-`);\r\n\r\nconst permissions = appConfig.get('Permissions');\r\n\r\nexport class AdsGrid extends DeterministicWrapperView {\r\n viewFactory({\r\n router,\r\n scope,\r\n filterService,\r\n preferenceConfig,\r\n getGridConfig,\r\n getPlugins,\r\n isForVNext = false,\r\n pageName,\r\n preexecuteFlag = false,\r\n campaignContext,\r\n newI18n,\r\n deps,\r\n serverContext,\r\n shouldSendOpportunityLog,\r\n logOpportunity,\r\n adsTabPerfMarker,\r\n }) {\r\n this.isInitialGrid = true;\r\n this.gridRemoved = false;\r\n this.instrumentation = instrumentation;\r\n\r\n const gridConfig = getGridConfig(this);\r\n\r\n this.deps = deps;\r\n this.serverContext = serverContext;\r\n this.preferenceService = preferenceService;\r\n this.shouldSendOpportunityLog = shouldSendOpportunityLog;\r\n this.logOpportunity = logOpportunity;\r\n this.adsTabPerfMarker = adsTabPerfMarker;\r\n this.gridName = gridConfig.name;\r\n this.isForVNext = isForVNext;\r\n this.scope = scope;\r\n this.router = router;\r\n this.newI18n = newI18n;\r\n this.filterService = filterService;\r\n instrumentation.addScenario(instrumentationSchema);\r\n this.logScenario = instrumentation.adsGrid.create();\r\n this.activityLogger = this.logScenario.loadRSAAssetReportLink && this.logScenario.loadRSAAssetReportLink.create();\r\n this.activityAdStrengthLogger = this.logScenario.adStrength && this.logScenario.adStrength.create();\r\n\r\n\r\n this.rejectionPopupContainerSelector = '#rejectionContainer';\r\n this.ExtaDeprecatedPopupContainerSelector = '#deprecatedContainer';\r\n this.popoverId = 'delivery-status-popup-callout';\r\n this.appealAggregator = null;\r\n this.disclaimerAppealAggregator = null;\r\n this.pageName = pageName;\r\n this.preexecuteFlag = preexecuteFlag;\r\n this.campaignContext = campaignContext;\r\n this.isMCCLabelEnabled = permissions ? permissions.IsAccountLabelsEnabled : false;\r\n this.isEditorialCategoryEnabled = permissions && permissions.IsEditorialCategoryEnabled;\r\n this.isEnabledForGoogleImportVideoAd = permissions && permissions.IsGoogleImportVideoAdsEnabled;\r\n\r\n if (!permissions.dynamic.AdsPageDFMV2) {\r\n // If DFMv2 is disabled, we need to add the error handler for dataSource\r\n setUpErrorHandling({\r\n i18n,\r\n scope,\r\n gridView: this,\r\n dataSource: gridConfig.dataSource,\r\n });\r\n }\r\n\r\n const RequestExceptionCallBack =\r\n (adsGrid, isAdGroupLevel, container = null, render = false) => {\r\n if (!this || !this.appealAggregator) {\r\n this.appealAggregator = new AppealAggregator({\r\n grid: adsGrid.grid,\r\n controller: 'Ads',\r\n submit: 'SubmitAppeal',\r\n menuToFollow: 'button-ad-create',\r\n isForVNext: this.isForVNext,\r\n permissions,\r\n instrumentation,\r\n });\r\n }\r\n this.appealAggregator.openBulkEditor(\r\n i18n.getString('bulkAdAppealTitle'),\r\n container, isAdGroupLevel ? 'Ad' : null,\r\n render,\r\n i18n.getString('RequestException_Ads_Info_Message')\r\n );\r\n return this.appealAggregator.bulkEditor;\r\n };\r\n\r\n const RequestDisclaimerExceptionCallBack =\r\n (adsGrid) => {\r\n if (!this || !this.disclaimerAppealAggregator) {\r\n this.disclaimerAppealAggregator = new AppealAggregator({\r\n grid: adsGrid.grid,\r\n controller: 'Extension',\r\n submit: 'SubmitAppeal',\r\n menuToFollow: 'button-ad-create',\r\n isForVNext: this.isForVNext,\r\n permissions,\r\n instrumentation,\r\n requestExceptionFromPopup: true,\r\n });\r\n }\r\n this.disclaimerAppealAggregator.openBulkEditor(\r\n i18n.getString(_TL_('This extension does not meet Microsoft Advertising policies. If you feel your content falls within policy, please submit an appeal and we will happily review the content again. ')),\r\n null, null,\r\n false, null,\r\n _.extend(this.scope.values, { type: 'disclaimer' })\r\n );\r\n return this.disclaimerAppealAggregator.bulkEditor;\r\n };\r\n\r\n\r\n const RequestDisclaimerExceptionCallBackFromPopup = (adsGrid, id) => {\r\n const activity = this.instrumentation && this.instrumentation.editorial && this.instrumentation.editorial.create().clickRequestException.create();\r\n\r\n if (activity && activity.trace) {\r\n activity.trace(`click discliamer request exception for ad: ${id}`);\r\n }\r\n\r\n if (this.isForVNext) {\r\n this.trigger('closeDeliveryStatusPopup');\r\n } else {\r\n $(this.rejectionPopupContainerSelector).hide();\r\n }\r\n\r\n adsGrid.grid.gridView.deselectAll();\r\n adsGrid.grid.gridView.selectRow(id);\r\n const appealView = RequestDisclaimerExceptionCallBack(adsGrid);\r\n adsGrid.overrideWith(appealView.render());\r\n\r\n appealView.on('hide', () => {\r\n adsGrid.overrideWith(null);\r\n appealView.remove();\r\n });\r\n\r\n return appealView;\r\n };\r\n\r\n const RequestExceptionCallBackFromPopup = (adsGrid, isAdGroupLevel, id) => {\r\n const activity = this.instrumentation && this.instrumentation.editorial && this.instrumentation.editorial.create().clickRequestException.create();\r\n\r\n if (activity && activity.trace) {\r\n activity.trace(`click request exception for ad: ${id}, isAdGroupLevel: ${isAdGroupLevel}`);\r\n }\r\n\r\n if (this.isForVNext) {\r\n this.trigger('closeDeliveryStatusPopup');\r\n } else {\r\n $(this.rejectionPopupContainerSelector).hide();\r\n }\r\n\r\n adsGrid.grid.gridView.selectRow(id);\r\n\r\n if (isForVNext) {\r\n const appealView = RequestExceptionCallBack(adsGrid, isAdGroupLevel);\r\n adsGrid.overrideWith(appealView.render());\r\n\r\n appealView.on('hide', () => {\r\n adsGrid.overrideWith(null);\r\n appealView.remove();\r\n });\r\n\r\n return appealView;\r\n }\r\n\r\n return RequestExceptionCallBack(adsGrid, isAdGroupLevel, '.ads-bulk-appeal', true);\r\n };\r\n\r\n this.RequestExceptionCallBack = RequestExceptionCallBack;\r\n this.MMABulkConversion = StyledMMABulkConversionView;\r\n this.RequestExceptionCallBackFromPopup = RequestExceptionCallBackFromPopup;\r\n this.RequestDisclaimerExceptionCallBackFromPopup = RequestDisclaimerExceptionCallBackFromPopup;\r\n\r\n this.grid = pgridFactory({\r\n gridConfig,\r\n plugins: getPlugins(this),\r\n preferenceConfig,\r\n });\r\n\r\n this.grid.gridView.on('willUpdate', (changes) => {\r\n // for the perf issue, should not patch preference when init view\r\n if (this.isInitialGrid) {\r\n this.isInitialGrid = false;\r\n return;\r\n }\r\n const data = this.grid.gridView.dataSource.rawData;\r\n if (data && data.value) {\r\n const rsaList = _.filter(data.value, item => item.Type && item.Type === 'ResponsiveSearch');\r\n if (_.size(rsaList) > 0 && this.activityLogger) {\r\n this.activityLogger.trace('Load RSA in Ads Grid');\r\n }\r\n }\r\n handleSortChange(changes, this.grid.gridView, gridConfig.name);\r\n });\r\n\r\n this.grid.gridView.once('didReload', () => {\r\n this.grid.gridView.once('didRedraw', () => {\r\n PageReady.pageIsReady(this.pageName);\r\n }, this);\r\n });\r\n\r\n const bulkEditGridOptions = {\r\n filterService,\r\n gridView: this.grid.gridView,\r\n pgridPlugins: this.grid,\r\n isForVNext: this.isForVNext,\r\n };\r\n\r\n if (!this.preexecuteFlag && permissions.IsBulkEditCopyPasteEnabled) {\r\n Hotkeys.on('copy', CopyPaste.copy.bind(CopyPaste, 'ad', bulkEditGridOptions));\r\n\r\n if (this.isForVNext) {\r\n Hotkeys.on('paste', this.grid.paste.onClick);\r\n } else {\r\n Hotkeys.on('paste', CopyPaste.paste.bind(CopyPaste, bulkEditGridOptions));\r\n }\r\n Hotkeys.setup();\r\n }\r\n\r\n if (isForVNext) {\r\n this.filterService.on('filter-state-changed', () => {\r\n if (!this.gridRemoved) {\r\n const oldQuery = _.result(this.grid.gridView.get('query'), 'filter');\r\n const newQuery = _.result(this.filterService.getCombinedFilter(), 'query');\r\n // If filter has not changed, do not update grid query\r\n if (!_.isEqual(oldQuery, newQuery)) {\r\n updateGridQuery(\r\n this.grid.gridView,\r\n this.filterService.getCombinedFilter(), true\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.grid.gridView.on('didUpdate', () => {\r\n this.gridDidUpdateHandler();\r\n });\r\n\r\n this.grid.pagination.on('change:page-number', (pageNumber) => {\r\n this.setPageNumberToState(pageNumber);\r\n });\r\n\r\n return this.grid.gridView;\r\n }\r\n\r\n gridDidUpdateHandler = () => {\r\n const data = this.grid.gridView.dataSource.rawData;\r\n setTimeout(() => { // wait for toolbar displayed\r\n if (data) {\r\n const count = data['@ns.unfiltered.count'];\r\n this.setCreateBtnDisabled(this.shouldDisableCreateBtn(count));\r\n } else {\r\n this.setCreateBtnDisabled(this.shouldDisableCreateBtn(null));\r\n }\r\n });\r\n };\r\n\r\n remove() {\r\n if (!this.preexecuteFlag && permissions.IsBulkEditCopyPasteEnabled) {\r\n Hotkeys.reset();\r\n }\r\n this.gridRemoved = true;\r\n return super.remove();\r\n }\r\n\r\n setPageNumberToState(number) {\r\n state.set('pgridPageNumber', _.defaults({\r\n [this.gridName]: number,\r\n }, state.get('pgridPageNumber') || {}));\r\n }\r\n\r\n setCreateBtnDisabled(shouldDisableCreateBtn) {\r\n if (shouldDisableCreateBtn) {\r\n $('#button-ad-create').attr('disabled', 'disabled');\r\n } else {\r\n $('#button-ad-create').prop('disabled', false);\r\n }\r\n }\r\n\r\n shouldDisableCreateBtn(count) {\r\n const { waterfallFilters } = this.filterService;\r\n const getCampaignTypeGlobalFilter = () => {\r\n const rawFilter = chain(waterfallFilters).first().value();\r\n return getFilteredCampaignTypeFromRawFilter(rawFilter);\r\n };\r\n\r\n let campaign = appConfig.get('CurrentCampaign');\r\n const CurrentAccount = appConfig.get('CurrentAccount');\r\n if (this.isForVNext && this.campaignContext) {\r\n campaign = this.campaignContext.currentCampaign;\r\n }\r\n const isAudienceFeedBasedCampaignLevel = campaign &&\r\n (campaign.CampaignType === 8 || campaign.CampaignType === 'Audience') &&\r\n _.result(_.first(campaign.CampaignSettings), 'ProviderId');\r\n const { IsReadOnlyUser, IsResponsiveAdForSSCEnabled } = permissions;\r\n\r\n if (campaign && (campaign.CampaignSubType === 'ShoppingSmartAds' || campaign.CampaignSubType === 12)) {\r\n return count >= (IsResponsiveAdForSSCEnabled ? 2 : 1);\r\n }\r\n\r\n // if current campaign is hotel campaign, disable create button.\r\n if (permissions.dynamic && permissions.dynamic.HotelCampaign) {\r\n if (getCampaignTypeGlobalFilter() === 32 || (campaign && (campaign.CampaignType === 32 || campaign.CampaignType === 'Hotel'))) {\r\n return true;\r\n }\r\n }\r\n\r\n return !!((CurrentAccount && CurrentAccount.Status === 32) ||\r\n isAudienceFeedBasedCampaignLevel || IsReadOnlyUser);\r\n }\r\n\r\n renderTrunk() {\r\n if (this.isForVNext) {\r\n this.filterService.refreshSource();\r\n this.filterService.initializeCombinedFilterPromise.then(() => {\r\n if (!this.gridRemoved) {\r\n updateGridQuery(\r\n this.grid.gridView,\r\n this.filterService.getCombinedFilter(), true\r\n );\r\n }\r\n });\r\n }\r\n super.renderTrunk();\r\n }\r\n\r\n getTargetEnity(event) {\r\n const key = this.grid.gridView.keyOfElement(event.target);\r\n\r\n return this.grid.gridView.itemWithKey(key);\r\n }\r\n\r\n onManageLabelsClicked() {\r\n navigateToManagePage(this.router);\r\n }\r\n\r\n onLabelClicked(event) {\r\n const targetEntity = this.getTargetEnity(event);\r\n filterOnLabelClick(\r\n event,\r\n targetEntity.Labels,\r\n this.grid.gridView,\r\n this.filterService,\r\n this.isMCCLabelEnabled\r\n );\r\n }\r\n\r\n onLabelsRowClicked(event) {\r\n const targetEntity = this.getTargetEnity(event);\r\n let entityName;\r\n\r\n if (targetEntity.Type === 'ExpandedText') {\r\n if (permissions.IsExpandedTextAdV2Enabled && targetEntity.TitlePart3) {\r\n entityName = `${targetEntity.TitlePart1} | ${targetEntity.TitlePart2} | ${targetEntity.TitlePart3}`;\r\n } else {\r\n entityName = `${targetEntity.TitlePart1} | ${targetEntity.TitlePart2}`;\r\n }\r\n } else {\r\n entityName = targetEntity.Title || targetEntity.Text;\r\n }\r\n\r\n this.grid.gridView.trigger('willShowLabelsPopup');\r\n\r\n showLabelsPopup({\r\n labels: targetEntity.Labels,\r\n entityType: 'Ad',\r\n entityName,\r\n container: this.isForVNext ? $('.grid-and-disclaim-container') : this.$el,\r\n event,\r\n router: this.router,\r\n i18n,\r\n grid: this.grid,\r\n filterService: this.filterService,\r\n permissions,\r\n isMCCLabelEnabled: this.isMCCLabelEnabled,\r\n });\r\n if (this.isForVNext) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n onLinkToAssets(event) {\r\n const targetEntity = this.getTargetEnity(event);\r\n let adType = targetEntity.Type;\r\n const campaignType = targetEntity.Campaign && targetEntity.Campaign.CampaignType;\r\n const CampaignSubType = targetEntity.Campaign && targetEntity.Campaign.CampaignSubType;\r\n let adSubType = targetEntity.AdSubType;\r\n if (campaignType === 'Audience' && CampaignSubType === 'AudienceStatic' && adSubType === null) {\r\n adSubType = 'native';\r\n }\r\n\r\n if (targetEntity.Type === 'Responsive') {\r\n if (permissions.dynamic && permissions.dynamic.AudienceAssetReport && campaignType === 'Audience') {\r\n adType = 'Responsive';\r\n } else if (_.isEmpty(targetEntity.Headline) && _.isEmpty(targetEntity.Headlines) &&\r\n _.isEmpty(targetEntity.LongHeadline) && _.isEmpty(targetEntity.LongHeadlines) &&\r\n _.isEmpty(targetEntity.Text) && _.isEmpty(targetEntity.Descriptions)) {\r\n adType = 'DynamicResponsive';\r\n }\r\n }\r\n if (this.activityLogger) {\r\n this.activityLogger.trace(`Click Link to Assets:${adType}`);\r\n }\r\n this.router.navigateToRoute('adgroup_ad_assets', Object.assign({\r\n customer_id: state.get('customer_id'),\r\n account_id: state.get('account_id'),\r\n campaign_id: (targetEntity.Campaign && targetEntity.Campaign.Id) || state.get('campaign_id'),\r\n adgroup_id: (targetEntity.AdGroup && targetEntity.AdGroup.Id) || state.get('adgroup_id'),\r\n ad_id: targetEntity.Id,\r\n ad_type: adType,\r\n campaign_type: campaignType,\r\n }, adSubType ? {\r\n ad_sub_type: adSubType,\r\n } : {}));\r\n }\r\n\r\n addEditorialHandler({ ad, popupView }) {\r\n popupView.$('#requestException').on('click', _.partial(this.RequestExceptionCallBackFromPopup, this, false, ad.Id));\r\n popupView.$('#requestExceptionforExtension').on('click', _.partial(this.RequestDisclaimerExceptionCallBackFromPopup, this, ad.Id));\r\n popupView.$('#requestExceptionAdgroupLevel').on('click', _.partial(this.RequestExceptionCallBackFromPopup, this, true, ad.Id));\r\n const activity = this.instrumentation && this.instrumentation.editorial && this.instrumentation.editorial.create().toggleCountryList.create();\r\n registerCountryListEvent(popupView.$el, activity, { id: ad.Id, entity: 'ad' });\r\n }\r\n\r\n // this is only used by new ui\r\n hideRejectionPopup(e) {\r\n if ($(e.relatedTarget).closest(`#${this.popoverId}`).length === 0) {\r\n this.trigger('closeDeliveryStatusPopup');\r\n }\r\n }\r\n\r\n showRejectionReason(event) {\r\n const actionLinks = [];\r\n if (this.isForVNext) {\r\n const entity = this.getTargetEnity(event);\r\n if (entity && entity.DeliveryStatusDetails &&\r\n entity.DeliveryStatusDetails.includes('ShoppingCampaignNoOffersPresent')) {\r\n // use all site map to get merchant center url for different scopes\r\n const url = getRoutePathById(allSiteMap, 'merchant-center');\r\n const uri = new URI(url);\r\n appendScopeParameter(uri, this.scope);\r\n actionLinks.ShoppingCampaignNoOffersPresent = uri.toString();\r\n }\r\n\r\n if (this.isEnabledForGoogleImportVideoAd &&\r\n entity && entity.DeliveryStatusDetails &&\r\n entity.DeliveryStatusDetails.includes('GoogleImportAdVideoNeedRepair')) {\r\n actionLinks.GoogleImportAdVideoNeedRepair = _.get(entity, 'Videos[0].Asset.SourceUrl') || 'Unavailable';\r\n }\r\n }\r\n const factory = new DeliveryStatusPopupFactory({ grid: this.grid, i18n });\r\n const ad = factory.getEventTargetEntity(event);\r\n\r\n factory.showRejectionPopup({\r\n event,\r\n actionLinks,\r\n getCustomTemplate: _.partial(getReasonTemplates, {\r\n event,\r\n scope: this.scope,\r\n errI18n,\r\n locationI18n,\r\n editorialRejection,\r\n i18n,\r\n commonI18n,\r\n ad,\r\n grid: this.grid,\r\n logScenario: this.logScenario,\r\n permissions,\r\n }),\r\n useCustomTemplate: deliveryStatus =>\r\n isDeliveryStatusDisapproved(deliveryStatus) || (permissions && permissions.dynamic.AdExtensionInlineAppeal && _.contains(['DisclaimerInfoRejected', 'DisclaimerInfoApprovedLimited', 'DisclaimerInfoRejectedAppealRejected', 'DisclaimerInfoApprovedLimitedAppealRejected'], deliveryStatus)),\r\n containerSelector: this.rejectionPopupContainerSelector,\r\n view: this,\r\n popoverId: this.popoverId,\r\n instrumentation,\r\n inContextRepairRecommedationType: 'ad',\r\n afterRender: popup => this.addEditorialHandler({ ad, popupView: popup }),\r\n isEditorialCategoryEnabled: this.isEditorialCategoryEnabled,\r\n });\r\n }\r\n\r\n closeAdStrengthPopup() {\r\n if (window.popupManager) {\r\n window.popupManager.releaseLock(popupContentKey);\r\n }\r\n ReactDOM.unmountComponentAtNode(document.querySelector(this.rejectionPopupContainerSelector));\r\n this.adStrengthPopoverShown = false;\r\n }\r\n\r\n /* istanbul ignore next */\r\n hideAdStrengthPopup(e) {\r\n if ($(e.relatedTarget).closest('.ad-adstrength-callout').length === 0) {\r\n this.closeAdStrengthPopup();\r\n }\r\n }\r\n\r\n showAdStrengthPopup(event) {\r\n const { customerId: cid, accountId: aid } = this.scope;\r\n const containerDOM = document.querySelector(this.rejectionPopupContainerSelector);\r\n const adStrengthEntity = this.getTargetEnity(event);\r\n const {\r\n AdStrength, AdStrengthActionItems, Id, Campaign, AdGroup, FinalUrls,\r\n } = adStrengthEntity;\r\n\r\n if (AdStrength !== 'Pending' && (!AdStrengthActionItems || AdStrengthActionItems.length === 0)) {\r\n return;\r\n }\r\n if (window.popupManager) {\r\n window.popupManager.forceAcquireLock(popupContentKey);\r\n }\r\n\r\n this.activityAdStrengthLogger.signal(`ad strength - hover the column :{\"AdId\":\"${Id}\",\"OrderId\":\"${AdGroup.Id}\",\"CampaignId\":\"${Campaign && Campaign.Id}\",\"cid\":\"${cid}\",\"aid\":\"${aid}\",\"FinalUrls\": \"${FinalUrls && FinalUrls.toString()}\",\"adstrength\":\"${AdStrength}\"}`);\r\n renderSuggestionPopup({\r\n i18n, event, containerDOM, adStrengthEntity, adsGrid: this, closeAdStrengthPopup: this.closeAdStrengthPopup.bind(this),\r\n });\r\n\r\n this.adStrengthPopoverShown = true;\r\n }\r\n\r\n /* istanbul ignore next */\r\n showDeprecateReason(event) {\r\n const { customerId: cid, accountId: aid } = this.scope;\r\n const targetEntity = this.getTargetEnity(event);\r\n const campaignId = (targetEntity.Campaign && targetEntity.Campaign.Id) || state.get('campaign_id');\r\n const adgroupId = (targetEntity.AdGroup && targetEntity.AdGroup.Id) || state.get('adgroup_id');\r\n const type = targetEntity.Type;\r\n const containerDOM = document.querySelector(this.rejectionPopupContainerSelector);\r\n const href = `/campaign/vnext/recommendations/All?adGroupId=${adgroupId}&aid=${aid}&campaignId=${campaignId}&cid=${cid}&recommendationType=ResponsiveSearchAdsOpportunity`;\r\n const styles = mergeStyleSets({\r\n callout: {\r\n width: 320,\r\n padding: '20px 24px',\r\n fontSize: '12px',\r\n },\r\n title: { marginBottom: 12 },\r\n body: {},\r\n });\r\n ReactDOM.render(\r\n (\r\n \r\n {type === 'Text' &&\r\n
\r\n {this.newI18n.getString(_TL_('Standard Text ads will stop serving soon. We recommend upgrading your existing Standard Text ads to Responsive Search ads. To upgrade, visit the '))}\r\n {this.newI18n.getString(_TL_('Recommendations'))}\r\n {this.newI18n.getString(_TL_(' page: From the navigation menu on the left, hover over '))}\r\n {this.newI18n.getString(_TL_('Campaigns'))}\r\n {this.newI18n.getString(_TL_(' and select '))}\r\n {this.newI18n.getString(_TL_('Recommendations'))}\r\n {this.newI18n.getString(_TL_('. View and apply our recommendations for automatically creating new Responsive Search ads. '))}\r\n \r\n {this.newI18n.getString(_TL_('Learn more'))}\r\n \r\n
\r\n }\r\n {type === 'ExpandedText' &&\r\n
\r\n {this.newI18n.getString(_TL_('You can no longer create new or edit existing expanded text ads. We recommend upgrading your existing expanded text ads to responsive search ads to optimize performance and drive ROI (return on investment).'))}\r\n
\r\n {this.newI18n.getString(_TL_('Please review your '))} {this.newI18n.getString(_TL_('responsive search ad recommendations'))}{this.newI18n.getString(_TL_(' to make updates. '))}\r\n
\r\n }\r\n
\r\n ),\r\n containerDOM\r\n );\r\n\r\n this.deprecatePopoverShown = true;\r\n }\r\n /* istanbul ignore next */\r\n hideDeprecatePopover(e) {\r\n if ($(e.relatedTarget).closest('.ad-type-callout').length === 0) {\r\n ReactDOM.unmountComponentAtNode(document.querySelector(this.rejectionPopupContainerSelector));\r\n this.deprecatePopoverShown = false;\r\n }\r\n }\r\n\r\n get className() { return 'ads-grid'; }\r\n}\r\n\r\n","import _ from 'underscore';\r\nimport { StatusIconColumn as BaseStatusIconColumn } from '@bingads-webui-campaign/campaignui-common-columns';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { inlineEditSave } from '@bingads-webui-campaign/summary-grid-helper';\r\n\r\nconst jsData = globalContext.require('component/js-data-campaign/index');\r\nconst i18nErrors = globalContext.require('component/api-errors-campaign/index');\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst permissions = appConfig.get('Permissions');\r\nconst enableGridFlexLayout = _.result(permissions.dynamic, 'GridFlexLayout', false);\r\n\r\nfunction resourceForAdType(type) {\r\n if (type === 'LinkedIn') {\r\n return jsData.ResponsiveAd;\r\n }\r\n return jsData[`${type}Ad`] || jsData.Ad;\r\n}\r\n\r\nexport class StatusIconColumn extends BaseStatusIconColumn {\r\n constructor(options) {\r\n super(_.extend(options, {\r\n enableEdit: item => (item.Type !== 'Responsive' ||\r\n item.LandscapeImageMediaUrl !== null ||\r\n this.isPlaceholderMMA(item) ||\r\n _.result(item, 'Videos', []).length > 0),\r\n group: 'freezing',\r\n enableGridFlexLayout,\r\n }));\r\n\r\n this.isForVNext = options.isForVNext;\r\n }\r\n\r\n isPlaceholderMMA(item) {\r\n if (_.isEmpty(item.Headline) && _.isEmpty(item.Headlines) &&\r\n _.isEmpty(item.LongHeadline) && _.isEmpty(item.LongHeadlines) &&\r\n _.isEmpty(item.Text) && _.isEmpty(item.Descriptions)) {\r\n // placeholder MMA under the dynamic ad group\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n updateStatus({ status, item }) {\r\n const additionalPayload = {\r\n AdGroup: {\r\n Id: _.result(item.AdGroup, 'Id', this.view.scope.adGroupId),\r\n },\r\n };\r\n\r\n if (item.Type === 'LinkedIn') {\r\n additionalPayload.AdType = 'LinkedIn';\r\n }\r\n\r\n return inlineEditSave(\r\n {\r\n id: item.Id,\r\n fieldName: 'Status',\r\n updatedItem: _.extend({}, item, { Status: status }),\r\n additionalPayload,\r\n },\r\n {\r\n view: this.view,\r\n resource: resourceForAdType(item.Type),\r\n scenario: 'NewAdsTab',\r\n i18n: this.i18n,\r\n i18nErrors,\r\n customBlockerTarget: this.isForVNext ? '.ads-page' : null,\r\n }\r\n );\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { LabelsColumn } from '@bingads-webui-campaign/labels';\r\nimport { ColumnsConfigBuilder } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { adsMetricCategoriesFactory } from '@bingads-webui/custom-columns-shared-config';\r\n\r\nimport {\r\n CampaignColumn,\r\n DeliveryColumn,\r\n ColumnClicks,\r\n ColumnImpressions,\r\n ColumnCTR,\r\n ColumnAverageCPC,\r\n ColumnSpend,\r\n ColumnAveragePosition,\r\n ColumnConversions,\r\n ColumnConversionsCredit,\r\n ColumnViewThroughConversions,\r\n ColumnViewThroughConversionsCredit,\r\n ColumnTopImpressionRate,\r\n ColumnAbsoluteTopImpressionRate,\r\n} from '@bingads-webui-campaign/campaignui-common-columns';\r\n\r\nimport { StatusIconColumn } from './attributes/status-icon';\r\nimport { AdGroupColumn } from './attributes/ad-group';\r\nimport { AdIdColumn } from './attributes/ad-id';\r\nimport { AdTypeColumn } from './attributes/ad-type';\r\nimport { DevicePreferenceColumn } from './attributes/device-preference';\r\nimport { AdPreviewColumn } from './attributes/ad-preview';\r\nimport { AdsByBingColumn } from './attributes/ads-by-bing';\r\nimport { AdStrengthColumn } from './attributes/ad-strength';\r\n\r\nconst { Columns, SelectedColumns } = globalContext.require('component/bingads-grid/service/column-chooser-preferences');\r\nconst { CustomColumns } = globalContext.require('component/bingads-grid/service/custom-column-preferences');\r\nconst { LegacyColumns, LegacySelectedColumns } = globalContext.require('component/bingads-grid/service/legacy-column-chooser-preferences');\r\nconst { LegacyGridFlag } = globalContext.require('component/bingads-grid/service/legacy-grid-flag-preferences');\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ads-tab');\r\nconst config = globalContext.require('component/config/index');\r\n\r\nlet builder = null;\r\nlet lastCampaignId;\r\nlet lastAdgroupId;\r\nconst Permissions = config.get('Permissions');\r\nconst {\r\n IsAdsByBingEnabled: showAdsByBingColumn,\r\n IsViewThroughConversionEnabled,\r\n IsCustomColumnsInAdsSupported,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n dynamic = {},\r\n} = Permissions;\r\nconst {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n ConvValueRules: isConversionValueRuleColumnsEnabled,\r\n AdStrengthTestingNoPanel,\r\n} = dynamic;\r\n\r\nconst usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\nexport function getBuilder({ campaignId, adGroupId }) {\r\n if (builder === null || campaignId !== lastCampaignId || adGroupId !== lastAdgroupId) {\r\n lastAdgroupId = adGroupId;\r\n lastCampaignId = campaignId;\r\n builder = new ColumnsConfigBuilder({ Permissions })\r\n .addCategory('Attribute', category => category.addColumns(_.compact([\r\n AdPreviewColumn,\r\n _.isUndefined(campaignId) && CampaignColumn,\r\n _.isUndefined(adGroupId) && AdGroupColumn,\r\n DeliveryColumn,\r\n AdIdColumn,\r\n AdTypeColumn,\r\n DevicePreferenceColumn,\r\n LabelsColumn,\r\n showAdsByBingColumn && AdsByBingColumn,\r\n !AdStrengthTestingNoPanel && AdStrengthColumn,\r\n ])))\r\n .addPerformanceCategoryForAd({\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n })\r\n .addConversionsCategory({\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n withPartialConversions: IsPartialConversionsEnabled,\r\n IsColumnConversionEnabled,\r\n isConversionValueRuleColumnsEnabled,\r\n });\r\n\r\n builder\r\n .setLockedColumns(_.compact([\r\n StatusIconColumn,\r\n AdPreviewColumn,\r\n _.isUndefined(campaignId) && CampaignColumn,\r\n _.isUndefined(adGroupId) && AdGroupColumn,\r\n !AdStrengthTestingNoPanel && AdStrengthColumn,\r\n ]))\r\n .setSelectedColumns(_.compact([\r\n DeliveryColumn,\r\n ColumnClicks,\r\n ColumnImpressions,\r\n ColumnCTR,\r\n ColumnAverageCPC,\r\n ColumnSpend,\r\n usePartialConversions && ColumnConversionsCredit,\r\n !usePartialConversions && ColumnConversions,\r\n usePartialConversions && ColumnViewThroughConversionsCredit,\r\n !usePartialConversions && ColumnViewThroughConversions,\r\n !IsAvgPositionDeprecationPhase1Enabled && ColumnAveragePosition,\r\n LabelsColumn,\r\n showAdsByBingColumn && AdsByBingColumn,\r\n IsAvgPositionDeprecationPhase1Enabled && ColumnTopImpressionRate,\r\n IsAvgPositionDeprecationPhase1Enabled && ColumnAbsoluteTopImpressionRate,\r\n !AdStrengthTestingNoPanel && AdStrengthColumn,\r\n ]));\r\n }\r\n return builder;\r\n}\r\n\r\nexport function getColumnsConfig(options) {\r\n return getBuilder(options.scope).getColumnsConfig(options);\r\n}\r\n\r\nconst nameFromLegacy = {\r\n StatusIcon: 'Status',\r\n Preview: 'AdPreview',\r\n AdGroupName: 'AdGroup',\r\n CampaignName: 'Campaign',\r\n DeliveryStatus: 'Delivery',\r\n ID: 'AdID',\r\n ClickCount: 'Clicks',\r\n ImpressionCount: 'Impressions',\r\n ClickThrough: 'CTR',\r\n TotalSpendAmount: 'Spend',\r\n ConversionCount: 'Conversions',\r\n};\r\n\r\nexport function getColumnChooserConfig({\r\n scope,\r\n filterService,\r\n isForVNext = false,\r\n deps,\r\n}) {\r\n let customColumnConfig;\r\n\r\n if (IsCustomColumnsInAdsSupported) {\r\n const { metricCategories, segmentCategories } = adsMetricCategoriesFactory(Permissions);\r\n\r\n customColumnConfig = {\r\n enabled: true,\r\n metricCategories,\r\n segmentCategories,\r\n filterService,\r\n };\r\n }\r\n\r\n return _.defaults(getBuilder(scope).getColumnChooserConfig({\r\n patchQuery: true,\r\n Columns,\r\n SelectedColumns,\r\n LegacyColumns,\r\n LegacySelectedColumns,\r\n LegacyGridFlag,\r\n nameFromLegacy,\r\n i18n,\r\n CustomColumns,\r\n customColumnConfig,\r\n permissions: Permissions,\r\n }), { isForVNext, deps });\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { AdGroupColumn as AdGroupColumnConfig } from '@bingads-webui-campaign/ads-data';\r\nimport adGroupTemplate from './ad-group.pug';\r\n\r\nexport class AdGroupColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n i18n, scope, routeTemplate, isForVNext,\r\n }) {\r\n super({\r\n ...AdGroupColumnConfig,\r\n title: i18n.getString('ColumnName_AdGroup'),\r\n sortable: 'AdGroup/Name',\r\n editable: true,\r\n type: 'string',\r\n bodyClasses: ['grid-column-AdGroup'],\r\n });\r\n\r\n this.i18n = i18n;\r\n this.scope = scope;\r\n this.routeTemplate = routeTemplate;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n const { customerId: cid, accountId: aid } = this.scope;\r\n const {\r\n Campaign: {\r\n Id: cmpid,\r\n } = {},\r\n AdGroup: {\r\n Name: name,\r\n Id: adgid,\r\n } = {},\r\n } = item;\r\n\r\n return {\r\n isForVNext: this.isForVNext,\r\n name,\r\n cmpid,\r\n adgid,\r\n href: this.routeTemplate({\r\n cid,\r\n aid,\r\n cmpid,\r\n adgid,\r\n }),\r\n ariaLabel: this.i18n.getString('Click to scope to ad group {{adGroupName}}', { adGroupName: name }),\r\n };\r\n }\r\n\r\n get template() { return adGroupTemplate; }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { AdIdColumn as AdIdColumnConfig } from '@bingads-webui-campaign/ads-data';\r\n\r\nexport class AdIdColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n const title = i18n.getString('ColumnName_AdId');\r\n\r\n super({\r\n ...AdIdColumnConfig,\r\n title,\r\n sortable: 'Id',\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_AdID',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { SchemaI18n } from '@bingads-webui-universal/schema-i18n';\r\nimport { AdTypeColumn as AdTypeColumnConfig } from '@bingads-webui-campaign/ads-data';\r\nimport adTypeTemplate from './ad-type.pug';\r\n\r\nexport class AdTypeColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n i18n, newI18n, permissions,\r\n }) {\r\n const title = i18n.getString('ColumnName_AdType');\r\n super({\r\n ...AdTypeColumnConfig,\r\n title,\r\n sortable: 'Type',\r\n type: 'string',\r\n helpId: 'pop_BA_NewAdCreate_AdType',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.permissions = permissions;\r\n this.schemaI18n = new SchemaI18n({ i18n });\r\n this.newI18n = newI18n;\r\n }\r\n\r\n template({ value }) {\r\n if (this.permissions.IsMultiMediaAdsEnabled && value === 'Responsive') {\r\n // When enable IsMultiMediaAdsEnabled, show text as \"Responsive ad / Multimedia ad\"\r\n value = 'Multimedia'; // eslint-disable-line no-param-reassign\r\n }\r\n if (this.permissions && this.permissions.dynamic && this.permissions.dynamic.IsRenameHotelToLodgingEnabled && value === 'Hotel') {\r\n // When enable IsRenameHotelToLodgingEnabled, show text as \"Lodging\"\r\n value = 'Lodging'; // eslint-disable-line no-param-reassign\r\n }\r\n const isDisableEXTA = value === 'ExpandedText';\r\n\r\n const isStandardTextAd = value === 'Text';\r\n\r\n return adTypeTemplate({\r\n value, schemaI18n: this.schemaI18n, isDisableEXTA, isStandardTextAd,\r\n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { SchemaI18n } from '@bingads-webui-universal/schema-i18n';\r\nimport { DevicePreferenceColumn as DevicePreferenceColumnConfig } from '@bingads-webui-campaign/ads-data';\r\nimport devicePreferenceTemplate from './device-preference.pug';\r\n\r\nexport class DevicePreferenceColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n const title = i18n.getString('ColumnName_DevicePreference');\r\n super({\r\n ...DevicePreferenceColumnConfig,\r\n title,\r\n sortable: 'DevicePreference',\r\n type: 'string',\r\n helpId: 'Page_CampaignGrids_Devices',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.schemaI18n = new SchemaI18n({ i18n });\r\n }\r\n\r\n template({ value }) {\r\n return devicePreferenceTemplate({ value, schemaI18n: this.schemaI18n });\r\n }\r\n}\r\n","/* eslint-disable camelcase */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport {\r\n getTitlePreview,\r\n getDescPreview,\r\n getMoreTitleHint,\r\n getMoreDescHint,\r\n} from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { AdPreviewColumn as AdPreviewColumnConfig } from '@bingads-webui-campaign/ads-data';\r\nimport { isXandrCampaign } from '@bingads-webui-campaign-react/constants';\r\nimport adTemplate from './ad-preview.pug';\r\nimport { getAdEditorInitializer, getAdEditorInitializerWebpack } from '../../../index';\r\n\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst adDisplayUrlService = globalContext.require('campaignui/feature/crud-ad/service/displayUrl');\r\nconst { combineText } = globalContext.require('campaignui/feature/crud-ad/viewmodel/adsPreview/expandedTextAd');\r\n\r\nconst responsiveAdThumbnailWidth = 114;\r\nconst responsiveAdThumbnailHeight = 60;\r\nconst resizeQueryString = `&w=${responsiveAdThumbnailWidth}&h=${responsiveAdThumbnailHeight}`;\r\nconst isImpressionTrackingUrlsEnabled = _.result(appConfig.get('Permissions'), 'IsImpressionTrackingUrlsEnabled');\r\nconst isMultiMediaAdsPhase2Enabled = _.result(appConfig.get('Permissions'), 'IsMultiMediaAdsPhase2Enabled');\r\nconst isAudienceCampaignMultiMediaAdsEnabled = _.result(appConfig.get('Permissions'), 'IsAudienceCampaignMultiMediaAdsEnabled');\r\nconst Permissions = appConfig.get('Permissions');\r\nconst isAudienceAssetReportEnabled = _.result(Permissions.dynamic, 'AudienceAssetReport');\r\nconst videoTypesWithOrder = [\r\n 'VideoMedia16X9',\r\n 'VideoMedia5X4',\r\n 'VideoMedia1X1',\r\n 'VideoMedia4X5',\r\n 'VideoMedia9X16',\r\n];\r\n\r\nexport class AdPreviewColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n i18n,\r\n newI18n,\r\n router,\r\n scope,\r\n view,\r\n permissions,\r\n serverContext,\r\n isForVNext,\r\n deps,\r\n shouldSendOpportunityLog,\r\n logOpportunity,\r\n adsTabPerfMarker,\r\n preferenceService,\r\n loadClipchampPlayer,\r\n }) {\r\n const title = i18n.getString('ColumnName_Ad');\r\n const config = {\r\n ...AdPreviewColumnConfig,\r\n title,\r\n editable: true,\r\n enableEdit: (item) => {\r\n if (item.Type === 'ResponsiveSearch') {\r\n return true;\r\n }\r\n if (item.Type === 'Responsive' && item.Campaign.CampaignType === 'Default') {\r\n if (this.isPlaceholderMMA(item)) {\r\n // not allow editing for the placeholder MMA\r\n return false;\r\n }\r\n return isForVNext && _.result(appConfig.get('Permissions'), 'IsMultiMediaAdsEnabled');\r\n }\r\n if (item.Type === 'Responsive' && item.Campaign.CampaignSubType === 'AudienceVideoAds') {\r\n return true;\r\n }\r\n if (item.Type === 'Responsive' && isXandrCampaign(item.Campaign.CampaignSubType)) {\r\n return true;\r\n }\r\n if (item.Type === 'ExpandedText' &&\r\n !_.result(appConfig.get('Permissions'), 'IsWhiteListEXTAEnabled')\r\n ) {\r\n return false;\r\n }\r\n /* istanbul ignore next */\r\n return (((item.Type !== 'Responsive') || this.checkLandscapeImageMediaUrl(item) || this.checkAdSubtypeForMultiAdFormat(item))\r\n && (item.Type !== 'Hotel') && (item.Type !== 'Product') && (item.DeliveryStatus !== 'AdGroupExpired'));\r\n },\r\n type: 'string',\r\n helpId: 'Page_CampaignGrids_AdPreview',\r\n bodyClasses: 'grid-column-AdPreview',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n group: 'freezing',\r\n };\r\n\r\n super(config);\r\n\r\n this.i18n = i18n;\r\n this.newI18n = newI18n;\r\n this.router = router;\r\n this.scope = scope;\r\n this.view = view;\r\n this.permissions = permissions;\r\n this.isForVNext = isForVNext;\r\n this.serverContext = serverContext;\r\n this.preferenceService = preferenceService;\r\n this.deps = deps;\r\n this.shouldSendOpportunityLog = shouldSendOpportunityLog;\r\n this.logOpportunity = logOpportunity;\r\n this.adsTabPerfMarker = adsTabPerfMarker;\r\n this.dynamicPermissions = appConfig.get('Permissions').dynamic;\r\n this.loadClipchampPlayer = loadClipchampPlayer;\r\n }\r\n\r\n /* istanbul ignore next */\r\n isVideoAdUnderNative(item) {\r\n return item && item.Campaign.CampaignSubType === 'AudienceStatic' && item.AdSubType === 'Video';\r\n }\r\n\r\n /* istanbul ignore next */\r\n isDisplayAdUnderNative(item) {\r\n return item && item.Campaign.CampaignSubType === 'AudienceStatic' && item.AdSubType === 'Display';\r\n }\r\n\r\n isPlaceholderMMA(item) {\r\n /* istanbul ignore next */\r\n if (this.dynamicPermissions && this.dynamicPermissions.MultiAdFormat && (this.isVideoAdUnderNative(item) || this.isDisplayAdUnderNative(item))) {\r\n // Check subtype, video and display will return false, currently use no headline with images or video to determine display ad or video ad\r\n return false;\r\n } else if (_.isEmpty(item.Headline) && _.isEmpty(item.Headlines) &&\r\n _.isEmpty(item.LongHeadline) && _.isEmpty(item.LongHeadlines) &&\r\n _.isEmpty(item.Text) && _.isEmpty(item.Descriptions) &&\r\n !isXandrCampaign(item.Campaign.CampaignSubType)) {\r\n // placeholder MMA under the dynamic ad group\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n checkLandscapeImageMediaUrl(item) {\r\n /* istanbul ignore next */\r\n if (this.permissions && this.permissions.IsMMAV2Enabled && _.isArray(item.Images) && _.some(item.Images, image =>\r\n ((image.Asset.SubType === 'OriginalImage')))) {\r\n return true;\r\n }\r\n return item.LandscapeImageMediaUrl !== null;\r\n }\r\n\r\n /* istanbul ignore next */\r\n checkAdSubtypeForMultiAdFormat(item) {\r\n if (this.dynamicPermissions && this.dynamicPermissions.MultiAdFormat && (this.isDisplayAdUnderNative(item) || this.isVideoAdUnderNative(item))) {\r\n return true;\r\n }\r\n\r\n // check item ad subtype for multi ad format\r\n return false;\r\n }\r\n\r\n pickProperty(item) {\r\n const type = item.Type;\r\n\r\n if (item.$total) return { $total: item.$total };\r\n const urlRegex = new RegExp('http:\\/\\/|https:\\/\\/|\\{param', 'i'); // eslint-disable-line no-useless-escape\r\n\r\n let destinationUrl = item.DestinationUrl;\r\n // add http for destinatioUrl that did not have them.\r\n if (destinationUrl && destinationUrl.search(urlRegex) === -1) {\r\n destinationUrl = `http://${destinationUrl}`;\r\n }\r\n\r\n let result = {\r\n Type: type,\r\n Title: item.Title,\r\n convertedFinalUrl: _.first(item.FinalUrls) || destinationUrl || '',\r\n Text: item.Text,\r\n i18n: this.i18n,\r\n isMultimediaAd: item.Type === 'Responsive' && item.Campaign.CampaignType === 'Default',\r\n isMultimediaAdinMSANEnabled: isAudienceCampaignMultiMediaAdsEnabled &&\r\n item.Type === 'Responsive' &&\r\n (item.Campaign.CampaignType === 'Audience' || item.Campaign.CampaignType === 8),\r\n isLinkedInAd: item.Type === 'LinkedIn' && (item.Campaign.CampaignType === 'LinkedIn' || item.Campaign.CampaignType === 256),\r\n campaignSubType: item.Campaign && item.Campaign.CampaignSubType,\r\n isAudienceAssetReportEnabled,\r\n };\r\n\r\n if (type === 'Text') {\r\n result.convertedDisplayUrl = item.DisplayUrl;\r\n result.computedTitle = item.Title;\r\n } else if (type === 'Hotel') {\r\n if (this.dynamicPermissions.IsRenameHotelToLodgingEnabled) {\r\n result.convertedText = `${this.i18n.getString('AdsSummary_LodgingAdTitle')}`;\r\n } else {\r\n result.convertedText = `${this.i18n.getString('AdsSummary_HotelAdTitle')}`;\r\n }\r\n } else if (type === 'Product') {\r\n result.convertedText = item.PromotionalText && item.PromotionalText.length > 0\r\n ? `${this.i18n.getString('AdsSummary_ProductAdTitle').replace('{0}', ': ')}${item.PromotionalText}`\r\n : `${this.i18n.getString('AdsSummary_ProductAdTitle').replace('{0}', '')}`;\r\n } else if (type === 'AppInstall') {\r\n result.platformText = '';\r\n if (item.AppPlatform) {\r\n const appStoreName = this.i18n.getString(`AppStore_${item.AppPlatform.replace(' ', '_')}`);\r\n\r\n result.platformText = this.i18n.getString('Ad_Preview_AppStore').replace('{0}', appStoreName);\r\n }\r\n } else if (type === 'DynamicSearch') {\r\n result.convertedTitle = `{${this.i18n.getString('Ad_DSA_Title')}}`;\r\n\r\n if (item.TextPart2) {\r\n result.Text = combineText(item.Text, item.TextPart2);\r\n }\r\n\r\n result.convertedDisplayUrl =\r\n adDisplayUrlService.getDynamicSearchAdDisplayUrl(item.DisplayUrl, item.Path1, item.Path2);\r\n } else if (type === 'ExpandedText') {\r\n const IsExpandedTextAdV2Enabled = _.result(appConfig.get('Permissions'), 'IsExpandedTextAdV2Enabled');\r\n\r\n result.convertedTitle = `${item.TitlePart1} | ${item.TitlePart2}`;\r\n if (IsExpandedTextAdV2Enabled) {\r\n if (item.TitlePart3) {\r\n result.convertedTitle = `${result.convertedTitle} | ${item.TitlePart3}`;\r\n }\r\n\r\n if (item.TextPart2) {\r\n result.Text = combineText(item.Text, item.TextPart2);\r\n }\r\n }\r\n result.convertedDisplayUrl =\r\n adDisplayUrlService.getExpandedTextAdDisplayUrl(\r\n result.convertedFinalUrl,\r\n item.DisplayUrl, item.Path1, item.Path2\r\n );\r\n } else if (type === 'LinkedIn') {\r\n result = _.extend(\r\n result,\r\n _.pick(item, 'Headline')\r\n );\r\n\r\n if (item.Images && item.Images.length > 0) {\r\n const imageUrlToUse = _.first(item.Images).Asset.ImageUrl;\r\n result.LandscapeImageMediaUrl = `${imageUrlToUse}${resizeQueryString}`;\r\n }\r\n } else if (type === 'Responsive') {\r\n result.isPlaceholderMMA = this.isPlaceholderMMA(item);\r\n\r\n result = _.extend(\r\n result,\r\n _.pick(item, 'Headline', 'LongHeadline', 'BusinessName')\r\n );\r\n\r\n if ((result.isMultimediaAd && isMultiMediaAdsPhase2Enabled) ||\r\n result.isMultimediaAdinMSANEnabled) {\r\n if (!_.isEmpty(item.Headlines)) {\r\n result.Headline = _.first(item.Headlines).Asset.Text;\r\n }\r\n if (!_.isEmpty(item.LongHeadlines)) {\r\n result.LongHeadline = _.first(item.LongHeadlines).Asset.Text;\r\n }\r\n if (!_.isEmpty(item.Descriptions)) {\r\n result.Text = _.first(item.Descriptions).Asset.Text;\r\n }\r\n\r\n result.HeadlineCount = _.size(item.Headlines);\r\n result.LongHeadlineCount = _.size(item.LongHeadlines);\r\n result.TextCount = _.size(item.Descriptions);\r\n result.imageCount = _.size(item.Images);\r\n }\r\n\r\n if (result.isPlaceholderMMA) {\r\n result.Headline = this.i18n.getString('Ad_Placeholder_MMA_Title');\r\n }\r\n\r\n if (isImpressionTrackingUrlsEnabled) {\r\n result = _.extend(\r\n result,\r\n _.pick(item, 'ImpressionTrackingUrls')\r\n );\r\n }\r\n\r\n if (item.LandscapeImageMediaUrl) {\r\n let imageUrlToUse = item.LandscapeImageMediaUrl;\r\n\r\n // strip off the resizing from MT as we need a smaller resizing\r\n const indexOfResizeInfo = imageUrlToUse.indexOf('&w=');\r\n if (indexOfResizeInfo > 0) {\r\n imageUrlToUse = imageUrlToUse.substr(0, indexOfResizeInfo);\r\n }\r\n\r\n result.LandscapeImageMediaUrl = `${imageUrlToUse}${resizeQueryString}`;\r\n /* istanbul ignore next */\r\n } else if (item.Campaign.CampaignSubType === 'AudienceVideoAds'\r\n || item.Campaign.CampaignSubType === 'BrandAwarenessVideoAds'\r\n || this.isVideoAdUnderNative(item)\r\n ) {\r\n result.isVideo = true;\r\n if (item.Videos &&\r\n item.Videos.length > 0) {\r\n for (let i = 0; i < videoTypesWithOrder.length; i += 1) {\r\n const videoType = videoTypesWithOrder[i];\r\n const videoWithThumbnail = item.Videos.find(v =>\r\n v.Asset &&\r\n v.Asset.ThumbnailUrl &&\r\n v.Asset.SubType === videoType);\r\n if (videoWithThumbnail) {\r\n result.LandscapeImageMediaUrl = videoWithThumbnail.Asset.ThumbnailUrl;\r\n result.IdString = videoWithThumbnail.Asset.IdString;\r\n result.isVerticalVideo = videoWithThumbnail.Asset.Height > videoWithThumbnail.Asset.Width;\r\n break;\r\n }\r\n }\r\n\r\n // add special handling for google import video ad\r\n if (item.Campaign.CampaignSubType === 'BrandAwarenessVideoAds'\r\n && this.permissions && this.permissions.IsGoogleImportVideoAdsEnabled) {\r\n result.shouldShowActionNeededForGoogleImprotVideoAd = _.get(item, 'Videos[0].Asset.SourceType') === 'GoogleImported'\r\n && _.get(item, 'Videos[0].Asset.Status') === 'Failed';\r\n }\r\n }\r\n } else if (item.Images && item.Images.length > 0) {\r\n // for ad without LandscapeImageMediaUrl, pick the image Url from asset\r\n const imageUrlToUse = _.first(item.Images).Asset.ImageUrl;\r\n result.LandscapeImageMediaUrl = `${imageUrlToUse}${resizeQueryString}`;\r\n }\r\n\r\n if (!result.isPlaceholderMMA) {\r\n result.convertedDisplayUrl =\r\n adDisplayUrlService.getExpandedTextAdDisplayUrl(\r\n result.convertedFinalUrl,\r\n item.DisplayUrl, item.Path1, item.Path2\r\n );\r\n }\r\n } else if (type === 'ResponsiveSearch') {\r\n const headlineList = _.map(item.Headlines, i => ({\r\n Text: i.Asset.Text,\r\n PinnedField: i.PinnedField,\r\n }));\r\n const descriptionList = _.map(item.Descriptions, i => ({\r\n Text: i.Asset.Text,\r\n PinnedField: i.PinnedField,\r\n }));\r\n\r\n result.convertedTitle = getTitlePreview(headlineList);\r\n result.moreTitleHint = getMoreTitleHint(headlineList, this.i18n);\r\n result.Text = getDescPreview(descriptionList);\r\n result.moreTextHint = getMoreDescHint(descriptionList, this.i18n);\r\n\r\n result.convertedDisplayUrl =\r\n adDisplayUrlService.getExpandedTextAdDisplayUrl(\r\n result.convertedFinalUrl,\r\n item.DisplayUrl, item.Path1, item.Path2\r\n );\r\n }\r\n\r\n return result;\r\n }\r\n\r\n template({ value }) {\r\n const DSAAssetReport = this.permissions.dynamic && this.permissions.dynamic.DSAAssetReport;\r\n const MMAAssetReport = this.permissions.dynamic && this.permissions.dynamic.MMAAssetReportAccountLevel;\r\n return adTemplate({\r\n value, DSAAssetReport, MMAAssetReport,\r\n });\r\n }\r\n\r\n navigateToSingleAdEditor({ campaignId, adGroupId, adId }) {\r\n this.router.navigateToRoute('single_ad', {\r\n campaign_id: campaignId,\r\n adgroup_id: adGroupId,\r\n ad_id: adId,\r\n });\r\n }\r\n\r\n onPrompt({ event, item }) {\r\n if ($(event.target).hasClass('linkToAssets')) {\r\n // view assets details is already handled by grid\r\n\r\n return;\r\n }\r\n\r\n const { Campaign: campaign, AdGroup: adgroup, Type: type } = item;\r\n let campaignId;\r\n let adGroupId;\r\n\r\n if (this.isForVNext) {\r\n campaignId = campaign ? campaign.Id : this.scope.campaignId || 0;\r\n adGroupId = adgroup ? adgroup.Id : this.scope.adGroupId || 0;\r\n } else {\r\n campaignId = campaign ? campaign.Id : this.i18n.parseDecimal(this.scope.campaignId || '0');\r\n adGroupId = adgroup ? adgroup.Id : this.i18n.parseDecimal(this.scope.adGroupId || '0');\r\n }\r\n\r\n const inlineSuggestionsEnabled =\r\n type === 'ResponsiveSearch' ?\r\n this.permissions.IsRSASuggestionCMUIEnabled : false;\r\n\r\n const initializer = this.isForVNext && this.deps\r\n ? () => getAdEditorInitializerWebpack(\r\n true,\r\n this.deps.adEditorDependencies\r\n )\r\n : getAdEditorInitializer;\r\n\r\n initializer().then(({ initializeAdEditor }) => {\r\n initializeAdEditor({\r\n scope: {\r\n campaignId,\r\n adGroupId,\r\n campaignType: _.result(campaign, 'CampaignType'),\r\n },\r\n gridView: this.view,\r\n newI18n: this.newI18n,\r\n item,\r\n isForVNext: this.isForVNext,\r\n inlineSuggestionsEnabled,\r\n shouldSendOpportunityLog: this.shouldSendOpportunityLog,\r\n logOpportunity: this.logOpportunity,\r\n perfMarker: this.adsTabPerfMarker,\r\n serverContext: this.serverContext,\r\n preferenceService: this.preferenceService,\r\n navigateToSingleAdEditor: this.navigateToSingleAdEditor.bind(this),\r\n loadClipchampPlayer: this.loadClipchampPlayer,\r\n });\r\n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\n// import { SchemaI18n } from '@bingads-webui-universal/schema-i18n';\r\nimport { AdsByBingColumn as AdsByBingColumnConfig } from '@bingads-webui-campaign/ads-data';\r\nimport adsByBingTemplate from './ads-by-bing.pug';\r\n\r\nexport class AdsByBingColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n const title = i18n.getString('ColumnName_AdsByBing');\r\n\r\n super({\r\n ...AdsByBingColumnConfig,\r\n title,\r\n sortable: 'AdsByBing',\r\n type: 'boolean',\r\n helpId: 'pop_BA_Recommendations_AutomatedAds',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.i18n = i18n;\r\n }\r\n\r\n pickProperty(item) {\r\n // return empty for total rows\r\n if (item.AdsByBing != null) {\r\n return item.AdsByBing ? this.i18n.getString('AdsByBing_True')\r\n : this.i18n.getString('AdsByBing_False');\r\n }\r\n return '';\r\n }\r\n\r\n template({ value }) {\r\n return adsByBingTemplate({ value });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { SchemaI18n } from '@bingads-webui-universal/schema-i18n';\r\nimport { AdStrengthColumn as AdStrengthColumnConfig } from '@bingads-webui-campaign/ads-data';\r\n\r\nimport adStrengthTemplate from './ad-strength.pug';\r\n\r\nexport class AdStrengthColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, newI18n }) {\r\n super({\r\n ...AdStrengthColumnConfig,\r\n title: i18n.getString('ColumnName_AdStrength'),\r\n sortable: 'AdStrength',\r\n type: 'string',\r\n helpId: 'pop_BA_CampaignGrids_AdStrength',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: i18n.getString('ColumnName_AdStrength') }),\r\n });\r\n\r\n this.i18n = i18n;\r\n this.SchemaI18n = new SchemaI18n({ i18n });\r\n this.newI18n = newI18n;\r\n }\r\n\r\n pickProperty(item) {\r\n const adStrengthScore = item.Type === 'ResponsiveSearch' ? this.i18n.getString(`Ad_Strength_Score_${item.AdStrength}`) : '-';\r\n return {\r\n adStrength: item.AdStrength || !item.$total ? adStrengthScore : '',\r\n showSuggestion: (item.AdStrengthActionItems && item.AdStrengthActionItems.length > 0) || (item.Type === 'ResponsiveSearch' && item.AdStrength === 'Pending'),\r\n };\r\n }\r\n\r\n template({ value }) {\r\n const { adStrength, showSuggestion } = value;\r\n return adStrengthTemplate({\r\n adStrength,\r\n showSuggestion,\r\n });\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { helpers } from '@bingads-webui/projection-grid-toolbar';\r\nimport { getGridName } from '@bingads-webui-campaign/inline-download-grids-metadata';\r\nimport { crossPageSelectHeadRow } from '@bingads-webui/projection-grid-cross-page-select-all';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { validateOrder, handleShowRejectionReasonEnter, handleShowRejectionReasonLeave } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { getColumnsConfig } from './columns/index';\r\n\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ads-tab');\r\nconst stateManager = globalContext.require('StateManager/CampaignStateManager');\r\nconst preferenceService = globalContext.requireDefault('component/preference/service/index');\r\nconst config = globalContext.require('component/config/index');\r\n\r\nconst { toolbarRow } = helpers;\r\n\r\nexport function getConfig({\r\n dataSource,\r\n scope,\r\n view,\r\n filterService,\r\n preferenceConfig,\r\n router,\r\n isForVNext,\r\n newI18n,\r\n viewport,\r\n customHeaderOffset,\r\n deps,\r\n shouldSendOpportunityLog,\r\n logOpportunity,\r\n adsTabPerfMarker,\r\n serverContext,\r\n isDataFetchManagerSource = false,\r\n loadClipchampPlayer,\r\n}) {\r\n const headRows = isForVNext\r\n ? ['column-header-rows'] : [\r\n toolbarRow('lower-toolbar'),\r\n crossPageSelectHeadRow(),\r\n 'column-header-rows',\r\n ];\r\n\r\n const permissions = config.get('Permissions');\r\n const events = isForVNext ? {\r\n 'click .linkToAssets': view.onLinkToAssets.bind(view),\r\n 'click .labels-cell-container #see-all': view.onLabelsRowClicked.bind(view),\r\n 'click .labels-cell-item': view.onLabelClicked.bind(view),\r\n 'click .manage-labels-button': view.onManageLabelsClicked.bind(view),\r\n 'click .delivery_status_with_reject_reasons': _.debounce(view.showRejectionReason.bind(view), 50),\r\n 'click .ad-strength': _.debounce(view.showAdStrengthPopup.bind(view), 50),\r\n 'mouseenter .ad-strength': _.debounce(view.showAdStrengthPopup.bind(view), 50),\r\n 'mouseenter .delivery_status_with_reject_reasons': permissions.IsDeferredHoveringPopupEnabled ? _.partial(handleShowRejectionReasonEnter, view, view.showRejectionReason) : _.debounce(view.showRejectionReason.bind(view), 50),\r\n 'mouseleave .delivery_status_with_reject_reasons': permissions.IsDeferredHoveringPopupEnabled ? _.partial(handleShowRejectionReasonLeave, null, _.noop) : null,\r\n 'click .ads_type_exta_deprecate_reasons': _.debounce(view.showDeprecateReason.bind(view), 50),\r\n 'mouseenter .ads_type_exta_deprecate_reasons': _.debounce(view.showDeprecateReason.bind(view), 50),\r\n 'click .ads_type_sta_deprecate_reasons': _.debounce(view.showDeprecateReason.bind(view), 50),\r\n 'mouseenter .ads_type_sta_deprecate_reasons': _.debounce(view.showDeprecateReason.bind(view), 50),\r\n 'mouseleave .grid-column-Delivery': _.debounce(view.hideRejectionPopup.bind(view), 50),\r\n 'mouseleave [data-column=\"AdType\"]': _.debounce(view.hideDeprecatePopover.bind(view), 50),\r\n 'mouseleave .ad-strength': _.debounce(view.hideAdStrengthPopup.bind(view), 50),\r\n } : {\r\n 'click .linkToAssets': view.onLinkToAssets.bind(view),\r\n 'click .labels-cell-container a': view.onLabelsRowClicked.bind(view),\r\n 'click .delivery_status_with_reject_reasons': view.showRejectionReason.bind(view),\r\n 'click .ads_type_exta_deprecate_reasons': view.showDeprecateReason.bind(view),\r\n 'click .ads_type_sta_deprecate_reasons': view.showDeprecateReason.bind(view),\r\n };\r\n\r\n const tableName = i18n.getString('EntityType_Ad_Plural');\r\n\r\n const enableGridFlexLayout = _.result(permissions.dynamic, 'GridFlexLayout', false) && isForVNext;\r\n const gridName = getGridName('Ad');\r\n\r\n const gridConfig = {\r\n name: gridName,\r\n legacyGridName: 'AdGrid',\r\n tableClasses: enableGridFlexLayout ? ['table'] : ['table', 'table-bordered'],\r\n tableAttributes: { 'aria-label': newI18n.getString(_TL_('{{tableName}} table'), { tableName }) },\r\n dataSource,\r\n selection: true,\r\n filterService,\r\n rows: {\r\n headRows,\r\n },\r\n columns: getColumnsConfig({\r\n i18n,\r\n newI18n,\r\n scope,\r\n view,\r\n showExperiment: config.get('Permissions').IsExperimentsEnabled,\r\n permissions,\r\n routeTemplate({\r\n cid,\r\n aid,\r\n cmpid,\r\n adgid,\r\n }) {\r\n if (isForVNext) {\r\n return adgid\r\n ? `/campaign/vnext/ads?aid=${aid}&cid=${cid}&campaignId=${cmpid}&adGroupId=${adgid}`\r\n : `/campaign/vnext/ads?aid=${aid}&cid=${cid}&campaignId=${cmpid}`;\r\n }\r\n if (adgid) {\r\n return `#customer/${cid}/account/${aid}/campaign/${cmpid}/adgroup/${adgid}/ad`;\r\n }\r\n return `#customer/${cid}/account/${aid}/campaign/${cmpid}/ad`;\r\n },\r\n router,\r\n isForVNext,\r\n deps,\r\n shouldSendOpportunityLog,\r\n logOpportunity,\r\n adsTabPerfMarker,\r\n serverContext,\r\n preferenceService,\r\n loadClipchampPlayer,\r\n }),\r\n scrolling: {\r\n header: {\r\n type: 'sticky',\r\n offset: customHeaderOffset || (() => $('nav.navbar-default.navbar-fixed-top').height()),\r\n attributes: {\r\n 'aria-label': i18n.getString('{{tableName}} table header', { tableName }),\r\n role: 'rowgroup',\r\n },\r\n },\r\n virtualized: true,\r\n },\r\n stateManager,\r\n preferenceService,\r\n config,\r\n events,\r\n isDataFetchManagerSource,\r\n ...enableGridFlexLayout && { layout: 'flex' },\r\n };\r\n\r\n validateOrder(preferenceConfig, gridConfig.columns, gridName, permissions);\r\n\r\n if (viewport) {\r\n gridConfig.scrolling.viewport = viewport;\r\n }\r\n\r\n return gridConfig;\r\n}\r\n","const navigation = ({\r\n toJSON: () => ({}),\r\n source: {\r\n $call: () => ({\r\n toJSON: () => ({}),\r\n navigation,\r\n }),\r\n },\r\n parameters: {},\r\n});\r\n\r\nexport const mockEdm = {\r\n default: {\r\n root: {\r\n identifyEntitySet: () => ({\r\n toJSON: () => ({}),\r\n navigation,\r\n }),\r\n },\r\n },\r\n currentAccount: {\r\n Campaigns: {\r\n $withKey: id => ({ AdExtensionAssociations: id }),\r\n },\r\n },\r\n};\r\n","export default {\r\n Paused: 'Paused',\r\n Active: 'Active',\r\n Deleted: 'Deleted',\r\n};\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\n\r\nimport { a11yPlugin } from '@bingads-webui/projection-grid-a11y';\r\nimport { adsBulkEdit } from '@bingads-webui-campaign/ads-bulk-edit';\r\nimport { aggregatedRowsPluginBuilder } from '@bingads-webui-campaign/pgrid-aggregated-rows';\r\nimport { assistedSelectionPlugin } from '@bingads-webui/projection-grid-assisted-selection';\r\nimport { automatedRulesPlugin } from '@bingads-webui-campaign/projection-grid-automated-rules';\r\nimport { columnChooserPlugin } from '@bingads-webui-campaign/projection-grid-column-chooser';\r\nimport { dateFilterPlugin } from '@bingads-webui-campaign/projection-grid-date-filter';\r\nimport { editablePlugin } from '@bingads-webui-campaign/projection-grid-editable';\r\nimport { inlineDownloadWithoutFilterstatePlugin } from '@bingads-webui-campaign/projection-grid-inline-download';\r\nimport { inlineErrorPlugin } from '@bingads-webui/projection-grid-inline-error';\r\nimport { jsdataRawDataPlugin as commonJsdataRawDataPlugin } from '@bingads-webui/projection-grid-js-data-raw-data';\r\nimport { labelsPlugin } from '@bingads-webui-campaign/projection-grid-labels';\r\nimport { paginationPlugin } from '@bingads-webui/projection-grid-pagination';\r\nimport { performanceLogPlugin, perfMarkerPlugin } from '@bingads-webui-campaign/pgrid-performance-log';\r\nimport { periodOverPeriodPlugin } from '@bingads-webui-campaign/projection-grid-period-over-period';\r\nimport { segmentPlugin } from '@bingads-webui-campaign/projection-grid-segment';\r\nimport { uiBlockerPlugin } from '@bingads-webui/projection-grid-uiblocker';\r\nimport { Ad, Label } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { getPGridColumnResizePlugin } from '@bingads-webui-campaign/projection-grid-column-resize-helper';\r\nimport { projectionGridFlexColumnResize } from '@bingads-webui-campaign/projection-grid-flex-column-resize';\r\nimport { getGridName } from '@bingads-webui-campaign/inline-download-grids-metadata';\r\n\r\nimport { mockEdm } from '../demo/mock/edm';\r\nimport { getColumnChooserConfig } from './columns/index';\r\nimport adsStatus from './ads-status';\r\n\r\nconst appState = globalContext.require('component/state/index');\r\nconst edm = globalContext.requireDefault('component/edm-campaign/index');\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst { setSegType, getSegType } = globalContext.require('component/bingads-grid/service/segmentation-preferences');\r\nconst { DownloadView } = globalContext.require('campaignui/feature/griddownload/view/adapter');\r\nconst i18nErrors = globalContext.require('component/api-errors-campaign/index');\r\nconst jsdata = globalContext.require('component/js-data-campaign/index');\r\nconst { LabelAssociationView } = globalContext.require('campaignui/feature/common-grid-plugins/label/label-association-view');\r\nconst dataContextManager = globalContext.require('SummaryDataContextManager');\r\nconst cacheService = globalContext.require('Services/CacheService');\r\nconst instrumentation = globalContext.requireDefault('campaignui/feature/instrumentation/index');\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ads-tab');\r\nconst s$i18n = globalContext.require('$/schema-i18n!campaign');\r\nconst logger = globalContext.require('module/service/instrumentation/index');\r\nconst ChangeStatusView = globalContext.require('module/view/bulkEdit/ad/changeStatus');\r\nconst ChangeStatusModel = globalContext.require('module/model/bulkEdit/ad/changeStatus');\r\nconst ChangeAdsView = globalContext.require('module/view/bulkEdit/ad/changeTextAd');\r\nconst ChangeAdsModel = globalContext.require('module/model/bulkEdit/ad/changeTextAd');\r\nconst ChangeThirdPartyMeasurementView = globalContext.require('module/view/bulkEdit/ad/changeThirdPartyMeasurement');\r\nconst ChangeThirdPartyMeasurementModel = globalContext.require('module/model/bulkEdit/ad/changeThirdPartyMeasurement');\r\nconst ChangeThirdPartyMeasurementViewV2 = globalContext.require('module/view/bulkEdit/ad/changeThirdPartyMeasurementV2');\r\nconst ChangeUrlOptionsModel = globalContext.require('module/model/bulkEdit/shared/changeUrlOptions');\r\nconst ChangeUrlOptionsView = globalContext.require('module/view/bulkEdit/shared/changeUrlOptions');\r\nconst CopyPaste = globalContext.require('module/view/bulkEdit/copyPaste');\r\nconst odata = globalContext.require('module/service/communication/channel/odata');\r\nconst stateManager = globalContext.require('StateManager/CampaignStateManager');\r\nconst preferenceService = globalContext.requireDefault('component/preference/service/index');\r\n\r\nconst permissions = appConfig.get('Permissions');\r\nconst enableGridFlexLayout = _.result(permissions.dynamic, 'GridFlexLayout', false);\r\nconst jsdataRawDataPlugin = commonJsdataRawDataPlugin({\r\n getRawData: _.property('raw'),\r\n rawDataAccessor(ds) {\r\n // eslint-disable-next-line no-underscore-dangle\r\n return ds._rawData || ds.dataSource.dfmRawData;\r\n },\r\n});\r\n\r\nexport function getAdsPlugins({\r\n view,\r\n filterService,\r\n scope,\r\n addDateChangeListener,\r\n p$daterange,\r\n router,\r\n isForVNext,\r\n adsTabPerfMarker,\r\n newI18n,\r\n currentEntity,\r\n CampaignAdgroupSelectorEdmView,\r\n PredicateListReact,\r\n deps,\r\n preexecuteFlag = false,\r\n serverContext,\r\n}) {\r\n const ReportEmailRule = appState.get('$ReportEmailRule');\r\n appState.unset('$ReportEmailRule');\r\n\r\n const columnChooserConfig = getColumnChooserConfig({\r\n scope,\r\n isForVNext,\r\n deps,\r\n filterService,\r\n permissions,\r\n });\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n const currentCampaign = appConfig.get('CurrentCampaign');\r\n const isAudienceFeedBasedCampaignLevel =\r\n currentCampaign &&\r\n currentCampaign.CampaignType === 8 && // 8 is responsiveAdType\r\n _.result(_.first(currentCampaign.CampaignSettings), 'ProviderId');\r\n\r\n const enableEdit =\r\n !isAudienceFeedBasedCampaignLevel && !appConfig.get('CurrentAccountInActive') && !permissions.IsReadOnlyUser;\r\n\r\n const bulkEditPlugin = adsBulkEdit({\r\n instrumentation,\r\n status: adsStatus,\r\n ChangeStatusView,\r\n ChangeStatusModel,\r\n filterService,\r\n scope,\r\n ChangeAdsView,\r\n ChangeAdsModel,\r\n ChangeUrlOptionsView,\r\n ChangeUrlOptionsModel,\r\n ChangeThirdPartyMeasurementView,\r\n ChangeThirdPartyMeasurementModel,\r\n ChangeThirdPartyMeasurementViewV2,\r\n RequestExceptionCallBack: view.RequestExceptionCallBack.bind(view),\r\n MMABulkConversion: view.MMABulkConversion.bind(view),\r\n CopyPaste,\r\n config: appConfig,\r\n i18n,\r\n newI18n,\r\n isForVNext,\r\n perfMarker: adsTabPerfMarker,\r\n serverContext,\r\n });\r\n const aggregatedRowsPlugin = aggregatedRowsPluginBuilder({\r\n i18n,\r\n keys: {\r\n overallI18nKey: 'AdsSummary_Total_New',\r\n filteredI18nKey: 'AdsSummary_Filtered_Total_New',\r\n waterfallFilterI18nKey: 'AdsSummary_Quickfilter_Total_New',\r\n },\r\n permissions,\r\n filterService,\r\n customConfig: {\r\n showLinkedInRow: true,\r\n },\r\n });\r\n\r\n return _.compact([{\r\n // For accurate grid init latency, PerfMarkerPlugin should be the first plugin to load.\r\n plugin: perfMarkerPlugin,\r\n config: { appConfig, marker: adsTabPerfMarker },\r\n }, {\r\n plugin: aggregatedRowsPlugin,\r\n }, !isAudienceFeedBasedCampaignLevel && {\r\n plugin: automatedRulesPlugin,\r\n config: {\r\n isForVNext,\r\n entityName: 'Ad',\r\n i18n,\r\n router,\r\n instrumentation,\r\n currentUserId: appConfig.get('CurrentUser').Id,\r\n permissions,\r\n scope,\r\n accountTimeZone: appConfig.get('AccountTimeZone'),\r\n accountCurrencyCode: appConfig.get('AccountCurrencyCode'),\r\n state: appState,\r\n odata,\r\n stateMgr: stateManager,\r\n preferenceSvc: preferenceService,\r\n appCfg: appConfig,\r\n newI18n,\r\n CampaignAdgroupSelectorEdmView,\r\n currentEntity,\r\n PredicateListReact,\r\n },\r\n }, {\r\n plugin: assistedSelectionPlugin,\r\n }, {\r\n plugin: a11yPlugin,\r\n config: { i18n },\r\n }, {\r\n plugin: bulkEditPlugin,\r\n }, {\r\n plugin: columnChooserPlugin,\r\n config: columnChooserConfig,\r\n }, {\r\n plugin: dateFilterPlugin,\r\n config: {\r\n state: appState,\r\n isOdataActionSource: true,\r\n edm: preexecuteFlag ? mockEdm.default : edm,\r\n addDateChangeListener,\r\n comparisonColumns: [\r\n 'PeriodPerformanceMetrics',\r\n 'PerformanceMetricsChange',\r\n 'PerformanceMetricsChangePercentage',\r\n ],\r\n p$daterange,\r\n },\r\n }, enableEdit && {\r\n plugin: editablePlugin,\r\n config: { i18n },\r\n }, {\r\n plugin: inlineDownloadWithoutFilterstatePlugin,\r\n config: {\r\n isForVNext,\r\n p$daterange,\r\n\r\n DownloadView,\r\n isAvailable: true,\r\n schema: Ad,\r\n gridId: 'AdGrid',\r\n i18n,\r\n s$i18n,\r\n ReportEmailRule,\r\n processReportRule: (ReportRule) => {\r\n ReportRule.Headers.push('AdStrength Action Items');\r\n return _.defaults({\r\n Selection: _.defaults({\r\n AdId: Number(scope.adId),\r\n QueryString: `${ReportRule.Selection.QueryString}${',AdStrengthActionItems'}`,\r\n }, ReportRule.Selection),\r\n }, ReportRule);\r\n },\r\n },\r\n }, {\r\n plugin: inlineErrorPlugin({\r\n errorIconClasses: ['grid-error'],\r\n }),\r\n }, {\r\n plugin: labelsPlugin,\r\n config: {\r\n isForVNext,\r\n router,\r\n i18n,\r\n i18nErrors,\r\n jsdata,\r\n LabelAssociationView,\r\n dataContextManager,\r\n cacheService,\r\n instrumentation,\r\n s$label: Label,\r\n scope,\r\n edm: preexecuteFlag ? mockEdm.default : edm,\r\n perfMarker: adsTabPerfMarker,\r\n },\r\n }, {\r\n plugin: jsdataRawDataPlugin,\r\n }, {\r\n plugin: performanceLogPlugin,\r\n config: { appConfig, logger },\r\n }, {\r\n plugin: periodOverPeriodPlugin,\r\n config: { i18n },\r\n }, {\r\n plugin: paginationPlugin,\r\n config: {\r\n availablePageSizes: [20, 50, 100, 200],\r\n enableRandomPage: false,\r\n pageNumberLabelText: isForVNext ? '' : i18n.getString('Grid_Page_Number_Label_Text'),\r\n pageSizeText: i18n.getString('Grid_ShowRows'),\r\n totalPageCountText: i18n.getString('Grid_PageOf'),\r\n resetPageNumberOnSort: true,\r\n },\r\n }, {\r\n plugin: segmentPlugin,\r\n config: {\r\n i18n,\r\n permissions,\r\n state: appState,\r\n isOdataActionSource: true,\r\n edm: preexecuteFlag ? mockEdm.default : edm,\r\n setSegType,\r\n getSegType,\r\n cultureShortDatePattern: appConfig.get('CultureDateTimeFormat').ShortDatePattern,\r\n cellTemplates: {\r\n AdPreview: 'default',\r\n },\r\n },\r\n }, {\r\n plugin: uiBlockerPlugin,\r\n config: { el: $(isForVNext ? '.ads-page' : '#child-page') },\r\n },\r\n ...enableGridFlexLayout ? [{\r\n plugin: projectionGridFlexColumnResize,\r\n config: {\r\n gridName: getGridName('Ad'),\r\n softDependencies: ['popColumns'],\r\n preferenceService,\r\n },\r\n }] : [getPGridColumnResizePlugin({\r\n gridName: getGridName('Ad'),\r\n preferenceService,\r\n permissions,\r\n })],\r\n ]);\r\n}\r\n","import { AdsGrid } from './ads-grid';\r\nimport { getConfig } from './grid-config';\r\nimport { getAdsPlugins } from './plugins';\r\n\r\nexport function createAdsGrid({\r\n dataSource,\r\n filterService,\r\n getAdditionalPlugins,\r\n preferenceConfig,\r\n router,\r\n scope,\r\n addDateChangeListener,\r\n p$daterange,\r\n isForVNext = false,\r\n viewport,\r\n adsTabPerfMarker,\r\n customHeaderOffset,\r\n newI18n,\r\n currentEntity,\r\n CampaignAdgroupSelectorEdmView,\r\n PredicateListReact,\r\n pageName,\r\n preexecuteFlag = false,\r\n deps = null,\r\n campaignContext,\r\n shouldSendOpportunityLog,\r\n logOpportunity,\r\n isDataFetchManagerSource,\r\n serverContext,\r\n loadClipchampPlayer,\r\n}) {\r\n return new AdsGrid({\r\n isForVNext,\r\n newI18n,\r\n campaignContext,\r\n filterService,\r\n deps,\r\n serverContext,\r\n shouldSendOpportunityLog,\r\n logOpportunity,\r\n adsTabPerfMarker,\r\n loadClipchampPlayer,\r\n getGridConfig: view => getConfig({\r\n dataSource,\r\n scope,\r\n view,\r\n serverContext,\r\n filterService,\r\n preferenceConfig,\r\n router,\r\n isForVNext,\r\n newI18n,\r\n deps,\r\n viewport,\r\n customHeaderOffset,\r\n shouldSendOpportunityLog,\r\n logOpportunity,\r\n adsTabPerfMarker,\r\n isDataFetchManagerSource,\r\n loadClipchampPlayer,\r\n }),\r\n getPlugins: view => getAdsPlugins({\r\n view,\r\n filterService,\r\n scope,\r\n addDateChangeListener,\r\n p$daterange,\r\n isForVNext,\r\n deps,\r\n router,\r\n adsTabPerfMarker,\r\n newI18n,\r\n currentEntity,\r\n CampaignAdgroupSelectorEdmView,\r\n PredicateListReact,\r\n preexecuteFlag,\r\n serverContext,\r\n }).concat(getAdditionalPlugins(view)),\r\n router,\r\n scope,\r\n preferenceConfig,\r\n pageName,\r\n preexecuteFlag,\r\n });\r\n}\r\n","import { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport pkg from './package.json';\r\n\r\nexport const { version } = pkg;\r\n\r\nexport function getDimensionsGridFactory(initializeGlobalContext = true) {\r\n if (initializeGlobalContext) {\r\n return globalContext.define(\r\n pkg.legacyDependencies,\r\n () => import(/* webpackMode: 'eager' */ './src/index')\r\n );\r\n }\r\n return import(/* webpackMode: 'eager' */ './src/index');\r\n}\r\n","import Backbone from 'backbone';\r\nimport footerTemplate from './grid-footer.pug';\r\n\r\nclass FooterView extends Backbone.View {\r\n initialize({\r\n gridType,\r\n i18n,\r\n } = {}) {\r\n this.gridType = gridType;\r\n this.i18n = i18n;\r\n }\r\n\r\n render() {\r\n this.el.innerHTML = footerTemplate({\r\n gridType: this.gridType,\r\n i18n: this.i18n,\r\n });\r\n }\r\n}\r\n\r\nexport default FooterView;\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Backbone from 'backbone';\r\nimport { pgridFactory } from '@bingads-webui-campaign/pgrid-factory';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { updateGridQuery } from '@bingads-webui-campaign/summary-grid-helper';\r\n\r\nimport FooterView from './grid-footer-view';\r\n\r\nconst edm = globalContext.requireDefault('component/edm-campaign/index');\r\nconst jsdataCampaign = globalContext.require('component/js-data-campaign/index');\r\nconst globalI18n = globalContext.require('$/i18n!global');\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/dimension');\r\nconst instrumentation = globalContext.requireDefault('campaignui/feature/instrumentation/index');\r\n\r\nexport class DimensionGrid extends Backbone.View {\r\n initialize({\r\n isForVNext,\r\n filterService,\r\n getGridConfig,\r\n getPlugins,\r\n setupDataSourceErrorHandling,\r\n preferenceConfig,\r\n gridType,\r\n entityName = 'campaign',\r\n }) {\r\n this.initializeInstrumentation();\r\n\r\n this.gridType = gridType;\r\n this.classNames = ['grid'];\r\n this.isForVNext = isForVNext;\r\n this.filterService = filterService;\r\n this.entityName = entityName;\r\n this.entity = this.getEntity(this.entityName);\r\n this.config = getGridConfig(this);\r\n this.grid = pgridFactory({\r\n gridConfig: this.config,\r\n plugins: getPlugins(this),\r\n preferenceConfig,\r\n });\r\n this.dataSource = this.config.dataSource;\r\n\r\n const {\r\n gridView,\r\n toolbar,\r\n columnChooser,\r\n inlineDownload,\r\n } = this.grid;\r\n\r\n this.activities.loadDimensionGrid.trace('dimension grid loaded', this.activities.loadDimensionGrid.value);\r\n this.activities.loadDimensionGrid.trace(`{\"gridType\": ${gridType}}`, 'Dimension/load');\r\n this.gridView = gridView;\r\n this.toolbar = toolbar;\r\n this.columnChooser = columnChooser;\r\n this.inlineDownload = inlineDownload;\r\n\r\n this.footerView = new FooterView({\r\n gridType,\r\n i18n: globalI18n,\r\n });\r\n\r\n if (isForVNext) {\r\n this.filterService.on('filter-state-changed', () => {\r\n updateGridQuery(\r\n this.grid.gridView,\r\n this.filterService.getCombinedFilter(), true\r\n );\r\n });\r\n }\r\n\r\n this.gridView.on('willUpdate', () => {\r\n $('.dimension-grid .placeholder-plugin').hide();\r\n $('.dimension-grid .grid-noresult.grid-fail').hide();\r\n }, this);\r\n\r\n this.gridView.on('didUpdate', () => {\r\n if (this.isErrorCall) {\r\n $('.dimension-grid .grid-noresult.grid-fail').show();\r\n $('.dimension-grid .placeholder-plugin').hide();\r\n }\r\n }, this);\r\n\r\n setupDataSourceErrorHandling(this);\r\n }\r\n\r\n initializeInstrumentation() {\r\n const scenarios = {\r\n viewDimensionGrid: instrumentation.viewDimensionGrid.create(),\r\n };\r\n\r\n this.activities = {\r\n loadDimensionGrid: scenarios.viewDimensionGrid.loadDimensionGrid.create(),\r\n loadDimensionColumns: scenarios.viewDimensionGrid.loadDimensionColumns.create(),\r\n filterDimensionGrid: scenarios.viewDimensionGrid.filterDimensionGrid.create(),\r\n };\r\n }\r\n\r\n afterFindAllCallback(resource, data) {\r\n let errorMsg = null;\r\n\r\n if (data.status === 500) {\r\n this.isErrorCall = true;\r\n errorMsg = i18n.getString('Dimension_GenericErrorMessage');\r\n this.inlineDownload.setAvailability(false);\r\n if (this.isForVNext) {\r\n this.showTooMuchDataError = true;\r\n this.errorMessage = errorMsg;\r\n $('.dimensions-table .grid-noresult').html(errorMsg).show();\r\n } else {\r\n $('.dimension-grid .placeholder-plugin').hide();\r\n $('.dimension-grid .grid-noresult.grid-fail').html(errorMsg).show();\r\n $('#dimension-tab .perfDataExplanation').show();\r\n }\r\n } else if (data.errors) {\r\n this.isErrorCall = true;\r\n if (_.some(data.errors, error => error.Code === 'TooMuchDataToDownload')) {\r\n errorMsg = i18n.getString('Dimension_TooMuchDataToDownload');\r\n this.inlineDownload.setAvailability(true);\r\n } else if (_.some(data.errors, error => error.Code === 'TooMuchDataForInlineDownload')) {\r\n errorMsg = i18n.getString('Dimension_TooMuchDataToInlineDownload');\r\n this.inlineDownload.setAvailability(false);\r\n } else if (_.some(data.errors, error => error.Code === 'TooMuchExcelDataToDownload')) {\r\n errorMsg = i18n.getString('Dimension_TooMuchExcelDataToDownload');\r\n this.inlineDownload.setAvailability(true);\r\n } else if (data.errors && !_.isEmpty(data.errors)) {\r\n errorMsg = i18n.getString('Dimension_GenericErrorMessage');\r\n this.inlineDownload.setAvailability(false);\r\n }\r\n if (this.isForVNext) {\r\n this.showTooMuchDataError = true;\r\n this.errorMessage = errorMsg;\r\n $('.dimensions-table .grid-noresult').html(errorMsg).show();\r\n } else {\r\n $('.dimension-grid .placeholder-plugin').hide();\r\n $('.dimension-grid .grid-noresult.grid-fail').html(errorMsg).show();\r\n $('#dimension-tab .perfDataExplanation').show();\r\n }\r\n } else {\r\n this.isErrorCall = false;\r\n this.showTooMuchDataError = false;\r\n $('.dimension-grid .placeholder-plugin').show();\r\n $('.dimension-grid .grid-noresult.grid-fail').hide();\r\n if (data.length > 0) {\r\n $('#dimension-tab .perfDataExplanation').hide();\r\n }\r\n\r\n this.inlineDownload.setAvailability(true);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n get tooMuchDataDownloadErrorText() {\r\n if (this.showTooMuchDataError) {\r\n return this.errorMessage;\r\n }\r\n return null;\r\n }\r\n\r\n getEntity(entityName) {\r\n switch (entityName) {\r\n case 'adgroup':\r\n return jsdataCampaign.AdGroup;\r\n case 'keyword':\r\n return jsdataCampaign.Keyword;\r\n case 'ad':\r\n return jsdataCampaign.Ad;\r\n case 'campaign':\r\n default:\r\n return jsdataCampaign.Campaign;\r\n }\r\n }\r\n\r\n getCurrentEntityFromEdm() {\r\n return edm.currentAdGroup ||\r\n edm.currentCampaign ||\r\n edm.currentAccount ||\r\n edm.currentCustomer.Accounts;\r\n }\r\n\r\n render() {\r\n this.footerView.render();\r\n // eslint-disable-next-line no-underscore-dangle\r\n if (this.gridView._isRendered) {\r\n // force a gridview refresh if it has been rendered already\r\n // this is to avoid gridview rerender which causes issues such as\r\n // pagination control loses all its event bindings\r\n this.gridView.refresh(true);\r\n } else {\r\n this.gridView.render();\r\n }\r\n this.$el.append(this.gridView.el);\r\n\r\n return this;\r\n }\r\n\r\n remove() {\r\n this.gridView.remove();\r\n this.toolbar.gridToolbarGroup.remove();\r\n this.columnChooser.remove();\r\n this.inlineDownload.remove();\r\n\r\n super.remove();\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport { helpers } from '@bingads-webui/projection-grid-toolbar';\r\n\r\nconst headerRefreshCache = 'x-ms-refreshcampaigncache';\r\n\r\nexport function getConfig({\r\n gridName,\r\n startDate,\r\n endDate,\r\n columns,\r\n isForVNext,\r\n view,\r\n reportName,\r\n viewport,\r\n customHeaderOffset,\r\n customDataSource,\r\n filterService,\r\n appConfig,\r\n}) {\r\n const headRows = isForVNext\r\n ? ['column-header-rows'] : helpers.singleToolbarHeadRows();\r\n const entitySet = customDataSource ? null : view.getCurrentEntityFromEdm()['Default.DimensionReport'].$call({\r\n Locale: 1,\r\n ReportType: `Enum.DimensionReportType'${reportName}'`,\r\n });\r\n\r\n const dataSource = customDataSource || {\r\n type: 'jsdata',\r\n entity: view.entity,\r\n primaryKey: 'Id',\r\n options: {\r\n entitySet,\r\n cacheResponse: false,\r\n headers: {\r\n [headerRefreshCache]: true,\r\n },\r\n afterFindAll: view.afterFindAllCallback.bind(view),\r\n },\r\n query: {\r\n startDate,\r\n endDate,\r\n },\r\n };\r\n\r\n const gridConfig = {\r\n name: gridName,\r\n tableClasses: ['table', 'table-bordered'],\r\n dataSource,\r\n rows: {\r\n headRows,\r\n },\r\n columns,\r\n scrolling: {\r\n header: {\r\n type: 'sticky',\r\n offset: customHeaderOffset || (() => $('nav.navbar-default.navbar-fixed-top').height()),\r\n },\r\n virtualized: true,\r\n },\r\n filterService,\r\n config: appConfig,\r\n };\r\n\r\n if (viewport) {\r\n gridConfig.scrolling.viewport = viewport;\r\n }\r\n\r\n return gridConfig;\r\n}\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\n\r\nimport { a11yPlugin } from '@bingads-webui/projection-grid-a11y';\r\nimport { uiBlockerPlugin } from '@bingads-webui/projection-grid-uiblocker';\r\nimport { paginationPlugin } from '@bingads-webui/projection-grid-pagination';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { inlineDownloadWithoutFilterstateAndSegmentPlugin } from '@bingads-webui-campaign/projection-grid-inline-download';\r\nimport { columnChooserPlugin } from '@bingads-webui-campaign/projection-grid-column-chooser';\r\nimport { jsdataRawDataPlugin } from '@bingads-webui-campaign/pgrid-js-data-raw-data';\r\nimport { perfMarkerPlugin } from '@bingads-webui-campaign/pgrid-performance-log';\r\nimport { inlineErrorPlugin } from '@bingads-webui/projection-grid-inline-error';\r\nimport { dateFilterPlugin } from '@bingads-webui-campaign/projection-grid-date-filter';\r\nimport { getPGridColumnResizePlugin } from '@bingads-webui-campaign/projection-grid-column-resize-helper';\r\n\r\nconst appState = globalContext.require('component/state/index');\r\nconst edm = globalContext.requireDefault('component/edm-campaign/index');\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst { Columns, SelectedColumns } = globalContext.require('component/bingads-grid/service/column-chooser-preferences');\r\nconst { LegacyColumns, LegacySelectedColumns } = globalContext.require('component/bingads-grid/service/legacy-column-chooser-preferences');\r\nconst { CustomColumns } = globalContext.require('component/bingads-grid/service/custom-column-preferences');\r\nconst { LegacyGridFlag } = globalContext.require('component/bingads-grid/service/legacy-grid-flag-preferences');\r\nconst { DownloadView } = globalContext.require('campaignui/feature/griddownload/view/adapter');\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/dimension');\r\n\r\nconst permissions = appConfig.get('Permissions');\r\n\r\nexport function getBaseDimensionPlugins({\r\n gridName,\r\n isForVNext,\r\n addDateChangeListener,\r\n p$daterange,\r\n columnChooserConfig,\r\n perfMarker,\r\n reportSchema,\r\n preferenceService,\r\n columnConversions,\r\n}) {\r\n let isLabelsGrid = false;\r\n const modifiedReportSchemaForLabelsDownload = _.clone(reportSchema);\r\n if (reportSchema.name.indexOf('Label') !== -1) {\r\n isLabelsGrid = true;\r\n modifiedReportSchemaForLabelsDownload.name = 'DimensionRow';\r\n }\r\n\r\n\r\n return _.compact([{\r\n plugin: perfMarkerPlugin,\r\n config: {\r\n appConfig,\r\n marker: perfMarker,\r\n },\r\n }, {\r\n plugin: a11yPlugin,\r\n config: { i18n },\r\n }, {\r\n plugin: uiBlockerPlugin,\r\n config: { el: $(isForVNext ? '.dimensions-page' : '#summaryEntityPanel') },\r\n }, {\r\n plugin: paginationPlugin,\r\n config: {\r\n availablePageSizes: [20, 50, 100, 200],\r\n enableRandomPage: false,\r\n pageNumberLabelText: isForVNext ? '' : i18n.getString('Grid_Page_Number_Label_Text'),\r\n pageSizeText: i18n.getString('Grid_ShowRows'),\r\n totalPageCountText: i18n.getString('Grid_PageOf'),\r\n resetPageNumberOnSort: true,\r\n },\r\n }, {\r\n plugin: inlineDownloadWithoutFilterstateAndSegmentPlugin,\r\n config: {\r\n isAvailable: true,\r\n schema: modifiedReportSchemaForLabelsDownload,\r\n gridId: '',\r\n p$daterange,\r\n DownloadView,\r\n i18n,\r\n processReportRule: (ReportRule) => {\r\n if (isLabelsGrid) {\r\n let queryString = ReportRule.Selection.QueryString;\r\n if (ReportRule.Headers.length === 1) {\r\n queryString = queryString.replace(',LabelColorCode', '');\r\n } else {\r\n queryString = queryString.replace('LabelColorCode,', '');\r\n }\r\n return _.defaults({\r\n Selection: _.defaults({\r\n '@odata.type': '#Model.DimensionReportSelection',\r\n Locale: 1,\r\n Type: reportSchema.name,\r\n QueryString: queryString,\r\n }, ReportRule.Selection),\r\n }, ReportRule);\r\n }\r\n return ReportRule;\r\n },\r\n ReportEmailRule: (() => {\r\n const ReportEmailRule = appState.get('$ReportEmailRule');\r\n appState.unset('$ReportEmailRule');\r\n return ReportEmailRule;\r\n })(),\r\n },\r\n }, {\r\n plugin: columnChooserPlugin,\r\n config: _.extend(columnChooserConfig, {\r\n Columns,\r\n SelectedColumns,\r\n LegacyColumns,\r\n LegacySelectedColumns,\r\n LegacyGridFlag,\r\n nameFromLegacy: {},\r\n CustomColumns,\r\n customColumnConfig: { enabled: false },\r\n isForVNext,\r\n i18n,\r\n columnConversions,\r\n }),\r\n }, {\r\n plugin: dateFilterPlugin,\r\n config: {\r\n state: appState,\r\n isOdataActionSource: false,\r\n edm,\r\n addDateChangeListener,\r\n comparisonColumns: [\r\n 'PeriodPerformanceMetrics',\r\n 'PerformanceMetricsChange',\r\n 'PerformanceMetricsChangePercentage',\r\n ],\r\n p$daterange,\r\n },\r\n },\r\n {\r\n plugin: jsdataRawDataPlugin,\r\n },\r\n {\r\n plugin: inlineErrorPlugin({\r\n errorIconClasses: ['grid-error'],\r\n }),\r\n },\r\n getPGridColumnResizePlugin({\r\n gridName,\r\n preferenceService,\r\n permissions,\r\n }),\r\n ]);\r\n}\r\n","import { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { setUpErrorHandling } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { getColumnsConversionMap } from '@bingads-webui-campaign/column-conversions';\r\n\r\nimport { DimensionGrid } from './dimension-grid-view';\r\nimport { getConfig } from './grid-config';\r\nimport { getBaseDimensionPlugins } from './plugins';\r\n\r\nconst i18n = globalContext.require('$/i18n!global');\r\n\r\nexport function createDimensionGrid({\r\n filterService,\r\n getAdditionalPlugins,\r\n preferenceConfig,\r\n scope,\r\n addDateChangeListener,\r\n p$daterange,\r\n isForVNext = false,\r\n viewport,\r\n perfMarker,\r\n customHeaderOffset,\r\n columns,\r\n gridType,\r\n entitySet,\r\n startDate,\r\n endDate,\r\n columnChooserConfig,\r\n reportName,\r\n customDataSource = null,\r\n reportSchema,\r\n preferenceService,\r\n appConfig,\r\n}) {\r\n const gridName = `${gridType}Grid`;\r\n const columnConversionGridName = 'DimensionsGrid';\r\n const permissions = appConfig.get('Permissions');\r\n return new DimensionGrid({\r\n isForVNext,\r\n filterService,\r\n getGridConfig: view => getConfig({\r\n gridName,\r\n entitySet,\r\n startDate,\r\n endDate,\r\n columns,\r\n isForVNext,\r\n view,\r\n viewport,\r\n customHeaderOffset,\r\n reportName,\r\n customDataSource,\r\n filterService,\r\n appConfig,\r\n }),\r\n getPlugins: view => getBaseDimensionPlugins({\r\n gridName,\r\n isForVNext,\r\n addDateChangeListener,\r\n p$daterange,\r\n columnChooserConfig,\r\n perfMarker,\r\n reportSchema,\r\n preferenceService,\r\n columnConversions: getColumnsConversionMap(columnConversionGridName, permissions),\r\n }).concat(getAdditionalPlugins(view)),\r\n setupDataSourceErrorHandling: view => setUpErrorHandling({\r\n gridView: view,\r\n scope,\r\n dataSource: view.dataSource,\r\n i18n,\r\n }),\r\n preferenceConfig,\r\n gridType,\r\n }).render();\r\n}\r\n","export const Constants = {\r\n LabelCampaign: 1,\r\n LabelAdgroup: 2,\r\n LabelKeyword: 3,\r\n LabelAd: 4,\r\n Label: 5,\r\n TimeHour: 6,\r\n TimeDay: 7,\r\n TimeDate: 8,\r\n TimeWeek: 9,\r\n TimeMonth: 10,\r\n TimeQuarter: 11,\r\n TimeYear: 12,\r\n Time: 13,\r\n SearchQuery: 20,\r\n UserLocation: 30,\r\n Geographic: 40,\r\n AgeGender: 50,\r\n LandingPage: 55,\r\n Publisher: 60,\r\n WebsiteURL: 70,\r\n CallDetails: 80,\r\n Shopping: 100,\r\n ShoppingCategory: 101,\r\n ShoppingProductType: 102,\r\n ShoppingBrand: 103,\r\n ShoppingItem: 104,\r\n ShoppingStore: 105,\r\n AccountLevel: 110,\r\n CampaignLevel: 120,\r\n AdgroupLevel: 130,\r\n LabelAccount: 140,\r\n};\r\n","import { Constants } from './constants';\r\n\r\nexport function addColumnOnLevel(column, columns, level) {\r\n if (level === Constants.CampaignLevel || level === Constants.AccountLevel) {\r\n columns.push(column({\r\n name: 'AdGroupName',\r\n title: 'ColumnName_AdGroup',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Dimensions_AdGroup',\r\n }));\r\n columns.push(column({\r\n name: 'AdGroupId',\r\n title: 'ColumnName_AdgroupID',\r\n filterable: false,\r\n sortable: true,\r\n type: 'string',\r\n }));\r\n }\r\n\r\n if (level === Constants.AccountLevel) {\r\n columns.push(column({\r\n name: 'CampaignName',\r\n title: 'ColumnName_Campaign',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Dimensions_Campaign',\r\n }));\r\n columns.push(column({\r\n name: 'CampaignId',\r\n title: 'Dimension_ColumnName_CampaignId',\r\n filterable: false,\r\n sortable: true,\r\n type: 'string',\r\n }));\r\n }\r\n}\r\n","export const absoluteTopImpressionRate = {\r\n name: 'AbsoluteTopImpressionRatePercent',\r\n title: 'ColumnName_AbsoluteTopImpressionRate',\r\n property: 'AbsoluteTopImpressionRatePercent',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_AbsoluteTopImpressionRate',\r\n};\r\n\r\n\r\nexport const topImpressionRate = {\r\n name: 'TopImpressionRatePercent',\r\n title: 'ColumnName_TopImpressionRate',\r\n property: 'TopImpressionRatePercent',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_TopImpressionRate',\r\n};\r\n\r\nexport const absoluteTopImpressionRateLabel = {\r\n name: 'AbsoluteTopImpressionRate',\r\n title: 'ColumnName_AbsoluteTopImpressionRate',\r\n property: 'AbsoluteTopImpressionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_AbsoluteTopImpressionRate',\r\n};\r\n\r\n\r\nexport const topImpressionRateLabel = {\r\n name: 'TopImpressionRate',\r\n title: 'ColumnName_TopImpressionRate',\r\n property: 'TopImpressionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_TopImpressionRate',\r\n};\r\n","import _ from 'underscore';\r\n\r\nfunction columnsListToSet(columnList) {\r\n return _.reduce(columnList, (memo, col) => {\r\n memo[col] = true; // eslint-disable-line no-param-reassign\r\n\r\n return memo;\r\n }, {});\r\n}\r\n\r\n// If IsViewThroughConversionEnabled is not enabled, then\r\n// ViewThroughConversions should not be selectable.\r\nexport function isConversionsColumnAllowed({\r\n name,\r\n IsViewThroughConversionEnabled,\r\n}) {\r\n if (IsViewThroughConversionEnabled) {\r\n return true;\r\n }\r\n\r\n return name !== 'ViewThroughConversions' && name !== 'ViewThroughConversionsCredit';\r\n}\r\n\r\nexport function columnConfigToColumnChooserConfig(columnConfig, lockedColumns) {\r\n const lockedColumnsSet = columnsListToSet(lockedColumns);\r\n\r\n return _.map(columnConfig, ({ name, title }) => ({\r\n key: name,\r\n name: title,\r\n selectOption: lockedColumnsSet[name] ? 'locked' : 'optional',\r\n }));\r\n}\r\n","import _ from 'underscore';\r\nimport { getAgeGenderColumnConfig } from './ageGender-grid-column-config';\r\nimport { Constants } from '../constants';\r\nimport { columnConfigToColumnChooserConfig } from '../column-config-to-chooser-config';\r\n\r\nexport function getAgeGenderGridConfig({\r\n pageContext,\r\n i18n,\r\n jsDataCampaign,\r\n edm,\r\n ageSchema,\r\n getCurrentLevel,\r\n deleteSchema,\r\n bingadsGridColumn,\r\n gridType,\r\n isForVNext,\r\n}) {\r\n const {\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n } = pageContext.Permissions;\r\n const ageColumnConfig = getAgeGenderColumnConfig({ i18n, bingadsGridColumn, pageContext });\r\n const level = getCurrentLevel();\r\n return {\r\n getColumns: () => ageColumnConfig.getGridSpecificColumns()\r\n .concat(ageColumnConfig.getLevelOfDetailColumns(level))\r\n .concat(ageColumnConfig.getPerfColumns())\r\n .concat(ageColumnConfig.getConversionColumns()),\r\n getColumnChooserConfiguration: () => {\r\n const lockedColumns = ['AgeGroup', 'Gender', 'EstimatedImpressions'];\r\n const columnChooserConfig = {\r\n categories: [{\r\n name: i18n.getString('LevelOfDetail'),\r\n options: columnConfigToColumnChooserConfig(\r\n [\r\n ...ageColumnConfig.getGridSpecificColumns(),\r\n ...ageColumnConfig.getLevelOfDetailColumns(level),\r\n ],\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Performance'),\r\n options: columnConfigToColumnChooserConfig(\r\n ageColumnConfig.getPerfColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Conversions'),\r\n options: columnConfigToColumnChooserConfig(\r\n ageColumnConfig.getConversionColumns(),\r\n lockedColumns\r\n ),\r\n }],\r\n selected: lockedColumns.concat(_.compact([\r\n 'EstimatedImpressions',\r\n 'EstimatedClicks',\r\n 'EstimatedCTR',\r\n IsAvgPositionDeprecationPhase1Enabled && 'TopImpressionRatePercent',\r\n IsAvgPositionDeprecationPhase1Enabled && 'AbsoluteTopImpressionRatePercent',\r\n ])),\r\n locked: lockedColumns,\r\n mandatory: [],\r\n patchQuery: true,\r\n isForVNext,\r\n };\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n return columnChooserConfig;\r\n },\r\n\r\n getEntity: () => jsDataCampaign.DimensionAgeGender,\r\n\r\n getEntitySet: () => _.result(edm.currentAccount, 'DimensionAgeGender'),\r\n\r\n getSchema: () => {\r\n const columns = ['CampaignName', 'AdGroupName'];\r\n\r\n deleteSchema(columns, ageSchema);\r\n\r\n if (level === Constants.AccountLevel) {\r\n ageSchema.properties.CampaignName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n ageSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n } else if (level === Constants.CampaignLevel) {\r\n ageSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n }\r\n\r\n return ageSchema;\r\n },\r\n getReportName: () => 'AgeAndGender ',\r\n getReportSchema() {\r\n return _.defaults({\r\n name: this.getReportName(gridType),\r\n }, this.getSchema(gridType));\r\n },\r\n modifyFilter: (filters) => {\r\n const ageGroup = filters.fields.filter(item => item.name === 'AgeGroup')[0];\r\n\r\n ageGroup.chooseType = 'checkbox';\r\n ageGroup.enum = [0, 1, 2, 3, 4, 5, 6, 7];\r\n ageGroup.localized = {\r\n 0: i18n.getString('Dimension_AgeGroup_0'),\r\n 1: i18n.getString('Dimension_AgeGroup_1'),\r\n 2: i18n.getString('Dimension_AgeGroup_2'),\r\n 3: i18n.getString('Dimension_AgeGroup_3'),\r\n 4: i18n.getString('Dimension_AgeGroup_4'),\r\n 5: i18n.getString('Dimension_AgeGroup_5'),\r\n 6: i18n.getString('Dimension_AgeGroup_6'),\r\n 7: i18n.getString('Dimension_AgeGroup_7'),\r\n };\r\n ageGroup.type = 'object';\r\n\r\n const gender = filters.fields.filter(item => item.name === 'Gender')[0];\r\n\r\n gender.chooseType = 'checkbox';\r\n gender.enum = [0, 1, 2];\r\n gender.localized = {\r\n 0: i18n.getString('Dimension_Gender_0'),\r\n 1: i18n.getString('Dimension_Gender_1'),\r\n 2: i18n.getString('Dimension_Gender_2'),\r\n };\r\n gender.type = 'object';\r\n\r\n const medium = filters.fields.filter(item => item.name === 'Medium')[0];\r\n\r\n medium.chooseType = 'checkbox';\r\n medium.enum = [0, 1, 2, 10, 11];\r\n medium.localized = {\r\n 0: i18n.getString('Dimension_Medium_0'),\r\n 1: i18n.getString('Dimension_Medium_1'),\r\n 2: i18n.getString('Dimension_Medium_2'),\r\n 10: i18n.getString('Dimension_Medium_3'),\r\n 11: i18n.getString('Dimension_Medium_4'),\r\n };\r\n medium.type = 'object';\r\n\r\n return filters;\r\n },\r\n getRewriteMap: () => ({\r\n AgeGroup: i18n.getString('ColumnName_AgeGroup'),\r\n Gender: i18n.getString('ColumnName_Gender'),\r\n Medium: i18n.getString('ColumnName_Medium'),\r\n EstimatedImpressions: i18n.getString('ColumnName_EstimatedImpressions'),\r\n EstimatedClicks: i18n.getString('ColumnName_EstimatedClicks'),\r\n EstimatedCTR: i18n.getString('ColumnName_EstimatedCTR'),\r\n EstimatedImpressionRate: i18n.getString('ColumnName_EstimatedImpressionRate'),\r\n EstimatedClickRate: i18n.getString('ColumnName_EstimatedClickPercent'),\r\n EstimatedConversions: i18n.getString('ColumnName_EstimatedConversions'),\r\n EstimatedConversionRate: i18n.getString('ColumnName_EstimatedConversionRate'),\r\n EstimatedAllConversions: i18n.getString('ColumnName_EstimatedAllConversions'),\r\n EstimatedAllConversionRate: i18n.getString('ColumnName_EstimatedAllConversionRate'),\r\n AdGroupName: i18n.getString('FilterLocalization_DataAttribute_AdGroupName'),\r\n CampaignName: i18n.getString('FilterLocalization_DataAttribute_CampaignName'),\r\n TopImpressionRatePercent: i18n.getString('ColumnName_TopImpressionRate'),\r\n AbsoluteTopImpressionRatePercent: i18n.getString('ColumnName_AbsoluteTopImpressionRate'),\r\n }),\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { addColumnOnLevel } from '../add-column-on-level';\r\nimport { absoluteTopImpressionRate, topImpressionRate } from '../shared/columns';\r\nimport agegenderTemplate from './agegender-template.pug';\r\nimport genderTemplate from './gender-template.pug';\r\nimport mediumTemplate from './medium-template.pug';\r\n\r\nexport function getAgeGenderColumnConfig({ i18n, bingadsGridColumn, pageContext }) {\r\n function column(options) {\r\n return bingadsGridColumn(_.defaults({}, options, { i18n }));\r\n }\r\n\r\n const { IsAvgPositionDeprecationPhase1Enabled } = pageContext.Permissions;\r\n\r\n return {\r\n getGridSpecificColumns: () => {\r\n const columns = [];\r\n\r\n columns.push(column({\r\n name: 'AgeGroup',\r\n title: 'ColumnName_AgeGroup',\r\n sortable: true,\r\n type: 'string',\r\n property: {\r\n get(row) {\r\n let ageGender = null;\r\n\r\n switch (row.AgeGroup) {\r\n case 0:\r\n ageGender = i18n.getString('Dimension_AgeGroup_0');\r\n break;\r\n case 1:\r\n ageGender = i18n.getString('Dimension_AgeGroup_1');\r\n break;\r\n case 2:\r\n ageGender = i18n.getString('Dimension_AgeGroup_2');\r\n break;\r\n case 3:\r\n ageGender = i18n.getString('Dimension_AgeGroup_3');\r\n break;\r\n case 4:\r\n ageGender = i18n.getString('Dimension_AgeGroup_4');\r\n break;\r\n case 5:\r\n ageGender = i18n.getString('Dimension_AgeGroup_5');\r\n break;\r\n case 6:\r\n ageGender = i18n.getString('Dimension_AgeGroup_6');\r\n break;\r\n case 7:\r\n ageGender = i18n.getString('Dimension_AgeGroup_7');\r\n break;\r\n case 99:\r\n ageGender = i18n.getString('Dimension_AgeGroup_8');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return {\r\n ageGender,\r\n };\r\n },\r\n key: 'AgeGroup',\r\n },\r\n template: agegenderTemplate,\r\n helpId: 'pop_BA_Reporting_Clarity_AgeGroup',\r\n }));\r\n\r\n columns.push(column({\r\n name: 'Gender',\r\n title: 'ColumnName_Gender',\r\n sortable: true,\r\n type: 'string',\r\n property: {\r\n get(row) {\r\n let gender = null;\r\n\r\n switch (row.Gender) {\r\n case 0:\r\n gender = i18n.getString('Dimension_Gender_0');\r\n break;\r\n case 1:\r\n gender = i18n.getString('Dimension_Gender_1');\r\n break;\r\n case 2:\r\n gender = i18n.getString('Dimension_Gender_2');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return {\r\n gender,\r\n };\r\n },\r\n key: 'Gender',\r\n },\r\n template: genderTemplate,\r\n helpId: 'Pop_BA_Reporting_Clarity_Gender',\r\n }));\r\n\r\n columns.push(column({\r\n name: 'Medium',\r\n title: 'ColumnName_Medium',\r\n sortable: true,\r\n type: 'number',\r\n property: {\r\n get(row) {\r\n let medium = null;\r\n\r\n switch (row.Medium) {\r\n case 0:\r\n medium = i18n.getString('Dimension_Medium_0');\r\n break;\r\n case 1:\r\n medium = i18n.getString('Dimension_Medium_1');\r\n break;\r\n case 2:\r\n medium = i18n.getString('Dimension_Medium_2');\r\n break;\r\n case 10:\r\n medium = i18n.getString('Dimension_Medium_3');\r\n break;\r\n case 11:\r\n medium = i18n.getString('Dimension_Medium_4');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return {\r\n medium,\r\n };\r\n },\r\n key: 'Medium',\r\n },\r\n template: mediumTemplate,\r\n helpId: 'pop_BA_NewCampaignCreate_Distribute',\r\n }));\r\n\r\n return columns;\r\n },\r\n getLevelOfDetailColumns: (level) => {\r\n const levelOfDetailColumns = [];\r\n\r\n addColumnOnLevel(column, levelOfDetailColumns, level);\r\n\r\n return levelOfDetailColumns;\r\n },\r\n getPerfColumns: () => _.compact([\r\n column({\r\n name: 'EstimatedImpressions',\r\n title: 'ColumnName_EstimatedImpressions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_Reporting_Clarity_EstImpr',\r\n }),\r\n column({\r\n name: 'EstimatedClicks',\r\n title: 'ColumnName_EstimatedClicks',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_Reporting_Clarity_EstClicks',\r\n }),\r\n column({\r\n name: 'EstimatedCTR',\r\n title: 'ColumnName_EstimatedCTR',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_EstCTRPerc',\r\n }),\r\n column({\r\n name: 'EstimatedImpressionRate',\r\n title: 'ColumnName_EstimatedImpressionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_EstImprRate',\r\n }),\r\n column({\r\n name: 'EstimatedClickRate',\r\n title: 'ColumnName_EstimatedClickPercent',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_EstClickPerc',\r\n }),\r\n IsAvgPositionDeprecationPhase1Enabled && column(topImpressionRate),\r\n IsAvgPositionDeprecationPhase1Enabled && column(absoluteTopImpressionRate),\r\n ]),\r\n getConversionColumns: () => [\r\n column({\r\n name: 'EstimatedConversions',\r\n title: 'ColumnName_EstimatedConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_Reporting_Clarity_EstConv',\r\n }),\r\n column({\r\n name: 'EstimatedConversionRate',\r\n title: 'ColumnName_EstimatedConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_EstConvRate',\r\n }),\r\n column({\r\n name: 'EstimatedAllConversions',\r\n title: 'ColumnName_EstimatedAllConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_Reporting_Clarity_EstAllConv',\r\n }),\r\n column({\r\n name: 'EstimatedAllConversionRate',\r\n title: 'ColumnName_EstimatedAllConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_EstAllConvRate',\r\n }),\r\n ],\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { getCallForwardingGridColumnConfig } from './callforwarding-grid-column-config';\r\nimport { Constants } from '../constants';\r\nimport { columnConfigToColumnChooserConfig } from '../column-config-to-chooser-config';\r\n\r\nexport function getCallForwardingGridConfig({\r\n i18n,\r\n jsDataCampaign,\r\n edm,\r\n callForwardingSchema,\r\n getCurrentLevel,\r\n deleteSchema,\r\n bingadsGridColumn,\r\n gridType,\r\n isForVNext,\r\n}) {\r\n const callForwardingColumnConfig = getCallForwardingGridColumnConfig({\r\n i18n,\r\n bingadsGridColumn,\r\n });\r\n const level = getCurrentLevel();\r\n return {\r\n getColumns: () => callForwardingColumnConfig.getLevelOfDetailColumns(level)\r\n .concat(callForwardingColumnConfig.getPerfColumns()),\r\n getColumnChooserConfiguration: () => {\r\n const lockedColumns = ['StartTime', 'EndTime', 'CallStatus', 'CallDuration'];\r\n\r\n const columnChooserConfig = {\r\n categories: [{\r\n name: i18n.getString('LevelOfDetail'),\r\n options: columnConfigToColumnChooserConfig(\r\n callForwardingColumnConfig.getLevelOfDetailColumns(level),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Performance'),\r\n options: columnConfigToColumnChooserConfig(\r\n callForwardingColumnConfig.getPerfColumns(),\r\n lockedColumns\r\n ),\r\n }],\r\n selected: lockedColumns,\r\n mandatory: [],\r\n patchQuery: true,\r\n isForVNext,\r\n };\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n return columnChooserConfig;\r\n },\r\n\r\n getEntity: () => jsDataCampaign.Time,\r\n\r\n getEntitySet: () => _.result(edm.currentAccount, 'Time'),\r\n\r\n getSchema: () => {\r\n const columns = ['CampaignName', 'AdGroupName'];\r\n\r\n deleteSchema(columns, callForwardingSchema);\r\n\r\n if (level === Constants.AccountLevel) {\r\n callForwardingSchema.properties.CampaignName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n callForwardingSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n } else if (level === Constants.CampaignLevel) {\r\n callForwardingSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n }\r\n\r\n return callForwardingSchema;\r\n },\r\n getReportName: () => 'CallForwardingDetail',\r\n getReportSchema() {\r\n return _.defaults({\r\n name: this.getReportName(gridType),\r\n }, this.getSchema(gridType));\r\n },\r\n modifyFilter: (filters) => {\r\n const callStatus = filters.fields.filter(item => item.name === 'CallStatus')[0];\r\n\r\n callStatus.chooseType = 'checkbox';\r\n callStatus.enum = [0, 1];\r\n callStatus.localized = {\r\n 0: i18n.getString('Dimension_CallStatus_0'),\r\n 1: i18n.getString('Dimension_CallStatus_1'),\r\n };\r\n callStatus.type = 'object';\r\n\r\n return filters;\r\n },\r\n getRewriteMap: () => ({\r\n StartTime: i18n.getString('ColumnName_StartTime'),\r\n EndTime: i18n.getString('ColumnName_EndTime'),\r\n AreaCode: i18n.getString('ColumnName_AreaCode'),\r\n City: i18n.getString('ColumnName_City'),\r\n StateOrProvince: i18n.getString('ColumnName_StateOrProvince'),\r\n CallStatus: i18n.getString('ColumnName_CallStatus'),\r\n CallDuration: i18n.getString('ColumnName_CallDuration'),\r\n PhoneSpend: i18n.getString('ColumnName_PhoneSpend'),\r\n AdGroupName: i18n.getString('FilterLocalization_DataAttribute_AdGroupName'),\r\n CampaignName: i18n.getString('FilterLocalization_DataAttribute_CampaignName'),\r\n }),\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { addColumnOnLevel } from '../add-column-on-level';\r\nimport callStatusTemplate from './callstatus-template.pug';\r\nimport timeTemplate from './time-template.pug';\r\n\r\n// inject via arg\r\n// import i18n from '$/i18n!global';\r\n// import { bingadsGridColumn } from 'component/bingads-grid/shared/column';\r\n\r\nexport function getCallForwardingGridColumnConfig({\r\n i18n,\r\n bingadsGridColumn,\r\n}) {\r\n function column(options) {\r\n return bingadsGridColumn(_.defaults({}, options, { i18n }));\r\n }\r\n\r\n return {\r\n getLevelOfDetailColumns: (level) => {\r\n const levelOfDetailColumns = [];\r\n\r\n levelOfDetailColumns.push(column({\r\n name: 'StartTime',\r\n title: 'ColumnName_StartTime',\r\n property: {\r\n get(row) {\r\n const time = new Date(row.StartTime);\r\n\r\n return {\r\n date: `${time.toLocaleDateString()} ${time.toLocaleTimeString()}`,\r\n };\r\n },\r\n key: 'StartTime',\r\n },\r\n template: timeTemplate,\r\n sortable: true,\r\n type: 'datetime',\r\n helpId: 'Pop_BA_Reporting_Clarity_CallStartTime',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'EndTime',\r\n title: 'ColumnName_EndTime',\r\n sortable: true,\r\n property: {\r\n get(row) {\r\n const time = new Date(row.EndTime);\r\n\r\n return {\r\n date: `${time.toLocaleDateString()} ${time.toLocaleTimeString()}`,\r\n };\r\n },\r\n key: 'EndTime',\r\n },\r\n type: 'datetime',\r\n template: timeTemplate,\r\n helpId: 'Pop_BA_Reporting_Clarity_CallEndTime',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'AreaCode',\r\n title: 'ColumnName_AreaCode',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_AreaCode',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'City',\r\n title: 'ColumnName_City',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_CityLocation',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'StateOrProvince',\r\n title: 'ColumnName_StateOrProvince',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_StatePhysical',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'CallStatus',\r\n title: 'ColumnName_CallStatus',\r\n sortable: true,\r\n type: 'integer',\r\n property: {\r\n get(row) {\r\n let callStatus = null;\r\n\r\n switch (row.CallStatus) {\r\n case 0:\r\n callStatus = i18n.getString('Dimension_CallStatus_0');\r\n break;\r\n case 1:\r\n callStatus = i18n.getString('Dimension_CallStatus_1');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return {\r\n callStatus,\r\n };\r\n },\r\n key: 'CallStatus',\r\n },\r\n template: callStatusTemplate,\r\n helpId: 'pop_BA_Reporting_Clarity_CallStatus',\r\n }));\r\n\r\n addColumnOnLevel(column, levelOfDetailColumns, level);\r\n\r\n return levelOfDetailColumns;\r\n },\r\n getPerfColumns: () => [\r\n column({\r\n name: 'CallDuration',\r\n title: 'ColumnName_CallDuration',\r\n sortable: true,\r\n type: 'integer',\r\n helpId: 'pop_BA_Reporting_Clarity_Duration',\r\n }),\r\n ],\r\n };\r\n}\r\n","import _ from 'underscore';\r\n\r\nexport function updateSovColumns(schema, sovColumnNames) {\r\n _.each(Object.keys(sovColumnNames), (sovColumnName) => {\r\n if (schema.properties.PerformanceMetrics.schema.properties[sovColumnName]) {\r\n schema.properties.PerformanceMetrics.schema // eslint-disable-line no-param-reassign\r\n .properties[sovColumnNames[sovColumnName]] =\r\n _.clone(schema.properties.PerformanceMetrics.schema.properties[sovColumnName]);\r\n delete schema.properties.PerformanceMetrics.schema.properties[sovColumnName]; // eslint-disable-line no-param-reassign, max-len\r\n }\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport * as putil from '@bingads-webui-universal/primitive-utilities';\r\nimport { applyPartialConversionColumnName } from '@bingads-webui-campaign/column-conversions';\r\n\r\nimport { getGeographicGridColumnConfig } from './geographic-grid-column-config';\r\nimport { Constants } from '../constants';\r\nimport { columnConfigToColumnChooserConfig, isConversionsColumnAllowed } from '../column-config-to-chooser-config';\r\nimport { updateSovColumns } from '../shared/util';\r\n\r\nexport function getGeographicGridConfig({\r\n pageContext,\r\n i18n,\r\n jsDataCampaign,\r\n edm,\r\n geographicSchema,\r\n locationSchema,\r\n getCurrentLevel,\r\n deleteSchema,\r\n bingadsGridColumn,\r\n globalConfig,\r\n gridType,\r\n isForVNext,\r\n}) {\r\n const permissions = pageContext.Permissions;\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsManualCpmEnabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = permissions;\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n const geographicColumnConfig =\r\n getGeographicGridColumnConfig({ i18n, bingadsGridColumn, globalConfig });\r\n const level = getCurrentLevel();\r\n return {\r\n getColumns: () => geographicColumnConfig.getLevelOfDetailColumns(gridType, level)\r\n .concat(geographicColumnConfig.getPerfColumns())\r\n .concat(geographicColumnConfig.getConversionColumns()),\r\n getColumnChooserConfiguration: () => {\r\n const lockedColumns = ['CountryName', 'Impressions'];\r\n const columnChooserConfig = {\r\n categories: [{\r\n name: i18n.getString('LevelOfDetail'),\r\n options: columnConfigToColumnChooserConfig(\r\n geographicColumnConfig.getLevelOfDetailColumns(gridType, level),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Performance'),\r\n options: columnConfigToColumnChooserConfig(\r\n geographicColumnConfig.getPerfColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Conversions'),\r\n options: columnConfigToColumnChooserConfig(\r\n _.filter(\r\n geographicColumnConfig.getConversionColumns(),\r\n ({ name }) => isConversionsColumnAllowed({\r\n name,\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n })\r\n ),\r\n lockedColumns\r\n ),\r\n }],\r\n selected: lockedColumns.concat(_.compact([\r\n 'City',\r\n 'MetroArea',\r\n 'StateOrProvince',\r\n 'Impressions',\r\n 'Clicks',\r\n 'CTR',\r\n 'AverageCPC',\r\n 'Spend',\r\n 'Conversions',\r\n !IsAvgPositionDeprecationPhase1Enabled && !IsAvgPositionDeprecationPhase2Enabled && 'AveragePosition',\r\n IsAvgPositionDeprecationPhase1Enabled && 'TopImpressionRatePercent',\r\n IsAvgPositionDeprecationPhase1Enabled && 'AbsoluteTopImpressionRatePercent',\r\n IsManualCpmEnabled && 'AverageCPM',\r\n ])),\r\n mandatory: [],\r\n patchQuery: true,\r\n isForVNext,\r\n };\r\n\r\n if (gridType === Constants.Geographic) {\r\n columnChooserConfig.selected.push('MostSpecificLocation');\r\n columnChooserConfig.selected.push('TargetedLocationType');\r\n }\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n return columnChooserConfig;\r\n },\r\n\r\n getEntity: () => jsDataCampaign.Time,\r\n\r\n getEntitySet: () => _.result(edm.currentAccount, 'Time'),\r\n\r\n getSchema: () => {\r\n const schema = gridType === Constants.UserLocation ? locationSchema : geographicSchema;\r\n\r\n const columns = ['CampaignName', 'AdGroupName'];\r\n const performanceMetricsProperty = schema.properties.PerformanceMetrics;\r\n const allConvMetrics = applyPartialConversionColumnName(permissions, [\r\n 'AllConversionCPA',\r\n 'AllConversions',\r\n 'AllConversionRate',\r\n 'AllConversionAdvertiserReportedRevenue',\r\n 'AllConversionRevenueOnAdSpend',\r\n 'ViewThroughConversions',\r\n 'ViewThroughConversionsRevenue',\r\n 'ViewThroughConversionsCPA',\r\n 'ViewThroughConversionsReturnOnAdSpend',\r\n 'ViewThroughConversionsRate',\r\n ]);\r\n\r\n _.each(allConvMetrics, (allConvMetric) => {\r\n if (performanceMetricsProperty &&\r\n putil.get(performanceMetricsProperty.schema.properties, allConvMetric)) {\r\n schema.properties.PerformanceMetrics.schema.properties[allConvMetric].filterable =\r\n true;\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversions')) {\r\n schema.properties.PerformanceMetrics\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsRevenue')) {\r\n schema.properties.PerformanceMetrics\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsCPA')) {\r\n schema.properties.PerformanceMetrics\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsReturnOnAdSpend')) {\r\n schema.properties.PerformanceMetrics\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsRate')) {\r\n schema.properties.PerformanceMetrics\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n }\r\n }); deleteSchema(columns, schema);\r\n\r\n if (level === Constants.AccountLevel) {\r\n schema.properties.CampaignName = {\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n schema.properties.AdGroupName = {\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n } else if (level === Constants.CampaignLevel) {\r\n schema.properties.AdGroupName = {\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n }\r\n\r\n const sovColumnNames = {\r\n AbsoluteTopImpressionRate: 'AbsoluteTopImpressionRatePercent',\r\n TopImpressionRate: 'TopImpressionRatePercent',\r\n };\r\n\r\n updateSovColumns(schema, sovColumnNames);\r\n\r\n return schema;\r\n },\r\n getReportName: () => {\r\n if (gridType === Constants.Geographic) {\r\n return 'Geographic';\r\n }\r\n return 'UserLocations';\r\n },\r\n getReportSchema() {\r\n return _.defaults({\r\n name: this.getReportName(gridType),\r\n }, this.getSchema(gridType));\r\n },\r\n modifyFilter: (filters) => {\r\n if (gridType === Constants.Geographic) {\r\n const locationType = filters.fields.filter(item => item.name === 'TargetedLocationType')[0];\r\n\r\n locationType.chooseType = 'checkbox';\r\n locationType.enum = [0, 1, 2];\r\n locationType.localized = {\r\n 0: i18n.getString('Dimension_TargetLocationType_0'),\r\n 1: i18n.getString('Dimension_TargetLocationType_1'),\r\n 2: i18n.getString('Dimension_TargetLocationType_2'),\r\n };\r\n locationType.type = 'object';\r\n }\r\n\r\n return filters;\r\n },\r\n getRewriteMap: () => ({\r\n City: i18n.getString('ColumnName_City'),\r\n MetroArea: i18n.getString('ColumnName_MetroArea'),\r\n CountyName: i18n.getString('ColumnName_CountyName'),\r\n PostalCode: i18n.getString('ColumnName_PostalCode'),\r\n Neighborhood: i18n.getString('ColumnName_Neighborhood'),\r\n StateOrProvince: i18n.getString('ColumnName_StateOrProvince'),\r\n CountryName: i18n.getString('ColumnName_CountryName'),\r\n MostSpecificLocation: i18n.getString('ColumnName_MostSpecificLocation'),\r\n AdGroupName: i18n.getString('FilterLocalization_DataAttribute_AdGroupName'),\r\n CampaignName: i18n.getString('FilterLocalization_DataAttribute_CampaignName'),\r\n TargetedLocationType: i18n.getString('ColumnName_TargetedLocationType'),\r\n TargetLocation: i18n.getString('ColumnName_TargetLocation'),\r\n Radius: i18n.getString('ColumnName_Radius'),\r\n }),\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { addColumnOnLevel } from '../add-column-on-level';\r\nimport { absoluteTopImpressionRate, topImpressionRate } from '../shared/columns';\r\nimport targetLocationTypeTemplate from './targetLocationType-template.pug';\r\nimport { Constants } from '../constants';\r\n\r\nexport function getGeographicGridColumnConfig({ i18n, bingadsGridColumn, globalConfig }) {\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsManualCpmEnabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n dynamic = {},\r\n } = globalConfig.get('Permissions') || {};\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n const {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n } = dynamic;\r\n\r\n const usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\n\r\n function column(options) {\r\n return bingadsGridColumn(_.defaults({}, options, { i18n }));\r\n }\r\n\r\n return {\r\n getLevelOfDetailColumns: (gridType, level) => {\r\n const levelOfDetailColumns = [];\r\n\r\n levelOfDetailColumns.push(column({\r\n name: 'CountryName',\r\n title: 'ColumnName_CountryName',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_CountryRegion',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'StateOrProvince',\r\n title: 'ColumnName_StateOrProvince',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_State',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'MetroArea',\r\n title: 'ColumnName_MetroArea',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_MetroArea',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'City',\r\n title: 'ColumnName_City',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_City',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'CountyName',\r\n title: 'ColumnName_CountyName',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_County',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'PostalCode',\r\n title: 'ColumnName_PostalCode',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_ZipCode',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'Neighborhood',\r\n title: 'ColumnName_Neighborhood',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_NeighborhoodLocation',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'TargetLocation',\r\n title: 'ColumnName_TargetLocation',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_Proximity',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'Radius',\r\n title: 'ColumnName_Radius',\r\n sortable: true,\r\n type: 'integer',\r\n helpId: 'pop_BA_Reporting_Clarity_Radius',\r\n }));\r\n\r\n if (gridType === Constants.Geographic) {\r\n levelOfDetailColumns.push(column({\r\n name: 'MostSpecificLocation',\r\n title: 'ColumnName_MostSpecificLocation',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_MostSpecific',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'TargetedLocationType',\r\n title: 'ColumnName_TargetedLocationType',\r\n sortable: true,\r\n type: 'string',\r\n property: {\r\n get(row) {\r\n let targetLocation = null;\r\n\r\n switch (row.TargetedLocationType) {\r\n case 0:\r\n targetLocation = i18n.getString('Dimension_TargetLocationType_0');\r\n break;\r\n case 1:\r\n targetLocation = i18n.getString('Dimension_TargetLocationType_1');\r\n break;\r\n case 2:\r\n targetLocation = i18n.getString('Dimension_TargetLocationType_2');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return {\r\n targetLocation,\r\n };\r\n },\r\n key: 'TargetedLocationType',\r\n },\r\n template: targetLocationTypeTemplate,\r\n helpId: 'pop_BA_Reporting_Clarity_LocationType',\r\n }));\r\n }\r\n\r\n addColumnOnLevel(column, levelOfDetailColumns, level);\r\n\r\n return levelOfDetailColumns;\r\n },\r\n getPerfColumns: () => _.compact([\r\n column({\r\n name: 'Impressions',\r\n title: 'ColumnName_Impressions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Impr',\r\n }),\r\n column({\r\n name: 'Clicks',\r\n title: 'ColumnName_Clicks',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Clicks',\r\n }),\r\n column({\r\n name: 'CTR',\r\n title: 'ColumnName_ClickThruRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_CTR',\r\n }),\r\n column({\r\n name: 'AverageCPC',\r\n title: 'ColumnName_AverageCPC',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPC',\r\n }),\r\n IsManualCpmEnabled && column({\r\n name: 'AverageCPM',\r\n title: 'ColumnName_AverageCPM',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPM',\r\n }),\r\n column({\r\n name: 'Spend',\r\n title: 'ColumnName_Spend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_Spend',\r\n }),\r\n !IsAvgPositionDeprecationPhase2Enabled && column({\r\n name: 'AveragePosition',\r\n title: 'ColumnName_AveragePosition',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgPosition',\r\n }),\r\n IsAvgPositionDeprecationPhase1Enabled && column(topImpressionRate),\r\n IsAvgPositionDeprecationPhase1Enabled && column(absoluteTopImpressionRate),\r\n ]),\r\n getConversionColumns: () => {\r\n let conversionColumns = [\r\n usePartialConversions ?\r\n column({\r\n name: 'ConversionsCredit',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }) : column({\r\n name: 'Conversions',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }) : column({\r\n name: 'ConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionCPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }) : column({\r\n name: 'CPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }),\r\n column({\r\n name: 'RevenueOnAdSpend',\r\n title: 'ColumnName_RevenueOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_ReturnAdSpend',\r\n }),\r\n column({\r\n name: 'AdvertiserReportedRevenue',\r\n title: 'ColumnName_Revenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_Revenue',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'AllConversionsCredit',\r\n title: 'ColumnName_AllConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConv',\r\n }) : column({\r\n name: 'AllConversions',\r\n title: 'ColumnName_AllConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_AllConv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'AllPartialConversionCPA',\r\n title: 'ColumnName_AllConversionCPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConvCPA',\r\n }) :\r\n column({\r\n name: 'AllConversionCPA',\r\n title: 'ColumnName_AllConversionCPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConvCPA',\r\n }),\r\n usePartialConversions ? column({\r\n name: 'AllPartialConversionRate',\r\n title: 'ColumnName_AllConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRate',\r\n }) :\r\n column({\r\n name: 'AllConversionRate',\r\n title: 'ColumnName_AllConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRate',\r\n }),\r\n column({\r\n name: 'AllConversionAdvertiserReportedRevenue',\r\n title: 'ColumnName_AllConversionAdvertiserReportedRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRevenue',\r\n }),\r\n column({\r\n name: 'AllConversionRevenueOnAdSpend',\r\n title: 'ColumnName_AllConversionRevenueOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvROAS',\r\n }),\r\n ];\r\n\r\n if (IsViewThroughConversionEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughConversionsCredit',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'decimal',\r\n }) :\r\n column({\r\n name: 'ViewThroughConversions',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'integer',\r\n }),\r\n ]);\r\n }\r\n\r\n\r\n if (IsViewThroughConversionsRevenueEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n column({\r\n name: 'ViewThroughConversionsRevenue',\r\n title: 'ColumnName_ViewThroughConversionsRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRevenue',\r\n format: 'decimal',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }) :\r\n column({\r\n name: 'ViewThroughConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }),\r\n column({\r\n name: 'ViewThroughConversionsReturnOnAdSpend',\r\n title: 'ColumnName_ViewThroughConversionsReturnOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvReturnOnAdSpend',\r\n format: 'percentage-value',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }) :\r\n column({\r\n name: 'ViewThroughConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }),\r\n ]);\r\n }\r\n\r\n return conversionColumns;\r\n },\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport * as putil from '@bingads-webui-universal/primitive-utilities';\r\nimport { applyPartialConversionColumnName } from '@bingads-webui-campaign/column-conversions';\r\n\r\nimport { getlandingGridColumnConfig } from './landing-grid-column-config';\r\nimport { Constants } from '../constants';\r\nimport { columnConfigToColumnChooserConfig, isConversionsColumnAllowed } from '../column-config-to-chooser-config';\r\nimport { updateSovColumns } from '../shared/util';\r\n\r\nexport function getLandingGridConfig({\r\n i18n,\r\n jsDataCampaign,\r\n edm,\r\n globalConfig,\r\n landingSchema,\r\n getCurrentLevel,\r\n deleteSchema,\r\n bingadsGridColumn,\r\n gridType,\r\n isForVNext,\r\n}) {\r\n const permissions = globalConfig.get('Permissions') || {};\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = permissions;\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n const landingColumnConfig = getlandingGridColumnConfig({ i18n, bingadsGridColumn, globalConfig });\r\n const level = getCurrentLevel();\r\n return {\r\n getColumns: () => landingColumnConfig.getLevelOfDetailColumns(level)\r\n .concat(landingColumnConfig.getPerfColumns())\r\n .concat(landingColumnConfig.getConversionColumns()),\r\n getColumnChooserConfiguration: () => {\r\n const lockedColumns = ['KeywordDestinationUrl', 'Impressions'];\r\n const columnChooserConfig = {\r\n categories: [{\r\n name: i18n.getString('LevelOfDetail'),\r\n options: columnConfigToColumnChooserConfig(\r\n landingColumnConfig.getLevelOfDetailColumns(level),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Performance'),\r\n options: columnConfigToColumnChooserConfig(\r\n landingColumnConfig.getPerfColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Conversions'),\r\n options: columnConfigToColumnChooserConfig(\r\n _.filter(\r\n landingColumnConfig.getConversionColumns(),\r\n ({ name }) => isConversionsColumnAllowed({\r\n name,\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n })\r\n ),\r\n lockedColumns\r\n ),\r\n }],\r\n selected: lockedColumns.concat(applyPartialConversionColumnName(permissions, _.compact([\r\n 'KeywordDestinationUrl',\r\n 'FinalUrl',\r\n 'Impressions',\r\n 'Clicks',\r\n 'CTR',\r\n 'AverageCPC',\r\n 'Spend',\r\n 'Conversions',\r\n !IsAvgPositionDeprecationPhase1Enabled && !IsAvgPositionDeprecationPhase2Enabled && 'AveragePosition',\r\n IsAvgPositionDeprecationPhase1Enabled && 'TopImpressionRatePercent',\r\n IsAvgPositionDeprecationPhase1Enabled && 'AbsoluteTopImpressionRatePercent',\r\n ]))),\r\n mandatory: [],\r\n locked: lockedColumns,\r\n patchQuery: true,\r\n isForVNext,\r\n };\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n return columnChooserConfig;\r\n },\r\n\r\n getEntity: () => jsDataCampaign.Time,\r\n\r\n getEntitySet: () => _.result(edm.currentAccount, 'Time'),\r\n\r\n getSchema: () => {\r\n const columns = ['CampaignName', 'AdGroupName'];\r\n const performanceMetricsProperty = landingSchema.properties.PerformanceMetrics;\r\n const allConvMetrics = applyPartialConversionColumnName(permissions, [\r\n 'AllConversionCPA',\r\n 'AllConversions',\r\n 'AllConversionRate',\r\n 'AllConversionAdvertiserReportedRevenue',\r\n 'AllConversionRevenueOnAdSpend',\r\n 'ViewThroughConversions',\r\n 'ViewThroughConversionsRevenue',\r\n 'ViewThroughConversionsCPA',\r\n 'ViewThroughConversionsReturnOnAdSpend',\r\n 'ViewThroughConversionsRate',\r\n ]);\r\n\r\n _.each(allConvMetrics, (allConvMetric) => {\r\n if (performanceMetricsProperty &&\r\n putil.get(performanceMetricsProperty.schema.properties, allConvMetric)) {\r\n landingSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable = true;\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversions')) {\r\n landingSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsRevenue')) {\r\n landingSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsCPA')) {\r\n landingSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsReturnOnAdSpend')) {\r\n landingSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsRate')) {\r\n landingSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n }\r\n });\r\n\r\n deleteSchema(columns, landingSchema);\r\n\r\n if (level === Constants.AccountLevel) {\r\n landingSchema.properties.CampaignName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n landingSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n } else if (level === Constants.CampaignLevel) {\r\n landingSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n }\r\n\r\n const sovColumnNames = {\r\n AbsoluteTopImpressionRate: 'AbsoluteTopImpressionRatePercent',\r\n TopImpressionRate: 'TopImpressionRatePercent',\r\n };\r\n\r\n updateSovColumns(landingSchema, sovColumnNames);\r\n\r\n return landingSchema;\r\n },\r\n getReportName: () => 'DestinationUrl',\r\n getReportSchema() {\r\n return _.defaults({\r\n name: this.getReportName(gridType),\r\n }, this.getSchema(gridType));\r\n },\r\n modifyFilter: filters => filters,\r\n getRewriteMap: () => ({\r\n KeywordDestinationUrl: i18n.getString('ColumnName_DimKeywordDestinationUrl'),\r\n FinalUrl: i18n.getString('ColumnName_DimFinalUrl'),\r\n UrlCustomParameters: i18n.getString('ColumnName_DimUrlCustomParameters'),\r\n TrackingTemplate: i18n.getString('ColumnName_TrackingTemplate'),\r\n FinalUrlSuffix: i18n.getString('ColumnName_FinalUrlSuffix'),\r\n AdGroupName: i18n.getString('FilterLocalization_DataAttribute_AdGroupName'),\r\n CampaignName: i18n.getString('FilterLocalization_DataAttribute_CampaignName'),\r\n }),\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { addColumnOnLevel } from '../add-column-on-level';\r\nimport { absoluteTopImpressionRate, topImpressionRate } from '../shared/columns';\r\n\r\nexport function getlandingGridColumnConfig({ i18n, bingadsGridColumn, globalConfig }) {\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n dynamic = {},\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = globalConfig.get('Permissions') || {};\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n\r\n const {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n } = dynamic;\r\n\r\n const usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\n function column(options) {\r\n return bingadsGridColumn(_.defaults({}, options, { i18n }));\r\n }\r\n\r\n return {\r\n getLevelOfDetailColumns: (level) => {\r\n const levelOfDetailColumns = [];\r\n\r\n levelOfDetailColumns.push(column({\r\n name: 'KeywordDestinationUrl',\r\n title: 'ColumnName_DimKeywordDestinationUrl',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_CampaignGrids_DestinationURL',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'FinalUrl',\r\n title: 'ColumnName_DimFinalUrl',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_FinalURL',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'UrlCustomParameters',\r\n title: 'ColumnName_DimUrlCustomParameters',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_CustomParameters',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'TrackingTemplate',\r\n title: 'ColumnName_TrackingTemplate',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_TrackingTemplate',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'FinalUrlSuffix',\r\n title: 'ColumnName_FinalUrlSuffix',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_NewAdCreate_FinalURLSuffix',\r\n }));\r\n\r\n addColumnOnLevel(column, levelOfDetailColumns, level);\r\n\r\n return levelOfDetailColumns;\r\n },\r\n getPerfColumns: () => _.compact([\r\n column({\r\n name: 'Impressions',\r\n title: 'ColumnName_Impressions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Impr',\r\n }),\r\n column({\r\n name: 'Clicks',\r\n title: 'ColumnName_Clicks',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Clicks',\r\n }),\r\n column({\r\n name: 'CTR',\r\n title: 'ColumnName_ClickThruRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_CTR',\r\n }),\r\n column({\r\n name: 'AverageCPC',\r\n title: 'ColumnName_AverageCPC',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPC',\r\n }),\r\n column({\r\n name: 'AverageCPM',\r\n title: 'ColumnName_AverageCPM',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_AvgCPM',\r\n }),\r\n column({\r\n name: 'Spend',\r\n title: 'ColumnName_Spend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_Spend',\r\n }),\r\n !IsAvgPositionDeprecationPhase2Enabled && column({\r\n name: 'AveragePosition',\r\n title: 'ColumnName_AveragePosition',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgPosition',\r\n }),\r\n IsAvgPositionDeprecationPhase1Enabled && column(topImpressionRate),\r\n IsAvgPositionDeprecationPhase1Enabled && column(absoluteTopImpressionRate),\r\n ]),\r\n getConversionColumns: () => {\r\n let conversionColumns = [\r\n usePartialConversions ?\r\n column({\r\n name: 'ConversionsCredit',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }) : column({\r\n name: 'Conversions',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }) : column({\r\n name: 'ConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionCPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }) : column({\r\n name: 'CPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }),\r\n column({\r\n name: 'RevenueOnAdSpend',\r\n title: 'ColumnName_RevenueOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_ReturnAdSpend',\r\n }),\r\n column({\r\n name: 'AdvertiserReportedRevenue',\r\n title: 'ColumnName_Revenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_Revenue',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'AllConversionsCredit',\r\n title: 'ColumnName_AllConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConv',\r\n }) : column({\r\n name: 'AllConversions',\r\n title: 'ColumnName_AllConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_AllConv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'AllPartialConversionCPA',\r\n title: 'ColumnName_AllConversionCPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConvCPA',\r\n }) :\r\n column({\r\n name: 'AllConversionCPA',\r\n title: 'ColumnName_AllConversionCPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConvCPA',\r\n }),\r\n usePartialConversions ? column({\r\n name: 'AllPartialConversionRate',\r\n title: 'ColumnName_AllConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRate',\r\n }) :\r\n column({\r\n name: 'AllConversionRate',\r\n title: 'ColumnName_AllConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRate',\r\n }),\r\n column({\r\n name: 'AllConversionAdvertiserReportedRevenue',\r\n title: 'ColumnName_AllConversionAdvertiserReportedRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRevenue',\r\n }),\r\n column({\r\n name: 'AllConversionRevenueOnAdSpend',\r\n title: 'ColumnName_AllConversionRevenueOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvROAS',\r\n }),\r\n ];\r\n\r\n if (IsViewThroughConversionEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughConversionsCredit',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'decimal',\r\n }) :\r\n column({\r\n name: 'ViewThroughConversions',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'integer',\r\n }),\r\n ]);\r\n }\r\n\r\n\r\n if (IsViewThroughConversionsRevenueEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n column({\r\n name: 'ViewThroughConversionsRevenue',\r\n title: 'ColumnName_ViewThroughConversionsRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRevenue',\r\n format: 'decimal',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }) :\r\n column({\r\n name: 'ViewThroughConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }),\r\n column({\r\n name: 'ViewThroughConversionsReturnOnAdSpend',\r\n title: 'ColumnName_ViewThroughConversionsReturnOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvReturnOnAdSpend',\r\n format: 'percentage-value',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }) :\r\n column({\r\n name: 'ViewThroughConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }),\r\n ]);\r\n }\r\n\r\n return conversionColumns;\r\n },\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport * as putil from '@bingads-webui-universal/primitive-utilities';\r\nimport { applyPartialConversionColumnName } from '@bingads-webui-campaign/column-conversions';\r\n\r\nimport { getPublisherGridColumnConfig } from './publisher-grid-column-config';\r\nimport { Constants } from '../constants';\r\nimport { columnConfigToColumnChooserConfig, isConversionsColumnAllowed } from '../column-config-to-chooser-config';\r\nimport { updateSovColumns } from '../shared/util';\r\n\r\nexport function getPublisherGridConfig({\r\n pageContext,\r\n i18n,\r\n jsDataCampaign,\r\n edm,\r\n publisherSchema,\r\n getCurrentLevel,\r\n deleteSchema,\r\n bingadsGridColumn,\r\n globalConfig,\r\n gridType,\r\n isForVNext,\r\n}) {\r\n const permissions = pageContext.Permissions;\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsManualCpmEnabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = permissions;\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n const publisherColumnConfig\r\n = getPublisherGridColumnConfig({ i18n, bingadsGridColumn, globalConfig });\r\n const level = getCurrentLevel();\r\n\r\n return {\r\n getColumns: () => publisherColumnConfig.getLevelOfDetailColumns(level)\r\n .concat(publisherColumnConfig.getPerfColumns())\r\n .concat(publisherColumnConfig.getConversionColumns()),\r\n getColumnChooserConfiguration: () => {\r\n const lockedColumns = ['PublisherWebsite', 'Impressions'];\r\n const columnChooserConfig = {\r\n categories: [{\r\n name: i18n.getString('LevelOfDetail'),\r\n options: columnConfigToColumnChooserConfig(\r\n publisherColumnConfig.getLevelOfDetailColumns(level),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Performance'),\r\n options: columnConfigToColumnChooserConfig(\r\n publisherColumnConfig.getPerfColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Conversions'),\r\n options: columnConfigToColumnChooserConfig(\r\n _.filter(\r\n publisherColumnConfig.getConversionColumns(),\r\n ({ name }) => isConversionsColumnAllowed({\r\n name,\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n })\r\n ),\r\n lockedColumns\r\n ),\r\n }],\r\n selected: lockedColumns.concat(applyPartialConversionColumnName(permissions, _.compact([\r\n 'Impressions',\r\n 'Clicks',\r\n 'CTR',\r\n 'AverageCPC',\r\n 'Spend',\r\n 'Conversions',\r\n !IsAvgPositionDeprecationPhase1Enabled && !IsAvgPositionDeprecationPhase2Enabled && 'AveragePosition',\r\n IsAvgPositionDeprecationPhase1Enabled && 'TopImpressionRatePercent',\r\n IsAvgPositionDeprecationPhase1Enabled && 'AbsoluteTopImpressionRatePercent',\r\n IsManualCpmEnabled && 'AverageCPM',\r\n ]))),\r\n locked: lockedColumns,\r\n mandatory: [],\r\n isForVNext,\r\n patchQuery: true,\r\n };\r\n\r\n columnChooserConfig.mandatory.push('PublisherWebsite');\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n return columnChooserConfig;\r\n },\r\n\r\n getEntity: () => jsDataCampaign.Time,\r\n\r\n getEntitySet: () => _.result(edm.currentAccount, 'Time'),\r\n\r\n getSchema: () => {\r\n const columns = ['CampaignName', 'AdGroupName'];\r\n const performanceMetricsProperty = publisherSchema.properties.PerformanceMetrics;\r\n const allConvMetrics = applyPartialConversionColumnName(permissions, [\r\n 'AllConversionCPA',\r\n 'AllConversions',\r\n 'AllConversionRate',\r\n 'AllConversionAdvertiserReportedRevenue',\r\n 'AllConversionRevenueOnAdSpend',\r\n 'ViewThroughConversions',\r\n 'ViewThroughConversionsRevenue',\r\n 'ViewThroughConversionsCPA',\r\n 'ViewThroughConversionsReturnOnAdSpend',\r\n 'ViewThroughConversionsRate',\r\n ]);\r\n\r\n _.each(allConvMetrics, (allConvMetric) => {\r\n if (performanceMetricsProperty &&\r\n putil.get(performanceMetricsProperty.schema.properties, allConvMetric)) {\r\n publisherSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable = true;\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversions')) {\r\n publisherSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsRevenue')) {\r\n publisherSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsCPA')) {\r\n publisherSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsReturnOnAdSpend')) {\r\n publisherSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsRate')) {\r\n publisherSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n }\r\n });\r\n\r\n deleteSchema(columns, publisherSchema);\r\n\r\n if (level === Constants.AccountLevel) {\r\n publisherSchema.properties.CampaignName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n publisherSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n } else if (level === Constants.CampaignLevel) {\r\n publisherSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n }\r\n\r\n const sovColumnNames = {\r\n AbsoluteTopImpressionRate: 'AbsoluteTopImpressionRatePercent',\r\n TopImpressionRate: 'TopImpressionRatePercent',\r\n };\r\n\r\n updateSovColumns(publisherSchema, sovColumnNames);\r\n\r\n return publisherSchema;\r\n },\r\n getReportName: () => 'PublisherWebsite',\r\n getReportSchema() {\r\n return _.defaults({\r\n name: this.getReportName(gridType),\r\n }, this.getSchema(gridType));\r\n },\r\n modifyFilter: (filters) => {\r\n const network = filters.fields.filter(item => item.name === 'Network')[0];\r\n\r\n network.chooseType = 'checkbox';\r\n network.enum = [0, 1, 2, 3, 4, 5];\r\n network.localized = {\r\n 0: i18n.getString('Dimension_Network_0'),\r\n 1: i18n.getString('Dimension_Network_1'),\r\n 2: i18n.getString('Dimension_Network_2'),\r\n 3: i18n.getString('Dimension_Network_3'),\r\n 4: i18n.getString('Dimension_Network_4'),\r\n 5: i18n.getString('Dimension_Network_5'),\r\n };\r\n network.type = 'object';\r\n\r\n return filters;\r\n },\r\n getRewriteMap: () => ({\r\n PublisherWebsite: i18n.getString('ColumnName_PublisherWebsite'),\r\n Network: i18n.getString('ColumnName_Network'),\r\n AdGroupName: i18n.getString('FilterLocalization_DataAttribute_AdGroupName'),\r\n CampaignName: i18n.getString('FilterLocalization_DataAttribute_CampaignName'),\r\n }),\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { addColumnOnLevel } from '../add-column-on-level';\r\nimport networkTemplate from './network-template.pug';\r\nimport { absoluteTopImpressionRate, topImpressionRate } from '../shared/columns';\r\n\r\nexport function getPublisherGridColumnConfig({ i18n, bingadsGridColumn, globalConfig }) {\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsManualCpmEnabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n dynamic = {},\r\n } = globalConfig.get('Permissions') || {};\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n const {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n } = dynamic;\r\n\r\n const usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\n\r\n function column(options) {\r\n return bingadsGridColumn(_.defaults({}, options, { i18n }));\r\n }\r\n\r\n return {\r\n getLevelOfDetailColumns: (level) => {\r\n const levelOfDetailColumns = [];\r\n\r\n levelOfDetailColumns.push(column({\r\n name: 'PublisherWebsite',\r\n title: 'ColumnName_PublisherWebsite',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_WebsitePubURL',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'Network',\r\n title: 'ColumnName_Network',\r\n sortable: true,\r\n type: 'string',\r\n property: {\r\n get(row) {\r\n let network = null;\r\n\r\n switch (row.Network) {\r\n case 0:\r\n network = i18n.getString('Dimension_Network_0');\r\n break;\r\n case 1:\r\n network = i18n.getString('Dimension_Network_1');\r\n break;\r\n case 2:\r\n network = i18n.getString('Dimension_Network_2');\r\n break;\r\n case 3:\r\n network = i18n.getString('Dimension_Network_3');\r\n break;\r\n case 4:\r\n network = i18n.getString('Dimension_Network_4');\r\n break;\r\n case 5:\r\n network = i18n.getString('Dimension_Network_5');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return {\r\n network,\r\n };\r\n },\r\n key: 'Network',\r\n },\r\n template: networkTemplate,\r\n helpId: 'Page_Reporting_Clarity_Network',\r\n }));\r\n\r\n addColumnOnLevel(column, levelOfDetailColumns, level);\r\n\r\n return levelOfDetailColumns;\r\n },\r\n getPerfColumns: () => _.compact([\r\n column({\r\n name: 'Impressions',\r\n title: 'ColumnName_Impressions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Impr',\r\n }),\r\n column({\r\n name: 'Clicks',\r\n title: 'ColumnName_Clicks',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Clicks',\r\n }),\r\n column({\r\n name: 'CTR',\r\n title: 'ColumnName_ClickThruRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_CTR',\r\n }),\r\n column({\r\n name: 'AverageCPC',\r\n title: 'ColumnName_AverageCPC',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPC',\r\n }),\r\n IsManualCpmEnabled && column({\r\n name: 'AverageCPM',\r\n title: 'ColumnName_AverageCPM',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPM',\r\n }),\r\n column({\r\n name: 'Spend',\r\n title: 'ColumnName_Spend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_Spend',\r\n }),\r\n !IsAvgPositionDeprecationPhase2Enabled && column({\r\n name: 'AveragePosition',\r\n title: 'ColumnName_AveragePosition',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgPosition',\r\n }),\r\n IsAvgPositionDeprecationPhase1Enabled && column(topImpressionRate),\r\n IsAvgPositionDeprecationPhase1Enabled && column(absoluteTopImpressionRate),\r\n ]),\r\n getConversionColumns: () => {\r\n let conversionColumns = [\r\n usePartialConversions ?\r\n column({\r\n name: 'ConversionsCredit',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }) : column({\r\n name: 'Conversions',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }) : column({\r\n name: 'ConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionCPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }) : column({\r\n name: 'CPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }),\r\n column({\r\n name: 'RevenueOnAdSpend',\r\n title: 'ColumnName_RevenueOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_ReturnAdSpend',\r\n }),\r\n column({\r\n name: 'AdvertiserReportedRevenue',\r\n title: 'ColumnName_Revenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_Revenue',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'AllConversionsCredit',\r\n title: 'ColumnName_AllConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConv',\r\n }) : column({\r\n name: 'AllConversions',\r\n title: 'ColumnName_AllConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_AllConv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'AllPartialConversionCPA',\r\n title: 'ColumnName_AllConversionCPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConvCPA',\r\n }) :\r\n column({\r\n name: 'AllConversionCPA',\r\n title: 'ColumnName_AllConversionCPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConvCPA',\r\n }),\r\n usePartialConversions ? column({\r\n name: 'AllPartialConversionRate',\r\n title: 'ColumnName_AllConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRate',\r\n }) :\r\n column({\r\n name: 'AllConversionRate',\r\n title: 'ColumnName_AllConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRate',\r\n }),\r\n column({\r\n name: 'AllConversionAdvertiserReportedRevenue',\r\n title: 'ColumnName_AllConversionAdvertiserReportedRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRevenue',\r\n }),\r\n column({\r\n name: 'AllConversionRevenueOnAdSpend',\r\n title: 'ColumnName_AllConversionRevenueOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvROAS',\r\n }),\r\n ];\r\n\r\n if (IsViewThroughConversionEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughConversionsCredit',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'decimal',\r\n }) :\r\n column({\r\n name: 'ViewThroughConversions',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'integer',\r\n }),\r\n ]);\r\n }\r\n\r\n\r\n if (IsViewThroughConversionsRevenueEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n column({\r\n name: 'ViewThroughConversionsRevenue',\r\n title: 'ColumnName_ViewThroughConversionsRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRevenue',\r\n format: 'decimal',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }) :\r\n column({\r\n name: 'ViewThroughConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }),\r\n column({\r\n name: 'ViewThroughConversionsReturnOnAdSpend',\r\n title: 'ColumnName_ViewThroughConversionsReturnOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvReturnOnAdSpend',\r\n format: 'percentage-value',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }) :\r\n column({\r\n name: 'ViewThroughConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }),\r\n ]);\r\n }\r\n\r\n return conversionColumns;\r\n },\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport * as putil from '@bingads-webui-universal/primitive-utilities';\r\nimport { applyPartialConversionColumnName } from '@bingads-webui-campaign/column-conversions';\r\n\r\nimport { getSearchTermGridColumnConfig } from './searchterm-grid-column-config';\r\nimport { Constants } from '../constants';\r\nimport { columnConfigToColumnChooserConfig, isConversionsColumnAllowed } from '../column-config-to-chooser-config';\r\nimport { updateSovColumns } from '../shared/util';\r\n\r\nexport function getSearchTermGridConfig({\r\n pageContext,\r\n i18n,\r\n jsDataCampaign,\r\n edm,\r\n searchTermSchema,\r\n getCurrentLevel,\r\n deleteSchema,\r\n bingadsGridColumn,\r\n gridType,\r\n isForVNext,\r\n}) {\r\n const permissions = pageContext.Permissions;\r\n const {\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = permissions;\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n const searchTermColumnConfig\r\n = getSearchTermGridColumnConfig({\r\n i18n,\r\n bingadsGridColumn,\r\n getCurrentLevel,\r\n pageContext,\r\n });\r\n\r\n return {\r\n getColumns: () => searchTermColumnConfig.getLevelOfDetailColumns()\r\n .concat(searchTermColumnConfig.getPerfColumns())\r\n .concat(searchTermColumnConfig.getConversionColumns()),\r\n getColumnChooserConfiguration: () => {\r\n const lockedColumns = ['SearchTerm', 'Impressions'];\r\n const columnChooserConfig = {\r\n categories: [{\r\n name: i18n.getString('LevelOfDetail'),\r\n options: columnConfigToColumnChooserConfig(\r\n searchTermColumnConfig.getLevelOfDetailColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Performance'),\r\n options: columnConfigToColumnChooserConfig(\r\n searchTermColumnConfig.getPerfColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Conversions'),\r\n options: columnConfigToColumnChooserConfig(\r\n _.filter(\r\n searchTermColumnConfig.getConversionColumns(),\r\n ({ name }) => isConversionsColumnAllowed({\r\n name,\r\n IsViewThroughConversionEnabled: true,\r\n IsViewThroughConversionsRevenueEnabled,\r\n })\r\n ),\r\n lockedColumns\r\n ),\r\n }],\r\n selected: lockedColumns.concat(applyPartialConversionColumnName(permissions, _.compact([\r\n 'KeywordName',\r\n 'Impressions',\r\n 'Clicks',\r\n 'CTR',\r\n 'AverageCPC',\r\n 'Spend',\r\n 'Conversions',\r\n !IsAvgPositionDeprecationPhase1Enabled && !IsAvgPositionDeprecationPhase2Enabled && 'AveragePosition',\r\n IsAvgPositionDeprecationPhase1Enabled && 'TopImpressionRatePercent',\r\n IsAvgPositionDeprecationPhase1Enabled && 'AbsoluteTopImpressionRatePercent',\r\n ]))),\r\n locked: lockedColumns,\r\n mandatory: [],\r\n patchQuery: true,\r\n isForVNext,\r\n };\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n return columnChooserConfig;\r\n },\r\n\r\n getEntity: () => jsDataCampaign.Time,\r\n\r\n getEntitySet: () => _.result(edm.currentAccount, 'Time'),\r\n\r\n getSchema: () => {\r\n const level = getCurrentLevel();\r\n\r\n const columns = ['CampaignCampaignType', 'CampaignName', 'AdGroupName'];\r\n const performanceMetricsProperty = searchTermSchema.properties.PerformanceMetrics;\r\n const allConvMetrics = applyPartialConversionColumnName(permissions, [\r\n 'AllConversionCPA',\r\n 'AllConversions',\r\n 'AllConversionRate',\r\n 'AllConversionAdvertiserReportedRevenue',\r\n 'AllConversionRevenueOnAdSpend',\r\n 'ViewThroughConversions',\r\n ]);\r\n\r\n _.each(allConvMetrics, (allConvMetric) => {\r\n if (performanceMetricsProperty &&\r\n putil.get(performanceMetricsProperty.schema.properties, allConvMetric)) {\r\n searchTermSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable = true;\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversions')) {\r\n searchTermSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable = false;\r\n }\r\n }\r\n });\r\n\r\n deleteSchema(columns, searchTermSchema);\r\n\r\n if (level === Constants.AccountLevel) {\r\n searchTermSchema.properties.CampaignName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n searchTermSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n searchTermSchema.properties.CampaignCampaignType = { // eslint-disable-line no-param-reassign, max-len\r\n type: 'number',\r\n filterable: true,\r\n };\r\n } else if (level === Constants.CampaignLevel) {\r\n searchTermSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n }\r\n\r\n const sovColumnNames = {\r\n AbsoluteTopImpressionRate: 'AbsoluteTopImpressionRatePercent',\r\n TopImpressionRate: 'TopImpressionRatePercent',\r\n };\r\n\r\n updateSovColumns(searchTermSchema, sovColumnNames);\r\n\r\n return searchTermSchema;\r\n },\r\n getReportName: () => 'SearchTerms',\r\n getReportSchema() {\r\n return _.defaults({\r\n name: this.getReportName(gridType),\r\n }, this.getSchema(gridType));\r\n },\r\n modifyFilter: (filters) => {\r\n const campaignType = filters.fields.filter(item => item.name === 'CampaignCampaignType')[0];\r\n\r\n if (campaignType) {\r\n campaignType.chooseType = 'checkbox';\r\n campaignType.enum = [1, 3, 4, 6];\r\n campaignType.localized = {\r\n 1: i18n.getString('Dimension_CampaignType_0'),\r\n 3: i18n.getString('Dimension_CampaignType_1'),\r\n 4: i18n.getString('Dimension_CampaignType_2'),\r\n 6: i18n.getString('Dimension_CampaignType_3'),\r\n };\r\n campaignType.type = 'object';\r\n }\r\n\r\n return filters;\r\n },\r\n getRewriteMap: () => ({\r\n SearchTerm: i18n.getString('ColumnName_DimSearchTerm'),\r\n CampaignCampaignType: i18n.getString('ColumnName_DimCampaignType'),\r\n KeywordName: i18n.getString('ColumnName_KeywordName'),\r\n OrderItemId: i18n.getString('ColumnName_OrderItemId'),\r\n AdGroupName: i18n.getString('FilterLocalization_DataAttribute_AdGroupName'),\r\n CampaignName: i18n.getString('FilterLocalization_DataAttribute_CampaignName'),\r\n }),\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport campaignTypeTemplate from './campaign-type-template.pug';\r\nimport { Constants } from '../constants';\r\nimport { addColumnOnLevel } from '../add-column-on-level';\r\nimport { absoluteTopImpressionRate, topImpressionRate } from '../shared/columns';\r\n\r\nexport function getSearchTermGridColumnConfig({\r\n i18n, bingadsGridColumn, getCurrentLevel, pageContext,\r\n}) {\r\n function column(options) {\r\n return bingadsGridColumn(_.defaults({}, options, { i18n }));\r\n }\r\n\r\n const {\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n dynamic = {},\r\n } = 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 return {\r\n getLevelOfDetailColumns: () => {\r\n const level = getCurrentLevel();\r\n const levelOfDetailColumns = [];\r\n\r\n levelOfDetailColumns.push(column({\r\n name: 'SearchTerm',\r\n title: 'ColumnName_DimSearchTerm',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_SearchTerm',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'KeywordName',\r\n title: 'ColumnName_KeywordName',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_Keyword',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'OrderItemId',\r\n title: 'ColumnName_OrderItemId',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Reporting_Clarity_KeywordID',\r\n }));\r\n\r\n addColumnOnLevel(column, levelOfDetailColumns);\r\n\r\n if (level === Constants.AccountLevel) {\r\n levelOfDetailColumns.push(column({\r\n name: 'CampaignType',\r\n title: 'ColumnName_DimCampaignType',\r\n sortable: true,\r\n type: 'number',\r\n property: {\r\n get(row) {\r\n let campaignType = null;\r\n\r\n switch (row.CampaignType) {\r\n case 1:\r\n campaignType = i18n.getString('Dimension_CampaignType_0');\r\n break;\r\n case 3:\r\n campaignType = i18n.getString('Dimension_CampaignType_1');\r\n break;\r\n case 4:\r\n campaignType = i18n.getString('Dimension_CampaignType_2');\r\n break;\r\n case 6:\r\n campaignType = i18n.getString('Dimension_CampaignType_3');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return {\r\n campaignType,\r\n };\r\n },\r\n key: 'CampaignType',\r\n },\r\n template: campaignTypeTemplate,\r\n helpId: 'pop_BA_Reporting_Clarity_CampaignType',\r\n }));\r\n }\r\n\r\n return levelOfDetailColumns;\r\n },\r\n getPerfColumns: () => _.compact([\r\n column({\r\n name: 'Impressions',\r\n title: 'ColumnName_Impressions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'Page_CampaignGrids_Impr',\r\n }),\r\n column({\r\n name: 'Clicks',\r\n title: 'ColumnName_Clicks',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'Page_CampaignGrids_Clicks',\r\n }),\r\n column({\r\n name: 'CTR',\r\n title: 'ColumnName_ClickThruRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_CTR',\r\n }),\r\n column({\r\n name: 'AverageCPC',\r\n title: 'ColumnName_AverageCPC',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_AvgCPC',\r\n }),\r\n column({\r\n name: 'Spend',\r\n title: 'ColumnName_Spend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_Spend',\r\n }),\r\n !IsAvgPositionDeprecationPhase2Enabled && column({\r\n name: 'AveragePosition',\r\n title: 'ColumnName_AveragePosition',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_AvgPosition',\r\n }),\r\n IsAvgPositionDeprecationPhase1Enabled && column(topImpressionRate),\r\n IsAvgPositionDeprecationPhase1Enabled && column(absoluteTopImpressionRate),\r\n ]),\r\n getConversionColumns: () => {\r\n const conversionColumns = [\r\n usePartialConversions ?\r\n column({\r\n name: 'ConversionsCredit',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }) :\r\n column({\r\n name: 'Conversions',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'Page_CampaignGrids_Conv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }) :\r\n column({\r\n name: 'ConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_ConvRate',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionCPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }) :\r\n column({\r\n name: 'CPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_CPA',\r\n }),\r\n column({\r\n name: 'RevenueOnAdSpend',\r\n title: 'ColumnName_RevenueOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_ReturnAdSpend',\r\n }),\r\n column({\r\n name: 'AdvertiserReportedRevenue',\r\n title: 'ColumnName_Revenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_Revenue',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'AllConversionsCredit',\r\n title: 'ColumnName_AllConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConv',\r\n }) :\r\n column({\r\n name: 'AllConversions',\r\n title: 'ColumnName_AllConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_AllConv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'AllPartialConversionCPA',\r\n title: 'ColumnName_AllConversionCPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConvCPA',\r\n }) :\r\n column({\r\n name: 'AllConversionCPA',\r\n title: 'ColumnName_AllConversionCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvCPA',\r\n }),\r\n usePartialConversions ? column({\r\n name: 'AllPartialConversionRate',\r\n title: 'ColumnName_AllConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRate',\r\n }) :\r\n column({\r\n name: 'AllConversionRate',\r\n title: 'ColumnName_AllConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRate',\r\n }),\r\n column({\r\n name: 'AllConversionAdvertiserReportedRevenue',\r\n title: 'ColumnName_AllConversionAdvertiserReportedRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRevenue',\r\n }),\r\n column({\r\n name: 'AllConversionRevenueOnAdSpend',\r\n title: 'ColumnName_AllConversionRevenueOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvROAS',\r\n }),\r\n ];\r\n\r\n return conversionColumns;\r\n },\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport * as putil from '@bingads-webui-universal/primitive-utilities';\r\nimport { applyPartialConversionColumnName } from '@bingads-webui-campaign/column-conversions';\r\n\r\nimport { Constants } from '../constants';\r\nimport { getShoppingGridColumnConfig } from './shopping-grid-column-config';\r\nimport { columnConfigToColumnChooserConfig, isConversionsColumnAllowed } from '../column-config-to-chooser-config';\r\nimport { updateSovColumns } from '../shared/util';\r\n\r\nexport function getShoppingGridConfig({\r\n pageContext,\r\n i18n,\r\n jsDataCampaign,\r\n edm,\r\n shoppingSchema,\r\n getCurrentLevel,\r\n bingadsGridColumn,\r\n globalConfig,\r\n gridType,\r\n isForVNext,\r\n}) {\r\n const permissions = pageContext.Permissions;\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsManualCpmEnabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = permissions;\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n const shoppingColumnConfig = getShoppingGridColumnConfig({\r\n i18n, bingadsGridColumn, getCurrentLevel, globalConfig,\r\n });\r\n\r\n function lambdaConvertForLanguages(logic) {\r\n return (values) => {\r\n let url = '';\r\n\r\n _.each(values, (value, index) => {\r\n url += `contains(Language, '${value}')`;\r\n if (index !== values.length - 1) {\r\n url += ` ${logic} `;\r\n }\r\n });\r\n return url;\r\n };\r\n }\r\n\r\n return {\r\n getColumns: () => shoppingColumnConfig.getLevelOfDetailColumns()\r\n .concat(shoppingColumnConfig.getPerfColumns())\r\n .concat(shoppingColumnConfig.getConversionColumns()),\r\n getColumnChooserConfiguration: (logger) => {\r\n const level = getCurrentLevel(logger);\r\n const lockedColumns = [];\r\n\r\n switch (gridType) {\r\n case Constants.ShoppingCategory:\r\n lockedColumns.push('CategoryL1');\r\n break;\r\n case Constants.ShoppingProductType:\r\n lockedColumns.push('ProductType1');\r\n break;\r\n case Constants.ShoppingBrand:\r\n lockedColumns.push('Brand');\r\n break;\r\n case Constants.ShoppingItem:\r\n lockedColumns.push('MerchantIdentifier');\r\n break;\r\n case Constants.ShoppingStore:\r\n lockedColumns.push('ProviderId');\r\n break;\r\n default:\r\n break;\r\n }\r\n lockedColumns.push('Impressions');\r\n\r\n if (logger) {\r\n logger.trace(`Current level: ${level}`, 'Dimension/load');\r\n }\r\n\r\n let defaultColumns = ['Impressions', 'Clicks', 'CTR', 'AverageCPC', 'Spend', 'Conversions'];\r\n\r\n if (IsAvgPositionDeprecationPhase1Enabled) {\r\n defaultColumns = ['AbsoluteTopImpressionRatePercent'].concat(defaultColumns);\r\n } else {\r\n defaultColumns = ['AveragePosition'].concat(defaultColumns);\r\n }\r\n\r\n switch (gridType) {\r\n case Constants.ShoppingCategory:\r\n defaultColumns = ['CategoryL2', 'CategoryL3'].concat(defaultColumns);\r\n break;\r\n case Constants.ShoppingProductType:\r\n defaultColumns = ['ProductType2', 'ProductType3'].concat(defaultColumns);\r\n break;\r\n case Constants.ShoppingBrand:\r\n break;\r\n case Constants.ShoppingItem:\r\n break;\r\n case Constants.ShoppingStore:\r\n break;\r\n default:\r\n break;\r\n }\r\n const columnChooserConfig = {\r\n categories: [{\r\n name: i18n.getString('LevelOfDetail'),\r\n options: columnConfigToColumnChooserConfig(\r\n shoppingColumnConfig.getLevelOfDetailColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Performance'),\r\n options: columnConfigToColumnChooserConfig(\r\n shoppingColumnConfig.getPerfColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Conversions'),\r\n options: columnConfigToColumnChooserConfig(\r\n _.filter(\r\n shoppingColumnConfig.getConversionColumns(),\r\n ({ name }) => isConversionsColumnAllowed({\r\n name,\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n })\r\n ),\r\n lockedColumns\r\n ),\r\n }],\r\n selected: lockedColumns.concat(defaultColumns)\r\n .concat(_.compact([\r\n IsManualCpmEnabled && 'AverageCPM',\r\n ])),\r\n mandatory: lockedColumns,\r\n locked: lockedColumns,\r\n isForVNext,\r\n patchQuery: true,\r\n };\r\n\r\n if (logger) {\r\n logger.trace(`Current selected columns: ${columnChooserConfig.selected}`, 'Dimension/load');\r\n }\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n return columnChooserConfig;\r\n },\r\n\r\n getEntity: () => jsDataCampaign.Time,\r\n\r\n getEntitySet: () => _.result(edm.currentAccount, 'Time'),\r\n\r\n getSchema: () => {\r\n const level = getCurrentLevel();\r\n\r\n const columns = ['CampaignName', 'AdGroupName'];\r\n const performanceMetricsProperty = shoppingSchema.properties.PerformanceMetrics;\r\n const allConvMetrics = applyPartialConversionColumnName(permissions, [\r\n 'AllConversionCPA',\r\n 'AllConversions',\r\n 'AllConversionRate',\r\n 'AllConversionAdvertiserReportedRevenue',\r\n 'AllConversionRevenueOnAdSpend',\r\n 'ViewThroughConversions',\r\n 'ViewThroughConversionsRevenue',\r\n 'ViewThroughConversionsCPA',\r\n 'ViewThroughConversionsReturnOnAdSpend',\r\n 'ViewThroughConversionsRate',\r\n ]);\r\n\r\n _.each(allConvMetrics, (allConvMetric) => {\r\n if (performanceMetricsProperty &&\r\n putil.get(performanceMetricsProperty.schema.properties, allConvMetric)) {\r\n shoppingSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable = true;\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversions')) {\r\n shoppingSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsRevenue')) {\r\n shoppingSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsCPA')) {\r\n shoppingSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsReturnOnAdSpend')) {\r\n shoppingSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsRate')) {\r\n shoppingSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n }\r\n });\r\n\r\n // remove AverageCPM since we don't support this in V1\r\n delete shoppingSchema.properties.PerformanceMetrics.schema.properties.AverageCPM; // eslint-disable-line no-param-reassign, max-len\r\n\r\n _.each(Object.keys(shoppingSchema.properties), (propertyKey) => {\r\n if (columns.indexOf(propertyKey) > -1) {\r\n delete shoppingSchema.properties[propertyKey]; // eslint-disable-line no-param-reassign\r\n }\r\n });\r\n\r\n if (level === Constants.AccountLevel) {\r\n shoppingSchema.properties.CampaignName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n shoppingSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n } else if (level === Constants.CampaignLevel) {\r\n shoppingSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n }\r\n\r\n const sovColumnNames = {\r\n AbsoluteTopImpressionRate: 'AbsoluteTopImpressionRatePercent',\r\n };\r\n\r\n updateSovColumns(shoppingSchema, sovColumnNames);\r\n\r\n return shoppingSchema;\r\n },\r\n getReportName: () => {\r\n let reportType = null;\r\n\r\n switch (gridType) {\r\n case Constants.ShoppingCategory:\r\n reportType = 'ShoppingCategory';\r\n break;\r\n case Constants.ShoppingProductType:\r\n reportType = 'ShoppingProductType';\r\n break;\r\n case Constants.ShoppingBrand:\r\n reportType = 'ShoppingBrand';\r\n break;\r\n case Constants.ShoppingItem:\r\n reportType = 'ShoppingItemId';\r\n break;\r\n case Constants.ShoppingStore:\r\n reportType = 'ShoppingStoreId';\r\n break;\r\n default:\r\n break;\r\n }\r\n return reportType;\r\n },\r\n getReportSchema() {\r\n return _.defaults({\r\n name: this.getReportName(gridType),\r\n }, this.getSchema(gridType));\r\n },\r\n modifyFilter: (filters) => {\r\n const language = filters.fields.filter(item => item.name === 'Language')[0];\r\n\r\n if (language) {\r\n language.title = i18n.getString('ColumnName_Language');\r\n language.type = 'multi-language';\r\n language.operatorDisplayNameMap = {\r\n containsany: i18n.getString('FilterOperator_ContainsAny'),\r\n };\r\n language.operators = ['containsany'];\r\n language.addtionalParams = {\r\n items: [{\r\n Id: 'EN',\r\n Name: i18n.getString('Dimension_Lang_EN'),\r\n }, {\r\n Id: 'DA',\r\n Name: i18n.getString('Dimension_Lang_DA'),\r\n }, {\r\n Id: 'NL',\r\n Name: i18n.getString('Dimension_Lang_NL'),\r\n }, {\r\n Id: 'FI',\r\n Name: i18n.getString('Dimension_Lang_FI'),\r\n }, {\r\n Id: 'TH',\r\n Name: i18n.getString('Dimension_Lang_TH'),\r\n }, {\r\n Id: 'VI',\r\n Name: i18n.getString('Dimension_Lang_VI'),\r\n }, {\r\n Id: 'FR',\r\n Name: i18n.getString('Dimension_Lang_FR'),\r\n }, {\r\n Id: 'DE',\r\n Name: i18n.getString('Dimension_Lang_DE'),\r\n }, {\r\n Id: 'IT',\r\n Name: i18n.getString('Dimension_Lang_IT'),\r\n }, {\r\n Id: 'NB',\r\n Name: i18n.getString('Dimension_Lang_NO'),\r\n }, {\r\n Id: 'PT',\r\n Name: i18n.getString('Dimension_Lang_PT'),\r\n }, {\r\n Id: 'ES',\r\n Name: i18n.getString('Dimension_Lang_ES'),\r\n }, {\r\n Id: 'SV',\r\n Name: i18n.getString('Dimension_Lang_SV'),\r\n }, {\r\n Id: 'ZH-HANT',\r\n Name: i18n.getString('Dimension_Lang_ZH_HANT'),\r\n }],\r\n };\r\n }\r\n return filters;\r\n },\r\n getOdataOptions: () => {\r\n const rtnObj = {\r\n odata: {\r\n custom: {},\r\n },\r\n };\r\n\r\n _.extendOwn(rtnObj.odata.custom, {\r\n Language: {\r\n containsany: lambdaConvertForLanguages('or'),\r\n },\r\n });\r\n return rtnObj;\r\n },\r\n getRewriteMap: () => ({\r\n CategoryL1: i18n.getString('ColumnName_CategoryL1'),\r\n CategoryL2: i18n.getString('ColumnName_CategoryL2'),\r\n CategoryL3: i18n.getString('ColumnName_CategoryL3'),\r\n CategoryL4: i18n.getString('ColumnName_CategoryL4'),\r\n CategoryL5: i18n.getString('ColumnName_CategoryL5'),\r\n ProviderId: i18n.getString('ColumnName_ProviderId'),\r\n Condition: i18n.getString('ColumnName_Condition'),\r\n Title: i18n.getString('ColumnName_Title'),\r\n Language: i18n.getString('ColumnName_Language'),\r\n MerchantIdentifier: i18n.getString('DimensionDropdown_ItemId'),\r\n AdGroupName: i18n.getString('FilterLocalization_DataAttribute_AdGroupName'),\r\n CampaignName: i18n.getString('FilterLocalization_DataAttribute_CampaignName'),\r\n ProductType1: i18n.getString('ColumnName_ProductType1'),\r\n ProductType2: i18n.getString('ColumnName_ProductType2'),\r\n ProductType3: i18n.getString('ColumnName_ProductType3'),\r\n ProductType4: i18n.getString('ColumnName_ProductType4'),\r\n ProductType5: i18n.getString('ColumnName_ProductType5'),\r\n CustomLabel0: i18n.getString('ColumnName_CustomLabel0'),\r\n CustomLabel1: i18n.getString('ColumnName_CustomLabel1'),\r\n CustomLabel2: i18n.getString('ColumnName_CustomLabel2'),\r\n CustomLabel3: i18n.getString('ColumnName_CustomLabel3'),\r\n CustomLabel4: i18n.getString('ColumnName_CustomLabel4'),\r\n }),\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport languageTemplate from './language-template.pug';\r\nimport { Constants } from '../constants';\r\nimport { absoluteTopImpressionRate } from '../shared/columns';\r\n\r\nexport function getShoppingGridColumnConfig({\r\n i18n,\r\n bingadsGridColumn,\r\n getCurrentLevel,\r\n globalConfig,\r\n}) {\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsManualCpmEnabled,\r\n dynamic = {},\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = globalConfig.get('Permissions') || {};\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n\r\n const {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n } = dynamic;\r\n const usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\n function column(options) {\r\n return bingadsGridColumn(_.defaults({}, options, { i18n }));\r\n }\r\n\r\n return {\r\n getLevelOfDetailColumns: () => {\r\n const level = getCurrentLevel();\r\n const levelOfDetailColumns = [];\r\n\r\n levelOfDetailColumns.push(column({\r\n name: 'Brand',\r\n title: 'ColumnName_Brand',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_Brand',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'CategoryL1',\r\n title: 'ColumnName_CategoryL1',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_Category',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'CategoryL2',\r\n title: 'ColumnName_CategoryL2',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_Category',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'CategoryL3',\r\n title: 'ColumnName_CategoryL3',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_Category',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'CategoryL4',\r\n title: 'ColumnName_CategoryL4',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_Category',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'CategoryL5',\r\n title: 'ColumnName_CategoryL5',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_Category',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'ProviderId',\r\n title: 'ColumnName_ProviderId',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_StoreID',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'Condition',\r\n title: 'ColumnName_Condition',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_Condition',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'Title',\r\n title: 'ColumnName_Title',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_Title',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'MerchantIdentifier',\r\n title: 'ColumnName_ShoppingId',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_MerchantID',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'Language',\r\n title: 'ColumnName_Language',\r\n property: {\r\n get(row) {\r\n return {\r\n language: i18n.getString(`Dimension_Lang_${row.Language.replace('-', '_')}`),\r\n };\r\n },\r\n key: 'Language',\r\n },\r\n template: languageTemplate,\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_Language',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'ProductType1',\r\n title: 'ColumnName_ProductType1',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_ProductType',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'ProductType2',\r\n title: 'ColumnName_ProductType2',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_ProductType',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'ProductType3',\r\n title: 'ColumnName_ProductType3',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_ProductType',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'ProductType4',\r\n title: 'ColumnName_ProductType4',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_ProductType',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'ProductType5',\r\n title: 'ColumnName_ProductType5',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_ProductType',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'CustomLabel0',\r\n title: 'ColumnName_CustomLabel0',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_CustomLabel',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'CustomLabel1',\r\n title: 'ColumnName_CustomLabel1',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_CustomLabel',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'CustomLabel2',\r\n title: 'ColumnName_CustomLabel2',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_CustomLabel',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'CustomLabel3',\r\n title: 'ColumnName_CustomLabel3',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_CustomLabel',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'CustomLabel4',\r\n title: 'ColumnName_CustomLabel4',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_DimensionGrid_CustomLabel',\r\n }));\r\n if (level === Constants.CampaignLevel || level === Constants.AccountLevel) {\r\n levelOfDetailColumns.push(column({\r\n name: 'AdGroupName',\r\n title: 'ColumnName_AdGroup',\r\n sortable: true,\r\n type: 'string',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'AdGroupId',\r\n title: 'ColumnName_AdgroupID',\r\n filterable: false,\r\n sortable: true,\r\n type: 'string',\r\n }));\r\n }\r\n\r\n if (level === Constants.AccountLevel) {\r\n levelOfDetailColumns.push(column({\r\n name: 'CampaignName',\r\n title: 'ColumnName_Campaign',\r\n sortable: true,\r\n type: 'string',\r\n }));\r\n levelOfDetailColumns.push(column({\r\n name: 'CampaignId',\r\n title: 'Dimension_ColumnName_CampaignId',\r\n filterable: false,\r\n sortable: true,\r\n type: 'string',\r\n }));\r\n }\r\n\r\n return levelOfDetailColumns;\r\n },\r\n getPerfColumns: () => _.compact([\r\n column({\r\n name: 'Impressions',\r\n title: 'ColumnName_Impressions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'Page_CampaignGrids_Impr',\r\n }),\r\n column({\r\n name: 'Clicks',\r\n title: 'ColumnName_Clicks',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'Page_CampaignGrids_Clicks',\r\n }),\r\n column({\r\n name: 'CTR',\r\n title: 'ColumnName_ClickThruRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_CTR',\r\n }),\r\n column({\r\n name: 'AverageCPC',\r\n title: 'ColumnName_AverageCPC',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_AvgCPC',\r\n }),\r\n IsManualCpmEnabled && column({\r\n name: 'AverageCPM',\r\n title: 'ColumnName_AverageCPM',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPM',\r\n }),\r\n column({\r\n name: 'Spend',\r\n title: 'ColumnName_Spend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_Spend',\r\n }),\r\n IsAvgPositionDeprecationPhase1Enabled && column(absoluteTopImpressionRate),\r\n ]),\r\n getConversionColumns: () => {\r\n let conversionColumns = [\r\n usePartialConversions ?\r\n column({\r\n name: 'ConversionsCredit',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_Conv',\r\n }) : column({\r\n name: 'Conversions',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'Page_CampaignGrids_Conv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_ConvRate',\r\n }) : column({\r\n name: 'ConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_ConvRate',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionCPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_CPA',\r\n }) : column({\r\n name: 'CPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_CPA',\r\n }),\r\n column({\r\n name: 'RevenueOnAdSpend',\r\n title: 'ColumnName_RevenueOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_ReturnAdSpend',\r\n }),\r\n column({\r\n name: 'AdvertiserReportedRevenue',\r\n title: 'ColumnName_Revenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_Revenue',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'AllConversionsCredit',\r\n title: 'ColumnName_AllConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConv',\r\n }) : column({\r\n name: 'AllConversions',\r\n title: 'ColumnName_AllConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_AllConv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'AllPartialConversionCPA',\r\n title: 'ColumnName_AllConversionCPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConvCPA',\r\n }) :\r\n column({\r\n name: 'AllConversionCPA',\r\n title: 'ColumnName_AllConversionCPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConvCPA',\r\n }),\r\n usePartialConversions ? column({\r\n name: 'AllPartialConversionRate',\r\n title: 'ColumnName_AllConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRate',\r\n }) :\r\n column({\r\n name: 'AllConversionRate',\r\n title: 'ColumnName_AllConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRate',\r\n }),\r\n column({\r\n name: 'AllConversionAdvertiserReportedRevenue',\r\n title: 'ColumnName_AllConversionAdvertiserReportedRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRevenue',\r\n }),\r\n column({\r\n name: 'AllConversionRevenueOnAdSpend',\r\n title: 'ColumnName_AllConversionRevenueOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvROAS',\r\n }),\r\n ];\r\n\r\n if (IsViewThroughConversionEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughConversionsCredit',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'decimal',\r\n }) :\r\n column({\r\n name: 'ViewThroughConversions',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'integer',\r\n }),\r\n ]);\r\n }\r\n\r\n\r\n if (IsViewThroughConversionsRevenueEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n column({\r\n name: 'ViewThroughConversionsRevenue',\r\n title: 'ColumnName_ViewThroughConversionsRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRevenue',\r\n format: 'decimal',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }) :\r\n column({\r\n name: 'ViewThroughConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }),\r\n column({\r\n name: 'ViewThroughConversionsReturnOnAdSpend',\r\n title: 'ColumnName_ViewThroughConversionsReturnOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvReturnOnAdSpend',\r\n format: 'percentage-value',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }) :\r\n column({\r\n name: 'ViewThroughConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }),\r\n ]);\r\n }\r\n\r\n return conversionColumns;\r\n },\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport * as putil from '@bingads-webui-universal/primitive-utilities';\r\nimport { applyPartialConversionColumnName } from '@bingads-webui-campaign/column-conversions';\r\nimport { getTimeGridColumnConfig } from './time-grid-column-config';\r\nimport { Constants } from '../constants';\r\nimport { columnConfigToColumnChooserConfig, isConversionsColumnAllowed } from '../column-config-to-chooser-config';\r\nimport { updateSovColumns } from '../shared/util';\r\n\r\nexport function getTimeGridConfig({\r\n i18n,\r\n jsDataCampaign,\r\n edm,\r\n globalConfig,\r\n timeSchema,\r\n getCurrentLevel,\r\n bingadsGridColumn,\r\n gridType,\r\n isForVNext,\r\n}) {\r\n const permissions = globalConfig.get('Permissions') || {};\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsManualCpmEnabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = permissions;\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n\r\n const updateEntitySchemaForRemovedPerformanceMetrics = _.identity;\r\n const updateEntitySchemaForSOV = _.identity;\r\n\r\n\r\n const timeColumnConfig = getTimeGridColumnConfig({\r\n i18n,\r\n bingadsGridColumn,\r\n globalConfig,\r\n getCurrentLevel,\r\n });\r\n\r\n return {\r\n getColumns: () => timeColumnConfig.getGridSpecificColumns(gridType)\r\n .concat(timeColumnConfig.getLevelOfDetailColumns())\r\n .concat(timeColumnConfig.getPerfColumns())\r\n .concat(timeColumnConfig.getConversionColumns())\r\n .concat(timeColumnConfig.getCompetitiveColumns()),\r\n getColumnChooserConfiguration: (logger) => {\r\n const level = getCurrentLevel(logger);\r\n const lockedColumns = [];\r\n\r\n if (logger) {\r\n logger.trace(`Current level: ${level}`, 'Dimension/load');\r\n }\r\n\r\n switch (gridType) {\r\n case Constants.TimeHour:\r\n lockedColumns.push('HourOfDay');\r\n break;\r\n case Constants.TimeDay:\r\n lockedColumns.push('DayOfWeek');\r\n break;\r\n case Constants.TimeDate:\r\n lockedColumns.push('GregorianDate');\r\n break;\r\n case Constants.TimeWeek:\r\n lockedColumns.push('Week');\r\n break;\r\n case Constants.TimeMonth:\r\n lockedColumns.push('Month');\r\n break;\r\n case Constants.TimeQuarter:\r\n lockedColumns.push('Quarter');\r\n break;\r\n case Constants.TimeYear:\r\n lockedColumns.push('Year');\r\n break;\r\n default:\r\n break;\r\n }\r\n lockedColumns.push('Impressions');\r\n\r\n const columnChooserConfig = {\r\n categories: [{\r\n name: i18n.getString('LevelOfDetail'),\r\n options: columnConfigToColumnChooserConfig(\r\n [\r\n ...timeColumnConfig.getGridSpecificColumns(gridType),\r\n ...timeColumnConfig.getLevelOfDetailColumns(level),\r\n ],\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Performance'),\r\n options: columnConfigToColumnChooserConfig(\r\n timeColumnConfig.getPerfColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Conversions'),\r\n options: columnConfigToColumnChooserConfig(\r\n _.filter(\r\n timeColumnConfig.getConversionColumns(),\r\n ({ name }) => isConversionsColumnAllowed({\r\n name,\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n })\r\n ),\r\n lockedColumns\r\n ),\r\n }],\r\n selected: lockedColumns.concat(applyPartialConversionColumnName(permissions, _.compact([\r\n 'Clicks',\r\n 'CTR',\r\n 'AverageCPC',\r\n !IsAvgPositionDeprecationPhase1Enabled && !IsAvgPositionDeprecationPhase2Enabled && 'AveragePosition',\r\n 'ConversionRate',\r\n 'RevenueConversion',\r\n 'CPA',\r\n 'Conversions',\r\n IsAvgPositionDeprecationPhase1Enabled && 'TopImpressionRatePercent',\r\n IsAvgPositionDeprecationPhase1Enabled && 'AbsoluteTopImpressionRatePercent',\r\n IsManualCpmEnabled && 'AverageCPM',\r\n ]))),\r\n mandatory: lockedColumns,\r\n locked: lockedColumns,\r\n isForVNext,\r\n patchQuery: true,\r\n };\r\n\r\n if (gridType >= Constants.TimeHour && gridType <= Constants.TimeYear) {\r\n columnChooserConfig.categories.push({\r\n name: i18n.getString('Competitive'),\r\n options: columnConfigToColumnChooserConfig(\r\n timeColumnConfig.getCompetitiveColumns(),\r\n lockedColumns\r\n ),\r\n });\r\n }\r\n\r\n if (logger) {\r\n logger.trace(`Current selected columns: ${columnChooserConfig.selected}`, 'Dimension/load');\r\n }\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n return columnChooserConfig;\r\n },\r\n\r\n getEntity: () => jsDataCampaign.Time,\r\n\r\n getEntitySet: () => _.result(edm.currentAccount, 'Time'),\r\n\r\n getSchema: () => {\r\n const level = getCurrentLevel();\r\n\r\n const columns = ['HourOfDay', 'DayOfWeek', 'GregorianDate', 'Week',\r\n 'Month', 'Quarter', 'Year', 'CampaignName', 'AdGroupName'];\r\n\r\n timeSchema.properties.PerformanceMetrics = // eslint-disable-line no-param-reassign\r\n putil.cloneDeep(timeSchema.properties.PerformanceMetrics);\r\n const performanceMetricsProperty = timeSchema.properties.PerformanceMetrics;\r\n const allConvMetrics = applyPartialConversionColumnName(permissions, [\r\n 'AllConversionCPA',\r\n 'AllConversions',\r\n 'AllConversionRate',\r\n 'AllConversionAdvertiserReportedRevenue',\r\n 'AllConversionRevenueOnAdSpend',\r\n 'ViewThroughConversions',\r\n 'ViewThroughConversionsRevenue',\r\n 'ViewThroughConversionsCPA',\r\n 'ViewThroughConversionsReturnOnAdSpend',\r\n 'ViewThroughConversionsRate',\r\n ]);\r\n\r\n const timeGridSovColumnNames = {\r\n AuctionLostToRankPercent: 'AuctionLostToRankAggPercent',\r\n AbsoluteTopImpressionRate: 'AbsoluteTopImpressionRatePercent',\r\n TopImpressionRate: 'TopImpressionRatePercent',\r\n TopISLostToRankPercent: 'TopImpressionShareLostToRankPercent',\r\n TopISLostToBudgetPercent: 'TopImpressionShareLostToBudgetPercent',\r\n AbsoluteTopISLostToRankPercent: 'AbsoluteTopImpressionShareLostToRankPercent',\r\n AbsoluteTopISLostToBudgetPercent: 'AbsoluteTopImpressionShareLostToBudgetPercent',\r\n };\r\n\r\n _.each(allConvMetrics, (allConvMetric) => {\r\n if (performanceMetricsProperty &&\r\n putil.get(performanceMetricsProperty.schema.properties, allConvMetric)) {\r\n timeSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable = true;\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversions')) {\r\n timeSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsRevenue')) {\r\n timeSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsCPA')) {\r\n timeSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsReturnOnAdSpend')) {\r\n timeSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n if (allConvMetric === applyPartialConversionColumnName(permissions, 'ViewThroughConversionsRate')) {\r\n timeSchema.properties.PerformanceMetrics // eslint-disable-line no-param-reassign\r\n .schema.properties[allConvMetric].filterable =\r\n IsViewThroughConversionsRevenueEnabled;\r\n }\r\n }\r\n });\r\n\r\n // remove AverageCPM since we don't support this in V1\r\n delete timeSchema.properties.PerformanceMetrics.schema.properties.AverageCPM; // eslint-disable-line no-param-reassign, max-len\r\n delete timeSchema.properties.PerformanceMetrics.schema.properties.ClickSharePercent; // eslint-disable-line no-param-reassign, max-len\r\n delete timeSchema.properties.PerformanceMetrics.schema.properties.ExactMatchImpressionSharePercent; // eslint-disable-line no-param-reassign, max-len\r\n\r\n _.each(Object.keys(timeSchema.properties), (propertyKey) => {\r\n if (columns.indexOf(propertyKey) > -1) {\r\n delete timeSchema.properties[propertyKey]; // eslint-disable-line no-param-reassign\r\n }\r\n });\r\n\r\n updateSovColumns(timeSchema, timeGridSovColumnNames);\r\n\r\n switch (gridType) {\r\n case Constants.TimeHour:\r\n timeSchema.properties.HourOfDay = { // eslint-disable-line no-param-reassign\r\n type: 'integer',\r\n filterable: false,\r\n };\r\n break;\r\n case Constants.TimeDay:\r\n timeSchema.properties.DayOfWeek = { // eslint-disable-line no-param-reassign\r\n type: 'integer',\r\n filterable: false,\r\n };\r\n break;\r\n case Constants.TimeDate:\r\n timeSchema.properties.GregorianDate = { // eslint-disable-line no-param-reassign\r\n type: 'integer',\r\n filterable: false,\r\n };\r\n break;\r\n case Constants.TimeWeek:\r\n timeSchema.properties.Week = { // eslint-disable-line no-param-reassign\r\n type: 'integer',\r\n filterable: false,\r\n };\r\n break;\r\n case Constants.TimeMonth:\r\n timeSchema.properties.Month = { // eslint-disable-line no-param-reassign\r\n type: 'integer',\r\n filterable: false,\r\n };\r\n break;\r\n case Constants.TimeQuarter:\r\n timeSchema.properties.Quarter = { // eslint-disable-line no-param-reassign\r\n type: 'integer',\r\n filterable: false,\r\n };\r\n break;\r\n case Constants.TimeYear:\r\n timeSchema.properties.Year = { // eslint-disable-line no-param-reassign\r\n type: 'integer',\r\n filterable: false,\r\n };\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (level === Constants.AccountLevel) {\r\n timeSchema.properties.CampaignName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n timeSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n } else if (level === Constants.CampaignLevel) {\r\n timeSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n }\r\n\r\n const schema = _.compose(\r\n updateEntitySchemaForSOV,\r\n updateEntitySchemaForRemovedPerformanceMetrics\r\n )(timeSchema);\r\n\r\n return schema;\r\n },\r\n getReportName: () => {\r\n let reportType = null;\r\n\r\n switch (gridType) {\r\n case Constants.TimeHour:\r\n reportType = 'TimeHourOfDay';\r\n break;\r\n case Constants.TimeDay:\r\n reportType = 'TimeDayOfWeek';\r\n break;\r\n case Constants.TimeDate:\r\n reportType = 'TimeDate';\r\n break;\r\n case Constants.TimeWeek:\r\n reportType = 'TimeWeek';\r\n break;\r\n case Constants.TimeMonth:\r\n reportType = 'TimeMonth';\r\n break;\r\n case Constants.TimeQuarter:\r\n reportType = 'TimeQuarter';\r\n break;\r\n case Constants.TimeYear:\r\n reportType = 'TimeYear';\r\n break;\r\n default:\r\n break;\r\n }\r\n return reportType;\r\n },\r\n getReportSchema() {\r\n return _.defaults({\r\n name: this.getReportName(gridType),\r\n }, this.getSchema(gridType));\r\n },\r\n modifyFilter: filters => filters,\r\n getRewriteMap: () => ({\r\n HourOfDay: i18n.getString('ColumnName_HourOfDay'),\r\n DayOfWeek: i18n.getString('ColumnName_DayOfWeek'),\r\n GregorianDate: i18n.getString('ColumnName_Date'),\r\n Week: i18n.getString('ColumnName_Week'),\r\n Month: i18n.getString('ColumnName_Month'),\r\n Quarter: i18n.getString('ColumnName_Quarter'),\r\n Year: i18n.getString('ColumnName_Year'),\r\n AdGroupName: i18n.getString('FilterLocalization_DataAttribute_AdGroupName'),\r\n CampaignName: i18n.getString('FilterLocalization_DataAttribute_CampaignName'),\r\n AuctionWonPercent: i18n.getString('ColumnName_ImpShare'),\r\n AuctionLostToBudgetPercent: i18n.getString('ColumnName_ImpShareLostToBudget'),\r\n AuctionLostToRankPercent: i18n.getString('ColumnName_ImpShareLostToRank'),\r\n AuctionLostToLandingPercent: i18n.getString('ColumnName_ImpShareLostToRelevance'),\r\n AuctionLostToAdQualityPercent: i18n.getString('ColumnName_ImpShareLostToExpectedCTR'),\r\n AuctionLostToBidPercent: i18n.getString('ColumnName_ImpShareLostToBid'),\r\n TopImpressionSharePercent: i18n.getString('ColumnName_TopImpressionSharePercent'),\r\n TopImpressionShareLostToBudgetPercent: i18n.getString('ColumnName_TopImpressionShareLostToBudget'),\r\n TopImpressionShareLostToRankPercent: i18n.getString('ColumnName_TopImpressionShareLostToRank'),\r\n AbsoluteTopImpressionSharePercent: i18n.getString('ColumnName_AbsoluteTopImpressionSharePercent'),\r\n AbsoluteTopImpressionShareLostToBudgetPercent: i18n.getString('ColumnName_AbsoluteTopImpressionShareLostToBudget'),\r\n AbsoluteTopImpressionShareLostToRankPercent: i18n.getString('ColumnName_AbsoluteTopImpressionShareLostToRank'),\r\n TopImpressionRatePercent: i18n.getString('ColumnName_TopImpressionRate'),\r\n AbsoluteTopImpressionRatePercent: i18n.getString('ColumnName_AbsoluteTopImpressionRate'),\r\n }),\r\n };\r\n}\r\n\r\n","import _ from 'underscore';\r\nimport { addColumnOnLevel } from '../add-column-on-level';\r\nimport dayOfWeekTemplate from './dayofweek-template.pug';\r\nimport dateTemplate from './date-template.pug';\r\nimport weekTemplate from './week-template.pug';\r\nimport monthTemplate from './month-template.pug';\r\nimport quarterTemplate from './quarter-template.pug';\r\nimport yearTemplate from './year-template.pug';\r\nimport { Constants } from '../constants';\r\nimport { absoluteTopImpressionRate, topImpressionRate } from '../shared/columns';\r\n\r\nexport function getTimeGridColumnConfig({\r\n i18n,\r\n bingadsGridColumn,\r\n globalConfig,\r\n getCurrentLevel,\r\n}) {\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsManualCpmEnabled,\r\n dynamic = {},\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = globalConfig.get('Permissions') || {};\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n\r\n const {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n } = dynamic;\r\n\r\n const usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\n function column(options) {\r\n return bingadsGridColumn(_.defaults({}, options, { i18n }));\r\n }\r\n\r\n return {\r\n getGridSpecificColumns: (gridType) => {\r\n const columns = [];\r\n\r\n switch (gridType) {\r\n case Constants.TimeHour:\r\n columns.push(column({\r\n name: 'HourOfDay',\r\n title: 'ColumnName_HourOfDay',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'Pop_BA_DimensionGrid_HourOfDay',\r\n }));\r\n break;\r\n case Constants.TimeDay:\r\n columns.push(column({\r\n name: 'DayOfWeek',\r\n title: 'ColumnName_DayOfWeek',\r\n property: {\r\n get(row) {\r\n let dayOfWeek = null;\r\n\r\n switch (row.DayOfWeek) {\r\n case 1:\r\n dayOfWeek = i18n.getString('Dimension_WeekDay_1');\r\n break;\r\n case 2:\r\n dayOfWeek = i18n.getString('Dimension_WeekDay_2');\r\n break;\r\n case 3:\r\n dayOfWeek = i18n.getString('Dimension_WeekDay_3');\r\n break;\r\n case 4:\r\n dayOfWeek = i18n.getString('Dimension_WeekDay_4');\r\n break;\r\n case 5:\r\n dayOfWeek = i18n.getString('Dimension_WeekDay_5');\r\n break;\r\n case 6:\r\n dayOfWeek = i18n.getString('Dimension_WeekDay_6');\r\n break;\r\n case 7:\r\n dayOfWeek = i18n.getString('Dimension_WeekDay_7');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return {\r\n dayOfWeek,\r\n };\r\n },\r\n key: 'DayOfWeek',\r\n },\r\n template: dayOfWeekTemplate,\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'Pop_BA_DimensionGrid_DayOfWeek',\r\n }));\r\n break;\r\n case Constants.TimeDate:\r\n columns.push(column({\r\n name: 'GregorianDate',\r\n title: 'ColumnName_Date',\r\n property: {\r\n get(row) {\r\n return {\r\n date: (new Date(row.GregorianDate)).toDateString(),\r\n };\r\n },\r\n key: 'GregorianDate',\r\n },\r\n template: dateTemplate,\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'Pop_BA_DimensionGrid_Date',\r\n }));\r\n break;\r\n case Constants.TimeWeek:\r\n columns.push(column({\r\n name: 'Week',\r\n title: 'ColumnName_Week',\r\n sortable: true,\r\n property: {\r\n get(row) {\r\n const dt = new Date(row.Week);\r\n\r\n return {\r\n i18nStr: i18n.getString('Dimension_Week_Text'),\r\n week: `${(dt.getMonth() + 1)}/${dt.getDate()}/${(dt.getYear() + 1900)}`,\r\n };\r\n },\r\n key: 'Week',\r\n },\r\n template: weekTemplate,\r\n type: 'string',\r\n helpId: 'Pop_BA_DimensionGrid_Week',\r\n }));\r\n\r\n break;\r\n case Constants.TimeMonth:\r\n columns.push(column({\r\n name: 'Month',\r\n title: 'ColumnName_Month',\r\n sortable: true,\r\n property: {\r\n get(row) {\r\n const dt = new Date(row.Month);\r\n let month = dt.getMonth();\r\n\r\n switch (month) {\r\n case 0:\r\n month = i18n.getString('Dimension_Month_Jan');\r\n break;\r\n case 1:\r\n month = i18n.getString('Dimension_Month_Feb');\r\n break;\r\n case 2:\r\n month = i18n.getString('Dimension_Month_Mar');\r\n break;\r\n case 3:\r\n month = i18n.getString('Dimension_Month_Apr');\r\n break;\r\n case 4:\r\n month = i18n.getString('Dimension_Month_May');\r\n break;\r\n case 5:\r\n month = i18n.getString('Dimension_Month_Jun');\r\n break;\r\n case 6:\r\n month = i18n.getString('Dimension_Month_Jul');\r\n break;\r\n case 7:\r\n month = i18n.getString('Dimension_Month_Aug');\r\n break;\r\n case 8:\r\n month = i18n.getString('Dimension_Month_Sep');\r\n break;\r\n case 9:\r\n month = i18n.getString('Dimension_Month_Oct');\r\n break;\r\n case 10:\r\n month = i18n.getString('Dimension_Month_Nov');\r\n break;\r\n case 11:\r\n month = i18n.getString('Dimension_Month_Dec');\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return {\r\n month: `${month} ${(dt.getYear() + 1900)}`,\r\n };\r\n },\r\n key: 'Month',\r\n },\r\n template: monthTemplate,\r\n type: 'string',\r\n helpId: 'Pop_BA_DimensionGrid_Month',\r\n }));\r\n break;\r\n case Constants.TimeQuarter:\r\n columns.push(column({\r\n name: 'Quarter',\r\n title: 'ColumnName_Quarter',\r\n sortable: true,\r\n property: {\r\n get(row) {\r\n const dt = new Date(row.Quarter);\r\n const month = dt.getMonth();\r\n const quarter = Math.ceil((month + 1) / 3);\r\n\r\n return {\r\n quarter: `Q${quarter} ${(dt.getYear() + 1900)}`,\r\n };\r\n },\r\n key: ['Quarter'],\r\n },\r\n template: quarterTemplate,\r\n type: 'string',\r\n helpId: 'Pop_BA_DimensionGrid_Quarter',\r\n }));\r\n break;\r\n case Constants.TimeYear:\r\n columns.push(column({\r\n name: 'Year',\r\n title: 'Dimension_ColumnName_Year',\r\n sortable: true,\r\n property: {\r\n get(row) {\r\n return {\r\n year: row.Year,\r\n };\r\n },\r\n key: 'Year',\r\n },\r\n template: yearTemplate,\r\n type: 'string',\r\n helpId: 'Pop_BA_DimensionGrid_Year',\r\n }));\r\n break;\r\n default:\r\n break;\r\n }\r\n return columns;\r\n },\r\n getLevelOfDetailColumns: () => {\r\n const levelOfDetailColumns = [];\r\n\r\n addColumnOnLevel(column, levelOfDetailColumns, getCurrentLevel());\r\n\r\n return levelOfDetailColumns;\r\n // TODO [kyyook]: These columns are commented as they are not supported in phase 1.\r\n // To be enabled in Phase 2 of Dimension project\r\n /*\r\n column({\r\n name: 'AdgroupStatus',\r\n title: 'ColumnName_AdgroupStatus',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'Pop_BA_DimensionGrid_AdgroupStatus',\r\n }),\r\n column({\r\n name: 'CampaignStatus',\r\n title: 'ColumnName_CampaignStatus',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'Pop_BA_DimensionGrid_CampaignStatusStatus',\r\n }),\r\n */\r\n },\r\n getPerfColumns: () => {\r\n let perfColumns = [\r\n column({\r\n name: 'Impressions',\r\n title: 'ColumnName_Impressions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'Page_CampaignGrids_Impr',\r\n }),\r\n column({\r\n name: 'Clicks',\r\n title: 'ColumnName_Clicks',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'Page_CampaignGrids_Clicks',\r\n }),\r\n column({\r\n name: 'CTR',\r\n title: 'ColumnName_ClickThruRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_CTR',\r\n }),\r\n column({\r\n name: 'AverageCPC',\r\n title: 'ColumnName_AverageCPC',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_AvgCPC',\r\n }),\r\n IsManualCpmEnabled && column({\r\n name: 'AverageCPM',\r\n title: 'ColumnName_AverageCPM',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPM',\r\n }),\r\n column({\r\n name: 'Spend',\r\n title: 'ColumnName_Spend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_Spend',\r\n }),\r\n column(topImpressionRate),\r\n column(absoluteTopImpressionRate),\r\n ];\r\n\r\n if (!IsAvgPositionDeprecationPhase2Enabled) {\r\n perfColumns = perfColumns.concat([\r\n column({\r\n name: 'AveragePosition',\r\n title: 'ColumnName_AveragePosition',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_AvgPosition',\r\n }),\r\n ]);\r\n }\r\n\r\n return _.compact(perfColumns);\r\n },\r\n getConversionColumns: () => {\r\n let conversionColumns = [\r\n usePartialConversions ?\r\n column({\r\n name: 'ConversionsCredit',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_Conv',\r\n }) : column({\r\n name: 'Conversions',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'Page_CampaignGrids_Conv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_ConvRate',\r\n }) : column({\r\n name: 'ConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_ConvRate',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionCPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_CPA',\r\n }) : column({\r\n name: 'CPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_CampaignGrids_CPA',\r\n }),\r\n // TODO [kyyook]: These columns are commented as they are not supported in phase 1.\r\n // To be enabled in Phase 2 of Dimension project\r\n /*\r\n column({\r\n name: 'Assists',\r\n title: 'ColumnName_Assists',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_Reporting_Clarity_Assists',\r\n }),\r\n column({\r\n name: 'ExtendedCost',\r\n title: 'ColumnName_ExtendedCost',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Pop_BA_DimensionGrid_ExtendedCost',\r\n }),\r\n column({\r\n name: 'RevenueConversion',\r\n title: 'ColumnName_RevenueConversion',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_RevenueConversion',\r\n }),\r\n column({\r\n name: 'RevenuePerAssist',\r\n title: 'ColumnName_RevenuePerAssist',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_RevenueAssist',\r\n }),\r\n */\r\n column({\r\n name: 'RevenueOnAdSpend',\r\n title: 'ColumnName_RevenueOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_CampaignGrids_ReturnAdSpend',\r\n }),\r\n column({\r\n name: 'AdvertiserReportedRevenue',\r\n title: 'ColumnName_Revenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'Page_CampaignGrids_Revenue',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'AllConversionsCredit',\r\n title: 'ColumnName_AllConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConv',\r\n }) : column({\r\n name: 'AllConversions',\r\n title: 'ColumnName_AllConversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_AllConv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'AllPartialConversionCPA',\r\n title: 'ColumnName_AllConversionCPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConvCPA',\r\n }) :\r\n column({\r\n name: 'AllConversionCPA',\r\n title: 'ColumnName_AllConversionCPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_AllConvCPA',\r\n }),\r\n usePartialConversions ? column({\r\n name: 'AllPartialConversionRate',\r\n title: 'ColumnName_AllConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRate',\r\n }) :\r\n column({\r\n name: 'AllConversionRate',\r\n title: 'ColumnName_AllConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRate',\r\n }),\r\n column({\r\n name: 'AllConversionAdvertiserReportedRevenue',\r\n title: 'ColumnName_AllConversionAdvertiserReportedRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvRevenue',\r\n }),\r\n column({\r\n name: 'AllConversionRevenueOnAdSpend',\r\n title: 'ColumnName_AllConversionRevenueOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AllConvROAS',\r\n }),\r\n ];\r\n\r\n if (IsViewThroughConversionEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughConversionsCredit',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'decimal',\r\n }) :\r\n column({\r\n name: 'ViewThroughConversions',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'integer',\r\n }),\r\n ]);\r\n }\r\n\r\n if (IsViewThroughConversionsRevenueEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n column({\r\n name: 'ViewThroughConversionsRevenue',\r\n title: 'ColumnName_ViewThroughConversionsRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRevenue',\r\n format: 'decimal',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }) :\r\n column({\r\n name: 'ViewThroughConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }),\r\n column({\r\n name: 'ViewThroughConversionsReturnOnAdSpend',\r\n title: 'ColumnName_ViewThroughConversionsReturnOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvReturnOnAdSpend',\r\n format: 'percentage-value',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }) :\r\n column({\r\n name: 'ViewThroughConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }),\r\n ]);\r\n }\r\n\r\n return conversionColumns;\r\n },\r\n getCompetitiveColumns: () => {\r\n const competitiveColumns = [\r\n column({\r\n name: 'AuctionWonPercent',\r\n title: 'ColumnName_ImpShare',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'Page_Reporting_Clarity_ImpressionShare',\r\n }),\r\n column({\r\n name: 'AuctionLostToBudgetPercent',\r\n title: 'ColumnName_ImpShareLostToBudget',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_ImpShrLostBudget',\r\n }),\r\n column({\r\n name: 'AuctionLostToRankAggPercent',\r\n title: 'ColumnName_ImpShareLostToRank',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_ImpShrLostRank',\r\n }),\r\n column({\r\n name: 'TopImpressionSharePercent',\r\n title: 'ColumnName_TopImpressionSharePercent',\r\n property: 'TopImpressionSharePercent',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_TopImpressionShare',\r\n }),\r\n column({\r\n name: 'TopImpressionShareLostToBudgetPercent',\r\n title: 'ColumnName_TopImpressionShareLostToBudget',\r\n property: 'TopImpressionShareLostToBudgetPercent',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_TopImpressionLosttoBudget',\r\n }),\r\n column({\r\n name: 'TopImpressionShareLostToRankPercent',\r\n title: 'ColumnName_TopImpressionShareLostToRank',\r\n property: 'TopImpressionShareLostToRankPercent',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_TopImpressionLosttoRank',\r\n }),\r\n column({\r\n name: 'AbsoluteTopImpressionSharePercent',\r\n title: 'ColumnName_AbsoluteTopImpressionSharePercent',\r\n property: 'AbsoluteTopImpressionSharePercent',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_ProductAds_AbsoluteTopImpShare',\r\n }),\r\n column({\r\n name: 'AbsoluteTopImpressionShareLostToBudgetPercent',\r\n title: 'ColumnName_AbsoluteTopImpressionShareLostToBudget',\r\n property: 'AbsoluteTopImpressionShareLostToBudgetPercent',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_AbsoluteTopISLosttoBudget',\r\n }),\r\n column({\r\n name: 'AbsoluteTopImpressionShareLostToRankPercent',\r\n title: 'ColumnName_AbsoluteTopImpressionShareLostToRank',\r\n property: 'AbsoluteTopImpressionShareLostToRankPercent',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_Reporting_Clarity_AbsoluteTopISLosttoRank',\r\n }),\r\n ];\r\n\r\n return competitiveColumns;\r\n },\r\n };\r\n}\r\n","export const toHex = color => `000000${color.toString(16)}`.substr(-6);\r\n\r\nexport const showAdGroupColumn = inAdGroupLevel => !inAdGroupLevel;\r\n\r\nexport const showCampaignColumn = (inCampaignLevel, inAdGroupLevel) =>\r\n !inAdGroupLevel && !inCampaignLevel;\r\n\r\nexport const addCampaignColumn = (column, columns) => {\r\n columns.push(column({\r\n name: 'CampaignName',\r\n title: 'ColumnName_Campaign',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Dimensions_Campaign',\r\n }));\r\n};\r\n\r\nexport const addAdGroupColumn = (column, columns) => {\r\n columns.push(column({\r\n name: 'AdGroupName',\r\n title: 'ColumnName_AdGroup',\r\n sortable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_Dimensions_AdGroup',\r\n }));\r\n};\r\n","import _ from 'underscore';\r\nimport { columnConfigToColumnChooserConfig, isConversionsColumnAllowed } from '../../column-config-to-chooser-config';\r\nimport { getKeywordLabelColumnConfig } from './keyword-grid-column-config';\r\nimport { Constants } from '../../constants';\r\n\r\nexport function getKeywordsLabelGridConfig({\r\n i18n,\r\n newI18n,\r\n jsDataCampaign,\r\n edm,\r\n labelKeywordsSchema,\r\n getCurrentLevel,\r\n globalConfig,\r\n deleteSchema,\r\n bingadsGridColumn,\r\n gridType,\r\n isForVNext,\r\n}) {\r\n const keywordLabelColumnConfig = getKeywordLabelColumnConfig({\r\n i18n,\r\n bingadsGridColumn,\r\n globalConfig,\r\n newI18n,\r\n });\r\n\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = globalConfig.get('Permissions') || {};\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n\r\n const level = getCurrentLevel();\r\n return {\r\n getColumns: () => keywordLabelColumnConfig.getLevelOfDetailColumns()\r\n .concat(keywordLabelColumnConfig.getPerfColumns())\r\n .concat(keywordLabelColumnConfig.getConversionColumns()),\r\n getColumnChooserConfiguration: () => {\r\n const lockedColumns = ['LabelName'];\r\n\r\n const columnChooserConfig = {\r\n categories: [{\r\n name: i18n.getString('LevelOfDetail'),\r\n options: columnConfigToColumnChooserConfig(\r\n keywordLabelColumnConfig.getLevelOfDetailColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Performance'),\r\n options: columnConfigToColumnChooserConfig(\r\n keywordLabelColumnConfig.getPerfColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Conversions'),\r\n options: columnConfigToColumnChooserConfig(\r\n _.filter(\r\n keywordLabelColumnConfig.getConversionColumns(),\r\n ({ name }) => isConversionsColumnAllowed({\r\n name,\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n })\r\n ),\r\n lockedColumns\r\n ),\r\n }],\r\n selected: lockedColumns.concat(_.compact([\r\n IsAvgPositionDeprecationPhase1Enabled && 'TopImpressionRate',\r\n IsAvgPositionDeprecationPhase1Enabled && 'AbsoluteTopImpressionRate',\r\n ])),\r\n mandatory: [],\r\n patchQuery: true,\r\n isForVNext,\r\n };\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n return columnChooserConfig;\r\n },\r\n\r\n getEntity: () => jsDataCampaign.Time,\r\n\r\n getEntitySet: () => _.result(edm.currentAccount, 'Time'),\r\n\r\n getSchema: () => {\r\n const columns = ['CampaignName', 'AdGroupName'];\r\n\r\n deleteSchema(columns, labelKeywordsSchema);\r\n\r\n if (level === Constants.AccountLevel) {\r\n labelKeywordsSchema.properties.CampaignName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n labelKeywordsSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n } else if (level === Constants.CampaignLevel) {\r\n labelKeywordsSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n }\r\n return labelKeywordsSchema;\r\n },\r\n getReportName: () => 'KeywordLabelReport',\r\n getReportSchema() {\r\n return _.defaults({\r\n name: this.getReportName(gridType),\r\n }, this.getSchema(gridType));\r\n },\r\n modifyFilter: filters => filters,\r\n getRewriteMap: () => ({\r\n StartTime: i18n.getString('ColumnName_StartTime'),\r\n EndTime: i18n.getString('ColumnName_EndTime'),\r\n AreaCode: i18n.getString('ColumnName_AreaCode'),\r\n City: i18n.getString('ColumnName_City'),\r\n StateOrProvince: i18n.getString('ColumnName_StateOrProvince'),\r\n CallStatus: i18n.getString('ColumnName_CallStatus'),\r\n CallDuration: i18n.getString('ColumnName_CallDuration'),\r\n PhoneSpend: i18n.getString('ColumnName_PhoneSpend'),\r\n AdGroupName: i18n.getString('FilterLocalization_DataAttribute_AdGroupName'),\r\n CampaignName: i18n.getString('FilterLocalization_DataAttribute_CampaignName'),\r\n }),\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport labelTemplate from '../shared/label-template.pug';\r\nimport {\r\n toHex,\r\n addCampaignColumn,\r\n addAdGroupColumn,\r\n} from '../shared/utils';\r\nimport { absoluteTopImpressionRateLabel, topImpressionRateLabel } from '../../shared/columns';\r\n\r\nexport function getKeywordLabelColumnConfig({\r\n newI18n, i18n, bingadsGridColumn, globalConfig,\r\n}) {\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n dynamic = {},\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = globalConfig.get('Permissions') || {};\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n const {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n } = dynamic;\r\n const usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\n function column(options) {\r\n return bingadsGridColumn(_.defaults({}, options, { i18n }));\r\n }\r\n\r\n return {\r\n getLevelOfDetailColumns: () => {\r\n const levelOfDetailColumns = [];\r\n\r\n levelOfDetailColumns.push(column({\r\n name: 'LabelName',\r\n property: {\r\n get(row) {\r\n if (row.RowType === 'AggregatedOthers') {\r\n return {\r\n LabelName: newI18n.getString('Dimension_Unlabeled'),\r\n LabelColor: null,\r\n };\r\n }\r\n return {\r\n LabelName: row.LabelName,\r\n LabelColor: `#${toHex(parseInt(row.LabelColorCode, 10))}`,\r\n };\r\n },\r\n key: 'LabelName,LabelColorCode',\r\n },\r\n title: 'ColumnName_LabelName',\r\n sortable: true,\r\n template: labelTemplate,\r\n type: 'String',\r\n }));\r\n\r\n addCampaignColumn(column, levelOfDetailColumns);\r\n addAdGroupColumn(column, levelOfDetailColumns);\r\n return levelOfDetailColumns;\r\n },\r\n getPerfColumns: () => _.compact([\r\n column({\r\n name: 'Clicks',\r\n title: 'ColumnName_Clicks',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Clicks',\r\n }),\r\n column({\r\n name: 'Impressions',\r\n title: 'ColumnName_Impressions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Impr',\r\n }),\r\n column({\r\n name: 'CTR',\r\n title: 'ColumnName_ClickThruRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_CTR',\r\n }),\r\n column({\r\n name: 'AverageCPC',\r\n title: 'ColumnName_AverageCPC',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPC',\r\n }),\r\n column({\r\n name: 'Spend',\r\n title: 'ColumnName_Spend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_Spend',\r\n }),\r\n !IsAvgPositionDeprecationPhase2Enabled && column({\r\n name: 'AveragePosition',\r\n title: 'ColumnName_AveragePosition',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgPosition',\r\n }),\r\n IsAvgPositionDeprecationPhase1Enabled && column(topImpressionRateLabel),\r\n IsAvgPositionDeprecationPhase1Enabled && column(absoluteTopImpressionRateLabel),\r\n ]),\r\n getConversionColumns: () => {\r\n let conversionColumns = [\r\n usePartialConversions ? column({\r\n name: 'PartialConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }) : column({\r\n name: 'ConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ConversionsCredit',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }) : column({\r\n name: 'Conversions',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionCPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }) : column({\r\n name: 'CPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }),\r\n ];\r\n if (IsViewThroughConversionEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughConversionsCredit',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'decimal',\r\n }) : column({\r\n name: 'ViewThroughConversions',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'integer',\r\n }),\r\n ]);\r\n }\r\n if (IsViewThroughConversionsRevenueEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n column({\r\n name: 'ViewThroughConversionsRevenue',\r\n title: 'ColumnName_ViewThroughConversionsRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRevenue',\r\n format: 'decimal',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }) : column({\r\n name: 'ViewThroughConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }),\r\n column({\r\n name: 'ViewThroughConversionsReturnOnAdSpend',\r\n title: 'ColumnName_ViewThroughConversionsReturnOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvReturnOnAdSpend',\r\n format: 'percentage-value',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }) : column({\r\n name: 'ViewThroughConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }),\r\n ]);\r\n }\r\n return conversionColumns;\r\n },\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { columnConfigToColumnChooserConfig, isConversionsColumnAllowed } from '../../column-config-to-chooser-config';\r\nimport { getAdLabelColumnConfig } from './ad-grid-column-config';\r\nimport { Constants } from '../../constants';\r\n\r\nexport function getAdLabelsGridConfig({\r\n i18n,\r\n newI18n,\r\n jsDataCampaign,\r\n edm,\r\n LabelAdSchema,\r\n getCurrentLevel,\r\n globalConfig,\r\n deleteSchema,\r\n bingadsGridColumn,\r\n gridType,\r\n isForVNext,\r\n}) {\r\n const adLabelColumnConfig = getAdLabelColumnConfig({\r\n i18n,\r\n bingadsGridColumn,\r\n globalConfig,\r\n newI18n,\r\n });\r\n\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = globalConfig.get('Permissions') || {};\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n\r\n const level = getCurrentLevel();\r\n return {\r\n getColumns: () => adLabelColumnConfig.getLevelOfDetailColumns()\r\n .concat(adLabelColumnConfig.getPerfColumns())\r\n .concat(adLabelColumnConfig.getConversionColumns()),\r\n getColumnChooserConfiguration: () => {\r\n const lockedColumns = ['LabelName'];\r\n\r\n const columnChooserConfig = {\r\n categories: [{\r\n name: i18n.getString('LevelOfDetail'),\r\n options: columnConfigToColumnChooserConfig(\r\n adLabelColumnConfig.getLevelOfDetailColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Performance'),\r\n options: columnConfigToColumnChooserConfig(\r\n adLabelColumnConfig.getPerfColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Conversions'),\r\n options: columnConfigToColumnChooserConfig(\r\n _.filter(\r\n adLabelColumnConfig.getConversionColumns(),\r\n ({ name }) => isConversionsColumnAllowed({\r\n name,\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n })\r\n ),\r\n lockedColumns\r\n ),\r\n }],\r\n selected: lockedColumns.concat(_.compact([\r\n IsAvgPositionDeprecationPhase1Enabled && 'TopImpressionRate',\r\n IsAvgPositionDeprecationPhase1Enabled && 'AbsoluteTopImpressionRate',\r\n ])),\r\n mandatory: [],\r\n patchQuery: true,\r\n isForVNext,\r\n };\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n return columnChooserConfig;\r\n },\r\n\r\n getEntity: () => jsDataCampaign.Time,\r\n\r\n getEntitySet: () => _.result(edm.currentAccount, 'Time'),\r\n\r\n getSchema: () => {\r\n const columns = ['CampaignName', 'AdGroupName'];\r\n\r\n deleteSchema(columns, LabelAdSchema);\r\n\r\n if (level === Constants.AccountLevel) {\r\n LabelAdSchema.properties.CampaignName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n LabelAdSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n } else if (level === Constants.CampaignLevel) {\r\n LabelAdSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n }\r\n\r\n return LabelAdSchema;\r\n },\r\n getReportName: () => 'AdLabelReport',\r\n getReportSchema() {\r\n return _.defaults({\r\n name: this.getReportName(gridType),\r\n }, this.getSchema(gridType));\r\n },\r\n modifyFilter: filters => filters,\r\n getRewriteMap: () => ({\r\n StartTime: i18n.getString('ColumnName_StartTime'),\r\n EndTime: i18n.getString('ColumnName_EndTime'),\r\n AreaCode: i18n.getString('ColumnName_AreaCode'),\r\n City: i18n.getString('ColumnName_City'),\r\n StateOrProvince: i18n.getString('ColumnName_StateOrProvince'),\r\n CallStatus: i18n.getString('ColumnName_CallStatus'),\r\n CallDuration: i18n.getString('ColumnName_CallDuration'),\r\n PhoneSpend: i18n.getString('ColumnName_PhoneSpend'),\r\n AdGroupName: i18n.getString('FilterLocalization_DataAttribute_AdGroupName'),\r\n CampaignName: i18n.getString('FilterLocalization_DataAttribute_CampaignName'),\r\n }),\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport labelTemplate from '../shared/label-template.pug';\r\nimport {\r\n toHex,\r\n addCampaignColumn,\r\n addAdGroupColumn,\r\n} from '../shared/utils';\r\nimport { absoluteTopImpressionRateLabel, topImpressionRateLabel } from '../../shared/columns';\r\n\r\nexport function getAdLabelColumnConfig({\r\n newI18n, i18n, bingadsGridColumn, globalConfig,\r\n}) {\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsManualCpmEnabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n dynamic = {},\r\n } = globalConfig.get('Permissions') || {};\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n const {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n } = dynamic;\r\n const usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\n function column(options) {\r\n return bingadsGridColumn(_.defaults({}, options, { i18n }));\r\n }\r\n\r\n return {\r\n getLevelOfDetailColumns: () => {\r\n const levelOfDetailColumns = [];\r\n\r\n levelOfDetailColumns.push(column({\r\n name: 'LabelName',\r\n property: {\r\n get(row) {\r\n if (row.RowType === 'AggregatedOthers') {\r\n return {\r\n LabelName: newI18n.getString('Dimension_Unlabeled'),\r\n LabelColor: null,\r\n };\r\n }\r\n return {\r\n LabelName: row.LabelName,\r\n LabelColor: `#${toHex(parseInt(row.LabelColorCode, 10))}`,\r\n };\r\n },\r\n key: 'LabelName,LabelColorCode',\r\n },\r\n title: 'ColumnName_LabelName',\r\n sortable: true,\r\n template: labelTemplate,\r\n type: 'String',\r\n }));\r\n\r\n addCampaignColumn(column, levelOfDetailColumns);\r\n addAdGroupColumn(column, levelOfDetailColumns);\r\n return levelOfDetailColumns;\r\n },\r\n getPerfColumns: () => _.compact([\r\n column({\r\n name: 'Clicks',\r\n title: 'ColumnName_Clicks',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Clicks',\r\n }),\r\n column({\r\n name: 'Impressions',\r\n title: 'ColumnName_Impressions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Impr',\r\n }),\r\n column({\r\n name: 'CTR',\r\n title: 'ColumnName_ClickThruRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_CTR',\r\n }),\r\n column({\r\n name: 'AverageCPC',\r\n title: 'ColumnName_AverageCPC',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPC',\r\n }),\r\n IsManualCpmEnabled && column({\r\n name: 'AverageCPM',\r\n title: 'ColumnName_AverageCPM',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPM',\r\n }),\r\n column({\r\n name: 'Spend',\r\n title: 'ColumnName_Spend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_Spend',\r\n }),\r\n !IsAvgPositionDeprecationPhase2Enabled && column({\r\n name: 'AveragePosition',\r\n title: 'ColumnName_AveragePosition',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgPosition',\r\n }),\r\n IsAvgPositionDeprecationPhase1Enabled && column(topImpressionRateLabel),\r\n IsAvgPositionDeprecationPhase1Enabled && column(absoluteTopImpressionRateLabel),\r\n ]),\r\n getConversionColumns: () => {\r\n let conversionColumns = [\r\n usePartialConversions ? column({\r\n name: 'PartialConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }) : column({\r\n name: 'ConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ConversionsCredit',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }) : column({\r\n name: 'Conversions',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionCPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }) : column({\r\n name: 'CPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }),\r\n ];\r\n if (IsViewThroughConversionEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughConversionsCredit',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'decimal',\r\n }) : column({\r\n name: 'ViewThroughConversions',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'integer',\r\n }),\r\n ]);\r\n }\r\n if (IsViewThroughConversionsRevenueEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n column({\r\n name: 'ViewThroughConversionsRevenue',\r\n title: 'ColumnName_ViewThroughConversionsRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRevenue',\r\n format: 'decimal',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }) : column({\r\n name: 'ViewThroughConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }),\r\n column({\r\n name: 'ViewThroughConversionsReturnOnAdSpend',\r\n title: 'ColumnName_ViewThroughConversionsReturnOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvReturnOnAdSpend',\r\n format: 'percentage-value',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }) : column({\r\n name: 'ViewThroughConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }),\r\n ]);\r\n }\r\n return conversionColumns;\r\n },\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { columnConfigToColumnChooserConfig, isConversionsColumnAllowed } from '../../column-config-to-chooser-config';\r\nimport { getAdGroupLabelColumnConfig } from './ad-group-grid-column-config';\r\nimport { Constants } from '../../constants';\r\n\r\nexport function getAdGroupLabelsGridConfig({\r\n i18n,\r\n newI18n,\r\n jsDataCampaign,\r\n edm,\r\n LabelAdGroupSchema,\r\n getCurrentLevel,\r\n globalConfig,\r\n deleteSchema,\r\n bingadsGridColumn,\r\n gridType,\r\n isForVNext,\r\n}) {\r\n const adGroupLabelColumnConfig = getAdGroupLabelColumnConfig({\r\n i18n,\r\n bingadsGridColumn,\r\n globalConfig,\r\n newI18n,\r\n });\r\n\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = globalConfig.get('Permissions') || {};\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n\r\n const level = getCurrentLevel();\r\n return {\r\n getColumns: () => adGroupLabelColumnConfig.getLevelOfDetailColumns()\r\n .concat(adGroupLabelColumnConfig.getPerfColumns())\r\n .concat(adGroupLabelColumnConfig.getConversionColumns()),\r\n getColumnChooserConfiguration: () => {\r\n const lockedColumns = ['LabelName'];\r\n\r\n const columnChooserConfig = {\r\n categories: [{\r\n name: i18n.getString('LevelOfDetail'),\r\n options: columnConfigToColumnChooserConfig(\r\n adGroupLabelColumnConfig.getLevelOfDetailColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Performance'),\r\n options: columnConfigToColumnChooserConfig(\r\n adGroupLabelColumnConfig.getPerfColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Conversions'),\r\n options: columnConfigToColumnChooserConfig(\r\n _.filter(\r\n adGroupLabelColumnConfig.getConversionColumns(),\r\n ({ name }) => isConversionsColumnAllowed({\r\n name,\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n })\r\n ),\r\n lockedColumns\r\n ),\r\n }],\r\n selected: lockedColumns.concat(_.compact([\r\n IsAvgPositionDeprecationPhase1Enabled && 'TopImpressionRate',\r\n IsAvgPositionDeprecationPhase1Enabled && 'AbsoluteTopImpressionRate',\r\n ])),\r\n mandatory: [],\r\n patchQuery: true,\r\n isForVNext,\r\n };\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n return columnChooserConfig;\r\n },\r\n\r\n getEntity: () => jsDataCampaign.Time,\r\n\r\n getEntitySet: () => _.result(edm.currentAccount, 'Time'),\r\n\r\n getSchema: () => {\r\n const columns = ['CampaignName', 'AdGroupName'];\r\n\r\n deleteSchema(columns, LabelAdGroupSchema);\r\n\r\n if (level === Constants.AccountLevel) {\r\n LabelAdGroupSchema.properties.CampaignName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n LabelAdGroupSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n } else if (level === Constants.CampaignLevel) {\r\n LabelAdGroupSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n }\r\n\r\n return LabelAdGroupSchema;\r\n },\r\n getReportName: () => 'AdGroupLabelReport',\r\n getReportSchema() {\r\n return _.defaults({\r\n name: this.getReportName(gridType),\r\n }, this.getSchema(gridType));\r\n },\r\n modifyFilter: filters => filters,\r\n getRewriteMap: () => ({\r\n StartTime: i18n.getString('ColumnName_StartTime'),\r\n EndTime: i18n.getString('ColumnName_EndTime'),\r\n AreaCode: i18n.getString('ColumnName_AreaCode'),\r\n City: i18n.getString('ColumnName_City'),\r\n StateOrProvince: i18n.getString('ColumnName_StateOrProvince'),\r\n CallStatus: i18n.getString('ColumnName_CallStatus'),\r\n CallDuration: i18n.getString('ColumnName_CallDuration'),\r\n PhoneSpend: i18n.getString('ColumnName_PhoneSpend'),\r\n AdGroupName: i18n.getString('FilterLocalization_DataAttribute_AdGroupName'),\r\n CampaignName: i18n.getString('FilterLocalization_DataAttribute_CampaignName'),\r\n }),\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport labelTemplate from '../shared/label-template.pug';\r\nimport {\r\n toHex,\r\n addCampaignColumn,\r\n} from '../shared/utils';\r\nimport { absoluteTopImpressionRateLabel, topImpressionRateLabel } from '../../shared/columns';\r\n\r\nexport function getAdGroupLabelColumnConfig({\r\n newI18n, i18n, bingadsGridColumn, globalConfig,\r\n}) {\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsManualCpmEnabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n dynamic = {},\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = globalConfig.get('Permissions') || {};\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n\r\n const {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n } = dynamic;\r\n const usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\n function column(options) {\r\n return bingadsGridColumn(_.defaults({}, options, { i18n }));\r\n }\r\n\r\n return {\r\n getLevelOfDetailColumns: () => {\r\n const levelOfDetailColumns = [];\r\n\r\n levelOfDetailColumns.push(column({\r\n name: 'LabelName',\r\n property: {\r\n get(row) {\r\n if (row.RowType === 'AggregatedOthers') {\r\n return {\r\n LabelName: newI18n.getString('Dimension_Unlabeled'),\r\n LabelColor: null,\r\n };\r\n }\r\n return {\r\n LabelName: row.LabelName,\r\n LabelColor: `#${toHex(parseInt(row.LabelColorCode, 10))}`,\r\n };\r\n },\r\n key: 'LabelName,LabelColorCode',\r\n },\r\n title: 'ColumnName_LabelName',\r\n sortable: true,\r\n template: labelTemplate,\r\n type: 'String',\r\n }));\r\n\r\n addCampaignColumn(column, levelOfDetailColumns);\r\n return levelOfDetailColumns;\r\n },\r\n getPerfColumns: () => _.compact([\r\n column({\r\n name: 'Clicks',\r\n title: 'ColumnName_Clicks',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Clicks',\r\n }),\r\n column({\r\n name: 'Impressions',\r\n title: 'ColumnName_Impressions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Impr',\r\n }),\r\n column({\r\n name: 'CTR',\r\n title: 'ColumnName_ClickThruRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_CTR',\r\n }),\r\n column({\r\n name: 'AverageCPC',\r\n title: 'ColumnName_AverageCPC',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPC',\r\n }),\r\n IsManualCpmEnabled && column({\r\n name: 'AverageCPM',\r\n title: 'ColumnName_AverageCPM',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPM',\r\n }),\r\n column({\r\n name: 'Spend',\r\n title: 'ColumnName_Spend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_Spend',\r\n }),\r\n !IsAvgPositionDeprecationPhase2Enabled && column({\r\n name: 'AveragePosition',\r\n title: 'ColumnName_AveragePosition',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgPosition',\r\n }),\r\n IsAvgPositionDeprecationPhase1Enabled && column(topImpressionRateLabel),\r\n IsAvgPositionDeprecationPhase1Enabled && column(absoluteTopImpressionRateLabel),\r\n ]),\r\n getConversionColumns: () => {\r\n let conversionColumns = [\r\n usePartialConversions ? column({\r\n name: 'PartialConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }) : column({\r\n name: 'ConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ConversionsCredit',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }) : column({\r\n name: 'Conversions',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionCPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }) : column({\r\n name: 'CPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }),\r\n ];\r\n if (IsViewThroughConversionEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughConversionsCredit',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'decimal',\r\n }) : column({\r\n name: 'ViewThroughConversions',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'integer',\r\n }),\r\n ]);\r\n }\r\n if (IsViewThroughConversionsRevenueEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n column({\r\n name: 'ViewThroughConversionsRevenue',\r\n title: 'ColumnName_ViewThroughConversionsRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRevenue',\r\n format: 'decimal',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }) : column({\r\n name: 'ViewThroughConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }),\r\n column({\r\n name: 'ViewThroughConversionsReturnOnAdSpend',\r\n title: 'ColumnName_ViewThroughConversionsReturnOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvReturnOnAdSpend',\r\n format: 'percentage-value',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }) : column({\r\n name: 'ViewThroughConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }),\r\n ]);\r\n }\r\n return conversionColumns;\r\n },\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { columnConfigToColumnChooserConfig, isConversionsColumnAllowed } from '../../column-config-to-chooser-config';\r\nimport { getCampaignLabelColumnConfig } from './campaign-grid-column-config';\r\nimport { Constants } from '../../constants';\r\n\r\nexport function getCampaignLabelsGridConfig({\r\n i18n,\r\n newI18n,\r\n jsDataCampaign,\r\n edm,\r\n LabelCampaignSchema,\r\n getCurrentLevel,\r\n globalConfig,\r\n deleteSchema,\r\n bingadsGridColumn,\r\n gridType,\r\n isForVNext,\r\n}) {\r\n const campaignLabelColumnConfig = getCampaignLabelColumnConfig({\r\n i18n,\r\n bingadsGridColumn,\r\n globalConfig,\r\n newI18n,\r\n });\r\n\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = globalConfig.get('Permissions') || {};\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n\r\n const level = getCurrentLevel();\r\n return {\r\n getColumns: () => campaignLabelColumnConfig.getLevelOfDetailColumns()\r\n .concat(campaignLabelColumnConfig.getPerfColumns())\r\n .concat(campaignLabelColumnConfig.getConversionColumns()),\r\n getColumnChooserConfiguration: () => {\r\n const lockedColumns = ['LabelName'];\r\n\r\n const columnChooserConfig = {\r\n categories: [{\r\n name: i18n.getString('LevelOfDetail'),\r\n options: columnConfigToColumnChooserConfig(\r\n campaignLabelColumnConfig.getLevelOfDetailColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Performance'),\r\n options: columnConfigToColumnChooserConfig(\r\n campaignLabelColumnConfig.getPerfColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Conversions'),\r\n options: columnConfigToColumnChooserConfig(\r\n _.filter(\r\n campaignLabelColumnConfig.getConversionColumns(),\r\n ({ name }) => isConversionsColumnAllowed({\r\n name,\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n })\r\n ),\r\n lockedColumns\r\n ),\r\n }],\r\n selected: lockedColumns.concat(_.compact([\r\n IsAvgPositionDeprecationPhase1Enabled && 'TopImpressionRate',\r\n IsAvgPositionDeprecationPhase1Enabled && 'AbsoluteTopImpressionRate',\r\n ])),\r\n mandatory: [],\r\n patchQuery: true,\r\n isForVNext,\r\n };\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n return columnChooserConfig;\r\n },\r\n\r\n getEntity: () => jsDataCampaign.Time,\r\n\r\n getEntitySet: () => _.result(edm.currentAccount, 'Time'),\r\n\r\n getSchema: () => {\r\n const columns = ['CampaignName', 'AdGroupName'];\r\n\r\n deleteSchema(columns, LabelCampaignSchema);\r\n\r\n if (level === Constants.AccountLevel) {\r\n LabelCampaignSchema.properties.CampaignName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n LabelCampaignSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n } else if (level === Constants.CampaignLevel) {\r\n LabelCampaignSchema.properties.AdGroupName = { // eslint-disable-line no-param-reassign\r\n type: 'string',\r\n filterable: true,\r\n nullable: true,\r\n };\r\n }\r\n\r\n return LabelCampaignSchema;\r\n },\r\n getReportName: () => 'CampaignLabelReport',\r\n getReportSchema() {\r\n return _.defaults({\r\n name: this.getReportName(gridType),\r\n }, this.getSchema(gridType));\r\n },\r\n modifyFilter: filters => filters,\r\n getRewriteMap: () => ({\r\n StartTime: i18n.getString('ColumnName_StartTime'),\r\n EndTime: i18n.getString('ColumnName_EndTime'),\r\n AreaCode: i18n.getString('ColumnName_AreaCode'),\r\n City: i18n.getString('ColumnName_City'),\r\n StateOrProvince: i18n.getString('ColumnName_StateOrProvince'),\r\n CallStatus: i18n.getString('ColumnName_CallStatus'),\r\n CallDuration: i18n.getString('ColumnName_CallDuration'),\r\n PhoneSpend: i18n.getString('ColumnName_PhoneSpend'),\r\n AdGroupName: i18n.getString('FilterLocalization_DataAttribute_AdGroupName'),\r\n CampaignName: i18n.getString('FilterLocalization_DataAttribute_CampaignName'),\r\n }),\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport labelTemplate from '../shared/label-template.pug';\r\nimport {\r\n toHex,\r\n} from '../shared/utils';\r\nimport { absoluteTopImpressionRateLabel, topImpressionRateLabel } from '../../shared/columns';\r\n\r\nexport function getCampaignLabelColumnConfig({\r\n newI18n, i18n, bingadsGridColumn, globalConfig,\r\n}) {\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsManualCpmEnabled,\r\n dynamic = {},\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = globalConfig.get('Permissions') || {};\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n\r\n const {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n } = dynamic;\r\n const usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\n function column(options) {\r\n return bingadsGridColumn(_.defaults({}, options, { i18n }));\r\n }\r\n\r\n return {\r\n getLevelOfDetailColumns: () => {\r\n const levelOfDetailColumns = [];\r\n\r\n levelOfDetailColumns.push(column({\r\n name: 'LabelName',\r\n property: {\r\n get(row) {\r\n if (row.RowType === 'AggregatedOthers') {\r\n return {\r\n LabelName: newI18n.getString('Dimension_Unlabeled'),\r\n LabelColor: null,\r\n };\r\n }\r\n return {\r\n LabelName: row.LabelName,\r\n LabelColor: `#${toHex(parseInt(row.LabelColorCode, 10))}`,\r\n };\r\n },\r\n key: 'LabelName,LabelColorCode',\r\n },\r\n title: 'ColumnName_LabelName',\r\n sortable: true,\r\n template: labelTemplate,\r\n type: 'String',\r\n }));\r\n\r\n return levelOfDetailColumns;\r\n },\r\n getPerfColumns: () => _.compact([\r\n column({\r\n name: 'Clicks',\r\n title: 'ColumnName_Clicks',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Clicks',\r\n }),\r\n column({\r\n name: 'Impressions',\r\n title: 'ColumnName_Impressions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Impr',\r\n }),\r\n column({\r\n name: 'CTR',\r\n title: 'ColumnName_ClickThruRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_CTR',\r\n }),\r\n column({\r\n name: 'AverageCPC',\r\n title: 'ColumnName_AverageCPC',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPC',\r\n }),\r\n IsManualCpmEnabled && column({\r\n name: 'AverageCPM',\r\n title: 'ColumnName_AverageCPM',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPM',\r\n }),\r\n column({\r\n name: 'Spend',\r\n title: 'ColumnName_Spend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_Spend',\r\n }),\r\n !IsAvgPositionDeprecationPhase2Enabled && column({\r\n name: 'AveragePosition',\r\n title: 'ColumnName_AveragePosition',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgPosition',\r\n }),\r\n IsAvgPositionDeprecationPhase1Enabled && column(topImpressionRateLabel),\r\n IsAvgPositionDeprecationPhase1Enabled && column(absoluteTopImpressionRateLabel),\r\n ]),\r\n getConversionColumns: () => {\r\n let conversionColumns = [\r\n usePartialConversions ? column({\r\n name: 'PartialConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }) : column({\r\n name: 'ConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ConversionsCredit',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }) : column({\r\n name: 'Conversions',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionCPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }) : column({\r\n name: 'CPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }),\r\n ];\r\n if (IsViewThroughConversionEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughConversionsCredit',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'decimal',\r\n }) : column({\r\n name: 'ViewThroughConversions',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'integer',\r\n }),\r\n ]);\r\n }\r\n if (IsViewThroughConversionsRevenueEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n column({\r\n name: 'ViewThroughConversionsRevenue',\r\n title: 'ColumnName_ViewThroughConversionsRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRevenue',\r\n format: 'decimal',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }) : column({\r\n name: 'ViewThroughConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }),\r\n column({\r\n name: 'ViewThroughConversionsReturnOnAdSpend',\r\n title: 'ColumnName_ViewThroughConversionsReturnOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvReturnOnAdSpend',\r\n format: 'percentage-value',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }) : column({\r\n name: 'ViewThroughConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }),\r\n ]);\r\n }\r\n return conversionColumns;\r\n },\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { columnConfigToColumnChooserConfig, isConversionsColumnAllowed } from '../../column-config-to-chooser-config';\r\nimport { getAccountLabelColumnConfig } from './account-grid-column-config';\r\n\r\nexport function getAccountLabelsGridConfig({\r\n i18n,\r\n newI18n,\r\n jsDataCampaign,\r\n edm,\r\n LabelAccountSchema,\r\n globalConfig,\r\n deleteSchema,\r\n bingadsGridColumn,\r\n gridType,\r\n isForVNext,\r\n}) {\r\n const accountLabelColumnConfig = getAccountLabelColumnConfig({\r\n i18n,\r\n bingadsGridColumn,\r\n globalConfig,\r\n newI18n,\r\n });\r\n\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n } = globalConfig.get('Permissions') || {};\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n\r\n return {\r\n getColumns: () => accountLabelColumnConfig.getLevelOfDetailColumns()\r\n .concat(accountLabelColumnConfig.getPerfColumns())\r\n .concat(accountLabelColumnConfig.getConversionColumns()),\r\n getColumnChooserConfiguration: () => {\r\n const lockedColumns = ['LabelName'];\r\n\r\n const columnChooserConfig = {\r\n categories: [{\r\n name: i18n.getString('LevelOfDetail'),\r\n options: columnConfigToColumnChooserConfig(\r\n accountLabelColumnConfig.getLevelOfDetailColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Performance'),\r\n options: columnConfigToColumnChooserConfig(\r\n accountLabelColumnConfig.getPerfColumns(),\r\n lockedColumns\r\n ),\r\n }, {\r\n name: i18n.getString('Conversions'),\r\n options: columnConfigToColumnChooserConfig(\r\n _.filter(\r\n accountLabelColumnConfig.getConversionColumns(),\r\n ({ name }) => isConversionsColumnAllowed({\r\n name,\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n })\r\n ),\r\n lockedColumns\r\n ),\r\n }],\r\n selected: lockedColumns.concat(_.compact([\r\n IsAvgPositionDeprecationPhase1Enabled && 'TopImpressionRate',\r\n IsAvgPositionDeprecationPhase1Enabled && 'AbsoluteTopImpressionRate',\r\n ])),\r\n mandatory: [],\r\n patchQuery: true,\r\n isForVNext,\r\n };\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n return columnChooserConfig;\r\n },\r\n\r\n getEntity: () => jsDataCampaign.Time,\r\n\r\n getEntitySet: () => _.result(edm.currentCustomer, 'Time'),\r\n\r\n getSchema: () => {\r\n const columns = ['CampaignName', 'AdGroupName'];\r\n\r\n deleteSchema(columns, LabelAccountSchema);\r\n\r\n return LabelAccountSchema;\r\n },\r\n getReportName: () => 'AccountLabelMccReport',\r\n getReportSchema() {\r\n return _.defaults({\r\n name: this.getReportName(gridType),\r\n }, this.getSchema(gridType));\r\n },\r\n modifyFilter: filters => filters,\r\n getRewriteMap: () => ({\r\n StartTime: i18n.getString('ColumnName_StartTime'),\r\n EndTime: i18n.getString('ColumnName_EndTime'),\r\n AreaCode: i18n.getString('ColumnName_AreaCode'),\r\n City: i18n.getString('ColumnName_City'),\r\n StateOrProvince: i18n.getString('ColumnName_StateOrProvince'),\r\n CallStatus: i18n.getString('ColumnName_CallStatus'),\r\n CallDuration: i18n.getString('ColumnName_CallDuration'),\r\n PhoneSpend: i18n.getString('ColumnName_PhoneSpend'),\r\n AdGroupName: i18n.getString('FilterLocalization_DataAttribute_AdGroupName'),\r\n CampaignName: i18n.getString('FilterLocalization_DataAttribute_CampaignName'),\r\n }),\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport labelTemplate from '../shared/label-template.pug';\r\nimport {\r\n toHex,\r\n} from '../shared/utils';\r\nimport { absoluteTopImpressionRateLabel, topImpressionRateLabel } from '../../shared/columns';\r\n\r\nexport function getAccountLabelColumnConfig({\r\n newI18n, i18n, bingadsGridColumn, globalConfig,\r\n}) {\r\n const {\r\n IsViewThroughConversionEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsManualCpmEnabled,\r\n // IsViewThroughConversionsRevenueEnabled,\r\n dynamic = {},\r\n } = globalConfig.get('Permissions') || {};\r\n // (youngim) MT bug needs to be fixed for dimensinos\r\n const IsViewThroughConversionsRevenueEnabled = false;\r\n const {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n } = dynamic;\r\n const usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\n function column(options) {\r\n return bingadsGridColumn(_.defaults({}, options, { i18n }));\r\n }\r\n\r\n return {\r\n getLevelOfDetailColumns: () => {\r\n const levelOfDetailColumns = [];\r\n\r\n levelOfDetailColumns.push(column({\r\n name: 'LabelName',\r\n property: {\r\n get(row) {\r\n if (row.RowType === 'AggregatedOthers') {\r\n return {\r\n LabelName: newI18n.getString('Dimension_Unlabeled'),\r\n LabelColor: null,\r\n };\r\n }\r\n return {\r\n LabelName: row.LabelName,\r\n LabelColor: `#${toHex(parseInt(row.LabelColorCode, 10))}`,\r\n };\r\n },\r\n key: 'LabelName,LabelColorCode',\r\n },\r\n title: 'ColumnName_LabelName',\r\n sortable: true,\r\n template: labelTemplate,\r\n type: 'String',\r\n }));\r\n\r\n return levelOfDetailColumns;\r\n },\r\n getPerfColumns: () => _.compact([\r\n column({\r\n name: 'Clicks',\r\n title: 'ColumnName_Clicks',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Clicks',\r\n }),\r\n column({\r\n name: 'Impressions',\r\n title: 'ColumnName_Impressions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Impr',\r\n }),\r\n column({\r\n name: 'CTR',\r\n title: 'ColumnName_ClickThruRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_CTR',\r\n }),\r\n column({\r\n name: 'AverageCPC',\r\n title: 'ColumnName_AverageCPC',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPC',\r\n }),\r\n IsManualCpmEnabled && column({\r\n name: 'AverageCPM',\r\n title: 'ColumnName_AverageCPM',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgCPM',\r\n }),\r\n column({\r\n name: 'Spend',\r\n title: 'ColumnName_Spend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_Spend',\r\n }),\r\n !IsAvgPositionDeprecationPhase2Enabled && column({\r\n name: 'AveragePosition',\r\n title: 'ColumnName_AveragePosition',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_AvgPosition',\r\n }),\r\n IsAvgPositionDeprecationPhase1Enabled && column(topImpressionRateLabel),\r\n IsAvgPositionDeprecationPhase1Enabled && column(absoluteTopImpressionRateLabel),\r\n ]),\r\n getConversionColumns: () => {\r\n let conversionColumns = [\r\n usePartialConversions ? column({\r\n name: 'PartialConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }) : column({\r\n name: 'ConversionRate',\r\n title: 'ColumnName_ConversionRate',\r\n sortable: true,\r\n type: 'number',\r\n format: 'percentage-value',\r\n helpId: 'pop_BA_CampaignGrids_ConvRate',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ConversionsCredit',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }) : column({\r\n name: 'Conversions',\r\n title: 'ColumnName_Conversions',\r\n sortable: true,\r\n type: 'number',\r\n format: 'integer',\r\n helpId: 'pop_BA_CampaignGrids_Conv',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'PartialConversionCPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }) : column({\r\n name: 'CPA',\r\n title: 'ColumnName_CPA',\r\n sortable: true,\r\n type: 'number',\r\n format: 'decimal',\r\n helpId: 'Page_Reporting_Clarity_CPA',\r\n }),\r\n ];\r\n if (IsViewThroughConversionEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughConversionsCredit',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'decimal',\r\n }) : column({\r\n name: 'ViewThroughConversions',\r\n title: 'ColumnName_ViewThroughConversions',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_CampaignGrids_ViewThrough',\r\n format: 'integer',\r\n }),\r\n ]);\r\n }\r\n if (IsViewThroughConversionsRevenueEnabled) {\r\n conversionColumns = conversionColumns.concat([\r\n column({\r\n name: 'ViewThroughConversionsRevenue',\r\n title: 'ColumnName_ViewThroughConversionsRevenue',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRevenue',\r\n format: 'decimal',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }) : column({\r\n name: 'ViewThroughConversionsCPA',\r\n title: 'ColumnName_ViewThroughConversionsCPA',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n format: 'decimal',\r\n }),\r\n column({\r\n name: 'ViewThroughConversionsReturnOnAdSpend',\r\n title: 'ColumnName_ViewThroughConversionsReturnOnAdSpend',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvReturnOnAdSpend',\r\n format: 'percentage-value',\r\n }),\r\n usePartialConversions ?\r\n column({\r\n name: 'ViewThroughPartialConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }) : column({\r\n name: 'ViewThroughConversionsRate',\r\n title: 'ColumnName_ViewThroughConversionsRate',\r\n sortable: true,\r\n type: 'number',\r\n helpId: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n format: 'percentage-value',\r\n }),\r\n ]);\r\n }\r\n return conversionColumns;\r\n },\r\n };\r\n}\r\n","import { defaults } from 'underscore';\r\nimport Promise from 'bluebird';\r\n\r\nimport { getAgeGenderGridConfig } from './ageGender/ageGender-grid-config';\r\nimport { getCallForwardingGridConfig } from './callforwarding/callforwarding-grid-config';\r\nimport { getGeographicGridConfig } from './geographic/geographic-grid-config';\r\nimport { getLandingGridConfig } from './landing/landing-grid-config';\r\nimport { getPublisherGridConfig } from './publisher/publisher-grid-config';\r\nimport { getSearchTermGridConfig } from './searchterm/searchterm-grid-config';\r\nimport { getShoppingGridConfig } from './shopping/shopping-grid-config';\r\nimport { getTimeGridConfig } from './time/time-grid-config';\r\nimport { getKeywordsLabelGridConfig } from './labels/keyword/keyword-label-grid-config';\r\nimport { getAdLabelsGridConfig } from './labels/ad/ad-label-grid-config';\r\nimport { getAdGroupLabelsGridConfig } from './labels/ad-group/ad-group-label-grid-config';\r\nimport { getCampaignLabelsGridConfig } from './labels/campaign/campaign-label-grid-config';\r\nimport { getAccountLabelsGridConfig } from './labels/account/account-label-grid-config';\r\nimport { Constants } from './constants';\r\n\r\nfunction getDimensionsGridConfig({\r\n gridType,\r\n legacyDeps,\r\n newI18n,\r\n schemaLoaders,\r\n useAsyncSchemaLoaders = true,\r\n entitySchemas = {},\r\n isForVNext = false,\r\n}) {\r\n switch (gridType) {\r\n case Constants.Time:\r\n case Constants.TimeHour:\r\n case Constants.TimeDay:\r\n case Constants.TimeDate:\r\n case Constants.TimeWeek:\r\n case Constants.TimeMonth:\r\n case Constants.TimeQuarter:\r\n case Constants.TimeYear:\r\n if (useAsyncSchemaLoaders) {\r\n return schemaLoaders.getTimeSchema().then(timeSchema => (\r\n getTimeGridConfig(defaults({}, { timeSchema, gridType, isForVNext }, legacyDeps))\r\n ));\r\n }\r\n return getTimeGridConfig(defaults({}, {\r\n timeSchema: entitySchemas.Time,\r\n gridType,\r\n isForVNext,\r\n }, legacyDeps));\r\n case Constants.SearchQuery:\r\n if (useAsyncSchemaLoaders) {\r\n return schemaLoaders.getSearchTermSchema().then(searchTermSchema => (\r\n getSearchTermGridConfig(defaults({}, {\r\n searchTermSchema, gridType, isForVNext,\r\n }, legacyDeps))\r\n ));\r\n }\r\n return getSearchTermGridConfig(defaults({}, {\r\n searchTermSchema: entitySchemas.SearchTerm, gridType, isForVNext,\r\n }, legacyDeps));\r\n case Constants.Shopping:\r\n case Constants.ShoppingCategory:\r\n case Constants.ShoppingProductType:\r\n case Constants.ShoppingBrand:\r\n case Constants.ShoppingItem:\r\n case Constants.ShoppingStore:\r\n if (useAsyncSchemaLoaders) {\r\n return schemaLoaders.getShoppingSchema().then(shoppingSchema => (\r\n getShoppingGridConfig(defaults({}, { shoppingSchema, gridType, isForVNext }, legacyDeps))\r\n ));\r\n }\r\n return getShoppingGridConfig(defaults({}, {\r\n shoppingSchema: entitySchemas.Shopping, gridType, isForVNext,\r\n }, legacyDeps));\r\n case Constants.Publisher:\r\n if (useAsyncSchemaLoaders) {\r\n return schemaLoaders.getPublisherSchema().then(publisherSchema => (\r\n getPublisherGridConfig(defaults({}, {\r\n publisherSchema, gridType, isForVNext,\r\n }, legacyDeps))\r\n ));\r\n }\r\n return getPublisherGridConfig(defaults({}, {\r\n publisherSchema: entitySchemas.Publisher, gridType, isForVNext,\r\n }, legacyDeps));\r\n case Constants.LandingPage:\r\n case Constants.WebsiteURL:\r\n if (useAsyncSchemaLoaders) {\r\n return schemaLoaders.getLandingSchema().then(landingSchema => (\r\n getLandingGridConfig(defaults({}, { landingSchema, gridType, isForVNext }, legacyDeps))\r\n ));\r\n }\r\n return getLandingGridConfig(defaults({}, {\r\n landingSchema: entitySchemas.Landing, gridType, isForVNext,\r\n }, legacyDeps));\r\n case Constants.Geographic:\r\n case Constants.UserLocation:\r\n if (useAsyncSchemaLoaders) {\r\n return Promise.props({\r\n geographicSchema: schemaLoaders.getGeographicSchema(),\r\n locationSchema: schemaLoaders.getLocationSchema(),\r\n }).then(({ geographicSchema, locationSchema }) => (\r\n getGeographicGridConfig(defaults({}, {\r\n geographicSchema,\r\n locationSchema,\r\n gridType,\r\n isForVNext,\r\n }, legacyDeps))\r\n ));\r\n }\r\n return getGeographicGridConfig(defaults({}, {\r\n geographicSchema: entitySchemas.Geographic,\r\n locationSchema: entitySchemas.Location,\r\n gridType,\r\n isForVNext,\r\n }, legacyDeps));\r\n case Constants.CallDetails:\r\n if (useAsyncSchemaLoaders) {\r\n return schemaLoaders.getCallForwardingSchema().then(callForwardingSchema => (\r\n getCallForwardingGridConfig(defaults({}, {\r\n callForwardingSchema, gridType, isForVNext,\r\n }, legacyDeps))\r\n ));\r\n }\r\n return getCallForwardingGridConfig(defaults({}, {\r\n callForwardingSchema: entitySchemas.CallForwarding, gridType, isForVNext,\r\n }, legacyDeps));\r\n case Constants.AgeGender:\r\n if (useAsyncSchemaLoaders) {\r\n return schemaLoaders.getAgeSchema().then(ageSchema => (\r\n getAgeGenderGridConfig(defaults({}, { ageSchema, gridType, isForVNext }, legacyDeps))\r\n ));\r\n }\r\n return getAgeGenderGridConfig(defaults({}, {\r\n ageSchema: entitySchemas.Age, gridType, isForVNext,\r\n }, legacyDeps));\r\n case Constants.LabelKeyword:\r\n if (useAsyncSchemaLoaders) {\r\n return schemaLoaders.getKeywordsLabelSchema().then(labelKeywordsSchema => (\r\n getKeywordsLabelGridConfig(defaults(\r\n {},\r\n {\r\n labelKeywordsSchema, gridType, isForVNext, newI18n,\r\n }, legacyDeps\r\n ))\r\n ));\r\n }\r\n return getKeywordsLabelGridConfig(defaults(\r\n {},\r\n {\r\n labelKeywordsSchema: entitySchemas.LabelKeyword, gridType, isForVNext, newI18n,\r\n }, legacyDeps\r\n ));\r\n case Constants.LabelAd:\r\n if (useAsyncSchemaLoaders) {\r\n return schemaLoaders.getAdLabelSchema().then(LabelAdSchema => (\r\n getAdLabelsGridConfig(defaults(\r\n {},\r\n {\r\n LabelAdSchema, gridType, isForVNext, newI18n,\r\n }, legacyDeps\r\n ))\r\n ));\r\n }\r\n return getAdLabelsGridConfig(defaults(\r\n {},\r\n {\r\n LabelAdSchema: entitySchemas.LabelAd, gridType, isForVNext, newI18n,\r\n }, legacyDeps\r\n ));\r\n case Constants.LabelAdgroup:\r\n if (useAsyncSchemaLoaders) {\r\n return schemaLoaders.getAdGroupLabelSchema().then(LabelAdGroupSchema => (\r\n getAdGroupLabelsGridConfig(defaults(\r\n {},\r\n {\r\n LabelAdGroupSchema, gridType, isForVNext, newI18n,\r\n }, legacyDeps\r\n ))\r\n ));\r\n }\r\n return getAdGroupLabelsGridConfig(defaults(\r\n {},\r\n {\r\n LabelAdGroupSchema: entitySchemas.LabelAdGroup, gridType, isForVNext, newI18n,\r\n }, legacyDeps\r\n ));\r\n case Constants.LabelCampaign:\r\n if (useAsyncSchemaLoaders) {\r\n return schemaLoaders.getCampaignLabelSchema().then(LabelCampaignSchema => (\r\n getCampaignLabelsGridConfig(defaults(\r\n {},\r\n {\r\n LabelCampaignSchema, gridType, isForVNext, newI18n,\r\n }, legacyDeps\r\n ))\r\n ));\r\n }\r\n return getCampaignLabelsGridConfig(defaults(\r\n {},\r\n {\r\n LabelCampaignSchema: entitySchemas.LabelCampaign, gridType, isForVNext, newI18n,\r\n }, legacyDeps\r\n ));\r\n case Constants.LabelAccount:\r\n if (useAsyncSchemaLoaders) {\r\n return schemaLoaders.getAccountLabelSchema().then(LabelAccountSchema => (\r\n getAccountLabelsGridConfig(defaults(\r\n {},\r\n {\r\n LabelAccountSchema, gridType, isForVNext, newI18n,\r\n }, legacyDeps\r\n ))\r\n ));\r\n }\r\n return getAccountLabelsGridConfig(defaults(\r\n {},\r\n {\r\n LabelAccountSchema: entitySchemas.LabelAccount, gridType, isForVNext, newI18n,\r\n }, legacyDeps\r\n ));\r\n default:\r\n return Promise.resolve({});\r\n }\r\n}\r\n\r\nexport { Constants, getDimensionsGridConfig };\r\n","import { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\n\r\nimport pkg from './package.json';\r\n\r\nexport function getNegativeKeywordsListsGridFactory(initializeGlobalContext = true) {\r\n if (initializeGlobalContext) {\r\n return globalContext.define(\r\n pkg.legacyDependencies,\r\n Promise => import(/* webpackMode: 'eager' */ './src/factory') // eslint-disable-line no-unused-vars\r\n );\r\n }\r\n return import(/* webpackMode: 'eager' */ './src/factory'); // eslint-disable-line no-unused-vars\r\n}\r\n","import { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { pgridFactory } from '@bingads-webui-campaign/pgrid-factory';\r\nimport { updateGridQuery } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { merge } from '@bingads-webui-universal/primitive-utilities';\r\n\r\nconst { handleSortChange } = globalContext.require('campaignui/feature/bingadsgrid/service/state-manager-helper');\r\n\r\nexport class NegativeKeywordListGrid extends DeterministicWrapperView {\r\n viewFactory({\r\n scope,\r\n i18n,\r\n filterService,\r\n preferenceConfig,\r\n getGridConfig,\r\n setupDataSourceErrorHandling,\r\n getPlugins,\r\n isForVNext,\r\n }) {\r\n this.scope = scope;\r\n this.i18n = i18n;\r\n this.filterService = filterService;\r\n\r\n setupDataSourceErrorHandling(this);\r\n\r\n const gridConfig = merge(getGridConfig(this), preferenceConfig);\r\n\r\n this.grid = pgridFactory({\r\n gridConfig,\r\n plugins: getPlugins(this),\r\n preferenceConfig,\r\n });\r\n\r\n if (isForVNext) {\r\n this.filterService.on('filter-state-changed', () => {\r\n updateGridQuery(\r\n this.grid.gridView,\r\n this.filterService.getCombinedFilter(), true\r\n );\r\n });\r\n }\r\n\r\n this.grid.gridView.on('willUpdate', (changes) => {\r\n // a preference patch is sent while grid is being loaded\r\n // to avoid that only handle sort change when the grid is ready\r\n const { _isRendered } = this.grid.gridView;\r\n if (_isRendered) {\r\n handleSortChange(changes, this.grid.gridView, gridConfig.name);\r\n }\r\n });\r\n\r\n return this.grid.gridView;\r\n }\r\n get className() { return 'negative-keywords-lists-grid'; }\r\n\r\n renderTrunk() {\r\n if (this.isForVNext) {\r\n this.filterService.refreshSource();\r\n this.filterService.initializeCombinedFilterPromise.then(() => {\r\n updateGridQuery(\r\n this.grid.gridView,\r\n this.filterService.getCombinedFilter(), true\r\n );\r\n });\r\n }\r\n super.renderTrunk();\r\n }\r\n\r\n remove() {\r\n this.gridRemoved = true;\r\n return super.remove();\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\n\r\nexport class CampaignColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n name: 'Campaign',\r\n property: 'EntityName',\r\n title: i18n.getString('ColumnName_Campaign'),\r\n sortable: 'EntityName',\r\n type: 'string',\r\n bodyClasses: ['grid-column-Campaign'],\r\n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport clickableValueTemplate from './clickable-value.pug';\r\n\r\nexport class ListNameColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, scope }) {\r\n super({\r\n name: 'Name',\r\n property: ['SharedEntityName', 'SharedEntityId'],\r\n title: i18n.getString('ColumnName_NegativeKeywordList_Name'),\r\n sortable: 'SharedEntityName',\r\n type: 'string',\r\n bodyClasses: ['grid-column-negative-keyword-list-name'],\r\n });\r\n\r\n this.scope = scope;\r\n this.i18n = i18n;\r\n }\r\n\r\n pickProperty({ SharedEntityId, SharedEntityName }) {\r\n const { customerId: cid, accountId: aid } = this.scope;\r\n\r\n return {\r\n name: SharedEntityName,\r\n nkl: SharedEntityId,\r\n cid,\r\n aid,\r\n pathname: '/campaign/vnext/negativekeywordslistsdetails/negativekeywords',\r\n href: `/campaign/vnext/negativekeywordslistsdetails/negativekeywords?cid=${cid}&aid=${aid}&nkl=${SharedEntityId}`,\r\n customparams: `nkl=${SharedEntityId}`,\r\n ariaLabel: this.i18n.getString('Click to open negative keywords list {{nklName}}', { nklName: SharedEntityName }),\r\n };\r\n }\r\n\r\n get template() { return clickableValueTemplate; }\r\n}\r\n","import _ from 'underscore';\r\n\r\nimport { ColumnsConfigBuilder } from '@bingads-webui-campaign/summary-grid-helper';\r\n\r\nimport { CampaignColumn } from './attributes/campaign';\r\nimport { ListNameColumn } from './attributes/list-name';\r\n\r\nexport function getColumnsConfig({ options }) {\r\n let builder;\r\n const { scope: { campaignId } } = options;\r\n\r\n if (campaignId) {\r\n builder = new ColumnsConfigBuilder()\r\n .addCategory('Attribute', category => category.addColumns(_.compact([\r\n ListNameColumn,\r\n ])));\r\n } else {\r\n builder = new ColumnsConfigBuilder()\r\n .addCategory('Attribute', category => category.addColumns(_.compact([\r\n CampaignColumn,\r\n ListNameColumn,\r\n ])));\r\n }\r\n return builder.getColumnsConfig(options);\r\n}\r\n\r\n","import $ from 'jquery';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { helpers } from '@bingads-webui/projection-grid-toolbar';\r\nimport { sortableHeaderTemplate } from '@bingads-webui-campaign/summary-grid-helper';\r\n\r\nimport { getColumnsConfig } from './columns/index';\r\n\r\nconst stateManager = globalContext.require('StateManager/CampaignStateManager');\r\nconst preferenceService = globalContext.requireDefault('component/preference/service/index');\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/keywords-tab');\r\n\r\nconst { singleToolbarHeadRows } = helpers;\r\n\r\nexport function getConfig({\r\n dataSource,\r\n scope,\r\n gridView,\r\n customHeaderOffset,\r\n filterService,\r\n isForVNext,\r\n viewport,\r\n}) {\r\n const tableName = i18n.getString('SharedLibrary_NegativeKeyword_Subtab');\r\n\r\n return {\r\n name: 'summary_tab_negative_keyword_list',\r\n legacyGridName: 'NegativeKeywordLibraryCampaignAssociationsGrid',\r\n tableClasses: ['table', 'table-bordered'],\r\n tableAttributes: { 'aria-label': tableName },\r\n dataSource,\r\n selection: true,\r\n rows: {\r\n headRows:\r\n isForVNext\r\n ? [\r\n 'column-header-rows',\r\n ]\r\n : singleToolbarHeadRows(),\r\n },\r\n columns: getColumnsConfig({\r\n options: {\r\n i18n,\r\n scope,\r\n gridView,\r\n isForVNext,\r\n },\r\n }),\r\n scrolling: {\r\n header: {\r\n type: 'sticky',\r\n offset: customHeaderOffset || (() => $('.sticky-container').height()),\r\n attributes: { 'aria-label': i18n.getString('{{tableName}} table header', { tableName }) },\r\n },\r\n virtualized: true,\r\n viewport,\r\n },\r\n filterService,\r\n stateManager,\r\n preferenceService,\r\n config: appConfig,\r\n sortableHeader: {\r\n template: sortableHeaderTemplate,\r\n },\r\n i18n,\r\n };\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { paginationPlugin } from '@bingads-webui/projection-grid-pagination';\r\nimport { editablePlugin } from '@bingads-webui-campaign/projection-grid-editable';\r\nimport { jsdataRawDataPlugin } from '@bingads-webui-campaign/pgrid-js-data-raw-data';\r\nimport { inlineErrorPlugin } from '@bingads-webui/projection-grid-inline-error';\r\nimport { uiBlockerPlugin } from '@bingads-webui/projection-grid-uiblocker';\r\nimport { performanceLogPlugin, perfMarkerPlugin } from '@bingads-webui-campaign/pgrid-performance-log';\r\nimport { a11yPlugin } from '@bingads-webui/projection-grid-a11y';\r\nimport { assistedSelectionPlugin } from '@bingads-webui/projection-grid-assisted-selection';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { getPGridColumnResizePlugin } from '@bingads-webui-campaign/projection-grid-column-resize-helper';\r\n\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/keywords-tab');\r\nconst appState = globalContext.require('component/state/index');\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst logger = globalContext.require('module/service/instrumentation/index');\r\nconst permissions = appConfig.get('Permissions');\r\nconst preferenceService = globalContext.requireDefault('component/preference/service/index');\r\n\r\nexport function getPlugins({\r\n isForVNext,\r\n perfMarker,\r\n}) {\r\n appState.unset('$ReportEmailRule');\r\n\r\n return _.compact([{\r\n // For accurate grid init latency, PerfMarkerPlugin should be the first plugin to load.\r\n plugin: perfMarkerPlugin,\r\n config: {\r\n appConfig,\r\n marker: perfMarker,\r\n },\r\n }, !appConfig.get('CurrentAccountInActive') && !permissions.IsReadOnlyUser && {\r\n plugin: editablePlugin,\r\n config: { i18n },\r\n }, {\r\n plugin: paginationPlugin,\r\n config: {\r\n availablePageSizes: [20, 50, 100, 200],\r\n enableRandomPage: false,\r\n pageNumberLabelText: isForVNext ? '' : i18n.getString('Grid_Page_Number_Label_Text'),\r\n pageSizeText: i18n.getString('Grid_ShowRows'),\r\n totalPageCountText: i18n.getString('Grid_PageOf'),\r\n },\r\n }, {\r\n plugin: performanceLogPlugin,\r\n config: { appConfig, logger },\r\n }, {\r\n plugin: assistedSelectionPlugin,\r\n }, {\r\n plugin: a11yPlugin,\r\n config: { i18n },\r\n }, {\r\n plugin: jsdataRawDataPlugin,\r\n }, {\r\n plugin: uiBlockerPlugin,\r\n config: { el: $(isForVNext ? '.negative-keywords-lists-page' : '#child-page') },\r\n }, {\r\n plugin: inlineErrorPlugin({\r\n errorIconClasses: ['grid-error'],\r\n }),\r\n },\r\n getPGridColumnResizePlugin({\r\n gridName: 'summary_tab_negative_keyword_list',\r\n preferenceService,\r\n permissions,\r\n }),\r\n ]);\r\n}\r\n","import Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { CampaignSelectorProxy } from '@bingads-webui-campaign-react/campaign-adgroup-selector-control';\r\n\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport template from './create-negative-keywords.pug';\r\n\r\nglobalContext.require('module/app/layout/index'); // eslint-disable-line no-unused-vars\r\nglobalContext.require('component/double-list-box/ko/doubleListBoxBinding'); // eslint-disable-line no-unused-vars\r\nconst help = globalContext.require('component/help/index');\r\nconst jsData = globalContext.require('component/js-data-campaign/index');\r\nconst edm = globalContext.requireDefault('component/edm-campaign/index');\r\nconst campignSelectori18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/campaign-adgroup-selector');\r\nconst appConfig = globalContext.require('component/config/index');\r\n\r\nconst permissions = appConfig.get('Permissions');\r\n\r\n\r\nclass CreateNegativeKeywordAssociationViewModel {\r\n constructor({\r\n gridType,\r\n i18n,\r\n scope,\r\n showSelector,\r\n accountLevel,\r\n }) {\r\n this.fetchListsUrl = `/campaign/NegativeKeywordLibrary/LoadLibrariesByAccount?aid=${$.advertiser.getUrlParameter('aid')}&cid=${$.advertiser.getUrlParameter('cid')}&uid=${$.advertiser.getUrlParameter('uid')}`;\r\n this.selectorControl = ko.observable();\r\n this.selectedCampaignId = ko.observable();\r\n this.selectedAdgroupId = ko.observable();\r\n this.selectorError = ko.observable();\r\n this.selectedLists = ko.observableArray();\r\n this.scope = this.createSelectorScopeObject(scope);\r\n this.showAdgroupSelector = gridType === 'adgroup';\r\n this.showCampaignSelector = !scope.values.campaignId;\r\n this.showSelector = showSelector;\r\n this.accountLevel = accountLevel;\r\n this.selectorLabel = this.showSelector ?\r\n '' :\r\n i18n.getString(_TL_('CampaignAdGroupSelector_SelectCampaign'));\r\n this.showSelectorErrorMessage = ko.observable(true);\r\n this.selectorErrorMessage = ko.observable('');\r\n this.shouldEnableSave = ko.computed(() => this.selectedCampaignId());\r\n this.multiSelectOptions = {\r\n strings: {\r\n sourceItems: i18n.getString('NegativeKeywordList_Association_AvailableLists'),\r\n selectedItems: i18n.getString('NegativeKeywordList_Association_SelectedLists'),\r\n select: i18n.getString('DoubleListBox_Select'),\r\n deselect: i18n.getString('DoubleListBox_DeselectAll'),\r\n filterWatermark: i18n.getString('DoubleListBox_Search'),\r\n },\r\n };\r\n this.$errors = ko.observableArray();\r\n this.multiSelect = false;\r\n this.selectedCampaigns = ko.observable();\r\n this.selectedCampaigns.subscribe((newValue) => {\r\n this.selectedCampaignId(newValue ? newValue.Id : null);\r\n });\r\n this.allLists = _.bind(this.getLists, this);\r\n }\r\n\r\n createSelectorScopeObject(scope) {\r\n const scopeObject = { currentScope: 'account' };\r\n\r\n if (scope.values.adGroupId) {\r\n scopeObject.currentScope = 'adgroup';\r\n scopeObject.adgroup = { Id: scope.values.adGroupId };\r\n }\r\n if (scope.values.campaignId) {\r\n scopeObject.currentScope = 'campaign';\r\n scopeObject.campaign = { Id: scope.values.campaignId };\r\n }\r\n return scopeObject;\r\n }\r\n\r\n getLists = (request, callback) => {\r\n if (!this.cache) {\r\n $.advertiser.ajaxPost({\r\n url: this.fetchListsUrl,\r\n onSuccess: (data) => {\r\n if (data) {\r\n this.cache = { items: data, total: data.length };\r\n callback(null, this.cache);\r\n } else {\r\n this.cache = { items: [], total: 0 };\r\n callback(null, this.cache);\r\n }\r\n },\r\n });\r\n } else {\r\n callback(null, this.cache);\r\n }\r\n };\r\n}\r\n\r\nexport class CreateNegativeKeywordAssocationView extends Backbone.View {\r\n initialize({\r\n gridType, i18n, scope, gridView,\r\n }) {\r\n this.i18n = i18n;\r\n this.gridType = gridType;\r\n this.scope = scope;\r\n this.viewModel = new CreateNegativeKeywordAssociationViewModel({\r\n gridType,\r\n i18n,\r\n scope,\r\n showSelector: true,\r\n accountLevel: true,\r\n });\r\n this.gridView = gridView;\r\n this.$errors = this.viewModel.$errors;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click #btnSave': 'save',\r\n 'click #btnCancel': 'cancel',\r\n };\r\n }\r\n\r\n onCampaignSelect(selectedItem) {\r\n if (_.has(selectedItem, 'Id')) {\r\n this.viewModel.selectedCampaignId(selectedItem);\r\n this.viewModel.selectorError('');\r\n } else {\r\n // eslint-disable-next-line no-console\r\n console.warn('empty selectedItem');\r\n }\r\n }\r\n\r\n\r\n render() {\r\n let selectorView = null;\r\n if (this.viewModel.scope.currentScope === 'account') {\r\n let optionalCampaignFilter = '(CampaignSubType ne Enum.CampaignSubType\\'ShoppingSmartAds\\' and CampaignType ne Enum.CampaignType\\'Audience\\')';\r\n if (permissions.dynamic && permissions.dynamic.HotelCampaign) {\r\n optionalCampaignFilter += 'and (CampaignType ne Enum.CampaignType\\'Hotel\\')';\r\n }\r\n if (permissions.dynamic && permissions.dynamic.AccountNegativeKeywords && !permissions.IsNKWListAssociationAllowed) {\r\n optionalCampaignFilter += 'and (CampaignType ne Enum.CampaignType\\'PerformanceMax\\')';\r\n }\r\n selectorView = new CampaignSelectorProxy({\r\n withUiBlocker: withUiBlock,\r\n jsData,\r\n edmCampaign: edm,\r\n i18n: campignSelectori18n,\r\n optionalCampaignFilter,\r\n }).getCampaignSelectorView().render();\r\n\r\n selectorView.on('selected-adgroup', (selectedItem) => {\r\n this.viewModel.showSelector = false;\r\n this.onAdGroupSelect(selectedItem);\r\n });\r\n selectorView.on('selected-campaign', (selectedItem) => {\r\n this.viewModel.showSelector = false;\r\n this.onCampaignSelect(selectedItem);\r\n });\r\n } else {\r\n this.viewModel.selectedCampaignId(this.viewModel.scope.campaign);\r\n this.viewModel.accountLevel = false;\r\n }\r\n\r\n this.$el.html(template({\r\n i18n: this.i18n,\r\n appendLearnMoreLink: help.appendLearnMoreLink,\r\n $errors: this.viewModel.$errors,\r\n showSelector: this.viewModel.showSelector,\r\n accountLevel: this.viewModel.accountLevel,\r\n customerId: this.scope.values.cid,\r\n userId: this.scope.values.uid,\r\n accountId: this.scope.values.aid,\r\n }));\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n if (this.viewModel.scope.currentScope === 'account') {\r\n this.$('.new-campaign-adgroup-selector').append(selectorView.el);\r\n }\r\n return this;\r\n }\r\n\r\n save() {\r\n const lists = this.viewModel.selectedLists();\r\n const ids = [];\r\n const campaignId = this.viewModel.selectedCampaignId().Id;\r\n\r\n _.each(lists, (item) => {\r\n ids.push(item.Id);\r\n });\r\n\r\n if (ids.length) {\r\n return this.createOnSaveLibraryAssociation({\r\n campaignId,\r\n libraryIds: ids,\r\n successHandler: () => {\r\n this.trigger('save');\r\n this.trigger('addNegativeKeywordsListsComplete');\r\n },\r\n el: this.el,\r\n });\r\n } else if (!ids.length) {\r\n const noListSelectedErr = this.i18n.getString('NegativeKeywordList_Association_NoListSelected');\r\n if (!_.contains(this.viewModel.$errors(), noListSelectedErr)) {\r\n this.viewModel.$errors.push(this.i18n.getString('NegativeKeywordList_Association_NoListSelected'));\r\n }\r\n return null;\r\n }\r\n return null;\r\n }\r\n\r\n findFailedEntries = (data) => {\r\n const failedEntries = [];\r\n\r\n _.each(data, (entry) => {\r\n const { errors } = entry;\r\n\r\n if (errors && errors.length > 0) {\r\n failedEntries.push(entry);\r\n }\r\n });\r\n\r\n return failedEntries.length > 0 ? failedEntries : null;\r\n };\r\n\r\n createOnSaveLibraryAssociation = ({\r\n campaignId, libraryIds, successHandler, el,\r\n }) => {\r\n const data = [];\r\n\r\n _.each(libraryIds, (id) => {\r\n data.push({\r\n SharedEntityId: id,\r\n EntityId: campaignId,\r\n });\r\n });\r\n\r\n return jsData.SharedEntityAssociation.createMany(data, { adapter: 'bulk', cacheResponse: false })\r\n .then(() => {\r\n successHandler();\r\n }).finally(withUiBlock(el));\r\n };\r\n\r\n cancel() {\r\n this.trigger('addNegativeKeywordsListsComplete');\r\n }\r\n\r\n remove() {\r\n ko.cleanNode(this.$el[0]);\r\n this.$el.hide();\r\n super.remove();\r\n }\r\n}\r\n","import { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { setUpErrorHandling } from '@bingads-webui-campaign/summary-grid-helper';\r\n\r\nimport { NegativeKeywordListGrid } from './negative-keyword-list-grid';\r\nimport { getConfig } from './grid-config';\r\nimport { getPlugins } from './plugins';\r\n\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/keywords-tab');\r\n\r\nexport function createNegativeKeywordsListsGrid({\r\n dataSource,\r\n filterService,\r\n getAdditionalPlugins = () => [],\r\n preferenceConfig,\r\n router,\r\n scope,\r\n addDateChangeListener,\r\n p$daterange,\r\n isForVNext = false,\r\n perfMarker,\r\n viewport,\r\n}) {\r\n return new NegativeKeywordListGrid({\r\n isForVNext,\r\n filterService,\r\n i18n,\r\n getGridConfig: view => getConfig({\r\n dataSource,\r\n scope,\r\n view,\r\n filterService,\r\n preferenceConfig,\r\n router,\r\n isForVNext,\r\n viewport,\r\n }),\r\n getPlugins: view => getPlugins({\r\n filterService,\r\n router,\r\n scope,\r\n isForVNext,\r\n addDateChangeListener,\r\n perfMarker,\r\n p$daterange,\r\n }).concat(getAdditionalPlugins(view)),\r\n router,\r\n scope,\r\n setupDataSourceErrorHandling: view => setUpErrorHandling({\r\n gridView: view,\r\n scope,\r\n dataSource,\r\n i18n,\r\n }),\r\n preferenceConfig,\r\n });\r\n}\r\n\r\nexport { CreateNegativeKeywordAssocationView } from './create-association/create-association-view';\r\n","import { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\n\r\nimport pkg from './package.json';\r\n\r\nexport function getNegativeKeywordListsKeywordGridFactory(initializeGlobalContext = true) {\r\n if (initializeGlobalContext) {\r\n return globalContext.define(\r\n pkg.legacyDependencies,\r\n Promise => import(/* webpackMode: 'eager' */ './src/factory') // eslint-disable-line no-unused-vars\r\n );\r\n }\r\n return import(/* webpackMode: 'eager' */ './src/factory'); // eslint-disable-line no-unused-vars\r\n}\r\n\r\nexport { ServerErrorMap } from './src/error-map';\r\n","// Copied from AdsAppsMT\r\n// private/Campaign/MT/Source/API/MergedAPI/V12/SharedCore/Translation/MasterApiErrorCodeList.xml\r\nexport const ServerErrorMap = {\r\n CampaignServiceSharedEntityNameNullOrEmpty: _TL_('Shared entity Name field is a required.'),\r\n CampaignServiceSharedEntityLimitExceeded: _TL_('Your account already has the maximum number of shared entity lists.'),\r\n CampaignServiceSharedEntityInvalidType: _TL_('The specified shared entity type is invalid or not currently supported.'),\r\n CampaignServiceSharedEntityAssociationsNullOrEmpty: _TL_('Shared entity associations are required.'),\r\n CampaignServiceMultipleSharedEntityTypesNotAllowed: _TL_('Multiple types of shared entity are not allowed in one call.'),\r\n CampaignServiceSharedEntityAssociationsBatchLimitExceeded: _TL_('Too many shared entity associations in one batch.'),\r\n CampaignServiceSharedEntityAssociationsListItemNullOrEmpty: _TL_('Shared entity associations collection cannot be null or empty'),\r\n CampaignServiceSharedEntityAssociationDuplicate: _TL_('Shared entity is a duplicate of a existing association.'),\r\n CampaignServiceSharedEntityIdsNullOrEmpty: _TL_('Shared entity Id field cannot be null or empty.'),\r\n CampaignServiceSharedEntityNullOrEmpty: _TL_('Shared Entity cannot be null or empty'),\r\n CampaignServiceDuplicateSharedEntityId: _TL_('Duplicate shared entity Ids are not allowed.'),\r\n CampaignServiceSharedEntityTypeNullOrEmpty: _TL_('Shared entity type is a required field.'),\r\n CampaignServiceSharedListDeleted: _TL_('Deleted shared entity lists cannot be retrieved or modified.'),\r\n CampaignServiceSharedListsNullOrEmpty: _TL_('Shared entity lists are required.'),\r\n CampaignServiceSharedListNullOrEmpty: _TL_('Shared entity list is a required field.'),\r\n CampaignServiceSharedListIdInvalid: _TL_('Shared entity list Id is not valid'),\r\n CampaignServiceSharedListDuplicate: _TL_('Duplicate shared list identifiers are not allowed.'),\r\n CampaignServiceSharedListItemsNullOrEmpty: _TL_('Shared entity list items are a required field.'),\r\n CampaignServiceListItemIdInvalid: _TL_('Shared entity list Id is not a valid Id'),\r\n CampaignServiceListItemIdsLimitExceeded: _TL_('The maximum number of shared entity list identifiers per call has been exceeded.'),\r\n CampaignServiceSharedEntitiesNullOrEmpty: _TL_('Shared entities is a required field.'),\r\n CampaignServiceSharedEntityNameTooLong: _TL_('Shared entity name is too long.'),\r\n CampaignServiceSharedEntityNameInvalid: _TL_('Shared entity name is invalid'),\r\n CampaignServiceSharedListIdNotAllowed: _TL_('Shared entity list Id is not allowed'),\r\n CampaignServiceSharedEntityIdInvalid: _TL_('Shared entity id is invalid'),\r\n CampaignServiceMaxNegativeKeywordLimitExceededForList: _TL_('Adding the negative keyword to the list will exceed the maximum number of negative keywords that you can add to the list.'),\r\n CampaignServiceNegativeKeywordDeleted: _TL_('Cannot modify a deleted negative keyword'),\r\n CampaignServiceInvalidNegativeKeywordId: _TL_('Negative keyword Id is invalid'),\r\n CampaignServiceInvalidNegativeKeyword: _TL_('Negative keyword is invalid'),\r\n CampaignServiceNegativeKeywordListWithActiveAssociationsCannotBeDeleted: _TL_('A list with an active association cannot be deleted.'),\r\n CampaignServiceNegativeKeywordTypeInvalid: _TL_('Negative Keyword Type field is invalid'),\r\n CampaignServiceNegativeKeywordTextRequired: _TL_('Negative Keyword text is required'),\r\n CampaignServiceDuplicateNegativeKeywordListName: _TL_('Duplicate negative keyword list names are not allowed'),\r\n CampaignServiceStructuredNegativeKeywordPilotNotEnabledForCustomer: _TL_('The Structured Negative Keyword Pilot is not enabled for this customer.'),\r\n CampaignServiceNegativeKeywordTooManyParentTypes: _TL_('You cannot mix the parent types for the Negative Keywords in this calls.'),\r\n CampaignServiceNegativeKeywordDuplicateFound: _TL_('Duplicate negative keyword already exists in this list.'),\r\n CampaignServiceNegativeKeywordNotFound: _TL_('No negative keywords were found.'),\r\n CampaignServiceNegativeKeywordInvalidMatchType: _TL_('The match type for this keyword was invalid.'),\r\n CampaignServiceNegativeKeywordInvalidParentType: _TL_('The parent type for this negative keyword is invalid.'),\r\n CampaignServiceNegativeKeywordEntitiesNullOrEmpty: _TL_('Negative Keywords entities are required for this call'),\r\n CampaignServiceNegativeKeywordEntityNull: _TL_('Negative Keyword cannot be null'),\r\n CampaignServiceMultipleEntityTypesNotAllowed: _TL_('Negative Keyword types cannot be added to multiple entity types in one call.'),\r\n CampaignServiceDuplicateNegativeKeyword: _TL_('Duplicate negative keyword are not allowed.'),\r\n CampaignServiceSharedEntityAssociationDoesNotExist: _TL_('Shared entity association does not exisit'),\r\n CampaignServiceCampaignIdsNullOrEmpty: _TL_('Campaign Ids passed are null or empty.'),\r\n CampaignServiceAdGroupIdsNullOrEmpty: _TL_('AdGroup Ids passed are null or empty.'),\r\n CampaignServiceSharedEntityBatchLimitExceeded: _TL_('Too many shared entity ids in one batch.'),\r\n CampaignServiceEntityBatchLimitExceeded: _TL_('Too many entity ids in one batch.'),\r\n CampaignServiceNegativeKeywordsAccountLimitExceeded: _TL_('Negative keyword limit at account level exceeded.'),\r\n CampaignServiceSharedEntityAssociationsAccountLimitExceeded: _TL_('Shared entity association limit at account level exceeded.'),\r\n CampaignServiceNegativeKeywordsNotPassed: _TL_('Negative keywords passed is null.'),\r\n\r\n // this is the fall back error\r\n fallbackMsg: _TL_('Something went wrong, please try again later'),\r\n};\r\n","import { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { pgridFactory } from '@bingads-webui-campaign/pgrid-factory';\r\nimport { updateGridQuery } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { merge } from '@bingads-webui-universal/primitive-utilities';\r\n\r\nconst { handleSortChange } = globalContext.require('campaignui/feature/bingadsgrid/service/state-manager-helper');\r\n\r\nexport class NegativeKeywordListsKeywordGrid extends DeterministicWrapperView {\r\n viewFactory({\r\n scope,\r\n i18n,\r\n filterService,\r\n preferenceConfig,\r\n getGridConfig,\r\n setupDataSourceErrorHandling,\r\n getPlugins,\r\n }) {\r\n this.scope = scope;\r\n this.i18n = i18n;\r\n this.filterService = filterService;\r\n\r\n setupDataSourceErrorHandling(this);\r\n\r\n const gridConfig = merge(getGridConfig(this), preferenceConfig);\r\n\r\n this.grid = pgridFactory({\r\n gridConfig,\r\n plugins: getPlugins(this),\r\n preferenceConfig,\r\n });\r\n\r\n this.filterService.on('filter-state-changed', () => {\r\n updateGridQuery(\r\n this.grid.gridView,\r\n this.filterService.getCombinedFilter(), true\r\n );\r\n });\r\n\r\n this.grid.gridView.on('willUpdate', (changes) => {\r\n // a preference patch is sent while grid is being loaded\r\n // to avoid that only handle sort change when the grid is ready\r\n const { _isRendered } = this.grid.gridView;\r\n if (_isRendered) {\r\n handleSortChange(changes, this.grid.gridView, gridConfig.name);\r\n }\r\n });\r\n\r\n return this.grid.gridView;\r\n }\r\n get className() { return 'negative-keyword-lists-keyword-grid'; }\r\n\r\n renderTrunk() {\r\n this.filterService.refreshSource();\r\n this.filterService.initializeCombinedFilterPromise.then(() => {\r\n updateGridQuery(\r\n this.grid.gridView,\r\n this.filterService.getCombinedFilter(), true\r\n );\r\n });\r\n super.renderTrunk();\r\n }\r\n\r\n remove() {\r\n this.gridRemoved = true;\r\n return super.remove();\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\n// eslint-disable-next-line import/extensions\r\nimport campaignCacheManager from '@bingads-webui-campaign-legacy/cache-manager/index';\r\nimport { edmCampaign } from '@bingads-webui/edm-campaign';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { ServerErrorMap } from '../error-map';\r\n\r\nglobalContext.require('component/api-errors-campaign/index');\r\n\r\nexport function InlineEditableSave({\r\n view,\r\n updated,\r\n editorViewCallbackAfterUpdate,\r\n editorView,\r\n}) {\r\n const { scope } = view;\r\n\r\n const payloadDelete = {\r\n NegativeKeywords: {\r\n Id: updated.Id,\r\n ParentId: scope.values.nkl,\r\n Status: 'Deleted',\r\n },\r\n };\r\n\r\n const payloadCreate = {\r\n NegativeKeywords: {\r\n ParentId: scope.values.nkl,\r\n MatchType: updated.MatchType,\r\n Keyword: updated.Text,\r\n },\r\n };\r\n\r\n const edmAccount = edmCampaign\r\n .Customers\r\n .$withKey(scope.values.cid)\r\n .Accounts\r\n .$withKey(scope.values.aid);\r\n\r\n const handleCreationSuccess = () => {\r\n edmAccount.bulkCreate(payloadDelete)\r\n .then(() => {\r\n if (editorViewCallbackAfterUpdate && _.isFunction(editorViewCallbackAfterUpdate)) {\r\n editorViewCallbackAfterUpdate();\r\n }\r\n })\r\n .then(() => {\r\n campaignCacheManager.invalidate('NegativeKeyword');\r\n view.grid.gridView.refresh(true);\r\n })\r\n .finally(withUiBlock(view.grid.gridView.$el));\r\n };\r\n\r\n const handleCreationError = (response) => {\r\n editorView.setErrors({\r\n Text: _.result(\r\n ServerErrorMap,\r\n response && response.errors && response.errors[0] && response.errors[0].Type === 'Shared Negative Keyword Error' && response.errors[0].Error,\r\n ServerErrorMap.fallbackMsg\r\n ),\r\n });\r\n };\r\n\r\n edmAccount.bulkCreate(payloadCreate)\r\n .then(handleCreationSuccess, handleCreationError)\r\n .finally(withUiBlock(view.grid.gridView.$el));\r\n}\r\n","import _ from 'underscore';\r\nimport { cloneDeep } from '@bingads-webui-universal/primitive-utilities';\r\nimport * as PopupEditor from '@bingads-webui/popup-editor';\r\nimport { NegativeKeyword } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { InlineEditableSave } from './save';\r\n\r\nlet schema = NegativeKeyword;\r\n\r\n// todo: move to common-columns package [1212933]\r\nexport function InlineEditableColumnPrompt({\r\n position, item, view, i18n, fieldName, customSchema,\r\n}) {\r\n if (!customSchema) {\r\n schema = cloneDeep(schema);\r\n schema.properties.MatchType.enum = _.without(schema.properties.MatchType.enum, 'Content');\r\n } else {\r\n schema = customSchema;\r\n }\r\n let fields = [fieldName];\r\n const model = item;\r\n\r\n const prompt = (template = 'inline') =>\r\n PopupEditor.prompt({\r\n position,\r\n i18n,\r\n schema,\r\n model,\r\n fields,\r\n hasLabels: false,\r\n template,\r\n saveModel: (updated, editorView) =>\r\n InlineEditableSave({\r\n view,\r\n i18n,\r\n fieldName,\r\n updated,\r\n editorView,\r\n entityName: customSchema ? customSchema.name : undefined,\r\n editorViewCallbackAfterUpdate: () => {\r\n editorView.trigger('save', updated);\r\n },\r\n }),\r\n });\r\n\r\n if (fieldName === 'MatchType') {\r\n const valueMessages = {};\r\n _.each(schema.properties.MatchType.enum, (value) => {\r\n valueMessages[value] = i18n.getString(`MatchType_${value}`);\r\n });\r\n fields = [{\r\n property: fieldName,\r\n valueMessages,\r\n }];\r\n }\r\n prompt();\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignNegativeKeyword, AdGroupNegativeKeyword } from '@bingads-webui-campaign/campaign-ui-schemas';\r\n\r\nexport const gridType = {\r\n campaign: 'campaign',\r\n adgroup: 'adgroup',\r\n};\r\n\r\n\r\nexport function getSchema(type) {\r\n if (type === gridType.campaign) {\r\n return CampaignNegativeKeyword;\r\n } else if (type === gridType.adgroup) {\r\n return AdGroupNegativeKeyword;\r\n }\r\n\r\n throw new Error('unknown negative keyword grid type.');\r\n}\r\n\r\nexport function patchParentObj(item) {\r\n const toPatch = item.AdGroupId ?\r\n { AdGroup: { Id: item.AdGroupId } } :\r\n { Campaign: { Id: item.CampaignId } };\r\n\r\n return _.defaults(toPatch, item);\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\n\r\nimport { InlineEditableColumnPrompt } from '../../inline-editable/prompt';\r\nimport template from './negative-keyword.pug';\r\nimport { getSchema, patchParentObj } from '../../inline-editable/inline-edit-schema';\r\n\r\nexport class NegativeKeywordColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, view }) {\r\n const title = i18n.getString('ColumnName_NegativeKeywords_FullName');\r\n\r\n super({\r\n name: 'NegativeKeyword',\r\n property: ['Id', 'Text'],\r\n title,\r\n sortable: 'Text',\r\n editable: true,\r\n type: 'string',\r\n helpId: 'Page_CampaignGrids_NegKeywords',\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 }\r\n\r\n pickProperty(item) {\r\n const {\r\n Text: text,\r\n } = item;\r\n\r\n return {\r\n text,\r\n };\r\n }\r\n\r\n onPrompt({ position, item }) {\r\n InlineEditableColumnPrompt({\r\n position,\r\n item: patchParentObj(item),\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'Text',\r\n customSchema: getSchema('campaign'),\r\n });\r\n }\r\n\r\n template({ value }) {\r\n return template({ value });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\n\r\nimport { InlineEditableColumnPrompt } from '../../inline-editable/prompt';\r\nimport template from './match-type.pug';\r\nimport { getSchema, patchParentObj } from '../../inline-editable/inline-edit-schema';\r\n\r\nexport class MatchTypeColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, view }) {\r\n const title = i18n.getString('ColumnName_MatchType');\r\n super({\r\n name: 'MatchType',\r\n property: ['Id', 'MatchType'],\r\n title,\r\n sortable: 'MatchType',\r\n editable: true,\r\n type: 'string',\r\n helpId: 'pop_BA_CampaignGrids_MatchType',\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 }\r\n\r\n pickProperty(item) {\r\n const type = item.MatchType\r\n ? this.i18n.getString(`MatchType_${item.MatchType}`)\r\n : '';\r\n return {\r\n type,\r\n };\r\n }\r\n\r\n onPrompt({ position, item }) {\r\n InlineEditableColumnPrompt({\r\n position,\r\n item: patchParentObj(item),\r\n view: this.view,\r\n i18n: this.i18n,\r\n customSchema: getSchema('campaign'),\r\n fieldName: 'MatchType',\r\n });\r\n }\r\n\r\n template({ value }) {\r\n return template({ value });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { ColumnsConfigBuilder } from '@bingads-webui-campaign/summary-grid-helper';\r\n\r\nimport { NegativeKeywordColumn } from './attributes/negative-keywords';\r\nimport { MatchTypeColumn } from './attributes/match-type';\r\n\r\nexport function getColumnsConfig({ options }) {\r\n const builder = new ColumnsConfigBuilder()\r\n .addCategory('Attribute', category => category.addColumns(_.compact([\r\n NegativeKeywordColumn,\r\n MatchTypeColumn,\r\n ])));\r\n return builder.getColumnsConfig(options);\r\n}\r\n\r\nexport function getInlineEditableColumns({ i18n }) {\r\n return {\r\n NegativeKeyword: {\r\n editor: {\r\n type: 'text',\r\n getEditorValue: currentCellValue => currentCellValue.text,\r\n },\r\n },\r\n MatchType: {\r\n editor: {\r\n type: 'select',\r\n getEditorValue: currentCellValue => currentCellValue.type,\r\n options: [{\r\n value: 'Exact',\r\n text: i18n.getString('MatchTypeId_1'),\r\n }, {\r\n value: 'Phrase',\r\n text: i18n.getString('MatchTypeId_2'),\r\n }],\r\n },\r\n },\r\n };\r\n}\r\n","import $ from 'jquery';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\n// import { helpers } from '@bingads-webui/projection-grid-toolbar';\r\nimport { sortableHeaderTemplate } from '@bingads-webui-campaign/summary-grid-helper';\r\n\r\nimport { getColumnsConfig } from './columns/index';\r\n\r\nconst stateManager = globalContext.require('StateManager/CampaignStateManager');\r\nconst preferenceService = globalContext.requireDefault('component/preference/service/index');\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/keywords-tab');\r\n\r\n// const { singleToolbarHeadRows } = helpers;\r\n\r\nexport function getConfig({\r\n dataSource,\r\n scope,\r\n view,\r\n customHeaderOffset,\r\n filterService,\r\n viewport,\r\n}) {\r\n const tableName = i18n.getString('Import_ImportSummary_SharedNegativeKeyword');\r\n\r\n return {\r\n name: 'summary_tab_negative_keyword_lists_keywords',\r\n legacyGridName: 'NegativeKeywordsInLibraryGrid',\r\n tableClasses: ['table', 'table-bordered'],\r\n tableAttributes: { 'aria-label': tableName },\r\n dataSource,\r\n selection: true,\r\n rows: {\r\n headRows: ['column-header-rows'],\r\n },\r\n columns: getColumnsConfig({\r\n options: {\r\n i18n,\r\n scope,\r\n view,\r\n },\r\n }),\r\n scrolling: {\r\n header: {\r\n type: 'sticky',\r\n offset: customHeaderOffset || (() => $('.sticky-container').height()),\r\n\r\n },\r\n virtualized: true,\r\n viewport,\r\n },\r\n filterService,\r\n stateManager,\r\n preferenceService,\r\n config: appConfig,\r\n sortableHeader: {\r\n template: sortableHeaderTemplate,\r\n },\r\n i18n,\r\n };\r\n}\r\n","import _ from 'underscore';\r\nimport { paginationPlugin } from '@bingads-webui/projection-grid-pagination';\r\nimport { editablePlugin } from '@bingads-webui-campaign/projection-grid-editable';\r\nimport { jsdataRawDataPlugin } from '@bingads-webui-campaign/pgrid-js-data-raw-data';\r\nimport { inlineErrorPlugin } from '@bingads-webui/projection-grid-inline-error';\r\nimport { uiBlockerPlugin } from '@bingads-webui/projection-grid-uiblocker';\r\nimport { performanceLogPlugin, perfMarkerPlugin } from '@bingads-webui-campaign/pgrid-performance-log';\r\nimport { a11yPlugin } from '@bingads-webui/projection-grid-a11y';\r\nimport { assistedSelectionPlugin } from '@bingads-webui/projection-grid-assisted-selection';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\n\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/keywords-tab');\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst logger = globalContext.require('module/service/instrumentation/index');\r\n\r\nexport function getPlugins({\r\n perfMarker,\r\n viewport,\r\n}) {\r\n return _.compact([{\r\n // For accurate grid init latency, PerfMarkerPlugin should be the first plugin to load.\r\n plugin: perfMarkerPlugin,\r\n config: {\r\n appConfig,\r\n marker: perfMarker,\r\n },\r\n }, {\r\n plugin: editablePlugin,\r\n config: { i18n },\r\n }, {\r\n plugin: paginationPlugin,\r\n config: {\r\n availablePageSizes: [20, 50, 100, 200],\r\n enableRandomPage: false,\r\n pageSizeText: i18n.getString('Grid_ShowRows'),\r\n totalPageCountText: i18n.getString('Grid_PageOf'),\r\n },\r\n }, {\r\n plugin: performanceLogPlugin,\r\n config: { appConfig, logger },\r\n }, {\r\n plugin: assistedSelectionPlugin,\r\n }, {\r\n plugin: a11yPlugin,\r\n config: { i18n },\r\n }, {\r\n plugin: jsdataRawDataPlugin,\r\n }, {\r\n plugin: uiBlockerPlugin,\r\n config: { el: viewport },\r\n }, {\r\n plugin: inlineErrorPlugin({\r\n errorIconClasses: ['grid-error'],\r\n }),\r\n }]);\r\n}\r\n","import { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { setUpErrorHandling } from '@bingads-webui-campaign/summary-grid-helper';\r\n\r\nimport { NegativeKeywordListsKeywordGrid } from './negative-keywords-lists-keyword-grid';\r\nimport { getConfig } from './grid-config';\r\nimport { getPlugins } from './plugins';\r\n\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/keywords-tab');\r\n\r\nexport function createNegativeKeywordsListsKeywordsGrid({\r\n dataSource,\r\n filterService,\r\n getAdditionalPlugins = () => [],\r\n preferenceConfig,\r\n router,\r\n scope,\r\n isForVNext = false,\r\n perfMarker,\r\n viewport,\r\n}) {\r\n return new NegativeKeywordListsKeywordGrid({\r\n isForVNext,\r\n filterService,\r\n i18n,\r\n getGridConfig: view => getConfig({\r\n dataSource,\r\n scope,\r\n view,\r\n filterService,\r\n preferenceConfig,\r\n router,\r\n isForVNext,\r\n viewport,\r\n }),\r\n getPlugins: view => getPlugins({\r\n perfMarker,\r\n viewport,\r\n }).concat(getAdditionalPlugins(view)),\r\n router,\r\n scope,\r\n setupDataSourceErrorHandling: view => setUpErrorHandling({\r\n gridView: view,\r\n scope,\r\n dataSource,\r\n i18n,\r\n }),\r\n preferenceConfig,\r\n });\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport hoistNonReactStatics from 'hoist-non-react-statics';\r\nimport { getDisplayName } from '@bingads-webui-react/hoc-utils';\r\n\r\nexport const withPropFilter = (WrappedComponent, propFilter) => {\r\n const Wrapper = (props) => {\r\n const filteredProps = propFilter(props);\r\n\r\n return ;\r\n };\r\n\r\n Wrapper.displayName = `withPropFilter(\r\n ${getDisplayName(WrappedComponent)}\r\n )`;\r\n\r\n hoistNonReactStatics(Wrapper, WrappedComponent);\r\n\r\n Wrapper.propTypes = {\r\n props: PropTypes.shape({}),\r\n };\r\n\r\n Wrapper.defaultProps = {\r\n props: PropTypes.undefined,\r\n };\r\n\r\n return Wrapper;\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 (i18n) {pug_mixins[\"previewGrid\"] = pug_interp = function(columns){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: showPreview\\\"\\u003E\\u003Cdiv data-bind=\\\"html: changeText\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewTable grid\\\" data-bind=\\\"if: results().length > 0, visible: results().length > 0\\\"\\u003E\\u003Ctable\\u003E\\u003Cthead\\u003E\\u003C!--ko if: $root.previewGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\" data-bind=\\\"foreach: previewGrids\\\"\\u003E\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\" data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko ifnot: $root.previewGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\"\\u003E\";\n// iterate columns\n;(function(){\n var $$obj = columns;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var column = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var column = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody data-bind=\\\"foreach: results\\\"\\u003E\\u003Ctr class=\\\"grid-row\\\" data-bind=\\\"foreach: $data.data\\\"\\u003E\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003C!-- ko if: $data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"html: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- ko if: !$data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"text: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_mixins[\"errorsGrid\"] = pug_interp = function(columns, errorColumnIsHtml){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: showErrors() && !isCampaignAdGroupCopyPasteOperation()\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorCountString\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ca class=\\\"errorCountLink\\\" data-bind=\\\"html: errorCountLinkText\\\" href=\\\"javascript:void(0)\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003Cbr\\u003E\\u003Cdiv class=\\\"previewTable grid\\\" data-bind=\\\"visible: showErrorGrid\\\"\\u003E\\u003Ctable\\u003E\\u003Cthead\\u003E\\u003C!--ko if: $root.errorsGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\" data-bind=\\\"foreach: errorsGrids\\\"\\u003E\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\" data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C!--ko if: $index() === $parent.errorsGrids().length - 1--\\u003E\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_InlineError_ErrorHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko ifnot: $root.errorsGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\"\\u003E\";\n// iterate columns\n;(function(){\n var $$obj = columns;\n if ('number' == typeof $$obj.length) {\n for (var pug_index1 = 0, $$l = $$obj.length; pug_index1 < $$l; pug_index1++) {\n var column = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index1 in $$obj) {\n $$l++;\n var column = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_InlineError_ErrorHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody data-bind=\\\"foreach: inlineErrors\\\"\\u003E\\u003Ctr class=\\\"grid-row\\\"\\u003E\\u003C!-- ko foreach: $data.data--\\u003E\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003C!-- ko if: $data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"html: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- ko if: !$data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"text: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" role=\\\"alert\\\"\\u003E\\u003C!-- ko foreach: $data.combinedErrors --\\u003E\";\nif (errorColumnIsHtml) {\npug_html = pug_html + \"\\u003Cspan data-bind=\\\"html: $data\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cbr\\u003E\\u003C!-- \\u002Fko --\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: showErrors() && isCampaignAdGroupCopyPasteOperation()\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: completedWithErrorsBulkEditResultsString\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_mixins[\"changeCashbackPercentBase\"] = pug_interp = function(i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Ch2 class=\\\"panel-heading\\\" role=\\\"heading\\\" aria-level=\\\"2\\\"\\u003E\\u003Cdiv class=\\\"panel-title\\\" data-bind=\\\"html: titleText\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fh2\\u003E\\u003Cdiv class=\\\"panel-body form-horizontal\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Clabel class=\\\"pull-left control-label\\\" id=\\\"actionLabel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_Action')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-2\\\"\\u003E\\u003Cselect class=\\\"form-control\\\" data-bind=\\\"options: actions, optionsText: "Text", optionsValue: "Value", value: selectedAction, disable: isDisabled\\\" aria-labelledby=\\\"actionLabel\\\"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-6 form-inline\\\" data-bind=\\\"visible: showSetPanel\\\"\\u003E\\u003Cinput class=\\\"bulkEdit-bid form-control\\\" type=\\\"text\\\" data-bind=\\\"value: cashbackPercentValue, valueUpdate: "input", disable: isDisabled\\\" aria-describedby=\\\"percentLabel\\\"\\u003E\\u003Cspan class=\\\"control-label\\\" id=\\\"currencyLabel1\\\" data-bind=\\\"html: selectedUnit\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorMessage\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- ko if: cashbackPercentDescription() != null--\\u003E\\u003Cdiv class=\\\"alert alert-info\\\" role=\\\"alert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert__content\\\"\\u003E\\u003Cspan class=\\\"alert__message\\\" data-bind=\\\"html: cashbackPercentDescription\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel\\\"\\u003E\";\npug_mixins[\"changeCashbackPercentBase\"](i18n);\npug_html = pug_html + (null == (pug_interp = require(\"../status.pug\").call(this, locals)) ? \"\" : pug_interp);\nvar header1 = i18n.getString('BulkEdit_Campaign_EntityNameHeader')\nvar header2 = i18n.getString('BulkEdit_AdGroup_EntityNameHeader')\nvar header3 = i18n.getString('BulkEdit_EntityNameHeader')\nvar header4 = i18n.getString('BulkEdit_OldCashbackPercentHeader')\nvar header5 = i18n.getString('BulkEdit_NewCashbackPercentHeader')\npug_mixins[\"previewGrid\"]([header1, header2, header3, header4, header5]);\nvar header5 = i18n.getString('BulkEdit_EntityNameHeader')\nvar header6 = i18n.getString('BulkEdit_OldCashbackPercentHeader')\nvar header7 = i18n.getString('BulkEdit_AttemptedCashbackPercentHeader')\npug_mixins[\"errorsGrid\"]([header5, header6, header7]);\npug_html = pug_html + (null == (pug_interp = require(\"../footer.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, viewModel) {pug_mixins[\"previewGrid\"] = pug_interp = function(columns){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: showPreview\\\"\\u003E\\u003Cdiv data-bind=\\\"html: changeText\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewTable grid\\\" data-bind=\\\"if: results().length > 0, visible: results().length > 0\\\"\\u003E\\u003Ctable\\u003E\\u003Cthead\\u003E\\u003C!--ko if: $root.previewGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\" data-bind=\\\"foreach: previewGrids\\\"\\u003E\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\" data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko ifnot: $root.previewGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\"\\u003E\";\n// iterate columns\n;(function(){\n var $$obj = columns;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var column = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var column = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody data-bind=\\\"foreach: results\\\"\\u003E\\u003Ctr class=\\\"grid-row\\\" data-bind=\\\"foreach: $data.data\\\"\\u003E\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003C!-- ko if: $data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"html: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- ko if: !$data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"text: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_mixins[\"errorsGrid\"] = pug_interp = function(columns, errorColumnIsHtml){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: showErrors() && !isCampaignAdGroupCopyPasteOperation()\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorCountString\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ca class=\\\"errorCountLink\\\" data-bind=\\\"html: errorCountLinkText\\\" href=\\\"javascript:void(0)\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003Cbr\\u003E\\u003Cdiv class=\\\"previewTable grid\\\" data-bind=\\\"visible: showErrorGrid\\\"\\u003E\\u003Ctable\\u003E\\u003Cthead\\u003E\\u003C!--ko if: $root.errorsGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\" data-bind=\\\"foreach: errorsGrids\\\"\\u003E\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\" data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C!--ko if: $index() === $parent.errorsGrids().length - 1--\\u003E\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_InlineError_ErrorHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko ifnot: $root.errorsGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\"\\u003E\";\n// iterate columns\n;(function(){\n var $$obj = columns;\n if ('number' == typeof $$obj.length) {\n for (var pug_index1 = 0, $$l = $$obj.length; pug_index1 < $$l; pug_index1++) {\n var column = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index1 in $$obj) {\n $$l++;\n var column = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_InlineError_ErrorHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody data-bind=\\\"foreach: inlineErrors\\\"\\u003E\\u003Ctr class=\\\"grid-row\\\"\\u003E\\u003C!-- ko foreach: $data.data--\\u003E\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003C!-- ko if: $data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"html: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- ko if: !$data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"text: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" role=\\\"alert\\\"\\u003E\\u003C!-- ko foreach: $data.combinedErrors --\\u003E\";\nif (errorColumnIsHtml) {\npug_html = pug_html + \"\\u003Cspan data-bind=\\\"html: $data\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cbr\\u003E\\u003C!-- \\u002Fko --\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: showErrors() && isCampaignAdGroupCopyPasteOperation()\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: completedWithErrorsBulkEditResultsString\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_html = pug_html + (\"\\u003Cdiv class=\\\"panel\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\" role=\\\"heading\\\" aria-level=\\\"2\\\"\\u003E\\u003Cdiv class=\\\"panel-title\\\" data-bind=\\\"html: titleText\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body form-horizontal\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cspan class=\\\"type-normal\\\"\\u003E\" + (pug.escape(null == (pug_interp = viewModel.bulkEditInfo()) ? \"\" : pug_interp)) + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + \"\\u003Ca class=\\\"HelpTopic\\\" query=\\\"help:app54613\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Learn_more_link_text')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv id=\\\"bid-adjustment-bulk-edit\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group alert alert-warning\\\" data-bind=\\\"visible: showAdgroupSelectedAllMixInheritWarning\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"type-normal\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_BidAdjustment_SelectedAll_MixInheritWarning')) ? \"\" : pug_interp)) + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp)) + \"\\u003Ca class=\\\"HelpTopic\\\" query=\\\"help:app54604\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Learn_more_link_text')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\" + (null == (pug_interp = require(\"../status.pug\").call(this, locals)) ? \"\" : pug_interp));\nvar header1 = viewModel.entityNameHeader()\nvar header2 = i18n.getString('BulkEdit_BidAdjustment_OldBidHeader')\nvar header3 = i18n.getString('BulkEdit_BidAdjustment_NewBidHeader')\npug_mixins[\"previewGrid\"]([header1, header2, header3]);\nvar header5 = viewModel.entityNameHeader()\nvar header6 = i18n.getString('BulkEdit_BidAdjustment_OldBidHeader')\nvar header7 = i18n.getString('BulkEdit_BidAdjustment_AttemptedBidHeader')\npug_mixins[\"errorsGrid\"]([header5, header6, header7]);\npug_html = pug_html + (null == (pug_interp = require(\"../footer.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"viewModel\" in locals_for_with?locals_for_with.viewModel:typeof viewModel!==\"undefined\"?viewModel: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, viewModel) {pug_mixins[\"previewGrid\"] = pug_interp = function(columns){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: showPreview\\\"\\u003E\\u003Cdiv data-bind=\\\"html: changeText\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewTable grid\\\" data-bind=\\\"if: results().length > 0, visible: results().length > 0\\\"\\u003E\\u003Ctable\\u003E\\u003Cthead\\u003E\\u003C!--ko if: $root.previewGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\" data-bind=\\\"foreach: previewGrids\\\"\\u003E\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\" data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko ifnot: $root.previewGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\"\\u003E\";\n// iterate columns\n;(function(){\n var $$obj = columns;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var column = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var column = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody data-bind=\\\"foreach: results\\\"\\u003E\\u003Ctr class=\\\"grid-row\\\" data-bind=\\\"foreach: $data.data\\\"\\u003E\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003C!-- ko if: $data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"html: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- ko if: !$data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"text: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_mixins[\"errorsGrid\"] = pug_interp = function(columns, errorColumnIsHtml){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: showErrors() && !isCampaignAdGroupCopyPasteOperation()\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorCountString\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ca class=\\\"errorCountLink\\\" data-bind=\\\"html: errorCountLinkText\\\" href=\\\"javascript:void(0)\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003Cbr\\u003E\\u003Cdiv class=\\\"previewTable grid\\\" data-bind=\\\"visible: showErrorGrid\\\"\\u003E\\u003Ctable\\u003E\\u003Cthead\\u003E\\u003C!--ko if: $root.errorsGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\" data-bind=\\\"foreach: errorsGrids\\\"\\u003E\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\" data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C!--ko if: $index() === $parent.errorsGrids().length - 1--\\u003E\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_InlineError_ErrorHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko ifnot: $root.errorsGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\"\\u003E\";\n// iterate columns\n;(function(){\n var $$obj = columns;\n if ('number' == typeof $$obj.length) {\n for (var pug_index1 = 0, $$l = $$obj.length; pug_index1 < $$l; pug_index1++) {\n var column = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index1 in $$obj) {\n $$l++;\n var column = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_InlineError_ErrorHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody data-bind=\\\"foreach: inlineErrors\\\"\\u003E\\u003Ctr class=\\\"grid-row\\\"\\u003E\\u003C!-- ko foreach: $data.data--\\u003E\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003C!-- ko if: $data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"html: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- ko if: !$data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"text: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" role=\\\"alert\\\"\\u003E\\u003C!-- ko foreach: $data.combinedErrors --\\u003E\";\nif (errorColumnIsHtml) {\npug_html = pug_html + \"\\u003Cspan data-bind=\\\"html: $data\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cbr\\u003E\\u003C!-- \\u002Fko --\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: showErrors() && isCampaignAdGroupCopyPasteOperation()\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: completedWithErrorsBulkEditResultsString\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_mixins[\"popupHelp\"] = pug_interp = function(popupId, ariaLabelContext, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nvar templateString = (i18n && i18n.get && i18n.get('Click to learn more about {{item}}')) || (i18n && i18n.getString && i18n.getString('Click to learn more about {{item}}')) || null\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"helpbutton\\\"\"+\" type=\\\"helppopup\\\" role=\\\"button\\\"\"+pug.attr(\"topic\", popupId, true, true)+pug.attr(\"data-help\", true, true, true)+\" onclick=\\\"PopupController.PopupJsClick(this); event.stopPropagation();\\\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"aria-label\", templateString ? templateString.replace('{{item}}', ariaLabelContext) : ariaLabelContext, true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\" role=\\\"heading\\\" aria-level=\\\"2\\\"\\u003E\\u003Cdiv class=\\\"panel-title\\\" data-bind=\\\"html: titleText\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body form-horizontal\\\"\\u003E\\u003Cdiv class=\\\"form-group form-inline\\\"\\u003E\\u003C!-- ko if: showExtaWarningMessage--\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cdiv class=\\\"col-sm-2\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"warn warn-info form-group col-sm-10\\\"\\u003E\\u003Cdiv class=\\\"warn-image iconba-Warning iconba\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"warn-info-inline\\\"\\u003E\" + (pug.escape(null == (pug_interp = (i18n.getString('BulkEdit_NotApplyForEXTA'))) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Clabel class=\\\"col-sm-2 control-label\\\" id=\\\"actionLabel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_Action')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-8\\\"\\u003E\\u003Cselect class=\\\"form-control\\\" id=\\\"changeAdOptions\\\" data-bind=\\\"options: actions, optionsText: "Text", optionsValue: "Value", value: selectedAction, disable: isDisabled\\\" aria-labelledby=\\\"actionLabel\\\"\\u003E\\u003C\\u002Fselect\\u003E\\u003Cspan class=\\\"form-text\\\" id=\\\"inLabel\\\" data-bind=\\\"ifnot: showSetTextPanel()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_Ad_In')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cselect class=\\\"form-control\\\" data-bind=\\\"visible: !showSetTextPanel(), options: fields, optionsText: "Text", optionsValue: "Value", value: selectedField\\\" aria-labelledby=\\\"inLabel\\\"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: showFindReplacePanel--\\u003E\\u003Cdiv class=\\\"find-replace-section\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Clabel class=\\\"col-sm-2 control-label\\\" id=\\\"findLabel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_Keyword_FindUrl')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-5\\\"\\u003E\\u003Cinput class=\\\"form-control\\\" type=\\\"text\\\" data-bind=\\\"value: findText, valueUpdate: "input", disable: isDisabled, attr: { maxLength: maxLength }\\\" aria-labelledby=\\\"findLabel\\\"\\u003E\\u003Cdiv data-bind=\\\"attr: { role: errorRole }\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorMessage\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"checkbox\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"checkbox\\\" value=\\\"MatchCase\\\" data-bind=\\\"checked: findReplaceOptions, disable: isDisabled\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_Keyword_MatchCase')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Clabel class=\\\"col-sm-2 control-label\\\" id=\\\"replaceLabel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_Keyword_ReplaceUrl')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-5\\\"\\u003E\\u003Cinput class=\\\"form-control\\\" type=\\\"text\\\" data-bind=\\\"value: replaceText, disable: isDisabled, attr: { maxLength: maxLength }\\\" aria-labelledby=\\\"replaceLabel\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!--ko if:showAppendTextPanel--\\u003E\\u003Cdiv class=\\\"append-section\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Clabel class=\\\"col-sm-2 control-label\\\" id=\\\"appendLabel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_Keyword_AppendUrl')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-5\\\"\\u003E\\u003Cinput class=\\\"form-control\\\" type=\\\"text\\\" data-bind=\\\"value: appendText, valueUpdate: "input", disable: isDisabled, attr: { maxLength: maxLength }\\\" aria-labelledby=\\\"appendLabel\\\"\\u003E\\u003Cdiv data-bind=\\\"attr: { role: errorRole }\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorMessage\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"appendOption\\\" value=\\\"Append\\\" data-bind=\\\"checked: changeTextOption, disable: isDisabled\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_Ad_AppendText')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput type=\\\"radio\\\" name=\\\"appendOption\\\" value=\\\"Prepend\\\" data-bind=\\\"checked: changeTextOption, disable: isDisabled\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_Ad_PrependText')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!--ko if: showSetTextPanel--\\u003E\";\nvar placeHolderText = i18n.getString('Input_NoChange_PlaceHolder')\npug_html = pug_html + (\"\\u003C!--set tracking template--\\u003E\\u003Cdiv class=\\\"form-group form-inline\\\"\\u003E\\u003Clabel class=\\\"col-sm-2 control-label\\\" id=\\\"trackingLabel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('TrackingTemplate_Label')) ? \"\" : pug_interp)));\npug_mixins[\"popupHelp\"]('pop_BA_NewCampaignCreate_Ad_TrackTemplate', i18n.getString('TrackingTemplate_Label'), i18n);\npug_html = pug_html + (\"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-10\\\"\\u003E\\u003Cselect\" + (\" class=\\\"form-control\\\"\"+\" name=\\\"tracking-template-actions\\\" data-bind=\\\"options: trackingTemplateActions, optionsText: "Text", optionsValue: "Value", value: trackingTemplateSelectedAction, disable: isDisabled\\\"\"+pug.attr(\"aria-label\", (i18n.getString('Select an action for {{item}}') || '').replace('{{item}}', i18n.getString('TrackingTemplate_Label')), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: showTrackingTemplateInput--\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-offset-2 col-sm-5\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control\\\"\"+\" name=\\\"tracking-template-field\\\" type=\\\"text\\\"\"+pug.attr(\"placeholder\", placeHolderText, true, true)+pug.attr(\"aria-label\", i18n.getString('TrackingTemplate_Label'), true, true)+\" data-bind=\\\"value: trackingTemplate, valueUpdate: "input", disable: isDisabled\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!--ko if: showFinalUrlSuffixInput--\\u003E\\u003C!--set final url suffix--\\u003E\\u003Cdiv class=\\\"form-group form-inline\\\"\\u003E\\u003Clabel class=\\\"col-sm-2 control-label\\\" id=\\\"finalUrlSuffixLabel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('FinalUrlSuffix_Label')) ? \"\" : pug_interp)));\npug_mixins[\"popupHelp\"]('pop_BA_NewAdCreate_FinalURLSuffix', i18n.getString('FinalUrlSuffix_Label'), i18n);\npug_html = pug_html + (\"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-10\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control\\\"\"+\" name=\\\"final-url-suffix-field\\\" type=\\\"text\\\"\"+pug.attr(\"placeholder\", placeHolderText, true, true)+pug.attr(\"aria-label\", i18n.getString('FinalUrlSuffix_Label'), true, true)+\" data-bind=\\\"value: finalUrlSuffix, valueUpdate: "input", disable: isDisabled\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!--set custom parameters--\\u003E\\u003Cdiv class=\\\"form-group\\\" data-bind=\\\"visible: showSetTextPanel\\\"\\u003E\\u003Clabel class=\\\"col-sm-2 control-label\\\" id=\\\"customLabel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CustomParameters_Label')) ? \"\" : pug_interp)));\npug_mixins[\"popupHelp\"]('pop_BA_NewCampaignCreate_Ad_Parameters', i18n.getString('CustomParameters_Label'), i18n);\npug_html = pug_html + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-5\\\"\\u003E\\u003Cselect\" + (\" class=\\\"form-control custom-param__select\\\"\"+\" name=\\\"custom-parameters-actions\\\" data-bind=\\\"options: customParametersActions, optionsText: "Text", optionsValue: "Value", value: customParametersSelectedAction, disable: isDisabled\\\"\"+pug.attr(\"aria-label\", (i18n.getString('Select an action for {{item}}') || '').replace('{{item}}', i18n.getString('CustomParameters_Label')), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003Cdiv data-bind=\\\"visible: showCustomParamsInput\\\"\\u003E\\u003Cdiv class=\\\"custom-parameters-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-bind=\\\"attr: { role: errorRole }\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorMessage\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\" + (null == (pug_interp = require(\"../status.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003C!--ko if: showPreview--\\u003E\";\npug_mixins[\"previewGrid\"](viewModel.previewGrids());\npug_mixins[\"errorsGrid\"](viewModel.errorsGrids(), true);\npug_html = pug_html + \"\\u003C!--\\u002Fko--\\u003E\" + (null == (pug_interp = require(\"../footer.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"viewModel\" in locals_for_with?locals_for_with.viewModel:typeof viewModel!==\"undefined\"?viewModel:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_mixins[\"previewGrid\"] = pug_interp = function(columns){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: showPreview\\\"\\u003E\\u003Cdiv data-bind=\\\"html: changeText\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewTable grid\\\" data-bind=\\\"if: results().length > 0, visible: results().length > 0\\\"\\u003E\\u003Ctable\\u003E\\u003Cthead\\u003E\\u003C!--ko if: $root.previewGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\" data-bind=\\\"foreach: previewGrids\\\"\\u003E\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\" data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko ifnot: $root.previewGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\"\\u003E\";\n// iterate columns\n;(function(){\n var $$obj = columns;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var column = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var column = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody data-bind=\\\"foreach: results\\\"\\u003E\\u003Ctr class=\\\"grid-row\\\" data-bind=\\\"foreach: $data.data\\\"\\u003E\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003C!-- ko if: $data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"html: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- ko if: !$data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"text: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_mixins[\"errorsGrid\"] = pug_interp = function(columns, errorColumnIsHtml){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: showErrors() && !isCampaignAdGroupCopyPasteOperation()\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorCountString\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ca class=\\\"errorCountLink\\\" data-bind=\\\"html: errorCountLinkText\\\" href=\\\"javascript:void(0)\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003Cbr\\u003E\\u003Cdiv class=\\\"previewTable grid\\\" data-bind=\\\"visible: showErrorGrid\\\"\\u003E\\u003Ctable\\u003E\\u003Cthead\\u003E\\u003C!--ko if: $root.errorsGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\" data-bind=\\\"foreach: errorsGrids\\\"\\u003E\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\" data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C!--ko if: $index() === $parent.errorsGrids().length - 1--\\u003E\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_InlineError_ErrorHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko ifnot: $root.errorsGrids--\\u003E\\u003Ctr class=\\\"grid-header-row\\\"\\u003E\";\n// iterate columns\n;(function(){\n var $$obj = columns;\n if ('number' == typeof $$obj.length) {\n for (var pug_index1 = 0, $$l = $$obj.length; pug_index1 < $$l; pug_index1++) {\n var column = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index1 in $$obj) {\n $$l++;\n var column = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = column) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003Cth class=\\\"grid-header-cell grid-disabledsort\\\"\\u003E\\u003Cdiv class=\\\"grid-header-textcontainer\\\"\\u003E\\u003Ca class=\\\"grid-header-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_InlineError_ErrorHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fth\\u003E\\u003C\\u002Ftr\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fthead\\u003E\\u003Ctbody data-bind=\\\"foreach: inlineErrors\\\"\\u003E\\u003Ctr class=\\\"grid-row\\\"\\u003E\\u003C!-- ko foreach: $data.data--\\u003E\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003C!-- ko if: $data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"html: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C!-- ko if: !$data.isHtml--\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" data-bind=\\\"text: $data.value\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Ftd\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003Ctd class=\\\"grid-cell\\\"\\u003E\\u003Cdiv class=\\\"grid-content-container\\\" role=\\\"alert\\\"\\u003E\\u003C!-- ko foreach: $data.combinedErrors --\\u003E\";\nif (errorColumnIsHtml) {\npug_html = pug_html + \"\\u003Cspan data-bind=\\\"html: $data\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan data-bind=\\\"text: $data\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cbr\\u003E\\u003C!-- \\u002Fko --\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Ftd\\u003E\\u003C\\u002Ftr\\u003E\\u003C\\u002Ftbody\\u003E\\u003C\\u002Ftable\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: showErrors() && isCampaignAdGroupCopyPasteOperation()\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: completedWithErrorsBulkEditResultsString\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_mixins[\"changeCashbackPercentBase\"] = pug_interp = function(i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Ch2 class=\\\"panel-heading\\\" role=\\\"heading\\\" aria-level=\\\"2\\\"\\u003E\\u003Cdiv class=\\\"panel-title\\\" data-bind=\\\"html: titleText\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fh2\\u003E\\u003Cdiv class=\\\"panel-body form-horizontal\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Clabel class=\\\"pull-left control-label\\\" id=\\\"actionLabel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('BulkEdit_Action')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"col-sm-2\\\"\\u003E\\u003Cselect class=\\\"form-control\\\" data-bind=\\\"options: actions, optionsText: "Text", optionsValue: "Value", value: selectedAction, disable: isDisabled\\\" aria-labelledby=\\\"actionLabel\\\"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-6 form-inline\\\" data-bind=\\\"visible: showSetPanel\\\"\\u003E\\u003Cinput class=\\\"bulkEdit-bid form-control\\\" type=\\\"text\\\" data-bind=\\\"value: cashbackPercentValue, valueUpdate: "input", disable: isDisabled\\\" aria-describedby=\\\"percentLabel\\\"\\u003E\\u003Cspan class=\\\"control-label\\\" id=\\\"currencyLabel1\\\" data-bind=\\\"html: selectedUnit\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"html: errorMessage\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- ko if: cashbackPercentDescription() != null--\\u003E\\u003Cdiv class=\\\"alert alert-info\\\" role=\\\"alert\\\"\\u003E\\u003Cdiv class=\\\"alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert__content\\\"\\u003E\\u003Cspan class=\\\"alert__message\\\" data-bind=\\\"html: cashbackPercentDescription\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko--\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel\\\"\\u003E\";\npug_mixins[\"changeCashbackPercentBase\"](i18n);\npug_html = pug_html + (null == (pug_interp = require(\"../status.pug\").call(this, locals)) ? \"\" : pug_interp);\nvar header1 = i18n.getString('BulkEdit_EntityNameHeader')\nvar header2 = i18n.getString('BulkEdit_OldCashbackPercentHeader')\nvar header3 = i18n.getString('BulkEdit_OldCashbackPercentHeader')\npug_mixins[\"previewGrid\"]([header1, header2, header3]);\nvar header4 = i18n.getString('BulkEdit_EntityNameHeader')\nvar header5 = i18n.getString('BulkEdit_OldCashbackPercentHeader')\nvar header6 = i18n.getString('BulkEdit_AttemptedCashbackPercentHeader')\npug_mixins[\"errorsGrid\"]([header4, header5, header6]);\npug_html = pug_html + (null == (pug_interp = require(\"../footer.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"section-item\\\" data-bind=\\\"visible: bindingOptions.visible\\\"\\u003E\\u003Cdiv class=\\\"layout-marked-element\\\"\\u003E \\u003Cdiv class=\\\"decorated-element\\\"\\u003E\\u003Cdiv class=\\\"item-label section-item-label h3\\\" data-bind=\\\"text: bindingOptions.label\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"section-item-editor\\\"\\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 (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"doubleListBox layout-columns\\\"\\u003E\\u003Cdiv class=\\\"layout-columns-container row\\\"\\u003E\\u003Cdiv class=\\\"layout-columns-element col-sm-12\\\" data-bind=\\\"visible: features.filtering || showMaximumSelectionAlert\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\" data-bind=\\\"visible: features.filtering\\\"\\u003E\\u003Cdiv class=\\\"dlb-filter-alignPlaceholder col-sm-3\\\"\\u003E\\u003Cdiv data-bind=\\\"searchbox: filterText, defaultText:strings.filterWatermark, filterAriaLabel: strings.filterAriaLabel, visible: features.filtering\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-bind=\\\"visible: showMaximumSelectionAlert\\\"\\u003E\\u003Cdiv class=\\\"alert alert-info\\\"\\u003E\\u003Cspan data-bind=\\\"text: strings.maximumSelectionAlertString\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"layout-columns-element col-sm-6\\\"\\u003E\\u003Cdiv class=\\\"row form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cdiv class=\\\"panel-form noPadding\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Ch4 class=\\\"panel-title\\\"\\u003E\\u003Cspan data-bind=\\\"text : strings.sourceItems\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E:  \\u003C\\u002Fspan\\u003E\\u003Cspan data-bind=\\\"text: sourceItemsCount\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh4\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body noPadding\\\"\\u003E\\u003Cdiv class=\\\"dlb-selectAll clickable\\\" data-bind=\\\"visible: features.selectAll, click: selectAll\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('DoubleListBox_SelectAll')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"enabled arrow-button\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dlb-emptyMessage\\\" data-bind=\\\"visible: showEmptyMessage()\\\"\\u003E\\u003Cspan data-bind=\\\"text: strings.emptyMessage\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dlb-source\\\" data-bind=\\\"attr: {'aria-label' : strings.sourceItems}\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dlb-pager-container\\\" data-bind=\\\"visible: features.paging\\\"\\u003E\\u003Cdiv class=\\\"pager-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"layout-columns-element col-sm-6\\\"\\u003E\\u003Cdiv class=\\\"row form-group non-empty\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cdiv class=\\\"panel-form noPadding\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Ch4 class=\\\"panel-title\\\"\\u003E\\u003Cspan class=\\\"selectedItemsHeader\\\" data-bind=\\\"text: strings.selectedItems\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"headerDelimiter\\\"\\u003E:  \\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"selectedItemsCount\\\" data-bind=\\\"text: selectedItemsCount\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"headerDelimiter\\\"\\u003E \\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"selectedItemsHeader\\\" data-bind=\\\"text: strings.maxSelectedItems\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh4\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body noPadding\\\"\\u003E\\u003Cdiv class=\\\"dlb-deselectAll clickable\\\" data-bind=\\\"visible: features.deselectAll, click: deselectAll\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\\u003E\\u003Ca class=\\\"remove arrow-button\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('DoubleListBox_DeselectAll')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dlb-selected\\\" data-bind=\\\"attr: {'aria-label' : strings.selectedItems}\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dlb-pager-container\\\" data-bind=\\\"visible: features.paging\\\"\\u003E\\u003Cdiv class=\\\"pager-selected-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"dlbItem\\\" data-id=\\\"#:_uniqueId#\\\" id=\\\"default-dlb-selected-#:_uniqueId#\\\" role=\\\"option\\\" aria-selected=\\\"true\\\"\\u003E\\u003Ca\" + (\" class=\\\"arrow-button remove a11y-k-listview-button selectedAction-deselect\\\"\"+\" href=\\\"javascript:void(0);\\\" tabindex=\\\"-1\\\" role=\\\"button\\\"\"+pug.attr(\"title\", i18n.getString('DoubleListBox_Deselect'), true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\\u003Cdiv class=\\\"dlbItem-actions\\\" aria-hidden=\\\"true\\\"\\u003E# for (var i = 0; i \\u003C customActions.length; i++) { #\\u003Ca class=\\\"dlbItem-customAction a11y-k-listview-button selectedAction-#:customActions[i].name #\\\" href=\\\"javascript:void(0);\\\" tabindex=\\\"-1\\\" role=\\\"button\\\"\\u003E#= customActions[i].caption #\\u003C\\u002Fa\\u003E    \\n# } #\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dlbItem-content\\\"\\u003E\\u003C!--content--\\u003E\\u003C\\u002Fdiv\\u003E# if (customActions.length \\u003E 0) { #\\u003Cdiv class=\\\"sr-only\\\"\\u003E\" + (null == (pug_interp = i18n.getString('DoubleListBox_HasActionButtons')) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E# } #\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"# var isSelected = typeof(selected) !== 'undefined' && selected === 'selected'; #\\u003Cdiv class=\\\"dlbItem #:selected# #:disabled#\\\" data-id=\\\"#:_uniqueId#\\\" id=\\\"default-dlb-source-#:_uniqueId#\\\" role=\\\"option\\\" aria-selected=\\\"#if (isSelected) {# true #} else{# false#}#\\\" aria-disabled=\\\"#if (isSelected) {# true #} else{# false #}#\\\"\\u003E\\u003Cdiv class=\\\"dlbItem-actions\\\" aria-hidden=\\\"true\\\"\\u003E# for (var i = 0; i \\u003C customActions.length; i++) { #\\n   \\u003Ca class=\\\"dlbItem-customAction a11y-k-listview-button sourceAction-#:customActions[i].name #\\\" href=\\\"javascript:void(0);\\\" tabindex=\\\"-1\\\" role=\\\"button\\\"\\u003E#= customActions[i].caption #\\u003C\\u002Fa\\u003E# } #\\u003Ca\" + (\" class=\\\"arrow-button a11y-k-listview-button sourceAction-select #if (isSelected) {# disabled #} else {# enabled #}#\\\"\"+\" href=\\\"javascript:void(0);\\\" tabindex=\\\"-1\\\" style=\\\"#if (isSelected) {# display:none #}#\\\" role=\\\"button\\\"\"+pug.attr(\"title\", i18n.getString('DoubleListBox_Select'), true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dlbItem-content\\\"\\u003E\\u003C!--content--\\u003E\\u003C\\u002Fdiv\\u003E# if (customActions.length \\u003E 0 || !isSelected) { #\\u003Cdiv class=\\\"sr-only\\\"\\u003E\" + (null == (pug_interp = i18n.getString('DoubleListBox_HasActionButtons')) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E# } #\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"pager\\\"\\u003E\\u003C!-- ko if: features.pageSizeSelector === true --\\u003E\\u003Cdiv class=\\\"pager-sizeselector\\\" data-bind=\\\"visible: features.pageSizeSelector === true\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Grid_ShowRows')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cselect\" + (\" data-bind=\\\"options: pageSizes, value: pageSize\\\"\"+pug.attr(\"aria-label\", i18n.getString('Grid_ShowRows'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko --\\u003E\\n\\u003C!-- ko if: pageCount() \\u003E 1 --\\u003E\\u003Cdiv class=\\\"pager-page\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"spritedimage clickable\\\"\"+\" data-bind=\\\"click: prevPage, css:{"pager-previous": !isFirstPage(), "pager-previous-disabled": isFirstPage()}, attr:{"tabindex": isFirstPage() ? "-1" : "0"}\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.getString('Component_Pagination_PreviousPage'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Grid_Page') + ':') ? \"\" : pug_interp)) + \"\\u003C!-- ko if: (enablePageJump === true) && (features.usePageInput !== true) --\\u003E\\u003Cselect\" + (\" class=\\\"pager-input\\\"\"+\" data-bind=\\\"options: pages, value: currentPage\\\"\"+pug.attr(\"aria-label\", i18n.getString('Grid_Page'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003C!-- \\u002Fko --\\u003E\\n\\u003C!-- ko if: (enablePageJump !== true) || (features.usePageInput === true) --\\u003E\\u003Cinput class=\\\"grid-pager-input\\\" data-bind=\\\"value: currentPage, enable: enablePageJump, event: { keypress: onKeyPress }\\\" type=\\\"text\\\"\\u003E\\u003C!-- \\u002Fko --\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Grid_PageOf')) ? \"\" : pug_interp)) + \"\\u003Cspan class=\\\"pager-totalCount\\\" data-bind=\\\"text:pageCount\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv\" + (\" class=\\\"spritedimage clickable\\\"\"+\" data-bind=\\\"click: nextPage, css:{"pager-next": !isLastPage(), "pager-next-disabled": isLastPage()}, attr:{"tabindex": isLastPage() ? "-1" : "0"}\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", i18n.getString('Component_Pagination_NextPage'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- \\u002Fko --\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003C!-- Initial verison. Mostly copied from doubleListBox. should be customized--\\u003E\\u003Cdiv class=\\\"dlbItem #:selected#\\\" data-id=\\\"#:_uniqueId#\\\" id=\\\"default-slb-item-#:_uniqueId#\\\"\\u003E\\u003Cdiv class=\\\"itemAction-select\\\"\\u003E\\u003Cdiv class=\\\"dlbItem-actions\\\"\\u003E# for (var i = 0; i \\u003C customActions.length; i++) { #\\n   \\u003Ca class=\\\"dlbItem-customAction a11y-k-listview-button itemAction-#:customActions[i].name #\\\" href=\\\"javascript:void(0);\\\" tabindex=\\\"-1\\\" role=\\\"button\\\"\\u003E#= customActions[i].caption #\\u003C\\u002Fa\\u003E# } #\\u003Ca\" + (\" class=\\\"arrow-button a11y-k-listview-button #if (selected) {# disabled #} else {# enabled #}#\\\"\"+\" href=\\\"javascript:void(0);\\\" tabindex=\\\"-1\\\" style=\\\"#if (selected) {# display:none #}#\\\"\"+pug.attr(\"title\", i18n.getString('DoubleListBox_Select'), true, true)+\" role=\\\"button\\\"\") + \"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dlbItem-content\\\"\\u003E\\u003C!--content--\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003C!-- Initial verison. Mostly copied from doubleListBox. should be customized--\\u003E\\u003Cdiv class=\\\"doubleListBox singleListBox layout-columns\\\"\\u003E\\u003Cdiv class=\\\"layout-columns-container\\\"\\u003E\\u003Cdiv class=\\\"layout-columns-element\\\"\\u003E\\u003Cdiv class=\\\"form-group filter_quickFilterContainer form-group\\\" name=\\\"filter_quickFilterContainer\\\"\\u003E\\u003Cdiv class=\\\"dlb-filter-alignPlaceholder col-sm-9\\\" data-bind=\\\"visible: features.filtering\\\"\\u003E\\u003Cdiv data-bind=\\\"searchbox: filterText, defaultText:strings.filterWatermark, filterAriaLabel: strings.filterAriaLabel, visible: features.filtering\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"row form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cdiv class=\\\"panel-form noPadding\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Ch4 class=\\\"panel-title\\\"\\u003E\\u003Cspan data-bind=\\\"text : strings.sourceItems\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"headerDelimiter\\\"\\u003E:  \\u003C\\u002Fspan\\u003E\\u003Cspan data-bind=\\\"text: sourceItemsCount\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fh4\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body noPadding\\\"\\u003E\\u003Cdiv class=\\\"dlb-emptyMessage\\\" data-bind=\\\"visible: showEmptyMessage()\\\"\\u003E\\u003Cspan data-bind=\\\"text: strings.emptyMessage\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dlb-source\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dlb-pager-container\\\" data-bind=\\\"visible: features.paging\\\"\\u003E\\u003Cdiv class=\\\"pager-container\\\"\\u003E\\u003C\\u002Fdiv\\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 (JSON) {var obj = JSON.parse(locals.FinalUrlJson.replace(/"/g, \"\\\"\").replace(/(\\\\u0026|&)/g, \"&\"));\nif (obj.IsFinal) {\nif (obj.URL && obj.URL !== \"\") {\nif (locals.DisableSuffix) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"control-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = obj.URL) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"control-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = locals.i18n.getString('FinalUrl_Suffix', obj.URL)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n}\nif (obj.MobileFinalURL && obj.MobileFinalURL != \"\") {\nif (locals.DisableSuffix) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"control-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = obj.MobileFinalURL) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"control-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = locals.i18n.getString('MobileFinalUrl_Suffix', obj.MobileFinalURL)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n}\n}\nelse\nif (obj.URL != null && obj.URL != \"\") {\nif (locals.DisableSuffix) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"control-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = obj.URL) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"control-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = locals.i18n.getString('DestinationUrl_Suffix', obj.URL)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"control-label\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"JSON\" in locals_for_with?locals_for_with.JSON:typeof JSON!==\"undefined\"?JSON: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 (content, dialogClass, footer, i18n, title) {pug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"modal\",\"fade\",\"uet-modal\",dialogClass], [false,false,false,true]), false, true)) + \"\\u003E\\u003Cdiv\" + (\" class=\\\"modal-dialog\\\"\"+\" role=\\\"dialog\\\"\"+pug.attr(\"aria-label\", title, true, true)) + \"\\u003E\\u003Cdiv class=\\\"modal-content\\\"\\u003E\\u003Cdiv class=\\\"modal-header\\\"\\u003E\\u003Cdiv class=\\\"close\\\" data-dismiss=\\\"modal\\\"\\u003E\\u003Cspan\" + (\" class=\\\"dialog-close-button clickable\\\"\"+\" role=\\\"button\\\" tabindex=\\\"0\\\"\"+pug.attr(\"aria-label\", i18n.getString('CloseLabel'), true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ch4 class=\\\"modal-title type-bold\\\"\\u003E\" + (null == (pug_interp = title) ? \"\" : pug_interp) + \"\\u003C\\u002Fh4\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"modal-body\\\"\\u003E\" + (null == (pug_interp = content) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\" + (null == (pug_interp = footer) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"content\" in locals_for_with?locals_for_with.content:typeof content!==\"undefined\"?content:undefined,\"dialogClass\" in locals_for_with?locals_for_with.dialogClass:typeof dialogClass!==\"undefined\"?dialogClass:undefined,\"footer\" in locals_for_with?locals_for_with.footer:typeof footer!==\"undefined\"?footer:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (_, i18n, tag) {pug_mixins[\"fwLink\"] = pug_interp = function(linkId, displayText, ariaLabelContext){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", 'https://go.microsoft.com/fwlink/?linkid=' + linkId, true, true)+\" target=\\\"_blank\\\"\"+pug.attr(\"aria-label\", (ariaLabelContext || '') + ' ' + displayText, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = displayText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n};\npug_mixins[\"helpLink\"] = pug_interp = function(topic, displayText, ariaLabelContext, fBindQuery){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nif (fBindQuery) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"HelpTopic\\\"\"+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"data-bind\", 'attr: { \"query\": \"help:\" + ' + topic + '}', true, true)+pug.attr(\"aria-label\", (ariaLabelContext || '') + ' ' + displayText, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = displayText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"HelpTopic\\\"\"+pug.attr(\"query\", 'help:' + topic, true, true)+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"aria-label\", (ariaLabelContext || ' ') + ' ' + displayText, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = displayText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\n};\nvar clarityTemplate = _.template(i18n.getString('UnifiedEventTracking_TagViewer_Clarity'))\npug_html = pug_html + (\"\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"form-control-static\\\"\\u003E\" + (null == (pug_interp = i18n.getString('UnifiedEventTracking_TagViewer_Desc_CopyPaste') + ' ') ? \"\" : pug_interp));\npug_mixins[\"helpLink\"]('app51203', i18n.getString('UnifiedEventTracking_TagViewer_Desc_CopyPasteHelp'), i18n.getString('UnifiedEventTracking_TagViewer_Desc_CopyPaste_Text'));\npug_html = pug_html + (pug.escape(null == (pug_interp = ' | ') ? \"\" : pug_interp));\npug_mixins[\"fwLink\"]('717465', i18n.getString('UnifiedEventTracking_SeeExamples'));\npug_html = pug_html + (\"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-control-static\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_TagViewer_Desc_EmailDownload')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-5\\\"\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Ch6 class=\\\"type-bold colon col-sm-2\\\" style=\\\"line-height: 2;\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_TagViewer_TagName')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh6\\u003E\\u003Ch6 class=\\\"col-sm-9 tag-name\\\" style=\\\"line-height: 2;\\\"\\u003E\" + (pug.escape(null == (pug_interp = tag.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh6\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-5\\\"\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Ch6 class=\\\"type-bold colon col-sm-1\\\" style=\\\"line-height: 2; width: auto\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_TagViewer_TagId')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh6\\u003E\\u003Ch6 class=\\\"col-sm-8\\\" style=\\\"line-height: 2;\\\"\\u003E\" + (pug.escape(null == (pug_interp = tag.id) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh6\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"tab-content\\\"\\u003E\\u003Clabel\\u003E\\u003Ctextarea class=\\\"form-control active tab-pane\\\" id=\\\"uet-tag-javascript\\\" readonly\\u003E\" + (pug.escape(null == (pug_interp = tag.script) ? \"\" : pug_interp)) + \"\\u003C\\u002Ftextarea\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"form-control-static\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_TagViewer_1stPartyCookie')) ? \"\" : pug_interp)));\npug_mixins[\"helpLink\"]('app54460', i18n.getString('UnifiedEventTracking_LearnMore'), i18n.getString('UnifiedEventTracking_TagViewer_1stPartyCookie'));\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-control-static\\\"\\u003E\" + (null == (pug_interp = clarityTemplate({ MicrosoftClarityAccount: '' + i18n.getString('UnifiedEventTracking_TagViewer_Clarity_Account') + ''})) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"_\" in locals_for_with?locals_for_with._:typeof _!==\"undefined\"?_:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"tag\" in locals_for_with?locals_for_with.tag:typeof tag!==\"undefined\"?tag: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, isGTMIntegrationEnabled) {pug_html = pug_html + \"\\u003Cdiv class=\\\"footer pull-right\\\"\\u003E\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cbutton class=\\\"col-sm-3 btn btn-primary btn-uet-copy-tag\\\" data-analyticsid=\\\"omniture-UET-copy-tag\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_TagViewer_CopyTag')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"col-sm-5 btn btn-default btn-uet-download-tag\\\" data-analyticsid=\\\"omniture-UET-download-tag\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_TagViewer_Download')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"col-sm-3 btn btn-default btn-uet-email-tag\\\" data-analyticsid=\\\"omniture-UET-email-tag\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_TagViewer_EmailTag')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\nif (isGTMIntegrationEnabled) {\npug_html = pug_html + \"\\u003Cbutton class=\\\"col-sm-3 btn btn-default btn-uet-gtm-tag\\\" data-analyticsid=\\\"omniture-UET-gtm-tag\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_TagViewer_IntegrateTagWithGTM')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isGTMIntegrationEnabled\" in locals_for_with?locals_for_with.isGTMIntegrationEnabled:typeof isGTMIntegrationEnabled!==\"undefined\"?isGTMIntegrationEnabled:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (errorMsg, i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"alert-panel panel panel-white\\\"\\u003E\\u003Cdiv class=\\\"alert alert-danger\\\" role=\\\"alert\\\"\\u003E\\u003Cdiv class=\\\"status-icon\\\"\\u003E\\u003Cdiv class=\\\"status_error spritedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = errorMsg) ? \"\" : pug_interp)) + \"\\u003Cbr \\u002F\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cbutton class=\\\"btn btn-default btn-close\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_Close_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"errorMsg\" in locals_for_with?locals_for_with.errorMsg:typeof errorMsg!==\"undefined\"?errorMsg:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (IsOfflineConversionRestateRetractFromUIAllowed, OnlineConversionRestateRetractUI, i18n) {if (!OnlineConversionRestateRetractUI) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"button btn btn-primary btn-main-upload\\\" data-bind=\\\"visible: showUploadButton(), click: uploadButtonClicked\\\"\\u003E\" + (pug.escape(null == (pug_interp = '+ '+i18n.getString('UnifiedEventTracking_UploadConversions_UploadTitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"file-picker panel panel-white\\\" data-bind=\\\"visible: !showUploadButton()\\\"\\u003E\";\nif (IsOfflineConversionRestateRetractFromUIAllowed) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"new-filepicker-tip\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cform enctype=\\\"multipart\\u002Fform-data\\\"\\u003E\\u003Cdiv class=\\\"offline-file-input-comp\\\"\\u003E\\u003Cspan class=\\\"offline-file-text\\\" data-bind=\\\"text: fileName\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Clabel class=\\\"btn btn-primary offline-file-broswer-btn clickable\\\" for=\\\"file-input\\\" role=\\\"button\\\" tabindex=\\\"0\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_File_Browse_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cinput\" + (\" class=\\\"offline-file-input file-input\\\"\"+\" id=\\\"file-input\\\" type=\\\"file\\\" data-bind=\\\"event : {change: fileDidPick.bind($data, $element)}\\\" aria-describedby=\\\"UploadConversionsFileWarningMessage\\\"\"+pug.attr(\"aria-label\", i18n.getString('UnifiedEventTracking_UploadConversions_File_Browse_Label'), true, true)) + \"\\u003E\\u003C\\u002Fform\\u003E\";\nif (!IsOfflineConversionRestateRetractFromUIAllowed) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"h3 filepicker-tip\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_Supported_Formats')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"alert alert-danger\\\" id=\\\"UploadConversionsFileWarningMessage\\\" role=\\\"alert\\\" data-bind=\\\"visible: showWarning\\\"\\u003E\\u003Cdiv class=\\\"status-icon\\\"\\u003E\\u003Cdiv class=\\\"status_error spritedimagealign alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan data-bind=\\\"text: warningMessage\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"h3 filepicker-tip\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_Wait_Message')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cbutton class=\\\"btn btn-primary btn-upload\\\" data-bind=\\\"enable: enableUpload, css:{'btn-upload-disabled': !enableUpload()}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_UploadPreview_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default btn-upload-cancel\\\" data-bind=\\\"click: cancelButtonClicked\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_Cancel')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"file-picker panel panel-white\\\"\\u003E\\u003Cdiv class=\\\"new-filepicker-tip\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cform enctype=\\\"multipart\\u002Fform-data\\\"\\u003E\\u003Cdiv class=\\\"offline-file-input-comp\\\"\\u003E\\u003Cspan class=\\\"offline-file-text\\\" data-bind=\\\"text: fileName\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Clabel class=\\\"btn btn-primary offline-file-broswer-btn clickable\\\" for=\\\"file-input\\\" role=\\\"button\\\" tabindex=\\\"0\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_File_Browse_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cinput\" + (\" class=\\\"offline-file-input file-input\\\"\"+\" id=\\\"file-input\\\" type=\\\"file\\\" data-bind=\\\"event : {change: fileDidPick.bind($data, $element)}\\\" aria-describedby=\\\"UploadConversionsFileWarningMessage\\\"\"+pug.attr(\"aria-label\", i18n.getString('UnifiedEventTracking_UploadConversions_File_Browse_Label'), true, true)) + \"\\u003E\\u003C\\u002Fform\\u003E\\u003Cdiv class=\\\"alert alert-danger\\\" id=\\\"UploadConversionsFileWarningMessage\\\" role=\\\"alert\\\" data-bind=\\\"visible: showWarning\\\"\\u003E\\u003Cdiv class=\\\"status-icon\\\"\\u003E\\u003Cdiv class=\\\"status_error spritedimagealign alert-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan data-bind=\\\"text: warningMessage\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"h3 filepicker-tip\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_Wait_Message')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cbutton class=\\\"btn btn-primary btn-upload\\\" data-bind=\\\"enable: enableUpload, css:{'btn-upload-disabled': !enableUpload()}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_UploadPreview_Button')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"IsOfflineConversionRestateRetractFromUIAllowed\" in locals_for_with?locals_for_with.IsOfflineConversionRestateRetractFromUIAllowed:typeof IsOfflineConversionRestateRetractFromUIAllowed!==\"undefined\"?IsOfflineConversionRestateRetractFromUIAllowed:undefined,\"OnlineConversionRestateRetractUI\" in locals_for_with?locals_for_with.OnlineConversionRestateRetractUI:typeof OnlineConversionRestateRetractUI!==\"undefined\"?OnlineConversionRestateRetractUI:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-6\\\"\\u003E\\u003Cdiv class=\\\"progress-text\\\"\\u003E\\u003Cspan class=\\\"spinner-header\\\"\\u003E\\u003Cspan class=\\\"status-text\\\" data-bind=\\\"text: statusText\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"status-progress\\\" data-bind=\\\"visible: showProgress, text: progressDetails\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cimg class=\\\"spinner-image\\\" data-bind=\\\"visible: showProgress\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"progress\\\"\\u003E\\u003Cdiv class=\\\"progress-bar\\\" data-bind=\\\"style:{width: percentage}\\\"\\u003E\\u003C\\u002Fdiv\\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 (_, i18n, isNewUI) {pug_mixins[\"helpLink\"] = pug_interp = function(topic, displayText, ariaLabelContext, fBindQuery){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nif (fBindQuery) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"HelpTopic\\\"\"+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"data-bind\", 'attr: { \"query\": \"help:\" + ' + topic + '}', true, true)+pug.attr(\"aria-label\", (ariaLabelContext || '') + ' ' + displayText, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = displayText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"HelpTopic\\\"\"+pug.attr(\"query\", 'help:' + topic, true, true)+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"aria-label\", (ariaLabelContext || ' ') + ' ' + displayText, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = displayText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\n};\npug_mixins[\"pageHeader\"] = pug_interp = function(headerText, subheaderText, subheaderTitle, learnMoreLinkText, learnMoreLinkTopicId){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Csection class=\\\"row\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\";\nif (headerText) {\npug_html = pug_html + \"\\u003Ch1 class=\\\"top-page-header type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = headerText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh1\\u003E\";\n}\nif (subheaderTitle) {\npug_html = pug_html + \"\\u003Ch3 class=\\\"type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = subheaderTitle) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh3\\u003E\";\n}\nif (subheaderText) {\npug_html = pug_html + (\"\\u003Ch3\\u003E\" + (null == (pug_interp = subheaderText) ? \"\" : pug_interp));\nif (learnMoreLinkText && learnMoreLinkTopicId) {\npug_mixins[\"helpLink\"](learnMoreLinkTopicId, learnMoreLinkText, subheaderText);\n}\npug_html = pug_html + \"\\u003C\\u002Fh3\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fsection\\u003E\";\n};\n\n\n\n\n\n\n\n\n\n\n\n\npug_mixins[\"helpLink\"] = pug_interp = function(topic, displayText, ariaLabelContext, fBindQuery){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nif (fBindQuery) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"HelpTopic\\\"\"+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"data-bind\", 'attr: { \"query\": \"help:\" + ' + topic + '}', true, true)+pug.attr(\"aria-label\", (ariaLabelContext || '') + ' ' + displayText, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = displayText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"HelpTopic\\\"\"+pug.attr(\"query\", 'help:' + topic, true, true)+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"aria-label\", (ariaLabelContext || ' ') + ' ' + displayText, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = displayText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\n};\npug_mixins[\"tutorialItem\"] = pug_interp = function(headerText, subheaderText, contentText, contentCss, hasNext, learnMoreLinkText, topicId, helpContext){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + (\"\\u003Csection class=\\\"row tutorial-item\\\"\\u003E\\u003Cdiv class=\\\"col-sm-11\\\"\\u003E\\u003Cdiv class=\\\"item-panel\\\"\\u003E\\u003Ch2 class=\\\"title\\\"\\u003E\" + (pug.escape(null == (pug_interp = headerText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh2\\u003E\\u003Cdiv class=\\\"desc\\\"\\u003E\" + (null == (pug_interp = subheaderText) ? \"\" : pug_interp));\nif (learnMoreLinkText && topicId) {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\npug_mixins[\"helpLink\"](topicId, learnMoreLinkText, helpContext || subheaderText);\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\nif (contentCss !== '') {\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([contentCss], [true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = contentText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (hasNext) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"col-sm-1 arrow-panel\\\"\\u003E\\u003Cdiv class=\\\"arrow\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fsection\\u003E\";\n};\npug_mixins[\"helpLink\"] = pug_interp = function(topic, displayText, ariaLabelContext, fBindQuery){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nif (fBindQuery) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"HelpTopic\\\"\"+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"data-bind\", 'attr: { \"query\": \"help:\" + ' + topic + '}', true, true)+pug.attr(\"aria-label\", (ariaLabelContext || '') + ' ' + displayText, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = displayText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"HelpTopic\\\"\"+pug.attr(\"query\", 'help:' + topic, true, true)+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"aria-label\", (ariaLabelContext || ' ') + ' ' + displayText, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = displayText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\n};\nvar learnMore = i18n.getString('UnifiedEventTracking_LearnMore')\nvar DontHaveUetTagTmpl = _.template(i18n.getString('UnifiedEventTracking_Goals_DontHaveUetTag_Desc'))\nvar goalTmpl = _.template(i18n.getString('UnifiedEventTracking_Tutorial_UploadConversiona_Desc'))\nvar goalTextTmpl = _.template(i18n.getString('UnifiedEventTracking_Tutorial_UploadConversiona_Desc_Text'))\nvar fileTmpl = _.template(i18n.getString('UnifiedEventTracking_Tutorial_OfflineConversionsToFile_Desc'))\nvar validationTextTmpl = _.template(i18n.getString('UnifiedEventTracking_Tutorial_Validation_Desc'))\nvar createGoalTextTmpl = _.template(i18n.getString('UnifiedEventTracking_Tutorial_Create_Desc'))\nvar edgeLink = '' + i18n.getString('UnifiedEventTracking_Tutorial_EdgeLink_Title') + ''\nvar chromeLink = '' + i18n.getString('UnifiedEventTracking_Tutorial_ChromeLink_Title') + ''\npug_html = pug_html + \"\\u003C!--type tag=1, goal=2, uploadConversions=3--\\u003E\";\npug_mixins[\"tutorialSection\"] = pug_interp = function(title, id, i18n, type, _){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"tutorialAccordion panel-group\\\"\"+pug.attr(\"id\", id, true, true)) + \"\\u003E\\u003Cdiv class=\\\"panel\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\" role=\\\"heading\\\"\\u003E\\u003Cdiv class=\\\"panel-title\\\"\\u003E\\u003Cspan\" + (\" class=\\\"spritedimage clickable\\\"\"+pug.attr(\"href\", '#'+id+'FirstPanel', true, true)+pug.attr(\"data-parent\", '#'+id, true, true)+\" data-bind=\\\"css: tutorialSectionExplandClass(), click: updateTutorialSectionStatus, attr: {"aria-expanded": tutorialSectionExplandClass() === "expandedImage" ? "true" : "false"}\\\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", title, true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cstrong\" + (pug.attr(\"href\", '#'+id+'FirstPanel', true, true)+pug.attr(\"data-parent\", '#'+id, true, true)+\" data-bind=\\\"click: updateTutorialSectionStatus\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"panel-collapse firstTutorialPanel\\\"\"+pug.attr(\"id\", id+'FirstPanel', true, true)+\" data-bind=\\\"css: tutorialSectionExplandClass() === "expandedImage" ? "in": "collapse"\\\"\") + \"\\u003E\\u003Csection class=\\\"row panel panel-white\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Ch3 class=\\\"type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_Tutorial_What_It_Is')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh3\\u003E\";\nif (type === 1) {\npug_html = pug_html + (\"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_TagsPage_Intro') + ' ') ? \"\" : pug_interp)));\npug_mixins[\"helpLink\"]('app51201', learnMore, i18n.getString('UnifiedEventTracking_TagsPage_Intro'));\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse\nif (type === 2) {\npug_html = pug_html + (\"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_GoalsPage_Intro') + ' ') ? \"\" : pug_interp)));\npug_mixins[\"helpLink\"]('app51200', learnMore, i18n.getString('UnifiedEventTracking_GoalsPage_Intro'));\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse\nif (type === 3) {\npug_html = pug_html + (\"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_Intro') + ' ') ? \"\" : pug_interp)));\npug_mixins[\"helpLink\"]('app54554', learnMore, i18n.getString('UnifiedEventTracking_UploadConversions_Intro'));\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fsection\\u003E\\u003Csection class=\\\"row panel panel-white tutorial-panel\\\"\\u003E\";\nif (type === 1) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"col-sm-3\\\"\\u003E\";\npug_mixins[\"tutorialItem\"](i18n.getString('UnifiedEventTracking_Tutorial_Tag_Title'), i18n.getString('UnifiedEventTracking_Tutorial_TagPage_Tag_Desc'), '', 'help-tag', true, learnMore, 'app51202');\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-3\\\"\\u003E\";\npug_mixins[\"tutorialItem\"](i18n.getString('UnifiedEventTracking_Tutorial_Tracking_Title'), i18n.getString('UnifiedEventTracking_Tutorial_Tracking_Desc'), '', 'help-tracking', true, learnMore, 'app51203');\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-3\\\"\\u003E\";\npug_mixins[\"tutorialItem\"](i18n.getString('UnifiedEventTracking_Tutorial_Create_Title'), createGoalTextTmpl({goalLink: '' + i18n.getString('UnifiedEventTracking_Goal_Page') + '', audienceLink: '' + i18n.getString('UnifiedEventTracking_Tags_Audience') + '', createConversionGoal: '' + i18n.getString('UnifiedEventTracking_Goals_CreateConversionGoal') + '', createRemarketingList: '' + i18n.getString('UnifiedEventTracking_Audiences_CreateRemarketingList') + '', goalHelp: '' + i18n.getString('UnifiedEventTracking_LearnMore') + '

'}), '', '', true, learnMore, 'app51222');\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-3\\\"\\u003E\";\npug_mixins[\"tutorialItem\"](i18n.getString('UnifiedEventTracking_Tutorial_Validation_Title'), validationTextTmpl({edgeExtLink: edgeLink, chromeExtLink: chromeLink}), '', 'help-validation', false, learnMore, 'app54548');\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (type === 2) {\npug_html = pug_html + (\"\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Ch3 class=\\\"type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_Goals_HowItWorks')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh3\\u003E\\u003Cdiv\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_Goals_HowItWorks_Desc')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_Tutorial_MobileAppNote') + ' ') ? \"\" : pug_interp)));\npug_mixins[\"helpLink\"]('app51209', learnMore, i18n.getString('UnifiedEventTracking_Tutorial_MobileAppNote'));\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-12\\\" data-bind=\\\"if: isCreateTagHelpVisible\\\"\\u003E\\u003Ch3 class=\\\"type-bold\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_Goals_DontHaveUetTag')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh3\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = DontHaveUetTagTmpl({ uetTagLink: '' + i18n.getString('UnifiedEventTracking_UET_Tag_Page') + '', createUetTag: '' + i18n.getString('UnifiedEventTracking_Tags_CreateNewTag') + '', createConversionGoal: '' + i18n.getString('UnifiedEventTracking_Goals_CreateConversionGoal') + '' })) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (type === 3) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\";\npug_mixins[\"tutorialItem\"](i18n.getString('UnifiedEventTracking_Tutorial_UploadConversions_Title'), goalTmpl({goalLink: '' + i18n.getString('UnifiedEventTracking_Goal_Page') + ''}), '', 'help-import-conversions', true, learnMore, 'app54504', goalTextTmpl({goalLink: '' + i18n.getString('UnifiedEventTracking_Goal_Page') + ''}));\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\";\npug_mixins[\"tutorialItem\"](i18n.getString('UnifiedEventTracking_Tutorial_OfflineConversionsToFile_Title'), fileTmpl({fileTemplateExcel: '\"tutFileXls\"', fileTemplateCsv: '\"tutFileCsv\"'}), '', 'help-add-offline-conversions-to-file', true, learnMore, 'app54554');\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-4\\\"\\u003E\";\npug_mixins[\"tutorialItem\"](i18n.getString('UnifiedEventTracking_Tutorial_UploadOfflineConversionFile_Title'), i18n.getString('UnifiedEventTracking_Tutorial_UploadOfflineConversionFile_Desc'), '', '', false, learnMore, 'app54554', i18n.getString('UnifiedEventTracking_Tutorial_UploadOfflineConversionFile_Desc_Text'));\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fsection\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\nvar header = i18n.getString('UnifiedEventTracking_UploadConversions_Title');\nvar subheader = i18n.getString('UnifiedEventTracking_UploadConversions_Description');\npug_html = pug_html + \"\\u003Cdiv class=\\\"uet\\\"\\u003E\\u003Cdiv railviewid=\\\"OfflineConversions_Load\\\" style=\\\"display: none\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"alert-banner\\\" data-bind=\\\"visible: hasError\\\"\\u003E\\u003Cdiv class=\\\"alert alert-danger\\\" role=\\\"alert\\\"\\u003E\\u003Cdiv class=\\\"status-icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"status_error spritedimagealign\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!-- ko if: hasError --\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('UnifiedEventTracking_UploadConversions_GenericError')) ? \"\" : pug_interp)) + \"\\u003C!-- \\u002Fko --\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (isNewUI) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"tutorial-section-for-uinext\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_mixins[\"pageHeader\"](header, subheader);\npug_mixins[\"tutorialSection\"](i18n.getString('UnifiedEventTracking_Tutorial_About_UetUploadConversions'), 'tutorialAccordion', i18n, 3, _);\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"operation-area section\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"history-area section\\\"\\u003E\\u003Cdiv class=\\\"upload-history\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"_\" in locals_for_with?locals_for_with._:typeof _!==\"undefined\"?_:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isNewUI\" in locals_for_with?locals_for_with.isNewUI:typeof isNewUI!==\"undefined\"?isNewUI:undefined));;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.$total) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value.$total.text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\nif (value.isForVNext) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"scope-navigator\\\"\"+pug.attr(\"href\", value.href, true, true)+pug.attr(\"data-campaignid\", value.cmpid, true, true)+pug.attr(\"data-adgroupid\", value.adgid, true, true)+pug.attr(\"aria-label\", value.ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", value.href, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\n}}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([value.isBidReadOnly ? 'bidlandscape-column grid-readonly-cell' : 'bidlandscape-column'], [true]), false, true)) + \"\\u003E\\u003Cdiv class=\\\"bidlandscape-bid-value\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.bid || '-') ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\nif (!value.isBidReadOnly && value.isSearchMediumType && value.id && value.hasBidlandscape) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"iconba iconba-Financial bidlandscape_icon spritedimagealign spritedimage clickable\\\"\"+pug.attr(\"title\", value.i18n.getString('clickableIconText'), true, true)+pug.attr(\"id\", `adgroupBidLandscape${value.id}`, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (schemaI18n, value) {if (value) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = schemaI18n.value('AdGroup', 'DisplayBiddingStrategyType', value)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\n}}.call(this,\"schemaI18n\" in locals_for_with?locals_for_with.schemaI18n:typeof schemaI18n!==\"undefined\"?schemaI18n:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {if (value.name) {\nif (value.baseCampaignName) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"base-campaign-name\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.baseCampaignName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nif (value.isForVNext) {\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"class\", pug.classes([\"scope-navigator\",value.className], [false,true]), false, true)+pug.attr(\"href\", value.href, true, true)+pug.attr(\"data-campaignid\", value.cmpid, true, true)+pug.attr(\"aria-label\", value.ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", value.href, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\n}}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (date, useCampaignLevelDates) {if (useCampaignLevelDates) {\npug_html = pug_html + \"\\u003Cspan class=\\\"grid-cell-text dashed-date-entry\\\"\\u003E\" + (pug.escape(null == (pug_interp = date) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan class=\\\"grid-cell-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = date) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}}.call(this,\"date\" in locals_for_with?locals_for_with.date:typeof date!==\"undefined\"?date:undefined,\"useCampaignLevelDates\" in locals_for_with?locals_for_with.useCampaignLevelDates:typeof useCampaignLevelDates!==\"undefined\"?useCampaignLevelDates:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (schemaI18n, value) {if (value) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = schemaI18n.enum('Medium', value)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\n}}.call(this,\"schemaI18n\" in locals_for_with?locals_for_with.schemaI18n:typeof schemaI18n!==\"undefined\"?schemaI18n:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (isForVNext, value) {if (value.score > 0) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value.score) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\\u002F10 \\u003C\\u002Fspan\\u003E\";\nif (isForVNext) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"iconba iconba-More quality-score-tooltip\\\"\"+pug.attr(\"title\", value.title, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"status-image status_icon quality-score-detail\\\"\"+pug.attr(\"title\", value.title, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E-\\u003C\\u002Fspan\\u003E\";\n}}.call(this,\"isForVNext\" in locals_for_with?locals_for_with.isForVNext:typeof isForVNext!==\"undefined\"?isForVNext:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (enableGridFlexLayout, i18n, isForVNext, value) {if (value.EntityStatus) {\npug_html = pug_html + \"\\u003Cspan\\u003E\";\nif (value.EntityStatus === 'Paused') {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statuschangetask statusicondisplay statuschangehover clickable\\\"\"+\" tabindex=\\\"0\\\"\"+pug.attr(\"id\", `statusIcon${value.Id}`, true, true)+pug.attr(\"data-rowId\", `${value.Id}`, true, true)+\" data-statusText=\\\"Paused\\\"\"+pug.attr(\"aria-label\", `${i18n.getString('EntityStatus_Paused')}`, true, true)+\" role=\\\"button\\\"\") + \"\\u003E\";\nif (value.isExperiment) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"experiment-paused-icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusPaused_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (isForVNext && enableGridFlexLayout) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"iconba iconba-ChevronDown\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (value.EntityStatus === 'Draft') {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statusicondisplay\\\"\"+pug.attr(\"id\", `statusIcon${value.Id}`, true, true)+pug.attr(\"data-rowId\", `${value.Id}`, true, true)+\" data-statusText=\\\"Draft\\\"\"+pug.attr(\"aria-label\", `${i18n.getString('EntityStatus_Draft')}`, true, true)+\" role=\\\"button\\\"\") + \"\\u003E\";\nif (value.isExperiment) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"experiment-paused-icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusDraft_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (value.EntityStatus === 'Expired') {\nif (isForVNext) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"iconba iconba-Remove\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statushypendisplay\\\"\\u003E\" + (pug.escape(null == (pug_interp = ' - ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statuschangetask statusicondisplay statuschangehover clickable\\\"\"+\" tabindex=\\\"0\\\"\"+pug.attr(\"id\", `statusIcon${value.Id}`, true, true)+pug.attr(\"data-rowId\", `${value.Id}`, true, true)+\" data-statusText=\\\"Enabled\\\"\"+pug.attr(\"aria-label\", `${i18n.getString('EntityStatus_Active')}`, true, true)+\" role=\\\"button\\\"\") + \"\\u003E\";\nif (value.isExperiment) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"experiment-active-icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"statusEnabled_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (isForVNext && enableGridFlexLayout) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"iconba iconba-ChevronDown\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\n}}.call(this,\"enableGridFlexLayout\" in locals_for_with?locals_for_with.enableGridFlexLayout:typeof enableGridFlexLayout!==\"undefined\"?enableGridFlexLayout:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isForVNext\" in locals_for_with?locals_for_with.isForVNext:typeof isForVNext!==\"undefined\"?isForVNext:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","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.isForVNext) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"scope-navigator\\\"\"+pug.attr(\"href\", value.href, true, true)+pug.attr(\"data-campaignid\", value.cmpid, true, true)+pug.attr(\"data-adgroupid\", value.adgid, true, true)+pug.attr(\"aria-label\", value.ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"href\", value.href, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (DSAAssetReport, MMAAssetReport, value) {pug_mixins[\"responsiveAdPreviewTemplate\"] = pug_interp = function(item, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"responsive-ad-preview-shared-template\\\" style=\\\"display: flex;\\\"\\u003E\";\nif (!item.isVideo && !item.LandscapeImageMediaUrl && !item.isMultimediaAd && (!item.isMultimediaAdinMSANEnabled || !item.LandscapeImageMediaUrl)) {\npug_html = pug_html + \"\\u003Cp\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AdType_ResponsiveAd')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fp\\u003E\";\n}\nelse {\nif (item.isVideo) {\nif (item.LandscapeImageMediaUrl) {\npug_html = pug_html + \"\\u003Cdiv style=\\\"display: inline-block;float: left;\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (item.isVerticalVideo) {\npug_html = pug_html + \"\\u003Cimg\" + (\" class=\\\"verticalVideoThumbnail\\\"\"+pug.attr(\"src\", item.LandscapeImageMediaUrl, true, true)+\" align=\\\"left\\\" alt=\\\"\\\" width=\\\"34\\\" height=\\\"60\\\"\"+pug.attr(\"data-video-id\", item.IdString, true, true)) + \"\\u003E\\u003Cspan class=\\\"glyphicon glyphicon-play\\\" style=\\\"position: relative; left: -34px; top: 20px;width: 0px; font-size: 18px;display: inline-block;color: white\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cimg\" + (pug.attr(\"src\", item.LandscapeImageMediaUrl, true, true)+\" align=\\\"left\\\" alt=\\\"\\\" width=\\\"114\\\" height=\\\"60\\\"\"+pug.attr(\"data-video-id\", item.IdString, true, true)) + \"\\u003E\\u003Cspan class=\\\"glyphicon glyphicon-play\\\" style=\\\"position: relative; left: -70px; top: 20px;width: 0px; font-size: 24px;display: inline-block;color: white\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\n}\nelse\nif ((item.campaignSubType === 'BrandAwarenessVideoAds' && !item.shouldShowActionNeededForGoogleImprotVideoAd)) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"video-preview-div\\\" style=\\\"float: left;width: 114px;height: 60px;margin-right: 10px;display: flex;align-items: center; border-radius: 6px; justify-content: center; background: #F3F2F1; border: 1px solid;\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Video_Preview_Processing')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"video-preview-div\\\" style=\\\"float: left;width: 114px;height: 60px;margin-right: 10px;display: flex;align-items: center;\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Video_Preview_Unavailable')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse\nif (!item.isPlaceholderMMA) {\npug_html = pug_html + \"\\u003Cdiv style=\\\"display: flex; flex-direction: column;\\\"\\u003E\\u003Cimg\" + (pug.attr(\"src\", item.LandscapeImageMediaUrl, true, true)+\" align=\\\"left\\\" alt=\\\"\\\"\") + \"\\u003E\";\nif ((item.imageCount && item.imageCount > 1)) {\npug_html = pug_html + \"\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('RSA_Count_More').replace('{{count}}', item.imageCount - 1)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv style=\\\"flex: 1; display: flex;flex-direction: column;\\\"\\u003E\";\nif (!item.isPlaceholderMMA) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"previewTitle\\\"\\u003E\\u003Ca\" + (\" class=\\\"previewTitleAd\\\"\"+\" target=\\\"_blank\\\"\"+pug.attr(\"href\", item.convertedFinalUrl, true, true)+\" onclick=\\\"event.stopPropagation();\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = item.Headline) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\nif ((item.HeadlineCount && item.HeadlineCount > 1)) {\npug_html = pug_html + \"\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('RSA_Count_More').replace('{{count}}', item.HeadlineCount - 1)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Ca class=\\\"previewUrlAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = item.convertedDisplayUrl) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewText\\\"\\u003E\\u003Cspan class=\\\"previewTextAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = item.Text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\nif ((item.TextCount && item.TextCount > 1)) {\npug_html = pug_html + \"\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('RSA_Count_More').replace('{{count}}', item.TextCount - 1)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan class=\\\"previewTextAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = item.Headline) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n};\npug_mixins[\"dynamicSearchAdPreviewTemplate\"] = pug_interp = function(item, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"dynamic-search-ad-preview-shared-template\\\"\\u003E\\u003Cdiv\\u003E\\u003Cspan class=\\\"previewTitleAdNoLink\\\"\\u003E\" + (pug.escape(null == (pug_interp = item.convertedTitle) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Ca class=\\\"previewUrlAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = item.convertedDisplayUrl) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"dynamic-search-ad-preview-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = item.Text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\nif (value.$total) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value.$total.text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\nvar type = value.Type\nvar alertText = value.i18n.getString('AdControl_DynamicURLNotAvailable')\nvar isResponsive = type == 'Responsive'\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"previewAd\",isResponsive ? 'audience-ad-grid-preview +active' : '+active'], [false,true]), false, true)) + \"\\u003E\";\nif (type == 'Text') {\npug_html = pug_html + \"\\u003Cdiv\\u003E\";\nif (value.convertedFinalUrl.indexOf('{') != -1) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"previewTitleAd noLink\\\"\"+\" target=\\\"_blank\\\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"onclick\", `javascript:alert('${alertText}'); event.stopPropagation();`, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.computedTitle) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse\nif (value.convertedFinalUrl.length === 0) {\npug_html = pug_html + \"\\u003Cspan class=\\\"previewTitleAdNoLink\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.computedTitle) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"previewTitleAd\\\"\"+\" target=\\\"_blank\\\"\"+pug.attr(\"href\", value.convertedFinalUrl, true, true)+\" onclick=\\\"event.stopPropagation();\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = value.Title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Ca class=\\\"previewUrlAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.convertedDisplayUrl) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewTextAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.Text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (type == 'Hotel') {\npug_html = pug_html + \"\\u003Ca class=\\\"HotelAd\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.convertedText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse\nif (type == 'Product') {\npug_html = pug_html + \"\\u003Ca class=\\\"productAd\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.convertedText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse\nif (type == 'AppInstall') {\npug_html = pug_html + \"\\u003Cdiv\\u003E\\u003Ca\" + (\" class=\\\"previewTitleAd\\\"\"+\" target=\\\"_blank\\\"\"+pug.attr(\"href\", value.convertedFinalUrl, true, true)+\" onclick=\\\"event.stopPropagation();\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = value.Title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Ca class=\\\"previewUrlAd\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.platformText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewTextAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.Text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (type == 'DynamicSearch') {\npug_mixins[\"dynamicSearchAdPreviewTemplate\"](value);\nif (DSAAssetReport) {\npug_html = pug_html + \"\\u003Ca class=\\\"linkToAssets\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.i18n.getString('RSA_LinkText_To_Asset')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\n}\nelse\nif (type == 'ExpandedText') {\npug_html = pug_html + \"\\u003Cdiv\\u003E\\u003Ca\" + (\" class=\\\"previewTitleAd\\\"\"+\" target=\\\"_blank\\\"\"+pug.attr(\"href\", value.convertedFinalUrl, true, true)+\" onclick=\\\"event.stopPropagation();\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = value.convertedTitle) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Ca class=\\\"previewUrlAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.convertedDisplayUrl) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewTextAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.Text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (value.isLinkedInAd) {\npug_html = pug_html + \"\\u003Cdiv style=\\\"display: flex;align-items: center;\\\"\\u003E\\u003Cimg\" + (\" class=\\\"previewImage\\\"\"+pug.attr(\"src\", value.LandscapeImageMediaUrl, true, true)+\" align=\\\"left\\\" alt=\\\"\\\"\") + \"\\u003E\\u003Cdiv style=\\\"margin-left: 8px;\\\"\\u003E\\u003Ca\" + (\" class=\\\"previewTitleAd\\\"\"+\" target=\\\"_blank\\\"\"+pug.attr(\"href\", value.convertedFinalUrl, true, true)+\" onclick=\\\"event.stopPropagation();\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = value.Headline) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan class=\\\"previewTextAd\\\" style=\\\"display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.Text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (isResponsive) {\npug_mixins[\"responsiveAdPreviewTemplate\"](value, value.i18n);\nif (value.isMultimediaAd && !value.isPlaceholderMMA) {\npug_html = pug_html + \"\\u003Ca class=\\\"linkToAssets\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.i18n.getString('RSA_LinkText_To_Asset')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nif (value.isMultimediaAd && MMAAssetReport && value.isPlaceholderMMA) {\npug_html = pug_html + \"\\u003Ca class=\\\"linkToAssets\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.i18n.getString('RSA_LinkText_To_Asset')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nif (value.isMultimediaAdinMSANEnabled && value.isAudienceAssetReportEnabled && !value.isPlaceholderMMA) {\npug_html = pug_html + \"\\u003Ca class=\\\"linkToAssets\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.i18n.getString('RSA_LinkText_To_Asset')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\n}\nelse\nif (type == 'ResponsiveSearch') {\npug_html = pug_html + \"\\u003Cdiv class=\\\"previewTitle\\\"\\u003E\\u003Ca\" + (\" class=\\\"previewTitleAd\\\"\"+\" target=\\\"_blank\\\"\"+pug.attr(\"href\", value.convertedFinalUrl, true, true)+\" onclick=\\\"event.stopPropagation();\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = value.convertedTitle) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.moreTitleHint) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\\u003E\\u003Ca class=\\\"previewUrlAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.convertedDisplayUrl) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"previewText\\\"\\u003E\\u003Cspan class=\\\"previewTextAd\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.Text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"moreHint\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.moreTextHint) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ca class=\\\"linkToAssets\\\" href=\\\"javascript:void(0)\\\"\\u003E\" + (pug.escape(null == (pug_interp = value.i18n.getString('RSA_LinkText_To_Asset')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"DSAAssetReport\" in locals_for_with?locals_for_with.DSAAssetReport:typeof DSAAssetReport!==\"undefined\"?DSAAssetReport:undefined,\"MMAAssetReport\" in locals_for_with?locals_for_with.MMAAssetReport:typeof MMAAssetReport!==\"undefined\"?MMAAssetReport:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (adStrength, showSuggestion) {pug_html = pug_html + \"\\u003Cdiv class=\\\"ad-strength-container\\\"\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"ad-strength-column\",`ad-strength ${showSuggestion ? 'clickable': ''}`], [false,true]), false, true)+pug.attr(\"style\", pug.style(`border-bottom: ${showSuggestion ? '1px dashed #0078D4': 'none'}`), true, true)+\" tabindex=\\\"0\\\"\"+pug.attr(\"role\", `${showSuggestion ? 'button': ''}`, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = adStrength) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"adStrength\" in locals_for_with?locals_for_with.adStrength:typeof adStrength!==\"undefined\"?adStrength:undefined,\"showSuggestion\" in locals_for_with?locals_for_with.showSuggestion:typeof showSuggestion!==\"undefined\"?showSuggestion: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 (isDisableEXTA, isStandardTextAd, schemaI18n, statusTypeClass, value) {if (isDisableEXTA) {\npug_html = pug_html + \"\\u003Cdiv\\u003E\";\nif (value) {\npug_html = pug_html + \"\\u003Cbr\\u003E\\u003Cdiv class=\\\"ad-type trigger-popup\\\"\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"status-column\",\"clickable\",`${statusTypeClass} ads_type_exta_deprecate_reasons`], [false,false,true]), false, true)+\" tabindex=\\\"0\\\" role=\\\"button\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = schemaI18n.enum('AdType', value)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (isStandardTextAd) {\npug_html = pug_html + \"\\u003Cdiv\\u003E\";\nif (value) {\npug_html = pug_html + \"\\u003Cbr\\u003E\\u003Cdiv class=\\\"ad-type trigger-popup\\\"\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"status-column\",\"clickable\",`${statusTypeClass} ads_type_sta_deprecate_reasons`], [false,false,true]), false, true)+\" tabindex=\\\"0\\\" role=\\\"button\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = schemaI18n.enum('AdType', value)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\nif (value) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = schemaI18n.enum('AdType', value)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\n}\n}}.call(this,\"isDisableEXTA\" in locals_for_with?locals_for_with.isDisableEXTA:typeof isDisableEXTA!==\"undefined\"?isDisableEXTA:undefined,\"isStandardTextAd\" in locals_for_with?locals_for_with.isStandardTextAd:typeof isStandardTextAd!==\"undefined\"?isStandardTextAd:undefined,\"schemaI18n\" in locals_for_with?locals_for_with.schemaI18n:typeof schemaI18n!==\"undefined\"?schemaI18n:undefined,\"statusTypeClass\" in locals_for_with?locals_for_with.statusTypeClass:typeof statusTypeClass!==\"undefined\"?statusTypeClass:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (schemaI18n, value) {if (value) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = schemaI18n.enum('DevicePreference', value)) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\n}}.call(this,\"schemaI18n\" in locals_for_with?locals_for_with.schemaI18n:typeof schemaI18n!==\"undefined\"?schemaI18n:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"form-inline perfDataExplanation\\\"\\u003E\\u003Clabel class=\\\"summarypage-bifreshtime\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AccountDashboard_BITimeStampNotes_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cbr\\u003E\\u003Clabel class=\\\"summarypage-bifreshtime\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('MRCAccredited_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = value.ageGender) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = value.gender) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = value.medium) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = value.callStatus) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = value.date) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = value.targetLocation) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cspan\\u003E\";\nif (value.LabelColor && value.LabelName) {\npug_html = pug_html + \"\\u003Cspan\" + (\" class=\\\"display-inline-block label-color-span\\\"\"+pug.attr(\"style\", pug.style('width:15px;height:15px;display:inline-block;margin-right:5px;background-color:' + value.LabelColor +''), true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value.LabelName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value.LabelName) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = value.network) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = value.campaignType) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = value.language) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = value.date) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = value.dayOfWeek) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = value.month) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = value.quarter) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value.i18nStr) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = value.week) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + \"\\u003Cdiv\\u003E\" + (pug.escape(null == (pug_interp = value.year) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {if (value.name) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"scope-navigator\\\"\"+pug.attr(\"href\", value.href, true, true)+pug.attr(\"data-customparams\", value.customparams , true, true)+pug.attr(\"data-pathname\", value.pathname , true, true)+pug.attr(\"aria-label\", value.ariaLabel, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = value.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (accountId, customerId, i18n, userId) {pug_html = pug_html + \"\\u003Cdiv class=\\\"panel\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Cdiv class=\\\"panel-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('NegativeKeywordList_ListToCampaignAssociate_Title')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-body form-horizontal\\\"\\u003E\\u003Cdiv class=\\\"associations__container\\\"\\u003E\\u003Cdiv class=\\\"instruction\\\" data-bind=\\\"if: accountLevel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('NegativeKeywordList_ListToCampaignAssociate_Subtitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"instruction\\\" data-bind=\\\"if: !accountLevel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('NegativeKeywordList_ListToCampaignAssociate_CampaignLvl_Subtitle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"campaign-adgroup-selector\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\" data-bind=\\\"if: showSelector\\\"\\u003E\\u003Clabel class=\\\"col-sm-2 control-label\\\" data-bind=\\\"text: selectorLabel\\\"\\u003E\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"form-horizontal col-sm-4 create-keywords-panel__adgroup-selector\\\"\\u003E\\u003Cdiv class=\\\"new-campaign-adgroup-selector\\\" data-bind=\\\"scope: scope, showCampaignSelector: showCampaignSelector, showAdgroupSelector: showAdgroupSelector, multiSelectMode: false\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"visible: selectorError\\\"\\u003E\\u003Cspan class=\\\"selector-error\\\" data-bind=\\\"text: selectorError\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"doubleListBox\\\" data-bind=\\\"doubleListBox: selectedLists, dlbData: { sourceItems: allLists, itemIdField: 'Id', pageSize: 20, useCallbackForFetchOnly: true }, dlbItemActions: {}, dlbFeatures: {selectAll: true, deselectAll: true, paging: false}, dlbTemplates: {}, dlbStrings: multiSelectOptions.strings, visible: !!selectedCampaignId()\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-bind=\\\"foreach: {data:$errors, as: 'error'}\\\"\\u003E\\u003Cdiv class=\\\"error\\\" data-bind=\\\"text: error\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Ca\" + (pug.attr(\"href\", '/campaign/vnext/negativekeywordlistslibrary?cid=' + customerId + '&uid=' + userId + '&aid=' + accountId, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('SharedLibrary_NegativeKeyword_Description')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\"\\u003E\\u003Cinput\" + (\" class=\\\"button button-highlighted btn btn-primary\\\"\"+\" id=\\\"btnSave\\\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.getString('Save'), true, true)+\" data-bind=\\\"enable: shouldEnableSave\\\"\") + \"\\u003E\\u003Cinput\" + (\" class=\\\"button btn btn-default\\\"\"+\" id=\\\"btnCancel\\\" type=\\\"button\\\"\"+pug.attr(\"value\", i18n.getString('Cancel'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"accountId\" in locals_for_with?locals_for_with.accountId:typeof accountId!==\"undefined\"?accountId:undefined,\"customerId\" in locals_for_with?locals_for_with.customerId:typeof customerId!==\"undefined\"?customerId:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"userId\" in locals_for_with?locals_for_with.userId:typeof userId!==\"undefined\"?userId:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + (pug.escape(null == (pug_interp = value.type) ? \"\" : pug_interp));}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (value) {pug_html = pug_html + (pug.escape(null == (pug_interp = value.text) ? \"\" : pug_interp));}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;"],"names":["scrollTo","$e","$","$nav","length","offset","navBarHeight","css","outerHeight","top","newTop","window","i18n","globalLegacyI18n","get","getDefaultRange","today","metadata","getRanges","thisMonth","getFilterPromise","names","Promise","name","dateFilterPref","then","result","dateFilter","dateUtils","date","accountTimeZoneNow","range","dateFilters","primaryRange","start","Date","end","getPSTTime","lcid","_","Rangelcid","pageContext","CurrentUser","Locale","grain","isCustom","getRangeByGrainId","value","formattedStart","format","formattedEnd","formatedStart","formatedEnd","compared","comparedRange","actions","args","idBasedSelection","filteredSelection","entityProperties","bidUtils","hotelCenterUtils","bidMultiplierUtils","argFields","additionalArgs","formatEntityValueFunction","_formatBidMultipliersEntityValue","modelInfo","changes","newValue","NewValue","OriginalValue","JSON","parse","getText","getString","e","jobSelectionFunction","jobModel","_isDemographicsJobModel","_getJobSelection","filter","filterSerializer","fromDescription","sortedFilter","splitFilter","FilterExpressions","scope","_getScopeString","quickFilter","dataSourceFilter","_getFilterString","expressions","summaryFunction","_getJobSummary","_getDemographicsJobSummary","_getJobSummaryCashbackPercent","jobInfo","properties","localizeAdditionalArgsFunction","_localizePercentAdditionalArgs","entity","decimalFormat","fromFloatToString","getHotelCenterBidAmountAddonText","join","_formatEntityValue","action","Limit","addonText","_localizeAdditionalArgs","Status","selection","isMonthly","QueryString","decodeURIComponent","indexOf","campaignBudgetTypes","monthly","entityKeys","originalPBS","safeJSON","Key","Id","Name","_getBiddingSchemeValue","escapeHelper","escape","isNew","originalValue","originalIBS","copyPasteDescriptions","Property","push","pasted","copied","idBased","idsCount","Plural","Singular","ids","argField","header","footer","change","field","historyJobDetails","quickFilters","enabledCampaigns","SelectedColumn","SelectedOperator","Values","enabledKeywords","enabledAdGroups","enabledAds","dataSourceFilters","criterionType","LevelOfDetails","booleanFields","_getJobModelInfo","batchAction","firstActionModel","Actions","actionValueType","actionModel","values","find","item","substring","_getActionValueType","jobMetadata","isCashbackPercent","search","isCashbackBudget","isPercentCPCBid","isCommissionRate","isNumeric","isCurrency","ActionType","isPercent","splitProperty","property","splitStr","replace","toLowerCase","trim","charAt","toUpperCase","slice","entityName","jobSummary","index","singleLineSummary","propertyMsg","propertyName","i18nActionBasedKey","_geti18nActionBasedKey","i18nValueBasedKey","_geti18nValueBasedKey","urlOptionsFields","customParameters","Value","param","val","localizedKey","jobArgs","_getJobArguments","list","localizedString","i18nActionBasedArgs","concat","i18nValueBasedArgs","valueBased","apply","actionBased","key","isNewAudienceEnabled","Permissions","IsNewAudienceEnabled","BidType","isSingular","AssociationList","jsonValue","getMultipliersText","_formatNumericValue","_formatActionValue","mappedValues","AccountCurrencyCode","_getIdBasedScopeString","_getRuleScope","CampaignId","AdGroupId","campaign","adgroup","filterExpressions","numberOfDigits","expr","deliveryStatus","toString","IsMultiMediaAdsEnabled","expression","columnLocalized","_localizeColumnName","operatorLocalized","valuesLocalized","_localizeValues","startsWith","customColumnId","split","customColumnData","customColumnServiceWrapper","customColumnUtils","CustomColumns","customColumnPreference","getAll","customColumnInfo","customColumn","id","valuesToUse","SelectedNames","scopeValue","i18nKey","dynamic","XandrVideoCampaigns","match","formatRSAString","rsaString","RSAHelper","formattedValue","getMultipliersDetailText","matches","asCurrency","coverNegativeNumber","formattedNumber","Math","abs","currencySuffix","keys","map","qfKey","matchingExpression","object","getJobDescription","summary","getJobSelection","mapEntityErrors","entityResult","apiErrorMessages","Errors","error","errorMapper","mapCampaignApiErrorCodeShort","mapCampaignApiErrorCode","editorialErrors","EditorialErrors","mapEditorialErrors","editorialErrorMessages","countryName","message","formatEntityValue","getRuleSelection","fromRuleDescription","qfilter","splice","getJobDetails","model","BaseModel","extend","defaults","prototype","Entity","BatchAction","Collection","backbone","url","sync","method","options","yesterday","setDate","getDate","startdate","toISOString","enddate","this","urlUtil","odata","formatBid","rows","data","EntityKeyObject","EntityKey","obj","CampaignName","isHtml","AdgroupName","entityKeyObject","hasOwnProperty","ageRangeEnum","AgeRange","GenderType","ProfileName","formatEntityString","Changes","decimalNumber","fromFloatToPercentString","newValueText","getSelectedEntityIdStrings","gridView","selectedItems","campaignId","Campaign","getUrlParameter","AdGroup","view","BaseView","initialize","arguments","template","ko_model","viewModel","render","setAction","simulateResults","unset","grid","pgridPlugins","crossPageSelectAll","isAllSelected","set","cashbackPercentValue","getCashbackPercentValueByAction","numericActionType","setAmount","getIdFilter","getFilterURLParam","conditionString","filterService","getCombinedFilter","odataV4","idFilterExperessions","filterExpression","idString","filterConverter","convert","$filter","encodeURIComponent","formatErrors","errors","formatPreviewResults","results","getProgressText","escapeMap","regObj","RegExp","str","escapedVal","Ad","ProgressText","EmptySetTextError","TrackingTemplateProperty","FinalUrlSuffixProperty","Keyword","actionOptions","actionTypes","Text","findReplace","append","trackingTemplateActionOptions","trackingTemplateActionTypes","customParametersActionOptions","customParametersActionTypes","fieldOptions","trackingTemplate","finalUrlSuffix","customParametersName","customParametersValue","Base","call","entityLowerCase","IsFinalURLSuffixEnabled","entityType","showExtaWarningMessage","trackingTemplateActions","customParametersActions","fields","opt","selectedAction","ko","selectedField","trackingTemplateSelectedAction","customParametersSelectedAction","showCustomParamsInput","showTrackingTemplateInput","subscribe","errorMessage","showFindReplacePanel","showAppendTextPanel","showSetTextPanel","showFinalUrlSuffixInput","changeTextOption","textActionTypes","findTextValue","SearchString","findText","read","write","owner","findReplaceOptions","MatchWholeWord","replaceText","appendTextValue","appendText","selectedEntityCount","titleText","maxTrackingTemplateLength","maxFinalUrlSuffixLength","maxCustomParametersLength","maxCustomParametersKeyLength","maxCustomParametersValueLength","maxLength","errorRole","entityHeaderName","previewGrids","errorsGrids","showPreview","validate","alert","customParams","getValues","params","entityTextMessage","it","out","UrlCustomParametersJson","UrlCustomParameters","Parameters","Array","isArray","i","allowedEntities","helper","defaultValue","customParamsGridTemplate","stringify","scenarioName","activity","instrumentation","create","selectedRows","gridHelper","getSelectedRows","hasExtaSelected","row","Type","isCrossPageAllSelected","permissions","config","ChangeUrlOptionsVM","IsWhiteListEXTAEnabled","goToAddReplaceMode","goToRemoveMode","upgradeUrl","bulkEditMode","bulkEditShowAddLabel","bulkEditShowMatchCase","html","$el","isDisabled","setDisabled","createBaseActionObject","odataType","actionType","customParamsValues","actionIdx","Options","None","finalUrlSuffixActionTypes","matchOptions","matchCase","MatchCase","MatchOptions","selectedOptions","ret","filterHelper","entityProgressTextMap","formatGridResults","urlOptionsDisplay","numberOfActions","propertiesToChange","changesToPatch","entityChange","presentChanges","memo","patchedChanges","pair","oldTrackingTemplate","newTrackingTemplate","oldCustomParams","newCustomParams","oldFinalUrlSuffix","newFinalUrlSuffix","entityValues","firstCell","bulkOperationBase","entityTitleKeys","formatUrlOptions","transformErrors","Error","changeCase","add","remove","pin","cron","year","frequency","DAILY","WEEKLY","MONTHLY","ONCE","HOURLY","init","cronString","tokens","parser","getMonth","_fields","month","getDayofMonth","dayOfMonth","getDayofWeek","dayOfWeek","getHour","hour","getMinute","minute","generate","min","getFrequency","getYear","setHourlyCron","setDailyCron","setWeeklyCron","setMonthlyCron","setOnceCron","cronModel","undefined","dayofWeek","dayofMonth","defaultOptions","schema","total","dataItems","dataCallback","itemIdField","itemIdCallback","itemFilterField","itemFilterCallback","listItemSeed","pageSize","dlbDataSource","self","schemaDataProperty","response","_mapItems","externalTransport","useCallbackForFilter","useCallbackForFetchOnly","dataSource","_createDataSource","addIfNotExists","uniqueId","_getItemId","_createListItem","removeIfExists","itemData","_getListItemInfo","getItemData","getItemId","filterString","sourceLoadCancelToken","operator","refresh","_data","refreshItem","listItem","seededItem","getData","toJSON","getFilterData","filterResult","kendo","Query","process","setItemProperty","sourceItemModel","ignoreSourceData","sourceItems","seed","_uniqueId","dataSet","DataSource","serverFiltering","serverPaging","transport","_loadRemoteData","_loadDataWithMemoryCache","kendoReadOptions","originalSuccess","success","request","filterText","filters","skip","take","_getCancellationToken","cancelled","errorCallback","req","backbone_schema","from","base","adgroupRequest","promise","adgroupId","campaignRequest","adgroups","Pristine","AdGroupCollection","campaigns","CampaignCollection","userParameters","cid","CurrentCustomer","uid","aid","CurrentAccount","clearPromise","getPristineRequest","http_method","hideLoadingPanelOnSuccess","ignoreBeforeAjax","getAdgroup","selectedAdgroupLanguage","Language","getCampaign","experimentId","fetchExperimentTask","jsdata","Experiment","bypassCache","cacheResponse","getCampaigns","fetch","getPristineKey","getAdgroups","collection","_meta","adgroupChangedEvent","adgroupChangeCallback","res","changed","models","adGroup","memSto","invalidate","App","off","on","prop","adgPro","adgroupOptions","canCache","allowCaching","_eligibleForCaching","_getFromCache","resolve","_augmentUrl","done","_setCache","nameFilterText","firstKey","newKey","_getCacheKey","maxCacheSize","shift","urlEntity","resultUrl","currentScope","filterOptions","predicate","idx","option","operand","controlMode","odataQuery","$contains","Service","entityServiceImplementation","blockerContainer","serviceInjected","useInjectedAdgroupFetch","entityService","shouldKeepSmartShoppingCampaignAdGroup","adsCountMap","CampaignSubType","appConfig","IsResponsiveAdForSSCEnabled","Product","Responsive","_filterCampaigns","cb","campaignData","query","_getSearchPredicate","CampaignType","scenario","level","cam","statusHtml","getStatusHtml","campaignStatusList","HasPaged","items","rest","first","pow","uiBlocker","unblock","_filterAdgroupsServer","_filterAdgroups","instruSvc","endActivity","setting","ACTIVITYNAME","AdgroupSelectorLoadAdgroups","getAdsCount","adgroupData","account","customer","adgroupIds","post","adGroupIds","adsCount","forEach","AdsCountByAdType","Keys","catch","console","log","ag","isFeedBasedCampaign","CampaignSettings","bind","adg","parentId","parentName","adgroupStatusList","customFilter","_getStatusClass","status","original","resultClass","statusList","className","prefix","statusIconLabelList","extendProperties","extendAdgroup","observable","block","asLoggingStart","AdgroupSelectorLoadExtendedAdgroup","getCampaignData","controlOptions","selectedCampaign","filterPredicate","campaignPredicate","fail","RefreshAdgroups","getAdgroupData","getAdgroupDataClient","getAdgroupDataServer","adgroupPredicate","startActivity","advertiser","clearErrorSummary","errorCb","legacy$","appendErrorSummary","removeAllBlockers","blockerContext","setControlScope","controlModes","selectedAdgroup","sectionItem","element","valueAccessor","allBindings","bindingContext","bindingOptions","innerBindingContext","$element","$newContent","sectionItemTemplate","addClass","attr","children","detach","appendTo","replaceWith","controlsDescendantBindings","dataDateRanges","frequencyGrain","weeklyOptions","dailyOptions","emailOptions","scopeOptions","entityRelatedOptions","campaignFilterData","IsCampaignTargetROASBidStrategyEnabled","IsNewCampaignTargetROASBidStrategyEnabled","IsMaximizeConversionValueEnabled","IsSmartShoppingCampaignEnabled","IsTargetImpressionShareEnabled","adFilterData","adGroupFilterData","keywordFilterData","IncreaseBid","DecreaseBid","PreserveCapitalization","StartsWith","Title","TitlePart1","TitlePart2","TitlePart3","TextPart2","Headline","LongHeadline","LongHeadlines","BusinessName","DisplayUrl","FinalUrl","Path1","Path2","MobileFinalUrl","DestinationUrl","DevicePreference","Headlines","Descriptions","prepend","toTitleCase","toSentenceCase","strings","maximumSelectionAlertString","maxSelectedItems","features","maxSelectedItemsCount","customData","processItem","showMaximumSelectionAlert","selectedData","_createSelectedData","sourceData","_createSourceData","sourceDataSource","selectedDataSource","_initializeFilter","_initializeSourceItemsCount","refreshSource","selectedItemsCount","hasMaxSelectedItems","selectItem","silent","_notifySubscribers","deselectItem","setSelection","newSelectionIds","oldSelectionIds","toSelect","toDeselect","selectAll","deselectAll","showEmptyMessage","sourceItemsCount","newTotal","selectedCustomActions","itemActions","selected","caption","customActions","paging","selectedPageSize","sourceCustomActions","source","disabled","defaultTemplates","layoutTemplate","defaultLayoutTemplate","sourceContainerSelector","selectedContainerSelector","sourcePagerSelector","selectedPagerSelector","sourceItemLayoutTemplate","defaultSourceItemTemplate","sourceItemContentSelector","sourceItemContentTemplate","selectedItemLayoutTemplate","defaultSelectedItemTemplate","selectedItemContentSelector","selectedItemContentTemplate","listItemCssClass","_applyDefaultTemplates","filtering","dragAndDrop","filterWatermark","_viewModel","newSelection","trigger","_initializeActions","_initializeEventHandlers","_initializeLayout","_initializeSource","_initializeSelected","_initializeDragAndDrop","_initializeSourcePager","_initializeSelectedPager","$wrapper","templates","elements","$source","$selection","kendoListView","navigatable","selectable","_getEffectiveItemTemplate","contentTemplate","_initializeDragAndDropGroup","$dragContainer","$dropContainer","groupName","dropAction","contentSelector","kendoDraggable","group","container","hint","eq","clone","kendoDropTarget","drop","draggable","events","getEventHandler","callback","eventType","eventName","proxy","event","$itemelement","target","closest","sourceActions","selectedActions","select","deselect","pagerEl","Pager","el","pageCount","totalPages","currentPage","page","enablePageJump","refreshTriggers","newPage","totalCount","preferencesService","_preferencesService","pagerView","pagerTemplate","pageSizeSelector","saveState","loadState","pageSizes","Support500RowsInGrid","_initializeViewModel","_updateViewModel","readyPromise","_initStatePersistence","_initializeSubscriptions","destroy","empty","nextPage","_nextPage","prevPage","_prevPage","ceil","pages","isFirstPage","isLastPage","onKeyPress","which","keyCode","blur","_updateValue","funcOnly","_setValue","valueSource","oldValue","valueObservable","currentPageNumber","decimal","fromLocalToFloat","_loadState","_initSaveState","setAtUserLevel","Data","stateManager","setItem","preference","findByName","getItem","permanent","confirm","prompt","defaultText","ViewModel","kendoDataSource","selectedItem","setSelectedItem","listContainerSelector","pagerSelector","itemLayoutTemplate","defaultItemTemplate","itemContentSelector","itemContentTemplate","_initializeList","_initializePager","$list","_onSelectChange","selectAction","renderThirdPartyIntegrationView","tag","Object","assign","isUetAutoSpaTrackingEnabled","scriptMatches","exec","script","isGTMIntegrationEnabled","IsGTMTagIntegrationForUETGridEnabled","dialog","dialogTemplate","title","content","tagViewerContent","tagViewerFooter","dialogClass","setElement","modal","transition","focus","instrumentationSettings","OpenUetTrackingCodePopup","SCENARIONAME","ViewUetTrackingCodePopup","hide","copyTag","CopyTrackingCode","emailTag","subject","text","location","href","getEmailDownloadBody","EmailTrackingCode","downloadTag","download","downloadify","DownloadTrackingCode","startGTMIntegrationFlow","IntegrateTrackingCodeWithGTM","onClose","handleUpdates","consecutiveFailureCount","isSucceed","isInProgress","isFailed","logError","job","stop","RowsProcessed","TotalRows","parentTask","logMessage","constants","LOGCATEGORY","TRACE","LOGLEVEL","INFO","trackingid","requestid","xhr","lastSuccessXHR","getResponseHeader","errorLog","isUserError","errorCode","responseJSON","Code","includes","errorMsgKey","handleFailures","err","headers","scheduledTask","Poller","ExecutionId","asyncScheduler","createTask","schedule","task","overlapping","Url","Task","TaskProgressView","statusText","completeText","poller","StatusPoller","run","showProgress","completed","progressDetails","type","humanize","fileSize","percentage","TaskProgressViewModel","isNewUI","taskProgressTemplate","recoverBinding","undelegateEvents","delegateEvents","hasError","tutorialSectionExplandClass","hideTutorial","updateTutorialSectionStatus","localStorage","maximumFileSize","enableUpload","showWarning","warningMessage","fileName","OnlineConversionRestateRetractUI","showUploadButton","uploadButtonClicked","cancelButtonClicked","fileDidPick","inputElement","files","file","fileSizeExceeded","size","fileEmpty","filename","substr","fileNameIsInvalid","getFileUrl","TemplatesPathUrl","excelFileUrl","csvFileUrl","uploadFile","ClickOnUploadAndPreview","_permissions$dynamic","_dynamic$OnlineConver","FilePickerViewModel","excelLink","TemplateFileUtil","csvLink","_permissions$dynamic2","filePickerTemplate","IsOfflineConversionRestateRetractFromUIAllowed","newFilePickerTip","processBlobUrl","urlWithoutSas","fileUrl","fileIdentifier","lastIndexOf","getFileIdentifier","createPreviewTask","utcNow","postData","postTaskUrl","processErrorResponse","ERROR","parseTaskId","executionObj","TaskItemExecutions","taskId","executionId","UploadService","bulkFileType","onProgress","loaded","TaskId","FileName","nodeify","hasDetails","showDetails","close","ClickOnCloseInErrorView","getFriendlyError","detailLogs","generateLogContent","ErrorViewVM","errorViewTemplate","errorMsg","logArr","line","errObj","responseText","resObj","safeJson","i18nErrors","ErrorCode","code","Collaborator","definitions","instances","role","definition","factory","release","instance","handler","bindEvent","clear","strategy","roleName","ModalManager","active","HistoryGrid","_HistoryGrid","ChangesView","_ChangesView","modalManager","displayRole","keepCurrent","currentRoles","collab","getView","displayHistoryGrid","historyGrid","onError","refreshHistoryGrid","force","setStatus","AdvertiserCustomerID","time","getStatus","stat","state","resetStatus","resume","closeView","sharedInfo","filePickerOptions","composeReviewTableData","identifierOf","OfflineConversionFiles","where","resultsIdentifier","errorsIdentifier","composeErrorViewOptions","toUTCString","msg","extractSharedInfo","helpId","offlineConversionUploadButton","func","viewStrategy","taskStrategy","FilePickerView","UploadFileTask","PollerTask","sessionId","SessionId","composePreviewTableData","ReturnToFilePicker","UploadBulkSheet","emptyFunc","ErrorView","UploadConversionsViewModel","p$status","perfMarker","willRender","UploadConversionsTemplate","goalLink","tutorialView","RenderBulkUpload","UploadConverions","goToGoalsPage","navigate","ClickOnPageLink","GoToUetGoalsPageViaHelpLinkInEntryPage","reactivate","ReactivateBulkUpload","uploadConversions","keyword","dropdown","tour","link","addKeyword","changeBid","settings","audience","store","DS","CustomerAdapter","_createClass","_classCallCheck","mockData","raw","registerAdapter","default","dummyDataSource","defineResource","idAttribute","primaryKey","required","filterable","StartDate","EndDate","nullable","enum","enumType","SearchBid","ContentBid","PercentCpcBid","RateAmount","Amount","oneOf","$ref","$$ODataExtension","$$ref","AdGroupPercentCpcBid","CommissionRate","AdGroupCommissionRate","Medium","PricingModel","chooseType","BidTarget","DeliveryStatus","CallTrackingStatus","PerformanceMetrics","Impressions","Clicks","CTR","Conversions","Spend","AverageCPC","AveragePosition","AverageCPM","CPA","WebsiteCoverage","AuctionWonPercent","sovcolumn","isPercentValue","AuctionLostToBudgetPercent","AuctionLostToRankPercent","AuctionLostToLandingPercent","AuctionLostToAdQualityPercent","AuctionLostToBidPercent","ClickSharePercent","RevenueOnAdSpend","AdvertiserReportedRevenue","ConversionRate","AllConversionCPA","nullabe","AllConversions","AllConversionRate","AllConversionAdvertiserReportedRevenue","AllConversionRevenueOnAdSpend","alias","legacy","Labels","Description","ColorCode","AssociationCounts","CampaignCount","AdGroupCount","AdCount","KeywordCount","isRelatedEntity","PhonePerformanceMetrics","$schema","QualityScore","UpdatedOnLastImport","HasAuctionInsight","IsBidLandscapeAvailable","TrackingUrlTemplate","BiddingScheme","NativeBidAdjustment","Properties","DisplayBiddingStrategyType","DisplayBiddingStrategyMaxCpc","DisplayBiddingStrategyTargetCpa","DsaTargets","DomainCategorys","NegativeAdGroupDsaTargets","Categories","DsaSearchTerms","entitySet","noop","getAdGroupGridFactory","globalContext","define","pkg","bidLandscapeDependencies","adGroupBidLandscapeInitializer","getAdGroupBidLandscapeInitializer","require","dependecies","dep","adGroupBidLandscapeInitializerWebpack","getAdGroupBidLandscapeInitializerWebpack","campaignManagedDateContainerId","dismissCampaignManagedDateCallout","calloutElement","document","getElementById","ReactDOM","commonI18n","handleSortChange","legacyGlobalI18n","CopyPaste","Hotkeys","requireDefault","AdGroupsGrid","_DeterministicWrapper","_callSuper","_inherits","_ref","_this","deps","getGridConfig","getPlugins","preferenceConfig","router","_ref$isForVNext","isForVNext","currentCampaign","pageName","_ref$preexecuteFlag","preexecuteFlag","gridRemoved","gridConfig","gridName","pgridFactory","plugins","rejectionPopupContainerSelector","popoverId","isMCCLabelEnabled","IsAccountLabelsEnabled","AdGroupsPageDFMV2","setUpErrorHandling","oldQuery","newQuery","updateGridQuery","gridDidUpdateHandler","once","PageReady","pageIsReady","pagination","pageNumber","setPageNumberToState","IsCampaignAdGroupCopyPasteEnabled","bulkEditGridOptions","copy","paste","onClick","setup","_this2","rawData","setTimeout","count","setCreateBtnDisabled","shouldDisableCreateBtn","number","_defineProperty","IsReadOnlyUser","reset","_superPropGet","_this3","initializeCombinedFilterPromise","_this4","keyOfElement","targetEntity","itemWithKey","filterOnLabelClick","navigateToManagePage","styles","mergeStyleSets","marginBottom","placement","getBoundingClientRect","right","innerWidth","insertPopoverContainer","tooltipProps","parentView","currentTarget","show","onMouseLeave","closeButton","focusLockContent","_jsx","_Fragment","classnames","variant","GridTooltip","_objectSpread","renderCampaignManagedDateTooltip","_ref2","relatedTarget","hideCampaignManagedDateTooltip","IsDeferredHoveringPopupEnabled","handleShowRejectionReasonEnter","showRejectionReason","handleShowRejectionReasonLeave","getTargetEnity","showLabelsPopup","labels","preventDefault","editorialStatus","parent","attributeId","valueLevel","editorial","toggleCountryList","showRejectionReasons","deliveryStatusDetails","getCustomTemplate","getEditorialReasonsTemplate","ajaxOptions","host","path","oDataToken","campaign_id","account_id","customer_id","adgroup_id","useCustomTemplate","afterRender","popup","registerCountryListEvent","_this5","actionLinks","DeliveryStatusDetails","resolveURL","uri","URI","appendScopeParameter","addQuery","getRoutePathById","NoEligibleAds","NoEligibleKeywords","allSiteMap","ShoppingCampaignNoOffersPresent","DeliveryStatusPopupFactory","showRejectionPopup","containerSelector","inContextRepairRecommedationType","_this6","openAdGroupBidLandscape","applyCallback","updates","newAdGroup","applyBlockerEl","showQualityScoreDetail","DeterministicWrapperView","jsData","complexFields","InlineEditableSave","fieldName","updated","editorView","editorViewCallbackAfterUpdate","_ref$isDateType","isDateType","toUpdate","formatDate","timeZone","update","adapter","finally","withUiBlock","errorMapping","unexpectedError","getBulkApiErrors","setErrors","AlertHelper","showError","AdGroupCashbackPercentColumn","AdGroupCashbackPercentColumnFactory","updater","AdGroupCashbackScopeColumn","AdGroupCashbackScopeColumnFactory","AdGroupCouponColumn","AdGroupCouponColumnFactory","getLanguages","languages","IsSimplifiedChineseLanguageEnabledInMultipleLanguage","IsAdsGlobalizationPhase1Enabled","IsAdsGlobalizationPhase2Enabled","IsAdsGlobalizationPhase6Enabled","IsAdsGlobalizationPhase2JapanEnabled","IsAdsGlobalizationPhase9Enabled","IsAdsGlobalizationPhase9VIEnabled","IsDomesticSimplifiedChineseEnabled","LanguageInlineEditView","_DeterministicView","selectedLanguage","campaignHasLanguage","withInheritOption","i18nStrings","SaveWarning","languageSelector","LanguageSelector","setChild","customizedInlineEditTemplate","getSelectedLanguage","removeClass","DeterministicView","LanguageColumn","_CampaignuiBaseColumn","isDSAMixedModeCampaignEnabled","LanguageColumnConfig","editable","enableEdit","shouldEnableInlineEdit","helpAriaLabel","adGroupType","AdGroupType","$total","position","newPosition","languageEditorView","Languages","_ref3","groupClass","GridCustomizedPopupEditor","cellPosition","renderBelow","parentContainerSelector","CampaignuiBaseColumn","InlineEditableColumnPrompt","saveModelCallback","_ref$saveModel","saveModel","_ref$customValidators","customValidators","_ref$adGroupSchema","adGroupSchema","customClass","customHint","PopupEditor","hasLabels","campaignIdInLastBuilder","lastGlobalCampaignTypeFilter","AdGroupColumn","AdGroupColumnConfig","sortable","bodyClasses","_this$scope","customerId","accountId","userId","adgid","_item$Campaign","_item$Campaign2","cmpid","pathName","IsRenameHotelToLodgingEnabled","ariaLabel","adGroupName","adGroupTemplate","is","CampaignColumn","CampaignColumnConfig","baseCampaignName","BaseCampaignName","vNextHref","campaignName","experimentName","getRouteTo","campaignTemplate","BidStrategyTypeColumn","BidStrategyTypeColumnConfig","schemaI18n","SchemaI18n","isXandrServing","bidStrategyTypeTemplate","commonBidStrategyListToDisableBidAmountEdit","keepEnabled","bidStrategyType","BidBaseColumn","bidStrategyListToDisableBidAmountEdit","numberFormatter","decimalToFixedFormatter","digits","defaultMSStoreMinSuggestionBid","hasClass","campaignType","campaignSubType","campaignSettings","bidRangeKey","useProductGroupBidRange","IsBidLessThan5CentsInShoppingCampaignEnabled","isHotelCampaign","isMSStoreAdsCampaignEnabled","isMSStoreAdsCampaign","isXandrVideoAdsCampaign","BiddingStrategyToRangeKey","max","IsDealEnabledForMsAds","DealMinimumBid","currentName","schemaOrigin","schemaCopy","maximum","minimum","isDefaultBidCPVAppended","pricingModel","BiddingStrategyToPricingModel","isCommissionOrPercentCpc","isValid","bid","showDefaultBidWarning","showLowerThanMinSuggestionBidWarning","updateDefaultBidWarning","DefaultBidCPVWarningThreshold","warning","Alert","defaultBidCPVWarningParent","defaultBidCPVWarningId","defaultBidCPVWarning","initDefaultBidWarning","bidstrategy","isAutoBid","HideAutoBidValueInGrid","formattedBid","IsAdgroupLandscapeV2Enabled","hasBidlandscape","formatBidString","isBidReadOnly","isSearchMediumType","_TL_","minSuggestionBid","SearchBidColumn","_BidBaseColumn","SearchBidColumnConfig","IsVideoAdsForCampaignEnabled","IsManualCpmEnabled","CpmBidColumn","CpmBidColumnConfig","CpvBidColumn","CpvBidColumnConfig","PercentCpcBidColumn","PercentCpcBidColumnConfig","CommissionRateColumn","CommissionRateColumnConfig","QualityScoreColumn","QualityScoreColumnConfig","titleDetail","score","OverallQualityScore","qualityScoreTemplate","MediumColumn","MediumColumnConfig","mediumTemplate","AdGroupIdColumn","AdGroupIdColumnConfig","StartDateColumn","StartDateColumnConfig","UseCampaignLevelDates","getCurrentDate","getStartDate","useCampaignLevelDates","_item$Campaign3","displayStartDate","startDate","displayDate","allowNoDate","selectedDate","convertUTCDateToMachineDate","maxDate","DateInlineEditableColumnPrompt","dateTemplate","EndDateColumn","EndDateColumnConfig","getEndDate","displayEndDate","endDate","minDate","Paused","Expired","CampaignUserPaused","CampaignBudgetPaused","CampaignBudgetUserPaused","PrivacyPending","TargetingTooNarrow","Draft","Active","Deleted","enableGridFlexLayout","StatusIconColumn","StatusIconColumnConfig","isResizable","EntityStatus","headerTemplate","isExperiment","statusIconTemplate","statusEditor","renderStatusPopupEditor","currentStatus","statusOptions","iconClass","Enabled","statusEnumMap","AdGroupTypeColumn","AdGroupTypeColumnConfig","TrackingTemplateColumn","_TrackingTemplateColu","TrackingTemplateColumnConfig","TrackingTemplateColumnOriginal","FinalUrlSuffixColumn","_FinalUrlSuffixColumn","FinalUrlSuffixColumnConfig","FinalUrlSuffixColumnOriginal","CustomParametersColumn","_CustomParametersColu","CustomParametersColumnConfig","CustomParametersColumnOriginal","_globalContext$requir","Columns","SelectedColumns","_globalContext$requir2","LegacyColumns","LegacySelectedColumns","LegacyGridFlag","builder","IsViewThroughConversionEnabled","IsAudienceSOVEnabled","IsDSAMixedModeCampaignEnabled","IsAvgPositionDeprecationPhase1Enabled","IsAvgPositionDeprecationPhase2Enabled","IsPersonalizedOffersEnabled","IsPersonalizedOffersV3Enabled","IsViewThroughConversionsRevenueEnabled","IsPersonalizedOffersV4Enabled","_Permissions$dynamic","IsPartialConversionsEnabled","PartialConversions","IsColumnConversionEnabled","ColumnConversion","IsHotelCampaignEnabled","HotelCampaign","CPSReporting","InstallPerformanceColumns","isConversionValueRuleColumnsEnabled","ConvValueRules","usePartialConversions","isPortfolioBidStrategyEnabled","allBidColumns","getBuilder","globalCampaignTypeFilter","isBiddingSchemeUpdated","lockedColumns","getLockedBidColumns","ColumnsConfigBuilder","addCategory","category","addColumns","DeliveryColumn","BidStrategyNameColumn","_toConsumableArray","getUnlockedBidColumns","IsCampaignMultipleLanguageEnabled","LabelsColumn","addPerformanceCategoryForAdGroups","addConversionsCategory","withPartialConversions","isCPSEnabled","isInstallColumnsEnabled","addCompetitiveCategoryForCampaignOrAdGroups","IsCallMeteringAllowed","addCallDetailsCategory","setLockedColumns","setSelectedColumns","getSelectedBidColumns","ColumnConversionsCredit","ColumnConversions","ColumnViewThroughConversionsCredit","ColumnViewThroughConversions","ColumnTopImpressionRate","ColumnAbsoluteTopImpressionRate","nameFromLegacy","StatusIcon","DeliveryStatusView","FormattedMedium","ID","TrackingTemplateJson","ClickCount","ImpressionCount","ClickThrough","TotalSpendAmount","TotalCost","ConversionCount","AdGroupCallTrackingStatus","PhoneCost","PhoneThroughRate","preferenceService","toolbarRow","helpers","helpIdMap","PhoneSpend","PhoneImpressions","AverageCPP","ConversionsCredit","PartialConversionRate","AbsoluteTopImpressionSharePercent","ManualCalls","TotalWatchTimeInMS","ViewThroughConversionsRevenue","ViewThroughConversionsCPA","ViewThroughPartialConversionsCPA","ViewThroughConversionsReturnOnAdSpend","ViewThroughConversionsRate","ViewThroughPartialConversionsRate","ViewThroughConversions","ViewThroughConversionsCredit","getConfig","viewport","customHeaderOffset","isDataFetchManagerSource","tableName","getGridName","legacyGridName","tableClasses","tableAttributes","headRows","crossPageSelectHeadRow","columns","inlineEditableSave","getColumnsConfig","scrolling","height","attributes","virtualized","sortableHeader","sortableHeaderTemplate","layout","validateOrder","navigation","$call","parameters","mockEdm","root","identifyEntitySet","appState","sessionStore","edm","s$i18n","DownloadView","setSegType","getSegType","ChangeBiddingStrategyModel","ChangeBiddingStrategyView","logger","jsdataRawDataPlugin","commonJsdataRawDataPlugin","getRawData","rawDataAccessor","ds","_rawData","dfmRawData","getAdGroupPlugins","addDateChangeListener","p$daterange","adGroupTabPerfMarker","getCampaignTypeGlobalFilter","isSmartShoppingCampaign","aggregatedRowsPlugin","aggregatedRowsPluginBuilder","overallI18nKey","filteredI18nKey","waterfallFilterI18nKey","customConfig","showLinkedInRow","ReportEmailRule","columnChooserConfig","customColumnConfig","_ref2$isForVNext","IsCustomColumnsInAdGroupsSupported","_adGroupMetricCategor","adGroupMetricCategoriesFactory","enabled","metricCategories","segmentCategories","columnProcessorBeforeSetRecord","columnProcessorBeforeSetRecordGetter","getColumnChooserConfig","patchQuery","AdCustomizerAttribute","resource","AdGroupAdCustomizerAttribute","RSAAdCustomizerAttributeColumn","enableRSAAdCustomizer","customToolbarIcon","plugin","perfMarkerPlugin","marker","paginationPlugin","availablePageSizes","enableRandomPage","pageNumberLabelText","pageSizeText","totalPageCountText","resetPageNumberOnSort","auctionInsightPlugin","legacyRouter","route","crossPageSelectNotAllowedI18nKey","shouldNavigateToCompetitionTab","IsBAACompetitionEnabled","inlineDownloadWithoutFilterstatePlugin","isAvailable","gridId","segmentPlugin","isOdataActionSource","cultureShortDatePattern","ShortDatePattern","cellTemplates","segmentationTypes","IsVerticalAdsReportingPhase1Enabled","campaignSegmentationTypeEnum","segmentationType","bidStrategy","editablePlugin","uiBlockerPlugin","performanceLogPlugin","periodOverPeriodPlugin","columnChooserPlugin","dateFilterPlugin","inlineErrorPlugin","errorIconClasses","assistedSelectionPlugin","a11yPlugin","projectionGridFlexColumnResize","softDependencies","getPGridColumnResizePlugin","createAdGroupGrid","_ref$deps","_ref$getAdditionalPlu","getAdditionalPlugins","popupUtil","senario","adgroupBidlandscape","currencyCode","defaultApply","adgroupBidLandscapeView","blockerEl","trackingId","CpmBid","CpvBid","bidType","parseDecimal","valueToApply","bidKV","currency","isCustomBid","currentSelectedId","landscapePointsLength","startDateString","endDateString","trace","applyError","getCurrentAppliedBid","BiddingStrategyToBidParam","logBidLandscape","selectMode","adgroupSelectMode","ariaData","ActionName","UIData","bidList","dataArray","currentBid","onCallReturnedForBidLandscape","inKeywordCreationWorkflow","generateGuid","originalBid","AdGroupBidLandscape","parentItem","CurrentValue","EntityName","dataToShow","markInputValueInvalid","newBidStr","bidRange","floorPrice","FloorValue","ceilingPrice","CeilingValue","formatDecimalToFixed","validateBid","clearBid","applyBidLandscapeAndClearCustomBid","applyBidLandscapeWitoutClearCustomBid","newBid","patch","Bid","errorResponseBody","customApply","hasData","showPopup","positioningMethod","positioningOptions","anchorPosition","clientY","left","clientX","width","contentView","classes","anchor","_ref3$inKeywordCreati","stopImmediatePropagation","__adcenterAJAX","http","contentType","__RequestVerificationToken","fetchAdGroupBidLandscape","FinalUrls","MobileFinalUrls","AppFinalUrls","OsType","Appeal","IsAppealable","JustificationText","NativePreference","getAdsGridFactory","adEditorDependencies","adEditorInitializer","getAdEditorInitializer","adEditorInitializerWebpack","getAdEditorInitializerWebpack","shouldCallAPIToCreatePA","currentAdGroup","shouldCall","isResponsiveAdForSSCEnabled","currentAdsCount","hasResponsiveAd","hasProductAd","AdsEditorView","SummaryDataContextManager","IsImpressionTrackingUrlsEnabled","IsAmplifyEnabled","EnableIASVerifiedImpressionTrackingURLsForBrandAwarenessCampaign","XandrDisplayAdsCampaigns","EnableDisplayAdsIasTracking","MultiAdFormat","isIASForAdEnabled","getUpgradedUrl","FinalUrlSuffix","getModelForCreateOrEdit","PromotionalText","AppStoreId","AppPlatform","LandscapeImageMediaId","SquareImageMediaId","LandscapeLogoMediaId","SquareLogoMediaId","CallToAction","CallToActionLanguage","CallToActionText","CallToActionAriaText","MediaUrl","DeviceType","AltText","Images","ImpressionTrackingUrls","VerifiedTrackingSettings","Videos","BoostAnchors","HotSpots","AdSubType","LegacyResponsiveAd","biddingStrategyType","getBiddingScheme","initializeAdEditor","_ref$item","_ref$firstTextItem","firstTextItem","_ref$firstExpandedIte","firstExpandedItem","_ref$firstResponsiveS","firstResponsiveSearchItem","newI18n","_ref$inlineSuggestion","inlineSuggestionsEnabled","lazyInject","_ref$showSaveAndCreat","showSaveAndCreateAnother","_ref$isOpenCreatePane","isOpenCreatePanel","shouldSendOpportunityLog","logOpportunity","serverContext","_ref$triggerAdItemRef","triggerAdItemRefresh","_ref$navigateToSingle","navigateToSingleAdEditor","loadClipchampPlayer","isTraditionalChinese","isDynamicDescriptionEnabled","parentPerfMarker","firstTextAdModel","firstExpandedTextAdModel","firstResponsiveSearchAdModel","adEditor","backboneGridView","overrideWith","adGroupId","editorContainer","toolbar","gridToolbar","gridToolbarGroup","hideAllToolbars","showAllToolbars","updateContext","showAdStrength","refreshAdItem","adId","StrengthIcon","Poor","Average","Good","Excellent","renderSuggestionPopup","containerDOM","adStrengthEntity","adsGrid","closeAdStrengthPopup","AdStrength","AdStrengthActionItems","_adsGrid$scope","actionItemsStrings","actionItems","actionItemsList","getActionItems","iconName","callout","padding","fontSize","pendingcallout","chart","fontWeight","marginRight","lineHeight","textAlign","borderRadius","color","background","marginTop","body","listStylePosition","Callout","directionalHint","DirectionalHint","rightCenter","_jsxs","Label","HelpIcon","topic","FontIcon","NewAdStrengthScore","strength","style","PrimaryButton","activityAdStrengthLogger","signal","IsRSASuggestionCMUIEnabled","adsTabPerfMarker","initializer","querySelector","showAdEditor","instrumentationSchema","SharedRepository","getReasonTemplates","ad","errI18n","locationI18n","editorialRejection","logScenario","logActivity","fetchRejectionReason","DisclaimerAdExtension","afterChangeComitted","association","findAll","disclaimerData","adExtensionId","version","Version","queryify","RejectionReasons","reasonTemplates","getEditorialTemplates","reasons","Reason","ReasonCode","Location","LanguageToCountries","PublisherCountries","RejectionCountries","ENTITY","EXTENSION","isAppealable","EntityIdsParentIds","EntityId","ParentId","fetchRejectionReasons","Reasons","AD","isDetectionRejectionTypeEnabled","DetectionRejectionType","AppealAggregator","popupContentKey","keyVault","hoveringPopup","AdsGrid","_len","_key","campaignContext","isInitialGrid","addScenario","activityLogger","loadRSAAssetReportLink","adStrength","ExtaDeprecatedPopupContainerSelector","appealAggregator","disclaimerAppealAggregator","isEditorialCategoryEnabled","IsEditorialCategoryEnabled","isEnabledForGoogleImportVideoAd","IsGoogleImportVideoAdsEnabled","AdsPageDFMV2","RequestExceptionCallBack","isAdGroupLevel","controller","submit","menuToFollow","openBulkEditor","bulkEditor","MMABulkConversion","StyledMMABulkConversionView","RequestExceptionCallBackFromPopup","clickRequestException","selectRow","appealView","RequestDisclaimerExceptionCallBackFromPopup","requestExceptionFromPopup","RequestDisclaimerExceptionCallBack","rsaList","IsBulkEditCopyPasteEnabled","waterfallFilters","isAudienceFeedBasedCampaignLevel","rawFilter","chain","getFilteredCampaignTypeFromRawFilter","IsExpandedTextAdV2Enabled","adType","adSubType","AudienceAssetReport","navigateToRoute","ad_id","ad_type","campaign_type","ad_sub_type","popupView","GoogleImportAdVideoNeedRepair","getEventTargetEntity","isDeliveryStatusDisapproved","AdExtensionInlineAppeal","addEditorialHandler","popupManager","releaseLock","adStrengthPopoverShown","forceAcquireLock","_this$scope2","topCenter","HelpLink","deprecatePopoverShown","lastCampaignId","lastAdgroupId","_BaseStatusIconColumn","LandscapeImageMediaUrl","isPlaceholderMMA","additionalPayload","AdType","inlineEditSave","updatedItem","ResponsiveAd","customBlockerTarget","BaseStatusIconColumn","routeTemplate","_item$AdGroup","_item$AdGroup2","AdIdColumn","AdIdColumnConfig","AdTypeColumn","AdTypeColumnConfig","isDisableEXTA","isStandardTextAd","adTypeTemplate","DevicePreferenceColumn","DevicePreferenceColumnConfig","devicePreferenceTemplate","adDisplayUrlService","combineText","resizeQueryString","isImpressionTrackingUrlsEnabled","isMultiMediaAdsPhase2Enabled","isAudienceCampaignMultiMediaAdsEnabled","isAudienceAssetReportEnabled","videoTypesWithOrder","AdPreviewColumn","AdPreviewColumnConfig","isXandrCampaign","checkLandscapeImageMediaUrl","checkAdSubtypeForMultiAdFormat","dynamicPermissions","isVideoAdUnderNative","isDisplayAdUnderNative","IsMMAV2Enabled","image","Asset","SubType","urlRegex","destinationUrl","convertedFinalUrl","isMultimediaAd","isMultimediaAdinMSANEnabled","isLinkedInAd","convertedDisplayUrl","computedTitle","convertedText","platformText","appStoreName","convertedTitle","getDynamicSearchAdDisplayUrl","getExpandedTextAdDisplayUrl","imageUrlToUse","ImageUrl","HeadlineCount","LongHeadlineCount","TextCount","imageCount","indexOfResizeInfo","isVideo","_loop","videoType","videoWithThumbnail","v","ThumbnailUrl","IdString","isVerticalVideo","Height","Width","shouldShowActionNeededForGoogleImprotVideoAd","headlineList","PinnedField","descriptionList","getTitlePreview","moreTitleHint","getMoreTitleHint","getDescPreview","moreTextHint","getMoreDescHint","DSAAssetReport","MMAAssetReport","MMAAssetReportAccountLevel","adTemplate","_ref4","_ref5","AdsByBingColumn","AdsByBingColumnConfig","AdsByBing","adsByBingTemplate","AdStrengthColumn","AdStrengthColumnConfig","adStrengthScore","showSuggestion","adStrengthTemplate","_globalContext$requir3","showAdsByBingColumn","IsAdsByBingEnabled","IsCustomColumnsInAdsSupported","AdStrengthTestingNoPanel","addPerformanceCategoryForAd","ColumnClicks","ColumnImpressions","ColumnCTR","ColumnAverageCPC","ColumnSpend","ColumnAveragePosition","Preview","AdGroupName","currentAccount","Campaigns","$withKey","AdExtensionAssociations","LabelAssociationView","dataContextManager","cacheService","ChangeStatusView","ChangeStatusModel","ChangeAdsView","ChangeAdsModel","ChangeThirdPartyMeasurementView","ChangeThirdPartyMeasurementModel","ChangeThirdPartyMeasurementViewV2","ChangeUrlOptionsModel","ChangeUrlOptionsView","getAdsPlugins","currentEntity","CampaignAdgroupSelectorEdmView","PredicateListReact","_adsMetricCategoriesF","adsMetricCategoriesFactory","bulkEditPlugin","adsBulkEdit","adsStatus","automatedRulesPlugin","currentUserId","accountTimeZone","accountCurrencyCode","stateMgr","preferenceSvc","appCfg","comparisonColumns","processReportRule","ReportRule","Headers","Selection","AdId","Number","labelsPlugin","s$label","AdPreview","createAdsGrid","_ref$isDataFetchManag","onLinkToAssets","onLabelsRowClicked","onLabelClicked","onManageLabelsClicked","showAdStrengthPopup","showDeprecateReason","hideRejectionPopup","hideDeprecatePopover","hideAdStrengthPopup","showExperiment","IsExperimentsEnabled","getDimensionsGridFactory","FooterView","_Backbone$View","gridType","innerHTML","footerTemplate","Backbone","jsdataCampaign","globalI18n","DimensionGrid","setupDataSourceErrorHandling","_ref$entityName","initializeInstrumentation","classNames","getEntity","_this$grid","columnChooser","inlineDownload","activities","loadDimensionGrid","footerView","isErrorCall","scenarios","viewDimensionGrid","loadDimensionColumns","filterDimensionGrid","setAvailability","showTooMuchDataError","currentCustomer","Accounts","_isRendered","headerRefreshCache","getBaseDimensionPlugins","reportSchema","columnConversions","isLabelsGrid","modifiedReportSchemaForLabelsDownload","inlineDownloadWithoutFilterstateAndSegmentPlugin","queryString","createDimensionGrid","reportName","_ref$customDataSource","customDataSource","singleToolbarHeadRows","getCurrentEntityFromEdm","ReportType","afterFindAll","afterFindAllCallback","getColumnsConversionMap","Constants","LabelCampaign","LabelAdgroup","LabelKeyword","LabelAd","TimeHour","TimeDay","TimeDate","TimeWeek","TimeMonth","TimeQuarter","TimeYear","Time","SearchQuery","UserLocation","Geographic","AgeGender","LandingPage","Publisher","WebsiteURL","CallDetails","Shopping","ShoppingCategory","ShoppingProductType","ShoppingBrand","ShoppingItem","ShoppingStore","AccountLevel","CampaignLevel","AdgroupLevel","LabelAccount","addColumnOnLevel","column","absoluteTopImpressionRate","topImpressionRate","absoluteTopImpressionRateLabel","topImpressionRateLabel","isConversionsColumnAllowed","columnConfigToColumnChooserConfig","columnConfig","columnList","lockedColumnsSet","col","selectOption","getAgeGenderGridConfig","jsDataCampaign","ageSchema","getCurrentLevel","deleteSchema","bingadsGridColumn","ageColumnConfig","getGridSpecificColumns","ageGender","AgeGroup","agegenderTemplate","gender","Gender","genderTemplate","medium","getLevelOfDetailColumns","levelOfDetailColumns","getPerfColumns","getConversionColumns","getAgeGenderColumnConfig","getColumns","getColumnChooserConfiguration","categories","locked","mandatory","DimensionAgeGender","getEntitySet","getSchema","getReportName","getReportSchema","modifyFilter","ageGroup","localized","getRewriteMap","EstimatedImpressions","EstimatedClicks","EstimatedCTR","EstimatedImpressionRate","EstimatedClickRate","EstimatedConversions","EstimatedConversionRate","EstimatedAllConversions","EstimatedAllConversionRate","TopImpressionRatePercent","AbsoluteTopImpressionRatePercent","getCallForwardingGridConfig","callForwardingSchema","callForwardingColumnConfig","StartTime","toLocaleDateString","toLocaleTimeString","timeTemplate","EndTime","callStatus","CallStatus","callStatusTemplate","getCallForwardingGridColumnConfig","AreaCode","City","StateOrProvince","CallDuration","updateSovColumns","sovColumnNames","sovColumnName","getGeographicGridConfig","geographicSchema","locationSchema","globalConfig","geographicColumnConfig","_ref2$dynamic","targetLocation","TargetedLocationType","targetLocationTypeTemplate","conversionColumns","getGeographicGridColumnConfig","performanceMetricsProperty","allConvMetrics","applyPartialConversionColumnName","allConvMetric","putil","AbsoluteTopImpressionRate","TopImpressionRate","locationType","MetroArea","CountyName","PostalCode","Neighborhood","CountryName","MostSpecificLocation","TargetLocation","Radius","getLandingGridConfig","landingSchema","landingColumnConfig","getlandingGridColumnConfig","KeywordDestinationUrl","TrackingTemplate","getPublisherGridConfig","publisherSchema","publisherColumnConfig","network","Network","networkTemplate","getPublisherGridColumnConfig","PublisherWebsite","getSearchTermGridConfig","searchTermSchema","searchTermColumnConfig","_pageContext$Permissi","_pageContext$Permissi2","campaignTypeTemplate","getSearchTermGridColumnConfig","CampaignCampaignType","SearchTerm","KeywordName","OrderItemId","getShoppingGridConfig","shoppingSchema","shoppingColumnConfig","language","languageTemplate","getShoppingGridColumnConfig","defaultColumns","propertyKey","reportType","operatorDisplayNameMap","containsany","operators","addtionalParams","getOdataOptions","logic","rtnObj","custom","CategoryL1","CategoryL2","CategoryL3","CategoryL4","CategoryL5","ProviderId","Condition","MerchantIdentifier","ProductType1","ProductType2","ProductType3","ProductType4","ProductType5","CustomLabel0","CustomLabel1","CustomLabel2","CustomLabel3","CustomLabel4","getTimeGridConfig","timeSchema","updateEntitySchemaForRemovedPerformanceMetrics","updateEntitySchemaForSOV","timeColumnConfig","DayOfWeek","dayOfWeekTemplate","GregorianDate","toDateString","dt","Week","i18nStr","week","weekTemplate","Month","monthTemplate","Quarter","quarter","quarterTemplate","Year","yearTemplate","perfColumns","getCompetitiveColumns","getTimeGridColumnConfig","ExactMatchImpressionSharePercent","TopISLostToRankPercent","TopISLostToBudgetPercent","AbsoluteTopISLostToRankPercent","AbsoluteTopISLostToBudgetPercent","HourOfDay","TopImpressionSharePercent","TopImpressionShareLostToBudgetPercent","TopImpressionShareLostToRankPercent","AbsoluteTopImpressionShareLostToBudgetPercent","AbsoluteTopImpressionShareLostToRankPercent","toHex","addCampaignColumn","addAdGroupColumn","getKeywordsLabelGridConfig","labelKeywordsSchema","keywordLabelColumnConfig","RowType","LabelName","LabelColor","parseInt","LabelColorCode","labelTemplate","getKeywordLabelColumnConfig","getAdLabelsGridConfig","LabelAdSchema","adLabelColumnConfig","getAdLabelColumnConfig","getAdGroupLabelsGridConfig","LabelAdGroupSchema","adGroupLabelColumnConfig","getAdGroupLabelColumnConfig","getCampaignLabelsGridConfig","LabelCampaignSchema","campaignLabelColumnConfig","getCampaignLabelColumnConfig","getAccountLabelsGridConfig","LabelAccountSchema","accountLabelColumnConfig","getAccountLabelColumnConfig","getDimensionsGridConfig","legacyDeps","schemaLoaders","_ref$useAsyncSchemaLo","useAsyncSchemaLoaders","_ref$entitySchemas","entitySchemas","getTimeSchema","getSearchTermSchema","getShoppingSchema","getPublisherSchema","getLandingSchema","Landing","getGeographicSchema","getLocationSchema","getCallForwardingSchema","CallForwarding","getAgeSchema","Age","getKeywordsLabelSchema","getAdLabelSchema","getAdGroupLabelSchema","LabelAdGroup","getCampaignLabelSchema","getAccountLabelSchema","getNegativeKeywordsListsGridFactory","NegativeKeywordListGrid","merge","ListNameColumn","SharedEntityId","SharedEntityName","nkl","pathname","customparams","nklName","clickableValueTemplate","help","campignSelectori18n","CreateNegativeKeywordAssociationViewModel","showSelector","accountLevel","getLists","cache","ajaxPost","fetchListsUrl","onSuccess","selectorControl","selectedCampaignId","selectedAdgroupId","selectorError","selectedLists","createSelectorScopeObject","showAdgroupSelector","showCampaignSelector","selectorLabel","showSelectorErrorMessage","selectorErrorMessage","shouldEnableSave","multiSelectOptions","$errors","multiSelect","selectedCampaigns","allLists","scopeObject","CreateNegativeKeywordAssocationView","findFailedEntries","failedEntries","entry","createOnSaveLibraryAssociation","libraryIds","successHandler","SharedEntityAssociation","createMany","warn","selectorView","optionalCampaignFilter","AccountNegativeKeywords","IsNKWListAssociationAllowed","CampaignSelectorProxy","withUiBlocker","edmCampaign","getCampaignSelectorView","onAdGroupSelect","onCampaignSelect","appendLearnMoreLink","lists","noListSelectedErr","createNegativeKeywordsListsGrid","getNegativeKeywordListsKeywordGridFactory","ServerErrorMap","CampaignServiceSharedEntityNameNullOrEmpty","CampaignServiceSharedEntityLimitExceeded","CampaignServiceSharedEntityInvalidType","CampaignServiceSharedEntityAssociationsNullOrEmpty","CampaignServiceMultipleSharedEntityTypesNotAllowed","CampaignServiceSharedEntityAssociationsBatchLimitExceeded","CampaignServiceSharedEntityAssociationsListItemNullOrEmpty","CampaignServiceSharedEntityAssociationDuplicate","CampaignServiceSharedEntityIdsNullOrEmpty","CampaignServiceSharedEntityNullOrEmpty","CampaignServiceDuplicateSharedEntityId","CampaignServiceSharedEntityTypeNullOrEmpty","CampaignServiceSharedListDeleted","CampaignServiceSharedListsNullOrEmpty","CampaignServiceSharedListNullOrEmpty","CampaignServiceSharedListIdInvalid","CampaignServiceSharedListDuplicate","CampaignServiceSharedListItemsNullOrEmpty","CampaignServiceListItemIdInvalid","CampaignServiceListItemIdsLimitExceeded","CampaignServiceSharedEntitiesNullOrEmpty","CampaignServiceSharedEntityNameTooLong","CampaignServiceSharedEntityNameInvalid","CampaignServiceSharedListIdNotAllowed","CampaignServiceSharedEntityIdInvalid","CampaignServiceMaxNegativeKeywordLimitExceededForList","CampaignServiceNegativeKeywordDeleted","CampaignServiceInvalidNegativeKeywordId","CampaignServiceInvalidNegativeKeyword","CampaignServiceNegativeKeywordListWithActiveAssociationsCannotBeDeleted","CampaignServiceNegativeKeywordTypeInvalid","CampaignServiceNegativeKeywordTextRequired","CampaignServiceDuplicateNegativeKeywordListName","CampaignServiceStructuredNegativeKeywordPilotNotEnabledForCustomer","CampaignServiceNegativeKeywordTooManyParentTypes","CampaignServiceNegativeKeywordDuplicateFound","CampaignServiceNegativeKeywordNotFound","CampaignServiceNegativeKeywordInvalidMatchType","CampaignServiceNegativeKeywordInvalidParentType","CampaignServiceNegativeKeywordEntitiesNullOrEmpty","CampaignServiceNegativeKeywordEntityNull","CampaignServiceMultipleEntityTypesNotAllowed","CampaignServiceDuplicateNegativeKeyword","CampaignServiceSharedEntityAssociationDoesNotExist","CampaignServiceCampaignIdsNullOrEmpty","CampaignServiceAdGroupIdsNullOrEmpty","CampaignServiceSharedEntityBatchLimitExceeded","CampaignServiceEntityBatchLimitExceeded","CampaignServiceNegativeKeywordsAccountLimitExceeded","CampaignServiceSharedEntityAssociationsAccountLimitExceeded","CampaignServiceNegativeKeywordsNotPassed","fallbackMsg","NegativeKeywordListsKeywordGrid","NegativeKeyword","customSchema","cloneDeep","MatchType","valueMessages","payloadDelete","NegativeKeywords","payloadCreate","edmAccount","Customers","bulkCreate","campaignCacheManager","CampaignNegativeKeyword","AdGroupNegativeKeyword","patchParentObj","toPatch","NegativeKeywordColumn","MatchTypeColumn","createNegativeKeywordsListsKeywordsGrid","withPropFilter","WrappedComponent","propFilter","Wrapper","props","filteredProps","displayName","getDisplayName","hoistNonReactStatics","defaultProps","PropTypes","pug","module","exports","locals","pug_interp","pug_html","pug_mixins","locals_for_with","$$obj","pug_index0","$$l","errorColumnIsHtml","pug_index1","header1","header2","header3","header4","header5","header6","header7","bulkEditInfo","entityNameHeader","popupId","ariaLabelContext","templateString","placeHolderText","FinalUrlJson","IsFinal","URL","DisableSuffix","MobileFinalURL","linkId","displayText","fBindQuery","clarityTemplate","MicrosoftClarityAccount","headerText","subheaderText","subheaderTitle","learnMoreLinkText","learnMoreLinkTopicId","contentText","contentCss","hasNext","topicId","helpContext","learnMore","DontHaveUetTagTmpl","goalTmpl","goalTextTmpl","fileTmpl","validationTextTmpl","createGoalTextTmpl","edgeLink","chromeLink","audienceLink","createConversionGoal","createRemarketingList","goalHelp","edgeExtLink","chromeExtLink","uetTagLink","createUetTag","fileTemplateExcel","fileTemplateCsv","subheader","alertText","isResponsive","statusTypeClass"],"sourceRoot":""}