{"version":3,"file":"static/js/application.async.non-landing~182f79bf.ab9120b2.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 URI from 'urijs';\r\nimport classnames from 'classnames';\r\nimport { mergeStyleSets } from '@fluentui/react';\r\nimport { insertPopoverContainer } from '@bingads-webui-campaign/fluctuation-common';\r\nimport { GridTooltip } from '@bingads-webui-campaign/grid-tooltip';\r\nimport { appendScopeParameter, getTargetEntity } from '@bingads-webui-campaign/summary-grid-helper';\r\n\r\nexport const campaignManagedDateContainerId = 'campaign-managed-date-tooltip';\r\n\r\nexport const dismissCampaignManagedDateCallout = () => {\r\n const calloutElement = document.getElementById(campaignManagedDateContainerId);\r\n if (calloutElement) {\r\n ReactDOM.unmountComponentAtNode(calloutElement);\r\n }\r\n};\r\n\r\nexport const renderCampaignManagedDateTooltip = ({\r\n i18n, event, view, router, scope,\r\n}) => {\r\n const styles = mergeStyleSets({\r\n content: {\r\n marginBottom: '8px',\r\n },\r\n });\r\n\r\n const { right } = event.target.getBoundingClientRect();\r\n const calloutMaxWidth = 325; // this value is defined in global style\r\n const placement = right + calloutMaxWidth > window.innerWidth ? 'left' : 'right';\r\n\r\n const url = router.getRoutePathById('settings');\r\n const uri = new URI(url);\r\n const entity = getTargetEntity(event, view);\r\n uri.addQuery('campaignId', entity.Campaign?.Id);\r\n uri.addQuery('entrypoint', 'adgroupsgrid');\r\n appendScopeParameter(uri, scope);\r\n const actionLink = uri.toString();\r\n\r\n insertPopoverContainer(campaignManagedDateContainerId);\r\n const tooltipProps = {\r\n parentView: view,\r\n popoverId: 'campaign-managed-date-tooltip-id',\r\n target: event.currentTarget,\r\n show: true,\r\n onClose: dismissCampaignManagedDateCallout,\r\n onMouseLeave: dismissCampaignManagedDateCallout,\r\n closeButton: false,\r\n placement,\r\n focusLockContent: true,\r\n content: (\r\n <>\r\n
\r\n {i18n.getString('CampaignManagedDate_Tooltip')}\r\n
\r\n \r\n {i18n.getString('CampaignManagedDate_Tooltip_ViewLink')}\r\n \r\n \r\n ),\r\n };\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(campaignManagedDateContainerId)\r\n );\r\n};\r\n\r\nexport const hideCampaignManagedDateTooltip = ({ event, view }) => {\r\n if ($(event.relatedTarget).closest('#campaign-managed-date-tooltip-id').length === 0) {\r\n view.trigger('closePopup');\r\n }\r\n};\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport URI from 'urijs';\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { showLabelsPopup, filterOnLabelClick, navigateToManagePage } from '@bingads-webui-campaign/labels';\r\nimport { showQualityScoreDetail } from '@bingads-webui-campaign/campaignui-common-columns';\r\nimport { DeliveryStatusPopupFactory, showRejectionReasons, registerCountryListEvent } from '@bingads-webui-campaign/delivery-status-popup-factory';\r\nimport { getEditorialReasonsTemplate } from '@bingads-webui-campaign/rsa-ad-customizer-attribute-column';\r\nimport { updateGridQuery, appendScopeParameter, setUpErrorHandling, handleShowRejectionReasonEnter, handleShowRejectionReasonLeave } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { pgridFactory } from '@bingads-webui-campaign/pgrid-factory';\r\nimport { PageReady } from '@bingads-webui/page-ready';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport { getRoutePathById, allSiteMap } from '@bingads-webui-react/with-site-map';\r\n\r\nimport { getAdGroupBidLandscapeInitializer, getAdGroupBidLandscapeInitializerWebpack } from '../index';\r\nimport { hideCampaignManagedDateTooltip, renderCampaignManagedDateTooltip } from './tooltips/campaign-managed-date-tooltip';\r\n\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab');\r\nconst commonI18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ads-tab/common');\r\nconst { handleSortChange } = globalContext.require('campaignui/feature/bingadsgrid/service/state-manager-helper');\r\nconst legacyGlobalI18n = globalContext.require('$/i18n!legacy/global');\r\nconst CopyPaste = globalContext.require('module/view/bulkEdit/copyPaste');\r\nconst Hotkeys = globalContext.require('component/hotkeys/index');\r\nconst instrumentation = globalContext.requireDefault('campaignui/feature/instrumentation/index');\r\n\r\nconst permissions = appConfig.get('Permissions');\r\n\r\nexport class AdGroupsGrid extends DeterministicWrapperView {\r\n viewFactory({\r\n deps,\r\n filterService,\r\n getGridConfig,\r\n getPlugins,\r\n preferenceConfig,\r\n router,\r\n scope,\r\n isForVNext = false,\r\n currentCampaign,\r\n pageName,\r\n preexecuteFlag = false,\r\n }) {\r\n this.instrumentation = instrumentation;\r\n this.gridRemoved = false;\r\n this.currentCampaign = currentCampaign;\r\n const gridConfig = getGridConfig(this);\r\n\r\n this.gridName = gridConfig.name;\r\n this.deps = deps;\r\n this.isForVNext = isForVNext;\r\n this.filterService = filterService;\r\n this.scope = scope;\r\n this.router = router;\r\n this.grid = pgridFactory({\r\n gridConfig,\r\n plugins: getPlugins(this),\r\n preferenceConfig,\r\n });\r\n\r\n this.rejectionPopupContainerSelector = '#rejectionContainer';\r\n this.popoverId = 'delivery-status-popup-callout';\r\n this.pageName = pageName;\r\n this.preexecuteFlag = preexecuteFlag;\r\n this.isMCCLabelEnabled = permissions ? permissions.IsAccountLabelsEnabled : false;\r\n\r\n if (!(permissions.dynamic && permissions.dynamic.AdGroupsPageDFMV2)) {\r\n // If DFMv2 is disabled, we need to add the error handler for dataSource\r\n setUpErrorHandling({\r\n i18n,\r\n scope,\r\n gridView: this,\r\n dataSource: gridConfig.dataSource,\r\n });\r\n }\r\n\r\n if (isForVNext) {\r\n this.filterService.on('filter-state-changed', () => {\r\n if (!this.gridRemoved) {\r\n const oldQuery = _.result(this.grid.gridView.get('query'), 'filter');\r\n const newQuery = _.result(this.filterService.getCombinedFilter(), 'query');\r\n // If filter has not changed, do not update grid query\r\n if (!_.isEqual(oldQuery, newQuery)) {\r\n updateGridQuery(\r\n this.grid.gridView,\r\n this.filterService.getCombinedFilter(), true\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.grid.gridView.on('willUpdate', (changes) => {\r\n handleSortChange(changes, this.grid.gridView, gridConfig.name);\r\n });\r\n\r\n this.grid.gridView.on('didUpdate', () => {\r\n this.gridDidUpdateHandler();\r\n });\r\n\r\n this.grid.gridView.once('didReload', () => {\r\n this.grid.gridView.once('didRedraw', () => {\r\n PageReady.pageIsReady(this.pageName);\r\n }, this);\r\n });\r\n\r\n this.grid.pagination.on('change:page-number', (pageNumber) => {\r\n this.setPageNumberToState(pageNumber);\r\n });\r\n\r\n if (!this.preexecuteFlag && permissions.IsCampaignAdGroupCopyPasteEnabled && this.grid.config.name === 'summary_tab_ad_group') {\r\n const bulkEditGridOptions = {\r\n filterService: this.filterService,\r\n gridView: this.grid.gridView,\r\n pgridPlugins: this.grid,\r\n isForVNext: this.isForVNext,\r\n };\r\n\r\n Hotkeys.on('copy', CopyPaste.copy.bind(CopyPaste, 'adgroup', bulkEditGridOptions));\r\n if (this.isForVNext) {\r\n Hotkeys.on('paste', this.grid.paste.onClick);\r\n } else {\r\n Hotkeys.on('paste', CopyPaste.paste.bind(CopyPaste, bulkEditGridOptions));\r\n }\r\n\r\n Hotkeys.setup();\r\n }\r\n\r\n return this.grid.gridView;\r\n }\r\n\r\n gridDidUpdateHandler() {\r\n const data = this.grid.gridView.dataSource.rawData;\r\n setTimeout(() => {\r\n if (data) {\r\n const count = data['@ns.unfiltered.count'];\r\n this.setCreateBtnDisabled(this.shouldDisableCreateBtn(count));\r\n }\r\n });\r\n }\r\n\r\n setPageNumberToState(number) {\r\n state.set('pgridPageNumber', _.defaults({\r\n [this.gridName]: number,\r\n }, state.get('pgridPageNumber') || {}));\r\n }\r\n\r\n setCreateBtnDisabled(shouldDisableCreateBtn) {\r\n if (shouldDisableCreateBtn) {\r\n $('#button-adgroup-create').attr('disabled', 'disabled');\r\n } else {\r\n $('#button-adgroup-create').prop('disabled', false);\r\n }\r\n }\r\n\r\n shouldDisableCreateBtn(count) {\r\n const campaign = this.currentCampaign;\r\n const CurrentAccount = appConfig.get('CurrentAccount');\r\n const { IsReadOnlyUser } = permissions;\r\n // Disable create button when -\r\n // 1. Current campaign is smart shopping campaign and has one ad group\r\n // 2. Current campaign is LinkedIn campaign and has one ad group\r\n if (this.scope.campaignId != null && campaign &&\r\n (campaign.CampaignType === 'LinkedIn' || campaign.CampaignSubType === 'ShoppingSmartAds' || campaign.CampaignSubType === 12)) {\r\n return count >= 1;\r\n }\r\n return !!(IsReadOnlyUser || (CurrentAccount && CurrentAccount.Status === 32));\r\n }\r\n\r\n remove() {\r\n if (!this.preexecuteFlag && permissions.IsCampaignAdGroupCopyPasteEnabled && this.grid.config.name === 'summary_tab_ad_group') {\r\n Hotkeys.reset();\r\n }\r\n this.gridRemoved = true;\r\n this.setPageNumberToState(0);\r\n return super.remove();\r\n }\r\n\r\n renderTrunk() {\r\n if (this.isForVNext) {\r\n this.filterService.initializeCombinedFilterPromise.then(() => {\r\n if (!this.gridRemoved) {\r\n updateGridQuery(\r\n this.grid.gridView,\r\n this.filterService.getCombinedFilter(), true\r\n );\r\n }\r\n });\r\n }\r\n super.renderTrunk();\r\n }\r\n\r\n get events() {\r\n const events = {\r\n 'click .labels-cell-container #see-all': 'onLabelsRowClicked',\r\n 'click .labels-cell-item': (event) => {\r\n const key = this.grid.gridView.keyOfElement(event.target);\r\n const targetEntity = this.grid.gridView.itemWithKey(key);\r\n filterOnLabelClick(\r\n event,\r\n targetEntity.Labels,\r\n this.grid.gridView,\r\n this.filterService,\r\n this.isMCCLabelEnabled\r\n );\r\n },\r\n 'click .manage-labels-button': () => navigateToManagePage(this.router),\r\n 'click .bidlandscape_icon': 'showBidLandscape',\r\n 'click .quality-score-detail': 'showQualityScoreDetails',\r\n 'click .delivery_status_with_reject_reasons': 'showRejectionReason',\r\n 'mouseenter .dashed-date-entry': event => renderCampaignManagedDateTooltip({\r\n event, view: this.grid.gridView, i18n, router: this.router, scope: this.scope,\r\n }),\r\n 'mouseleave .dashed-date-entry': event => hideCampaignManagedDateTooltip({ event, view: this.grid.gridView }),\r\n };\r\n\r\n if (this.isForVNext) {\r\n events['mouseenter .delivery_status_with_reject_reasons'] = permissions.IsDeferredHoveringPopupEnabled ? _.partial(handleShowRejectionReasonEnter, this, this.showRejectionReason) : 'showRejectionReason';\r\n events['mouseleave .delivery_status_with_reject_reasons'] = permissions.IsDeferredHoveringPopupEnabled ? _.partial(handleShowRejectionReasonLeave, null, _.noop) : null;\r\n events['mouseleave .grid-column-Delivery'] = 'hideRejectionReason';\r\n\r\n events['click .editorial_delivery_status_with_inline_appeals'] = 'showEditorialRejectionReason';\r\n events['mouseenter .editorial_delivery_status_with_inline_appeals'] = 'showEditorialRejectionReason';\r\n }\r\n\r\n return events;\r\n }\r\n\r\n getTargetEnity(event) {\r\n const key = this.grid.gridView.keyOfElement(event.target);\r\n\r\n return this.grid.gridView.itemWithKey(key);\r\n }\r\n\r\n onLabelsRowClicked(event) {\r\n const targetEntity = this.getTargetEnity(event);\r\n this.grid.gridView.trigger('willShowLabelsPopup');\r\n\r\n showLabelsPopup({\r\n labels: targetEntity.Labels,\r\n entityType: 'AdGroup',\r\n entityName: targetEntity.Name,\r\n container: this.isForVNext ? $('.grid-and-disclaim-container') : this.$el,\r\n event,\r\n router: this.router,\r\n i18n,\r\n grid: this.grid,\r\n filterService: this.filterService,\r\n isMCCLabelEnabled: this.isMCCLabelEnabled,\r\n });\r\n if (this.isForVNext) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n showEditorialRejectionReason(event) {\r\n const key = this.grid.gridView.keyOfElement(event.target);\r\n const selectedItem = this.grid.gridView.itemWithKey(key);\r\n const editorialStatus = $(event.target).parent('.delivery-info').data('status');\r\n const attributeId = $(event.target).data('entityid');\r\n const valueLevel = $(event.target).parent('.delivery-info').data('valuelevel');\r\n const activity = instrumentation && instrumentation.editorial && instrumentation.editorial.create().toggleCountryList.create();\r\n\r\n showRejectionReasons({\r\n event,\r\n i18n,\r\n deliveryStatusDetails: [editorialStatus],\r\n getCustomTemplate: _.partial(getEditorialReasonsTemplate, {\r\n event,\r\n ajaxOptions: {\r\n host: appConfig.get('odata.url'),\r\n path: appConfig.get('odata.multipart_path'),\r\n oDataToken: appConfig.get('odata.token'),\r\n params: {\r\n campaign_id: selectedItem.Campaign.Id,\r\n account_id: appConfig.get('CurrentAccount').Id,\r\n customer_id: appConfig.get('CurrentCustomer').Id,\r\n adgroup_id: selectedItem.Id,\r\n },\r\n sessionId: appConfig.get('Omniture').SessionId,\r\n },\r\n instrumentation,\r\n i18n,\r\n attributeId,\r\n deliveryStatus: editorialStatus,\r\n valueLevel,\r\n permissions,\r\n commonI18n,\r\n }),\r\n useCustomTemplate: () => true,\r\n popoverId: this.popoverId,\r\n isForVNext: this.isForVNext,\r\n view: this.grid.gridView,\r\n afterRender: popup => registerCountryListEvent(popup.$el, activity, { id: selectedItem.Id, entity: 'ad group customizer attribute' }),\r\n });\r\n }\r\n\r\n showRejectionReason(event) {\r\n const actionLinks = [];\r\n if (this.isForVNext) {\r\n const entity = this.getTargetEnity(event);\r\n if (entity &&\r\n entity.DeliveryStatusDetails &&\r\n _.intersection(entity.DeliveryStatusDetails, ['NoEligibleAds', 'NoEligibleKeywords']).length > 0) {\r\n const resolveURL = (url) => {\r\n const uri = new URI(url);\r\n appendScopeParameter(uri, this.scope);\r\n uri.addQuery('campaignId', entity.Campaign.Id);\r\n uri.addQuery('adGroupId', entity.Id);\r\n uri.addQuery('isOpenCreatePanel', true);\r\n return uri.toString();\r\n };\r\n\r\n if (entity.DeliveryStatusDetails.includes('NoEligibleAds')) {\r\n const url = this.router.getRoutePathById('ads');\r\n actionLinks.NoEligibleAds = resolveURL(url);\r\n }\r\n if (entity.DeliveryStatusDetails.includes('NoEligibleKeywords')) {\r\n const url = this.router.getRoutePathById('keywords');\r\n actionLinks.NoEligibleKeywords = resolveURL(url);\r\n }\r\n }\r\n\r\n if (entity && entity.DeliveryStatusDetails &&\r\n entity.DeliveryStatusDetails.includes('ShoppingCampaignNoOffersPresent')) {\r\n // use all site map to get merchant center url for different scopes\r\n const url = getRoutePathById(allSiteMap, 'merchant-center');\r\n const uri = new URI(url);\r\n appendScopeParameter(uri, this.scope);\r\n actionLinks.ShoppingCampaignNoOffersPresent = uri.toString();\r\n }\r\n }\r\n\r\n const view = new DeliveryStatusPopupFactory({ grid: this.grid, i18n });\r\n view.showRejectionPopup({\r\n event,\r\n actionLinks,\r\n containerSelector: this.rejectionPopupContainerSelector,\r\n view: this,\r\n popoverId: this.popoverId,\r\n instrumentation,\r\n inContextRepairRecommedationType: 'adGroup',\r\n });\r\n }\r\n\r\n hideRejectionReason(e) {\r\n if ($(e.relatedTarget).closest(`#${this.popoverId}`).length === 0) {\r\n this.grid.gridView.trigger('closeDeliveryStatusPopup');\r\n }\r\n }\r\n\r\n showBidLandscape(event) {\r\n const targetEntity = this.getTargetEnity(event);\r\n\r\n const initializer = this.isForVNext\r\n ? () => getAdGroupBidLandscapeInitializerWebpack(\r\n true,\r\n this.deps.bidLandscapeDependencies\r\n )\r\n : getAdGroupBidLandscapeInitializer;\r\n\r\n initializer()\r\n .then(({ openAdGroupBidLandscape }) =>\r\n openAdGroupBidLandscape({\r\n event,\r\n scope: this.scope,\r\n adgroup: targetEntity,\r\n applyCallback: (updates) => {\r\n const newAdGroup = _.defaults({ ...updates }, targetEntity);\r\n\r\n this.grid.gridView.trigger('didEdit', newAdGroup);\r\n },\r\n applyBlockerEl: this.grid.gridView.$el.parent(),\r\n container: this.$el,\r\n isForVNext: this.isForVNext,\r\n }));\r\n }\r\n\r\n showQualityScoreDetails(event) {\r\n const targetEntity = this.getTargetEnity(event);\r\n\r\n showQualityScoreDetail(event, targetEntity.QualityScore, 'qsContainer', legacyGlobalI18n); // qsContainer is the id from qsContainerTemplate\r\n }\r\n\r\n get className() { return 'ad-groups-grid'; }\r\n}\r\n","import _ from 'underscore';\r\nimport { AlertHelper } from '@bingads-webui-campaign/alert-helper';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\n\r\nconst jsData = globalContext.require('component/js-data-campaign/index');\r\nconst i18nErrors = globalContext.require('component/api-errors-campaign/index');\r\n\r\n// complex fields will impact value of other fields\r\n// or read and write of fields are different schemes\r\nconst complexFields = ['EndDate', 'Status', 'AdGroupPercentCpcBid', 'AdGroupCommissionRate'];\r\n\r\nexport function InlineEditableSave({\r\n view,\r\n i18n,\r\n fieldName,\r\n updated,\r\n editorView,\r\n editorViewCallbackAfterUpdate,\r\n isDateType = false,\r\n}) {\r\n const toUpdate = _.pick(updated, 'Id', fieldName);\r\n\r\n // grid load will get date with ISO format: 2018-04-05T00:00:00.000Z,\r\n // we use bulk upsert api to do inline update, but bulk upsert cannot use the ISO format\r\n // as MT seems doing some sepcial transformation with this format\r\n // to fix this, we upsert with a MM/dd/yyyy format, but update grid with ISO format\r\n if (isDateType) {\r\n toUpdate[fieldName] = updated[fieldName] ?\r\n i18n.formatDate(new Date(updated[fieldName]), { raw: 'MM/dd/yyyy', timeZone: 'UTC' }) :\r\n null;\r\n }\r\n\r\n toUpdate.Campaign = { Id: updated.Campaign.Id };\r\n let blockerContainer;\r\n\r\n if (view.isForVNext && view.grid.config.plugins.uiBlocker.el) {\r\n blockerContainer = view.grid.config.plugins.uiBlocker.el;\r\n } else {\r\n blockerContainer = view.grid.gridView.$el;\r\n }\r\n\r\n jsData.AdGroup\r\n .update(updated.Id, toUpdate, { adapter: 'bulk' })\r\n .finally(withUiBlock(blockerContainer))\r\n .then(() => {\r\n if (editorViewCallbackAfterUpdate && _.isFunction(editorViewCallbackAfterUpdate)) {\r\n editorViewCallbackAfterUpdate();\r\n }\r\n\r\n if (_.contains(complexFields, fieldName)) {\r\n view.grid.gridView.refresh(true);\r\n } else {\r\n view.grid.gridView.trigger('didEdit', updated);\r\n }\r\n })\r\n .catch((response) => {\r\n const errorMapping = {};\r\n const unexpectedError = i18n.getString('ErrorNumber_-1');\r\n\r\n if (!response || !response.errors) {\r\n errorMapping[fieldName] = unexpectedError;\r\n } else {\r\n const errors = i18nErrors.getBulkApiErrors(response.errors, 'newadgroup');\r\n\r\n if (!errors || !errors[0] || !errors[0].message) {\r\n errorMapping[fieldName] = unexpectedError;\r\n } else {\r\n errorMapping[fieldName] = errors[0].message;\r\n }\r\n }\r\n\r\n if (_.isFunction(editorView.setErrors)) {\r\n editorView.setErrors(errorMapping);\r\n } else {\r\n const alertHelper = new AlertHelper({ i18n });\r\n alertHelper.showError(errorMapping[fieldName]);\r\n }\r\n });\r\n}\r\n","import { AdGroupCashbackPercentColumnFactory } from '@bingads-webui-campaign/personalized-offer-columns';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\n\r\nexport const AdGroupCashbackPercentColumn = AdGroupCashbackPercentColumnFactory({\r\n updater: InlineEditableSave,\r\n});\r\n","import { AdGroupCashbackScopeColumnFactory } from '@bingads-webui-campaign/personalized-offer-columns';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\n\r\nexport const AdGroupCashbackScopeColumn = AdGroupCashbackScopeColumnFactory({\r\n updater: InlineEditableSave,\r\n});\r\n","import { AdGroupCouponColumnFactory } from '@bingads-webui-campaign/personalized-offer-columns';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\n\r\nexport const AdGroupCouponColumn = AdGroupCouponColumnFactory({\r\n updater: InlineEditableSave,\r\n});\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { DeterministicView } from '@bingads-webui/deterministic-view';\r\nimport { LanguageSelector } from '@bingads-webui-campaign/language-selector';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { AdGroup } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { customizedInlineEditTemplate } from '@bingads-webui-campaign/summary-grid-helper';\r\n\r\nconst config = globalContext.require('component/config/index');\r\nconst Permissions = config.get('Permissions');\r\n\r\nfunction getLanguages() {\r\n let languages = AdGroup.properties.Language.enum;\r\n if (!Permissions.IsSimplifiedChineseLanguageEnabledInMultipleLanguage) {\r\n languages = _.without(languages, 'SimplifiedChinese');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase1Enabled) {\r\n languages = _.without(languages, 'Greek', 'Polish', 'Bulgarian', 'Croatian', 'Czech', 'Estonian', 'Hungarian', 'Latvian', 'Lithuanian', 'Maltese', 'Romanian', 'Slovak', 'Slovenian');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase2Enabled) {\r\n languages = _.without(languages, 'Turkish', 'Serbian', 'Bosnian', 'Albanian', 'Macedonian', 'Icelandic');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase6Enabled) {\r\n languages = _.without(languages, 'Hebrew', 'Arabic', 'Russian');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase2JapanEnabled) {\r\n languages = _.without(languages, 'Japanese');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase9Enabled) {\r\n languages = _.without(languages, 'Hindi', 'Malay', 'Thai', 'Indonesian', 'Tagalog');\r\n }\r\n\r\n if (!Permissions.IsAdsGlobalizationPhase9VIEnabled) {\r\n languages = _.without(languages, 'Vietnamese');\r\n }\r\n\r\n // make 'All' the first language\r\n languages = _.without(languages, 'All', 'None');\r\n\r\n if (Permissions.IsDomesticSimplifiedChineseEnabled) {\r\n languages = ['SimplifiedChinese'];\r\n }\r\n\r\n return languages;\r\n}\r\n\r\nexport class LanguageInlineEditView extends DeterministicView {\r\n initialize({ selectedLanguage, i18n, campaignHasLanguage }) {\r\n super.initialize({ selectedLanguage, i18n });\r\n\r\n this.options = {\r\n languages: getLanguages(),\r\n i18n,\r\n withInheritOption: campaignHasLanguage,\r\n selectedLanguage,\r\n i18nStrings: {\r\n SaveWarning: '',\r\n Description: i18n.getString('AdGroup_MarketLanguage'),\r\n },\r\n };\r\n this.languageSelector = new LanguageSelector(this.options);\r\n this.setChild('subEditView', this.languageSelector);\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .btn-primary': 'save',\r\n 'click .btn-default': 'cancel',\r\n };\r\n }\r\n\r\n get template() {\r\n return ({ model }) => customizedInlineEditTemplate({ model, i18n: this.options.i18n });\r\n }\r\n\r\n save() {\r\n this.trigger('save', { selectedLanguage: this.languageSelector.getSelectedLanguage() });\r\n }\r\n\r\n cancel() {\r\n this.trigger('close');\r\n }\r\n\r\n setErrors(errors) {\r\n if (errors && !_.isEmpty(errors) && _.isObject(errors)) {\r\n $('.grid-error-list').removeClass('hide');\r\n $('.grid-error-message').html(errors[_.keys(errors)[0]]);\r\n } else {\r\n $('.grid-error-list').addClass('hide');\r\n }\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport { LanguageColumn as LanguageColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { LanguageInlineEditView } from './inline-editable/language-view';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\n\r\n\r\nexport class LanguageColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n i18n, scope, view, isForVNext,\r\n }) {\r\n const title = i18n.getString('ColumnName_Language');\r\n const appConfig = globalContext.require('component/config/index');\r\n const permissions = appConfig.get('Permissions');\r\n const isDSAMixedModeCampaignEnabled = _.result(permissions, 'IsDSAMixedModeCampaignEnabled', false);\r\n\r\n super({\r\n ...LanguageColumnConfig,\r\n title,\r\n editable: true,\r\n type: 'string',\r\n enableEdit: item => this.shouldEnableInlineEdit(item, isDSAMixedModeCampaignEnabled),\r\n helpId: 'pop_BA_Settings_Language',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.scope = scope;\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n shouldEnableInlineEdit(item, isDSAMixedModeCampaignEnabled) {\r\n const adGroupType = item.AdGroupType;\r\n\r\n return item.Campaign && item.Campaign.CampaignType &&\r\n // currently only default type is inline editable\r\n item.Campaign.CampaignType === 'Default' &&\r\n // For users enabled mixed mode campaign pilot,\r\n // we should check whether current ad group is dynamic ad group\r\n ((isDSAMixedModeCampaignEnabled && adGroupType !== 'SearchDynamic') || !isDSAMixedModeCampaignEnabled);\r\n }\r\n\r\n pickProperty(item) {\r\n if (item.$total) {\r\n return ' ';\r\n }\r\n\r\n return item.Language ?\r\n this.i18n.getString(`Language_${item.Language}`) :\r\n this.i18n.getString('Language_Inherit');\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const languageEditorView = new LanguageInlineEditView({\r\n selectedLanguage: item.Language,\r\n i18n: this.i18n,\r\n campaignHasLanguage:\r\n item.Campaign && item.Campaign.Languages && item.Campaign.Languages.length > 0,\r\n });\r\n\r\n languageEditorView.on('save', ({ selectedLanguage }) => {\r\n const updated = _.extendOwn({}, item, { Language: selectedLanguage });\r\n\r\n return InlineEditableSave({\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'Language',\r\n updated,\r\n editorView: languageEditorView,\r\n editorViewCallbackAfterUpdate: () => {\r\n languageEditorView.trigger('close');\r\n },\r\n });\r\n });\r\n const groupClass = `grid-group-${_.result(this.config, 'group', 'other')}`;\r\n const editorView = new GridCustomizedPopupEditor({\r\n editorView: languageEditorView.render(),\r\n cellPosition: this.isForVNext ? newPosition : position,\r\n renderBelow: false,\r\n className: `adgroup-grid-inline-edit-popup grid-popupeditor ${groupClass}`,\r\n parentContainerSelector: this.isForVNext ? '.grid-and-disclaim-container' : null,\r\n });\r\n\r\n return editorView.render();\r\n }\r\n}\r\n","import * as PopupEditor from '@bingads-webui/popup-editor';\r\nimport { AdGroup } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { InlineEditableSave } from './save';\r\n\r\n\r\nexport function InlineEditableColumnPrompt({\r\n position, item, view, i18n, fieldName, saveModel = null, customValidators = null,\r\n adGroupSchema = AdGroup, customClass, customHint,\r\n}) {\r\n let saveModelCallback;\r\n\r\n if (saveModel) {\r\n saveModelCallback = saveModel;\r\n } else {\r\n saveModelCallback = (updated, editorView) =>\r\n InlineEditableSave({\r\n view,\r\n i18n,\r\n fieldName,\r\n updated,\r\n editorView,\r\n editorViewCallbackAfterUpdate: () => editorView.trigger('save', updated),\r\n });\r\n }\r\n\r\n PopupEditor.prompt({\r\n position,\r\n i18n,\r\n schema: adGroupSchema,\r\n model: item,\r\n fields: [fieldName],\r\n hasLabels: false,\r\n template: 'inline',\r\n customValidators,\r\n saveModel: saveModelCallback,\r\n parentContainerSelector: '.grid-and-disclaim-container',\r\n customClass,\r\n customHint,\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { adGroupMetricCategoriesFactory } from '@bingads-webui/custom-columns-shared-config';\r\nimport {\r\n BidStrategyNameColumn,\r\n ColumnConversions,\r\n ColumnViewThroughConversions,\r\n DeliveryColumn,\r\n ColumnTopImpressionRate,\r\n ColumnAbsoluteTopImpressionRate,\r\n ColumnConversionsCredit,\r\n ColumnViewThroughConversionsCredit,\r\n} from '@bingads-webui-campaign/campaignui-common-columns';\r\nimport { RSAAdCustomizerAttributeColumn } from '@bingads-webui-campaign/rsa-ad-customizer-attribute-column';\r\nimport { LabelsColumn } from '@bingads-webui-campaign/labels';\r\nimport { ColumnsConfigBuilder } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { AdGroupCashbackPercentColumn } from './attributes/ad-group-cashback-percent-column';\r\nimport { AdGroupCashbackScopeColumn } from './attributes/ad-group-cashback-scope-column';\r\nimport { AdGroupCouponColumn } from './attributes/ad-group-coupon-column';\r\nimport { LanguageColumn } from './attributes/language';\r\nimport { AdGroupColumn } from './attributes/ad-group';\r\nimport { CampaignColumn } from './attributes/campaign';\r\nimport { BidStrategyTypeColumn } from './attributes/bid-strategy-type';\r\nimport { SearchBidColumn } from './attributes/search-bid-column';\r\nimport { CpmBidColumn } from './attributes/cpm-bid-column';\r\nimport { CpvBidColumn } from './attributes/cpv-bid-column';\r\nimport { PercentCpcBidColumn } from './attributes/percent-cpc-bid-column';\r\nimport { CommissionRateColumn } from './attributes/pay-per-stay-bid-column';\r\nimport { QualityScoreColumn } from './attributes/quality-score';\r\nimport { MediumColumn } from './attributes/medium';\r\nimport { AdGroupIdColumn } from './attributes/ad-group-id';\r\nimport { StartDateColumn } from './attributes/start-date';\r\nimport { EndDateColumn } from './attributes/end-date';\r\nimport { StatusIconColumn } from './attributes/status-icon';\r\nimport { AdGroupTypeColumn } from './attributes/ad-group-type';\r\nimport { CustomParametersColumn, FinalUrlSuffixColumn, TrackingTemplateColumn } from './attributes/tracking-template-columns';\r\nimport {\r\n getLockedBidColumns, getUnlockedBidColumns, isBiddingSchemeUpdated,\r\n getSelectedBidColumns, columnProcessorBeforeSetRecordGetter\r\n} from './dynamic-column-config-utils';\r\n\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab');\r\nconst i18nErrors = globalContext.require('component/api-errors-campaign/index');\r\nconst { Columns, SelectedColumns } = globalContext.require('component/bingads-grid/service/column-chooser-preferences');\r\nconst { LegacyColumns, LegacySelectedColumns } = globalContext.require('component/bingads-grid/service/legacy-column-chooser-preferences');\r\nconst { CustomColumns } = globalContext.require('component/bingads-grid/service/custom-column-preferences');\r\nconst config = globalContext.require('component/config/index');\r\nconst { LegacyGridFlag } = globalContext.require('component/bingads-grid/service/legacy-grid-flag-preferences');\r\nconst jsData = globalContext.require('component/js-data-campaign/index');\r\nconst Permissions = config.get('Permissions');\r\nlet builder = null;\r\nlet campaignIdInLastBuilder;\r\nlet lastGlobalCampaignTypeFilter;\r\n\r\nconst {\r\n IsViewThroughConversionEnabled,\r\n IsAudienceSOVEnabled,\r\n IsDSAMixedModeCampaignEnabled,\r\n IsAvgPositionDeprecationPhase1Enabled,\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n IsPersonalizedOffersEnabled,\r\n IsPersonalizedOffersV3Enabled,\r\n IsVideoAdsForCampaignEnabled,\r\n IsManualCpmEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n IsPersonalizedOffersV4Enabled,\r\n dynamic = {},\r\n} = Permissions;\r\n\r\nconst {\r\n PartialConversions: IsPartialConversionsEnabled,\r\n ColumnConversion: IsColumnConversionEnabled,\r\n HotelCampaign: IsHotelCampaignEnabled,\r\n XandrVideoCampaigns,\r\n CPSReporting,\r\n InstallPerformanceColumns,\r\n ConvValueRules: isConversionValueRuleColumnsEnabled,\r\n} = dynamic;\r\n\r\nconst usePartialConversions = IsPartialConversionsEnabled && IsColumnConversionEnabled;\r\n\r\nconst isPortfolioBidStrategyEnabled = _.result(Permissions.dynamic, 'PortfolioBidStrategy');\r\n\r\nconst allBidColumns = [\r\n SearchBidColumn,\r\n CpvBidColumn,\r\n CpmBidColumn,\r\n PercentCpcBidColumn,\r\n CommissionRateColumn,\r\n];\r\n\r\nfunction getBuilder({ campaignId, currentCampaign, globalCampaignTypeFilter }) {\r\n // initialize column config if\r\n // 1: not initialize yet.\r\n // 2: scope has changed from account to campaign level or campaign to account level\r\n // 3: global campaign filter updates\r\n if (builder === null || campaignId !== campaignIdInLastBuilder ||\r\n lastGlobalCampaignTypeFilter !== globalCampaignTypeFilter ||\r\n isBiddingSchemeUpdated({ campaignId, currentCampaign })) {\r\n campaignIdInLastBuilder = campaignId;\r\n lastGlobalCampaignTypeFilter = globalCampaignTypeFilter;\r\n let lockedColumns = [\r\n AdGroupColumn,\r\n ];\r\n\r\n if (!campaignId) {\r\n lockedColumns.push(CampaignColumn);\r\n }\r\n\r\n lockedColumns = lockedColumns.concat(getLockedBidColumns({\r\n campaignId,\r\n currentCampaign,\r\n allBidColumns,\r\n IsVideoAdsForCampaignEnabled: IsVideoAdsForCampaignEnabled || XandrVideoCampaigns,\r\n IsManualCpmEnabled,\r\n IsHotelCampaignEnabled,\r\n config,\r\n globalCampaignTypeFilter,\r\n }));\r\n\r\n builder = new ColumnsConfigBuilder({ Permissions })\r\n .addCategory('Attributes', category => category.addColumns(_.compact(_.union(lockedColumns, [\r\n DeliveryColumn,\r\n isPortfolioBidStrategyEnabled && BidStrategyNameColumn,\r\n BidStrategyTypeColumn,\r\n ...getUnlockedBidColumns({\r\n campaignId,\r\n currentCampaign,\r\n allBidColumns,\r\n IsVideoAdsForCampaignEnabled: IsVideoAdsForCampaignEnabled || XandrVideoCampaigns,\r\n IsManualCpmEnabled,\r\n IsHotelCampaignEnabled,\r\n config,\r\n globalCampaignTypeFilter,\r\n }),\r\n QualityScoreColumn,\r\n MediumColumn,\r\n AdGroupIdColumn,\r\n StartDateColumn,\r\n EndDateColumn,\r\n Permissions.IsCampaignMultipleLanguageEnabled && LanguageColumn,\r\n TrackingTemplateColumn,\r\n CustomParametersColumn,\r\n FinalUrlSuffixColumn,\r\n LabelsColumn,\r\n IsPersonalizedOffersEnabled && !IsPersonalizedOffersV4Enabled\r\n ? AdGroupCashbackPercentColumn : null,\r\n IsPersonalizedOffersEnabled && !IsPersonalizedOffersV4Enabled\r\n ? AdGroupCashbackScopeColumn : null,\r\n IsPersonalizedOffersV3Enabled && !IsPersonalizedOffersV4Enabled\r\n ? AdGroupCouponColumn : null,\r\n IsDSAMixedModeCampaignEnabled && AdGroupTypeColumn,\r\n ]))))\r\n .addPerformanceCategoryForAdGroups({\r\n IsAvgPositionDeprecationPhase2Enabled,\r\n })\r\n .addConversionsCategory({\r\n IsViewThroughConversionEnabled,\r\n IsViewThroughConversionsRevenueEnabled,\r\n withPartialConversions: IsPartialConversionsEnabled,\r\n IsColumnConversionEnabled,\r\n isCPSEnabled: CPSReporting,\r\n isInstallColumnsEnabled: InstallPerformanceColumns,\r\n isConversionValueRuleColumnsEnabled,\r\n })\r\n .addCompetitiveCategoryForCampaignOrAdGroups({\r\n IsAudienceSOVEnabled,\r\n });\r\n\r\n if (Permissions.IsCallMeteringAllowed) {\r\n builder.addCallDetailsCategory();\r\n }\r\n\r\n builder\r\n .setLockedColumns([\r\n StatusIconColumn,\r\n ...lockedColumns,\r\n ])\r\n .setSelectedColumns(_.compact([\r\n IsDSAMixedModeCampaignEnabled && AdGroupTypeColumn,\r\n DeliveryColumn,\r\n isPortfolioBidStrategyEnabled && BidStrategyNameColumn,\r\n BidStrategyTypeColumn,\r\n ...getSelectedBidColumns({\r\n allBidColumns,\r\n IsVideoAdsForCampaignEnabled: IsVideoAdsForCampaignEnabled || XandrVideoCampaigns,\r\n IsManualCpmEnabled,\r\n }),\r\n LabelsColumn,\r\n QualityScoreColumn,\r\n MediumColumn,\r\n AdGroupIdColumn,\r\n StartDateColumn,\r\n EndDateColumn,\r\n Permissions.IsCampaignMultipleLanguageEnabled && LanguageColumn,\r\n TrackingTemplateColumn,\r\n CustomParametersColumn,\r\n FinalUrlSuffixColumn,\r\n usePartialConversions && ColumnConversionsCredit,\r\n !usePartialConversions && ColumnConversions,\r\n usePartialConversions && ColumnViewThroughConversionsCredit,\r\n !usePartialConversions && ColumnViewThroughConversions,\r\n IsAvgPositionDeprecationPhase1Enabled && ColumnTopImpressionRate,\r\n IsAvgPositionDeprecationPhase1Enabled && ColumnAbsoluteTopImpressionRate,\r\n ]));\r\n }\r\n\r\n return builder;\r\n}\r\n\r\nconst nameFromLegacy = {\r\n StatusIcon: 'Status',\r\n Name: 'AdGroup',\r\n CampaignName: 'Campaign',\r\n DeliveryStatusView: 'Delivery',\r\n DisplayBiddingStrategyType: 'BidStrategyType',\r\n 'Bidding.BroadBid': 'SearchBid',\r\n FormattedMedium: 'Medium',\r\n ID: 'AdGroupId',\r\n TrackingTemplateJson: 'TrackingTemplate',\r\n UrlCustomParametersJson: 'CustomParameters',\r\n ClickCount: 'Clicks',\r\n ImpressionCount: 'Impressions',\r\n ClickThrough: 'CTR',\r\n TotalSpendAmount: 'Spend',\r\n TotalCost: 'ClickAndPhoneSpend',\r\n ConversionCount: 'Conversions',\r\n AdGroupCallTrackingStatus: 'CallForwarding',\r\n PhoneCost: 'PhoneSpend',\r\n PhoneThroughRate: 'PTR',\r\n};\r\n\r\nexport function getColumnsConfig(options) {\r\n return getBuilder(_.defaults({}, options.scope, _.pick(options, 'currentCampaign', 'globalCampaignTypeFilter')))\r\n .getColumnsConfig(options);\r\n}\r\n\r\nexport function getColumnChooserConfig({\r\n scope, currentCampaign, filterService, isForVNext = false,\r\n globalCampaignTypeFilter,\r\n}) {\r\n let customColumnConfig;\r\n\r\n if (Permissions.IsCustomColumnsInAdGroupsSupported) {\r\n const { metricCategories, segmentCategories } = adGroupMetricCategoriesFactory(Permissions);\r\n\r\n customColumnConfig = {\r\n enabled: true,\r\n metricCategories,\r\n segmentCategories,\r\n filterService,\r\n };\r\n }\r\n\r\n const bidColumns = [\r\n 'SearchBid',\r\n 'CpvBid',\r\n 'CpmBid',\r\n 'PercentCpcBid',\r\n 'CommissionRate',\r\n ];\r\n const lockedColumns = getLockedBidColumns({\r\n campaignId: currentCampaign && currentCampaign.Id,\r\n currentCampaign,\r\n allBidColumns: bidColumns,\r\n IsVideoAdsForCampaignEnabled,\r\n IsManualCpmEnabled,\r\n IsHotelCampaignEnabled,\r\n config,\r\n globalCampaignTypeFilter,\r\n });\r\n const columnProcessorBeforeSetRecord = columnProcessorBeforeSetRecordGetter(lockedColumns);\r\n\r\n // eslint-disable-next-line max-len\r\n return _.defaults(getBuilder(_.defaults({}, scope, { currentCampaign, globalCampaignTypeFilter })).getColumnChooserConfig({\r\n i18n,\r\n patchQuery: true,\r\n Columns,\r\n SelectedColumns,\r\n LegacyColumns,\r\n LegacySelectedColumns,\r\n LegacyGridFlag,\r\n nameFromLegacy,\r\n CustomColumns,\r\n customColumnConfig,\r\n permissions: Permissions,\r\n }), {\r\n isForVNext,\r\n i18nErrors,\r\n columnProcessorBeforeSetRecord,\r\n AdCustomizerAttribute: jsData.AdCustomizerAttribute,\r\n resource: jsData.AdGroupAdCustomizerAttribute,\r\n RSAAdCustomizerAttributeColumn,\r\n enableRSAAdCustomizer: true,\r\n });\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { AdGroupColumn as AdGroupColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { InlineEditableColumnPrompt } from './inline-editable/prompt';\r\nimport adGroupTemplate from './ad-group.pug';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\n\r\nexport class AdGroupColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n i18n,\r\n scope,\r\n view,\r\n permissions,\r\n }) {\r\n super({\r\n ...AdGroupColumnConfig,\r\n title: i18n.getString('ColumnName_AdGroup'),\r\n sortable: 'Name',\r\n editable: true,\r\n type: 'string',\r\n bodyClasses: ['grid-column-AdGroup'],\r\n group: 'freezing',\r\n });\r\n\r\n this.scope = scope;\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.permissions = permissions;\r\n }\r\n\r\n pickProperty(item) {\r\n const { customerId: cid, accountId: aid, userId: uid } = this.scope;\r\n const {\r\n Id: adgid,\r\n Campaign: {\r\n Id: cmpid,\r\n CampaignType,\r\n } = {},\r\n Name: name,\r\n AdGroupType,\r\n $total,\r\n } = item;\r\n\r\n let pathName = '/campaign/vnext/keywords';\r\n if (CampaignType === 'Shopping') {\r\n pathName = '/campaign/vnext/productgroups/hierarchy';\r\n } else if (CampaignType === 'Hotel') {\r\n const IsRenameHotelToLodgingEnabled = this.permissions && this.permissions.dynamic && this.permissions.dynamic.IsRenameHotelToLodgingEnabled;\r\n if (IsRenameHotelToLodgingEnabled) {\r\n pathName = '/campaign/vnext/propertygroups/hierarchy';\r\n } else {\r\n pathName = '/campaign/vnext/hotelgroups/hierarchy';\r\n }\r\n } else if (AdGroupType === 'SearchDynamic') {\r\n pathName = '/campaign/vnext/dynamicadtargets/targets';\r\n } else if (CampaignType === 'LinkedIn') {\r\n pathName = '/campaign/vnext/ads';\r\n }\r\n\r\n const vNextHref = `${pathName}?aid=${aid}&cid=${cid}&uid=${uid}&campaignId=${cmpid}&adGroupId=${adgid}`;\r\n\r\n return {\r\n cmpid,\r\n adgid,\r\n $total,\r\n name,\r\n isForVNext: true,\r\n href: vNextHref,\r\n ariaLabel: this.i18n.getString('Click to scope to ad group {{adGroupName}}', { adGroupName: name }),\r\n };\r\n }\r\n\r\n get template() { return adGroupTemplate; }\r\n\r\n onPrompt({\r\n event, item, newPosition,\r\n }) {\r\n if ($(event.target).is('a')) {\r\n event.preventDefault();\r\n return undefined;\r\n }\r\n\r\n return InlineEditableColumnPrompt({\r\n position: newPosition,\r\n item,\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'Name',\r\n saveModel: (updated, editorView) =>\r\n InlineEditableSave({\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'Name',\r\n updated,\r\n editorView,\r\n editorViewCallbackAfterUpdate: () => {\r\n editorView.trigger('save', updated);\r\n // update wunderbar\r\n const response = [{\r\n Id: item.Id,\r\n Name: updated.Name,\r\n }];\r\n\r\n window.App.trigger('adGroupUpdated', { data: response });\r\n },\r\n }),\r\n customClass: `grid-group-${_.result(this.config, 'group', 'other')}`,\r\n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { CampaignColumn as CampaignColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport campaignTemplate from './campaign.pug';\r\n\r\nexport class CampaignColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n i18n, scope, router, isForVNext,\r\n }) {\r\n super({\r\n ...CampaignColumnConfig,\r\n title: i18n.getString('ColumnName_Campaign'),\r\n sortable: 'Campaign/Name',\r\n bodyClasses: ['grid-column-Campaign'],\r\n type: 'string',\r\n });\r\n\r\n this.i18n = i18n;\r\n this.scope = scope;\r\n this.router = router;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n const { customerId: cid, accountId: aid } = this.scope;\r\n const {\r\n Campaign: {\r\n Name: name,\r\n Id: cmpid,\r\n BaseCampaignName: baseCampaignName,\r\n } = {},\r\n } = item;\r\n\r\n const vNextHref = `/campaign/vnext/campaigns?campaignId=${cmpid}`;\r\n\r\n let ariaLabel = this.i18n.getString('Click to scope to campaign {{campaignName}}', { campaignName: name });\r\n let className = '';\r\n\r\n if (this.isForVNext && baseCampaignName) {\r\n ariaLabel = this.i18n.getString('Click to scope to experiment {{experimentName}}', { experimentName: name });\r\n className = 'experiment-name';\r\n }\r\n\r\n return {\r\n name,\r\n href: this.isForVNext ? vNextHref : this.router.getRouteTo({\r\n cid,\r\n aid,\r\n cmpid,\r\n }),\r\n cmpid,\r\n baseCampaignName,\r\n isForVNext: this.isForVNext,\r\n ariaLabel,\r\n className,\r\n };\r\n }\r\n\r\n get template() { return campaignTemplate; }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { SchemaI18n } from '@bingads-webui-universal/schema-i18n';\r\nimport { BidStrategyTypeColumn as BidStrategyTypeColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { isXandrServing } from '@bingads-webui-campaign-react/constants';\r\n\r\nimport bidStrategyTypeTemplate from './bid-strategy-type.pug';\r\n\r\nexport class BidStrategyTypeColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n const title = i18n.getString('ColumnName_BidStrategyType');\r\n\r\n super({\r\n ...BidStrategyTypeColumnConfig,\r\n title,\r\n sortable: 'DisplayBiddingStrategyType',\r\n type: 'string',\r\n helpId: 'pop_BA_CampaignGrids_BidStrategy',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.schemaI18n = new SchemaI18n({ i18n });\r\n }\r\n\r\n pickProperty(item) {\r\n let type = item.DisplayBiddingStrategyType;\r\n\r\n if (isXandrServing(_.result(item.Campaign, 'CampaignSubType'), _.result(item.Campaign, 'CampaignSettings'))) {\r\n if (type === 'ManualCpm') {\r\n type = 'ViewableCpm';\r\n } else if (type === 'ManualCpv') {\r\n type = 'Cpcv';\r\n }\r\n }\r\n\r\n return type;\r\n }\r\n\r\n template({ value }) {\r\n return bidStrategyTypeTemplate({ value, schemaI18n: this.schemaI18n });\r\n }\r\n}\r\n","/* eslint-disable no-param-reassign */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { ceil } from 'lodash';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { AdGroup } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { BiddingStrategyToRangeKey, DefaultBidCPVWarningThreshold, BiddingStrategyToPricingModel } from '@bingads-webui-campaign/audience-campaign-shared';\r\nimport { defaultMSStoreMinSuggestionBid } from '@bingads-webui-campaign-legacy/budget/shared/defaultBid';\r\nimport { isMSStoreAdsCampaign } from '@bingads-webui-campaign-react/ms-store-ads-common';\r\nimport { Alert } from '@bingads-webui-react/alert';\r\nimport { isXandrServing, isXandrVideoAdsCampaign } from '@bingads-webui-campaign-react/constants';\r\nimport { InlineEditableColumnPrompt } from './inline-editable/prompt';\r\nimport template from './bid-base-column.pug';\r\n\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst permissions = appConfig.get('Permissions');\r\n\r\nexport const commonBidStrategyListToDisableBidAmountEdit = (keepEnabled = []) => ['ManualCpc', 'ManualCpv', 'ManualCpm', 'ManualCpa', 'EnhancedCpc', 'MaxClicks', 'MaxConversions', 'TargetCpa',\r\n 'TargetRoas', 'MaxConversionValue', 'TargetImpressionShare', 'CostPerSale', 'PercentCpc', 'Commission', 'MaxReach', 'MaxImpressions'].filter(bidStrategyType => !keepEnabled.includes(bidStrategyType));\r\n\r\nexport class BidBaseColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n name, property, title, i18n, view, bidStrategyListToDisableBidAmountEdit, sortable,\r\n }) {\r\n super({\r\n name,\r\n property: property || [name, 'IsBidLandscapeAvailable', 'DisplayBiddingStrategyType'],\r\n title: title || 'Bid',\r\n sortable: sortable || name,\r\n type: 'number',\r\n helpId: `Page_CampaignGrids_${name}`,\r\n enableEdit: item =>\r\n !_.contains(bidStrategyListToDisableBidAmountEdit, item.DisplayBiddingStrategyType),\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.view = view;\r\n this.i18n = i18n;\r\n this.numberFormatter = i18n.decimalToFixedFormatter({ digits: appConfig.get('globalization.number.numberOfDigits') });\r\n this.bidStrategyListToDisableBidAmountEdit = bidStrategyListToDisableBidAmountEdit;\r\n this.defaultMSStoreMinSuggestionBid = defaultMSStoreMinSuggestionBid();\r\n }\r\n\r\n onPrompt({\r\n item, event, newPosition,\r\n }) {\r\n if ($(event.target).hasClass('bidlandscape_icon')) {\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n const campaignType = (item && item.Campaign) ? _.result(item.Campaign, 'CampaignType') : '';\r\n this.campaignSubType = (item && item.Campaign) ? _.result(item.Campaign, 'CampaignSubType') : '';\r\n this.campaignSettings = (item && item.Campaign) ? _.result(item.Campaign, 'CampaignSettings') : [];\r\n const useProductGroupBidRange = permissions.IsBidLessThan5CentsInShoppingCampaignEnabled && (campaignType === 'Shopping');\r\n const isHotelCampaign = campaignType === 'Hotel';\r\n const isMSStoreAdsCampaignEnabled = isMSStoreAdsCampaign(item.Campaign);\r\n let bidRangeKey;\r\n if (useProductGroupBidRange) {\r\n bidRangeKey = 'ProductGroupBidRange';\r\n if (isMSStoreAdsCampaignEnabled) {\r\n bidRangeKey = 'WindowsStoreAdsBidRange';\r\n }\r\n } else if (isHotelCampaign) {\r\n bidRangeKey = 'KeywordBidRange';\r\n if (this.name === 'PercentCpcBid' || this.name === 'CommissionRate') {\r\n bidRangeKey = `Keyword${this.name}Range`;\r\n }\r\n } else if (isXandrVideoAdsCampaign(this.campaignSubType) && isXandrServing(this.campaignSubType, this.campaignSettings)) {\r\n if (item.DisplayBiddingStrategyType === 'ManualCpv') {\r\n bidRangeKey = 'VideoViewsCPVBidRange';\r\n } else {\r\n bidRangeKey = 'VideoViewsCPMBidRange';\r\n }\r\n } else {\r\n bidRangeKey = BiddingStrategyToRangeKey[item.DisplayBiddingStrategyType] || 'KeywordBidRange';\r\n }\r\n\r\n\r\n let min = _.result(appConfig.get(bidRangeKey), 'FloorValue');\r\n const max = _.result(appConfig.get(bidRangeKey), 'CeilingValue');\r\n\r\n if (isXandrServing(this.campaignSubType, this.campaignSettings)\r\n && permissions.IsDealEnabledForMsAds\r\n && item.DealMinimumBid && item.DealMinimumBid < max) {\r\n min = _.max([min, ceil(item.DealMinimumBid, 2)]);\r\n }\r\n\r\n const currentName = (this.name === 'PercentCpcBid' || this.name === 'CommissionRate') ? `AdGroup${this.name}` : this.name;\r\n const schemaOrigin = AdGroup;\r\n const schemaCopy = {\r\n ...schemaOrigin,\r\n properties: {\r\n ...schemaOrigin.properties,\r\n [currentName]: {\r\n ...schemaOrigin.properties[currentName],\r\n maximum: null,\r\n minimum: null,\r\n },\r\n },\r\n };\r\n let errorMsg = '';\r\n const groupClass = `grid-group-${_.result(this.config, 'group', 'other')}`;\r\n this.isDefaultBidCPVAppended = false;\r\n const pricingModel = BiddingStrategyToPricingModel[item.DisplayBiddingStrategyType];\r\n const isCommissionOrPercentCpc = item && (item.DisplayBiddingStrategyType === 'Commission' || item.DisplayBiddingStrategyType === 'PercentCpc');\r\n\r\n InlineEditableColumnPrompt({\r\n customClass: `bid-editor-prompt ${groupClass}`,\r\n // the empty space is to ensure the customHint element is rendered with empty content. So that we can put the warning in the correct position\r\n customHint: isMSStoreAdsCampaignEnabled ? ' ' : '',\r\n position: newPosition,\r\n item,\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: currentName,\r\n customValidators: {\r\n [currentName]: {\r\n isValid: (bid) => {\r\n this.showDefaultBidWarning = false;\r\n // the setTimeout is ensure the customHint element is rendered before we try to append the warning\r\n setTimeout(() => this.showLowerThanMinSuggestionBidWarning(bid, isMSStoreAdsCampaignEnabled));\r\n if (_.isNull(bid)) {\r\n errorMsg = this.i18n.getString('AdGroupSummary_SearchBidRequired');\r\n this.updateDefaultBidWarning();\r\n return false;\r\n } else if (isCommissionOrPercentCpc && (bid <= min || bid > max)) {\r\n errorMsg = this.i18n.getString('Validation_Number_Range_ExcludeMin', { min, max });\r\n this.updateDefaultBidWarning();\r\n return false;\r\n } else if (bid < min || bid > max) {\r\n errorMsg = this.i18n.getString('Validation_Number_Range_Between', { min, max });\r\n this.updateDefaultBidWarning();\r\n return false;\r\n } else if (pricingModel === 'CPV' && (\r\n (!isXandrVideoAdsCampaign(this.campaignSubType) && bid > DefaultBidCPVWarningThreshold)\r\n )) {\r\n this.showDefaultBidWarning = true;\r\n }\r\n this.updateDefaultBidWarning();\r\n return true;\r\n },\r\n message: () => errorMsg,\r\n },\r\n },\r\n adGroupSchema: schemaCopy,\r\n });\r\n }\r\n\r\n initDefaultBidWarning(element, warning) {\r\n ReactDOM.render(\r\n ,\r\n element\r\n );\r\n }\r\n\r\n updateDefaultBidWarning() {\r\n const defaultBidCPVWarningParent = $('.bid-editor-prompt .form-inline:last-of-type');\r\n const defaultBidCPVWarningId = 'default-bid-cpv-warning';\r\n if (!this.isDefaultBidCPVAppended && defaultBidCPVWarningParent.length === 1) {\r\n defaultBidCPVWarningParent.append(`
`);\r\n this.defaultBidCPVWarning = document.getElementById(defaultBidCPVWarningId);\r\n $(`#${defaultBidCPVWarningId}`).hide();\r\n const warning = this.i18n.getString('Audience_Campaign_DefaultBid_CPV_Warning');\r\n this.initDefaultBidWarning(this.defaultBidCPVWarning, warning);\r\n this.isDefaultBidCPVAppended = true;\r\n }\r\n if (this.defaultBidCPVWarning) {\r\n if (this.showDefaultBidWarning) {\r\n $(`#${defaultBidCPVWarningId}`).show();\r\n } else {\r\n $(`#${defaultBidCPVWarningId}`).hide();\r\n }\r\n }\r\n }\r\n\r\n formatBidString(name, bid, bidstrategy) {\r\n const isAutoBid = bidstrategy === 'TargetCpa' || bidstrategy === 'TargetRoas' || bidstrategy === 'MaxConversionValue' || bidstrategy === 'MaxConversions' || bidstrategy === 'MaxClicks' || bidstrategy === 'TargetImpressionShare';\r\n if (permissions.dynamic && permissions.dynamic.HideAutoBidValueInGrid && isAutoBid && bid !== null) {\r\n return this.i18n.getString('BidStrategy_BidAuto_HideValue');\r\n }\r\n if (bid) {\r\n const formattedBid = this.numberFormatter(bid);\r\n if (name === 'PercentCpcBid' || name === 'CommissionRate') {\r\n return `${formattedBid}%`;\r\n }\r\n switch (bidstrategy) {\r\n case 'EnhancedCpc':\r\n return `${formattedBid} ${this.i18n.getString('BidStrategy_BidEnhanced')}`;\r\n case 'TargetCpa':\r\n case 'TargetRoas':\r\n case 'MaxConversionValue':\r\n case 'MaxConversions':\r\n case 'MaxClicks':\r\n case 'TargetImpressionShare':\r\n return this.i18n.getString('BidStrategy_BidAuto').replace('{0}', formattedBid);\r\n case 'CostPerSale':\r\n return this.i18n.getString('BidStrategy_BidAuto_CPS');\r\n case 'ManualCpc':\r\n default:\r\n return formattedBid;\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n\r\n pickProperty(item) {\r\n const {\r\n IsBidLandscapeAvailable,\r\n DisplayBiddingStrategyType: bidstrategy,\r\n Id: id,\r\n Campaign: campaign,\r\n } = item;\r\n let bid = null;\r\n const {\r\n IsAdgroupLandscapeV2Enabled,\r\n } = permissions;\r\n\r\n if (campaign && campaign.CampaignType !== 'LinkedIn') {\r\n if (this.name === 'PercentCpcBid' || this.name === 'CommissionRate') {\r\n bid = item[this.name] && item[this.name].RateAmount && item[this.name].RateAmount.Amount;\r\n item[`AdGroup${this.name}`] = bid;\r\n } else {\r\n bid = item[this.name];\r\n }\r\n }\r\n\r\n let hasBidlandscape = IsBidLandscapeAvailable;\r\n if (campaign && campaign.CampaignType === 'Audience' && bidstrategy !== 'ManualCpc') {\r\n hasBidlandscape = hasBidlandscape && IsAdgroupLandscapeV2Enabled;\r\n }\r\n\r\n return {\r\n hasBidlandscape,\r\n bid: this.formatBidString(this.name, bid, bidstrategy),\r\n id,\r\n isBidReadOnly: permissions.IsReadOnlyUser ||\r\n appConfig.get('CurrentAccountInActive') ||\r\n _.contains(this.bidStrategyListToDisableBidAmountEdit, bidstrategy),\r\n isSearchMediumType: item.Medium !== 'Content',\r\n i18n: this.i18n,\r\n };\r\n }\r\n\r\n showLowerThanMinSuggestionBidWarning(bid, isMSStoreAdsCampaignEnabled) {\r\n if (!isMSStoreAdsCampaignEnabled) return;\r\n const customHint = $('.bid-editor-prompt .customHint');\r\n if (bid < this.defaultMSStoreMinSuggestionBid) {\r\n customHint.html(`
\r\n
\r\n
\r\n ${this.i18n.getString(_TL_('MinSuggestionBidWarning'), { minSuggestionBid: this.defaultMSStoreMinSuggestionBid })}\r\n
\r\n
`);\r\n customHint.show();\r\n } else {\r\n customHint.hide();\r\n }\r\n }\r\n get template() {\r\n return template;\r\n }\r\n}\r\n","import { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { SearchBidColumn as SearchBidColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { BidBaseColumn, commonBidStrategyListToDisableBidAmountEdit } from './bid-base-column';\r\n\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst permissions = appConfig.get('Permissions');\r\n\r\nexport class SearchBidColumn extends BidBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...SearchBidColumnConfig,\r\n title: (permissions.IsVideoAdsForCampaignEnabled || permissions.IsManualCpmEnabled)\r\n ? i18n.getString('ColumnName_CpcBid')\r\n : i18n.getString('ColumnName_SearchBid'),\r\n i18n,\r\n view,\r\n bidStrategyListToDisableBidAmountEdit: commonBidStrategyListToDisableBidAmountEdit(['EnhancedCpc', 'ManualCpc']),\r\n isForVNext,\r\n });\r\n }\r\n}\r\n","import { CpmBidColumn as CpmBidColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { BidBaseColumn, commonBidStrategyListToDisableBidAmountEdit } from './bid-base-column';\r\n\r\nexport class CpmBidColumn extends BidBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...CpmBidColumnConfig,\r\n title: i18n.getString('ColumnName_CpmBid'),\r\n i18n,\r\n view,\r\n bidStrategyListToDisableBidAmountEdit: commonBidStrategyListToDisableBidAmountEdit(['ManualCpm']),\r\n isForVNext,\r\n });\r\n }\r\n}\r\n","import { CpvBidColumn as CpvBidColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { BidBaseColumn, commonBidStrategyListToDisableBidAmountEdit } from './bid-base-column';\r\n\r\nexport class CpvBidColumn extends BidBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...CpvBidColumnConfig,\r\n title: i18n.getString('ColumnName_CpvBid'),\r\n i18n,\r\n view,\r\n bidStrategyListToDisableBidAmountEdit: commonBidStrategyListToDisableBidAmountEdit(['ManualCpv']),\r\n isForVNext,\r\n });\r\n }\r\n}\r\n","import { PercentCpcBidColumn as PercentCpcBidColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { BidBaseColumn, commonBidStrategyListToDisableBidAmountEdit } from './bid-base-column';\r\n\r\nexport class PercentCpcBidColumn extends BidBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...PercentCpcBidColumnConfig,\r\n sortable: 'PercentCpcBid/RateAmount/Amount',\r\n title: i18n.getString('ColumnName_PercentCpcBid'),\r\n i18n,\r\n view,\r\n bidStrategyListToDisableBidAmountEdit: commonBidStrategyListToDisableBidAmountEdit(['PercentCpc']),\r\n isForVNext,\r\n });\r\n }\r\n}\r\n","import { CommissionRateColumn as CommissionRateColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { BidBaseColumn, commonBidStrategyListToDisableBidAmountEdit } from './bid-base-column';\r\n\r\nexport class CommissionRateColumn extends BidBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...CommissionRateColumnConfig,\r\n sortable: 'CommissionRate/RateAmount/Amount',\r\n title: i18n.getString('ColumnName_CommissionRate'),\r\n i18n,\r\n view,\r\n bidStrategyListToDisableBidAmountEdit: commonBidStrategyListToDisableBidAmountEdit(['Commission']),\r\n isForVNext,\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { QualityScoreColumn as QualityScoreColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport qualityScoreTemplate from './quality-score.pug';\r\n\r\nexport class QualityScoreColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, isForVNext }) {\r\n const title = i18n.getString('ColumnName_QualityScore');\r\n\r\n super({\r\n ...QualityScoreColumnConfig,\r\n title,\r\n sortable: 'QualityScore/OverallQualityScore',\r\n type: 'string',\r\n helpId: 'Page_CampaignGrids_QualScore',\r\n bodyClasses: ['grid-column-QualityScore'],\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.titleDetail = i18n.getString('Page_Keywords_QualityScoreDetails');\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n return _.defaults({\r\n score: item && item.QualityScore && item.QualityScore.OverallQualityScore,\r\n title: this.titleDetail,\r\n });\r\n }\r\n\r\n template(model) {\r\n return qualityScoreTemplate(_.extend({\r\n isForVNext: this.isForVNext,\r\n }, model));\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { SchemaI18n } from '@bingads-webui-universal/schema-i18n';\r\nimport { MediumColumn as MediumColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport mediumTemplate from './medium.pug';\r\n\r\nexport class MediumColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n const title = i18n.getString('ColumnName_Medium');\r\n\r\n super({\r\n ...MediumColumnConfig,\r\n title,\r\n sortable: 'Medium',\r\n type: 'string',\r\n helpId: 'Page_CampaignGrids_Medium',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.schemaI18n = new SchemaI18n({ i18n });\r\n }\r\n\r\n template({ value }) {\r\n return mediumTemplate({ value, schemaI18n: this.schemaI18n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { AdGroupIdColumn as AdGroupIdColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\n\r\nexport class AdGroupIdColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n super({\r\n ...AdGroupIdColumnConfig,\r\n title: i18n.getString('ColumnName_AdGroupId'),\r\n sortable: 'Id',\r\n type: 'number',\r\n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport '@bingads-webui/kendo/kendo.data';\r\nimport { StartDateColumn as StartDateColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { DateInlineEditableColumnPrompt } from '@bingads-webui-campaign/date-inline-edit-prompt';\r\nimport { convertUTCDateToMachineDate, displayDate, getCurrentDate } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\nimport dateTemplate from './date.pug';\r\n\r\nexport class StartDateColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n const title = i18n.getString('ColumnName_StartDate');\r\n\r\n super({\r\n ...StartDateColumnConfig,\r\n title,\r\n editable: true,\r\n sortable: 'StartDate',\r\n type: 'string',\r\n helpId: 'Page_CampaignGrids_StartDate',\r\n enableEdit: item =>\r\n (item.Campaign?.UseCampaignLevelDates ? false : new Date(item.StartDate) > getCurrentDate()),\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n return {\r\n date: this.getStartDate(item),\r\n useCampaignLevelDates: item.Campaign?.UseCampaignLevelDates,\r\n };\r\n }\r\n\r\n getStartDate(item) {\r\n if (item.$total) {\r\n return '';\r\n }\r\n\r\n return item.Campaign?.UseCampaignLevelDates\r\n ? this.displayStartDate(item.Campaign.StartDate)\r\n : this.displayStartDate(item.StartDate);\r\n }\r\n\r\n displayStartDate(startDate) {\r\n return displayDate(startDate, 'StartDate_None', this.i18n);\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const options = {\r\n position: this.isForVNext ? newPosition : position,\r\n isForVNext: this.isForVNext,\r\n item,\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'StartDate',\r\n allowNoDate: false,\r\n selectedDate: convertUTCDateToMachineDate(new Date(item.StartDate), this.i18n),\r\n updater: InlineEditableSave,\r\n };\r\n\r\n if (item.EndDate) {\r\n options.maxDate = convertUTCDateToMachineDate(new Date(item.EndDate), this.i18n);\r\n }\r\n return DateInlineEditableColumnPrompt(options);\r\n }\r\n\r\n template({ value }) {\r\n return dateTemplate(value);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport '@bingads-webui/kendo/kendo.data';\r\nimport { EndDateColumn as EndDateColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { DateInlineEditableColumnPrompt } from '@bingads-webui-campaign/date-inline-edit-prompt';\r\nimport { convertUTCDateToMachineDate, displayDate } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\nimport dateTemplate from './date.pug';\r\n\r\nexport class EndDateColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n const title = i18n.getString('ColumnName_EndDate');\r\n\r\n super({\r\n ...EndDateColumnConfig,\r\n title,\r\n editable: true,\r\n enableEdit: item => !item.Campaign?.UseCampaignLevelDates,\r\n sortable: 'EndDate',\r\n type: 'string',\r\n helpId: 'Page_CampaignGrids_EndDate',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n return {\r\n date: this.getEndDate(item),\r\n useCampaignLevelDates: item.Campaign?.UseCampaignLevelDates,\r\n };\r\n }\r\n\r\n getEndDate(item) {\r\n if (item.$total) {\r\n return '';\r\n }\r\n\r\n return item.Campaign?.UseCampaignLevelDates\r\n ? this.displayEndDate(item.Campaign.EndDate)\r\n : this.displayEndDate(item.EndDate);\r\n }\r\n\r\n displayEndDate(endDate) {\r\n return displayDate(endDate, 'EndDate_None', this.i18n);\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const groupClass = `grid-group-${_.result(this.config, 'group', 'other')}`;\r\n const options = {\r\n position: this.isForVNext ? newPosition : position,\r\n isForVNext: this.isForVNext,\r\n item,\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'EndDate',\r\n allowNoDate: true,\r\n minDate: convertUTCDateToMachineDate(new Date(item.StartDate), this.i18n),\r\n customClass: groupClass,\r\n updater: InlineEditableSave,\r\n };\r\n\r\n if (item.EndDate) {\r\n options.selectedDate = convertUTCDateToMachineDate(new Date(item.EndDate), this.i18n);\r\n }\r\n return DateInlineEditableColumnPrompt(options);\r\n }\r\n\r\n template({ value }) {\r\n return dateTemplate(value);\r\n }\r\n}\r\n","export default {\r\n Paused: 144,\r\n Expired: 150,\r\n CampaignUserPaused: 124,\r\n CampaignBudgetPaused: 126,\r\n CampaignBudgetUserPaused: 127,\r\n PrivacyPending: 137,\r\n TargetingTooNarrow: 139,\r\n Draft: 140,\r\n Active: 141,\r\n Deleted: 143,\r\n};\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { renderStatusPopupEditor } from '@bingads-webui-campaign/status-popup-editor';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { StatusIconColumn as StatusIconColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\nimport { InlineEditableSave } from './inline-editable/save';\r\nimport statusIconTemplate from './status-icon.pug';\r\nimport statusEnumMap from './status-enum-map';\r\nimport headerTemplate from './status-icon-header-template.pug';\r\n\r\nconst pageContext = globalContext.require('PageContext');\r\nconst enableGridFlexLayout = _.result(pageContext.Permissions.dynamic, 'GridFlexLayout', false);\r\n\r\nexport class StatusIconColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n, view, isForVNext }) {\r\n super({\r\n ...StatusIconColumnConfig,\r\n title: i18n.getString('ColumnName_Status'),\r\n sortable: 'EntityStatus',\r\n isResizable: false,\r\n type: 'string',\r\n bodyClasses: ['grid-column-Status'],\r\n enableEdit: item => !_.contains(['Draft', 'Expired'], item.EntityStatus),\r\n headerTemplate: () => headerTemplate({}),\r\n group: 'freezing',\r\n });\r\n\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.isForVNext = isForVNext;\r\n }\r\n\r\n pickProperty(item) {\r\n const {\r\n EntityStatus,\r\n Id,\r\n } = item;\r\n const isExperiment = _.result(item.Campaign, 'ExperimentId');\r\n\r\n return {\r\n EntityStatus,\r\n Id,\r\n isExperiment,\r\n };\r\n }\r\n\r\n template(model) {\r\n return statusIconTemplate(_.extend({}, model, {\r\n i18n: this.i18n,\r\n isForVNext: this.isForVNext,\r\n enableGridFlexLayout,\r\n }));\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const statusEditor = renderStatusPopupEditor({\r\n position: this.isForVNext ? newPosition : position,\r\n isForVNext: this.isForVNext,\r\n i18n: this.i18n,\r\n currentStatus: item.EntityStatus,\r\n statusOptions: (() => {\r\n let options = [\r\n { name: 'Enabled', value: 'Active' },\r\n { name: 'Paused', value: 'Paused' },\r\n ];\r\n const isExperiment = _.result(item.Campaign, 'ExperimentId');\r\n\r\n if (isExperiment) {\r\n options = _.map(options, (option) => {\r\n const iconClass = _.result({\r\n Enabled: 'experiment-active-icon',\r\n Paused: 'experiment-paused-icon',\r\n }, option.name);\r\n\r\n return _.defaults({ iconClass }, option);\r\n });\r\n }\r\n\r\n return options;\r\n })(),\r\n });\r\n\r\n statusEditor.then((status) => {\r\n if (status) {\r\n const updated = _.extend({}, item, { Status: status });\r\n\r\n return InlineEditableSave({\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'Status',\r\n updated,\r\n editorView: statusEditor,\r\n editorViewCallbackAfterUpdate: () => {\r\n const response = [{\r\n Id: item.Id,\r\n Status: statusEnumMap[status],\r\n }];\r\n\r\n window.App.trigger('adGroupUpdated', { data: response });\r\n },\r\n });\r\n }\r\n return undefined;\r\n });\r\n }\r\n}\r\n","import { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { AdGroupTypeColumn as AdGroupTypeColumnConfig } from '@bingads-webui-campaign/ad-groups-data';\r\n\r\nexport class AdGroupTypeColumn extends CampaignuiBaseColumn {\r\n constructor({ i18n }) {\r\n const title = i18n.getString('AdGroupType_Label');\r\n\r\n super({\r\n ...AdGroupTypeColumnConfig,\r\n title,\r\n sortable: 'AdGroupType',\r\n type: 'string',\r\n helpId: 'pop_BA_DSA_AdGroupType',\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.i18n = i18n;\r\n }\r\n pickProperty(item) {\r\n return item.AdGroupType !== 'Unknown' && item.AdGroupType != null && item.AdGroupType !== 'HotelAds' ?\r\n this.i18n.getString(`AdGroupType_${item.AdGroupType}`) :\r\n '-';\r\n }\r\n}\r\n","import {\r\n CustomParametersColumn as CustomParametersColumnConfig,\r\n FinalUrlSuffixColumn as FinalUrlSuffixColumnConfig,\r\n TrackingTemplateColumn as TrackingTemplateColumnConfig,\r\n} from '@bingads-webui-campaign/ad-groups-data';\r\nimport {\r\n TrackingTemplateColumn as TrackingTemplateColumnOriginal,\r\n CustomParametersColumn as CustomParametersColumnOriginal,\r\n FinalUrlSuffixColumn as FinalUrlSuffixColumnOriginal,\r\n} from '@bingads-webui-campaign/tracking-template-columns';\r\n\r\nexport class TrackingTemplateColumn extends TrackingTemplateColumnOriginal {\r\n constructor(options) {\r\n super({\r\n ...TrackingTemplateColumnConfig,\r\n ...options,\r\n enableEdit: item => item.Campaign && item.Campaign.CampaignType !== 'LinkedIn',\r\n });\r\n }\r\n}\r\n\r\nexport class FinalUrlSuffixColumn extends FinalUrlSuffixColumnOriginal {\r\n constructor(options) {\r\n super({\r\n ...FinalUrlSuffixColumnConfig,\r\n ...options,\r\n enableEdit: item => item.Campaign && item.Campaign.CampaignType !== 'LinkedIn',\r\n });\r\n }\r\n}\r\n\r\nexport class CustomParametersColumn extends CustomParametersColumnOriginal {\r\n constructor(options) {\r\n super({\r\n ...CustomParametersColumnConfig,\r\n ...options,\r\n enableEdit: item => item.Campaign && item.Campaign.CampaignType !== 'LinkedIn',\r\n });\r\n }\r\n}\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { crossPageSelectHeadRow } from '@bingads-webui/projection-grid-cross-page-select-all';\r\nimport { helpers } from '@bingads-webui/projection-grid-toolbar';\r\nimport { getGridName } from '@bingads-webui-campaign/inline-download-grids-metadata';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { sortableHeaderTemplate, validateOrder } from '@bingads-webui-campaign/summary-grid-helper';\r\nimport { getColumnsConfig } from './columns/index';\r\nimport { InlineEditableSave } from './columns/attributes/inline-editable/save';\r\n\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab');\r\nconst stateManager = globalContext.require('StateManager/CampaignStateManager');\r\nconst preferenceService = globalContext.requireDefault('component/preference/service/index');\r\nconst config = globalContext.require('component/config/index');\r\nconst decimal = globalContext.require('component/humanize/decimal');\r\n\r\nconst { toolbarRow } = helpers;\r\nconst helpIdMap = {\r\n AverageCPC: 'Page_CampaignGrids_AvgCPC',\r\n AveragePosition: 'Page_CampaignGrids_AvgPosition',\r\n Impressions: 'Page_CampaignGrids_Impr',\r\n AverageCPM: 'Page_CampaignGrids_AvgCPM',\r\n PhoneSpend: null,\r\n PhoneImpressions: 'Page_CampaignGrids_PhoneImpr',\r\n AverageCPP: 'Page_CampaignGrids_AvgCPP',\r\n Conversions: 'Page_CampaignGrids_Conv',\r\n ConversionsCredit: 'Page_CampaignGrids_Conv',\r\n ConversionRate: 'Page_CampaignGrids_ConvRate',\r\n PartialConversionRate: 'Page_CampaignGrids_ConvRate',\r\n AdvertiserReportedRevenue: 'Page_CampaignGrids_Revenue',\r\n RevenueOnAdSpend: 'Page_CampaignGrids_ReturnAdSpend',\r\n AuctionWonPercent: 'pop_BA_CampaignGrids_IS',\r\n AuctionLostToBudgetPercent: 'pop_BA_CampaignGrids_ISBudget',\r\n AuctionLostToRankPercent: 'pop_BA_CampaignGrids_ISRank',\r\n AuctionLostToAdQualityPercent: 'pop_BA_CampaignGrids_ISctr',\r\n AuctionLostToLandingPercent: 'pop_BA_CampaignGrids_ISRelv',\r\n AuctionLostToBidPercent: 'pop_BA_CampaignGrids_ISBid',\r\n ClickSharePercent: 'pop_BA_Reporting_ProductAds_ClickSharePercent',\r\n AbsoluteTopImpressionSharePercent: 'pop_BA_Reporting_ProductAds_AbsoluteTopImpShare',\r\n ManualCalls: 'pop_BA_Reporting_Clarity_PhoneCalls',\r\n AllConversions: 'pop_BA_CampaignGrids_AllConv',\r\n AllConversionCPA: 'pop_BA_CampaignGrids_AllConvCPA',\r\n AllConversionRate: 'pop_BA_CampaignGrids_AllConvRate',\r\n AllConversionAdvertiserReportedRevenue: 'pop_BA_CampaignGrids_AllConvRevenue',\r\n AllConversionRevenueOnAdSpend: 'pop_BA_CampaignGrids_AllConvROAS',\r\n TotalWatchTimeInMS: 'Page_CampaignGrids_TotalWatchTime',\r\n ViewThroughConversionsRevenue: 'pop_BA_Reporting_Clarity_ViewThroughConvRevenue',\r\n ViewThroughConversionsCPA: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n ViewThroughPartialConversionsCPA: 'pop_BA_Reporting_Clarity_ViewThroughConvCPA',\r\n ViewThroughConversionsReturnOnAdSpend: 'pop_BA_Reporting_Clarity_ViewThroughConvReturnOnAdSpend',\r\n ViewThroughConversionsRate: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n ViewThroughPartialConversionsRate: 'pop_BA_Reporting_Clarity_ViewThroughConvRate',\r\n ViewThroughConversions: 'pop_BA_CampaignGrids_ViewThrough',\r\n ViewThroughConversionsCredit: 'pop_BA_CampaignGrids_ViewThrough',\r\n};\r\n\r\nexport function getConfig({\r\n dataSource,\r\n scope,\r\n view,\r\n filterService,\r\n preferenceConfig,\r\n router,\r\n isForVNext,\r\n viewport,\r\n customHeaderOffset,\r\n currentCampaign,\r\n deps,\r\n globalCampaignTypeFilter,\r\n isDataFetchManagerSource,\r\n}) {\r\n const columnHelpId = name => _.result(helpIdMap, name, `Page_CampaignGrids_${name}`);\r\n\r\n const tableName = i18n.getString('EntityType_AdGroup_Plural');\r\n const permissions = config.get('Permissions');\r\n const enableGridFlexLayout = _.result(permissions.dynamic, 'GridFlexLayout', false);\r\n const gridName = getGridName('AdGroup');\r\n\r\n const gridConfig = {\r\n name: gridName,\r\n legacyGridName: 'AdGroupGrid',\r\n tableClasses: enableGridFlexLayout ? ['table'] : ['table', 'table-bordered'],\r\n tableAttributes: { 'aria-label': tableName },\r\n dataSource,\r\n selection: true,\r\n filterService,\r\n rows: {\r\n headRows:\r\n isForVNext\r\n ? [\r\n 'column-header-rows',\r\n ]\r\n : [\r\n toolbarRow('lower-toolbar'),\r\n crossPageSelectHeadRow(),\r\n 'column-header-rows',\r\n ],\r\n },\r\n columns: getColumnsConfig({\r\n i18n,\r\n decimal,\r\n scope,\r\n view,\r\n helpId: columnHelpId,\r\n permissions,\r\n inlineEditableSave: InlineEditableSave,\r\n router,\r\n isForVNext,\r\n currentCampaign,\r\n deps,\r\n globalCampaignTypeFilter,\r\n }),\r\n scrolling: {\r\n header: {\r\n type: 'sticky',\r\n offset: customHeaderOffset || (() => $('nav.navbar-default.navbar-fixed-top').height()),\r\n attributes: {\r\n 'aria-label': i18n.getString('{{tableName}} table header', { tableName }),\r\n role: 'rowgroup',\r\n },\r\n },\r\n virtualized: true,\r\n },\r\n i18n,\r\n sortableHeader: {\r\n template: sortableHeaderTemplate,\r\n },\r\n stateManager,\r\n preferenceService,\r\n config,\r\n isDataFetchManagerSource,\r\n ...enableGridFlexLayout && { layout: 'flex' },\r\n };\r\n\r\n validateOrder(preferenceConfig, gridConfig.columns, gridName, permissions);\r\n\r\n if (viewport) {\r\n gridConfig.scrolling.viewport = viewport;\r\n }\r\n\r\n return gridConfig;\r\n}\r\n","const navigation = ({\r\n toJSON: () => ({}),\r\n source: {\r\n $call: () => ({\r\n toJSON: () => ({}),\r\n navigation,\r\n }),\r\n },\r\n parameters: {},\r\n});\r\n\r\nexport const mockEdm = {\r\n root: {\r\n identifyEntitySet: () => ({\r\n toJSON: () => ({}),\r\n navigation,\r\n }),\r\n },\r\n};\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\n\r\nimport { paginationPlugin } from '@bingads-webui/projection-grid-pagination';\r\nimport { columnChooserPlugin } from '@bingads-webui-campaign/projection-grid-column-chooser';\r\nimport { editablePlugin } from '@bingads-webui-campaign/projection-grid-editable';\r\nimport { auctionInsightPlugin } from '@bingads-webui-campaign/projection-grid-auction-insight';\r\nimport { inlineDownloadWithoutFilterstatePlugin } from '@bingads-webui-campaign/projection-grid-inline-download';\r\nimport { jsdataRawDataPlugin as commonJsdataRawDataPlugin } from '@bingads-webui/projection-grid-js-data-raw-data';\r\nimport { periodOverPeriodPlugin } from '@bingads-webui-campaign/projection-grid-period-over-period';\r\nimport { segmentPlugin } from '@bingads-webui-campaign/projection-grid-segment';\r\nimport {\r\n campaignSegmentationTypeEnum,\r\n segmentationType,\r\n} from '@bingads-webui-campaign/segmentation-utilities';\r\nimport { inlineErrorPlugin } from '@bingads-webui/projection-grid-inline-error';\r\nimport { bidStrategy } from '@bingads-webui-campaign/projection-grid-bid-strategy';\r\nimport { uiBlockerPlugin } from '@bingads-webui/projection-grid-uiblocker';\r\nimport { assistedSelectionPlugin } from '@bingads-webui/projection-grid-assisted-selection';\r\nimport { performanceLogPlugin, perfMarkerPlugin } from '@bingads-webui-campaign/pgrid-performance-log';\r\nimport { a11yPlugin } from '@bingads-webui/projection-grid-a11y';\r\nimport { aggregatedRowsPluginBuilder } from '@bingads-webui-campaign/pgrid-aggregated-rows';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { dateFilterPlugin } from '@bingads-webui-campaign/projection-grid-date-filter';\r\nimport { AdGroup } from '@bingads-webui-campaign/campaign-ui-schemas';\r\nimport { getPGridColumnResizePlugin } from '@bingads-webui-campaign/projection-grid-column-resize-helper';\r\nimport { projectionGridFlexColumnResize } from '@bingads-webui-campaign/projection-grid-flex-column-resize';\r\nimport { getGridName } from '@bingads-webui-campaign/inline-download-grids-metadata';\r\n\r\nimport { getColumnChooserConfig } from './columns/index';\r\nimport { mockEdm } from '../demo/mock/edm';\r\n\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab');\r\nconst appState = globalContext.require('component/state/index');\r\nconst sessionStore = globalContext.requireDefault('component/js-data-storage/session-storage');\r\nconst edm = globalContext.requireDefault('component/edm-campaign/index');\r\nconst s$i18n = globalContext.require('$/schema-i18n!campaign');\r\nconst { DownloadView } = globalContext.require('campaignui/feature/griddownload/view/adapter');\r\nconst { setSegType, getSegType } = globalContext.require('component/bingads-grid/service/segmentation-preferences');\r\nconst ChangeBiddingStrategyModel = globalContext.require('module/model/bulkEdit/shared/changeBiddingStrategy');\r\nconst ChangeBiddingStrategyView = globalContext.require('module/view/bulkEdit/shared/changeBiddingStrategy');\r\nconst logger = globalContext.require('module/service/instrumentation/index');\r\n\r\nconst permissions = appConfig.get('Permissions');\r\nconst enableGridFlexLayout = _.result(permissions.dynamic, 'GridFlexLayout', false);\r\nconst jsdataRawDataPlugin = commonJsdataRawDataPlugin({\r\n getRawData: _.property('raw'),\r\n rawDataAccessor(ds) {\r\n // eslint-disable-next-line no-underscore-dangle\r\n return ds._rawData || ds.dataSource.dfmRawData;\r\n },\r\n});\r\n\r\nexport function getAdGroupPlugins({\r\n filterService,\r\n router,\r\n scope,\r\n isForVNext,\r\n addDateChangeListener,\r\n p$daterange,\r\n adGroupTabPerfMarker,\r\n currentCampaign,\r\n preexecuteFlag = false,\r\n globalCampaignTypeFilter,\r\n getCampaignTypeGlobalFilter,\r\n preferenceService,\r\n}) {\r\n const isSmartShoppingCampaign = currentCampaign &&\r\n (currentCampaign.CampaignSubType === 12 || currentCampaign.CampaignSubType === 'ShoppingSmartAds');\r\n const aggregatedRowsPlugin = aggregatedRowsPluginBuilder({\r\n i18n,\r\n keys: {\r\n overallI18nKey: 'AdGroupSummary_Total_New',\r\n filteredI18nKey: 'AdGroupSummary_Filtered_Total_New',\r\n waterfallFilterI18nKey: 'AdGroupSummary_Quickfilter_Total_New',\r\n },\r\n permissions,\r\n filterService,\r\n customConfig: {\r\n showLinkedInRow: true,\r\n },\r\n });\r\n const ReportEmailRule = appState.get('$ReportEmailRule');\r\n\r\n const columnChooserConfig = getColumnChooserConfig({\r\n scope,\r\n isForVNext,\r\n filterService,\r\n permissions,\r\n currentCampaign,\r\n globalCampaignTypeFilter,\r\n });\r\n\r\n if (isForVNext) {\r\n columnChooserConfig.customToolbarIcon = 'ba-TripleColumnSolid';\r\n }\r\n\r\n appState.unset('$ReportEmailRule');\r\n\r\n const getSegmentationTypes = () => {\r\n if (permissions.IsVerticalAdsReportingPhase1Enabled) {\r\n return [...campaignSegmentationTypeEnum, segmentationType.AdScenario];\r\n }\r\n\r\n return campaignSegmentationTypeEnum;\r\n };\r\n\r\n return _.compact([{\r\n // For accurate grid init latency, PerfMarkerPlugin should be the first plugin to load.\r\n plugin: perfMarkerPlugin,\r\n config: { appConfig, marker: adGroupTabPerfMarker },\r\n }, {\r\n plugin: paginationPlugin,\r\n config: {\r\n availablePageSizes: [20, 50, 100, 200],\r\n enableRandomPage: false,\r\n pageNumberLabelText: isForVNext ? '' : i18n.getString('Grid_Page_Number_Label_Text'),\r\n pageSizeText: i18n.getString('Grid_ShowRows'),\r\n totalPageCountText: i18n.getString('Grid_PageOf'),\r\n resetPageNumberOnSort: true,\r\n },\r\n },\r\n {\r\n plugin: auctionInsightPlugin,\r\n config: {\r\n isForVNext,\r\n pageName: 'adgroups',\r\n i18n,\r\n state: appState,\r\n legacyRouter: router,\r\n route: scope.campaignId ? 'campaign_adgroup_auction_insight' : 'adgroup_auction_insight',\r\n crossPageSelectNotAllowedI18nKey: 'AdGroupSummary_MultiplePageSelectionNotAllowed',\r\n shouldNavigateToCompetitionTab: permissions.IsBAACompetitionEnabled,\r\n scope,\r\n sessionStore,\r\n preferenceService,\r\n permissions,\r\n getCampaignTypeGlobalFilter,\r\n },\r\n },\r\n {\r\n plugin: inlineDownloadWithoutFilterstatePlugin,\r\n config: {\r\n isForVNext,\r\n p$daterange,\r\n\r\n DownloadView,\r\n isAvailable: true,\r\n gridId: 'AdGroupGrid',\r\n schema: AdGroup,\r\n s$i18n,\r\n i18n,\r\n ReportEmailRule,\r\n },\r\n },\r\n {\r\n plugin: segmentPlugin,\r\n config: {\r\n i18n,\r\n permissions,\r\n state: appState,\r\n isOdataActionSource: true,\r\n edm: preexecuteFlag ? mockEdm : edm,\r\n setSegType,\r\n getSegType,\r\n cultureShortDatePattern: appConfig.get('CultureDateTimeFormat').ShortDatePattern,\r\n cellTemplates: {\r\n AdGroup: 'default',\r\n },\r\n segmentationTypes: getSegmentationTypes(),\r\n },\r\n },\r\n !isSmartShoppingCampaign ? {\r\n plugin: bidStrategy,\r\n config: {\r\n isForVNext,\r\n ChangeBiddingStrategyView,\r\n ChangeBiddingStrategyModel,\r\n i18n,\r\n permissions,\r\n },\r\n } : null, !appConfig.get('CurrentAccountInActive') && !permissions.IsReadOnlyUser && {\r\n plugin: editablePlugin,\r\n config: { i18n },\r\n },\r\n {\r\n plugin: uiBlockerPlugin,\r\n config: { el: $(isForVNext ? '.ad-groups-page' : '#child-page') },\r\n },\r\n {\r\n plugin: performanceLogPlugin,\r\n config: { appConfig, logger },\r\n },\r\n {\r\n plugin: periodOverPeriodPlugin,\r\n config: { i18n },\r\n },\r\n {\r\n plugin: columnChooserPlugin,\r\n config: columnChooserConfig,\r\n },\r\n {\r\n plugin: dateFilterPlugin,\r\n config: {\r\n state: appState,\r\n isOdataActionSource: true,\r\n edm: preexecuteFlag ? mockEdm : edm,\r\n addDateChangeListener,\r\n p$daterange,\r\n },\r\n },\r\n {\r\n plugin: inlineErrorPlugin({\r\n errorIconClasses: ['grid-error'],\r\n }),\r\n },\r\n {\r\n plugin: assistedSelectionPlugin,\r\n },\r\n {\r\n plugin: a11yPlugin,\r\n config: { i18n },\r\n },\r\n {\r\n plugin: aggregatedRowsPlugin,\r\n },\r\n {\r\n plugin: jsdataRawDataPlugin,\r\n },\r\n ...enableGridFlexLayout ? [{\r\n plugin: projectionGridFlexColumnResize,\r\n config: {\r\n gridName: getGridName('AdGroup'),\r\n softDependencies: ['popColumns'],\r\n preferenceService,\r\n },\r\n }] : [getPGridColumnResizePlugin({\r\n gridName: getGridName('AdGroup'),\r\n preferenceService,\r\n permissions,\r\n })],\r\n ]);\r\n}\r\n","import { AdGroupsGrid } from './ad-groups-grid';\r\nimport { getConfig } from './grid-config';\r\nimport { getAdGroupPlugins } from './plugins';\r\n\r\n\r\nexport function createAdGroupGrid({\r\n deps = null,\r\n dataSource,\r\n filterService,\r\n getAdditionalPlugins = () => [],\r\n preferenceConfig,\r\n preferenceService,\r\n router,\r\n scope,\r\n addDateChangeListener,\r\n p$daterange,\r\n isForVNext = false,\r\n viewport,\r\n adGroupTabPerfMarker,\r\n customHeaderOffset,\r\n currentCampaign,\r\n pageName,\r\n preexecuteFlag = false,\r\n globalCampaignTypeFilter,\r\n getCampaignTypeGlobalFilter,\r\n isDataFetchManagerSource,\r\n}) {\r\n return new AdGroupsGrid({\r\n deps,\r\n isForVNext,\r\n filterService,\r\n getGridConfig: view => getConfig({\r\n dataSource,\r\n scope,\r\n view,\r\n filterService,\r\n preferenceConfig,\r\n router,\r\n isForVNext,\r\n viewport,\r\n customHeaderOffset,\r\n currentCampaign,\r\n deps,\r\n globalCampaignTypeFilter,\r\n isDataFetchManagerSource,\r\n }),\r\n getPlugins: view => getAdGroupPlugins({\r\n filterService,\r\n router,\r\n scope,\r\n isForVNext,\r\n addDateChangeListener,\r\n p$daterange,\r\n adGroupTabPerfMarker,\r\n currentCampaign,\r\n preexecuteFlag,\r\n globalCampaignTypeFilter,\r\n getCampaignTypeGlobalFilter,\r\n preferenceService,\r\n }).concat(getAdditionalPlugins(view)),\r\n router,\r\n scope,\r\n preferenceConfig,\r\n currentCampaign,\r\n pageName,\r\n preexecuteFlag,\r\n globalCampaignTypeFilter,\r\n });\r\n}\r\n","import $ from 'jquery';\r\nimport { AdGroupBidLandscape } from '@bingads-webui/bid-landscape';\r\nimport { AlertHelper } from '@bingads-webui-campaign/alert-helper';\r\nimport { showPopup } from '@bingads-webui/automatic-positioning-popover';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { BiddingStrategyToRangeKey, BiddingStrategyToBidParam } from '@bingads-webui-campaign/audience-campaign-shared';\r\nimport { http } from '@bingads-webui/http-util';\r\nimport * as url from '@bingads-webui/url-util';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\nimport { generateGuid } from '@bingads-webui-universal/primitive-utilities';\r\n\r\nconst i18n = globalContext.require('@bingads-webui/i18n-amd-loader!campaignui/feature/ad-groups-tab');\r\nconst popupUtil = globalContext.require('module/service/shared/popup');\r\nconst appConfig = globalContext.require('component/config/index');\r\nconst instrumentation = globalContext.requireDefault('campaignui/feature/instrumentation/index');\r\nconst senario = instrumentation.adgroupBidlandscape.create();\r\nconst i18nErrors = globalContext.require('component/api-errors-campaign/index');\r\nconst jsData = globalContext.require('component/js-data-campaign/index');\r\nconst odata = globalContext.require('module/service/communication/channel/odata');\r\nconst currencyCode = appConfig.get('AccountCurrencyCode');\r\nconst permissions = appConfig.get('Permissions');\r\n\r\nfunction showError(msg) {\r\n const alertHelper = new AlertHelper({ i18n });\r\n alertHelper.showError(msg);\r\n}\r\n\r\nfunction applyError(response) {\r\n let error;\r\n const unexpectedError = i18n.getString('ErrorNumber_-1');\r\n\r\n if (!response || !response.errors) {\r\n error = unexpectedError;\r\n } else {\r\n const errors = i18nErrors.getBulkApiErrors(response.errors, 'newadgroup');\r\n\r\n if (!errors || !errors[0] || !errors[0].message) {\r\n error = unexpectedError;\r\n } else {\r\n error = errors[0].message;\r\n }\r\n }\r\n\r\n showError(error);\r\n}\r\n\r\nfunction defaultApply(\r\n adgroup,\r\n adgroupBidLandscapeView,\r\n activity,\r\n applyCallback,\r\n blockerEl,\r\n trackingId\r\n) {\r\n const {\r\n Id, SearchBid, Name, Campaign, CpmBid, CpvBid, DisplayBiddingStrategyType: bidType,\r\n } = adgroup;\r\n let oldValue = SearchBid;\r\n const newValue = i18n.parseDecimal(adgroupBidLandscapeView.valueToApply());\r\n let bidKV = { SearchBid: newValue };\r\n const toUpdate = {\r\n Id,\r\n Campaign: { Id: Campaign.Id },\r\n };\r\n if (permissions.IsAdgroupLandscapeV2Enabled) {\r\n if (bidType === 'ManualCpm') {\r\n bidKV = { CpmBid: newValue };\r\n oldValue = CpmBid;\r\n } else if (bidType === 'ManualCpv') {\r\n bidKV = { CpvBid: newValue };\r\n oldValue = CpvBid;\r\n }\r\n }\r\n const currency = appConfig.get('AccountCurrencyCode');\r\n const isCustomBid = adgroupBidLandscapeView.viewModel.currentSelectedId()\r\n === adgroupBidLandscapeView.viewModel.landscapePointsLength();\r\n const startDate = adgroupBidLandscapeView.viewModel.startDateString();\r\n const endDate = adgroupBidLandscapeView.viewModel.endDateString();\r\n jsData.AdGroup\r\n .update(Id, { ...toUpdate, ...bidKV }, { adapter: 'bulk' })\r\n .then(() => {\r\n popupUtil.close();\r\n applyCallback(bidKV);\r\n activity.trace(\r\n `Apply success for ${Id} [${Name}]: ${oldValue} -> ${newValue}, Currency:${currency}, DataDate: ${startDate}~${endDate}, TrackingId: ${trackingId}, IsCustomBid: ${isCustomBid}, DisplayBiddingStrategyType: ${bidType}`,\r\n 'defaultApply'\r\n );\r\n })\r\n .catch((response) => {\r\n applyError(response);\r\n })\r\n .finally(withUiBlock(blockerEl));\r\n}\r\n\r\nfunction customApply(\r\n adgroup,\r\n adgroupBidLandscapeView,\r\n activity,\r\n scope,\r\n applyCallback,\r\n blockerEl,\r\n trackingId\r\n) {\r\n const { customerId, accountId } = scope;\r\n const campaignId = adgroup.Campaign.Id;\r\n const {\r\n Id, SearchBid, Name, CpmBid, CpvBid, DisplayBiddingStrategyType: bidType,\r\n } = adgroup;\r\n const currency = appConfig.get('AccountCurrencyCode');\r\n const newBidStr = adgroupBidLandscapeView.valueToApply();\r\n const newBid = i18n.parseDecimal(newBidStr);\r\n const isCustomBid = adgroupBidLandscapeView.viewModel.currentSelectedId()\r\n === adgroupBidLandscapeView.viewModel.landscapePointsLength();\r\n const startDate = adgroupBidLandscapeView.viewModel.startDateString();\r\n const endDate = adgroupBidLandscapeView.viewModel.endDateString();\r\n\r\n let oldValue = SearchBid;\r\n let bidKV = { SearchBid: newBid };\r\n if (permissions.IsAdgroupLandscapeV2Enabled) {\r\n if (bidType === 'ManualCpm') {\r\n bidKV = { CpmBid: newBid };\r\n oldValue = CpmBid;\r\n } else if (bidType === 'ManualCpv') {\r\n bidKV = { CpvBid: newBid };\r\n oldValue = CpvBid;\r\n }\r\n }\r\n\r\n const uri = `Advertiser/Customers(${customerId})/Accounts(${accountId})/Campaigns(${campaignId})/AdGroups(${Id})/Default.UpdateBidAndResetKeywordSource`;\r\n\r\n const uiBlocker = withUiBlock(blockerEl);\r\n odata.patch(uri, { Bid: newBid })\r\n .then(() => {\r\n popupUtil.close();\r\n // refresh row\r\n applyCallback(bidKV);\r\n activity.trace(\r\n `Apply success for ${Id} [${Name}]: ${oldValue} -> ${newBid}, Currency:${currency}, DataDate: ${startDate}~${endDate}, TrackingId: ${trackingId}, IsCustomBid: ${isCustomBid}, DisplayBiddingStrategyType: ${bidType}`,\r\n 'customApply'\r\n );\r\n uiBlocker();\r\n }, (error) => {\r\n let errorMessage = '';\r\n if (!error || !error.errorResponseBody || error.errorResponseBody.value.length === 0) {\r\n errorMessage = i18n.getString('ErrorNumber_-1');\r\n } else {\r\n const errorCode = error.errorResponseBody.value[0].Code;\r\n\r\n errorMessage = i18n.getString(`Error_Campaign_API_Bidlandscape_CustomApply_${errorCode}`) ||\r\n i18n.getString(`Error_Campaign_API_${errorCode}`);\r\n }\r\n showError(errorMessage);\r\n uiBlocker();\r\n popupUtil.close();\r\n });\r\n}\r\n\r\nfunction getCurrentAppliedBid(adgroup) {\r\n const {\r\n DisplayBiddingStrategyType: bidType,\r\n } = adgroup;\r\n const bidKey = BiddingStrategyToBidParam[bidType] || 'SearchBid';\r\n return adgroup[bidKey];\r\n}\r\n\r\nfunction fetchAdGroupBidLandscape(adgroupId, scope) {\r\n const { customerId: cid, accountId: aid, userId: uid } = scope;\r\n const uri = url.queryify('/Campaign/BidLandscape/FetchAdGroupBidLandscapeData', {\r\n cid,\r\n uid,\r\n aid,\r\n __adcenterAJAX: 'true',\r\n });\r\n\r\n return http.post(uri, {\r\n contentType: 'application/x-www-form-urlencoded',\r\n data: {\r\n adgroupId,\r\n __RequestVerificationToken: $('input[name=\"__RequestVerificationToken\"]').val(),\r\n },\r\n });\r\n}\r\n\r\nfunction validateBid(newBidStr, bidType) {\r\n const bidRangeKey = BiddingStrategyToRangeKey[bidType] || 'KeywordBidRange';\r\n const bidRange = appConfig.get(bidRangeKey);\r\n const bid = i18n.parseDecimal(newBidStr);\r\n const floorPrice = bidRange.FloorValue;\r\n const ceilingPrice = bidRange.CeilingValue;\r\n\r\n if (bid < floorPrice) {\r\n // @April please avoid to use this method for i18n,\r\n // the same to other places, I just update to make it work temp\r\n return i18n.getString('AdGroupSummary_SearchBidLessThanFloorPrice').replace('#0#', i18n.formatDecimalToFixed(floorPrice));\r\n } else if (bid > ceilingPrice) {\r\n return i18n.getString('AdGroupSummary_SearchBidMoreThanCeilingPrice').replace('#0#', i18n.formatDecimalToFixed(ceilingPrice));\r\n }\r\n return '';\r\n}\r\n\r\nfunction logBidLandscape() {\r\n const { adgroup, adgroupBidLandscapeView, trackingId } = this;\r\n const selectMode = adgroupBidLandscapeView.viewModel.adgroupSelectMode();\r\n if (selectMode !== 'UpdateDefault') {\r\n adgroupBidLandscapeView.off('selectModeChange', logBidLandscape);\r\n }\r\n const activity = senario.fetch.create();\r\n const ariaData = {\r\n Id: adgroup.Id,\r\n ActionName: 'ViewAdGroupBidLandscape',\r\n UIData: {\r\n selectMode,\r\n bidList: adgroupBidLandscapeView.viewModel.dataArray(),\r\n currencyCode,\r\n currentBid: getCurrentAppliedBid(adgroup),\r\n startDate: adgroupBidLandscapeView.viewModel.startDateString(),\r\n endDate: adgroupBidLandscapeView.viewModel.endDateString(),\r\n trackingId,\r\n },\r\n };\r\n activity.trace(ariaData, 'ViewAdGroupBidLandscape');\r\n}\r\n\r\nfunction onCallReturnedForBidLandscape({\r\n adgroup,\r\n response,\r\n event,\r\n scope,\r\n container,\r\n isForVNext,\r\n applyCallback,\r\n applyBlockerEl,\r\n inKeywordCreationWorkflow,\r\n}) {\r\n const trackingId = generateGuid();\r\n const originalBid = getCurrentAppliedBid(adgroup);\r\n const adgroupBidLandscapeView = new AdGroupBidLandscape({\r\n parentItem: {\r\n Id: adgroup.Id,\r\n CurrentValue: originalBid.toString(),\r\n EntityName: adgroup.Name,\r\n campaignType: adgroup.Campaign.CampaignType,\r\n },\r\n i18n,\r\n dataToShow: response,\r\n isForVNext,\r\n inKeywordCreationWorkflow,\r\n helpId: inKeywordCreationWorkflow ? 'app54679' : null,\r\n });\r\n\r\n const { DisplayBiddingStrategyType: bidType } = adgroup;\r\n\r\n adgroupBidLandscapeView.on('cancel', () => {\r\n popupUtil.close();\r\n });\r\n\r\n adgroupBidLandscapeView.on('update', ({ valueToApply }) => {\r\n // check whether input is withing bid allowed range\r\n adgroupBidLandscapeView.markInputValueInvalid(validateBid(valueToApply, bidType));\r\n });\r\n\r\n adgroupBidLandscapeView.on('apply', () => {\r\n // for clear custom bid, let user confirm whether they want to clear all keywords bid\r\n if (adgroupBidLandscapeView.clearBid()) {\r\n // confirm whether user want to clear all keyword's custom bids\r\n // eslint-disable-next-line no-alert\r\n const toSave = window.confirm(i18n.getString('AdGroupBidLandscape_Uniform_SaveConfirmMessageBox'));\r\n if (!toSave) {\r\n return;\r\n }\r\n }\r\n\r\n const activity = adgroupBidLandscapeView.clearBid() ?\r\n senario.applyBidLandscapeAndClearCustomBid.create() :\r\n senario.applyBidLandscapeWitoutClearCustomBid.create();\r\n\r\n activity.trace(\r\n `Getting bid update request from bid landscape, original bid is: ${originalBid}, value trying to apply is:${adgroupBidLandscapeView.valueToApply()}`,\r\n 'ApplyAdGroupBidLandsapeFromCampaignUI'\r\n );\r\n if (adgroupBidLandscapeView.clearBid()) {\r\n customApply(\r\n adgroup,\r\n adgroupBidLandscapeView,\r\n activity,\r\n scope,\r\n applyCallback,\r\n applyBlockerEl,\r\n trackingId\r\n );\r\n } else {\r\n defaultApply(\r\n adgroup,\r\n adgroupBidLandscapeView,\r\n activity,\r\n applyCallback,\r\n applyBlockerEl,\r\n trackingId\r\n );\r\n }\r\n });\r\n\r\n adgroupBidLandscapeView.on('selectModeChange', logBidLandscape, { adgroup, adgroupBidLandscapeView, trackingId });\r\n\r\n adgroupBidLandscapeView.render();\r\n\r\n if (adgroupBidLandscapeView.hasData()) {\r\n popupUtil.render(adgroupBidLandscapeView.$el);\r\n } else {\r\n showPopup({\r\n positioningMethod: 'fit',\r\n positioningOptions: {\r\n anchorPosition: {\r\n top: event.clientY,\r\n left: event.clientX,\r\n width: $(event.target).width(),\r\n height: $(event.target).height(),\r\n },\r\n },\r\n contentView: adgroupBidLandscapeView,\r\n i18n,\r\n classes: ['bidlandscape-container'],\r\n container,\r\n anchor: $(event.target),\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * show bid landscape panel, and bind alll related actions including apply/cancel\r\n *\r\n * @param {Object} event - The backbone click event from where the quality score cell was clicked.\r\n * @param {Object} adgroup - adgroup entity that triggered this call\r\n * @param {Object} scope - scope which includes {customerId, accountId}\r\n * @param {Object} applyCallback - callback function after apply\r\n * @param {Object} inKeywordCreationWorkflow -\r\n * boolean to indicate if the landscape is showed on creation workflow\r\n * @returns {undefined}.\r\n*/\r\nexport function openAdGroupBidLandscape({\r\n event,\r\n scope,\r\n adgroup,\r\n container,\r\n isForVNext,\r\n applyCallback,\r\n applyBlockerEl,\r\n inKeywordCreationWorkflow = false,\r\n}) {\r\n // close previous one, and stop other bindings\r\n popupUtil.close();\r\n event.stopImmediatePropagation();\r\n\r\n fetchAdGroupBidLandscape(adgroup.Id, scope).then((res) => {\r\n onCallReturnedForBidLandscape({\r\n adgroup,\r\n response: res,\r\n event,\r\n scope,\r\n container,\r\n isForVNext,\r\n applyCallback,\r\n applyBlockerEl,\r\n inKeywordCreationWorkflow,\r\n });\r\n const activity = senario.fetch.create();\r\n activity.trace(`Fetch AdGroup bid landscape success for ${adgroup.Id}`, 'adgroupBidlandscape');\r\n }).catch(() => {\r\n onCallReturnedForBidLandscape({\r\n adgroup,\r\n response: {},\r\n event,\r\n scope,\r\n container,\r\n isForVNext,\r\n applyCallback,\r\n applyBlockerEl,\r\n inKeywordCreationWorkflow,\r\n });\r\n }).finally(withUiBlock($(event.target).parent()));\r\n}\r\n","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","_entity$Campaign","styles","mergeStyleSets","marginBottom","placement","getBoundingClientRect","right","innerWidth","getRoutePathById","uri","URI","getTargetEntity","addQuery","appendScopeParameter","actionLink","insertPopoverContainer","tooltipProps","parentView","currentTarget","show","onMouseLeave","closeButton","focusLockContent","_jsxs","_Fragment","_jsx","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","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","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":""}