{"version":3,"file":"static/js/application.async.non-landing~4d5b3902.3e06824e.chunk.js","mappings":"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","sources":["../../../../component-legacy/packages/column-chooser/option.js","../../../../component-legacy/packages/column-chooser/category.js","../../../../component-legacy/packages/extension/ko/clickToggle.js","../../../../component-legacy/packages/column-chooser/column-chooser.js","../../../../component-legacy/packages/extension/ko/sortable.js","../../../../component-legacy/packages/column-chooser/index.js","../../../../component-legacy/packages/modal/index.js","../../../../component-legacy/packages/bingads-grid/plugin/column-chooser.js","../../../../component-legacy/packages/bingads-grid/plugin/cross-page-select-all/viewmodel/index.js","../../../../component-legacy/packages/bingads-grid/plugin/cross-page-select-all/view/index.js","../../../../component-legacy/packages/bingads-grid/plugin/cross-page-select-all/index.js","../../../../component-legacy/packages/bingads-grid/plugin/new-performance-log.js","../../../../component-legacy/packages/bingads-grid/plugin/ui-blocker.js","../../../../component-legacy/packages/bingads-grid/service/custom-userinfo-preferences.js","../../../../component-legacy/packages/bingads-grid/service/date-filter-preferences.js","../../../../component-legacy/packages/event-helper/event-helper.js","../../../../component-legacy/packages/grid-customized-popup-editor/index.js","../../../../component-legacy/packages/grid-toolbar/button.js","../../../../component-legacy/packages/grid-toolbar/buttonMenuItem.js","../../../../component-legacy/packages/grid-toolbar/dividerMenuItem.js","../../../../component-legacy/packages/grid-toolbar/dropdown.js","../../../../component-legacy/packages/grid-toolbar/gridToolbar.js","../../../../component-legacy/packages/grid-toolbar/headerMenuItem.js","../../../../component-legacy/packages/grid-toolbar/menuItem.js","../../../../component-legacy/packages/humanize/byte.js","../../../../component-legacy/packages/js-data-delegate/adapter.js","../../../../component-legacy/packages/mutable-model/index.js","../../../../component-legacy/packages/schema-i18n/loader.js","../../../../component-legacy/packages/update-status/view/index.js","../../../../component-legacy/packages/walkme/view/index.js","../../../../component-legacy/packages/walkme/viewmodel/link.js","../../../../component-legacy/packages/walkme/view/link.js","../../../../component-react-fluent/packages/card/src/config-props.js","../../../../component-react-fluent/packages/card/src/get-styles.js","../../../../component-react-fluent/packages/card/src/card-header.js","../../../../component-react-fluent/packages/card/src/card-footer.js","../../../../component-react-fluent/packages/card/src/card.js","../../../../component-react-fluent/packages/expert-location-target-shared-control/src/constants.js","../../../../component-react-fluent/packages/expert-location-target-shared-control/src/location-target-editor.js","../../../../component-react-fluent/packages/expert-location-target-shared-control/src/utils.js","../../../../component-react-fluent/packages/expert-location-target-shared-control/src/target-options.js","../../../../component-react-fluent/packages/expert-location-target-shared-control/src/edit-targeting-location.js","../../../../component-react-fluent/packages/expert-location-target-shared-control/src/with-bing-maps-context-provider.js","../../../../component-react-fluent/packages/expert-location-target-shared-control/src/styles/intent-targeting-style.js","../../../../component-react-fluent/packages/expert-location-target-shared-control/src/edit-targeting-intent.js","../../../../component-react-fluent/packages/expert-location-target-shared-control/src/styles/edit-targeting-style.js","../../../../component-react-fluent/packages/side-panel/src/side-panel-context.js","../../../../component-react-fluent/packages/side-panel/src/side-panel.js","../../../../component-react-fluent/packages/side-panel/src/side-panel-container.js","../../../../component-react/packages/clarity-graph-instruction/src/styles/clarity-instruction-graph-styles.js","../../../../component-react/packages/clarity-graph-instruction/src/clarity-graph-instruction.js","../../../../component-react/packages/gmc-to-mmc-mapping-grid/src/shared/gmc-cookie-utils.js","../../../../component-react/packages/gmc-to-mmc-mapping-grid/src/gmc-section/gmc-signed-in-section.js","../../../../component-react/packages/gmc-to-mmc-mapping-grid/src/gmc-section/gmc-signed-out-section.js","../../../../component-react/packages/gmc-to-mmc-mapping-grid/src/gmc-section/gmc-sign-in-status-section.js","../../../../component-react/packages/gmc-to-mmc-mapping-grid/src/grid/multiple-matching-stores-description.js","../../../../component-react/packages/gmc-to-mmc-mapping-grid/src/grid/dropdown-button.js","../../../../component-react/packages/gmc-to-mmc-mapping-grid/src/grid/read-only-cell.js","../../../../component-react/packages/gmc-to-mmc-mapping-grid/src/grid/gmc-to-mmc-mapping-grid.js","../../../../component-react/packages/gmc-to-mmc-mapping-grid/src/grid/gmc-to-mmc-mapping-grid-with-sign-in.js","../../../../component-react/packages/gmc-to-mmc-mapping-grid/src/mapping-editor/mapping-editor-description.js","../../../../component-react/packages/gmc-to-mmc-mapping-grid/src/mapping-editor/mapping-editor.js","../../../../component-react/packages/gmc-to-mmc-mapping-grid/src/mapping-editor/mapping-editor-callout.js","../../../../component-react/packages/gmc-to-mmc-mapping-grid/src/mapping-editor/mmc-grid.js","../../../../component-react/packages/gmc-to-mmc-mapping-grid/src/shared/prop-types.js","../../../../component-react/packages/campaign-creation-method-selection/src/components/campaign-creation-method-constants.js","../../../../component-react/packages/campaign-creation-method-selection/src/styles/campaign-creation-method-item-styles.js","../../../../component-react/packages/campaign-creation-method-selection/src/components/campaign-creation-method-item.js","../../../../component-react/packages/campaign-creation-method-selection/src/campaign-creation-method-selection.js","../../../../component-react/packages/goals-and-website-tile/src/styles.js","../../../../component-react/packages/goals-and-website-tile/src/tile-header.js","../../../../component-react/packages/goals-and-website-tile/src/tile.js","../../../../component-react/packages/goals-and-website-tile/src/goals/consts.js","../../../../component-react/packages/goals-and-website-tile/src/goals/styles.js","../../../../component-react/packages/goals-and-website-tile/src/goals/goal-item.js","../../../../component-react/packages/goals-and-website-tile/src/goals/goal-selection.js","../../../../component-react/packages/goals-and-website-tile/src/website/styles.js","../../../../component-react/packages/goals-and-website-tile/src/website/consts.js","../../../../component-react/packages/goals-and-website-tile/src/website/website-input.js","../../../../component-react/packages/goals-and-website-tile/src/website/validation-schema.js","../../../../component-react/packages/goals-and-website-tile/src/website/website-and-business.js","../../../../component-react/packages/goals-and-website-tile/src/website/website-item.js","../../../../component-react/packages/goals-and-website-tile/src/website/helpers.js","../../../../component-react/packages/goals-and-website-tile/src/website/website-and-smart-pages.js","../../../../component-react/packages/goals-and-website-tile/src/consts.js","../../../../component-react/packages/goals-and-website-tile/src/language/styles.js","../../../../component-react/packages/goals-and-website-tile/src/language/searchable-dropdown.js","../../../../component-react/packages/goals-and-website-tile/src/language/language-and-country-selection.js","../../../../component-react/packages/goals-and-website-tile/src/language/language-and-country-selection-tile.js","../../../../component-react/packages/goals-and-website-tile/src/website/website-only-option.js","../../../../component-react/packages/goals-and-website-tile/src/creation-method/styles.js","../../../../component-react/packages/goals-and-website-tile/src/creation-method/creation-method-sub-title.js","../../../../component-react/packages/goals-and-website-tile/src/index.js","../../../../component-react/packages/goals-and-website-tile/src/helper.js","../../../../component-react/packages/goals-and-website-tile/src/account-mode/styles.js","../../../../component-react/packages/goals-and-website-tile/src/account-mode/consts.js","../../../../component-react/packages/goals-and-website-tile/src/account-mode/bullet-item.js","../../../../component-react/packages/goals-and-website-tile/src/account-mode/mode-item.js","../../../../component-react/packages/goals-and-website-tile/src/account-mode/intro-texts.js","../../../../component-react/packages/processing-animation/src/styles.js","../../../../component-react/packages/processing-animation/src/processing-animation.js","../../../../component-react/packages/schedule-edit-create/src/components/build-url.js","../../../../component-react/packages/schedule-edit-create/src/components/parse-url.js","../../../../component-react/packages/schedule-edit-create/src/components/password-editor.js","../../../../component-react/packages/schedule-edit-create/src/components/timezone-mapper.js","../../../../component-react/packages/schedule-edit-create/src/components/humanize-date.js","../../../../component-react/packages/schedule-edit-create/src/components/update-now-progress.js","../../../../component-react/packages/schedule-edit-create/src/components/url-editor.js","../../../../component-react/packages/schedule-edit-create/src/components/fluent-url-editor.js","../../../../component-react/packages/schedule-edit-create/src/schedules-tab-header-view.js","../../../../component-react/packages/schedule-edit-create/src/schedules-tab-no-schedule-view.js","../../../../component-react/packages/schedule-edit-create/src/schedules-tab-schedule-edit.js","../../../../component-react/packages/schedule-edit-create/src/schedules-tab-schedule-view.js","../../../../component-react/packages/fluent-cron-frequency-editor/src/frequency.js","../../../../component-react/packages/fluent-cron-frequency-editor/src/get-cron-model.js","../../../../component-react/packages/fluent-cron-frequency-editor/src/extra/hour.js","../../../../component-react/packages/fluent-cron-frequency-editor/src/extra/daily-extra.js","../../../../component-react/packages/fluent-cron-frequency-editor/src/extra/day-of-week.js","../../../../component-react/packages/fluent-cron-frequency-editor/src/extra/weekly-extra.js","../../../../component-react/packages/fluent-cron-frequency-editor/src/extra/day-of-month.js","../../../../component-react/packages/fluent-cron-frequency-editor/src/extra/monthly-extra.js","../../../../component-react/packages/fluent-cron-frequency-editor/src/extra/extra.js","../../../../component-react/packages/fluent-cron-frequency-editor/src/cron-frequency-editor.js","../../../../component-react/packages/fluent-cron-frequency-editor/src/get-default-cron.js","../../../../component-react/packages/fluent-cron-frequency-editor/src/cron-frequency-editor-with-validation.js","../../../../component-react/packages/schedule-edit-create/src/new-schedule-tab-schedule-edit.js","../../../../component-react/packages/subaccount-hotelgroup-selector/src/util.js","../../../../component-react/packages/subaccount-hotelgroup-selector/src/hotelgroup-nav-tree.js","../../../../component-react/packages/subaccount-hotelgroup-selector/src/subaccount-hotelgroup-selector.js","../../../../component-react/packages/subaccount-hotelgroup-selector/src/style/hotelgroup-selector-style.js","../../../../component-react/packages/subaccount-hotelgroup-selector/src/style/dialog-style.js","../../../../component-react/packages/subaccount-hotelgroup-selector/src/delete-dialog.js","../../../../component-react/packages/subaccount-hotelgroup-selector/src/rename-dialog.js","../../../../component-react/packages/subaccount-hotelgroup-selector/src/edit-menu.js","../../../../component-react/packages/subaccount-hotelgroup-selector/src/subaccount-hotelgroup-edit-panel.js","../../../../component-react/packages/subaccount-hotelgroup-selector/src/style/edit-panel-style.js","../../../../component-react/packages/use-currency-country-mapping/src/use-currency-country-mapping.js","../../../../component-react/packages/wizard-utils/src/marketing-utils.js","../../../../component-react/packages/wizard-utils/src/signup-flow-step-logger.js","../../../../component-react/packages/wizard-utils/src/signup-flow-step-logger-with-activity.js","../../../../component-react/packages/page-ready-trigger/src/page-ready-trigger.js","../../../../component-react/packages/wizard-utils/src/step-render-page-ready.js","../../../../components/packages/ads-bulk-edit/src/plugin.js","../../../../components/packages/bid-adjustment/src/bid-adjustment-control.js","../../../../components/packages/bid-adjustment/src/bid-adjustment-view.js","../../../../components/packages/bid-adjustment/src/bid-recommendation-view.js","../../../../components/packages/conversion-rate-adjustment/src/conversion-rate-adjustment-control.js","../../../../components/packages/conversion-rate-adjustment/src/conversion-rate-adjustment-view.js","../../../../components/packages/language-selector/src/viewmodel.js","../../../../components/packages/language-selector/src/view.js","../../../../components/packages/pgrid-js-data-raw-data/src/plugin.js","../../../../components/packages/projection-grid-enable-with-selection/src/plugin.js","../../../../components/packages/projection-grid-io-popup-editor/src/date-popup-editor/date-react-view.js","../../../../components/packages/projection-grid-io-popup-editor/src/date-popup-editor/date-prompt.js","../../../../components/packages/projection-grid-io-popup-editor/src/spend-cap-amount-popup-editor/spend-cap-amount-react-view.js","../../../../components/packages/projection-grid-io-popup-editor/src/spend-cap-amount-popup-editor/spend-cap-amount-prompt.js","../../../../components/packages/projection-grid-js-data-raw-data/src/plugin.js","../../../../components/packages/tracking-template-columns/src/tracking-template.js","../../../../components/packages/tracking-template-columns/src/custom-parameters.js","../../../../components/packages/tracking-template-columns/src/final-url-suffix.js","../../competition-tab-factory/src/competition-tab-factory.js","../../conditional-formatting/src/add-conditional-format-button.js","../../conditional-formatting/src/utils/config.js","../../conditional-formatting/src/edit/humanized-condition.js","../../conditional-formatting/src/view-all-conditions.js","../../conditional-formatting/src/condition-list-readonly.js","../../conditional-formatting/src/edit/conditional-format-menu.js","../../conditional-formatting/src/edit/color-picker.js","../../conditional-formatting/src/edit/condition-editor.js","../../conditional-formatting/src/edit/condition-popover.js","../../conditional-formatting/src/edit/condition-pill.js","../../conditional-formatting/src/conditional-format-bar.js","../../conditional-formatting/src/conditional-format.js","../../conditional-formatting/src/styles/conditional-format-style.js","../../../../component-legacy/packages/bingads-grid/plugin/cross-page-select-all/template/index.pug","../../../../component-legacy/packages/column-chooser/template/index.pug","../../../../component-legacy/packages/grid-toolbar/template/button.pug","../../../../component-legacy/packages/grid-toolbar/template/buttonMenuItem.pug","../../../../component-legacy/packages/grid-toolbar/template/dropdown.pug","../../../../component-legacy/packages/grid-toolbar/template/toolbar.pug","../../../../component-legacy/packages/modal/layout/modal.pug","../../../../component-legacy/packages/update-status/template/index.pug","../../../../component-legacy/packages/walkme/template/link.pug","../../../../components/packages/bid-adjustment/src/bid-adjustment-control.pug","../../../../components/packages/bid-adjustment/src/bid-adjustment-recommendation.pug","../../../../components/packages/bid-adjustment/src/bid-recommendation-performance.pug","../../../../components/packages/bid-adjustment/src/bid-recommendation.pug","../../../../components/packages/conversion-rate-adjustment/src/conversion-rate-adjustment-control.pug","../../../../components/packages/language-selector/src/template.pug","../../../../components/packages/projection-grid-io-popup-editor/src/templates/customized-inline-edit-template.pug","../../../../components/packages/tracking-template-columns/src/custom-parameters.pug","../../../../component-react-fluent-v2/packages/bid-strategy-component-v2/src/styles/bid-strategy-dropdown-styles.ts","../../../../component-react-fluent-v2/packages/bid-strategy-component-v2/src/bid-strategy-dropdown.tsx","../../../../component-react-fluent-v2/packages/bid-strategy-component-v2/src/bid-strategy-icon.tsx","../../../../component-react-fluent-v2/packages/campaign-adgroup-selector-v2/src/data.ts","../../../../component-react-fluent-v2/packages/campaign-adgroup-selector-v2/src/consts.ts","../../../../component-react-fluent-v2/packages/campaign-adgroup-selector-v2/src/components/default-components.tsx","../../../../component-react-fluent-v2/packages/campaign-adgroup-selector-v2/src/campaign-selector-styles.ts","../../../../component-react-fluent-v2/packages/campaign-adgroup-selector-v2/src/use-campaign-selector-state.ts","../../../../component-react-fluent-v2/packages/campaign-adgroup-selector-v2/src/campaign-selector.tsx","../../../../component-react-fluent-v2/packages/goal-selector-v2/src/fetch-goals-factory.ts","../../../../component-react-fluent-v2/packages/goal-selector-v2/src/config/constants.js","../../../../component-react-fluent-v2/packages/goal-selector-v2/src/goal-selector.tsx","../../../../component-react-fluent-v2/packages/multi-ads-manager/src/styles/ads-manager-styles.js","../../../../component-react-fluent-v2/packages/multi-ads-manager/src/styles/ad-thumbnail-styles.js","../../../../component-react-fluent-v2/packages/multi-ads-manager/src/ad-thumbnail.tsx","../../../../component-react-fluent-v2/packages/multi-ads-manager/src/styles/default-ad-preview-styles.js","../../../../component-react-fluent-v2/packages/multi-ads-manager/src/default-ad-preview.tsx","../../../../component-react-fluent-v2/packages/multi-ads-manager/src/multi-ads-manager.tsx","../../../../component-react-fluent-v2/packages/searchable-selector-with-default-list/src/components/styles.ts","../../../../component-react-fluent-v2/packages/searchable-selector-with-default-list/src/components/combobox.tsx","../../../../component-react-fluent-v2/packages/searchable-selector-with-default-list/src/searchable-selector-with-default-list.tsx","../../../../component-react-fluent-v2/packages/searchable-selector-with-default-list/src/hooks/use-fetching-state.ts","../../../../component-react-fluent-v2/packages/single-language-input/src/styles.ts","../../../../component-react-fluent-v2/packages/single-language-input/src/single-language-input.tsx"],"sourcesContent":["/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport ko from 'knockout';\r\nfunction Option(configuration, el) {\r\n var defaultSettings = {\r\n isSelected: false,\r\n isDisabled: false,\r\n isMandatory: false\r\n };\r\n $.extend(defaultSettings, configuration.settings);\r\n this._viewModel = {\r\n isFirst: ko.observable(false),\r\n name: ko.observable(configuration.name),\r\n id: ko.observable(configuration.id),\r\n isSelected: ko.observable(defaultSettings.isSelected || defaultSettings.isDisabled),\r\n isDisabled: ko.observable(defaultSettings.isDisabled),\r\n isMandatory: ko.observable(defaultSettings.isMandatory)\r\n };\r\n this.el = el;\r\n this.id = configuration.id;\r\n}\r\nOption.prototype.property = function (propertyName, propertyValue) {\r\n if (propertyValue !== undefined) {\r\n this._viewModel[propertyName](propertyValue);\r\n } else {\r\n return ko.utils.unwrapObservable(this._viewModel[propertyName]);\r\n }\r\n};\r\nexport default Option;\r\n\r\n","/* eslint-disable */\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport Option from '@bingads-webui-component-legacy/column-chooser/option';\r\nfunction Category(name, el) {\r\n this._viewModel = {\r\n 'name': ko.observable(name),\r\n 'options': ko.observableArray([])\r\n };\r\n this.el = el;\r\n}\r\nCategory.prototype.addOption = function (optionData) {\r\n var columnChooserOption = new Option(optionData, this.el);\r\n this._viewModel.options.push(columnChooserOption);\r\n return columnChooserOption;\r\n};\r\nCategory.prototype.removeOption = function (id) {\r\n this._viewModel.options.remove(function (item) {\r\n return id === item.id;\r\n });\r\n};\r\nCategory.prototype.editOption = function (id, newName) {\r\n var i = _.findIndex(this._viewModel.options(), function (option) {\r\n return option.id === id;\r\n });\r\n this._viewModel.options()[i].property('name', newName);\r\n};\r\nCategory.prototype.getOptions = function () {\r\n return this._viewModel.options();\r\n};\r\nCategory.prototype.getUnselectedOptionsCount = function () {\r\n var options = this._viewModel.options();\r\n var unSelectedOptions = _.filter(options, function (option) {\r\n return option.property('isSelected') === false;\r\n });\r\n return unSelectedOptions.length;\r\n};\r\nCategory.prototype.getName = function () {\r\n return this._viewModel.name();\r\n};\r\nexport default Category;\r\n\r\n","/* eslint-disable */\r\nimport ko from 'knockout';\r\nko.bindingHandlers.clickToggle = {\r\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\r\n ko.utils.registerEventHandler(element, 'click', function () {\r\n var modelValue = valueAccessor();\r\n if (typeof modelValue === 'object') {\r\n if (modelValue.condition()) {\r\n modelValue.value(!modelValue.value());\r\n }\r\n } else {\r\n modelValue(!modelValue());\r\n }\r\n });\r\n }\r\n};\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport Category from '@bingads-webui-component-legacy/column-chooser/category';\r\nimport '@bingads-webui-component-legacy/extension/ko/clickToggle';\r\nimport '@bingads-webui-component-legacy/extension/ko/sortable';\r\nfunction ColumnChooser(el, settings) {\r\n var self = this;\r\n this._viewModel = {\r\n text: {},\r\n enableSave: ko.observable(false),\r\n showSave: settings.isSavingColumnsAllowed,\r\n savedName: ko.observable(''),\r\n categories: {\r\n all: ko.observableArray([]),\r\n current: ko.observable(0),\r\n setCategory: function (category, event) {\r\n var context = ko.contextFor(event.target);\r\n self._viewModel.categories.current(context.$index());\r\n }\r\n },\r\n options: {\r\n selected: ko.observableArray([])\r\n },\r\n applyButtonVisible: ko.observable(!settings.autosave),\r\n selectAll: $.proxy(self.selectAll, self),\r\n removeAll: $.proxy(self.removeAll, self),\r\n hasOptions: function () {\r\n return self._viewModel.categories.all()[self._viewModel.categories.current()]._viewModel.options().length !== 0;\r\n },\r\n allActionText: function () {\r\n var unselectedOptionsCount = self._viewModel.options.unselectedCount();\r\n if (unselectedOptionsCount > 0) {\r\n return self._viewModel.text.addAllColumns;\r\n } else {\r\n return self._viewModel.text.removeAllColumns;\r\n }\r\n },\r\n events: {\r\n trigger: function (name) {\r\n var data = self.getSelectedOptions();\r\n $(self.el).trigger('column-chooser.' + name, [data]);\r\n }\r\n }\r\n };\r\n this._viewModel.options.unselectedCount = ko.computed(function () {\r\n var currentCategory = self._viewModel.categories.current();\r\n var category = self._viewModel.categories.all()[currentCategory];\r\n var unselectedOptionsCount = 0;\r\n if (category) {\r\n unselectedOptionsCount = category.getUnselectedOptionsCount();\r\n }\r\n return unselectedOptionsCount;\r\n });\r\n this._viewModel.options.sortedSelection = ko.computed(function () {\r\n var sortedOptions = _.sortBy(self._viewModel.options.selected(), function (option) {\r\n return -option._viewModel.isDisabled();\r\n });\r\n setFirstOption(sortedOptions);\r\n return sortedOptions;\r\n });\r\n this._viewModel.options.available = ko.computed(function () {\r\n var currentCategory = self._viewModel.categories.current();\r\n var category = self._viewModel.categories.all()[currentCategory];\r\n var availableOptions = [], options = [], option;\r\n if (category) {\r\n options = category.getOptions();\r\n if (self.isColumnCategoryAllowed) {\r\n availableOptions = options;\r\n } else {\r\n for (var i = 0; i < options.length; i++) {\r\n option = options[i];\r\n if (!option.property('isSelected')) {\r\n availableOptions.push(option);\r\n }\r\n }\r\n }\r\n }\r\n setFirstOption(availableOptions);\r\n return availableOptions;\r\n });\r\n this._optionCache = {};\r\n this._batchCounter = false;\r\n this.el = el;\r\n this.autosave = settings.autosave || false;\r\n this.isColumnCategoryAllowed = settings.isColumnCategoryAllowed || false;\r\n $.extend(this._viewModel.text, settings.text);\r\n init.call(this, settings);\r\n}\r\nColumnChooser.prototype.setOptions = function (columnsData) {\r\n var columnChooserCategories = [];\r\n var self = this;\r\n this._optionCache = {};\r\n if (columnsData.length > 0) {\r\n for (var columnsDataIndex = 0; columnsDataIndex < columnsData.length; columnsDataIndex++) {\r\n var columnData = columnsData[columnsDataIndex];\r\n var columnChooserCategory = new Category(columnData.name, this.el);\r\n var options = columnData.options;\r\n if (options && options.length) {\r\n for (var optionIndex = 0; optionIndex < options.length; optionIndex++) {\r\n var optionData = options[optionIndex];\r\n var columnChooserOption = columnChooserCategory.addOption(optionData);\r\n setOptionEvents.call(self, columnChooserOption);\r\n self._optionCache[columnChooserOption.id] = columnChooserOption;\r\n }\r\n }\r\n columnChooserCategories.push(columnChooserCategory);\r\n }\r\n }\r\n this._viewModel.categories.all(columnChooserCategories);\r\n};\r\nColumnChooser.prototype.setOptionStateById = function (id, isSelected) {\r\n var option = this.getOptionById(id);\r\n if (option && option._viewModel.isSelected() != isSelected) {\r\n option._viewModel.isSelected(isSelected);\r\n option.property('isSelected', isSelected);\r\n if (isSelected && !_.contains(this._viewModel.options.selected(), option)) {\r\n this._viewModel.options.selected.push(option);\r\n } else {\r\n this._viewModel.options.selected.remove(option);\r\n }\r\n }\r\n};\r\nColumnChooser.prototype.setState = function (state) {\r\n var ids = [], id, option;\r\n if (state && $.isArray(state.selectedColumns) && state.selectedColumns.length > 0) {\r\n ids = state.selectedColumns;\r\n this._batchCounter++;\r\n this.removeAll(!this.isColumnCategoryAllowed, true);\r\n for (var columnId in this._optionCache) {\r\n if (this._optionCache[columnId].property('isDisabled')) {\r\n var exists = false;\r\n for (var i = 0; i < ids.length; i++) {\r\n if (columnId === ids[i]) {\r\n exists = true;\r\n break;\r\n }\r\n }\r\n if (!exists) {\r\n ids.push(columnId);\r\n }\r\n }\r\n }\r\n for (var i = 0; i < ids.length; i++) {\r\n id = ids[i];\r\n option = this.getOptionById(id);\r\n if (option) {\r\n option.property('isSelected', true);\r\n }\r\n }\r\n this._batchCounter--;\r\n }\r\n};\r\nColumnChooser.prototype.selectAll = function (force) {\r\n if (this.isColumnCategoryAllowed) {\r\n var unselectedOptionsCount = this._viewModel.options.unselectedCount();\r\n if (unselectedOptionsCount > 0) {\r\n setAllOptionsSelected.call(this, this._viewModel.options.available(), true, force);\r\n } else {\r\n this.removeAll(force);\r\n }\r\n } else {\r\n setAllOptionsSelected.call(this, this._viewModel.options.available(), true, force);\r\n }\r\n};\r\nColumnChooser.prototype.removeAll = function (force, forceAllCategories) {\r\n var options = [];\r\n if (this._viewModel.categories.all().length > 1 && !forceAllCategories) {\r\n var currentCategory = this._viewModel.categories.current();\r\n var currentCategoryOptions = this._viewModel.categories.all()[currentCategory].getOptions();\r\n _.each(currentCategoryOptions, function (categoryOption) {\r\n options.push(categoryOption);\r\n });\r\n } else {\r\n options = this._viewModel.options.selected();\r\n }\r\n setAllOptionsSelected.call(this, options, false, force);\r\n};\r\nColumnChooser.prototype.getSelectedOptions = function () {\r\n return this._viewModel.options.selected();\r\n};\r\nColumnChooser.prototype.getAvailableOptions = function () {\r\n return this._viewModel.options.available();\r\n};\r\nColumnChooser.prototype.getSelectedOptionsId = function () {\r\n return $.map(this._viewModel.options.selected(), function (item) {\r\n return item.id;\r\n });\r\n};\r\nColumnChooser.prototype.getAvailableOptionsId = function () {\r\n return $.map(this._viewModel.options.available(), function (item) {\r\n return item.id;\r\n });\r\n};\r\nColumnChooser.prototype.getOptionById = function (id) {\r\n return this._optionCache[id];\r\n};\r\nColumnChooser.prototype.getSavedName = function () {\r\n return this._viewModel.savedName().trim();\r\n};\r\nColumnChooser.prototype.setSavedName = function (name) {\r\n this._viewModel.savedName(name);\r\n this._viewModel.enableSave(true);\r\n};\r\nColumnChooser.prototype.enabledSaveColumns = function () {\r\n return this._viewModel.enableSave();\r\n};\r\nColumnChooser.prototype.resetSavedName = function () {\r\n this._viewModel.savedName('');\r\n this._viewModel.enableSave(false);\r\n};\r\nColumnChooser.prototype.addOption = function (category, optionData) {\r\n var cat = getCategoryByName.call(this, category);\r\n var columnChooserOption = cat.addOption(optionData);\r\n setOptionEvents.call(this, columnChooserOption);\r\n this._optionCache[columnChooserOption.id] = columnChooserOption;\r\n};\r\nColumnChooser.prototype.editOption = function (category, optionData) {\r\n var cat = getCategoryByName.call(this, category);\r\n cat.editOption(optionData.id, optionData.name);\r\n};\r\nColumnChooser.prototype.removeOption = function (category, id) {\r\n var cat = getCategoryByName.call(this, category);\r\n this.setOptionStateById(id, false);\r\n cat.removeOption(id);\r\n};\r\nfunction init(settings) {\r\n var self = this;\r\n if (settings.categories) {\r\n this.setOptions(settings.categories);\r\n }\r\n $(this.el).bind('sortstop', function () {\r\n self._viewModel.events.trigger('rearrange');\r\n });\r\n ko.applyBindings(this._viewModel, this.el);\r\n}\r\nfunction getCategoryByName(category) {\r\n return _.find(this._viewModel.categories.all(), function (cat) {\r\n return cat.getName() === category;\r\n });\r\n}\r\nfunction setOptionEvents(columnChooserOption) {\r\n var self = this;\r\n columnChooserOption._viewModel.isSelected.subscribe(function (isSelected) {\r\n setOptionState.call(self, columnChooserOption, isSelected);\r\n });\r\n setOptionState.call(this, columnChooserOption, columnChooserOption._viewModel.isSelected());\r\n}\r\nfunction setOptionState(option, isSelected) {\r\n if (isSelected) {\r\n this._viewModel.options.selected.push(option);\r\n } else {\r\n this._viewModel.options.selected.remove(option);\r\n }\r\n setFirstOption(this._viewModel.options.selected());\r\n if (this._batchCounter === 0) {\r\n this._viewModel.events.trigger('modify');\r\n }\r\n}\r\nfunction setAllOptionsSelected(list, isSelected, force) {\r\n var options = list.slice();\r\n var isDisabled;\r\n this._batchCounter++;\r\n for (var i = 0; i < options.length; i++) {\r\n isDisabled = options[i].property('isDisabled');\r\n if (!isDisabled || force === true) {\r\n options[i].property('isSelected', isSelected);\r\n }\r\n }\r\n this._batchCounter--;\r\n this._viewModel.events.trigger('modify');\r\n}\r\nfunction setFirstOption(options) {\r\n var ifFoundFirstOption = false;\r\n _.each(options, function (option) {\r\n if (option._viewModel.name() && !ifFoundFirstOption) {\r\n option._viewModel.isFirst(true);\r\n ifFoundFirstOption = true;\r\n } else {\r\n option._viewModel.isFirst(false);\r\n }\r\n });\r\n}\r\nexport default ColumnChooser;\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport '@bingads-webui/kendo/kendo.sortable';\r\nko.bindingHandlers.sortable = {\r\n init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {\r\n var value = valueAccessor(), list = _.isObject(value) ? value.list : value, sortableSettings = {\r\n hint: function (element) {\r\n return element.clone().css({\r\n 'list-style': 'none',\r\n 'width': element.width()\r\n });\r\n },\r\n placeholder: function (element) {\r\n if (value && value.placeholder) {\r\n return element.clone().addClass(value.placeholder);\r\n }\r\n return element.clone().css({\r\n 'opacity': 0.2\r\n });\r\n },\r\n filter: value && value.items ? value.items : 'li:not(.column-chooser-option-fixed)',\r\n change: function (e) {\r\n var movedOption = ko.dataFor(e.item[0]);\r\n var delta = e.newIndex - e.oldIndex;\r\n var previousPosition = list.indexOf(movedOption);\r\n list.remove(movedOption);\r\n list.splice(previousPosition + delta, 0, movedOption);\r\n }\r\n };\r\n $(element).kendoSortable(sortableSettings);\r\n }\r\n};\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport tmpl from '@bingads-webui-component-legacy/column-chooser/template/index.pug';\r\nimport ColumnChooser from '@bingads-webui-component-legacy/column-chooser/column-chooser';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!component/column-chooser');\r\nvar View = Backbone.View.extend({\r\n events: {\r\n 'column-chooser.cancel': 'cancel',\r\n 'column-chooser.save': 'save'\r\n },\r\n initialize: function (options) {\r\n this.options = _.defaults(options, {\r\n state: {},\r\n columns: [],\r\n grouping: true,\r\n saving: false,\r\n localization: {}\r\n });\r\n this.state = options.state;\r\n this.columns = options.columns;\r\n this.localization = _.defaults(options.localization, mapObject({\r\n 'header': 'Grid_ColumnChooser_Header',\r\n 'apply': 'Grid_ColumnChooser_Save',\r\n 'cancel': 'Grid_ColumnChooser_Cancel',\r\n 'availableColumns': 'Grid_ColumnChooser_AvailableColumns',\r\n 'addAll': 'Grid_ColumnChooser_AddAll',\r\n 'selectedColumns': 'Grid_ColumnChooser_SelectedColumns',\r\n 'removeAll': 'Grid_ColumnChooser_RemoveAll',\r\n 'selectedColumnsWithReorder': 'Grid_ColumnChooser_SelectedColumnsWithReorder',\r\n 'add': 'Grid_ColumnChooser_AddColumn',\r\n 'added': 'Grid_ColumnChooser_ColumnAdded',\r\n 'remove': 'Grid_ColumnChooser_RemoveColumn',\r\n 'addAllColumns': 'Grid_ColumnChooser_AddAllColumns',\r\n 'removeAllColumns': 'Grid_ColumnChooser_RemoveAllColumns',\r\n 'headerTitle': 'Grid_ColumnChooser_Header_Title',\r\n 'applyColumns': 'Grid_ColumnChooser_Apply',\r\n 'deselectAll': 'Grid_ColumnChooser_DeselectAll',\r\n 'saveColumnSet': 'Grid_ColumnChooser_SaveColumnSet'\r\n }, i18n.get, i18n));\r\n this.categories = groups(this.columns, options.grouping);\r\n this.whenStateReady = $.Deferred();\r\n },\r\n render: function () {\r\n this.$el.html(tmpl({\r\n grouping: this.options.grouping,\r\n text: this.localization\r\n }));\r\n var $elColumnChooser = this.$('.column-chooser');\r\n this.columnChooser = new ColumnChooser($elColumnChooser[0], {\r\n categories: this.categories,\r\n autosave: false,\r\n isColumnCategoryAllowed: this.options.grouping,\r\n isSavingColumnsAllowed: this.options.saving,\r\n text: this.localization\r\n });\r\n this.state.getItem && this.state.getItem(_.bind(this.setState, this));\r\n $('[role=tab]:first', this.$el).focus();\r\n return this;\r\n },\r\n cancel: function () {\r\n this.hide();\r\n _.each(this.columns, function (column) {\r\n this._getOption(column).property('isSelected', column.selected);\r\n }, this);\r\n this.trigger('column-chooser.complete');\r\n },\r\n save: function () {\r\n var name = this.getSavedName();\r\n if (this.options.saving && _.isFunction(this.options.canSaveColumns)) {\r\n this.options.canSaveColumns({\r\n name: name\r\n }).then(_.bind(function (confirm) {\r\n if (confirm) {\r\n this._onSave();\r\n }\r\n }, this));\r\n } else {\r\n this._onSave();\r\n }\r\n },\r\n addOption: function (category, optionData) {\r\n this.columnChooser.addOption(category, optionData);\r\n this.columns = this.columns.concat({\r\n category: category,\r\n id: optionData.id,\r\n name: optionData.name,\r\n selectable: true\r\n });\r\n },\r\n editOption: function (category, optionData) {\r\n this.columnChooser.editOption(category, optionData);\r\n var colIndex = _.findIndex(this.columns, function (col) {\r\n return col.id === optionData.id;\r\n });\r\n this.columns[colIndex].name = optionData.name;\r\n _.findWhere(_.findWhere(this.categories, {\r\n name: category\r\n }).options, {\r\n id: optionData.id\r\n }).name = optionData.name;\r\n },\r\n removeOption: function (category, id) {\r\n this.columnChooser.removeOption(category, id);\r\n this.columns = _.reject(this.columns, function (col) {\r\n return col.id === id;\r\n });\r\n },\r\n setSelectedIds: function (ids) {\r\n this.columnChooser.setState({\r\n selectedColumns: ids.slice(0)\r\n });\r\n },\r\n getSelectedOptionsId: function () {\r\n return this.columnChooser.getSelectedOptionsId();\r\n },\r\n getSavedName: function () {\r\n return this.columnChooser.getSavedName();\r\n },\r\n setSavedName: function (name) {\r\n return this.columnChooser.setSavedName(name);\r\n },\r\n enabledSaveColumns: function () {\r\n return this.columnChooser.enabledSaveColumns();\r\n },\r\n resetSavedName: function () {\r\n return this.columnChooser.resetSavedName();\r\n },\r\n getColumns: function () {\r\n return this.columns;\r\n },\r\n getSelectedColumns: function () {\r\n var selectedOptions = this.columnChooser.getSelectedOptions();\r\n return _.filter(this.columns, function (column) {\r\n return _.some(selectedOptions, function (option) {\r\n return option.id === column.id;\r\n });\r\n });\r\n },\r\n setState: function (err, state) {\r\n if (!err) {\r\n try {\r\n this.columnChooser.setState(state);\r\n } catch (e) {}\r\n }\r\n this._apply();\r\n this.whenStateReady.resolve();\r\n },\r\n show: function () {\r\n this.$('.column-chooser').show();\r\n },\r\n hide: function () {\r\n this.$('.column-chooser').hide();\r\n },\r\n _onSave: function () {\r\n this.hide();\r\n this._apply();\r\n this.state.setItem && this.state.setItem({\r\n 'selectedColumns': this.columnChooser.getSelectedOptionsId()\r\n });\r\n this.trigger('column-chooser.complete');\r\n },\r\n _getOption: function (column) {\r\n return this.columnChooser.getOptionById(column.id);\r\n },\r\n _apply: function () {\r\n var selected = this.columnChooser.getSelectedOptions();\r\n this.trigger('change:columns', _.pluck(filterSort(this.columns, selected, this._getOption.bind(this)), 'id'));\r\n }\r\n});\r\nfunction groupColumns(columns) {\r\n var last = _.last(columns);\r\n return {\r\n name: last ? last.category : 'Available Columns',\r\n options: _.map(columns, function (column) {\r\n return {\r\n id: column.id,\r\n name: column.name,\r\n settings: {\r\n isDisabled: !column.selectable,\r\n isMandatory: column.mandatory,\r\n isSelected: column.selected\r\n }\r\n };\r\n })\r\n };\r\n}\r\nfunction groups(columns, grouping) {\r\n if (grouping) {\r\n return _.map(_.groupBy(columns, 'category'), groupColumns);\r\n } else {\r\n return [groupColumns(columns)];\r\n }\r\n}\r\nfunction mapObject(object, iteratee, context) {\r\n var ret = {};\r\n iteratee = _.bind(iteratee, context);\r\n _.each(object, function (value, key) {\r\n ret[key] = iteratee(value);\r\n });\r\n return ret;\r\n}\r\nfunction filterSort(list, selected, iteratee) {\r\n var cache = {};\r\n _.each(list, function (item) {\r\n var index = _.indexOf(selected, iteratee(item));\r\n if (-1 !== index) {\r\n cache[index] = item;\r\n }\r\n });\r\n return _.toArray(cache);\r\n}\r\nexport default View;\r\n\r\n","/* eslint-disable */\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport template from '@bingads-webui-component-legacy/modal/layout/modal.pug';\r\nvar view = Backbone.View.extend({\r\n events: {\r\n 'click .btn-primary': 'primaryAction'\r\n },\r\n initialize: function () {\r\n this.primary = false;\r\n this.$el.append(template);\r\n this.$el.addClass('modal');\r\n this.ko_model = {\r\n body: ko.observable(''),\r\n primaryText: ko.observable(''),\r\n defaultText: ko.observable(''),\r\n isHtmlContent: ko.observable(false)\r\n };\r\n },\r\n render: function () {\r\n ko.applyBindings(this.ko_model, this.el);\r\n var self = this;\r\n this.$el.on('hidden.bs.modal', function (e) {\r\n self.$el.trigger('close');\r\n });\r\n return this;\r\n },\r\n show: function (content) {\r\n if (!content || content && !(content.text || content.html || content.primaryActionText)) {\r\n return;\r\n }\r\n this.primary = false;\r\n this.ko_model.body(content.html || content.text);\r\n this.ko_model.primaryText(content.primaryActionText);\r\n this.ko_model.defaultText(content.defaultActionText);\r\n this.ko_model.isHtmlContent(content.html);\r\n this.$el.modal('show');\r\n return this;\r\n },\r\n close: function () {\r\n this.$el.modal('hide');\r\n },\r\n primaryAction: function () {\r\n this.primary = true;\r\n this.close();\r\n },\r\n isPrimarySelected: function () {\r\n return this.primary;\r\n }\r\n});\r\nexport default view;\r\n\r\n","import _ from 'underscore';\r\nimport s from 'underscore.string';\r\nimport Promise from 'bluebird';\r\nimport { localizeSegmentationValue } from '@bingads-webui-campaign/segmentation-utilities';\r\nimport ColumnChooserView from '@bingads-webui-component-legacy/column-chooser/index';\r\nimport { Columns, SelectedColumns } from '@bingads-webui-component-legacy/bingads-grid/service/column-chooser-preferences';\r\nimport { LegacyColumns, LegacySelectedColumns } from '@bingads-webui-component-legacy/bingads-grid/service/legacy-column-chooser-preferences';\r\nimport {\r\n columnChooserIcon,\r\n arrowDownIcon,\r\n} from '@bingads-webui-component-legacy/bingads-grid/shared/icons';\r\nimport Modal from '@bingads-webui-component-legacy/modal/index';\r\nimport { bingadsGridColumn } from '@bingads-webui-component-legacy/bingads-grid/shared/column';\r\nimport { CustomColumns } from '@bingads-webui-component-legacy/bingads-grid/service/custom-column-preferences';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!campaignui/feature/bingadsgrid');\r\nconst sharedComponentI18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!component/bingads-grid');\r\n\r\nconst saveListId = 'dropdown-radio-group-saved-columns';\r\nlet columnPreferenceSaved = Promise.resolve();\r\n\r\nfunction normalizeConfig(config) {\r\n const {\r\n dropdown = 'dropdown-column-chooser',\r\n columns = config.columns || {},\r\n categories = [],\r\n selected = [],\r\n locked = [],\r\n mandatory = [],\r\n patchQuery = false,\r\n toolbar,\r\n customColumn = false,\r\n } = _.result(config.plugins, 'columnChooser', {});\r\n\r\n return {\r\n dropdown,\r\n columns: _.isArray(columns) ? _.indexBy(columns, 'name') : columns,\r\n selected,\r\n locked,\r\n mandatory,\r\n categories,\r\n patchQuery,\r\n toolbar,\r\n customColumn,\r\n };\r\n}\r\n\r\nfunction arrayToIndex(arr) {\r\n return _.reduce(arr, (memo, key) => {\r\n memo[key] = true;\r\n return memo;\r\n }, {});\r\n}\r\n\r\n/*\r\n * Configurations\r\n * @type ColumnChooserConfig\r\n * @member {Object.} columns\r\n * @member {Object.} categories\r\n * @member {string[]} selected\r\n * @member {string[]} locked\r\n * @member {boolean} patchQuery - whether or not we should patch the query for column change\r\n *\r\n * @type ColumnConfig\r\n *\r\n * @type CategoryConfig\r\n * @member {string} title\r\n * @member {string[]} columns\r\n */\r\n/**\r\n * Events\r\n * @event \"columnChanged\" event is triggered when selected columns are changed and pass valid column names as arg\r\n */\r\n\r\nexport default (definePlugin) => definePlugin('columnChooser', [\r\n 'config',\r\n 'gridView',\r\n 'toolbar',\r\n], (config, gridView, toolbar) => {\r\n const pluginConfig = normalizeConfig(config);\r\n let columnChooser = null;\r\n const toolbarEditor = pluginConfig.toolbar || toolbar.gridToolbarGroup.toolbarWithItem(pluginConfig.dropdown);\r\n\r\n function getSelectedColumns() {\r\n return _.map(gridView.get('columns'), _.property('name'));\r\n }\r\n\r\n function setSelectedColumns(names) {\r\n const { columns, locked = [], mandatory = [], patchQuery } = pluginConfig;\r\n const validNames = _.chain([\r\n locked,\r\n _.difference(mandatory, names),\r\n names,\r\n ])\r\n .flatten()\r\n .filter((name) => _.has(columns, name))\r\n .uniq()\r\n .value();\r\n let patch = {\r\n columns: _.map(validNames, (name) => _.defaults({ name }, columns[name])),\r\n };\r\n\r\n if (patchQuery) {\r\n let select = _.reduce(validNames, (memo, name) => {\r\n const column = columns[name];\r\n const property = column && (column.property || column.name);\r\n const key = (_.isString(property) && property) ||\r\n (_.isObject(property) && property.key);\r\n\r\n if (_.isArray(key)) {\r\n Array.prototype.push.apply(memo, key);\r\n } else if (_.isString(key)) {\r\n memo.push(key);\r\n }\r\n\r\n return memo;\r\n }, []);\r\n\r\n const query = gridView.get('query');\r\n\r\n patch.query = _.defaults({\r\n select,\r\n }, query);\r\n }\r\n\r\n gridView.set(patch);\r\n gridView.trigger('columnChanged', { columnNames: validNames });\r\n\r\n // This is a workaround for the column alignment issue on IE & Edge\r\n // After redrawing the table with new column set, IE & Edge doesn't relayout\r\n // the table correctly. We need to reattach the table to DOM to force relayout\r\n gridView.once('didUpdate', () => {\r\n const elTable = gridView.$('table').get(-1);\r\n\r\n if (elTable) {\r\n elTable.parentElement.appendChild(elTable);\r\n }\r\n });\r\n\r\n return Promise.resolve();\r\n }\r\n\r\n const query = {\r\n project: 'CampaignUI',\r\n grid: config.name,\r\n };\r\n\r\n function getSelection() {\r\n return _.first(SelectedColumns.filter({ where: query }));\r\n }\r\n\r\n function getSelectedRecord() {\r\n return _.result(getSelection(), 'name', 'Custom');\r\n }\r\n\r\n function setSelectedRecord(name) {\r\n const selection = getSelection();\r\n\r\n if (selection) {\r\n return SelectedColumns.update(selection.id, { name });\r\n }\r\n\r\n return SelectedColumns.create(_.defaults({ name }, query));\r\n }\r\n\r\n function refreshMenu() {\r\n toolbarEditor.update({\r\n id: saveListId,\r\n items: _.reduce(Columns.filter({ where: query }), (memo, { name }) => {\r\n if (name !== 'Custom') {\r\n memo.push({\r\n text: name,\r\n value: name,\r\n });\r\n }\r\n return memo;\r\n }, [{\r\n text: 'Custom',\r\n value: 'Custom',\r\n locked: true,\r\n }]),\r\n value: getSelectedRecord(),\r\n });\r\n return Promise.resolve();\r\n }\r\n\r\n function getRecord(name) {\r\n return _.first(Columns.filter({\r\n where: _.defaults({ name }, query),\r\n }));\r\n }\r\n\r\n function setRecord(name, columns) {\r\n const record = getRecord(name);\r\n\r\n if (record) {\r\n return Columns.update(record.id, { columns });\r\n }\r\n\r\n return Columns.create(_.defaults({ columns, name }, query));\r\n }\r\n\r\n const legacyQuery = {};\r\n\r\n function legacyDataProcesser() {\r\n const promises = [];\r\n\r\n const legacySelected = LegacySelectedColumns.filter({ where: legacyQuery });\r\n const legacyRecords = LegacyColumns.filter({ where: legacyQuery });\r\n\r\n //deal with selected columnchooser preference in legacy grid\r\n if (legacySelected.length > 0) {\r\n promises.push(LegacySelectedColumns.destroy(_.first(legacySelected).id));\r\n }\r\n\r\n //deal with columnchooser preference in legacy grid\r\n _.each(legacyRecords, (legacyRecord) => {\r\n // this id(-1) means the record is from gridName_selected, this is not what we want here.\r\n // this is a hack to fix the issue that legacy grid save custom record as gridName_custom\r\n // which break the naming convention\r\n if (legacyRecord.id === -1) {\r\n return;\r\n }\r\n\r\n const record = getRecord(legacyRecord.name);\r\n\r\n if (record) {\r\n promises.push(LegacyColumns.destroy(legacyRecord.id));\r\n } else {\r\n const creation = Columns\r\n .create(_.defaults({\r\n columns: legacyRecord.columns,\r\n name: legacyRecord.name,\r\n }, query))\r\n .then(() => {\r\n return LegacyColumns.destroy(legacyRecord.id);\r\n });\r\n\r\n promises.push(creation);\r\n }\r\n });\r\n return Promise.all(promises);\r\n }\r\n\r\n function legacyHandler() {\r\n if (config.legacyGridName) {\r\n _.extend(legacyQuery, {\r\n project: 'CampaignUI',\r\n grid: config.legacyGridName,\r\n });\r\n\r\n return Promise.all([\r\n LegacyColumns.findAll({ where: legacyQuery }),\r\n LegacySelectedColumns.findAll({ where: legacyQuery }),\r\n ])\r\n .then(legacyDataProcesser);\r\n } else {\r\n return Promise.resolve();\r\n }\r\n }\r\n\r\n function applyRecord(name) {\r\n const promises = [];\r\n const record = getRecord(name);\r\n\r\n if (!record) {\r\n promises.push(setRecord(name, pluginConfig.selected));\r\n }\r\n\r\n if (name !== getSelectedColumns()) {\r\n promises.push(setSelectedRecord(name));\r\n }\r\n\r\n return Promise.all(promises)\r\n .then(() => setSelectedColumns(record ? record.columns : pluginConfig.selected)).thenReturn();\r\n }\r\n\r\n function removeRecord(name) {\r\n const promises = [];\r\n const record = getRecord(name);\r\n\r\n if (record) {\r\n promises.push(Columns.destroy(record.id));\r\n if (name === toolbarEditor.get(saveListId).value) {\r\n promises.push(applyRecord('Custom'));\r\n }\r\n }\r\n\r\n return Promise.all(promises).thenReturn();\r\n }\r\n\r\n function applyColumns(columns) {\r\n let name = 'Custom';\r\n\r\n if (columnChooser.enabledSaveColumns()) {\r\n name = columnChooser.getSavedName() || 'Custom';\r\n }\r\n\r\n columnPreferenceSaved = Promise.all([\r\n setRecord(name, columns),\r\n setSelectedRecord(name),\r\n ]).then(() => setSelectedColumns(columns)).then(refreshMenu);\r\n }\r\n\r\n function attemptRemoveRecord(name) {\r\n const modal = new Modal().render();\r\n\r\n modal.show({\r\n text: i18n.getString('ColumnsMenu_PromptBeforeRemove', name),\r\n primaryActionText: i18n.getString('Remove'),\r\n defaultActionText: i18n.getString('Cancel'),\r\n });\r\n\r\n modal.$el.on('close', () => {\r\n if (modal.isPrimarySelected()) {\r\n removeRecord(name).then(refreshMenu);\r\n }\r\n modal.remove();\r\n });\r\n }\r\n\r\n function setCustomColumnsRecord(recordId, customColumns) {\r\n const promises = [];\r\n\r\n if (recordId >= 0) {\r\n promises.push(CustomColumns.update(recordId, { customColumns }));\r\n } else {\r\n promises.push(CustomColumns.create(_.defaults({\r\n customColumns: [customColumns],\r\n },\r\n query\r\n )));\r\n }\r\n\r\n return Promise.all(promises).thenReturn();\r\n }\r\n\r\n function getCustomColumnsRecord() {\r\n return _.first(CustomColumns.filter({where: query}));\r\n }\r\n\r\n function addCustomColumnsRecord(values) {\r\n const record = getCustomColumnsRecord();\r\n\r\n if (record) {\r\n const customColumns = record.get('customColumns').concat(values);\r\n\r\n setCustomColumnsRecord(record.id, customColumns);\r\n } else {\r\n setCustomColumnsRecord(-1, values);\r\n }\r\n }\r\n\r\n function removeCustomColumnsRecord(id) {\r\n const record = getCustomColumnsRecord();\r\n\r\n if (record) {\r\n const customColumns = _.reject(record.get('customColumns'), (col) => {\r\n return id === col.id;\r\n });\r\n\r\n setCustomColumnsRecord(record.id, customColumns);\r\n }\r\n }\r\n\r\n function editCustomColumnsRecord(values) {\r\n const record = getCustomColumnsRecord();\r\n\r\n if (record) {\r\n const customColumns = _.reject(record.get('customColumns'), (col) => {\r\n return values.id === col.id;\r\n }).concat(values);\r\n\r\n\r\n setCustomColumnsRecord(record.id, customColumns);\r\n }\r\n }\r\n\r\n function makeCustomColumn(values) {\r\n return bingadsGridColumn({\r\n name: values.name,\r\n title: values.name,\r\n property: {\r\n get(account) {\r\n if (account.PerformanceMetrics) {\r\n return _.findWhere(account.PerformanceMetrics.CustomColumns, {Id: values.id}).Value;\r\n }\r\n return -1;\r\n },\r\n key: `PerformanceMetrics/CustomColumn${values.id}`,\r\n },\r\n sortable: false,\r\n type: 'number',\r\n format: values.format,\r\n helpId: `CustomColumn${values.id}HelpId`,\r\n });\r\n }\r\n\r\n function saveCustomColumn(settings) {\r\n //add new column to custom columns record\r\n (settings.isEdit ? editCustomColumnsRecord : addCustomColumnsRecord)(settings.values);\r\n\r\n //add option to column chooser view\r\n if (columnChooser) {\r\n if (settings.isEdit) {\r\n columnChooser.editOption('Custom Columns', settings.values);\r\n\r\n const column = _.find(pluginConfig.columns, (col) => {\r\n return !_.isUndefined(col.property) && _.isString(col.property.key) && s.endsWith(col.property.key, settings.values.id);\r\n });\r\n\r\n column.name = settings.values.name;\r\n column.title = settings.values.name;\r\n } else {\r\n columnChooser.addOption('Custom Columns', {\r\n name: settings.values.name,\r\n id: settings.values.id,\r\n });\r\n\r\n const col = [];\r\n\r\n col[settings.values.id] = makeCustomColumn(settings.values);\r\n\r\n _.extend(pluginConfig.columns, col);\r\n }\r\n }\r\n }\r\n\r\n function editCustomColumn(id) {\r\n const record = getCustomColumnsRecord();\r\n const columnInfo = _.findWhere(record.get('customColumns'), {id});\r\n\r\n if (columnChooser) {\r\n columnChooser.openCustomColumnModal(true, columnInfo);\r\n }\r\n }\r\n\r\n function removeCustomColumn(id) {\r\n removeCustomColumnsRecord(id);\r\n\r\n //remove option from column chooser view\r\n if (columnChooser) {\r\n columnChooser.removeOption('Custom Columns', id);\r\n }\r\n }\r\n\r\n function customColumnConfig() {\r\n const record = getCustomColumnsRecord();\r\n const category = { title: 'Custom Columns', columns: [] };\r\n const columns = [];\r\n\r\n if (record) {\r\n const customColumns = record.get('customColumns');\r\n\r\n _.map(customColumns, (columnDefinition) => {\r\n columns[columnDefinition.id] = makeCustomColumn(columnDefinition);\r\n });\r\n\r\n category.columns = _.map(customColumns, (values) => values.id);\r\n }\r\n\r\n return {category, columns};\r\n }\r\n\r\n function destroyColumnChooser() {\r\n if (columnChooser) {\r\n columnChooser.remove();\r\n columnChooser = null;\r\n }\r\n }\r\n\r\n function createColumnChooser() {\r\n if (columnChooser) {\r\n throw new Error('Duplicated column chooser creation');\r\n }\r\n\r\n const { columns, categories, locked, mandatory, customColumn } = pluginConfig;\r\n\r\n if (customColumn.enabled) {\r\n const customColumnConf = customColumnConfig();\r\n\r\n pluginConfig.categories.Custom = customColumnConf.category;\r\n _.extend(pluginConfig.columns, customColumnConf.columns);\r\n\r\n //gets name and title of column to pass to custom column view\r\n if (!customColumn.localizedAdded) {\r\n _.each(customColumn.metrics, (metric) => {\r\n metric.choices = _.map(metric.choices, (colName) => {\r\n return {\r\n name: colName,\r\n localizedTitle: _.findWhere(columns, {name: colName}).title,\r\n };\r\n });\r\n });\r\n\r\n _.each(customColumn.segmentation, (segment) => {\r\n segment.choices = _.map(segment.choices, (choice) => {\r\n return {\r\n name: choice,\r\n localizedTitle: localizeSegmentationValue({\r\n i18n: sharedComponentI18n,\r\n type: segment.name,\r\n value: choice,\r\n }),\r\n };\r\n });\r\n });\r\n customColumn.localizedAdded = true;\r\n }\r\n }\r\n\r\n const selected = getSelectedColumns();\r\n const indexSelected = arrayToIndex(selected);\r\n const indexLocked = arrayToIndex(locked);\r\n const indexMandatory = arrayToIndex(mandatory);\r\n const candidateColumns = _.reduce(categories, (memo, category) => {\r\n _.each(category.columns, (name) => {\r\n const column = columns[name];\r\n\r\n memo.push({\r\n id: name,\r\n name: column.title || column.name,\r\n category: category.title,\r\n selected: indexSelected[name],\r\n selectable: !indexLocked[name],\r\n mandatory: indexMandatory[name],\r\n });\r\n });\r\n return memo;\r\n }, []);\r\n\r\n columnChooser = new ColumnChooserView({\r\n saving: true,\r\n canSaveColumns: ({ name }) => {\r\n return new Promise((resolve) => {\r\n if (_.find(Columns.filter({ where: query }), _.matcher({ name }))) {\r\n const modal = new Modal().render();\r\n const nameExistText = i18n.get('Grid_ColumnChooser_ColumnSetNameAlreadyExists_New', { name });\r\n const replaceText = i18n.get('Grid_ColumnChooser_ReplaceColumnSetName');\r\n\r\n modal.show({\r\n html: `
${nameExistText}
${replaceText}
`,\r\n primaryActionText: i18n.get('Filters_Replace'),\r\n defaultActionText: i18n.get('Cancel'),\r\n });\r\n\r\n modal.$el.on('close', () => {\r\n if (modal.isPrimarySelected()) {\r\n resolve(true);\r\n } else {\r\n resolve(false);\r\n }\r\n });\r\n } else {\r\n resolve(true);\r\n }\r\n });\r\n },\r\n columns: candidateColumns,\r\n customColumn,\r\n }).render();\r\n\r\n columnChooser.setSelectedIds(selected);\r\n\r\n return columnChooser;\r\n }\r\n\r\n function showColumnChooser() {\r\n if (!columnChooser) {\r\n createColumnChooser();\r\n\r\n toolbarEditor.overrideWith(columnChooser);\r\n toolbar.gridToolbarGroup.hideAllToolbars();\r\n\r\n columnChooser.on('column-chooser.complete', () => {\r\n columnPreferenceSaved.then(() => {\r\n toolbarEditor.restoreToolbar();\r\n toolbar.gridToolbarGroup.showAllToolbars();\r\n columnChooser.hide();\r\n destroyColumnChooser();\r\n });\r\n });\r\n columnChooser.on('change:columns', applyColumns);\r\n columnChooser.on('column-chooser.custom-column-save', saveCustomColumn);\r\n columnChooser.on('column-chooser.custom-column-edit', editCustomColumn);\r\n columnChooser.on('column-chooser.custom-column-remove', removeCustomColumn);\r\n\r\n\r\n columnChooser.show();\r\n }\r\n }\r\n\r\n toolbarEditor.update({\r\n id: pluginConfig.dropdown,\r\n button: {\r\n text: i18n.get('Grid_SelectColumns'),\r\n iconLeft: columnChooserIcon,\r\n iconRight: arrowDownIcon,\r\n },\r\n menu: {\r\n items: [{\r\n text: i18n.get('Grid_ColumnChooser_Header_Title'),\r\n onClick: () => _.defer(showColumnChooser),\r\n }, {\r\n type: 'dropdown-divider',\r\n }, {\r\n type: 'dropdown-radio-group',\r\n id: saveListId,\r\n title: i18n.get('ColumnsMenu_ApplySavedColumns'),\r\n items: [],\r\n removeText: i18n.get('Remove'),\r\n onSelect: applyRecord,\r\n onRemove: attemptRemoveRecord,\r\n }],\r\n },\r\n });\r\n\r\n Promise.all([\r\n Columns.findAll({ where: query }),\r\n SelectedColumns.findAll({ where: query }),\r\n CustomColumns.findAll({where: query}),\r\n ])\r\n .then(legacyHandler)\r\n .then(getSelectedRecord)\r\n .then(applyRecord)\r\n .then(refreshMenu);\r\n\r\n return {\r\n remove() {\r\n destroyColumnChooser();\r\n },\r\n setSelectedColumns,\r\n };\r\n});\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!component/bingads-grid');\r\n\r\nexport default class ViewModel {\r\n constructor ({\r\n gridView,\r\n pagination,\r\n }) {\r\n this.gridView = gridView;\r\n this.pagination = pagination;\r\n\r\n this.allSelected = ko.observable(false);\r\n this.currentPageAllRowsSelected = ko.observable(false);\r\n this.shouldShowPlugin = ko.computed(() => {\r\n return this.currentPageAllRowsSelected();\r\n }, this);\r\n\r\n this.selectedRowsCount = 0;\r\n this.totalRowsTotalPageCount = ko.observable(0);\r\n\r\n this.gridView.on('didSelect', (selected) => {\r\n this.selectedRowsCount = _.size(selected);\r\n this.rowsDidUpdate();\r\n });\r\n\r\n this.gridView.on('willReload', () => {\r\n this.silentClearAllSelection();\r\n });\r\n\r\n this.pagination.on('change.complete:pagination', () => {\r\n if (this.allSelected()) {\r\n this.gridView.selectAll();\r\n } else {\r\n this.selectedRowsCount = 0;\r\n this.rowsDidUpdate();\r\n }\r\n });\r\n\r\n this.currentRowsSelectionText = ko.computed(() => {\r\n return i18n.get('Grid_CurrentRowsSelection').replace('{0}', this.pagination.pageSize );\r\n }, this);\r\n\r\n this.selectAllPagesText = ko.computed(() => {\r\n let allPagesRowsCount = this.totalRowsTotalPageCount();\r\n\r\n return i18n.get('Grid_SelectAllPages').replace('{0}', allPagesRowsCount);\r\n }, this);\r\n\r\n this.allRowsSelectedText = ko.computed(() => {\r\n let allPagesRowsCount = this.totalRowsTotalPageCount();\r\n\r\n return i18n.get('Grid_AllPagesSelected').replace('{0}', allPagesRowsCount);\r\n }, this);\r\n\r\n this.clearSelectedText = i18n.get('Grid_ClearSelection');\r\n }\r\n\r\n rowsDidUpdate () {\r\n this.totalRowsTotalPageCount(this.gridView.totalCountRows);\r\n\r\n // >= not ===. Feeling wired, right?\r\n // The reason is that if we change the page size to a smaller number we need to keep the all rows selected status\r\n // \"> 0\" for empty grid or not rendered cases\r\n if (\r\n this.pagination.pageSize > 0 &&\r\n this.selectedRowsCount >= this.pagination.pageSize\r\n ) {\r\n this.onAllRowsSelected();\r\n } else {\r\n this.onNotAllRowsSelected();\r\n }\r\n }\r\n\r\n onAllRowsSelected () {\r\n this.currentPageAllRowsSelected(true);\r\n }\r\n\r\n onNotAllRowsSelected () {\r\n this.currentPageAllRowsSelected(false);\r\n this.allSelected(false);\r\n }\r\n\r\n selectAll () {\r\n this.allSelected(true);\r\n }\r\n\r\n deselectAll () {\r\n this.silentClearAllSelection();\r\n this.gridView.deselectAll();\r\n this.allSelected(false);\r\n }\r\n\r\n silentClearAllSelection() {\r\n let selection = this.gridView.get('selection');\r\n\r\n this.gridView.set({\r\n selection: _.defaults({\r\n selected: [],\r\n }, selection),\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport Backbone from 'backbone';\r\nimport ViewModel from '@bingads-webui-component-legacy/bingads-grid/plugin/cross-page-select-all/viewmodel/index';\r\nimport template from '@bingads-webui-component-legacy/bingads-grid/plugin/cross-page-select-all/template/index.pug';\r\n\r\nexport default class View extends Backbone.View {\r\n initialize (options = {}) {\r\n this.options = options;\r\n this.viewModel = new ViewModel({\r\n gridView: this.options.gridView,\r\n pagination: this.options.pagination,\r\n });\r\n\r\n this.viewModel.allSelected.subscribe(() => {\r\n this.options.gridView.trigger('didSelect', this.options.gridView.selectedKeys());\r\n });\r\n }\r\n\r\n get events () {\r\n return {\r\n 'click a.select-all-cross-page': 'selectAll',\r\n 'click a.deselect-all-cross-page': 'deselectAll',\r\n };\r\n }\r\n\r\n render () {\r\n this.$el.empty().append(template());\r\n\r\n // async bindings - wait all the attach/detach to be finished. The bindings does not work when there are dom detaching and retattaching.\r\n _.defer(() => {\r\n ko.applyBindings(this.viewModel, this.el);\r\n });\r\n\r\n return this;\r\n }\r\n\r\n selectAll () {\r\n this.viewModel.selectAll();\r\n }\r\n\r\n deselectAll () {\r\n this.viewModel.deselectAll();\r\n }\r\n\r\n get isAllSelected() {\r\n return this.viewModel.allSelected();\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport View from '@bingads-webui-component-legacy/bingads-grid/plugin/cross-page-select-all/view/index';\r\n\r\nconst CROSS_PAGE_SELECT_ALL_TYPE = 'cross-page-select-all-row';\r\n\r\nexport function crossPageSelectHeadRow() {\r\n return { type: CROSS_PAGE_SELECT_ALL_TYPE };\r\n}\r\n\r\nexport const crossPageSelectAllPlugin = (definePlugin) => definePlugin('crossPageSelectAll',\r\n ['gridView', 'pagination'],\r\n (gridView, pagination) => {\r\n const view = new View({\r\n gridView,\r\n pagination,\r\n }).render();\r\n\r\n gridView.setHeadRows((rows) => _.map(rows, (row) => {\r\n return _.result(row, 'type') === CROSS_PAGE_SELECT_ALL_TYPE ? _.defaults({\r\n view,\r\n classes: ['grid-cross-page-select-all'],\r\n }, row) : row;\r\n }));\r\n\r\n return view;\r\n }\r\n);\r\n","import _ from 'underscore';\r\nimport pgrid from '@bingads-webui-component-legacy/github/modules/projection-grid/module/projection-grid';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nconst { version } = pgrid;\r\n// Only log the navigation timing info for first grid data load for Grid performance measurement\r\n// during page load.\r\nlet isInitialGridDataLoad = true;\r\n\r\nfunction logMessage(api, instrumentation, message) {\r\n instrumentation.writeRawLog({logCategory: 'ClientPerf',\r\n api,\r\n message: _.isObject(message) ? JSON.stringify(message) : message,\r\n entryType: 'Message'});\r\n}\r\n\r\nfunction logPerformanceInfo({\r\n name,\r\n gridView,\r\n virtualized,\r\n logNavTiming = false,\r\n track,\r\n instrumentation,\r\n}) {\r\n const timeStarted = performance.now();\r\n const activeTimeBeforeStarted = _.result(performance, 'activeTime', NaN);\r\n const { id } = track;\r\n\r\n gridView.once('didReload', (isSuccess) => {\r\n if (isSuccess && id === track.id) {\r\n const timeFetched = performance.now();\r\n const activeTimeBeforeFetched = _.result(performance, 'activeTime', NaN);\r\n\r\n gridView.once('didRedraw', () => {\r\n if (id === track.id) {\r\n // In case the document is hidden, the redraw could be delayed by browser optimization.\r\n // Drop the log in this case.\r\n const timeRendered = performance.now();\r\n const activeTimeBeforeRendered = _.result(performance, 'activeTime', NaN);\r\n\r\n let landingPageUrl = config.get('LandingPageUrl') || '';\r\n\r\n logMessage(name, instrumentation, JSON.stringify(_.defaults({\r\n Version: `projection-grid@${version}`,\r\n GridName: name,\r\n IsVirtualized: virtualized,\r\n TotalRows: gridView.countRows,\r\n TotalServerSideRows: gridView.totalCountRows,\r\n // For the visible rows, do not count the tr.top-filler and tr.bottom-filler\r\n TotalVisibleRows: gridView.$('tbody > tr:visible').length - 2,\r\n TotalColumns: gridView.$('table').last().find('colgroup > col').length,\r\n DataFetchStartTime: timeStarted,\r\n DataFetchStartActiveTime: activeTimeBeforeStarted,\r\n DataFetchingTime: timeFetched - timeStarted,\r\n DataFetchingActiveTime: activeTimeBeforeFetched - activeTimeBeforeStarted,\r\n GridRenderingTime: timeRendered - timeFetched,\r\n GridRenderingActiveTime: activeTimeBeforeRendered - activeTimeBeforeFetched,\r\n }, logNavTiming ? { // Add navigation timing info to indicate this is first Grid load\r\n PageNavStartTime: performance.timing.navigationStart,\r\n PageFetchStartTime: performance.timing.fetchStart,\r\n LandingPageUrl: landingPageUrl,\r\n } : {})));\r\n }\r\n });\r\n }\r\n });\r\n}\r\n\r\nexport const newPerformanceLogPlugin = (definePlugin) => definePlugin('performanceLogNew', [\r\n 'config',\r\n 'gridView',\r\n], ({\r\n scrolling: { virtualized = false } = {},\r\n name,\r\n plugins: { performanceLogNew: { instrumentation = {} } = {} } = {},\r\n}, gridView) => {\r\n const track = {};\r\n\r\n gridView.on('willReload', () => {\r\n track.id = _.uniqueId('log-track-');\r\n\r\n logPerformanceInfo({\r\n name,\r\n virtualized,\r\n gridView,\r\n logNavTiming: isInitialGridDataLoad,\r\n track,\r\n instrumentation,\r\n });\r\n\r\n isInitialGridDataLoad = false;\r\n });\r\n});\r\n","import _ from 'underscore';\r\nimport uiBlocker from '@bingads-webui-component-legacy/uiblocker/service/uiBlocker';\r\n\r\nexport default (definePlugin) =>\r\n definePlugin('uiBlocker', ['config', 'gridView'], (config, gridView) => {\r\n let el = _.chain(config)\r\n .result('plugins')\r\n .result('uiBlocker')\r\n .result('el', gridView.el)\r\n .value();\r\n let uiBlockerToken = null;\r\n\r\n gridView.on('willReload', () => {\r\n if (uiBlockerToken) {\r\n uiBlocker.unblock(el, uiBlockerToken);\r\n }\r\n uiBlockerToken = uiBlocker.block(el);\r\n });\r\n\r\n gridView.on('didReload', () => {\r\n if (uiBlockerToken) {\r\n uiBlocker.unblock(el, uiBlockerToken);\r\n uiBlockerToken = null;\r\n }\r\n });\r\n });\r\n\r\n","import config from '@bingads-webui-component-legacy/config/index';\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport { PreferencesSubadapter } from '@bingads-webui-component-legacy/bingads-grid/service/preference-subadapter';\r\nimport { store, adapter } from '@bingads-webui-component-legacy/bingads-grid/service/grid-preferences';\r\n\r\nexport const CustomUserInfos = store.defineResource('CustomUserInfos');\r\n\r\nadapter.registerSubadapter('CustomUserInfos', new PreferencesSubadapter({\r\n Resource: CustomUserInfos,\r\n prefix({\r\n where: {\r\n project = 'CampaignUI',\r\n } = {},\r\n } = {}) {\r\n if (!project) {\r\n throw new Error('Invalid where clause');\r\n }\r\n return `WebApp.${project}.CustomUserInfos`;\r\n },\r\n serialize(attrs) {\r\n const { id, project, customUserInfos} = attrs;\r\n\r\n if (typeof project !== 'string' || !_.isObject(customUserInfos)) {\r\n throw new Error('Invalid attributes');\r\n }\r\n return {\r\n Id: id,\r\n Name: `WebApp.${project}.CustomUserInfos`,\r\n Data: customUserInfos,\r\n Type: 'object',\r\n Version: 1,\r\n };\r\n },\r\n deserialize(data) {\r\n const match = data.Name.match(/^WebApp\\.(\\w+)\\.CustomUserInfos$/);\r\n\r\n if (!match) {\r\n throw new Error('Invalid preference name');\r\n }\r\n const [project] = match.slice(1);\r\n const customUserInfos = data.Data;\r\n const id = data.Id;\r\n\r\n return { id, project, customUserInfos };\r\n },\r\n}));\r\n\r\nfunction getRecord(project) {\r\n return _.first(CustomUserInfos.filter({\r\n where: _.defaults({ project }),\r\n }));\r\n}\r\n\r\nexport function setCustomUserInfos(item, project = 'CampaignUI') {\r\n const record = getRecord(project);\r\n const customUserInfos = _.result(record, 'customUserInfos');\r\n const newCustomUserInfos = customUserInfos ? _.extend(customUserInfos, item) : item;\r\n\r\n if (record) {\r\n return CustomUserInfos.update(record.id, { customUserInfos: newCustomUserInfos });\r\n }\r\n return CustomUserInfos.create({ customUserInfos: newCustomUserInfos, project }, {\r\n path: config.get('odata.path'),\r\n });\r\n}\r\nexport function getCustomUserInfos(project = 'CampaignUI') {\r\n return CustomUserInfos.findAll({\r\n where: { project },\r\n }).then((record) => {\r\n return Promise.resolve(record.length ? _.result(record[0], 'customUserInfos') : _.noop());\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport { PreferencesSubadapter } from '@bingads-webui-component-legacy/bingads-grid/service/preference-subadapter';\r\nimport { store, adapter } from '@bingads-webui-component-legacy/bingads-grid/service/grid-preferences';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nexport const DateFilters = store.defineResource('DateFilters');\r\n\r\nadapter.registerSubadapter('DateFilters', new PreferencesSubadapter({\r\n Resource: DateFilters,\r\n prefix({\r\n where: {\r\n project = 'CampaignUI',\r\n grid = null,\r\n } = {},\r\n } = {}) {\r\n if (_.some([project, grid], _.negate(_.isString))) {\r\n throw new Error('Invalid where clause');\r\n }\r\n return `WebApp.${project}.DateFilters.${grid}`;\r\n },\r\n serialize(attrs) {\r\n const { id, project, grid, dateFilters} = attrs;\r\n\r\n if (_.some([project, grid], _.negate(_.isString)) || !_.isObject(dateFilters)) {\r\n throw new Error('Invalid attributes');\r\n }\r\n return {\r\n Id: id,\r\n Name: `WebApp.${project}.DateFilters.${grid}`,\r\n Data: dateFilters,\r\n Type: 'object',\r\n Version: 1,\r\n };\r\n },\r\n deserialize(data) {\r\n const match = data.Name.match(/^WebApp\\.(\\w+)\\.DateFilters\\.(\\w+)$/);\r\n\r\n if (!match) {\r\n throw new Error('Invalid preference name');\r\n }\r\n const [project, grid] = match.slice(1);\r\n const dateFilters = data.Data;\r\n const id = data.Id;\r\n\r\n return { id, project, grid, dateFilters };\r\n },\r\n}));\r\n\r\nconst defaultQuery = {\r\n grid: 'grid',\r\n};\r\n\r\nexport function getDateFilter(project) {\r\n return _.first(DateFilters.filter({\r\n where: _.defaults({ project }, defaultQuery),\r\n }));\r\n}\r\nexport function setDateFilter(project, dateFilters) {\r\n const record = getDateFilter(project);\r\n\r\n if (record) {\r\n return DateFilters.update(record.id, { dateFilters });\r\n }\r\n return DateFilters.create(_.defaults({ dateFilters, project }, defaultQuery), {\r\n path: config.get('odata.path'),\r\n });\r\n}\r\nexport function getDateFilterPreference(project) {\r\n return DateFilters.findAll({\r\n where: _.defaults({ project }, defaultQuery),\r\n });\r\n}\r\n","/**\r\n * @file event helper function.\r\n */\r\n\r\n/**\r\n * Return whether event is not simple left mouse click event.\r\n *\r\n * @param {Object} event - the event object\r\n *\r\n * @return {bool} whether it's not a simple left mouse click event\r\n */\r\nexport const isNotSimpleLeftMouseClickEvent = function isNotSimpleLeftMouseClickEvent(event) {\r\n return event && (event.button !== 0 || event.ctrlKey || event.shiftKey || event.altKey || event.metaKey);\r\n};\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport { focusLockInstanceDecorator } from '@bingads-webui/focus-lock-decorator';\r\nimport Backbone from 'backbone';\r\n\r\nconst editorClass = 'grid-popupeditor';\r\n\r\nfunction getPosition(cellPosition, $editor, isRTL, renderBelow) {\r\n const cTop = cellPosition.top;\r\n const cLeft = cellPosition.left;\r\n // scrollTop takes into account a scrolled page\r\n const $cell = $(document.elementFromPoint(cLeft, cTop - $(document).scrollTop())).closest('td');\r\n let left;\r\n let top = cTop;\r\n\r\n if (isRTL) {\r\n left = cLeft - $editor.width() + $cell.width() - 20;\r\n } else {\r\n left = cLeft - 10;\r\n\r\n const widthDiff = cLeft + $editor.outerWidth() - document.body.clientWidth;\r\n\r\n // adjust right edge if it extend past the grid's viewport\r\n if (widthDiff > 0) {\r\n left -= widthDiff;\r\n }\r\n }\r\n\r\n if (renderBelow) {\r\n // render below the content (assumes equal top/bottom padding)\r\n const height = $cell.children().length > 0 ? $cell.children().height() : $cell.height();\r\n let padding = ($cell.outerHeight() - height) / 2;\r\n\r\n // add offset of 5\r\n top += $cell.outerHeight() - padding + 2;\r\n } else {\r\n top -= 10;\r\n }\r\n\r\n return {\r\n top,\r\n left,\r\n };\r\n}\r\n\r\nexport default class View extends Backbone.View {\r\n get attributes() {\r\n return {\r\n 'role': 'dialog',\r\n };\r\n }\r\n\r\n constructor(options) {\r\n options.className = options.className || editorClass;\r\n\r\n super(options);\r\n }\r\n\r\n initialize(options) {\r\n this.editorView = options.editorView;\r\n this.cellPosition = options.cellPosition;\r\n this.renderBelow = options.renderBelow;\r\n this.dismiss = () => {\r\n this.trigger('close');\r\n this.remove();\r\n };\r\n const FocusLockEditorView = focusLockInstanceDecorator(this.editorView, {\r\n onExist: this.dismiss.bind(this),\r\n lockRegionAriaLabel: options.lockRegionAriaLabel,\r\n }, {\r\n managed: true,\r\n });\r\n\r\n this.focusLockEditorView = new FocusLockEditorView();\r\n\r\n this.clickToDismiss = (event) => {\r\n if ($(event.target).closest(`.${this.className.replace(' ', '.')}`).length === 0) {\r\n if (options.noDismiss) {\r\n return;\r\n }\r\n this.dismiss();\r\n }\r\n };\r\n }\r\n\r\n render() {\r\n this.$el.html(this.focusLockEditorView.render().el);\r\n\r\n this.editorView.on('close', (update) => {\r\n this.trigger('close', update);\r\n this.remove();\r\n });\r\n\r\n // position calculation need to be after the element appended to DOM, so defer it\r\n _.defer(() => {\r\n this.$el.css(getPosition(this.cellPosition, this.$el, config.CultureIsRTL, this.renderBelow));\r\n\r\n if (_.isFunction(this.editorView.setFocus)) {\r\n this.editorView.setFocus();\r\n } else if (this.editorView.$el) {\r\n this.editorView.$el.focus();\r\n }\r\n\r\n $(window).on('click', this.clickToDismiss);\r\n });\r\n\r\n $('body').append(this.el);\r\n\r\n return this;\r\n }\r\n\r\n remove() {\r\n this.focusLockEditorView.remove();\r\n this.editorView.remove();\r\n $(window).off('click', this.clickToDismiss);\r\n super.remove();\r\n }\r\n}\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport buttonTmpl from '@bingads-webui-component-legacy/grid-toolbar/template/button.pug';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!component/grid-toolbar');\r\nvar Button = Backbone.View.extend({\r\n className: 'grid-menu-container',\r\n events: {\r\n 'click': '_onClick'\r\n },\r\n initialize: function (options) {\r\n this.options = _.defaults(options || ({}), {\r\n text: '',\r\n leftIconClass: null,\r\n i18n: i18n,\r\n isNewFeature: false,\r\n isAvailable: true\r\n });\r\n },\r\n _onClick: function (event) {\r\n if (this.options.isAvailable === false) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n this.trigger('click', this);\r\n },\r\n isDisabled: function () {\r\n return this.$el.hasClass('disabled');\r\n },\r\n disable: function () {\r\n this.$el.addClass('disabled');\r\n this.$el.attr('aria-disabled', 'true');\r\n var buttonEl = this.$el.find('input.grid-menu');\r\n if (buttonEl.length) {\r\n buttonEl.attr('aria-disabled', 'true');\r\n }\r\n },\r\n enable: function () {\r\n this.$el.removeClass('disabled');\r\n this.$el.attr('aria-disabled', 'false');\r\n var buttonEl = this.$el.find('input.grid-menu');\r\n if (buttonEl.length) {\r\n buttonEl.attr('aria-disabled', 'false');\r\n }\r\n },\r\n render: function () {\r\n this.$el.html(buttonTmpl(this.options));\r\n if (this.options.isAvailable === false) {\r\n this.disable();\r\n }\r\n return this;\r\n }\r\n});\r\nexport default Button;\r\n\r\n","/* eslint-disable */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport MenuItem from '@bingads-webui-component-legacy/grid-toolbar/menuItem';\r\nimport menuItem from '@bingads-webui-component-legacy/grid-toolbar/template/buttonMenuItem.pug';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!component/grid-toolbar');\r\nvar ButtonMenuItem = MenuItem.extend({\r\n attributes: {\r\n role: 'presentation'\r\n },\r\n events: {\r\n 'click': '_onClick'\r\n },\r\n initialize: function (options) {\r\n this.text = options.text;\r\n this.options = _.defaults(options || ({}), {\r\n text: '',\r\n linkText: '',\r\n i18n: i18n,\r\n isNewFeature: false,\r\n isAvailable: true\r\n });\r\n },\r\n setText: function (text) {\r\n this.text = text;\r\n if (this.options.linkText != null) {\r\n this.$el.find('.primary').text(text);\r\n } else {\r\n this.$el.find('.anchor').text(text);\r\n }\r\n },\r\n getText: function () {\r\n return this.text;\r\n },\r\n disable: function () {\r\n this.$('.anchor').addClass('disabled');\r\n },\r\n enable: function () {\r\n this.$('.anchor').removeClass('disabled');\r\n },\r\n setLinkText: function (text) {\r\n this.$el.find('.secondary').text(text);\r\n },\r\n _onClick: function (event) {\r\n if (this.options.isAvailable === false) {\r\n event.stopPropagation();\r\n return;\r\n }\r\n if ($(event.target).hasClass('secondary')) {\r\n this.trigger('click:link', this);\r\n } else {\r\n this.trigger('click', this);\r\n }\r\n },\r\n render: function () {\r\n this.$el.html(menuItem(this.options));\r\n if (this.options.isAvailable === false) {\r\n this.disable();\r\n }\r\n return this;\r\n }\r\n});\r\nexport default ButtonMenuItem;\r\n\r\n","/* eslint-disable */\r\nimport MenuItem from '@bingads-webui-component-legacy/grid-toolbar/menuItem';\r\nvar DividerMenuItem = MenuItem.extend({\r\n className: 'divider',\r\n attributes: {\r\n role: 'presentation'\r\n }\r\n});\r\nexport default DividerMenuItem;\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport buttonTmpl from '@bingads-webui-component-legacy/grid-toolbar/template/dropdown.pug';\r\nimport 'bootstrap';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!component/grid-toolbar');\r\nvar Dropdown = Backbone.View.extend({\r\n className: 'grid-groupmenu-container dropdown',\r\n initialize: function (options) {\r\n this.options = _.defaults(options || ({}), {\r\n isFirstItem: false,\r\n isShowRightIcon: true,\r\n menuItems: [],\r\n i18n: i18n,\r\n isNewFeature: false,\r\n menuClassNames: []\r\n });\r\n this.menuItems = this.options.menuItems.slice(0);\r\n _.each(this.menuItems, this._initMenuItem.bind(this));\r\n },\r\n getMenuItem: function (index) {\r\n return this.menuItems[index];\r\n },\r\n getMenuItems: function () {\r\n return this.menuItems;\r\n },\r\n pushMenuItem: function (item) {\r\n this.menuItems.push(item);\r\n this._initMenuItem(item);\r\n this._renderMenuItem(item);\r\n },\r\n pushMenuItems: function (items) {\r\n if (!_.isArray(items)) {\r\n items = [items];\r\n }\r\n _.each(items, this.pushMenuItem, this);\r\n },\r\n removeMenuItem: function (item) {\r\n if (item.getGroup) {\r\n return this.removeRadioItem(item);\r\n }\r\n var index = this.menuItems.indexOf(item);\r\n if (index !== -1) {\r\n this.menuItems.splice(index, 1);\r\n }\r\n item.isGroup ? item.remove() : item.$el.remove();\r\n },\r\n removeMenuItems: function (items) {\r\n if (!_.isArray(items)) items = [items];\r\n _.each(items, this.removeMenuItem, this);\r\n },\r\n removeRadioItem: function (item) {\r\n var groupItem = item.getGroup && item.getGroup();\r\n groupItem && groupItem.removeItem(item);\r\n },\r\n _applyItemEvents: function (item) {\r\n item.on('click', function (item) {\r\n this.trigger('click:item', this, item);\r\n }, this);\r\n item.on('click:link', function (item) {\r\n this.trigger('click:link', this, item);\r\n }, this);\r\n },\r\n _initMenuItem: function (item) {\r\n if (item.isGroup) {\r\n _.each(item.items, this._applyItemEvents, this);\r\n } else {\r\n this._applyItemEvents(item);\r\n }\r\n },\r\n _renderMenuItem: function (item) {\r\n this.$itemList && this.$itemList.append(item.render().$el);\r\n },\r\n disable: function () {\r\n this.$('.dropdown-toggle').addClass('disabled');\r\n },\r\n enable: function () {\r\n this.$('.dropdown-toggle').removeClass('disabled');\r\n },\r\n render: function () {\r\n this.$el.html(buttonTmpl(this.options));\r\n if (this.options.isAvailable === false) {\r\n this.disable();\r\n }\r\n this.$itemList = this.$el.children('.dropdown-menu');\r\n _.each(this.menuItems, this._renderMenuItem, this);\r\n return this;\r\n }\r\n});\r\nexport default Dropdown;\r\n\r\n","/* eslint-disable */\r\nimport _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport toolbarTemplate from '@bingads-webui-component-legacy/grid-toolbar/template/toolbar.pug';\r\nvar GridToolbar = Backbone.View.extend({\r\n className: 'grid-toolbar',\r\n initialize: function (options) {\r\n this.options = options || ({});\r\n this.items = this.options.items || [];\r\n },\r\n appendItems: function (items) {\r\n this.items = this.items.concat(items);\r\n this.container && this.renderItems(items);\r\n },\r\n showToolbar: function () {\r\n this.$('.grid-toolbar-container').show();\r\n },\r\n hideToolbar: function () {\r\n this.$('.grid-toolbar-container').hide();\r\n },\r\n expand: function (el) {\r\n this.$('.grid-toolbar-expand').append(el);\r\n },\r\n renderItems: function (items) {\r\n var count = items.length;\r\n _.each(items, function (item, index) {\r\n item.options.isFirstItem = index === 0;\r\n item.options.setSize = count;\r\n item.options.posInSet = index + 1;\r\n this.container.append(item.render().$el);\r\n }, this);\r\n },\r\n setMenuTitle: function (title) {\r\n if (_.isObject(title) && title.text && title.pos) {\r\n this.$('.grid-menu:eq(' + title.pos + ')') && this.$('.grid-menu:eq(' + title.pos + ')').text(title.text);\r\n } else {\r\n this.$('.grid-menu').text(title.toString());\r\n }\r\n },\r\n render: function () {\r\n this.$el.html(toolbarTemplate());\r\n this.container = this.$('.grid-toolbar-container');\r\n this.renderItems(this.items);\r\n return this;\r\n }\r\n});\r\nexport default GridToolbar;\r\n\r\n","/* eslint-disable */\r\nimport MenuItem from '@bingads-webui-component-legacy/grid-toolbar/menuItem';\r\nvar HeaderMenuItem = MenuItem.extend({\r\n tagName: 'li',\r\n className: 'dropdown-header',\r\n attributes: {\r\n role: 'presentation'\r\n },\r\n render: function () {\r\n var text = this.options ? this.options.text : '';\r\n this.$el.text(text);\r\n return this;\r\n }\r\n});\r\nexport default HeaderMenuItem;\r\n\r\n","/* eslint-disable */\r\nimport Backbone from 'backbone';\r\nvar MenuItem = Backbone.View.extend({\r\n tagName: 'li'\r\n});\r\nexport default MenuItem;\r\n\r\n","/* eslint-disable */\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nvar i18n = window.globalLegacyI18n.get('component/i18n/loader!component/humanize');\r\nvar formatFileSize = function (fileSize) {\r\n var key = 'File_Size_Unit_B';\r\n var locale = config.get('culture') || 'en-US';\r\n if (fileSize >= 1 << 30) {\r\n fileSize = fileSize >> 30;\r\n key = 'File_Size_Unit_GB';\r\n } else if (fileSize >= 1 << 20) {\r\n fileSize = fileSize >> 20;\r\n key = 'File_Size_Unit_MB';\r\n } else if (fileSize >= 1 << 10) {\r\n fileSize = fileSize >> 10;\r\n key = 'File_Size_Unit_KB';\r\n }\r\n var fileSizeString = fileSize.toLocaleString(locale);\r\n return i18n.get(key, {\r\n fileSize: fileSizeString\r\n });\r\n};\r\nexport default {\r\n fileSize: formatFileSize\r\n};\r\n\r\n","class DelegateAdapter {\r\n\r\n constructor(targetName) {\r\n this.targetName = targetName;\r\n }\r\n\r\n // All of the methods shown here must return a promise\r\n\r\n // \"definition\" is a resource definition that would\r\n // be returned by DS#defineResource\r\n\r\n // \"options\" would be the options argument that\r\n // was passed into the DS method that is calling\r\n // the adapter method\r\n\r\n create(definition, attrs, options) {\r\n // Must resolve the promise with the created item\r\n return definition.getAdapter(this.targetName).create(definition, attrs, options);\r\n }\r\n\r\n find(definition, id, options) {\r\n // Must resolve the promise with the found item\r\n return definition.getAdapter(this.targetName).find(definition, id, options);\r\n }\r\n\r\n findAll(definition, params, options) {\r\n // Must resolve the promise with the found items\r\n return definition.getAdapter(this.targetName).findAll(definition, params, options);\r\n }\r\n\r\n update(definition, id, attrs, options) {\r\n // Must return a promise that resolves with the updated item\r\n return definition.getAdapter(this.targetName).update(definition, id, attrs, options);\r\n }\r\n\r\n updateAll(definition, attrs, params, options) {\r\n // Must resolve the promise with the updated items\r\n return definition.getAdapter(this.targetName).updateAll(definition, attrs, params, options);\r\n }\r\n\r\n destroy(definition, id, options) {\r\n // Must return a promise\r\n return definition.getAdapter(this.targetName).destroy(definition, id, options);\r\n }\r\n\r\n destroyAll(definition, params, options) {\r\n // Must return a promise\r\n return definition.getAdapter(this.targetName).destroyAll(definition, params, options);\r\n }\r\n}\r\n\r\nexport default DelegateAdapter;\r\n","import Backbone from 'backbone';\r\nimport _ from 'underscore';\r\n\r\nexport default class MutableModel {\r\n /**\r\n * constructor\r\n * @param {Array} options.mutables See the examples below\r\n * @param {Object} options.model The initial values\r\n */\r\n\r\n /**\r\n * Example mutables\r\n *{\r\n Name: {},\r\n Language: {},\r\n Medium: {},\r\n NativeBidAdjustment: {},\r\n TrackingUrlTemplate: {},\r\n UrlCustomParameters: {\r\n hasChanges: (value) => {\r\n if (_.isEmpty(value) && _.isEmpty(memo('UrlCustomParameters'))) {\r\n return false;\r\n }\r\n\r\n return !_.isEqual(value, memo('UrlCustomParameters'));\r\n },\r\n },\r\n AdRotation: {\r\n hasChanges: (value) => {\r\n if (memo('AdRotation')) {\r\n return value !== memo('AdRotation').RotationType;\r\n }\r\n return true;\r\n },\r\n },\r\n AdDistribution: {},\r\n SearchBid: {\r\n hasChanges: (value) => {\r\n return decimal.fromLocalToFloat(value) !== memo('SearchBid');\r\n },\r\n },\r\n }\r\n */\r\n constructor({\r\n mutables = [],\r\n model = {},\r\n } = {}) {\r\n this.mutables = mutables;\r\n this.memo = model;\r\n this.model = new Backbone.Model();\r\n this.model.set(model);\r\n this.keys = _.keys(model);\r\n\r\n _.each(this.mutables, (mutable, key) => {\r\n _.defaults(mutable, {\r\n hasChanges: (value) => {\r\n return !_.isEqual(this.memo[key], value);\r\n },\r\n });\r\n });\r\n }\r\n\r\n get(...args) {\r\n return this.model.get(...args);\r\n }\r\n\r\n set(...args) {\r\n if (_.isObject(args[0])) {\r\n this.addKeys(_.keys(args[0]));\r\n } else if (_.isString(args[0])) {\r\n this.addKeys(args[0]);\r\n }\r\n\r\n return this.model.set(...args);\r\n }\r\n\r\n setKeys(keys) {\r\n if (_.isArray(keys)) {\r\n this.keys = keys;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n addKeys(keys) {\r\n let toAdd = [];\r\n\r\n if (_.isString(keys)) {\r\n toAdd = [keys];\r\n } else if (_.isArray(keys)) {\r\n toAdd = keys;\r\n }\r\n\r\n this.keys = _.union(this.keys, toAdd);\r\n\r\n }\r\n\r\n /**\r\n * getIncremental\r\n * @param {array} keys: specified which fields should be covered. If not specified will let this.keys to decide it\r\n * @return {object} all the incremental fields\r\n */\r\n getIncremental(keys) {\r\n const curKeys = _.isArray(keys) && !_.isEmpty(keys) ? keys : this.keys;\r\n\r\n if (this.model) {\r\n let ret = {};\r\n\r\n _.each(curKeys, (key) => {\r\n const curMutable = this.mutables[key];\r\n const curVal = this.model.get(key);\r\n\r\n if (!curMutable || curMutable.hasChanges(curVal)) {\r\n ret[key] = curVal;\r\n }\r\n });\r\n\r\n return ret;\r\n }\r\n\r\n return {};\r\n }\r\n}\r\n","import { capitalize } from '@bingads-webui-component-legacy/string/index';\r\nimport { get } from '@bingads-webui-universal/primitive-utilities';\r\n\r\n\r\nfunction getEnum(i18n, enumType, enumItem) {\r\n return i18n.get(`Schema_Enum_${capitalize(enumType.toString())}_${capitalize(enumItem.toString())}`);\r\n}\r\n\r\nfunction getEnumDescription(i18n, enumType, enumItem) {\r\n return i18n.get(`Schema_Enum_${capitalize(enumType.toString())}_${capitalize(enumItem.toString())}_Description`);\r\n}\r\n\r\nfunction toSchema(schemaOrType = {}) {\r\n if (typeof schemaOrType === 'string') {\r\n return {\r\n name: schemaOrType,\r\n };\r\n }\r\n\r\n if (!schemaOrType.name) {\r\n throw new TypeError(`The schema should have \"name\" property, but is ${JSON.stringify(schemaOrType)}`);\r\n }\r\n\r\n return schemaOrType;\r\n}\r\n\r\nfunction toArray(stringOrArray) {\r\n return Array.isArray(stringOrArray) ? stringOrArray : [stringOrArray];\r\n}\r\n\r\nfunction getType(i18n, schemaOrType) {\r\n return i18n.get(`Schema_${toSchema(schemaOrType).name}`);\r\n}\r\n\r\nfunction getPropertySchema(schema, property) {\r\n const standardPropertySchema = get(schema, ['properties', property]);\r\n\r\n if (standardPropertySchema) {\r\n return standardPropertySchema.schema ?\r\n standardPropertySchema.schema : // for our non-standard schema format\r\n standardPropertySchema;\r\n }\r\n return {\r\n name: property, // most non-primitive property has same name with it's type\r\n };\r\n}\r\n\r\n// For Campaign.PerformanceMetrics.Clicks\r\n// it would use i18n key first exists in following list\r\n// Schema_Campaign_Property_PerformanceMetrics.Clicks\r\n// Schema_PerformanceMetrics_Property_Clicks\r\n// Schema_Clicks\r\nfunction getProperty(i18n, schemaOrType, property) {\r\n const schema = toSchema(schemaOrType);\r\n const arrProperty = toArray(property);\r\n\r\n const exact = i18n.get(`Schema_${schema.name}_Property_${arrProperty.join('.')}`);\r\n\r\n if (exact) {\r\n return exact;\r\n }\r\n\r\n const topLevelPropertySchema = getPropertySchema(schema, arrProperty[0]);\r\n\r\n return arrProperty.length > 1 ?\r\n getProperty(i18n, topLevelPropertySchema, arrProperty.slice(1)) :\r\n getType(i18n, topLevelPropertySchema);\r\n}\r\n\r\nfunction getValue(i18n, schemaOrType, property, value) {\r\n const schema = toSchema(schemaOrType);\r\n\r\n return i18n.get(`Schema_${schema.name}_Property_${property}_Value_${capitalize(value.toString())}`) ||\r\n getEnum(i18n, get(schema, ['properties', property, 'enumType']) || property, value) || // most enum property has same name with it's type\r\n String(value); // default to value itself, useful for already-localized value or no-need-to-localize value\r\n}\r\n\r\nfunction getValueDescription(i18n, schemaOrType, property, value) {\r\n const schema = toSchema(schemaOrType);\r\n\r\n return i18n.get(`Schema_${schema.name}_Property_${property}_Value_${capitalize(value.toString())}_Description`) ||\r\n getEnumDescription(i18n, get(schema, ['properties', property, 'enumType']) || property, value) || // most enum property has same name with it's type\r\n String(value); // default to value itself, useful for already-localized value or no-need-to-localize value\r\n}\r\n\r\nexport function constructSchemaI18n({ _, i18n }) {\r\n return {\r\n type: _.partial(getType, i18n),\r\n property: _.partial(getProperty, i18n),\r\n value: _.partial(getValue, i18n),\r\n enum: _.partial(getEnum, i18n),\r\n // deprecated\r\n enumMappedString: _.partial(getEnum, i18n),\r\n\r\n valueDescription: _.partial(getValueDescription, i18n),\r\n enumDescription: _.partial(getEnumDescription, i18n),\r\n };\r\n}\r\n\r\nexport function load(name, req, onload, config) {\r\n if (config.isBuild) {\r\n onload();\r\n } else {\r\n req([\r\n 'underscore',\r\n `component/i18n/loader!component/schema-i18n-${name}`,\r\n ], (_, i18n) => {\r\n onload(constructSchemaI18n({ _, i18n }));\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Backbone from 'backbone';\r\nimport DataStore from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport edmCampaign from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport template from '@bingads-webui-component-legacy/update-status/template/index.pug';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!component/update-status');\r\n\r\nexport default class view extends Backbone.View {\r\n initialize(options = {}) {\r\n this.options = _.extend({\r\n beforeRemove: options.beforeRemove ? options.beforeRemove : _.noop,\r\n afterChange: options.beforeRemove ? options.beforeRemove : _.noop,\r\n }, options);\r\n\r\n this.options = _.defaults(this.options, {\r\n stateWhitelist: ['Active', 'Paused', 'Deleted'],\r\n });\r\n\r\n this.schema = this.options.schema || {};\r\n this.entitySet = this.options.entitySet || edmCampaign.currentAccount;\r\n this.extendData = this.options.extendData || {};\r\n $(document).one('click', _.bind(this.remove, this));\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .active': 'activate',\r\n 'click .paused': 'pause',\r\n 'click .deleted': 'delete',\r\n 'click .paused-as-removed': 'pause',\r\n };\r\n }\r\n\r\n activate(e) {\r\n this.changeStatus('Active', e);\r\n }\r\n\r\n pause(e) {\r\n this.changeStatus('Paused', e);\r\n }\r\n\r\n delete(e) {\r\n this.changeStatus('Deleted', e);\r\n }\r\n\r\n changeStatus(value, e) {\r\n e.stopPropagation();\r\n\r\n if (value.toLowerCase() !== this.options.Status.toLowerCase()) {\r\n let entity = DataStore[this.schema.name];\r\n\r\n //State is the name used by TaskItem schema\r\n let updateObject = {\r\n [this.options.useStateInsteadOfStatus ? 'State' : 'Status']: value,\r\n };\r\n\r\n if (this.options.addImportTypeToStatusUpdate) {\r\n updateObject.Type = this.options.Model.Type;\r\n }\r\n\r\n if (!_.isEmpty(entity) && (!_.isUndefined(this.options.Id) || this.options.ignoreEmptyId)) {\r\n entity.update(this.options.Id, _.extend(updateObject, this.extendData), {\r\n cacheResponse: false,\r\n entitySet: this.entitySet,\r\n }).then(() => {\r\n this.options.afterChange(null, value);\r\n this.remove();\r\n }).catch((err) => {\r\n this.options.afterChange(err);\r\n this.remove();\r\n });\r\n }\r\n }\r\n this.remove();\r\n }\r\n\r\n remove(...args) {\r\n this.options.beforeRemove();\r\n super.remove(...args);\r\n }\r\n\r\n render() {\r\n this.$el.html(template({\r\n i18n,\r\n Status: this.options.Status,\r\n stateWhitelist: this.options.stateWhitelist,\r\n _,\r\n }));\r\n\r\n return this;\r\n }\r\n}\r\n","import Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nlet getWalkthrus = (walkthru) => {\r\n let availableWalkthrus = [];\r\n let availableWalkthrusSmart = [];\r\n let allWalkthrus = window.WalkMeAPI.getWalkthrus();\r\n let walkthrus = !walkthru || _.isArray(walkthru) ? walkthru : [walkthru];\r\n let ids = _.pluck(walkthrus, 'id');\r\n let allWalkthrusSmart = window.WalkMeAPI.getFlows();\r\n\r\n if (ids) {\r\n availableWalkthrus = _.reduce(ids, (memo, id) => {\r\n let match = _.find(allWalkthrus, (w) => w.Id === id);\r\n\r\n if (match) {\r\n memo.push(match);\r\n }\r\n\r\n return memo;\r\n }, []);\r\n\r\n availableWalkthrusSmart = _.reduce(ids, (memo, id) => {\r\n let match = _.find(allWalkthrusSmart, (w) => w.Id === id);\r\n\r\n if (match) {\r\n memo.push(match);\r\n }\r\n\r\n return memo;\r\n }, []);\r\n }\r\n\r\n return _.union(availableWalkthrus, availableWalkthrusSmart);\r\n};\r\n\r\nexport default class View extends Backbone.View {\r\n\r\n initialize() {\r\n this.walkthruIds = [];\r\n this.subview = null;\r\n\r\n return this;\r\n }\r\n\r\n setType(type) {\r\n this.type = type;\r\n\r\n return this;\r\n }\r\n\r\n setWalkthrus(ids) {\r\n this.walkthruIds = ids;\r\n\r\n if (this.subview) {\r\n let walkthrus = this.subview.getWalkthrus ? this.subview.getWalkthrus(ids) : getWalkthrus(ids);\r\n\r\n this.subview.set(walkthrus);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n startWalkthru(walkthru) {\r\n if (window.WalkMeAPI && ((typeof window.WalkMeAPI.startWalkthruById !== 'function') || !window.WalkMeAPI.startWalkthruById(walkthru.id))) {\r\n //if regular walkthrough does not exist, do smart walkthrough flow\r\n window.WalkMeAPI.startFlowById(walkthru.id);\r\n }\r\n }\r\n\r\n createSubview() {\r\n let Type = this.type;\r\n let subview;\r\n\r\n this.subview = subview = new Type();\r\n\r\n let walkthrus = subview.getWalkthrus ? subview.getWalkthrus(this.walkthruIds) : getWalkthrus(this.walkthruIds);\r\n\r\n subview.on('start', this.startWalkthru);\r\n subview.set(walkthrus);\r\n subview.render();\r\n subview.$el.addClass('walkme');\r\n\r\n return subview;\r\n }\r\n\r\n render() {\r\n let settings = config.get('Walkme');\r\n\r\n if (settings === 'prod' || settings === 'test') {\r\n let subview = this.createSubview();\r\n\r\n this.setElement(subview.$el);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n}\r\n","import ko from 'knockout';\r\n\r\nexport default class Link {\r\n\r\n constructor() {\r\n this.walkthru = ko.observable(null);\r\n }\r\n\r\n}\r\n","import Backbone from 'backbone';\r\nimport $ from 'jquery';\r\nimport ko from 'knockout';\r\nimport ViewModel from '@bingads-webui-component-legacy/walkme/viewmodel/link';\r\nimport template from '@bingads-webui-component-legacy/walkme/template/link.pug';\r\n\r\nconst i18n = window.globalLegacyI18n.get('component/i18n/loader!component/walkme');\r\n\r\nexport default class Link extends Backbone.View {\r\n\r\n initialize() {\r\n this.viewModel = new ViewModel();\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click': this.onClick,\r\n };\r\n }\r\n\r\n set(walkthrus) {\r\n if (walkthrus && walkthrus.length === 1) {\r\n this.viewModel.walkthru({\r\n id: walkthrus[0].Id,\r\n });\r\n }\r\n return this;\r\n }\r\n\r\n onClick() {\r\n this.trigger('start', this.viewModel.walkthru());\r\n }\r\n\r\n render() {\r\n this.$link = $(template({ i18n }));\r\n this.setElement(this.$link);\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n return this;\r\n }\r\n\r\n}\r\n","import PropTypes from 'prop-types';\r\n\r\nexport const i18n = PropTypes.shape({\r\n formatDate: PropTypes.func.isRequired,\r\n formatPercent: PropTypes.func.isRequired,\r\n getCurrencySymbol: PropTypes.func.isRequired,\r\n getString: PropTypes.func.isRequired,\r\n isReady: PropTypes.func.isRequired,\r\n parseDate: PropTypes.func.isRequired,\r\n parseDecimal: PropTypes.func.isRequired,\r\n});\r\n\r\nexport const cardFooterConfigShape = PropTypes.shape({\r\n isRequired: PropTypes.bool,\r\n buttons: PropTypes.arrayOf(PropTypes.shape({\r\n text: PropTypes.string.isRequired,\r\n callback: PropTypes.func,\r\n })),\r\n});\r\n\r\nexport const cardHeaderConfigShape = PropTypes.shape({\r\n isRequired: PropTypes.bool,\r\n isLargeHeader: PropTypes.bool,\r\n renderHeaderText: PropTypes.func,\r\n actions: PropTypes.arrayOf(PropTypes.shape({\r\n text: PropTypes.string.isRequired,\r\n callback: PropTypes.func,\r\n })),\r\n i18n: i18n.isRequired,\r\n});\r\n\r\nexport const cardContentConfigShape = PropTypes.shape({\r\n styles: PropTypes.shape({\r\n root: PropTypes.shape({\r\n width: PropTypes.string,\r\n height: PropTypes.string,\r\n }),\r\n }),\r\n shimmerLineCount: PropTypes.number,\r\n onRenderShimmer: PropTypes.func,\r\n isShimmerRequired: PropTypes.bool,\r\n});\r\n","import { getTheme } from '@fluentui/react';\r\n\r\nconst { palette } = getTheme();\r\n\r\n// TODO: Change to get color from palette\r\nexport const getStyles = () => {\r\n const cardContainer = {\r\n minHeight: '100px',\r\n marginBottom: '16px',\r\n width: '520px',\r\n border: 'solid 1px lightgray',\r\n fontSize: '14px',\r\n color: '#333333',\r\n display: 'grid',\r\n gridTemplateColumns: '100%',\r\n background: palette.white,\r\n 'box-shadow': '0px 0.3px 0.9px rgba(0, 0, 0, 0.108), 0px 1.6px 3.6px rgba(0, 0, 0, 0.132)',\r\n 'border-radius': '2px',\r\n };\r\n\r\n const wideCardContainer = {\r\n width: '1056px !important',\r\n };\r\n\r\n const cardSection = {\r\n paddingLeft: '16px',\r\n paddingRight: '16px',\r\n };\r\n\r\n const headerBorder = {\r\n borderBottom: `solid 1px ${palette.neutralLight}`,\r\n };\r\n\r\n const headerContainer = {\r\n gridRow: '1',\r\n paddingTop: '12px',\r\n paddingBottom: '7px',\r\n height: '40px',\r\n };\r\n\r\n const headerContentContainer = {\r\n display: 'flex',\r\n };\r\n\r\n const dropdownContainer = {\r\n display: 'flex',\r\n };\r\n\r\n const closeButton = {\r\n color: palette.neutralSecondary,\r\n '&:hover': {\r\n color: palette.neutralSecondary,\r\n background: 'transparent',\r\n },\r\n };\r\n\r\n const contentContainer = {\r\n gridRow: '2',\r\n 'margin-top': '16px',\r\n 'margin-bottom': '8px',\r\n };\r\n\r\n const footerContainer = {\r\n gridRow: '3',\r\n 'margin-top': '8px',\r\n 'margin-bottom': '12px',\r\n };\r\n const footerContentContainer = {\r\n minHeight: '30px',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n '& a': {\r\n paddingLeft: '20px',\r\n paddingRight: '20px',\r\n fontWeight: 600,\r\n },\r\n };\r\n\r\n const footerButton = {\r\n backgroundColor: 'white',\r\n float: 'left',\r\n 'font-style': 'normal',\r\n 'font-weight': '600',\r\n 'font-size': '14px',\r\n 'line-height': '20px',\r\n };\r\n\r\n const footerLink = {\r\n textDecoration: 'underline',\r\n };\r\n\r\n const headerText = {\r\n fontWeight: '600',\r\n fontStyle: 'normal',\r\n display: 'inline-block',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n height: '100%',\r\n width: '100%',\r\n color: '#323130',\r\n };\r\n\r\n const smallHeaderText = {\r\n fontSize: '14px',\r\n 'line-height': '20px',\r\n whiteSpace: 'nowrap',\r\n };\r\n\r\n const largeHeaderText = {\r\n fontSize: '24px',\r\n };\r\n\r\n return {\r\n cardSection,\r\n headerBorder,\r\n headerContainer,\r\n headerContentContainer,\r\n headerText,\r\n smallHeaderText,\r\n largeHeaderText,\r\n dropdownContainer,\r\n closeButton,\r\n contentContainer,\r\n cardContainer,\r\n wideCardContainer,\r\n footerContainer,\r\n footerContentContainer,\r\n footerButton,\r\n footerLink,\r\n };\r\n};\r\n\r\nexport const cardStyles = {\r\n shimmerItem: { root: { marginBottom: '5px' } },\r\n};\r\n\r\n","import _ from 'underscore';\r\nimport classNames from 'classnames';\r\nimport React from 'react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { OverflowSet } from '@fluentui/react/lib/OverflowSet';\r\nimport { IconButton } from '@fluentui/react/lib/Button';\r\n\r\nimport { getStyles } from './get-styles';\r\nimport { cardHeaderConfigShape } from './config-props';\r\n\r\nconst getDropdownItems = actions => _.map(actions, ({ text, callback }) => ({\r\n key: text,\r\n name: text,\r\n onClick: callback,\r\n}));\r\n\r\nexport const CardHeader = (props) => {\r\n const {\r\n config: {\r\n renderHeaderText = () => null,\r\n isRequired,\r\n actions: headerOptions = [],\r\n onCloseTile,\r\n i18n,\r\n isLargeHeader = false,\r\n },\r\n } = props;\r\n\r\n const classes = useDefaultStyles(getStyles);\r\n const hasHeaderOptions = !_.isEmpty(headerOptions);\r\n const items = getDropdownItems(headerOptions);\r\n\r\n if (isRequired !== true) { return null; }\r\n\r\n const onRenderOverflowButton = () => {\r\n const buttonStyles = {\r\n root: {\r\n minWidth: 0,\r\n padding: '0 4px',\r\n alignSelf: 'stretch',\r\n height: 'auto',\r\n },\r\n };\r\n return (\r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n
\r\n {renderHeaderText()}\r\n
\r\n {hasHeaderOptions ? (\r\n
\r\n onRenderOverflowButton()}\r\n />\r\n
\r\n ) : null}\r\n {onCloseTile &&\r\n \r\n }\r\n
\r\n );\r\n};\r\n\r\nCardHeader.propTypes = {\r\n config: cardHeaderConfigShape,\r\n};\r\n\r\nCardHeader.defaultProps = {\r\n config: {\r\n isRequired: false,\r\n actions: [],\r\n onCloseTile: undefined,\r\n },\r\n};\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport classNames from 'classnames';\r\nimport { Link } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { Button } from '@bingads-webui-react/primitive';\r\n\r\nimport { cardFooterConfigShape } from './config-props';\r\nimport { getStyles } from './get-styles';\r\n\r\nexport const CardFooter = (props) => {\r\n const {\r\n config: {\r\n buttons = [],\r\n isRequired = false,\r\n },\r\n } = props;\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n if (!isRequired) { return null; }\r\n const hasButtons = !_.isEmpty(buttons);\r\n return (\r\n
\r\n {hasButtons ? buttons.map(btn => (\r\n btn.type === 'link' ?\r\n (\r\n \r\n {btn.text}\r\n \r\n ) :\r\n (\r\n \r\n {btn.text}\r\n \r\n )\r\n )) : null}\r\n
\r\n );\r\n};\r\n\r\nCardFooter.propTypes = {\r\n config: cardFooterConfigShape,\r\n};\r\n\r\nCardFooter.defaultProps = {\r\n config: {\r\n isRequired: false,\r\n buttons: [],\r\n },\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { Shimmer } from '@fluentui/react';\r\nimport {\r\n cardFooterConfigShape as footerConfigProp,\r\n cardHeaderConfigShape as headerConfigProp,\r\n cardContentConfigShape as contentConfigPro,\r\n} from './config-props';\r\n\r\nimport { getStyles, cardStyles } from './get-styles';\r\nimport { CardHeader } from './card-header';\r\nimport { CardFooter } from './card-footer';\r\n\r\nexport const Card = (props) => {\r\n const {\r\n config: {\r\n header: headerConfig,\r\n footer: footerConfig,\r\n content: contentConfig,\r\n cardClassName,\r\n wide = false,\r\n },\r\n isLoading,\r\n children,\r\n getCardStyles = getStyles,\r\n } = props;\r\n\r\n const classes = useDefaultStyles(getCardStyles);\r\n const { isLargeHeader = false } = headerConfig || {};\r\n\r\n const {\r\n onRenderShimmer,\r\n styles: {\r\n root = {},\r\n } = {},\r\n shimmerLineCount = 6,\r\n isShimmerRequired = false,\r\n } = contentConfig || {};\r\n\r\n const isShowingShimmer = isLoading && isShimmerRequired;\r\n\r\n const loadingItems = useMemo(() => {\r\n if (_.isFunction(onRenderShimmer)) {\r\n return onRenderShimmer();\r\n }\r\n const items = [];\r\n const shimmerWidthList = ['100%', '75%', '50%'];\r\n _.map(_.range(shimmerLineCount), (index) => {\r\n items.push();\r\n });\r\n return (\r\n
\r\n {items}\r\n
\r\n );\r\n }, [classes.contentContainer, classes.cardSection, onRenderShimmer, shimmerLineCount]);\r\n\r\n return (\r\n
\r\n \r\n {\r\n headerConfig &&\r\n \r\n \r\n \r\n }\r\n {\r\n isShowingShimmer && loadingItems\r\n }\r\n {\r\n !isShowingShimmer &&\r\n
\r\n {children}\r\n
\r\n }\r\n {\r\n footerConfig && !isShowingShimmer &&\r\n \r\n \r\n \r\n }\r\n
\r\n \r\n );\r\n};\r\n\r\nCard.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]),\r\n config: PropTypes.shape({\r\n cardClassName: PropTypes.string.isRequired,\r\n wide: PropTypes.bool,\r\n header: headerConfigProp,\r\n footer: footerConfigProp,\r\n content: contentConfigPro,\r\n }),\r\n isLoading: PropTypes.bool,\r\n};\r\n\r\nCard.defaultProps = {\r\n config: {},\r\n children: [],\r\n isLoading: false,\r\n};\r\n","export const DEFAULT_RADIUS_SIZE = 25;\r\nexport const DEFAULT_RADIUS_UNIT = 'mi';\r\nexport const MIN_LOCATION_TARGETS = 1;\r\nexport const MAX_LOCATION_TARGETS = 25;\r\nexport const LOCATION_PREVIEW_COUNT = 4;\r\n\r\nexport const targetOptions = {\r\n everywhere: 'everywhere',\r\n specific: 'specific',\r\n usCanada: 'usCanada',\r\n bundleOrDefaultMarket: 'bundle',\r\n};\r\n\r\nexport const commonStrings = {\r\n intent_target_peopleIn: _TL_('People in your targeted locations'),\r\n intent_target_searchFor: _TL_('People searching for or viewing pages about your targeted locations'),\r\n};\r\n\r\nexport const EntityActionType = {\r\n Delete: 'Delete',\r\n Add: 'Add',\r\n Update: 'Upate',\r\n};\r\n\r\nexport const IntentTargetValue = {\r\n PeopleIn: 'PeopleIn',\r\n PeopleSearchingForOrViewingPages: 'PeopleSearchingForOrViewingPages',\r\n PeopleInOrSearchingForOrViewingPages: 'PeopleInOrSearchingForOrViewingPages',\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useCallback, useContext, useMemo, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { LocationTargetsEditor, LocationTarget, getIsRadiusTarget as defaultGetIsRadiusTarget, getIsBoundaryTarget as defaultGetIsBoundaryTarget, TARGETING_TYPE } from '@bingads-webui-react/bing-maps';\r\n\r\nimport { MAX_LOCATION_TARGETS } from './constants';\r\n\r\nexport const LocationTargetEditor = (props) => {\r\n const {\r\n locationTargets,\r\n negativeLocationTargets,\r\n updateLocationTarget,\r\n updateNegativeLocationTargets,\r\n defaultRadiusSize,\r\n defaultRadiusUnit,\r\n isPreview,\r\n showSearchTypeOptions,\r\n } = props;\r\n const mapRef = useRef();\r\n const i18n = useContext(I18nContext);\r\n const locationTargetsEditorStrings = useMemo(() => ({\r\n noResultsMessage: i18n.getString(_TL_('Location does not exist, is not in the US, or cannot be targeted. Enter a new location.')),\r\n description: i18n.getString(_TL_('For example, the US, a state, coordinates in the US, or a ZIP code.')),\r\n }), [i18n]);\r\n\r\n // TO DO Add real error handling logic\r\n const handleLocationTargetsGetErrorMessage = useCallback((targets, isNegativeLocationTargets) => {\r\n if (_.size(targets) >= MAX_LOCATION_TARGETS) {\r\n if (isNegativeLocationTargets) {\r\n return i18n.getString(_TL_('You have reached the maximum of {{MAX_LOCATION_TARGETS}} excluded locations for this campaign. Remove a location to exclude another one.'), { MAX_LOCATION_TARGETS });\r\n }\r\n return i18n.getString(_TL_('You have reached the maximum of {{MAX_LOCATION_TARGETS}} targeted locations for this campaign. Remove a location to target another one.'), { MAX_LOCATION_TARGETS });\r\n }\r\n\r\n if (_.size(targets) <= 0 && !isNegativeLocationTargets) {\r\n return i18n.getString(_TL_('You must include at least 1 targeted location.'));\r\n }\r\n\r\n return null;\r\n }, [i18n]);\r\n\r\n // TO DO Add real error handling logic\r\n const handleSingleLocationTargetGetErrorMessage = useCallback(() => null, []);\r\n\r\n const getIsRadiusTarget = useCallback((location, targetingType) => {\r\n if (props.getIsRadiusTarget) {\r\n return props.getIsRadiusTarget;\r\n }\r\n if (targetingType) {\r\n return defaultGetIsRadiusTarget(location, targetingType) &&\r\n targetingType === TARGETING_TYPE.Included;\r\n }\r\n return defaultGetIsRadiusTarget(location, targetingType);\r\n }, []);\r\n\r\n const getIsBoundaryTarget = useCallback((location, targetingType) => {\r\n if (props.getIsBoundaryTarget) {\r\n return props.getIsBoundaryTarget;\r\n }\r\n if (targetingType) {\r\n return defaultGetIsBoundaryTarget(location, targetingType) ||\r\n targetingType === TARGETING_TYPE.Excluded;\r\n }\r\n return defaultGetIsBoundaryTarget(location, targetingType);\r\n }, []);\r\n\r\n return (\r\n
\r\n {(locationTargets || negativeLocationTargets) &&\r\n \r\n }\r\n
\r\n );\r\n};\r\n\r\nLocationTargetEditor.propTypes = {\r\n classes: PropTypes.shape({ locationTargetsContainer: PropTypes.string }).isRequired,\r\n defaultRadiusSize: PropTypes.number.isRequired,\r\n defaultRadiusUnit: PropTypes.oneOf(['mi', 'km']).isRequired,\r\n locationTargets: PropTypes.arrayOf(PropTypes.instanceOf(LocationTarget)),\r\n negativeLocationTargets: PropTypes.arrayOf(PropTypes.instanceOf(LocationTarget)),\r\n isPreview: PropTypes.bool,\r\n updateLocationTarget: PropTypes.func,\r\n updateNegativeLocationTargets: PropTypes.func,\r\n showSearchTypeOptions: PropTypes.bool,\r\n};\r\n\r\nLocationTargetEditor.defaultProps = {\r\n isPreview: true,\r\n locationTargets: [],\r\n negativeLocationTargets: [],\r\n updateLocationTarget: _.noop,\r\n updateNegativeLocationTargets: _.noop,\r\n showSearchTypeOptions: true,\r\n};\r\n","import _ from 'underscore';\r\nimport { compareLocationTargetArrays } from '@bingads-webui-react/bing-maps';\r\n\r\nexport const getLocationsToAdd = (locations, criterions) => {\r\n const criterionIds = _.pluck(criterions, 'Id');\r\n return _.filter(locations, location => !_.contains(criterionIds, location.LocationId));\r\n};\r\n\r\nexport const getLocationsToDelete = (locations, initialLocations) => {\r\n const currentIds = _.pluck(locations, 'LocationId');\r\n return _.filter(initialLocations, location => !_.contains(currentIds, location.LocationId));\r\n};\r\n\r\nexport const getIntentCriterion = (criterions) => {\r\n const intentTargets = _.filter(criterions, criterion => criterion.Criterion.Type === 'LocationIntentOption');\r\n if (intentTargets && intentTargets.length > 0) {\r\n const [intentTarget] = intentTargets;\r\n return intentTarget;\r\n }\r\n return null;\r\n};\r\n\r\nexport const getLocationCriterion = (data) => {\r\n if (data) {\r\n return _.filter(data, criterion => criterion.Criterion.Type !== 'LocationIntentOption');\r\n }\r\n return [];\r\n};\r\n\r\nexport const getLocationsToSave = (initialTargets, targets) => {\r\n const diff = compareLocationTargetArrays(initialTargets, targets);\r\n const locationsToAdd = [];\r\n const locationsToDelete = [];\r\n\r\n _.each(diff.Deleted, (deletedTarget) => {\r\n locationsToDelete.push(deletedTarget);\r\n });\r\n\r\n _.each(diff.Added, (addedTarget) => {\r\n locationsToAdd.push(addedTarget);\r\n });\r\n\r\n // NOTE: Backend does not support updating an existing location target's radius\r\n // Updates will be processed as a delete and then an add\r\n _.each(diff.Updated, (updatedTarget) => {\r\n locationsToAdd.push(updatedTarget);\r\n locationsToDelete.push(updatedTarget);\r\n });\r\n\r\n return {\r\n locationsToAdd,\r\n locationsToDelete,\r\n };\r\n};\r\n","export default {\r\n everywhere: 'everywhere',\r\n specific: 'specific',\r\n usCanada: 'usCanada',\r\n};\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport _ from 'underscore';\r\nimport React, { useContext, useEffect, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { Text } from '@fluentui/react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { RadioGroup } from '@bingads-webui-react/primitive';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { LocationTargetEditor } from './location-target-editor';\r\nimport { withBingMapsContext } from './with-bing-maps-context-provider';\r\nimport { getLocationCriterion } from './utils';\r\nimport { getEditTargetingStyles } from './styles/edit-targeting-style';\r\nimport targetOptions from './target-options';\r\n\r\nexport const LocationTargetEditorWithBingMapsContext =\r\n withBingMapsContext(LocationTargetEditor);\r\n\r\nexport function EditTargetingLocation(props) {\r\n const {\r\n currentTargets,\r\n currentNegativeTargets,\r\n setCurrentTargets,\r\n setCurrentNegativeTargets,\r\n criterions,\r\n selectedLocationOption,\r\n setSelectedLocationOption,\r\n title,\r\n showTitle,\r\n showSelectorOnEmpty,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getEditTargetingStyles);\r\n\r\n const locationTargetOptions = [\r\n targetOptions.everywhere,\r\n targetOptions.specific,\r\n ];\r\n\r\n const renderItem = (item) => {\r\n switch (item) {\r\n case targetOptions.everywhere:\r\n return i18n.getString(_TL_('All available countries/regions'));\r\n default:\r\n return i18n.getString(_TL_('Let me choose specific locations'));\r\n }\r\n };\r\n\r\n const onChangeLocationOption = (item) => {\r\n setSelectedLocationOption(item);\r\n };\r\n\r\n let targetOption = null;\r\n const locationCriterions = useMemo(() => getLocationCriterion(criterions), [criterions]);\r\n\r\n if (locationCriterions && locationCriterions.length > 0) {\r\n targetOption = targetOptions.specific;\r\n } else {\r\n targetOption = targetOptions.everywhere;\r\n }\r\n\r\n useEffect(() => {\r\n if (!showSelectorOnEmpty) {\r\n setSelectedLocationOption(targetOption);\r\n }\r\n }, [targetOption, setSelectedLocationOption]);\r\n\r\n const titleText = useMemo(() => {\r\n if (title) {\r\n return ({title});\r\n }\r\n\r\n if (showTitle) {\r\n return ({i18n.getString(_TL_('Location'))});\r\n }\r\n\r\n return null;\r\n }, [title, showTitle, i18n]);\r\n\r\n return (\r\n
\r\n
\r\n {titleText}\r\n
\r\n
\r\n
\r\n {i18n.getString(_TL_('Where do you want your ads to appear?'))}\r\n
\r\n \r\n
\r\n {selectedLocationOption === targetOptions.specific &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n );\r\n}\r\n\r\nEditTargetingLocation.propTypes = {\r\n currentTargets: PropTypes.arrayOf(PropTypes.shape({})),\r\n currentNegativeTargets: PropTypes.arrayOf(PropTypes.shape({})),\r\n setCurrentTargets: PropTypes.func.isRequired,\r\n setCurrentNegativeTargets: PropTypes.func.isRequired,\r\n criterions: PropTypes.arrayOf(PropTypes.shape({})),\r\n selectedLocationOption: PropTypes.string.isRequired,\r\n setSelectedLocationOption: PropTypes.func.isRequired,\r\n showSelectorOnEmpty: PropTypes.bool,\r\n title: PropTypes.string,\r\n showTitle: PropTypes.bool,\r\n};\r\n\r\nEditTargetingLocation.defaultProps = {\r\n currentTargets: [],\r\n currentNegativeTargets: [],\r\n criterions: [],\r\n title: null,\r\n showTitle: true,\r\n showSelectorOnEmpty: false,\r\n};\r\n","import React, { useContext } from 'react';\r\nimport hoistNonReactStatics from 'hoist-non-react-statics';\r\n\r\nimport { getDisplayName } from '@bingads-webui-react/hoc-utils';\r\nimport { BingMapsContextProvider } from '@bingads-webui-react/bing-maps';\r\nimport { ServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { DefaultScopeProvider } from '@bingads-webui-react/scope-service';\r\n\r\n// TODO: Send this in serverContext\r\nconst BING_MAPS_API_KEY = 'AgRuCtepgsuuCYV9J6S6w1j8ay2JJwnu8f5EPgv4kkoJoIuka8yui-NzKrvlESTQ';\r\n\r\nexport function withBingMapsContext(WrappedComponent) {\r\n const HOC = (props) => {\r\n const serverContext = useContext(ServerContext);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n HOC.displayName = `withBingMapsContext(${getDisplayName(WrappedComponent)})`;\r\n\r\n hoistNonReactStatics(HOC, WrappedComponent);\r\n\r\n return HOC;\r\n}\r\n","export const getIntentTargetingStyles = () => ({\r\n intentTarget: {\r\n marginTop: 20,\r\n },\r\n intentTargetOptions: {\r\n marginTop: 6,\r\n },\r\n title: {\r\n '& span': {\r\n fontWeight: 600,\r\n },\r\n },\r\n});\r\n","import React, { useContext, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { Text, Stack, Checkbox } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { ErrorMessages } from '@bingads-webui-react/validation';\r\n\r\nimport { commonStrings } from './constants';\r\nimport { getIntentTargetingStyles } from './styles/intent-targeting-style';\r\n\r\nconst stackTokens = { childrenGap: 5 };\r\n\r\nexport function EditTargetingIntent(props) {\r\n const {\r\n peopleInLocation,\r\n peopleSearchingForLocation,\r\n setPeopleInLocation,\r\n setPeopleSearchingForLocation,\r\n title,\r\n showTitle,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getIntentTargetingStyles);\r\n\r\n const titleText = useMemo(() => {\r\n if (title) {\r\n return ({title});\r\n }\r\n\r\n if (showTitle) {\r\n return ({i18n.getString(_TL_('Who should see your ads'))});\r\n }\r\n\r\n return null;\r\n }, [title, showTitle, i18n]);\r\n\r\n return (\r\n
\r\n
\r\n {titleText}\r\n
\r\n
\r\n \r\n {\r\n setPeopleInLocation(isChecked);\r\n }}\r\n />\r\n {\r\n setPeopleSearchingForLocation(isChecked);\r\n }}\r\n />\r\n { !peopleInLocation && !peopleSearchingForLocation &&\r\n }\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nEditTargetingIntent.propTypes = {\r\n peopleInLocation: PropTypes.bool.isRequired,\r\n peopleSearchingForLocation: PropTypes.bool.isRequired,\r\n setPeopleInLocation: PropTypes.func.isRequired,\r\n setPeopleSearchingForLocation: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n showTitle: PropTypes.bool,\r\n};\r\n\r\nEditTargetingIntent.defaultProps = {\r\n title: null,\r\n showTitle: true,\r\n};\r\n","import { getTheme } from '@fluentui/react';\r\n\r\nexport const getMapOverrideStyles = () => ({\r\n '& .TermsLinkContainer a:focus, .bm_LogoContainer a:focus': {\r\n boxShadow: 'rgb(96 94 92) 0px 0px 0px 1px inset',\r\n },\r\n});\r\nconst { palette } = getTheme();\r\n\r\nexport const getEditTargetingStyles = () => ({\r\n EditTargeting: {\r\n '& .bing-maps-location-targets-editor': {\r\n marginLeft: 25,\r\n },\r\n '& .bing-maps-location-targets-search-grid': {\r\n width: 500,\r\n maxHeight: 'none',\r\n },\r\n '& .bing-maps-location-targets-editor-map': {\r\n width: 360,\r\n height: 280,\r\n },\r\n '& .bing-maps-location-targets-search-grid-and-map': {\r\n width: 950,\r\n },\r\n '& .edit-action': {\r\n marginTop: 20,\r\n },\r\n '& .select-language-label-container': {\r\n marginTop: 5,\r\n },\r\n '& .multi-language-selector-container': {\r\n marginTop: 5,\r\n },\r\n '& .dropdown-menu > div > li > a:focus:after': {\r\n display: 'none',\r\n },\r\n '& .dropdown-menu > div > li > a:focus': {\r\n outline: `1px solid ${palette.neutralSecondary}`,\r\n },\r\n '& .bing-maps-search-box-dropdown': {\r\n width: 400,\r\n },\r\n ...getMapOverrideStyles(),\r\n },\r\n locationTargetOptions: {\r\n '& label': {\r\n fontWeight: 400,\r\n marginTop: 5,\r\n },\r\n marginTop: 5,\r\n },\r\n intentTarget: {\r\n marginTop: 20,\r\n },\r\n intentTargetOptions: {\r\n marginTop: 6,\r\n },\r\n title: {\r\n '& span': {\r\n fontWeight: 600,\r\n },\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport React, { createContext, useCallback, useMemo, useRef, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const SidePanelContext = createContext({\r\n containerId: null,\r\n onPanelOpenStateChange: _.noop,\r\n setPanelContainerInfo: _.noop,\r\n});\r\n\r\nexport const SidePanelContextProvider = ({ children }) => {\r\n const { current: statics } = useRef({\r\n openedPanels: {},\r\n hasOpenPanel: false,\r\n showPanelContainer: _.noop,\r\n });\r\n const [containerId, setContainerId] = useState(null);\r\n\r\n const onPanelOpenStateChange = useCallback((panelId, isOpen) => {\r\n let hasOpenPanel = true;\r\n if (isOpen) {\r\n statics.openedPanels[panelId] = true;\r\n } else {\r\n delete statics.openedPanels[panelId];\r\n hasOpenPanel = !_.isEmpty(statics.openedPanels);\r\n }\r\n\r\n if (hasOpenPanel !== statics.hasOpenPanel) {\r\n statics.hasOpenPanel = hasOpenPanel;\r\n statics.showPanelContainer(hasOpenPanel);\r\n }\r\n }, [statics]);\r\n\r\n const setPanelContainerInfo = useCallback(({ id, showPanelContainer }) => {\r\n statics.showPanelContainer = showPanelContainer || _.noop;\r\n setContainerId(id);\r\n }, [statics]);\r\n\r\n const value = useMemo(() => ({\r\n containerId,\r\n onPanelOpenStateChange,\r\n setPanelContainerInfo,\r\n }), [\r\n containerId,\r\n onPanelOpenStateChange,\r\n setPanelContainerInfo,\r\n ]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nSidePanelContextProvider.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext, useEffect, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Panel } from '@fluentui/react';\r\n\r\nimport { SidePanelContext } from './side-panel-context';\r\n\r\nexport function SidePanel(props) {\r\n const { containerId, onPanelOpenStateChange } = useContext(SidePanelContext);\r\n\r\n const newProps = {\r\n onOuterClick: _.noop,\r\n ...props,\r\n layerProps: {\r\n ...props.layerProps,\r\n hostId: containerId,\r\n },\r\n };\r\n\r\n const panelId = useMemo(() => _.uniqueId('side-panel-'), []);\r\n const { isOpen } = props;\r\n\r\n useEffect(() => {\r\n onPanelOpenStateChange(panelId, isOpen);\r\n\r\n return () => onPanelOpenStateChange(panelId, false);\r\n }, [isOpen, onPanelOpenStateChange, panelId]);\r\n\r\n return ();\r\n}\r\n\r\nSidePanel.propTypes = {\r\n isOpen: PropTypes.bool.isRequired,\r\n layerProps: PropTypes.shape({}),\r\n};\r\n\r\nSidePanel.defaultProps = {\r\n layerProps: null,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext, useEffect, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { SidePanelContext } from './side-panel-context';\r\n\r\nexport const SidePanelContainer = (props) => {\r\n const { setPanelContainerInfo } = useContext(SidePanelContext);\r\n\r\n const {\r\n showPanelContainer,\r\n id: idInProps,\r\n ...divProps\r\n } = props;\r\n\r\n const id = useMemo(() => idInProps || _.uniqueId('side-panel-container-'), [idInProps]);\r\n\r\n useEffect(() => {\r\n setPanelContainerInfo({ id, showPanelContainer });\r\n\r\n return () => setPanelContainerInfo({});\r\n }, [showPanelContainer, setPanelContainerInfo, id]);\r\n\r\n return (\r\n
\r\n );\r\n};\r\n\r\nSidePanelContainer.propTypes = {\r\n showPanelContainer: PropTypes.func,\r\n id: PropTypes.string,\r\n};\r\n\r\nSidePanelContainer.defaultProps = {\r\n showPanelContainer: _.noop,\r\n id: null,\r\n};\r\n","import step1 from './media/step1.svg';\r\nimport step2 from './media/step2.svg';\r\nimport step3 from './media/step3.svg';\r\n\r\nexport const getClarityGraphStyle = () => ({\r\n ClarityInstructionGraph: {\r\n width: '60%',\r\n display: 'grid',\r\n gridTemplateColumns: '1fr',\r\n gridGap: 20,\r\n\r\n '& .clarity-graph-container': {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(3, 1fr)',\r\n gridGap: 20,\r\n\r\n '& .clarity-graph-item': {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n textAlign: 'center',\r\n backgroundColor: '#F8F8F8',\r\n padding: '20px',\r\n },\r\n },\r\n '& .clarity-graph-step-1': {\r\n height: 130,\r\n width: 270,\r\n backgroundImage: `url(\"${step1}\")`,\r\n backgroundSize: 'contain',\r\n backgroundRepeat: 'no-repeat',\r\n },\r\n '& .clarity-graph-step-2': {\r\n height: 130,\r\n width: 270,\r\n backgroundImage: `url(\"${step2}\")`,\r\n backgroundSize: 'contain',\r\n backgroundRepeat: 'no-repeat',\r\n },\r\n '& .clarity-graph-step-3': {\r\n height: 130,\r\n width: 270,\r\n backgroundImage: `url(\"${step3}\")`,\r\n backgroundSize: 'contain',\r\n backgroundRepeat: 'no-repeat',\r\n },\r\n },\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { getClarityGraphStyle } from './styles';\r\n\r\nconst clarityInstructionText = {\r\n TopText: _TL_('Microsoft Clarity brings advertisers actionable user behavioral insights to optimize their ad campaigns. See our {{a}}Clarity-UET user guide{{/a}} for more details.'),\r\n Step1Title: _TL_('Code-free conversion setup'),\r\n Step1Body: _TL_('Set up your UET event goals with no code'),\r\n Step2Title: _TL_('Rich behavioral dashboard'),\r\n Step2Body: _TL_('View friction signals, heatmaps, and recordings'),\r\n Step3Title: _TL_('Goal recommendations'),\r\n Step3Body: _TL_('See customized, auto-detected event goals'),\r\n Paragraph: _TL_('Microsoft improves its products and advertising by using Clarity to see how users interact with your website. By enabling Clarity, you agree to our {{aTerms}}Terms of Use{{/aTerms}} to get informed consent from users, and that Clarity and Microsoft can collect and use Clarity data for advertising and analytics purposes. View our {{aPrivacy}}Privacy Statement{{/aPrivacy}} for details.'),\r\n};\r\n\r\nconst links = {\r\n ClarityUserGuide: 'https://learn.microsoft.com/en-us/clarity/third-party-integrations/uet-clarity-user-guide ',\r\n TermsOfUse: 'https://clarity.microsoft.com/terms',\r\n PrivacyStatement: 'https://privacy.microsoft.com/en-us/privacystatement',\r\n};\r\n\r\nfunction ClarityGraphInstruction(props) {\r\n const { i18n, children } = props;\r\n const styleClass = useDefaultStyles(getClarityGraphStyle, {});\r\n\r\n return (\r\n
\r\n
\r\n ({text}),\r\n }}\r\n template={i18n.getString(clarityInstructionText.TopText)}\r\n />\r\n
\r\n {children}\r\n
\r\n
\r\n
\r\n
{i18n.getString(clarityInstructionText.Step1Title)}
\r\n
{i18n.getString(clarityInstructionText.Step1Body)}
\r\n
\r\n
\r\n
\r\n
{i18n.getString(clarityInstructionText.Step2Title)}
\r\n
{i18n.getString(clarityInstructionText.Step2Body)}
\r\n
\r\n
\r\n
\r\n
{i18n.getString(clarityInstructionText.Step3Title)}
\r\n
{i18n.getString(clarityInstructionText.Step3Body)}
\r\n
\r\n
\r\n
\r\n ({text}),\r\n aPrivacy: text => ({text}),\r\n }}\r\n template={i18n.getString(clarityInstructionText.Paragraph)}\r\n />\r\n
\r\n
\r\n );\r\n}\r\n\r\nClarityGraphInstruction.defaultProps = {\r\n children: null,\r\n};\r\n\r\nClarityGraphInstruction.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n children: PropTypes.node,\r\n};\r\n\r\nexport default ClarityGraphInstruction;\r\n","// GMC refers to Google Merchant Center\r\nconst keyNameOfGMCEmailAddressInCookie = 'OAuth2_GMCLoginEmailAddress';\r\n\r\n// TODO: revisit cookie logic when supporting multi-account import.\r\n// This is because we currently store and retrieve GMC cookies by AID,\r\n// but multi-account will not have AID. It will only have CID and UID.\r\nexport const setGMCEmailAddressInCookie = ({ repository, gmcEmailAddress }) => {\r\n repository.addSubCookieToImportCookie({\r\n [keyNameOfGMCEmailAddressInCookie]: gmcEmailAddress,\r\n });\r\n};\r\n\r\nexport const getGMCEmailAddressFromCookie = ({ repository }) =>\r\n repository.getValueInSubImportCookieByAccountId(keyNameOfGMCEmailAddressInCookie)[0];\r\n\r\nexport const logoutFromGMC = ({ repository }) =>\r\n repository.removeImportCookieValue(keyNameOfGMCEmailAddressInCookie);\r\n","import React from 'react';\r\nimport {\r\n gmcEmailAddressPropType, i18nPropType, signOutPropType\r\n} from '../shared/prop-types';\r\n\r\nexport class GMCSignedInSection extends React.PureComponent {\r\n render() {\r\n const {\r\n gmcEmailAddress, i18n, signOut,\r\n } = this.props;\r\n\r\n return (\r\n

\r\n {i18n.getString(_TL_('You are signed in to Google Merchant Center with this Google account: '))}\r\n {gmcEmailAddress}\r\n {/* Using a normal button because it aligns with our styling for Sign Out buttons */}\r\n \r\n {i18n.getString(_TL_('Sign out'))}\r\n \r\n

\r\n );\r\n }\r\n}\r\n\r\nGMCSignedInSection.propTypes = {\r\n gmcEmailAddress: gmcEmailAddressPropType.isRequired,\r\n i18n: i18nPropType.isRequired,\r\n signOut: signOutPropType.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { DefaultButton } from '@bingads-webui-react/fabric-control';\r\nimport { Scenarios } from '@bingads-webui-campaign-react/gmc-to-mmc-mapping-grid-shared';\r\nimport { i18nPropType, scenarioPropType, signInPropType } from '../shared/prop-types';\r\n\r\nexport class GMCSignedOutSection extends React.PureComponent {\r\n render() {\r\n const {\r\n i18n, scenario, signIn, disableGMCSignIn, onGMCSignInRedirectLinkClick,\r\n } = this.props;\r\n\r\n if (disableGMCSignIn === true) {\r\n return (\r\n
\r\n

\r\n {i18n.getString(_TL_('Google Merchant Center sign-in is unavailable in this application. You can still access your Google Merchant Center account information using our '))}\r\n {\r\n \r\n {i18n.getString(_TL_('online platform'))}\r\n }\r\n {i18n.getString(_TL_(' while we work on adding Google sign-in support.'))}\r\n

\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n

{\r\n scenario === Scenarios.NO_MMC_STORES ?\r\n i18n.getString(_TL_('No Microsoft Merchant Center stores found. Please sign in to Google Merchant Center so we can appropriately set up your stores and campaigns.')) :\r\n i18n.getString(_TL_('Please sign in to Google Merchant Center so we can appropriately set up your stores and campaigns.'))\r\n }\r\n

\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nGMCSignedOutSection.propTypes = {\r\n i18n: i18nPropType.isRequired,\r\n scenario: scenarioPropType.isRequired,\r\n signIn: signInPropType.isRequired,\r\n disableGMCSignIn: PropTypes.bool,\r\n onGMCSignInRedirectLinkClick: PropTypes.func,\r\n};\r\n\r\nGMCSignedOutSection.defaultProps = {\r\n disableGMCSignIn: undefined,\r\n onGMCSignInRedirectLinkClick: undefined,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { LearnMoreLink } from '@bingads-webui-campaign-react/help';\r\nimport { GMCSignedInSection } from './gmc-signed-in-section';\r\nimport { GMCSignedOutSection } from './gmc-signed-out-section';\r\nimport {\r\n gmcEmailAddressPropType, i18nPropType, isSignedInPropType,\r\n scenarioPropType, signInPropType, signOutPropType,\r\n} from '../shared/prop-types';\r\n\r\nexport class GMCSignInStatusSection extends React.PureComponent {\r\n render() {\r\n const {\r\n gmcEmailAddress, i18n, isSignedIn, loginErrorText, mappingsCount,\r\n scenario, signIn, signOut, learnMoreLinkCallback, disableGMCSignIn,\r\n onGMCSignInRedirectLinkClick, GmcHeaderMoreInfos,\r\n } = this.props;\r\n\r\n const descriptionText1 = mappingsCount === 1 ?\r\n i18n.getString(_TL_('Your Google shopping campaigns are associated with this Google Merchant ID. We will suggest a Microsoft Merchant Center store based on your Google Merchant Center store.')) :\r\n i18n.getString(_TL_('Your Google shopping campaigns are associated with these Google Merchant IDs. We will suggest Microsoft Merchant Center stores based on your Google Merchant Center stores.'));\r\n\r\n return (\r\n
\r\n

\r\n \r\n

\r\n {GmcHeaderMoreInfos}\r\n {isSignedIn && _.isNull(loginErrorText) ?\r\n :\r\n \r\n }\r\n {!_.isNull(loginErrorText) ?\r\n

{loginErrorText}

:\r\n null\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nGMCSignInStatusSection.propTypes = {\r\n gmcEmailAddress: gmcEmailAddressPropType.isRequired,\r\n i18n: i18nPropType.isRequired,\r\n isSignedIn: isSignedInPropType.isRequired,\r\n loginErrorText: PropTypes.string,\r\n mappingsCount: PropTypes.number.isRequired,\r\n scenario: scenarioPropType.isRequired,\r\n signIn: signInPropType.isRequired,\r\n signOut: signOutPropType.isRequired,\r\n learnMoreLinkCallback: PropTypes.func,\r\n disableGMCSignIn: PropTypes.bool,\r\n onGMCSignInRedirectLinkClick: PropTypes.func,\r\n GmcHeaderMoreInfos: PropTypes.node,\r\n};\r\n\r\nGMCSignInStatusSection.defaultProps = {\r\n loginErrorText: null,\r\n learnMoreLinkCallback: undefined,\r\n disableGMCSignIn: undefined,\r\n onGMCSignInRedirectLinkClick: undefined,\r\n GmcHeaderMoreInfos: undefined,\r\n};\r\n","import React from 'react';\r\nimport { i18nPropType } from '../shared/prop-types';\r\n\r\nexport function MultipleMatchingStoresDescription({ i18n }) {\r\n return (\r\n
\r\n \r\n {i18n.getString(_TL_('Multiple matching stores found'))}\r\n
\r\n );\r\n}\r\n\r\nMultipleMatchingStoresDescription.propTypes = {\r\n i18n: i18nPropType.isRequired,\r\n};\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { areThereMultipleDomainMatchingMMCStores } from '@bingads-webui-campaign-react/gmc-to-mmc-mapping-grid-shared';\r\n\r\nimport { i18nPropType, SuggestedMMCStorePropType } from '../shared/prop-types';\r\nimport { MultipleMatchingStoresDescription } from './multiple-matching-stores-description';\r\n\r\n// Inspired by the dropdown from @bingads-webui-react/hoc-with-dropdown-menu.\r\nexport function DropdownButton({\r\n ariaLabel, i18n, text, onClick, SuggestedMMCStore,\r\n}) {\r\n return (\r\n \r\n \r\n {text}\r\n
\r\n \r\n { areThereMultipleDomainMatchingMMCStores(SuggestedMMCStore) ?\r\n :\r\n null\r\n }\r\n \r\n );\r\n}\r\n\r\nDropdownButton.propTypes = {\r\n ariaLabel: PropTypes.string.isRequired,\r\n i18n: i18nPropType.isRequired,\r\n text: PropTypes.string.isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n SuggestedMMCStore: SuggestedMMCStorePropType.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n// TODO: refactor to use fabric-with-signal\r\nimport { DirectionalHint, TooltipHost, TooltipOverflowMode } from '@bingads-webui-react/fabric-control';\r\n\r\nconst tooltipId = 'read-only-cell-tooltip';\r\nconst overflowTextLength = 52;\r\n\r\nexport function ReadOnlyCell({ ariaLabel, text, tooltipText }) {\r\n return (\r\n
\r\n );\r\n}\r\n\r\nCampaignCreationMethodItem.propTypes = {\r\n i18n: PropTypes.shape({ getString: PropTypes.func.isRequired }).isRequired,\r\n itemIndex: PropTypes.number.isRequired,\r\n onMethodItemClick: PropTypes.func.isRequired,\r\n\r\n method: PropTypes.string.isRequired,\r\n imageSrc: PropTypes.string.isRequired,\r\n content: PropTypes.string.isRequired,\r\n alt: PropTypes.string.isRequired,\r\n label: PropTypes.string.isRequired,\r\n\r\n shouldForceContentInTwoLines: PropTypes.bool,\r\n isVertical: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n disableText: PropTypes.string,\r\n selected: PropTypes.bool,\r\n};\r\n\r\nCampaignCreationMethodItem.defaultProps = {\r\n shouldForceContentInTwoLines: false,\r\n isVertical: false,\r\n disabled: false,\r\n disableText: '',\r\n selected: false,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useCallback, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Stack } from '@fluentui/react';\r\n\r\nimport { getCampaignCreationMethod, CampaignCreationMethod } from './components/campaign-creation-method-constants';\r\nimport { CampaignCreationMethodSelectionStyles } from './styles/campaign-creation-method-item-styles';\r\nimport { CampaignCreationMethodItem } from './components/campaign-creation-method-item';\r\n\r\nexport function CampaignCreationMethodSelection(props) {\r\n const {\r\n i18n,\r\n\r\n onClickCreateNewCampaign,\r\n onClickGoogleImport,\r\n onClickFacebookImport,\r\n\r\n isVertical,\r\n disableImports,\r\n isRebranding,\r\n isHideImports,\r\n\r\n selectedItem,\r\n hiddenMethod,\r\n } = props;\r\n\r\n const campaignCreationMethods = useMemo(\r\n () => getCampaignCreationMethod(disableImports, isVertical, isRebranding, isHideImports).filter(item => hiddenMethod.indexOf(item.method) === -1),\r\n [disableImports, isVertical, isRebranding, isHideImports, hiddenMethod]\r\n );\r\n const onMethodItemClick = useCallback((selection) => {\r\n if (selection === CampaignCreationMethod.GOOGLE_IMPORT) {\r\n onClickGoogleImport();\r\n } else if (selection === CampaignCreationMethod.FACEBOOK_IMPORT) {\r\n onClickFacebookImport();\r\n } else {\r\n onClickCreateNewCampaign();\r\n }\r\n }, [onClickCreateNewCampaign, onClickFacebookImport, onClickGoogleImport]);\r\n\r\n const renderSelectionItem = useMemo(() => _.map(campaignCreationMethods, (item, itemIndex) => (\r\n \r\n )), [campaignCreationMethods, i18n, isVertical, onMethodItemClick, selectedItem]);\r\n\r\n return (\r\n
\r\n \r\n {renderSelectionItem}\r\n \r\n
\r\n );\r\n}\r\n\r\nCampaignCreationMethodSelection.propTypes = {\r\n i18n: PropTypes.shape({ getString: PropTypes.func.isRequired }),\r\n\r\n onClickCreateNewCampaign: PropTypes.func.isRequired,\r\n onClickGoogleImport: PropTypes.func.isRequired,\r\n onClickFacebookImport: PropTypes.func.isRequired,\r\n\r\n isVertical: PropTypes.bool,\r\n disableImports: PropTypes.bool,\r\n isRebranding: PropTypes.bool,\r\n isHideImports: PropTypes.bool,\r\n\r\n selectedItem: PropTypes.string,\r\n hiddenMethod: PropTypes.arrayOf(PropTypes.string),\r\n};\r\n\r\nCampaignCreationMethodSelection.defaultProps = {\r\n i18n: { getString: value => value },\r\n isVertical: false,\r\n disableImports: false,\r\n isRebranding: false,\r\n isHideImports: false,\r\n selectedItem: '',\r\n hiddenMethod: [],\r\n};\r\n","export const getStyles = () => ({\r\n error: { color: '#a80000', marginTop: '8px' },\r\n});\r\n\r\nexport const getTileHeaderStyles = () => ({\r\n tileHeader: {\r\n display: 'flex',\r\n flexFlow: 'column',\r\n alignItems: 'center',\r\n width: '530px',\r\n },\r\n headerTitle: {\r\n textAlign: 'center',\r\n marginTop: '4px',\r\n marginBottom: '8px',\r\n },\r\n // size s classes\r\n 'tileHeader-s': { width: '283px' },\r\n 'headerTitle-s': { fontSize: '18px' },\r\n\r\n // size m classes\r\n 'tileHeader-m': { width: '382px' },\r\n\r\n // size l classes\r\n 'tileHeader-l': { width: '552px' },\r\n});\r\n\r\nexport const getTileStyles = (_, { palette = {} }) => ({\r\n tile: {\r\n width: '700px',\r\n display: 'flex',\r\n flexFlow: 'column',\r\n alignItems: 'center',\r\n padding: '30px 0',\r\n background: palette.white,\r\n boxShadow: '0px 0.3px 0.9px rgba(0, 0, 0, 0.1), 0px 1.6px 3.6px rgba(0, 0, 0, 0.13)',\r\n borderRadius: '2px',\r\n },\r\n navigationButtons: {\r\n marginTop: '24px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n // size s classes\r\n 'tile-s': { width: '321px' },\r\n\r\n // size m classes\r\n 'tile-m': { width: '424px' },\r\n\r\n // size l classes\r\n 'tile-l': { width: '618px' },\r\n});\r\n\r\nexport const tileStyles = {\r\n image: { root: { marginBottom: '8px', height: 45 } },\r\n back: { root: { marginRight: '28px', color: '#1375DC' } },\r\n};\r\n","import React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { Image, Text } from '@fluentui/react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport goalWebsiteImg from '../media/advertising-icon.svg';\r\nimport { getTileHeaderStyles, tileStyles } from './styles';\r\n\r\nexport function TileHeader(props) {\r\n const {\r\n id,\r\n title,\r\n subtitle,\r\n displayMode,\r\n hideIcon,\r\n } = props;\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getTileHeaderStyles);\r\n\r\n return (\r\n
\r\n { !hideIcon &&\r\n \r\n }\r\n \r\n {title}\r\n \r\n {subtitle}\r\n
\r\n );\r\n}\r\n\r\nTileHeader.propTypes = {\r\n id: PropTypes.string,\r\n title: PropTypes.string.isRequired,\r\n subtitle: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),\r\n displayMode: PropTypes.string,\r\n hideIcon: PropTypes.bool,\r\n};\r\n\r\nTileHeader.defaultProps = {\r\n id: '',\r\n subtitle: null,\r\n displayMode: '',\r\n hideIcon: false,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { PrimaryButton, ActionButton } from '@fluentui/react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { TileHeader } from './tile-header';\r\nimport { getTileStyles as getStyles, tileStyles } from './styles';\r\n\r\nexport function Tile(props) {\r\n const {\r\n children,\r\n title,\r\n subtitle,\r\n onBack,\r\n onNext,\r\n backBtnText,\r\n nextBtnText,\r\n displayMode,\r\n } = props;\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n return (\r\n
\r\n \r\n {children}\r\n {\r\n (_.isFunction(onBack) || _.isFunction(onNext)) &&\r\n
\r\n {_.isFunction(onBack) &&\r\n \r\n {backBtnText || i18n.getString(_TL_('Back'))}\r\n \r\n }\r\n \r\n {nextBtnText || i18n.getString(_TL_('Next'))}\r\n \r\n
\r\n }\r\n
\r\n );\r\n}\r\n\r\nTile.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n title: PropTypes.string.isRequired,\r\n subtitle: PropTypes.node.isRequired,\r\n onBack: PropTypes.func,\r\n onNext: PropTypes.func,\r\n backBtnText: PropTypes.string,\r\n nextBtnText: PropTypes.string,\r\n displayMode: PropTypes.string,\r\n};\r\n\r\nTile.defaultProps = {\r\n onBack: undefined,\r\n onNext: undefined,\r\n backBtnText: '',\r\n nextBtnText: '',\r\n displayMode: '',\r\n};\r\n","\r\nimport goalWebsiteIcon from '../../media/goal-website.svg';\r\nimport goalPhoneIcon from '../../media/goal-phone.svg';\r\nimport goalLocationIcon from '../../media/goal-location.svg';\r\nimport goalWebsiteImg from '../../media/goal-website-img.svg';\r\nimport goalPhoneImg from '../../media/goal-phone-img.svg';\r\nimport goalLocationImg from '../../media/goal-location-img.svg';\r\nimport goalSelectedImg from '../../media/checkmark.svg';\r\n\r\nexport const Goals = {\r\n IncreaseWebsiteVisit: {\r\n value: 'IncreaseWebsiteVisit',\r\n title: _TL_('Visits to my website'),\r\n isRecommended: true,\r\n },\r\n IncreaseCallToBusiness: {\r\n value: 'IncreaseCallToBusiness',\r\n title: _TL_('Phone calls to my business'),\r\n isRecommended: false,\r\n },\r\n IncreaseBusinessLocationVisit: {\r\n value: 'IncreaseBusinessLocationVisit',\r\n title: _TL_('Visits to my physical business locations'),\r\n isRecommended: false,\r\n },\r\n};\r\n\r\nexport const getStepGoalOptionsImages = isShowIcon => ({\r\n IncreaseWebsiteVisit: {\r\n imageSrc: isShowIcon? goalWebsiteIcon : goalWebsiteImg,\r\n alt: _TL_('increase website visits icon'),\r\n },\r\n IncreaseCallToBusiness: {\r\n imageSrc: isShowIcon ? goalPhoneIcon: goalPhoneImg,\r\n alt: _TL_('increase phone calls icon'),\r\n },\r\n IncreaseBusinessLocationVisit: {\r\n imageSrc: isShowIcon? goalLocationIcon: goalLocationImg,\r\n alt: _TL_('increase location visits icon'),\r\n },\r\n GoalSelected: {\r\n imageSrc: goalSelectedImg,\r\n alt: _TL_('goal selected icon'),\r\n },\r\n});\r\n\r\nexport const campaignGoals = ['IncreaseWebsiteVisit', 'IncreaseCallToBusiness', 'IncreaseBusinessLocationVisit'];\r\n","export const getStyles = (_, { palette = {} }) => ({\r\n campaignGoalItemContainer: {\r\n width: 176,\r\n height: 160,\r\n background: palette.white,\r\n position: 'relative',\r\n paddingLeft: 15,\r\n paddingRight: 15,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n borderRadius: '2px',\r\n boxShadow: '0px 0.6px 1.8px rgba(0, 0, 0, 0.1), 0px 3.2px 7.2px rgba(0, 0, 0, 0.13)',\r\n '@media screen and (-ms-high-contrast: active)': {\r\n '&:focus': {\r\n border: `1px solid ${palette.white}`,\r\n },\r\n outline: '1px solid windowText !important',\r\n '&.is-selected': {\r\n outlineColor: 'highlight !important',\r\n },\r\n },\r\n '& .non-hover-check-icon': {\r\n display: 'inline-block',\r\n },\r\n '& .hovered-check-icon': {\r\n display: 'none',\r\n },\r\n '&:hover': {\r\n boxShadow: '0px 1.2px 3.6px rgba(0, 0, 0, 0.1), 0px 6.4px 14.4px rgba(0, 0, 0, 0.13)',\r\n cursor: 'pointer',\r\n },\r\n '&:focus': {\r\n outline: `2px solid ${palette.neutralSecondary}`,\r\n },\r\n '&:focus:hover': {\r\n outline: `3px solid ${palette.neutralSecondary}`,\r\n\r\n },\r\n '&:hover, &:focus': {\r\n '& .non-hover-check-icon': {\r\n display: 'none',\r\n },\r\n '& .hovered-check-icon': {\r\n display: 'inline-block',\r\n },\r\n },\r\n '&.is-selected': {\r\n outline: `1px solid ${palette.themePrimary}`,\r\n backgroundColor: palette.themeLighterAlt,\r\n '&:hover': {\r\n backgroundColor: palette.themeLighter,\r\n outline: `1px solid ${palette.themeDark}`,\r\n },\r\n '&:focus': {\r\n outline: `3px solid ${palette.themeDark}`,\r\n },\r\n },\r\n },\r\n campaignGoalItemContainerWithIcon: {\r\n paddingTop: 44,\r\n },\r\n campaignGoalItemContainerWithoutIcon: {\r\n paddingTop: 10,\r\n },\r\n goalTitle: {\r\n fontSize: 14,\r\n color: palette.black,\r\n fontWeight: 'bold',\r\n textAlign: 'center',\r\n },\r\n goalDescription: {\r\n fontSize: 14,\r\n color: palette.neutralPrimary,\r\n },\r\n image: {\r\n minHeight: '32px',\r\n },\r\n iconImage: {\r\n marginBottom: '16px',\r\n },\r\n nonIconImage: {\r\n width: 120,\r\n height: 108,\r\n marginBottom: -20,\r\n },\r\n checkIcon: {\r\n width: '20px',\r\n height: '20px',\r\n alignSelf: 'auto',\r\n position: 'absolute',\r\n top: 10,\r\n right: 10,\r\n },\r\n checkIconHightLight: {\r\n color: palette.blue,\r\n },\r\n checkIconNonHightLight: {\r\n color: palette.neutralTertiaryAlt,\r\n },\r\n checkIconUncheckHover: {\r\n color: palette.neutralSecondary,\r\n },\r\n});\r\n","/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\r\nimport _ from 'underscore';\r\nimport React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { Image, ImageFit, Icon } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { Goals, getStepGoalOptionsImages } from './consts';\r\n\r\nimport { getStyles } from './styles';\r\n\r\nexport function GoalItem(props) {\r\n const {\r\n i18n,\r\n id,\r\n itemIndex,\r\n selectedCampaignGoals,\r\n isShowIcon,\r\n } = props;\r\n\r\n const classes = useDefaultStyles(getStyles);\r\n const campaignGoal = useMemo(() => Goals[id], [id]);\r\n const isSelected = useMemo(() => _.contains(selectedCampaignGoals, id), [id, selectedCampaignGoals]);\r\n const stepGoalOptionsImages = useMemo(() => getStepGoalOptionsImages(isShowIcon), [isShowIcon]);\r\n const goalImage = useMemo(() => (\r\n isSelected && isShowIcon ? stepGoalOptionsImages.GoalSelected : stepGoalOptionsImages[id]\r\n ), [id, isSelected, isShowIcon, stepGoalOptionsImages]);\r\n\r\n return (\r\n \r\n \r\n {\r\n !isShowIcon &&\r\n \r\n }\r\n\r\n {\r\n !isShowIcon && !isSelected &&\r\n \r\n }\r\n\r\n
\r\n {i18n.getString(campaignGoal.title)}\r\n
\r\n {\r\n campaignGoal.isRecommended &&\r\n
\r\n {i18n.getString(_TL_('(recommended)'))}\r\n
\r\n }\r\n
\r\n );\r\n}\r\n\r\nGoalItem.propTypes = {\r\n i18n: PropTypes.shape({ getString: PropTypes.func.isRequired }).isRequired,\r\n id: PropTypes.string.isRequired,\r\n itemIndex: PropTypes.number.isRequired,\r\n selectedCampaignGoals: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n isShowIcon: PropTypes.bool.isRequired,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useMemo, useContext, useEffect, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { SelectionZone, Selection, SelectionMode, Stack } from '@fluentui/react';\r\n\r\nimport { GoalItem } from './goal-item';\r\nimport { campaignGoals } from './consts';\r\n\r\nexport function GoalSelection(props) {\r\n const i18n = useContext(I18nContext);\r\n\r\n const {\r\n selectedCampaignGoals,\r\n onCampaignGoalSelectionChange,\r\n multiSelect,\r\n isShowIcon,\r\n } = props;\r\n\r\n const selection = useMemo(() => new Selection({\r\n canSelectItem: () => true,\r\n getKey: item => item,\r\n selectionMode: multiSelect ? SelectionMode.multiple : SelectionMode.single,\r\n items: campaignGoals,\r\n onSelectionChanged: () => {\r\n onCampaignGoalSelectionChange(selection.getSelection());\r\n },\r\n }), [onCampaignGoalSelectionChange, multiSelect]);\r\n\r\n const changeGoalSelection = useCallback((item) => {\r\n const selectedValue = !selection.isKeySelected(item);\r\n selection.setKeySelected(item, selectedValue, true);\r\n }, [selection]);\r\n\r\n useEffect(() => {\r\n if (selection && !_.isEmpty(selectedCampaignGoals)) {\r\n _.each(selectedCampaignGoals, (item) => {\r\n selection.setKeySelected(item, true, true);\r\n });\r\n }\r\n }, [selection, selectedCampaignGoals]);\r\n\r\n return (\r\n
\r\n \r\n \r\n {_.map(campaignGoals, (campaignGoal, index) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nGoalSelection.propTypes = {\r\n selectedCampaignGoals: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n onCampaignGoalSelectionChange: PropTypes.func.isRequired,\r\n isShowIcon: PropTypes.bool.isRequired,\r\n multiSelect: PropTypes.bool,\r\n};\r\n\r\nGoalSelection.defaultProps = {\r\n multiSelect: true,\r\n};\r\n","export const getWebsiteAndBusinessStyles = () => ({\r\n container: {\r\n width: '440px',\r\n marginTop: '30px',\r\n '& .error': { color: '#a80000' },\r\n },\r\n businessName: { maxWidth: '440px' },\r\n});\r\n\r\nexport const websiteAndBusinessStyles = {\r\n title: { root: { fontWeight: 600, marginBottom: '5px', textAlign: 'center' } },\r\n titleWithMargin: { root: { fontWeight: 600, marginBottom: '5px', marginTop: '16px' } },\r\n website: { maxWidth: '440px' },\r\n};\r\n\r\nexport const getWebsiteAndSmartPagesStyles = () => ({\r\n container: {\r\n width: '100%',\r\n maxWidth: 400,\r\n marginTop: '30px',\r\n display: 'flex',\r\n flexFlow: 'column',\r\n '& .error': { color: '#a80000' },\r\n },\r\n websiteItemContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n marginBottom: 18,\r\n },\r\n selectedOptionContainer: {\r\n borderColor: 'transparent',\r\n boxShadow: '0px 1.6px 3.6px rgba(0, 0, 0, 0.132), 0px 0.3px 0.9px rgba(0, 0, 0, 0.108)',\r\n padding: '20px',\r\n },\r\n smartPageErrors: {\r\n paddingTop: '5px',\r\n },\r\n});\r\n\r\nconst websiteItemMarginRight = '16px';\r\n\r\nexport const websiteAndSmartPagesStyles = {\r\n websiteInput: { maxWidth: '320px', marginTop: '8px' },\r\n title: { root: { fontWeight: 600 } },\r\n link: { root: { fontWeight: 400 } },\r\n};\r\n\r\nexport const getWebsiteItemStyles = () => ({\r\n item: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexFlow: 'column',\r\n width: `calc((100% - ${websiteItemMarginRight}) / 2)`,\r\n backgroundColor: '#fff !important',\r\n border: '2px solid',\r\n position: 'relative',\r\n },\r\n itemContainerRebranding: {\r\n '& .ms-Image-image': {\r\n marginTop: '20px',\r\n },\r\n },\r\n itemContainerWithIcon: {\r\n padding: '34px 20px 20px',\r\n },\r\n itemContainerWithoutIcon: {\r\n padding: '0px 20px 20px',\r\n },\r\n optionSelected: {\r\n borderColor: '#0078D4',\r\n },\r\n optionNotSelected: {\r\n borderColor: 'transparent',\r\n boxShadow: '0px 1.6px 3.6px rgba(0, 0, 0, 0.132), 0px 0.3px 0.9px rgba(0, 0, 0, 0.108)',\r\n },\r\n imgContainer: {\r\n marginBottom: '-25px',\r\n height: '126px',\r\n },\r\n icon: {\r\n color: '#0078D4',\r\n fontSize: '20px',\r\n position: 'absolute',\r\n top: '9px',\r\n right: '14px',\r\n },\r\n iconNotSelected: {\r\n color: '#323130',\r\n fontSize: '20px',\r\n position: 'absolute',\r\n top: '9px',\r\n right: '14px',\r\n },\r\n});\r\n\r\nexport const websiteItemStyles = {\r\n title: { root: { fontWeight: 600 } },\r\n image: { root: { marginBottom: 10 } },\r\n};\r\n\r\nexport const getWebsiteInputStyles = () => ({\r\n websiteInputContainer: {\r\n display: 'flex',\r\n flexFlow: 'column',\r\n alignItems: 'start',\r\n width: '100%',\r\n },\r\n});\r\n","import websiteIcon from '../../media/website-icon.svg';\r\nimport noWebsiteIcon from '../../media/no-website-icon.svg';\r\nimport websiteImg from '../../media/website-img.svg';\r\nimport noWebsiteImg from '../../media/no-website-img.svg';\r\nimport wwwImage from '../../media/www-website.svg';\r\nimport rebrandingWebsiteImg from '../../media/rebranding-website-img.svg';\r\nimport rebrandingNoWebsiteImg from '../../media/rebranding-no-website-img.svg';\r\n\r\nexport const businessNameValidationErrors = {\r\n required: _TL_('Field must not be empty'),\r\n type: _TL_('Invalid Character'),\r\n maxLength: _TL_('Maximum length exceeded'),\r\n minLength: _TL_('Minimum length not met'),\r\n};\r\n\r\nexport const websiteValidationErrors = {\r\n required: _TL_('Business website is required'),\r\n maxLength: _TL_('Business website exceeds the maximum allowed length'),\r\n pattern: _TL_('Enter a valid business website'),\r\n};\r\n\r\nexport const OPTIONS = {\r\n SIGNUP_EXISTING_WEBSITE: 'existing-website',\r\n SIGNUP_SMART_PAGES: 'smart-pages',\r\n USE_MY_WEBSITE: 'use-my-website',\r\n USE_SMART_PAGES: 'use-smart-pages',\r\n};\r\n\r\nexport const optionTitles = {\r\n [OPTIONS.SIGNUP_EXISTING_WEBSITE]: _TL_('I have a website'),\r\n [OPTIONS.SIGNUP_SMART_PAGES]: _TL_('I don\\'t have a website'),\r\n [OPTIONS.USE_MY_WEBSITE]: _TL_('Use my website'),\r\n [OPTIONS.USE_SMART_PAGES]: _TL_('Use my Smart Pages'),\r\n};\r\n\r\nexport const getOptionImages = (isShowIcon, isRebranding) => {\r\n let signupWebsiteImg = isShowIcon ? websiteIcon : websiteImg;\r\n let signupNoWebsiteImg = isShowIcon ? noWebsiteIcon : noWebsiteImg;\r\n if (isRebranding) {\r\n signupWebsiteImg = rebrandingWebsiteImg;\r\n signupNoWebsiteImg = rebrandingNoWebsiteImg;\r\n }\r\n return {\r\n [OPTIONS.SIGNUP_EXISTING_WEBSITE]: {\r\n imageSrc: signupWebsiteImg,\r\n alt: _TL_('website icon'),\r\n },\r\n [OPTIONS.SIGNUP_SMART_PAGES]: {\r\n imageSrc: signupNoWebsiteImg,\r\n alt: _TL_('no website icon'),\r\n },\r\n [OPTIONS.USE_MY_WEBSITE]: {\r\n imageSrc: websiteImg,\r\n alt: _TL_('website icon'),\r\n },\r\n [OPTIONS.USE_SMART_PAGES]: {\r\n imageSrc: wwwImage,\r\n alt: _TL_('www website icon'),\r\n },\r\n };\r\n};\r\n\r\nexport const selectedText = {\r\n [OPTIONS.SIGNUP_SMART_PAGES]: _TL_('No worries, you can use Microsoft Smart Pages to create a free webpage.'),\r\n [OPTIONS.USE_SMART_PAGES]: _TL_('Use my website created using Microsoft Smart Pages.'),\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Input } from '@bingads-webui-react/primitive-validation';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getWebsiteInputStyles as getStyles } from './styles';\r\n\r\nimport { websiteValidationErrors } from './consts';\r\n\r\nexport const WebsiteInput = (props) => {\r\n const {\r\n website, setWebsite, alwaysShowError, style, labelId,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const onWebsiteChange = useCallback(({ target: { value } }) => {\r\n setWebsite(value);\r\n }, [setWebsite]);\r\n\r\n const handleWebsiteError = useCallback((errors) => {\r\n const errorStrings = _.map(\r\n errors,\r\n (oldError, key) => (\r\n _.has(websiteValidationErrors, key) ?\r\n i18n.getString(websiteValidationErrors[key]) : oldError)\r\n );\r\n return _.isEmpty(errorStrings) ? [] : [_.last(errorStrings)];\r\n }, [i18n]);\r\n\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nWebsiteInput.propTypes = {\r\n website: PropTypes.string,\r\n setWebsite: PropTypes.func.isRequired,\r\n alwaysShowError: PropTypes.bool,\r\n style: PropTypes.shape({}),\r\n labelId: PropTypes.string,\r\n};\r\n\r\nWebsiteInput.defaultProps = {\r\n website: undefined,\r\n alwaysShowError: false,\r\n style: {},\r\n labelId: undefined,\r\n};\r\n","const UrlRegexWithOptionalProtocol = /^(?:http(s)?:\\/\\/)?([a-z0-9-_]+\\.)*[a-z0-9-_]+\\.[a-z]{2,63}(\\/[^\\s]*\\/?)*$/i;\r\n\r\nexport const websiteSchema = {\r\n name: 'Website schema',\r\n type: 'object',\r\n properties: {\r\n website: {\r\n required: true,\r\n type: 'string',\r\n pattern: UrlRegexWithOptionalProtocol,\r\n maxLength: 253,\r\n },\r\n },\r\n};\r\n\r\nexport const websiteAndBusinessSchema = {\r\n name: 'Website and business schema',\r\n type: 'object',\r\n properties: {\r\n website: {\r\n required: true,\r\n type: 'string',\r\n pattern: UrlRegexWithOptionalProtocol,\r\n maxLength: 253,\r\n },\r\n business: {\r\n type: 'string',\r\n maxLength: 40,\r\n minLength: 3,\r\n required: true,\r\n },\r\n },\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext, useCallback } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { LegacyI18nContext } from '@bingads-webui-react/legacy-i18n-context';\r\nimport { Text } from '@fluentui/react';\r\nimport { ValidationGroup, Input } from '@bingads-webui-react/primitive-validation';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { WebsiteInput } from './website-input';\r\nimport { websiteAndBusinessSchema } from './validation-schema';\r\nimport { businessNameValidationErrors } from './consts';\r\nimport { getWebsiteAndBusinessStyles as getStyles, websiteAndBusinessStyles as styles } from './styles';\r\n\r\nexport const WebsiteAndBusiness = (props) => {\r\n const {\r\n website,\r\n setWebsite,\r\n businessName,\r\n setBusinessName,\r\n setIsValid,\r\n alwaysShowError,\r\n } = props;\r\n const i18n = useContext(I18nContext);\r\n const legacyI18n = useContext(LegacyI18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const onValidate = useCallback((e) => {\r\n setIsValid(e.isValid);\r\n }, [setIsValid]);\r\n\r\n const onChangeBusinessName = useCallback(({ target: { value } }) => {\r\n setBusinessName(value);\r\n }, [setBusinessName]);\r\n const errorProcessor = useCallback((errors) => {\r\n const errorStrings = _.map(\r\n errors,\r\n (oldError, key) => (\r\n _.has(businessNameValidationErrors, key) ?\r\n i18n.getString(businessNameValidationErrors[key]) : oldError)\r\n );\r\n return _.isEmpty(errorStrings) ? [] : [_.last(errorStrings)];\r\n }, [i18n]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n {i18n.getString(_TL_('What\\'s the name of your business?'))}\r\n \r\n \r\n
\r\n \r\n {i18n.getString(_TL_('What\\'s your business website?'))}\r\n \r\n \r\n \r\n
);\r\n};\r\n\r\nWebsiteAndBusiness.propTypes = {\r\n website: PropTypes.string,\r\n setWebsite: PropTypes.func.isRequired,\r\n businessName: PropTypes.string,\r\n setBusinessName: PropTypes.func.isRequired,\r\n setIsValid: PropTypes.func,\r\n alwaysShowError: PropTypes.bool,\r\n};\r\n\r\nWebsiteAndBusiness.defaultProps = {\r\n website: undefined,\r\n businessName: undefined,\r\n setIsValid: _.noop,\r\n alwaysShowError: false,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext, useMemo } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Text, FontIcon, Image } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { OPTIONS, optionTitles, getOptionImages } from './consts';\r\nimport { getWebsiteItemStyles as getStyles, websiteItemStyles } from './styles';\r\n\r\nexport const WebsiteItem = (props) => {\r\n const {\r\n selected,\r\n onClick,\r\n type,\r\n isShowIcon,\r\n isRebranding,\r\n selectedIcon,\r\n unselectedIcon,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n const optionImages = useMemo(() => getOptionImages(isShowIcon, isRebranding), [isShowIcon, isRebranding]);\r\n\r\n const { ariaLabel, iconName, iconClass } = useMemo(() => {\r\n let label = null;\r\n let name = null;\r\n let classname = null;\r\n\r\n if (selected) {\r\n label = i18n.getString(_TL_('Selected option'));\r\n name = selectedIcon || 'CompletedSolid';\r\n classname = classes.icon;\r\n } else if (unselectedIcon) {\r\n label = i18n.getString(_TL_('Unselected option'));\r\n name = unselectedIcon;\r\n classname = classes.iconNotSelected;\r\n }\r\n\r\n return { ariaLabel: label, iconName: name, iconClass: classname };\r\n }, [selected, unselectedIcon, i18n, selectedIcon, classes]);\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n {i18n.getString(optionTitles[type])}\r\n \r\n {iconName && }\r\n \r\n );\r\n};\r\n\r\nWebsiteItem.propTypes = {\r\n selected: PropTypes.bool.isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n type: PropTypes.oneOf(_.values(OPTIONS)).isRequired,\r\n isShowIcon: PropTypes.bool.isRequired,\r\n isRebranding: PropTypes.bool,\r\n selectedIcon: PropTypes.string,\r\n unselectedIcon: PropTypes.string,\r\n};\r\n\r\nWebsiteItem.defaultProps = {\r\n isRebranding: false,\r\n selectedIcon: null,\r\n unselectedIcon: null,\r\n};\r\n","import URI from 'urijs';\r\n\r\nexport function getIsWebsiteSocialPlatform(website) {\r\n if (!website) {\r\n return false;\r\n }\r\n const site = website.toLowerCase().trim();\r\n let uri = new URI(site);\r\n\r\n if (!uri.protocol()) {\r\n uri = new URI(uri.protocol('https').toString());\r\n }\r\n\r\n const host = uri.hostname();\r\n return (host && (host.includes('facebook.com') || host.includes('instagram.com') || host.includes('fb.me')));\r\n}\r\n","import _ from 'underscore';\r\nimport React, { useContext, useCallback, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { LegacyI18nContext } from '@bingads-webui-react/legacy-i18n-context';\r\nimport { Text, Link } from '@fluentui/react';\r\nimport { ErrorMessages } from '@bingads-webui-react/validation';\r\nimport { ValidationGroup } from '@bingads-webui-react/primitive-validation';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { HelpPopupInline } from '@bingads-webui-react/help-popup';\r\n\r\nimport { WebsiteInput } from './website-input';\r\nimport { WebsiteItem } from './website-item';\r\nimport { websiteSchema } from './validation-schema';\r\nimport { selectedText } from './consts';\r\nimport { getWebsiteAndSmartPagesStyles as getStyles, websiteAndSmartPagesStyles as styles } from './styles';\r\nimport { getIsWebsiteSocialPlatform } from './helpers';\r\n\r\nexport const WebsiteAndSmartPages = (props) => {\r\n const {\r\n website,\r\n setWebsite,\r\n existingWebsiteSelected,\r\n setExistingWebsiteSelected,\r\n setIsValid,\r\n websiteLabel,\r\n websiteHelpTopic,\r\n isWebsiteSocialPlatform,\r\n setIsWebsiteSocialPlatform,\r\n unsupportedDomainMessage,\r\n alwaysShowError,\r\n websiteOptionType,\r\n smartPageOptionType,\r\n smartPageErrors,\r\n smartPageLearnMoreLink,\r\n isShowIcon,\r\n selectedIcon,\r\n unselectedIcon,\r\n showWebsiteOptions,\r\n customError,\r\n onCustomValidate,\r\n isRebranding,\r\n } = props;\r\n const i18n = useContext(I18nContext);\r\n const legacyI18n = useContext(LegacyI18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const onValidate = useCallback((e) => {\r\n setIsValid(e.isValid);\r\n setIsWebsiteSocialPlatform(e.isValid && getIsWebsiteSocialPlatform(_.get(e, ['data', 'website'])));\r\n onCustomValidate(_.get(e, ['data', 'website']));\r\n }, [setIsValid, setIsWebsiteSocialPlatform, onCustomValidate]);\r\n\r\n const onClickExistingWebsite\r\n = useCallback(() => setExistingWebsiteSelected(true), [setExistingWebsiteSelected]);\r\n const onClickSmartPages\r\n = useCallback(() => setExistingWebsiteSelected(false), [setExistingWebsiteSelected]);\r\n\r\n const optionText = useMemo(() => i18n.getString(selectedText[smartPageOptionType]), [i18n, smartPageOptionType]);\r\n const websiteLabelId = 'websiteLabel';\r\n\r\n return (\r\n
\r\n {showWebsiteOptions &&\r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n {\r\n existingWebsiteSelected ?\r\n \r\n \r\n {websiteLabel || i18n.getString(_TL_('Your business website you want customers to visit'))}\r\n {websiteHelpTopic && }\r\n \r\n \r\n {isWebsiteSocialPlatform && }\r\n {customError && }\r\n\r\n \r\n :\r\n \r\n {optionText} \r\n \r\n {i18n.getString(_TL_('Learn more'))}\r\n \r\n \r\n \r\n }\r\n
\r\n
);\r\n};\r\n\r\nWebsiteAndSmartPages.propTypes = {\r\n website: PropTypes.string,\r\n setWebsite: PropTypes.func.isRequired,\r\n existingWebsiteSelected: PropTypes.bool.isRequired,\r\n setExistingWebsiteSelected: PropTypes.func.isRequired,\r\n setIsValid: PropTypes.func,\r\n websiteLabel: PropTypes.string,\r\n websiteHelpTopic: PropTypes.string,\r\n isWebsiteSocialPlatform: PropTypes.bool,\r\n setIsWebsiteSocialPlatform: PropTypes.func,\r\n unsupportedDomainMessage: PropTypes.string,\r\n alwaysShowError: PropTypes.bool,\r\n websiteOptionType: PropTypes.string.isRequired,\r\n smartPageOptionType: PropTypes.string.isRequired,\r\n smartPageErrors: PropTypes.arrayOf(PropTypes.string),\r\n smartPageLearnMoreLink: PropTypes.string.isRequired,\r\n isShowIcon: PropTypes.bool,\r\n selectedIcon: PropTypes.string,\r\n unselectedIcon: PropTypes.string,\r\n showWebsiteOptions: PropTypes.bool,\r\n customError: PropTypes.string,\r\n onCustomValidate: PropTypes.func,\r\n isRebranding: PropTypes.bool,\r\n};\r\n\r\nWebsiteAndSmartPages.defaultProps = {\r\n unsupportedDomainMessage: null,\r\n website: undefined,\r\n isWebsiteSocialPlatform: false,\r\n setIsWebsiteSocialPlatform: _.noop,\r\n setIsValid: _.noop,\r\n websiteLabel: undefined,\r\n websiteHelpTopic: undefined,\r\n alwaysShowError: false,\r\n smartPageErrors: [],\r\n isShowIcon: true,\r\n selectedIcon: null,\r\n unselectedIcon: null,\r\n showWebsiteOptions: true,\r\n customError: undefined,\r\n onCustomValidate: _.noop,\r\n isRebranding: false,\r\n};\r\n","export const VIEWS = {\r\n CREATION_METHOD: 'CREATION_METHOD',\r\n GOALS: 'GOALS',\r\n WEBSITE: 'WEBSITE',\r\n LANGUAGE: 'LANGUAGE',\r\n};\r\n","/* istanbul ignore file */\r\nexport const getStyles = () => ({\r\n error: { color: '#a80000', marginTop: '8px' },\r\n languageCountryContainer: ({ noShadow }) => ({\r\n borderColor: 'transparent',\r\n boxShadow: noShadow ? 'none' :'0px 1.6px 3.6px rgba(0, 0, 0, 0.132), 0px 0.3px 0.9px rgba(0, 0, 0, 0.108)',\r\n padding: '20px',\r\n width: '100%',\r\n maxWidth: '400px',\r\n }),\r\n languageContainer: {\r\n marginBottom: '24px',\r\n },\r\n searchableDropdownSearchBox: {\r\n position: 'fixed',\r\n top: '0px',\r\n left: '50%',\r\n transform: 'translateX(-50%)',\r\n width: '100%',\r\n zIndex: '100',\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { Dropdown, SearchBox, SelectableOptionMenuItemType, DirectionalHint } from '@fluentui/react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getStyles } from './styles';\r\n\r\nconst RESERVED_SEARCH_KEY = 'search-key-c6581d02-80fb-4657-bc8d-95850a15a868';\r\n\r\nconst getSearchableOptions = (initialOptions) => {\r\n if (_.isEmpty(initialOptions)) {\r\n return initialOptions;\r\n }\r\n\r\n const optionsWithSearch = [];\r\n optionsWithSearch.push({\r\n key: RESERVED_SEARCH_KEY,\r\n text: '',\r\n itemType: SelectableOptionMenuItemType.Header,\r\n });\r\n\r\n return optionsWithSearch.concat([...initialOptions]);\r\n};\r\n\r\nexport function SearchableDropdown(props) {\r\n const {\r\n options,\r\n } = props;\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const searchableOptions = useMemo(() => getSearchableOptions(options), [options]);\r\n const [filteredOptions, setFilteredOptions] = useState(searchableOptions);\r\n\r\n const onSearchValueChanged = useCallback((searchValue) => {\r\n if (_.isEmpty(searchValue)) {\r\n setFilteredOptions(searchableOptions);\r\n return;\r\n }\r\n\r\n const matchedOptions = _.filter(\r\n searchableOptions,\r\n option => (option.key === RESERVED_SEARCH_KEY || option.text.toLowerCase().includes(searchValue.toLowerCase()))\r\n );\r\n\r\n setFilteredOptions(matchedOptions);\r\n }, [searchableOptions]);\r\n\r\n const onChangeSearchBox = useCallback((event, searchValue) => {\r\n onSearchValueChanged(searchValue);\r\n }, [onSearchValueChanged]);\r\n\r\n const onClearSearchBox = useCallback(() => {\r\n onSearchValueChanged('');\r\n }, [onSearchValueChanged]);\r\n\r\n const onRenderOption = useCallback((option = {}, renderFunc = _.noop) => {\r\n if (option.key === RESERVED_SEARCH_KEY) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return renderFunc(option);\r\n }, [classes.searchableDropdownSearchBox, i18n, onChangeSearchBox, onClearSearchBox, onSearchValueChanged]);\r\n\r\n useEffect(() => setFilteredOptions(getSearchableOptions(options)), [options]);\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nSearchableDropdown.propTypes = {\r\n options: PropTypes.arrayOf(PropTypes.shape({ key: PropTypes.string, text: PropTypes.string })),\r\n};\r\n\r\nSearchableDropdown.defaultProps = {\r\n options: [],\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getStyles } from './styles';\r\nimport { SearchableDropdown } from './searchable-dropdown';\r\n\r\nexport function LanguageCountrySelection(props) {\r\n const {\r\n selectedLanguage,\r\n onLanguageSelected,\r\n languages,\r\n countryOptions,\r\n selectedCountry,\r\n onCountrySelected,\r\n isCountrySelectDisabled,\r\n error,\r\n noShadow,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles, { noShadow });\r\n\r\n return (\r\n
\r\n {countryOptions &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n \r\n
\r\n {error &&

{error}

}\r\n
\r\n );\r\n}\r\n\r\nLanguageCountrySelection.propTypes = {\r\n selectedLanguage: PropTypes.string,\r\n onLanguageSelected: PropTypes.func.isRequired,\r\n uiActivity: PropTypes.shape({\r\n trace: PropTypes.func,\r\n }).isRequired,\r\n languages: PropTypes.arrayOf(PropTypes.shape({ key: PropTypes.string, text: PropTypes.string })),\r\n countryOptions: PropTypes.arrayOf(PropTypes.shape({ key: PropTypes.string, text: PropTypes.string })),\r\n selectedCountry: PropTypes.string,\r\n onCountrySelected: PropTypes.func,\r\n isCountrySelectDisabled: PropTypes.bool,\r\n error: PropTypes.string,\r\n noShadow: PropTypes.bool,\r\n};\r\n\r\nLanguageCountrySelection.defaultProps = {\r\n selectedLanguage: null,\r\n languages: [],\r\n countryOptions: null,\r\n selectedCountry: null,\r\n onCountrySelected: _.noop,\r\n isCountrySelectDisabled: false,\r\n error: '',\r\n noShadow: false,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useState, useContext, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\n\r\nimport { LanguageCountrySelection } from './language-and-country-selection';\r\nimport { VIEWS } from '../consts';\r\nimport { Tile } from '../tile';\r\n\r\n\r\nexport function LanguageCountrySelectionTile(props) {\r\n const {\r\n selectedLanguage,\r\n onLanguageSelectionChange,\r\n campaign,\r\n useConfirmDialog,\r\n languages,\r\n countryOptions,\r\n selectedCountry,\r\n onCountrySelected,\r\n initCountryCode,\r\n isCountrySelectDisabled,\r\n shouldShowCountryChangedWarning,\r\n uiActivity,\r\n shouldShowLanguageChangedWarning,\r\n setIsCampaignDeleteConfirmed,\r\n subtitle,\r\n onNext,\r\n onBack,\r\n confirmDialogClassName,\r\n } = props;\r\n\r\n const [error, setError] = useState();\r\n\r\n const i18n = useContext(I18nContext);\r\n const campaignLanguage = _.get(campaign, 'Language');\r\n\r\n const onLanguageBack = useCallback(() => {\r\n onBack(VIEWS.GOALS);\r\n setError(null);\r\n }, [onBack]);\r\n\r\n const onConfirmNext = useCallback(() => {\r\n if (initCountryCode !== selectedCountry) {\r\n uiActivity.trace(`User update country from ${initCountryCode} to ${selectedCountry}`);\r\n }\r\n setIsCampaignDeleteConfirmed(true);\r\n onNext(VIEWS.WEBSITE);\r\n }, [initCountryCode, selectedCountry, setIsCampaignDeleteConfirmed, onNext, uiActivity]);\r\n\r\n const onCancelDialog = useCallback(() => {\r\n const previousLanguage = campaignLanguage || selectedLanguage;\r\n onLanguageSelectionChange(previousLanguage);\r\n onCountrySelected(null, {\r\n key: initCountryCode,\r\n });\r\n }, [onLanguageSelectionChange, campaignLanguage, onCountrySelected, initCountryCode, selectedLanguage]);\r\n\r\n const [\r\n changeDialog,\r\n showChangeDialog,\r\n isChangeDialogVisible,\r\n ] = useConfirmDialog({\r\n title: i18n.getString(_TL_('Confirm changes')),\r\n content: i18n.getString(_TL_('When you confirm a change to either your language or business location, you\\'ll have to create a new campaign.')),\r\n confirmText: i18n.getString(_TL_('Confirm')),\r\n onConfirm: onConfirmNext,\r\n cancelText: i18n.getString(_TL_('Discard changes')),\r\n onCancel: onCancelDialog,\r\n className: confirmDialogClassName,\r\n }, {\r\n activity: uiActivity,\r\n dialogName: 'UpWizardChangeLanguageOrCountryDialog',\r\n });\r\n\r\n const onLanguageNext = useCallback(() => {\r\n if (_.isEmpty(selectedLanguage)) {\r\n setError(i18n.getString(_TL_('Please select a language.')));\r\n } else if (shouldShowLanguageChangedWarning || shouldShowCountryChangedWarning) {\r\n showChangeDialog();\r\n } else {\r\n onNext(VIEWS.WEBSITE);\r\n }\r\n }, [selectedLanguage, shouldShowLanguageChangedWarning, shouldShowCountryChangedWarning, i18n, showChangeDialog, onNext]);\r\n\r\n const onLanguageSelected = useCallback((_event, selection) => {\r\n setError(null);\r\n onLanguageSelectionChange(selection.key);\r\n if (uiActivity) {\r\n uiActivity.trace(`LanguageSelection: change to ${selection.key}`);\r\n }\r\n }, [onLanguageSelectionChange, uiActivity]);\r\n\r\n return (\r\n \r\n \r\n {isChangeDialogVisible && changeDialog}\r\n \r\n );\r\n}\r\n\r\nLanguageCountrySelectionTile.propTypes = {\r\n selectedLanguage: PropTypes.string,\r\n onLanguageSelectionChange: PropTypes.func.isRequired,\r\n useConfirmDialog: PropTypes.func.isRequired,\r\n campaign: PropTypes.shape({}),\r\n uiActivity: PropTypes.shape({\r\n trace: PropTypes.func,\r\n }).isRequired,\r\n languages: PropTypes.arrayOf(PropTypes.shape({ key: PropTypes.string, text: PropTypes.string })),\r\n countryOptions: PropTypes.arrayOf(PropTypes.shape({ key: PropTypes.string, text: PropTypes.string })),\r\n selectedCountry: PropTypes.string,\r\n onCountrySelected: PropTypes.func,\r\n initCountryCode: PropTypes.string,\r\n isCountrySelectDisabled: PropTypes.bool,\r\n shouldShowCountryChangedWarning: PropTypes.bool.isRequired,\r\n shouldShowLanguageChangedWarning: PropTypes.bool.isRequired,\r\n setIsCampaignDeleteConfirmed: PropTypes.func.isRequired,\r\n subtitle: PropTypes.node,\r\n onBack: PropTypes.func.isRequired,\r\n onNext: PropTypes.func.isRequired,\r\n confirmDialogClassName: PropTypes.string,\r\n};\r\n\r\nLanguageCountrySelectionTile.defaultProps = {\r\n campaign: null,\r\n selectedLanguage: null,\r\n languages: [],\r\n countryOptions: null,\r\n selectedCountry: null,\r\n onCountrySelected: _.noop,\r\n initCountryCode: null,\r\n isCountrySelectDisabled: false,\r\n subtitle: null,\r\n confirmDialogClassName: 'up-wizard-change-language-or-country-dialog',\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { LegacyI18nContext } from '@bingads-webui-react/legacy-i18n-context';\r\nimport { Text } from '@fluentui/react';\r\nimport { ValidationGroup } from '@bingads-webui-react/primitive-validation';\r\nimport { ErrorMessages } from '@bingads-webui-react/validation';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { WebsiteInput } from './website-input';\r\nimport { websiteSchema } from './validation-schema';\r\nimport { getWebsiteAndSmartPagesStyles as getStyles, websiteAndSmartPagesStyles as styles } from './styles';\r\nimport { getIsWebsiteSocialPlatform } from './helpers';\r\n\r\nexport const WebsiteOnlyOption = (props) => {\r\n const {\r\n website,\r\n setWebsite,\r\n setIsValid,\r\n alwaysShowError,\r\n isWebsiteSocialPlatform,\r\n setIsWebsiteSocialPlatform,\r\n unsupportedDomainMessage,\r\n } = props;\r\n const i18n = useContext(I18nContext);\r\n const legacyI18n = useContext(LegacyI18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const onValidate = useCallback((e) => {\r\n setIsValid(e.isValid);\r\n setIsWebsiteSocialPlatform(e.isValid && getIsWebsiteSocialPlatform(_.get(e, ['data', 'website'])));\r\n }, [setIsValid, setIsWebsiteSocialPlatform]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {i18n.getString(_TL_('Your business website you want customers to visit'))}\r\n \r\n \r\n {isWebsiteSocialPlatform && }\r\n \r\n
\r\n
);\r\n};\r\n\r\nWebsiteOnlyOption.propTypes = {\r\n website: PropTypes.string,\r\n setWebsite: PropTypes.func.isRequired,\r\n setIsValid: PropTypes.func,\r\n alwaysShowError: PropTypes.bool,\r\n isWebsiteSocialPlatform: PropTypes.bool,\r\n setIsWebsiteSocialPlatform: PropTypes.func,\r\n unsupportedDomainMessage: PropTypes.string,\r\n};\r\n\r\nWebsiteOnlyOption.defaultProps = {\r\n website: undefined,\r\n setIsValid: _.noop,\r\n alwaysShowError: false,\r\n unsupportedDomainMessage: null,\r\n isWebsiteSocialPlatform: false,\r\n setIsWebsiteSocialPlatform: _.noop,\r\n};\r\n","export const getStyles = (_, { palette = {} }) => ({\r\n subTitleContainer: {\r\n fontWeight: 400,\r\n fontSize: '16px',\r\n lineHeight: '21px',\r\n marginBottom: 32,\r\n color: palette.neutralPrimary,\r\n textAlign: 'center',\r\n },\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getStyles } from './styles';\r\n\r\nexport function CreationMethodSubTitle(props) {\r\n const {\r\n i18n,\r\n subTitle,\r\n } = props;\r\n\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n return (\r\n \r\n {i18n.getString(subTitle)}\r\n
\r\n );\r\n}\r\n\r\nCreationMethodSubTitle.propTypes = {\r\n i18n: PropTypes.shape({ getString: PropTypes.func.isRequired }).isRequired,\r\n subTitle: PropTypes.string,\r\n};\r\n\r\nCreationMethodSubTitle.defaultProps = {\r\n subTitle: _TL_('You can create new campaign from scratch, or import your previous campaign from Google or Facebook.'),\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useCallback, useContext, useEffect, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { CampaignCreationMethodSelection } from '@bingads-webui-campaign-react/campaign-creation-method-selection';\r\n\r\nimport { Tile } from './tile';\r\nimport { GoalSelection } from './goals/goal-selection';\r\nimport { WebsiteAndBusiness } from './website/website-and-business';\r\nimport { WebsiteAndSmartPages } from './website/website-and-smart-pages';\r\n\r\nimport { getStyles } from './styles';\r\nimport { VIEWS } from './consts';\r\nimport { LanguageCountrySelectionTile } from './language/language-and-country-selection-tile';\r\nimport { WebsiteOnlyOption } from './website/website-only-option';\r\nimport { OPTIONS } from './website/consts';\r\nimport { CreationMethodSubTitle } from './creation-method/creation-method-sub-title';\r\nimport { getInitStep } from './helper';\r\n\r\nexport const GoalsAndWebsiteTile = (props) => {\r\n const {\r\n selectedCampaignGoals,\r\n onCampaignGoalSelectionChange,\r\n website,\r\n setWebsite,\r\n businessName,\r\n setBusinessName,\r\n existingWebsiteSelected,\r\n setExistingWebsiteSelected,\r\n setIsValid,\r\n isWebsiteSocialPlatform,\r\n setIsWebsiteSocialPlatform,\r\n unsupportedDomainMessage,\r\n goalTitle,\r\n goalsSubtitle,\r\n websiteSubtitle,\r\n onNext,\r\n withBusinessName,\r\n multiSelect,\r\n goalTileFooter,\r\n languages,\r\n selectedLanguage,\r\n onLanguageSelectionChange,\r\n countryOptions,\r\n selectedCountry,\r\n onCountrySelected,\r\n initCountryCode,\r\n shouldShowCountryChangedWarning,\r\n initStep,\r\n campaign,\r\n useConfirmDialog,\r\n isSignUp,\r\n shouldShowSmartPageOption,\r\n smartPageErrors,\r\n isLanguageEnabled,\r\n uiActivity,\r\n shouldShowLanguageChangedWarning,\r\n setIsCampaignDeleteConfirmed,\r\n languageSubtitle,\r\n isCreationMethodEnabled,\r\n creationMethodTitle,\r\n onClickGoogleImport,\r\n onClickFacebookImport,\r\n onClickCreateNewCampaign,\r\n } = props;\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const [currentView, setView] = useState(getInitStep({ customizedInitStep: initStep, isCreationMethodEnabled }));\r\n const [alwaysShowError, setAlwaysShowError] = useState(false);\r\n const [goalError, setGoalError] = useState();\r\n const hasLanguageSelection\r\n = useMemo(() => isLanguageEnabled && _.isArray(languages) && _.size(languages) > 1, [languages, isLanguageEnabled]);\r\n\r\n // Currently we want to show the switch to expert footer in all steps if we have goals/language/website\r\n // because it's needed for the first two, and it'd feel inconsistent if website step doesn't have it.\r\n // If we only have two steps goals/website, we'll keep it only in the first step\r\n const showSwitchToExpertTile = isLanguageEnabled || (currentView !== VIEWS.WEBSITE && currentView !== VIEWS.CREATION_METHOD);\r\n\r\n const onCreationMethodNext = useCallback(() => {\r\n if (_.isFunction(onClickCreateNewCampaign)) {\r\n onClickCreateNewCampaign();\r\n }\r\n setView(VIEWS.GOALS);\r\n }, [onClickCreateNewCampaign]);\r\n\r\n const onGoalNext = useCallback(() => {\r\n if (!_.isEmpty(selectedCampaignGoals)) {\r\n setView(hasLanguageSelection ? VIEWS.LANGUAGE : VIEWS.WEBSITE);\r\n } else {\r\n setGoalError(multiSelect ?\r\n i18n.getString(_TL_('Please select at least one goal.'))\r\n : i18n.getString(_TL_('Please select a goal.')));\r\n }\r\n }, [hasLanguageSelection, i18n, multiSelect, selectedCampaignGoals]);\r\n\r\n const onGoalBack = useCallback(() => {\r\n setView(VIEWS.CREATION_METHOD);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!_.isEmpty(selectedCampaignGoals) && goalError) {\r\n setGoalError(null);\r\n }\r\n }, [goalError, selectedCampaignGoals]);\r\n\r\n const onWebsiteBack = useCallback(() => {\r\n setView(hasLanguageSelection ? VIEWS.LANGUAGE : VIEWS.GOALS);\r\n }, [hasLanguageSelection]);\r\n\r\n const onWebsiteNext = useCallback(() => {\r\n setAlwaysShowError(true);\r\n onNext();\r\n }, [onNext]);\r\n\r\n const creationMethodSubTitle = useMemo(() => (\r\n \r\n ), [i18n]);\r\n\r\n const getWebsiteOptions = useCallback(() => {\r\n if (shouldShowSmartPageOption) {\r\n const websiteOptionType = isSignUp ? OPTIONS.SIGNUP_EXISTING_WEBSITE : OPTIONS.USE_MY_WEBSITE;\r\n const smartPageOptionType = isSignUp ? OPTIONS.SIGNUP_SMART_PAGES : OPTIONS.USE_SMART_PAGES;\r\n\r\n return ();\r\n }\r\n // user doesn't have smart page setup. We only ask for\r\n // website details\r\n return ();\r\n }, [\r\n alwaysShowError, existingWebsiteSelected, isCreationMethodEnabled, isSignUp,\r\n isWebsiteSocialPlatform, setExistingWebsiteSelected, setIsValid, setIsWebsiteSocialPlatform,\r\n setWebsite, shouldShowSmartPageOption, smartPageErrors, unsupportedDomainMessage, website,\r\n ]);\r\n\r\n return (\r\n
\r\n {\r\n currentView === VIEWS.CREATION_METHOD &&\r\n \r\n \r\n \r\n }\r\n\r\n {currentView === VIEWS.GOALS &&\r\n \r\n \r\n {goalError &&

{goalError}

}\r\n \r\n }\r\n {isLanguageEnabled && currentView === VIEWS.LANGUAGE && (\r\n \r\n )}\r\n {currentView === VIEWS.WEBSITE &&\r\n \r\n {withBusinessName ?\r\n \r\n : getWebsiteOptions()\r\n }\r\n \r\n }\r\n {showSwitchToExpertTile && goalTileFooter}\r\n
);\r\n};\r\n\r\nGoalsAndWebsiteTile.propTypes = {\r\n selectedCampaignGoals: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n uiActivity: PropTypes.shape({}),\r\n onCampaignGoalSelectionChange: PropTypes.func.isRequired,\r\n website: PropTypes.string,\r\n setWebsite: PropTypes.func.isRequired,\r\n businessName: PropTypes.string,\r\n setBusinessName: PropTypes.func,\r\n existingWebsiteSelected: PropTypes.bool,\r\n setExistingWebsiteSelected: PropTypes.func,\r\n setIsValid: PropTypes.func,\r\n isWebsiteSocialPlatform: PropTypes.bool,\r\n setIsWebsiteSocialPlatform: PropTypes.func,\r\n unsupportedDomainMessage: PropTypes.string,\r\n goalTitle: PropTypes.string.isRequired,\r\n goalsSubtitle: PropTypes.node.isRequired,\r\n websiteSubtitle: PropTypes.node.isRequired,\r\n onNext: PropTypes.func.isRequired,\r\n withBusinessName: PropTypes.bool,\r\n multiSelect: PropTypes.bool,\r\n goalTileFooter: PropTypes.node,\r\n languages: PropTypes.arrayOf(PropTypes.shape({ key: PropTypes.string, text: PropTypes.string })),\r\n selectedLanguage: PropTypes.string,\r\n onLanguageSelectionChange: PropTypes.func,\r\n countryOptions: PropTypes.arrayOf(PropTypes.shape({ key: PropTypes.string, text: PropTypes.string })),\r\n selectedCountry: PropTypes.string,\r\n onCountrySelected: PropTypes.func,\r\n initCountryCode: PropTypes.string,\r\n shouldShowCountryChangedWarning: PropTypes.bool,\r\n initStep: PropTypes.string,\r\n campaign: PropTypes.shape({}),\r\n useConfirmDialog: PropTypes.func,\r\n isLanguageEnabled: PropTypes.bool,\r\n isSignUp: PropTypes.bool,\r\n shouldShowSmartPageOption: PropTypes.bool,\r\n isCreationMethodEnabled: PropTypes.bool,\r\n creationMethodTitle: PropTypes.string,\r\n onClickGoogleImport: PropTypes.func,\r\n onClickFacebookImport: PropTypes.func,\r\n onClickCreateNewCampaign: PropTypes.func,\r\n smartPageErrors: PropTypes.arrayOf(PropTypes.string),\r\n shouldShowLanguageChangedWarning: PropTypes.bool,\r\n setIsCampaignDeleteConfirmed: PropTypes.func,\r\n languageSubtitle: PropTypes.node,\r\n};\r\n\r\nGoalsAndWebsiteTile.defaultProps = {\r\n website: undefined,\r\n businessName: undefined,\r\n existingWebsiteSelected: true,\r\n useConfirmDialog: null,\r\n isLanguageEnabled: false,\r\n shouldShowLanguageChangedWarning: false,\r\n setExistingWebsiteSelected: _.noop,\r\n setIsCampaignDeleteConfirmed: _.noop,\r\n setBusinessName: _.noop,\r\n setIsValid: _.noop,\r\n setIsWebsiteSocialPlatform: _.noop,\r\n unsupportedDomainMessage: undefined,\r\n isWebsiteSocialPlatform: false,\r\n withBusinessName: false,\r\n multiSelect: true,\r\n goalTileFooter: null,\r\n uiActivity: null,\r\n languages: [],\r\n selectedLanguage: null,\r\n onLanguageSelectionChange: _.noop,\r\n countryOptions: null,\r\n selectedCountry: null,\r\n onCountrySelected: _.noop,\r\n initCountryCode: null,\r\n shouldShowCountryChangedWarning: false,\r\n initStep: null,\r\n campaign: null,\r\n isSignUp: true,\r\n shouldShowSmartPageOption: false,\r\n isCreationMethodEnabled: false,\r\n creationMethodTitle: '',\r\n onClickGoogleImport: _.noop,\r\n onClickFacebookImport: _.noop,\r\n onClickCreateNewCampaign: _.noop,\r\n smartPageErrors: [],\r\n languageSubtitle: null,\r\n};\r\n\r\n","import { VIEWS } from './consts';\r\n\r\nexport function getInitStep(props) {\r\n const { customizedInitStep, isCreationMethodEnabled } = props;\r\n if (customizedInitStep) {\r\n return customizedInitStep;\r\n } else if (isCreationMethodEnabled) {\r\n return VIEWS.CREATION_METHOD;\r\n }\r\n return VIEWS.GOALS;\r\n}\r\n","export const getStyles = () => ({\r\n accountModeSubtitle: {\r\n textAlign: 'center',\r\n lineHeight: '19px',\r\n margin: 0,\r\n '& a.account-mode-comparison-link': {\r\n textDecoration: 'underline',\r\n },\r\n '& a.account-mode-comparison-link:hover': {\r\n color: '#0078d4',\r\n },\r\n },\r\n accountModeContainer: {\r\n width: '530px',\r\n marginTop: 32,\r\n '& a:hover': {\r\n textDecoration: 'none',\r\n color: '#0078d4',\r\n },\r\n },\r\n accountModeSelectionContainer: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n\r\n accountModeSkipContainer: {\r\n width: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n borderTop: '1px solid #F2F2F2',\r\n padding: '4px 0',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n textAlign: 'center',\r\n flexWrap: 'wrap',\r\n justifyContent: 'center',\r\n '& .account-mode-skip-link': {\r\n textDecoration: 'underline',\r\n margin: '0 4px',\r\n },\r\n '& .account-mode-skip-link:hover': {\r\n color: '#0078d4',\r\n },\r\n },\r\n\r\n // size s classes\r\n 'accountModeSelectionContainer-s': { flexDirection: 'column' },\r\n 'accountModeContainer-s': { width: '272px' },\r\n 'accountModeSkipContainer-s': {\r\n display: 'block',\r\n '& .account-mode-skip-link': {\r\n margin: 0,\r\n marginRright: '4px',\r\n },\r\n },\r\n // size m classes\r\n 'accountModeSelectionContainer-m': { flexDirection: 'column' },\r\n 'accountModeContainer-m': { width: '382px' },\r\n});\r\n\r\nexport const getIntroStyles = () => ({\r\n introContainer: {\r\n marginTop: 32,\r\n marginBottom: 16,\r\n\r\n '& .intro-title': {\r\n fontWeight: 600,\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n },\r\n\r\n '& .intro-body': {\r\n marginTop: 10,\r\n paddingRight: 15,\r\n fontSize: '14px',\r\n lineHeight: '25px',\r\n\r\n '& ul': {\r\n paddingLeft: '25px',\r\n },\r\n },\r\n 'introContainer-s': { width: '272px' },\r\n 'introContainer-m': { width: '382px' },\r\n },\r\n});\r\n\r\nconst modeItemMarginRight = '16px';\r\n\r\nexport const getBulletItemStyles = () => ({\r\n bulletItem: {\r\n display: 'flex',\r\n marginTop: 8,\r\n },\r\n iconContainer: {\r\n marginRight: '10px',\r\n width: '20px',\r\n height: '20px',\r\n },\r\n});\r\n\r\nexport const bulletItemStyles = {\r\n text: {\r\n root: {\r\n textAlign: 'start',\r\n fontSize: '14px',\r\n color: '#616161',\r\n lineHeight: '18px',\r\n },\r\n },\r\n};\r\n\r\nexport const getModeItemStyles = () => ({\r\n itemContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: `calc((100% - ${modeItemMarginRight}) / 2)`,\r\n },\r\n recommended: {\r\n width: 'fit-content',\r\n display: 'inline-block',\r\n padding: '0px 14px',\r\n fontSize: '10px',\r\n lineHeight: '20px',\r\n height: '20px',\r\n fontWeight: 600,\r\n borderRadius: '4px 4px 0 0',\r\n color: '#fff',\r\n background: 'linear-gradient(102.36deg, #0A1B45 17.63%, rgba(27, 62, 115, 0.882169) 63.53%, rgba(43, 88, 156, 0.775808) 96.63%), #0A1B45',\r\n },\r\n recommendedNotSelected: {\r\n background: '#828282 !important',\r\n },\r\n recommendedNotVisible: {\r\n visibility: 'hidden',\r\n },\r\n item: {\r\n width: '100%',\r\n flex: '1',\r\n display: 'flex',\r\n alignItems: 'start',\r\n flexFlow: 'column',\r\n backgroundColor: '#fff !important',\r\n padding: '16px',\r\n border: '2px solid',\r\n borderRadius: '4px',\r\n position: 'relative',\r\n minHeight: 151,\r\n '& > span': {\r\n fontSize: 14,\r\n },\r\n },\r\n itemRecommended: {\r\n borderRadius: '0px 4px 4px 4px',\r\n },\r\n optionSelected: {\r\n borderColor: '#0078D4',\r\n },\r\n optionNotSelected: {\r\n borderColor: 'transparent',\r\n boxShadow: '0px 1.6px 3.6px rgba(0, 0, 0, 0.132), 0px 0.3px 0.9px rgba(0, 0, 0, 0.108)',\r\n },\r\n description: {\r\n fontSize: '14px',\r\n textAlign: 'start',\r\n color: '#616161',\r\n lineHeight: '18px',\r\n margin: '8px 0px',\r\n },\r\n rebrandingSelectedDescription: {\r\n border: '1px solid #B4D6FA',\r\n borderRadius: '4px',\r\n padding: '4px 8px',\r\n color: '#115EA3',\r\n backgroundColor: '#EBF3FC',\r\n },\r\n rebrandingNotSelectedDescription: {\r\n border: '1px solid #E0E0E0',\r\n borderRadius: '4px',\r\n padding: '4px 8px',\r\n color: '#616161',\r\n backgroundColor: '#F0F0F0',\r\n },\r\n icon: {\r\n color: '#0078D4',\r\n fontSize: '25px',\r\n position: 'absolute',\r\n top: '11px',\r\n right: '14px',\r\n },\r\n divider: {\r\n backgroundColor: '#EDEBE9',\r\n height: 1,\r\n width: '100%',\r\n margin: '7px 0px',\r\n },\r\n // size s classes\r\n 'itemContainer-s': {\r\n width: '100%',\r\n '& .item': {\r\n minHeight: 0,\r\n },\r\n },\r\n\r\n // size m classes\r\n 'itemContainer-m': {\r\n width: '100%',\r\n '& .item': {\r\n minHeight: 0,\r\n },\r\n },\r\n\r\n // size l classes\r\n 'itemContainer-l': {\r\n width: '100%',\r\n '& .item': {\r\n minHeight: 0,\r\n },\r\n },\r\n\r\n});\r\n\r\nexport const modeItemStyles = {\r\n title: { root: { fontWeight: 600, fontSize: '18px', lineHeight: '24px' } },\r\n image: { root: { marginBottom: 4, minHeight: 40 } },\r\n bulletsTitle: {\r\n root: {\r\n fontWeight: 600,\r\n marginTop: 4,\r\n textAlign: 'start',\r\n fontSize: '14px',\r\n color: '#616161',\r\n lineHeight: '18px',\r\n },\r\n },\r\n text: {\r\n root: {\r\n marginTop: 4,\r\n textAlign: 'start',\r\n fontSize: '14px',\r\n color: '#616161',\r\n lineHeight: '18px',\r\n },\r\n },\r\n};\r\n","import smartImg from '../../media/smart.svg';\r\nimport expertImg from '../../media/expert.svg';\r\n\r\nexport const ACCOUNT_MODE = {\r\n EXPERT: 0,\r\n UNIFIED_SMART: 2,\r\n};\r\n\r\nexport const ACCOUNT_MODE_NAME = {\r\n EXPERT: 'expert',\r\n UNIFIED_SMART: 'unifiedsmart',\r\n};\r\n\r\nexport const ACCOUNT_MODE_INFO = {\r\n [ACCOUNT_MODE.EXPERT]: {\r\n name: ACCOUNT_MODE_NAME.EXPERT,\r\n title: _TL_('Take full control'),\r\n description: _TL_('Best for experienced advertisers and marketing professionals.'),\r\n imgSrc: expertImg,\r\n imgAlt: _TL_('Expert mode'),\r\n introTitle: _TL_('With Expert mode, you can:'),\r\n introTexts: [\r\n _TL_('Fine-tune every aspect of your ad campaigns.'),\r\n _TL_('Access advanced, detailed performance reporting and tracking.'),\r\n _TL_('Choose from multiple campaign types (shopping, video, and more).'),\r\n _TL_('Run standalone audience campaigns across Bing, MSN, Outlook, and Microsoft Edge.')],\r\n },\r\n [ACCOUNT_MODE.UNIFIED_SMART]: {\r\n name: ACCOUNT_MODE_NAME.UNIFIED_SMART,\r\n title: _TL_('Streamlined, simple experience'),\r\n description: _TL_('Best for novice advertisers and those who want to save time and effort.'),\r\n imgSrc: smartImg,\r\n imgAlt: _TL_('Smart mode'),\r\n introTitle: _TL_('With Smart mode, you can:'),\r\n introTexts: [\r\n _TL_('Get started quickly with a streamlined campaign setup experience.'),\r\n _TL_('Benefit from automated optimizations and a time-saving approach.'),\r\n _TL_('Expand your customer reach easily by running your ads on Facebook, Google, and Instagram.'),\r\n _TL_('Track performance with key metrics, including conversion tracking.')],\r\n },\r\n};\r\n","import React, { useContext } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Text } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\n\r\nimport { getBulletItemStyles, bulletItemStyles } from './styles';\r\n\r\nexport const BulletItem = (props) => {\r\n const {\r\n text,\r\n renderIcon,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getBulletItemStyles);\r\n\r\n return (\r\n
\r\n {renderIcon &&\r\n
\r\n {renderIcon()}\r\n
\r\n }\r\n \r\n {t} }}\r\n template={i18n.getString(text)}\r\n />\r\n \r\n
\r\n );\r\n};\r\n\r\nBulletItem.propTypes = {\r\n renderIcon: PropTypes.string,\r\n text: PropTypes.string.isRequired,\r\n};\r\n\r\nBulletItem.defaultProps = {\r\n renderIcon: undefined,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext, Fragment } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Text, FontIcon, Image } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\n\r\nimport { BulletItem } from './bullet-item';\r\nimport { getModeItemStyles, modeItemStyles } from './styles';\r\n\r\nexport const ModeItem = (props) => {\r\n const {\r\n selected,\r\n onClick,\r\n item,\r\n isRecommended,\r\n displayMode,\r\n isRebranding,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getModeItemStyles);\r\n const {\r\n name, imgSrc, imgAlt, title, description, bulletsTitle, bulletItems,\r\n } = item;\r\n\r\n return (\r\n
\r\n
\r\n {i18n.getString(_TL_('Recommended'))}\r\n
\r\n \r\n \r\n \r\n {i18n.getString(title)}\r\n \r\n {selected && }\r\n \r\n {i18n.getString(description)}\r\n \r\n {!_.isEmpty(bulletItems) &&\r\n \r\n
\r\n \r\n {i18n.getString(bulletsTitle)}\r\n \r\n {!isRebranding &&\r\n
    \r\n {bulletItems.map((bulletItem) => {\r\n const text = _.isString(bulletItem) ? bulletItem : bulletItem.text;\r\n return (\r\n
  • \r\n \r\n {t} }}\r\n template={i18n.getString(text)}\r\n />\r\n \r\n
  • \r\n );\r\n })}\r\n
\r\n }\r\n {isRebranding &&\r\n
\r\n {bulletItems.map((bulletItem) => {\r\n const { key, text, renderIcon } = bulletItem;\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n }\r\n \r\n }\r\n \r\n
\r\n );\r\n};\r\n\r\nModeItem.propTypes = {\r\n selected: PropTypes.bool.isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n item: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n imgSrc: PropTypes.string.isRequired,\r\n imgAlt: PropTypes.string.isRequired,\r\n title: PropTypes.string.isRequired,\r\n description: PropTypes.string.isRequired,\r\n bulletsTitle: PropTypes.string,\r\n bulletItems: PropTypes.arrayOf(PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.shape({}),\r\n ])),\r\n }).isRequired,\r\n isRecommended: PropTypes.bool,\r\n isRebranding: PropTypes.bool,\r\n displayMode: PropTypes.string,\r\n};\r\n\r\nModeItem.defaultProps = {\r\n isRecommended: false,\r\n isRebranding: false,\r\n displayMode: '',\r\n};\r\n","import React, { useContext, } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getIntroStyles } from './styles';\r\n\r\nexport function IntroTexts(props) {\r\n const {\r\n introTitle,\r\n introTexts,\r\n displayMode,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getIntroStyles);\r\n\r\n return (\r\n
\r\n
\r\n {i18n.getString(introTitle)}\r\n
\r\n
\r\n
    \r\n {introTexts.map(text => (
  • {i18n.getString(text)}
  • ))}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nIntroTexts.propTypes = {\r\n introTitle: PropTypes.string.isRequired,\r\n introTexts: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n displayMode: PropTypes.string,\r\n};\r\n\r\nIntroTexts.defaultProps = {\r\n displayMode: '',\r\n};\r\n","export const getStyles = () => ({\r\n animationContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n '& .ms-ProgressIndicator': {\r\n width: 370,\r\n marginTop: 30,\r\n '@media (max-width:600px)': {\r\n width: 200,\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const getStylesForFluentUi = mobileDeviceQuery => ({\r\n animationImage: {\r\n root: {\r\n minHeight: 240,\r\n marginTop: 34,\r\n },\r\n image: {\r\n maxHeight: 310,\r\n [mobileDeviceQuery]: {\r\n width: '100%',\r\n },\r\n },\r\n },\r\n animationLabel: {\r\n root: {\r\n textAlign: 'center',\r\n fontSize: 12,\r\n fontWeight: 'normal',\r\n },\r\n },\r\n});\r\n","import React, { useCallback, useContext, useState, useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\n\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Label, Image, ProgressIndicator } from '@fluentui/react';\r\nimport { TileHeader } from '@bingads-webui-campaign-react/goals-and-website-tile';\r\n\r\nimport { getStyles, getStylesForFluentUi } from './styles';\r\nimport animationImg from '../media/animation.gif';\r\n\r\nconst TEXT_SWITCHING_INTERVAL = 3 * 1000;\r\n\r\nexport function ProcessingAnimation(props) {\r\n const {\r\n title,\r\n description,\r\n rollingTexts,\r\n rollingInterval,\r\n mobileDeviceQuery,\r\n customImg,\r\n showIcon,\r\n useProgressIndicator,\r\n displayMode,\r\n } = props;\r\n const classes = useDefaultStyles(getStyles);\r\n const i18n = useContext(I18nContext);\r\n\r\n const [rollingTextIndex, setRollingTextIndex] = useState(0);\r\n const timerRef = useRef(null);\r\n\r\n const styles = getStylesForFluentUi(mobileDeviceQuery);\r\n\r\n const stopRolling = useCallback(() => {\r\n if (timerRef && timerRef.current) {\r\n clearInterval(timerRef.current);\r\n }\r\n setRollingTextIndex(0);\r\n }, []);\r\n\r\n const startRolling = useCallback(() => {\r\n if (timerRef && timerRef.current) {\r\n clearInterval(timerRef.current);\r\n }\r\n timerRef.current = setInterval(() => {\r\n if (rollingTextIndex === rollingTexts.length - 1) {\r\n setRollingTextIndex(0);\r\n } else {\r\n setRollingTextIndex(rollingTextIndex + 1);\r\n }\r\n }, rollingInterval);\r\n }, [rollingInterval, rollingTextIndex, rollingTexts.length]);\r\n\r\n useEffect(() => {\r\n startRolling();\r\n }, [startRolling]);\r\n\r\n useEffect(() => () => {\r\n stopRolling();\r\n }, [stopRolling]);\r\n\r\n return (\r\n
\r\n {description}}\r\n displayMode={displayMode}\r\n hideIcon={!showIcon}\r\n />\r\n
\r\n {useProgressIndicator && }\r\n {!useProgressIndicator && }\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nProcessingAnimation.propTypes = {\r\n title: PropTypes.string,\r\n description: PropTypes.string,\r\n rollingTexts: PropTypes.arrayOf(PropTypes.string),\r\n rollingInterval: PropTypes.number,\r\n mobileDeviceQuery: PropTypes.string,\r\n customImg: PropTypes.string,\r\n displayMode: PropTypes.string,\r\n showIcon: PropTypes.bool,\r\n useProgressIndicator: PropTypes.bool,\r\n};\r\n\r\nProcessingAnimation.defaultProps = {\r\n title: '',\r\n description: '',\r\n rollingTexts: [],\r\n rollingInterval: TEXT_SWITCHING_INTERVAL,\r\n mobileDeviceQuery: '@media (max-width:600px)',\r\n customImg: null,\r\n displayMode: '',\r\n showIcon: false,\r\n useProgressIndicator: false,\r\n};\r\n","import _ from 'underscore';\r\n\r\nconst defaultProtocols = [{\r\n value: 'https',\r\n text: 'https://',\r\n}, {\r\n value: 'http',\r\n text: 'http://',\r\n}];\r\n\r\nexport const buildUrl = ({ protocol, url, protocols = defaultProtocols }) => {\r\n const prefix = (_.findWhere(\r\n protocols,\r\n { value: protocol }\r\n )).text;\r\n return `${prefix}${url}`;\r\n};\r\n","export const parseUrl = (url) => {\r\n const urlRegex = new RegExp('^(?:\\\\s*(?:(\\\\S+):\\\\/\\\\/)?(?:(.+))?)?', 'i');\r\n const regexResult = urlRegex.exec(url);\r\n return { protocol: regexResult && regexResult[1], url: regexResult && regexResult[2] };\r\n};\r\n","import { repeat } from 'underscore.string';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useState, memo } from 'react';\r\n\r\nimport { AdapterFactory, withValidation, withError } from '@bingads-webui-react/validation';\r\nimport { Input } from '@bingads-webui-react/primitive';\r\n\r\nconst randomPasswordMask = () => repeat('*', 4 + (Math.random() * 5));\r\n\r\nexport const PasswordEditor = memo((props) => {\r\n const [isFakePassword, setIsFakePassword] = useState(props.hasPassword && !props.password);\r\n const [fakePassword] = useState(randomPasswordMask());\r\n const [password, setPassword] =\r\n useState(isFakePassword ? fakePassword : (props.password || ''));\r\n\r\n const onPasswordChange = ({ target: { value } }) => {\r\n setIsFakePassword(false);\r\n setPassword(value);\r\n props.onChange(value);\r\n };\r\n\r\n const onPasswordFocus = () => {\r\n if (isFakePassword) {\r\n setPassword('');\r\n }\r\n };\r\n\r\n const onPasswordBlur = () => {\r\n if (isFakePassword) {\r\n setPassword(fakePassword);\r\n }\r\n };\r\n\r\n return (\r\n \r\n );\r\n});\r\n\r\nPasswordEditor.propTypes = {\r\n id: PropTypes.string,\r\n password: PropTypes.string,\r\n hasPassword: PropTypes.bool,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n\r\nPasswordEditor.defaultProps = {\r\n id: undefined,\r\n password: '',\r\n hasPassword: false,\r\n};\r\n\r\n\r\nconst PasswordEditorValidationAdapter = AdapterFactory({\r\n valueToInject: 'password',\r\n});\r\n\r\nexport const PasswordEditorWithValidation = withError(withValidation(\r\n PasswordEditor,\r\n PasswordEditorValidationAdapter\r\n));\r\n","import _ from 'underscore';\r\n\r\nimport { toLegacyTimeZone, fromLegacyTimeZone } from '@bingads-webui-universal/time-zone-converter';\r\n\r\nimport { timeZoneOffset } from './humanize-date';\r\n\r\nexport function getTimeZoneOptions(s$Campaign, i18n) {\r\n return _.chain(s$Campaign.properties.TimeZone.enum)\r\n .map(timeZone =>\r\n ({\r\n index: String(toLegacyTimeZone(timeZone)),\r\n text: i18n.getString(`TimeZone_${timeZone}`).replace(/\\{0\\}\\s*\\{1\\}\\s*/, ''),\r\n value: timeZone,\r\n }))\r\n .sortBy(option => timeZoneOffset(option.text))\r\n .value();\r\n}\r\n\r\nexport function getTimeZoneText(i18n, timeZoneId) {\r\n const text = i18n.getString(`TimeZone_${fromLegacyTimeZone(Number(timeZoneId))}`);\r\n return _.isString(text) ? text.replace(/\\{0\\}\\s*\\{1\\}\\s*/, '') : null;\r\n}\r\n","// taken from component/timezonemapper/index\r\nexport function timeZoneOffset(timeZone) {\r\n const re = /^\\(GMT([+-]\\d{1,2}):(\\d{1,2})\\).*$/;\r\n return parseInt(timeZone.replace(re, '$1.$2'), 10) || 0;\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { Alert } from '@bingads-webui-react/alert';\r\n\r\nexport function UpdateNowProgress({\r\n i18n, updateNowQueuedText, progressPercentage, isForVNext,\r\n}) {\r\n return (\r\n {updateNowQueuedText}\r\n
\r\n
\r\n
\r\n
\r\n {!isForVNext && i18n.getString('Feeds_FeedUpload_PercentageFormatter', {\r\n percentage: progressPercentage.toFixed(0),\r\n })}\r\n
\r\n
\r\n {isForVNext && ( {i18n.getString('Feeds_FeedUpload_PercentageFormatter', { percentage: progressPercentage.toFixed(0) })} )}\r\n
\r\n \r\n )}\r\n level=\"Warning\"\r\n dismissible={false}\r\n icon={()}\r\n />);\r\n}\r\n\r\nUpdateNowProgress.propTypes = {\r\n updateNowQueuedText: PropTypes.string.isRequired,\r\n progressPercentage: PropTypes.number.isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n isForVNext: PropTypes.bool,\r\n};\r\n\r\nUpdateNowProgress.defaultProps = {\r\n isForVNext: false,\r\n};\r\n","import _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport classnames from 'classnames';\r\n\r\nimport { AdapterFactory, withValidation, withError } from '@bingads-webui-react/validation';\r\nimport { Input, Select } from '@bingads-webui-react/primitive';\r\n\r\nimport { parseUrl } from './parse-url';\r\nimport { buildUrl } from './build-url';\r\n\r\nconst protocols = [{\r\n value: 'https',\r\n text: 'https://',\r\n}, {\r\n value: 'http',\r\n text: 'http://',\r\n}];\r\n\r\nexport class UrlEditor extends React.Component {\r\n static propTypes = {\r\n id: PropTypes.string,\r\n url: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n protocols: PropTypes.arrayOf(PropTypes.shape({\r\n value: PropTypes.string.isRequired,\r\n text: PropTypes.string.isRequired,\r\n })),\r\n ariaLabelledby: PropTypes.string,\r\n i18n: PropTypes.shape({ getString: PropTypes.func }),\r\n };\r\n\r\n static defaultProps = {\r\n id: undefined,\r\n url: '',\r\n protocols,\r\n ariaLabelledby: '',\r\n i18n: _.noop,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n let { protocol, url } = parseUrl(props.url);\r\n protocol = protocol || _.first(props.protocols).value;\r\n url = url || '';\r\n this.state = { protocol, url };\r\n }\r\n\r\n onUrlChange = (url) => {\r\n this.props.onChange(url);\r\n }\r\n\r\n onUrlPartChange = (e) => {\r\n const rawInput = e.target.value;\r\n let { protocol, url } = parseUrl(rawInput);\r\n if (!protocol || (protocol && !_.findWhere(this.props.protocols, { value: protocol }))) {\r\n // ignoring not supported protocols\r\n // and keeping URL input's value\r\n protocol = null;\r\n url = rawInput;\r\n }\r\n\r\n const newUrl = url || '';\r\n const newProtocol = protocol || this.state.protocol;\r\n\r\n const fullUrl = url ? this.buildFullUrl({\r\n protocol: newProtocol,\r\n url: newUrl.trim(),\r\n }) : '';\r\n\r\n this.setState({ url: newUrl, protocol: newProtocol });\r\n this.onUrlChange(fullUrl);\r\n }\r\n\r\n onProtocolPartChange = (e) => {\r\n e.stopPropagation();\r\n const protocol = e.target.value;\r\n const url = this.state.url.trim();\r\n\r\n const fullUrl = url ? this.buildFullUrl({\r\n protocol,\r\n url,\r\n }) : '';\r\n\r\n this.setState({ protocol });\r\n this.onUrlChange(fullUrl);\r\n }\r\n\r\n buildFullUrl = ({ protocol, url }) => buildUrl({ protocol, url, protocols: this.props.protocols })\r\n\r\n render() {\r\n const { protocol, url } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n \r\n {this.props.protocols.map(option => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst UrlEditorValidationAdapter = AdapterFactory({\r\n valueToInject: 'url',\r\n});\r\n\r\nexport const UrlEditorWithValidation = withError(withValidation(\r\n UrlEditor,\r\n UrlEditorValidationAdapter\r\n));\r\n","import _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport classnames from 'classnames';\r\n\r\nimport { AdapterFactory, withValidation, withError } from '@bingads-webui-react/validation';\r\nimport { Dropdown, TextField } from '@bingads-webui-react/fabric-control';\r\n\r\nimport { parseUrl } from './parse-url';\r\nimport { buildUrl } from './build-url';\r\n\r\nconst protocols = [{\r\n value: 'https',\r\n text: 'https://',\r\n}, {\r\n value: 'http',\r\n text: 'http://',\r\n}];\r\n\r\nconst textFieldStyle = {\r\n root: {\r\n width: 300,\r\n display: 'inline-block',\r\n paddingLeft: 10,\r\n },\r\n};\r\n\r\nconst protocolDropdownStyle = {\r\n root: {\r\n display: 'inline-block',\r\n selectors: {\r\n '& .ms-Dropdown-title': {\r\n 'margin-bottom': '-10px',\r\n },\r\n },\r\n marginRight: 15,\r\n },\r\n};\r\n\r\nexport class FluentUrlEditor extends React.Component {\r\n static propTypes = {\r\n id: PropTypes.string,\r\n url: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n protocols: PropTypes.arrayOf(PropTypes.shape({\r\n value: PropTypes.string.isRequired,\r\n text: PropTypes.string.isRequired,\r\n })),\r\n ariaLabelledby: PropTypes.string,\r\n i18n: PropTypes.shape({ getString: PropTypes.func }),\r\n };\r\n\r\n static defaultProps = {\r\n id: undefined,\r\n url: '',\r\n protocols,\r\n ariaLabelledby: '',\r\n i18n: _.noop,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n let { protocol, url } = parseUrl(props.url);\r\n protocol = protocol || _.first(props.protocols).value;\r\n url = url || '';\r\n this.state = { protocol, url };\r\n }\r\n\r\n onUrlChange = (url) => {\r\n this.props.onChange(url);\r\n }\r\n\r\n onUrlPartChange = (e, rawInput) => {\r\n let { protocol, url } = parseUrl(rawInput);\r\n if (!protocol || (protocol && !_.findWhere(this.props.protocols, { value: protocol }))) {\r\n // ignoring not supported protocols\r\n // and keeping URL input's value\r\n protocol = null;\r\n url = rawInput;\r\n }\r\n\r\n const newUrl = url || '';\r\n const newProtocol = protocol || this.state.protocol;\r\n\r\n const fullUrl = url ? this.buildFullUrl({\r\n protocol: newProtocol,\r\n url: newUrl.trim(),\r\n }) : '';\r\n\r\n this.setState({ url: newUrl, protocol: newProtocol });\r\n this.onUrlChange(fullUrl);\r\n }\r\n\r\n onProtocolPartChange = (e, { key }) => {\r\n const protocol = key;\r\n const url = this.state.url.trim();\r\n\r\n const fullUrl = url ? this.buildFullUrl({\r\n protocol,\r\n url,\r\n }) : '';\r\n\r\n this.setState({ protocol });\r\n this.onUrlChange(fullUrl);\r\n }\r\n\r\n buildFullUrl = ({ protocol, url }) => buildUrl({ protocol, url, protocols: this.props.protocols })\r\n\r\n render() {\r\n const { protocol, url } = this.state;\r\n\r\n const dropdownItems = this.props.protocols.map(option => ({\r\n key: option.value,\r\n text: option.text,\r\n }));\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst FluentUrlEditorValidationAdapter = AdapterFactory({\r\n valueToInject: 'url',\r\n});\r\n\r\nexport const FluentUrlEditorWithValidation = withError(withValidation(\r\n FluentUrlEditor,\r\n FluentUrlEditorValidationAdapter\r\n));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { LearnMoreLink } from '@bingads-webui-campaign-react/help';\r\n\r\nexport function SchedulesTabHeaderView(props) {\r\n const { i18n } = props.deps;\r\n\r\n const headerText = i18n.getString('Feeds_FeedItems_SchedulesTab_HeaderText');\r\n const learnMoreText = i18n.getString('Control_PaneHelp_LearnMore');\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nSchedulesTabHeaderView.propTypes = {\r\n deps: PropTypes.shape({\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n }).isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport { Button } from '@bingads-webui-react/primitive';\r\n\r\nimport { SchedulesTabHeaderView } from './schedules-tab-header-view';\r\n\r\nexport class SchedulesTabNoScheduleView extends React.PureComponent {\r\n static propTypes = {\r\n deps: PropTypes.shape({\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n }).isRequired,\r\n enableHeader: PropTypes.bool,\r\n onCreateSchedule: PropTypes.func.isRequired,\r\n disabled: PropTypes.bool,\r\n };\r\n\r\n static defaultProps = {\r\n enableHeader: true,\r\n disabled: false,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const { i18n } = props.deps;\r\n\r\n this.addScheduleButtonText = i18n.getString('Feeds_FeedItems_SchedulesTab_AddScheduleButton_Text');\r\n this.onCreateClicked = this.onCreateClicked.bind(this);\r\n }\r\n\r\n onCreateClicked(event) {\r\n this.props.onCreateSchedule({ event });\r\n }\r\n\r\n render() {\r\n const { deps } = this.props;\r\n\r\n return (\r\n
\r\n {this.props.enableHeader && }\r\n
\r\n \r\n {this.addScheduleButtonText}\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { Button, Label, Select } from '@bingads-webui-react/primitive';\r\nimport { ErrorMessages, withError } from '@bingads-webui-react/validation';\r\nimport { Input, ValidationGroup } from '@bingads-webui-react/primitive-validation';\r\nimport { HelpIcon } from '@bingads-webui-campaign-react/help';\r\nimport { Alert } from '@bingads-webui-react/alert';\r\nimport { CronFormatter } from '@bingads-webui/cron-formatter';\r\nimport { CronFrequencyEditorWithValidation } from '@bingads-webui-campaign-react/cron-frequency-editor';\r\n\r\nimport { UrlEditorWithValidation, PasswordEditorWithValidation, parseUrl, getTimeZoneOptions, buildUrl } from './components';\r\nimport { SchedulesTabHeaderView } from './schedules-tab-header-view';\r\n\r\nconst CronFrequencyEditorWithValidationSingleLine = withError(props => (\r\n
\r\n \r\n
\r\n));\r\n\r\nconst isInsecureProtocol = (fullUrl) => {\r\n const { protocol } = parseUrl(fullUrl);\r\n return protocol === 'http' || protocol === 'ftp';\r\n};\r\n\r\nconst schema = {\r\n name: 'Schedule Schema',\r\n type: 'object',\r\n properties: {\r\n cron: {\r\n type: 'string',\r\n required: true,\r\n },\r\n url: {\r\n type: 'string',\r\n required: true,\r\n },\r\n username: {\r\n type: 'string',\r\n required: false,\r\n },\r\n password: {\r\n type: 'string',\r\n required: false,\r\n },\r\n },\r\n};\r\n\r\nexport class SchedulesTabScheduleEdit extends React.Component {\r\n static propTypes = {\r\n deps: PropTypes.shape({\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n }).isRequired,\r\n enableHeader: PropTypes.bool,\r\n onSaveSchedule: PropTypes.func.isRequired,\r\n onCancelEditSchedule: PropTypes.func.isRequired,\r\n schedule: PropTypes.shape({\r\n Id: PropTypes.number,\r\n Cron: PropTypes.string,\r\n TimeZoneId: PropTypes.number,\r\n Url: PropTypes.string,\r\n Protocol: PropTypes.string,\r\n State: PropTypes.string,\r\n Username: PropTypes.string,\r\n Password: PropTypes.string,\r\n }),\r\n lastError: PropTypes.arrayOf(PropTypes.string),\r\n };\r\n\r\n static defaultProps = {\r\n enableHeader: true,\r\n schedule: undefined,\r\n lastError: [],\r\n }\r\n\r\n static getDerivedStateFromProps(props/* , state */) {\r\n return {\r\n errorMessages: props.lastError,\r\n };\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const { i18n, timeZoneId: accountTimeZoneId, campaignSchema } = props.deps;\r\n\r\n this.timeZoneOptions = getTimeZoneOptions(campaignSchema, i18n);\r\n\r\n this.cronFormatter = new CronFormatter({ i18n });\r\n this.cronFrequencies = this.cronFormatter.getCronFrequenciesEnum();\r\n this.enabledFrequencies = [\r\n this.cronFrequencies.DAILY,\r\n this.cronFrequencies.WEEKLY,\r\n this.cronFrequencies.MONTHLY,\r\n this.cronFrequencies.EVERY_6_HOURS,\r\n this.cronFrequencies.EVERY_12_HOURS,\r\n ];\r\n\r\n this.saveScheduleButtonText = i18n.getString('Form_SaveButton');\r\n this.cancelEditScheduleButtonText = i18n.getString('Form_CancelButton');\r\n\r\n this.frequencyLabelText = i18n.getString('Feeds_FeedItems_SchedulesTab_Frequency_Label');\r\n this.frequencyHelpId = 'pop_BA_AdCustomizerFeeds_Frequency';\r\n this.timeZoneLabelText = i18n.getString('Feeds_FeedItems_SchedulesTab_TimeZone_Label');\r\n this.timeZoneHelpId = 'pop_BA_AdCustomizerFeeds_TimeZone';\r\n this.urlLabelText = i18n.getString('Feeds_FeedItems_SchedulesTab_URL_Label');\r\n this.urlHelpId = 'pop_BA_AdCustomizerFeeds_URL';\r\n this.urlInsecureProtocolWarning = i18n.getString('Feeds_FeedItems_SchedulesTab_URL_InsecureProtocolWarning');\r\n this.usernameLabelText = i18n.getString('Feeds_FeedItems_SchedulesTab_Username_Label');\r\n this.usernameHelpId = 'pop_BA_AdCustomizerFeeds_Username';\r\n this.passwordLabelText = i18n.getString('Feeds_FeedItems_SchedulesTab_Password_Label');\r\n this.passwordHelpId = 'pop_BA_AdCustomizerFeeds_Password';\r\n\r\n this.onSaveClicked = this.onSaveClicked.bind(this);\r\n this.onCancelClicked = this.onCancelClicked.bind(this);\r\n\r\n const {\r\n schedule: {\r\n Cron: cron, TimeZoneId: timeZoneId, Url: url, Protocol: protocol,\r\n } = {},\r\n lastError: errorMessages = [],\r\n } = props;\r\n\r\n this.supportedProtocols = [{\r\n value: 'https',\r\n text: 'https://',\r\n }, {\r\n value: 'http',\r\n text: 'http://',\r\n }, {\r\n value: 'sftp',\r\n text: 'sftp://',\r\n }, {\r\n value: 'ftp',\r\n text: 'ftp://',\r\n }];\r\n\r\n this.state = {\r\n url: url ? buildUrl({ url, protocol, protocols: this.supportedProtocols }) : '',\r\n cron,\r\n timeZoneId: timeZoneId || accountTimeZoneId,\r\n errorMessages,\r\n isValid: false,\r\n };\r\n\r\n const {\r\n schedule: {\r\n Username: username,\r\n } = {},\r\n } = props;\r\n this.state.username = username;\r\n this.state.clearPassword = false;\r\n this.state.passwordKey = 1;\r\n }\r\n\r\n onSaveClicked = (event) => {\r\n this.props.onSaveSchedule({ event, schedule: this.getSchedule() });\r\n this.setState({\r\n errorMessages: [],\r\n });\r\n }\r\n\r\n onCancelClicked = (event) => {\r\n this.props.onCancelEditSchedule({ event, schedule: this.props.schedule });\r\n }\r\n\r\n onUrlChange = (url) => {\r\n this.setState({ url });\r\n this.removeNonDirtyPassword();\r\n }\r\n\r\n onCronChange = (cron) => {\r\n this.setState({ cron });\r\n }\r\n\r\n onTimeZoneChange = (event) => {\r\n this.setState({ timeZoneId: parseInt(event.target.value, 10) });\r\n }\r\n\r\n onUsernameChange = (event) => {\r\n this.setState({ username: event.target.value });\r\n this.removeNonDirtyPassword();\r\n }\r\n\r\n onPasswordChange = (password) => {\r\n this.setState({ password, clearPassword: false });\r\n }\r\n\r\n onValidate = (result) => {\r\n this.setState({ isValid: result.isValid, errorMessages: [] });\r\n }\r\n\r\n getSchedule() {\r\n const { protocol, url } = parseUrl(this.state.url);\r\n const schedule = {\r\n Id: (this.props.schedule && this.props.schedule.Id) || undefined,\r\n Cron: this.state.cron,\r\n TimeZoneId: this.state.timeZoneId,\r\n Protocol: protocol,\r\n Url: url,\r\n State: (this.props.schedule && this.props.schedule.State) || undefined,\r\n };\r\n\r\n schedule.Username = this.state.username;\r\n schedule.Password = this.state.password;\r\n schedule.ClearPassword = this.state.clearPassword;\r\n\r\n return schedule;\r\n }\r\n\r\n removeNonDirtyPassword = () => {\r\n if (!this.passwordRef.state.isDirty && !this.state.clearPassword) {\r\n this.setState({ clearPassword: true, passwordKey: 2 });\r\n }\r\n }\r\n\r\n renderTimezoneOptions() {\r\n return this.timeZoneOptions.map(({ value, index, text }) =>\r\n (\r\n \r\n ));\r\n }\r\n\r\n render() {\r\n const { deps, deps: { i18n } } = this.props;\r\n const {\r\n url, cron, timeZoneId, isValid, errorMessages,\r\n } = this.state;\r\n\r\n const {\r\n username, password, clearPassword, passwordKey,\r\n } = this.state;\r\n const showInsecureProtocolWarning = isInsecureProtocol(url);\r\n\r\n return (\r\n
\r\n {this.props.enableHeader && }\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {this.renderTimezoneOptions()}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {showInsecureProtocolWarning ? (\r\n )}\r\n dismissible={false}\r\n />\r\n ) : null}\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n { this.passwordRef = ref; }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { Button, Label } from '@bingads-webui-react/primitive';\r\nimport { HelpIcon } from '@bingads-webui-campaign-react/help';\r\nimport { CronFormatter } from '@bingads-webui/cron-formatter';\r\nimport { Alert } from '@bingads-webui-react/alert';\r\n\r\nimport { getTimeZoneText, UpdateNowProgress } from './components';\r\nimport { SchedulesTabHeaderView } from './schedules-tab-header-view';\r\n\r\nfunction getScheduleText(cronFormatter, { Cron }) {\r\n return cronFormatter.formatCronString(Cron);\r\n}\r\n\r\n// TODO: uncomment when MT starts sending the data back\r\n// function getLastUploadTimeText(/* schedule */) {\r\n// return 'TBD';\r\n// }\r\n\r\nfunction formatUrl(schedule) {\r\n return schedule.Url && schedule.Protocol ? `${schedule.Protocol}://${schedule.Url}` : '';\r\n}\r\n\r\nconst isUpdateNowQueue = updateNowTask =>\r\n (updateNowTask && updateNowTask.updateRuleId && !updateNowTask.isFinished);\r\n\r\nexport class SchedulesTabScheduleView extends React.Component {\r\n static propTypes = {\r\n deps: PropTypes.shape({\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n }).isRequired,\r\n enableHeader: PropTypes.bool,\r\n onEditSchedule: PropTypes.func.isRequired,\r\n onPauseSchedule: PropTypes.func.isRequired,\r\n onEnableSchedule: PropTypes.func.isRequired,\r\n onUpdateNow: PropTypes.func.isRequired,\r\n onRemoveSchedule: PropTypes.func.isRequired,\r\n schedule: PropTypes.shape({\r\n Cron: PropTypes.string,\r\n TimeZoneId: PropTypes.number,\r\n Url: PropTypes.string,\r\n Protocol: PropTypes.string,\r\n State: PropTypes.string,\r\n }).isRequired,\r\n updateNowTask: PropTypes.shape({\r\n updateRuleId: PropTypes.number,\r\n rowsProcessed: PropTypes.number,\r\n totalCount: PropTypes.number,\r\n isFinished: PropTypes.bool,\r\n isFailed: PropTypes.bool,\r\n }).isRequired,\r\n updateNowTaskObservable: PropTypes.shape({\r\n subscribe: PropTypes.func,\r\n }).isRequired,\r\n lastError: PropTypes.arrayOf(PropTypes.string),\r\n isForVNext: PropTypes.bool,\r\n dsiableEdit: PropTypes.bool,\r\n };\r\n\r\n static defaultProps = {\r\n enableHeader: true,\r\n lastError: [],\r\n isForVNext: false,\r\n dsiableEdit: false,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const {\r\n deps, lastError: errorMessages = [], updateNowTask,\r\n } = props;\r\n const { i18n } = deps;\r\n\r\n this.cronFormatter = new CronFormatter({ i18n });\r\n\r\n this.editScheduleButtonText = i18n.getString('Feeds_FeedItems_SchedulesTab_EditScheduleButton_Text');\r\n this.pauseScheduleButtonText = i18n.getString('Feeds_FeedItems_SchedulesTab_PauseScheduleButton_Text');\r\n this.enableScheduleButtonText = i18n.getString('Feeds_FeedItems_SchedulesTab_EnableScheduleButton_Text');\r\n this.updateNowButtonText = i18n.getString('Feeds_FeedItems_SchedulesTab_UpdateNowButton_Text');\r\n this.removeScheduleButtonText = i18n.getString('Feeds_FeedItems_SchedulesTab_RemoveScheduleButton_Text');\r\n\r\n this.scheduleIsPausedText = i18n.getString('Feeds_FeedItems_SchedulesTab_Schedule_Paused_Alert_Text');\r\n this.updateNowQueuedText = i18n.getString('Feeds_FeedItems_SchedulesTab_Update_Now_Queued_Alert_Text');\r\n\r\n this.frequencyLabelText = i18n.getString('Feeds_FeedItems_SchedulesTab_Frequency_Label');\r\n this.frequencyHelpId = 'pop_BA_AdCustomizerFeeds_Frequency';\r\n this.timeZoneLabelText = i18n.getString('Feeds_FeedItems_SchedulesTab_TimeZone_Label');\r\n this.timeZoneHelpId = 'pop_BA_AdCustomizerFeeds_TimeZone';\r\n this.lastUploadTimeLabelText = i18n.getString('Feeds_FeedItems_SchedulesTab_Last_Upload_Time_Label');\r\n this.lastUploadTimeHelpId = 'pop_BA_AdCustomizerFeeds_LastUpdate';\r\n this.urlLabelText = i18n.getString('Feeds_FeedItems_SchedulesTab_URL_Label');\r\n this.urlHelpId = 'pop_BA_AdCustomizerFeeds_URL';\r\n\r\n this.state = {\r\n errorMessages,\r\n updateNowQueued: isUpdateNowQueue(updateNowTask),\r\n updateNowTask,\r\n lastError: props.lastError,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.updateNowTaskSubscription = this.props.updateNowTaskObservable.subscribe({\r\n next: (model, updateNowTask) => {\r\n this.setState({\r\n updateNowTask: _.clone(updateNowTask),\r\n updateNowQueued: isUpdateNowQueue(updateNowTask),\r\n });\r\n },\r\n });\r\n }\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n if (nextProps.lastError !== prevState.lastError) {\r\n return { errorMessages: nextProps.lastError, lastError: nextProps.lastError };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.updateNowTaskSubscription) {\r\n this.updateNowTaskSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n onEditClicked = (event) => {\r\n this.props.onEditSchedule({ event, schedule: this.props.schedule });\r\n const { updateNowTask } = this.state;\r\n this.setState({\r\n errorMessages: [],\r\n updateNowQueued: isUpdateNowQueue(updateNowTask),\r\n });\r\n }\r\n\r\n onPauseClicked = (event) => {\r\n this.props.onPauseSchedule({ event, schedule: this.props.schedule });\r\n const { updateNowTask } = this.state;\r\n this.setState({\r\n errorMessages: [],\r\n updateNowQueued: isUpdateNowQueue(updateNowTask),\r\n });\r\n }\r\n\r\n onEnableClicked = (event) => {\r\n this.props.onEnableSchedule({ event, schedule: this.props.schedule });\r\n const { updateNowTask } = this.state;\r\n this.setState({\r\n errorMessages: [],\r\n updateNowQueued: isUpdateNowQueue(updateNowTask),\r\n });\r\n }\r\n\r\n onUpdateNowClicked = (event) => {\r\n this.props.onUpdateNow({ event, schedule: this.props.schedule });\r\n this.setState({\r\n errorMessages: [],\r\n updateNowQueued: true,\r\n });\r\n }\r\n\r\n onRemoveClicked = (event) => {\r\n this.props.onRemoveSchedule({ event, schedule: this.props.schedule });\r\n const { updateNowTask } = this.state;\r\n this.setState({\r\n errorMessages: [],\r\n updateNowQueued: isUpdateNowQueue(updateNowTask),\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n deps, schedule, isForVNext, dsiableEdit,\r\n } = this.props;\r\n const { i18n } = deps;\r\n const isPaused = schedule && schedule.State !== 'Active';\r\n const hasErrors = !_.isEmpty(this.state.errorMessages);\r\n const { updateNowQueued, updateNowTask } = this.state;\r\n let progressPercentage = 0;\r\n if (updateNowTask.isFinished) {\r\n progressPercentage = 100;\r\n } else if (updateNowTask.totalCount) {\r\n progressPercentage = (updateNowTask.rowsProcessed * 100) /\r\n updateNowTask.totalCount;\r\n }\r\n const frequencyText = getScheduleText(this.cronFormatter, schedule);\r\n const timeZoneText = getTimeZoneText(i18n, schedule.TimeZoneId);\r\n // TODO: uncomment when MT starts sending the data back\r\n // const lastUploadTimeText = getLastUploadTimeText(schedule);\r\n const url = formatUrl(schedule);\r\n\r\n return (\r\n
\r\n {this.props.enableHeader && }\r\n {(isPaused || hasErrors || updateNowQueued) && (\r\n
\r\n {hasErrors && (\r\n
\r\n {this.state.errorMessages.map(errorMessage => (\r\n )}\r\n />\r\n ))}\r\n
\r\n )}\r\n {isPaused && (\r\n
\r\n )}\r\n />\r\n
\r\n )}\r\n {updateNowQueued && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {frequencyText}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {timeZoneText}\r\n
\r\n\r\n {/*\r\n // TODO: uncomment when MT starts sending the data back\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n {lastUploadTimeText}\r\n
\r\n */}\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n {url}\r\n
\r\n
\r\n
\r\n \r\n {!isPaused &&\r\n }\r\n {isPaused &&\r\n }\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport React, { useState, memo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Dropdown } from '@bingads-webui-react/fabric-control';\r\n\r\nconst frequencyStyle = {\r\n root: { width: 175 },\r\n callout: {\r\n selectors: {\r\n '& .ms-Callout-main': {\r\n 'max-height': 300,\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport const Frequency = memo(({\r\n id,\r\n cronFormatter,\r\n onChange,\r\n selected,\r\n className,\r\n enabledFrequencies,\r\n ariaLabelledby,\r\n}) => {\r\n const [selectedFrequency, setFrequency] = useState(selected.toString());\r\n\r\n const cronFrequencies = cronFormatter.getCronFrequenciesEnum();\r\n const noneFrequency = cronFrequencies.NONE;\r\n const frequencies = enabledFrequencies ?\r\n [noneFrequency, ...enabledFrequencies] : _.values(cronFrequencies);\r\n\r\n const options = frequencies.map(frequency => ({\r\n text: cronFormatter.formatCronFrequencyUpperCase(frequency),\r\n key: frequency.toString(),\r\n }));\r\n\r\n return (\r\n {\r\n setFrequency(key);\r\n const frequency = parseInt(key, 10);\r\n onChange(frequency);\r\n }}\r\n dropdownWidth={200}\r\n options={options}\r\n aria-labelledby={ariaLabelledby}\r\n styles={frequencyStyle}\r\n />\r\n );\r\n});\r\n\r\nFrequency.propTypes = {\r\n id: PropTypes.string,\r\n className: PropTypes.string.isRequired,\r\n cronFormatter: PropTypes.shape({\r\n formatCronFrequency: PropTypes.func,\r\n }).isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n selected: PropTypes.number.isRequired,\r\n enabledFrequencies: PropTypes.arrayOf(PropTypes.number),\r\n ariaLabelledby: PropTypes.string,\r\n};\r\n\r\nFrequency.defaultProps = {\r\n id: undefined,\r\n enabledFrequencies: undefined,\r\n ariaLabelledby: '',\r\n};\r\n","export function getCronModel(cronFormatter, cron) {\r\n return cron ?\r\n cronFormatter.parse(cron) :\r\n { frequency: cronFormatter.getCronFrequenciesEnum().NONE };\r\n}\r\n","import _ from 'underscore';\r\nimport React, { useState, memo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Dropdown } from '@bingads-webui-react/fabric-control';\r\n\r\nexport const Hour = memo(({\r\n classNamePrefix,\r\n cronFormatter,\r\n onChange,\r\n selected,\r\n ariaLabelledby,\r\n}) => {\r\n const [selectedHour, setHour] = useState(selected);\r\n const translations = cronFormatter.getHoursOfDay();\r\n const options = _.range(0, 24).map(hour => ({\r\n text: translations[hour],\r\n key: hour,\r\n }));\r\n\r\n return (\r\n {\r\n const hour = parseInt(key, 10);\r\n setHour(hour);\r\n onChange(hour);\r\n }}\r\n aria-labelledby={ariaLabelledby}\r\n dropdownWidth={200}\r\n options={options}\r\n styles={{\r\n root: { width: '100px' },\r\n callout: {\r\n selectors: {\r\n '& .ms-Callout-main': {\r\n height: 300,\r\n },\r\n },\r\n },\r\n }}\r\n />\r\n );\r\n});\r\n\r\nHour.propTypes = {\r\n classNamePrefix: PropTypes.string.isRequired,\r\n cronFormatter: PropTypes.shape({\r\n getHoursOfDay: PropTypes.func,\r\n }).isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n selected: PropTypes.number.isRequired,\r\n ariaLabelledby: PropTypes.string,\r\n};\r\n\r\nHour.defaultProps = {\r\n ariaLabelledby: '',\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Hour } from './hour';\r\n\r\nexport function DailyExtra({\r\n classNamePrefix,\r\n cronFormatter,\r\n hour,\r\n onChange,\r\n ariaLabelledby,\r\n}) {\r\n const { DAILY } = cronFormatter.getCronFrequenciesEnum();\r\n return (\r\n \r\n {i18n => (\r\n {\r\n onChange(cronFormatter.toCronString({\r\n frequency: DAILY,\r\n hour: selectedHour,\r\n }));\r\n }}\r\n selected={hour}\r\n ariaLabelledby={ariaLabelledby}\r\n />\r\n ),\r\n }}\r\n template={` ${i18n.getString(_TL_('CronFrequencyEditor_Daily_Template'))}`}\r\n />\r\n )}\r\n \r\n );\r\n}\r\n\r\nDailyExtra.propTypes = {\r\n classNamePrefix: PropTypes.string.isRequired,\r\n cronFormatter: PropTypes.shape({\r\n toCronString: PropTypes.func,\r\n }).isRequired,\r\n hour: PropTypes.number.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n ariaLabelledby: PropTypes.string,\r\n};\r\n\r\nDailyExtra.defaultProps = {\r\n ariaLabelledby: '',\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useState, memo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Dropdown } from '@bingads-webui-react/fabric-control';\r\n\r\nexport const DayOfWeek = memo(({\r\n classNamePrefix,\r\n cronFormatter,\r\n onChange,\r\n selected,\r\n ariaLabelledby,\r\n}) => {\r\n const [selectedDayOfWeek, setDayOfWeek] = useState(selected);\r\n\r\n const translations = cronFormatter.getDaysOfWeek();\r\n const options = _.range(0, 7).map(dayOfWeek => ({\r\n text: translations[dayOfWeek],\r\n key: dayOfWeek,\r\n }));\r\n\r\n return (\r\n {\r\n const dayOfWeek = parseInt(key, 10);\r\n setDayOfWeek(dayOfWeek);\r\n onChange(dayOfWeek);\r\n }}\r\n aria-labelledby={ariaLabelledby}\r\n dropdownWidth={200}\r\n options={options}\r\n styles={{\r\n root: { width: '100px' },\r\n }}\r\n />\r\n );\r\n});\r\n\r\nDayOfWeek.propTypes = {\r\n classNamePrefix: PropTypes.string.isRequired,\r\n cronFormatter: PropTypes.shape({\r\n getDaysOfWeek: PropTypes.func,\r\n }).isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n selected: PropTypes.number.isRequired,\r\n ariaLabelledby: PropTypes.string,\r\n};\r\n\r\nDayOfWeek.defaultProps = {\r\n ariaLabelledby: '',\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { DayOfWeek } from './day-of-week';\r\nimport { Hour } from './hour';\r\n\r\nexport function WeeklyExtra({\r\n classNamePrefix,\r\n cronFormatter,\r\n dayOfWeek,\r\n hour,\r\n onChange,\r\n ariaLabelledby,\r\n}) {\r\n const { WEEKLY } = cronFormatter.getCronFrequenciesEnum();\r\n\r\n return (\r\n \r\n {i18n => (\r\n {\r\n onChange(cronFormatter.toCronString({\r\n dayOfWeek: selectedDayOfWeek,\r\n frequency: WEEKLY,\r\n hour,\r\n }));\r\n }}\r\n selected={dayOfWeek}\r\n ariaLabelledby={ariaLabelledby}\r\n />\r\n ),\r\n hour: (\r\n {\r\n onChange(cronFormatter.toCronString({\r\n dayOfWeek,\r\n frequency: WEEKLY,\r\n hour: selectedHour,\r\n }));\r\n }}\r\n selected={hour}\r\n ariaLabelledby={ariaLabelledby}\r\n />\r\n ),\r\n }}\r\n template={` ${i18n.getString(_TL_('CronFrequencyEditor_Weekly_Template'))}`}\r\n />\r\n )}\r\n \r\n );\r\n}\r\n\r\nWeeklyExtra.propTypes = {\r\n classNamePrefix: PropTypes.string.isRequired,\r\n cronFormatter: PropTypes.shape({\r\n toCronString: PropTypes.func,\r\n }).isRequired,\r\n dayOfWeek: PropTypes.number.isRequired,\r\n hour: PropTypes.number.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n ariaLabelledby: PropTypes.string,\r\n};\r\n\r\nWeeklyExtra.defaultProps = {\r\n ariaLabelledby: '',\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useState, memo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Dropdown } from '@bingads-webui-react/fabric-control';\r\n\r\nexport const DayOfMonth = memo(({\r\n classNamePrefix,\r\n cronFormatter,\r\n onChange,\r\n selected,\r\n ariaLabelledby,\r\n}) => {\r\n const translations = cronFormatter.getDaysOfMonth();\r\n\r\n const [selectedDayOfMonth, setDayOfMonth] = useState(selected);\r\n\r\n const options = _.range(1, 29).map(dayOfMonth => ({\r\n text: translations[dayOfMonth],\r\n key: dayOfMonth,\r\n }));\r\n\r\n return (\r\n {\r\n const dayOfMonth = parseInt(key, 10);\r\n setDayOfMonth(dayOfMonth);\r\n onChange(dayOfMonth);\r\n }}\r\n dropdownWidth={200}\r\n options={options}\r\n aria-labelledby={ariaLabelledby}\r\n styles={{\r\n root: { width: '100px' },\r\n callout: {\r\n selectors: {\r\n '& .ms-Callout-main': {\r\n height: 300,\r\n },\r\n },\r\n },\r\n }}\r\n />\r\n );\r\n});\r\n\r\nDayOfMonth.propTypes = {\r\n classNamePrefix: PropTypes.string.isRequired,\r\n cronFormatter: PropTypes.shape({\r\n getDaysOfMonth: PropTypes.func,\r\n }).isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n selected: PropTypes.number.isRequired,\r\n ariaLabelledby: PropTypes.string,\r\n};\r\n\r\nDayOfMonth.defaultProps = {\r\n ariaLabelledby: '',\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { DayOfMonth } from './day-of-month';\r\nimport { Hour } from './hour';\r\n\r\nexport function MonthlyExtra({\r\n classNamePrefix,\r\n cronFormatter,\r\n dayOfMonth,\r\n hour,\r\n onChange,\r\n ariaLabelledby,\r\n}) {\r\n const { MONTHLY } = cronFormatter.getCronFrequenciesEnum();\r\n return (\r\n \r\n {i18n => (\r\n {\r\n onChange(cronFormatter.toCronString({\r\n dayOfMonth: selectedDayOfMonth,\r\n frequency: MONTHLY,\r\n hour,\r\n }));\r\n }}\r\n selected={dayOfMonth}\r\n ariaLabelledby={ariaLabelledby}\r\n />\r\n ),\r\n hour: (\r\n {\r\n onChange(cronFormatter.toCronString({\r\n dayOfMonth,\r\n frequency: MONTHLY,\r\n hour: selectedHour,\r\n }));\r\n }}\r\n selected={hour}\r\n ariaLabelledby={ariaLabelledby}\r\n />\r\n ),\r\n }}\r\n template={` ${i18n.getString(_TL_('CronFrequencyEditor_Monthly_Template'))}`}\r\n />\r\n )}\r\n \r\n );\r\n}\r\n\r\nMonthlyExtra.propTypes = {\r\n classNamePrefix: PropTypes.string.isRequired,\r\n cronFormatter: PropTypes.shape({\r\n toCronString: PropTypes.func,\r\n }).isRequired,\r\n dayOfMonth: PropTypes.number.isRequired,\r\n hour: PropTypes.number.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n ariaLabelledby: PropTypes.string,\r\n};\r\n\r\nMonthlyExtra.defaultProps = {\r\n ariaLabelledby: '',\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { getCronModel } from '../get-cron-model';\r\nimport { DailyExtra } from './daily-extra';\r\nimport { WeeklyExtra } from './weekly-extra';\r\nimport { MonthlyExtra } from './monthly-extra';\r\n\r\nexport function Extra({\r\n classNamePrefix,\r\n cronFormatter,\r\n cron,\r\n onChange,\r\n ariaLabelledby,\r\n}) {\r\n const {\r\n NONE, DAILY, WEEKLY, MONTHLY,\r\n } = cronFormatter.getCronFrequenciesEnum();\r\n const {\r\n frequency,\r\n dayOfMonth,\r\n dayOfWeek,\r\n hour,\r\n } = getCronModel(cronFormatter, cron);\r\n\r\n switch (frequency) {\r\n case DAILY:\r\n return (\r\n \r\n );\r\n case WEEKLY:\r\n return (\r\n \r\n );\r\n case MONTHLY:\r\n return (\r\n \r\n );\r\n case NONE:\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\nExtra.propTypes = {\r\n classNamePrefix: PropTypes.string.isRequired,\r\n cronFormatter: PropTypes.shape({\r\n toCronString: PropTypes.func,\r\n }).isRequired,\r\n cron: PropTypes.string,\r\n onChange: PropTypes.func.isRequired,\r\n ariaLabelledby: PropTypes.string,\r\n};\r\n\r\nExtra.defaultProps = {\r\n cron: undefined,\r\n ariaLabelledby: '',\r\n};\r\n","import React, { useState, memo } from 'react';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport PropTypes from 'prop-types';\r\nimport { CronFormatter } from '@bingads-webui/cron-formatter';\r\nimport { Frequency } from './frequency';\r\nimport { Extra } from './extra/extra';\r\nimport { getCronModel } from './get-cron-model';\r\nimport { getDefaultCron } from './get-default-cron';\r\n\r\nconst getCronFrequencyEditorStyles = () => ({\r\n cronFrequencyEditorContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n '& .ms-Dropdown-container:not(:first-child)': {\r\n marginLeft: 15,\r\n },\r\n '& .ms-Dropdown-container': {\r\n marginRight: 15,\r\n },\r\n },\r\n});\r\n\r\nexport const CronFrequencyEditor = memo(withDefaultStyles(({\r\n id,\r\n cron,\r\n i18n,\r\n enabledFrequencies,\r\n onChange,\r\n ariaLabelledby,\r\n classes,\r\n}) => {\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n const [selectedCron, setCron] = useState(cron);\r\n\r\n const cronFormatter = new CronFormatter({ i18n });\r\n const onChangeCron = (newCron) => {\r\n onChange(newCron);\r\n setCron(newCron);\r\n };\r\n const onChangeFrequency = frequency =>\r\n onChangeCron(getDefaultCron(cronFormatter, frequency));\r\n\r\n const {\r\n frequency,\r\n } = getCronModel(cronFormatter, cron);\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n}, getCronFrequencyEditorStyles));\r\n\r\nCronFrequencyEditor.propTypes = {\r\n id: PropTypes.string,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n cron: PropTypes.string,\r\n enabledFrequencies: PropTypes.arrayOf(PropTypes.number),\r\n onChange: PropTypes.func.isRequired,\r\n ariaLabelledby: PropTypes.string,\r\n};\r\n\r\nCronFrequencyEditor.defaultProps = {\r\n id: undefined,\r\n cron: undefined,\r\n enabledFrequencies: undefined,\r\n ariaLabelledby: '',\r\n};\r\n","export function getDefaultCron(cronFormatter, frequency) {\r\n const {\r\n NONE, DAILY, WEEKLY, MONTHLY, EVERY_6_HOURS, EVERY_12_HOURS,\r\n } = cronFormatter.getCronFrequenciesEnum();\r\n switch (frequency) {\r\n case NONE:\r\n return null;\r\n case DAILY:\r\n return '0 0 * * * *';\r\n case WEEKLY:\r\n return '0 0 * * 0 *';\r\n case MONTHLY:\r\n return '0 0 1 * * *';\r\n case EVERY_6_HOURS:\r\n return '0 */6 * * * *';\r\n case EVERY_12_HOURS:\r\n return '0 */12 * * * *';\r\n default:\r\n return null;\r\n }\r\n}\r\n","import { AdapterFactory, withValidation } from '@bingads-webui-react/validation';\r\nimport { CronFrequencyEditor } from './cron-frequency-editor';\r\n\r\nconst CronFrequencyEditorValidationAdapter = AdapterFactory({\r\n valueToInject: 'cron',\r\n});\r\n\r\nexport const CronFrequencyEditorWithValidation = withValidation(\r\n CronFrequencyEditor,\r\n CronFrequencyEditorValidationAdapter\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nimport { Button, Label } from '@bingads-webui-react/primitive';\r\nimport { Dropdown } from '@bingads-webui-react/fabric-control';\r\nimport { HelpLink } from '@bingads-webui-react/help-link';\r\n\r\nimport { ErrorMessages, withError } from '@bingads-webui-react/validation';\r\nimport { Input, ValidationGroup } from '@bingads-webui-react/primitive-validation';\r\nimport { HelpIcon } from '@bingads-webui-campaign-react/help';\r\nimport { Alert } from '@bingads-webui-react/alert';\r\nimport { CronFormatter } from '@bingads-webui/cron-formatter';\r\nimport { CronFrequencyEditorWithValidation } from '@bingads-webui-campaign-react/fluent-cron-frequency-editor';\r\n\r\nimport { FluentUrlEditorWithValidation, PasswordEditorWithValidation, parseUrl, getTimeZoneOptions, buildUrl } from './components';\r\n\r\nconst CronFrequencyEditorWithValidationSingleLine = withError(props => (\r\n \r\n));\r\n\r\nconst isInsecureProtocol = (fullUrl) => {\r\n const { protocol } = parseUrl(fullUrl);\r\n return protocol === 'http' || protocol === 'ftp';\r\n};\r\n\r\nconst schema = {\r\n name: 'Schedule Schema',\r\n type: 'object',\r\n properties: {\r\n cron: {\r\n type: 'string',\r\n required: true,\r\n },\r\n url: {\r\n type: 'string',\r\n required: true,\r\n },\r\n username: {\r\n type: 'string',\r\n required: false,\r\n },\r\n password: {\r\n type: 'string',\r\n required: false,\r\n },\r\n },\r\n};\r\n\r\nexport class NewSchedulesTabScheduleEdit extends React.Component {\r\n static propTypes = {\r\n deps: PropTypes.shape({\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n }).isRequired,\r\n onSaveSchedule: PropTypes.func.isRequired,\r\n onCancelEditSchedule: PropTypes.func.isRequired,\r\n schedule: PropTypes.shape({\r\n Id: PropTypes.number,\r\n Cron: PropTypes.string,\r\n TimeZoneId: PropTypes.number,\r\n Url: PropTypes.string,\r\n Protocol: PropTypes.string,\r\n State: PropTypes.string,\r\n Username: PropTypes.string,\r\n Password: PropTypes.string,\r\n }),\r\n lastError: PropTypes.arrayOf(PropTypes.string),\r\n i18nStrings: PropTypes.shape({}).isRequired,\r\n };\r\n\r\n static defaultProps = {\r\n schedule: undefined,\r\n lastError: [],\r\n };\r\n\r\n static getDerivedStateFromProps(props/* , state */) {\r\n return {\r\n errorMessages: props.lastError,\r\n };\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const { i18n, timeZoneId: accountTimeZoneId, campaignSchema } = props.deps;\r\n\r\n this.timeZoneOptions = getTimeZoneOptions(campaignSchema, i18n);\r\n\r\n this.cronFormatter = new CronFormatter({ i18n });\r\n this.cronFrequencies = this.cronFormatter.getCronFrequenciesEnum();\r\n this.enabledFrequencies = [\r\n this.cronFrequencies.DAILY,\r\n this.cronFrequencies.WEEKLY,\r\n this.cronFrequencies.MONTHLY,\r\n this.cronFrequencies.EVERY_6_HOURS,\r\n this.cronFrequencies.EVERY_12_HOURS,\r\n ];\r\n\r\n this.saveScheduleButtonText = i18n.getString('Form_SaveButton');\r\n this.cancelEditScheduleButtonText = i18n.getString('Form_CancelButton');\r\n\r\n const { i18nStrings } = props;\r\n this.frequencyLabelText = i18nStrings.frequencyLabelText;\r\n this.frequencyHelpId = i18nStrings.frequencyHelpId;\r\n this.timeZoneLabelText = i18nStrings.timeZoneLabelText;\r\n this.timeZoneHelpId = i18nStrings.timeZoneHelpId;\r\n this.urlLabelText = i18nStrings.urlLabelText;\r\n this.urlHelpId = i18nStrings.urlHelpId;\r\n this.descriptionHelpId = i18nStrings.descriptionHelpId;\r\n this.urlInsecureProtocolWarning = i18nStrings.urlInsecureProtocolWarning;\r\n this.usernameLabelText = i18nStrings.usernameLabelText;\r\n this.usernameHelpId = i18nStrings.usernameHelpId;\r\n this.passwordLabelText = i18nStrings.passwordLabelText;\r\n this.passwordHelpId = i18nStrings.passwordHelpId;\r\n\r\n this.onSaveClicked = this.onSaveClicked.bind(this);\r\n this.onCancelClicked = this.onCancelClicked.bind(this);\r\n\r\n const {\r\n schedule: {\r\n Cron: cron, TimeZoneId: timeZoneId, Url: url, Protocol: protocol,\r\n } = {},\r\n lastError: errorMessages = [],\r\n } = props;\r\n\r\n this.supportedProtocols = [{\r\n value: 'https',\r\n text: 'https://',\r\n }, {\r\n value: 'http',\r\n text: 'http://',\r\n }, {\r\n value: 'sftp',\r\n text: 'sftp://',\r\n }, {\r\n value: 'ftp',\r\n text: 'ftp://',\r\n }];\r\n\r\n this.state = {\r\n url: url ? buildUrl({ url, protocol, protocols: this.supportedProtocols }) : '',\r\n cron,\r\n timeZoneId: timeZoneId || accountTimeZoneId,\r\n errorMessages,\r\n isValid: false,\r\n };\r\n\r\n const {\r\n schedule: {\r\n Username: username,\r\n } = {},\r\n } = props;\r\n this.state.username = username;\r\n this.state.clearPassword = false;\r\n this.state.passwordKey = 1;\r\n }\r\n\r\n onSaveClicked = (event) => {\r\n this.props.onSaveSchedule({ event, schedule: this.getSchedule() });\r\n this.setState({\r\n errorMessages: [],\r\n });\r\n };\r\n\r\n onCancelClicked = (event) => {\r\n this.props.onCancelEditSchedule({ event, schedule: this.props.schedule });\r\n };\r\n\r\n onUrlChange = (url) => {\r\n this.setState({ url });\r\n this.removeNonDirtyPassword();\r\n };\r\n\r\n onCronChange = (cron) => {\r\n this.setState({ cron });\r\n };\r\n\r\n onTimeZoneChange = (e, { key }) => {\r\n this.setState({ timeZoneId: parseInt(key, 10) });\r\n };\r\n\r\n onUsernameChange = (event) => {\r\n this.setState({ username: event.target.value });\r\n this.removeNonDirtyPassword();\r\n };\r\n\r\n onPasswordChange = (password) => {\r\n this.setState({ password, clearPassword: false });\r\n };\r\n\r\n onValidate = (result) => {\r\n this.setState({ isValid: result.isValid, errorMessages: [] });\r\n };\r\n\r\n getSchedule() {\r\n const { protocol, url } = parseUrl(this.state.url);\r\n const schedule = {\r\n Id: (this.props.schedule && this.props.schedule.Id) || undefined,\r\n Cron: this.state.cron,\r\n TimeZoneId: this.state.timeZoneId,\r\n Protocol: protocol,\r\n Url: url,\r\n State: (this.props.schedule && this.props.schedule.State) || undefined,\r\n };\r\n\r\n schedule.Username = this.state.username;\r\n schedule.Password = this.state.password;\r\n schedule.ClearPassword = this.state.clearPassword;\r\n\r\n return schedule;\r\n }\r\n\r\n removeNonDirtyPassword = () => {\r\n if (!this.passwordRef.state.isDirty && !this.state.clearPassword) {\r\n this.setState({ clearPassword: true, passwordKey: 2 });\r\n }\r\n };\r\n render() {\r\n const { deps, deps: { i18n, newI18n } } = this.props;\r\n const {\r\n url, cron, timeZoneId, isValid, errorMessages,\r\n } = this.state;\r\n\r\n const timeZoneDropdownOptions = this.timeZoneOptions.map(({ index, text }) => ({\r\n key: index,\r\n text,\r\n }));\r\n\r\n const {\r\n username, password, clearPassword, passwordKey,\r\n } = this.state;\r\n const showInsecureProtocolWarning = isInsecureProtocol(url);\r\n\r\n return (\r\n
\r\n
\r\n

{newI18n.getString(_TL_('Schedule conversions'))}

\r\n {newI18n.getString(_TL_('Tell us where your conversion file is, and we’ll upload it on a regular basis.'))}\r\n {` ${newI18n.getString(_TL_('Learn more'))}`}\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {showInsecureProtocolWarning ? (\r\n )}\r\n dismissible={false}\r\n />\r\n ) : null}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n { this.passwordRef = ref; }}\r\n />\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\nexport const getDefaultSubAccount = i18n => ({\r\n key: 'selectAllSubAccount',\r\n name: i18n.getString('HotelCenter_Subheader_All_SubAccount_Label'),\r\n});\r\n\r\nexport const getModelItem = item => ({\r\n Id: item.key,\r\n Name: item.name,\r\n});\r\n\r\nexport const getSelectionItem = item => ({\r\n key: item.Id,\r\n name: item.Name,\r\n});\r\n\r\nexport const getChildUngroupId = (hotelGroups, subAccountId) => {\r\n const ungroup = _.find(\r\n hotelGroups,\r\n item => item.SubAccountId === subAccountId && item.Name === 'Ungrouped'\r\n );\r\n return ungroup ? ungroup.Id : '';\r\n};\r\n\r\nexport const getFirstChildGroup = (hotelGroups, subAccountId) => (\r\n _.find(hotelGroups, item => item.SubAccountId === subAccountId)\r\n);\r\n\r\nexport const getHotelGroupById = (hotelGroups, hotelGroupId) => (\r\n _.find(hotelGroups, item => item.Id === hotelGroupId)\r\n);\r\n\r\nexport const getSubAccountById = (hotelGroups, subAccountId) => {\r\n const group = _.find(hotelGroups, item => item.SubAccountId === subAccountId);\r\n return group ? {\r\n key: group.SubAccountId,\r\n name: group.SubAccountName,\r\n } : undefined;\r\n};\r\n\r\nexport const getAllChildrenGroupsId = (hotelGroups, subAccountId) => (\r\n _.chain(hotelGroups)\r\n .filter(item => item.SubAccountId === subAccountId)\r\n .pluck('Id')\r\n .value()\r\n);\r\n\r\nexport const buildHotelGroupLinks = (hotelGroups, onSubAccountClick, onHotelGroupClick, i18n) => (\r\n _.reduce(hotelGroups, (memo, hotelGroup) => {\r\n const subAccount = _.find(memo, item => item.key === hotelGroup.SubAccountId);\r\n const itemName = i18n.getString('HotelCenter_Assignment_GroupList_Item_Format', {\r\n groupName: hotelGroup.Name,\r\n associationCount: hotelGroup.HotelAssociationCount,\r\n });\r\n const hotelGrouplink = {\r\n key: hotelGroup.Id,\r\n name: itemName,\r\n automationId: `nav-hotelgroup-${hotelGroup.Id}`,\r\n onClick: onHotelGroupClick,\r\n url: '#',\r\n };\r\n\r\n if (hotelGroup.Name === 'Ungrouped') {\r\n hotelGrouplink.name = i18n.getString('HotelCenter_Group_GroupList_Ungrouped');\r\n }\r\n\r\n if (subAccount) {\r\n subAccount.links.push(hotelGrouplink);\r\n } else {\r\n memo.push({\r\n key: hotelGroup.SubAccountId,\r\n name: hotelGroup.SubAccountName,\r\n automationId: `nav-subaccount-${hotelGroup.SubAccountId}`,\r\n onClick: onSubAccountClick,\r\n url: '#',\r\n links: [hotelGrouplink],\r\n });\r\n }\r\n return memo;\r\n }, [])\r\n);\r\n\r\nexport const filterHotelGroupsByName = (hotelGroups, query) => (\r\n _.filter(hotelGroups, item => item.Name.indexOf(query) >= 0)\r\n);\r\n\r\nexport const getHotelGroupNameById = (hotelGroups, id) => {\r\n const hotelGroup = _.find(hotelGroups, item => item.Id === id);\r\n return hotelGroup.Name;\r\n};\r\n\r\nexport const getUngroupList = hotelGroups => (\r\n _.filter(hotelGroups, item => item.Name === 'Ungrouped')\r\n);\r\n\r\nexport const isUngrouped = (unGroupedList, key) => {\r\n const result = _.find(unGroupedList, item => item.Id === key);\r\n return result !== undefined;\r\n};\r\n\r\nexport const getHotelGroupAssociations = (hotelGroups, hotelGroupId) => {\r\n const hotelGroup = _.find(hotelGroups, item => item.Id === hotelGroupId);\r\n return hotelGroup ? hotelGroup.HotelAssociationCount : 0;\r\n};\r\n\r\nexport const getSubAccountAssociations = (hotelGroups, subAccountId) => (\r\n _.chain(hotelGroups)\r\n .filter(item => item.SubAccountId === subAccountId)\r\n .reduce((total, item) => total + item.HotelAssociationCount, 0)\r\n .value()\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { Nav } from '@bingads-webui-react/fabric-control';\r\nimport { Glyphicon } from '@bingads-webui-react/primitive';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport {\r\n buildHotelGroupLinks,\r\n getHotelGroupNameById,\r\n getUngroupList,\r\n isUngrouped,\r\n getHotelGroupAssociations,\r\n getSubAccountAssociations,\r\n} from './util';\r\n\r\nconst pageContext = globalContext.require('PageContext');\r\nconst permissions = pageContext && pageContext.Permissions;\r\nconst isHotelCenterDeprecation = permissions && permissions.dynamic.HotelCenterDeprecation;\r\n\r\nexport const HotelGroupNavTree = (props) => {\r\n const unGroupList = getUngroupList(props.hotelGroups);\r\n\r\n const onSubAccountClick = (event, item) => {\r\n props.onSubAccountClick(event, {\r\n key: item.key,\r\n name: item.name,\r\n hasHotelAssociation: getSubAccountAssociations(props.hotelGroups, item.key) > 0,\r\n });\r\n };\r\n\r\n const onCreateLinkClick = () => {\r\n if (!isHotelCenterDeprecation) {\r\n props.onCreateLinkClick();\r\n }\r\n };\r\n\r\n const onHotelGroupClick = (event, item) => {\r\n const hotelGroupName = getHotelGroupNameById(props.hotelGroups, item.key);\r\n props.onHotelGroupClick(event, {\r\n key: item.key,\r\n name: hotelGroupName,\r\n isUngroup: isUngrouped(unGroupList, item.key),\r\n hasHotelAssociation: getHotelGroupAssociations(props.hotelGroups, item.key) > 0,\r\n });\r\n };\r\n\r\n const allSubaccountLink = {\r\n key: 'selectAllSubAccount',\r\n name: props.i18n.getString('HotelCenter_Subheader_All_SubAccount_Label'),\r\n automationId: 'nav-action-select-all',\r\n url: '#',\r\n onClick: onSubAccountClick,\r\n };\r\n\r\n const createLink = {\r\n key: 'createNew',\r\n name: props.i18n.getString('HotelCenter_Subheader_CreateSubAccount_Label'),\r\n automationId: 'nav-action-create-new',\r\n url: '#',\r\n onClick: onCreateLinkClick,\r\n disabled: isHotelCenterDeprecation,\r\n };\r\n\r\n const hotelGroupLinks = buildHotelGroupLinks(\r\n props.hotelGroups,\r\n onSubAccountClick,\r\n onHotelGroupClick,\r\n props.i18n\r\n );\r\n\r\n const navLinkGroups = [{\r\n links: _.flatten([\r\n allSubaccountLink,\r\n hotelGroupLinks,\r\n createLink], true),\r\n }];\r\n\r\n const onRenderLink = link => (\r\n \r\n {\r\n link.key === 'createNew' ?\r\n
\r\n \r\n {link.name}\r\n
:\r\n {link.name}\r\n }\r\n
\r\n );\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nHotelGroupNavTree.propTypes = {\r\n onSubAccountClick: PropTypes.func.isRequired,\r\n onHotelGroupClick: PropTypes.func.isRequired,\r\n onCreateLinkClick: PropTypes.func.isRequired,\r\n hotelGroups: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.string,\r\n Name: PropTypes.string,\r\n SubAccountId: PropTypes.string,\r\n SubAccountName: PropTypes.string,\r\n HotelAssociationCount: PropTypes.number,\r\n })).isRequired,\r\n selectedKey: PropTypes.string,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nHotelGroupNavTree.defaultProps = {\r\n selectedKey: 'selectAllSubAccount',\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Dropdown, SearchBox, Label } from '@bingads-webui-react/fabric-control';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { getHotelGroupStyles } from './style/hotelgroup-selector-style';\r\nimport { HotelGroupNavTree } from './hotelgroup-nav-tree';\r\nimport {\r\n filterHotelGroupsByName,\r\n getDefaultSubAccount,\r\n} from './util';\r\n\r\nconst pageContext = globalContext.require('PageContext');\r\nconst permissions = pageContext && pageContext.Permissions;\r\nconst isHotelCenterDeprecation = permissions && permissions.dynamic.HotelCenterDeprecation;\r\n\r\nclass UnstyledSubAccountHotelGroupSelector extends React.PureComponent {\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n const nextState = {};\r\n\r\n if (nextProps.selectedItem &&\r\n (nextProps.selectedItem.key !== prevState.selectedItem.key ||\r\n nextProps.selectedItem.name !== prevState.selectedItem.name)) {\r\n nextState.selectedItem = nextProps.selectedItem;\r\n }\r\n\r\n return nextState;\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n currentGroups: this.props.hotelGroups,\r\n selectedItem: this.props.selectedItem,\r\n };\r\n\r\n this.dropdownRef = React.createRef();\r\n this.onRenderDropdownList = this.onRenderDropdownList.bind(this);\r\n this.defaultSubaccount = getDefaultSubAccount(props.i18n);\r\n }\r\n\r\n componentDidMount() {\r\n // eslint-disable-next-line no-underscore-dangle\r\n this.baseKeyDown = this.dropdownRef.current._onZoneKeyDown;\r\n // eslint-disable-next-line no-underscore-dangle\r\n this.dropdownRef.current._onZoneKeyDown = this.onDropdownListKeyDown;\r\n }\r\n\r\n onSubAccountClick = (event, item) => {\r\n this.setState({\r\n selectedItem: item,\r\n });\r\n this.dropdownRef.current._onDismiss(); // eslint-disable-line no-underscore-dangle\r\n this.props.onSubAccountClick(item);\r\n }\r\n\r\n onHotelGroupClick = (event, item) => {\r\n this.setState({\r\n selectedItem: item,\r\n });\r\n this.dropdownRef.current._onDismiss(); // eslint-disable-line no-underscore-dangle\r\n this.props.onHotelGroupClick(item);\r\n }\r\n\r\n onCreateLinkClick = () => {\r\n this.dropdownRef.current._onDismiss(); // eslint-disable-line no-underscore-dangle\r\n this.props.onCreateLinkClick();\r\n }\r\n\r\n onSearch = (query) => {\r\n const filtered = filterHotelGroupsByName(this.props.hotelGroups, query);\r\n this.setState({\r\n currentGroups: filtered,\r\n });\r\n this.props.onSearch(query);\r\n }\r\n\r\n onSearchClear = () => {\r\n this.setState({\r\n currentGroups: this.props.hotelGroups,\r\n });\r\n this.props.onSearchClear();\r\n }\r\n\r\n onDropdownListKeyDown = (e) => {\r\n const currentFocus = document.activeElement;\r\n const allSubAccountLink = document.getElementById('nav-action-select-all').parentNode.parentNode;\r\n const search = document.getElementById('search-container').querySelector('input');\r\n\r\n if (e.keyCode === 40 && // DOWN\r\n currentFocus.tagName.toLowerCase() === 'input') {\r\n allSubAccountLink.focus();\r\n e.stopPropagation();\r\n e.preventDefault();\r\n } else if (e.keyCode === 38 && // UP\r\n currentFocus.text === this.defaultSubaccount.name) {\r\n search.focus();\r\n e.stopPropagation();\r\n e.preventDefault();\r\n } else {\r\n this.baseKeyDown(e);\r\n }\r\n }\r\n\r\n onRenderDropdownList() {\r\n const { i18n } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {\r\n this.state.currentGroups.length === 0 ?\r\n
\r\n \r\n
: null\r\n }\r\n \r\n
\r\n );\r\n }\r\n\r\n render() {\r\n const { i18n, classes } = this.props;\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nUnstyledSubAccountHotelGroupSelector.propTypes = {\r\n onSubAccountClick: PropTypes.func.isRequired,\r\n onHotelGroupClick: PropTypes.func.isRequired,\r\n onCreateLinkClick: PropTypes.func.isRequired,\r\n onSearch: PropTypes.func.isRequired,\r\n onSearchClear: PropTypes.func.isRequired,\r\n hotelGroups: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.string,\r\n Name: PropTypes.string,\r\n SubAccountId: PropTypes.string,\r\n SubAccountName: PropTypes.string,\r\n HotelAssociationCount: PropTypes.number,\r\n })),\r\n isSubAccountSelected: PropTypes.bool.isRequired,\r\n selectedItem: PropTypes.objectOf(PropTypes.shape({\r\n key: PropTypes.string,\r\n name: PropTypes.string,\r\n })).isRequired,\r\n classes: PropTypes.objectOf(PropTypes.any).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nUnstyledSubAccountHotelGroupSelector.defaultProps = {\r\n hotelGroups: [],\r\n};\r\n\r\nexport const SubAccountHotelGroupSelector = withDefaultStyles(\r\n UnstyledSubAccountHotelGroupSelector,\r\n getHotelGroupStyles\r\n);\r\n","export const getHotelGroupStyles = () => ({\r\n hotelGroupSelector: {\r\n '& .ms-Dropdown-container': {\r\n width: 300,\r\n },\r\n },\r\n // Dropdown callout is directly under body\r\n '@global': {\r\n '.ms-Dropdown-callout': {\r\n '& .no-result': {\r\n lineHeight: '44px',\r\n paddingLeft: 10,\r\n },\r\n '& .ms-SearchBox-iconContainer': {\r\n width: 32,\r\n '& .ms-SearchBox-icon': {\r\n opacity: 1,\r\n },\r\n },\r\n '& .ms-SearchBox:hover .ms-SearchBox-iconContainer': {\r\n width: 32,\r\n },\r\n '& .ms-Nav-group .ms-Nav-groupContent': {\r\n marginBottom: 0,\r\n '& > ul > li:last-child': {\r\n borderTop: '1px solid lightgray',\r\n },\r\n },\r\n },\r\n },\r\n});\r\n","export const getDialogStyles = () => ({\r\n renameDialog: {\r\n '& .ms-Dialog-title': {\r\n wordBreak: 'break-word',\r\n },\r\n },\r\n deleteDialog: {\r\n '& .ms-Dialog-title': {\r\n wordBreak: 'break-word',\r\n },\r\n },\r\n});\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n PrimaryButton,\r\n DefaultButton,\r\n Dialog,\r\n DialogType,\r\n DialogFooter,\r\n} from '@bingads-webui-react/fabric-control';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { getDialogStyles } from './style/dialog-style';\r\n\r\nexport const DeleteDialog = (props) => {\r\n const { i18n } = props;\r\n\r\n const classes = useDefaultStyles(() => getDialogStyles());\r\n\r\n const onConfirmClick = () => {\r\n props.onConfirmClick();\r\n };\r\n\r\n const onCancelClick = () => {\r\n props.onCancelClick();\r\n };\r\n\r\n return (\r\n \r\n \r\n );\r\n};\r\n\r\nDeleteDialog.propTypes = {\r\n hideDialog: PropTypes.bool.isRequired,\r\n isUndeletable: PropTypes.bool.isRequired,\r\n undeletableMessage: PropTypes.string.isRequired,\r\n dialogTitle: PropTypes.string.isRequired,\r\n onConfirmClick: PropTypes.func.isRequired,\r\n onCancelClick: PropTypes.func.isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport {\r\n PrimaryButton,\r\n DefaultButton,\r\n TextField,\r\n Dialog,\r\n DialogType,\r\n DialogFooter,\r\n} from '@bingads-webui-react/fabric-control';\r\nimport { getDialogStyles } from './style/dialog-style';\r\n\r\nclass UnstyledRenameDialog extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n newName: '',\r\n errorMessage: '',\r\n disableConfirmButton: true,\r\n };\r\n }\r\n\r\n onConfirmClick = () => (\r\n this.props.onConfirmClick(this.state.newName)\r\n )\r\n\r\n onCancelClick = () => (\r\n this.props.onCancelClick()\r\n )\r\n\r\n validateName = (event, newValue) => {\r\n if (newValue && newValue.trim() !== '') {\r\n this.setState({\r\n errorMessage: '',\r\n disableConfirmButton: false,\r\n newName: newValue,\r\n });\r\n } else {\r\n this.setState({\r\n errorMessage: this.props.i18n.getString('Filter_Validation_Common_Required'),\r\n disableConfirmButton: true,\r\n newName: newValue,\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n const { i18n, classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nUnstyledRenameDialog.propTypes = {\r\n classes: PropTypes.shape({}).isRequired,\r\n hideDialog: PropTypes.bool.isRequired,\r\n dialogTitle: PropTypes.string.isRequired,\r\n onConfirmClick: PropTypes.func.isRequired,\r\n onCancelClick: PropTypes.func.isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nexport const RenameDialog = withDefaultStyles(\r\n UnstyledRenameDialog,\r\n getDialogStyles\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport {\r\n CommandButton,\r\n} from '@bingads-webui-react/fabric-control';\r\nimport { Glyphicon } from '@bingads-webui-react/primitive';\r\nimport { uncheckedInjectionContext as globalContext } from '@bingads-webui-campaign/injection-context';\r\nimport { DeleteDialog } from './delete-dialog';\r\nimport { RenameDialog } from './rename-dialog';\r\nimport { getModelItem } from './util';\r\n\r\nconst pageContext = globalContext.require('PageContext');\r\nconst permissions = pageContext && pageContext.Permissions;\r\nconst isHotelCenterDeprecation = permissions && permissions.dynamic.HotelCenterDeprecation;\r\n\r\nexport class EditMenu extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n hideRenameDialog: true,\r\n hideDeleteDialog: true,\r\n };\r\n }\r\n\r\n onConfirmRenameClick = (newName) => {\r\n const updatedItem = {\r\n Id: this.props.selectedItem.key,\r\n Name: this.props.selectedItem.name,\r\n NewName: newName,\r\n };\r\n\r\n if (this.props.isAtSubaccountLevel) {\r\n this.props.onRenameSubaccountSubmit(updatedItem);\r\n } else {\r\n this.props.onRenameHotelGroupSubmit(updatedItem);\r\n }\r\n\r\n this.closeDialog();\r\n }\r\n\r\n onConfirmDeleteClick = () => {\r\n const model = getModelItem(this.props.selectedItem);\r\n\r\n if (this.props.isAtSubaccountLevel) {\r\n this.props.onDeleteSubaccountSubmit(model);\r\n } else {\r\n this.props.onDeleteHotelGroupSubmit(model);\r\n }\r\n\r\n this.closeDialog();\r\n }\r\n\r\n openDialog = (dialogName) => {\r\n if (dialogName === 'rename') {\r\n this.setState({\r\n hideRenameDialog: false,\r\n hideDeleteDialog: true,\r\n });\r\n } else {\r\n this.setState({\r\n hideRenameDialog: true,\r\n hideDeleteDialog: false,\r\n });\r\n }\r\n }\r\n\r\n closeDialog = () => (\r\n this.setState({\r\n hideRenameDialog: true,\r\n hideDeleteDialog: true,\r\n })\r\n )\r\n\r\n renderEditIcon = () => (\r\n \r\n )\r\n\r\n render() {\r\n const {\r\n isAtSubaccountLevel,\r\n selectedItem,\r\n i18n,\r\n } = this.props;\r\n\r\n const menuName = isAtSubaccountLevel ?\r\n i18n.getString('HotelCenter_EditMenu_Subaccount') :\r\n i18n.getString('HotelCenter_EditMenu_HotelGroup');\r\n const editText = `${i18n.getString('HotelCenter_Group_Edit_Label')} ${menuName}`;\r\n const renameDialogTitle = selectedItem ?\r\n `${i18n.getString('HotelCenter_Group_Rename_Label')} ${selectedItem.name} ${menuName}` :\r\n `${i18n.getString('HotelCenter_Group_Rename_Label')} ${menuName}`;\r\n const deleteDialogTitle = selectedItem ?\r\n `${i18n.getString('HotelCenter_Group_Delete_Label')} ${selectedItem.name} ${menuName}` :\r\n `${i18n.getString('HotelCenter_Group_Delete_Label')} ${menuName}`;\r\n const undeletableMessage = isAtSubaccountLevel ?\r\n i18n.getString('HotelCenter_SubAccount_Not_Empty_Delete_Error_Message') :\r\n i18n.getString('HotelCenter_Group_Not_Empty_Delete_Error_Message');\r\n\r\n const menuProps = {\r\n items: [\r\n {\r\n key: 'rename',\r\n text: `${i18n.getString('HotelCenter_EditMenu_RenameThis')} ${menuName}`,\r\n onClick: () => this.openDialog('rename'),\r\n },\r\n {\r\n key: 'delete',\r\n text: `${i18n.getString('HotelCenter_EditMenu_DeleteThis')} ${menuName}`,\r\n onClick: () => this.openDialog('delete'),\r\n },\r\n ],\r\n };\r\n\r\n const disableEdit = !selectedItem ||\r\n selectedItem.key === 'selectAllSubAccount' ||\r\n (!isAtSubaccountLevel && _.has(selectedItem, 'isUngroup') && selectedItem.isUngroup) ||\r\n isHotelCenterDeprecation;\r\n const isUndeletable = _.has(selectedItem, 'hasHotelAssociation') &&\r\n selectedItem.hasHotelAssociation === true;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n );\r\n }\r\n}\r\n\r\nEditMenu.propTypes = {\r\n isAtSubaccountLevel: PropTypes.bool.isRequired,\r\n onRenameSubaccountSubmit: PropTypes.func.isRequired,\r\n onDeleteSubaccountSubmit: PropTypes.func.isRequired,\r\n onRenameHotelGroupSubmit: PropTypes.func.isRequired,\r\n onDeleteHotelGroupSubmit: PropTypes.func.isRequired,\r\n selectedItem: PropTypes.objectOf(PropTypes.any),\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nEditMenu.defaultProps = {\r\n selectedItem: null,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { getEditPanelStyles } from './style/edit-panel-style';\r\nimport { SubAccountHotelGroupSelector } from './subaccount-hotelgroup-selector';\r\nimport { EditMenu } from './edit-menu';\r\nimport {\r\n getDefaultSubAccount,\r\n getSubAccountById,\r\n getModelItem,\r\n getFirstChildGroup,\r\n getChildUngroupId,\r\n getAllChildrenGroupsId,\r\n getHotelGroupById,\r\n} from './util';\r\n\r\nclass UnstyledSubAccountHotelGroupEditPanel extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n const initialSelection = getSubAccountById(this.props.hotelGroups, this.props.preSelectedKey) ||\r\n getDefaultSubAccount(props.i18n);\r\n\r\n this.state = {\r\n subaccount: initialSelection,\r\n hotelGroup: null,\r\n };\r\n }\r\n\r\n onSubAccountClick = (item) => {\r\n const { hotelGroups } = this.props;\r\n const subAccountModel = getModelItem(item);\r\n const child = getFirstChildGroup(hotelGroups, item.key);\r\n\r\n subAccountModel.UngroupChildId = getChildUngroupId(hotelGroups, item.key);\r\n subAccountModel.SelectedGroupId = child ? child.Id : '';\r\n subAccountModel.SelectedGroupName = child ? child.Name : '';\r\n subAccountModel.SelectedGroupAssociationCount = child ? child.HotelAssociationCount : 0;\r\n subAccountModel.ChildrenKeys = getAllChildrenGroupsId(hotelGroups, item.key);\r\n\r\n this.setState({\r\n subaccount: item,\r\n hotelGroup: null,\r\n });\r\n\r\n this.props.onSubAccountClick(subAccountModel);\r\n };\r\n\r\n onHotelGroupClick = (item) => {\r\n const { hotelGroups } = this.props;\r\n const hotelModel = getHotelGroupById(hotelGroups, item.key);\r\n\r\n hotelModel.ParentId = hotelModel ? hotelModel.SubAccountId : '';\r\n hotelModel.SiblingUngroup = hotelModel.ParentId ?\r\n getChildUngroupId(hotelGroups, hotelModel.ParentId) : '';\r\n hotelModel.SiblingKeys = hotelModel.ParentId ?\r\n getAllChildrenGroupsId(hotelGroups, hotelModel.ParentId) : '';\r\n\r\n this.setState({\r\n subaccount: null,\r\n hotelGroup: item,\r\n });\r\n\r\n this.props.onHotelGroupClick(hotelModel);\r\n };\r\n\r\n onRenameSubaccount = (item) => {\r\n this.setState({\r\n subaccount: {\r\n key: item.Id,\r\n name: item.NewName,\r\n },\r\n });\r\n this.props.onRenameSubaccountSubmit(item);\r\n }\r\n\r\n onRenameHotelGroup = (item) => {\r\n this.setState({\r\n hotelGroup: {\r\n key: item.Id,\r\n name: item.NewName,\r\n },\r\n });\r\n this.props.onRenameHotelGroupSubmit(item);\r\n }\r\n\r\n onDeleteSubaccount = (item) => {\r\n this.resetSelection();\r\n this.props.onDeleteSubaccountSubmit(item);\r\n }\r\n\r\n onDeleteHotelGroup = (item) => {\r\n this.resetSelection();\r\n this.props.onDeleteHotelGroupSubmit(item);\r\n }\r\n\r\n resetSelection = () => {\r\n const defaultSubaccount = getDefaultSubAccount(this.props.i18n);\r\n\r\n this.setState({\r\n subaccount: defaultSubaccount,\r\n hotelGroup: null,\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n hotelGroups,\r\n isSubAccountSelected,\r\n i18n,\r\n } = this.props;\r\n\r\n return (\r\n
\r\n this.props.onCreateLinkClick()}\r\n onSearch={query => this.props.onSearch(query)}\r\n onSearchClear={() => this.props.onSearchClear()}\r\n i18n={i18n}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nUnstyledSubAccountHotelGroupEditPanel.propTypes = {\r\n onSubAccountClick: PropTypes.func.isRequired,\r\n onHotelGroupClick: PropTypes.func.isRequired,\r\n onCreateLinkClick: PropTypes.func.isRequired,\r\n onSearch: PropTypes.func.isRequired,\r\n onSearchClear: PropTypes.func.isRequired,\r\n onRenameSubaccountSubmit: PropTypes.func.isRequired,\r\n onDeleteSubaccountSubmit: PropTypes.func.isRequired,\r\n onRenameHotelGroupSubmit: PropTypes.func.isRequired,\r\n onDeleteHotelGroupSubmit: PropTypes.func.isRequired,\r\n hotelGroups: PropTypes.arrayOf(PropTypes.shape({\r\n Id: PropTypes.string,\r\n Name: PropTypes.string,\r\n SubAccountId: PropTypes.string,\r\n SubAccountName: PropTypes.string,\r\n HotelAssociationCount: PropTypes.number,\r\n })),\r\n isSubAccountSelected: PropTypes.bool.isRequired,\r\n preSelectedKey: PropTypes.string.isRequired,\r\n classes: PropTypes.objectOf(PropTypes.any).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nUnstyledSubAccountHotelGroupEditPanel.defaultProps = {\r\n hotelGroups: [],\r\n};\r\n\r\nexport const SubAccountHotelGroupEditPanel = withDefaultStyles(\r\n UnstyledSubAccountHotelGroupEditPanel,\r\n getEditPanelStyles\r\n);\r\n","export const getEditPanelStyles = () => ({\r\n editPanel: {\r\n display: 'inline-block',\r\n '& .subaccount-hotelgroup-selector-container': {\r\n display: 'inline-block',\r\n },\r\n '& > button.ms-Button--action': {\r\n display: 'inline-block',\r\n verticalAlign: 'bottom',\r\n },\r\n },\r\n // Dropdown callout and dialog are directly under body\r\n '@global': {\r\n '.ms-Dropdown-callout .ms-Nav-group .ms-Nav-groupContent': {\r\n marginBottom: 0,\r\n },\r\n '.nav-tree-container .ms-Nav-group.is-expanded': {\r\n overflowY: 'auto',\r\n maxHeight: 400,\r\n '& .create-new-link[disabled]': {\r\n color: '#BEBBB8',\r\n cursor: 'not-allowed',\r\n '& .create-new-icon': {\r\n color: 'inherit',\r\n },\r\n },\r\n },\r\n '.ms-Dialog .ms-Dialog-main': {\r\n minHeight: 'fit-content',\r\n '& .ms-Dialog-actions .ms-Dialog-actionsRight': {\r\n textAlign: 'left',\r\n },\r\n },\r\n },\r\n});\r\n","\r\nimport { useCallback, useMemo, useEffect, useContext } from 'react';\r\nimport _ from 'underscore';\r\nimport {\r\n useCurrencyCountriesMappings,\r\n useCountryCurrenciesMappings,\r\n} from '@bingads-webui/overreact-cc';\r\nimport { ServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { useCustomerLevelVariables, usePostponeReadVariables } from '@bingads-webui-campaign-react/basic-context-utils';\r\n\r\nexport const useCurrencyCountryMapping = (props) => {\r\n const {\r\n onFetchError = _.noop,\r\n instrumentationActivity,\r\n } = props || {};\r\n\r\n const serverContext = useContext(ServerContext);\r\n const { CurrentAccount } = serverContext;\r\n const customerLevelVariables = useCustomerLevelVariables();\r\n const postponeReadConfig = usePostponeReadVariables();\r\n\r\n const onErrorLog = useCallback((error) => {\r\n instrumentationActivity.trace(`Error in useCurrencyCountryMapping: ${JSON.stringify(error)}`);\r\n }, [instrumentationActivity]);\r\n\r\n const onError = _.isFunction(onFetchError) ? onFetchError : onErrorLog;\r\n\r\n const [{ data: currencyCountriesMappings, error: currencyCountryMappingError }, { read: readCurrencyCountriesMappings }] =\r\n useCurrencyCountriesMappings(customerLevelVariables, postponeReadConfig);\r\n const [{ data: countryCurrenciesMappings, error: countryCurrencyMappingError }, { read: readCountryCurrenciesMappings }] =\r\n useCountryCurrenciesMappings(customerLevelVariables, postponeReadConfig);\r\n\r\n useEffect(() => {\r\n if (!currencyCountriesMappings && !currencyCountryMappingError && CurrentAccount) {\r\n readCurrencyCountriesMappings();\r\n }\r\n }, [CurrentAccount, currencyCountriesMappings, currencyCountryMappingError, readCurrencyCountriesMappings]);\r\n\r\n useEffect(() => {\r\n if (!countryCurrenciesMappings && !countryCurrencyMappingError && CurrentAccount) {\r\n readCountryCurrenciesMappings();\r\n }\r\n }, [CurrentAccount, countryCurrenciesMappings, countryCurrencyMappingError, readCountryCurrenciesMappings]);\r\n\r\n useEffect(() => {\r\n if (currencyCountryMappingError) {\r\n onError(currencyCountryMappingError);\r\n }\r\n }, [onError, currencyCountryMappingError]);\r\n\r\n useEffect(() => {\r\n if (countryCurrencyMappingError) {\r\n onError(countryCurrencyMappingError);\r\n }\r\n }, [onError, countryCurrencyMappingError]);\r\n\r\n const isUseCurrencyCountryMappingReady =\r\n useMemo(\r\n () => !_.isEmpty(currencyCountriesMappings) && !_.isEmpty(countryCurrenciesMappings),\r\n [countryCurrenciesMappings, currencyCountriesMappings]\r\n );\r\n\r\n const getCountriesForCurrency = useCallback((currency) => {\r\n if (_.isEmpty(currency) || !_.isString(currency) || !isUseCurrencyCountryMappingReady) {\r\n return undefined;\r\n }\r\n\r\n const uppercaseCurrency = currency.toUpperCase();\r\n const currencyCountry = _.findWhere(currencyCountriesMappings, { currency: uppercaseCurrency });\r\n return currencyCountry && currencyCountry.countries;\r\n }, [currencyCountriesMappings, isUseCurrencyCountryMappingReady]);\r\n\r\n const findCurrenciesForCountry = useCallback((country) => {\r\n if (_.isEmpty(country) || !_.isString(country) || !isUseCurrencyCountryMappingReady) {\r\n return undefined;\r\n }\r\n\r\n const c = country.toUpperCase();\r\n const countryCurrencyObject = _.findWhere(countryCurrenciesMappings, { country: c });\r\n return countryCurrencyObject;\r\n }, [countryCurrenciesMappings, isUseCurrencyCountryMappingReady]);\r\n\r\n const getCurrenciesForCountry = useCallback((country) => {\r\n const countryCurrency = findCurrenciesForCountry(country);\r\n return countryCurrency && countryCurrency.currencies;\r\n }, [findCurrenciesForCountry]);\r\n\r\n const getDefaultCurrencyForCountry = useCallback((country) => {\r\n const countryCurrency = findCurrenciesForCountry(country);\r\n\r\n const allowedCurrencies = _.get(countryCurrency, 'currencies');\r\n const defaultCurrency = _.get(countryCurrency, 'defaultCurrency');\r\n\r\n return _.contains(allowedCurrencies, defaultCurrency) ? defaultCurrency : _.first(allowedCurrencies);\r\n }, [findCurrenciesForCountry]);\r\n\r\n const isCurrencySupportedInCountry = useCallback((country, currency) => {\r\n if (_.isEmpty(currency) || _.isEmpty(country) || !isUseCurrencyCountryMappingReady) { return undefined; }\r\n\r\n const validCountriesForCurrency = getCountriesForCurrency(currency);\r\n return _.contains(validCountriesForCurrency, country);\r\n }, [getCountriesForCurrency, isUseCurrencyCountryMappingReady]);\r\n\r\n return {\r\n getCountriesForCurrency, getCurrenciesForCountry, getDefaultCurrencyForCountry, isCurrencySupportedInCountry, isUseCurrencyCountryMappingReady,\r\n };\r\n};\r\n\r\n","import { updatePdlPage, updatePdlUser, triggerOmnitureEvent } from '@bingads-webui-campaign/global-app-init';\r\n\r\nexport function omniturePageLoad({\r\n pageId,\r\n pageTitle,\r\n isSignUp = false,\r\n signUpPrefix = 'wizard_signup_step_',\r\n}) {\r\n const navLevel3 = isSignUp ? `${signUpPrefix}${pageId}` : pageId;\r\n updatePdlPage({\r\n navLevel3,\r\n navLevel3Title: pageTitle,\r\n });\r\n}\r\n\r\nexport const omnitureAccountUpdated = ({\r\n serverContext,\r\n}) => {\r\n const {\r\n CurrentAccount,\r\n } = serverContext;\r\n\r\n updatePdlUser(serverContext);\r\n\r\n triggerOmnitureEvent({\r\n user: {\r\n aid: CurrentAccount.Id,\r\n cid: CurrentAccount.AdvertiserCustomerID,\r\n accountMode: CurrentAccount.AccountMode,\r\n },\r\n });\r\n};\r\n","import PropTypes from 'prop-types';\r\nimport { useEffect } from 'react';\r\nimport { useLogEnteredPage } from '@bingads-webui-campaign-react/shared-app-capi';\r\nimport { useWizardService, getCurrentStepId, getCurrentFlow } from '@bingads-webui-react/wizard-core';\r\nimport { isTestEnvironment } from '@bingads-webui-campaign/global-app-init';\r\nimport { omniturePageLoad } from './marketing-utils';\r\n\r\nexport const SignupFlowStepLogger = ({\r\n flow, activity, stepToPage, getSubFlowFromCurrentFlow, signUpPrefix,\r\n}) => {\r\n const { state } = useWizardService();\r\n const currentStepId = getCurrentStepId(state);\r\n const currentFlow = getCurrentFlow(state);\r\n const subFlow = getSubFlowFromCurrentFlow(currentFlow);\r\n\r\n if (!stepToPage[currentStepId]) {\r\n activity.error(`Cannot find the step name from stepToPage: ${currentStepId}`);\r\n\r\n if (isTestEnvironment(document.domain)) {\r\n throw new Error('The current step is not in stepToPage config.');\r\n }\r\n }\r\n\r\n useLogEnteredPage({ Flow: flow, SubFlow: subFlow, Page: stepToPage[currentStepId] || 'unknown step' });\r\n\r\n useEffect(() => {\r\n omniturePageLoad({\r\n isSignUp: true,\r\n pageId: stepToPage[currentStepId] || 'unknown step',\r\n pageTitle: currentStepId,\r\n signUpPrefix,\r\n });\r\n }, [currentStepId, signUpPrefix, stepToPage]);\r\n\r\n return null;\r\n};\r\n\r\n\r\nSignupFlowStepLogger.propTypes = {\r\n activity: PropTypes.shape({ error: PropTypes.func }).isRequired,\r\n flow: PropTypes.string.isRequired,\r\n stepToPage: PropTypes.shape({}).isRequired,\r\n getSubFlowFromCurrentFlow: PropTypes.func,\r\n signUpPrefix: PropTypes.string.isRequired,\r\n};\r\n\r\nSignupFlowStepLogger.defaultProps = {\r\n getSubFlowFromCurrentFlow: () => null,\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { InstrumentationContext } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { SignupFlowStepLogger } from './signup-flow-step-logger';\r\n\r\nexport const SignupFlowStepLoggerWithActivity = ({\r\n flow, stepToPage, getSubFlowFromCurrentFlow, signUpPrefix,\r\n}) => {\r\n const instrumentation = useContext(InstrumentationContext);\r\n const activity = useMemo(() => {\r\n if (instrumentation && instrumentation.signupFlowScenario) {\r\n const scenario = instrumentation.signupFlowScenario.create();\r\n return scenario.signupFlow.create();\r\n }\r\n return { trace: _.noop, error: _.noop };\r\n }, [instrumentation]);\r\n return (\r\n \r\n );\r\n};\r\n\r\nSignupFlowStepLoggerWithActivity.propTypes = {\r\n flow: PropTypes.string.isRequired,\r\n stepToPage: PropTypes.shape({}).isRequired,\r\n getSubFlowFromCurrentFlow: PropTypes.func,\r\n signUpPrefix: PropTypes.string,\r\n};\r\nSignupFlowStepLoggerWithActivity.defaultProps = {\r\n signUpPrefix: 'signup_step_',\r\n getSubFlowFromCurrentFlow: () => null,\r\n};\r\n","import { useEffect } from 'react';\r\nimport { PageReady } from '@bingads-webui/page-ready';\r\n\r\nexport const PageReadyTrigger = ({ children }) => {\r\n useEffect(() => {\r\n PageReady.pageIsReady();\r\n }, []);\r\n\r\n return children || null;\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { matchStepState, useWizardService } from '@bingads-webui-react/wizard-core';\r\nimport { FORM_STATES } from '@bingads-webui-react/form-core';\r\nimport { PageReadyTrigger } from '@bingads-webui-campaign-react/page-ready-trigger';\r\nimport { PageReady } from '@bingads-webui/page-ready';\r\n\r\n// Page ready timeout is set to 15 seconds to allow for the page to load\r\n// and the wizard to initialize.\r\nconst PAGE_READY_TIMEOUT = 15000;\r\n\r\nexport const StepRenderPageReady = () => {\r\n const [isStepRendered, setIsAnyStepRendered] = useState(false);\r\n const { state } = useWizardService();\r\n\r\n useEffect(() => {\r\n _.delay(() => {\r\n PageReady.pageIsReady();\r\n }, PAGE_READY_TIMEOUT);\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!isStepRendered && matchStepState(state, FORM_STATES.ACTIVE)) {\r\n setTimeout(() => {\r\n setIsAnyStepRendered(true);\r\n }, 0);\r\n }\r\n }, [isStepRendered, state]);\r\n\r\n return isStepRendered ? : null;\r\n};\r\n","import _, { chain } from 'underscore';\r\nimport { projectionGridBulkEdit } from '@bingads-webui-campaign/projection-grid-bulk-edit';\r\nimport { getFilteredCampaignTypeFromRawFilter } from '@bingads-webui-campaign/campaign-ui-common';\r\n\r\n/**\r\n * @typedef { Object } adsBulkEditOptions\r\n * @property { Object } status ads status schema.\r\n * @property { Object } ChangeStatusView ads change status view.\r\n * @property { Object } ChangeStatusModel ads change status model.\r\n * @property { Object } ChangeAdsView ads change view.\r\n * @property { Object } ChangeAdsView ads change model.\r\n * @property { Object } ChangeUrlOptionsView ads change url options view.\r\n * @property { Object } ChangeUrlOptionsModel ads change url options model.\r\n * @property { Object } ChangeThirdPartyMeasurementView ads change third-party measurement view.\r\n * @property { Object } ChangeThirdPartyMeasurementModel ads change third-party measurement model.\r\n * @property { Object } ChangeThirdPartyMeasurementViewV2 ads change third-party measurement view.\r\n * @property { Object } RequestExceptionCallBack the call back for request exception.\r\n * @property { Object } CopyPaste CopyPaste ads copy paste\r\n * @property { Object } config config.\r\n * @property { Object } i18n i18n.\r\n * @property { Object } scope - The scope of the Ad Groups entity set\r\n * @property { Bool } isForVNext - true in new UI\r\n */\r\n\r\n/**\r\n * adsBulkEdit\r\n * @param { adsBulkEditOptions } options ads bulk edit options\r\n * @returns { Object } adsBulkEditPlugin adgroup bulk edit plugin\r\n */\r\nfunction adsBulkEdit(options) {\r\n const {\r\n status,\r\n ChangeStatusView,\r\n ChangeStatusModel,\r\n ChangeAdsView,\r\n ChangeAdsModel,\r\n ChangeUrlOptionsView,\r\n ChangeUrlOptionsModel,\r\n ChangeThirdPartyMeasurementView,\r\n ChangeThirdPartyMeasurementModel,\r\n ChangeThirdPartyMeasurementViewV2,\r\n RequestExceptionCallBack,\r\n MMABulkConversion,\r\n CopyPaste,\r\n config,\r\n filterService,\r\n i18n,\r\n scope,\r\n isForVNext,\r\n perfMarker,\r\n } = options;\r\n\r\n const permissions = config.get('Permissions');\r\n const { adGroupId } = scope || {};\r\n\r\n function getChangeAdsView({ viewConfig, selectedRowCount }) {\r\n return new ChangeAdsView(_.defaults({\r\n model: new ChangeAdsModel({\r\n selectedEntityCount: selectedRowCount,\r\n }),\r\n isForVNext,\r\n }, viewConfig));\r\n }\r\n\r\n function getchangeThirdPartyMeasurement({ viewConfig, selectedRowCount }) {\r\n return new ChangeThirdPartyMeasurementView(_.defaults({\r\n model: new ChangeThirdPartyMeasurementModel({\r\n selectedEntityCount: selectedRowCount,\r\n }),\r\n isForVNext,\r\n }, viewConfig));\r\n }\r\n\r\n function getchangeThirdPartyMeasurementV2({ viewConfig, selectedRowCount }) {\r\n return new ChangeThirdPartyMeasurementViewV2(_.defaults({\r\n model: new ChangeThirdPartyMeasurementModel({\r\n selectedEntityCount: selectedRowCount,\r\n }),\r\n isForVNext,\r\n }, viewConfig));\r\n }\r\n\r\n function getRequestExceptionView({ viewConfig, isAdGroupLevel }) {\r\n return RequestExceptionCallBack(viewConfig, isAdGroupLevel);\r\n }\r\n function getIsIncludeRSAAndExTAAds(selectedItems) {\r\n const hasRSAORExTAIndex = _.findIndex(selectedItems, item => item.Type === 'ResponsiveSearch' || item.Type === 'ExpandedText');\r\n return hasRSAORExTAIndex > -1;\r\n }\r\n function getMMABulkConversionView({ selectedRowCount, selectedItems, allPages }) {\r\n const hasRSAorExTA = getIsIncludeRSAAndExTAAds(selectedItems);\r\n return new MMABulkConversion({\r\n ...options, selectedRowCount, selectedItems, hasRSAorExTA, allPages,\r\n });\r\n }\r\n\r\n function getChangeUrlOptionView({ viewConfig, selectedRowCount }) {\r\n return new ChangeUrlOptionsView(_.defaults({\r\n entityType: 'Ad',\r\n model: new ChangeUrlOptionsModel({\r\n selectedEntityCount: selectedRowCount,\r\n }),\r\n isForVNext,\r\n }, viewConfig));\r\n }\r\n\r\n function onCopyClicked({ viewConfig }) {\r\n CopyPaste.copy('ad', Object.assign({}, viewConfig.grid, { perfMarker }));\r\n }\r\n\r\n function onPasteClicked({ viewConfig }) {\r\n CopyPaste.paste(Object.assign({}, viewConfig.grid, { perfMarker }));\r\n }\r\n\r\n let items = [{\r\n text: i18n.getString('Grid_ChangeAds'),\r\n classes: ['bulk-edit-change-ads'],\r\n createView: getChangeAdsView,\r\n },\r\n {\r\n text: i18n.getString('ChangeUrlOptions'),\r\n classes: ['bulk-edit-change-url-option'],\r\n createView: getChangeUrlOptionView,\r\n }];\r\n\r\n if (permissions.dynamic && permissions.dynamic.IASBulkEditsThirdPartyMeasurements) {\r\n if (permissions.IsMOATEnabled) {\r\n items.push({\r\n text: i18n.getString('ChangeThirdPartyMeasurement'),\r\n classes: ['bulk-edit-change-third-party-measurement-V2'],\r\n createView: getchangeThirdPartyMeasurementV2,\r\n });\r\n } else {\r\n items.push({\r\n text: i18n.getString('ChangeThirdPartyMeasurement'),\r\n classes: ['bulk-edit-change-third-party-measurement'],\r\n createView: getchangeThirdPartyMeasurement,\r\n });\r\n }\r\n }\r\n\r\n const inAdGroupLevel = adGroupId && adGroupId > 0;\r\n\r\n // will be a submenu when ad group level for request exception\r\n if (inAdGroupLevel && permissions.IsAdGroupLevelEditorialAppealEnabled) {\r\n items.push({\r\n text: i18n.getString('AppealExceptionButton'),\r\n subItems: [{\r\n text: i18n.getString('EditorialAppeal_SelectedEntityOrEntities').replace('{0}', i18n.getString('EditorialAppeal_Entity_Ad_SingularOrPlural')),\r\n classes: ['bulk-edit-adgroup-level-appeal-for-ads'],\r\n createView: ({ viewConfig }) =>\r\n getRequestExceptionView({ viewConfig, isAdGroupLevel: false }),\r\n },\r\n {\r\n text: i18n.getString('EditorialAppeal_AllEntitiesInThisAdGroup_Capitalized').replace('{0}', i18n.getString('EditorialAppeal_Entity_Ad_Plural')),\r\n classes: ['bulk-edit-adgroup-level-appeal-for-adgroups'],\r\n createView: ({ viewConfig }) =>\r\n getRequestExceptionView({ viewConfig, isAdGroupLevel: true }),\r\n }],\r\n });\r\n } else if (!inAdGroupLevel) {\r\n items.push({\r\n text: i18n.getString('AppealExceptionButton'),\r\n classes: ['request-exception-for-ads'],\r\n createView: ({ viewConfig }) =>\r\n getRequestExceptionView({ viewConfig, isAdGroupLevel: false }),\r\n });\r\n }\r\n\r\n items.push({\r\n text: i18n.getString('Grid_ConvertAdsToMMA'),\r\n classes: ['bulk-convert-ads-to-mma'],\r\n createView: getMMABulkConversionView,\r\n isValid: () => {\r\n // demo page doesn't have filterService\r\n if (!options.filterService) return true;\r\n const { waterfallFilters } = options.filterService;\r\n const getCampaignTypeGlobalFilter = () => {\r\n const rawFilter = chain(waterfallFilters).first().value();\r\n return getFilteredCampaignTypeFromRawFilter(rawFilter);\r\n };\r\n // search campaigns || all campaigns\r\n return getCampaignTypeGlobalFilter() === 65535 || getCampaignTypeGlobalFilter() === 1;\r\n },\r\n });\r\n\r\n let frontItems = [];\r\n if (permissions.IsBulkEditCopyPasteEnabled) {\r\n if (isForVNext) {\r\n frontItems = [{\r\n text: i18n.getString('BulkEdit_CopyMenu'),\r\n classes: ['bulk-edit-ads-copy'],\r\n createView: onCopyClicked,\r\n hotkeys: {\r\n win: 'Ctrl-C',\r\n mac: '\\u2318C',\r\n },\r\n }];\r\n } else {\r\n items = items.concat([\r\n {\r\n text: i18n.getString('BulkEdit_CopyMenu'),\r\n classes: ['bulk-edit-ads-copy'],\r\n createView: onCopyClicked,\r\n Hotkeys: {\r\n Win: 'Ctrl+C',\r\n Mac: '\\u2318C',\r\n },\r\n },\r\n {\r\n text: i18n.getString('BulkEdit_PasteMenu'),\r\n classes: ['bulk-edit-ads-paste'],\r\n createView: onPasteClicked,\r\n noSelectionRequired: true,\r\n Hotkeys: {\r\n Win: 'Ctrl+V',\r\n Mac: '\\u2318V',\r\n },\r\n },\r\n ]);\r\n }\r\n\r\n // will move this logic into grid intialization\r\n /* Hotkeys.on('copy', CopyPaste.copy.bind(CopyPaste, 'ad', AdGrid));\r\n Hotkeys.on('paste', CopyPaste.paste.bind(CopyPaste, AdGrid));\r\n Hotkeys.setup(); */\r\n }\r\n\r\n return projectionGridBulkEdit({\r\n status,\r\n ChangeStatusView,\r\n ChangeStatusModel,\r\n DeleteConfirmation: i18n.getString('P4PAdLibrary_DeleteConfirmation'),\r\n entityType: 'ads',\r\n config,\r\n filterService,\r\n i18n,\r\n items,\r\n frontItems,\r\n isForVNext,\r\n });\r\n}\r\n\r\nexport { adsBulkEdit };\r\n","import ko from 'knockout';\r\nimport Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport template from './bid-adjustment-control.pug';\r\nimport recommendationTemplate from './bid-adjustment-recommendation.pug';\r\n\r\n/* @this BidAdjustmentControlViewModel */\r\nfunction computeBidMultiplier(bidAdjOptions) {\r\n const rawBidPercentage = this.bidAdjPercentage();\r\n\r\n const percentage = Number(rawBidPercentage);\r\n if (percentage < 0 || parseInt(rawBidPercentage, 10) !== percentage) {\r\n return '';\r\n }\r\n\r\n return this.selectedOption() === bidAdjOptions[1].key ? -percentage : percentage;\r\n}\r\n\r\nfunction BidAdjustmentControlViewModel({\r\n bidAdjOptions,\r\n bidMultiplier,\r\n}) {\r\n const selectedOption = bidMultiplier < 0 ? bidAdjOptions[1].key : bidAdjOptions[0].key;\r\n const bidAdjPercentage = Math.abs(bidMultiplier);\r\n\r\n this.availableOptions = ko.observableArray(bidAdjOptions);\r\n this.selectedOption = ko.observable(selectedOption);\r\n this.bidAdjPercentage = ko.observable(bidAdjPercentage);\r\n this.bidMultiplier = ko.pureComputed(() => computeBidMultiplier.call(this, bidAdjOptions));\r\n this.useRecommendationBid = ko.observable(false);\r\n}\r\n\r\nclass BidAdjustmentRecommendationControlViewModel extends BidAdjustmentControlViewModel {\r\n constructor({\r\n bidAdjOptions,\r\n bidMultiplier,\r\n recommendation,\r\n }) {\r\n super({\r\n bidAdjOptions,\r\n bidMultiplier,\r\n });\r\n\r\n this.bidMultiplier = ko.pureComputed(() => {\r\n if (!this.useRecommendationBid()) {\r\n return computeBidMultiplier.call(this, bidAdjOptions);\r\n }\r\n return recommendation;\r\n });\r\n }\r\n}\r\n\r\nexport class BidAdjustmentControl extends Backbone.View {\r\n initialize({ observable, field }) {\r\n const bidMultiplier = observable();\r\n this.viewModel = new BidAdjustmentControlViewModel({\r\n bidAdjOptions: field.values,\r\n bidMultiplier,\r\n });\r\n\r\n this.viewModel.bidMultiplier.subscribe((newValue) => {\r\n observable(newValue);\r\n });\r\n\r\n this.field = field;\r\n }\r\n\r\n render() {\r\n this.$el.html(template({ size: this.field.schema.maxLength, i18n: this.field.i18n }));\r\n ko.applyBindings(this.viewModel, this.el);\r\n if (this.field.perfMarker) {\r\n this.field.perfMarker.done();\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nexport class BidAdjustmentRecommendationControl extends Backbone.View {\r\n initialize({ observable, field }) {\r\n this.bidMultiplier = observable();\r\n this.recommendation = field.values[0].performance &&\r\n field.values[0].performance.SuggestedBid.SuggestBidAdjustmentMultiplier;\r\n this.viewModel = new BidAdjustmentRecommendationControlViewModel({\r\n bidAdjOptions: field.values[0].selectOptions,\r\n bidMultiplier: this.bidMultiplier,\r\n recommendation: this.recommendation,\r\n });\r\n\r\n this.viewModel.bidMultiplier.subscribe((newValue) => {\r\n observable(newValue);\r\n });\r\n\r\n this.field = field;\r\n }\r\n\r\n render() {\r\n this.$el.html(recommendationTemplate({\r\n size: this.field.schema.maxLength,\r\n i18n: this.field.i18n,\r\n hasRecommendation: _.isNumber(this.recommendation) &&\r\n this.recommendation > this.bidMultiplier,\r\n performanceMetric: this.field.values[0].performance,\r\n }));\r\n ko.applyBindings(this.viewModel, this.el);\r\n if (this.field.perfMarker) {\r\n this.field.perfMarker.done();\r\n }\r\n return this;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { SimpleForm } from '@bingads-webui/simple-form';\r\nimport { BidAdjustmentControl, BidAdjustmentRecommendationControl } from './bid-adjustment-control';\r\n\r\nconst defaultValidator = i18n => ({\r\n BidMultiplier: {\r\n isValid: v => (v < 0 && v >= -90) || (v >= 0 && v <= 900),\r\n message: (v) => {\r\n if (v < 0) {\r\n return i18n.getString('Validation_Number_Range_Between', { min: 0, max: 90 });\r\n }\r\n\r\n return i18n.getString('Validation_Number_Range_Between', { min: 0, max: 900 });\r\n },\r\n },\r\n});\r\n\r\n/**\r\n * @typedef {Object} BidAdjustmentState\r\n * @param {value} Bid adjustment value.\r\n * @param {i18n}\r\n * @param {saveButtonCallback} Show Save and Cancel button if saveButtonCallback exists.\r\n * Will be triggered when Save is clicked.\r\n */\r\n\r\nexport class BidAdjustmentView extends DeterministicWrapperView {\r\n viewFactory({\r\n value,\r\n i18n,\r\n showButtons = true,\r\n customValidators = defaultValidator,\r\n isRecommendationEnabled = false,\r\n performance = null,\r\n template = 'inline',\r\n entityId = 0,\r\n logActivities = {\r\n suggested: { trace: _.noop },\r\n manual: { trace: _.noop },\r\n },\r\n perfMarker = null,\r\n }) {\r\n const model = {\r\n BidMultiplier: value,\r\n };\r\n\r\n const schema = {\r\n name: 'BidAdjustment',\r\n type: 'object',\r\n properties: {\r\n BidMultiplier: {\r\n type: 'number',\r\n maxLength: 5,\r\n },\r\n required: [\r\n 'BidMultiplier',\r\n ],\r\n },\r\n };\r\n\r\n const selectOptions = [\r\n { key: 'inc', text: i18n.getString('BidAdjustment_IncreaseText') },\r\n { key: 'dec', text: i18n.getString('BidAdjustment_DecreaseText') },\r\n ];\r\n const fields = [\r\n {\r\n property: 'BidMultiplier',\r\n control: isRecommendationEnabled ?\r\n BidAdjustmentRecommendationControl : BidAdjustmentControl,\r\n showLabel: false,\r\n i18n,\r\n perfMarker,\r\n values: isRecommendationEnabled ? [\r\n {\r\n selectOptions,\r\n performance,\r\n },\r\n ] : selectOptions,\r\n validators: {\r\n type: {\r\n message: i18n.getString('Validation_InvalidBidAdjustment'),\r\n },\r\n },\r\n },\r\n ];\r\n\r\n const bidAdjustmentForm = new SimpleForm({\r\n schema,\r\n fields,\r\n model,\r\n i18n,\r\n customValidators: customValidators(i18n),\r\n showButtons,\r\n hasLabels: !isRecommendationEnabled,\r\n template,\r\n });\r\n\r\n if (showButtons) {\r\n bidAdjustmentForm.on('save', (newModel) => {\r\n if (isRecommendationEnabled &&\r\n this.view.viewControls.BidMultiplier.viewModel.useRecommendationBid()) {\r\n logActivities.suggested.trace(\r\n `Apply audience bid adjustment suggestion success for ${performance.BidSuggestionId}, ${entityId}. Original: ${value}%, New: ${newModel.BidMultiplier}%`,\r\n 'UpdateAudienceAssociationsBidAjustment'\r\n );\r\n } else if (isRecommendationEnabled && performance &&\r\n performance.SuggestedBid.SuggestBidAdjustmentMultiplier > value) {\r\n logActivities.manual.trace(\r\n `Change audience bid adjustment suggestion success for ${performance.BidSuggestionId}, ${entityId}. Original: ${value}%, New: ${newModel.BidMultiplier}%`,\r\n 'UpdateAudienceAssociationsBidAjustment'\r\n );\r\n }\r\n this.trigger('close', newModel);\r\n });\r\n\r\n bidAdjustmentForm.on('cancel', () => {\r\n this.trigger('close');\r\n });\r\n }\r\n\r\n return bidAdjustmentForm;\r\n }\r\n\r\n get currentModel() {\r\n return _.defaults({}, this.view.currentModel());\r\n }\r\n\r\n validate() {\r\n return this.view.validate();\r\n }\r\n\r\n /**\r\n * Class name of the root element\r\n * @type {string}\r\n * @override\r\n */\r\n get className() { return 'bid-adjustment-view'; }\r\n}\r\n","import _ from 'underscore';\r\nimport { DeterministicView } from '@bingads-webui/deterministic-view';\r\nimport template from './bid-recommendation.pug';\r\n\r\nexport class BidRecommendationView extends DeterministicView {\r\n initialize({\r\n i18n,\r\n performance = null,\r\n logActivities = {\r\n bidRecommendation: { trace: _.noop },\r\n },\r\n }) {\r\n _.extend(this, {\r\n performance,\r\n i18n,\r\n logActivities,\r\n });\r\n }\r\n\r\n get template() {\r\n return () => template({\r\n i18n: this.i18n,\r\n performanceMetric: this.performance,\r\n });\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .apply-recommendation-button': 'onApplyBidRecommendation',\r\n };\r\n }\r\n\r\n onApplyBidRecommendation() {\r\n this.logActivities.bidRecommendation.trace(\r\n `Apply audience bid adjustment suggestion success. New: ${this.performance.SuggestedBid.SuggestBidAdjustmentMultiplier}%`,\r\n 'ApplyAudienceAssociationsBidAjustmentFromBulbPopup'\r\n );\r\n this.trigger('closeBidRecommendation', { BidMultiplier: this.performance.SuggestedBid.SuggestBidAdjustmentMultiplier });\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport Backbone from 'backbone';\r\nimport template from './conversion-rate-adjustment-control.pug';\r\n\r\nfunction computeAdjustmentPecentage(adjustmentOptions) {\r\n const rawAdjustmentPercentage = this.adjustmentPercentage();\r\n\r\n const percentage = Number(rawAdjustmentPercentage);\r\n if (percentage < 0) {\r\n return '';\r\n }\r\n\r\n return this.selectedOption() === adjustmentOptions[1].key ? -percentage : percentage;\r\n}\r\n\r\nfunction ConversionRateAdjustmentControlViewModel({\r\n adjustmentOptions,\r\n adjustmentValue,\r\n}) {\r\n const selectedOption = adjustmentValue < 0 ? adjustmentOptions[1].key : adjustmentOptions[0].key;\r\n const adjustmentPercentage = Math.abs(adjustmentValue);\r\n\r\n this.availableOptions = ko.observableArray(adjustmentOptions);\r\n this.selectedOption = ko.observable(selectedOption);\r\n this.adjustmentPercentage = ko.observable(adjustmentPercentage);\r\n // eslint-disable-next-line max-len\r\n this.adjustmentValue = ko.pureComputed(() => computeAdjustmentPecentage.call(this, adjustmentOptions));\r\n this.useRecommendationBid = ko.observable(false);\r\n}\r\n\r\n\r\nexport class ConversionRateAdjustmentControl extends Backbone.View {\r\n initialize({ observable, field }) {\r\n const adjustmentValue = observable();\r\n this.viewModel = new ConversionRateAdjustmentControlViewModel({\r\n adjustmentOptions: field.values,\r\n adjustmentValue,\r\n });\r\n\r\n this.viewModel.adjustmentValue.subscribe((newValue) => {\r\n observable(newValue);\r\n });\r\n\r\n this.field = field;\r\n }\r\n\r\n render() {\r\n this.$el.html(template({ size: this.field.schema.maxLength, i18n: this.field.i18n }));\r\n ko.applyBindings(this.viewModel, this.el);\r\n if (this.field.perfMarker) {\r\n this.field.perfMarker.done();\r\n }\r\n return this;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { DeterministicWrapperView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { SimpleForm } from '@bingads-webui/simple-form';\r\nimport { ConversionRateAdjustmentControl } from './conversion-rate-adjustment-control';\r\n\r\nconst defaultValidator = i18n => ({\r\n AdjustmentPercentage: {\r\n isValid: v => (v < 0 && v >= -90) || (v >= 0 && v <= 900),\r\n message: () => i18n.getString(_TL_('Percentage is not valid. Enter a conversion rate between –90% and 900%.')),\r\n },\r\n});\r\n\r\nexport class ConversionRateAdjustmentView extends DeterministicWrapperView {\r\n viewFactory({\r\n value,\r\n i18n,\r\n showButtons = true,\r\n customValidators = defaultValidator,\r\n isRecommendationEnabled = false,\r\n template = 'inline',\r\n perfMarker = null,\r\n }) {\r\n const model = {\r\n AdjustmentPercentage: value,\r\n };\r\n\r\n const schema = {\r\n name: 'ConversionRateAdjustment',\r\n type: 'object',\r\n properties: {\r\n AdjustmentPercentage: {\r\n type: 'number',\r\n maxLength: 6,\r\n },\r\n required: [\r\n 'AdjustmentPercentage',\r\n ],\r\n },\r\n };\r\n\r\n const selectOptions = [\r\n { key: 'inc', text: i18n.getString(_TL_('Increase')) },\r\n { key: 'dec', text: i18n.getString(_TL_('Decrease')) },\r\n ];\r\n const fields = [\r\n {\r\n property: 'AdjustmentPercentage',\r\n control: ConversionRateAdjustmentControl,\r\n showLabel: false,\r\n i18n,\r\n perfMarker,\r\n values: selectOptions,\r\n validators: {\r\n type: {\r\n message: i18n.getString(_TL_('Conversion rate is invalid.')),\r\n },\r\n },\r\n },\r\n ];\r\n\r\n const conversionRateAdjustmentForm = new SimpleForm({\r\n schema,\r\n fields,\r\n model,\r\n i18n,\r\n customValidators: customValidators(i18n),\r\n showButtons,\r\n hasLabels: !isRecommendationEnabled,\r\n template,\r\n });\r\n\r\n conversionRateAdjustmentForm.on('save', (newModel) => {\r\n this.trigger('close', newModel);\r\n });\r\n\r\n conversionRateAdjustmentForm.on('cancel', () => {\r\n this.trigger('close');\r\n });\r\n\r\n return conversionRateAdjustmentForm;\r\n }\r\n\r\n get currentModel() {\r\n return _.defaults({}, this.view.currentModel());\r\n }\r\n\r\n validate() {\r\n return this.view.validate();\r\n }\r\n\r\n /**\r\n * Class name of the root element\r\n * @type {string}\r\n * @override\r\n */\r\n get className() { return 'conversion-rate-adjustment-view'; }\r\n}\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\n\r\nexport default class ViewModel {\r\n constructor({\r\n languages,\r\n selectedLanguage,\r\n i18n,\r\n withInheritOption,\r\n disabled,\r\n }) {\r\n const Inherit = null;\r\n\r\n this.languageOptions = _.chain(languages)\r\n .sortBy()\r\n .map(language => (\r\n {\r\n Text: i18n.getString(`Language_${language}`),\r\n Value: language,\r\n }))\r\n .value();\r\n\r\n // mark inherit the first language\r\n if (withInheritOption) {\r\n this.languageOptions.unshift({\r\n Text: i18n.getString('Language_Inherit'),\r\n Value: Inherit,\r\n });\r\n }\r\n\r\n this.selectedLanguage = ko.observable(withInheritOption && !selectedLanguage ?\r\n Inherit : selectedLanguage);\r\n\r\n this.disabled = ko.observable(disabled);\r\n\r\n this.isInheritOptionSelected = () =>\r\n (withInheritOption === true) && (this.selectedLanguage() === Inherit);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { PureKnockoutView } from '@bingads-webui/knockout-view';\r\nimport template from './template.pug';\r\nimport ViewModel from './viewmodel';\r\n\r\n/**\r\n * Provide language select function, with inherit option (optional)\r\n * Trigger event selectedLanguage:updated when user selection updated\r\n */\r\nexport class LanguageSelector extends PureKnockoutView {\r\n /**\r\n * Initilize view settings\r\n *\r\n * @param {Object} param - An object containing these default options for view:\r\n * @param {Object} param.i18nStrings - view customized description settings\r\n * @param {string} param.i18nStrings.Description - the customized string for view description\r\n * @param {string} param.i18nStrings.SaveWarning -\r\n * the customized string for warning for language update\r\n * @param {Object[]} param.languages - the languages set to choose from, default empty\r\n * @param {Object[]} param.selectedLanguage - language being selected,\r\n * default the first one when withInheritOption is false,\r\n * default inheritOption when withInheritOption is true\r\n * @param {boolean} param.withInheritOption - Whether allow the option 'inherit'\r\n * @param {boolean} param.disabled - whether to disable the language selection function\r\n * @param {Object} param.i18n - the localization settings, by default return the provided key\r\n *\r\n * @returns {void} void\r\n */\r\n initialize({\r\n i18nStrings,\r\n languages = [],\r\n selectedLanguage,\r\n i18n,\r\n withInheritOption = false,\r\n disabled = false,\r\n }) {\r\n this.options = _.defaults({\r\n i18nStrings,\r\n languages,\r\n selectedLanguage,\r\n i18n,\r\n withInheritOption,\r\n disabled,\r\n descriptionId: `language_selector_description_${_.uniqueId()}`,\r\n hintId: `language_selector_hint_${_.uniqueId()}`,\r\n }, {\r\n i18nStrings: {\r\n Description: i18n.getString('Campaign_Language_Description'),\r\n SaveWarning: i18n.getString('Campaign_FinalValue_SaveWarning'),\r\n },\r\n });\r\n super.initialize(this.options);\r\n this.viewModel.selectedLanguage.subscribe((language) => {\r\n this.trigger('selectedLanguage:changed', language);\r\n }, this);\r\n }\r\n get template() {\r\n return template;\r\n }\r\n\r\n get ViewModel() {\r\n return ViewModel;\r\n }\r\n\r\n /**\r\n * Get selected language\r\n *\r\n * @returns {String} selected language\r\n */\r\n getSelectedLanguage() {\r\n return this.viewModel.selectedLanguage();\r\n }\r\n\r\n /**\r\n * Get whether the inheritOption is selected\r\n * Only make sense when withInheritOption is true\r\n * @returns {boolean} true when inheritOption is selected, other wise\r\n */\r\n isInheritOptionSelected() {\r\n return this.viewModel.isInheritOptionSelected();\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport {\r\n jsdataRawDataPlugin as commonJsdataRawDataPlugin,\r\n} from '@bingads-webui/projection-grid-js-data-raw-data';\r\n\r\nexport const jsdataRawDataPlugin = commonJsdataRawDataPlugin({\r\n getRawData: _.property('raw'),\r\n});\r\n","import _ from 'underscore';\r\n\r\nexport const projectionGridEnableWithSelection = definePlugin => definePlugin('projectionGridEnableWithSelection', [\r\n 'config',\r\n 'gridView',\r\n 'toolbar',\r\n], ({\r\n plugins: {\r\n projectionGridEnableWithSelection: {\r\n toolbarItemIds,\r\n },\r\n },\r\n}, gridView, toolbar) => {\r\n const toolbarEditor = toolbar.gridToolbarGroup.toolbars.toolbar;\r\n\r\n gridView.on('didUpdate', () => {\r\n const selectedItems = gridView.selectedItems();\r\n\r\n _.each(toolbarItemIds, (id) => {\r\n const original = toolbarEditor.get(id);\r\n toolbarEditor.update(_.extend({}, original, {\r\n disabled: _.isEmpty(selectedItems),\r\n }));\r\n });\r\n });\r\n});\r\n","/* istanbul ignore file */\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport Backbone from 'backbone';\r\nimport _ from 'underscore';\r\n\r\nimport { DeterministicView } from '@bingads-webui/deterministic-view';\r\nimport { IODatePicker } from '@bingads-webui-cc-react/io-controls';\r\nimport { Constants } from '@bingads-webui-clientcenter/entity-utils';\r\nimport { DeterministicViewForBackBoneView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { withI18n } from '@bingads-webui-react/i18n-context';\r\n\r\nimport template from '../templates/customized-inline-edit-template.pug';\r\n\r\nconst { IOFormInputSchema, InsertionOrdersGridFieldNames } = Constants;\r\n\r\nexport class IODateInlineEditView extends DeterministicView {\r\n initialize({\r\n allowImmediateStart,\r\n allowEndless,\r\n i18n,\r\n minDate,\r\n selectedDate,\r\n }) {\r\n this.i18n = i18n;\r\n this.alwaysShowError = false;\r\n this.ioDatePicker = new DeterministicViewForBackBoneView({\r\n view: new (Backbone.View.extend({\r\n initialize() {\r\n this.selectedDate = selectedDate;\r\n this.onChanged = this.onChanged.bind(this);\r\n this.ioDatePickerComponent = withI18n(IODatePicker, i18n);\r\n },\r\n render() {\r\n ReactDOM.render(\r\n React.createElement(this.ioDatePickerComponent, {\r\n minDate: _.isString(minDate) ? i18n.parseDate(minDate) : minDate,\r\n schema: IOFormInputSchema.properties[InsertionOrdersGridFieldNames.ThruDate],\r\n onChanged: this.onChanged,\r\n dateValue: this.selectedDate,\r\n allowEndless,\r\n allowImmediateStart,\r\n alwaysShowError: false,\r\n }),\r\n this.el\r\n );\r\n return this;\r\n },\r\n onChanged({ value, isValid }) {\r\n this.selectedDate = value;\r\n this.isValid = isValid;\r\n this.render();\r\n },\r\n remove() {\r\n ReactDOM.unmountComponentAtNode(this.el);\r\n Backbone.View.prototype.remove.call(this);\r\n },\r\n }))().render(),\r\n });\r\n this.setChild('subEditView', this.ioDatePicker);\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 () => template({\r\n saveLabel: this.i18n.getString(_TL_('Save')),\r\n cancelLabel: this.i18n.getString(_TL_('Cancel')),\r\n });\r\n }\r\n\r\n save() {\r\n const { view: { isValid, selectedDate } = {} } = this.ioDatePicker;\r\n if (isValid) {\r\n this.trigger('save', {\r\n newSelectedDate: _.isDate(selectedDate) ? this.i18n.formatDate(selectedDate) : selectedDate,\r\n });\r\n }\r\n }\r\n\r\n cancel() {\r\n this.trigger('close');\r\n }\r\n}\r\n","// TODO: Move to shared components when 'grid-customized-popup-editor' is moved.\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport { IODateInlineEditView } from './date-react-view';\r\n\r\nexport function DateInlineEditableColumnPrompt({\r\n position,\r\n selectedDate,\r\n minDate,\r\n maxDate,\r\n i18n,\r\n onSave,\r\n item,\r\n columnName,\r\n allowImmediateStart,\r\n allowEndless,\r\n}) {\r\n const dateEditorView = new IODateInlineEditView({\r\n minDate,\r\n maxDate,\r\n selectedDate,\r\n i18n,\r\n allowImmediateStart,\r\n allowEndless,\r\n });\r\n\r\n dateEditorView.on('save', ({ newSelectedDate }) => {\r\n onSave({\r\n columnName,\r\n updatedValue: newSelectedDate,\r\n item,\r\n });\r\n\r\n dateEditorView.trigger('close');\r\n });\r\n\r\n const editorView = new GridCustomizedPopupEditor({\r\n editorView: dateEditorView.render(),\r\n cellPosition: position,\r\n renderBelow: false,\r\n className: 'grid-popupeditor popup-editor',\r\n customDismissCondition:\r\n e =>\r\n e.target.closest('.io-date-picker, .date-radio, .endless-date-radio, .single-calendar') === null,\r\n });\r\n\r\n editorView.render();\r\n}\r\n","/* istanbul ignore file */\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport Backbone from 'backbone';\r\n\r\nimport { DeterministicView } from '@bingads-webui/deterministic-view';\r\nimport { IOSpendCapAmount } from '@bingads-webui-cc-react/io-controls';\r\nimport { DeterministicViewForBackBoneView } from '@bingads-webui/deterministic-wrapper-view';\r\nimport { withI18n } from '@bingads-webui-react/i18n-context';\r\n\r\nimport template from '../templates/customized-inline-edit-template.pug';\r\n\r\nexport class IOSpendCapAmountInlineEditView extends DeterministicView {\r\n initialize({\r\n i18n,\r\n spendCapAmountValue,\r\n }) {\r\n this.i18n = i18n;\r\n this.alwaysShowError = false;\r\n this.ioSpendCapAmount = new DeterministicViewForBackBoneView({\r\n view: new (Backbone.View.extend({\r\n initialize() {\r\n this.spendCapAmountValue = spendCapAmountValue;\r\n this.ioSpendCapAmountComponent = withI18n(IOSpendCapAmount, i18n);\r\n },\r\n render() {\r\n ReactDOM.render(\r\n React.createElement(this.ioSpendCapAmountComponent, {\r\n onChanged: ({ value, isValid }) => {\r\n this.spendCapAmountValue = value;\r\n this.isValid = isValid;\r\n this.render();\r\n },\r\n spendCapAmountValue: this.spendCapAmountValue,\r\n alwaysShowError: false,\r\n allowUnlimited: true,\r\n }),\r\n this.el\r\n );\r\n return this;\r\n },\r\n remove() {\r\n ReactDOM.unmountComponentAtNode(this.el);\r\n Backbone.View.prototype.remove.call(this);\r\n },\r\n }))().render(),\r\n });\r\n this.setChild('subEditView', this.ioSpendCapAmount);\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 () => template({\r\n saveLabel: this.i18n.getString(_TL_('Save')),\r\n cancelLabel: this.i18n.getString(_TL_('Cancel')),\r\n });\r\n }\r\n\r\n save() {\r\n const { view: { isValid, spendCapAmountValue } = {} } = this.ioSpendCapAmount;\r\n if (isValid) {\r\n this.trigger('save', {\r\n newSpendCapAmountValue: spendCapAmountValue,\r\n });\r\n }\r\n }\r\n\r\n cancel() {\r\n this.trigger('close');\r\n }\r\n}\r\n","import { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport { IOSpendCapAmountInlineEditView } from './spend-cap-amount-react-view';\r\n\r\nexport function SpendCapAmountInlineEditableColumnPrompt({\r\n position,\r\n spendCapAmountValue,\r\n i18n,\r\n onSave,\r\n item,\r\n columnName,\r\n}) {\r\n const spendCapAmountEditorView = new IOSpendCapAmountInlineEditView({\r\n spendCapAmountValue,\r\n i18n,\r\n });\r\n\r\n spendCapAmountEditorView.on('save', ({ newSpendCapAmountValue }) => {\r\n onSave({\r\n columnName,\r\n updatedValue: newSpendCapAmountValue,\r\n item,\r\n });\r\n\r\n spendCapAmountEditorView.trigger('close');\r\n });\r\n\r\n const editorView = new GridCustomizedPopupEditor({\r\n editorView: spendCapAmountEditorView.render(),\r\n cellPosition: position,\r\n renderBelow: false,\r\n customDismissCondition: e =>\r\n e.target.closest('.unlimited-budget-input, .unlimited-radio, .budget-radio') === null,\r\n\r\n });\r\n\r\n editorView.render();\r\n}\r\n","import _ from 'underscore';\r\nimport {\r\n jsdataRawDataPlugin as commonJsdataRawDataPlugin,\r\n} from '@bingads-webui/projection-grid-js-data-raw-data';\r\n\r\nexport const jsdataRawDataPlugin = commonJsdataRawDataPlugin({\r\n getRawData: _.property('raw'),\r\n});\r\n","/* eslint-disable no-param-reassign */\r\n/* eslint-disable prefer-destructuring */\r\nimport _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport { TrackingTemplateInlineEditView } from '@bingads-webui-campaign/upgrade-url';\r\nimport { globalContext } from '@bingads-webui-campaign/injection-context';\r\n\r\nexport class TrackingTemplateColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n name, property, i18n, view, inlineEditableSave, isForVNext, deps = null, parentContainerSelector = null, enableEdit,\r\n }) {\r\n const title = i18n.getString('ColumnName_TrackingTemplate');\r\n\r\n super({\r\n name: name || 'TrackingTemplate',\r\n property: property || 'TrackingUrlTemplate',\r\n title: 'ColumnName_TrackingTemplate',\r\n editable: true,\r\n enableEdit,\r\n type: 'string',\r\n helpId: 'Page_CampaignsGrid_TrackingTemplate',\r\n bodyClasses: ['grid-column-TrackingTemplate'],\r\n i18n,\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.inlineEditableSave = inlineEditableSave;\r\n this.isForVNext = isForVNext;\r\n this.deps = deps;\r\n this.parentContainerSelector = parentContainerSelector;\r\n }\r\n\r\n pickProperty(item) {\r\n return item.TrackingUrlTemplate || '';\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const level = item.constructor.name.toLowerCase();\r\n // When tracking template is saved in adgroup, and open again,\r\n // the item.constructor.name will be object\r\n const grid = this.view.constructor.name.toLowerCase();\r\n const gridClass = this.view.el && this.view.el.className;\r\n let isAdGroupLevel = false;\r\n let isKeywordLevel = false;\r\n let testUurlService;\r\n let testUurl;\r\n let uurlLevels;\r\n let showUurlTestTool = false;\r\n\r\n // TODO: refactor this part later\r\n try {\r\n testUurlService = globalContext.require('component/upgraded-url/service/testUurl');\r\n } catch (e) {\r\n if (this.deps) {\r\n testUurlService = this.deps.testUurlService;\r\n }\r\n }\r\n\r\n if (testUurlService && testUurlService.uurlLevels && testUurlService.testUurl) {\r\n uurlLevels = testUurlService.uurlLevels;\r\n testUurl = testUurlService.testUurl;\r\n isAdGroupLevel = level === uurlLevels.AdGroup.toLowerCase() ||\r\n grid.indexOf(uurlLevels.AdGroup.toLowerCase()) >= 0 || gridClass === 'ad-groups-grid';\r\n isKeywordLevel = level === uurlLevels.Keyword.toLowerCase();\r\n // Show the inline test button for keyword and adgroup only\r\n showUurlTestTool = isAdGroupLevel || isKeywordLevel;\r\n }\r\n\r\n const trackingtemplateviewInlineView = new TrackingTemplateInlineEditView({\r\n i18n: this.i18n,\r\n trackingTemplate: item.TrackingUrlTemplate,\r\n showUurlTestTool,\r\n isForVNext: this.isForVNext,\r\n deps: this.deps,\r\n });\r\n const self = this;\r\n\r\n trackingtemplateviewInlineView.on('save', ({ trackingTemplate }) => {\r\n const updated = _.extendOwn({}, item, { TrackingUrlTemplate: trackingTemplate });\r\n\r\n return this.inlineEditableSave({\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'TrackingUrlTemplate',\r\n updated,\r\n editorView: trackingtemplateviewInlineView,\r\n editorViewCallbackAfterUpdate: () => {\r\n trackingtemplateviewInlineView.trigger('close');\r\n },\r\n });\r\n });\r\n\r\n trackingtemplateviewInlineView.on('testUurl', (fn, originalView) => {\r\n if (!trackingtemplateviewInlineView.viewModel.isValid()) {\r\n fn.call(originalView, null); // to stop the loading spinner\r\n return;\r\n }\r\n\r\n originalView.isInline = true;\r\n\r\n if (isKeywordLevel) {\r\n originalView.level = uurlLevels.Keyword;\r\n } else if (isAdGroupLevel) {\r\n originalView.level = uurlLevels.AdGroup;\r\n }\r\n\r\n const params = {\r\n TrackingUrlTemplate: trackingtemplateviewInlineView.trackingTemplateView.viewModel\r\n .trackingTemplate(),\r\n };\r\n\r\n const context = {\r\n customerId: self.view.options.scope.customerId,\r\n userId: self.view.options.scope.userId,\r\n accountId: self.view.options.scope.accountId,\r\n campaignId: item.Campaign.Id,\r\n entityId: item.Id,\r\n };\r\n\r\n if (isKeywordLevel) {\r\n context.adGroupId = item.AdGroup.Id;\r\n } else if (isAdGroupLevel) {\r\n context.adGroupId = item.Id;\r\n }\r\n\r\n const options = {\r\n apiInLog: 'tracking-template/uurlTest',\r\n };\r\n\r\n testUurl(fn, originalView, params, context, options);\r\n });\r\n\r\n const useVNextPosition = this.isForVNext && Object.keys(newPosition).length !== 0;\r\n const groupClass = `grid-group-${_.result(this.config, 'group', 'other')}`;\r\n const editorView = new GridCustomizedPopupEditor({\r\n editorView: trackingtemplateviewInlineView.render(),\r\n cellPosition: useVNextPosition ? newPosition : position,\r\n renderBelow: false,\r\n className: `tracking-template-inline-edit-popup grid-popupeditor ${groupClass}`,\r\n parentContainerSelector: useVNextPosition ? (this.parentContainerSelector || '.grid-and-disclaim-container') : null,\r\n });\r\n\r\n return editorView.render();\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport { CustomParameterInlineEditView } from '@bingads-webui-campaign/upgrade-url';\r\nimport { triggerScrollbarRepositionOnElementHeightChange } from '@bingads-webui-campaign-react/virtual-scrollbar-recalculate-trigger';\r\nimport template from './custom-parameters.pug';\r\n\r\nexport class CustomParametersColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n name,\r\n property,\r\n i18n,\r\n view,\r\n inlineEditableSave,\r\n permissions,\r\n isForVNext,\r\n parentContainerSelector = null,\r\n enableEdit,\r\n }) {\r\n const title = i18n.getString('ColumnName_URLCustomParameters');\r\n\r\n super({\r\n name: name || 'CustomParameters',\r\n property: property || 'UrlCustomParameters',\r\n title: 'ColumnName_URLCustomParameters',\r\n editable: true,\r\n enableEdit,\r\n type: 'string',\r\n helpId: 'Page_CampaignsGrid_URLCustomParameters',\r\n bodyClasses: ['grid-column-CustomParameters'],\r\n i18n,\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.inlineEditableSave = inlineEditableSave;\r\n this.permissions = permissions;\r\n this.isForVNext = isForVNext;\r\n this.parentContainerSelector = parentContainerSelector;\r\n }\r\n\r\n template({ value }) { return template({ value }); }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const customParametersInlineEditView = new CustomParameterInlineEditView({\r\n i18n: this.i18n,\r\n customParameters: item.UrlCustomParameters,\r\n permissions: this.permissions,\r\n entityType: 'phase1Entity', // TODO: remove after custom parameter increase GA.\r\n });\r\n\r\n customParametersInlineEditView.on('save', ({ customParams }) => {\r\n const updated = _.extendOwn({}, item, { UrlCustomParameters: customParams });\r\n\r\n return this.inlineEditableSave({\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'UrlCustomParameters',\r\n updated,\r\n editorView: customParametersInlineEditView,\r\n editorViewCallbackAfterUpdate: () => {\r\n customParametersInlineEditView.trigger('close');\r\n },\r\n });\r\n });\r\n\r\n const useVNextPosition = this.isForVNext && Object.keys(newPosition).length !== 0;\r\n const groupClass = `grid-group-${_.result(this.config, 'group', 'other')}`;\r\n const editorView = new GridCustomizedPopupEditor({\r\n editorView: customParametersInlineEditView.render(),\r\n cellPosition: useVNextPosition ? newPosition : position,\r\n renderBelow: false,\r\n className: `custom-parameters-inline-edit-popup grid-popupeditor ${groupClass}`,\r\n parentContainerSelector: useVNextPosition ? (this.parentContainerSelector || '.grid-and-disclaim-container') : null,\r\n });\r\n\r\n editorView.render();\r\n triggerScrollbarRepositionOnElementHeightChange(editorView.el);\r\n return editorView;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport { FinalUrlSuffixInlineEditView } from '@bingads-webui-campaign/upgrade-url';\r\n\r\nexport class FinalUrlSuffixColumn extends CampaignuiBaseColumn {\r\n constructor({\r\n name, property, i18n, view, inlineEditableSave, isForVNext, parentContainerSelector = null, enableEdit,\r\n }) {\r\n const title = i18n.getString('ColumnName_FinalUrlSuffix');\r\n super({\r\n name: name || 'FinalUrlSuffix',\r\n property: property || 'FinalUrlSuffix',\r\n title: 'ColumnName_FinalUrlSuffix',\r\n editable: true,\r\n enableEdit,\r\n type: 'string',\r\n helpId: 'pop_BA_NewAdCreate_FinalURLSuffix',\r\n bodyClasses: ['grid-column-FinalUrlSuffix'],\r\n i18n,\r\n helpAriaLabel: i18n.getString('Click to learn more about {{item}}', { item: title }),\r\n });\r\n\r\n this.i18n = i18n;\r\n this.view = view;\r\n this.inlineEditableSave = inlineEditableSave;\r\n this.isForVNext = isForVNext;\r\n this.parentContainerSelector = parentContainerSelector;\r\n }\r\n\r\n pickProperty(item) {\r\n return item.FinalUrlSuffix || '';\r\n }\r\n\r\n onPrompt({ position, item, newPosition }) {\r\n const finalUrlSuffixInlineEditView = new FinalUrlSuffixInlineEditView({\r\n i18n: this.i18n,\r\n finalUrlSuffix: item.FinalUrlSuffix,\r\n });\r\n\r\n finalUrlSuffixInlineEditView.on('save', ({ finalUrlSuffix }) => {\r\n const updated = _.extendOwn({}, item, { FinalUrlSuffix: finalUrlSuffix });\r\n\r\n return this.inlineEditableSave({\r\n view: this.view,\r\n i18n: this.i18n,\r\n fieldName: 'FinalUrlSuffix',\r\n updated,\r\n editorView: finalUrlSuffixInlineEditView,\r\n editorViewCallbackAfterUpdate: () => {\r\n finalUrlSuffixInlineEditView.trigger('close');\r\n },\r\n });\r\n });\r\n\r\n const useVNextPosition = this.isForVNext && Object.keys(newPosition).length !== 0;\r\n const groupClass = `grid-group-${_.result(this.config, 'group', 'other')}`;\r\n const editorView = new GridCustomizedPopupEditor({\r\n editorView: finalUrlSuffixInlineEditView.render(),\r\n cellPosition: useVNextPosition ? newPosition : position,\r\n renderBelow: false,\r\n className: `final-url-suffix-inline-edit-popup grid-popupeditor ${groupClass}`,\r\n parentContainerSelector: useVNextPosition ? (this.parentContainerSelector || '.grid-and-disclaim-container') : null,\r\n });\r\n\r\n return editorView.render();\r\n }\r\n}\r\n","/* eslint-disable import/first */\r\n/* eslint-disable import/extensions */\r\n/* eslint-disable import/no-unresolved */\r\n\r\n\r\nimport Promise from 'bluebird';\r\nimport competitionTab from '@bingads-webui-campaign-react/competition-tab';\r\n\r\nimport cacheManager from '@bingads-webui-campaign-legacy/cache-manager/index';\r\nimport DownloadView from '@bingads-webui-campaign-legacy/griddownload/view/baseDownload';\r\nimport instrumentation from '@bingads-webui-campaign-legacy/instrumentation/index';\r\nimport locationMap from '@bingads-webui-campaign-legacy/location-targets/view/locationMap';\r\nimport { getODataErrors } from '@bingads-webui-component-legacy/api-errors-campaign/index';\r\nimport { newPerformanceLogPlugin } from '@bingads-webui-component-legacy/bingads-grid/plugin/new-performance-log';\r\nimport { Columns, SelectedColumns } from '@bingads-webui-component-legacy/bingads-grid/service/column-chooser-preferences';\r\nimport { fetchSortInfo } from '@bingads-webui-component-legacy/bingads-grid/service/fetch-sortinfo';\r\nimport { getFilters } from '@bingads-webui-component-legacy/bingads-grid/service/filter-preferences';\r\nimport { getSegType, setSegType, getSegPreference } from '@bingads-webui-component-legacy/bingads-grid/service/segmentation-preferences';\r\nimport appConfig from '@bingads-webui-component-legacy/config/index';\r\nimport edm from '@bingads-webui-component-legacy/edm-campaign/index';\r\nimport odata from '@bingads-webui-component-legacy/http/channel/odata';\r\nimport date from '@bingads-webui-component-legacy/humanize/date';\r\nimport jsDataCampaign from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport sessionStore from '@bingads-webui-component-legacy/js-data-storage/session-storage';\r\n// eslint-disable-next-line\r\nimport _bingads_webui_component_legacy_legacy_router_index from '@bingads-webui-component-legacy/legacy-router/index';\r\n// eslint-disable-next-line\r\nconst { legacyRouter } = _bingads_webui_component_legacy_legacy_router_index;\r\nimport preferencesService from '@bingads-webui-component-legacy/preference/service/index';\r\nimport state from '@bingads-webui-component-legacy/state/index';\r\nimport Constants from '@bingads-webui-static-legacy/constants';\r\nimport asyncScheduler from '@bingads-webui-static-legacy/async-scheduler';\r\nimport pageContext from '@bingads-webui-static-legacy/page-context';\r\nimport cacheService from '@bingads-webui-static-legacy/cache-service';\r\nimport dataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\n\r\n\r\ninstrumentation.default = instrumentation;\r\nconst i18n = window.globalLegacyI18n.get('@bingads-webui/i18n-amd-loader!campaignui/feature/competition-tab');\r\n\r\nconst legacyDepsList = {\r\n '@bingads-webui/i18n-amd-loader!campaignui/feature/competition-tab': i18n,\r\n 'campaignui/feature/cache-manager/index': { default: cacheManager },\r\n 'campaignui/feature/griddownload/view/baseDownload': DownloadView,\r\n 'campaignui/feature/instrumentation/index': instrumentation,\r\n 'campaignui/feature/location-targets/view/locationMap': { default: locationMap },\r\n 'component/api-errors-campaign/index': { getODataErrors },\r\n 'component/bingads-grid/plugin/new-performance-log': { newPerformanceLogPlugin },\r\n 'component/bingads-grid/service/column-chooser-preferences': { Columns, SelectedColumns },\r\n 'component/bingads-grid/service/fetch-sortinfo': { fetchSortInfo },\r\n 'component/bingads-grid/service/filter-preferences': { getFilters },\r\n 'component/bingads-grid/service/segmentation-preferences': { getSegType, setSegType, getSegPreference },\r\n 'component/config/index': appConfig,\r\n 'component/edm-campaign/index': { default: edm },\r\n 'component/http/channel/odata': odata,\r\n 'component/humanize/date': date,\r\n 'component/js-data-campaign/index': jsDataCampaign,\r\n 'component/js-data-storage/session-storage': { default: sessionStore },\r\n 'component/legacy-router/index': { legacyRouter },\r\n 'component/preference/service/index': { default: preferencesService },\r\n 'component/state/index': state,\r\n Constants,\r\n 'module/service/shared/asyncScheduler': asyncScheduler,\r\n PageContext: pageContext,\r\n 'Services/CacheService': cacheService,\r\n SummaryDataContextManager: dataContextManager,\r\n};\r\n\r\nexport function competitionTabPromiseFactory() {\r\n return new Promise((resolve) => {\r\n competitionTab(legacyDepsList)\r\n .then((result) => {\r\n resolve(result);\r\n });\r\n });\r\n}\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Glyphicon } from '@bingads-webui-react/primitive';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nconst getStyles = (_, { palette = {} }) => ({\r\n button: {\r\n '&.btn': {\r\n fontSize: '14px',\r\n border: 'none',\r\n height: 56,\r\n paddingLeft: 8,\r\n paddingRight: 8,\r\n flex: '0 0 auto',\r\n '& .iconba': {\r\n fontSize: '14px',\r\n color: palette.themePrimary,\r\n marginRight: '8px',\r\n paddingBottom: '5px', // align to link\r\n },\r\n '&.btn[disabled]': {\r\n backgroundColor: 'initial',\r\n },\r\n },\r\n },\r\n buttonGray: {\r\n '&.btn': {\r\n backgroundColor: palette.neutralLighter,\r\n '&:hover': {\r\n backgroundColor: palette.neutralLight,\r\n },\r\n '&:focus': {\r\n backgroundColor: palette.neutralQuaternaryAlt,\r\n '&:hover': {\r\n backgroundColor: palette.neutralQuaternary,\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nclass AddConditionalFormatButtonUnthemed extends React.PureComponent {\r\n render() {\r\n return (\r\n \r\n \r\n {this.props.buttonText ? this.props.buttonText : this.props.i18n.getString(_TL_('Add conditional formatting'))}\r\n \r\n );\r\n }\r\n}\r\n\r\nAddConditionalFormatButtonUnthemed.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n buttonText: PropTypes.string,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n classes: PropTypes.shape({\r\n button: PropTypes.string.isRequired,\r\n buttonGray: PropTypes.string.isRequired,\r\n }).isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n disableAdd: PropTypes.bool,\r\n isGrayCommandBar: PropTypes.bool,\r\n};\r\n\r\nAddConditionalFormatButtonUnthemed.defaultProps = {\r\n disableAdd: false,\r\n isGrayCommandBar: false,\r\n buttonText: null,\r\n};\r\n\r\n\r\nexport const AddConditionalFormatButton =\r\n withDefaultStyles(AddConditionalFormatButtonUnthemed, getStyles);\r\n","export const conditionalFormattingType = [\r\n _TL_('>'),\r\n _TL_('>='),\r\n _TL_('='),\r\n _TL_('≠'),\r\n _TL_('<'),\r\n _TL_('<='),\r\n _TL_('between'),\r\n];\r\n\r\nexport const conditionalFormattingTypeMap = {\r\n '>': 'GreaterThan',\r\n '>=': 'GreaterThanEqual',\r\n '=': 'Equals',\r\n '≠': 'DoesNotEqual',\r\n '<': 'LessThan',\r\n '<=': 'LessThanEqual',\r\n between: 'Between',\r\n};\r\n\r\nexport const colorType = ['#EFF6FC', '#DFF6DD', '#FFF4CE', '#FDE7E9'];\r\n\r\nexport const conditionalFormattingNameMap = {\r\n GreaterThan: _TL_('greater than'),\r\n GreaterThanEqual: _TL_('greater than or equal'),\r\n Equals: _TL_('equal'),\r\n DoesNotEqual: _TL_('not equal'),\r\n LessThan: _TL_('less than'),\r\n LessThanEqual: _TL_('less than or equal'),\r\n Between: _TL_('between'),\r\n};\r\n\r\n\r\nexport const conditonEmptyItemProps = [{\r\n operator: 'GreaterThan',\r\n value: null,\r\n value2: null,\r\n color: colorType[0],\r\n}];\r\n","import React from 'react';\r\nimport { conditionalFormattingNameMap } from '../utils/config';\r\n\r\nexport function localizeCondition(i18n, item, type) {\r\n let fragments = [\r\n i18n.getString(conditionalFormattingNameMap[item.operator]),\r\n item.value,\r\n ];\r\n\r\n if (type === 'Percent') {\r\n fragments = fragments.concat(['%']);\r\n }\r\n if (item.operator === 'Between') {\r\n fragments = fragments.concat([\r\n i18n.getString(_TL_('and')),\r\n item.value2,\r\n ]);\r\n if (type === 'Percent') {\r\n fragments = fragments.concat(['%']);\r\n }\r\n }\r\n\r\n return fragments.join(' ');\r\n}\r\n\r\n\r\nexport function humanizedCondition(i18n, conditionProps, conditionalFormat, isColon) {\r\n const { name, type } = conditionProps;\r\n return (\r\n \r\n {name} {isColon && ':'}\r\n {\r\n conditionalFormat.map((item, i) => (\r\n \r\n \r\n {localizeCondition(i18n, item, type)}\r\n {i !== conditionalFormat.length - 1 && conditionalFormat.length !== 1 && ','}\r\n \r\n ))\r\n }\r\n );\r\n}\r\n","import React, { Fragment } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { Button } from '@bingads-webui-react/primitive';\r\nimport { Callout } from '@bingads-webui-react/callout';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { humanizedCondition } from './edit/humanized-condition';\r\n\r\nconst getStyle = (_, { palette = {} }) => ({\r\n viewAllConditionsButton: {\r\n '&.btn.btn-link': {\r\n display: 'block !important',\r\n height: 'auto',\r\n color: palette.themePrimary,\r\n },\r\n '& .color-blockage': {\r\n width: '16px',\r\n height: '16px',\r\n margin: '0px 4px',\r\n display: 'inline-block',\r\n verticalAlign: 'text-bottom',\r\n border: 'solid #B3B0AD 1px',\r\n },\r\n },\r\n});\r\n\r\nconst ViewAllConditionsPopoverUnthemed = props => (\r\n \r\n {Object.keys(props.conditionalFormats).map(key =>\r\n (\r\n props.onClickCondition(key)}\r\n >\r\n
\r\n {humanizedCondition(props.i18n, props.getConditionNameAndType(key), props.conditionalFormats[key], true)}\r\n
\r\n \r\n ))}\r\n
\r\n }\r\n >\r\n {props.children}\r\n \r\n);\r\n\r\nViewAllConditionsPopoverUnthemed.propTypes = {\r\n conditionalFormats: PropTypes.shape({}).isRequired,\r\n onClickCondition: PropTypes.func.isRequired,\r\n classes: PropTypes.shape({\r\n viewAllConditionsButton: PropTypes.string,\r\n }).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n getConditionNameAndType: PropTypes.func.isRequired,\r\n popoverClassName: PropTypes.shape().isRequired,\r\n children: PropTypes.element.isRequired,\r\n};\r\n\r\n\r\nexport const ViewAllConditionsPopover = withDefaultStyles(ViewAllConditionsPopoverUnthemed, getStyle);\r\n","import React, { Fragment } from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { Button } from '@bingads-webui-react/primitive';\r\nimport { IconButton } from '@fluentui/react/lib/Button';\r\nimport { keyCode } from '@bingads-webui/keycode';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { AddConditionalFormatButton } from './add-conditional-format-button';\r\nimport { humanizedCondition } from './edit/humanized-condition';\r\nimport { ViewAllConditionsPopover } from './view-all-conditions';\r\n\r\nconst getStyles = (_, { palette = {} }) => ({\r\n conditionListReadonly: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n '& .condition-bucket-color-icon-btn': {\r\n color: palette.themePrimary,\r\n '&:hover': {\r\n backgroundColor: 'inherit',\r\n color: palette.themePrimary,\r\n },\r\n },\r\n '& .iconba': {\r\n fontSize: '14px',\r\n },\r\n '& .conditions ': {\r\n height: '56px',\r\n paddingTop: '18px',\r\n flex: '0 1 auto',\r\n minWidth: '10px',\r\n textOverflow: 'ellipsis',\r\n color: palette.themePrimary,\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n '& .color-blockage': {\r\n width: '16px',\r\n height: '16px',\r\n display: 'inline-block',\r\n border: 'solid #B3B0AD 1px',\r\n margin: 'auto 4px',\r\n verticalAlign: 'text-bottom',\r\n },\r\n '& .btn.btn-link': {\r\n display: 'inline',\r\n },\r\n '& .humanized-condition': {\r\n display: 'inline',\r\n color: palette.themePrimary,\r\n fontFamily: 'Segoe UI',\r\n fontSize: '14px',\r\n lineHeight: '19px',\r\n },\r\n },\r\n '& .conditions:focus-within': {\r\n textOverflow: 'inherit', // collpase text would invisiable issues when use tab to change focus, reference here: https://msasg.visualstudio.com/DefaultCollection/Bing_Ads/_workitems/edit/3702640/\r\n },\r\n '& .btn.btn-link': {\r\n marginLeft: '5px',\r\n color: palette.themePrimary,\r\n textDecoration: 'underline',\r\n },\r\n },\r\n viewAllPopoverCloseButton: {\r\n '&.btn': {\r\n position: 'absolute !important',\r\n border: 'none',\r\n minWidth: 'auto',\r\n padding: '3px',\r\n top: 9,\r\n right: 8,\r\n },\r\n },\r\n viewAllPopoverClassName: {\r\n maxWidth: 'initial !important',\r\n '& .popover-title': {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n fontWeight: '600',\r\n },\r\n },\r\n});\r\n\r\nclass conditionListReadonlyUnthemed extends React.PureComponent {\r\n onKeyPress = (event, key) => {\r\n if (event.which === keyCode.Enter || event.which === keyCode.Space) {\r\n this.props.onClick(key);\r\n }\r\n };\r\n\r\n getConditionNameAndType = (key) => {\r\n const conditionSchema = this.props.conditionalFormatSchema.filter(item => item.key === key)[0];\r\n if (conditionSchema && conditionSchema.name) return { name: conditionSchema.name, type: conditionSchema.type };\r\n return { name: key, type: 'Float' };\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n {Object.keys(this.props.conditionalFormats).length !== 0 && (\r\n \r\n this.props.onClick()}\r\n />\r\n
\r\n {Object.keys(this.props.conditionalFormats).map(key => (\r\n
this.props.onClick(key)} tabIndex=\"0\" role=\"button\" onKeyPress={event => this.onKeyPress(event, key)}>\r\n {humanizedCondition(this.props.i18n, this.getConditionNameAndType(key), this.props.conditionalFormats[key], true)}\r\n
\r\n ))\r\n }\r\n
\r\n this.props.onClick(key)}\r\n getConditionNameAndType={this.getConditionNameAndType}\r\n popoverClassName={this.props.classes.viewAllPopoverClassName}\r\n classes={{\r\n calloutCloseButton: this.props.classes.viewAllPopoverCloseButton,\r\n }}\r\n i18n={this.props.i18n}\r\n >\r\n \r\n \r\n
\r\n )\r\n }\r\n {\r\n this.props.hideAddConditionButton ? null :\r\n ( this.props.onClick()}\r\n disableAdd={false}\r\n />)\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nconditionListReadonlyUnthemed.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n classes: PropTypes.shape({\r\n conditionListReadonly: PropTypes.string.isRequired,\r\n viewAllPopoverClassName: PropTypes.string.isRequired,\r\n viewAllPopoverCloseButton: PropTypes.string.isRequired,\r\n }).isRequired,\r\n conditionalFormats: PropTypes.shape({}).isRequired,\r\n conditionalFormatSchema: PropTypes.shape([]).isRequired,\r\n hideAddConditionButton: PropTypes.bool.isRequired,\r\n onClick: PropTypes.func.isRequired,\r\n // disableAdd: PropTypes.bool,\r\n // isGrayCommandBar: PropTypes.bool,\r\n};\r\n\r\nconditionListReadonlyUnthemed.defaultProps = {\r\n // disableAdd: false,\r\n // isGrayCommandBar: false,\r\n};\r\n\r\n\r\nexport const ConditionListReadonly = withDefaultStyles(conditionListReadonlyUnthemed, getStyles);\r\n","import classNames from 'classnames';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { DirectionalHint } from '@fluentui/react';\r\nimport { noop, mapObject, constant } from 'underscore';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { ContextualMenu } from '@bingads-webui-react/fabric-control';\r\n\r\nexport const getStyles = (_, { palette = {} }) => ({\r\n header: {\r\n '& .ms-ContextualMenu-header': {\r\n padding: '0px 4px',\r\n color: `${palette.neutralPrimary}`,\r\n fontSize: 14,\r\n fontWeight: 600,\r\n height: 32,\r\n },\r\n },\r\n textButton: {\r\n width: '100%',\r\n '&:hover': {\r\n backgroundColor: `${palette.neutralQuaternaryAlt} !important`,\r\n color: `${palette.neutralPrimary} !important`,\r\n },\r\n '&:focus': {\r\n color: `${palette.neutralPrimary} !important`,\r\n },\r\n '&.btn:focus': {\r\n outline: `1px solid ${palette.neutralPrimary}`,\r\n outlineOffset: -1,\r\n },\r\n '&.btn.focus:after, &.btn:focus:after, &.btn:active:focus': {\r\n border: 0,\r\n },\r\n },\r\n removeButton: {\r\n width: 'inherit',\r\n },\r\n textDiv: {\r\n whiteSpace: 'nowrap',\r\n maxWidth: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: 'inherit',\r\n },\r\n textSpan: {\r\n margin: '0px 4px 0px 4px',\r\n display: 'inline-block',\r\n flexGrow: 1,\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n textAlign: 'left',\r\n width: 'inherit',\r\n },\r\n savedConditionItem: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'row',\r\n },\r\n savedConditionRemove: {\r\n display: 'inline-block',\r\n float: 'right',\r\n fontSize: 12,\r\n '& a span.iconba.iconba-Cancel': {\r\n margin: '0px 4px',\r\n },\r\n },\r\n savedConditionText: {\r\n color: palette.neutralPrimary,\r\n verticalAlign: 'middle',\r\n display: 'inline-block',\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n maxWidth: '150px',\r\n width: 'inherit',\r\n float: 'left',\r\n },\r\n contextualConditionalFormatMenu: {\r\n '& .contextual-conditional-format-callout': {\r\n\r\n },\r\n },\r\n conditionRemoveModel: {\r\n zIndex: '1000001 !important', // ensure this one larger than contextual menu.\r\n '& .ms-Dialog-main': {\r\n maxWidth: 480,\r\n width: 480,\r\n '& .ms-Dialog-title': {\r\n paddingLeft: 24,\r\n paddingTop: 14,\r\n paddingBottom: 15,\r\n },\r\n '& .ms-Dialog-inner': {\r\n marginTop: 11,\r\n '& .ms-Dialog-actions': {\r\n marginTop: 18,\r\n '& .ms-Dialog-actionsRight': {\r\n textAlign: 'Left',\r\n '& .ms-Dialog-action': {\r\n marginLeft: 0,\r\n },\r\n },\r\n },\r\n },\r\n '& .ms-Button': {\r\n height: 12,\r\n width: 12,\r\n padding: 9,\r\n '& .ms-Button-icon': {\r\n height: 12,\r\n width: 12,\r\n fontSize: 12,\r\n margin: 0,\r\n top: 0,\r\n },\r\n },\r\n },\r\n },\r\n rootCallout: {\r\n zIndex: 1000000,\r\n // opacity: '1 !important',\r\n // filter: 'opacity(1) !important',\r\n top: 56,\r\n },\r\n});\r\n\r\n\r\nclass ConditionalFormatMenuUnthemed extends React.PureComponent {\r\n onClickProperty = (property) => {\r\n this.props.onSelected(property);\r\n }\r\n\r\n generateOneItem = item => ({\r\n key: item.key,\r\n text: item.name,\r\n onClick: () => this.onClickProperty(item),\r\n className: item.key,\r\n })\r\n\r\n render() {\r\n const items = this.props.conditionalFormatSchema.map(this.generateOneItem);\r\n\r\n return (\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nConditionalFormatMenuUnthemed.propTypes = {\r\n show: PropTypes.bool,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n classes: PropTypes.shape(mapObject(\r\n getStyles({}, {}),\r\n constant(PropTypes.string.isRequired)\r\n )).isRequired,\r\n target: PropTypes.shape({}).isRequired,\r\n onDismiss: PropTypes.func,\r\n onSelected: PropTypes.func.isRequired,\r\n conditionalFormatSchema: PropTypes.shape([]).isRequired,\r\n};\r\n\r\nConditionalFormatMenuUnthemed.defaultProps = {\r\n show: false,\r\n onDismiss: noop,\r\n};\r\n\r\nexport const ConditionalFormatMenu = withDefaultStyles(ConditionalFormatMenuUnthemed, getStyles);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { Button, Glyphicon } from '@bingads-webui-react/primitive';\r\nimport { Callout } from '@bingads-webui-react/callout';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\n\r\nconst getStyles = () => ({\r\n colorPickerPopover: {\r\n '& .popover-content': {\r\n width: '196px',\r\n height: '64px',\r\n padding: '16px !important',\r\n },\r\n '& .arrow': {\r\n display: 'none !important',\r\n },\r\n '& .bingads-webui-react-callout-close-button': {\r\n display: 'none !important',\r\n },\r\n '& .popover-title': {\r\n display: 'none !important',\r\n },\r\n '& .color-list': {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n },\r\n '& .color-list .color-blockage': {\r\n width: '32px',\r\n height: '32px',\r\n display: 'inline-block',\r\n border: 'solid #B3B0AD 1px',\r\n '&:hover': {\r\n border: 'solid #B3B0AD 6px',\r\n },\r\n '&:focus': {\r\n border: 'solid #605E5C 6px',\r\n },\r\n '&:active': {\r\n border: 'solid #605E5C 6px',\r\n },\r\n ' .selected:hover': {\r\n border: 'solid #605E5C 6px',\r\n },\r\n },\r\n },\r\n colorPickerBtn: {\r\n width: '54px',\r\n minWidth: '54px',\r\n padding: '5px',\r\n borderColor: '#605e5c',\r\n '&:hover': {\r\n backgroundColor: '#fff',\r\n },\r\n '&:active': {\r\n backgroundColor: '#fff',\r\n '&:focus:after': {\r\n border: 'none',\r\n },\r\n },\r\n '&:focus:after': {\r\n border: 'none',\r\n },\r\n '& .color-blockage': {\r\n width: '20px',\r\n height: '20px',\r\n display: 'inline-block',\r\n border: 'solid #B3B0AD 1px',\r\n },\r\n '& .color-picker-icon': {\r\n fontSize: '12px',\r\n top: '-3px',\r\n margin: '3px 0 3px 8px',\r\n },\r\n },\r\n});\r\n\r\nfunction randomId() {\r\n // eslint-disable-next-line no-undef\r\n const uint32 = window.crypto.getRandomValues(new Uint32Array(1))[0];\r\n return uint32.toString(16);\r\n}\r\n\r\n\r\nexport class ColorPickerUnthemed extends React.PureComponent {\r\n state = {\r\n show: false,\r\n }\r\n onColorChange = (color) => {\r\n this.props.onColorChange(color);\r\n this.setState({ show: false });\r\n }\r\n onClose = () => {\r\n this.setState({ show: false });\r\n }\r\n\r\n getTarget = (target) => {\r\n const colorPickerBtn = document.querySelector(target);\r\n return colorPickerBtn;\r\n };\r\n\r\n handleClickColorPickerBtn = () => {\r\n this.setState(prevState => ({ show: !prevState.show }));\r\n }\r\n\r\n handleClickOutside = () => {\r\n this.onClose();\r\n };\r\n\r\n render() {\r\n const randomColorPickerId = randomId();\r\n return (\r\n \r\n \r\n this.getTarget(`#color-picker-btn${randomColorPickerId}`)}\r\n placement=\"bottom\"\r\n focusLockContent={false}\r\n onClose={this.onClose}\r\n onDissmiss={this.onClose}\r\n content={\r\n \r\n
\r\n {\r\n this.props.colorList.map(color =>\r\n (
\r\n
\r\n }\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nColorPickerUnthemed.propTypes = {\r\n colorPicked: PropTypes.string.isRequired,\r\n colorList: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n onColorChange: PropTypes.func.isRequired,\r\n classes: PropTypes.shape({\r\n colorPickerPopover: PropTypes.string.isRequired,\r\n colorPickerBtn: PropTypes.string.isRequired,\r\n }).isRequired,\r\n};\r\n\r\n\r\nexport const ColorPicker = withDefaultStyles(ColorPickerUnthemed, getStyles);\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { FormGroup, Select, Button, Glyphicon } from '@bingads-webui-react/primitive';\r\nimport { Input } from '@bingads-webui-react/primitive-validation';\r\nimport { conditionalFormattingType, conditionalFormattingTypeMap, colorType } from '../utils/config';\r\nimport { ColorPicker } from './color-picker';\r\n\r\nexport class ConditionEditor extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.operators = this.getOperators();\r\n this.inputSchema = {\r\n properties: {\r\n value: {\r\n blockInput: false,\r\n type: this.props.type !== 'Integer' ? 'number' : 'integer',\r\n nullable: true,\r\n maxLength: 128,\r\n minimum: 0,\r\n maximum: this.props.type === 'Percent' ? 100.00 : null,\r\n },\r\n },\r\n };\r\n }\r\n\r\n\r\n onChangeInput1 = (result) => {\r\n const { value } = result.data;\r\n this.props.onChangeCondition({ ...this.props.condition, value });\r\n };\r\n\r\n onChangeInput2 = (result) => {\r\n const value2 = result.data.value;\r\n this.props.onChangeCondition({ ...this.props.condition, value2 });\r\n };\r\n\r\n onChangeOperator = (event) => {\r\n this.props.onChangeCondition({ ...this.props.condition, operator: event.target.value, value2: null });\r\n }\r\n\r\n onChangeColor = (color) => {\r\n this.props.onChangeCondition({ ...this.props.condition, ...color });\r\n };\r\n\r\n onDelete = () => {\r\n this.props.onDeleteConditon();\r\n }\r\n\r\n getOperators = () => conditionalFormattingType.map(op => ({\r\n text: this.props.i18n.getString(op),\r\n value: conditionalFormattingTypeMap[op],\r\n }));\r\n\r\n\r\n render() {\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {\r\n this.props.condition.operator !== 'Between' ?\r\n (\r\n
\r\n this.onChangeInput1(result),\r\n data: { value: this.props.condition.value },\r\n field: 'value',\r\n }\r\n }\r\n />\r\n {this.props.type === 'Percent' && %}\r\n
\r\n ) :\r\n (\r\n
\r\n this.onChangeInput1(result),\r\n data: { value: this.props.condition.value },\r\n field: 'value',\r\n }\r\n }\r\n />\r\n {this.props.type === 'Percent' && %}\r\n {this.props.i18n.getString(_TL_('and'))}\r\n this.onChangeInput2(result),\r\n data: { value: this.props.condition.value2 },\r\n field: 'value',\r\n }\r\n }\r\n />\r\n {this.props.type === 'Percent' && %}\r\n
\r\n )\r\n }\r\n
\r\n
\r\n this.onChangeColor({ color })}\r\n />\r\n
\r\n {this.props.deletable &&\r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nConditionEditor.propTypes = {\r\n condition: PropTypes.shape({\r\n value: PropTypes.number.isRequired,\r\n value2: PropTypes.number,\r\n operator: PropTypes.string.isRequired,\r\n color: PropTypes.string.isRequired,\r\n }).isRequired,\r\n type: PropTypes.string.isRequired,\r\n classes: PropTypes.shape({\r\n ConditionPopoverClassName: PropTypes.shape({}.isRequired),\r\n }).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n deletable: PropTypes.bool.isRequired,\r\n onDeleteConditon: PropTypes.func.isRequired,\r\n onChangeCondition: PropTypes.func.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { Label, FormGroup, Form, Button, ButtonToolbar } from '@bingads-webui-react/primitive';\r\nimport { keyName } from '@bingads-webui/keycode';\r\nimport { Callout } from '@bingads-webui-react/callout';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { ConditionEditor } from './condition-editor';\r\nimport { AddConditionalFormatButton } from '../add-conditional-format-button';\r\nimport { conditonEmptyItemProps, colorType } from '../utils/config';\r\n\r\n\r\nconst getStyles = (e, { palette = {} }) => ({\r\n ConditionPopoverClassName: {\r\n minWidth: '375px',\r\n maxWidth: '572px',\r\n top: '56px !important',\r\n marginTop: '1px !important',\r\n '& .selector-container': {\r\n overflow: 'overlay',\r\n },\r\n '& .popover-content': {\r\n padding: '0px 16px 16px 16px',\r\n '& .checkbox-inline': {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n },\r\n },\r\n '& .arrow': {\r\n display: 'none !important',\r\n },\r\n '& .popover-title': {\r\n display: 'none !important',\r\n },\r\n '& .condition-editor #popover-add-condition-btn': {\r\n height: 36,\r\n margin: '0 0 16px 0',\r\n },\r\n '& .condition-editor .condition-property .control-label': {\r\n display: 'block',\r\n fontSize: '20px',\r\n paddingTop: '24px',\r\n },\r\n '& .condition-operator': {\r\n width: '102px',\r\n marginRight: '12px',\r\n display: 'inline-block',\r\n '& .form-control': {\r\n backgroundSize: '12px 12px',\r\n },\r\n },\r\n '& .condition-number-editor': {\r\n width: '160px',\r\n marginRight: '12px',\r\n display: 'inline-block',\r\n '&.number-type-percent': {\r\n marginRight: '31px',\r\n },\r\n },\r\n '& .condition-color-picker': {\r\n width: '56px',\r\n display: 'inline-block',\r\n '& .condition-color-#EFF6FC': {\r\n background: '#EFF6FC',\r\n },\r\n },\r\n '& .condition-editor #popover-add-codition-btn': {\r\n background: '#ffffff !important',\r\n height: '36px',\r\n marginLeft: 0,\r\n marginBottom: '16px',\r\n '&:focus:after': {\r\n border: 'none',\r\n },\r\n },\r\n \"& .condition-value input[type='text']\": {\r\n width: '56px',\r\n marginRight: '4px',\r\n display: 'inline-block',\r\n },\r\n '& .condition-inline-editor-list .condition-inline-editor:last-child': {\r\n border: 'none',\r\n marginBottom: '0px',\r\n },\r\n '& .condition-inline-editor': {\r\n display: 'flex',\r\n margin: '18px 0px',\r\n paddingBottom: '18px',\r\n borderBottom: '1px solid #B3B0AD',\r\n '& .condition-number-editor': {\r\n '& .percent-icons': {\r\n paddingLeft: '4px',\r\n fontSize: '14px',\r\n position: 'absolute',\r\n left: '288px',\r\n },\r\n \"& input[type='text']\": {\r\n width: '160px',\r\n },\r\n '& input.error.form-control': {\r\n marginBottom: '12px',\r\n },\r\n '& .condition-number-input': {\r\n lineHeight: '32px',\r\n display: 'flex',\r\n '& div[role=\"alert\"]': {\r\n lineHeight: 'initial',\r\n position: 'relative',\r\n flex: 'none',\r\n left: '-160px',\r\n top: '32px',\r\n },\r\n },\r\n '& .condition-number-between-input': {\r\n lineHeight: '32px',\r\n display: 'flex',\r\n \"& input[type='text']\": {\r\n width: '56px',\r\n },\r\n '& .and-text': {\r\n fontSize: '14px',\r\n width: '48px',\r\n padding: '0 13px',\r\n '&.number-type-percent': {\r\n padding: '0 0 0 18px ',\r\n },\r\n },\r\n '& .percent-icons.first': {\r\n left: '184px',\r\n },\r\n '& div[role=\"alert\"]': {\r\n lineHeight: 'initial',\r\n position: 'relative',\r\n left: '-56px',\r\n top: '32px',\r\n '& .error': {\r\n whiteSpace: 'nowrap',\r\n position: 'absolute',\r\n zIndex: '1',\r\n },\r\n },\r\n '& .condition-number-input-last + div[role=\"alert\"]': {\r\n left: '-160px',\r\n },\r\n '& .condition-number-input-last + div[role=\"alert\"]:nth-of-type(2)': {\r\n top: '56px',\r\n },\r\n },\r\n },\r\n '& .condition-color-picker': {\r\n lineHeight: '32px',\r\n },\r\n '& .condition-delete-btn': {\r\n border: 'none',\r\n height: 32,\r\n padding: 0,\r\n margin: 0,\r\n minWidth: 0,\r\n flex: '0 0 auto',\r\n '& .condition-delete-icon': {\r\n lineHeight: '32px',\r\n marginLeft: '12px',\r\n fontSize: '16px',\r\n color: palette.themePrimary,\r\n marginRight: '8px',\r\n paddingBottom: '5px',\r\n },\r\n },\r\n },\r\n '& .condition-value .condition-number-editor': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'baseline',\r\n },\r\n '& .condition-value select': {\r\n width: '220px',\r\n },\r\n },\r\n});\r\n\r\nclass ConditionPopoverUnthemed extends React.PureComponent {\r\n state = {\r\n isValid: false,\r\n isAddButtonEnable: true,\r\n conditionList: this.props.conditionalFormat,\r\n key: this.props.conditionalFormatSchema.key,\r\n }\r\n\r\n componentDidUpdate(preProps, prevState) {\r\n if (!_.isEqual(prevState.key, this.props.conditionalFormatSchema.key) || preProps.show === false) {\r\n // eslint-disable-next-line react/no-did-update-set-state\r\n this.setState({ conditionList: this.props.conditionalFormat, key: this.props.conditionalFormatSchema.key });\r\n }\r\n }\r\n\r\n\r\n onKeyDown = (event) => {\r\n // save upon pressing enter\r\n if (event.key === keyName[13]) {\r\n event.preventDefault();\r\n if (this.state.isValid) {\r\n this.onSave();\r\n }\r\n }\r\n }\r\n\r\n onSave = () => {\r\n this.props.onApplyCondition(this.getConditionList(), this.state.key);\r\n }\r\n\r\n onCancel = () => {\r\n this.props.onCancelCondition();\r\n }\r\n\r\n onClickAddCondition = () => {\r\n const conditionItem = conditonEmptyItemProps;\r\n const newConditionList = this.state.conditionList.concat(conditionItem);\r\n this.setState({\r\n conditionList: newConditionList,\r\n isValid: false,\r\n isAddButtonEnable: newConditionList.length < colorType.length,\r\n });\r\n }\r\n\r\n onDeleteConditon = (deleteConditionIndex) => {\r\n if (deleteConditionIndex >= 0) {\r\n const newConditionList = [...this.state.conditionList];\r\n newConditionList.splice(deleteConditionIndex, 1);\r\n this.setState({ conditionList: newConditionList, isAddButtonEnable: newConditionList.length < colorType.length });\r\n this.onValidCheckConditionList(newConditionList);\r\n }\r\n }\r\n\r\n onChangeCondition = (conditionIndex, newCondition) => {\r\n const newConditionList = [...this.state.conditionList];\r\n const condition = newCondition;\r\n newConditionList.splice(conditionIndex, 1, condition);\r\n this.setState({ conditionList: newConditionList });\r\n this.onValidCheckConditionList(newConditionList);\r\n }\r\n\r\n\r\n onValidCheckConditionList = (newConditionList) => {\r\n // Confirm each condition data\r\n let validCount = 0;\r\n newConditionList.forEach((condition) => {\r\n validCount += this.validCheckCondition(condition);\r\n });\r\n if (validCount === newConditionList.length) {\r\n this.setState({\r\n isValid: true,\r\n });\r\n } else {\r\n this.setState({\r\n isValid: false,\r\n });\r\n }\r\n }\r\n\r\n getConditionList = () => this.state.conditionList.map((item) => {\r\n if (item.operator === 'Between' && item.value2 < item.value) {\r\n return ({ ...item, value: item.value2, value2: item.value });\r\n }\r\n return item;\r\n })\r\n\r\n isPercentNumber = val => _.isNumber(val) && /^(([1-9]?\\d(\\.\\d{1,2})?)|100|100.00)$/.test(Number(val))\r\n\r\n validCheckCondition = (item) => {\r\n let match = true;\r\n if (this.props.conditionalFormatSchema.type === 'Percent') {\r\n match = match && this.isPercentNumber(item.value);\r\n if (item.operator === 'Between') {\r\n match = match && this.isPercentNumber(item.value2);\r\n }\r\n } else {\r\n match = match && _.isNumber(item.value);\r\n if (item.operator === 'Between') {\r\n match = match && _.isNumber(item.value2);\r\n }\r\n }\r\n return match ? 1 : 0;\r\n }\r\n\r\n handleClickOutside = () => {\r\n this.onCancel();\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {this.props.show && this.state.conditionList.map((conditionItem, index) => (\r\n 1}\r\n onDeleteConditon={() => this.onDeleteConditon(index)}\r\n onChangeCondition={condition => this.onChangeCondition(index, condition)}\r\n />))}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n {this.props.children}\r\n \r\n );\r\n }\r\n}\r\n\r\nConditionPopoverUnthemed.propTypes = {\r\n show: PropTypes.bool.isRequired,\r\n conditionalFormatSchema: PropTypes.instanceOf({}).isRequired,\r\n classes: PropTypes.shape({\r\n ConditionPopoverClassName: PropTypes.string.isRequired,\r\n }).isRequired,\r\n popoverContainer: PropTypes.shape().isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n onApplyCondition: PropTypes.func.isRequired,\r\n onCancelCondition: PropTypes.func.isRequired,\r\n conditionalFormat: PropTypes.shape([]).isRequired,\r\n children: PropTypes.element.isRequired,\r\n};\r\n\r\nexport const ConditionPopover = withDefaultStyles(ConditionPopoverUnthemed, getStyles);\r\n","import React from 'react';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { Button, Glyphicon } from '@bingads-webui-react/primitive';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { humanizedCondition } from './humanized-condition';\r\nimport { ConditionPopover } from './condition-popover';\r\n\r\nconst getConditionPillStyles = (_, { palette = {} }) => ({\r\n conditionPillContainer: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n margin: '12px 16px 1px 0px',\r\n background: `${palette.neutralSecondary} !important`,\r\n fontSize: '14px',\r\n lineHeight: '19px',\r\n borderRadius: '2px',\r\n height: '28px',\r\n '& .humanized-condition': {\r\n border: 'none',\r\n display: 'flex',\r\n color: palette.white,\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n textOverflow: 'ellipsis',\r\n maxWidth: '600px',\r\n },\r\n '& .condition-pill': {\r\n border: 'none',\r\n background: 'transparent !important',\r\n fontWeight: 'normal',\r\n height: '28px',\r\n lineHeight: '1em',\r\n '&:hover': {\r\n background: `${palette.neutralPrimaryAlt} !important`,\r\n },\r\n '& .color-blockage': {\r\n width: '16px',\r\n height: '16px',\r\n display: 'inline-block',\r\n border: 'solid #B3B0AD 1px',\r\n margin: '0px 4px',\r\n },\r\n },\r\n '& .remove': {\r\n borderRadius: '2px',\r\n padding: '8px',\r\n lineHeight: '12px',\r\n height: '28px',\r\n minWidth: '12px',\r\n background: 'transparent !important',\r\n\r\n '&:hover': {\r\n background: `${palette.neutralPrimaryAlt} !important`,\r\n },\r\n\r\n '& .iconba': {\r\n fontSize: '12px',\r\n position: 'static',\r\n margin: 0,\r\n },\r\n },\r\n },\r\n\r\n conditionPillContainerSelected: {\r\n background: `${palette.themePrimary} !important`,\r\n\r\n '& .condition-pill': {\r\n '&:hover': {\r\n background: `${palette.themeDark} !important`,\r\n },\r\n '& .color-blockage': {\r\n width: '16px',\r\n height: '16px',\r\n display: 'inline-block',\r\n border: 'solid #B3B0AD 1px',\r\n margin: '0px 4px',\r\n },\r\n },\r\n '& .remove': {\r\n '&:hover': {\r\n background: `${palette.themeDark} !important`,\r\n },\r\n },\r\n },\r\n});\r\n\r\n\r\nfunction randomId() {\r\n // eslint-disable-next-line no-undef\r\n const uint32 = window.crypto.getRandomValues(new Uint32Array(1))[0];\r\n return uint32.toString(16);\r\n}\r\n\r\nclass ConditionPillUnThemed extends React.PureComponent {\r\n static propTypes = {\r\n show: PropTypes.bool,\r\n conditionalFormat: PropTypes.shape([]).isRequired,\r\n property: PropTypes.string.isRequired,\r\n onRemoveCondition: PropTypes.func.isRequired,\r\n container: PropTypes.shape().isRequired,\r\n classes: PropTypes.shape({\r\n conditionSelectorPopover: PropTypes.string.isRequired,\r\n conditionPopoverClassName: PropTypes.string.isRequired,\r\n conditionSelectorPopoverClassName: PropTypes.string.isRequired,\r\n conditionPillContainer: PropTypes.string.isRequired,\r\n conditionPillContainerSelected: PropTypes.string.isRequired,\r\n }).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n conditionalFormatSchema: PropTypes.shape([]).isRequired,\r\n onApplyCondition: PropTypes.func.isRequired,\r\n };\r\n\r\n static defaultProps = {\r\n show: false,\r\n };\r\n\r\n state = {\r\n showConditionPopover: this.props.show,\r\n };\r\n\r\n onClose = () => {\r\n this.setState({\r\n showConditionPopover: false,\r\n });\r\n this.focusOnButton();\r\n }\r\n\r\n onApplyCondition = (newConditionList, key) => {\r\n this.props.onApplyCondition(newConditionList, key);\r\n this.onClose();\r\n }\r\n\r\n\r\n onRemoveCondition = () => {\r\n this.props.onRemoveCondition(this.props.property);\r\n }\r\n\r\n onChangeConditionPopoverVisible = () => {\r\n this.setState(prevState => ({ showConditionPopover: !prevState.showConditionPopover }));\r\n }\r\n\r\n conditionPillButtonUniqueId = `condition-pill-${randomId()}`;\r\n\r\n focusOnButton() {\r\n const conditionPillButton = document.querySelector(`.${this.conditionPillButtonUniqueId}`);\r\n if (conditionPillButton) {\r\n conditionPillButton.focus();\r\n }\r\n }\r\n\r\n\r\n render() {\r\n const pillContainerClassNames = classNames(\r\n 'condition-pill-container', this.props.classes.conditionPillContainer, this.props.conditionalFormatSchema.key,\r\n this.state.showConditionPopover ? this.props.classes.conditionPillContainerSelected : null,\r\n this.state.showConditionPopover ? 'condition-pill-selected' : null\r\n );\r\n return (\r\n
\r\n \r\n \r\n
\r\n {humanizedCondition(this.props.i18n, { name: this.props.conditionalFormatSchema.name, type: this.props.conditionalFormatSchema.type }, this.props.conditionalFormat)}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport const ConditionPill = withDefaultStyles(ConditionPillUnThemed, getConditionPillStyles);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport onClickOutside from 'react-onclickoutside';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { Button, Glyphicon } from '@bingads-webui-react/primitive';\r\nimport { AddConditionalFormatButton } from './add-conditional-format-button';\r\nimport { ConditionalFormatMenu } from './edit/conditional-format-menu';\r\nimport { ConditionPopover } from './edit/condition-popover';\r\nimport { ConditionPill } from './edit/condition-pill';\r\nimport { conditonEmptyItemProps } from './utils/config';\r\n\r\nconst getConditionalFormatBarStyles = (_, { palette = {} }) => ({\r\n ConditionFormatBar: {\r\n position: 'relative',\r\n minHeight: '56px',\r\n display: 'flex',\r\n backgroundColor: palette.neutralLighter,\r\n '& .condition-bar-button-group': {\r\n marginLeft: 'auto',\r\n display: 'flex',\r\n },\r\n '& .save-condition-button': {\r\n border: 'none',\r\n },\r\n '& .condition-bar-ignore-click-outside ul.is-open i[data-icon-name=\"ChevronRight\"]': {\r\n color: palette.neutralSecondary,\r\n },\r\n '& button.add-condition-button .iconba-Add': {\r\n color: palette.neutralSecondary,\r\n },\r\n '& button.condition-bar-button': {\r\n border: 'none',\r\n background: 'transparent',\r\n padding: '0px 7px',\r\n height: 56,\r\n '& .iconba': {\r\n color: palette.neutralSecondary,\r\n },\r\n '&:hover': {\r\n backgroundColor: palette.neutralLight,\r\n },\r\n '&:focus': {\r\n backgroundColor: palette.neutralQuaternaryAlt,\r\n '&:hover': {\r\n backgroundColor: palette.neutralQuaternary,\r\n },\r\n },\r\n },\r\n '& .condition-bar-divider': {\r\n borderLeft: `1px solid ${palette.neutralLight}`,\r\n margin: '8px 0px',\r\n },\r\n '& button.condition-bar-cancel-button': {\r\n padding: '0px 18px',\r\n minWidth: 'auto',\r\n '& .iconba:before': {\r\n color: palette.neutralSecondary,\r\n },\r\n },\r\n '& div[role=alert]': {\r\n color: palette.redDark,\r\n },\r\n },\r\n ConditionPopover: {\r\n '& .popover-content': {\r\n padding: '0px 16px 16px 16px',\r\n },\r\n marginTop: '1px !important',\r\n '& .arrow': {\r\n display: 'none !important',\r\n },\r\n '& .popover-title': {\r\n display: 'none !important',\r\n },\r\n '& .condition-title .control-label': {\r\n fontSize: '20px',\r\n paddingTop: '24px',\r\n },\r\n '& div[role=alert]': {\r\n color: palette.redDark,\r\n },\r\n },\r\n ConditionList: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'flex-start',\r\n paddingLeft: '32px',\r\n\r\n '& .condition-remove-modal': {\r\n '& .modal-body': {\r\n wordBreak: 'break-word',\r\n },\r\n },\r\n\r\n '& .error': {\r\n flexBasis: '100%',\r\n color: palette.red,\r\n },\r\n\r\n '& .condition-pill-container.invalid-condition-pill-container': {\r\n backgroundColor: `${palette.red} !important`,\r\n\r\n '& .condition-pill:hover': {\r\n backgroundColor: `${palette.red} !important`,\r\n },\r\n },\r\n },\r\n ConditionSelectorPopoverClassName: {\r\n minWidth: '200px',\r\n maxWidth: '400px',\r\n '& .popover-content': {\r\n padding: '0',\r\n },\r\n marginTop: '1px !important',\r\n '& .arrow': {\r\n display: 'none !important',\r\n },\r\n '& .popover-title': {\r\n display: 'none !important',\r\n },\r\n '& .condition-property .control-label': {\r\n padding: '0px 10px',\r\n display: 'block',\r\n lineHeight: '32px',\r\n fontSize: '20px',\r\n paddingTop: '24px',\r\n },\r\n '& .item-icon-left.glyphicon': {\r\n width: '24px',\r\n },\r\n },\r\n ConditionSelector: {\r\n '& .condition-value-list': {\r\n width: '100%',\r\n '& .btn': {\r\n fontSize: '14px',\r\n border: 'none',\r\n textAlign: 'left',\r\n padding: '0px 5px',\r\n fontWeight: 'normal',\r\n height: '36px',\r\n '& .item-text': {\r\n marginRight: '4px',\r\n },\r\n },\r\n },\r\n },\r\n Selected: {\r\n height: '16px',\r\n width: '16px',\r\n },\r\n ItemIconLeft: {\r\n '&.iconba-RadioBullet2': {\r\n color: '#107C10 !important',\r\n },\r\n '&.iconba-PauseListView12': {\r\n color: `${palette.neutralTertiary} !important`,\r\n },\r\n '&.iconba-Remove': {\r\n color: '#A80000 !important',\r\n },\r\n '&.glyphicon': {\r\n fontFamily: 'MsAds MDL2 Assets',\r\n },\r\n marginRight: '8px',\r\n width: '16px',\r\n height: '16px',\r\n display: 'inline-block',\r\n },\r\n});\r\n\r\n\r\nclass ConditionalFormatBarUnthemed extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showConditionalFormatMenu: !this.props.openedConditionKey,\r\n showConditionPopOver: false,\r\n conditionSchema: {},\r\n };\r\n }\r\n\r\n onApplyCondition = (newConditionParam, key) => {\r\n const conditionalFormats = { ...this.props.conditionalFormats };\r\n conditionalFormats[key || this.state.conditionSchema.key] = newConditionParam;\r\n this.props.onConditionalFormatsChange(conditionalFormats);\r\n this.setState({ showConditionPopOver: false, conditionSchema: {} });\r\n };\r\n\r\n onCancelCondition = () => {\r\n this.setState({ showConditionPopOver: false, conditionSchema: {} });\r\n };\r\n\r\n\r\n onRemoveCondition = (property) => {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const { [property]: deletedProperty, ...conditionalFormats } = this.props.conditionalFormats;\r\n this.props.onConditionalFormatsChange(conditionalFormats);\r\n }\r\n\r\n\r\n getConditionEditList = () =>\r\n Object.keys(this.props.conditionalFormats).map(key => (\r\n item.key === key)[0] : {}}\r\n property={key}\r\n onRemoveCondition={this.onRemoveCondition}\r\n i18n={this.props.i18n}\r\n classes={this.props.classes}\r\n onApplyCondition={this.onApplyCondition}\r\n />));\r\n\r\n showSelectedConditionPopover = (conditionSchema) => {\r\n this.setState({\r\n showConditionPopOver: true,\r\n conditionSchema,\r\n });\r\n }\r\n\r\n handleClickOutside = () => {\r\n this.props.hideConditionFormatBar();\r\n };\r\n\r\n // TODO Will switch to use new i18ns and update the correct icon for save\r\n render() {\r\n // const disabledSaveConditionButton = (this.props.savedConditions\r\n // && this.props.savedConditions.length >= MaximumSavedConditionsLimit);\r\n\r\n // const saveConditionButton = (\r\n // \r\n // \r\n // {this.props.i18n.getString(_TL_('Save'))}\r\n // );\r\n // const saveConditionPopover = (\r\n // \r\n // {customDisabledSaveConditionButton ? (\r\n // \r\n // {customDisabledSaveConditionReason}\r\n // \r\n // }\r\n // >\r\n //
\r\n // {saveConditionButton}\r\n //
\r\n // ) : saveConditionButton}\r\n // );\r\n // const hideSaveConditionButton = _.isFunction(this.props.hideSaveConditionButton) ?\r\n // this.props.hideSaveConditionButton(this.props) : this.props.hideSaveConditionButton;\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n !!this.props.conditionalFormats && this.props.conditionalFormatSchema && Object.keys(this.props.conditionalFormats).map(key => (\r\n item.key === key)[0] : {}}\r\n property={key}\r\n onRemoveCondition={this.onRemoveCondition}\r\n i18n={this.props.i18n}\r\n classes={this.props.classes}\r\n onApplyCondition={this.onApplyCondition}\r\n />))\r\n }\r\n {\r\n this.setState({ showConditionalFormatMenu: false });\r\n }}\r\n onSelected={this.showSelectedConditionPopover}\r\n />\r\n \r\n this.setState(prevState => ({ showConditionalFormatMenu: !prevState.showConditionalFormatMenu }))}\r\n disableAdd={false}\r\n isGrayCommandBar\r\n />\r\n \r\n
\r\n
\r\n
\r\n {/* {!hideSaveConditionButton && saveConditionPopover}\r\n todo: add save btn [ Do not do temporarily]\r\n */}\r\n \r\n \r\n {this.props.i18n.getString(_TL_('Reset'))}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nConditionalFormatBarUnthemed.propTypes = {\r\n hideConditionFormatBar: PropTypes.func.isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n classes: PropTypes.shape({\r\n ConditionFormatBar: PropTypes.string.isRequired,\r\n ConditionList: PropTypes.string.isRequired,\r\n // SaveConditionPopover: PropTypes.string.isRequired,\r\n }).isRequired,\r\n conditionalFormats: PropTypes.shape({}).isRequired,\r\n conditionalFormatSchema: PropTypes.shape([]).isRequired,\r\n onConditionalFormatsChange: PropTypes.func.isRequired,\r\n // legacyI18n: PropTypes.shape({\r\n // getString: PropTypes.func,\r\n // }).isRequired,\r\n onReset: PropTypes.func.isRequired,\r\n openedConditionKey: PropTypes.string,\r\n // disableAdd: PropTypes.bool,\r\n // hideSaveConditionButton: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\r\n};\r\n\r\nConditionalFormatBarUnthemed.defaultProps = {\r\n openedConditionKey: null,\r\n // disableAdd: false,\r\n // hideSaveConditionButton: false,\r\n};\r\n\r\nexport const ConditionalFormatBar =\r\n withDefaultStyles(onClickOutside(ConditionalFormatBarUnthemed), getConditionalFormatBarStyles);\r\n","import React, { Fragment } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { getConditionalFormatStyles } from './styles/conditional-format-style';\r\nimport { ConditionListReadonly } from './condition-list-readonly';\r\nimport { ConditionalFormatBar } from './conditional-format-bar';\r\n\r\n\r\nclass ConditionalFormatUnthemed extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.maximumConditionLimit = Number.MAX_SAFE_INTEGER; // Need check\r\n this.i18n = props.i18n;\r\n this.state = {\r\n showConditionalFormatBar: false,\r\n openedConditionKey: null,\r\n };\r\n }\r\n\r\n onReset = () => {\r\n this.setState({ showConditionalFormatBar: false, openedConditionKey: null });\r\n this.props.onConditionalFormatsChange({});\r\n this.props.resetToolbarVisibility({\r\n forceHideToolbar: false,\r\n });\r\n }\r\n\r\n setupConditionListOnToolbar = () => {\r\n const conditionalFormatView = (\r\n \r\n {\r\n this.setState({ showConditionalFormatBar: true, openedConditionKey: key });\r\n this.props.resetToolbarVisibility({\r\n forceHideToolbar: true,\r\n });\r\n }}\r\n />\r\n \r\n );\r\n\r\n const newItem = {\r\n id: 'conditional-format',\r\n type: 'custom',\r\n content: conditionalFormatView,\r\n classes: this.props.classes.conditionalFormat,\r\n };\r\n this.props.toolbarEditor.update(newItem);\r\n }\r\n\r\n render() {\r\n if (this.props.conditionalFormatSchema.length) {\r\n this.setupConditionListOnToolbar();\r\n }\r\n return (\r\n \r\n {!!this.props.conditionalFormatSchema.length && this.state.showConditionalFormatBar &&\r\n = this.maximumConditionLimit}\r\n savedConditions={this.state.savedConditions}\r\n hideConditionFormatBar={() => {\r\n this.setState({ showConditionalFormatBar: false });\r\n this.props.resetToolbarVisibility({\r\n forceHideToolbar: false,\r\n });\r\n }}\r\n />\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\n\r\nConditionalFormatUnthemed.propTypes = {\r\n onConditionalFormatsChange: PropTypes.func.isRequired,\r\n conditionalFormats: PropTypes.shape({}).isRequired,\r\n conditionalFormatSchema: PropTypes.shape([]).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n toolbarEditor: PropTypes.func.isRequired,\r\n resetToolbarVisibility: PropTypes.func.isRequired,\r\n classes: PropTypes.shape({\r\n conditionalFormat: PropTypes.string.isRequired,\r\n }).isRequired,\r\n hideAddConditionButton: PropTypes.bool,\r\n};\r\n\r\nConditionalFormatUnthemed.defaultProps = {\r\n hideAddConditionButton: false,\r\n};\r\n\r\n\r\nexport const ConditionalFormatWrapper = withDefaultStyles(ConditionalFormatUnthemed, getConditionalFormatStyles);\r\n","export const getConditionalFormatStyles = (_, { palette = {} }) => ({\r\n conditionalFormat: {\r\n maxWidth: '398px',\r\n },\r\n '& .iconba-ConditionalFormat': {\r\n color: palette.themePrimary,\r\n marginRight: '8px',\r\n marginLeft: '24px',\r\n },\r\n '& .iconba': {\r\n fontSize: '14px',\r\n },\r\n});\r\n","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"grid-selectAcrossPagesPanel\\\" data-bind=\\\"visible: shouldShowPlugin\\\"\\u003E\\u003Cdiv class=\\\"current-page-all-selected\\\" data-bind=\\\"visible: !allSelected()\\\"\\u003E\\u003Cspan data-bind=\\\"text: currentRowsSelectionText\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"select-all-cross-page\\\" href=\\\"javascript:void(0)\\\" data-bind=\\\"text: selectAllPagesText, attr: {"aria-label": selectAllPagesText}\\\" role=\\\"button\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"cross-page-all-selected\\\" data-bind=\\\"visible: allSelected\\\"\\u003E\\u003Cspan data-bind=\\\"text: allRowsSelectedText\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"deselect-all-cross-page\\\" href=\\\"javascript:void(0)\\\" data-bind=\\\"text: clearSelectedText, attr: {"aria-label": clearSelectedText}\\\" role=\\\"button\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (grouping, text) {if (grouping) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"column-chooser panel\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Cdiv class=\\\"panel-title\\\" data-bind=\\\"text: text.headerTitle\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"small column-chooser-instructions\\\" data-bind=\\\"text: text.subheader\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"panel-body\\\"\\u003E\";\nif (text.notification) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"h5\\\"\\u003E\\u003Cspan class=\\\"infomark infoalign\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (null == (pug_interp = text.notification) ? \"\" : pug_interp) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group clearfix\\\"\\u003E\\u003Ch5 class=\\\"pull-left\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option-header\\\"\\u003E\\u003Cb data-bind=\\\"text: text.availableColumns\\\"\\u003E\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cul class=\\\"column-chooser-categories\\\" data-bind=\\\"foreach: categories.all\\\" role=\\\"tablist\\\"\\u003E\\u003Cli class=\\\"column-chooser-category clickable\\\" role=\\\"tab\\\" data-bind=\\\"click: $parent.categories.setCategory, css: { active: $index() === $parent.categories.current() }, attr: { "tabindex": $index() === $parent.categories.current() ? 0 : -1, "aria-selected": $index() === $parent.categories.current() ? "true" : "false", "aria-controls": "column-chooser-options-" + $index(), "aria-label": _viewModel.name }\\\"\\u003E\\u003Ca data-bind=\\\"text: _viewModel.name, css: {"type-bold": $index() === $parent.categories.current()}\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003Cdiv class=\\\"column-chooser-list\\\" data-bind=\\\"attr: {id: "column-chooser-options-" + categories.current()}\\\" role=\\\"tabpanel\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-bulk-control text-right\\\" data-bind=\\\"click: selectAll\\\"\\u003E\\u003Ca class=\\\"deemphasize\\\" data-bind=\\\"text: allActionText()\\\" href=\\\"javascript:void(0);\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003Cspan class=\\\"arrow-button enabled\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cul class=\\\"column-chooser-options available\\\" data-bind=\\\"foreach: options.available\\\" role=\\\"listbox\\\"\\u003E\\u003Cli class=\\\"option\\\" data-bind=\\\"with: _viewModel, visible: _viewModel.name, attr: { "tabindex": _viewModel.isFirst() ? 0 : -1, "aria-selected": _viewModel.isFirst(), "data-name": id }\\\" role=\\\"option\\\"\\u003E\\u003Cspan data-bind=\\\"text: name, css: {"type-bold": !isSelected()}\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C!--ko if: isSelected()--\\u003E\\u003Cspan class=\\\"pull-right\\\" data-bind=\\\"css: { disabled: isDisabled() || isMandatory(), }, text: $root.text.added\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko ifnot: isSelected()--\\u003E\\u003Ca class=\\\"pull-right\\\" data-bind=\\\"clickToggle: isSelected, css: { enabled: !isDisabled(), disabled: isDisabled}, text: $root.text.add, attr: { "tabindex": isFirst() ? 0 : -1 }\\\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fh5\\u003E\\u003Ch5 class=\\\"pull-left\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option-header\\\"\\u003E\\u003Cb data-bind=\\\"text: text.selectedColumnsWithReorder\\\"\\u003E\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-list right\\\"\\u003E\\u003Cul class=\\\"column-chooser-options selected\\\" data-bind=\\\"foreach: options.sortedSelection, sortable: { list: options.selected, placeholder: 'column-chooser-option-placeholder', items: 'li:not(.column-chooser-option-unmovable)' }\\\" role=\\\"listbox\\\"\\u003E\\u003Cli class=\\\"column-chooser-option-selected\\\" role=\\\"option\\\" data-bind=\\\"with: _viewModel, css: { "column-chooser-option-unmovable": _viewModel.isDisabled() && !_viewModel.isMandatory()}, visible: _viewModel.name, attr: { "tabindex": _viewModel.isFirst() ? 0 : -1, "aria-selected": _viewModel.isFirst() }\\\"\\u003E\\u003Cspan class=\\\"trigger-icon\\\" data-bind=\\\"visible: !isDisabled()\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan data-bind=\\\"text: name\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"pull-right remove\\\"\\u003E\\u003C!--ko ifnot: isDisabled() || isMandatory()--\\u003E\\u003Ca class=\\\"a11y-delete\\\" data-bind=\\\"clickToggle: isSelected, text: $root.text.remove, attr: { "tabindex": isFirst() ? 0 : -1 }\\\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fh5\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--ko if: showSave--\\u003E\\u003Chr\\u003E\\u003Cdiv class=\\\"form-inline\\\"\\u003E\\u003Ch5 class=\\\"checkbox form-group\\\"\\u003E\\u003Clabel data-omniturelinkname=\\\"columnchooser_savecolumns\\\"\\u003E\\u003Cinput type=\\\"checkbox\\\" data-bind=\\\"checked: enableSave\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = text.saveColumnSet) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003Cinput class=\\\"form-control\\\" type=\\\"text\\\" maxlength=\\\"100\\\" data-bind=\\\"value: savedName, style: { visibility: enableSave() ? 'visible' : 'hidden' }\\\"\\u003E\\u003C\\u002Fh5\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: applyButtonVisible\\\"\\u003E\\u003Cinput class=\\\"btn btn-primary\\\" type=\\\"button\\\" data-omniturelinkname=\\\"columnchooser_ok\\\" data-bind=\\\"value: text.applyColumns, click: function () { events.trigger('save'); }\\\"\\u003E \\u003Cinput class=\\\"btn btn-default\\\" type=\\\"button\\\" data-omniturelinkname=\\\"columnchooser_cancel\\\" data-bind=\\\"value: text.cancel, click: function () { events.trigger('cancel'); }\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"column-chooser panel\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Cdiv class=\\\"panel-title\\\" data-bind=\\\"text: text.heading\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cspan class=\\\"small column-chooser-instructions\\\" data-bind=\\\"text: text.subheader\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cdiv class=\\\"panel-body\\\"\\u003E\\u003Cdiv class=\\\"form-group clearfix\\\"\\u003E\\u003Cul class=\\\"column-chooser-categories\\\" data-bind=\\\"foreach: categories.all, css: { hide: categories.all().length < 2 }\\\" role=\\\"tablist\\\"\\u003E\\u003Cli class=\\\"column-chooser-category clickable\\\" data-bind=\\\"click: $parent.categories.setCategory, text: _viewModel.name, css: { active: $index() === $parent.categories.current() }, attr: { "tabindex": $index() === $parent.categories.current() ? 0 : -1, "aria-selected": $index() === $parent.categories.current() ? "true" : "false" }\\\" role=\\\"tab\\\" aria-controls=\\\"column-chooser-options-available\\\"\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003Cdiv class=\\\"column-chooser-list\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option-header\\\"\\u003E\\u003Cb data-bind=\\\"text: text.availableColumns\\\"\\u003E\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-bulk-control\\\" data-bind=\\\"click: selectAll\\\"\\u003E\\u003Ca class=\\\"deemphasize\\\" data-bind=\\\"text: text.addAll\\\" href=\\\"javascript:void(0);\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003Cspan class=\\\"arrow-button enabled\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cul class=\\\"column-chooser-options\\\" id=\\\"column-chooser-options-available\\\" data-bind=\\\"foreach: options.available\\\" role=\\\"listbox\\\"\\u003E\\u003Cli class=\\\"column-chooser-option\\\" data-bind=\\\"with: _viewModel, visible: _viewModel.name, attr: { "tabindex": _viewModel.isFirst() ? 0 : -1, "aria-selected": _viewModel.isFirst() }\\\" role=\\\"option\\\"\\u003E\\u003Cspan data-bind=\\\"text: name\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"arrow-button pull-right clickable\\\" data-bind=\\\"clickToggle: isSelected, css: { enabled: !isDisabled(), disabled: isDisabled }, attr: { "tabindex": (isDisabled() || !isFirst()) ? -1 : 0, "title": $root.text.add }\\\" role=\\\"button\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-list\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option-header\\\"\\u003E\\u003Cb data-bind=\\\"text: text.selectedColumns\\\"\\u003E\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-bulk-control\\\" data-bind=\\\"click: removeAll\\\"\\u003E\\u003Cspan class=\\\"arrow-button remove\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Ca class=\\\"deemphasize\\\" data-bind=\\\"text: text.removeAll\\\" href=\\\"javascript:void(0);\\\"\\u003E= text.deselectAll\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cul class=\\\"column-chooser-options column-chooser-options-selected\\\" data-bind=\\\"foreach: options.selected, sortable: { list: options.selected, placeholder: 'column-chooser-option-placeholder', items: 'li:not(:first)' }\\\" role=\\\"listbox\\\"\\u003E\\u003Cli class=\\\"column-chooser-option-selected\\\" data-bind=\\\"with: _viewModel, style: {height: "28px"}, css: { "column-chooser-option-fixed": $index() === 0 }, visible: _viewModel.name, attr: { "tabindex": _viewModel.isFirst() ? 0 : -1, "aria-selected": _viewModel.isFirst() }\\\" role=\\\"option\\\"\\u003E\\u003Cspan class=\\\"trigger-icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan data-bind=\\\"text: name\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"arrow-button remove pull-right a11y-delete\\\" data-bind=\\\"visible: !isDisabled(), clickToggle: isSelected, attr: { "tabindex": isFirst() ? 0 : -1, "title": $root.text.remove }\\\" role=\\\"button\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\" data-bind=\\\"visible: applyButtonVisible\\\"\\u003E\\u003Cinput class=\\\"btn btn-primary\\\" type=\\\"button\\\" data-bind=\\\"value: text.apply, click: function () { events.trigger('save'); }\\\"\\u003E \\u003Cinput class=\\\"btn btn-default\\\" type=\\\"button\\\" data-bind=\\\"value: text.cancel, click: function () { events.trigger('cancel'); }\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"grouping\" in locals_for_with?locals_for_with.grouping:typeof grouping!==\"undefined\"?grouping:undefined,\"text\" in locals_for_with?locals_for_with.text:typeof text!==\"undefined\"?text:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (classes, i18n, isFirstItem, isNewFeature, leftIconClass, posInSet, setSize, text) {pug_mixins[\"newFeature\"] = pug_interp = function(isNewFeature, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nif (isNewFeature) {\npug_html = pug_html + \"\\u003Csup class=\\\"new-feature-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('New_Feature_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fsup\\u003E\";\n}\n};\nif (leftIconClass) {\nclasses = ['spritedimage', 'toolbar-icon', 'toolbar-icon-left', leftIconClass]\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([classes], [true]), false, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"grid-menu\\\"\"+\" type=\\\"button\\\" role=\\\"button\\\"\"+pug.attr(\"value\", text || '', true, true)+pug.attr(\"tabindex\", (isFirstItem ? \"0\" : \"-1\"), true, true)+pug.attr(\"aria-setsize\", setSize, true, true)+pug.attr(\"aria-posinset\", posInSet, true, true)) + \"\\u003E\";\npug_mixins[\"newFeature\"](isNewFeature, i18n);}.call(this,\"classes\" in locals_for_with?locals_for_with.classes:typeof classes!==\"undefined\"?classes:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isFirstItem\" in locals_for_with?locals_for_with.isFirstItem:typeof isFirstItem!==\"undefined\"?isFirstItem:undefined,\"isNewFeature\" in locals_for_with?locals_for_with.isNewFeature:typeof isNewFeature!==\"undefined\"?isNewFeature:undefined,\"leftIconClass\" in locals_for_with?locals_for_with.leftIconClass:typeof leftIconClass!==\"undefined\"?leftIconClass:undefined,\"posInSet\" in locals_for_with?locals_for_with.posInSet:typeof posInSet!==\"undefined\"?posInSet:undefined,\"setSize\" in locals_for_with?locals_for_with.setSize:typeof setSize!==\"undefined\"?setSize:undefined,\"text\" in locals_for_with?locals_for_with.text:typeof text!==\"undefined\"?text:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (classes, i18n, isNewFeature, leftIconClass, linkText, text) {pug_mixins[\"newFeature\"] = pug_interp = function(isNewFeature, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nif (isNewFeature) {\npug_html = pug_html + \"\\u003Csup class=\\\"new-feature-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('New_Feature_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fsup\\u003E\";\n}\n};\npug_mixins[\"generateTitle\"] = pug_interp = function(text, linkText, isNewFeature, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nif (linkText) {\npug_html = pug_html + \"\\u003Cspan class=\\\"primary\\\"\\u003E\" + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\npug_mixins[\"newFeature\"](isNewFeature, i18n);\npug_html = pug_html + \"\\u003Ca class=\\\"secondary text-right\\\" href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = linkText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp));\npug_mixins[\"newFeature\"](isNewFeature, i18n);\n}\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"anchor\\\" role=\\\"menuitem\\\" tabindex=\\\"0\\\"\\u003E\";\nif (leftIconClass) {\nclasses = ['spritedimage', 'toolbar-icon', 'toolbar-icon-left', leftIconClass]\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([classes], [true]), false, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_mixins[\"generateTitle\"](text, linkText, isNewFeature, i18n);\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"classes\" in locals_for_with?locals_for_with.classes:typeof classes!==\"undefined\"?classes:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isNewFeature\" in locals_for_with?locals_for_with.isNewFeature:typeof isNewFeature!==\"undefined\"?isNewFeature:undefined,\"leftIconClass\" in locals_for_with?locals_for_with.leftIconClass:typeof leftIconClass!==\"undefined\"?leftIconClass:undefined,\"linkText\" in locals_for_with?locals_for_with.linkText:typeof linkText!==\"undefined\"?linkText:undefined,\"text\" in locals_for_with?locals_for_with.text:typeof text!==\"undefined\"?text:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, isFirstItem, isNewFeature, isShowRightIcon, leftIconClass, menuClassNames, menuClasses, menuItems, posInSet, rightIconClass, setSize, title) {pug_mixins[\"newFeature\"] = pug_interp = function(isNewFeature, i18n){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nif (isNewFeature) {\npug_html = pug_html + \"\\u003Csup class=\\\"new-feature-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('New_Feature_Label')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fsup\\u003E\";\n}\n};\nmenuClasses = ['grid-menu-container', 'grid-colchooser', 'dropdown-toggle'].concat(menuClassNames);\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"clickable\",menuClasses], [false,true]), false, true)+\" type=\\\"button\\\" data-toggle=\\\"dropdown\\\" role=\\\"button\\\"\"+pug.attr(\"tabindex\", (isFirstItem ? '0' : '-1'), true, true)+pug.attr(\"aria-haspopup\", (menuItems.length > 0 ? 'true' : 'false'), true, true)+pug.attr(\"aria-setsize\", setSize, true, true)+pug.attr(\"aria-posinset\", posInSet, true, true)+\" aria-expanded=\\\"false\\\"\") + \"\\u003E\";\nif (leftIconClass != null) {\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes(['spritedimage toolbar-icon toolbar-icon-left ' + leftIconClass], [true]), false, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cspan class=\\\"grid-menu\\\"\\u003E\" + (pug.escape(null == (pug_interp = title) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\npug_mixins[\"newFeature\"](isNewFeature, i18n);\nif (isShowRightIcon) {\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes(['spritedimage toolbar-icon ' + (rightIconClass || 'icon-arrowdown-normal')], [true]), false, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cul class=\\\"dropdown-menu\\\" role=\\\"menu\\\"\\u003E\\u003C\\u002Ful\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"isFirstItem\" in locals_for_with?locals_for_with.isFirstItem:typeof isFirstItem!==\"undefined\"?isFirstItem:undefined,\"isNewFeature\" in locals_for_with?locals_for_with.isNewFeature:typeof isNewFeature!==\"undefined\"?isNewFeature:undefined,\"isShowRightIcon\" in locals_for_with?locals_for_with.isShowRightIcon:typeof isShowRightIcon!==\"undefined\"?isShowRightIcon:undefined,\"leftIconClass\" in locals_for_with?locals_for_with.leftIconClass:typeof leftIconClass!==\"undefined\"?leftIconClass:undefined,\"menuClassNames\" in locals_for_with?locals_for_with.menuClassNames:typeof menuClassNames!==\"undefined\"?menuClassNames:undefined,\"menuClasses\" in locals_for_with?locals_for_with.menuClasses:typeof menuClasses!==\"undefined\"?menuClasses:undefined,\"menuItems\" in locals_for_with?locals_for_with.menuItems:typeof menuItems!==\"undefined\"?menuItems:undefined,\"posInSet\" in locals_for_with?locals_for_with.posInSet:typeof posInSet!==\"undefined\"?posInSet:undefined,\"rightIconClass\" in locals_for_with?locals_for_with.rightIconClass:typeof rightIconClass!==\"undefined\"?rightIconClass:undefined,\"setSize\" in locals_for_with?locals_for_with.setSize:typeof setSize!==\"undefined\"?setSize:undefined,\"title\" in locals_for_with?locals_for_with.title:typeof title!==\"undefined\"?title:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"grid-toolbar-expand\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"grid-toolbar grid-toolbar-container\\\" role=\\\"toolbar\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"modal-dialog\\\" role=\\\"dialog\\\"\\u003E\\u003Cdiv class=\\\"modal-content\\\"\\u003E\\u003C!--ko if: isHtmlContent--\\u003E\\u003Cdiv class=\\\"modal-body\\\" data-bind=\\\"html: body()\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C!--ko ifnot: isHtmlContent--\\u003E\\u003Cdiv class=\\\"modal-body\\\" data-bind=\\\"text: body()\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C!--\\u002Fko--\\u003E\\u003Cdiv class=\\\"modal-footer\\\"\\u003E\\u003Cbutton class=\\\"btn btn-primary\\\" type=\\\"button\\\" data-bind=\\\"text: primaryText()\\\"\\u003E\\u003C\\u002Fbutton\\u003E\\u003C!--ko if: defaultText()--\\u003E \\u003Cbutton class=\\\"btn btn-default\\\" type=\\\"button\\\" data-dismiss=\\\"modal\\\" data-bind=\\\"text: defaultText()\\\"\\u003E\\u003C\\u002Fbutton\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (Status, _, i18n, stateWhitelist) {pug_html = pug_html + \"\\u003Cdiv class=\\\"dropdown open\\\"\\u003E\\u003Cul class=\\\"dropdown-menu\\\" role=\\\"menu\\\"\\u003E\";\nif (_.contains(stateWhitelist, 'Active')) {\npug_html = pug_html + \"\\u003Cli class=\\\"active text-left\\\" role=\\\"presentation\\\"\\u003E\\u003Cdiv class=\\\"statuschangesubtask\\\"\\u003E\\u003Cspan\" + (\" class=\\\"statuschangelink clickable\\\"\"+pug.attr(\"title\", i18n.get('EntityStatus_Active'), true, true)+\" tabindex=\\\"0\\\" role=\\\"menuitem\\\"\") + \"\\u003E\\u003Cspan class=\\\"statuschange-icon statusEnabled_icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\nif (Status === \"Active\") {\npug_html = pug_html + \"\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Active')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Active')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n}\nif (_.contains(stateWhitelist, 'Paused')) {\npug_html = pug_html + \"\\u003Cli class=\\\"paused text-left\\\" role=\\\"presentation\\\"\\u003E\\u003Cdiv class=\\\"statuschangesubtask\\\"\\u003E\\u003Cspan\" + (\" class=\\\"statuschangelink clickable\\\"\"+pug.attr(\"title\", i18n.get('EntityStatus_Paused'), true, true)+\" tabindex=\\\"0\\\" role=\\\"menuitem\\\"\") + \"\\u003E\\u003Cspan class=\\\"statuschange-icon statusPaused_icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\nif (Status === \"Paused\") {\npug_html = pug_html + \"\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Paused')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Paused')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n}\nif (_.contains(stateWhitelist, 'Deleted')) {\npug_html = pug_html + \"\\u003Cli class=\\\"deleted text-left\\\" role=\\\"presentation\\\"\\u003E\\u003Cdiv class=\\\"statuschangesubtask\\\"\\u003E\\u003Cspan\" + (\" class=\\\"statuschangelink clickable\\\"\"+pug.attr(\"title\", i18n.get('EntityStatus_Deleted'), true, true)+\" tabindex=\\\"0\\\" role=\\\"menuitem\\\"\") + \"\\u003E\\u003Cspan class=\\\"statuschange-icon statusDeleted_icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\nif (Status === \"Deleted\") {\npug_html = pug_html + \"\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Deleted')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Deleted')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n}\nif (_.contains(stateWhitelist, 'PausedAsRemoved')) {\npug_html = pug_html + \"\\u003Cli class=\\\"paused-as-removed text-left\\\" role=\\\"presentation\\\"\\u003E\\u003Cdiv class=\\\"statuschangesubtask\\\"\\u003E\\u003Cspan\" + (\" class=\\\"statuschangelink clickable\\\"\"+pug.attr(\"title\", i18n.get('EntityStatus_Removed'), true, true)+\" tabindex=\\\"0\\\" role=\\\"menuitem\\\"\") + \"\\u003E\\u003Cspan class=\\\"statuschange-icon statusDeleted_icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\nif (Status === \"Paused\") {\npug_html = pug_html + \"\\u003Cstrong\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Removed')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fstrong\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('EntityStatus_Removed')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fli\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"Status\" in locals_for_with?locals_for_with.Status:typeof Status!==\"undefined\"?Status:undefined,\"_\" in locals_for_with?locals_for_with._:typeof _!==\"undefined\"?_:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"stateWhitelist\" in locals_for_with?locals_for_with.stateWhitelist:typeof stateWhitelist!==\"undefined\"?stateWhitelist:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"walkme__link\\\" data-bind=\\\"visible: !!walkthru()\\\"\\u003E\\u003Ci class=\\\"spritedimage icon--tour\\\"\\u003E\\u003C\\u002Fi\\u003E\\u003Ca href=\\\"javascript:void(0);\\\" data-bind=\\\"attr: {"analytics-id": "tour:" + walkthru().name}\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.get('Walkme_guided_tour')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","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, size) {pug_html = pug_html + \"\\u003Cselect\" + (\" class=\\\"form-control input\\\"\"+\" role=\\\"listbox\\\" data-bind=\\\"options: availableOptions, optionsText: 'text', optionsValue: 'key', value: selectedOption, attr: { disabled: useRecommendationBid }\\\"\"+pug.attr(\"aria-label\", i18n.getString('BidAdjustment_Options'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003Cdiv class=\\\"input-group bid-adjustment-input-group\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control text-right\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"aria-label\", i18n.getString('BidAdjustment_BidMultiplier'), true, true)+pug.attr(\"size\", size, true, true)+pug.attr(\"maxlength\", size, true, true)+\" data-bind=\\\"textInput: bidAdjPercentage, attr: { disabled: useRecommendationBid }\\\"\") + \"\\u003E\\u003Cspan class=\\\"input-group-addon\\\"\\u003E\" + (pug.escape(null == (pug_interp = '%') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"size\" in locals_for_with?locals_for_with.size:typeof size!==\"undefined\"?size: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 (hasRecommendation, i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"bid-adjustment-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AudiencesAssociationGrid_BidRecommendation_Description')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\nif (hasRecommendation) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"bid-adjustment-manual-content bid-adjustment-margin-bottom\\\"\\u003E\" + (null == (pug_interp = require(\"./bid-adjustment-control.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"bid-adjustment-recommendation bid-adjustment-margin-bottom\\\"\\u003E\\u003Cinput type=\\\"checkbox\\\" data-bind=\\\"checked: useRecommendationBid\\\" aria-labelledby=\\\"ReommendationBidLabel\\\"\\u003E\\u003Cdiv class=\\\"audience-bid-recommendation-performance\\\"\\u003E\" + (null == (pug_interp = require(\"./bid-recommendation-performance.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"bid-adjustment-manual-content bid-adjustment-margin-bottom\\\"\\u003E\" + (null == (pug_interp = require(\"./bid-adjustment-control.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"hasRecommendation\" in locals_for_with?locals_for_with.hasRecommendation:typeof hasRecommendation!==\"undefined\"?hasRecommendation: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 (i18n, performanceMetric) {var format = {\ncompact: 'short',\nwithSign: 'always',\nminimumFractionDigits: 0,\nmaximumFractionDigits: 2,\n}\nvar oriCon = performanceMetric.EstimatedIncreaseInConversions\nvar oriCli = performanceMetric.EstimatedIncreaseInClicks\nvar oriImp = performanceMetric.EstimatedIncreaseInImpressions\nvar conversions = i18n.formatDecimal(oriCon, format)\nvar clicks = i18n.formatDecimal(oriCli, format)\nvar impressions = i18n.formatDecimal(oriImp, format)\nvar bidMultiplier = i18n.formatDecimal(performanceMetric.SuggestedBid.SuggestBidAdjustmentMultiplier, {withSign: 'always'})\npug_html = pug_html + \"\\u003Clabel id=\\\"ReommendationBidLabel\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AudiencesAssociationGrid_BidRecommendation_RecommendationTitle', {number: bidMultiplier})) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003Cdiv class=\\\"recommendation-description\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AudiencesAssociationGrid_BidRecommendation_RecommendationDescription')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\nif (oriImp !== 0) {\npug_html = pug_html + \"\\u003Cdiv\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"performance_impressions\",oriImp > 0 ? 'positive-delta' : ''], [false,true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = impressions) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AudiencesAssociationGrid_BidRecommendation_PerformanceImpressions')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (oriCli !== 0) {\npug_html = pug_html + \"\\u003Cdiv\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"performance_clicks\",oriCli > 0 ? 'positive-delta' : ''], [false,true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = clicks) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AudiencesAssociationGrid_BidRecommendation_PerformanceClicks')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nif (oriCon !== 0) {\npug_html = pug_html + \"\\u003Cdiv\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"performance_conversions\",oriCon > 0 ? 'positive-delta' : ''], [false,true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = conversions) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AudiencesAssociationGrid_BidRecommendation_PerformanceConversions')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"performanceMetric\" in locals_for_with?locals_for_with.performanceMetric:typeof performanceMetric!==\"undefined\"?performanceMetric: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=\\\"audience-bid-recommendation-performance\\\"\\u003E\" + (null == (pug_interp = require(\"./bid-recommendation-performance.pug\").call(this, locals)) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\\u003Cbutton class=\\\"btn btn-default apply-recommendation-button\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('AudiencesAssociationGrid_BidRecommendation_ApplyRecommendation')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\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, size) {pug_html = pug_html + \"\\u003Cselect\" + (\" class=\\\"form-control input\\\"\"+\" role=\\\"listbox\\\" data-bind=\\\"options: availableOptions, optionsText: 'text', optionsValue: 'key', value: selectedOption\\\"\"+pug.attr(\"aria-label\", i18n.getString('conversionAdjustment_Options'), true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\\u003Cdiv class=\\\"input-group conversion-rate-adjustment-input-group\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control text-right\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"aria-label\", i18n.getString('conversionAdjustment_Multiplier'), true, true)+pug.attr(\"size\", size, true, true)+pug.attr(\"maxlength\", size, true, true)+\" data-bind=\\\"textInput: adjustmentPercentage\\\"\") + \"\\u003E\\u003Cspan class=\\\"input-group-addon\\\"\\u003E\" + (pug.escape(null == (pug_interp = '%') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"size\" in locals_for_with?locals_for_with.size:typeof size!==\"undefined\"?size: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 (view) {if (view.options.i18nStrings.Description) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"form-control-static\\\"\"+pug.attr(\"id\", view.options.descriptionId, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = view.options.i18nStrings.Description) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cselect\" + (\" class=\\\"language form-control\\\"\"+\" data-bind=\\\"value: selectedLanguage, options: languageOptions, optionsText:"Text", optionsValue:"Value", disable: disabled\\\"\"+pug.attr(\"aria-labelledby\", view.options.descriptionId, true, true)+pug.attr(\"aria-describedby\", view.options.hintId, true, true)) + \"\\u003E\\u003C\\u002Fselect\\u003E\";\nif (view.options.i18nStrings.SaveWarning) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"form-hint\\\"\"+pug.attr(\"id\", view.options.hintId, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = view.options.i18nStrings.SaveWarning) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"view\" in locals_for_with?locals_for_with.view:typeof view!==\"undefined\"?view:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (cancelLabel, saveLabel) {pug_html = pug_html + \"\\u003Cdiv\\u003E\\u003Cdiv class=\\\"custom-content\\\"\\u003E\\u003Cdiv data-ref=\\\"subEditView\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cinput\" + (\" class=\\\"save grid-popupeditor-save btn btn-primary\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", saveLabel, true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"cancel grid-popupeditor-cancel btn btn-default\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", cancelLabel, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"cancelLabel\" in locals_for_with?locals_for_with.cancelLabel:typeof cancelLabel!==\"undefined\"?cancelLabel:undefined,\"saveLabel\" in locals_for_with?locals_for_with.saveLabel:typeof saveLabel!==\"undefined\"?saveLabel: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 && value.length > 0) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"parameters\\\"\\u003E\";\n// iterate value\n;(function(){\n var $$obj = value;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var parameter = $$obj[pug_index0];\nif (parameter.Key) {\npug_html = pug_html + \"\\u003Cdiv\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '{_') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = parameter.Key) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '} = ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = parameter.Value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var parameter = $$obj[pug_index0];\nif (parameter.Key) {\npug_html = pug_html + \"\\u003Cdiv\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '{_') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = parameter.Key) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = '} = ') ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = parameter.Value) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan class=\\\"grid-cell-text\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}}.call(this,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","import { makeStyles, tokens } from '@fluentui/react-components';\r\n\r\nexport const useBidStrategyDropdownStyles = makeStyles({\r\n root: {\r\n marginBottom: tokens.spacingVerticalMNudge,\r\n },\r\n label: {\r\n marginBottom: tokens.spacingVerticalXS,\r\n },\r\n dropdown: {\r\n },\r\n});\r\n","import React, { useCallback, useContext, useMemo } from 'react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { withValidation, GenericAdapter } from '@bingads-webui-react/validation';\r\nimport { Dropdown, DropdownProps, Option, Label, mergeClasses, useId } from '@fluentui/react-components';\r\nimport { HelpPopupInline } from '@bingads-webui-react/help-popup';\r\n\r\nimport { useBidStrategyDropdownStyles } from './styles/bid-strategy-dropdown-styles';\r\n\r\ndeclare function _TL_(arg0: string): string;\r\n\r\ninterface BidStrategyDropdownPureProps {\r\n className?: string;\r\n options: {\r\n key: string;\r\n text: string;\r\n }[];\r\n value: string;\r\n onChange: (value?: string) => void;\r\n label?: string;\r\n helpTopic?: string;\r\n helpLabel?: string;\r\n}\r\n\r\nexport const BidStrategyDropdownPure: React.FC = (props) => {\r\n const {\r\n className,\r\n options,\r\n value,\r\n onChange,\r\n label,\r\n helpTopic,\r\n helpLabel,\r\n } = props;\r\n const id = useId('bid-strategy-dropdown');\r\n const classes = useBidStrategyDropdownStyles();\r\n const i18n = useContext(I18nContext) as any;\r\n\r\n const selectedOptions = useMemo(() => [value], [value]);\r\n const selectedText = options.find(option => option.key === value)?.text;\r\n const selectedTextString = selectedText ? i18n.getString(selectedText) : selectedText;\r\n\r\n const onOptionSelect: DropdownProps['onOptionSelect'] = useCallback((ev, data) => {\r\n const newValue = options.find((option: { key: string }) => option.key === data.optionValue)?.key;\r\n onChange(newValue);\r\n }, [options, onChange]);\r\n\r\n return (\r\n
\r\n \r\n \r\n {options.map(option => (\r\n \r\n ))}\r\n \r\n
\r\n );\r\n};\r\n\r\nBidStrategyDropdownPure.defaultProps = {\r\n className: '',\r\n label: undefined,\r\n helpTopic: undefined,\r\n helpLabel: undefined,\r\n};\r\n\r\nexport const ValidatedBidStrategyDropdown = withValidation(BidStrategyDropdownPure, GenericAdapter);\r\n","import React from 'react';\r\n\r\ninterface BidStrategyIconProps {\r\n width?: number;\r\n height?: number;\r\n}\r\n\r\nconst BidStrategyIconPure: React.FC = ({ width, height }) => (\r\n \r\n \r\n \r\n);\r\n\r\nBidStrategyIconPure.defaultProps = {\r\n width: 24,\r\n height: 24,\r\n};\r\n\r\nexport const BidStrategyIcon = React.memo(BidStrategyIconPure);\r\n","import Promise from 'bluebird';\r\n\r\nimport { edmCampaign } from '@bingads-webui/edm-campaign';\r\nimport { FetchDataResponseType } from '@bingads-webui-fluent-component/entity-selector';\r\nimport { FetchCampaignFactoryParams } from './types';\r\n\r\nconst DEFAULT_SELECT = ['Id', 'Name', 'DeliveryStatus'];\r\n\r\nexport const readCampaigns = (cid, aid, dataQuery) => edmCampaign\r\n .Customers.$withKey(cid)\r\n .Accounts.$withKey(aid)\r\n .Campaigns.get(dataQuery).toPromise();\r\n\r\nexport const getPaginationData = (page: number, pageSize: number) => ({\r\n top: pageSize,\r\n skip: (page - 1) * pageSize,\r\n count: true,\r\n});\r\n\r\nexport const mapCampaignsToItems = campaigns => campaigns.map(campaign => ({\r\n value: String(campaign.Id),\r\n content: campaign.Name,\r\n data: campaign,\r\n}));\r\n\r\n\r\nexport const fetchCampaignFactory =\r\n ({ cid, aid, options = {} }: FetchCampaignFactoryParams) => ({ page, pageSize, search }): Promise => {\r\n const filters: string[] = [];\r\n\r\n if (search && search !== '') {\r\n filters.push(`(contains(Name, '${search}'))`);\r\n }\r\n\r\n if (options.filter) {\r\n filters.push(options.filter);\r\n }\r\n\r\n const dataQuery = {\r\n ...getPaginationData(page, pageSize),\r\n select: options.select ?? DEFAULT_SELECT,\r\n filter: {\r\n where: filters.join(' and '),\r\n },\r\n };\r\n\r\n return readCampaigns(cid, aid, dataQuery)\r\n .then(({ '@odata.count': count, value: campaigns }) => ({\r\n items: mapCampaignsToItems(campaigns),\r\n currentPage: page,\r\n totalPages: Math.ceil(count / pageSize),\r\n }));\r\n };\r\n","export const DeliveryStatusMapping = {\r\n AdExtensionAssociationDeleted: _TL_('Extension and association deleted'),\r\n AdExtensionDeleted: _TL_('Product Extension deleted'),\r\n AdExtensionNotPresent: _TL_('Product Extension not created'),\r\n AdGroupAudienceAssociationExcluded: _TL_('Association excluded'),\r\n AdGroupAudienceAssociationPaused: _TL_('Association paused'),\r\n AdGroupCriterionExcluded: _TL_('Association excluded'),\r\n AdGroupCriterionPaused: _TL_('Association paused'),\r\n AdGroupDeleted: _TL_('Ad group deleted'),\r\n AdGroupDraft: _TL_('Draft ad group'),\r\n AdGroupExpired: _TL_('Ad group expired'),\r\n AdGroupPrivacyPending: _TL_('Ad group targeting check pending'),\r\n AdGroupTargetingTooNarrow: _TL_('Ad group targeting too narrow'),\r\n AdGroupUserPaused: _TL_('Ad group paused'),\r\n AdNotActive: _TL_('Product ad not active'),\r\n AdNotPresent: _TL_('Product ad not present'),\r\n AdNotServingDeletedAudience: _TL_('Audience not found'),\r\n AdPartiallyServingDeletedAudience: _TL_('Limited by audience'),\r\n AdUserPaused: _TL_('Ad paused'),\r\n ApplicationDestinationUrlMismatch: _TL_('App URL incorrect'),\r\n ApplicationDestinationUrlValidationIncomplete: _TL_('The validation of app/measurement URL is incomplete.'),\r\n ApplicationNotFound: _TL_('App not found'),\r\n AssociationDeleted: _TL_('Association deleted'),\r\n AudienceTooNarrow: _TL_('Audience too narrow'),\r\n AutoBiddingLearning: _TL_('Limited: Bid strategy is learning'),\r\n AutoBiddingLimitedBudgetRestriction: _TL_('Performance limited by budget'),\r\n AutoBiddingLimitedByNotEnoughConversions: _TL_('Limited: Not enough conversion data'),\r\n AutoBiddingLimitedByNotEnoughRevenue: _TL_('Limited: Not enough revenue data'),\r\n AutoBiddingLimitedInventoryLimit: _TL_('Limited by inventory'),\r\n AutoBiddingLimitedMaxCPCRestriction: _TL_('Limited by max. CPC'),\r\n AutoBiddingLimitedUnAttainableTarget: _TL_('Limited by auto-bidding target'),\r\n AutoBiddingPortfolioBidStrategyTrainingStatus: _TL_('Limited: Portfolio bid strategy is learning'),\r\n BidBelowFirstPageBid: _TL_('Below first page bid'),\r\n BudgetSuggestions: _TL_('Eligible (limited)'),\r\n CamAssetDeleted: _TL_('Asset deleted'),\r\n CamAssetRejected: _TL_('Asset rejected'),\r\n CampaignBudgetPaused: _TL_('Campaign out of budget'),\r\n CampaignDeleted: _TL_('Campaign deleted'),\r\n CampaignSuspended: _TL_('Campaign suspended'),\r\n CampaignUserPaused: _TL_('Campaign paused'),\r\n CreditCardExpired: _TL_('Credit card expired'),\r\n DisclaimerInfoApprovedLimited: _TL_('Disclaimer partially approved'),\r\n DisclaimerInfoNotAssociated: _TL_('Disclaimer not associated'),\r\n DisclaimerInfoPendingApproval: _TL_('Disclaimer pending editorial review'),\r\n DisclaimerInfoRejected: _TL_('Disclaimer disapproved'),\r\n DomainLanguageNotSupported: _TL_('Website language unsupported'),\r\n EditorialAppealRejected: _TL_('Disapproved, exception denied'),\r\n EditorialApprovedLimited: _TL_('Approved limited'),\r\n EditorialApprovedLimitedAppealRejected: _TL_('Approved limited, exception denied'),\r\n EditorialPending: _TL_('Pending editorial review'),\r\n EditorialRejected: _TL_('Disapproved'),\r\n EditorialUnderAppeal: _TL_('Exception under review'),\r\n Eligible: _TL_('Eligible'),\r\n ExperimentApplied: _TL_('Experiment applied'),\r\n ExperimentEnded: _TL_('Experiment completed'),\r\n GeoCodingIncomplete: _TL_('Geometry coding incomplete'),\r\n Incomplete: _TL_('Incomplete'),\r\n InlineOpportunity: _TL_('Eligible'),\r\n InvalidFinancialStatusOther: _TL_('Hold'),\r\n IOExceeded: _TL_('Account I/O exceeded'),\r\n KeywordMatchTypeAdGroupMediumCombinationInvalid: _TL_('Match type not eligible'),\r\n KeywordUserPaused: _TL_('Keyword paused'),\r\n LowQuality: _TL_('Low quality score'),\r\n LowSupply: _TL_('Low search volume'),\r\n MigrationPaused: _TL_('Yahoo! migration issue'),\r\n NegativeKeywordConflicts: _TL_('Negative keyword conflict'),\r\n New: _TL_('Eligible: New'),\r\n NoEligibleAdGroups: _TL_('No active ad groups'),\r\n NoEligibleAds: _TL_('No active ads'),\r\n NoEligibleKeywords: _TL_('No active keywords'),\r\n PartialNegativeKeywordConflicts: _TL_('Partial negative keyword conflict'),\r\n PaymentInformationMissing: _TL_('Missing payment information'),\r\n PendingMetadataSync: _TL_('Pending app verification'),\r\n ProductTargetUserPaused: _TL_('Product Target paused'),\r\n ShoppingCampaignNoOffersPresent: _TL_('Product offers not found'),\r\n ShoppingCampaignStoreNotFound: _TL_('Store Not Found'),\r\n StoreIdNotAssociated: _TL_('BMC Store id not provided'),\r\n Unknown: _TL_('Unknown'),\r\n UrlInvalid: _TL_('URL is invalid'),\r\n VideoExtensionProcessing: _TL_('Pending video and thumbnail processing'),\r\n VideoExtensionThumbnailAspectInvalid: _TL_('Thumbnail aspect ratio is invalid'),\r\n VideoExtensionThumbnailProcessingFailed: _TL_('Thumbnail processing failed'),\r\n VideoExtensionThumbnailTooSmall: _TL_('Thumbnail resolution is too low'),\r\n VideoExtensionVideoAspectRatioInvalid: _TL_('Video aspect ratio is invalid'),\r\n VideoExtensionVideoDurationInvalid: _TL_('Video duration is invalid'),\r\n VideoExtensionVideoProcessingFailed: _TL_('Video processing failed'),\r\n VideoExtensionVideoTooSmall: _TL_('Video resolution is too low'),\r\n};\r\n","import React, { useContext } from 'react';\r\nimport { makeStyles, Text, tokens } from '@fluentui/react-components';\r\n\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\n\r\nimport { DeliveryStatusMapping } from '../consts';\r\nimport { CampaignItemType } from '../types';\r\n\r\n\r\nconst useItemContentStyles = makeStyles({\r\n root: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n width: '100%',\r\n },\r\n status: {\r\n textAlign: 'right',\r\n color: tokens.colorNeutralForeground4,\r\n },\r\n});\r\n\r\nexport const DefaultCampaignItemContentRenderer = ({ data }: CampaignItemType) => {\r\n const i18n = useContext(I18nContext) as any;\r\n const classes = useItemContentStyles();\r\n\r\n const { Name, DeliveryStatus } = data!;\r\n\r\n return (\r\n
\r\n \r\n {Name}\r\n \r\n \r\n {i18n.getString(DeliveryStatusMapping[DeliveryStatus])}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport const DefaultCampaignTagItemRenderer = ({ content }: CampaignItemType): React.ReactNode => content;\r\n","import { makeStyles, shorthands } from '@fluentui/react-components';\r\n\r\nexport const useCampaignSelector = makeStyles({\r\n root: {\r\n '& input[type=\"text\"]:focus, input[type=\"text\"]:hover': {\r\n ...shorthands.border('none'),\r\n },\r\n },\r\n});\r\n","import { useCallback, useEffect, useRef, useState } from 'react';\r\n\r\nexport const useCampaignSelectorState = ({\r\n value: valueFromProps,\r\n onChange: onChangeFromProps,\r\n}) => {\r\n const prevValueRef = useRef(null);\r\n const [value, setValue] = useState(valueFromProps.map(cmp => ({ value: String(cmp.Id), content: cmp.Name, data: cmp })));\r\n\r\n const onChange = useCallback((newSelectedCampaigns) => {\r\n setValue(newSelectedCampaigns);\r\n\r\n onChangeFromProps(newSelectedCampaigns.map(({ data }) => data));\r\n }, [onChangeFromProps]);\r\n\r\n useEffect(() => {\r\n if (prevValueRef.current !== valueFromProps) {\r\n setValue(valueFromProps.map(cmp => ({ value: String(cmp.Id), content: cmp.Name, data: cmp })));\r\n\r\n prevValueRef.current = valueFromProps;\r\n }\r\n }, [valueFromProps]);\r\n\r\n return {\r\n value,\r\n onChange,\r\n };\r\n};\r\n","import React, { useContext, useMemo } from 'react';\r\nimport { mergeClasses } from '@fluentui/react-components';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { ServerEntitySelector, ServerEntitySelectorInline, ServerEntitySelectorDrawer } from '@bingads-webui-fluent-component/entity-selector';\r\n\r\nimport { fetchCampaignFactory } from './data';\r\nimport { DefaultCampaignItemContentRenderer, DefaultCampaignTagItemRenderer } from './components/default-components';\r\nimport { useCampaignSelector } from './campaign-selector-styles';\r\nimport { useCampaignSelectorState } from './use-campaign-selector-state';\r\nimport { CampaignSelectorDrawerProps, CampaignSelectorInlineProps, CampaignSelectorProps } from './types';\r\n\r\nconst CampaignSelectorDefaultProps = {\r\n onRenderItemContent: DefaultCampaignItemContentRenderer,\r\n onRenderTagContent: DefaultCampaignTagItemRenderer,\r\n};\r\n\r\nexport const CampaignSelector: React.FC = ({\r\n cid, aid, options, className, value: valueFromProps, onChange: onChangeFromProps, ...props\r\n}) => {\r\n const i18n = useContext(I18nContext) as any;\r\n const classes = useCampaignSelector();\r\n\r\n const fetchData = useMemo(() => fetchCampaignFactory({ cid, aid, options }), [cid, aid, options]);\r\n const { value, onChange } = useCampaignSelectorState({ value: valueFromProps, onChange: onChangeFromProps });\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport const CampaignSelectorInline: React.FC = ({\r\n cid, aid, options, className, value: valueFromProps, onChange: onChangeFromProps, ...props\r\n}) => {\r\n const i18n = useContext(I18nContext) as any;\r\n const classes = useCampaignSelector();\r\n\r\n const fetchData = useMemo(() => fetchCampaignFactory({ cid, aid, options }), [cid, aid, options]);\r\n const { value, onChange } = useCampaignSelectorState({ value: valueFromProps, onChange: onChangeFromProps });\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport const CampaignSelectorDrawer: React.FC = ({\r\n cid, aid, options, value: valueFromProps, onChange: onChangeFromProps, ...props\r\n}) => {\r\n const i18n = useContext(I18nContext) as any;\r\n\r\n const fetchData = useMemo(() => fetchCampaignFactory({ cid, aid, options }), [cid, aid, options]);\r\n const { value, onChange } = useCampaignSelectorState({ value: valueFromProps, onChange: onChangeFromProps });\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import { edmCampaign } from '@bingads-webui/edm-campaign';\r\nimport { useCallback } from 'react';\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\n\r\ninterface FetchGoalsFactoryParams {\r\n $dateRange: Promise<{ start: Date; end: Date }>;\r\n cid: string;\r\n aid: string;\r\n showTrackingStatusIcon: boolean;\r\n isLinkedInCompatibleGoals: boolean;\r\n i18n: any;\r\n}\r\n\r\nexport interface GoalResultType {\r\n id: string;\r\n name: string;\r\n GoalCategory: string;\r\n Status: string;\r\n TrackingStatus?: string;\r\n}\r\n\r\nconst readConversionGoals = (cid : string, aid : string, dataQuery: any) : Promise<{results: GoalResultType[]; totalCount: number}> => edmCampaign\r\n .Customers.$withKey(cid)\r\n .Accounts.$withKey(aid)\r\n .Goals\r\n .get({\r\n ...dataQuery,\r\n }).toPromise().then(({\r\n value: cmps,\r\n '@odata.count': totalCount,\r\n }) => {\r\n const items = _.compact(_.map(cmps, (cmp) => {\r\n const baseItem : GoalResultType = {\r\n id: String(cmp.Id),\r\n name: cmp.Name,\r\n GoalCategory: cmp.GoalCategory,\r\n Status: cmp.Status,\r\n TrackingStatus: cmp.TrackingStatus ? cmp.TrackingStatus : undefined,\r\n };\r\n\r\n return baseItem;\r\n }));\r\n\r\n return {\r\n results: items,\r\n totalCount,\r\n };\r\n });\r\n\r\nexport const useFetchGoalsFactory = ({\r\n $dateRange,\r\n cid,\r\n aid,\r\n showTrackingStatusIcon,\r\n isLinkedInCompatibleGoals,\r\n i18n,\r\n}: FetchGoalsFactoryParams) => {\r\n const fetchFn = useCallback((query: string, pageNumber: number, pageSize: number) => {\r\n const formatDate = date => i18n.formatDate(date, { raw: 'M/d/yyyy' });\r\n\r\n const select = ['Id', 'Name', 'GoalCategory', 'Status'];\r\n if (showTrackingStatusIcon) {\r\n select.push('TrackingStatus');\r\n }\r\n\r\n let filter = '(Status eq Enum.GoalStatus\\'Active\\') and ((GoalCategory eq Enum.GoalCategory\\'InStoreVisit\\') eq false)';\r\n\r\n if (query && query !== '') {\r\n filter += ` and (contains(Name, '${query}'))`;\r\n }\r\n\r\n if (isLinkedInCompatibleGoals) {\r\n filter += ' and ServableExternalChannels/any(c: c eq \\'LinkedIn\\')';\r\n }\r\n\r\n return $dateRange.then((dateRange) => {\r\n const dataQuery = {\r\n top: pageSize,\r\n skip: (pageNumber - 1) * pageSize,\r\n filter: { where: filter },\r\n startdate: formatDate(dateRange.start),\r\n enddate: formatDate(dateRange.end),\r\n count: true,\r\n select,\r\n };\r\n\r\n return readConversionGoals(cid, aid, dataQuery);\r\n });\r\n }, [showTrackingStatusIcon, isLinkedInCompatibleGoals, $dateRange, i18n, cid, aid]);\r\n\r\n return fetchFn;\r\n};\r\n","export const TrackingStatusMapping = {\r\n InactiveDueToTagUnavailable: _TL_('This goal is not associated with an active UET tag. Verify the tag setup and associate the goal with a valid UET tag.'),\r\n NoRecentConversion: _TL_(\"This goal doesn't have enough conversions to optimize campaign performance because it hasn't recorded conversions in the past 7 days. Ensure that for an online goal, the UET tag is placed on every webpage.\"),\r\n RecordingConversions: _TL_(\"We've seen your UET tag and have recorded conversions within the last 7 days. If your conversion window is greater than 7 days and you are filtering on the last 7 days, you may see this status even if no conversions are shown in the Conversions column, as conversions are reported at the time of the click.\"),\r\n TagInactive: _TL_('No website activity data has been received from the UET tag associated with this goal in the past 24 hours. Verify the UET tag setup or associate the goal with an active tag.'),\r\n Unverified: _TL_(\"We haven't received any data from the UET tag for this goal. For new goals, allow 24 hours for conversions to start recording. Otherwise, verify the UET tag setup or associate this goal with an active tag.\"),\r\n};\r\n\r\nexport const GoalCategories = {\r\n AddToCart: _TL_('Add to cart'),\r\n BeginCheckout: _TL_('Begin checkout'),\r\n BookAppointment: _TL_('Book appointment'),\r\n Contact: _TL_('Contact'),\r\n Download: _TL_('Download'),\r\n GetDirections: _TL_('Get directions'),\r\n InStoreVisit: _TL_('In-store visit'),\r\n Other: _TL_('Other'),\r\n OutboundClick: _TL_('Outbound click'),\r\n PageView: _TL_('Page view'),\r\n Purchase: _TL_('Purchase'),\r\n RequestQuote: _TL_('Request quote'),\r\n Signup: _TL_('Sign-up'),\r\n SubmitLeadForm: _TL_('Submit lead form'),\r\n // Temp fix to unblock the PR\r\n // TODO: need to resolve the typo in MT\r\n Subcribe: _TL_('Subscribe'),\r\n None: _TL_('Unassigned'),\r\n};\r\n","import React from 'react';\r\nimport { makeStyles, Tooltip } from '@fluentui/react-components';\r\nimport { SearchableMultiSelectorInput } from '@bingads-webui-campaign-react/searchable-multi-selector-input';\r\nimport Promise from 'bluebird';\r\nimport { Warning20Regular } from '@fluentui/react-icons';\r\n\r\nimport { useFetchGoalsFactory, GoalResultType } from './fetch-goals-factory';\r\nimport { TrackingStatusMapping, GoalCategories } from './config/constants';\r\n\r\nexport interface GoalSelectorProps {\r\n className?: string;\r\n i18n: any;\r\n selectedGoals: GoalResultType[];\r\n pageSize?: number;\r\n $dateRange: Promise<{ start: Date; end: Date }>;\r\n cid : string;\r\n aid : string;\r\n placeholderText?: string;\r\n resultsTitle?: string;\r\n isLinkedInCompatibleGoals?: boolean;\r\n showTrackingStatusIcon?: boolean;\r\n onChange: (value : GoalResultType[]) => void;\r\n onRenderLabel?: () => React.ReactNode;\r\n}\r\n\r\nconst useGoalSelectorStyles = makeStyles({\r\n option: {\r\n display: 'flex',\r\n width: '100%',\r\n justifyContent: 'space-between',\r\n },\r\n goalName: {\r\n display: 'flex',\r\n },\r\n goalDetail: {\r\n display: 'flex',\r\n },\r\n goalCategory: {\r\n color: '#707070',\r\n },\r\n trackingStatusIcon: {\r\n width: '20px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n});\r\n\r\n\r\nexport const GoalSelector = ({\r\n className,\r\n i18n,\r\n selectedGoals,\r\n pageSize,\r\n $dateRange,\r\n cid,\r\n aid,\r\n placeholderText,\r\n resultsTitle,\r\n isLinkedInCompatibleGoals,\r\n showTrackingStatusIcon,\r\n onChange,\r\n onRenderLabel,\r\n}: GoalSelectorProps) => {\r\n const classes = useGoalSelectorStyles();\r\n\r\n const fetchGoals = useFetchGoalsFactory({\r\n $dateRange,\r\n cid,\r\n aid,\r\n showTrackingStatusIcon: !!showTrackingStatusIcon,\r\n isLinkedInCompatibleGoals: !!isLinkedInCompatibleGoals,\r\n i18n,\r\n });\r\n\r\n const TrackingStatusIcon = ({ TrackingStatus }) => {\r\n if (TrackingStatus === 'RecordingConversions') {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const GoalOption = ({ name, GoalCategory, TrackingStatus }: GoalResultType) => {\r\n const categoryI18nKey = GoalCategories[GoalCategory] ?\r\n GoalCategories[GoalCategory]\r\n : GoalCategories.None;\r\n\r\n return (\r\n
\r\n
{name}
\r\n
\r\n
{i18n.getString(categoryI18nKey)}
\r\n {showTrackingStatusIcon && }\r\n
\r\n
\r\n );\r\n };\r\n\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nGoalSelector.defaultProps = {\r\n className: undefined,\r\n isLinkedInCompatibleGoals: false,\r\n showTrackingStatusIcon: false,\r\n onRenderLabel: undefined,\r\n pageSize: 10,\r\n placeholderText: undefined,\r\n resultsTitle: undefined,\r\n};\r\n","import { makeStyles, shorthands, tokens } from '@fluentui/react-components';\r\n\r\nexport const useAdManagerStyles = makeStyles({\r\n button: {\r\n display: 'flex',\r\n 'flex-flow': 'column',\r\n },\r\n addIcon: {\r\n color: '#0078D4',\r\n fontSize: '52px',\r\n },\r\n adsManagerContainer: {\r\n display: 'flex',\r\n flexFlow: 'wrap',\r\n ...shorthands.gap(tokens.spacingVerticalS),\r\n },\r\n addNewAdButtonRoot: {\r\n height: '236px !important',\r\n width: '212px !important',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n ...shorthands.border('1px', 'dashed', '#c8c6c4'),\r\n ...shorthands.borderRadius('6px'),\r\n },\r\n});\r\n","export const getAdThumbnailStyles = () => ({\r\n adThumbailRoot: {\r\n height: '236px',\r\n width: '212px',\r\n borderRadius: '6px',\r\n boxShadow: '0px 2px 4px 0px #00000024',\r\n '&:hover, &:focus, &:focus-within': {\r\n '& .hover-buttons': {\r\n opacity: 1,\r\n },\r\n },\r\n },\r\n cardPreview: {\r\n height: '118px',\r\n width: '212px',\r\n },\r\n adLabel: {\r\n borderRadius: '4px',\r\n border: '0.5px solid black',\r\n textAlign: 'center',\r\n fontSize: '10px',\r\n height: 16,\r\n width: 21,\r\n\r\n },\r\n hoverButtons: {\r\n opacity: 0,\r\n\r\n display: 'flex',\r\n background: 'linear-gradient(180deg, rgba(49, 34, 34, 0.6) 0%, rgba(49, 34, 34, 0.9) 52%, #312222 100%)',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n height: '100%',\r\n width: '100%',\r\n position: 'absolute',\r\n top: 0,\r\n left: 0,\r\n rowGap: '5px',\r\n flexDirection: 'column',\r\n zIndex: 10,\r\n },\r\n hoverButton: {\r\n border: 'none !important',\r\n backgroundColor: 'rgba(255, 255, 255, 0.09) !important',\r\n color: 'white !important',\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 120, 212, 1) !important',\r\n },\r\n '&:focus': {\r\n backgroundColor: 'rgba(0, 120, 212, 1) !important',\r\n },\r\n },\r\n});\r\n","import React, { useContext } from 'react';\r\nimport classNames from 'classnames';\r\nimport _ from 'underscore';\r\n\r\nimport {\r\n Button,\r\n Card,\r\n Dialog,\r\n DialogTrigger,\r\n DialogSurface,\r\n DialogTitle,\r\n DialogBody,\r\n DialogActions,\r\n DialogContent,\r\n useFocusableGroup,\r\n useArrowNavigationGroup,\r\n} from '@fluentui/react-components';\r\nimport {\r\n EditRegular, DeleteRegular,\r\n} from '@fluentui/react-icons';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getAdThumbnailStyles } from './styles/ad-thumbnail-styles';\r\n\r\ninterface AdThumbnailProps {\r\n className?: string;\r\n adData: {\r\n Id: string;\r\n FinalUrls?: string[];\r\n Headlines?: { Headline0: string };\r\n Descriptions?: { Description0: string };\r\n Images?: { ImageList: { src: string }[][] };\r\n };\r\n onDeleteAd: (id: string) => void;\r\n onEditAd: (id: string) => void;\r\n AdPreview: React.ComponentType<{ adData: any, extraData: any }>;\r\n extraData?: any;\r\n ariaLabel?: string;\r\n}\r\n\r\nexport const AdThumbnail: React.FC = ({\r\n className,\r\n adData,\r\n onDeleteAd,\r\n onEditAd,\r\n AdPreview,\r\n extraData,\r\n ariaLabel,\r\n}) => {\r\n const i18n = useContext(I18nContext) as any;\r\n const classes = useDefaultStyles(getAdThumbnailStyles);\r\n\r\n if (!adData || !adData.Id) {\r\n throw new Error('Ad data or Ad ID is missing');\r\n }\r\n\r\n const adId = _.get(adData, 'Id') as string;\r\n\r\n const attributes = useFocusableGroup();\r\n const arrowGroupAttr = useArrowNavigationGroup({ axis: 'vertical', circular: true });\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {i18n.getString(_TL_('Delete this Ad?'))} \r\n \r\n {i18n.getString(_TL_('This ad will be removed from this campaign. There is no way to undo this action.'))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nAdThumbnail.defaultProps = {\r\n className: '',\r\n extraData: undefined,\r\n ariaLabel: undefined,\r\n};\r\n","export const getAdPreviewStyles = () => ({\r\n cardPreview: {\r\n height: '118px',\r\n },\r\n description: {\r\n overflow: 'hidden !important',\r\n textOverflow: 'ellipsis !important',\r\n height: '40px',\r\n width: '180px',\r\n display: '-webkit-box !important',\r\n WebkitLineClamp: 2,\r\n WebkitBoxOrient: 'vertical',\r\n },\r\n header: {\r\n overflow: 'hidden !important',\r\n textOverflow: 'ellipsis !important',\r\n textWrap: 'nowrap !important',\r\n },\r\n footer: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n columnGap: '5px',\r\n },\r\n});\r\n","import React from 'react';\r\nimport _ from 'underscore';\r\n\r\nimport {\r\n Text,\r\n CardPreview,\r\n CardHeader,\r\n CardFooter,\r\n Image,\r\n} from '@fluentui/react-components';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getAdPreviewStyles } from './styles/default-ad-preview-styles';\r\n\r\ninterface AdPreviewProps {\r\n adData: {\r\n Headlines?: { Headline0: string };\r\n Descriptions?: { Description0: string };\r\n Images?: { ImageList: { src: string }[][] };\r\n };\r\n}\r\n\r\nexport const DefaultAdPreview: React.FC = ({ adData }) => {\r\n const classes = useDefaultStyles(getAdPreviewStyles);\r\n\r\n const finalUrl = _.get(adData, ['FinalUrls', '0']);\r\n const headline = _.get(adData, ['Headlines', 'Headline0', '']);\r\n const introductoryText = _.get(adData, ['Descriptions', 'Description0']);\r\n const imageList = _.get(adData, ['Images', 'ImageList'], []);\r\n const adImageUrl = imageList[0]?.[0]?.src ?? '';\r\n\r\n return (\r\n
\r\n \r\n \"ad\r\n \r\n {headline}}\r\n description={{introductoryText}}\r\n />\r\n \r\n
{ finalUrl }
\r\n
\r\n
\r\n );\r\n};\r\n","import React, { useContext } from 'react';\r\n\r\nimport { Button, mergeClasses, useArrowNavigationGroup } from '@fluentui/react-components';\r\nimport { AddRegular } from '@fluentui/react-icons';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useAdManagerStyles } from './styles/ads-manager-styles';\r\nimport { AdThumbnail } from './ad-thumbnail';\r\nimport { DefaultAdPreview } from './default-ad-preview';\r\n\r\ninterface AdData {\r\n Id: string;\r\n FinalUrls?: string[];\r\n Headlines?: { Headline0: string };\r\n Descriptions?: { Description0: string };\r\n Images?: { ImageList: { src: string }[][] };\r\n}\r\n\r\ninterface MultiAdsManagerProps {\r\n ads: { [id: string]: AdData };\r\n onCreateAd: () => void;\r\n onDeleteAd: (id: string) => void;\r\n onEditAd: (id: string) => void;\r\n AdPreview: React.FC<{ adData: AdData }>;\r\n extraData?: any;\r\n}\r\n\r\nexport const MultiAdsManager: React.FC = ({\r\n ads,\r\n onCreateAd,\r\n onDeleteAd,\r\n onEditAd,\r\n AdPreview = DefaultAdPreview,\r\n extraData,\r\n}) => {\r\n const classes = useAdManagerStyles();\r\n const i18n = useContext(I18nContext) as any;\r\n\r\n const arrowGroupAttr = useArrowNavigationGroup({ axis: 'horizontal' });\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n {Object.values(ads).map((ad, index) => (\r\n \r\n ))}\r\n
\r\n );\r\n};\r\n\r\nMultiAdsManager.defaultProps = {\r\n extraData: undefined,\r\n};\r\n","import { makeStyles, tokens } from '@fluentui/react-components';\r\n\r\nexport const useSearchableSingleSelectorComboboxStyles = makeStyles({\r\n root: {\r\n maxWidth: '460px',\r\n minWidth: 'auto',\r\n },\r\n});\r\n\r\nexport const useSearchableSingleSelectorStyles = makeStyles({\r\n labelContainer: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginBottom: tokens.spacingVerticalXS,\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport React, { useCallback, useContext, useMemo, useState } from 'react';\r\nimport { Combobox, mergeClasses, Option, OptionGroup } from '@fluentui/react-components';\r\nimport { SearchRegular } from '@fluentui/react-icons';\r\n\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\n\r\nimport { useSearchableSingleSelectorComboboxStyles } from './styles';\r\nimport { FetchingStatus } from '../hooks/use-fetching-state';\r\nimport { BaseResultType } from '../types';\r\n\r\ndeclare function _TL_(arg0: string): string;\r\n\r\nconst InvalidOptionValues = ['empty-option', 'loading-option', undefined];\r\n\r\nexport interface SearchableSingleSelectorComboboxProps {\r\n selected: ResultType[];\r\n results: ResultType[];\r\n status: FetchingStatus;\r\n disabled?: boolean;\r\n loadingText?: string;\r\n placeholderText?: string;\r\n noResultsText?: string;\r\n defaultGroupName?: string;\r\n searchResultGroupName?: string;\r\n onChangeQuery: (query: string) => void;\r\n onSelectOption: (option: ResultType) => void;\r\n onRenderOption?: (option: ResultType) => React.ReactNode;\r\n}\r\n\r\nexport const SearchableSingleSelectorCombobox = ({\r\n selected,\r\n results,\r\n status,\r\n disabled,\r\n loadingText,\r\n placeholderText,\r\n noResultsText,\r\n defaultGroupName,\r\n searchResultGroupName,\r\n onChangeQuery,\r\n onSelectOption,\r\n onRenderOption,\r\n}: SearchableSingleSelectorComboboxProps) => {\r\n const i18n = useContext(I18nContext) as any;\r\n const classes = useSearchableSingleSelectorComboboxStyles();\r\n\r\n const resultOptions = useMemo(() => {\r\n const options = results.map(result => (\r\n \r\n ));\r\n\r\n if (status === 'loaded' && searchResultGroupName && searchResultGroupName.trim() !== '') {\r\n return (\r\n \r\n {options}\r\n \r\n );\r\n } else if (status === 'idle' && defaultGroupName && defaultGroupName.trim() !== '') {\r\n return (\r\n \r\n {options}\r\n \r\n );\r\n }\r\n\r\n return options;\r\n }, [onRenderOption, results, searchResultGroupName, defaultGroupName, status]);\r\n\r\n const loadingOption = useMemo(() => (\r\n \r\n ), [i18n, loadingText]);\r\n\r\n const emptyOption = useMemo(() => (\r\n \r\n ), [i18n, noResultsText]);\r\n\r\n const selectedOptions = useMemo(() => {\r\n const selectedIds = selected.map(({ Id }) => Id);\r\n\r\n return _.intersection(selectedIds, results.map(({ Id }) => Id));\r\n }, [selected, results]);\r\n\r\n const selectedOptionName = useMemo(() => (selected && selected.length > 0 ? selected[0].Name : ''), [selected]);\r\n\r\n const [query, setQuery] = useState(selectedOptionName);\r\n\r\n const showLoadingOption = useMemo(() => status === 'loading', [status]);\r\n const showResultOptions = useMemo(() => results.length > 0, [results.length]);\r\n const showEmptyOption = useMemo(() => status === 'loaded' && results.length === 0, [results.length, status]);\r\n\r\n const updateQuery = useCallback((newQuery) => {\r\n setQuery(newQuery);\r\n onChangeQuery(newQuery);\r\n }, [onChangeQuery]);\r\n\r\n const handleChange = useCallback((e) => {\r\n updateQuery(e.target.value);\r\n }, [updateQuery]);\r\n\r\n const handleOptionSelect = useCallback((_e, { optionValue }) => {\r\n if (InvalidOptionValues.includes(optionValue)) {\r\n return;\r\n }\r\n const option = results.find(({ Id }) => Id === optionValue)!;\r\n onSelectOption(option);\r\n updateQuery(option.Name);\r\n }, [updateQuery, onSelectOption, results]);\r\n\r\n return (\r\n }\r\n selectedOptions={selectedOptions}\r\n placeholder={placeholderText ?? i18n.getString(_TL_('Search'))}\r\n disabled={disabled}\r\n value={query}\r\n onChange={handleChange}\r\n onOptionSelect={handleOptionSelect}\r\n >\r\n {showLoadingOption && loadingOption}\r\n {showResultOptions && resultOptions}\r\n {showEmptyOption && emptyOption}\r\n \r\n );\r\n};\r\n\r\nSearchableSingleSelectorCombobox.defaultProps = {\r\n disabled: false,\r\n loadingText: undefined,\r\n placeholderText: undefined,\r\n noResultsText: undefined,\r\n onRenderOption: undefined,\r\n defaultGroupName: undefined,\r\n searchResultGroupName: undefined,\r\n};\r\n","import React, { useCallback } from 'react';\r\nimport Promise from 'bluebird';\r\nimport { Body1Strong, Field, mergeClasses } from '@fluentui/react-components';\r\n\r\nimport { HelpPopupInline } from '@bingads-webui-react/help-popup';\r\n\r\nimport { useFetchingState } from './hooks/use-fetching-state';\r\nimport { SearchableSingleSelectorCombobox } from './components/combobox';\r\nimport { BaseResultType } from './types';\r\nimport { useSearchableSingleSelectorStyles } from './components/styles';\r\n\r\nexport interface SearchableSelectorWithDefaultListProps {\r\n className?: string;\r\n label: string;\r\n helpTopic?: string;\r\n helpLabel?: string;\r\n disabled?: boolean;\r\n loadingText?: string;\r\n placeholderText?: string;\r\n noResultsText?: string;\r\n fetchFn: (query: string) => Promise;\r\n value: ResultType[];\r\n onSelectOption: (option: ResultType) => void;\r\n onRenderOption?: (option: ResultType) => React.ReactNode;\r\n defaultGroupName? : string;\r\n defaultResults? : ResultType[];\r\n searchResultGroupName? : string;\r\n}\r\n\r\n\r\nexport const SearchableSelectorWithDefaultList = ({\r\n className,\r\n label,\r\n helpTopic,\r\n helpLabel,\r\n disabled,\r\n loadingText,\r\n placeholderText,\r\n noResultsText,\r\n fetchFn,\r\n value,\r\n onSelectOption,\r\n onRenderOption,\r\n defaultGroupName,\r\n defaultResults,\r\n searchResultGroupName,\r\n}: SearchableSelectorWithDefaultListProps) => {\r\n const classes = useSearchableSingleSelectorStyles();\r\n const { status, results, fetch } = useFetchingState({ fetchFn, defaultResults });\r\n\r\n const renderLabelWithHelpButton = useCallback(() => (\r\n
\r\n {label}\r\n {helpTopic && }\r\n
\r\n ), [label, helpTopic, helpLabel, classes.labelContainer]);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nSearchableSelectorWithDefaultList.defaultProps = {\r\n className: undefined,\r\n helpTopic: undefined,\r\n helpLabel: undefined,\r\n loadingText: undefined,\r\n placeholderText: undefined,\r\n noResultsText: undefined,\r\n disabled: false,\r\n onRenderOption: undefined,\r\n defaultResults: [],\r\n defaultGroupName: undefined,\r\n searchResultGroupName: undefined,\r\n};\r\n","import _ from 'underscore';\r\nimport Promise from 'bluebird';\r\nimport { useCallback, useState } from 'react';\r\n\r\nimport { BaseResultType } from '../types';\r\n\r\nconst DEBOUNCE_DELAY = 300;\r\n\r\nexport interface UseFetchingStateProps {\r\n fetchFn: (query: string) => Promise;\r\n defaultResults?: ResultType[];\r\n}\r\n\r\nexport type FetchingStatus = 'idle' | 'loading' | 'loaded';\r\n\r\nexport interface FetchingState {\r\n status: FetchingStatus;\r\n results: ResultType[];\r\n}\r\n\r\nexport const useFetchingState = ({\r\n fetchFn,\r\n defaultResults,\r\n}: UseFetchingStateProps) => {\r\n const [state, setState] = useState>({ status: 'idle', results: defaultResults ?? [] });\r\n\r\n const fetch = useCallback((query) => {\r\n if (!query) {\r\n setState({ status: 'idle', results: defaultResults ?? [] });\r\n return;\r\n }\r\n\r\n setState({ status: 'loading', results: [] });\r\n\r\n fetchFn(query)\r\n .then((results) => {\r\n setState({ status: 'loaded', results });\r\n })\r\n .catch(() => {\r\n setState({ status: 'loaded', results: [] });\r\n });\r\n }, [fetchFn, defaultResults]);\r\n\r\n const debouncedFetch = _.debounce(fetch, DEBOUNCE_DELAY);\r\n\r\n return {\r\n status: state.status,\r\n results: state.results,\r\n fetch: debouncedFetch,\r\n };\r\n};\r\n","import { makeStyles, tokens } from '@fluentui/react-components';\r\n\r\nexport const useSingleInputStyles = makeStyles({\r\n root: {\r\n marginBottom: tokens.spacingVerticalMNudge,\r\n },\r\n label: {\r\n '& a.helpbutton': {\r\n verticalAlign: 'bottom',\r\n },\r\n },\r\n});\r\n","import React, { useCallback, useMemo, useState } from 'react';\r\nimport { Combobox, ComboboxProps, Label, mergeClasses, Option, useId } from '@fluentui/react-components';\r\n\r\nimport { withValidation, withError, GenericAdapter } from '@bingads-webui-react/validation';\r\nimport { withControlErrorHandling, withUnvalidatedControlErrors } from '@bingads-webui-campaign-react/error-handling';\r\nimport { HelpPopup } from '@bingads-webui-react/help-popup';\r\n\r\nimport { useSingleInputStyles } from './styles';\r\n\r\ndeclare function _TL_(arg0: string): string;\r\n\r\ninterface SingleLanguageInputProps {\r\n i18n: { getString: (key: string) => string };\r\n languages: string[];\r\n label?: string;\r\n helpTopic?: string;\r\n helpLabel?: string;\r\n value?: string;\r\n disabled?: boolean;\r\n onChange: (language: string) => void;\r\n}\r\n\r\nexport const SingleLanguageInput: React.FC = ({\r\n i18n, languages, value, disabled, label, helpTopic, helpLabel, onChange,\r\n}) => {\r\n const id = useId();\r\n const classes = useSingleInputStyles();\r\n\r\n const allOptions = useMemo(\r\n () => languages.map(language => ({ value: language, text: i18n.getString(language) }))\r\n , [i18n, languages]\r\n );\r\n\r\n const [lastSelected, setLastSelected] = useState(value);\r\n const lastSelectedText = useMemo(() => (lastSelected ? i18n.getString(lastSelected) : ''), [lastSelected, i18n]);\r\n\r\n const [query, setQuery] = useState(lastSelectedText);\r\n\r\n const filteredOptions = useMemo(\r\n () => allOptions.filter(option => option.text.toLowerCase().includes(query.toLowerCase()))\r\n , [allOptions, query]\r\n );\r\n\r\n const handleOptionSelect = useCallback((_e, data) => {\r\n if (!data.optionValue) { return; }\r\n\r\n setLastSelected(data.optionValue);\r\n setQuery(data.optionText);\r\n\r\n onChange(data.optionValue);\r\n }, [onChange]);\r\n\r\n const handleBlur = useCallback(() => {\r\n if (query === '') {\r\n setLastSelected(undefined);\r\n onChange(undefined);\r\n return;\r\n }\r\n\r\n if (!allOptions.some(option => option.text === query)) {\r\n setQuery(lastSelectedText);\r\n onChange(lastSelected);\r\n }\r\n }, [query, allOptions, onChange, lastSelected, lastSelectedText]);\r\n\r\n return (\r\n
\r\n \r\n\r\n setQuery(e.target.value)}\r\n onOptionSelect={handleOptionSelect}\r\n disabled={disabled}\r\n >\r\n {filteredOptions.map(option => (\r\n \r\n ))}\r\n \r\n
\r\n );\r\n};\r\n\r\nSingleLanguageInput.defaultProps = {\r\n value: undefined,\r\n label: undefined,\r\n helpTopic: undefined,\r\n helpLabel: undefined,\r\n disabled: undefined,\r\n};\r\n\r\nexport const ValidatedSingleLanguageInput = withControlErrorHandling(withUnvalidatedControlErrors(withError(withValidation(SingleLanguageInput, GenericAdapter))));\r\n"],"names":["Option","configuration","el","defaultSettings","isSelected","isDisabled","isMandatory","$","settings","this","_viewModel","isFirst","ko","name","id","prototype","property","propertyName","propertyValue","undefined","unwrapObservable","Category","addOption","optionData","columnChooserOption","options","push","removeOption","remove","item","editOption","newName","i","_","option","getOptions","getUnselectedOptionsCount","length","getName","clickToggle","init","element","valueAccessor","allBindingsAccessor","viewModel","bindingContext","registerEventHandler","modelValue","condition","value","ColumnChooser","self","text","enableSave","showSave","isSavingColumnsAllowed","savedName","categories","all","current","setCategory","category","event","context","target","$index","selected","applyButtonVisible","autosave","selectAll","removeAll","hasOptions","allActionText","unselectedCount","addAllColumns","removeAllColumns","events","trigger","data","getSelectedOptions","currentCategory","unselectedOptionsCount","sortedSelection","sortedOptions","setFirstOption","available","availableOptions","isColumnCategoryAllowed","_optionCache","_batchCounter","call","setOptions","bind","getCategoryByName","cat","setOptionEvents","subscribe","setOptionState","setAllOptionsSelected","list","force","slice","ifFoundFirstOption","sortable","sortableSettings","hint","clone","css","width","placeholder","addClass","filter","items","change","e","movedOption","delta","newIndex","oldIndex","previousPosition","indexOf","splice","kendoSortable","columnsData","columnChooserCategories","columnsDataIndex","columnData","columnChooserCategory","optionIndex","setOptionStateById","getOptionById","setState","state","ids","selectedColumns","columnId","exists","forceAllCategories","currentCategoryOptions","categoryOption","getAvailableOptions","getSelectedOptionsId","getAvailableOptionsId","getSavedName","trim","setSavedName","enabledSaveColumns","resetSavedName","i18n","window","globalLegacyI18n","get","View","Backbone","extend","initialize","columns","grouping","saving","localization","object","iteratee","ret","key","mapObject","groupColumns","groups","whenStateReady","render","$el","html","tmpl","$elColumnChooser","columnChooser","getItem","focus","cancel","hide","column","_getOption","save","canSaveColumns","then","confirm","_onSave","concat","selectable","colIndex","col","setSelectedIds","getColumns","getSelectedColumns","selectedOptions","err","_apply","resolve","show","setItem","cache","index","filterSort","last","mandatory","primary","append","template","ko_model","body","primaryText","defaultText","isHtmlContent","on","content","primaryActionText","defaultActionText","modal","close","primaryAction","isPrimarySelected","sharedComponentI18n","saveListId","columnPreferenceSaved","Promise","arrayToIndex","arr","memo","definePlugin","config","gridView","toolbar","pluginConfig","_$result","plugins","_$result$dropdown","dropdown","_$result$columns","_$result$categories","_$result$selected","_$result$locked","locked","_$result$mandatory","_$result$patchQuery","patchQuery","_$result$customColumn","customColumn","normalizeConfig","toolbarEditor","gridToolbarGroup","toolbarWithItem","setSelectedColumns","names","_pluginConfig$locked","_pluginConfig$mandato","validNames","flatten","uniq","patch","select","Array","apply","query","set","columnNames","once","elTable","parentElement","appendChild","project","grid","getSelection","SelectedColumns","where","getSelectedRecord","setSelectedRecord","selection","update","create","refreshMenu","Columns","_ref","getRecord","setRecord","record","legacyQuery","legacyDataProcesser","promises","legacySelected","LegacySelectedColumns","legacyRecords","LegacyColumns","destroy","legacyRecord","creation","applyRecord","thenReturn","applyColumns","setCustomColumnsRecord","recordId","customColumns","CustomColumns","getCustomColumnsRecord","addCustomColumnsRecord","values","editCustomColumnsRecord","makeCustomColumn","bingadsGridColumn","title","account","PerformanceMetrics","Id","Value","type","format","helpId","saveCustomColumn","isEdit","s","editCustomColumn","columnInfo","openCustomColumnModal","removeCustomColumn","removeCustomColumnsRecord","destroyColumnChooser","createColumnChooser","Error","enabled","customColumnConf","columnDefinition","customColumnConfig","Custom","localizedAdded","metrics","metric","choices","colName","localizedTitle","segmentation","segment","choice","localizeSegmentationValue","indexSelected","indexLocked","indexMandatory","candidateColumns","ColumnChooserView","_ref2","Modal","nameExistText","replaceText","showColumnChooser","overrideWith","hideAllToolbars","restoreToolbar","showAllToolbars","button","iconLeft","columnChooserIcon","iconRight","arrowDownIcon","menu","onClick","removeText","onSelect","onRemove","getString","removeRecord","findAll","legacyGridName","ViewModel","_createClass","_this","pagination","_classCallCheck","allSelected","currentPageAllRowsSelected","shouldShowPlugin","selectedRowsCount","totalRowsTotalPageCount","rowsDidUpdate","silentClearAllSelection","currentRowsSelectionText","replace","pageSize","selectAllPagesText","allPagesRowsCount","allRowsSelectedText","clearSelectedText","totalCountRows","onAllRowsSelected","onNotAllRowsSelected","deselectAll","_Backbone$View","_callSuper","arguments","_inherits","selectedKeys","_this2","empty","CROSS_PAGE_SELECT_ALL_TYPE","crossPageSelectHeadRow","crossPageSelectAllPlugin","view","setHeadRows","rows","row","classes","version","pgrid","isInitialGridDataLoad","logPerformanceInfo","virtualized","_ref$logNavTiming","logNavTiming","track","instrumentation","timeStarted","performance","now","activeTimeBeforeStarted","NaN","isSuccess","timeFetched","activeTimeBeforeFetched","timeRendered","activeTimeBeforeRendered","landingPageUrl","api","message","writeRawLog","logCategory","JSON","stringify","entryType","logMessage","Version","GridName","IsVirtualized","TotalRows","countRows","TotalServerSideRows","TotalVisibleRows","TotalColumns","find","DataFetchStartTime","DataFetchStartActiveTime","DataFetchingTime","DataFetchingActiveTime","GridRenderingTime","GridRenderingActiveTime","PageNavStartTime","timing","navigationStart","PageFetchStartTime","fetchStart","LandingPageUrl","newPerformanceLogPlugin","_ref2$scrolling","scrolling","_ref2$scrolling2$virt","_ref2$plugins","_ref2$plugins2$perfor","performanceLogNew","_ref2$plugins2$perfor3","result","uiBlockerToken","uiBlocker","unblock","block","CustomUserInfos","store","defineResource","setCustomUserInfos","customUserInfos","newCustomUserInfos","path","getCustomUserInfos","adapter","registerSubadapter","PreferencesSubadapter","Resource","prefix","_ref$where","_ref$where2$project","serialize","attrs","Name","Data","Type","deserialize","match","_match$slice","_slicedToArray","DateFilters","_ref$where2","_ref$where2$grid","dateFilters","_match$slice2","defaultQuery","getDateFilter","setDateFilter","getDateFilterPreference","isNotSimpleLeftMouseClickEvent","ctrlKey","shiftKey","altKey","metaKey","className","editorView","cellPosition","renderBelow","dismiss","FocusLockEditorView","focusLockInstanceDecorator","onExist","lockRegionAriaLabel","managed","focusLockEditorView","clickToDismiss","closest","noDismiss","$editor","isRTL","left","cTop","top","cLeft","$cell","document","elementFromPoint","scrollTop","widthDiff","outerWidth","clientWidth","height","children","padding","outerHeight","getPosition","CultureIsRTL","setFocus","off","_superPropGet","Button","leftIconClass","isNewFeature","isAvailable","_onClick","stopPropagation","hasClass","disable","attr","buttonEl","enable","removeClass","buttonTmpl","ButtonMenuItem","MenuItem","attributes","role","linkText","setText","getText","setLinkText","menuItem","DividerMenuItem","Dropdown","isFirstItem","isShowRightIcon","menuItems","menuClassNames","_initMenuItem","getMenuItem","getMenuItems","pushMenuItem","_renderMenuItem","pushMenuItems","removeMenuItem","getGroup","removeRadioItem","isGroup","removeMenuItems","groupItem","removeItem","_applyItemEvents","$itemList","GridToolbar","appendItems","container","renderItems","showToolbar","hideToolbar","expand","count","setSize","posInSet","setMenuTitle","pos","toString","toolbarTemplate","HeaderMenuItem","tagName","fileSize","locale","fileSizeString","toLocaleString","DelegateAdapter","targetName","definition","getAdapter","params","updateAll","destroyAll","MutableModel","_ref$mutables","mutables","_ref$model","model","keys","mutable","hasChanges","_this$model","_this$model2","addKeys","toAdd","curKeys","curMutable","curVal","getEnum","enumType","enumItem","capitalize","getEnumDescription","toSchema","schemaOrType","TypeError","getType","getProperty","stringOrArray","schema","arrProperty","isArray","exact","join","topLevelPropertySchema","standardPropertySchema","getPropertySchema","getValue","String","getValueDescription","constructSchemaI18n","partial","enum","enumMappedString","valueDescription","enumDescription","beforeRemove","afterChange","stateWhitelist","entitySet","edmCampaign","currentAccount","extendData","one","changeStatus","toLowerCase","Status","entity","DataStore","updateObject","_defineProperty","useStateInsteadOfStatus","addImportTypeToStatusUpdate","Model","ignoreEmptyId","cacheResponse","catch","_len","args","_key","getWalkthrus","walkthru","availableWalkthrus","availableWalkthrusSmart","allWalkthrus","WalkMeAPI","walkthrus","allWalkthrusSmart","getFlows","w","walkthruIds","subview","startWalkthruById","startFlowById","startWalkthru","createSubview","setElement","Link","$link","PropTypes","formatDate","isRequired","formatPercent","getCurrencySymbol","isReady","parseDate","parseDecimal","palette","buttons","callback","isLargeHeader","renderHeaderText","actions","styles","root","shimmerLineCount","onRenderShimmer","isShimmerRequired","getTheme","getStyles","cardContainer","minHeight","marginBottom","border","fontSize","color","display","gridTemplateColumns","background","white","cardSection","paddingLeft","paddingRight","headerBorder","borderBottom","neutralLight","headerContainer","gridRow","paddingTop","paddingBottom","headerContentContainer","headerText","fontWeight","fontStyle","overflow","textOverflow","smallHeaderText","whiteSpace","largeHeaderText","dropdownContainer","closeButton","neutralSecondary","contentContainer","wideCardContainer","footerContainer","footerContentContainer","flexDirection","alignItems","footerButton","backgroundColor","float","footerLink","textDecoration","cardStyles","shimmerItem","CardHeader","props","_props$config","_props$config$renderH","_props$config$actions","headerOptions","onCloseTile","_props$config$isLarge","useDefaultStyles","hasHeaderOptions","_jsxs","classNames","_jsx","OverflowSet","overflowItems","onRenderOverflowButton","IconButton","_TL_","minWidth","alignSelf","menuIconProps","iconName","menuProps","iconProps","defaultProps","CardFooter","_props$config$buttons","_props$config$isRequi","hasButtons","map","btn","href","btnStyle","Card","headerConfig","header","footerConfig","footer","contentConfig","cardClassName","_props$config$wide","wide","isLoading","_props$getCardStyles","getCardStyles","_ref$isLargeHeader","_ref2$styles","_ref2$styles2$root","_ref2$shimmerLineCoun","_ref2$isShimmerRequir","isShowingShimmer","loadingItems","useMemo","shimmerWidthList","Shimmer","style","commonStrings","intent_target_peopleIn","intent_target_searchFor","LocationTargetEditor","locationTargets","negativeLocationTargets","updateLocationTarget","updateNegativeLocationTargets","defaultRadiusSize","defaultRadiusUnit","isPreview","showSearchTypeOptions","mapRef","useRef","useContext","I18nContext","locationTargetsEditorStrings","noResultsMessage","description","handleLocationTargetsGetErrorMessage","useCallback","targets","isNegativeLocationTargets","MAX_LOCATION_TARGETS","handleSingleLocationTargetGetErrorMessage","getIsRadiusTarget","location","targetingType","defaultGetIsRadiusTarget","TARGETING_TYPE","Included","getIsBoundaryTarget","defaultGetIsBoundaryTarget","Excluded","LocationTargetsEditor","allowNegativeLocationTargeting","onLocationTargetsChange","onNegativeLocationTargetsChange","maxLocationTargets","maxRadiusInMiles","maxRadiusInKilometers","onLocationTargetsGetErrorMessage","onNegativeLocationTargetsGetErrorMessage","onSingleLocationTargetGetErrorMessage","strings","isReadonly","getLocationCriterion","criterion","Criterion","everywhere","specific","usCanada","LocationTargetEditorWithBingMapsContext","WrappedComponent","HOC","serverContext","ServerContext","DefaultScopeProvider","scope","cid","CurrentCustomer","aid","CurrentAccount","BingMapsContextProvider","bingMapsApiKey","campaignApiToken","Token","campaignApiServiceRoot","ServicesEndpoints","CampaignAPI","_objectSpread","displayName","getDisplayName","hoistNonReactStatics","withBingMapsContext","EditTargetingLocation","currentTargets","currentNegativeTargets","setCurrentTargets","setCurrentNegativeTargets","criterions","selectedLocationOption","setSelectedLocationOption","showTitle","showSelectorOnEmpty","getEditTargetingStyles","locationTargetOptions","targetOptions","targetOption","locationCriterions","useEffect","titleText","Text","RadioGroup","getItemId","renderItem","onChange","checked","getIntentTargetingStyles","intentTarget","marginTop","intentTargetOptions","stackTokens","childrenGap","EditTargetingIntent","peopleInLocation","peopleSearchingForLocation","setPeopleInLocation","setPeopleSearchingForLocation","Stack","tokens","Checkbox","label","ev","isChecked","ErrorMessages","messages","EditTargeting","marginLeft","maxHeight","outline","boxShadow","SidePanelContext","createContext","containerId","onPanelOpenStateChange","setPanelContainerInfo","SidePanel","_useContext","newProps","onOuterClick","layerProps","hostId","panelId","isOpen","Panel","getClarityGraphStyle","ClarityInstructionGraph","gridGap","textAlign","backgroundImage","step1","backgroundSize","backgroundRepeat","step2","step3","clarityInstructionText","links","ClarityGraphInstruction","styleClass","ReactTemplate","a","rel","aTerms","aPrivacy","keyNameOfGMCEmailAddressInCookie","GMCSignedInSection","_React$PureComponent","_this$props","gmcEmailAddress","signOut","React","GMCSignedOutSection","scenario","signIn","disableGMCSignIn","onGMCSignInRedirectLinkClick","DefaultButton","ariaLabel","disabled","Scenarios","NO_MMC_STORES","GMCSignInStatusSection","isSignedIn","loginErrorText","mappingsCount","learnMoreLinkCallback","GmcHeaderMoreInfos","descriptionText1","LearnMoreLink","topic","onLinkClick","linkType","MultipleMatchingStoresDescription","DropdownButton","SuggestedMMCStore","Fragment","areThereMultipleDomainMatchingMMCStores","tooltipId","ReadOnlyCell","tooltipText","TooltipHost","closeDelay","directionalHint","DirectionalHint","rightTopEdge","targetElement","overflowMode","TooltipOverflowMode","Parent","MappingEditorCallout","module","default","GMCToMMCMappingGrid","getTargetRowIndexForCallout","selectedRowIndexForCallout","toggleMappingEditorCallout","rowIndex","_this$state","isShowingCallout","dismissCallout","initStaticColumns","fieldName","maxWidth","HelpPopup","generateSelectedMappingTextColumn","onRender","infoForMMCGrid","logger","isCellReadOnly","mappingGridRow","MMCStores","SelectedMapping","getReadOnlyCellTooltipText","generateColumns","_toConsumableArray","staticColumns","perfMarker","willInit","done","_this$props2","isGetMappingsError","mappingGridRows","setDropdown","_this$state2","willRender","mappingEditorPerfMarker","createChild","DetailsList","checkboxVisibility","CheckboxVisibility","hidden","selectionMode","SelectionMode","none","gridGenericErrorText","selectedRow","getMappingGridStyles","_ref$iconFontFamily","iconFontFamily","_ref$palette","Object","assign","glyphIconStyle","mappingGridStyles","GMCToMMCMappingGridWithSignInUnstyled","gmcEmailFromCookie","onSignInSuccess","response","code","testGMCAccount","logError","displaySignInError","error","errorCode","signInErrorCodes","AuthorizationError","authorizationErrorText","logTrace","generateMappingGridRows","authorizationCode","onLoginErrorTextUpdate","onSignInFailed","selectedMapping","copy","hasDraftStore","checkMappingGridForDraft","onMappingGridRowsUpdate","onHasDraftStoreUpdate","getMappingsOnSuccess","_generateMappingGridR","generateMappingGridRowsFromGetMappingsResponse","isError","displayGetMappingsOnError","repository","addSubCookieToImportCookie","setGMCEmailAddressInCookie","IsMerchantCenterImportStepAutoLoginEnabled","onGMCEmailAddressUpdate","onIsGetMappingsErrorUpdate","onInfoForMMCGridUpdate","onScenarioUpdate","getMappingsOnError","errorResponse","responseJSON","ErrorCode","cannotRetrieveRefreshTokenErrorText","googleImportInvalidAuthCodeErrorText","googleImportContentApiInsufficientAuthScopeErrorText","getCID","isMultiAccountImport","getCIDForSingleAccountImport","getAID","AdvertiserCustomerID","getClientIdOnSuccess","clientIdFetchErrorText","getClientIdOnError","AlertHelper","showError","alertGenericErrorText","google","gmcLoginWithClientIdRepository","GMCLoginWithClientIdRepository","uid","smallToken","oAuthToken","OAuthToken","devToken","DeveloperToken","GSILocal","permissions","dynamic","signInWithGetClientId","clientId","setClientId","onClientIdUpdate","onSuccess","onFail","useConsentPrompt","removeImportCookieValue","_ref3","_ref3$authorizationCo","_ref3$testGMCAccount","_ref3$realGMCEmail","realGMCEmail","googleMerchantIds","merchantIds","onError","getMappings","getValueInSubImportCookieByAccountId","MerchantCenterImportStepAutoLogin","defaultGmcEmail","getGoogleAccountName","gmcEmail","isReadingCachedData","checkIfReadingCachedData","_GMCToMMCMappingGridW","dpGmcEmail","dpHasDraftStore","dpMappingGridRows","dpInfoForMMCGrid","dpIsGetMappingsError","dpScenario","dpLoginErrorText","dpClientId","mmcGridRows","_this$props3","onDraftStoreLinkClick","mappingGridPerfMarker","fallback","ProgressiveLoadingBlock","DraftAlert","NOT_DETERMINED","GMCToMMCMappingGridWithSignIn","withDefaultStyles","withI18nConsumer","withServerContext","withScope","MappingEditorDescription","descriptionText2","descriptionText2Generator","HasAccess","scenarioHasMmcStores","isCreateNewStore","PLACEHOLDER_RADIO_BUTTON_TEXT","ASSOCIATE_RADIO_BUTTON_TEXT","CREATE_NEW_RADIO_BUTTON_TEXT","RECOMMENDED_RADIO_BUTTON_TEXT","MMCGrid","MappingEditor","onRadioButtonChange","_event","selectedRadioButton","selectedMMCStore","ASSOCIATE_RADIO_BUTTON_KEY","selectedRadioButtonKey","onMMCStoreSelected","getSelectedMMCStore","determineSelectedMMCStore","getRowsForMultipleDomainMatchScenario","OtherMMCStoreOptions","multipleDomainMatchStoreRows","generateMMCGridRowsForMultipleDomainMatchScenario","initDropdownTextPerRadioButton","dropdownTextPerRadioButton","doesGMCStoreHaveACreatedDraftStore","PLACEHOLDER_RADIO_BUTTON_KEY","draftStoreName","draftStoreId","getCreatedDraftStoreIdForGMCStore","dropdownTextForDraftRadioButton","CREATE_NEW_RADIO_BUTTON_KEY","dropdownTextForCreateNewRadioButton","initDraftChoiceGroupOption","_this$props4","radioButtonText","EXISTING_DRAFT_RADIO_BUTTON_TEXT","isMultipleDomainMatchScenario","initAssociateChoiceGroupOption","_this$props5","mmcGridPerfMarker","onRenderField","radioButtonProps","renderRadioButton","mmcDetailsList","MMCStoreId","initCreateNewChoiceGroupOption","shouldShowDraftChoiceGroupOption","shouldShowAssociateChoiceGroupOption","_this$props6","doesUserHaveAccessToThisRowsGmcStore","shouldShowCreateNewChoiceGroupOption","_this$props7","initChoiceGroupOptions","choiceGroupOptions","validateSelection","mapSelectionToDropdownText","MMCId","MMCStoreName","_this$props8","determineRadioButtonWhenConstructed","_this$props9","isSaveButtonDisabled","ChoiceGroup","selectedKey","PrimaryButton","Callout","onDismiss","preventDismissOnScroll","preventDismissOnResize","setInitialFocus","AVAILABLE_STORES_TEXT","SEARCH_TEXT","onSearch","searchQuery","filteredRows","includes","isTheFirstSelectionRendered","onSearchClear","onRenderRow","customStyles","DetailsRow","determineIfIsInErrorState","conditionallySelectRowWhenConstructed","setKeySelected","Selection","onSelectionChanged","mappingGridSelectedMMCStore","selectedIndex","newFilteredRows","SearchBox","onClear","underlined","single","selectionPreservedOnEmptyClick","setKey","idPropType","mmcGridRowsPropType","MMCStoreDomain","mmcStoresPropType","SuggestedMMCStorePropType","StoreId","StoreName","Domain","IsDomainValidated","MatchingPlaceholderId","SelectedMappingPropType","OtherMMCStoreOptionsPropType","selectedRowPropType","GMCMerchantId","GMCStoreName","GMCStoreDomain","CampaignCreationMethod","getCampaignCreationMethodItemStyles","itemContainer","borderRadius","borderColor","cursor","verticalItemContainer","justifyContent","selectedItemContainer","disabledItemContainer","imageContainerStyle","marginRight","verticalImageContainer","neutralPrimary","lineHeight","contentInTwoLines","disableText","red","CampaignCreationMethodSelectionStyles","itemContainerTokens","itemContainerVerticalTokens","CampaignCreationMethodItem","itemIndex","onMethodItemClick","shouldForceContentInTwoLines","method","imageSrc","alt","isVertical","onClickItem","itemProps","tabIndex","onKeyDown","submitEvent","Image","src","imageFit","ImageFit","contain","CampaignCreationMethodSelection","onClickCreateNewCampaign","onClickGoogleImport","onClickFacebookImport","disableImports","isRebranding","isHideImports","selectedItem","hiddenMethod","campaignCreationMethods","RebrandingNewCampaign","NewCampaign","forceContentInTwoLines","RebrandingGoogleImport","GoogleImport","RebrandingFacebookImport","FacebookImport","getCampaignCreationMethod","renderSelectionItem","horizontal","disableShrink","getTileHeaderStyles","tileHeader","flexFlow","headerTitle","getTileStyles","tile","navigationButtons","tileStyles","image","back","TileHeader","subtitle","displayMode","hideIcon","goalWebsiteImg","variant","as","Tile","onBack","onNext","backBtnText","nextBtnText","ActionButton","Goals","IncreaseWebsiteVisit","isRecommended","IncreaseCallToBusiness","IncreaseBusinessLocationVisit","campaignGoals","campaignGoalItemContainer","position","outlineColor","themePrimary","themeLighterAlt","themeLighter","themeDark","campaignGoalItemContainerWithIcon","campaignGoalItemContainerWithoutIcon","goalTitle","black","goalDescription","iconImage","nonIconImage","checkIcon","right","checkIconHightLight","blue","checkIconNonHightLight","neutralTertiaryAlt","checkIconUncheckHover","GoalItem","selectedCampaignGoals","isShowIcon","campaignGoal","stepGoalOptionsImages","goalWebsiteIcon","goalPhoneIcon","goalPhoneImg","goalLocationIcon","goalLocationImg","GoalSelected","goalSelectedImg","getStepGoalOptionsImages","goalImage","Icon","GoalSelection","onCampaignGoalSelectionChange","multiSelect","canSelectItem","getKey","multiple","changeGoalSelection","selectedValue","isKeySelected","SelectionZone","onItemInvoked","isSelectedOnFocus","getWebsiteAndBusinessStyles","businessName","websiteAndBusinessStyles","titleWithMargin","website","getWebsiteAndSmartPagesStyles","websiteItemContainer","selectedOptionContainer","smartPageErrors","websiteAndSmartPagesStyles","websiteInput","link","getWebsiteItemStyles","itemContainerRebranding","itemContainerWithIcon","itemContainerWithoutIcon","optionSelected","optionNotSelected","imgContainer","icon","iconNotSelected","websiteItemStyles","getWebsiteInputStyles","websiteInputContainer","businessNameValidationErrors","required","maxLength","minLength","websiteValidationErrors","pattern","OPTIONS","optionTitles","selectedText","WebsiteInput","setWebsite","alwaysShowError","labelId","onWebsiteChange","handleWebsiteError","errors","errorStrings","oldError","Input","validationProps","field","errorProcessor","debounce","UrlRegexWithOptionalProtocol","websiteSchema","properties","websiteAndBusinessSchema","business","WebsiteAndBusiness","setBusinessName","setIsValid","legacyI18n","LegacyI18nContext","onValidate","isValid","onChangeBusinessName","ValidationGroup","WebsiteItem","selectedIcon","unselectedIcon","optionImages","signupWebsiteImg","websiteIcon","websiteImg","signupNoWebsiteImg","noWebsiteIcon","noWebsiteImg","rebrandingWebsiteImg","rebrandingNoWebsiteImg","wwwImage","getOptionImages","_useMemo","classname","iconClass","FontIcon","getIsWebsiteSocialPlatform","site","uri","URI","protocol","host","hostname","WebsiteAndSmartPages","existingWebsiteSelected","setExistingWebsiteSelected","websiteLabel","websiteHelpTopic","isWebsiteSocialPlatform","setIsWebsiteSocialPlatform","unsupportedDomainMessage","websiteOptionType","smartPageOptionType","smartPageLearnMoreLink","showWebsiteOptions","customError","onCustomValidate","onClickExistingWebsite","onClickSmartPages","optionText","websiteLabelId","HelpPopupInline","VIEWS","languageCountryContainer","noShadow","languageContainer","searchableDropdownSearchBox","transform","zIndex","RESERVED_SEARCH_KEY","getSearchableOptions","initialOptions","optionsWithSearch","itemType","SelectableOptionMenuItemType","Header","SearchableDropdown","searchableOptions","_useState","useState","_useState2","filteredOptions","setFilteredOptions","onSearchValueChanged","searchValue","matchedOptions","onChangeSearchBox","onClearSearchBox","onRenderOption","renderFunc","autoFocus","searchableDropdownContainer","calloutProps","bottomCenter","directionalHintFixed","LanguageCountrySelection","selectedLanguage","onLanguageSelected","languages","countryOptions","selectedCountry","onCountrySelected","isCountrySelectDisabled","countryContainer","LanguageCountrySelectionTile","onLanguageSelectionChange","campaign","useConfirmDialog","initCountryCode","shouldShowCountryChangedWarning","uiActivity","shouldShowLanguageChangedWarning","setIsCampaignDeleteConfirmed","confirmDialogClassName","setError","campaignLanguage","onLanguageBack","onConfirmNext","trace","onCancelDialog","_useConfirmDialog","confirmText","onConfirm","cancelText","onCancel","activity","dialogName","_useConfirmDialog2","changeDialog","showChangeDialog","isChangeDialogVisible","onLanguageNext","WebsiteOnlyOption","subTitleContainer","CreationMethodSubTitle","subTitle","goalsSubtitle","websiteSubtitle","withBusinessName","goalTileFooter","initStep","isSignUp","shouldShowSmartPageOption","isLanguageEnabled","languageSubtitle","isCreationMethodEnabled","creationMethodTitle","customizedInitStep","getInitStep","currentView","setView","_useState3","_useState4","setAlwaysShowError","_useState5","_useState6","goalError","setGoalError","hasLanguageSelection","showSwitchToExpertTile","onCreationMethodNext","onGoalNext","onGoalBack","onWebsiteBack","onWebsiteNext","creationMethodSubTitle","getWebsiteOptions","getIntroStyles","introContainer","getBulletItemStyles","bulletItem","iconContainer","bulletItemStyles","getModeItemStyles","recommended","recommendedNotSelected","recommendedNotVisible","visibility","flex","itemRecommended","margin","rebrandingSelectedDescription","rebrandingNotSelectedDescription","divider","modeItemStyles","bulletsTitle","ACCOUNT_MODE","ACCOUNT_MODE_NAME","BulletItem","imgSrc","expertImg","imgAlt","introTitle","introTexts","smartImg","renderIcon","bold","t","ModeItem","bulletItems","IntroTexts","animationContainer","getStylesForFluentUi","mobileDeviceQuery","animationImage","animationLabel","ProcessingAnimation","rollingTexts","rollingInterval","customImg","showIcon","useProgressIndicator","rollingTextIndex","setRollingTextIndex","timerRef","stopRolling","clearInterval","startRolling","setInterval","ProgressIndicator","animationImg","Label","defaultProtocols","buildUrl","url","_ref$protocols","protocols","parseUrl","regexResult","RegExp","exec","PasswordEditor","hasPassword","password","isFakePassword","setIsFakePassword","repeat","Math","random","fakePassword","setPassword","onFocus","onBlur","PasswordEditorValidationAdapter","AdapterFactory","valueToInject","PasswordEditorWithValidation","withError","withValidation","getTimeZoneOptions","s$Campaign","TimeZone","timeZone","toLegacyTimeZone","sortBy","parseInt","UpdateNowProgress","updateNowQueuedText","progressPercentage","isForVNext","Alert","percentage","toFixed","level","dismissible","UrlEditor","_React$Component","onUrlChange","onUrlPartChange","rawInput","_parseUrl","newUrl","newProtocol","fullUrl","buildFullUrl","onProtocolPartChange","_parseUrl2","Select","classnames","ariaLabelledby","UrlEditorValidationAdapter","UrlEditorWithValidation","textFieldStyle","protocolDropdownStyle","selectors","FluentUrlEditor","dropdownItems","dropdownWidth","TextField","FluentUrlEditorValidationAdapter","FluentUrlEditorWithValidation","SchedulesTabHeaderView","deps","learnMoreText","SchedulesTabNoScheduleView","addScheduleButtonText","onCreateClicked","onCreateSchedule","enableHeader","bsStyle","CronFrequencyEditorWithValidationSingleLine","CronFrequencyEditorWithValidation","cron","username","SchedulesTabScheduleEdit","onSaveClicked","onSaveSchedule","schedule","getSchedule","errorMessages","onCancelClicked","onCancelEditSchedule","removeNonDirtyPassword","onCronChange","onTimeZoneChange","timeZoneId","onUsernameChange","onPasswordChange","clearPassword","passwordRef","isDirty","passwordKey","_props$deps","accountTimeZoneId","campaignSchema","timeZoneOptions","cronFormatter","CronFormatter","cronFrequencies","getCronFrequenciesEnum","enabledFrequencies","DAILY","WEEKLY","MONTHLY","EVERY_6_HOURS","EVERY_12_HOURS","saveScheduleButtonText","cancelEditScheduleButtonText","frequencyLabelText","frequencyHelpId","timeZoneLabelText","timeZoneHelpId","urlLabelText","urlHelpId","urlInsecureProtocolWarning","usernameLabelText","usernameHelpId","passwordLabelText","passwordHelpId","_props$schedule","_props$schedule2","Cron","TimeZoneId","Url","Protocol","_props$lastError","lastError","supportedProtocols","_props$schedule3","Username","State","Password","ClearPassword","showInsecureProtocolWarning","isInsecureProtocol","HelpIcon","htmlFor","renderTimezoneOptions","ref","isUpdateNowQueue","updateNowTask","updateRuleId","isFinished","SchedulesTabScheduleView","onEditClicked","onEditSchedule","updateNowQueued","onPauseClicked","onPauseSchedule","onEnableClicked","onEnableSchedule","onUpdateNowClicked","onUpdateNow","onRemoveClicked","onRemoveSchedule","editScheduleButtonText","pauseScheduleButtonText","enableScheduleButtonText","updateNowButtonText","removeScheduleButtonText","scheduleIsPausedText","lastUploadTimeLabelText","lastUploadTimeHelpId","updateNowTaskSubscription","updateNowTaskObservable","next","unsubscribe","dsiableEdit","isPaused","hasErrors","totalCount","rowsProcessed","frequencyText","formatCronString","getScheduleText","timeZoneText","fromLegacyTimeZone","Number","getTimeZoneText","formatUrl","errorMessage","nextProps","prevState","frequencyStyle","callout","Frequency","selectedFrequency","setFrequency","noneFrequency","NONE","frequency","formatCronFrequencyUpperCase","getCronModel","parse","Hour","classNamePrefix","selectedHour","setHour","translations","getHoursOfDay","hour","DailyExtra","Consumer","toCronString","DayOfWeek","selectedDayOfWeek","setDayOfWeek","getDaysOfWeek","dayOfWeek","WeeklyExtra","DayOfMonth","getDaysOfMonth","selectedDayOfMonth","setDayOfMonth","dayOfMonth","MonthlyExtra","Extra","_cronFormatter$getCro","_getCronModel","CronFrequencyEditor","selectedCron","setCron","onChangeCron","newCron","cronFrequencyEditorContainer","getDefaultCron","CronFrequencyEditorValidationAdapter","NewSchedulesTabScheduleEdit","i18nStrings","descriptionHelpId","_this$props$deps","newI18n","timeZoneDropdownOptions","HelpLink","getDefaultSubAccount","getModelItem","getChildUngroupId","hotelGroups","subAccountId","ungroup","SubAccountId","getAllChildrenGroupsId","pluck","getHotelGroupAssociations","hotelGroupId","hotelGroup","HotelAssociationCount","getSubAccountAssociations","reduce","total","pageContext","globalContext","require","Permissions","isHotelCenterDeprecation","HotelCenterDeprecation","HotelGroupNavTree","unGroupList","onSubAccountClick","hasHotelAssociation","allSubaccountLink","automationId","createLink","onCreateLinkClick","hotelGroupLinks","onHotelGroupClick","subAccount","itemName","groupName","associationCount","hotelGrouplink","SubAccountName","buildHotelGroupLinks","unGroupedList","hotelGroupName","getHotelGroupNameById","isUngroup","navLinkGroups","Nav","onRenderLink","Glyphicon","glyph","UnstyledSubAccountHotelGroupSelector","dropdownRef","_onDismiss","filtered","filterHotelGroupsByName","currentGroups","onDropdownListKeyDown","currentFocus","activeElement","allSubAccountLink","getElementById","parentNode","search","querySelector","keyCode","preventDefault","defaultSubaccount","baseKeyDown","onRenderDropdownList","_onZoneKeyDown","disableAnimation","isSubAccountSelected","hotelGroupSelector","componentRef","onRenderList","nextState","SubAccountHotelGroupSelector","opacity","borderTop","getDialogStyles","renameDialog","wordBreak","deleteDialog","DeleteDialog","onCancelClick","Dialog","hideDialog","dialogContentProps","DialogType","dialogTitle","modalProps","isBlocking","topOffsetFixed","isUndeletable","undeletableMessage","DialogFooter","onConfirmClick","UnstyledRenameDialog","validateName","newValue","disableConfirmButton","RenameDialog","EditMenu","onConfirmRenameClick","updatedItem","NewName","isAtSubaccountLevel","onRenameSubaccountSubmit","onRenameHotelGroupSubmit","closeDialog","onConfirmDeleteClick","onDeleteSubaccountSubmit","onDeleteHotelGroupSubmit","openDialog","hideRenameDialog","hideDeleteDialog","renderEditIcon","menuName","editText","renameDialogTitle","deleteDialogTitle","disableEdit","CommandButton","onRenderIcon","UnstyledSubAccountHotelGroupEditPanel","subAccountModel","child","getFirstChildGroup","UngroupChildId","SelectedGroupId","SelectedGroupName","SelectedGroupAssociationCount","ChildrenKeys","subaccount","hotelModel","getHotelGroupById","ParentId","SiblingUngroup","SiblingKeys","onRenameSubaccount","onRenameHotelGroup","onDeleteSubaccount","resetSelection","onDeleteHotelGroup","initialSelection","group","getSubAccountById","preSelectedKey","editPanel","SubAccountHotelGroupEditPanel","verticalAlign","overflowY","useCurrencyCountryMapping","_ref$onFetchError","onFetchError","instrumentationActivity","customerLevelVariables","useCustomerLevelVariables","postponeReadConfig","usePostponeReadVariables","onErrorLog","_useCurrencyCountries","useCurrencyCountriesMappings","_useCurrencyCountries2","_useCurrencyCountries3","currencyCountriesMappings","currencyCountryMappingError","readCurrencyCountriesMappings","read","_useCountryCurrencies","useCountryCurrenciesMappings","_useCountryCurrencies2","_useCountryCurrencies3","countryCurrenciesMappings","countryCurrencyMappingError","readCountryCurrenciesMappings","isUseCurrencyCountryMappingReady","getCountriesForCurrency","currency","uppercaseCurrency","toUpperCase","currencyCountry","countries","findCurrenciesForCountry","country","c","getCurrenciesForCountry","countryCurrency","currencies","getDefaultCurrencyForCountry","allowedCurrencies","defaultCurrency","isCurrencySupportedInCountry","validCountriesForCurrency","SignupFlowStepLogger","flow","stepToPage","getSubFlowFromCurrentFlow","signUpPrefix","useWizardService","currentStepId","getCurrentStepId","subFlow","getCurrentFlow","isTestEnvironment","domain","useLogEnteredPage","Flow","SubFlow","Page","pageId","pageTitle","_ref$isSignUp","_ref$signUpPrefix","navLevel3","updatePdlPage","navLevel3Title","omniturePageLoad","propTypes","SignupFlowStepLoggerWithActivity","InstrumentationContext","signupFlowScenario","signupFlow","PageReadyTrigger","PageReady","pageIsReady","StepRenderPageReady","isStepRendered","setIsAnyStepRendered","matchStepState","FORM_STATES","ACTIVE","setTimeout","adsBulkEdit","status","ChangeStatusView","ChangeStatusModel","ChangeAdsView","ChangeAdsModel","ChangeUrlOptionsView","ChangeUrlOptionsModel","ChangeThirdPartyMeasurementView","ChangeThirdPartyMeasurementModel","ChangeThirdPartyMeasurementViewV2","RequestExceptionCallBack","MMABulkConversion","CopyPaste","filterService","adGroupId","getRequestExceptionView","_ref5","viewConfig","isAdGroupLevel","onCopyClicked","_ref8","createView","selectedRowCount","selectedEntityCount","_ref7","entityType","IASBulkEditsThirdPartyMeasurements","IsMOATEnabled","_ref4","inAdGroupLevel","IsAdGroupLevelEditorialAppealEnabled","subItems","_ref10","_ref11","_ref12","_ref6","selectedItems","allPages","hasRSAorExTA","getIsIncludeRSAAndExTAAds","waterfallFilters","getCampaignTypeGlobalFilter","rawFilter","chain","first","getFilteredCampaignTypeFromRawFilter","frontItems","IsBulkEditCopyPasteEnabled","hotkeys","win","mac","Hotkeys","Win","Mac","_ref9","paste","noSelectionRequired","projectionGridBulkEdit","DeleteConfirmation","computeBidMultiplier","bidAdjOptions","rawBidPercentage","bidAdjPercentage","selectedOption","BidAdjustmentControlViewModel","bidMultiplier","abs","useRecommendationBid","BidAdjustmentRecommendationControlViewModel","_BidAdjustmentControl","recommendation","BidAdjustmentControl","observable","size","BidAdjustmentRecommendationControl","_Backbone$View2","SuggestedBid","SuggestBidAdjustmentMultiplier","selectOptions","recommendationTemplate","hasRecommendation","performanceMetric","defaultValidator","BidMultiplier","v","min","max","BidAdjustmentView","_DeterministicWrapper","_ref$showButtons","showButtons","_ref$customValidators","customValidators","_ref$isRecommendation","isRecommendationEnabled","_ref$performance","_ref$template","_ref$entityId","entityId","_ref$logActivities","logActivities","suggested","manual","_ref$perfMarker","fields","control","showLabel","validators","bidAdjustmentForm","SimpleForm","hasLabels","newModel","viewControls","BidSuggestionId","currentModel","validate","DeterministicWrapperView","BidRecommendationView","_DeterministicView","bidRecommendation","DeterministicView","computeAdjustmentPecentage","adjustmentOptions","rawAdjustmentPercentage","adjustmentPercentage","ConversionRateAdjustmentControlViewModel","adjustmentValue","ConversionRateAdjustmentControl","AdjustmentPercentage","ConversionRateAdjustmentView","conversionRateAdjustmentForm","withInheritOption","Inherit","languageOptions","language","unshift","isInheritOptionSelected","LanguageSelector","_PureKnockoutView","_ref$languages","_ref$withInheritOptio","_ref$disabled","descriptionId","hintId","Description","SaveWarning","PureKnockoutView","jsdataRawDataPlugin","commonJsdataRawDataPlugin","getRawData","projectionGridEnableWithSelection","toolbarItemIds","toolbars","original","IOFormInputSchema","Constants","InsertionOrdersGridFieldNames","IODateInlineEditView","allowImmediateStart","allowEndless","minDate","selectedDate","ioDatePicker","DeterministicViewForBackBoneView","onChanged","ioDatePickerComponent","withI18n","IODatePicker","ReactDOM","ThruDate","dateValue","setChild","saveLabel","cancelLabel","_this$ioDatePicker$vi","_this$ioDatePicker$vi2","newSelectedDate","DateInlineEditableColumnPrompt","maxDate","onSave","columnName","dateEditorView","updatedValue","GridCustomizedPopupEditor","customDismissCondition","IOSpendCapAmountInlineEditView","spendCapAmountValue","ioSpendCapAmount","ioSpendCapAmountComponent","IOSpendCapAmount","allowUnlimited","_this$ioSpendCapAmoun","_this$ioSpendCapAmoun2","newSpendCapAmountValue","SpendCapAmountInlineEditableColumnPrompt","spendCapAmountEditorView","TrackingTemplateColumn","_CampaignuiBaseColumn","inlineEditableSave","_ref$deps","_ref$parentContainerS","parentContainerSelector","enableEdit","editable","bodyClasses","helpAriaLabel","TrackingUrlTemplate","testUurlService","testUurl","uurlLevels","newPosition","constructor","gridClass","isKeywordLevel","showUurlTestTool","AdGroup","Keyword","trackingtemplateviewInlineView","TrackingTemplateInlineEditView","trackingTemplate","updated","editorViewCallbackAfterUpdate","fn","originalView","isInline","trackingTemplateView","customerId","userId","accountId","campaignId","Campaign","apiInLog","useVNextPosition","groupClass","CampaignuiBaseColumn","CustomParametersColumn","customParametersInlineEditView","CustomParameterInlineEditView","customParameters","UrlCustomParameters","customParams","triggerScrollbarRepositionOnElementHeightChange","FinalUrlSuffixColumn","FinalUrlSuffix","finalUrlSuffixInlineEditView","FinalUrlSuffixInlineEditView","finalUrlSuffix","legacyRouter","_bingads_webui_component_legacy_legacy_router_index","legacyDepsList","cacheManager","DownloadView","locationMap","getODataErrors","fetchSortInfo","getFilters","getSegType","setSegType","getSegPreference","appConfig","edm","odata","date","jsDataCampaign","sessionStore","preferencesService","asyncScheduler","PageContext","cacheService","SummaryDataContextManager","dataContextManager","competitionTabPromiseFactory","competitionTab","AddConditionalFormatButtonUnthemed","disableAdd","isGrayCommandBar","buttonGray","buttonText","AddConditionalFormatButton","neutralLighter","neutralQuaternaryAlt","neutralQuaternary","conditionalFormattingType","conditionalFormattingTypeMap","between","colorType","conditionalFormattingNameMap","GreaterThan","GreaterThanEqual","Equals","DoesNotEqual","LessThan","LessThanEqual","Between","conditonEmptyItemProps","operator","value2","localizeCondition","fragments","humanizedCondition","conditionProps","conditionalFormat","isColon","ViewAllConditionsPopover","popoverClassName","placement","conditionalFormats","viewAllConditionsButton","onClickCondition","getConditionNameAndType","conditionListReadonlyUnthemed","onKeyPress","which","Enter","Space","conditionSchema","conditionalFormatSchema","conditionListReadonly","viewAllPopoverClassName","calloutCloseButton","viewAllPopoverCloseButton","hideAddConditionButton","ConditionListReadonly","fontFamily","ConditionalFormatMenuUnthemed","onClickProperty","onSelected","generateOneItem","ContextualMenu","rootCallout","calloutMaxHeight","gapSpace","shouldFocusOnMount","bottomLeftEdge","doNotLayer","noop","ConditionalFormatMenu","textButton","outlineOffset","removeButton","textDiv","textSpan","flexGrow","savedConditionItem","savedConditionRemove","savedConditionText","contextualConditionalFormatMenu","conditionRemoveModel","ColorPickerUnthemed","onColorChange","onClose","getTarget","handleClickColorPickerBtn","handleClickOutside","randomColorPickerId","crypto","getRandomValues","Uint32Array","colorPickerBtn","colorPicked","popoverId","colorPickerPopover","focusLockContent","onDissmiss","colorList","ColorPicker","ConditionEditor","onChangeInput1","onChangeCondition","onChangeInput2","onChangeOperator","onChangeColor","onDelete","onDeleteConditon","getOperators","op","operators","inputSchema","blockInput","nullable","minimum","maximum","FormGroup","deletable","ConditionPopoverUnthemed","isAddButtonEnable","conditionList","keyName","onApplyCondition","getConditionList","onCancelCondition","onClickAddCondition","conditionItem","newConditionList","deleteConditionIndex","onValidCheckConditionList","conditionIndex","newCondition","validCount","forEach","validCheckCondition","isPercentNumber","val","test","preProps","popoverContainer","ConditionPopoverClassName","Form","ButtonToolbar","ConditionPopover","ConditionPillUnThemed","showConditionPopover","focusOnButton","onRemoveCondition","onChangeConditionPopoverVisible","conditionPillButtonUniqueId","conditionPillButton","pillContainerClassNames","conditionPillContainer","conditionPillContainerSelected","ConditionPill","neutralPrimaryAlt","ConditionalFormatBarUnthemed","newConditionParam","onConditionalFormatsChange","showConditionPopOver","_this$props$condition","_objectWithoutProperties","_toPropertyKey","getConditionEditList","openedConditionKey","showSelectedConditionPopover","hideConditionFormatBar","showConditionalFormatMenu","ConditionFormatBar","ConditionList","onReset","ConditionalFormatBar","onClickOutside","borderLeft","redDark","flexWrap","flexBasis","ConditionSelectorPopoverClassName","ConditionSelector","Selected","ItemIconLeft","neutralTertiary","ConditionalFormatUnthemed","showConditionalFormatBar","resetToolbarVisibility","forceHideToolbar","setupConditionListOnToolbar","newItem","maximumConditionLimit","MAX_SAFE_INTEGER","savedConditions","ConditionalFormatWrapper","exports","locals","pug_html","pug","pug_interp","locals_for_with","notification","escape","saveColumnSet","pug_mixins","menuClasses","rightIconClass","contains","compact","withSign","minimumFractionDigits","maximumFractionDigits","oriCon","EstimatedIncreaseInConversions","oriCli","EstimatedIncreaseInClicks","oriImp","EstimatedIncreaseInImpressions","conversions","formatDecimal","clicks","impressions","number","$$obj","pug_index0","$$l","parameter","Key","useBidStrategyDropdownStyles","spacingVerticalMNudge","spacingVerticalXS","BidStrategyDropdownPure","helpTopic","helpLabel","useId","selectedTextString","onOptionSelect","optionValue","ValidatedBidStrategyDropdown","GenericAdapter","BidStrategyIconPure","viewBox","fill","xmlns","d","BidStrategyIcon","DEFAULT_SELECT","mapCampaignsToItems","campaigns","page","filters","dataQuery","skip","getPaginationData","Customers","$withKey","Accounts","Campaigns","toPromise","readCampaigns","currentPage","totalPages","ceil","DeliveryStatusMapping","AdExtensionAssociationDeleted","AdExtensionDeleted","AdExtensionNotPresent","AdGroupAudienceAssociationExcluded","AdGroupAudienceAssociationPaused","AdGroupCriterionExcluded","AdGroupCriterionPaused","AdGroupDeleted","AdGroupDraft","AdGroupExpired","AdGroupPrivacyPending","AdGroupTargetingTooNarrow","AdGroupUserPaused","AdNotActive","AdNotPresent","AdNotServingDeletedAudience","AdPartiallyServingDeletedAudience","AdUserPaused","ApplicationDestinationUrlMismatch","ApplicationDestinationUrlValidationIncomplete","ApplicationNotFound","AssociationDeleted","AudienceTooNarrow","AutoBiddingLearning","AutoBiddingLimitedBudgetRestriction","AutoBiddingLimitedByNotEnoughConversions","AutoBiddingLimitedByNotEnoughRevenue","AutoBiddingLimitedInventoryLimit","AutoBiddingLimitedMaxCPCRestriction","AutoBiddingLimitedUnAttainableTarget","AutoBiddingPortfolioBidStrategyTrainingStatus","BidBelowFirstPageBid","BudgetSuggestions","CamAssetDeleted","CamAssetRejected","CampaignBudgetPaused","CampaignDeleted","CampaignSuspended","CampaignUserPaused","CreditCardExpired","DisclaimerInfoApprovedLimited","DisclaimerInfoNotAssociated","DisclaimerInfoPendingApproval","DisclaimerInfoRejected","DomainLanguageNotSupported","EditorialAppealRejected","EditorialApprovedLimited","EditorialApprovedLimitedAppealRejected","EditorialPending","EditorialRejected","EditorialUnderAppeal","Eligible","ExperimentApplied","ExperimentEnded","GeoCodingIncomplete","Incomplete","InlineOpportunity","InvalidFinancialStatusOther","IOExceeded","KeywordMatchTypeAdGroupMediumCombinationInvalid","KeywordUserPaused","LowQuality","LowSupply","MigrationPaused","NegativeKeywordConflicts","New","NoEligibleAdGroups","NoEligibleAds","NoEligibleKeywords","PartialNegativeKeywordConflicts","PaymentInformationMissing","PendingMetadataSync","ProductTargetUserPaused","ShoppingCampaignNoOffersPresent","ShoppingCampaignStoreNotFound","StoreIdNotAssociated","Unknown","UrlInvalid","VideoExtensionProcessing","VideoExtensionThumbnailAspectInvalid","VideoExtensionThumbnailProcessingFailed","VideoExtensionThumbnailTooSmall","VideoExtensionVideoAspectRatioInvalid","VideoExtensionVideoDurationInvalid","VideoExtensionVideoProcessingFailed","VideoExtensionVideoTooSmall","useItemContentStyles","colorNeutralForeground4","valueFromProps","onChangeFromProps","prevValueRef","setValue","cmp","newSelectedCampaigns","CampaignSelectorDefaultProps","onRenderItemContent","DeliveryStatus","onRenderTagContent","CampaignSelectorInline","fetchData","ServerEntitySelectorInline","CampaignSelectorDrawer","ServerEntitySelectorDrawer","useFetchGoalsFactory","$dateRange","showTrackingStatusIcon","isLinkedInCompatibleGoals","pageNumber","raw","dateRange","startdate","start","enddate","end","cmps","results","GoalCategory","TrackingStatus","readConversionGoals","TrackingStatusMapping","InactiveDueToTagUnavailable","NoRecentConversion","RecordingConversions","TagInactive","Unverified","GoalCategories","AddToCart","BeginCheckout","BookAppointment","Contact","Download","GetDirections","InStoreVisit","Other","OutboundClick","PageView","Purchase","RequestQuote","Signup","SubmitLeadForm","Subcribe","None","useGoalSelectorStyles","goalName","goalDetail","goalCategory","trackingStatusIcon","GoalSelector","selectedGoals","placeholderText","resultsTitle","onRenderLabel","fetchGoals","TrackingStatusIcon","Tooltip","relationship","fetchFn","fetchOnEmptyInput","tagViewLimit","allowRemoveAll","allowSelectAll","categoryI18nKey","useAdManagerStyles","makeStyles","addIcon","adsManagerContainer","shorthands","gap","spacingVerticalS","addNewAdButtonRoot","getAdThumbnailStyles","adThumbailRoot","cardPreview","adLabel","hoverButtons","rowGap","hoverButton","AdThumbnail","adData","onDeleteAd","onEditAd","AdPreview","extraData","adId","useFocusableGroup","arrowGroupAttr","useArrowNavigationGroup","axis","circular","shape","DialogTrigger","disableButtonEnhancement","DialogSurface","DialogBody","DialogTitle","DialogContent","DialogActions","appearance","getAdPreviewStyles","WebkitLineClamp","WebkitBoxOrient","textWrap","columnGap","DefaultAdPreview","finalUrl","headline","introductoryText","adImageUrl","CardPreview","weight","MultiAdsManager","ads","onCreateAd","ad","useSearchableSingleSelectorComboboxStyles","useSearchableSingleSelectorStyles","labelContainer","InvalidOptionValues","SearchableSingleSelectorCombobox","loadingText","noResultsText","defaultGroupName","searchResultGroupName","onChangeQuery","onSelectOption","resultOptions","OptionGroup","loadingOption","emptyOption","selectedIds","selectedOptionName","setQuery","showLoadingOption","showResultOptions","showEmptyOption","updateQuery","newQuery","handleChange","handleOptionSelect","_e","Combobox","freeform","expandIcon","SearchableSelectorWithDefaultList","defaultResults","fetch","debouncedFetch","useFetchingState","renderLabelWithHelpButton","Body1Strong","Field","useSingleInputStyles","SingleLanguageInput","allOptions","lastSelected","setLastSelected","lastSelectedText","handleBlur","some","ValidatedSingleLanguageInput","wi"],"sourceRoot":""}