{"version":3,"file":"static/js/application.async.landing~f166492d.0c2d6be3.chunk.js","mappings":"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","sources":["../../../node_modules/@bingads-webui-campaign-react/auto-generated-assets/src/alerts.js","../../../node_modules/@bingads-webui-campaign-react/auto-generated-assets/src/helpers/utils.js","../../../node_modules/@bingads-webui-campaign-react/auto-generated-assets/src/final-url-expansion-preview.js","../../../node_modules/@bingads-webui-campaign-react/auto-generated-assets/src/helpers/constants.js","../../../node_modules/@bingads-webui-campaign-react/auto-generated-assets/src/side-panel/validated-url-input.js","../../../node_modules/@bingads-webui-campaign-react/auto-generated-assets/src/side-panel/tag-with-tooltip.js","../../../node_modules/@bingads-webui-campaign-react/auto-generated-assets/src/side-panel/final-url-expansion-editor.js","../../../node_modules/@bingads-webui-campaign-react/auto-generated-assets/src/auto-generated-assets-impl.js","../../../node_modules/@bingads-webui-campaign-react/auto-generated-assets/src/auto-generated-assets.js","../../../node_modules/@bingads-webui-campaign-react/base-inline-chart-style/src/style.js","../../../node_modules/@bingads-webui-campaign-react/basic-context-utils/src/use-overreact-variables.js","../../../node_modules/@bingads-webui-campaign-react/basic-context-utils/src/use-pilot-value.js","../../../node_modules/@bingads-webui-campaign-react/bid-strategy-dropdown/src/index.js","../../../node_modules/@bingads-webui-campaign-react/bid-strategy-component/src/options/max-conversions.js","../../../node_modules/@bingads-webui-campaign-react/bid-strategy-component/src/options/max-conversions-value.js","../../../node_modules/@bingads-webui-campaign-react/bid-strategy-component/src/styles/get-additional-details-styles.js","../../../node_modules/@bingads-webui-campaign-react/bid-strategy-component/src/styles/get-text-field-with-suffix-styles.js","../../../node_modules/@bingads-webui-campaign-react/bid-strategy-component/src/additional-details.js","../../../node_modules/@bingads-webui-campaign-react/bid-strategy-component/src/text-field-with-suffix.js","../../../node_modules/@bingads-webui-campaign-react/bid-strategy-component/src/bid-message-bar.js","../../../node_modules/@bingads-webui-campaign-react/bid-strategy-component/src/bid-strategy-shimmer.js","../../../node_modules/@bingads-webui-campaign-react/bid-strategy-component/src/options/manual-cpa.js","../../../node_modules/@bingads-webui-campaign-react/bid-strategy-component/src/options/manual-cpc.js","../../../node_modules/@bingads-webui-campaign-react/bid-strategy-component/src/options/bid-strategy-options-map.js","../../../node_modules/@bingads-webui-campaign-react/bid-strategy-component/src/bid-strategy-component.js","../../../node_modules/@bingads-webui-campaign-react/bid-strategy-component/src/options/use-bid-strategy-schema.js","../../../node_modules/@bingads-webui-campaign-react/boost-contextual-target/src/contextual-options-helper.js","../../../node_modules/@bingads-webui-campaign-react/boost-contextual-target/src/contextual-repository.js","../../../node_modules/@bingads-webui-campaign-react/boost-contextual-target/src/index.js","../../../node_modules/@bingads-webui-campaign-react/boost-contextual-target/src/contextual-target-styles.js","../../../node_modules/@bingads-webui-campaign-react/boost-contextual-target/src/validated-contextual-target.js","../../../node_modules/@bingads-webui-campaign-react/boost-placement-target/src/double-list-box.js","../../../node_modules/@bingads-webui-campaign-react/boost-placement-target/src/placements.js","../../../node_modules/@bingads-webui-campaign-react/boost-placement-target/src/placement-repository.js","../../../node_modules/@bingads-webui-campaign-react/boost-placement-target/src/boost-placement-target-container.js","../../../node_modules/@bingads-webui-campaign-react/boost-placement-target/src/validated-boost-placement-target-container.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/constants.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/brands-picker/brands-data.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/brands-picker/request-brand-button.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/alerts.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/brands-picker/existing-brands-picker.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/brands-picker/selected-brands-tags.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/brands-picker/index.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/manage-brand-list/manage-brand-list-panel-content.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/manage-brand-list/request-brand-panel.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/manage-brand-list/save-dialog.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/manage-brand-list/cancel-dialog.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/manage-brand-list/index.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/brand-lists-picker/existing-brand-lists-picker.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/brand-lists-picker/selected-brand-lists-tags.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/brand-lists-picker/brand-lists-picker-content.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/brand-lists-picker/brand-lists-data.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/brand-lists-picker/index.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/apply-brand-list/double-list-box-data-source.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/apply-brand-list/index.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/broad-only-setting/index.js","../../../node_modules/@bingads-webui-campaign-react/brand-lists-components/src/broad-only-setting/wrapper.js"],"sourcesContent":["import React, { useContext } from 'react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Alert } from '@bingads-webui-react/alert';\r\n\r\nexport const TurnOnAllAlert = () => {\r\n const i18n = useContext(I18nContext);\r\n return (\r\n \r\n {i18n.getString(_TL_('For the best results,'))} {i18n.getString(_TL_('consider turning on all asset types.'))}\r\n \r\n }\r\n level=\"Info\"\r\n icon={(
)}\r\n dismissible={false}\r\n />\r\n );\r\n};\r\n\r\nexport const FullyOptimizedAlert = () => {\r\n const i18n = useContext(I18nContext);\r\n return (\r\n \r\n {i18n.getString(_TL_('Automatically generated assets are fully optimized.'))}\r\n \r\n }\r\n level=\"Confirmation\"\r\n icon={(
)}\r\n dismissible={false}\r\n />\r\n );\r\n};\r\n","import { each, get, isEmpty } from 'underscore';\r\n\r\nexport const extractExclusionRules = (finalUrlExpansions) => {\r\n const urlEquals = [];\r\n const urlContains = [];\r\n const customLabels = [];\r\n each(finalUrlExpansions, (target) => {\r\n const conditions = get(target, ['Criterion', 'WebPage', 'Parameter', 'Conditions'], []);\r\n if (isEmpty(conditions)) return;\r\n if (conditions[0].Operand === 'Url' && conditions[0].Operator === 'Equals') {\r\n urlEquals.push(conditions[0].ArgumentOperand);\r\n } else if (conditions[0].Operand === 'Url' && conditions[0].Operator === 'Contains') {\r\n const rules = [];\r\n each(conditions, (condition) => {\r\n rules.push(condition.ArgumentOperand);\r\n });\r\n urlContains.push(rules);\r\n } else if (conditions[0].Operand === 'CustomLabel') {\r\n customLabels.push(conditions[0].ArgumentOperand);\r\n }\r\n });\r\n return [urlEquals, urlContains, customLabels];\r\n};\r\n\r\nexport const withHttpsPrefix = (url) => {\r\n if (!url) return '';\r\n else if (url.startsWith('http://') || url.startsWith('https://')) return url;\r\n return `https://${url}`;\r\n};\r\n\r\nexport const keywordsToCriterionName = (keywords) => {\r\n const target = [];\r\n keywords.forEach((keyword) => {\r\n target.push(`Url contains ${keyword}`);\r\n });\r\n return target.join(' and ');\r\n};\r\n\r\nexport const convertURLEqualsToCriterion = url => ({\r\n Criterion: {\r\n WebPage: {\r\n Type: 'Webpage',\r\n Parameter: {\r\n Conditions: [\r\n {\r\n Operand: 'Url',\r\n Operator: 'Equals',\r\n ArgumentOperand: url,\r\n },\r\n ],\r\n CriterionName: `Url=${url}`,\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const convertURLContainsToCriterion = keyword => ({\r\n Criterion: {\r\n WebPage: {\r\n Type: 'Webpage',\r\n Parameter: {\r\n Conditions: [\r\n {\r\n Operand: 'Url',\r\n Operator: 'Contains',\r\n ArgumentOperand: keyword,\r\n },\r\n ],\r\n CriterionName: `Url contains ${keyword}`,\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport const convertCustomLabelToCriterion = label => ({\r\n Criterion: {\r\n Type: 'Webpage',\r\n WebPage: {\r\n Parameter: {\r\n Conditions: [\r\n {\r\n Operand: 'CustomLabel',\r\n Operator: 'Equals',\r\n ArgumentOperand: label,\r\n },\r\n ],\r\n CriterionName: `CustomLabel=${label}`,\r\n },\r\n },\r\n },\r\n});\r\n","import React, { useCallback, useMemo } from 'react';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport {\r\n Button,\r\n Overflow,\r\n OverflowItem,\r\n useOverflowMenu,\r\n} from '@fluentui/react-components';\r\nimport {\r\n extractExclusionRules,\r\n keywordsToCriterionName,\r\n} from './helpers/utils';\r\nimport UrlsImage from './media/url.svg';\r\nimport RulesImage from './media/rules.svg';\r\nimport LabelsImage from './media/labels.svg';\r\nimport EditImage from './media/edit.svg';\r\nimport DismissImage from './media/dismiss.svg';\r\n\r\n// eslint-disable-next-line valid-jsdoc\r\n/**\r\n * There's a known bug that fluentui/react-overflow doesn't take gap of the overflow container\r\n * and margin of overflow item into account and cause weird styling issues.\r\n * https://github.com/microsoft/fluentui/issues/23066\r\n */\r\nconst getStyles = () => ({\r\n previewContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n background: 'rgba(255, 255, 255, 1)',\r\n boxShadow: '0px 2px 4px 0px rgba(0, 0, 0, 0.1)',\r\n padding: '12px',\r\n margin: '4px 28px',\r\n borderRadius: '4px',\r\n gap: '4px',\r\n maxWidth: '95%',\r\n },\r\n previewHeader: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n '& .button-group': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n gap: '12px',\r\n '& button': {\r\n padding: '0px',\r\n minWidth: '20px',\r\n },\r\n },\r\n },\r\n previewRow: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n gap: '4px',\r\n flexWrap: 'nowrap',\r\n maxWidth: '95%',\r\n '& .row-label': {\r\n padding: '2px 0px 2px 0px',\r\n textWrap: 'nowrap',\r\n },\r\n },\r\n overflowContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flexWrap: 'nowrap',\r\n flexGrow: 1,\r\n minWidth: 0,\r\n maxWidth: '100%',\r\n overflowX: 'hidden',\r\n gap: '4px',\r\n '& .tag': {\r\n padding: '2px 8px 2px 8px',\r\n borderRadius: '4px',\r\n background: 'rgba(243, 242, 241, 1)',\r\n flexShrink: 0,\r\n maxWidth: '250px',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n overflowX: 'hidden',\r\n },\r\n },\r\n});\r\n\r\nconst OverflowPlaceholder = () => {\r\n const { ref, isOverflowing } = useOverflowMenu();\r\n if (!isOverflowing) {\r\n return null;\r\n }\r\n return (...);\r\n};\r\n\r\nconst UnStyledFinalUrlExpansionPreview = ({\r\n classes,\r\n i18n,\r\n finalUrlExpansions,\r\n setToggleFinalURLsEditor,\r\n onChange,\r\n}) => {\r\n const [urls, rules, labels] = useMemo(() => extractExclusionRules(finalUrlExpansions), [finalUrlExpansions]);\r\n\r\n const onEditClick = useCallback(() => setToggleFinalURLsEditor(true), [setToggleFinalURLsEditor]);\r\n const onDismissClick = useCallback(() => {\r\n onChange({ finalUrlExpansions: [] });\r\n }, [onChange]);\r\n\r\n const renderUrlsRow = useMemo(() => (\r\n
\r\n { UrlsImage && \"Link }\r\n {urls.length} {i18n.getString(_TL_('URLs'))}: \r\n \r\n
\r\n { urls.map(url => (\r\n \r\n \r\n {url}\r\n \r\n \r\n )) }\r\n \r\n
\r\n
\r\n
\r\n ), [classes, i18n, urls]);\r\n\r\n const renderRulesRow = useMemo(() => (\r\n
\r\n { RulesImage && \"Link }\r\n {rules.length} {i18n.getString(_TL_('Exclusion Rules'))}: \r\n \r\n
\r\n { rules.map((rule) => {\r\n const tag = keywordsToCriterionName(rule);\r\n return (\r\n \r\n \r\n {tag}\r\n \r\n \r\n );\r\n }) }\r\n \r\n
\r\n
\r\n
\r\n ), [classes, i18n, rules]);\r\n\r\n const renderLabelsRow = useMemo(() => (\r\n
\r\n { LabelsImage && \"Label }\r\n {labels.length} {i18n.getString(_TL_('Custom Labels'))}: \r\n \r\n
\r\n { labels.map(label => (\r\n \r\n \r\n {label}\r\n \r\n \r\n )) }\r\n \r\n
\r\n
\r\n
\r\n ), [classes, i18n, labels]);\r\n\r\n return (\r\n
\r\n
\r\n { i18n.getString((_TL_('Excluded some URLs'))) }\r\n
\r\n \r\n \r\n
\r\n
\r\n { urls.length > 0 && renderUrlsRow }\r\n { rules.length > 0 && renderRulesRow }\r\n { labels.length > 0 && renderLabelsRow }\r\n
\r\n );\r\n};\r\n\r\nUnStyledFinalUrlExpansionPreview.propTypes = {\r\n classes: PropTypes.shape({\r\n previewContainer: PropTypes.string,\r\n previewHeader: PropTypes.string,\r\n previewRow: PropTypes.string,\r\n overflowContainer: PropTypes.string,\r\n }).isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n finalUrlExpansions: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n setToggleFinalURLsEditor: PropTypes.func.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const FinalUrlExpansionPreview = withDefaultStyles(UnStyledFinalUrlExpansionPreview, getStyles);\r\n","export const EXCLUSTION_TYPE = {\r\n URL: 'urls',\r\n Rule: 'urlContains',\r\n Label: 'customLabels',\r\n};\r\n\r\nexport const URL_LENGTH_LIMIT = 2048;\r\n","import React, { memo, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { get } from 'underscore';\r\nimport { isValidUrl } from '@bingads-webui/url-util';\r\nimport { withCustomValidation } from '@bingads-webui-react/validation';\r\nimport { TextField } from '@fluentui/react';\r\nimport { URL_LENGTH_LIMIT } from '../helpers/constants';\r\nimport { withHttpsPrefix } from '../helpers/utils';\r\n\r\nconst UrlInput = memo(({\r\n className,\r\n i18n,\r\n validationProps,\r\n updateValidation,\r\n placeholder,\r\n}) => {\r\n const input = get(validationProps, ['data', 'input'], '');\r\n\r\n const validateAndUpdateUrl = useCallback((value) => {\r\n const finalUrlValidatorErrors = [];\r\n const fullUrl = value.indexOf('://') >= 0 ? value : withHttpsPrefix(value);\r\n if (!value || !isValidUrl(fullUrl)) {\r\n finalUrlValidatorErrors.push(i18n.getString(_TL_('Please enter a valid URL')));\r\n }\r\n if (value.length > URL_LENGTH_LIMIT) {\r\n finalUrlValidatorErrors.push(i18n.getString(_TL_('The number of characters in this field cannot exceed {{lengthLimit}}'), { lengthLimit: URL_LENGTH_LIMIT }));\r\n }\r\n updateValidation(finalUrlValidatorErrors, { input: value });\r\n }, [i18n, updateValidation]);\r\n\r\n const onTextChange = useCallback((ev, value) => validateAndUpdateUrl(value), [validateAndUpdateUrl]);\r\n\r\n return (\r\n \r\n );\r\n}, (prevProps, nextProps) => prevProps.validationProps.data.input === nextProps.validationProps.data.input);\r\n\r\nUrlInput.propTypes = {\r\n className: PropTypes.string,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n validationProps: PropTypes.shape({\r\n data: PropTypes.shape({\r\n input: PropTypes.string,\r\n }),\r\n }).isRequired,\r\n updateValidation: PropTypes.func.isRequired,\r\n placeholder: PropTypes.string,\r\n};\r\n\r\nUrlInput.defaultProps = {\r\n className: '',\r\n placeholder: '',\r\n};\r\n\r\nexport const ValidatedUrlInput = withCustomValidation(UrlInput);\r\n","import React, { useState, useRef, useEffect } from 'react';\r\nimport Proptypes from 'prop-types';\r\nimport { Tooltip } from '@fluentui/react-components';\r\n\r\nexport const TagWithTooltip = ({ content }) => {\r\n const [isOverflow, setIsOverflow] = useState(false);\r\n const [isTooltipVisible, setIsTooltipVisible] = useState(false);\r\n\r\n const tagRef = useRef();\r\n\r\n useEffect(() => {\r\n setIsOverflow(tagRef.current.clientWidth < tagRef.current.scrollWidth);\r\n }, []);\r\n\r\n return (\r\n setIsTooltipVisible(data.visible)}\r\n >\r\n \r\n {content}\r\n \r\n \r\n );\r\n};\r\n\r\nTagWithTooltip.propTypes = {\r\n content: Proptypes.string.isRequired,\r\n};\r\n","/* eslint-disable no-param-reassign */\r\nimport React, { useCallback, useMemo, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { get, map } from 'underscore';\r\nimport classnames from 'classnames';\r\nimport {\r\n DefaultButton,\r\n Label,\r\n IconButton,\r\n TextField,\r\n PrimaryButton,\r\n Panel,\r\n PanelType,\r\n Dropdown,\r\n Icon,\r\n} from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { ValidationGroup, withValidation } from '@bingads-webui-react/validation';\r\nimport {\r\n extractExclusionRules,\r\n withHttpsPrefix,\r\n keywordsToCriterionName,\r\n convertURLEqualsToCriterion,\r\n convertURLContainsToCriterion,\r\n convertCustomLabelToCriterion,\r\n} from '../helpers/utils';\r\nimport { EXCLUSTION_TYPE } from '../helpers/constants';\r\nimport { ValidatedUrlInput } from './validated-url-input';\r\nimport { TagWithTooltip } from './tag-with-tooltip';\r\n\r\nconst ValidatedInput = withValidation(TextField);\r\nconst ValidationSchema = {\r\n name: 'Exclusion Input',\r\n type: 'object',\r\n properties: {\r\n rule: {\r\n type: 'string',\r\n maxLength: 2048,\r\n },\r\n label: {\r\n type: 'string',\r\n maxLength: 2048,\r\n },\r\n },\r\n};\r\n\r\nexport const getFinalURLSectionStyle = (_, { palette = {} }) => ({\r\n inputContainer: {\r\n display: 'flex',\r\n },\r\n dropdown: {\r\n minWidth: '161px', height: '32px', marginRight: '8px',\r\n },\r\n dropdownOption: {\r\n display: 'flex',\r\n },\r\n iconStyles: {\r\n marginRight: '8px',\r\n },\r\n textField: {\r\n width: '100%', height: '32px',\r\n },\r\n addButton: {\r\n width: '60px', height: '32px', float: 'right', margin: '8px 0px 8px 8px ',\r\n },\r\n sectionsContainer: {\r\n '& label': {\r\n fontSize: 18,\r\n },\r\n '& .footerButton': {\r\n marginLeft: '8px',\r\n },\r\n '& .description': { marginTop: '12px', marginBottom: '12px' },\r\n '& .divider': {\r\n marginTop: '37px',\r\n '& .final-urls-section:last-child': { borderBottom: 'none' },\r\n },\r\n '& .final-urls-section': {\r\n margin: '2px 0',\r\n borderBottom: '1px solid #EDEBE9',\r\n },\r\n '& .dimension': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flexWrap: 'wrap',\r\n gap: '4px',\r\n margin: '8px 0 0 0',\r\n padding: '0 0 16px 0',\r\n '& .dimensionItem': {\r\n alignItems: 'normal',\r\n backgroundColor: '#F3F2F1',\r\n borderRadius: 3,\r\n display: 'flex',\r\n flexDirection: 'row',\r\n gap: '6px',\r\n fontWeight: 600,\r\n padding: '4px 0px 4px 10px',\r\n height: '30px',\r\n '& button': {\r\n color: palette.neutralSecondary,\r\n height: 'auto',\r\n '& .ms-Icon': {\r\n fontSize: 12,\r\n },\r\n },\r\n '& .tagText': {\r\n maxWidth: '488px',\r\n overflow: 'hidden',\r\n textWrap: 'nowrap',\r\n textOverflow: 'ellipsis',\r\n },\r\n },\r\n },\r\n },\r\n errorContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n '& .error': {\r\n color: '#A80000',\r\n },\r\n },\r\n});\r\n\r\nexport const FinalURLsEditor = (props) => {\r\n const {\r\n i18n,\r\n isOpen,\r\n onClose,\r\n onChange,\r\n finalUrlExpansions,\r\n } = props;\r\n\r\n const classes = useDefaultStyles(getFinalURLSectionStyle);\r\n\r\n const [newFinalUrlExpansions, setNewFinalUrlExpansions] = useState(finalUrlExpansions);\r\n const [urls, rules, labels] = useMemo(() => extractExclusionRules(newFinalUrlExpansions), [newFinalUrlExpansions]);\r\n const [selectedOption, setSelectedOption] = useState(EXCLUSTION_TYPE.URL);\r\n const [input, setInput] = useState('');\r\n const [validationErrors, setValidationErrors] = useState([]);\r\n\r\n const onAddTag = useCallback(() => {\r\n if (!input) return;\r\n if (selectedOption === EXCLUSTION_TYPE.URL) {\r\n const newUrl = withHttpsPrefix(input);\r\n if (!urls.includes(newUrl)) {\r\n setNewFinalUrlExpansions([...newFinalUrlExpansions, convertURLEqualsToCriterion(newUrl)]);\r\n }\r\n } else if (selectedOption === EXCLUSTION_TYPE.Rule) {\r\n // Current UI doesn't support multiple AND for a single URL condition so just ignore the case.\r\n const flattenRules = rules.filter(rule => rule.length === 1).flat();\r\n if (!flattenRules.includes(input)) {\r\n setNewFinalUrlExpansions([...newFinalUrlExpansions, convertURLContainsToCriterion(input)]);\r\n }\r\n } else if (selectedOption === EXCLUSTION_TYPE.Label) {\r\n if (!labels.includes(input)) {\r\n setNewFinalUrlExpansions([...newFinalUrlExpansions, convertCustomLabelToCriterion(input)]);\r\n }\r\n }\r\n setInput('');\r\n }, [input, setInput, urls, rules, labels, selectedOption, newFinalUrlExpansions]);\r\n\r\n const onRemovetag = useCallback((value, id, seletedGroup) => {\r\n if (seletedGroup === EXCLUSTION_TYPE.Rule) {\r\n const target = keywordsToCriterionName(value);\r\n setNewFinalUrlExpansions(newFinalUrlExpansions.filter((exclusion) => {\r\n const criterionName = get(exclusion, ['Criterion', 'WebPage', 'Parameter', 'CriterionName'], '');\r\n return criterionName !== target;\r\n }));\r\n } else {\r\n setNewFinalUrlExpansions(newFinalUrlExpansions.filter((exclusion) => {\r\n const { ArgumentOperand } = get(exclusion, ['Criterion', 'WebPage', 'Parameter', 'Conditions', 0], {});\r\n return ArgumentOperand !== value;\r\n }));\r\n }\r\n }, [newFinalUrlExpansions]);\r\n\r\n const onSave = useCallback(() => {\r\n onChange({ finalUrlExpansions: newFinalUrlExpansions });\r\n onClose();\r\n }, [newFinalUrlExpansions, onChange, onClose]);\r\n\r\n const options = [\r\n { key: EXCLUSTION_TYPE.URL, text: i18n.getString(_TL_('URLs')), data: { icon: 'Accept' } },\r\n { key: EXCLUSTION_TYPE.Rule, text: i18n.getString(_TL_('URL contains')), data: { icon: 'Accept' } },\r\n { key: EXCLUSTION_TYPE.Label, text: i18n.getString(_TL_('Custom labels')), data: { icon: 'Accept' } },\r\n ];\r\n\r\n const renderInputField = useCallback(() => {\r\n switch (selectedOption) {\r\n case EXCLUSTION_TYPE.URL:\r\n return (\r\n \r\n );\r\n case EXCLUSTION_TYPE.Rule:\r\n return (\r\n \r\n );\r\n case EXCLUSTION_TYPE.Label:\r\n return (\r\n \r\n );\r\n default:\r\n return null;\r\n }\r\n }, [classes, i18n, selectedOption, input]);\r\n\r\n const renderUrlTags = useCallback(() => (\r\n
\r\n \r\n
{i18n.getString(_TL_('URLs that should be excluded'))}:
\r\n
\r\n { map(urls, (url, index) => (\r\n
\r\n \r\n onRemovetag(url, index, EXCLUSTION_TYPE.URL)}\r\n />\r\n
\r\n )) }\r\n
\r\n
\r\n ), [i18n, urls, onRemovetag]);\r\n\r\n const renderRuleTags = useCallback(() => (\r\n
\r\n \r\n
{i18n.getString(_TL_('Rules to exclude non-commercial pages or sections of your website'))}:
\r\n
\r\n {\r\n map(rules, (rule, index) => {\r\n const tag = keywordsToCriterionName(rule);\r\n return (\r\n
\r\n \r\n onRemovetag(rule, index, EXCLUSTION_TYPE.Rule)}\r\n />\r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n ), [i18n, rules, onRemovetag]);\r\n\r\n const renderCustomLabelTags = useCallback(() => (\r\n
\r\n \r\n
{i18n.getString(_TL_('Specific which labels from page feeds to exlude'))}:
\r\n
\r\n { map(labels, (label, index) => (\r\n
\r\n \r\n onRemovetag(label, index, EXCLUSTION_TYPE.Label)}\r\n />\r\n
\r\n )) }\r\n
\r\n
\r\n ), [i18n, labels, onRemovetag]);\r\n\r\n const renderDropdownOptions = useCallback(option => (\r\n
\r\n {option.data && option.data.icon && option.key === selectedOption && (\r\n \r\n )}\r\n {option.text}\r\n
\r\n ), [classes, selectedOption]);\r\n\r\n const renderPanelFooter = useCallback(() => (\r\n
\r\n \r\n {i18n.getString(_TL_('Apply'))}\r\n \r\n \r\n {i18n.getString(_TL_('Cancel'))}\r\n \r\n
\r\n ), [i18n, onClose, onSave]);\r\n\r\n const renderValidationErrors = useCallback(() => (\r\n
\r\n { validationErrors.map(message => {message}) }\r\n
\r\n ), [classes, validationErrors]);\r\n\r\n const onValidate = useCallback((result) => {\r\n const { data, messages } = result;\r\n const newInput = data.input || data.rule || data.label;\r\n setValidationErrors(messages);\r\n setInput(newInput);\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n \r\n
{i18n.getString(_TL_('Enter URLs or create rules to exclude non-commercial pages or sections of your website'))}.
\r\n
\r\n setSelectedOption(selected.key)}\r\n />\r\n { renderInputField() }\r\n
\r\n { renderValidationErrors() }\r\n 0}\r\n />\r\n \r\n
\r\n { urls.length > 0 && renderUrlTags() }\r\n { rules.length > 0 && renderRuleTags() }\r\n { labels.length > 0 && renderCustomLabelTags() }\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nFinalURLsEditor.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n finalUrlExpansions: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n isOpen: PropTypes.bool.isRequired,\r\n};\r\n","import React, { useCallback, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Button,\r\n Checkbox,\r\n} from '@fluentui/react-components';\r\nimport classNames from 'classnames';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { TurnOnAllAlert, FullyOptimizedAlert } from './alerts';\r\nimport { FinalUrlExpansionPreview } from './final-url-expansion-preview';\r\nimport { FinalURLsEditor } from './side-panel/final-url-expansion-editor';\r\n\r\nconst getAutoGeneratedAssetsStyles = () => ({\r\n root: {\r\n position: 'relative',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '12px',\r\n },\r\n OptionContainer: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '8px',\r\n },\r\n assetsOption: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '4px',\r\n '& label': {\r\n padding: '0px 0px 0px 8px',\r\n },\r\n '& .editorButton': {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'flex-start',\r\n paddingLeft: '28px',\r\n width: 'fit-content',\r\n },\r\n '& input[type=\"checkbox\"]': {\r\n boxSizing: 'border-box',\r\n cursor: 'inherit',\r\n height: '100%',\r\n margin: '0px',\r\n opacity: 0,\r\n position: 'absolute',\r\n top: '0px',\r\n },\r\n '& .fui-Checkbox__indicator': {\r\n margin: '0px',\r\n },\r\n '& .checkboxDescription': {\r\n paddingLeft: '28px',\r\n },\r\n },\r\n});\r\n\r\nexport const AutoGeneratedAssetsImpl = (props) => {\r\n const {\r\n i18n,\r\n finalUrlExpansions,\r\n options,\r\n onChange,\r\n } = props;\r\n const textAssetChecked = !options.autoGeneratedTextOptOut;\r\n const imageAssetChecked = !options.autoGeneratedImageOptOut;\r\n const finalUrlChecked = !options.finalUrlExpansionOptOut;\r\n\r\n const styles = useDefaultStyles(getAutoGeneratedAssetsStyles);\r\n const [toggleFinalURLsEditor, setToggleFinalURLsEditor] = useState(false);\r\n\r\n const onOpenFinalUrlEditor = useCallback(() => setToggleFinalURLsEditor(true), []);\r\n\r\n const renderAlert = useCallback(() => {\r\n if (textAssetChecked && imageAssetChecked && finalUrlChecked) {\r\n return ;\r\n }\r\n return ;\r\n }, [textAssetChecked, imageAssetChecked, finalUrlChecked]);\r\n\r\n const renderFinalUrlExpansionPreview = useCallback(() => {\r\n if (finalUrlChecked && finalUrlExpansions && finalUrlExpansions.length > 0) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n \r\n {i18n.getString(_TL_('Exclude some URLs'))}\r\n \r\n );\r\n }, [finalUrlChecked, finalUrlExpansions, onOpenFinalUrlEditor, i18n, onChange]);\r\n\r\n return (\r\n
\r\n {i18n.getString(_TL_('Microsoft Advertising will automatically generate relevant assets in combination with the assets you provide to maximize your ad performance. Choose which assets you’d like us to automatically generate.'))}\r\n { renderAlert() }\r\n
\r\n
\r\n onChange({ autoGeneratedTextOptOut: !data.checked })}\r\n />\r\n
{i18n.getString(_TL_('Generate text assets in combination with assets you provide.'))}
\r\n
\r\n
\r\n onChange({ autoGeneratedImageOptOut: !data.checked })}\r\n />\r\n
{i18n.getString(_TL_('Generate image assets pulled from your ads, business domain, and landing page in combination with image assets you provide.'))}
\r\n
\r\n
\r\n onChange({ finalUrlExpansionOptOut: !data.checked })}\r\n />\r\n
{i18n.getString(_TL_('Send potential customers to the most relevant URLs on your website when it’s likely to enhance ad performance.'))}
\r\n { renderFinalUrlExpansionPreview() }\r\n {toggleFinalURLsEditor && (\r\n setToggleFinalURLsEditor(false)}\r\n onChange={onChange}\r\n finalUrlExpansions={finalUrlExpansions}\r\n />\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nAutoGeneratedAssetsImpl.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n finalUrlExpansions: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\r\n options: PropTypes.shape({\r\n autoGeneratedTextOptOut: PropTypes.bool,\r\n autoGeneratedImageOptOut: PropTypes.bool,\r\n finalUrlExpansionOptOut: PropTypes.bool,\r\n }).isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useCallback, useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { withCustomValidation } from '@bingads-webui-react/validation';\r\nimport { ActivityContext } from '@bingads-webui-react/hoc-with-signal';\r\nimport { AutoGeneratedAssetsImpl } from './auto-generated-assets-impl';\r\n\r\nconst AutoGeneratedAssets = ({ validationProps, updateValidation }) => {\r\n const activity = useContext(ActivityContext);\r\n const i18n = useContext(I18nContext);\r\n const { data: { finalUrlExpansions, options } } = validationProps;\r\n const onChange = useCallback((newData) => {\r\n updateValidation([], newData);\r\n if (activity) {\r\n activity.signal(`onAutoGeneratedAssetsChange - ${JSON.stringify(newData)}`);\r\n }\r\n }, [updateValidation]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nAutoGeneratedAssets.propTypes = {\r\n validationProps: PropTypes.shape({\r\n data: PropTypes.shape({\r\n finalUrlExpansions: PropTypes.arrayOf(PropTypes.shape({})),\r\n options: PropTypes.shape({\r\n autoGeneratedTextOptOut: PropTypes.bool,\r\n autoGeneratedImageOptOut: PropTypes.bool,\r\n finalUrlExpansionOptOut: PropTypes.bool,\r\n }),\r\n }),\r\n }).isRequired,\r\n updateValidation: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const ValidatedAutoGeneratedAssets = withCustomValidation(AutoGeneratedAssets);\r\n","import { ComponentSettings } from '@bingads-webui-theme-2018/theme-fluent';\r\nimport CircleSolid from '../media/CircleSolid.svg';\r\nimport CircleDotted from '../media/CircleDotted.svg';\r\nimport DiamondSolid from '../media/DiamondSolid.svg';\r\nimport DiamondDotted from '../media/DiamondDotted.svg';\r\nimport Waterdrop from '../media/Waterdrop.svg';\r\n\r\nconst { getBlockerStyle } = ComponentSettings;\r\n\r\nexport const inlineChartContainerStyle = palette => ({\r\n flexShrink: 0,\r\n zIndex: 400,\r\n boxShadow: 'inset 0px 0.6px 1.8px rgba(0, 0, 0, 0.108), inset 0px 3.2px 7.2px rgba(0, 0, 0, 0.132)',\r\n '& .top-grid-form': {\r\n minWidth: 'initial',\r\n maxWidth: 'initial',\r\n },\r\n '& .chart-area-wrapper': {\r\n display: 'flex',\r\n\r\n '& .react-block-ui-none, .react-block-ui': {\r\n flexGrow: 1,\r\n },\r\n\r\n '& .inline-chart-container': {\r\n flexGrow: 1,\r\n paddingTop: 16,\r\n paddingLeft: 32,\r\n paddingRight: 32,\r\n paddingBottom: 22,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: 'auto !important',\r\n '& .highcharts-label-box.highcharts-tooltip-box': {\r\n opacity: '0 !important',\r\n },\r\n '& .tool-tip-value': {\r\n fontSize: 16,\r\n paddingLeft: 20,\r\n paddingTop: 2,\r\n },\r\n '& .primary-daterange': {\r\n color: palette.neutralPrimary,\r\n fontSize: 11,\r\n fallbacks: [\r\n {\r\n color: '#323130',\r\n },\r\n ],\r\n },\r\n '& .primary-start-date, & .comparison-start-date': {\r\n paddingLeft: 20,\r\n display: 'inline-block',\r\n fallbacks: [\r\n {\r\n paddingLeft: 20,\r\n },\r\n ],\r\n },\r\n '& .primary-end-date, & .comparison-end-date': {\r\n position: 'absolute',\r\n display: 'inline-block',\r\n right: '0',\r\n fallbacks: [\r\n {\r\n right: '0',\r\n },\r\n {\r\n position: 'absolute',\r\n },\r\n ],\r\n },\r\n '& .comparison-daterange': {\r\n color: palette.neutralSecondary,\r\n fontSize: 11,\r\n fallbacks: [\r\n {\r\n color: '#605E5C',\r\n },\r\n ],\r\n },\r\n '& .flex-chart-panel': {\r\n display: 'flex',\r\n paddingBottom: '16px',\r\n alignSelf: 'flex-end',\r\n },\r\n '& .chart-panel-left': {\r\n alignItems: 'flex-start',\r\n lineHeight: '19px',\r\n paddingTop: '6px',\r\n height: 38,\r\n },\r\n '& .chart-panel-right': {\r\n display: 'flex',\r\n flex: '1 1 auto',\r\n justifyContent: 'flex-end',\r\n alignItems: 'flex-start',\r\n '& .glyphicon-triangle-bottom': {\r\n fontSize: 12,\r\n marginLeft: 5,\r\n fontFamily: 'MsAds MDL2 Assets !important',\r\n float: 'right',\r\n marginRight: '0',\r\n height: '12px !important',\r\n width: '12px !important',\r\n },\r\n '& .glyphicon-triangle-bottom:before': {\r\n content: '\"\\\\E70D\" !important',\r\n },\r\n },\r\n '& .metrics-pickers': {\r\n display: 'flex',\r\n\r\n '& .metric-colors': {\r\n display: 'flex',\r\n },\r\n '& .metrics-vs': {\r\n margin: '0px 16px 0px 16px',\r\n paddingLeft: 0,\r\n paddingRight: 0,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n },\r\n '& .metric-color-line': {\r\n width: 12,\r\n height: 42,\r\n backgroundRepeat: 'no-repeat',\r\n },\r\n '& .show-comparison-line': {\r\n display: 'inline-block',\r\n },\r\n '& .hide-comparison-line': {\r\n display: 'none',\r\n },\r\n '& .comparison-color': {\r\n marginLeft: '4px',\r\n },\r\n '& .primary-metric .metric-color': {\r\n backgroundImage: `url(\"${CircleSolid}\")`,\r\n },\r\n '& .primary-metric .comparison-color': {\r\n backgroundImage: `url(\"${CircleDotted}\")`,\r\n },\r\n '& .secondary-metric .metric-color': {\r\n backgroundImage: `url(\"${DiamondSolid}\")`,\r\n },\r\n '& .secondary-metric .comparison-color': {\r\n backgroundImage: `url(\"${DiamondDotted}\")`,\r\n },\r\n '& .list-selector-container': {\r\n maxHeight: 400,\r\n overflow: 'auto',\r\n },\r\n },\r\n '& .granularity-picker, & .primary-metric, & .secondary-metric': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n alignSelf: 'center',\r\n height: '100%',\r\n '& .btn': {\r\n fontSize: 14,\r\n },\r\n '& .btn-default': {\r\n fontWeight: 'normal',\r\n },\r\n '& .dropdown-menu': {\r\n top: 'auto',\r\n position: 'absolute',\r\n minWidth: 110,\r\n whiteSpace: 'nowrap',\r\n\r\n '& .container': {\r\n padding: 0,\r\n },\r\n },\r\n '& .dropdown-toggle.btn': {\r\n border: 'none',\r\n width: '100%',\r\n height: '100%',\r\n paddingLeft: 8,\r\n paddingRight: 8,\r\n borderRadius: 2,\r\n },\r\n\r\n '& .ba-dropdown-selector': {\r\n position: 'relative',\r\n border: `1px solid ${palette.neutralSecondary}`,\r\n minWidth: 132,\r\n verticalAlign: 'baseline',\r\n marginLeft: 8,\r\n height: 30,\r\n borderRadius: 2,\r\n '& > button': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n },\r\n\r\n '& .selectedItem-data': {\r\n display: 'inline-block',\r\n marginRight: 5,\r\n },\r\n\r\n '& .comparison-container': {\r\n display: 'inline-block',\r\n },\r\n\r\n '& .show-selectedItem-percentage': {\r\n paddingLeft: 5,\r\n display: 'inline-block',\r\n },\r\n\r\n '& .hide-selectedItem-percentage': {\r\n padding: 0,\r\n margin: 0,\r\n display: 'none',\r\n },\r\n\r\n '& .ba-list-selector': {\r\n border: 'none',\r\n '& .empty-message': {\r\n position: 'absolute',\r\n padding: '5px 10px',\r\n },\r\n '& .list-selector-item': {\r\n padding: '5px 10px',\r\n margin: '0',\r\n '&:hover': {\r\n cursor: 'pointer',\r\n backgroundColor: '#f5f5f5',\r\n },\r\n '&.selected': {\r\n background: '#E7F0F6',\r\n },\r\n '& .item-actions': {\r\n float: 'right',\r\n },\r\n '& .inline-recommendation-grid-icon:before': {\r\n fontFamily: 'MsAds MDL2 Assets',\r\n content: '\"\\\\EA80\"',\r\n display: 'inline-block',\r\n fontWeight: 'normal',\r\n fontStyle: 'normal',\r\n textDecoration: 'inherit',\r\n speak: 'none',\r\n fontVariant: 'normal',\r\n textTransform: 'none',\r\n lineHeight: 1,\r\n WebkitFontSmoothing: 'antialiased',\r\n MozOsxFontSmoothing: 'grayscale',\r\n fontSize: 14,\r\n verticalAlign: 'middle',\r\n color: '#0078D4',\r\n paddingBottom: 2,\r\n },\r\n '& .inline-recommendation-grid-icon:hover': {\r\n cursor: 'pointer',\r\n },\r\n '& .inline-chart-option': {\r\n marginLeft: 5,\r\n },\r\n },\r\n },\r\n },\r\n\r\n '& .granularity-picker, & .secondary-metric': {\r\n '& .dropdown-menu': {\r\n left: 'auto',\r\n right: '0',\r\n },\r\n },\r\n\r\n '& .moving-average': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: '100%',\r\n fontStyle: 'normal',\r\n fontSize: 14,\r\n fontWeight: 'normal',\r\n marginLeft: 16,\r\n whiteSpace: 'nowrap',\r\n '& input[type=checkbox]': {\r\n height: 20,\r\n width: 20,\r\n },\r\n '& label': {\r\n display: 'inline-block',\r\n fontWeight: 'normal',\r\n '& input': {\r\n margin: '0px 5px 0 5px',\r\n lineHeight: 'normal',\r\n verticalAlign: 'middle',\r\n },\r\n },\r\n },\r\n '& .react-highchart-wrapper': {\r\n '& > div[role=\"region\"]': {\r\n overflow: 'visible !important',\r\n },\r\n },\r\n '& .highcharts-container': {\r\n overflow: 'visible !important',\r\n },\r\n '& .chart-container': {\r\n padding: '0',\r\n position: 'relative',\r\n },\r\n\r\n '& .balloon, & .balloonYellow, & .balloonUnknown': {\r\n position: 'absolute',\r\n top: -20,\r\n },\r\n '& .balloon, & .balloonYellow, & .balloonUnknown:hover': {\r\n cursor: 'pointer',\r\n },\r\n\r\n '& .fluc-image': {\r\n backgroundImage: `url(\"${Waterdrop}\")`,\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPositionX: 'left',\r\n backgroundPositionY: 'center',\r\n width: '28px',\r\n height: '38px',\r\n textAlign: 'center',\r\n paddingLeft: '1px !important',\r\n paddingTop: '11px !important',\r\n\r\n '&:before': {\r\n fontFamily: 'MsAds MDL2 Assets',\r\n content: '\"\\\\EA80\"',\r\n color: 'white',\r\n fontSize: 16,\r\n },\r\n },\r\n\r\n '& .fluc-lightbulb': {\r\n '&:before': {\r\n fontFamily: 'MsAds MDL2 Assets',\r\n content: '\"\\\\EA80\"',\r\n color: '#0078D4',\r\n fontSize: 16,\r\n },\r\n },\r\n\r\n '& .chart-no-data-container': {\r\n textAlign: 'center',\r\n borderLeft: '0 !important',\r\n borderRight: '0 !important',\r\n height: '120px',\r\n lineHeight: 'initial',\r\n paddingTop: 22,\r\n paddingBottom: 60,\r\n border: `solid 1px ${palette.neutralQuaternaryAlt}`,\r\n marginRight: 0,\r\n marginTop: 19,\r\n '& .chart-no-data-label': {\r\n marginLeft: 0,\r\n borderBottom: `solid 1px ${palette.neutralQuaternaryAlt}`,\r\n display: 'inline-block',\r\n height: '100%',\r\n width: '100%',\r\n },\r\n },\r\n '& .spinner': {\r\n paddingTop: 50,\r\n paddingBottom: 59,\r\n '& .spinner-icon': Object.assign(getBlockerStyle(30, palette), {\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n }),\r\n },\r\n '& .highcharts-label.highcharts-tooltip': {\r\n margin: '0 !important',\r\n width: 'auto !important',\r\n minWidth: '150px !important',\r\n height: 'auto !important',\r\n minHeight: '100px !important',\r\n '& > span:nth-of-type(1)': {\r\n fontFamily: 'Segoe UI !important',\r\n border: 'none',\r\n },\r\n },\r\n '& .perf-graph-tool-tip': {\r\n display: 'flex',\r\n boxShadow: '0 3.2px 7.2px 0 rgba(0,0,0,.132), 0 0.6px 1.8px 0 rgba(0,0,0,.108)',\r\n backgroundColor: 'rgba(255, 255, 255, 0.95)',\r\n padding: '11px 15px',\r\n '@supports (backdrop-filter: blur(60px))': {\r\n backdropFilter: 'blur(60px)',\r\n backgroundColor: 'rgba(255, 255, 255, 0.25)',\r\n },\r\n '& .charts-tooltip': {\r\n color: palette.neutralPrimary,\r\n fontSize: '12px',\r\n fontFamily: 'Segoe UI',\r\n display: 'inline-block',\r\n\r\n '& .primary, & .primary-comparison, & .movingaverage, & .movingaverage-comparison': {\r\n backgroundRepeat: 'no-repeat',\r\n backgroundSize: '12px 40px',\r\n height: '40px',\r\n '& .toolTipMetric': {\r\n height: 12,\r\n marginRight: 8,\r\n marginTop: 8,\r\n paddingLeft: 20,\r\n },\r\n },\r\n '& b': {\r\n fontWeight: 'normal',\r\n },\r\n '& .primary': {\r\n backgroundImage: `url(\"${CircleSolid}\")`,\r\n },\r\n '& .primary-comparison': {\r\n backgroundImage: `url(\"${DiamondSolid}\")`,\r\n },\r\n '& .movingaverage': {\r\n backgroundImage: `url(\"${CircleDotted}\")`,\r\n },\r\n '& .movingaverage-comparison': {\r\n backgroundImage: `url(\"${DiamondDotted}\")`,\r\n },\r\n },\r\n '& .charts-tooltip:nth-of-type(2)': {\r\n marginLeft: '16px !important',\r\n },\r\n },\r\n },\r\n },\r\n '& .bingads-popover': {\r\n zIndex: '100',\r\n },\r\n});\r\n","import _ from 'underscore';\r\nimport { useMemo, useContext } from 'react';\r\nimport { ServerContext } from '@bingads-webui-campaign-react/server-context';\r\n\r\nconst DEFAULT_OPTIONS = {};\r\n\r\nexport const useCustomerLevelVariables = () => {\r\n const serverContext = useContext(ServerContext);\r\n const { CurrentUser, CurrentCustomer } = serverContext || {};\r\n const { Id: customerId } = CurrentCustomer || {};\r\n const { Id: userId } = CurrentUser || {};\r\n\r\n return useMemo(() => ({\r\n locator: {\r\n descriptor: {\r\n uid: userId,\r\n cid: customerId,\r\n customer_id: customerId,\r\n },\r\n },\r\n }), [userId, customerId]);\r\n};\r\n\r\nexport const useAccountLevelVariables = (options = DEFAULT_OPTIONS) => {\r\n const serverContext = useContext(ServerContext);\r\n const { CurrentUser, CurrentAccount, CurrentCustomer } = serverContext || {};\r\n const { Id: customerId } = CurrentCustomer || {};\r\n const { Id: accountId } = CurrentAccount || {};\r\n const { Id: userId } = CurrentUser || {};\r\n\r\n return useMemo(() => (_.extend({}, options, {\r\n locator: {\r\n descriptor: {\r\n uid: userId,\r\n cid: customerId,\r\n aid: accountId,\r\n customer_id: customerId,\r\n account_id: accountId,\r\n },\r\n },\r\n })), [options, userId, customerId, accountId]);\r\n};\r\n\r\nexport const useAccountLevelVariablesWithAdvertiserCustomerId = (options = DEFAULT_OPTIONS) => {\r\n const serverContext = useContext(ServerContext);\r\n const { CurrentUser, CurrentAccount, CurrentCustomer } = serverContext || {};\r\n const { Id: currentCustomerId } = CurrentCustomer || {};\r\n const { Id: aid } = CurrentAccount || {};\r\n const { Id: uid } = CurrentUser || {};\r\n\r\n // get the customer id from the CurrentAccount instance\r\n const cid = _.get(CurrentAccount, 'AdvertiserCustomerID', currentCustomerId);\r\n\r\n return useMemo(() => ({\r\n ...options,\r\n locator: {\r\n descriptor: {\r\n uid,\r\n cid,\r\n aid,\r\n customer_id: cid,\r\n account_id: aid,\r\n },\r\n },\r\n }), [options, uid, cid, aid]);\r\n};\r\n\r\nexport const usePostponeReadVariables = lookupCacheByVariables => useMemo(\r\n () => (\r\n lookupCacheByVariables ?\r\n {\r\n fetch: {\r\n postponeRead: true,\r\n lookupCacheByVariables,\r\n },\r\n refetch: {\r\n lookupCacheByVariables,\r\n },\r\n mutation: {\r\n lookupCacheByVariables,\r\n },\r\n } :\r\n {\r\n fetch: {\r\n postponeRead: true,\r\n },\r\n }),\r\n [lookupCacheByVariables]\r\n);\r\n","import _ from 'underscore';\r\nimport { useContext, useMemo } from 'react';\r\nimport { ServerContext } from '@bingads-webui-campaign-react/server-context';\r\nimport { Constants } from '@bingads-webui-clientcenter/entity-utils';\r\n\r\nexport const getPilotValueWithSignUp = (serverContext, key) => {\r\n const ccuiPilotKey = key && key.replace(/^Is/, 'is');\r\n const ccDynamicPilotKey = key && key.replace(/^(is|Is)/, '').replace(/Enabled$/, '');\r\n // CCUIPilots only return by signup page\r\n const ccuiPilotValue = _.get(serverContext, ['CCUIPilots', ccuiPilotKey], false);\r\n const ccuiPilotValueWithDynamic = _.get(serverContext, ['CCUIPilots', 'dynamic', ccDynamicPilotKey], false);\r\n\r\n return ccuiPilotValue || ccuiPilotValueWithDynamic;\r\n};\r\n\r\nexport const getPilotValue = (serverContext, key) => {\r\n const cmuiPilotKey = key && key.replace(/^is/, 'Is');\r\n const uflPilotKey = key && key.replace(/^(is|Is)/, '').replace(/Enabled$/, ''); // ufl stands for Unified Feature Library\r\n\r\n const cmuiPilotValue = _.get(serverContext, ['Permissions', cmuiPilotKey], false);\r\n const uflPilotValue = _.get(serverContext, ['DynamicPermissions', uflPilotKey], false);\r\n\r\n const signupPilotValue = getPilotValueWithSignUp(serverContext, key);\r\n\r\n return cmuiPilotValue || uflPilotValue || signupPilotValue;\r\n};\r\n\r\nexport function usePilotsValue(key, onlySignup = false) {\r\n const serverContext = useContext(ServerContext);\r\n const getPilot = onlySignup ? getPilotValueWithSignUp : getPilotValue;\r\n const isPilotEnabled = useMemo(\r\n () => (key ? getPilot(serverContext, key) : false),\r\n [key, serverContext, getPilot]\r\n );\r\n\r\n return isPilotEnabled;\r\n}\r\n\r\nexport const useIsInternalUser = () => {\r\n const serverContext = useContext(ServerContext);\r\n if (serverContext.CurrentUser && !_.isUndefined(serverContext.CurrentUser.IsInternal)) {\r\n return serverContext.CurrentUser.IsInternal;\r\n }\r\n return serverContext.IsInternal || false;\r\n};\r\n\r\nexport const useIsReadOnlyUser = () => {\r\n const isReadOnly = usePilotsValue('IsReadOnlyUser');\r\n\r\n const isDSAEnforcementEnabled = usePilotsValue('DSAEnforcement');\r\n const serverContext = useContext(ServerContext);\r\n const enforcementActionId = _.get(serverContext, ['CurrentUser', 'EnforcementActionId']);\r\n const isDSAReadOnly = isDSAEnforcementEnabled && enforcementActionId === Constants.EnforcementActionType.ReadOnly;\r\n\r\n return isReadOnly || isDSAReadOnly;\r\n};\r\n","import React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { getId } from '@fluentui/react';\r\nimport { Label } from '@bingads-webui-react/fabric-control';\r\nimport { Dropdown } from '@bingads-webui-react/fabric-with-signal';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\n\r\nconst localizeText = (i18n, option) => ({\r\n ...option,\r\n text: i18n.getString(option.text),\r\n});\r\n\r\nexport const BidStrategyDropdown = ({\r\n bidStrategyOptions,\r\n onBidStrategyChange,\r\n bidStrategyValue,\r\n onRenderInlineHelp,\r\n defaultSelectedKey,\r\n bidStrategyLabel,\r\n}) => {\r\n const i18n = useContext(I18nContext);\r\n\r\n const dropdownId = getId('bid-strategy-dropdown');\r\n const dropdownLabelId = getId('label-dropdown');\r\n\r\n const onRenderLabel = () => (\r\n <>\r\n
\r\n \r\n {onRenderInlineHelp && onRenderInlineHelp()}\r\n
\r\n \r\n );\r\n\r\n const bidOptions = bidStrategyOptions.map(option => localizeText(i18n, option));\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nBidStrategyDropdown.propTypes = {\r\n bidStrategyOptions: PropTypes.arrayOf(PropTypes.shape({\r\n key: PropTypes.string.isRequired,\r\n text: PropTypes.string.isRequired,\r\n })).isRequired,\r\n onBidStrategyChange: PropTypes.func.isRequired,\r\n bidStrategyValue: PropTypes.string.isRequired,\r\n onRenderInlineHelp: PropTypes.func,\r\n defaultSelectedKey: PropTypes.string,\r\n bidStrategyLabel: PropTypes.string,\r\n};\r\n\r\nBidStrategyDropdown.defaultProps = {\r\n onRenderInlineHelp: null,\r\n defaultSelectedKey: null,\r\n bidStrategyLabel: _TL_('Bid Strategy'),\r\n};\r\n","export const MAX_CONVERSIONS = {\r\n key: 'maximizeConversions',\r\n text: _TL_('Maximize conversions'),\r\n marketingMetric: 'cpa',\r\n checkboxLabel: _TL_('Set a target cost per acquisition (CPA) (Optional)'),\r\n inputLabel: _TL_('Target cost per acquisition'),\r\n inputUnit: 'USD', // should overwrite this property with users currency\r\n minValue: 0.01,\r\n maxValue: 4000,\r\n type: 'MaxConversions',\r\n};\r\n\r\nexport const MAX_CONVERSIONS_SCHEMA = {\r\n name: 'Product Schema',\r\n type: 'object',\r\n properties: {\r\n [MAX_CONVERSIONS.marketingMetric]: {\r\n type: 'number',\r\n required: false,\r\n minimum: MAX_CONVERSIONS.minValue,\r\n maximum: MAX_CONVERSIONS.maxValue,\r\n },\r\n },\r\n};\r\n","export const MAX_CONVERSIONS_VALUE = {\r\n key: 'maximizeConversionsValue',\r\n text: _TL_('Maximize conversion value'),\r\n marketingMetric: 'roas',\r\n checkboxLabel: _TL_('Set a target return on ad spend (ROAS) (Optional)'),\r\n inputLabel: _TL_('Target return on ad spend'),\r\n inputUnit: '%',\r\n minValue: 1,\r\n maxValue: 100000,\r\n type: 'MaxConversionValue',\r\n};\r\n\r\nexport const MAX_CONVERSIONS_VALUE_SCHEMA = {\r\n name: 'Product Schema',\r\n type: 'object',\r\n properties: {\r\n [MAX_CONVERSIONS_VALUE.marketingMetric]: {\r\n type: 'number',\r\n required: false,\r\n minimum: MAX_CONVERSIONS_VALUE.minValue,\r\n maximum: MAX_CONVERSIONS_VALUE.maxValue,\r\n },\r\n },\r\n};\r\n","export const inputStyles = {\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n margin: 5,\r\n '& .ms-TextField-fieldGroup': {\r\n maxWidth: 94,\r\n },\r\n },\r\n};\r\n\r\nexport const labelStyles = {\r\n root: {\r\n display: 'inline-flex',\r\n },\r\n};\r\n\r\n","export const getTextFieldWithSuffixStyles = () => {\r\n const textFieldWithSuffix = {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n };\r\n\r\n return {\r\n textFieldWithSuffix,\r\n };\r\n};\r\n\r\nexport const unitStyles = {\r\n root: {\r\n alignSelf: 'center',\r\n },\r\n};\r\n","import React, { useState, useContext, useCallback, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Checkbox, Label, getId } from '@fluentui/react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { withValidation, withError } from '@bingads-webui-react/validation';\r\nimport { ValidationGroup } from '@bingads-webui-react/primitive-validation';\r\nimport { LegacyI18nContext } from '@bingads-webui-react/legacy-i18n-context';\r\nimport { MAX_CONVERSIONS } from './options/max-conversions';\r\nimport { MAX_CONVERSIONS_VALUE } from './options/max-conversions-value';\r\nimport { inputStyles, labelStyles } from './styles/get-additional-details-styles';\r\nimport { TextFieldWithSuffix } from './text-field-with-suffix';\r\n\r\nconst ValidatedInput = withError(withValidation(TextFieldWithSuffix));\r\n\r\nexport const AdditionalDetails = (props) => {\r\n const {\r\n // Checkbox\r\n defaultChecked,\r\n checkboxLabel,\r\n // Input\r\n inputLabel,\r\n inputUnit,\r\n bidStrategy,\r\n marketingMetricsValue,\r\n onMarketingMetricChange,\r\n // Validation\r\n schema,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n // ValidationGroup has dependency on legacyI18n\r\n const legacyI18n = useContext(LegacyI18nContext);\r\n\r\n const [checked, setChecked] = useState(defaultChecked);\r\n\r\n const onCheckboxChange = useCallback((e, val) => {\r\n setChecked(val);\r\n if (!val) {\r\n onMarketingMetricChange({ data: { cpa: null, roas: null } });\r\n }\r\n }, [onMarketingMetricChange]);\r\n\r\n const marketingMetricId = getId('marketing-metric-value');\r\n\r\n const onValidate = useCallback((result) => {\r\n onMarketingMetricChange(result);\r\n }, [onMarketingMetricChange]);\r\n\r\n const validationProps = useMemo(() => ({\r\n schema,\r\n onValidate,\r\n i18n: legacyI18n,\r\n data: marketingMetricsValue,\r\n }), [legacyI18n, marketingMetricsValue, onValidate, schema]);\r\n\r\n return (\r\n
\r\n \r\n {\r\n checked ? (\r\n \r\n \r\n {i18n.getString(inputLabel)}\r\n \r\n {/* TODO: Don't know why this won't work */}\r\n {/* */}\r\n {\r\n bidStrategy === MAX_CONVERSIONS.type && (\r\n \r\n )\r\n }\r\n {\r\n bidStrategy === MAX_CONVERSIONS_VALUE.type && (\r\n \r\n )\r\n }\r\n ) : null\r\n }\r\n
\r\n );\r\n};\r\n\r\n\r\nAdditionalDetails.propTypes = {\r\n defaultChecked: PropTypes.bool,\r\n checkboxLabel: PropTypes.string,\r\n inputLabel: PropTypes.string,\r\n inputUnit: PropTypes.string.isRequired,\r\n marketingMetricsValue: PropTypes.shape({\r\n cpa: PropTypes.number,\r\n roas: PropTypes.number,\r\n }).isRequired,\r\n bidStrategy: PropTypes.string.isRequired,\r\n data: PropTypes.shape({\r\n marketingMetric: PropTypes.number,\r\n }).isRequired,\r\n onMarketingMetricChange: PropTypes.func.isRequired,\r\n schema: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nAdditionalDetails.defaultProps = {\r\n defaultChecked: false,\r\n checkboxLabel: _TL_(''),\r\n inputLabel: _TL_(''),\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { TextField, Text } from '@fluentui/react';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { getTextFieldWithSuffixStyles, unitStyles } from './styles/get-text-field-with-suffix-styles';\r\n\r\nexport const TextFieldWithSuffix = (props) => {\r\n const { unit } = props;\r\n const classes = useDefaultStyles(getTextFieldWithSuffixStyles);\r\n\r\n return (\r\n
\r\n \r\n {unit}\r\n
\r\n );\r\n};\r\n\r\nTextFieldWithSuffix.propTypes = {\r\n unit: PropTypes.string.isRequired,\r\n};\r\n\r\n","import React, { useContext } from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport { DefaultButton } from '@fluentui/react';\r\nimport { MessageBar, MessageBarBody } from '@fluentui/react-message-bar';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\n\r\nexport const BidMessageBar = (props) => {\r\n const {\r\n buttonText,\r\n messageType,\r\n messageContent,\r\n onButtonClick,\r\n } = props;\r\n\r\n const i18n = useContext(I18nContext);\r\n return (\r\n \r\n \r\n {messageContent}\r\n {_.isFunction(onButtonClick) && }\r\n \r\n \r\n );\r\n};\r\n\r\nBidMessageBar.propTypes = {\r\n messageType: PropTypes.oneOf(['info', 'warning', 'success', 'error']),\r\n messageContent: PropTypes.string.isRequired,\r\n onButtonClick: PropTypes.func,\r\n buttonText: PropTypes.string,\r\n};\r\n\r\nBidMessageBar.defaultProps = {\r\n messageType: 'info',\r\n onButtonClick: undefined,\r\n buttonText: _TL_('Set a conversion goal'),\r\n};\r\n","import React from 'react';\r\nimport { Stack, Shimmer } from '@fluentui/react';\r\n\r\nexport const BidStrategyShimmer = () => (\r\n \r\n \r\n \r\n \r\n \r\n);\r\n","export const MANUAL_CPA = {\r\n key: 'manualCpa',\r\n text: _TL_('Manual CPI'),\r\n type: 'ManualCpa',\r\n};\r\n\r\nexport const MANUAL_CPA_SCHEMA = {\r\n name: 'Product Schema',\r\n type: 'object',\r\n properties: {},\r\n};\r\n","export const MANUAL_CPC = {\r\n key: 'manualCpc',\r\n text: _TL_('Manual CPC'),\r\n type: 'ManualCpc',\r\n};\r\n\r\nexport const MANUAL_CPC_SCHEMA = {\r\n name: 'Product Schema',\r\n type: 'object',\r\n properties: {},\r\n};\r\n","import {\r\n MAX_CONVERSIONS_VALUE,\r\n MAX_CONVERSIONS_VALUE_SCHEMA,\r\n} from './max-conversions-value';\r\nimport {\r\n MAX_CONVERSIONS,\r\n MAX_CONVERSIONS_SCHEMA,\r\n} from './max-conversions';\r\nimport {\r\n MANUAL_CPA,\r\n MANUAL_CPA_SCHEMA,\r\n} from './manual-cpa';\r\nimport {\r\n MANUAL_CPC,\r\n MANUAL_CPC_SCHEMA,\r\n} from './manual-cpc';\r\n\r\nexport const BID_STRATEGY_SCHEMA_MAP = {\r\n [MAX_CONVERSIONS.type]: MAX_CONVERSIONS_SCHEMA,\r\n [MAX_CONVERSIONS_VALUE.type]: MAX_CONVERSIONS_VALUE_SCHEMA,\r\n [MANUAL_CPA.type]: MANUAL_CPA_SCHEMA,\r\n [MANUAL_CPC.type]: MANUAL_CPC_SCHEMA,\r\n};\r\n\r\nexport const BID_STRATEGY_OPTIONS_MAP = {\r\n [MAX_CONVERSIONS.type]: MAX_CONVERSIONS,\r\n [MAX_CONVERSIONS_VALUE.type]: MAX_CONVERSIONS_VALUE,\r\n [MANUAL_CPA.type]: MANUAL_CPA,\r\n [MANUAL_CPC.type]: MANUAL_CPC,\r\n};\r\n","\r\nimport React, { useMemo, useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { BidStrategyDropdown } from '@bingads-webui-campaign-react/bid-strategy-dropdown';\r\nimport { TargetCpaWarningBanner } from '@bingads-webui-campaign-react/target-cpa-warning-banner';\r\nimport { InstrumentationContext } from '@bingads-webui-react/hoc-with-instrumentation';\r\n\r\nimport { AdditionalDetails } from './additional-details';\r\nimport { BidMessageBar } from './bid-message-bar';\r\nimport { BidStrategyShimmer } from './bid-strategy-shimmer';\r\nimport { getBidStrategySchema } from './options/use-bid-strategy-schema';\r\n\r\nexport const BidStrategyComponent = ({\r\n // Dropdown\r\n options,\r\n selectedBidStrategy,\r\n onBidStrategyChange,\r\n onRenderInlineDropdownHelp,\r\n // AdditionalDetails\r\n hideAdditionalDetails,\r\n defaultChecked,\r\n marketingMetricsValue,\r\n inputUnit,\r\n bidRange,\r\n onMarketingMetricChange,\r\n // MessageBar\r\n messageBarType,\r\n messageContent,\r\n onButtonClick,\r\n buttonText,\r\n isLoading,\r\n hideMessage,\r\n // TargetCPAWarningBanner\r\n withTargetCpaWarning,\r\n budgetAmount,\r\n scenario,\r\n}) => {\r\n const instrumentation = useContext(InstrumentationContext);\r\n const activity = useMemo(() => {\r\n const { activity: scenarioActivity } = instrumentation.createScenarioAndActivity({\r\n scenarioName: scenario,\r\n activityName: 'BidStrategyComponent',\r\n });\r\n return scenarioActivity;\r\n }, [scenario, instrumentation]);\r\n const schema = useMemo(() => getBidStrategySchema(options, bidRange), [options, bidRange]);\r\n\r\n const bidStrategyConfig = options.find(({ type }) => type === selectedBidStrategy);\r\n const {\r\n key: selectedKey,\r\n inputLabel,\r\n inputUnit: defaultUnit,\r\n checkboxLabel,\r\n } = bidStrategyConfig || {};\r\n\r\n return (\r\n isLoading\r\n ? \r\n : (\r\n
\r\n \r\n {!hideAdditionalDetails && }\r\n {withTargetCpaWarning && }\r\n {!hideMessage && }\r\n
\r\n )\r\n );\r\n};\r\n\r\nBidStrategyComponent.propTypes = {\r\n options: PropTypes.arrayOf(PropTypes.shape({\r\n key: PropTypes.string.isRequired,\r\n text: PropTypes.string.isRequired,\r\n inputLabel: PropTypes.string.isRequired,\r\n inputUnit: PropTypes.string.isRequired,\r\n checkboxLabel: PropTypes.string.isRequired,\r\n })).isRequired,\r\n onBidStrategyChange: PropTypes.func.isRequired,\r\n messageBarType: PropTypes.string,\r\n messageContent: PropTypes.string.isRequired,\r\n onButtonClick: PropTypes.func,\r\n buttonText: PropTypes.string,\r\n onRenderInlineDropdownHelp: PropTypes.func,\r\n onMarketingMetricChange: PropTypes.func.isRequired,\r\n isLoading: PropTypes.bool,\r\n hideAdditionalDetails: PropTypes.bool,\r\n defaultChecked: PropTypes.bool,\r\n marketingMetricsValue: PropTypes.shape({\r\n cpa: PropTypes.number,\r\n roas: PropTypes.number,\r\n }).isRequired,\r\n bidRange: PropTypes.shape({\r\n FloorValue: PropTypes.number,\r\n CeilingValue: PropTypes.number,\r\n }),\r\n selectedBidStrategy: PropTypes.string.isRequired,\r\n inputUnit: PropTypes.string,\r\n hideMessage: PropTypes.bool,\r\n budgetAmount: PropTypes.number,\r\n withTargetCpaWarning: PropTypes.bool,\r\n scenario: PropTypes.string,\r\n};\r\n\r\nBidStrategyComponent.defaultProps = {\r\n messageBarType: undefined,\r\n onButtonClick: undefined,\r\n buttonText: undefined,\r\n onRenderInlineDropdownHelp: _.noop,\r\n isLoading: false,\r\n hideAdditionalDetails: false,\r\n defaultChecked: false,\r\n inputUnit: 'USD',\r\n hideMessage: false,\r\n budgetAmount: undefined,\r\n withTargetCpaWarning: false,\r\n scenario: '',\r\n bidRange: null,\r\n};\r\n","import _ from 'underscore';\r\n\r\nimport {\r\n MAX_CONVERSIONS,\r\n} from './max-conversions';\r\nimport { BID_STRATEGY_SCHEMA_MAP } from './bid-strategy-options-map';\r\n\r\nexport const getBidStrategySchema = (options, bidRange) => {\r\n const properties = _.reduce(options, (acc, option) => {\r\n const schemaProperty = BID_STRATEGY_SCHEMA_MAP[option.type];\r\n\r\n // Update bid range (if any) for target CPA instead of using default range.\r\n // We are re-using the same logic for target CPA and max conversions from legacy bid strategy.\r\n // https://msasg.visualstudio.com/Bing_Ads/_git/AdsAppsCampaignUI?path=/private/campaign-legacy/packages/bidding-strategy/viewmodel/setting.js&version=GBmaster&line=68&lineEnd=72&lineStartColumn=1&lineEndColumn=1&lineStyle=plain&_a=contents\r\n if (schemaProperty && option.type === MAX_CONVERSIONS.type && bidRange) {\r\n schemaProperty.properties[MAX_CONVERSIONS.marketingMetric].minimum = bidRange.FloorValue;\r\n schemaProperty.properties[MAX_CONVERSIONS.marketingMetric].maximum = bidRange.CeilingValue * 4;\r\n }\r\n\r\n return !schemaProperty ? acc : {\r\n ...acc,\r\n ...schemaProperty.properties,\r\n };\r\n }, {});\r\n\r\n return {\r\n name: 'Product Schema',\r\n type: 'object',\r\n properties,\r\n };\r\n};\r\n","import { find, reduce, groupBy, map, each, clone } from 'underscore';\r\n\r\nconst formatOptions = (options) => {\r\n const groupedByCategoryId = groupBy(options, 'CategoryId');\r\n let idItr = -1;\r\n\r\n const getNextId = () => {\r\n idItr += 1;\r\n\r\n return idItr;\r\n };\r\n\r\n const formatted = map(groupedByCategoryId, optionGroup => ({\r\n id: getNextId(),\r\n categoryId: optionGroup[0].CategoryId,\r\n name: optionGroup[0].CategoryName,\r\n state: {\r\n expanded: true,\r\n disabled: true,\r\n },\r\n children: map(optionGroup, option => ({\r\n id: getNextId(),\r\n optionId: option.Id,\r\n name: option.FriendlyName,\r\n })),\r\n }));\r\n\r\n return formatted;\r\n};\r\n\r\nconst getSelectionFromTreeNodes = (nodes) => {\r\n const selections = [];\r\n each(nodes, (parentNode) => {\r\n each(parentNode.children, (node) => {\r\n if (node.state && node.state.checked) {\r\n selections.push({\r\n CategoryId: parentNode.categoryId,\r\n TargetOptionId: node.optionId,\r\n });\r\n }\r\n });\r\n });\r\n\r\n return selections;\r\n};\r\n\r\nconst getSelectionFromCriterions = criterions => map(\r\n criterions,\r\n (item) => {\r\n if (item.Criterion.ContextualTarget) {\r\n return {\r\n CategoryId: item.Criterion.ContextualTarget.CategoryId,\r\n TargetOptionId: item.Criterion.ContextualTarget.TargetOptionId,\r\n CriterionId: item.Id,\r\n };\r\n }\r\n return {\r\n CategoryId: item.Criterion.CategoryId,\r\n TargetOptionId: item.Criterion.TargetOptionId,\r\n CriterionId: item.Id,\r\n };\r\n }\r\n);\r\n\r\nconst applySelectionToTreeNodes = (nodes, selections) => {\r\n const allChildren = reduce(nodes, (memo, cur) => memo.concat(cur.children), []);\r\n each(selections, (selection) => {\r\n const targetOptionNode = find(allChildren, node => node.optionId === selection.TargetOptionId);\r\n\r\n if (targetOptionNode) {\r\n targetOptionNode.state = {\r\n checked: true,\r\n };\r\n }\r\n });\r\n};\r\n\r\nconst selectionComparer = (selection1, selection2) => selection1.CategoryId === selection2.CategoryId && selection1.TargetOptionId === selection2.TargetOptionId;\r\n\r\nconst onlyInLeft = (left, right, compareFunction) =>\r\n left.filter(leftValue =>\r\n !right.some(rightValue =>\r\n compareFunction(leftValue, rightValue)));\r\n\r\nconst getSelectionsByComparison = (selections, newSelections) => {\r\n const addedSelections = onlyInLeft(newSelections, selections, selectionComparer);\r\n const removedSelection = onlyInLeft(selections, newSelections, selectionComparer);\r\n\r\n return {\r\n added: addedSelections,\r\n removed: removedSelection,\r\n };\r\n};\r\n\r\nconst getContextualTargetInfo = (selections, newSelections) => {\r\n const { added, removed } = getSelectionsByComparison(selections, newSelections);\r\n const removedWithStatusUpdate = map(removed, (item) => {\r\n const copied = clone(item);\r\n copied.IsRemoved = true;\r\n\r\n return copied;\r\n });\r\n\r\n const combinedSelectionWithStatus = [...added, ...removedWithStatusUpdate];\r\n\r\n // Handle the deletion.\r\n return map(combinedSelectionWithStatus, (selection) => {\r\n const criterion = {\r\n Criterion: {\r\n BidAdjustment: 0,\r\n ContextualTarget: {\r\n CategoryId: selection.CategoryId,\r\n TargetOptionId: selection.TargetOptionId,\r\n },\r\n Type: 'ContextualTarget',\r\n },\r\n CriterionType: 'ContextualTarget',\r\n };\r\n\r\n if (selection.IsRemoved) {\r\n criterion.Status = 'Deleted';\r\n criterion.Id = selection.CriterionId;\r\n }\r\n\r\n return criterion;\r\n });\r\n};\r\n\r\nexport {\r\n formatOptions,\r\n getSelectionFromTreeNodes,\r\n getSelectionFromCriterions,\r\n applySelectionToTreeNodes,\r\n getContextualTargetInfo,\r\n};\r\n","import { result } from 'underscore';\r\nimport { odata } from '@bingads-webui/http-util';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\nimport { formatOptions } from './contextual-options-helper';\r\n\r\nconst getContextualRawAsync = async () => {\r\n const cid = result(config.get('CurrentCustomer'), 'Id');\r\n const aid = result(config.get('CurrentAccount'), 'Id');\r\n const url = `${config.get('odata.url')}${config.get('odata.path')}/Customers(${cid})/Accounts(${aid})/ContextualOptions`;\r\n\r\n return odata.get(url, { oDataToken: config.get('odata.token') });\r\n};\r\n\r\nconst getContextualOptionsAsync = async () => getContextualRawAsync().then(response => formatOptions(response.value));\r\n\r\nexport { getContextualRawAsync, getContextualOptionsAsync };\r\n","import React, { useState, useEffect } from 'react';\r\nimport { reduce, isEmpty } from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport { TreeView, CheckBoxNode } from '@bingads-webui-react/tree-view';\r\nimport { Button, Glyphicon } from '@bingads-webui-react/primitive';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { getContextualOptionsAsync } from './contextual-repository';\r\nimport { getContextualTargetStyles } from './contextual-target-styles';\r\nimport { getSelectionFromTreeNodes, applySelectionToTreeNodes } from './contextual-options-helper';\r\n\r\nconst getClassNames = node => [`checkbox-node-${node.id}`];\r\n\r\nconst ContextualTarget = (props) => {\r\n const {\r\n i18n,\r\n classes,\r\n onContextualSelectionChange,\r\n contextualSelection,\r\n hideHeader,\r\n initialNodes,\r\n setInitialNodes,\r\n } = props;\r\n const [nodes, setNodes] = useState(initialNodes || []);\r\n\r\n const selectedNodes = nodes.filter(node => node.children.some(child => child.state && child.state.checked));\r\n\r\n const selectedNodesCount = reduce(\r\n selectedNodes,\r\n (memo, node) => memo + node.children.filter(child => child.state && child.state.checked).length,\r\n 0\r\n );\r\n\r\n const onSelectionRemove = (node) => {\r\n // eslint-disable-next-line no-param-reassign\r\n node.state = { checked: false };\r\n\r\n if (initialNodes) {\r\n // if we get nodes from props, we should not modify them\r\n setInitialNodes([...initialNodes]);\r\n } else {\r\n setNodes([...nodes]);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (isEmpty(nodes)) {\r\n getContextualOptionsAsync().then((options) => {\r\n // apply initial selection state only once for initial load\r\n applySelectionToTreeNodes(options, contextualSelection);\r\n setNodes(options);\r\n });\r\n } else {\r\n applySelectionToTreeNodes(nodes, contextualSelection);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n useEffect(() => {\r\n const selection = getSelectionFromTreeNodes(nodes);\r\n\r\n onContextualSelectionChange(selection);\r\n }, [nodes, onContextualSelectionChange]);\r\n\r\n const onChange = (changedNodes) => {\r\n if (initialNodes) {\r\n setInitialNodes(changedNodes);\r\n } else {\r\n setNodes(changedNodes);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {!hideHeader && (

{ i18n.getString(_TL_('Contextual Targets')) }

)}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n { i18n.getString(_TL_('Selected Targets')) } : { selectedNodesCount }\r\n \r\n
\r\n {\r\n selectedNodes.map(parentNode => (\r\n
\r\n
{parentNode.name}
\r\n
\r\n {\r\n parentNode.children.map((childNode) => {\r\n if (childNode.state && childNode.state.checked) {\r\n return (\r\n onSelectionRemove(childNode)}\r\n key={childNode.id}\r\n >\r\n {childNode.name.split(':', 2)[1]}\r\n \r\n \r\n );\r\n }\r\n return null;\r\n })\r\n }\r\n
\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n );\r\n};\r\n\r\nContextualTarget.propTypes = {\r\n classes: PropTypes.shape({\r\n root: PropTypes.string.isRequired,\r\n treeViewContainer: PropTypes.string.isRequired,\r\n contextualTargetTitle: PropTypes.string.isRequired,\r\n targetsContainer: PropTypes.string.isRequired,\r\n selectionContainer: PropTypes.string.isRequired,\r\n }).isRequired,\r\n onContextualSelectionChange: PropTypes.func.isRequired,\r\n i18n: PropTypes.shape({ getString: PropTypes.func }).isRequired,\r\n contextualSelection: PropTypes.arrayOf(PropTypes.shape({\r\n CategoryId: PropTypes.number.isRequired,\r\n TargetOptionId: PropTypes.number.isRequired,\r\n CriterionId: PropTypes.number.isRequired,\r\n })).isRequired,\r\n hideHeader: PropTypes.bool,\r\n initialNodes: PropTypes.shape({}),\r\n setInitialNodes: PropTypes.func,\r\n};\r\n\r\nContextualTarget.defaultProps = {\r\n hideHeader: false,\r\n initialNodes: null,\r\n setInitialNodes: () => {},\r\n};\r\n\r\nconst ContextualTargetWithStyle = withDefaultStyles(ContextualTarget, getContextualTargetStyles);\r\n\r\nexport { ContextualTarget, ContextualTargetWithStyle };\r\n","export const getContextualTargetStyles = () => ({\r\n root: {\r\n marginTop: 20,\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n justifyContent: 'space-between',\r\n maxWidth: '1100px',\r\n },\r\n targetsContainer: {\r\n flex: '45%',\r\n border: '1px solid gray',\r\n paddingLeft: 12,\r\n minWidth: '550px',\r\n },\r\n treeViewContainer: {\r\n '& .checkbox-inline.disabled': {\r\n paddingLeft: 0,\r\n '& input': {\r\n display: 'none',\r\n },\r\n '& span': {\r\n color: 'black',\r\n fontWeight: 'bold',\r\n },\r\n },\r\n },\r\n selectionContainer: {\r\n flex: '45%',\r\n border: '1px solid gray',\r\n padding: '5px 10px',\r\n marginLeft: 12,\r\n '& .selectedTargetsLabel': {\r\n fontSize: '16px',\r\n fontWeight: 'bold',\r\n margin: '10px 0px',\r\n },\r\n '& .selectedTargetButton.btn-default': {\r\n padding: '2px 10px',\r\n paddingRight: '3px',\r\n height: 'unset',\r\n '& .iconba.iconba-Cancel': {\r\n top: 0,\r\n fontWeight: 'bold',\r\n },\r\n marginLeft: '5px',\r\n marginBottom: '5px',\r\n },\r\n '& .categoryName': {\r\n fontSize: '14px',\r\n fontWeight: '700',\r\n marginTop: '10px',\r\n marginBottom: '2px',\r\n },\r\n '& .selectedNodesContainer': {\r\n paddingTop: '5px',\r\n },\r\n },\r\n contextualTargetTitle: {\r\n flex: '100%',\r\n },\r\n});\r\n","import React, { useCallback, useEffect, useState } from 'react';\r\nimport { isEqual } from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport { withCustomValidation } from '@bingads-webui-react/validation';\r\nimport { getContextualOptionsAsync } from './contextual-repository';\r\nimport { applySelectionToTreeNodes } from './contextual-options-helper';\r\n\r\nimport { ContextualTarget } from './index';\r\n\r\nexport const ValidatedContextualTargetInternal = ({ updateValidation, validationProps, ...rest }) => {\r\n const { data = {} } = validationProps || {};\r\n\r\n const { contextualTargets: contextualTargetsFromProps = [] } = data;\r\n\r\n const [targets, setTargets] = useState(contextualTargetsFromProps);\r\n\r\n const [nodes, setNodes] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n\r\n const onDataChange = useCallback((result) => {\r\n const newData = {\r\n contextualTargets: result,\r\n };\r\n\r\n updateValidation([], isEqual(newData, data) ? data : newData);\r\n\r\n if (!isEqual(result, targets)) {\r\n setTargets(result);\r\n applySelectionToTreeNodes(nodes, result);\r\n setNodes([...nodes]);\r\n }\r\n }, [data, nodes, targets, updateValidation]);\r\n\r\n useEffect(() => {\r\n getContextualOptionsAsync().then((options) => {\r\n setNodes(options);\r\n setIsLoading(false);\r\n });\r\n }, []);\r\n\r\n return (\r\n <>\r\n {\r\n !isLoading && \r\n }\r\n \r\n );\r\n};\r\n\r\nValidatedContextualTargetInternal.propTypes = {\r\n updateValidation: PropTypes.func.isRequired,\r\n validationProps: PropTypes.shape({\r\n contextualTargets: PropTypes.shape({}).isRequired,\r\n }).isRequired,\r\n};\r\n\r\nexport const ValidatedContextualTarget = withCustomValidation(ValidatedContextualTargetInternal);\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { useState } from 'react';\r\nimport { FontIcon, Stack, Link, SearchBox } from '@fluentui/react';\r\n\r\nexport const DoubleListBox = (props) => {\r\n const { data, selectorHeader } = props;\r\n\r\n const [options, setOptions] = useState(data);\r\n const [searchQuery, setQuery] = useState('');\r\n\r\n function notify() {\r\n props.onChange(options.filter(option => option.selected));\r\n }\r\n\r\n const select = (option) => {\r\n option.selected = true; // eslint-disable-line no-param-reassign\r\n setOptions([...options]);\r\n\r\n notify();\r\n };\r\n\r\n const deselect = (option) => {\r\n option.selected = false; // eslint-disable-line no-param-reassign\r\n setOptions([...options]);\r\n\r\n notify();\r\n };\r\n\r\n const removeAll = () => {\r\n // eslint-disable-next-line no-return-assign\r\n options.filter(item => item.selected).forEach(option => option.selected = false); // eslint-disable-line no-param-reassign\r\n setOptions([...options]);\r\n\r\n notify();\r\n };\r\n\r\n const selectAll = () => {\r\n // eslint-disable-next-line no-return-assign\r\n options.forEach(option => option.selected = true); // eslint-disable-line no-param-reassign\r\n setOptions([...options]);\r\n\r\n notify();\r\n };\r\n\r\n const onSearch = (query) => {\r\n setQuery(query.toLowerCase());\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
{selectorHeader}
\r\n Select all\r\n
\r\n\r\n
\r\n {options.filter(option => option.name.toLowerCase().includes(searchQuery)).map(item => (\r\n select(item)} styles={{ root: { cursor: 'pointer' } }} horizontal horizontalAlign=\"space-between\" tokens={{ padding: 5 }} >\r\n
{item.name}
\r\n
{!item.selected && }
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
Selected: {options.filter(item => item.selected).length}
\r\n Remove all\r\n
\r\n {options.filter(item => item.selected).map(item => (\r\n deselect(item)} styles={{ root: { cursor: 'pointer' } }} horizontal horizontalAlign=\"space-between\" tokens={{ padding: 5 }} >\r\n
{item.name}
\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n","export const aa = 1;\r\n\r\nexport const adUnits = [{\r\n key: 11730599,\r\n name: 'AMC',\r\n selected: false,\r\n}, {\r\n key: 11730607,\r\n name: 'ntp_banner',\r\n selected: false,\r\n}, {\r\n key: 11728888,\r\n name: 'US_Edge_NTP_Amplify_Coachmar',\r\n selected: false,\r\n}, {\r\n key: 11726287,\r\n name: 'US_MSN_Edge_NTP_Amplify_river',\r\n selected: false,\r\n}, {\r\n key: 11726288,\r\n name: 'US_MSN_Edge_NTP_Amplify_rr',\r\n selected: false,\r\n}, {\r\n key: 11726289,\r\n name: 'US_winweb_Amplify_river ',\r\n selected: false,\r\n}, {\r\n key: 11726290,\r\n name: 'US_winweb_Amplify_rr ',\r\n selected: false,\r\n}, {\r\n key: 11730596,\r\n name: 'Windows Action Center ',\r\n selected: false,\r\n}, {\r\n key: 11730598,\r\n name: 'Windows Spotlight ',\r\n selected: false,\r\n}, {\r\n key: 11730597,\r\n name: 'Windows Start Menu ',\r\n selected: false,\r\n}, {\r\n key: 11730608,\r\n name: 'windows_10_feed',\r\n selected: false,\r\n}, {\r\n key: 11730609,\r\n name: 'windows_11_feed',\r\n selected: false,\r\n}, {\r\n key: 198842086,\r\n name: 'Edge Marketing Banner',\r\n selected: false,\r\n}];\r\n","import { result, map } from 'underscore';\r\nimport { odata } from '@bingads-webui/http-util';\r\nimport config from '@bingads-webui-component-legacy/config/index';\r\n\r\nexport const getAdUnitData = async () => {\r\n const cid = result(config.get('CurrentCustomer'), 'Id');\r\n const aid = result(config.get('CurrentAccount'), 'Id');\r\n const url = `${config.get('odata.url')}${config.get('odata.path')}/Customers(${cid})/Accounts(${aid})/AdUnit`;\r\n\r\n return odata.get(url, { oDataToken: config.get('odata.token') })\r\n .then(response => map(response.value, item => ({ key: item.Key, name: item.Name })));\r\n};\r\n\r\nconst getTriggerI18nMapping = i18n => ({\r\n NoTrigger: i18n.getString(_TL_('No trigger')),\r\n UserIdle5Seconds: i18n.getString(_TL_('User Idle (5 seconds)')),\r\n AppOpenEdge: i18n.getString(_TL_('App Open - Edge')),\r\n AppOpenExcel: i18n.getString(_TL_('App Open - Excel')),\r\n AppOpenExcel2016: i18n.getString(_TL_('App Open - Excel 2016')),\r\n AppOpenPowerPoint: i18n.getString(_TL_('App Open - Power Point')),\r\n AppOpenPowerPoint2016: i18n.getString(_TL_('App Open - Power Point 2016')),\r\n AppOpenWordAll: i18n.getString(_TL_('App Open - Word all')),\r\n AppClosePhotoApp: i18n.getString(_TL_('App Close - Photo app')),\r\n UserIdle30Seconds: i18n.getString(_TL_('User Idle (30 seconds)')),\r\n UserIdle5Min: i18n.getString(_TL_('User Idle (5 min)')),\r\n AppClosedOneDrive: i18n.getString(_TL_('App Closed - OneDrive')),\r\n AppClosedSettings: i18n.getString(_TL_('App Closed - Settings')),\r\n AppOpenOneDrive: i18n.getString(_TL_('App Open - OneDrive')),\r\n AppOpenSettings: i18n.getString(_TL_('App Open - Settings')),\r\n AppOpenStore: i18n.getString(_TL_('App Open - Store')),\r\n AppOpenWord2016: i18n.getString(_TL_('App Open - Word 2016')),\r\n AppOpenXbox: i18n.getString(_TL_('App Open - Xbox')),\r\n CustomerOpensEdge: i18n.getString(_TL_('Customer opens edge')),\r\n DeviceUnlock: i18n.getString(_TL_('Device unlock')),\r\n EdgeExtensionInstalled: i18n.getString(_TL_('Edge Extension installed')),\r\n UserAddsFavorite: i18n.getString(_TL_('User adds Favorite')),\r\n UserClosesATabAndHasAtLeast3TabsOpen: i18n.getString(_TL_('User closes a tab and has at least 3 tabs open')),\r\n UserOpensPhotosApp: i18n.getString(_TL_('User opens photos app')),\r\n});\r\n\r\nexport const getTriggerIdsData = async (i18n, isBoostTriggerEnabled) => {\r\n if (!isBoostTriggerEnabled) {\r\n return [];\r\n }\r\n\r\n const cid = result(config.get('CurrentCustomer'), 'Id');\r\n const aid = result(config.get('CurrentAccount'), 'Id');\r\n const url = `${config.get('odata.url')}${config.get('odata.path')}/Customers(${cid})/Accounts(${aid})/BoostTriggers`;\r\n const i18nMapping = getTriggerI18nMapping(i18n);\r\n\r\n const data = odata.get(url, { oDataToken: config.get('odata.token') });\r\n\r\n return data.then(response => map(response.value, item => ({ key: String(item.Key), text: i18nMapping[item.Name] || item.Name })));\r\n};\r\n\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _, { filter, get } from 'underscore';\r\nimport { Dropdown } from '@fluentui/react';\r\nimport Promise from 'bluebird';\r\nimport config from '@bingads-webui-component-legacy/config';\r\nimport { adUnits } from './placements';\r\nimport { DoubleListBox } from './double-list-box';\r\nimport { getAdUnitData, getTriggerIdsData } from './placement-repository';\r\n\r\n\r\nconst amplifyPublisherId = 251978541;\r\nconst NoTriggerId = 0;\r\n\r\nexport class BoostPlacementTarget extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n const selectedTrigger = get(this.props, ['boostSetting', 'triggerIds', '0'], NoTriggerId);\r\n const permissions = config.get('Permissions') || {};\r\n this.isBoostTriggerEnabled = permissions.IsAmplifyEnabled && permissions.dynamic && permissions.dynamic.EnableBoostTriggerSetting;\r\n\r\n this.state = {\r\n selectedOptions: [],\r\n options: [],\r\n triggerOptions: [],\r\n selectedTrigger: this.isBoostTriggerEnabled ? String(selectedTrigger) : null,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const isBoostAdUnitAPIEnabled = _.result(config.get('Permissions'), 'IsBoostAdUnitAPIEnabled', false);\r\n const p$adUnits = isBoostAdUnitAPIEnabled ? getAdUnitData() : Promise.resolve(adUnits);\r\n\r\n p$adUnits.then((data) => {\r\n const selectionOptions = data.map(adUnit => ({\r\n ...adUnit,\r\n selected: get(this.props, ['boostSetting', 'adUnitIds'], []).includes(adUnit.key),\r\n }));\r\n\r\n const selectedOptions = filter(selectionOptions, option => option.selected === true);\r\n\r\n this.setState({\r\n selectedOptions,\r\n options: selectionOptions,\r\n }, () => {\r\n this.props.onDataChange(this.getData());\r\n });\r\n });\r\n\r\n getTriggerIdsData(this.props.i18n, this.isBoostTriggerEnabled).then((data) => {\r\n this.setState({\r\n triggerOptions: data,\r\n });\r\n });\r\n }\r\n\r\n onChange = (options) => {\r\n this.setState({ selectedOptions: options }, () => {\r\n this.props.onDataChange(this.getData());\r\n });\r\n };\r\n\r\n onChangeTrigger = (event, option) => {\r\n this.setState({ selectedTrigger: option.key }, () => {\r\n this.props.onDataChange(this.getData());\r\n });\r\n };\r\n\r\n getData = () => {\r\n const { selectedOptions, selectedTrigger } = this.state;\r\n const result = {\r\n BoostAdunitIds: '',\r\n BoostPublisherIds: '',\r\n BoostAccountIds: '',\r\n BoostTriggerIds: '',\r\n };\r\n\r\n if (selectedOptions.length > 0) {\r\n result.BoostAdunitIds = selectedOptions.map(option => option.key).join(';');\r\n } else {\r\n // when no explicit targets selected, send amplify publisher\r\n result.BoostPublisherIds = String(amplifyPublisherId);\r\n }\r\n\r\n if (selectedTrigger) {\r\n result.BoostTriggerIds = selectedTrigger;\r\n }\r\n\r\n return result;\r\n };\r\n\r\n render() {\r\n const { i18n, hideHeader } = this.props;\r\n const { options, triggerOptions } = this.state;\r\n\r\n const style = {\r\n borderTop: '1px solid black',\r\n marginTop: 20,\r\n };\r\n\r\n return (\r\n
\r\n {!hideHeader && (

Placement Targeting

)}\r\n
{i18n.getString(_TL_('Show your Ad in only the selected placements. Choose the Placement Tags you want to target.'))}
\r\n { options.length > 0 &&\r\n \r\n }\r\n\r\n {triggerOptions.length > 0 &&\r\n <>\r\n
\r\n \r\n \r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nBoostPlacementTarget.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n boostSetting: PropTypes.shape({\r\n adUnitIds: PropTypes.arrayOf(PropTypes.string),\r\n }),\r\n hideHeader: PropTypes.bool,\r\n onDataChange: PropTypes.func,\r\n};\r\n\r\nBoostPlacementTarget.defaultProps = {\r\n boostSetting: {\r\n adUnitIds: [],\r\n },\r\n hideHeader: false,\r\n onDataChange: _.noop,\r\n};\r\n\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport { withCustomValidation } from '@bingads-webui-react/validation';\r\nimport { BoostPlacementTarget } from './boost-placement-target-container';\r\n\r\nexport const placementTargetingDetails = ({ BoostAdunitIds, i18n }) => {\r\n if (!BoostAdunitIds || (_.isArray(BoostAdunitIds) && BoostAdunitIds.length === 0)) {\r\n return i18n.getString(_TL_('No placements selected'));\r\n } else if (BoostAdunitIds.split(';').length === 1) {\r\n return i18n.getString(_TL_('1 placement selected'));\r\n }\r\n return i18n.getString(_TL_('{{ count }} placements selected'), { count: BoostAdunitIds.split(';').length });\r\n};\r\n\r\nexport const contextualTargetDetails = ({ contextualTargets, i18n }) => {\r\n if (!contextualTargets) {\r\n return i18n.getString(_TL_('No contextual targets selected'));\r\n } else if (contextualTargets.length === 0) {\r\n return i18n.getString(_TL_('No contextual targets selected'));\r\n } else if (contextualTargets.length === 1) {\r\n return i18n.getString(_TL_('1 contextual target selected'));\r\n }\r\n return i18n.getString(_TL_('{{ count }} contextual targets selected'), { count: contextualTargets.length });\r\n};\r\n\r\nexport const ValidatedBoostPlacementTargetInternal = ({\r\n updateValidation,\r\n ...rest\r\n}) => {\r\n const onDataChange = (result) => {\r\n updateValidation([], { ...result });\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nValidatedBoostPlacementTargetInternal.propTypes = {\r\n i18n: PropTypes.shape({}).isRequired,\r\n updateValidation: PropTypes.func.isRequired,\r\n};\r\n\r\nexport const ValidatedBoostPlacementTarget = withCustomValidation(ValidatedBoostPlacementTargetInternal);\r\n","// The maximum number of brand lists for an account\r\nexport const BRAND_LIST_MAX_COUNT = 20;\r\n\r\n// The maximum number of brand lists associations\r\nexport const BRAND_LIST_SELECTED_OPTIONS_LIMIT = 20;\r\n\r\n// The maximum number of brand lists to display in the dropdown\r\nexport const BRAND_LIST_OPTIONS_DISPLAY_LIMIT = 20;\r\n\r\n// The maximum number of brands for a brand list\r\nexport const BRAND_SELECTED_OPTIONS_LIMIT = 100;\r\n\r\n// The maximum number of brands to display in the dropdown\r\nexport const BRAND_OPTIONS_DISPLAY_LIMIT = 50;\r\n\r\nexport const DO_NOT_ASK_AGAIN_PREFERENCE_NAME = 'DO_NOT_ASK_AGAIN_SAVE_BRAND_LIST';\r\n\r\nexport const MT_ALLOWED_MIN_SEARCH_FILTER_LENGTH = 2;\r\n\r\nexport const ABOUT_BRAND_LISTS_LINK = 'https://help.ads.microsoft.com/#apex/ads/en/60219/0';\r\n","import React, { useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n MultiSelectorContextProvider,\r\n makeUseOptionsAsyncDataSource,\r\n makeUseSelectedOptionsAsyncDataSource,\r\n useMultiSelectContext,\r\n} from '@bingads-webui-campaign-react/multi-selector';\r\nimport { loadBrandsFactoryFromProp, loadBrandsUnderBrandListFactoryFromProp } from '@bingads-webui-campaign-react/brand-lists-data';\r\nimport { BRAND_SELECTED_OPTIONS_LIMIT } from '../constants';\r\n\r\nexport const BrandsContextProvider = ({\r\n children,\r\n cid,\r\n aid,\r\n brandListId,\r\n selectedOptionsLimit,\r\n optionsDisplayLimit,\r\n loadBrandsFactory,\r\n loadAssociatedBrandsFactory,\r\n onChange,\r\n savedAddedSelectedOptionsKeys,\r\n savedDeletedSelectedOptionsKeys,\r\n}) => {\r\n const loadBrands = useMemo(() => loadBrandsFactory({ cid, aid }), [aid, cid, loadBrandsFactory]);\r\n const useOptions = useMemo(() => makeUseOptionsAsyncDataSource(loadBrands), [loadBrands]);\r\n\r\n const loadBrandsUnderBrandList = useMemo(() => loadAssociatedBrandsFactory({\r\n cid, aid, brandListId, isEdit: brandListId, top: BRAND_SELECTED_OPTIONS_LIMIT,\r\n }), [aid, brandListId, cid, loadAssociatedBrandsFactory]);\r\n const useOptionsUnderBrandList = useMemo(() => makeUseSelectedOptionsAsyncDataSource(loadBrandsUnderBrandList), [loadBrandsUnderBrandList]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nBrandsContextProvider.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node,\r\n ]).isRequired,\r\n cid: PropTypes.number.isRequired,\r\n aid: PropTypes.number.isRequired,\r\n brandListId: PropTypes.number,\r\n selectedOptionsLimit: PropTypes.number.isRequired,\r\n optionsDisplayLimit: PropTypes.number.isRequired,\r\n loadBrandsFactory: PropTypes.func,\r\n loadAssociatedBrandsFactory: PropTypes.func,\r\n onChange: PropTypes.func.isRequired,\r\n savedAddedSelectedOptionsKeys: PropTypes.arrayOf(PropTypes.number),\r\n savedDeletedSelectedOptionsKeys: PropTypes.arrayOf(PropTypes.number),\r\n};\r\n\r\nBrandsContextProvider.defaultProps = {\r\n brandListId: undefined,\r\n loadBrandsFactory: loadBrandsFactoryFromProp,\r\n loadAssociatedBrandsFactory: loadBrandsUnderBrandListFactoryFromProp,\r\n savedAddedSelectedOptionsKeys: [],\r\n savedDeletedSelectedOptionsKeys: [],\r\n};\r\n\r\nexport const useBrandsData = useMultiSelectContext;\r\n\r\n","import React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { CommandBarButton } from '@fluentui/react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport classNames from 'classnames';\r\nimport { useBrandsData } from './brands-data';\r\n\r\nconst getStyles = (_components, { palette }) => ({\r\n RequestBrandButton: {\r\n height: 32,\r\n color: palette.themePrimary,\r\n\r\n '&.is-disabled': {\r\n color: palette.neutralTertiaryAlt,\r\n },\r\n },\r\n});\r\n\r\nexport const RequestBrandButton = ({\r\n onClick,\r\n}) => {\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const {\r\n isSelectedOptionsLimitReached,\r\n } = useBrandsData();\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nRequestBrandButton.propTypes = {\r\n onClick: PropTypes.func.isRequired,\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 { MessageBar, MessageBarType } from '@fluentui/react';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nconst getStyles = (_, { palette = {} }) => ({\r\n InfoMessageBar: {\r\n background: palette.themeLighterAlt,\r\n },\r\n});\r\n\r\nexport const SystemErrorAlertForBrandLists = () => {\r\n const i18n = useContext(I18nContext);\r\n return (\r\n \r\n {i18n.getString(_TL_('We cannot load your brand lists at this time. Please try again later.'))}\r\n \r\n );\r\n};\r\n\r\nexport const MaxSelectionAlertForBrandLists = ({ selectedOptionsLimit }) => {\r\n const i18n = useContext(I18nContext);\r\n return (\r\n \r\n {i18n.getString(_TL_('You can only add up to {{selectedOptionsLimit}} brand lists per campaign. Please review your selections and try again.'), { selectedOptionsLimit })}\r\n \r\n );\r\n};\r\n\r\nMaxSelectionAlertForBrandLists.propTypes = {\r\n selectedOptionsLimit: PropTypes.number.isRequired,\r\n};\r\n\r\nexport const NoInitialDataAlertForBrandLists = ({ noInitialDataText }) => {\r\n const i18n = useContext(I18nContext);\r\n return (\r\n \r\n {noInitialDataText || i18n.getString(_TL_('Create a brand list so that your ads won’t serve on search queries that mention those brands.'))}\r\n \r\n );\r\n};\r\n\r\nNoInitialDataAlertForBrandLists.propTypes = {\r\n noInitialDataText: PropTypes.string,\r\n};\r\n\r\nNoInitialDataAlertForBrandLists.defaultProps = {\r\n noInitialDataText: undefined,\r\n};\r\n\r\nexport const SystemErrorAlertForBrands = () => {\r\n const i18n = useContext(I18nContext);\r\n return (\r\n \r\n {i18n.getString(_TL_('We cannot load your brands at this time. Please try again later.'))}\r\n \r\n );\r\n};\r\n\r\nexport const MaxSelectionAlertForBrands = ({ selectedOptionsLimit }) => {\r\n const i18n = useContext(I18nContext);\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nMaxSelectionAlertForBrands.propTypes = {\r\n selectedOptionsLimit: PropTypes.number.isRequired,\r\n};\r\n\r\nexport const MoreOptionsInlineAlertForBrands = ({ optionsLimit }) => {\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n return (\r\n \r\n {i18n.getString(_TL_('We only display the first {{optionsLimit}} brands. Please refine your search.'), { optionsLimit })}\r\n \r\n );\r\n};\r\n\r\nMoreOptionsInlineAlertForBrands.propTypes = {\r\n optionsLimit: PropTypes.number.isRequired,\r\n};\r\n\r\n","import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\r\nimport _ from 'underscore';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n withMultiSelectCombobox,\r\n useFluentV1Styles,\r\n} from '@bingads-webui-campaign-react/multi-selector';\r\nimport { useDebouncedState } from '@bingads-webui-campaign-react/common-generic-hooks';\r\nimport {\r\n FluentProvider,\r\n webLightTheme,\r\n makeStyles,\r\n mergeClasses,\r\n shorthands,\r\n useId,\r\n Combobox,\r\n Option,\r\n} from '@fluentui/react-components';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { InlineLoading, LoadingOverlay } from '@bingads-webui-campaign-react/loading';\r\nimport { RequestBrandButton } from './request-brand-button';\r\nimport { MaxSelectionAlertForBrands, MoreOptionsInlineAlertForBrands, SystemErrorAlertForBrands } from '../alerts';\r\nimport { useBrandsData } from './brands-data';\r\nimport { MT_ALLOWED_MIN_SEARCH_FILTER_LENGTH } from '../constants';\r\n\r\nconst MultiSelectCombobox = withMultiSelectCombobox(Combobox);\r\nconst searchStartDelayMs = 500;\r\n\r\nconst useMultiSelectorStyles = makeStyles({\r\n listbox: {\r\n maxHeight: '500px',\r\n },\r\n});\r\n\r\nconst useStyles = makeStyles({\r\n ExistingBrandsPicker: {\r\n width: '100%',\r\n },\r\n BrandItem: {\r\n width: '545px',\r\n overflowWrap: 'break-word',\r\n paddingLeft: '8px',\r\n '&:hover': {\r\n backgroundColor: '#f4f4f4',\r\n cursor: 'pointer',\r\n },\r\n },\r\n BrandItemLink: {\r\n color: '#0078d4',\r\n ...shorthands.textDecoration('underline'),\r\n },\r\n TypeInContent: {\r\n ...shorthands.margin('12px'),\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n },\r\n NonOptionContent: {\r\n ...shorthands.margin('12px'),\r\n '& .brand-empty-header': {\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n },\r\n '& .brand-empty-description': {\r\n fontSize: '12px',\r\n lineHeight: '20px',\r\n },\r\n },\r\n});\r\n\r\nexport const ExistingBrandsPicker = ({ onRequestBrand }) => {\r\n const i18n = useContext(I18nContext);\r\n const classes = useStyles();\r\n\r\n const comboboxId = useId('combobox');\r\n const styles = useMultiSelectorStyles();\r\n const fluentV1ComboboxStyles = useFluentV1Styles();\r\n\r\n const {\r\n isLoadingOptions,\r\n isFirstOptionsLoad,\r\n // isNoOptionsAfterFirstLoad, // No need to handle this, since there is an create brand button\r\n isMoreOptionsThanLimit,\r\n options,\r\n optionsLoadError,\r\n lastLoadedSearchFilter,\r\n optionsDisplayLimit,\r\n selectedOptionsLimit,\r\n\r\n isLoadingSelectedOptions,\r\n isSelectedOptionsLimitReached,\r\n selectedOptionsLoadError,\r\n selectedOptions,\r\n setSelectedOptions,\r\n\r\n setSearchFilter: setSearchFilterFromContext,\r\n } = useBrandsData();\r\n\r\n const isAnyLoading = isLoadingOptions || isLoadingSelectedOptions;\r\n const hasLoadErrors = optionsLoadError || selectedOptionsLoadError;\r\n const showInitialLoading = (isFirstOptionsLoad && !hasLoadErrors) || isLoadingSelectedOptions;\r\n const canUserStartOperating = !showInitialLoading && !selectedOptionsLoadError;\r\n const selectedOptionKeys = useMemo(() => _.pluck(selectedOptions, 'key'), [selectedOptions]);\r\n const selectedOptionsSet = useMemo(() => new Set(selectedOptionKeys), [selectedOptionKeys]);\r\n const shouldDisableSelection = useCallback(option => isSelectedOptionsLimitReached && !selectedOptionsSet.has(option.key), [isSelectedOptionsLimitReached, selectedOptionsSet]);\r\n\r\n const [isOpen, setIsOpen] = useState(false);\r\n const onOpenChange = useCallback((event, data) => {\r\n setIsOpen(data.open);\r\n }, []);\r\n\r\n const onOptionSelect = useCallback((event, data) => {\r\n setSelectedOptions(data.resolvedSelectedOptions);\r\n }, [setSelectedOptions]);\r\n\r\n const [debouncedSearchFilter, setSearchFilter, searchFilter] = useDebouncedState('', searchStartDelayMs);\r\n useEffect(() => {\r\n setSearchFilterFromContext(debouncedSearchFilter);\r\n }, [debouncedSearchFilter, setSearchFilterFromContext]);\r\n const onChange = useCallback((event) => {\r\n const { value: rawValue } = event.target;\r\n setSearchFilter(rawValue);\r\n }, [setSearchFilter]);\r\n\r\n const isSearchFilterEmpty = !lastLoadedSearchFilter || lastLoadedSearchFilter.length < MT_ALLOWED_MIN_SEARCH_FILTER_LENGTH;\r\n\r\n return (\r\n \r\n {isAnyLoading && isFirstOptionsLoad && }\r\n {!isAnyLoading && hasLoadErrors && }\r\n {!showInitialLoading && isSelectedOptionsLimitReached && }\r\n {canUserStartOperating && (\r\n \r\n \r\n {!optionsLoadError &&\r\n <>\r\n {isSearchFilterEmpty && _.isEmpty(options) && (\r\n
\r\n {i18n.getString(_TL_('Start typing to search for brands'))}\r\n
\r\n )}\r\n {!isSearchFilterEmpty && _.isEmpty(options) && (\r\n
\r\n
\r\n {i18n.getString(_TL_('No brand found'))}\r\n
\r\n
\r\n {i18n.getString(_TL_('You can request a brand to add to your shared library.'))}\r\n
\r\n \r\n
\r\n )}\r\n {!_.isEmpty(options) && options.map(brand => (\r\n \r\n ))}\r\n {isMoreOptionsThanLimit && }\r\n \r\n }\r\n {optionsLoadError &&\r\n
\r\n {i18n.getString(_TL_('We cannot load the brands at this time. Please try again later.'))}\r\n
\r\n }\r\n
\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nExistingBrandsPicker.propTypes = {\r\n onRequestBrand: PropTypes.func.isRequired,\r\n};\r\n","import React, { useCallback, useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport classNames from 'classnames';\r\nimport { CommandBarButton, DirectionalHint, TooltipHost } from '@fluentui/react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { SelectedItem } from '@bingads-webui-campaign-react/pill-item-components';\r\n\r\nconst getStyles = (_components, { palette }) => ({\r\n RemoveAllButton: {\r\n height: 32,\r\n color: palette.themePrimary,\r\n },\r\n SelectedBrandsTagsHeader: {\r\n padding: 8,\r\n },\r\n SelectedBrandsTags: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n gridGap: 8,\r\n },\r\n TooltipContent: {\r\n padding: 8,\r\n '& p': {\r\n margin: 0,\r\n },\r\n },\r\n});\r\n\r\nexport const SelectedBrandsTags = ({\r\n className,\r\n selectedOptions,\r\n onRemoveAll,\r\n onRemoveItem,\r\n isAwaysDisplayHeader,\r\n}) => {\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const onRenderSelectedItemText = useCallback(({ item, text }) => (\r\n (\r\n
\r\n

{`${item.name} (${item.key})`}

\r\n

{item.link}

\r\n
\r\n ),\r\n }}\r\n >\r\n {text}\r\n \r\n ), [classes.TooltipContent]);\r\n\r\n return (\r\n
\r\n {(isAwaysDisplayHeader || !_.isEmpty(selectedOptions)) && (\r\n
\r\n {selectedOptions ? selectedOptions.length : 0} {i18n.getString(_TL_('Brands'))}\r\n {!_.isEmpty(selectedOptions) && (\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n {!_.isEmpty(selectedOptions) && selectedOptions.map((item, index) => (\r\n onRenderSelectedItemText({ item, text })}\r\n itemIndex={index}\r\n onDelete={() => onRemoveItem(item)}\r\n />\r\n ))}\r\n
\r\n
\r\n );\r\n};\r\n\r\nSelectedBrandsTags.propTypes = {\r\n className: PropTypes.string,\r\n selectedOptions: PropTypes.arrayOf(PropTypes.shape({\r\n key: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n name: PropTypes.string.isRequired,\r\n })).isRequired,\r\n onRemoveAll: PropTypes.func.isRequired,\r\n onRemoveItem: PropTypes.func.isRequired,\r\n isAwaysDisplayHeader: PropTypes.bool,\r\n};\r\n\r\nSelectedBrandsTags.defaultProps = {\r\n className: undefined,\r\n isAwaysDisplayHeader: false,\r\n};\r\n","import React, { useContext, useMemo } from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Label } from '@fluentui/react';\r\nimport { ExistingBrandsPicker } from './existing-brands-picker';\r\nimport { SelectedBrandsTags } from './selected-brands-tags';\r\nimport { RequestBrandButton } from './request-brand-button';\r\nimport { useBrandsData } from './brands-data';\r\n\r\nconst getStyles = (_components, { palette }) => ({\r\n SelectedExistingBrandsContainer: {\r\n '& .ms-MessageBar': {\r\n marginBottom: 16,\r\n },\r\n },\r\n SelectedNewBrandsContainer: {\r\n marginTop: 16,\r\n '& p': {\r\n margin: 0,\r\n },\r\n '& hr': {\r\n background: palette.neutralLight,\r\n border: 'none',\r\n height: 1,\r\n },\r\n '& .request-brand-button': {\r\n marginTop: 8,\r\n },\r\n },\r\n});\r\n\r\nexport const BrandsPicker = ({\r\n onRequestBrand,\r\n}) => {\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const {\r\n selectedOptions,\r\n setSelectedOptions,\r\n } = useBrandsData();\r\n\r\n // The approved brands\r\n const approvedBrands = useMemo(() => selectedOptions.filter(brand => !brand.isUnderReview), [selectedOptions]);\r\n\r\n const onRemoveAllApprovedBrands = () => {\r\n const filteredBrands = selectedOptions.filter(brand => brand.isUnderReview);\r\n setSelectedOptions(filteredBrands);\r\n };\r\n\r\n const onRemoveOneApprovedBrand = (brand) => {\r\n const filteredBrands = selectedOptions.filter(selectedBrand => selectedBrand.key !== brand.key);\r\n setSelectedOptions(filteredBrands);\r\n };\r\n\r\n // The pending brands\r\n const pendingBrands = useMemo(() => selectedOptions.filter(brand => brand.isUnderReview), [selectedOptions]);\r\n\r\n const onRemoveAllPendingBrands = () => {\r\n const filteredBrands = selectedOptions.filter(brand => !brand.isUnderReview);\r\n setSelectedOptions(filteredBrands);\r\n };\r\n\r\n const onRemoveOnePendingBrand = (brand) => {\r\n const filteredBrands = selectedOptions.filter(selectedBrand => selectedBrand.key !== brand.key);\r\n setSelectedOptions(filteredBrands);\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n
\r\n
\r\n {!_.isEmpty(pendingBrands) && (\r\n <>\r\n
\r\n \r\n

\r\n {i18n.getString(_TL_('Once approved, we’ll automatically add these brands to your list.'))}\r\n

\r\n \r\n \r\n )}\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nBrandsPicker.propTypes = {\r\n onRequestBrand: PropTypes.func.isRequired,\r\n};\r\n","import React, { useCallback, useContext, useMemo, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { Link } from 'react-router-dom';\r\nimport _ from 'underscore';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Label, TextField } from '@fluentui/react';\r\nimport { ReactTemplate } from '@bingads-webui-react/react-template';\r\nimport { HelpPopup } from '@bingads-webui-react/help-popup';\r\nimport { helpbuttonStyle, convertToLocalStyle } from '@bingads-webui-campaign-react/common-styles';\r\nimport { UserContext } from '@bingads-webui-react/user-context';\r\nimport { ScopeContext } from '@bingads-webui-react/scope-service';\r\nimport { siteMapPropType, withSiteMap, findSiteMap, getSiteMapItemRoute, processorSet } from '@bingads-webui-campaign-react/with-site-map';\r\nimport { BrandsPicker } from '../brands-picker';\r\n\r\nconst getStyles = (useless, { palette = {} }) => ({\r\n Form: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '8px',\r\n margin: '16px 0',\r\n '& .list-name-length': {\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n margin: '2px 0',\r\n },\r\n ...convertToLocalStyle(helpbuttonStyle({ palette })),\r\n },\r\n});\r\n\r\nconst LIST_NAME_MAX_LENGTH = 128;\r\n\r\nexport const ManageBrandListPanelContentImpl = ({\r\n unscopedSiteMap, brandListId, name, onNameChange, isConfirmDialogOn, onOpenRequestBrandPanel,\r\n}) => {\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n const [listName, setListName] = useState(name);\r\n\r\n const onChangeListName = useCallback((e, value) => {\r\n if (value.length <= LIST_NAME_MAX_LENGTH) {\r\n onNameChange(value);\r\n setListName(value);\r\n }\r\n }, [onNameChange]);\r\n\r\n const userContext = useContext(UserContext);\r\n const { scope } = useContext(ScopeContext);\r\n const brandListsPageLink = useMemo(() => {\r\n const siteMapItemId = 'brand-lists';\r\n const siteMapItem = findSiteMap(unscopedSiteMap, item => item.id === siteMapItemId);\r\n return getSiteMapItemRoute({ item: siteMapItem, scope, userContext }).href;\r\n }, [unscopedSiteMap, userContext, scope]);\r\n\r\n return (\r\n
\r\n {!brandListId && (\r\n <>\r\n {isConfirmDialogOn && (\r\n
\r\n ({text}),\r\n }}\r\n template={i18n.getString(_TL_('Once you create a brand list, you can edit it in your {{link}}Brand List{{/link}} shared library.'))}\r\n />\r\n
\r\n )}\r\n
\r\n \r\n \r\n

\r\n {i18n.getString(_TL_('{{count}} characters remaining'), {\r\n count: LIST_NAME_MAX_LENGTH - listName.length,\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\nManageBrandListPanelContentImpl.propTypes = {\r\n unscopedSiteMap: siteMapPropType.isRequired,\r\n brandListId: PropTypes.number,\r\n name: PropTypes.string,\r\n onNameChange: PropTypes.func.isRequired,\r\n isConfirmDialogOn: PropTypes.bool,\r\n onOpenRequestBrandPanel: PropTypes.func.isRequired,\r\n};\r\n\r\nManageBrandListPanelContentImpl.defaultProps = {\r\n name: '',\r\n brandListId: undefined,\r\n isConfirmDialogOn: false,\r\n};\r\n\r\nconst scopeUnawareWithSiteMap = _.partial(withSiteMap, _, processorSet.basic, _, _, 'unscopedSiteMap');\r\nexport const ManageBrandListPanelContent = scopeUnawareWithSiteMap(ManageBrandListPanelContentImpl);\r\n","import React, { useCallback, useContext, useState } from 'react';\r\nimport { noop } from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { DefaultButton, IconButton, Label, MessageBar, Panel, PanelType, PrimaryButton, TextField } from '@fluentui/react';\r\nimport { HelpPopup } from '@bingads-webui-react/help-popup';\r\nimport { helpbuttonStyle, convertToLocalStyle } from '@bingads-webui-campaign-react/common-styles';\r\nimport { createBrandFromProp, GENERIC_ERROR_MESSAGE, getOdataResponseErrors } from '@bingads-webui-campaign-react/brand-lists-data';\r\nimport { useBrandsData } from '../brands-picker/brands-data';\r\n\r\nconst getStyles = (_, { palette = {} }) => ({\r\n RequestBrandPanel: {\r\n '& .brand-description': {\r\n '& .ms-MessageBar': {\r\n background: '#EFF6FC',\r\n marginBottom: 16,\r\n },\r\n },\r\n '& .brand-name-length': {\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n margin: '2px 0',\r\n },\r\n '& .ms-Panel-header': {\r\n padding: 0,\r\n },\r\n '& .error-message': {\r\n color: palette.redDark,\r\n marginBottom: 16,\r\n },\r\n ...convertToLocalStyle(helpbuttonStyle({ palette })),\r\n },\r\n BackButton: {\r\n paddingLeft: 32,\r\n paddingRight: 18,\r\n },\r\n Form: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '8px',\r\n margin: '16px 0',\r\n },\r\n FormItem: {\r\n },\r\n SaveButton: {\r\n marginRight: 8,\r\n },\r\n});\r\n\r\nconst BRAND_NAME_MAX_LENGTH = 128;\r\n\r\nexport const RequestBrandPanel = ({\r\n isOpen, onDismiss, cid, aid,\r\n}) => {\r\n const i18n = useContext(I18nContext);\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const {\r\n selectedOptions,\r\n setSelectedOptions,\r\n searchFilter,\r\n } = useBrandsData();\r\n\r\n const [brandName, setBrandName] = useState(searchFilter || '');\r\n const [brandLink, setBrandLink] = useState('');\r\n const [brandReason, setBrandReason] = useState('');\r\n const [errorMsg, setErrorMsg] = useState(null);\r\n\r\n const onRenderHeader = useCallback((props, defaultRender) => (\r\n <>\r\n \r\n {defaultRender(props)}\r\n \r\n ), [classes.BackButton, i18n, onDismiss]);\r\n\r\n const onSaveBrand = useCallback((result) => {\r\n if (selectedOptions.some(option => option.key === result.key)) {\r\n return;\r\n }\r\n setSelectedOptions([...selectedOptions, result]);\r\n }, [selectedOptions, setSelectedOptions]);\r\n\r\n const onSave = useCallback(async () => {\r\n try {\r\n const saveCallPromise = createBrandFromProp({ cid, aid });\r\n const result = await saveCallPromise({ brandName, brandLink, brandReason });\r\n if (result && result.value && result.value.length > 0) {\r\n const newBrand = result.value[0];\r\n onSaveBrand({\r\n key: newBrand.Id,\r\n name: newBrand.Name,\r\n link: newBrand.Uri,\r\n isUnderReview: true,\r\n });\r\n onDismiss();\r\n } else {\r\n setErrorMsg(i18n.getString(GENERIC_ERROR_MESSAGE));\r\n }\r\n } catch (error) {\r\n const serverErrors = getOdataResponseErrors(i18n, error);\r\n setErrorMsg(serverErrors[0].message);\r\n }\r\n }, [cid, aid, brandName, brandLink, brandReason, onSaveBrand, onDismiss, i18n]);\r\n\r\n const onRenderFooterContent = useCallback(() => (\r\n
\r\n \r\n {i18n.getString(_TL_('Submit'))}\r\n \r\n \r\n {i18n.getString(_TL_('Cancel'))}\r\n \r\n
\r\n ), [brandLink, brandName, classes.CancelButton, classes.SaveButton, i18n, onDismiss, onSave]);\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n {i18n.getString(_TL_('It takes up to a week to review a brand request. If approved, it’ll be added to your shared library. Please note that you can only apply brand protection or brand exclusion to a brand once it’s approved.'))}\r\n \r\n
\r\n
\r\n \r\n {\r\n setBrandName(value && value.length > BRAND_NAME_MAX_LENGTH ? value.slice(0, BRAND_NAME_MAX_LENGTH) : value);\r\n }}\r\n />\r\n

\r\n {i18n.getString(_TL_('{{count}} characters remaining'), {\r\n count: BRAND_NAME_MAX_LENGTH - brandName.length,\r\n })}\r\n

\r\n
\r\n
\r\n \r\n setBrandLink(value)}\r\n />\r\n
\r\n
\r\n \r\n setBrandReason(value)}\r\n multiline\r\n rows={6}\r\n resizable={false}\r\n />\r\n
\r\n {errorMsg &&
{errorMsg}
}\r\n
\r\n \r\n );\r\n};\r\n\r\nRequestBrandPanel.propTypes = {\r\n isOpen: PropTypes.bool.isRequired,\r\n onDismiss: PropTypes.func.isRequired,\r\n cid: PropTypes.number.isRequired,\r\n aid: PropTypes.number.isRequired,\r\n};\r\n","import React, { useContext, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Dialog, DialogType, DialogFooter, PrimaryButton, DefaultButton, Checkbox } from '@fluentui/react';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\n\r\nconst modalProps = {\r\n isBlocking: true,\r\n className: 'save-brand-list-dialog',\r\n};\r\n\r\nconst dialogFooterStyles = {\r\n actionsRight: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n '& .do-not-ask-again-checkbox': {\r\n padding: '5px 0',\r\n },\r\n '& .confirm-button': {\r\n marginRight: 4,\r\n },\r\n },\r\n};\r\n\r\nexport const SaveDialog = (props) => {\r\n const { open, onConfirm, onDismiss } = props;\r\n const i18n = useContext(I18nContext);\r\n const [isDoNotAskAgain, setIsDoNotAskAgain] = useState(false);\r\n\r\n const dialogContentProps = {\r\n type: DialogType.normal,\r\n title: i18n.getString(_TL_('Save brand list')),\r\n closeButtonAriaLabel: i18n.getString(_TL_('Close')),\r\n subText: i18n.getString(_TL_('Once your brand list is saved, it’ll be automatically added to your shared library where you can edit it. Are you sure you want to save your brand list?')),\r\n };\r\n\r\n return (\r\n