{"version":3,"file":"static/js/application.async.non-landing~62b84eea.f3f4b185.chunk.js","mappings":"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","sources":["../../../../inline-download/packages/inline-download-cron-i18n/src/cron-i18n.js","../../../../inline-download/packages/inline-download-date-range-editor/src/durable-dropdown.js","../../../../inline-download/packages/inline-download-date-range-editor/src/checkable-list.js","../../../../inline-download/packages/inline-download-date-range-editor/src/date-range-list.js","../../../../inline-download/packages/inline-download-date-range-editor/src/date-range-editor.js","../../../../inline-download/packages/inline-download-date-range-editor/src/comparison-date-range-editor.js","../../../../inline-download/packages/inline-download-reports-grid/src/inline-edit/save.js","../../../../inline-download/packages/inline-download-reports-grid/src/inline-edit/react-prompt.js","../../../../inline-download/packages/inline-download-reports-grid/src/util/index.js","../../../../inline-download/packages/inline-download-reports-grid/src/columns/email-frequency/form-group.js","../../../../inline-download/packages/inline-download-reports-grid/src/columns/email-frequency/index.js","../../../../inline-download/packages/inline-download-reports-grid/src/inline-edit/unsubscribe.js","../../../../inline-download/packages/inline-download-reports-grid/src/inline-edit/built-in-prompt.js","../../../../inline-download/packages/inline-download-reports-grid/src/grid-config.js","../../insight-dashboard/src/styles/index.js","../../insight-dashboard/src/util.js","../../insight-dashboard/src/pages/off-view.js","../../insight-dashboard/src/components/data/util.js","../../insight-dashboard/src/components/metrics/metric-block.js","../../insight-dashboard/src/components/metrics/metric-group.js","../../insight-dashboard/src/components/data/useTotalSessionCountData.js","../../insight-dashboard/src/components/data/useAverageActiveTimeData.js","../../insight-dashboard/src/components/data/useQuickData.js","../../insight-dashboard/src/styles/tileStyles.js","../../insight-dashboard/src/components/charts/base-charts/donut-chart.js","../../insight-dashboard/src/components/charts/devices-chart.js","../../insight-dashboard/src/components/charts/base-charts/bar-chart.js","../../insight-dashboard/src/data/country.js","../../insight-dashboard/src/components/charts/countries-chart.js","../../insight-dashboard/src/components/charts/page-visited-chart.js","../../insight-dashboard/src/components/tiles/empty-content.js","../../insight-dashboard/src/components/tiles/tile.js","../../insight-dashboard/src/components/tiles/tileGroup.js","../../insight-dashboard/src/components/data/usePagesByVisitsData.js","../../insight-dashboard/src/components/data/useDevicesData.js","../../insight-dashboard/src/components/data/useCountriesData.js","../../insight-dashboard/src/components/web-insights-toolbar.js","../../insight-dashboard/src/components/filter-config.js","../../insight-dashboard/src/pages/on-view.js","../../insight-dashboard/src/pages/loading-view.js","../../insight-dashboard/src/pages/index.js","../../insight-dashboard/src/components/data/useTagData.js","../../../../inline-download/packages/inline-download-reports-grid/src/columns/actions-template.pug","../../../../inline-download/packages/inline-download-reports-grid/src/columns/state/header-template.pug","../../../../inline-download/packages/inline-download-reports-grid/src/columns/state/template.pug"],"sourcesContent":["import _ from 'underscore';\r\nimport { CronFormatter } from '@bingads-webui/cron-formatter';\r\n\r\nexport class InlineDownloadCronI18n {\r\n constructor({ i18n }) {\r\n this.cronFormatter = new CronFormatter({ i18n });\r\n this.i18n = i18n;\r\n }\r\n\r\n formatCron(cron) {\r\n if (_.isEmpty(cron)) {\r\n return this.i18n.getString('InlineDownloadReports_EmailAndScheduling_Frequency_None');\r\n }\r\n\r\n return this.cronFormatter.formatCronString(cron);\r\n }\r\n}\r\n","import classnames from 'classnames';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport class DurableDropdown extends React.Component {\r\n constructor() {\r\n super();\r\n\r\n this.state = {\r\n expanded: false,\r\n };\r\n }\r\n\r\n render() {\r\n const {\r\n button,\r\n children,\r\n containerClass,\r\n } = this.props;\r\n const {\r\n expanded,\r\n } = this.state;\r\n\r\n return (\r\n
\r\n this.setState({ expanded: !expanded })}\r\n >\r\n {button}\r\n \r\n \r\n \r\n {children}\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nDurableDropdown.propTypes = {\r\n button: PropTypes.oneOfType([\r\n PropTypes.element,\r\n PropTypes.string,\r\n ]).isRequired,\r\n children: PropTypes.oneOfType([\r\n PropTypes.element,\r\n PropTypes.string,\r\n ]).isRequired,\r\n caretClass: PropTypes.string,\r\n containerClass: PropTypes.string,\r\n};\r\n\r\nDurableDropdown.defaultProps = {\r\n caretClass: 'caret',\r\n containerClass: '',\r\n};\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport classnames from 'classnames';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { submitEvent } from '@bingads-webui-universal/accessibility-helper';\r\n\r\nexport default class CheckableList extends React.Component {\r\n static propTypes = {\r\n items: PropTypes.arrayOf(PropTypes.any).isRequired,\r\n getItemId: PropTypes.func,\r\n onSelect: PropTypes.func.isRequired,\r\n renderItem: PropTypes.func,\r\n selected: PropTypes.any, // eslint-disable-line\r\n };\r\n\r\n static defaultProps = {\r\n getItemId: (item, index) => String(index),\r\n renderItem: () => null,\r\n selected: null,\r\n };\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n const { selected = prevState.selected } = nextProps;\r\n\r\n return {\r\n selected,\r\n };\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n onSelect = (item) => {\r\n this.setState({\r\n selected: item,\r\n }, () => this.props.onSelect(item));\r\n }\r\n\r\n render() {\r\n const {\r\n items,\r\n getItemId,\r\n renderItem,\r\n } = this.props;\r\n\r\n const { selected } = this.state;\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { KendoStringDatePicker } from '@bingads-webui-react/kendo-date-picker';\r\nimport CheckableList from './checkable-list';\r\n\r\nexport default function DateRangeList({\r\n data,\r\n onChange,\r\n presets,\r\n presetType,\r\n format,\r\n i18n,\r\n}) {\r\n const {\r\n [presetType]: DateRangePreset,\r\n StartDate,\r\n EndDate,\r\n } = data;\r\n\r\n const dateMethodOptions = {\r\n raw: 'yyyy-MM-dd',\r\n };\r\n\r\n const formattedToday = i18n.formatDate(new Date(), dateMethodOptions);\r\n\r\n return (\r\n
\r\n preset || 'Custom'}\r\n items={presets}\r\n selected={DateRangePreset}\r\n onSelect={(item) => {\r\n if (item === null) {\r\n onChange({\r\n [presetType]: null,\r\n StartDate: StartDate || formattedToday,\r\n EndDate: EndDate || formattedToday,\r\n });\r\n } else {\r\n onChange({\r\n [presetType]: item,\r\n StartDate: null,\r\n EndDate: null,\r\n });\r\n }\r\n }}\r\n renderItem={(item) => {\r\n if (item === null) {\r\n const max = i18n.formatDate(new Date(), dateMethodOptions);\r\n const usedStartDate = StartDate ? StartDate.substr(0, 10) : StartDate;\r\n const usedEndDate = EndDate ? EndDate.substr(0, 10) : EndDate;\r\n\r\n return (\r\n \r\n {format.formatPreset(null)}\r\n {\r\n DateRangePreset === null ?\r\n \r\n onChange({\r\n [presetType]: null,\r\n StartDate: changed,\r\n EndDate,\r\n })}\r\n dateMethodOptions={dateMethodOptions}\r\n />\r\n -\r\n onChange({\r\n [presetType]: null,\r\n StartDate,\r\n EndDate: changed,\r\n })}\r\n dateMethodOptions={dateMethodOptions}\r\n />\r\n :\r\n null\r\n }\r\n \r\n );\r\n }\r\n\r\n return format.formatPreset(item);\r\n }}\r\n />\r\n
\r\n );\r\n}\r\n\r\nDateRangeList.propTypes = {\r\n data: PropTypes.shape({\r\n StartDate: PropTypes.string,\r\n EndDate: PropTypes.string,\r\n DateRangePreset: PropTypes.string,\r\n }).isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n presets: PropTypes.arrayOf(PropTypes.string).isRequired,\r\n presetType: PropTypes.oneOf(['DateRangePreset', 'ComparisonDateRangeOption']),\r\n format: PropTypes.shape({\r\n format: PropTypes.func,\r\n formatPreset: PropTypes.func,\r\n }).isRequired,\r\n i18n: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nDateRangeList.defaultProps = {\r\n presetType: 'DateRangePreset',\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { DateRangeFormat } from '@bingads-webui-campaign/date-range-utilities';\r\nimport DateRangeList from './date-range-list';\r\n\r\nexport default function DateRangeEditor({\r\n i18n,\r\n data,\r\n onChange,\r\n}) {\r\n const dateRangeFormat = new DateRangeFormat({ i18n });\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nDateRangeEditor.propTypes = {\r\n i18n: PropTypes.shape({}).isRequired,\r\n data: PropTypes.shape({\r\n StartDate: PropTypes.string,\r\n EndDate: PropTypes.string,\r\n DateRangePreset: PropTypes.string,\r\n }).isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ComparisonDateRangeFormat } from '@bingads-webui-campaign/date-range-utilities';\r\nimport DateRangeList from './date-range-list';\r\n\r\nexport default function ComparisonDateRangeEditor({\r\n i18n,\r\n data,\r\n onChange,\r\n noneStringKey,\r\n}) {\r\n const comparisonDateRangeFormat = new ComparisonDateRangeFormat({ i18n, noneStringKey });\r\n return (\r\n
\r\n {\r\n if (model.ComparisonDateRangeOption === 'None') {\r\n onChange(null);\r\n } else {\r\n onChange(model);\r\n }\r\n }}\r\n data={data || { ComparisonDateRangeOption: 'None' }}\r\n />\r\n
\r\n );\r\n}\r\n\r\nComparisonDateRangeEditor.propTypes = {\r\n i18n: PropTypes.shape({}).isRequired,\r\n data: PropTypes.shape({\r\n StartDate: PropTypes.string,\r\n EndDate: PropTypes.string,\r\n DateRangePreset: PropTypes.string,\r\n }).isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n noneStringKey: PropTypes.string,\r\n};\r\n\r\nComparisonDateRangeEditor.defaultProps = {\r\n noneStringKey: 'None',\r\n};\r\n","import { withUiBlock } from '@bingads-webui/uiblocker';\r\n\r\nexport default function save({\r\n TaskItem,\r\n view,\r\n}) {\r\n return view.updateReportEmailRule(TaskItem)\r\n .finally(withUiBlock(view.gridView.$el))\r\n .then(() => {\r\n // gridView.trigger('didEdit', update);\r\n view.gridView.refresh(true);\r\n });\r\n}\r\n","import Backbone from 'backbone';\r\nimport classnames from 'classnames';\r\nimport $ from 'jquery';\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport _ from 'underscore';\r\nimport { GridCustomizedPopupEditor } from '@bingads-webui-campaign/grid-customized-popup-editor';\r\nimport { get, set, merge } from '@bingads-webui-universal/primitive-utilities';\r\nimport save from './save';\r\n\r\nfunction asInlineEditor({\r\n className = 'form',\r\n Editor,\r\n i18n,\r\n}) {\r\n return class InlineEditor extends React.Component {\r\n static propTypes = {\r\n model: PropTypes.any.isRequired, // eslint-disable-line\r\n onSave: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n model: props.model,\r\n };\r\n }\r\n\r\n onChange = (model) => {\r\n this.setState({ model });\r\n }\r\n\r\n onSave = () => {\r\n this.props.onSave(this.state.model);\r\n }\r\n\r\n onCancel = () => {\r\n this.props.onCancel(this.state.model);\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n {i18n.getString('Save')}\r\n \r\n \r\n {i18n.getString('Cancel')}\r\n \r\n
\r\n );\r\n }\r\n };\r\n}\r\n\r\nexport function asBackboneInlineEditor({\r\n className,\r\n Editor,\r\n i18n,\r\n}) {\r\n const InlineEditor = asInlineEditor({\r\n className,\r\n Editor,\r\n i18n,\r\n });\r\n\r\n return class BackboneInlineEditor extends Backbone.View {\r\n initialize({ model }) {\r\n this.model = model;\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n (\r\n this.trigger('save', model)}\r\n onCancel={() => this.trigger('close')}\r\n />\r\n ),\r\n this.el\r\n );\r\n\r\n return this;\r\n }\r\n };\r\n}\r\n\r\nexport default function reactPrompt({\r\n position,\r\n parentContainerSelector,\r\n triggerScrollbarRepositionOnElementHeightChange = _.noop,\r\n\r\n className,\r\n Editor,\r\n i18n,\r\n\r\n item,\r\n property,\r\n\r\n view,\r\n}) {\r\n const BackboneInlineEditor = asBackboneInlineEditor({\r\n className,\r\n Editor,\r\n i18n,\r\n });\r\n\r\n const editor = new BackboneInlineEditor({\r\n model: _.isString(property) ? get(item, property) : _.pick(item, ...property),\r\n });\r\n\r\n editor.on('save', (model) => {\r\n const update = merge({}, item, _.isString(property) ? set({}, property, model) : model);\r\n\r\n save({\r\n TaskItem: update,\r\n view,\r\n })\r\n .then(() => editor.trigger('close', update))\r\n .catch((error) => {\r\n alert(error.message);\r\n });\r\n });\r\n\r\n const editorView = new GridCustomizedPopupEditor({\r\n editorView: editor.render(),\r\n cellPosition: position,\r\n parentContainerSelector,\r\n renderBelow: false,\r\n });\r\n\r\n editorView.clickToDismiss = (event) => {\r\n // Decide whether it is inside the popup editor\r\n const $target = $(event.target);\r\n if (\r\n // inside popup, or date picker\r\n $target.closest('.grid-popupeditor, .k-calendar-container').length === 0 &&\r\n // when selecting a date, .k-calendar-container doesn't exist anymore, use the selector\r\n !$target.is('a.k-link')\r\n ) {\r\n editorView.trigger('close');\r\n editorView.remove();\r\n }\r\n };\r\n\r\n editorView.render();\r\n\r\n triggerScrollbarRepositionOnElementHeightChange(editorView.el);\r\n\r\n return editorView;\r\n}\r\n","import _ from 'underscore';\r\n\r\nexport function couldUnsubscribe({\r\n NotificationDeliveryOption,\r\n currentUserId,\r\n}) {\r\n if (!NotificationDeliveryOption) return false;\r\n\r\n const {\r\n EmailOption,\r\n CustomUserIds,\r\n } = NotificationDeliveryOption;\r\n\r\n switch (EmailOption) {\r\n case 'Custom':\r\n return _.contains(CustomUserIds, currentUserId);\r\n case 'OnlyCurrentUser':\r\n case 'CustomerUsers':\r\n case 'AllAccountUsers':\r\n return true;\r\n default:\r\n throw new Error(`Unrecongnized EmailOption ${EmailOption}`);\r\n }\r\n}\r\n\r\nexport function hasEditPermission(config) {\r\n return !config.get('CurrentAccountInActive') && !config.get('permissions').IsReadOnlyUser;\r\n}\r\n\r\nexport function getCurrentUserId(config) {\r\n return config.get('CurrentUser').Id;\r\n}\r\n","/* eslint-disable jsx-a11y/label-has-for */\r\nimport PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport _ from 'underscore';\r\n\r\nexport default function FormGroup(props) {\r\n const {\r\n children,\r\n label,\r\n labelId,\r\n } = props;\r\n\r\n const id = props.id || _.uniqueId('form-group-');\r\n\r\n return (\r\n
\r\n \r\n {label}\r\n \r\n
\r\n {children}\r\n
\r\n
\r\n );\r\n}\r\n\r\nFormGroup.propTypes = {\r\n children: PropTypes.element.isRequired,\r\n id: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n labelId: PropTypes.string,\r\n};\r\n\r\nFormGroup.defaultProps = {\r\n id: null,\r\n labelId: undefined,\r\n};\r\n","import PropTypes from 'prop-types';\r\nimport React from 'react';\r\nimport { CampaignuiBaseColumn } from '@bingads-webui-campaign/campaignui-base-column';\r\nimport { InlineDownloadEmailFrequencyEditor } from '@bingads-webui-campaign/inline-download-email-frequency-editor';\r\nimport { InlineDownloadCronI18n } from '@bingads-webui-campaign/inline-download-cron-i18n';\r\nimport { SchemaI18n } from '@bingads-webui-universal/schema-i18n';\r\nimport reactPrompt from '../../inline-edit/react-prompt';\r\nimport { getCurrentUserId } from '../../util';\r\nimport FormGroup from './form-group';\r\n\r\nexport default class EmailFrequencyColumn extends CampaignuiBaseColumn {\r\n constructor(options) {\r\n const {\r\n allUsersType,\r\n config,\r\n view,\r\n loadUsers,\r\n } = options;\r\n const i18n = options.legacyI18n || options.i18n;\r\n const cronI18n = new InlineDownloadCronI18n({ i18n });\r\n\r\n super({\r\n name: 'EmailFrequency',\r\n property: ['NotificationDeliveryOption', 'Cron', 'StartTime', 'EndTime'],\r\n title: i18n.getString('InlineDownloadReports_Column_EmailFrequency'),\r\n });\r\n\r\n this.i18n = i18n;\r\n this.cronI18n = cronI18n;\r\n this.view = view;\r\n\r\n const Editor = props => (\r\n \r\n );\r\n\r\n Editor.propTypes = {\r\n model: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n };\r\n\r\n this.Editor = Editor;\r\n }\r\n\r\n pickProperty({\r\n NotificationDeliveryOption,\r\n Cron,\r\n StartTime,\r\n EndTime,\r\n }) {\r\n return {\r\n NotificationDeliveryOption,\r\n Cron,\r\n StartTime,\r\n EndTime,\r\n };\r\n }\r\n\r\n onPrompt({ item, position }) {\r\n return reactPrompt({\r\n item,\r\n property: ['NotificationDeliveryOption', 'Cron', 'StartTime', 'EndTime'],\r\n\r\n Editor: this.Editor,\r\n\r\n i18n: this.i18n,\r\n view: this.view,\r\n position,\r\n });\r\n }\r\n\r\n template({ value: { Cron } }) {\r\n return this.cronI18n.formatCron(Cron);\r\n }\r\n}\r\n","import Promise from 'bluebird';\r\nimport _ from 'underscore';\r\nimport { couldUnsubscribe } from '../util';\r\nimport save from './save';\r\n\r\nfunction removeCurrentUserFromList({\r\n currentUserId,\r\n list,\r\n}) {\r\n const CustomUserIds = _.without(list, currentUserId);\r\n\r\n return _.isEmpty(CustomUserIds) ? null : {\r\n '@odata.type': '#Model.EmailNotificationDeliveryOption',\r\n EmailOption: 'Custom',\r\n CustomUserIds,\r\n };\r\n}\r\n\r\nfunction removeCurrentUser({\r\n NotificationDeliveryOption,\r\n currentUserId,\r\n i18n,\r\n Name,\r\n loadUsers,\r\n}) {\r\n if (!couldUnsubscribe({\r\n NotificationDeliveryOption,\r\n currentUserId,\r\n })) {\r\n return Promise.reject(new Error(i18n.getString('InlineDownloadReports_Action_UnsubscribeMe_Failed_NotSubscribed', {\r\n report: Name,\r\n })));\r\n }\r\n\r\n const {\r\n EmailOption,\r\n } = NotificationDeliveryOption;\r\n\r\n if (EmailOption === 'OnlyCurrentUser') {\r\n return Promise.resolve(null);\r\n }\r\n\r\n if (EmailOption === 'AllAccountUsers' || EmailOption === 'CustomerUsers') {\r\n return loadUsers().then(users => removeCurrentUserFromList({\r\n currentUserId,\r\n list: _.map(users, ({ Id }) => Id),\r\n })).catch(() => {\r\n throw new Error(i18n.getString('InlineDownloadReports_EmailAndScheduling_FailedToLoadUsers'));\r\n });\r\n }\r\n\r\n if (EmailOption === 'Custom') {\r\n const {\r\n CustomUserIds,\r\n } = NotificationDeliveryOption;\r\n\r\n return Promise.resolve(removeCurrentUserFromList({\r\n currentUserId,\r\n list: CustomUserIds,\r\n }));\r\n }\r\n\r\n throw new Error(`Unrecongnized EmailOption ${EmailOption}`);\r\n}\r\n\r\nlet alertId;\r\n\r\nexport default function unsubscribe({\r\n TaskItem,\r\n currentUserId,\r\n i18n,\r\n view,\r\n loadUsers,\r\n}) {\r\n const { NotificationDeliveryOption } = TaskItem;\r\n\r\n return removeCurrentUser({\r\n NotificationDeliveryOption,\r\n currentUserId,\r\n i18n,\r\n Name: TaskItem.Name,\r\n loadUsers,\r\n }).then(newNotificationDeliveryOption => save({\r\n TaskItem: _.defaults({\r\n NotificationDeliveryOption: newNotificationDeliveryOption,\r\n }, TaskItem),\r\n view,\r\n })).then(() => {\r\n window.App.views.alertCenter.toastConfirmation(i18n.getString('InlineDownloadReports_Action_UnsubscribeMe_Succeeded', {\r\n report: TaskItem.Name,\r\n }));\r\n }).catch(() => {\r\n alertId = window.App.views.alertCenter.showError(i18n.getString('InlineDownloadReports_Action_UnsubscribeMe_Failed', {\r\n report: TaskItem.Name,\r\n }), alertId);\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport * as PopupEditor from '@bingads-webui/popup-editor';\r\nimport save from './save';\r\n\r\nexport default function builtInPrompt({\r\n position, parentContainerSelector, item, view, i18n, fields, schema,\r\n}) {\r\n PopupEditor.prompt({\r\n position,\r\n parentContainerSelector,\r\n i18n,\r\n schema,\r\n model: item,\r\n fields,\r\n hasLabels: false,\r\n template: 'inline',\r\n saveModel: (TaskItem, editorView) =>\r\n save({\r\n TaskItem,\r\n view,\r\n })\r\n .then(() => editorView.trigger('save'))\r\n .catch((error) => {\r\n editorView.editorForm.setErrors(_.groupBy(error, 'property'));\r\n }),\r\n });\r\n}\r\n","import { helpers } from '@bingads-webui/projection-grid-toolbar';\r\nimport { getColumnsConfig } from './columns';\r\nimport { getPluginsConfig } from './plugin-config';\r\n// import mockEntity from '../test/mock/jsdata-entity';\r\n\r\nconst { toolbarRow } = helpers;\r\n\r\nconst taskType = {\r\n Customer: 'Email',\r\n Account: 'ReportAccountEmail',\r\n};\r\n\r\nexport function getConfig({\r\n allUsersType,\r\n i18n,\r\n config,\r\n entitySet,\r\n jsdata,\r\n s$ReportEmailRule,\r\n view,\r\n loadUsers,\r\n\r\n stateManager,\r\n preferenceService,\r\n}) {\r\n return {\r\n name: 'InlineDownloadReportsGrid',\r\n tableClasses: ['table', 'table-bordered', 'inline-download-reports-grid'],\r\n dataSource: {\r\n type: 'js-data',\r\n entity: jsdata.TaskItem,\r\n // entity: mockEntity,\r\n query: {\r\n // MT limitation, we need different type for customer & account level entities\r\n $filter: `State ne Enum.TaskItemState'Deleted' and Type eq Enum.TaskItemType'${taskType[allUsersType]}'`,\r\n },\r\n cacheResponse: false,\r\n options: {\r\n entitySet,\r\n headers: {\r\n 'x-ms-refreshcampaigncache': true,\r\n },\r\n },\r\n },\r\n rows: {\r\n headRows: [\r\n toolbarRow('toolbar'),\r\n 'column-header-rows',\r\n ],\r\n },\r\n selection: {\r\n bodyClasses: ['text-center'],\r\n headClasses: ['text-center'],\r\n },\r\n columns: getColumnsConfig({\r\n allUsersType,\r\n config,\r\n i18n,\r\n s$ReportEmailRule,\r\n view,\r\n loadUsers,\r\n }),\r\n plugins: getPluginsConfig({\r\n i18n,\r\n config,\r\n view,\r\n }),\r\n stateManager,\r\n preferenceService,\r\n config,\r\n };\r\n}\r\n","export const getStyles = (_, { palette = {} } = {}) => ({\r\n InsightDashboardOff: {\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n\r\n '& .off-view-items-container': {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n gap: '15px',\r\n maxWidth: '500px',\r\n maxHeight: '500px',\r\n },\r\n\r\n '& .off-view-item': {\r\n maxWidth: '500px',\r\n textAlign: 'center',\r\n },\r\n },\r\n\r\n InsightDashboardOn: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n paddingLeft: '100px',\r\n paddingRight: '80px',\r\n\r\n '& .dashboard-item': {\r\n paddingTop: '5px',\r\n paddingBottom: '5px',\r\n },\r\n\r\n '& .insight-dashboard-page__header': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: '50px',\r\n fontSize: '20px',\r\n fontfontWeight: '600',\r\n },\r\n\r\n '& .insight-dashboard-page__filter': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n minHeight: '50px',\r\n fontSize: '14px',\r\n fontWeight: '400',\r\n '& .container-fluid': {\r\n paddingLeft: '0px',\r\n },\r\n },\r\n\r\n '& .insight-dashboard-page__content': {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: 'fit-content',\r\n },\r\n\r\n '& .insight-dashboard-page__footer': {\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: '50px',\r\n fontSize: '14px',\r\n fontfontWeight: '400',\r\n },\r\n },\r\n\r\n MetricGroup: {\r\n color: palette.neutralPrimary,\r\n background: palette.white,\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(3, 1fr)',\r\n width: '100%',\r\n height: 'fit-content',\r\n minHeight: 140,\r\n boxShadow: '0px 0.3px 0.9px rgba(0, 0, 0, 0.108), 0px 1.6px 3.6px rgba(0, 0, 0, 0.132)',\r\n border: 'solid 1px lightgray',\r\n borderRadius: '2px',\r\n\r\n '& .metric-group__metric': {\r\n paddingTop: '5px',\r\n paddingBottom: '5px',\r\n paddingLeft: '20px',\r\n paddingRight: '20px',\r\n display: 'grid',\r\n gridTemplateRows: '2fr 3fr 2fr',\r\n alignItems: 'center',\r\n\r\n '& .metric-item': {\r\n display: 'flex',\r\n flexDirection: 'row-reverse',\r\n },\r\n\r\n '& .metric__header': {\r\n display: 'grid',\r\n gridTemplateColumns: '1fr 25px',\r\n width: '-webkit-fill-available',\r\n borderBottom: '2px solid',\r\n\r\n '& .metric__title': {\r\n display: 'flex',\r\n flexDirection: 'row-reverse',\r\n\r\n fontWeight: '600',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n },\r\n\r\n },\r\n\r\n '& .metric__value': {\r\n fontWeight: '700',\r\n fontSize: '36px',\r\n lineHeight: '36px',\r\n },\r\n\r\n '& .metric__unit': {\r\n fontWeight: '400',\r\n fontSize: '16px',\r\n lineHeight: '36px',\r\n },\r\n },\r\n\r\n },\r\n\r\n TileGroup: {\r\n paddingTop: '15px',\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(2, 1fr)',\r\n gridGap: '2vw',\r\n width: '100%',\r\n\r\n '& .tile-group-column': {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '2vw',\r\n },\r\n },\r\n\r\n DashboardTile: {\r\n boxShadow: '3px 3px 10px 2px #0000001A',\r\n display: 'grid',\r\n gridTemplateRows: '50px 1fr 70px',\r\n minHeight: '300px',\r\n alignItems: 'center',\r\n\r\n '& .tile-item:first-child': {\r\n display: 'flex',\r\n height: '-webkit-fill-available',\r\n alignItems: 'center',\r\n paddingLeft: '20px',\r\n paddingRight: '20px',\r\n boxShadow: '0px 1px 0px 0px #0000001A',\r\n },\r\n\r\n '& .tile__header': {\r\n fontFamily: 'Segoe UI',\r\n fontStyle: 'normal',\r\n fontWeight: 600,\r\n fontSize: 16,\r\n lineHeight: 24,\r\n },\r\n '& .tile__actionBar': {\r\n display: 'flex',\r\n height: '-webkit-fill-available',\r\n alignItems: 'center',\r\n paddingLeft: '20px',\r\n paddingRight: '20px',\r\n },\r\n\r\n '& .tile__content': {\r\n display: 'flex',\r\n height: '-webkit-fill-available',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n '& .chart-container': {\r\n width: '50%',\r\n paddingTop: '5px',\r\n },\r\n },\r\n\r\n});\r\n","export const triggerSummaryBarEvent = (tagIds) => {\r\n const event = new CustomEvent('turnOnInsightSummaryBar', { detail: { tagIds } });\r\n document.dispatchEvent(event);\r\n};\r\n\r\nexport const triggerDashboardEvent = (tagId, isToggleOn) => {\r\n const event = new CustomEvent('toggleWebInsight', { detail: { tagId, isToggleOn } });\r\n document.dispatchEvent(event);\r\n};\r\n","import React, { useMemo, useContext } from 'react';\r\nimport { useBoolean } from '@fluentui/react-hooks';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { InstrumentationContext } from '@bingads-webui-react/hoc-with-instrumentation';\r\n\r\nimport { PrimaryButton, DefaultButton, Modal, getTheme, mergeStyleSets } from '@fluentui/react';\r\nimport InsightOffGraph from '../styles/svg/insight-off.svg';\r\n\r\nimport { getStyles } from '../styles';\r\nimport { triggerDashboardEvent, triggerSummaryBarEvent } from '../util';\r\n\r\nconst InsightDashboardOff = ({\r\n i18n, turnOnInsight, edm, scope,\r\n}) => {\r\n const classes = useDefaultStyles(getStyles);\r\n const [isModalOpen, { setTrue: showModal, setFalse: hideModal }] = useBoolean(false);\r\n const instrumentation = useContext(InstrumentationContext);\r\n const { activity } = useMemo(() => instrumentation.createScenarioAndActivity({\r\n scenarioName: 'InsightDashboard',\r\n activityName: 'InsightDashboardActivity',\r\n }), [instrumentation]);\r\n\r\n const theme = getTheme();\r\n const contentStyles = mergeStyleSets({\r\n container: {\r\n width: '40%',\r\n flexFlow: 'column nowrap',\r\n alignItems: 'stretch',\r\n },\r\n header: [\r\n theme.fonts.xLarge,\r\n {\r\n flex: '1 1 auto',\r\n borderTop: `4px solid ${theme.palette.themePrimary}`,\r\n color: theme.palette.neutralPrimary,\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: '12px 12px 14px 24px',\r\n },\r\n ],\r\n body: {\r\n flex: '4 4 auto',\r\n padding: '0 24px 24px 24px',\r\n overflowY: 'hidden',\r\n },\r\n footer: {\r\n display: 'flex',\r\n padding: '0 24px 24px 24px',\r\n ' & button': {\r\n marginRight: '8px',\r\n },\r\n },\r\n });\r\n\r\n const onButtonClick = () => {\r\n turnOnInsight();\r\n };\r\n\r\n const pageText = useMemo(() => ({\r\n title: i18n.getString(_TL_('Enable UET insights in one click')),\r\n description: i18n.getString(_TL_('Enable UET insights to learn more about how customers engage with your website and gain understanding about your website traffic.')),\r\n buttonText: i18n.getString(_TL_('Enable UET Insights for this tag')),\r\n enableAllTagsbuttonText: i18n.getString(_TL_('Enable UET Insights for all UET tags under this Manager Account')),\r\n modalHeader: i18n.getString(_TL_('Update all your UET tags?')),\r\n modalText: i18n.getString(_TL_('Enable UET Insights for all tags under this Manager Account. You can change this at any time in the All Tags page.')),\r\n }), [i18n]);\r\n\r\n const enableAllTags = () => {\r\n const tagsPromise = edm\r\n .Tags\r\n .get({ top: 200, select: ['Id', 'IsWebInsightsEnabled'] }).toPromise();\r\n tagsPromise.then((tagResponse) => {\r\n if (tagResponse && tagResponse.value) {\r\n if (tagResponse.value.length > 0) {\r\n const tags = tagResponse.value;\r\n const payload = tags.reduce((acc, tag) => {\r\n if (!tag.IsWebInsightsEnabled) {\r\n acc.push({ Id: tag.Id, IsWebInsightsEnabled: true });\r\n }\r\n return acc;\r\n }, []);\r\n if (payload.length === 0) {\r\n return;\r\n }\r\n\r\n edm\r\n .Tags['Default.UpdateTagsWebInsightsSetting']\r\n .$makeCall({ payload: { Tags: payload } })\r\n .toPromise()\r\n .then((response) => {\r\n const hasError = response.value.map(a => a.Errors).filter(a => a && a.length > 0).length > 0;\r\n if (hasError) {\r\n activity.error(`Failed to update tags: ${JSON.stringify(response.value)}`);\r\n return;\r\n }\r\n triggerSummaryBarEvent(tags.map(tag => tag.Id));\r\n triggerDashboardEvent(scope.values.tagId, true);\r\n })\r\n .catch((error) => {\r\n activity.error(error);\r\n });\r\n }\r\n }\r\n }).catch((error) => {\r\n activity.error(`Could not fetch tags: ${error}`);\r\n });\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \"Insight-Dashboard-Turnoff-graph\"\r\n
\r\n
\r\n

{pageText.title}

\r\n
\r\n
\r\n

{pageText.description}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n { showModal(); }} />\r\n
\r\n
\r\n\r\n {showModal && (\r\n \r\n
\r\n {pageText.modalHeader}\r\n
\r\n
\r\n {`${pageText.modalText} `}\r\n \r\n {i18n.getString(_TL_('Learn More'))}\r\n \r\n
\r\n
\r\n { hideModal(); enableAllTags(); }} text={i18n.getString(_TL_('Confirm'))} />\r\n \r\n
\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\n\r\nInsightDashboardOff.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n turnOnInsight: PropTypes.func,\r\n edm: PropTypes.func.isRequired,\r\n scope: PropTypes.shape({\r\n values: PropTypes.shape({\r\n tagId: PropTypes.string,\r\n }),\r\n }).isRequired,\r\n};\r\n\r\nInsightDashboardOff.defaultProps = {\r\n turnOnInsight: () => {},\r\n};\r\n\r\nexport default InsightDashboardOff;\r\n","import _ from 'underscore';\r\n\r\nexport const defaultNoDataNumber = -42;\r\n\r\nconst OperatorMap = {\r\n $StartsWith: 'StartsWith',\r\n $Equals: 'Equals',\r\n $Contains: 'Contains',\r\n $EndsWith: 'EndsWith',\r\n};\r\n\r\n// parse out the country code from \"Enum.Country'Country'\"\r\nconst parseCountryCode = (country) => {\r\n const countryName = country.split(\"Enum.Country'\")[1];\r\n const trimedCountryName = countryName.substring(0, countryName.length - 1);\r\n return trimedCountryName;\r\n};\r\n\r\n// parse out device code from \"Enum.Device'PC'\"\r\nconst parseDeviceCode = (device) => {\r\n const deviceCode = device.split(\"Enum.Device'\")[1];\r\n const trimedDeviceCode = deviceCode.substring(0, deviceCode.length - 1);\r\n return trimedDeviceCode;\r\n};\r\n\r\nexport const createPayload = (filter, startDate, endDate, timeZone) => {\r\n const filterPayload = {\r\n StartDate: startDate,\r\n EndDate: endDate,\r\n TimeZoneId: timeZone,\r\n CountryFilter: [],\r\n DeviceFilter: [],\r\n PageUrlFilters: [],\r\n };\r\n\r\n if (!filter || _.isEmpty(filter)) {\r\n filterPayload.CountryFilter = filterPayload.CountryFilter.join(',');\r\n filterPayload.DeviceFilter = filterPayload.DeviceFilter.join(',');\r\n return filterPayload;\r\n }\r\n\r\n const filterItemKey = Object.keys(filter)[0];\r\n const filterItems = filterItemKey === '$and' ? filter[filterItemKey] : [filter];\r\n\r\n _.each(filterItems, (item) => {\r\n // get key of object item\r\n const key = Object.keys(item)[0];\r\n const value = item[key];\r\n if (key === 'VisitedUrl') {\r\n const operator = Object.keys(value)[0];\r\n filterPayload.PageUrlFilters.push({\r\n Operator: OperatorMap[operator],\r\n Value: value[operator],\r\n });\r\n } else if (key === 'Country') {\r\n _.each(value.$in, (v) => {\r\n const countryCode = parseCountryCode(v);\r\n filterPayload.CountryFilter.push(countryCode);\r\n });\r\n } else {\r\n _.each(value.$in, (v) => {\r\n const deviceCode = parseDeviceCode(v);\r\n filterPayload.DeviceFilter.push(deviceCode);\r\n });\r\n }\r\n });\r\n\r\n filterPayload.CountryFilter = filterPayload.CountryFilter.join(',');\r\n filterPayload.DeviceFilter = filterPayload.DeviceFilter.join(',');\r\n\r\n return filterPayload;\r\n};\r\n\r\nexport const formatResponse = (response, itemName, valueName) => {\r\n if (!response) {\r\n return [];\r\n }\r\n\r\n const data = _.map(response, (value) => {\r\n const item = value[itemName];\r\n const itemValue = value[valueName];\r\n return {\r\n item,\r\n count: itemValue,\r\n };\r\n });\r\n\r\n return data;\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { HelpPopup } from '@bingads-webui-react/help-popup';\r\nimport { Spinner, SpinnerSize } from '@fluentui/react/lib/Spinner';\r\nimport { defaultNoDataNumber } from '../data/util';\r\n\r\nconst MetricBlock = ({ metricData }) => {\r\n const {\r\n underlineColor,\r\n title,\r\n helpId,\r\n unit,\r\n count,\r\n isLoading,\r\n } = metricData;\r\n return (\r\n
\r\n \r\n
\r\n \r\n {title}\r\n \r\n
\r\n \r\n
\r\n
\r\n {isLoading && }\r\n {!isLoading && {count === defaultNoDataNumber ? '--' : count}}\r\n
\r\n
\r\n {unit}\r\n
\r\n \r\n );\r\n};\r\n\r\nMetricBlock.propTypes = {\r\n metricData: PropTypes.shape({\r\n underlineColor: PropTypes.string,\r\n title: PropTypes.string,\r\n helpId: PropTypes.string,\r\n unit: PropTypes.string,\r\n count: PropTypes.number,\r\n }),\r\n isLoading: PropTypes.bool,\r\n};\r\n\r\nMetricBlock.defaultProps = {\r\n metricData: {\r\n underlineColor: 'grey',\r\n title: 'default title',\r\n helpId: '',\r\n unit: 'default unit',\r\n count: 42,\r\n },\r\n isLoading: false,\r\n};\r\n\r\nexport default MetricBlock;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\n\r\nimport { getStyles } from '../../styles';\r\nimport { useTotalSessionCountData } from '../data/useTotalSessionCountData';\r\nimport { useAverageActiveTimeData } from '../data/useAverageActiveTimeData';\r\nimport { useQuickbacksData } from '../data/useQuickData';\r\nimport MetricBlock from './metric-block';\r\nimport { defaultNoDataNumber } from '../data/util';\r\n\r\nconst Metrics = {\r\n totalSessionCount: {\r\n title: _TL_('Total session count'),\r\n unit: _TL_('count'),\r\n helpId: 'pop_BA_UET_Insights_TotalSessionCount',\r\n underlineColor: '#00188F',\r\n },\r\n AverageActiveTime: {\r\n title: _TL_('Average active time'),\r\n unit: _TL_('seconds'),\r\n helpId: 'pop_BA_UET_Insights_AvgActiveTime',\r\n underlineColor: '#E3008C',\r\n },\r\n Quickbacks: {\r\n title: _TL_('Quickbacks'),\r\n unit: _TL_('count'),\r\n helpId: 'pop_BA_UET_Insights_Quickbacks',\r\n underlineColor: '#4B003F',\r\n },\r\n};\r\n\r\n\r\nconst MetricGroup = (props) => {\r\n const {\r\n i18n, fetchTileData, instrumentation, isFilterReady,\r\n } = props;\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const {\r\n data: totalSessionCountData,\r\n isLoading: isTotelSessionCountDataLoading,\r\n } = useTotalSessionCountData({\r\n fetchTileData, instrumentation, isFilterReady,\r\n });\r\n\r\n const {\r\n data: AverageActiveTimeData,\r\n isLoading: isAverageActiveTimeDataLoading,\r\n } = useAverageActiveTimeData({\r\n fetchTileData, instrumentation, isFilterReady,\r\n });\r\n\r\n const {\r\n data: QuickbacksData,\r\n isLoading: isQuickbacksDataLoading,\r\n } = useQuickbacksData({\r\n fetchTileData, instrumentation, isFilterReady,\r\n });\r\n\r\n const isAverageTimeGreaterThan60 = AverageActiveTimeData !== defaultNoDataNumber && AverageActiveTimeData > 60;\r\n const AverageActiveTimeConverted = isAverageTimeGreaterThan60 ? Math.floor(AverageActiveTimeData / 60) : AverageActiveTimeData;\r\n const AverageActiveTimeUnit = isAverageTimeGreaterThan60 ? i18n.getString(_TL_('minutes')) : i18n.getString(_TL_('seconds'));\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nMetricGroup.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nMetricGroup.defaultProps = {\r\n};\r\n\r\nexport default MetricGroup;\r\n","import { useEffect, useState, useCallback } from 'react';\r\nimport { defaultNoDataNumber } from './util';\r\n\r\nexport function useTotalSessionCountData({\r\n fetchTileData, instrumentation, isFilterReady,\r\n}) {\r\n const [data, setData] = useState(defaultNoDataNumber);\r\n const [isLoaded, setisLoaded] = useState(false);\r\n const [isLoading, setisLoading] = useState(false);\r\n\r\n const onError = useCallback((error) => {\r\n instrumentation.error('FetchFetchTotalSessionCount', error, 'Default.GetWebInsights');\r\n }, [instrumentation]);\r\n\r\n useEffect(() => {\r\n if (!fetchTileData) return undefined;\r\n setisLoading(true);\r\n setisLoaded(false);\r\n\r\n if (!isFilterReady) return undefined;\r\n\r\n const cachedFetchTileData = fetchTileData('TotalSessionCounts');\r\n instrumentation.log('FetchTotalSessionCount', 'Start fetching Total Session Count', 'Default.GetWebInsights');\r\n const totalSessionCountPromise = cachedFetchTileData.toPromise()\r\n .then((response) => {\r\n instrumentation.log('FetchTotalSessionCount', `Total Session Count fetched successfully res = ${response}`, 'Default.GetWebInsights');\r\n setData(response.TotalSessionCountsResult);\r\n });\r\n\r\n\r\n totalSessionCountPromise\r\n .catch(onError).finally(() => {\r\n setisLoading(false);\r\n setisLoaded(true);\r\n });\r\n\r\n return () => {\r\n cachedFetchTileData.invalidate();\r\n };\r\n }, [fetchTileData, instrumentation, isFilterReady, onError]);\r\n\r\n return {\r\n data,\r\n isLoaded,\r\n isLoading,\r\n };\r\n}\r\n","import { useEffect, useState, useCallback } from 'react';\r\nimport { defaultNoDataNumber } from './util';\r\n\r\nexport function useAverageActiveTimeData({\r\n fetchTileData, instrumentation, isFilterReady,\r\n}) {\r\n const [data, setData] = useState(defaultNoDataNumber);\r\n const [isLoaded, setisLoaded] = useState(false);\r\n const [isLoading, setisLoading] = useState(false);\r\n\r\n const onError = useCallback((error) => {\r\n instrumentation.error('FetchAverageActiveTime', error, 'Default.GetWebInsights');\r\n }, [instrumentation]);\r\n\r\n\r\n useEffect(() => {\r\n if (!fetchTileData) return undefined;\r\n\r\n setisLoading(true);\r\n setisLoaded(false);\r\n\r\n if (!isFilterReady) return undefined;\r\n\r\n const cachedFetchTileData = fetchTileData('AverageActiveTime');\r\n\r\n const AverageTimePromise = cachedFetchTileData.toPromise()\r\n .then((response) => {\r\n instrumentation.log('FetchAverageActiveTime', `Average Active Time fetched successfully res = ${response}`, 'Default.GetWebInsights');\r\n setData(response.AverageActiveTimeResult);\r\n });\r\n\r\n AverageTimePromise\r\n .catch(onError).finally(() => {\r\n setisLoading(false);\r\n setisLoaded(true);\r\n });\r\n\r\n return () => {\r\n cachedFetchTileData.invalidate();\r\n };\r\n }, [onError, fetchTileData, instrumentation, isFilterReady]);\r\n\r\n return {\r\n data,\r\n isLoaded,\r\n isLoading,\r\n };\r\n}\r\n","import { useEffect, useState, useCallback } from 'react';\r\nimport { defaultNoDataNumber } from './util';\r\n\r\nexport function useQuickbacksData({\r\n fetchTileData, instrumentation, isFilterReady,\r\n}) {\r\n const [data, setData] = useState(defaultNoDataNumber);\r\n const [isLoaded, setisLoaded] = useState(false);\r\n const [isLoading, setisLoading] = useState(true);\r\n\r\n const onError = useCallback((error) => {\r\n instrumentation.error('FetchQuickbacks', error, 'Default.GetWebInsights');\r\n }, [instrumentation]);\r\n\r\n\r\n useEffect(() => {\r\n if (!fetchTileData) return undefined;\r\n\r\n setisLoading(true);\r\n setisLoaded(false);\r\n\r\n if (!isFilterReady) return undefined;\r\n\r\n const cachedFetchTileData = fetchTileData('QuickBacks');\r\n\r\n const QuickBackPromise = cachedFetchTileData.toPromise()\r\n .then((response) => {\r\n instrumentation.log('FetchQuickbacks', `Quickbacks fetched successfully res = ${response}`, 'Default.GetWebInsights');\r\n setData(response.QuickBackResult);\r\n });\r\n\r\n QuickBackPromise\r\n .catch(onError).finally(() => {\r\n setisLoading(false);\r\n setisLoaded(true);\r\n });\r\n\r\n\r\n return () => {\r\n cachedFetchTileData.invalidate();\r\n };\r\n }, [onError, fetchTileData, instrumentation, isFilterReady]);\r\n\r\n return {\r\n data,\r\n isLoaded,\r\n isLoading,\r\n };\r\n}\r\n","import { getTheme } from '@fluentui/react';\r\n\r\nconst { palette } = getTheme();\r\n\r\n// TODO: Change to get color from palette\r\nexport const getTileStyles = () => {\r\n const cardContainer = {\r\n minHeight: '100px',\r\n width: '520px',\r\n border: 'solid 1px lightgray',\r\n fontSize: '14px',\r\n color: palette.neutralPrimary,\r\n display: 'grid',\r\n gridTemplateColumns: '100%',\r\n background: palette.white,\r\n 'box-shadow': '0px 0.3px 0.9px rgba(0, 0, 0, 0.108), 0px 1.6px 3.6px rgba(0, 0, 0, 0.132)',\r\n 'border-radius': '2px',\r\n };\r\n\r\n const wideCardContainer = {\r\n width: '100%',\r\n };\r\n\r\n const cardSection = {\r\n paddingLeft: '16px',\r\n paddingRight: '16px',\r\n };\r\n\r\n const headerBorder = {\r\n borderBottom: `solid 1px ${palette.neutralLight}`,\r\n };\r\n\r\n const headerContainer = {\r\n gridRow: '1',\r\n paddingTop: '12px',\r\n paddingBottom: '7px',\r\n height: '40px',\r\n };\r\n\r\n const headerContentContainer = {\r\n display: 'flex',\r\n };\r\n\r\n const dropdownContainer = {\r\n display: 'flex',\r\n };\r\n\r\n const closeButton = {\r\n color: palette.neutralSecondary,\r\n '&:hover': {\r\n color: palette.neutralSecondary,\r\n background: 'transparent',\r\n },\r\n };\r\n\r\n const contentContainer = {\r\n minHeight: '300px',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n marginTop: '0px',\r\n marginBottom: '8px',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n\r\n '& .chart-container': {\r\n width: '100%',\r\n },\r\n };\r\n\r\n const footerContainer = {\r\n gridRow: '3',\r\n 'margin-top': '8px',\r\n 'margin-bottom': '12px',\r\n };\r\n const footerContentContainer = {\r\n minHeight: '30px',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n '& a': {\r\n paddingLeft: '20px',\r\n paddingRight: '20px',\r\n fontWeight: 600,\r\n },\r\n };\r\n\r\n const footerButton = {\r\n backgroundColor: 'white',\r\n float: 'left',\r\n 'font-style': 'normal',\r\n 'font-weight': '600',\r\n 'font-size': '14px',\r\n 'line-height': '20px',\r\n };\r\n\r\n const footerLink = {\r\n textDecoration: 'underline',\r\n };\r\n\r\n const headerText = {\r\n fontWeight: '600',\r\n fontStyle: 'normal',\r\n display: 'inline-block',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n height: '100%',\r\n width: '100%',\r\n color: palette.neutralPrimary,\r\n };\r\n\r\n const smallHeaderText = {\r\n fontSize: '14px',\r\n 'line-height': '20px',\r\n whiteSpace: 'nowrap',\r\n };\r\n\r\n const largeHeaderText = {\r\n fontSize: '24px',\r\n };\r\n\r\n return {\r\n cardSection,\r\n headerBorder,\r\n headerContainer,\r\n headerContentContainer,\r\n headerText,\r\n smallHeaderText,\r\n largeHeaderText,\r\n dropdownContainer,\r\n closeButton,\r\n contentContainer,\r\n cardContainer,\r\n wideCardContainer,\r\n footerContainer,\r\n footerContentContainer,\r\n footerButton,\r\n footerLink,\r\n };\r\n};\r\n\r\nexport const cardStyles = {\r\n shimmerItem: { root: { marginBottom: '5px' } },\r\n};\r\n\r\n","import React, { Fragment } from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport { HighchartReactWrapper } from '@bingads-webui-react/highchart-react-wrapper';\r\n\r\nconst LegendGrid = ({ data }) => (\r\n \r\n {_.map(data, item => (\r\n \r\n
\r\n {item.name}\r\n
\r\n {`${item.percentage}%`}\r\n \r\n {item.y}\r\n \r\n \r\n ))}\r\n \r\n);\r\n\r\nconst DonutChart = ({ data, containerName }) => {\r\n const pieOptions = {\r\n chart: {\r\n type: 'pie',\r\n height: 280,\r\n margin: [0, 0, 0, 0],\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n plotOptions: {\r\n pie: {\r\n allowPointSelect: false,\r\n borderColor: null,\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n endAngle: 360,\r\n startAngle: 0,\r\n size: 250,\r\n states: {\r\n hover: {\r\n enabled: true,\r\n },\r\n },\r\n },\r\n series: {\r\n animation: false,\r\n },\r\n },\r\n title: {\r\n text: null,\r\n },\r\n series: [{\r\n type: 'pie',\r\n data,\r\n showInLegend: false,\r\n innerSize: '65%',\r\n }],\r\n legend: {\r\n enabled: true,\r\n itemDistance: 14,\r\n itemStyle: {\r\n fontWeight: 'regular',\r\n },\r\n symbolRadius: 0,\r\n },\r\n tooltip: {\r\n followPointer: false,\r\n backgroundColor: '#ffffff',\r\n borderWidth: 0,\r\n distance: 0,\r\n shape: 'square',\r\n pointFormat: '

{point.y:.0f}

',\r\n },\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DonutChart;\r\n\r\n\r\nDonutChart.propTypes = {\r\n options: PropTypes.shape({\r\n points: PropTypes.arrayOf(PropTypes.shape({\r\n color: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired,\r\n y: PropTypes.number.isRequired,\r\n })).isRequired,\r\n }).isRequired,\r\n\r\n containerName: PropTypes.string,\r\n};\r\n\r\nDonutChart.defaultProps = {\r\n containerName: 'chart-container',\r\n};\r\n","import React, { Fragment, useMemo } from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport DonutChart from './base-charts/donut-chart';\r\n\r\nconst Devices = {\r\n PC: {\r\n name: _TL_('PC'),\r\n color: '#A97CC5',\r\n },\r\n Mobile: {\r\n name: _TL_('Mobile'),\r\n color: '#DA71B3',\r\n },\r\n Tablet: {\r\n name: _TL_('Tablet'),\r\n color: '#418DED',\r\n },\r\n Other: {\r\n name: _TL_('Other'),\r\n color: '#0299A3',\r\n },\r\n // Temporary mock data from Clarity workaround\r\n 'Item 1': {\r\n name: _TL_('Item 1'),\r\n color: '#0299A3',\r\n },\r\n 'Item 2': {\r\n name: _TL_('Item 2'),\r\n color: '#418DED',\r\n },\r\n};\r\n\r\nconst DevicesChart = (props) => {\r\n const {\r\n i18n, data,\r\n } = props;\r\n\r\n const totalCount = useMemo(() => _.reduce(data, (memo, item) => memo + item.count, 0), [data]);\r\n\r\n const formattedData = useMemo(() => {\r\n // parse array of objects into array of points\r\n const points = _.map(data, (item) => {\r\n const device = Devices[item.item] ? Devices[item.item] : Devices.Other;\r\n return {\r\n name: i18n.getString(device.name),\r\n y: item.count,\r\n color: device.color,\r\n percentage: Math.round((item.count / totalCount) * 100),\r\n };\r\n });\r\n return points;\r\n }, [data, i18n, totalCount]);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nDevicesChart.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n\r\n data: PropTypes.arrayOf(PropTypes.shape({\r\n item: PropTypes.string,\r\n count: PropTypes.number,\r\n })),\r\n};\r\n\r\nDevicesChart.defaultProps = {\r\n data: [\r\n { item: 'Default', count: 400 },\r\n { item: 'Default', count: 300 },\r\n ],\r\n};\r\n\r\nexport default DevicesChart;\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport _ from 'underscore';\r\nimport React, { Fragment, useState, useMemo } from 'react';\r\nimport PropTypes from 'prop-types'; import { Link } from '@fluentui/react';\r\nimport { HighchartReactWrapper } from '@bingads-webui-react/highchart-react-wrapper';\r\n\r\nconst SingleBar = ({ item, seriesSum }) => {\r\n const barOption = {\r\n title: undefined,\r\n credits: {\r\n enabled: false,\r\n },\r\n chart: {\r\n type: 'bar',\r\n height: '25px',\r\n margin: [0, 0, 0, 0],\r\n },\r\n\r\n xAxis: {\r\n crosshair: false,\r\n tickLength: 0,\r\n lineWidth: 0,\r\n labels: {\r\n enabled: false,\r\n },\r\n categories: [item.name],\r\n },\r\n\r\n yAxis: {\r\n min: 0,\r\n max: seriesSum * 1.05,\r\n gridLineWidth: 0,\r\n labels: {\r\n enabled: false,\r\n },\r\n },\r\n\r\n legend: {\r\n enabled: false,\r\n },\r\n\r\n tooltip: {\r\n enabled: false,\r\n },\r\n\r\n series: [{\r\n name: item.name,\r\n colorByPoint: false,\r\n data: [item.y],\r\n color: item.color,\r\n }],\r\n\r\n plotOptions: {\r\n bar: {\r\n dataLabels: {\r\n enabled: true,\r\n },\r\n },\r\n series: {\r\n groupPadding: 0,\r\n pointPadding: 0,\r\n },\r\n },\r\n };\r\n\r\n\r\n return ();\r\n};\r\n\r\nconst BarChart = ({ data, containerName, i18n }) => {\r\n const [shouldShowMore, setShouldShowMore] = useState(false);\r\n const dataLength = data.length;\r\n const shouldShowToggle = useMemo(() => dataLength > 5, [dataLength]);\r\n const dataToShow = useMemo(() => (shouldShowMore ? data : _.first(data, 5)), [data, shouldShowMore]);\r\n const seriesSum = _.max(data, item => item.y);\r\n const linkLabel = useMemo(() => i18n.getString(shouldShowMore ? _TL_('Show less') : _TL_('Show more')), [i18n, shouldShowMore]);\r\n\r\n return (\r\n
\r\n {\r\n _.map(dataToShow, item => (\r\n \r\n {item.name}\r\n
\r\n \r\n \r\n ))\r\n }\r\n
\r\n {\r\n shouldShowToggle &&\r\n setShouldShowMore(!shouldShowMore)}>\r\n {linkLabel}\r\n \r\n }\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default BarChart;\r\n\r\nBarChart.propTypes = {\r\n options: PropTypes.shape({\r\n height: PropTypes.number.isRequired,\r\n width: PropTypes.number.isRequired,\r\n data: PropTypes.arrayOf(PropTypes.shape({\r\n color: PropTypes.string.isRequired,\r\n y: PropTypes.number.isRequired,\r\n })).isRequired,\r\n }).isRequired,\r\n\r\n containerName: PropTypes.string,\r\n};\r\n\r\nBarChart.defaultProps = {\r\n containerName: 'chart-container',\r\n};\r\n","export const getCountryValues = i18n => ({\r\n Afghanistan: i18n.getString(_TL_('Afghanistan')),\r\n 'Åland Islands': i18n.getString(_TL_('Åland Islands')),\r\n Albania: i18n.getString(_TL_('Albania')),\r\n Algeria: i18n.getString(_TL_('Algeria')),\r\n 'American Samoa': i18n.getString(_TL_('American Samoa')),\r\n Andorra: i18n.getString(_TL_('Andorra')),\r\n Angola: i18n.getString(_TL_('Angola')),\r\n Anguilla: i18n.getString(_TL_('Anguilla')),\r\n Antarctica: i18n.getString(_TL_('Antarctica')),\r\n 'Antigua and Barbuda': i18n.getString(_TL_('Antigua and Barbuda')),\r\n Argentina: i18n.getString(_TL_('Argentina')),\r\n Armenia: i18n.getString(_TL_('Armenia')),\r\n Aruba: i18n.getString(_TL_('Aruba')),\r\n Australia: i18n.getString(_TL_('Australia')),\r\n Austria: i18n.getString(_TL_('Austria')),\r\n Azerbaijan: i18n.getString(_TL_('Azerbaijan')),\r\n Bahamas: i18n.getString(_TL_('Bahamas')),\r\n Bahrain: i18n.getString(_TL_('Bahrain')),\r\n Bangladesh: i18n.getString(_TL_('Bangladesh')),\r\n Barbados: i18n.getString(_TL_('Barbados')),\r\n Belarus: i18n.getString(_TL_('Belarus')),\r\n Belgium: i18n.getString(_TL_('Belgium')),\r\n Belize: i18n.getString(_TL_('Belize')),\r\n Benin: i18n.getString(_TL_('Benin')),\r\n Bermuda: i18n.getString(_TL_('Bermuda')),\r\n Bhutan: i18n.getString(_TL_('Bhutan')),\r\n Bolivia: i18n.getString(_TL_('Bolivia')),\r\n Bonaire: i18n.getString(_TL_('Bonaire')),\r\n 'Bosnia and Herzegovina': i18n.getString(_TL_('Bosnia and Herzegovina')),\r\n Botswana: i18n.getString(_TL_('Botswana')),\r\n 'Bouvet Island': i18n.getString(_TL_('Bouvet Island')),\r\n Brazil: i18n.getString(_TL_('Brazil')),\r\n 'British Indian Ocean Territory': i18n.getString(_TL_('British Indian Ocean Territory')),\r\n Brunei: i18n.getString(_TL_('Brunei')),\r\n Bulgaria: i18n.getString(_TL_('Bulgaria')),\r\n 'Burkina Faso': i18n.getString(_TL_('Burkina Faso')),\r\n Burundi: i18n.getString(_TL_('Burundi')),\r\n Cambodia: i18n.getString(_TL_('Cambodia')),\r\n Cameroon: i18n.getString(_TL_('Cameroon')),\r\n Canada: i18n.getString(_TL_('Canada')),\r\n 'Cape Verde': i18n.getString(_TL_('Cape Verde')),\r\n 'Cayman Islands': i18n.getString(_TL_('Cayman Islands')),\r\n 'Central African Republic': i18n.getString(_TL_('Central African Republic')),\r\n Chad: i18n.getString(_TL_('Chad')),\r\n Chile: i18n.getString(_TL_('Chile')),\r\n China: i18n.getString(_TL_('China')),\r\n 'Christmas Island': i18n.getString(_TL_('Christmas Island')),\r\n 'Cocos (Keeling) Islands': i18n.getString(_TL_('Cocos (Keeling) Islands')),\r\n Colombia: i18n.getString(_TL_('Colombia')),\r\n Comoros: i18n.getString(_TL_('Comoros')),\r\n Congo: i18n.getString(_TL_('Congo')),\r\n 'Congo (DRC)': i18n.getString(_TL_('Congo (DRC)')),\r\n 'Cook Islands': i18n.getString(_TL_('Cook Islands')),\r\n 'Costa Rica': i18n.getString(_TL_('Costa Rica')),\r\n \"Côte d'Ivoire\": i18n.getString(_TL_(\"Côte d'Ivoire\")),\r\n Croatia: i18n.getString(_TL_('Croatia')),\r\n Cuba: i18n.getString(_TL_('Cuba')),\r\n Curaçao: i18n.getString(_TL_('Curaçao')),\r\n Cyprus: i18n.getString(_TL_('Cyprus')),\r\n 'Czech Republic': i18n.getString(_TL_('Czech Republic')),\r\n Denmark: i18n.getString(_TL_('Denmark')),\r\n Djibouti: i18n.getString(_TL_('Djibouti')),\r\n Dominica: i18n.getString(_TL_('Dominica')),\r\n 'Dominican Republic': i18n.getString(_TL_('Dominican Republic')),\r\n Ecuador: i18n.getString(_TL_('Ecuador')),\r\n Egypt: i18n.getString(_TL_('Egypt')),\r\n 'El Salvador': i18n.getString(_TL_('El Salvador')),\r\n 'Equatorial Guinea': i18n.getString(_TL_('Equatorial Guinea')),\r\n Eritrea: i18n.getString(_TL_('Eritrea')),\r\n Estonia: i18n.getString(_TL_('Estonia')),\r\n Ethiopia: i18n.getString(_TL_('Ethiopia')),\r\n 'Falkland Islands': i18n.getString(_TL_('Falkland Islands')),\r\n 'Faroe Islands': i18n.getString(_TL_('Faroe Islands')),\r\n Fiji: i18n.getString(_TL_('Fiji')),\r\n Finland: i18n.getString(_TL_('Finland')),\r\n France: i18n.getString(_TL_('France')),\r\n 'French Guiana': i18n.getString(_TL_('French Guiana')),\r\n 'French Polynesia': i18n.getString(_TL_('French Polynesia')),\r\n 'French Southern Territories': i18n.getString(_TL_('French Southern Territories')),\r\n Gabon: i18n.getString(_TL_('Gabon')),\r\n Gambia: i18n.getString(_TL_('Gambia')),\r\n Georgia: i18n.getString(_TL_('Georgia')),\r\n Germany: i18n.getString(_TL_('Germany')),\r\n Ghana: i18n.getString(_TL_('Ghana')),\r\n Gibraltar: i18n.getString(_TL_('Gibraltar')),\r\n Greece: i18n.getString(_TL_('Greece')),\r\n Greenland: i18n.getString(_TL_('Greenland')),\r\n Grenada: i18n.getString(_TL_('Grenada')),\r\n Guadeloupe: i18n.getString(_TL_('Guadeloupe')),\r\n Guam: i18n.getString(_TL_('Guam')),\r\n Guatemala: i18n.getString(_TL_('Guatemala')),\r\n Guernsey: i18n.getString(_TL_('Guernsey')),\r\n Guinea: i18n.getString(_TL_('Guinea')),\r\n 'Guinea-Bissau': i18n.getString(_TL_('Guinea-Bissau')),\r\n Guyana: i18n.getString(_TL_('Guyana')),\r\n Haiti: i18n.getString(_TL_('Haiti')),\r\n 'Heard Island and McDonald Islands': i18n.getString(_TL_('Heard Island and McDonald Islands')),\r\n 'Holy See (Vatican City State)': i18n.getString(_TL_('Holy See (Vatican City State)')),\r\n Honduras: i18n.getString(_TL_('Honduras')),\r\n 'Hong Kong SAR': i18n.getString(_TL_('Hong Kong SAR')),\r\n Hungary: i18n.getString(_TL_('Hungary')),\r\n Iceland: i18n.getString(_TL_('Iceland')),\r\n India: i18n.getString(_TL_('India')),\r\n Indonesia: i18n.getString(_TL_('Indonesia')),\r\n Iran: i18n.getString(_TL_('Iran')),\r\n Iraq: i18n.getString(_TL_('Iraq')),\r\n Ireland: i18n.getString(_TL_('Ireland')),\r\n 'Isle of Man': i18n.getString(_TL_('Isle of Man')),\r\n Israel: i18n.getString(_TL_('Israel')),\r\n Italy: i18n.getString(_TL_('Italy')),\r\n Jamaica: i18n.getString(_TL_('Jamaica')),\r\n Japan: i18n.getString(_TL_('Japan')),\r\n Jersey: i18n.getString(_TL_('Jersey')),\r\n Jordan: i18n.getString(_TL_('Jordan')),\r\n Kazakhstan: i18n.getString(_TL_('Kazakhstan')),\r\n Kenya: i18n.getString(_TL_('Kenya')),\r\n Kiribati: i18n.getString(_TL_('Kiribati')),\r\n 'North Korea': i18n.getString(_TL_('North Korea')),\r\n Korea: i18n.getString(_TL_('Korea')),\r\n Kuwait: i18n.getString(_TL_('Kuwait')),\r\n Kyrgyzstan: i18n.getString(_TL_('Kyrgyzstan')),\r\n Laos: i18n.getString(_TL_('Laos')),\r\n Latvia: i18n.getString(_TL_('Latvia')),\r\n Lebanon: i18n.getString(_TL_('Lebanon')),\r\n Lesotho: i18n.getString(_TL_('Lesotho')),\r\n Liberia: i18n.getString(_TL_('Liberia')),\r\n Libya: i18n.getString(_TL_('Libya')),\r\n Liechtenstein: i18n.getString(_TL_('Liechtenstein')),\r\n Lithuania: i18n.getString(_TL_('Lithuania')),\r\n Luxembourg: i18n.getString(_TL_('Luxembourg')),\r\n 'Macao SAR': i18n.getString(_TL_('Macao SAR')),\r\n 'North Macedonia': i18n.getString(_TL_('North Macedonia')),\r\n Madagascar: i18n.getString(_TL_('Madagascar')),\r\n Malawi: i18n.getString(_TL_('Malawi')),\r\n Malaysia: i18n.getString(_TL_('Malaysia')),\r\n Maldives: i18n.getString(_TL_('Maldives')),\r\n Mali: i18n.getString(_TL_('Mali')),\r\n Malta: i18n.getString(_TL_('Malta')),\r\n 'Marshall Islands': i18n.getString(_TL_('Marshall Islands')),\r\n Martinique: i18n.getString(_TL_('Martinique')),\r\n Mauritania: i18n.getString(_TL_('Mauritania')),\r\n Mauritius: i18n.getString(_TL_('Mauritius')),\r\n Mayotte: i18n.getString(_TL_('Mayotte')),\r\n Mexico: i18n.getString(_TL_('Mexico')),\r\n Micronesia: i18n.getString(_TL_('Micronesia')),\r\n Moldova: i18n.getString(_TL_('Moldova')),\r\n Monaco: i18n.getString(_TL_('Monaco')),\r\n Mongolia: i18n.getString(_TL_('Mongolia')),\r\n Montenegro: i18n.getString(_TL_('Montenegro')),\r\n Montserrat: i18n.getString(_TL_('Montserrat')),\r\n Morocco: i18n.getString(_TL_('Morocco')),\r\n Mozambique: i18n.getString(_TL_('Mozambique')),\r\n Myanmar: i18n.getString(_TL_('Myanmar')),\r\n Namibia: i18n.getString(_TL_('Namibia')),\r\n Nauru: i18n.getString(_TL_('Nauru')),\r\n Nepal: i18n.getString(_TL_('Nepal')),\r\n Netherlands: i18n.getString(_TL_('Netherlands')),\r\n 'New Caledonia': i18n.getString(_TL_('New Caledonia')),\r\n 'New Zealand': i18n.getString(_TL_('New Zealand')),\r\n Nicaragua: i18n.getString(_TL_('Nicaragua')),\r\n Niger: i18n.getString(_TL_('Niger')),\r\n Nigeria: i18n.getString(_TL_('Nigeria')),\r\n Niue: i18n.getString(_TL_('Niue')),\r\n 'Norfolk Island': i18n.getString(_TL_('Norfolk Island')),\r\n 'Northern Mariana Islands': i18n.getString(_TL_('Northern Mariana Islands')),\r\n Norway: i18n.getString(_TL_('Norway')),\r\n Oman: i18n.getString(_TL_('Oman')),\r\n Pakistan: i18n.getString(_TL_('Pakistan')),\r\n Palau: i18n.getString(_TL_('Palau')),\r\n 'Palestinian Authority': i18n.getString(_TL_('Palestinian Authority')),\r\n Panama: i18n.getString(_TL_('Panama')),\r\n 'Papua New Guinea': i18n.getString(_TL_('Papua New Guinea')),\r\n Paraguay: i18n.getString(_TL_('Paraguay')),\r\n Peru: i18n.getString(_TL_('Peru')),\r\n Philippines: i18n.getString(_TL_('Philippines')),\r\n 'Pitcairn Islands': i18n.getString(_TL_('Pitcairn Islands')),\r\n Poland: i18n.getString(_TL_('Poland')),\r\n Portugal: i18n.getString(_TL_('Portugal')),\r\n 'Puerto Rico': i18n.getString(_TL_('Puerto Rico')),\r\n Qatar: i18n.getString(_TL_('Qatar')),\r\n Réunion: i18n.getString(_TL_('Réunion')),\r\n Romania: i18n.getString(_TL_('Romania')),\r\n Russia: i18n.getString(_TL_('Russia')),\r\n Rwanda: i18n.getString(_TL_('Rwanda')),\r\n 'Saint Barthélemy': i18n.getString(_TL_('Saint Barthélemy')),\r\n 'St Helena, Ascension, Tristan da Cunha': i18n.getString(_TL_('St Helena, Ascension, Tristan da Cunha')),\r\n 'Saint Kitts and Nevis': i18n.getString(_TL_('Saint Kitts and Nevis')),\r\n 'Saint Lucia': i18n.getString(_TL_('Saint Lucia')),\r\n 'Saint Martin': i18n.getString(_TL_('Saint Martin')),\r\n 'Saint Pierre and Miquelon': i18n.getString(_TL_('Saint Pierre and Miquelon')),\r\n 'Saint Vincent and the Grenadines': i18n.getString(_TL_('Saint Vincent and the Grenadines')),\r\n Samoa: i18n.getString(_TL_('Samoa')),\r\n 'San Marino': i18n.getString(_TL_('San Marino')),\r\n 'São Tomé and Príncipe': i18n.getString(_TL_('São Tomé and Príncipe')),\r\n 'Saudi Arabia': i18n.getString(_TL_('Saudi Arabia')),\r\n Senegal: i18n.getString(_TL_('Senegal')),\r\n Serbia: i18n.getString(_TL_('Serbia')),\r\n Seychelles: i18n.getString(_TL_('Seychelles')),\r\n 'Sierra Leone': i18n.getString(_TL_('Sierra Leone')),\r\n Singapore: i18n.getString(_TL_('Singapore')),\r\n 'Sint Maarten': i18n.getString(_TL_('Sint Maarten')),\r\n Slovakia: i18n.getString(_TL_('Slovakia')),\r\n Slovenia: i18n.getString(_TL_('Slovenia')),\r\n 'Solomon Islands': i18n.getString(_TL_('Solomon Islands')),\r\n Somalia: i18n.getString(_TL_('Somalia')),\r\n 'South Africa': i18n.getString(_TL_('South Africa')),\r\n 'South Georgia and South Sandwich Islands': i18n.getString(_TL_('South Georgia and South Sandwich Islands')),\r\n 'South Sudan': i18n.getString(_TL_('South Sudan')),\r\n Spain: i18n.getString(_TL_('Spain')),\r\n 'Sri Lanka': i18n.getString(_TL_('Sri Lanka')),\r\n Sudan: i18n.getString(_TL_('Sudan')),\r\n Suriname: i18n.getString(_TL_('Suriname')),\r\n Svalbard: i18n.getString(_TL_('Svalbard')),\r\n Eswatini: i18n.getString(_TL_('Eswatini')),\r\n Sweden: i18n.getString(_TL_('Sweden')),\r\n Switzerland: i18n.getString(_TL_('Switzerland')),\r\n Syria: i18n.getString(_TL_('Syria')),\r\n Taiwan: i18n.getString(_TL_('Taiwan')),\r\n Tajikistan: i18n.getString(_TL_('Tajikistan')),\r\n Tanzania: i18n.getString(_TL_('Tanzania')),\r\n Thailand: i18n.getString(_TL_('Thailand')),\r\n 'Timor-Leste': i18n.getString(_TL_('Timor-Leste')),\r\n Togo: i18n.getString(_TL_('Togo')),\r\n Tokelau: i18n.getString(_TL_('Tokelau')),\r\n Tonga: i18n.getString(_TL_('Tonga')),\r\n 'Trinidad and Tobago': i18n.getString(_TL_('Trinidad and Tobago')),\r\n Tunisia: i18n.getString(_TL_('Tunisia')),\r\n Turkey: i18n.getString(_TL_('Turkey')),\r\n Turkmenistan: i18n.getString(_TL_('Turkmenistan')),\r\n 'Turks and Caicos Islands': i18n.getString(_TL_('Turks and Caicos Islands')),\r\n Tuvalu: i18n.getString(_TL_('Tuvalu')),\r\n Uganda: i18n.getString(_TL_('Uganda')),\r\n Ukraine: i18n.getString(_TL_('Ukraine')),\r\n 'United Arab Emirates': i18n.getString(_TL_('United Arab Emirates')),\r\n 'United Kingdom': i18n.getString(_TL_('United Kingdom')),\r\n 'United States': i18n.getString(_TL_('United States')),\r\n 'U.S. Outlying Islands': i18n.getString(_TL_('U.S. Outlying Islands')),\r\n Uruguay: i18n.getString(_TL_('Uruguay')),\r\n Uzbekistan: i18n.getString(_TL_('Uzbekistan')),\r\n Vanuatu: i18n.getString(_TL_('Vanuatu')),\r\n Venezuela: i18n.getString(_TL_('Venezuela')),\r\n Vietnam: i18n.getString(_TL_('Vietnam')),\r\n 'British Virgin Islands': i18n.getString(_TL_('British Virgin Islands')),\r\n 'U.S. Virgin Islands': i18n.getString(_TL_('U.S. Virgin Islands')),\r\n 'Wallis and Futuna': i18n.getString(_TL_('Wallis and Futuna')), // TODO: disputed, ask about this to Clickhouse group\r\n 'Western Sahara': i18n.getString(_TL_('Western Sahara')),\r\n Yemen: i18n.getString(_TL_('Yemen')),\r\n Zambia: i18n.getString(_TL_('Zambia')),\r\n Zimbabwe: i18n.getString(_TL_('Zimbabwe')),\r\n});\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { Fragment, useMemo } from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport BarChart from './base-charts/bar-chart';\r\nimport { getCountryValues } from '../../data/country';\r\n\r\nconst CountriesChart = (props) => {\r\n const {\r\n i18n, data,\r\n } = props;\r\n\r\n const color = '#5C1B86';\r\n const countryValues = useMemo(() => getCountryValues(i18n), [i18n]);\r\n\r\n const formattedData = useMemo(() =>\r\n _.map(data, item => ({\r\n name: countryValues[item.item] ? countryValues[item.item] : item.item,\r\n y: item.count,\r\n color,\r\n })), [countryValues, data]);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nCountriesChart.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n\r\n data: PropTypes.arrayOf(PropTypes.shape({\r\n item: PropTypes.string.isRequired,\r\n count: PropTypes.number.isRequired,\r\n })),\r\n};\r\n\r\nCountriesChart.defaultProps = {\r\n data: [],\r\n};\r\n\r\nexport default CountriesChart;\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\nimport React, { Fragment, useMemo } from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport BarChart from './base-charts/bar-chart';\r\n\r\nconst PageVisitedChart = (props) => {\r\n const {\r\n data,\r\n i18n,\r\n } = props;\r\n\r\n const color = '#0078D4';\r\n\r\n const formattedData = useMemo(() =>\r\n _.map(data, item => ({\r\n name: item.item,\r\n y: item.count,\r\n color,\r\n })), [data, i18n]);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nPageVisitedChart.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nPageVisitedChart.defaultProps = {\r\n};\r\n\r\nexport default PageVisitedChart;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst ContentStrings = {\r\n NoData: _TL_('No data available. '),\r\n Discription: _TL_('To update the tile, select a different data range or filter. If the tile remains blank, your account might have no data.'),\r\n};\r\n\r\nconst EmptyContent = (props) => {\r\n const {\r\n i18n,\r\n } = props;\r\n\r\n\r\n return (\r\n \r\n {i18n.getString(ContentStrings.NoData)}\r\n \r\n {i18n.getString(ContentStrings.Discription)}\r\n \r\n \r\n );\r\n};\r\n\r\nEmptyContent.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n};\r\n\r\nEmptyContent.defaultProps = {\r\n};\r\n\r\nexport default EmptyContent;\r\n","import React, { Fragment, useMemo, useRef, useCallback } from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport { Card } from '@bingads-webui-campaign-react/card';\r\nimport { Spinner, SpinnerSize } from '@fluentui/react/lib/Spinner';\r\n\r\nimport { getTileStyles } from '../../styles/tileStyles';\r\n\r\nimport DevicesChart from '../charts/devices-chart';\r\nimport CountriesChart from '../charts/countries-chart';\r\nimport PageVisitedChart from '../charts/page-visited-chart';\r\nimport EmptyContent from './empty-content';\r\n\r\nconst TileConfig = {\r\n PagesByVisits: {\r\n title: _TL_('Popular pages by visits '),\r\n onActionClick: () => { },\r\n buttonLabel: _TL_('Manage conversion goals'),\r\n buttonRoute: '/campaign/vnext/conversiongoals',\r\n },\r\n Devices: {\r\n title: _TL_('Devices'),\r\n onActionClick: () => { },\r\n buttonLabel: _TL_('Manage audiences'),\r\n buttonRoute: '/campaign/vnext/audienceslibrary',\r\n },\r\n Countries: {\r\n title: _TL_('Countries'),\r\n onActionClick: () => { },\r\n buttonLabel: _TL_('Manage audiences'),\r\n buttonRoute: '/campaign/vnext/audienceslibrary',\r\n },\r\n};\r\n\r\nconst DashboardTile = (props) => {\r\n const {\r\n i18n, data, tileType, isLoading, scope,\r\n } = props;\r\n\r\n const scopeRef = useRef(scope);\r\n scopeRef.current = scope;\r\n const onButtonClick = useCallback(destination => () => scopeRef.current.save(destination), []);\r\n\r\n const currentTile = useMemo(() => ({\r\n title: i18n.getString(TileConfig[tileType].title),\r\n onActionClick: onButtonClick(TileConfig[tileType].buttonRoute),\r\n buttonLabel: i18n.getString(TileConfig[tileType].buttonLabel),\r\n }), [i18n, onButtonClick, tileType]);\r\n\r\n const cardConfig = useMemo(() => ({\r\n getCardStyles: getTileStyles,\r\n cardClassName: 'insight-dashboard-tile',\r\n isLoading,\r\n config: {\r\n wide: true,\r\n header: {\r\n isRequired: true,\r\n renderHeaderText: () => currentTile.title,\r\n actions: [],\r\n onCloseTile: undefined,\r\n i18n,\r\n isLargeHeader: false,\r\n },\r\n footer: {\r\n isRequired: true,\r\n buttons: [{\r\n text: currentTile.buttonLabel,\r\n type: 'default',\r\n callback: currentTile.onActionClick,\r\n }],\r\n },\r\n content: {\r\n isShimmerRequired: false,\r\n onRenderShimmer: _.noop,\r\n },\r\n },\r\n }), [currentTile.buttonLabel, currentTile.onActionClick, currentTile.title, i18n, isLoading]);\r\n\r\n const renderContent = () => {\r\n if (isLoading) {\r\n return ;\r\n }\r\n if (!data || !data.length) {\r\n return ;\r\n }\r\n return (\r\n \r\n {tileType === 'Devices' && }\r\n {tileType === 'Countries' && }\r\n {tileType === 'PagesByVisits' && }\r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n {renderContent()}\r\n \r\n );\r\n};\r\n\r\nDashboardTile.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n onActionClick: PropTypes.func,\r\n children: PropTypes.node,\r\n};\r\n\r\nDashboardTile.defaultProps = {\r\n onActionClick: undefined,\r\n children: null,\r\n};\r\n\r\nexport default DashboardTile;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { getStyles } from '../../styles';\r\nimport DashboardTile from './tile';\r\nimport { usePagesByVisitsData } from '../data/usePagesByVisitsData';\r\nimport { useDevicesData } from '../data/useDevicesData';\r\nimport { useCountriesData } from '../data/useCountriesData';\r\n\r\nconst TileGroup = (props) => {\r\n const {\r\n i18n, fetchTileData, scope, instrumentation, isFilterReady,\r\n } = props;\r\n const classes = useDefaultStyles(getStyles);\r\n\r\n const {\r\n data: pageVisitedData,\r\n isLoading: isPageVisitedDataLoading,\r\n } = usePagesByVisitsData({\r\n fetchTileData, instrumentation, isFilterReady,\r\n });\r\n\r\n const {\r\n data: devicesData,\r\n isLoading: isDevicesDataLoading,\r\n } = useDevicesData({\r\n fetchTileData, instrumentation, isFilterReady,\r\n });\r\n\r\n const {\r\n data: countriesData,\r\n isLoading: isCountriesDataLoading,\r\n } = useCountriesData({\r\n fetchTileData, instrumentation, isFilterReady,\r\n });\r\n\r\n\r\n return (\r\n
\r\n {/* Left Column */}\r\n
\r\n \r\n \r\n
\r\n {/* Right Column */}\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nTileGroup.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n\r\n fetchTileData: PropTypes.func,\r\n};\r\n\r\nTileGroup.defaultProps = {\r\n fetchTileData: () => {},\r\n};\r\n\r\nexport default TileGroup;\r\n","import { useEffect, useState, useCallback } from 'react';\r\nimport { formatResponse } from './util';\r\n\r\nexport function usePagesByVisitsData({\r\n fetchTileData, instrumentation, isFilterReady,\r\n}) {\r\n const [data, setData] = useState([]);\r\n const [isLoaded, setisLoaded] = useState(false);\r\n const [isLoading, setisLoading] = useState(true);\r\n\r\n const onError = useCallback((error) => {\r\n instrumentation.error('FetchPopularPage', error, 'Default.GetWebInsights');\r\n }, [instrumentation]);\r\n\r\n\r\n useEffect(() => {\r\n if (!fetchTileData) return undefined;\r\n setisLoading(true);\r\n setisLoaded(false);\r\n if (!isFilterReady) return undefined;\r\n\r\n const cachedFetchTileData = fetchTileData('PopularPages');\r\n const PagesByVisitsPromise = cachedFetchTileData.toPromise().then((result) => {\r\n instrumentation.log('FetchPopularPage', result, 'Default.GetWebInsights');\r\n const res = formatResponse(result.PopularPagesResult, 'PopularPageURL', 'VisitorCount');\r\n setData(res);\r\n });\r\n\r\n PagesByVisitsPromise\r\n .catch(onError).finally(() => {\r\n setisLoading(false);\r\n setisLoaded(true);\r\n });\r\n\r\n\r\n return () => {\r\n cachedFetchTileData.invalidate();\r\n };\r\n }, [onError, fetchTileData, instrumentation, isFilterReady]);\r\n\r\n return {\r\n data,\r\n isLoaded,\r\n isLoading,\r\n };\r\n}\r\n","import { useEffect, useState, useCallback } from 'react';\r\nimport { formatResponse } from './util';\r\n\r\nexport function useDevicesData({\r\n fetchTileData, instrumentation, isFilterReady,\r\n}) {\r\n const [data, setData] = useState(0);\r\n const [isLoaded, setisLoaded] = useState(false);\r\n const [isLoading, setisLoading] = useState(true);\r\n\r\n const onError = useCallback((error) => {\r\n instrumentation.error('FetchDevicesData', error, 'Default.GetWebInsights');\r\n }, [instrumentation]);\r\n\r\n\r\n useEffect(() => {\r\n if (!fetchTileData) return undefined;\r\n setisLoading(true);\r\n setisLoaded(false);\r\n if (!isFilterReady) return undefined;\r\n\r\n const cachedFetchTileData = fetchTileData('Devices');\r\n const DevicesPromise = cachedFetchTileData.toPromise()\r\n .then((result) => {\r\n instrumentation.log('FetchDevicesData', result, 'Default.GetWebInsights');\r\n const res = formatResponse(result.DevicesResult, 'DeviceTypeName', 'VisitorCount');\r\n setData(res);\r\n });\r\n\r\n DevicesPromise\r\n .catch(onError).finally(() => {\r\n setisLoading(false);\r\n setisLoaded(true);\r\n });\r\n\r\n return () => {\r\n cachedFetchTileData.invalidate();\r\n };\r\n }, [onError, fetchTileData, instrumentation, isFilterReady]);\r\n\r\n return {\r\n data,\r\n isLoaded,\r\n isLoading,\r\n };\r\n}\r\n","import { useEffect, useState, useCallback } from 'react';\r\nimport { formatResponse } from './util';\r\n\r\nexport function useCountriesData({\r\n fetchTileData, instrumentation, isFilterReady,\r\n}) {\r\n const [data, setData] = useState([]);\r\n const [isLoaded, setisLoaded] = useState(false);\r\n const [isLoading, setisLoading] = useState(true);\r\n\r\n const onError = useCallback((error) => {\r\n instrumentation.error('FetchCoutriesData', error, 'Default.GetWebInsights');\r\n }, [instrumentation]);\r\n\r\n\r\n useEffect(() => {\r\n if (!fetchTileData) return undefined;\r\n setisLoading(true);\r\n setisLoaded(false);\r\n\r\n if (!isFilterReady) return undefined;\r\n\r\n const cachedFetchTileData = fetchTileData('Countries');\r\n const CountriesPromise = cachedFetchTileData.toPromise()\r\n .then((result) => {\r\n instrumentation.log('FetchCoutriesData', result, 'Default.GetWebInsights');\r\n const res = formatResponse(result.CountriesResult, 'CountryName', 'VisitorCount');\r\n setData(res);\r\n });\r\n\r\n CountriesPromise\r\n .catch(onError).finally(() => {\r\n setisLoading(false);\r\n setisLoaded(true);\r\n });\r\n\r\n return () => {\r\n cachedFetchTileData.invalidate();\r\n };\r\n }, [onError, fetchTileData, instrumentation, isFilterReady]);\r\n\r\n return {\r\n data,\r\n isLoaded,\r\n isLoading,\r\n };\r\n}\r\n","import React, { useCallback, useMemo, memo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { ToolbarContainer } from '@bingads-webui-grid/toolbar-container';\r\nimport { FilterViewManager } from '@bingads-webui/filter-view-manager';\r\nimport { getToolbarEditor } from '@bingads-webui-campaign-react/toolbar-plugin';\r\n\r\nimport { SchemaI18n } from '@bingads-webui-universal/schema-i18n';\r\n\r\nexport const WebInsightsToolbar = memo(({\r\n i18n,\r\n filterService,\r\n filterConfig,\r\n}) => {\r\n const [forceHideToolbar, setForceHideToolbar] = React.useState(false);\r\n const [showToolbarUnselected, setShowToolbarUnselected] = React.useState(true);\r\n\r\n const toolbarConfig = useMemo(() => {\r\n const toolbarUnselectedConfig = new Map();\r\n [\r\n ['predicate-list', {\r\n id: 'predicate-list',\r\n type: 'custom',\r\n }],\r\n ['expander', {\r\n type: 'expander',\r\n }],\r\n ].forEach(([key, value]) => {\r\n toolbarUnselectedConfig.set(key, value);\r\n });\r\n\r\n return {\r\n toolbarUnselectedConfig,\r\n toolbarSelectedConfig: new Map(),\r\n };\r\n }, []);\r\n const [toolbarUnselectedConfig, setToolbarUnselectedConfig] = React.useState(toolbarConfig.toolbarUnselectedConfig);\r\n\r\n const resetToolbarVisibility = ({ forceHideToolbar: forceHideToolbarUpdate }) => {\r\n setForceHideToolbar(forceHideToolbarUpdate);\r\n };\r\n\r\n const updateToolbar = useCallback((newItem) => {\r\n if (!newItem || !newItem.id) {\r\n return;\r\n }\r\n const toolbarUnselectedConfigUpdated = new Map(toolbarUnselectedConfig);\r\n toolbarUnselectedConfigUpdated.set(newItem.id, newItem);\r\n setToolbarUnselectedConfig(toolbarUnselectedConfigUpdated);\r\n setShowToolbarUnselected(true);\r\n }, [toolbarUnselectedConfig]);\r\n\r\n const toolbarEditor = getToolbarEditor({ updateToolbar, toolbarConfig });\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n});\r\n\r\nWebInsightsToolbar.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n filterService: PropTypes.shape({}).isRequired,\r\n filterConfig: PropTypes.shape({}).isRequired,\r\n};\r\n\r\nWebInsightsToolbar.defaultProps = {\r\n};\r\n","import preferenceService from '@bingads-webui-component-legacy/preference/service/index';\r\nimport { getFilters } from '@bingads-webui-component-legacy/bingads-grid/service/filter-preferences';\r\nimport appConfig from '@bingads-webui-component-legacy/config/index';\r\nimport jsdataCampaign from '@bingads-webui-component-legacy/js-data-campaign/index';\r\nimport { sessionStore } from '@bingads-webui/js-data-storage';\r\n\r\nimport { getCommonFilterConfig } from '@bingads-webui-campaign/common-grid-config';\r\nimport dataContextManager from '@bingads-webui-static-legacy/summary/SummaryDataContextManager';\r\nimport { getCountryValues } from '../data/country';\r\n\r\nconst prefixKeys = (prefix, object) => Object.keys(object).reduce((acc, key) => {\r\n acc[`${prefix}'${key}'`] = object[key];\r\n return acc;\r\n}, {});\r\n\r\nconst getEntitySchema = (i18n) => {\r\n const countries = getCountryValues(i18n);\r\n\r\n return {\r\n name: 'InsightsDashboardFilters2',\r\n type: 'object',\r\n properties: {\r\n Country: {\r\n type: 'string',\r\n enum: Object.keys(countries),\r\n filterable: true,\r\n chooseType: 'checkbox',\r\n localized: prefixKeys('Enum.Country', countries),\r\n },\r\n Device: {\r\n type: 'string',\r\n enum: ['PC', 'Mobile', 'Tablet', 'Other'],\r\n filterable: true,\r\n chooseType: 'checkbox',\r\n localized: prefixKeys('Enum.Device', {\r\n PC: i18n.getString(_TL_('PC')),\r\n Mobile: i18n.getString(_TL_('Mobile')),\r\n Tablet: i18n.getString(_TL_('Tablet')),\r\n Other: i18n.getString(_TL_('Other')),\r\n }),\r\n },\r\n VisitedUrl: {\r\n type: 'string',\r\n filterable: true,\r\n operators: ['StartsWith', 'EndsWith', 'Equals'],\r\n operatorDisplayNameMap: {\r\n StartsWith: i18n.getString(_TL_('Starts with')),\r\n EndsWith: i18n.getString(_TL_('Ends with')),\r\n Equals: i18n.getString(_TL_('Equals')),\r\n },\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport function getFilterConfig({\r\n i18n,\r\n}) {\r\n const schemaI18n = {\r\n property: (_, property) => property,\r\n value: (_, __, value) => value,\r\n };\r\n\r\n const titleMap = {\r\n Country: i18n.getString(_TL_('Country')),\r\n Device: i18n.getString(_TL_('Device')),\r\n VisitedUrl: i18n.getString(_TL_('Visited URL')),\r\n };\r\n\r\n const filterConfig = getCommonFilterConfig({\r\n preferenceService,\r\n featureName: 'UetInsightsDashboard',\r\n entitySchema: getEntitySchema(i18n),\r\n i18n,\r\n legacyGlobalI18n: i18n,\r\n sessionStore,\r\n preferenceStoreFactory: getFilters,\r\n globalConfig: appConfig,\r\n schemaI18nCampaign: schemaI18n,\r\n dataContextManager,\r\n jsdata: jsdataCampaign,\r\n updatePilot: false,\r\n enableCampaignWaterfall: false,\r\n getLegacySaved: false,\r\n editor: {},\r\n schemaProcessor: {\r\n updateEntitySchemaForFeatures: (schema) => {\r\n const schemaProperties = schema.properties;\r\n Object.keys(schemaProperties).forEach((property) => {\r\n schemaProperties[property].title = titleMap[property];\r\n });\r\n return schema;\r\n },\r\n },\r\n });\r\n return filterConfig;\r\n}\r\n\r\n","import React, { useEffect, useMemo, useState, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport _ from 'underscore';\r\nimport { useDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { FilterService } from '@bingads-webui/filter-service';\r\nimport { WaterfallFilterStorage, WaterfallFilterType, waterfallDateFilterProcessor } from '@bingads-webui-campaign/filter-storage';\r\nimport { notificationApi } from '@bingads-webui-react/notification-center';\r\nimport { getStyles } from '../styles';\r\nimport MetricGroup from '../components/metrics/metric-group';\r\nimport TileGroup from '../components/tiles/tileGroup';\r\nimport { WebInsightsToolbar } from '../components/web-insights-toolbar';\r\nimport { getFilterConfig } from '../components/filter-config';\r\nimport { createPayload } from '../components/data/util';\r\n\r\nconst dashboardTexts = {\r\n DashboardHeader: _TL_('How customers are engaging with your website'),\r\n DashboardFooter: _TL_('Please note that these metrics are generated from all-up website traffics not just traffic from ad clicks.'),\r\n};\r\n\r\nconst dateFormat = 'yyyy-MM-dd';\r\n\r\nconst InsightDashboardOn = (props) => {\r\n const {\r\n i18n,\r\n preferenceService,\r\n serverContext,\r\n edmTags,\r\n scope,\r\n uetDashboardInstrumentation: instrumentation,\r\n } = props;\r\n const classes = useDefaultStyles(getStyles);\r\n const [isFilterReady, setIsFilterReady] = useState(false);\r\n const [filter, setFilter] = useState(null);\r\n\r\n const waterfallFilterStorage = new WaterfallFilterStorage({ preferenceService });\r\n const dateFilter = waterfallDateFilterProcessor(\r\n waterfallFilterStorage.getFilters([WaterfallFilterType.DateFilter]),\r\n serverContext\r\n );\r\n\r\n const utcTimeZone = 50;\r\n const timeZone = _.get(serverContext.CurrentAccount, 'TimeZone') || utcTimeZone;\r\n\r\n const startDate = i18n.formatDate(new Date(dateFilter.start), { raw: dateFormat });\r\n const endDate = i18n.formatDate(new Date(dateFilter.end), { raw: dateFormat });\r\n\r\n const { filterConfig, filterService } = useMemo(() => {\r\n const newFilterConfig = getFilterConfig({ i18n });\r\n const newFilterService = new FilterService(newFilterConfig);\r\n return { filterConfig: newFilterConfig, filterService: newFilterService };\r\n }, [i18n]);\r\n\r\n const filterPayload = useMemo(() => (isFilterReady ? createPayload(filter, startDate, endDate, timeZone) : {}), [endDate, filter, isFilterReady, startDate, timeZone]);\r\n\r\n const fetchTileData = useCallback(selectedTile => edmTags['Default.GetWebInsights']\r\n .$makeCall({\r\n query: {\r\n select: [selectedTile],\r\n },\r\n payload: filterPayload,\r\n }), [edmTags, filterPayload]);\r\n\r\n const dateRangeChanged = useCallback((startDateString) => {\r\n const oldestStartDate = new Date();\r\n oldestStartDate.setMonth(oldestStartDate.getMonth() - 6);\r\n const start = new Date(startDateString);\r\n const shouldShowAlert = start < oldestStartDate;\r\n return shouldShowAlert\r\n ? notificationApi.showWarning(i18n.getString(_TL_('Web Insights will only show data for the past six months.')))\r\n : null;\r\n }, [i18n]);\r\n\r\n useEffect(() => {\r\n filterService.refreshSource();\r\n filterService.initializeCombinedFilterPromise.then(() => {\r\n setFilter(filterService.getCombinedFilter().query);\r\n }).finally(() => {\r\n setIsFilterReady(true);\r\n filterService.on('filter-state-changed', ({ filter: newFilter }) => {\r\n instrumentation.log('FilterChanged', { filter: newFilter });\r\n setFilter(newFilter.query);\r\n });\r\n });\r\n dateRangeChanged(startDate);\r\n }, [dateRangeChanged, i18n, filterService, startDate, instrumentation]);\r\n\r\n return (\r\n
\r\n
\r\n {i18n.getString(dashboardTexts.DashboardHeader)}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {i18n.getString(dashboardTexts.DashboardFooter)}\r\n {` ${i18n.getString(_TL_('Learn more'))}`}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nInsightDashboardOn.propTypes = {\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func.isRequired,\r\n }).isRequired,\r\n preferenceService: PropTypes.shape({\r\n getAtUserLevel: PropTypes.func.isRequired,\r\n }).isRequired,\r\n serverContext: PropTypes.shape({\r\n CurrentAccount: PropTypes.shape({\r\n TimeZone: PropTypes.number,\r\n }),\r\n }).isRequired,\r\n};\r\n\r\nexport default InsightDashboardOn;\r\n","import React, { useMemo } from 'react';\r\nimport classnames from 'classnames';\r\nimport { Spinner, SpinnerSize } from '@fluentui/react/lib/Spinner';\r\n\r\n\r\nconst InsightDashboardLoading = ({ i18n }) => {\r\n const loadingText = useMemo(() => ({\r\n loading: i18n.getString(_TL_('Loading')),\r\n }), [i18n]);\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default InsightDashboardLoading;\r\n\r\n","import React, { useState, useEffect, useCallback, useMemo, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { edmCampaign } from '@bingads-webui/edm-campaign';\r\n\r\nimport InsightDashboardOff from './off-view';\r\nimport InsightDashboardOn from './on-view';\r\nimport InsightDashboardLoading from './loading-view';\r\n\r\nimport { useTagData } from '../components/data/useTagData';\r\n\r\nconst instrumentationSchema = {\r\n scenario: [{\r\n name: 'UetInsightDashboard',\r\n value: 'UetInsightDashboard',\r\n activity: [\r\n {\r\n name: 'UetInsightDashboardActivity',\r\n value: 'UetInsightDashboardActivity',\r\n },\r\n ],\r\n }],\r\n};\r\n\r\nconst InsightDashboard = (props) => {\r\n const { scope, serverContext, instrumentation } = props;\r\n\r\n const instrumentationRef = useRef(instrumentation);\r\n if (!instrumentationRef.current) {\r\n instrumentationRef.current = instrumentation;\r\n }\r\n\r\n const activity = useMemo(() => {\r\n instrumentationRef.current.addScenario(instrumentationSchema);\r\n const scenario = instrumentationRef.current.UetInsightDashboard.create();\r\n const act = scenario.UetInsightDashboardActivity.create();\r\n return act;\r\n }, [instrumentationRef]);\r\n\r\n const uetDashboardInstrumentation = useMemo(() => ({\r\n error: (Action, Message, API) => activity.error({\r\n Action,\r\n Value: JSON.stringify(Message),\r\n }, API),\r\n\r\n log: (Action, Message, API) => activity.trace({\r\n Action,\r\n Message,\r\n }, API),\r\n }), [activity]);\r\n\r\n const {\r\n CurrentAccount: { Id: aid, AdvertiserCustomerID: acid },\r\n CurrentCustomer: { Id: cid },\r\n } = serverContext;\r\n\r\n const scopeTagId = useMemo(() => scope.values.tagId, [scope]);\r\n const [currentTagId, setCurrentTagId] = useState(null);\r\n const isChangingTag = useMemo(() => currentTagId !== scopeTagId, [currentTagId, scopeTagId]);\r\n\r\n useEffect(() => {\r\n if (isChangingTag) {\r\n setCurrentTagId(scopeTagId);\r\n }\r\n }, [isChangingTag, scopeTagId]);\r\n\r\n const isAgencyScenario = useMemo(() => scope.values.aid && acid && (acid !== cid), [acid, cid, scope.values.aid]);\r\n const edm = useMemo(() => (isAgencyScenario ?\r\n edmCampaign.Customers.$withKey(acid).Accounts.$withKey(aid) :\r\n edmCampaign.Customers.$withKey(cid)), [isAgencyScenario, aid, cid, acid]);\r\n const edmTag = useMemo(() => edm.Tags.$withKey(currentTagId), [currentTagId, edm.Tags]);\r\n\r\n const {\r\n data, isLoading, toggleInsightFunc, turnOnInsightFunc,\r\n } = useTagData({\r\n tagId: currentTagId, edm, edmTag, instrumentation: uetDashboardInstrumentation,\r\n });\r\n\r\n const toggleInsight = useCallback((e) => {\r\n if (!e.detail) {\r\n return;\r\n }\r\n const { isToggleOn, tagId: eventTagId } = e.detail;\r\n if (eventTagId !== currentTagId) {\r\n return;\r\n }\r\n toggleInsightFunc(isToggleOn);\r\n }, [currentTagId, toggleInsightFunc]);\r\n\r\n useEffect(() => {\r\n document.addEventListener('toggleWebInsight', toggleInsight);\r\n\r\n return () => {\r\n document.removeEventListener('toggleWebInsight', toggleInsight);\r\n };\r\n }, [toggleInsight]);\r\n\r\n const isWebInsightsEnabled = useMemo(() => data.IsWebInsightsEnabled, [data.IsWebInsightsEnabled]);\r\n\r\n return (\r\n \r\n {(isLoading || isChangingTag) && }\r\n {!isLoading && !isChangingTag && (isWebInsightsEnabled ?\r\n :\r\n )}\r\n \r\n );\r\n};\r\n\r\nInsightDashboard.propTypes = {\r\n scope: PropTypes.shape({\r\n values: PropTypes.shape({\r\n cid: PropTypes.number,\r\n aid: PropTypes.number,\r\n tagId: PropTypes.number,\r\n }),\r\n }).isRequired,\r\n serverContext: PropTypes.shape({\r\n CurrentUser: PropTypes.shape({\r\n UserId: PropTypes.string,\r\n }),\r\n CurrentCustomer: PropTypes.shape({\r\n CustomerId: PropTypes.number,\r\n Id: PropTypes.number,\r\n }),\r\n CurrentAccount: PropTypes.shape({\r\n AdvertiserCustomerID: PropTypes.number,\r\n Id: PropTypes.number,\r\n }),\r\n }).isRequired,\r\n};\r\n\r\nexport default InsightDashboard;\r\n","import _ from 'underscore';\r\nimport { useEffect, useState, useCallback, useMemo } from 'react';\r\nimport { triggerSummaryBarEvent } from '../../util';\r\n\r\nexport const useTagData = ({\r\n tagId, instrumentation, edmTag, edm,\r\n}) => {\r\n const [data, setData] = useState({ IsWebInsightsEnabled: false });\r\n const [isLoading, setisLoading] = useState(true);\r\n const [toggleInsightFunc, setToggleInsightFunc] = useState(_.noop);\r\n const [turnOnInsightFunc, setTurnOnInsightFunc] = useState(_.noop);\r\n\r\n const onError = useCallback((error) => {\r\n instrumentation.error('FetchQuickbacks', error, 'Default.GetWebInsights');\r\n }, [instrumentation]);\r\n\r\n\r\n const cachedEdmTagGet = useMemo(() => edmTag.get({}), [edmTag]);\r\n const cachedTurnOnInsight = useMemo(() => edm.Tags['Default.UpdateTagsWebInsightsSetting']\r\n .$makeCall({\r\n payload: {\r\n Tags: [\r\n {\r\n Id: tagId,\r\n IsWebInsightsEnabled: true,\r\n },\r\n ],\r\n },\r\n }), [edm.Tags, tagId]);\r\n\r\n useEffect(() => {\r\n setisLoading(true);\r\n\r\n if (tagId === null || tagId === undefined) return undefined;\r\n\r\n const TagPromise = cachedEdmTagGet.toPromise().then((response) => {\r\n setData({ ...response });\r\n setToggleInsightFunc(() => (isWebInsightsEnabled) => {\r\n setData(currentData => ({ ...currentData, IsWebInsightsEnabled: isWebInsightsEnabled }));\r\n });\r\n setTurnOnInsightFunc(() => () => cachedTurnOnInsight.toPromise().then((res) => {\r\n const newTagObj = res.value[0];\r\n instrumentation.log('UpdateTag', `Update tag ${tagId} to ${JSON.stringify(newTagObj)}`, 'EDM');\r\n setData(currentData => ({ ...currentData, IsWebInsightsEnabled: newTagObj.IsWebInsightsEnabled }));\r\n triggerSummaryBarEvent([tagId]);\r\n }));\r\n });\r\n\r\n TagPromise.catch(onError).finally(() => {\r\n setisLoading(false);\r\n });\r\n\r\n return () => {\r\n setData({ IsWebInsightsEnabled: false });\r\n setisLoading(true);\r\n cachedEdmTagGet.invalidate();\r\n cachedTurnOnInsight.invalidate();\r\n };\r\n }, [cachedEdmTagGet, cachedTurnOnInsight, instrumentation, onError, tagId]);\r\n\r\n return {\r\n data,\r\n isLoading,\r\n toggleInsightFunc,\r\n turnOnInsightFunc,\r\n };\r\n};\r\n","var pug = require(\"!../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (enableUnsubscribe, i18n) {pug_html = pug_html + \"\\u003Cdiv class=\\\"inline-download-reports__actions\\\"\\u003E\\u003Ca class=\\\"inline-download-reports__run-now\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('InlineDownloadReports_Action_RunNow')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003Ca class=\\\"inline-download-reports__create-similar\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('InlineDownloadReports_Action_CreateSimilar')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\nif (enableUnsubscribe) {\npug_html = pug_html + \"\\u003Ca class=\\\"inline-download-reports__unsubscribe-me\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('InlineDownloadReports_Action_UnsubscribeMe')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca class=\\\"disabled inline-download-reports__unable-to-unsubscribe-me\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('InlineDownloadReports_Action_UnsubscribeMe')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"enableUnsubscribe\" in locals_for_with?locals_for_with.enableUnsubscribe:typeof enableUnsubscribe!==\"undefined\"?enableUnsubscribe:undefined,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../../node_modules/.pnpm/pug@2.0.4/node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n, value) {var state = value.State\nif (state) {\npug_html = pug_html + \"\\u003Cspan\\u003E\";\nif (state === 'Paused') {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statuschangetask statusicondisplay statuschangehover clickable\\\"\"+\" tabindex=\\\"0\\\"\"+pug.attr(\"id\", `statusIcon${value.Id}`, true, true)+pug.attr(\"data-rowId\", `${value.Id}`, true, true)+\" data-statusText=\\\"Paused\\\"\"+pug.attr(\"aria-label\", `${i18n.getString('EntityStatus_Paused')}`, true, true)+\" role=\\\"button\\\"\") + \"\\u003E\\u003Cdiv class=\\\"statusPaused_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse\nif (state === 'Deleted') {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statuschangetask statusicondisplay statuschangehover clickable\\\"\"+\" tabindex=\\\"0\\\"\"+pug.attr(\"id\", `statusIcon${value.Id}`, true, true)+pug.attr(\"data-rowId\", `${value.Id}`, true, true)+\" data-statusText=\\\"Deleted\\\"\"+pug.attr(\"aria-label\", `${i18n.getString('EntityStatus_Deleted')}`, true, true)+\" role=\\\"button\\\"\") + \"\\u003E\\u003Cdiv class=\\\"statusDeleted_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"statuschangetask statusicondisplay statuschangehover clickable\\\"\"+\" tabindex=\\\"0\\\"\"+pug.attr(\"id\", `statusIcon${value.Id}`, true, true)+pug.attr(\"data-rowId\", `${value.Id}`, true, true)+\" data-statusText=\\\"Enabled\\\"\"+pug.attr(\"aria-label\", `${i18n.getString('EntityStatus_Active')}`, true, true)+\" role=\\\"button\\\"\") + \"\\u003E\\u003Cdiv class=\\\"statusEnabled_icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + (pug.escape(null == (pug_interp = ' ') ? \"\" : pug_interp));\n}}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;"],"names":["InlineDownloadCronI18n","_createClass","_ref","i18n","_classCallCheck","this","cronFormatter","CronFormatter","key","value","cron","_","getString","formatCronString","DurableDropdown","_React$Component","_this","_callSuper","state","expanded","_inherits","_this2","_this$props","props","button","children","containerClass","_jsxs","className","classnames","type","Boolean","onClick","setState","_jsx","caretClass","React","defaultProps","CheckableList","onSelect","item","selected","items","getItemId","renderItem","map","index","itemId","role","tabIndex","onKeyPress","submitEvent","nextProps","prevState","_nextProps$selected","DateRangeList","data","onChange","presets","presetType","format","DateRangePreset","StartDate","EndDate","dateMethodOptions","raw","formattedToday","formatDate","Date","preset","_defineProperty","max","usedStartDate","substr","usedEndDate","formatPreset","KendoStringDatePicker","undefined","changed","min","DateRangeEditor","dateRangeFormat","DateRangeFormat","ComparisonDateRangeEditor","noneStringKey","comparisonDateRangeFormat","ComparisonDateRangeFormat","model","ComparisonDateRangeOption","String","save","TaskItem","view","updateReportEmailRule","finally","withUiBlock","gridView","$el","then","refresh","asBackboneInlineEditor","_ref2","InlineEditor","_ref$className","Editor","onSave","onCancel","asInlineEditor","_Backbone$View","BackboneInlineEditor","arguments","_ref3","ReactDOM","trigger","el","Backbone","reactPrompt","_ref4","position","parentContainerSelector","_ref4$triggerScrollba","triggerScrollbarRepositionOnElementHeightChange","property","editor","get","apply","concat","_toConsumableArray","on","update","merge","set","catch","error","alert","message","editorView","GridCustomizedPopupEditor","render","cellPosition","renderBelow","clickToDismiss","event","$target","$","target","closest","length","is","remove","couldUnsubscribe","NotificationDeliveryOption","currentUserId","EmailOption","CustomUserIds","Error","getCurrentUserId","config","Id","FormGroup","label","labelId","id","htmlFor","alertId","EmailFrequencyColumn","_CampaignuiBaseColumn","options","allUsersType","loadUsers","legacyI18n","cronI18n","name","title","InlineDownloadEmailFrequencyEditor","s$i18n","SchemaI18n","Cron","StartTime","EndTime","formatCron","CampaignuiBaseColumn","removeCurrentUserFromList","list","unsubscribe","Name","Promise","report","users","removeCurrentUser","newNotificationDeliveryOption","window","App","views","alertCenter","toastConfirmation","showError","builtInPrompt","fields","schema","PopupEditor","hasLabels","template","saveModel","editorForm","setErrors","helpers","toolbarRow","getStyles","_ref$palette","palette","InsightDashboardOff","height","display","flexDirection","alignItems","justifyContent","gap","maxWidth","maxHeight","textAlign","InsightDashboardOn","paddingLeft","paddingRight","paddingTop","paddingBottom","fontSize","fontfontWeight","minHeight","fontWeight","MetricGroup","color","neutralPrimary","background","white","gridTemplateColumns","width","boxShadow","border","borderRadius","gridTemplateRows","borderBottom","lineHeight","TileGroup","gridGap","DashboardTile","fontFamily","fontStyle","triggerSummaryBarEvent","tagIds","CustomEvent","detail","document","dispatchEvent","turnOnInsight","edm","scope","classes","useDefaultStyles","_useBoolean","useBoolean","_useBoolean2","_slicedToArray","isModalOpen","_useBoolean2$","showModal","setTrue","hideModal","setFalse","instrumentation","useContext","InstrumentationContext","activity","useMemo","createScenarioAndActivity","scenarioName","activityName","theme","getTheme","contentStyles","mergeStyleSets","container","flexFlow","header","fonts","xLarge","flex","borderTop","themePrimary","padding","body","overflowY","footer","marginRight","pageText","_TL_","description","buttonText","enableAllTagsbuttonText","modalHeader","modalText","enableAllTags","Tags","top","select","toPromise","tagResponse","tags","payload","reduce","acc","tag","IsWebInsightsEnabled","push","$makeCall","response","a","Errors","filter","JSON","stringify","tagId","isToggleOn","triggerDashboardEvent","values","src","InsightOffGraph","alt","PrimaryButton","text","DefaultButton","Modal","isOpen","isDarkOverlay","onDismiss","isBlocking","containerClassName","href","rel","defaultNoDataNumber","OperatorMap","$StartsWith","$Equals","$Contains","$EndsWith","formatResponse","itemName","valueName","count","MetricBlock","metricData","underlineColor","helpId","unit","isLoading","style","borderColor","HelpPopup","topic","Spinner","size","SpinnerSize","medium","Metrics","fetchTileData","isFilterReady","_useTotalSessionCount","_useState","useState","_useState2","setData","_useState3","_useState4","isLoaded","setisLoaded","_useState5","_useState6","setisLoading","onError","useCallback","useEffect","cachedFetchTileData","log","TotalSessionCountsResult","invalidate","useTotalSessionCountData","totalSessionCountData","isTotelSessionCountDataLoading","_useAverageActiveTime","AverageActiveTimeResult","useAverageActiveTimeData","AverageActiveTimeData","isAverageActiveTimeDataLoading","_useQuickbacksData","QuickBackResult","useQuickbacksData","QuickbacksData","isQuickbacksDataLoading","isAverageTimeGreaterThan60","AverageActiveTimeConverted","Math","floor","AverageActiveTimeUnit","getTileStyles","cardContainer","headerBorder","neutralLight","closeButton","neutralSecondary","cardSection","headerContainer","gridRow","headerContentContainer","headerText","overflow","textOverflow","smallHeaderText","whiteSpace","largeHeaderText","dropdownContainer","contentContainer","marginTop","marginBottom","wideCardContainer","footerContainer","footerContentContainer","footerButton","backgroundColor","float","footerLink","textDecoration","LegendGrid","percentage","y","DonutChart","containerName","pieOptions","chart","margin","credits","enabled","plotOptions","pie","allowPointSelect","dataLabels","endAngle","startAngle","states","hover","series","animation","showInLegend","innerSize","legend","itemDistance","itemStyle","symbolRadius","tooltip","followPointer","borderWidth","distance","shape","pointFormat","Fragment","HighchartReactWrapper","Devices","PC","Mobile","Tablet","Other","DevicesChart","totalCount","memo","formattedData","device","round","SingleBar","seriesSum","barOption","xAxis","crosshair","tickLength","lineWidth","labels","categories","yAxis","gridLineWidth","colorByPoint","bar","groupPadding","pointPadding","BarChart","shouldShowMore","setShouldShowMore","dataLength","shouldShowToggle","dataToShow","linkLabel","Link","getCountryValues","Afghanistan","Albania","Algeria","Andorra","Angola","Anguilla","Antarctica","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bonaire","Botswana","Brazil","Brunei","Bulgaria","Burundi","Cambodia","Cameroon","Canada","Chad","Chile","China","Colombia","Comoros","Congo","Croatia","Cuba","Curaçao","Cyprus","Denmark","Djibouti","Dominica","Ecuador","Egypt","Eritrea","Estonia","Ethiopia","Fiji","Finland","France","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Greece","Greenland","Grenada","Guadeloupe","Guam","Guatemala","Guernsey","Guinea","Guyana","Haiti","Honduras","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Israel","Italy","Jamaica","Japan","Jersey","Jordan","Kazakhstan","Kenya","Kiribati","Korea","Kuwait","Kyrgyzstan","Laos","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Martinique","Mauritania","Mauritius","Mayotte","Mexico","Micronesia","Moldova","Monaco","Mongolia","Montenegro","Montserrat","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands","Nicaragua","Niger","Nigeria","Niue","Norway","Oman","Pakistan","Palau","Panama","Paraguay","Peru","Philippines","Poland","Portugal","Qatar","Réunion","Romania","Russia","Rwanda","Samoa","Senegal","Serbia","Seychelles","Singapore","Slovakia","Slovenia","Somalia","Spain","Sudan","Suriname","Svalbard","Eswatini","Sweden","Switzerland","Syria","Taiwan","Tajikistan","Tanzania","Thailand","Togo","Tokelau","Tonga","Tunisia","Turkey","Turkmenistan","Tuvalu","Uganda","Ukraine","Uruguay","Uzbekistan","Vanuatu","Venezuela","Vietnam","Yemen","Zambia","Zimbabwe","CountriesChart","countryValues","PageVisitedChart","ContentStrings","EmptyContent","minWidth","TileConfig","PagesByVisits","onActionClick","buttonLabel","buttonRoute","Countries","tileType","scopeRef","useRef","current","onButtonClick","destination","currentTile","cardConfig","getCardStyles","cardClassName","wide","isRequired","renderHeaderText","actions","onCloseTile","isLargeHeader","buttons","callback","content","isShimmerRequired","onRenderShimmer","Card","_objectSpread","large","_usePagesByVisitsData","result","res","PopularPagesResult","usePagesByVisitsData","pageVisitedData","isPageVisitedDataLoading","_useDevicesData","DevicesResult","useDevicesData","devicesData","isDevicesDataLoading","_useCountriesData","CountriesResult","useCountriesData","countriesData","isCountriesDataLoading","WebInsightsToolbar","filterService","filterConfig","_React$useState","_React$useState2","forceHideToolbar","setForceHideToolbar","_React$useState3","_React$useState4","showToolbarUnselected","setShowToolbarUnselected","toolbarConfig","toolbarUnselectedConfig","Map","forEach","toolbarSelectedConfig","_React$useState5","_React$useState6","setToolbarUnselectedConfig","updateToolbar","newItem","toolbarUnselectedConfigUpdated","toolbarEditor","getToolbarEditor","_Fragment","FilterViewManager","resetToolbarVisibility","forceHideToolbarUpdate","schemaI18n","hide","hideSaveFilterButton","ToolbarContainer","showToolbarSelected","prefixKeys","prefix","object","Object","keys","getEntitySchema","countries","properties","Country","enum","filterable","chooseType","localized","Device","VisitedUrl","operators","operatorDisplayNameMap","StartsWith","EndsWith","Equals","dashboardTexts","dateFormat","preferenceService","serverContext","edmTags","uetDashboardInstrumentation","setIsFilterReady","setFilter","waterfallFilterStorage","WaterfallFilterStorage","dateFilter","waterfallDateFilterProcessor","getFilters","WaterfallFilterType","DateFilter","timeZone","CurrentAccount","startDate","start","endDate","end","_useMemo","newFilterConfig","titleMap","getCommonFilterConfig","featureName","entitySchema","legacyGlobalI18n","sessionStore","preferenceStoreFactory","globalConfig","appConfig","schemaI18nCampaign","__","dataContextManager","jsdata","jsdataCampaign","updatePilot","enableCampaignWaterfall","getLegacySaved","schemaProcessor","updateEntitySchemaForFeatures","schemaProperties","getFilterConfig","FilterService","filterPayload","TimeZoneId","CountryFilter","DeviceFilter","PageUrlFilters","join","filterItemKey","filterItems","operator","Operator","Value","$in","v","countryCode","country","countryName","split","substring","parseCountryCode","deviceCode","parseDeviceCode","createPayload","selectedTile","query","dateRangeChanged","startDateString","oldestStartDate","setMonth","getMonth","notificationApi","showWarning","refreshSource","initializeCombinedFilterPromise","getCombinedFilter","newFilter","loadingText","loading","instrumentationSchema","scenario","instrumentationRef","addScenario","UetInsightDashboard","create","UetInsightDashboardActivity","Action","Message","API","trace","_serverContext$Curren","aid","acid","AdvertiserCustomerID","cid","CurrentCustomer","scopeTagId","currentTagId","setCurrentTagId","isChangingTag","isAgencyScenario","edmCampaign","Customers","$withKey","Accounts","edmTag","_useTagData","toggleInsightFunc","setToggleInsightFunc","_useState7","_useState8","turnOnInsightFunc","setTurnOnInsightFunc","cachedEdmTagGet","cachedTurnOnInsight","isWebInsightsEnabled","currentData","newTagObj","useTagData","toggleInsight","e","_e$detail","addEventListener","removeEventListener","InsightDashboardLoading","pug","module","exports","locals","pug_interp","pug_html","locals_for_with","enableUnsubscribe","escape","call","State","attr"],"sourceRoot":""}