{"version":3,"file":"static/js/application.initial.react~e0a9d73f.0b232852.js","mappings":"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","sources":["../webpack/bootstrap","../../../../../../../../external/@bingads-webui-react/scope-service","../../../../../../../../external/@bingads-webui-react/i18n-context","../../../../../../../../external/@bingads-webui-react/preference-context","../../../../../../../../external/react","../../../../../../../../external/@bingads-webui-react/with-site-map","../webpack-src:/multi-step-teaching-bubble/index.ts","../webpack-src:/multi-step-teaching-bubble/src/index.ts","../webpack-src:/multi-step-teaching-bubble/src/multi-step-teaching-bubble-context-provider.tsx","../../../../../../../../external/@bingads-webui-campaign-react/use-preference","../../../../../../../../external/@bingads-webui-campaign-react/popup-components","../../../../../../../../external/@bingads-webui-react/popup-manager","../webpack-src:/multi-step-teaching-bubble/src/reducer.ts","../webpack-src:/multi-step-teaching-bubble/src/helper.ts","../webpack-src:/multi-step-teaching-bubble/src/consts.ts","../webpack-src:/multi-step-teaching-bubble/src/use-element-detection.ts","../webpack-src:/multi-step-teaching-bubble/src/trigger-multi-step-teaching-bubble-with-lock.ts","../webpack-src:/multi-step-teaching-bubble/src/user-governance-config.ts","../../../../../../../../external/underscore","../../../../../../../../external/prop-types","../../../../../../../../external/classnames","../../../../../../../../external/@bingads-webui-react/with-default-styles","../../../../../../../../external/@bingads-webui-react/hoc-with-signal","../../../../../../../../external/@bingads-webui-universal/primitive-utilities","../../../../../../../../external/@bingads-webui-react/fabric-control","../../../../../../../../external/@fluentui/react-hooks","../webpack-src:/popup-components/index.js","../webpack-src:/popup-components/src/teaching-bubble.js","../webpack-src:/popup-components/src/with-user-governance.js","../webpack-src:/popup-components/src/user-governance-config.js","../webpack-src:/popup-components/src/preference-state.js","../webpack-src:/popup-components/src/utils.js","../webpack-src:/popup-components/src/preference-service.js","../webpack-src:/popup-components/src/styles.js","../webpack-src:/popup-components/src/logger.js","../webpack-src:/popup-components/src/critical-info.js","../webpack-src:/popup-components/src/system-announcement.js","../webpack-src:/secondary-navigation-expand-button/index.js","../webpack-src:/secondary-navigation-expand-button/src/index.js","../../../../../../../../external/@bingads-webui-campaign-react/secondary-navigation","../../../../../../../../external/@fluentui/react-components","../../../../../../../../external/@bingads-webui-react/app-layout-container","../../../../../../../../external/@bingads-webui-react/primitive-hooks","../../../../../../../../external/@fluentui/react-icons","../../../../../../../../external/@bingads-webui-fluent-component/navigation","../webpack-src:/secondary-navigation/index.js","../webpack-src:/secondary-navigation/src/index.js","../webpack-src:/secondary-navigation/src/config.js","../webpack-src:/secondary-navigation/src/styles.js","../webpack-src:/secondary-navigation/src/items-factory.js","../webpack-src:/secondary-navigation/src/campaign-navigation-items-config.js","../webpack-src:/secondary-navigation/src/navigation-config-keys.js","../webpack-src:/secondary-navigation/src/hotelcenter-navigation-items-config.js","../webpack-src:/secondary-navigation/src/route-controller.js","../../../../../../../../external/@bingads-webui/performance-marker","../../../../../../../../external/@bingads-webui-react/hot-keys","../../../../../../../../external/@bingads-webui-react/menu-item-tag","../../../../../../../../external/@bingads-webui-react/user-context","../../../../../../../../external/@bingads-webui-fluent-component/layout-size","../webpack-src:/use-preference/index.js","../webpack-src:/use-preference/src/use-preference.js","../webpack-src:/use-preference/src/preference-names.js","../webpack-src:/virtual-scrollbar-recalculate-trigger/index.js","../webpack-src:/virtual-scrollbar-recalculate-trigger/src/recalculate-trigger.js","../../../../../../../../external/jquery","../webpack-src:/accessible-tree-view/index.js","../webpack-src:/accessible-tree-view/src/accessible-tree-view.js","../../../../../../../../external/@bingads-webui-react/tree-view","../webpack-src:/alert/index.js","../webpack-src:/alert/src/alert.js","../../../../../../../../external/react-jss","../webpack-src:/app-content-container/index.js","../webpack-src:/app-content-container/src/app-content-container.js","../../../../../../../../external/@bingads-webui-react/layout","../webpack-src:/app-content-container/src/styles.js","../webpack-src:/app-content-container/src/utils.js","../webpack-src:/app-content-footer/index.js","../webpack-src:/app-content-footer/src/app-content-footer.js","../../../../../../../../external/@fluentui/react","../../../../../../../../external/@bingads-webui-react/feedback-panel","../webpack-src:/app-content-footer/src/get-styles.js","../webpack-src:/app-global-error-view/index.js","../webpack-src:/app-global-error-view/src/index.js","../webpack-src:/app-global-error-view/src/style/get-style.js","../webpack-src:/app-global-error-view/src/style/global-error-icon.js","../webpack-src:/app-layout-container/index.js","../webpack-src:/app-layout-container/src/layout-container.js","../webpack-src:/app-layout-container/src/layout-configs.js","../webpack-src:/app-layout-container/src/mode.js","../webpack-src:/app-layout-container/src/layout-context.js","../webpack-src:/app-layout-container/src/styles-container.js","../webpack-src:/app-layout-container/src/components.js","../../../../../../../../external/@bingads-webui-theme-2018/theme-fluent","../webpack-src:/app-layout-container/src/styles.js","../webpack-src:/app-layout-container/src/layout.js","../webpack-src:/app-layout-container/src/with-layout-context.js","../webpack-src:/app-layout-container/src/use-change-layout.js","../webpack-src:/app-layout-container/src/with-layout.js","../webpack-src:/app-layout-container/src/overlay-component.js","../webpack-src:/app/index.js","../webpack-src:/app/src/index.js","../../../../../../../../external/@bingads-webui-react/hoc-with-instrumentation","../../../../../../../../external/@bingads-webui-react/global-error-boundary"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 884);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__114__;","module.exports = __WEBPACK_EXTERNAL_MODULE__17__;","module.exports = __WEBPACK_EXTERNAL_MODULE__19__;","module.exports = __WEBPACK_EXTERNAL_MODULE__3__;","module.exports = __WEBPACK_EXTERNAL_MODULE__430__;","export * from './src/index';\r\n\r\nexport { defaultUserGovernanceConfig } from './src/user-governance-config';\r\n","export { MultiStepTeachingBubbleContextProvider, MultiStepTeachingBubbleContext } from './multi-step-teaching-bubble-context-provider';\r\nexport { triggerMultiStepTeachingBubbleWithLock, ITriggerBubbleProps } from './trigger-multi-step-teaching-bubble-with-lock';\r\nexport { IConfig } from './reducer';\r\n","import React, {\r\n useReducer, useContext, useEffect, useMemo, useCallback, FC, memo,\r\n} from 'react';\r\n\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { usePreference } from '@bingads-webui-campaign-react/use-preference';\r\nimport {\r\n TeachingBubbleWithoutLock,\r\n useShouldShow,\r\n} from '@bingads-webui-campaign-react/popup-components';\r\nimport { useLock, keyVault, priorityLevel } from '@bingads-webui-react/popup-manager';\r\nimport { ScopeContext } from '@bingads-webui-react/scope-service';\r\nimport { PreferenceContext } from '@bingads-webui-react/preference-context';\r\nimport { withSiteMap } from '@bingads-webui-react/with-site-map';\r\n\r\nimport {\r\n reducer, defaultInitialState, ACTIONS, IConfig,\r\n} from './reducer';\r\nimport { getTeachingBubblePropsFromState, logAction, logWaitList } from './helper';\r\nimport { PREFERENCE_KEY } from './consts';\r\nimport { useElementDetection, useElementDeletionDetection, ELEMENT_STATUS } from './use-element-detection';\r\nimport './types/global.types';\r\nimport { ILogger, ISiteMap } from './types/types';\r\n\r\nexport const MultiStepTeachingBubbleContext = React.createContext(null);\r\n\r\ninterface IScopeContext {\r\n scope: {\r\n save: (route: string) => void;\r\n };\r\n}\r\n\r\ninterface I18nModel {\r\n getString: (key: string) => string;\r\n}\r\n\r\nexport interface IMultiStepTeachingBubbleContextProviderProps {\r\n children: React.ReactNode;\r\n configs: IConfig[];\r\n logger?: ILogger;\r\n shouldRerender?: boolean;\r\n serverContext?: any;\r\n}\r\nexport interface IMultiStepTeachingBubbleContextProviderPropsBase extends IMultiStepTeachingBubbleContextProviderProps {\r\n siteMap: ISiteMap,\r\n}\r\n\r\nconst MultiStepTeachingBubbleContextProviderBase: FC<IMultiStepTeachingBubbleContextProviderPropsBase> = memo((props) => {\r\n const i18n = useContext(I18nContext) as I18nModel;\r\n const { scope } = useContext(ScopeContext) as IScopeContext;\r\n const preferenceService = useContext(PreferenceContext);\r\n\r\n const [, { read: readPreference, update: setPreference }] = usePreference({\r\n preferenceName: PREFERENCE_KEY,\r\n preferenceDefaultValue: {\r\n featureName: null,\r\n step: 0,\r\n },\r\n isUserLevel: true,\r\n });\r\n const initState = {\r\n ...defaultInitialState,\r\n configs: props.configs,\r\n };\r\n\r\n const [state, dispatch] = useReducer(reducer, initState);\r\n const {\r\n preference,\r\n current,\r\n waitList,\r\n history,\r\n } = state;\r\n\r\n const { lock, releaseLock } = useLock({\r\n key: keyVault.teachingBubble,\r\n priority: priorityLevel.teachingBubble,\r\n isReady: !!current,\r\n });\r\n\r\n useEffect(() => {\r\n if (!current && lock) {\r\n releaseLock();\r\n }\r\n }, [current, lock, releaseLock]);\r\n\r\n useEffect(() => {\r\n if (!preference) {\r\n const stepPreference = readPreference();\r\n dispatch({\r\n type: ACTIONS.SET_PREFERENCE,\r\n preference: stepPreference,\r\n });\r\n }\r\n }, [preference, readPreference]);\r\n\r\n const propsFromState = useMemo(() => getTeachingBubblePropsFromState({\r\n state,\r\n dispatch,\r\n i18n,\r\n setPreference,\r\n scope,\r\n siteMap: props.siteMap,\r\n serverContext: props.serverContext,\r\n logger: props.logger,\r\n shouldRerender: props.shouldRerender,\r\n }), [i18n, props.shouldRerender, scope, setPreference, state]);\r\n const {\r\n status: elementStatus,\r\n reset: resetElementDetection,\r\n } = useElementDetection(propsFromState && propsFromState.targetElement);\r\n const {\r\n isElementDeleted,\r\n resetIsElementDeleted,\r\n } = useElementDeletionDetection(propsFromState && propsFromState.targetElement, elementStatus);\r\n const isElementFound = elementStatus === ELEMENT_STATUS.FOUND;\r\n const shouldShowFromGovernance = useShouldShow({\r\n featureName: propsFromState && propsFromState.featureName,\r\n preferenceService,\r\n userGovernanceConfig: propsFromState && propsFromState.userGovernanceConfig,\r\n });\r\n\r\n const dismissCurrent = useCallback(() => {\r\n setPreference({\r\n featureName: null,\r\n step: 0,\r\n });\r\n dispatch({\r\n type: ACTIONS.DISMISS,\r\n });\r\n }, [setPreference]);\r\n\r\n useEffect(() => {\r\n if ((elementStatus === ELEMENT_STATUS.NOT_FOUND && state.current) || isElementDeleted) {\r\n // we need to reset the status to loading first, so that we won't dismiss next teaching bubble due to stale status\r\n resetElementDetection();\r\n resetIsElementDeleted();\r\n dismissCurrent();\r\n }\r\n }, [dismissCurrent, elementStatus, isElementDeleted, resetElementDetection, resetIsElementDeleted]);\r\n\r\n useEffect(() => {\r\n if (propsFromState && !shouldShowFromGovernance) {\r\n dismissCurrent();\r\n }\r\n }, [dismissCurrent, propsFromState, shouldShowFromGovernance]);\r\n\r\n useEffect(() => {\r\n if (waitList.length > 0) {\r\n logWaitList({\r\n waitList: waitList.map((item) => item.featureName),\r\n history,\r\n logger: props.logger,\r\n });\r\n }\r\n }, [history, props.logger, waitList]);\r\n\r\n const value = useMemo(() => ({\r\n state,\r\n dispatch,\r\n }), [state, dispatch]);\r\n\r\n const show = useMemo(\r\n () => !!propsFromState && isElementFound && shouldShowFromGovernance && lock,\r\n [propsFromState, isElementFound, shouldShowFromGovernance, lock],\r\n );\r\n\r\n useEffect(() => {\r\n if (show) {\r\n logAction({\r\n featureName: propsFromState.featureName,\r\n action: 'display',\r\n step: state.currentStep + 1,\r\n totalSteps: state.current.steps.length,\r\n logger: props.logger,\r\n });\r\n if (!state.hasShown) {\r\n dispatch({\r\n type: ACTIONS.DISPLAY,\r\n });\r\n }\r\n }\r\n }, [propsFromState, show, state.currentStep, state.current, props.logger]);\r\n\r\n return (\r\n <MultiStepTeachingBubbleContext.Provider value={value}>\r\n {props.children}\r\n {show && <TeachingBubbleWithoutLock {...propsFromState} />}\r\n </MultiStepTeachingBubbleContext.Provider>\r\n );\r\n});\r\n\r\nexport const MultiStepTeachingBubbleContextProvider: FC<IMultiStepTeachingBubbleContextProviderProps> = withSiteMap(MultiStepTeachingBubbleContextProviderBase);\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__888__;","module.exports = __WEBPACK_EXTERNAL_MODULE__889__;","module.exports = __WEBPACK_EXTERNAL_MODULE__890__;","import React from 'react';\r\nimport { DirectionalHint } from '@fluentui/react';\r\nimport { ISiteMap } from './types/types';\r\n\r\nexport enum ACTIONS {\r\n ADD = 'ADD',\r\n DISMISS = 'DISMISS',\r\n NEXT_STEP = 'NEXT_STEP',\r\n SET_PREFERENCE = 'SET_PREFERENCE',\r\n DISPLAY = 'DISPLAY',\r\n}\r\n\r\ninterface StepConfig {\r\n title: string,\r\n content: string | React.ComponentType,\r\n primaryButtonText: string,\r\n secondaryButtonText?: string,\r\n isSecondaryButtonHidden?: boolean,\r\n targetElement: string,\r\n directionalHint: DirectionalHint,\r\n onNext?: (scope: any, siteMap: ISiteMap, serverContext?: any) => void,\r\n hideAnnotation?: boolean,\r\n}\r\n\r\nexport interface IConfig {\r\n featureName: string,\r\n userGovernanceConfig: any,\r\n steps: StepConfig[],\r\n doNotLayer?: boolean,\r\n}\r\n\r\ninterface Preference {\r\n featureName: string | null,\r\n step: number,\r\n}\r\nexport interface ITeachingBubbleState {\r\n current: IConfig | null,\r\n configs: IConfig[],\r\n waitList: IConfig[],\r\n history: string[],\r\n currentStep: number,\r\n preference?: Preference,\r\n hasShown: boolean,\r\n}\r\n\r\ninterface AddAction {\r\n type: ACTIONS.ADD,\r\n config: IConfig,\r\n}\r\n\r\ninterface DismissAction {\r\n type: ACTIONS.DISMISS,\r\n}\r\n\r\ninterface NextStepAction {\r\n type: ACTIONS.NEXT_STEP,\r\n}\r\n\r\ninterface SetPreferenceAction {\r\n type: ACTIONS.SET_PREFERENCE,\r\n preference: Preference,\r\n}\r\n\r\ninterface DisplayAction {\r\n type: ACTIONS.DISPLAY,\r\n}\r\n\r\nexport type TeachingBubbleAction = AddAction | DismissAction | NextStepAction | SetPreferenceAction | DisplayAction;\r\n\r\nexport const reducer = (state: ITeachingBubbleState, action: TeachingBubbleAction): ITeachingBubbleState => {\r\n switch (action.type) {\r\n case ACTIONS.ADD: {\r\n if (state.history.includes(action.config.featureName)) {\r\n return state;\r\n }\r\n const newHistory = [...state.history, action.config.featureName];\r\n\r\n // if preference is not read, we put it to wait list first;\r\n if (!state.current && state.preference) {\r\n return {\r\n ...state,\r\n current: action.config,\r\n currentStep: 0,\r\n history: newHistory,\r\n };\r\n }\r\n return {\r\n ...state,\r\n waitList: [...state.waitList, action.config],\r\n history: newHistory,\r\n };\r\n }\r\n case ACTIONS.NEXT_STEP: {\r\n if (!state.current) {\r\n return state;\r\n }\r\n\r\n if (state.currentStep < state.current.steps.length - 1) {\r\n return {\r\n ...state,\r\n currentStep: state.currentStep + 1,\r\n };\r\n }\r\n\r\n // we have a logic change here, if we are showing bubble right now, we should clear wait list after we dismiss current bubble.\r\n // this is a change to meet the requirement from CSAT team, so that we don't show bubble back to back.\r\n // we still keep this wait list because we still need it at the beginning when we wait for preference to initialize.\r\n return {\r\n ...state,\r\n waitList: [],\r\n current: null,\r\n currentStep: 0,\r\n };\r\n }\r\n case ACTIONS.DISMISS: {\r\n if (state.waitList.length > 0 && !state.hasShown) {\r\n return {\r\n ...state,\r\n current: state.waitList[0],\r\n waitList: state.waitList.slice(1),\r\n currentStep: 0,\r\n };\r\n }\r\n\r\n // we have a logic change here, if we are showing bubble right now, we should clear wait list after we dismiss current bubble.\r\n // this is a change to meet the requirement from CSAT team, so that we don't show bubble back to back.\r\n return {\r\n ...state,\r\n waitList: [],\r\n current: null,\r\n currentStep: 0,\r\n };\r\n }\r\n case ACTIONS.DISPLAY: {\r\n return {\r\n ...state,\r\n hasShown: true,\r\n };\r\n }\r\n case ACTIONS.SET_PREFERENCE: {\r\n if (state.preference) {\r\n return state;\r\n }\r\n\r\n if (action.preference.featureName && action.preference.step > 0) {\r\n const indexInWaitList = state.waitList.findIndex((config) => config.featureName === action.preference.featureName);\r\n if (indexInWaitList > -1) {\r\n return {\r\n ...state,\r\n current: state.waitList[indexInWaitList],\r\n preference: action.preference,\r\n currentStep: action.preference.step,\r\n waitList: [...state.waitList.slice(0, indexInWaitList), ...state.waitList.slice(indexInWaitList + 1)],\r\n };\r\n }\r\n\r\n const indexInConfigs = state.configs.findIndex((config) => config.featureName === action.preference.featureName);\r\n if (indexInConfigs > -1) {\r\n let newHistory = state.history;\r\n if (!state.history.includes(action.preference.featureName)) {\r\n newHistory = [...state.history, action.preference.featureName];\r\n }\r\n\r\n return {\r\n ...state,\r\n current: state.configs[indexInConfigs],\r\n preference: action.preference,\r\n currentStep: action.preference.step,\r\n history: newHistory,\r\n };\r\n }\r\n }\r\n\r\n if (state.waitList.length === 0) {\r\n return {\r\n ...state,\r\n preference: action.preference,\r\n };\r\n }\r\n\r\n const newCurrentStep = state.waitList[0].featureName === action.preference.featureName ? action.preference.step : 0;\r\n return {\r\n ...state,\r\n current: state.waitList[0],\r\n waitList: state.waitList.slice(1),\r\n currentStep: newCurrentStep,\r\n preference: action.preference,\r\n };\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const defaultInitialState = {\r\n current: null,\r\n configs: [],\r\n waitList: [],\r\n history: [],\r\n currentStep: 0,\r\n hasShown: false,\r\n};\r\n","import { DirectionalHint } from '@fluentui/react';\r\nimport React from 'react';\r\n\r\nimport { ACTIONS, ITeachingBubbleState, TeachingBubbleAction } from './reducer';\r\nimport { ILogger, TLogActionType, ISiteMap } from './types/types';\r\n\r\nexport interface TeachingBubbleProps {\r\n featureName: string;\r\n userGovernanceConfig: any;\r\n title: string;\r\n content: string | React.ComponentType;\r\n primaryButtonText: string;\r\n secondaryButtonText?: string;\r\n isSecondaryButtonHidden: boolean,\r\n targetElement: string;\r\n footerText: string;\r\n onDone: () => void;\r\n onDismiss: () => void;\r\n onClose: () => void;\r\n directionalHint: DirectionalHint;\r\n skipOnDoneGovernance: boolean;\r\n doNotLayer?: boolean;\r\n shouldRerender?: boolean;\r\n}\r\n\r\nexport function logAction(logProps: {\r\n featureName: string,\r\n action: TLogActionType,\r\n step: number,\r\n totalSteps: number,\r\n logger?: ILogger,\r\n}) : void {\r\n const message = {\r\n featureName: logProps.featureName,\r\n action: logProps.action,\r\n step: logProps.step,\r\n totalSteps: logProps.totalSteps,\r\n };\r\n\r\n logProps.logger?.trace(JSON.stringify(message));\r\n}\r\n\r\nexport function logWaitList(logProps: {\r\n waitList: string[],\r\n history: string[],\r\n logger?: ILogger,\r\n}): void {\r\n const message = {\r\n waitList: logProps.waitList,\r\n history: logProps.history,\r\n url: window.location.href,\r\n };\r\n\r\n logProps.logger?.trace(JSON.stringify(message));\r\n}\r\n\r\nfunction isContentPureString(content: string | React.ComponentType): content is string {\r\n return typeof content === 'string';\r\n}\r\n\r\nexport function getTeachingBubblePropsFromState(states: {\r\n state: ITeachingBubbleState;\r\n dispatch: React.Dispatch<TeachingBubbleAction>;\r\n i18n: {\r\n getString: (key: string, options?: Object) => string;\r\n }\r\n setPreference: (preference: any) => void;\r\n scope: {\r\n save: (route: string) => void;\r\n },\r\n serverContext?: any,\r\n siteMap: ISiteMap,\r\n logger?: ILogger,\r\n shouldRerender?: boolean,\r\n}): TeachingBubbleProps | null {\r\n const {\r\n state,\r\n dispatch,\r\n i18n,\r\n setPreference,\r\n scope,\r\n serverContext,\r\n siteMap,\r\n logger,\r\n shouldRerender,\r\n } = states;\r\n\r\n const {\r\n current,\r\n currentStep,\r\n } = state;\r\n\r\n if (!current || currentStep >= current.steps.length) {\r\n return null;\r\n }\r\n\r\n const footerText = current.steps.length > 1 && (!current.steps[currentStep].hideAnnotation) ? i18n.getString(_TL_('{{index}} of {{total}}'), {\r\n index: currentStep + 1,\r\n total: current.steps.length,\r\n }) : undefined;\r\n\r\n const isLastStep = currentStep === current.steps.length - 1;\r\n\r\n const onDone = () => {\r\n if (!current) {\r\n return;\r\n }\r\n\r\n logAction({\r\n featureName: current.featureName,\r\n action: 'done',\r\n step: currentStep + 1,\r\n totalSteps: current.steps.length,\r\n logger,\r\n });\r\n\r\n setPreference({\r\n featureName: current.featureName,\r\n step: (currentStep + 1) % current.steps.length,\r\n });\r\n dispatch({\r\n type: ACTIONS.NEXT_STEP,\r\n });\r\n\r\n if (current.steps[currentStep].onNext) {\r\n current.steps[currentStep].onNext(scope, siteMap, serverContext);\r\n }\r\n };\r\n\r\n const onDismiss = () => {\r\n logAction({\r\n featureName: current.featureName,\r\n action: 'dismiss',\r\n step: currentStep + 1,\r\n totalSteps: current.steps.length,\r\n logger,\r\n });\r\n\r\n setPreference({\r\n featureName: null,\r\n step: 0,\r\n });\r\n dispatch({\r\n type: ACTIONS.DISMISS,\r\n });\r\n };\r\n\r\n const isContentString = isContentPureString(current.steps[currentStep].content);\r\n\r\n const { secondaryButtonText } = current.steps[currentStep];\r\n return {\r\n featureName: current.featureName,\r\n userGovernanceConfig: current.userGovernanceConfig,\r\n title: i18n.getString(current.steps[currentStep].title),\r\n content: isContentString ? i18n.getString(current.steps[currentStep].content as string) : current.steps[currentStep].content,\r\n primaryButtonText: i18n.getString(current.steps[currentStep].primaryButtonText),\r\n secondaryButtonText: secondaryButtonText ? i18n.getString(secondaryButtonText) : null,\r\n isSecondaryButtonHidden: current.steps[currentStep].isSecondaryButtonHidden,\r\n targetElement: current.steps[currentStep].targetElement,\r\n footerText,\r\n onDone,\r\n onDismiss,\r\n onClose: onDismiss,\r\n directionalHint: current.steps[currentStep].directionalHint,\r\n skipOnDoneGovernance: !isLastStep,\r\n doNotLayer: current.doNotLayer,\r\n shouldRerender,\r\n };\r\n}\r\n","export const PREFERENCE_KEY = 'ba-multi-step-teaching-bubble-preference';\r\n","import _ from 'underscore';\r\nimport { useState, useEffect, useCallback } from 'react';\r\n\r\nconst interval = 500;\r\nconst defaultTimeout = 10000;\r\n\r\nexport enum ELEMENT_STATUS {\r\n NOT_FOUND,\r\n FOUND,\r\n LOADING,\r\n}\r\n\r\nexport function useElementDetection(elementSelector?: string): { status: ELEMENT_STATUS; reset: () => void } {\r\n const [status, setStatus] = useState(ELEMENT_STATUS.NOT_FOUND);\r\n\r\n useEffect(() => {\r\n if (!_.isEmpty(elementSelector)) {\r\n setStatus(ELEMENT_STATUS.LOADING);\r\n const startTime = Date.now();\r\n const intervalId = setInterval(() => {\r\n const element = document.querySelector(elementSelector) as HTMLElement;\r\n if (element && element.offsetParent) {\r\n clearInterval(intervalId);\r\n setStatus(ELEMENT_STATUS.FOUND);\r\n } else if (Date.now() - startTime >= defaultTimeout) {\r\n clearInterval(intervalId);\r\n setStatus(ELEMENT_STATUS.NOT_FOUND);\r\n }\r\n }, interval);\r\n } else {\r\n setStatus(ELEMENT_STATUS.LOADING);\r\n }\r\n }, [elementSelector]);\r\n\r\n const reset = useCallback(() => {\r\n setStatus(ELEMENT_STATUS.LOADING);\r\n }, [setStatus]);\r\n\r\n return {\r\n status,\r\n reset,\r\n };\r\n}\r\n\r\nfunction getAllParents(element: HTMLElement): Node[] {\r\n const nodes = [];\r\n let el : Node = element;\r\n nodes.push(el);\r\n while (el.parentNode) {\r\n nodes.unshift(el.parentNode);\r\n el = el.parentNode;\r\n }\r\n\r\n return nodes;\r\n}\r\n\r\nexport function useElementDeletionDetection(elementSelector: string | null, status: ELEMENT_STATUS): { isElementDeleted: boolean, resetIsElementDeleted: () => void } {\r\n const [isElementDeleted, setIsElementDeleted] = useState(false);\r\n const element = document.querySelector(elementSelector) as HTMLElement;\r\n\r\n useEffect(() => {\r\n const parentElements = element ? getAllParents(element) : [];\r\n let observer: MutationObserver | null = null;\r\n if (status === ELEMENT_STATUS.FOUND) {\r\n observer = new MutationObserver((mutations) => {\r\n mutations.forEach((mutation) => {\r\n if (mutation.type === 'childList') {\r\n if (_.intersection(parentElements, mutation.removedNodes).length > 0) {\r\n setIsElementDeleted(true);\r\n }\r\n }\r\n });\r\n });\r\n\r\n observer.observe(document.querySelector('body'), { subtree: true, childList: true });\r\n }\r\n\r\n return () => {\r\n observer?.disconnect();\r\n };\r\n }, [element, status]);\r\n\r\n const reset = useCallback(() => {\r\n setIsElementDeleted(false);\r\n }, [setIsElementDeleted]);\r\n\r\n return {\r\n isElementDeleted,\r\n resetIsElementDeleted: reset,\r\n };\r\n}\r\n","import { ACTIONS, ITeachingBubbleState, TeachingBubbleAction } from './reducer';\r\n\r\nexport interface ITriggerBubbleProps {\r\n featureName: string;\r\n state: ITeachingBubbleState;\r\n dispatch: (action: TeachingBubbleAction) => void;\r\n}\r\n\r\nexport const triggerMultiStepTeachingBubbleWithLock = (triggerBubbleProps: ITriggerBubbleProps): void => {\r\n const {\r\n featureName,\r\n state,\r\n dispatch,\r\n } = triggerBubbleProps;\r\n\r\n const {\r\n configs,\r\n history,\r\n } = state;\r\n\r\n const config = configs.find((cfg) => cfg.featureName === featureName);\r\n\r\n if (!config) {\r\n // TODO: log error for invalid featureName\r\n return;\r\n }\r\n\r\n if (history.includes(config.featureName)) {\r\n return;\r\n }\r\n\r\n dispatch({\r\n type: ACTIONS.ADD,\r\n config,\r\n });\r\n};\r\n","import {\r\n getTeachingBubbleUserGovernanceConfig,\r\n} from '@bingads-webui-campaign-react/popup-components';\r\n\r\nexport const defaultUserGovernanceConfig = getTeachingBubbleUserGovernanceConfig();\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__9__;","module.exports = __WEBPACK_EXTERNAL_MODULE__10__;","module.exports = __WEBPACK_EXTERNAL_MODULE__11__;","module.exports = __WEBPACK_EXTERNAL_MODULE__36__;","module.exports = __WEBPACK_EXTERNAL_MODULE__417__;","module.exports = __WEBPACK_EXTERNAL_MODULE__42__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5__;","module.exports = __WEBPACK_EXTERNAL_MODULE__561__;","export { TeachingBubble, TeachingBubbleWithCoachmark, TeachingBubbleWithoutLock } from './src/teaching-bubble';\r\nexport { CriticalInfo } from './src/critical-info';\r\nexport { SystemAnnouncement } from './src/system-announcement';\r\n\r\nexport { withUserGovernance } from './src/with-user-governance';\r\nexport { getTeachingBubbleUserGovernanceConfig, useShouldShow } from './src/utils';\r\nexport { PreferenceState } from './src/preference-state';\r\n","import React, { useContext, useMemo, useEffect, useCallback, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport classNames from 'classnames';\r\n\r\nimport { Coachmark, TeachingBubbleContent, Callout, Text, Stack, IconButton, DirectionalHint, DefaultButton, PrimaryButton } from '@bingads-webui-react/fabric-control';\r\nimport { useId } from '@fluentui/react-hooks';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { withLock, keyVault, priorityLevel } from '@bingads-webui-react/popup-manager';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { Scenario, Activity, withActivityContext } from '@bingads-webui-react/hoc-with-signal';\r\n\r\nimport { withUserGovernance } from './with-user-governance';\r\nimport { getTeachingBubbleUserGovernanceConfig } from './utils';\r\nimport { getStyles, styles } from './styles';\r\nimport { useLogger } from './logger';\r\n\r\n// update state to force render\r\nconst useForceUpdate = () => {\r\n const [, setValue] = useState(0);\r\n return () => setValue(value => value + 1);\r\n};\r\n\r\nexport const TeachingBubbleInner = ({\r\n isOneStepTeachingBubble,\r\n classes,\r\n activity,\r\n featureName,\r\n targetElement,\r\n title,\r\n content,\r\n primaryButtonText,\r\n secondaryButtonText,\r\n footerText,\r\n onDone, // primary button\r\n onDismiss, // secondary button\r\n onClose, // close button\r\n isLightDismissSupported,\r\n directionalHint,\r\n skipOnDoneGovernance,\r\n doNotLayer,\r\n className,\r\n isSecondaryButtonHidden,\r\n shouldRerender,\r\n}) => {\r\n const { logTrace } = useLogger(activity, featureName);\r\n const i18n = useContext(I18nContext);\r\n const forceUpdate = useForceUpdate();\r\n\r\n const labelId = useId('callout-label');\r\n const descriptionId = useId('callout-description');\r\n\r\n const onDoneButtonClick = useCallback(() => {\r\n logTrace('done button click');\r\n onDone(skipOnDoneGovernance);\r\n }, [logTrace, onDone, skipOnDoneGovernance]);\r\n\r\n const onDismissButtonClick = useCallback(() => {\r\n logTrace('dismiss button click');\r\n onDismiss();\r\n }, [logTrace, onDismiss]);\r\n\r\n const onCloseButtonClick = useCallback(() => {\r\n logTrace('close button click');\r\n onClose();\r\n }, [logTrace, onClose]);\r\n\r\n const onCalloutDismiss = useCallback((event) => {\r\n if (event && event.keyCode === 27) { // Escape\r\n logTrace('keyboard ESC click');\r\n onDismiss();\r\n } else if (isLightDismissSupported) {\r\n logTrace('outside click');\r\n onDismiss(true /* skipOnDismissGovernance */);\r\n }\r\n }, [isLightDismissSupported, logTrace, onDismiss]);\r\n\r\n const preventDismissOnEvent = useCallback((event) => {\r\n if (event && event.type === 'scroll') {\r\n // When grid table render, it will trigger resize, which will cause teaching bubble dismiss.\r\n // Add this check to prevent this dismiss.\r\n return true;\r\n }\r\n return false;\r\n }, []);\r\n\r\n const footerContent = useMemo(() => (\r\n <React.Fragment>\r\n <DefaultButton text={primaryButtonText} onClick={onDoneButtonClick} />\r\n {!isSecondaryButtonHidden &&\r\n <PrimaryButton text={secondaryButtonText} onClick={onDismissButtonClick} />\r\n }\r\n </React.Fragment>\r\n ), [primaryButtonText, onDoneButtonClick, isSecondaryButtonHidden, secondaryButtonText, onDismissButtonClick]);\r\n\r\n useEffect(() => {\r\n logTrace(isOneStepTeachingBubble ?\r\n 'feature level teaching bubble render' : 'teaching bubble mount');\r\n }, [isOneStepTeachingBubble, logTrace]);\r\n\r\n useEffect(() => {\r\n if (shouldRerender) {\r\n forceUpdate();\r\n }\r\n // Only depend on shouldRerender value\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [shouldRerender]);\r\n\r\n return (\r\n isOneStepTeachingBubble ?\r\n <Callout\r\n ariaLabelledBy={labelId}\r\n ariaDescribedBy={descriptionId}\r\n role=\"dialog\"\r\n className={classNames(['teaching-bubble-content', className, styles.callout])}\r\n target={targetElement}\r\n directionalHint={directionalHint}\r\n doNotLayer={doNotLayer}\r\n onDismiss={onCalloutDismiss}\r\n preventDismissOnEvent={preventDismissOnEvent}\r\n >\r\n <Text block variant=\"xLarge\" className={classNames(['ms-TeachingBubble-headline', styles.title])} id={labelId}>\r\n {title}\r\n </Text>\r\n <Stack className={classNames(['ms-TeachingBubble-body', styles.content])}>\r\n {content}\r\n </Stack>\r\n <Stack horizontal verticalAlign=\"center\" className={classNames(['ms-TeachingBubble-footer', styles.footer])}>\r\n <Stack.Item>\r\n <DefaultButton\r\n className={styles.defaultBtn}\r\n text={primaryButtonText}\r\n title={primaryButtonText}\r\n onClick={onDoneButtonClick}\r\n />\r\n </Stack.Item>\r\n {!isSecondaryButtonHidden &&\r\n <Stack.Item>\r\n <PrimaryButton\r\n className={styles.primaryBtn}\r\n text={secondaryButtonText}\r\n title={secondaryButtonText}\r\n onClick={onDismissButtonClick}\r\n />\r\n </Stack.Item>\r\n }\r\n {\r\n footerText &&\r\n <Stack.Item>\r\n <Text className={classNames('ms-TeachingBubble-footer-text', styles.footerText)}>{footerText}</Text>\r\n </Stack.Item>\r\n }\r\n </Stack>\r\n <IconButton\r\n iconProps={{ iconName: 'Cancel' }}\r\n ariaLabel={i18n.getString(_TL_('Close'))}\r\n onClick={onCloseButtonClick}\r\n style={{ position: 'absolute', top: '0', right: '0' }}\r\n className={classNames(['teaching-bubble-close-button', styles.closeBtn])}\r\n />\r\n </Callout> :\r\n <div\r\n className={classNames(['teaching-bubble-content', classes.teachingBubbleContent])}\r\n >\r\n <TeachingBubbleContent\r\n headline={title}\r\n hasCloseButton\r\n closeButtonAriaLabel={i18n.getString(_TL_('Close'))}\r\n onDismiss={onCloseButtonClick}\r\n styles={styles}\r\n footerContent={footerContent}\r\n >\r\n {content}\r\n </TeachingBubbleContent>\r\n </div>\r\n );\r\n};\r\n\r\nTeachingBubbleInner.propTypes = {\r\n isOneStepTeachingBubble: PropTypes.bool,\r\n classes: PropTypes.shape({\r\n teachingBubbleContent: PropTypes.string.isRequired,\r\n }).isRequired,\r\n activity: PropTypes.shape({\r\n trace: PropTypes.func.isRequired,\r\n error: PropTypes.func.isRequired,\r\n }),\r\n featureName: PropTypes.string.isRequired,\r\n targetElement: PropTypes.string.isRequired,\r\n title: PropTypes.string.isRequired,\r\n content: PropTypes.string.isRequired,\r\n primaryButtonText: PropTypes.string.isRequired,\r\n secondaryButtonText: PropTypes.string.isRequired,\r\n onDone: PropTypes.func.isRequired,\r\n onDismiss: PropTypes.func.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n isLightDismissSupported: PropTypes.bool,\r\n directionalHint: PropTypes.number,\r\n footerText: PropTypes.string,\r\n skipOnDoneGovernance: PropTypes.bool,\r\n doNotLayer: PropTypes.bool,\r\n className: PropTypes.string,\r\n isSecondaryButtonHidden: PropTypes.bool,\r\n shouldRerender: PropTypes.bool,\r\n};\r\n\r\nTeachingBubbleInner.defaultProps = {\r\n isOneStepTeachingBubble: false,\r\n activity: {\r\n trace: _.noop,\r\n error: _.noop,\r\n },\r\n isLightDismissSupported: false,\r\n directionalHint: DirectionalHint.bottomLeftEdge,\r\n footerText: null,\r\n skipOnDoneGovernance: false,\r\n doNotLayer: false,\r\n className: undefined,\r\n isSecondaryButtonHidden: false,\r\n shouldRerender: false,\r\n};\r\n\r\nconst StyledTeachingBubbleInnerWithoutLock = _.compose(\r\n withActivityContext,\r\n withUserGovernance,\r\n WrappedComponent => withDefaultStyles(WrappedComponent, getStyles)\r\n)(TeachingBubbleInner);\r\n\r\n// We should ensure withUserGovernance HOC wrap withLock HOC.\r\nconst StyledTeachingBubbleInner = _.compose(\r\n withActivityContext,\r\n withUserGovernance,\r\n WrappedComponent => withLock(WrappedComponent, {\r\n lockKey: keyVault.teachingBubble,\r\n priority: priorityLevel.teachingBubble,\r\n autoClose: true,\r\n }),\r\n WrappedComponent => withDefaultStyles(WrappedComponent, getStyles)\r\n)(TeachingBubbleInner);\r\n\r\nexport const TeachingBubble = props => (\r\n <Scenario name=\"TeachingBubble\">\r\n <Activity name=\"TeachingBubble\">\r\n <StyledTeachingBubbleInner\r\n userGovernanceConfig={getTeachingBubbleUserGovernanceConfig()}\r\n isOneStepTeachingBubble\r\n {...props}\r\n />\r\n </Activity>\r\n </Scenario>\r\n);\r\n\r\nexport const TeachingBubbleWithoutLock = props => (\r\n <Scenario name=\"TeachingBubble\">\r\n <Activity name=\"TeachingBubble\">\r\n <StyledTeachingBubbleInnerWithoutLock\r\n userGovernanceConfig={props.userGovernanceConfig}\r\n isOneStepTeachingBubble\r\n {...props}\r\n />\r\n </Activity>\r\n </Scenario>\r\n);\r\n\r\nTeachingBubbleWithoutLock.propTypes = {\r\n userGovernanceConfig: PropTypes.shape({\r\n expirationDate: PropTypes.shape({}),\r\n }),\r\n};\r\n\r\nTeachingBubbleWithoutLock.defaultProps = {\r\n userGovernanceConfig: getTeachingBubbleUserGovernanceConfig(),\r\n};\r\n\r\nconst UnstyledTeachingBubble = ({\r\n activity,\r\n classes,\r\n featureName,\r\n title,\r\n content,\r\n primaryButtonText,\r\n secondaryButtonText,\r\n onDone, // primary button\r\n onDismiss, // secondary button\r\n onClose, // close button\r\n isLightDismissSupported,\r\n onTeachingBubbleOpen,\r\n targetElement,\r\n directionalHint,\r\n rightOffset,\r\n}) => {\r\n const { logTrace } = useLogger(activity, featureName);\r\n\r\n const positioningContainerProps = useMemo(() => ({\r\n offsetFromTarget: 0,\r\n directionalHint,\r\n }), [directionalHint]);\r\n\r\n const onAnimationOpenEnd = useCallback(() => {\r\n logTrace('teaching bubble show (extend)');\r\n onTeachingBubbleOpen();\r\n }, [logTrace, onTeachingBubbleOpen]);\r\n\r\n useEffect(() => {\r\n logTrace('coach mark show');\r\n }, [logTrace]);\r\n\r\n return (\r\n <Coachmark\r\n className={classNames('teaching-bubble', featureName)}\r\n target={targetElement}\r\n positioningContainerProps={positioningContainerProps}\r\n styles={{ root: { right: rightOffset } }}\r\n persistentBeak\r\n preventFocusOnMount\r\n // teaching bubble will be extend when the coachmark is closed\r\n onAnimationOpenEnd={onAnimationOpenEnd}\r\n delayBeforeCoachmarkAnimation={0}\r\n delayBeforeMouseOpen={0}\r\n >\r\n <TeachingBubbleInner\r\n activity={activity}\r\n classes={classes}\r\n featureName={featureName}\r\n title={title}\r\n content={content}\r\n primaryButtonText={primaryButtonText}\r\n secondaryButtonText={secondaryButtonText}\r\n onDone={onDone}\r\n onDismiss={onDismiss}\r\n onClose={onClose}\r\n isLightDismissSupported={isLightDismissSupported}\r\n />\r\n </Coachmark>\r\n );\r\n};\r\n\r\nUnstyledTeachingBubble.propTypes = {\r\n activity: PropTypes.shape({\r\n trace: PropTypes.func.isRequired,\r\n error: PropTypes.func.isRequired,\r\n }),\r\n classes: PropTypes.shape({\r\n teachingBubbleContent: PropTypes.string.isRequired,\r\n }).isRequired,\r\n featureName: PropTypes.string.isRequired,\r\n targetElement: PropTypes.string.isRequired,\r\n title: PropTypes.string.isRequired,\r\n content: PropTypes.string.isRequired,\r\n primaryButtonText: PropTypes.string.isRequired,\r\n secondaryButtonText: PropTypes.string.isRequired,\r\n onDone: PropTypes.func.isRequired,\r\n onDismiss: PropTypes.func.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n isLightDismissSupported: PropTypes.bool,\r\n onTeachingBubbleOpen: PropTypes.func,\r\n directionalHint: PropTypes.number,\r\n rightOffset: PropTypes.number,\r\n};\r\n\r\nUnstyledTeachingBubble.defaultProps = {\r\n activity: {\r\n trace: _.noop,\r\n error: _.noop,\r\n },\r\n isLightDismissSupported: false,\r\n onTeachingBubbleOpen: _.noop,\r\n directionalHint: DirectionalHint.bottomLeftEdge,\r\n rightOffset: -15,\r\n};\r\n\r\nconst StyledTeachingBubble = _.compose(\r\n withActivityContext,\r\n withUserGovernance,\r\n WrappedComponent => withLock(WrappedComponent, {\r\n lockKey: keyVault.teachingBubble,\r\n priority: priorityLevel.teachingBubble,\r\n autoClose: true,\r\n }),\r\n WrappedComponent => withDefaultStyles(WrappedComponent, getStyles)\r\n)(UnstyledTeachingBubble);\r\n\r\nexport const TeachingBubbleWithCoachmark = props => (\r\n <Scenario name=\"TeachingBubble\">\r\n <Activity name=\"TeachingBubble\">\r\n <StyledTeachingBubble\r\n userGovernanceConfig={getTeachingBubbleUserGovernanceConfig()}\r\n {...props}\r\n />\r\n </Activity>\r\n </Scenario>\r\n);\r\n","import { noop, result } from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport React, { useMemo, useCallback } from 'react';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\nimport { withPreference } from '@bingads-webui-react/preference-context';\r\n\r\nimport { defaultUserGovernanceConfig } from './user-governance-config';\r\nimport { useFeaturePreference, useFeaturePreferenceService, useShouldShow } from './utils';\r\n\r\nexport const withUserGovernance = (WrappedComponent) => {\r\n const ComponentWithUserGovernance = (props) => {\r\n const {\r\n featureName,\r\n userGovernanceConfig,\r\n i18n,\r\n preferenceService,\r\n onDone,\r\n onDismiss,\r\n onClose,\r\n } = props;\r\n\r\n const featurePreferenceService = useFeaturePreferenceService(preferenceService);\r\n\r\n const featurePreference = useFeaturePreference({\r\n featurePreferenceService,\r\n userGovernanceConfig,\r\n featureName,\r\n });\r\n\r\n const governancedOnDone = useCallback((skipOnDoneGovernance = false) => {\r\n if (!skipOnDoneGovernance) {\r\n const nextState = userGovernanceConfig[featurePreference.state].stateMachine.onDone;\r\n const { cooldownDays } = userGovernanceConfig[nextState];\r\n featurePreferenceService.setPreference(featureName, {\r\n state: nextState,\r\n nextShownDate: featurePreferenceService.getDaysAfter(cooldownDays),\r\n expirationDate: userGovernanceConfig.expirationDate,\r\n });\r\n }\r\n\r\n onDone();\r\n }, [userGovernanceConfig, featurePreference, featurePreferenceService, featureName, onDone]);\r\n\r\n const governancedOnDismiss = useCallback((skipOnDismissGovernance = false) => {\r\n if (!skipOnDismissGovernance) {\r\n const nextState = userGovernanceConfig[featurePreference.state].stateMachine.onDismiss;\r\n const { cooldownDays } = userGovernanceConfig[nextState];\r\n featurePreferenceService.setPreference(featureName, {\r\n state: nextState,\r\n nextShownDate: featurePreferenceService.getDaysAfter(cooldownDays),\r\n expirationDate: userGovernanceConfig.expirationDate,\r\n });\r\n }\r\n\r\n onDismiss();\r\n }, [userGovernanceConfig, featurePreference, featurePreferenceService, featureName, onDismiss]);\r\n\r\n const governancedOnClose = useCallback(() => {\r\n const nextState = userGovernanceConfig[featurePreference.state].stateMachine.onClose;\r\n const { cooldownDays } = userGovernanceConfig[nextState];\r\n featurePreferenceService.setPreference(featureName, {\r\n state: nextState,\r\n nextShownDate: featurePreferenceService.getDaysAfter(cooldownDays),\r\n expirationDate: userGovernanceConfig.expirationDate,\r\n });\r\n\r\n onClose();\r\n }, [userGovernanceConfig, featurePreference, featurePreferenceService, featureName, onClose]);\r\n\r\n const primaryButtonText = useMemo(() => i18n.getString(result(userGovernanceConfig[featurePreference.state], 'primaryButtonText', '')), [i18n, userGovernanceConfig, featurePreference]);\r\n const secondaryButtonText = useMemo(() => i18n.getString(result(userGovernanceConfig[featurePreference.state], 'secondaryButtonText', '')), [i18n, userGovernanceConfig, featurePreference]);\r\n\r\n const show = useShouldShow({\r\n featureName,\r\n preferenceService,\r\n userGovernanceConfig,\r\n });\r\n\r\n\r\n return show && (\r\n <WrappedComponent\r\n {...props}\r\n onDone={governancedOnDone}\r\n onDismiss={governancedOnDismiss}\r\n onClose={governancedOnClose}\r\n primaryButtonText={primaryButtonText || props.primaryButtonText}\r\n secondaryButtonText={secondaryButtonText || props.secondaryButtonText}\r\n />\r\n );\r\n };\r\n\r\n ComponentWithUserGovernance.propTypes = {\r\n userGovernanceConfig: PropTypes.shape({\r\n expirationDate: PropTypes.shape({}),\r\n }),\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n preferenceService: PropTypes.shape({}).isRequired,\r\n featureName: PropTypes.string.isRequired,\r\n onDone: PropTypes.func,\r\n onDismiss: PropTypes.func,\r\n onClose: PropTypes.func,\r\n primaryButtonText: PropTypes.string,\r\n secondaryButtonText: PropTypes.string,\r\n };\r\n\r\n ComponentWithUserGovernance.defaultProps = {\r\n userGovernanceConfig: defaultUserGovernanceConfig,\r\n onDone: noop,\r\n onDismiss: noop,\r\n onClose: noop,\r\n primaryButtonText: '',\r\n secondaryButtonText: '',\r\n };\r\n\r\n return withI18nConsumer(withPreference(ComponentWithUserGovernance));\r\n};\r\n","import { PreferenceState } from './preference-state';\r\n\r\nexport const defaultUserGovernanceConfig = {\r\n // If the expiration date is set and it is in the past, do not show the component\r\n // set the value with the format: new Date('2023/12/31')\r\n expirationDate: null,\r\n [PreferenceState.INIT]: {\r\n // cooldownDays is the number of days after the user can see the component again\r\n cooldownDays: 0,\r\n // secondaryButtonText is the text that will be displayed on the secondary button\r\n secondaryButtonText: _TL_('Remind me later'),\r\n // stateMachine is the state machine that will be used to transition between states\r\n stateMachine: {\r\n // onDone is the state that will be set when the user clicks on the primary button\r\n onDone: PreferenceState.STOP_SHOWN,\r\n // onDismiss is the state that will be set when the user clicks on the secondary button\r\n onDismiss: PreferenceState.FIRST_DISMISS,\r\n // onClose is the state that will be set when the user clicks on the close button\r\n onClose: PreferenceState.STOP_SHOWN,\r\n },\r\n },\r\n [PreferenceState.SUBMIT]: {\r\n cooldownDays: 0,\r\n secondaryButtonText: _TL_('Remind me later'),\r\n stateMachine: {\r\n onDone: PreferenceState.STOP_SHOWN,\r\n onDismiss: PreferenceState.FIRST_DISMISS,\r\n onClose: PreferenceState.STOP_SHOWN,\r\n },\r\n },\r\n [PreferenceState.FIRST_DISMISS]: {\r\n cooldownDays: 7,\r\n secondaryButtonText: _TL_('Remind me later'),\r\n stateMachine: {\r\n onDone: PreferenceState.STOP_SHOWN,\r\n onDismiss: PreferenceState.SECOND_DISMISS,\r\n onClose: PreferenceState.STOP_SHOWN,\r\n },\r\n },\r\n [PreferenceState.SECOND_DISMISS]: {\r\n cooldownDays: 14,\r\n secondaryButtonText: _TL_('Remind me later'),\r\n stateMachine: {\r\n onDone: PreferenceState.STOP_SHOWN,\r\n onDismiss: PreferenceState.THIRD_DISMISS,\r\n onClose: PreferenceState.STOP_SHOWN,\r\n },\r\n },\r\n [PreferenceState.THIRD_DISMISS]: {\r\n cooldownDays: 30,\r\n secondaryButtonText: _TL_('Never show again'),\r\n stateMachine: {\r\n onDone: PreferenceState.STOP_SHOWN,\r\n onDismiss: PreferenceState.STOP_SHOWN,\r\n onClose: PreferenceState.STOP_SHOWN,\r\n },\r\n },\r\n [PreferenceState.STOP_SHOWN]: {\r\n cooldownDays: Infinity,\r\n secondaryButtonText: _TL_('Never show again'),\r\n stateMachine: {\r\n onDone: PreferenceState.STOP_SHOWN,\r\n onDismiss: PreferenceState.STOP_SHOWN,\r\n onClose: PreferenceState.STOP_SHOWN,\r\n },\r\n },\r\n};\r\n","export const PreferenceState = {\r\n INIT: 'init',\r\n SUBMIT: 'submit',\r\n FIRST_DISMISS: 'first-dismiss',\r\n SECOND_DISMISS: 'second-dismiss',\r\n THIRD_DISMISS: 'third-dismiss',\r\n STOP_SHOWN: 'stop-shown',\r\n};\r\n","import { isEmpty } from 'underscore';\r\nimport { useMemo } from 'react';\r\nimport { cloneDeep } from '@bingads-webui-universal/primitive-utilities';\r\n\r\nimport { defaultUserGovernanceConfig } from './user-governance-config';\r\nimport { PreferenceState } from './preference-state';\r\nimport { PreferenceService } from './preference-service';\r\n\r\n// Overwrite the default config to treat close button as dismiss button in phase1\r\nexport const getTeachingBubbleUserGovernanceConfig = () => {\r\n const teachingBubbleUserGovernanceConfig = cloneDeep(defaultUserGovernanceConfig);\r\n\r\n teachingBubbleUserGovernanceConfig[PreferenceState.INIT].stateMachine.onClose = PreferenceState.FIRST_DISMISS;\r\n teachingBubbleUserGovernanceConfig[PreferenceState.FIRST_DISMISS].stateMachine.onClose = PreferenceState.SECOND_DISMISS;\r\n teachingBubbleUserGovernanceConfig[PreferenceState.SECOND_DISMISS].stateMachine.onClose = PreferenceState.THIRD_DISMISS;\r\n teachingBubbleUserGovernanceConfig[PreferenceState.THIRD_DISMISS].stateMachine.onClose = PreferenceState.STOP_SHOWN;\r\n\r\n return teachingBubbleUserGovernanceConfig;\r\n};\r\n\r\nexport function useFeaturePreferenceService(preferenceService) {\r\n const featurePreferenceService = useMemo(() => new PreferenceService({\r\n preferenceKey: 'user-governance-preference',\r\n preferenceService,\r\n }), [preferenceService]);\r\n\r\n return featurePreferenceService;\r\n}\r\n\r\nexport function useFeaturePreference({\r\n featurePreferenceService,\r\n userGovernanceConfig,\r\n featureName,\r\n}) {\r\n const featurePreference = useMemo(() => {\r\n if (!featureName || !userGovernanceConfig) {\r\n return {};\r\n }\r\n\r\n let preference = featurePreferenceService.getPreference(featureName);\r\n\r\n if (isEmpty(preference)) {\r\n preference = {\r\n state: PreferenceState.INIT,\r\n nextShownDate: featurePreferenceService.getDaysAfter(userGovernanceConfig[PreferenceState.INIT].cooldownDays),\r\n expirationDate: userGovernanceConfig.expirationDate,\r\n };\r\n featurePreferenceService.setPreference(featureName, preference);\r\n }\r\n\r\n return preference;\r\n }, [featurePreferenceService, userGovernanceConfig, featureName]);\r\n\r\n return featurePreference;\r\n}\r\n\r\nexport const useShouldShow = ({\r\n featureName,\r\n preferenceService,\r\n userGovernanceConfig,\r\n}) => {\r\n const featurePreferenceService = useFeaturePreferenceService(preferenceService);\r\n\r\n const featurePreference = useFeaturePreference({\r\n featurePreferenceService,\r\n userGovernanceConfig,\r\n featureName,\r\n });\r\n const show = useMemo(() => {\r\n if (window.location.href.includes('isPopupCoolDownLogicDisabledForTestEnabled=true')) {\r\n // This is only used for test, where the popup needs to be triggered daily\r\n return true;\r\n }\r\n if (window.location.href.includes('isPreventPopupForTestEnabled=true')) {\r\n // This is only used for test, where the popup needs not to be triggered to block the other tests\r\n return false;\r\n }\r\n\r\n if (!featureName || !userGovernanceConfig) {\r\n return false;\r\n } else if (userGovernanceConfig.expirationDate && userGovernanceConfig.expirationDate < Date.now()) {\r\n // If the expiration date is set and it is in the past, do not show the component\r\n return false;\r\n } else if (featurePreference.state === PreferenceState.STOP_SHOWN) {\r\n // if the state is stop shown, do not show the component\r\n return false;\r\n } else if (new Date(featurePreference.nextShownDate) > new Date()) {\r\n // if the next shown date is in the future, do not show the component\r\n return false;\r\n }\r\n\r\n return true;\r\n }, [featureName, featurePreference, userGovernanceConfig]);\r\n\r\n return show;\r\n};\r\n","import { result, chain, isEmpty } from 'underscore';\r\n\r\nexport class PreferenceService {\r\n constructor(props) {\r\n this.preferenceKey = result(props, 'preferenceKey');\r\n this.preferenceService = result(props, 'preferenceService');\r\n\r\n this.initializePreference();\r\n }\r\n\r\n initializePreference = () => {\r\n if (isEmpty(this.preferenceService)) {\r\n throw new Error('PreferenceService does not exist');\r\n }\r\n\r\n let preference = this.getUserLevelPreference();\r\n // initialize the preference if it does not exist\r\n if (isEmpty(preference)) {\r\n preference = {\r\n Name: this.preferenceKey,\r\n Data: {},\r\n Type: 'string',\r\n Version: 1,\r\n };\r\n this.preferenceService.setAtUserLevel(preference);\r\n }\r\n };\r\n\r\n getUserLevelPreference = () => this.preferenceService.findByNameAtUserLevel(this.preferenceKey);\r\n\r\n getPreference = (key) => {\r\n const preference = this.getUserLevelPreference();\r\n return chain(preference)\r\n .result('Data')\r\n .result(key)\r\n .value();\r\n };\r\n\r\n setPreference = (key, state) => {\r\n const preference = this.getUserLevelPreference();\r\n preference.Data[key] = state;\r\n this.preferenceService.setAtUserLevel(preference);\r\n };\r\n\r\n getDaysAfter = (days) => {\r\n if (days === Infinity) {\r\n return new Date(8640000000000000);\r\n }\r\n\r\n const date = new Date();\r\n date.setTime(date.getTime() + (86400000 * days));\r\n return date;\r\n };\r\n}\r\n","import { mergeStyleSets } from '@bingads-webui-react/fabric-control';\r\n\r\nexport const getStyles = () => ({\r\n teachingBubbleContent: {\r\n '& .ms-TeachingBubble-content': {\r\n '& .conversion-coupon-callout-card-coupon': {\r\n lineHeight: 2.5,\r\n fontWeight: 'bold',\r\n '& .helpbutton': {\r\n verticalAlign: 'baseline',\r\n },\r\n },\r\n '& .import-callout-card-coupon': {\r\n lineHeight: 2.5,\r\n fontWeight: 'bold',\r\n '& .helpbutton': {\r\n verticalAlign: 'baseline',\r\n },\r\n },\r\n '& .ms-TeachingBubble-subText': {\r\n '&:hover': {\r\n backgroundColor: 'transparent',\r\n },\r\n },\r\n '& .ms-TeachingBubble-footer': {\r\n justifyContent: 'flex-start',\r\n '&:hover': {\r\n border: 'none',\r\n },\r\n '& .ms-Button': {\r\n marginLeft: 0,\r\n marginRight: 10,\r\n marginBottom: 10,\r\n },\r\n marginBottom: -10,\r\n '& .ms-Button--primary': {\r\n border: '1px solid rgb(255, 255, 255)',\r\n '&:hover': {\r\n border: '1px solid rgb(255, 255, 255)',\r\n },\r\n },\r\n },\r\n },\r\n },\r\n criticalInfo: {\r\n '& .addressLabel': {\r\n paddingLeft: 0,\r\n },\r\n '& .accountsLabel': {\r\n paddingLeft: 0,\r\n },\r\n },\r\n dialogFooter: {\r\n justifyContent: 'flex-start',\r\n display: 'flex',\r\n },\r\n});\r\n\r\nexport const styles = mergeStyleSets({\r\n callout: {\r\n maxWidth: 364,\r\n border: 0,\r\n '& .ms-Callout-beak': {\r\n backgroundColor: 'rgb(0, 120, 212)',\r\n },\r\n '& .ms-Callout-beakCurtain': {\r\n backgroundColor: 'rgb(0, 120, 212)',\r\n },\r\n '& .ms-Callout-main': {\r\n padding: '20px',\r\n backgroundColor: 'rgb(0, 120, 212)',\r\n color: 'rgb(255, 255, 255)',\r\n },\r\n '& .conversion-coupon-callout-card-coupon': {\r\n fontWeight: 'bold',\r\n '& .helpbutton': {\r\n verticalAlign: 'baseline',\r\n color: 'rgb(255, 255, 255) !important',\r\n },\r\n marginBottom: 10,\r\n },\r\n '& .import-callout-card-coupon': {\r\n fontWeight: 'bold',\r\n '& .helpbutton': {\r\n verticalAlign: 'baseline',\r\n color: 'rgb(255, 255, 255) !important',\r\n },\r\n marginBottom: 10,\r\n },\r\n },\r\n title: {\r\n marginBottom: 14,\r\n marginRight: 12,\r\n color: 'rgb(255, 255, 255)',\r\n fontWeight: 600,\r\n overflowWrap: 'break-word',\r\n fontSize: 20,\r\n },\r\n content: {\r\n marginBottom: 20,\r\n color: 'rgb(255, 255, 255)',\r\n overflowWrap: 'break-word',\r\n fontSize: 14,\r\n '& a:focus': {\r\n outline: '1px solid white',\r\n },\r\n },\r\n footer: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n\r\n '& .ms-StackItem': {\r\n marginRight: 10,\r\n maxWidth: '100%',\r\n },\r\n },\r\n footerText: {\r\n color: 'rgb(255, 255, 255)',\r\n },\r\n defaultBtn: {\r\n color: 'rgb(0, 120, 212)',\r\n maxWidth: '150px',\r\n\r\n '& .ms-Button-label': {\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n maxWidth: '120px',\r\n paddingBottom: '2px',\r\n },\r\n\r\n '&:hover': {\r\n color: 'rgb(0, 120, 212)',\r\n },\r\n },\r\n primaryBtn: {\r\n border: '1px solid rgb(255, 255, 255)',\r\n borderRadius: 2,\r\n maxWidth: '150px',\r\n\r\n '& .ms-Button-label': {\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n maxWidth: '120px',\r\n paddingBottom: '2px',\r\n },\r\n\r\n '&:hover': {\r\n border: '1px solid rgb(255, 255, 255)',\r\n backgroundColor: 'rgb(16, 110, 190)',\r\n },\r\n },\r\n closeBtn: {\r\n color: 'rgb(255, 255, 255) !important',\r\n backgroundColor: 'transparent',\r\n border: 'none',\r\n\r\n '&:hover': {\r\n color: 'rgb(255, 255, 255) !important',\r\n background: 'rgb(16, 110, 190)',\r\n border: 'none',\r\n },\r\n\r\n '&:focus::after': {\r\n outlineColor: 'white !important',\r\n },\r\n },\r\n});\r\n","import { useMemo, useCallback } from 'react';\r\n\r\nconst getLogger = ({ trace, error }) => ({\r\n logTrace: trace,\r\n logError: error,\r\n});\r\n\r\nexport const useLogger = (activity, featureName) => {\r\n const logger = useMemo(() => getLogger(activity), [activity]);\r\n const logPrefix = useMemo(() => `${activity.name}: ${featureName}`, [activity, featureName]);\r\n\r\n const logTrace = useCallback(message => logger.logTrace(`${logPrefix} | ${message}`), [logger, logPrefix]);\r\n const logError = useCallback(message => logger.logError(`${logPrefix} | ${message}`), [logger, logPrefix]);\r\n\r\n return {\r\n logTrace,\r\n logError,\r\n };\r\n};\r\n","import React, { useEffect, useState, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\nimport classNames from 'classnames';\r\n\r\nimport { Dialog, DialogFooter, DefaultButton, PrimaryButton } from '@bingads-webui-react/fabric-control';\r\nimport { withLock, keyVault, priorityLevel } from '@bingads-webui-react/popup-manager';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { Scenario, Activity, withActivityContext } from '@bingads-webui-react/hoc-with-signal';\r\n\r\nimport { withUserGovernance } from './with-user-governance';\r\nimport { getStyles } from './styles';\r\nimport { useLogger } from './logger';\r\n\r\nconst CriticalInfoRaw = ({\r\n activity,\r\n classes,\r\n featureName,\r\n title,\r\n subTitle,\r\n content,\r\n primaryButtonText,\r\n secondaryButtonText,\r\n onDone,\r\n onDismiss,\r\n}) => {\r\n const { logTrace } = useLogger(activity, featureName);\r\n\r\n useEffect(() => {\r\n logTrace('critical info show');\r\n }, []);\r\n\r\n const [isDialogOpen, setIsDialogOpen] = useState(true);\r\n\r\n const onPrimaryButtonClick = useCallback(() => {\r\n logTrace('critical info done');\r\n setIsDialogOpen(false);\r\n onDone(true /* skipOnDoneGovernance */);\r\n }, [logTrace, onDone]);\r\n\r\n const onDialogDismiss = useCallback(() => {\r\n logTrace('critical info dismiss');\r\n setIsDialogOpen(false);\r\n onDismiss();\r\n }, [logTrace, onDismiss]);\r\n\r\n return isDialogOpen && (\r\n <Dialog\r\n className={classNames(['critical-info', classes.criticalInfo])}\r\n hidden={false}\r\n dialogContentProps={{\r\n title,\r\n subTitle,\r\n showCloseButton: false,\r\n }}\r\n minWidth={432}\r\n maxWidth={432}\r\n minHeight={172}\r\n modalProps={{\r\n isBlocking: true,\r\n dragOptions: false,\r\n }}\r\n >\r\n {content}\r\n <DialogFooter\r\n className={classes.dialogFooter}\r\n >\r\n <PrimaryButton\r\n onClick={onPrimaryButtonClick}\r\n text={primaryButtonText}\r\n />\r\n <DefaultButton\r\n onClick={onDialogDismiss}\r\n text={secondaryButtonText}\r\n />\r\n </DialogFooter>\r\n </Dialog>\r\n );\r\n};\r\n\r\nCriticalInfoRaw.propTypes = {\r\n activity: PropTypes.shape({\r\n trace: PropTypes.func.isRequired,\r\n error: PropTypes.func.isRequired,\r\n }),\r\n classes: PropTypes.shape({\r\n criticalInfo: PropTypes.string.isRequired,\r\n dialogFooter: PropTypes.string.isRequired,\r\n }).isRequired,\r\n featureName: PropTypes.string.isRequired,\r\n title: PropTypes.string.isRequired,\r\n subTitle: PropTypes.string,\r\n content: PropTypes.string.isRequired,\r\n primaryButtonText: PropTypes.string.isRequired,\r\n secondaryButtonText: PropTypes.string.isRequired,\r\n onDone: PropTypes.func.isRequired,\r\n onDismiss: PropTypes.func.isRequired,\r\n};\r\n\r\nCriticalInfoRaw.defaultProps = {\r\n subTitle: '',\r\n activity: {\r\n trace: _.noop,\r\n error: _.noop,\r\n },\r\n};\r\n\r\nconst CriticalInfoWithHOC = _.compose(\r\n withActivityContext,\r\n withUserGovernance,\r\n WrappedComponent => withLock(WrappedComponent, {\r\n lockKey: keyVault.criticalInfo,\r\n priority: priorityLevel.criticalInfo,\r\n }),\r\n WrappedComponent => withDefaultStyles(WrappedComponent, getStyles)\r\n)(CriticalInfoRaw);\r\n\r\nexport const CriticalInfo = props => (\r\n <Scenario name=\"CriticalInfo\">\r\n <Activity name=\"CriticalInfo\">\r\n <CriticalInfoWithHOC\r\n {...props}\r\n />\r\n </Activity>\r\n </Scenario>\r\n);\r\n","import React, { useEffect, useState, useCallback } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport _ from 'underscore';\r\n\r\nimport { Dialog, DialogFooter, PrimaryButton } from '@bingads-webui-react/fabric-control';\r\nimport { withLock, keyVault, priorityLevel } from '@bingads-webui-react/popup-manager';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { Scenario, Activity, withActivityContext } from '@bingads-webui-react/hoc-with-signal';\r\n\r\nimport { withUserGovernance } from './with-user-governance';\r\nimport { defaultUserGovernanceConfig } from './user-governance-config';\r\nimport { PreferenceState } from './preference-state';\r\nimport { getStyles } from './styles';\r\nimport { useLogger } from './logger';\r\n\r\nconst SystemAnnouncementRaw = ({\r\n activity,\r\n classes,\r\n featureName,\r\n title,\r\n subTitle,\r\n content,\r\n primaryButtonText,\r\n onDone,\r\n onDismiss,\r\n}) => {\r\n const { logTrace } = useLogger(activity, featureName);\r\n\r\n useEffect(() => {\r\n logTrace('system announcement show');\r\n }, []);\r\n\r\n const [isDialogOpen, setIsDialogOpen] = useState(true);\r\n\r\n const onPrimaryButtonClick = useCallback(() => {\r\n logTrace('system announcement done');\r\n setIsDialogOpen(false);\r\n onDone();\r\n }, [logTrace, onDone]);\r\n\r\n const onDialogDismiss = useCallback(() => {\r\n logTrace('system announcement dismiss');\r\n setIsDialogOpen(false);\r\n onDismiss();\r\n }, [logTrace, onDismiss]);\r\n\r\n return isDialogOpen && (\r\n <Dialog\r\n className=\"system-announcement\"\r\n hidden={false}\r\n onDismiss={onDialogDismiss}\r\n dialogContentProps={{\r\n title,\r\n subTitle,\r\n showCloseButton: true,\r\n }}\r\n minWidth={432}\r\n maxWidth={432}\r\n minHeight={172}\r\n modalProps={{\r\n isBlocking: true,\r\n dragOptions: false,\r\n }}\r\n >\r\n {content}\r\n <DialogFooter\r\n className={classes.dialogFooter}\r\n >\r\n <PrimaryButton\r\n onClick={onPrimaryButtonClick}\r\n text={primaryButtonText}\r\n />\r\n </DialogFooter>\r\n </Dialog>\r\n );\r\n};\r\n\r\nSystemAnnouncementRaw.propTypes = {\r\n activity: PropTypes.shape({\r\n trace: PropTypes.func.isRequired,\r\n error: PropTypes.func.isRequired,\r\n }),\r\n classes: PropTypes.shape({\r\n dialogFooter: PropTypes.string.isRequired,\r\n }).isRequired,\r\n featureName: PropTypes.string.isRequired,\r\n title: PropTypes.string.isRequired,\r\n subTitle: PropTypes.string,\r\n content: PropTypes.string.isRequired,\r\n primaryButtonText: PropTypes.string.isRequired,\r\n onDone: PropTypes.func.isRequired,\r\n onDismiss: PropTypes.func.isRequired,\r\n};\r\n\r\nSystemAnnouncementRaw.defaultProps = {\r\n subTitle: '',\r\n activity: {\r\n trace: _.noop,\r\n error: _.noop,\r\n },\r\n};\r\n\r\nconst SystemAnnouncementWithHOC = _.compose(\r\n withActivityContext,\r\n withUserGovernance,\r\n WrappedComponent => withLock(WrappedComponent, {\r\n lockKey: keyVault.systemLevelAnnouncement,\r\n priority: priorityLevel.systemLevelAnnouncement,\r\n }),\r\n WrappedComponent => withDefaultStyles(WrappedComponent, getStyles)\r\n)(SystemAnnouncementRaw);\r\n\r\nexport const SystemAnnouncement = props => (\r\n <Scenario name=\"SystemAnnouncement\">\r\n <Activity name=\"SystemAnnouncement\">\r\n <SystemAnnouncementWithHOC\r\n {...props}\r\n // Overwrite the default config to keep showing the system announcement for onDone()\r\n userGovernanceConfig={_.extend(defaultUserGovernanceConfig, {\r\n [PreferenceState.INIT]: {\r\n cooldownDays: 0,\r\n stateMachine: {\r\n onDone: PreferenceState.STOP_SHOWN,\r\n onDismiss: PreferenceState.STOP_SHOWN,\r\n onClose: PreferenceState.STOP_SHOWN,\r\n },\r\n },\r\n })}\r\n />\r\n </Activity>\r\n </Scenario>\r\n);\r\n","export { SecondaryNavigationExpandButton } from './src';\r\n","import React, { useContext, useEffect, useRef, useMemo } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { LayoutContext, Mode } from '@bingads-webui-react/app-layout-container';\r\nimport { usePrevious } from '@bingads-webui-react/primitive-hooks';\r\nimport {\r\n Button,\r\n mergeClasses,\r\n makeStyles,\r\n} from '@fluentui/react-components';\r\nimport { PreferenceContext } from '@bingads-webui-react/preference-context';\r\nimport { PanelRightContract20Regular } from '@fluentui/react-icons';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { Scenario, Activity, ActivityContext } from '@bingads-webui-react/hoc-with-signal';\r\nimport { getItems } from '@bingads-webui-campaign-react/secondary-navigation';\r\n\r\nconst useStyles = makeStyles({\r\n expandButton: {\r\n height: '24px',\r\n },\r\n});\r\n\r\nconst SecondaryNavigationCollapsedKey = 'SecondaryNavigationCollapsed';\r\n\r\nconst SecondaryNavigationExpandButtonBase = ({ siteMap }) => {\r\n const i18n = useContext(I18nContext);\r\n const classes = useStyles();\r\n const buttonRef = useRef(null);\r\n const activityContext = useContext(ActivityContext);\r\n const { config: layoutConfig, change: changeLayout } = useContext(LayoutContext);\r\n const previousLayoutConfig = usePrevious(layoutConfig);\r\n const preferenceService = useContext(PreferenceContext);\r\n const preferences = preferenceService.findByNameAtUserLevel(SecondaryNavigationCollapsedKey) || { Data: false };\r\n\r\n const navItems = useMemo(() => getItems(siteMap, i18n, () => {}, preferenceService, activityContext), [siteMap, i18n, preferenceService, activityContext]);\r\n const onClick = () => {\r\n changeLayout({ menu: { mode: Mode.Expanded } });\r\n preferenceService.setAtUserLevel({\r\n Name: SecondaryNavigationCollapsedKey,\r\n Data: false,\r\n });\r\n activityContext.signal('expand button clicked', 'expand button');\r\n };\r\n\r\n useEffect(() => {\r\n if (previousLayoutConfig && previousLayoutConfig.menu.mode === Mode.Expanded && layoutConfig && layoutConfig.menu.mode === Mode.Collapsed) {\r\n if (buttonRef.current) {\r\n buttonRef.current.focus();\r\n }\r\n }\r\n }, [buttonRef, previousLayoutConfig, layoutConfig]);\r\n\r\n if (!preferences.Data) {\r\n return null;\r\n }\r\n\r\n if (layoutConfig.menu.mode !== Mode.Collapsed) {\r\n return null;\r\n }\r\n\r\n if (siteMap && navItems.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n <Button\r\n ref={buttonRef}\r\n id=\"expandL2\"\r\n appearance=\"subtle\"\r\n icon={<PanelRightContract20Regular />}\r\n className={mergeClasses(classes.expandButton, 'expandL2')}\r\n aria-label={i18n.getString(_TL_('Expand secondary navigation'))}\r\n onClick={onClick}\r\n />\r\n );\r\n};\r\n\r\nconst SecondaryNavigationExpandButtonWithScenarioActivityContext = props => (\r\n <Scenario name=\"secondary-navigation\">\r\n <Activity name=\"secondary-navigation\">\r\n <SecondaryNavigationExpandButtonBase {...props} />\r\n </Activity>\r\n </Scenario>\r\n);\r\n\r\nSecondaryNavigationExpandButtonBase.prototype = {\r\n siteMap: PropTypes.shape({}),\r\n};\r\n\r\nSecondaryNavigationExpandButtonBase.defaultProps = {\r\n siteMap: null,\r\n};\r\n\r\nexport { SecondaryNavigationExpandButtonWithScenarioActivityContext as SecondaryNavigationExpandButton };\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__1122__;","module.exports = __WEBPACK_EXTERNAL_MODULE__15__;","module.exports = __WEBPACK_EXTERNAL_MODULE__594__;","module.exports = __WEBPACK_EXTERNAL_MODULE__644__;","module.exports = __WEBPACK_EXTERNAL_MODULE__645__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1012__;","export { SecondaryNavigation } from './src';\r\nexport { getItems } from './src/items-factory';\r\n","import React, { useMemo, useContext, useCallback, useEffect, useRef, useState } from 'react';\r\nimport _ from 'underscore';\r\nimport PropTypes from 'prop-types';\r\nimport { LayoutContext, Mode } from '@bingads-webui-react/app-layout-container';\r\nimport { LayoutSizeScale, useLayoutResizeObserver } from '@bingads-webui-fluent-component/layout-size';\r\nimport { Button, mergeClasses } from '@fluentui/react-components';\r\nimport { PanelLeftContract20Regular } from '@fluentui/react-icons';\r\nimport { SideNavigation } from '@bingads-webui-fluent-component/navigation';\r\nimport { PreferenceContext } from '@bingads-webui-react/preference-context';\r\nimport { siteMapPropType } from '@bingads-webui-react/with-site-map';\r\nimport { withScope } from '@bingads-webui-react/scope-service';\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { withUserConsumer } from '@bingads-webui-react/user-context';\r\nimport { perfMarkerPropTypes } from '@bingads-webui/performance-marker';\r\nimport { usePrevious } from '@bingads-webui-react/primitive-hooks';\r\nimport { Scenario, Activity, ActivityContext } from '@bingads-webui-react/hoc-with-signal';\r\nimport { withHotKeys, ShortcutType, ShortcutTypeKeyMapping } from '@bingads-webui-react/hot-keys';\r\nimport { StyledMenuItemTag } from '@bingads-webui-react/menu-item-tag';\r\n\r\nimport { SecondaryNavigationConfig } from './config';\r\nimport { useStyles } from './styles';\r\nimport { getItems } from './items-factory';\r\nimport { navigate } from './route-controller';\r\n\r\nconst SecondaryNavigationCollapsedKey = 'SecondaryNavigationCollapsed';\r\n\r\nconst getModeByLayoutSize = (layoutSize) => {\r\n const result = LayoutSizeScale[layoutSize] >= LayoutSizeScale.XL;\r\n\r\n return result;\r\n};\r\n\r\nconst getPerMarker = (appPerfMarker) => {\r\n if (appPerfMarker == null) {\r\n return null;\r\n }\r\n const marker = appPerfMarker.createChild('secondary-nav-perf');\r\n marker.willInit();\r\n return marker;\r\n};\r\n\r\nconst SecondaryNavigationBase = ({\r\n scope,\r\n siteMap,\r\n userContext,\r\n count,\r\n hotKey,\r\n appPerfMarker,\r\n}) => {\r\n const [perfMarker] = useState(() => getPerMarker(appPerfMarker));\r\n const activityContext = useContext(ActivityContext);\r\n const i18n = useContext(I18nContext);\r\n const collapseButtonRef = useRef(null);\r\n const [layoutSize, setLayoutSize] = React.useState('XL');\r\n useLayoutResizeObserver(setLayoutSize);\r\n const classes = useStyles();\r\n const previousCount = usePrevious(count);\r\n const preferenceService = useContext(PreferenceContext);\r\n const { config: layoutConfig, change: changeLayout } = useContext(LayoutContext);\r\n const preferences = preferenceService.findByNameAtUserLevel(SecondaryNavigationCollapsedKey) || { Data: false };\r\n const largeSize = getModeByLayoutSize(layoutSize);\r\n\r\n const collapseMenu = useCallback(() => {\r\n changeLayout({ menu: { mode: Mode.Collapsed } });\r\n preferenceService.setAtUserLevel({\r\n Name: SecondaryNavigationCollapsedKey,\r\n Data: true,\r\n });\r\n }, [changeLayout, preferenceService]);\r\n\r\n const onClick = useCallback(() => {\r\n collapseMenu();\r\n activityContext.signal('collapse button clicked', 'collapse button');\r\n }, [activityContext, collapseMenu]);\r\n\r\n useEffect(() => {\r\n if (preferences.Data) {\r\n changeLayout({ menu: { mode: Mode.Collapsed } });\r\n }\r\n }, [changeLayout, preferences.Data]);\r\n\r\n const navigationRouter = useCallback((item) => {\r\n navigate(item, scope, userContext);\r\n }, [scope, userContext]);\r\n\r\n const navItems = useMemo(() => getItems(siteMap, i18n, navigationRouter, preferenceService, activityContext), [siteMap, i18n, navigationRouter, preferenceService, activityContext]);\r\n\r\n const previousLayoutConfig = usePrevious(layoutConfig);\r\n\r\n useEffect(() => {\r\n if (previousLayoutConfig &&\r\n previousLayoutConfig.menu.mode === Mode.Collapsed &&\r\n layoutConfig.menu.mode === Mode.Expanded) {\r\n if (collapseButtonRef.current) {\r\n collapseButtonRef.current.focus();\r\n }\r\n }\r\n }, [layoutConfig, previousLayoutConfig]);\r\n\r\n useEffect(() => {\r\n if (preferences.Data) {\r\n if (!largeSize) {\r\n changeLayout({ menu: { mode: Mode.Hidden } });\r\n } else {\r\n changeLayout({ menu: { mode: Mode.Collapsed } });\r\n }\r\n }\r\n }, [changeLayout, largeSize, preferences.Data]);\r\n\r\n useEffect(() => {\r\n if (hotKey === ShortcutTypeKeyMapping[ShortcutType.ShowHideSecondaryNavigation] && count !== previousCount) {\r\n if (layoutConfig.menu.mode === Mode.Expanded) {\r\n collapseMenu();\r\n } else if (layoutConfig.menu.mode === Mode.Collapsed) {\r\n changeLayout({ menu: { mode: Mode.Expanded } });\r\n preferenceService.setAtUserLevel({\r\n Name: SecondaryNavigationCollapsedKey,\r\n Data: false,\r\n });\r\n }\r\n }\r\n }, [\r\n changeLayout,\r\n collapseMenu,\r\n count,\r\n hotKey,\r\n layoutConfig.menu.mode,\r\n preferenceService,\r\n previousCount,\r\n ]);\r\n\r\n useEffect(() => {\r\n if (perfMarker) {\r\n perfMarker.done();\r\n }\r\n }, [perfMarker]);\r\n\r\n const hide = (layoutConfig.menu.mode !== Mode.Expanded || navItems.length === 0 || preferences.Data || !largeSize);\r\n\r\n if (hide) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div className={mergeClasses(classes.container)}>\r\n <div className={mergeClasses(classes.vertical, 'side-navigation-L2-container')}>\r\n <Button\r\n id=\"collapseL2\"\r\n ref={collapseButtonRef}\r\n appearance=\"subtle\"\r\n icon={<PanelLeftContract20Regular />}\r\n aria-label=\"Collapse secondary navigation\"\r\n className={mergeClasses(classes.closeButton, 'collapseL2')}\r\n onClick={onClick}\r\n />\r\n <SideNavigation\r\n config={SecondaryNavigationConfig(item => (\r\n <>\r\n {item.showTag &&\r\n <div\r\n className={classes.tag}\r\n style={item.isPrimary ? { right: '35px' } : {}}\r\n >\r\n <StyledMenuItemTag tagContent={item.showTag} i18n={i18n} />\r\n </div>}\r\n </>\r\n ))}\r\n items={navItems}\r\n className={classes.tab}\r\n mode={1}\r\n />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nSecondaryNavigationBase.propTypes = {\r\n scope: PropTypes.shape({}).isRequired,\r\n siteMap: siteMapPropType.isRequired,\r\n i18n: PropTypes.shape({\r\n getString: PropTypes.func,\r\n }).isRequired,\r\n appPerfMarker: perfMarkerPropTypes,\r\n userContext: PropTypes.shape({\r\n CurrentAccount: PropTypes.shape({}),\r\n }).isRequired,\r\n hotKey: PropTypes.string.isRequired,\r\n count: PropTypes.number.isRequired,\r\n};\r\n\r\nSecondaryNavigationBase.defaultProps = {\r\n appPerfMarker: null,\r\n};\r\n\r\nconst SecondaryNavigationWithScenarioActivityContext = props => (\r\n <Scenario name=\"secondary-navigation\">\r\n <Activity name=\"secondary-navigation\">\r\n <SecondaryNavigationBase {...props} />\r\n </Activity>\r\n </Scenario>\r\n);\r\n\r\nconst WrappedComponent =\r\n withHotKeys(withUserConsumer(withScope(React.memo(SecondaryNavigationWithScenarioActivityContext))), ShortcutType.ShowHideSecondaryNavigation);\r\n\r\nexport { WrappedComponent as SecondaryNavigation };\r\n","import _ from 'underscore';\r\n\r\nexport const SecondaryNavigationConfig = overrideAccessoryItem => ({\r\n getPriority: (item, tabId) => {\r\n const {\r\n isAccordion, secondaryNavItems = [], isPrimary, id,\r\n } = item;\r\n if (isAccordion) {\r\n return secondaryNavItems.find(secondaryItem => secondaryItem.id === tabId) ? 1 : 0;\r\n }\r\n return isPrimary || id === tabId ? 1 : 0;\r\n },\r\n getMandatoryFilter: item => item.isPrimary || item.isAccordion,\r\n getAccessoryItem: item => overrideAccessoryItem(item),\r\n getSelectedNavigationItemId: (items) => {\r\n const selectedItem = _.first(_.map(items, (item) => {\r\n if (item.isSelected) {\r\n return item;\r\n }\r\n if (item.isAccordion && item.secondaryNavItems) {\r\n return item.secondaryNavItems.find(i => !!i.isSelected);\r\n }\r\n return null;\r\n }).filter(item => !!item));\r\n const primaryNavigationItem = items.find(item => (!!item.isPrimary)) || { id: '' };\r\n return selectedItem ? selectedItem.id : primaryNavigationItem.id;\r\n },\r\n});\r\n","import {\r\n makeStyles,\r\n shorthands,\r\n tokens\r\n} from '@fluentui/react-components';\r\n\r\nexport const useStyles = makeStyles({\r\n container: {\r\n backgroundColor: tokens.colorNeutralBackground2,\r\n display: 'flex',\r\n height: '100%',\r\n width: '224px',\r\n ...shorthands.borderRight('1px', 'solid', tokens.colorNeutralStroke2),\r\n },\r\n\r\n vertical: {\r\n backgroundColor: tokens.colorNeutralBackground2,\r\n minHeight: '100px',\r\n display: 'flex',\r\n position: 'relative',\r\n alignContent: 'stretch',\r\n alignItems: 'stretch',\r\n justifyContent: 'stretch',\r\n justifyItems: 'stretch',\r\n flexGrow: 1,\r\n ...shorthands.padding('8px'),\r\n },\r\n\r\n tab: {\r\n flexGrow: 1,\r\n flexShrink: 1,\r\n textAlign: 'start',\r\n '&.side-navigation-item-button.nav-item-primary': {\r\n marginRight: '30px',\r\n },\r\n '& span.side-navigation-item-text': {\r\n lineHeight: '20px',\r\n fontSize: '14px',\r\n textOverflow: 'ellipsis',\r\n display: '-webkit-box',\r\n wordBreak: 'break-word',\r\n WebkitLineClamp: 3,\r\n WebkitBoxOrient: 'vertical',\r\n ...shorthands.overflow('hidden'),\r\n },\r\n },\r\n closeButton: {\r\n height: '24px',\r\n alignSelf: 'flex-start',\r\n position: 'absolute',\r\n right: '0',\r\n marginTop: '3px',\r\n zIndex: 1,\r\n },\r\n tag: {\r\n position: 'absolute',\r\n right: '0',\r\n top: '0',\r\n },\r\n});\r\n","import React from 'react';\r\nimport _ from 'underscore';\r\nimport { findSiteMap } from '@bingads-webui-react/with-site-map';\r\nimport { CampaignNavigationGroups, CampaignNavigationItemConfig } from './campaign-navigation-items-config';\r\nimport { HotelCenterNavigationGroups, HotelCenterNavigationItemConfig, PropertyCenterNavigationGroups, PropertyCenterNavigationItemConfig } from './hotelcenter-navigation-items-config';\r\n\r\nconst CampaignDataViewPreference = 'CollapseCampaignDataView';\r\n\r\nconst getSubMenuItems = (children, i18n, navigationRouter, activityContext) => _.chain(children)\r\n .filter(child => child.searchable)\r\n .map((child) => {\r\n const {\r\n id,\r\n name,\r\n } = child;\r\n return {\r\n id: `secondary-popover-${id}`,\r\n key: id,\r\n text: i18n.getString(name),\r\n onClick: () => {\r\n if (child.selected) {\r\n return;\r\n }\r\n\r\n navigationRouter(child);\r\n activityContext.signal(`popover clicked: ${id}`, child.route);\r\n },\r\n };\r\n }).value();\r\n\r\nconst mapSecondaryNavigationItem = (siteMapItem, i18n, isPrimaryItem, navigationRouter, activityContext) => {\r\n const {\r\n id,\r\n name,\r\n children,\r\n selected,\r\n showTag,\r\n } = siteMapItem;\r\n\r\n const subMenuItems = getSubMenuItems(children, i18n, navigationRouter, activityContext);\r\n\r\n // return empty items of submenu if there is only item in submenu\r\n const menuItems = subMenuItems.length === 1 ? [] : subMenuItems;\r\n\r\n return {\r\n id: `secondary-${id}`,\r\n key: id,\r\n text: i18n.getString(name),\r\n secondaryNavItems: menuItems.length > 0 ? menuItems : undefined,\r\n isSelected: selected || false,\r\n isPrimary: isPrimaryItem(id),\r\n showTag,\r\n onClick: () => {\r\n if (siteMapItem.selected) {\r\n return;\r\n }\r\n\r\n navigationRouter(siteMapItem);\r\n activityContext.signal(`item clicked: ${id}`, siteMapItem.route);\r\n },\r\n };\r\n};\r\n\r\nexport const mapSecondaryNavigationItems = (siteMapItems, i18n, navigationRouter, activityContext) => {\r\n const items = _.map(siteMapItems, (siteMapItem, index) =>\r\n mapSecondaryNavigationItem(siteMapItem, i18n, () => index === 0, navigationRouter, activityContext)).filter(item => !!item);\r\n return items;\r\n};\r\n\r\nexport const mapSecondaryNavigationGroupItems = (navigationGroups, navigationItemConfig, siteMap, i18n, navigationRouter, preferenceService, activityContext) => _.map(\r\n navigationGroups,\r\n ({ items: groups, name: groupName }, groupIndex) => {\r\n const { isAccordion, name: overwrittenName } = navigationItemConfig[groupName] || {};\r\n const filteredGroups = _.chain(groups)\r\n .map(group => findSiteMap(siteMap, s => s.id === group))\r\n .filter(group => !_.isEmpty(group))\r\n .value();\r\n const items = _.map(\r\n filteredGroups,\r\n (group, index) => mapSecondaryNavigationItem(\r\n group,\r\n i18n,\r\n () => groupIndex + index === 0,\r\n navigationRouter,\r\n activityContext\r\n )\r\n ).filter(item => !!item);\r\n\r\n const campaignDataViewPref = preferenceService.findByNameAtUserLevel(CampaignDataViewPreference);\r\n const hideAccordion = (!campaignDataViewPref || !campaignDataViewPref.Data);\r\n\r\n if (isAccordion && !hideAccordion && items.length > 0) {\r\n return [{\r\n id: groupName,\r\n key: groupName,\r\n text: i18n.getString(overwrittenName || groupName),\r\n secondaryNavItems: items,\r\n isAccordion,\r\n isCollapsed: true,\r\n }];\r\n }\r\n return items;\r\n }\r\n).filter(item => !!item && item.length > 0);\r\n\r\nconst groupingConfig = {\r\n advertise: {\r\n navigationGroups: CampaignNavigationGroups,\r\n navigationItemConfig: CampaignNavigationItemConfig,\r\n },\r\n 'hotel-center': {\r\n navigationGroups: HotelCenterNavigationGroups,\r\n navigationItemConfig: HotelCenterNavigationItemConfig,\r\n },\r\n 'property-center': {\r\n navigationGroups: PropertyCenterNavigationGroups,\r\n navigationItemConfig: PropertyCenterNavigationItemConfig,\r\n },\r\n};\r\n\r\nexport const getItems = (siteMap, i18n, navigationRouter, preferenceService, activityContext) => {\r\n const selectedSiteMap = _.find(siteMap, item => !!item.selected);\r\n if (!selectedSiteMap) {\r\n return [];\r\n }\r\n\r\n const { id, children: rawChildren } = selectedSiteMap;\r\n\r\n // filter children from secondary navigation that have externallink\r\n const children = rawChildren.filter(child => !child.externalLink && child.searchable);\r\n\r\n // dont render secondary navigation when\r\n // selected sitemap has zero or a single child.\r\n if (children && children.length <= 1) {\r\n return [];\r\n }\r\n\r\n const groupConfig = groupingConfig[id];\r\n if (groupConfig) {\r\n const { navigationGroups, navigationItemConfig } = groupConfig;\r\n return mapSecondaryNavigationGroupItems(navigationGroups, navigationItemConfig, children, i18n, navigationRouter, preferenceService, activityContext);\r\n }\r\n\r\n return [mapSecondaryNavigationItems(children, i18n, navigationRouter, activityContext)];\r\n};\r\n","import { NavigationConfigKeys } from './navigation-config-keys';\r\n\r\nexport const CampaignNavigationGroups = [\r\n {\r\n items: [\r\n NavigationConfigKeys.Overview,\r\n NavigationConfigKeys.Recommendations,\r\n NavigationConfigKeys.QueryInsights,\r\n ],\r\n },\r\n {\r\n items: [\r\n NavigationConfigKeys.Campaigns,\r\n NavigationConfigKeys.AppAdsAssetGroups,\r\n NavigationConfigKeys.AssetGroups,\r\n NavigationConfigKeys.AdGroups,\r\n NavigationConfigKeys.ProductGroups,\r\n NavigationConfigKeys.PropertyGroups,\r\n NavigationConfigKeys.ListingGroups,\r\n NavigationConfigKeys.Experiments,\r\n NavigationConfigKeys.Products,\r\n NavigationConfigKeys.Properties,\r\n NavigationConfigKeys.Hotels,\r\n NavigationConfigKeys.FeedItems,\r\n NavigationConfigKeys.HotelGroups,\r\n ],\r\n },\r\n {\r\n items: [\r\n NavigationConfigKeys.Ads,\r\n NavigationConfigKeys.AssetsReport,\r\n NavigationConfigKeys.DSA,\r\n NavigationConfigKeys.LandingPages,\r\n ],\r\n },\r\n {\r\n items: [\r\n NavigationConfigKeys.Competition,\r\n ],\r\n },\r\n {\r\n items: [\r\n NavigationConfigKeys.Settings,\r\n NavigationConfigKeys.ChangeHistory,\r\n ],\r\n },\r\n {\r\n name: NavigationConfigKeys.Targeting,\r\n items: [\r\n NavigationConfigKeys.Keywords,\r\n NavigationConfigKeys.Audiences,\r\n NavigationConfigKeys.Demographics,\r\n NavigationConfigKeys.Locations,\r\n NavigationConfigKeys.AdSchedule,\r\n NavigationConfigKeys.Devices,\r\n ],\r\n },\r\n];\r\n\r\nexport const CampaignNavigationItemConfig = {\r\n [NavigationConfigKeys.Targeting]: {\r\n isAccordion: true,\r\n name: _TL_('Targeting'),\r\n },\r\n};\r\n","export const NavigationConfigKeys = {\r\n // campaigns\r\n Overview: 'overview',\r\n Recommendations: 'recommendations',\r\n Campaigns: 'campaigns',\r\n AssetGroups: 'asset-groups',\r\n AppAdsAssetGroups: 'appads-asset-groups',\r\n AdGroups: 'adgroups',\r\n Experiments: 'experiments',\r\n Ads: 'ads-and-extensions',\r\n AssetsReport: 'assets-report',\r\n Assets: 'assets',\r\n LandingPages: 'landing-pages',\r\n Keywords: 'keywords',\r\n Competition: 'competition',\r\n Settings: 'settings',\r\n Targeting: 'targeting',\r\n DSA: 'dsa',\r\n ProductGroups: 'product-groups',\r\n PropertyGroups: 'property-groups',\r\n Audiences: 'audiences',\r\n Demographics: 'demographics',\r\n Locations: 'locations',\r\n AdSchedule: 'ad-schedule',\r\n Devices: 'devices',\r\n ChangeHistory: 'change-history',\r\n QueryInsights: 'query-insights',\r\n ListingGroups: 'listing-groups',\r\n Products: 'products',\r\n Properties: 'properties',\r\n Hotels: 'hotels',\r\n FeedItems: 'feeds-items',\r\n HotelGroups: 'hotel-groups',\r\n\r\n // hotel center\r\n HotelCenterOverview: 'hotel-center-overview',\r\n HotelCenterAssignment: 'hotel-center-assignment',\r\n HotelCenterIntelligence: 'hotel-center-intelligence',\r\n HotelCenterFeeds: 'feedupload',\r\n HotelCenterReports: 'report',\r\n HotelCenterAdExtensions: 'adExtensions',\r\n HotelCenterReconciliation: 'reconciliationreport',\r\n\r\n // Property center(hotel center v2)\r\n PropertyCenterOverview: 'property-center-overview',\r\n PropertyCenterLogos: 'property-center-logos',\r\n PropertyCenterFeeds: 'property-center-feeds',\r\n PropertyCenterProperties: 'property-center-properties',\r\n PropertyCenterLanding: 'property-center-landing',\r\n PropertyCenterPricing: 'property-center-pricing',\r\n PropertyCenterReports: 'property-center-reports',\r\n PropertyCenterSOVReport: 'property-center-shareofvoice',\r\n PropertyCenterBookingReport: 'property-center-bookingreport',\r\n PropertyCenterReconReport: 'property-center-reconciliationreport',\r\n};\r\n","import { NavigationConfigKeys } from './navigation-config-keys';\r\n\r\nexport const HotelCenterNavigationGroups = [\r\n {\r\n items: [\r\n NavigationConfigKeys.HotelCenterOverview,\r\n NavigationConfigKeys.HotelCenterAssignment,\r\n ],\r\n },\r\n {\r\n name: NavigationConfigKeys.HotelCenterIntelligence,\r\n items: [\r\n NavigationConfigKeys.HotelCenterFeeds,\r\n NavigationConfigKeys.HotelCenterReports,\r\n NavigationConfigKeys.HotelCenterAdExtensions,\r\n NavigationConfigKeys.HotelCenterReconciliation,\r\n ],\r\n },\r\n];\r\n\r\nexport const HotelCenterNavigationItemConfig = {\r\n [NavigationConfigKeys.HotelCenterIntelligence]: {\r\n isAccordion: true,\r\n name: _TL_('Intelligence'),\r\n },\r\n};\r\nexport const PropertyCenterNavigationGroups = [\r\n // hotel center v2\r\n {\r\n items: [\r\n NavigationConfigKeys.PropertyCenterOverview,\r\n ],\r\n },\r\n {\r\n name: NavigationConfigKeys.PropertyCenterFeeds,\r\n items: [\r\n NavigationConfigKeys.PropertyCenterProperties,\r\n NavigationConfigKeys.PropertyCenterPricing,\r\n NavigationConfigKeys.PropertyCenterLanding,\r\n ],\r\n },\r\n {\r\n items: [\r\n NavigationConfigKeys.PropertyCenterLogos,\r\n ],\r\n },\r\n {\r\n name: NavigationConfigKeys.PropertyCenterReports,\r\n items: [\r\n NavigationConfigKeys.PropertyCenterSOVReport,\r\n NavigationConfigKeys.PropertyCenterBookingReport,\r\n NavigationConfigKeys.PropertyCenterReconReport,\r\n ],\r\n },\r\n];\r\n\r\nexport const PropertyCenterNavigationItemConfig = {\r\n [NavigationConfigKeys.PropertyCenterFeeds]: {\r\n isAccordion: true,\r\n name: _TL_('Feeds'),\r\n },\r\n [NavigationConfigKeys.PropertyCenterReports]: {\r\n isAccordion: true,\r\n name: _TL_('Reports'),\r\n },\r\n};\r\n","import _ from 'underscore';\r\nimport { getSiteMapItemRoute } from '@bingads-webui-react/with-site-map';\r\n\r\n\r\nexport const navigate = (item, scope, userContext) => {\r\n const { pathName: pathname, search } = getSiteMapItemRoute({ item, scope, userContext });\r\n scope.history.push({ pathname, search });\r\n};\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__354__;","module.exports = __WEBPACK_EXTERNAL_MODULE__601__;","module.exports = __WEBPACK_EXTERNAL_MODULE__606__;","module.exports = __WEBPACK_EXTERNAL_MODULE__607__;","module.exports = __WEBPACK_EXTERNAL_MODULE__907__;","export * from './src/use-preference';\r\nexport * from './src/preference-names';\r\n","import _ from 'underscore';\r\nimport { useCallback, useContext, useState, useEffect } from 'react';\r\nimport { PreferenceContext } from '@bingads-webui-react/preference-context';\r\n\r\nfunction getPreferenceGet(preferenceService, isUserLevel) {\r\n if (isUserLevel) {\r\n return preferenceService.findByNameAtUserLevel;\r\n }\r\n return preferenceService.findByNameAtAccountLevel;\r\n}\r\n\r\nfunction getPreferenceSet(preferenceService, isUserLevel) {\r\n if (isUserLevel) {\r\n return preferenceService.setAtUserLevel;\r\n }\r\n return preferenceService.setAtAccountLevel;\r\n}\r\n\r\nexport function usePreference({\r\n preferenceName,\r\n preferenceDefaultValue = {},\r\n isUserLevel = false,\r\n}) {\r\n const preferenceService = useContext(PreferenceContext);\r\n const [needUpdate, setNeedUpdate] = useState(false);\r\n\r\n const getPreferenceValue = useCallback(() => {\r\n let pref = null;\r\n const get = getPreferenceGet(preferenceService, isUserLevel);\r\n if (preferenceService && _.isFunction(get)) {\r\n pref = get(preferenceName);\r\n }\r\n\r\n // if preferenceService doesn't have this preference, use default value\r\n const newValue = pref && !_.isUndefined(pref.Data) ? pref.Data : preferenceDefaultValue;\r\n return newValue;\r\n }, [isUserLevel, preferenceDefaultValue, preferenceName, preferenceService]);\r\n\r\n const [preferenceValue, setPreferenceValue] = useState(() => getPreferenceValue());\r\n\r\n const read = useCallback(() => {\r\n const newValue = getPreferenceValue();\r\n setPreferenceValue(newValue);\r\n return newValue;\r\n }, [getPreferenceValue]);\r\n\r\n const update = useCallback((newValue) => {\r\n const set = getPreferenceSet(preferenceService, isUserLevel);\r\n if (preferenceService && _.isFunction(set)) {\r\n set({\r\n Name: preferenceName,\r\n Data: newValue,\r\n });\r\n setNeedUpdate(false);\r\n } else {\r\n setNeedUpdate(true);\r\n }\r\n\r\n setPreferenceValue(newValue);\r\n }, [isUserLevel, preferenceName, preferenceService]);\r\n\r\n useEffect(() => {\r\n const set = getPreferenceSet(preferenceService, isUserLevel);\r\n if (needUpdate && preferenceService && _.isFunction(set)) {\r\n set({\r\n Name: preferenceName,\r\n Data: preferenceValue,\r\n });\r\n setNeedUpdate(false);\r\n }\r\n }, [isUserLevel, needUpdate, preferenceName, preferenceService, preferenceValue]);\r\n\r\n return [\r\n { value: preferenceValue },\r\n { read, update },\r\n ];\r\n}\r\n","export const PREFERENCENAMES = {\r\n ExpertSignupWizard: 'Expert.SignUpWizard',\r\n ExpertCampaignCreationWizards: 'Expert.CampaignCreationWizards',\r\n};\r\n","export * from './src/recalculate-trigger';\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\n\r\nexport function triggerContainerResizing(options) {\r\n $('.table-page-container:visible').trigger('resizeContainerBasedOnPopupHeight', options);\r\n}\r\n\r\nconst absolutePositionedElementSelectors = [\r\n '.open .dropdown-menu',\r\n '.compared-date-range-picker-dialog',\r\n];\r\n\r\nexport function getHeightIncludeAbsolutePositionedElements(element) {\r\n if (document.body.contains(element)) {\r\n const heights = [\r\n element.offsetHeight,\r\n ];\r\n\r\n absolutePositionedElementSelectors.forEach((selector) => {\r\n const childElement = element.querySelector(selector);\r\n if (childElement) {\r\n const childTop = childElement.getBoundingClientRect().top -\r\n element.getBoundingClientRect().top;\r\n const childHeight = childElement.offsetHeight;\r\n heights.push(childTop + childHeight);\r\n }\r\n });\r\n\r\n return _.max(heights);\r\n }\r\n\r\n return 0;\r\n}\r\n\r\n// TODO: rename this function.\r\nexport function triggerScrollbarRepositionOnElementHeightChange(\r\n element,\r\n interval = 50,\r\n options = {}\r\n) {\r\n let previousHeight = getHeightIncludeAbsolutePositionedElements(element);\r\n const token = setInterval(() => {\r\n if (document.body.contains(element)) {\r\n const currentHeight = getHeightIncludeAbsolutePositionedElements(element);\r\n if (currentHeight !== previousHeight) {\r\n triggerContainerResizing(options);\r\n previousHeight = currentHeight;\r\n }\r\n } else {\r\n triggerContainerResizing(options);\r\n clearInterval(token);\r\n }\r\n }, interval);\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__67__;","export { AccessibleTreeView } from './src/accessible-tree-view';\r\n","import React from 'react';\r\nimport { TreeView } from '@bingads-webui-react/tree-view';\r\nimport { FocusZone } from '@bingads-webui-react/fabric-control';\r\n\r\nexport const AccessibleTreeView = props => (\r\n <FocusZone\r\n stopFocusPropagation\r\n preventDefaultWhenHandled={false}\r\n >\r\n <TreeView\r\n {...props}\r\n />\r\n </FocusZone>\r\n);\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__4__;","export { Alert } from './src/alert';\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\n\r\nconst alertCssClasses = {\r\n Error: 'alert-danger',\r\n Warning: 'alert-warning',\r\n Confirmation: 'alert-success',\r\n Info: 'alert-info',\r\n};\r\nconst defaultIcon = (<span className=\"alert__icon\" aria-hidden=\"true\" />);\r\n\r\nlet actionArray;\r\n\r\nexport class Alert extends React.Component {\r\n componentDidMount() {\r\n this.addActionListeners();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.addActionListeners();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.removeActionListeners();\r\n }\r\n\r\n actionButtonClickedHandler = (event) => {\r\n this.props.onActionClicked(event.target.innerText);\r\n if (_.isFunction(this.props.action.callback)) {\r\n this.props.action.callback();\r\n }\r\n }\r\n\r\n actionClickedHandler = (event) => {\r\n const innerText = event.target.nodeName === 'INPUT'\r\n ? event.target.value\r\n : event.target.innerText;\r\n\r\n this.props.onActionClicked(innerText);\r\n }\r\n\r\n addActionListeners() {\r\n // DOM operation only applies for the case when message is string\r\n if (_.isString(this.props.message)) {\r\n this.removeActionListeners();\r\n actionArray = Array.prototype.slice.call(this.alertMessageElement.querySelectorAll('a, button, input[type=\"button\"]'));\r\n actionArray.forEach(anchor => anchor.addEventListener('click', this.actionClickedHandler));\r\n }\r\n }\r\n\r\n removeActionListeners() {\r\n if (_.isString(this.props.message) && actionArray) {\r\n actionArray.forEach(anchor => anchor.removeEventListener('click', this.actionClickedHandler));\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n level,\r\n hasIcon,\r\n customCssClass,\r\n icon,\r\n dismissible,\r\n message,\r\n action,\r\n onDismiss,\r\n } = this.props;\r\n\r\n const cssClass = customCssClass || alertCssClasses[level];\r\n const iconSpan = hasIcon && icon;\r\n const dismissButton = dismissible && (\r\n <button\r\n className={classnames('close', 'alert-ignore', 'clickable')}\r\n type=\"button\"\r\n tabIndex=\"0\"\r\n onClick={onDismiss}\r\n />\r\n );\r\n const actionButton = action && (\r\n <button\r\n className={classnames('btn', 'btn-default', 'alert__action')}\r\n type=\"button\"\r\n onClick={this.actionButtonClickedHandler}\r\n >\r\n {action.message}\r\n </button>\r\n );\r\n /* eslint react/no-danger:0 */\r\n // TODO [Yucongj] Remove dangerouslySetInnerHTML\r\n const messageContent = _.isString(message)\r\n ? (\r\n <span\r\n className=\"alert__message\"\r\n dangerouslySetInnerHTML={{ __html: message }}\r\n ref={(element) => {\r\n this.alertMessageElement = element;\r\n }}\r\n />\r\n ) : (\r\n <span className=\"alert__message\">\r\n {message}\r\n </span>\r\n );\r\n\r\n return (\r\n <div className={classnames('alert', cssClass)} role=\"alert\">\r\n {iconSpan}\r\n <div className=\"alert__content\">\r\n {messageContent}\r\n {actionButton}\r\n </div>\r\n {dismissButton}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nAlert.propTypes = {\r\n level: PropTypes.oneOf(['Error', 'Warning', 'Confirmation', 'Info']),\r\n hasIcon: PropTypes.bool,\r\n customCssClass: PropTypes.string,\r\n icon: PropTypes.element,\r\n dismissible: PropTypes.bool,\r\n message: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.element,\r\n ]),\r\n action: PropTypes.shape({\r\n message: PropTypes.string,\r\n callback: PropTypes.func,\r\n }),\r\n onDismiss: PropTypes.func,\r\n onActionClicked: PropTypes.func,\r\n};\r\n\r\nAlert.defaultProps = {\r\n level: 'Confirmation',\r\n hasIcon: true,\r\n customCssClass: '',\r\n icon: defaultIcon,\r\n dismissible: true,\r\n message: undefined,\r\n action: undefined,\r\n onDismiss: _.noop,\r\n onActionClicked: _.noop,\r\n};\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__16__;","export { AppContentContainer } from './src/app-content-container';\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport injectSheet from 'react-jss';\r\nimport { Grid, Row, Col } from '@bingads-webui-react/layout';\r\n\r\nimport { styles } from './styles';\r\nimport { getStylesProperties } from './utils';\r\n\r\nconst AppContentContainerBase = ({\r\n children,\r\n classes,\r\n ...stylesProperties\r\n}) => (\r\n <Grid className={classnames(classes.container, 'app-content-container-grid')} fluid>\r\n <Row className={classnames(classes.flexContainer, classes.rowContainer, 'app-content-container-row')}>\r\n <Col\r\n className={classnames(\r\n classes.flexContainer,\r\n stylesProperties.hasStickyBottom && classes.stickyBottom,\r\n stylesProperties.hasStickyFooter && classes.stickyFooter,\r\n 'app-content-container-col'\r\n )}\r\n role=\"main\"\r\n >\r\n {children}\r\n </Col>\r\n </Row>\r\n </Grid>\r\n);\r\n\r\nconst AppContentContainerStyled = injectSheet(styles)(AppContentContainerBase);\r\n\r\nexport const AppContentContainer = (props) => {\r\n const { children, ...stylesConfigProps } = props;\r\n // TODO: Task 2832398:useMemo with deep object compare on stylesConfigProps\r\n const stylesProperties = getStylesProperties(stylesConfigProps);\r\n return (\r\n <AppContentContainerStyled {...stylesProperties}>\r\n {children}\r\n </AppContentContainerStyled>\r\n );\r\n};\r\n\r\nAppContentContainerBase.propTypes = {\r\n hasStickyBottom: PropTypes.bool.isRequired,\r\n hasStickyFooter: PropTypes.bool.isRequired,\r\n stickyBottomContainerCssSelector: PropTypes.string,\r\n stickyFooterContainerCssSelector: PropTypes.string,\r\n leftPositionStickyElements: PropTypes.number.isRequired,\r\n bottomPositionStickyElement: PropTypes.number.isRequired,\r\n totalHeightStickyElements: PropTypes.number.isRequired,\r\n classes: PropTypes.shape({\r\n container: PropTypes.string.isRequired,\r\n flexContainer: PropTypes.string.isRequired,\r\n rowContainer: PropTypes.string.isRequired,\r\n stickyBottom: PropTypes.string.isRequired,\r\n stickyFooter: PropTypes.string.isRequired,\r\n }).isRequired,\r\n children: PropTypes.node.isRequired,\r\n};\r\n\r\nAppContentContainerBase.defaultProps = {\r\n stickyBottomContainerCssSelector: null,\r\n stickyFooterContainerCssSelector: null,\r\n};\r\n\r\nAppContentContainer.propTypes = {\r\n stickyBottomContainerCssSelector: PropTypes.string,\r\n stickyBottomContainerHeight: PropTypes.number,\r\n stickyFooterContainerCssSelector: PropTypes.string,\r\n stickyFooterContainerHeight: PropTypes.number,\r\n layoutConfig: PropTypes.shape({}),\r\n layoutComponents: PropTypes.shape({}),\r\n children: PropTypes.node.isRequired,\r\n};\r\n\r\nAppContentContainer.defaultProps = {\r\n stickyBottomContainerCssSelector: null,\r\n // eslint-disable-next-line max-len\r\n stickyBottomContainerHeight: 65, // default input height 32px + padding top/bottom 16px each + border top 1px\r\n stickyFooterContainerCssSelector: null,\r\n stickyFooterContainerHeight: 33, // default Bing Ads footer height is 33px\r\n layoutConfig: {},\r\n layoutComponents: {},\r\n};\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__24__;","const minWidthFixElements = 10000; // This value can be changed, high but random value taken\r\nconst zIndexFixElements = 999; // This value can be changed, high but random value taken\r\n\r\nexport const styles = {\r\n container: {\r\n display: 'flex',\r\n flex: '1 1 1px',\r\n flexDirection: 'column',\r\n marginLeft: 15,\r\n marginTop: 0,\r\n marginRight: 15,\r\n paddingLeft: 0,\r\n paddingRight: 0,\r\n },\r\n flexContainer: {\r\n display: 'flex',\r\n flex: '1 1 1px',\r\n flexDirection: 'column',\r\n overflow: 'auto',\r\n },\r\n stickyBottom: ({ stickyBottomContainerCssSelector }) => ({\r\n [`& ${stickyBottomContainerCssSelector}`]: {\r\n backgroundColor: 'white',\r\n position: ({ isStickyItemsFixed }) => (isStickyItemsFixed ? 'fixed' : 'absolute'),\r\n left: ({ leftPositionStickyElements }) => leftPositionStickyElements,\r\n right: 0,\r\n bottom: ({ bottomPositionStickyElement }) => bottomPositionStickyElement,\r\n margin: 0,\r\n zIndex: zIndexFixElements,\r\n minWidth: minWidthFixElements,\r\n },\r\n }),\r\n stickyFooter: ({ stickyFooterContainerCssSelector }) => ({\r\n [`& ${stickyFooterContainerCssSelector}`]: {\r\n position: ({ isStickyItemsFixed }) => (isStickyItemsFixed ? 'fixed' : 'absolute'),\r\n left: ({ leftPositionStickyElements }) => leftPositionStickyElements,\r\n right: 0,\r\n bottom: 0,\r\n zIndex: zIndexFixElements,\r\n minWidth: minWidthFixElements,\r\n },\r\n }),\r\n rowContainer: {\r\n paddingBottom: ({ totalHeightStickyElements }) => totalHeightStickyElements,\r\n },\r\n};\r\n","import _ from 'underscore';\r\n\r\n/**\r\n * Calculate the left width of the layout from the layoutComponents and LayoutConfig.\r\n * As of now, the only known left components from layout are nav and menu,\r\n * this should get updated if layout evolve with more elements in the left.\r\n * @param {object} layoutComponents The layout components definitions for each config\r\n * @param {object} layoutConfig The layout config of the page for each components\r\n * @return {int} The left width of the layout from the layoutComponents and LayoutConfig, or 0\r\n */\r\nexport const getLayoutLeftWidth = ({ layoutComponents, layoutConfig }) => {\r\n const layoutConfigWithLeftWidth = _.pick(layoutConfig, 'nav', 'menu');\r\n const elementNames = _.keys(layoutConfigWithLeftWidth);\r\n return _.reduce(elementNames, (memo, elementName) => {\r\n const { mode = '' } = layoutConfig[elementName];\r\n const { width = 0 } = layoutComponents[elementName][mode] || {};\r\n return memo + width;\r\n }, 0);\r\n};\r\n\r\n/**\r\n * Calculate the properties needs by the styles from the content layout properties\r\n * passed in parameter.\r\n * @param {string} stickyBottomContainerCssSelector content layout property representing\r\n * the css selector of the bottom container that need to be sticky\r\n * @param {number} stickyBottomContainerHeight content layout property representing\r\n * the height of the bottom container\r\n * @param {string} stickyFooterContainerCssSelector content layout property representing\r\n * the css selector of the footer container that need to be sticky\r\n * @param {number} stickyFooterContainerHeight content layout property representing\r\n * the height of the footer container\r\n * @param {object} layoutComponents The layout components definitions for each config\r\n * @param {object} layoutConfig The layout config of the page for each components\r\n * @return {object} The properties needs by the styles from the content layout properties\r\n */\r\nexport const getStylesProperties = ({\r\n stickyBottomContainerCssSelector,\r\n stickyBottomContainerHeight,\r\n stickyFooterContainerCssSelector,\r\n stickyFooterContainerHeight,\r\n layoutComponents,\r\n layoutConfig,\r\n isGridLayout,\r\n}) => {\r\n const hasStickyBottom = !!stickyBottomContainerCssSelector;\r\n const hasStickyFooter = !!stickyFooterContainerCssSelector;\r\n const isStickyItemsFixed = !isGridLayout;\r\n\r\n const bottomHeighStickyElement = (hasStickyBottom && stickyBottomContainerHeight) || 0;\r\n const footerHeightStickyElement = (hasStickyFooter && stickyFooterContainerHeight) || 0;\r\n const totalHeightStickyElements = bottomHeighStickyElement + footerHeightStickyElement;\r\n\r\n const bottomPositionStickyElement = (hasStickyBottom && footerHeightStickyElement) || 0;\r\n const leftPositionStickyElements = isGridLayout ? 0 : getLayoutLeftWidth({ layoutComponents, layoutConfig });\r\n\r\n return {\r\n hasStickyBottom,\r\n hasStickyFooter,\r\n stickyBottomContainerCssSelector,\r\n stickyFooterContainerCssSelector,\r\n leftPositionStickyElements,\r\n bottomPositionStickyElement,\r\n totalHeightStickyElements,\r\n isStickyItemsFixed,\r\n };\r\n};\r\n","export { AppContentFooter } from './src/app-content-footer';\r\nexport { getStyles } from './src/get-styles';\r\n","import React, { useState } from 'react';\r\nimport _ from 'underscore';\r\nimport classNames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from '@fluentui/react';\r\nimport { withI18nConsumer } from '@bingads-webui-react/i18n-context';\r\n\r\n/**\r\n * Presentational component for client-side rendered footer\r\n * @param {object} props component props\r\n * @param {link[]} props.links links in the footer\r\n * @param {object} props.texts special texts for the footer\r\n * @param {object} props.classes cless names for sub components\r\n * @returns {ReactNode} rendered result\r\n */\r\nexport const AppContentFooter = withI18nConsumer(({\r\n links,\r\n texts:\r\n { copyright, help },\r\n classes,\r\n i18n,\r\n feedbackProps,\r\n}) => {\r\n const [isOpen, setOpen] = useState(false);\r\n\r\n const openFeedbackPanel = () => {\r\n setOpen(true);\r\n };\r\n\r\n const closeFeedbackPanel = () => {\r\n setOpen(false);\r\n };\r\n\r\n const {\r\n isTestEnv,\r\n email,\r\n pageId,\r\n sessionId,\r\n feedbackLogger,\r\n appId,\r\n appData,\r\n } = feedbackProps;\r\n\r\n const defaultTestAppId = 50025;\r\n const defaultAppId = 2482;\r\n\r\n const FeedbackPanelComponent = React.lazy(() => import(/* webpackMode: 'eager' */ '@bingads-webui-react/feedback-panel').then(({ FeedbackPanel }) => ({\r\n default: () => (\r\n <FeedbackPanel\r\n appId={appId || (isTestEnv ? defaultTestAppId : defaultAppId)}\r\n isTestEnv={isTestEnv}\r\n isOpen={isOpen}\r\n dismissPanel={closeFeedbackPanel}\r\n i18n={i18n}\r\n instrumentationService={feedbackLogger}\r\n email={email}\r\n pageId={pageId}\r\n sessionId={sessionId}\r\n appData={appData}\r\n />),\r\n })));\r\n\r\n const renderAppContentFooter = () => (\r\n <div className={classNames(classes.container, 'ba-content-footer')} role=\"contentinfo\">\r\n <div className={classNames(classes.footerList, 'footer-link-list')}>\r\n <div className={classNames(classes.footerItem, 'footer-copyright-text')}>\r\n {copyright}\r\n </div>\r\n <ul className={classNames(classes.footerLinkContainer)}>\r\n {_.map(links, link =>\r\n (\r\n <li\r\n key={link.text}\r\n className={classNames(classes.footerItem, 'footer-link-item', link.text)}\r\n >\r\n <Link\r\n href={link.url}\r\n target=\"_blank\"\r\n onClick={link.hasFeedbackPanel && openFeedbackPanel}\r\n >\r\n {link.text}\r\n </Link>\r\n </li>\r\n ))}\r\n <li className={classNames(classes.footerItem, 'footer-link-item')}>\r\n <a\r\n href=\"/#\"\r\n className={classNames('HelpTopic', 'analysable')}\r\n analytics-id=\"helpFromFooter:{{RailViewID}}\"\r\n role=\"button\"\r\n >\r\n {help}\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n <React.Suspense fallback={null}>\r\n {isOpen && <FeedbackPanelComponent />}\r\n </React.Suspense>\r\n </div>\r\n );\r\n\r\n return (\r\n renderAppContentFooter()\r\n );\r\n});\r\n\r\nAppContentFooter.propTypes = {\r\n texts: PropTypes.shape({\r\n copyright: PropTypes.node.isRequired,\r\n help: PropTypes.node.isRequired,\r\n }).isRequired,\r\n classes: PropTypes.shape({\r\n container: PropTypes.string.isRequired,\r\n }).isRequired,\r\n links: PropTypes.arrayOf(PropTypes.shape({\r\n url: PropTypes.string,\r\n text: PropTypes.node,\r\n })).isRequired,\r\n feedbackProps: PropTypes.shape({\r\n feedbackLogger: PropTypes.shape({\r\n log: PropTypes.func,\r\n }),\r\n isTestEnv: PropTypes.bool,\r\n email: PropTypes.string,\r\n pageId: PropTypes.string,\r\n sessionId: PropTypes.string,\r\n }),\r\n};\r\n\r\nAppContentFooter.defaultProps = {\r\n feedbackProps: {\r\n feedbackLogger: { log: () => { } },\r\n isTestEnv: true,\r\n email: '',\r\n pageId: '',\r\n sessionId: '',\r\n },\r\n};\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__30__;","module.exports = __WEBPACK_EXTERNAL_MODULE__31__;","export const getStyles = (footer, { palette = {} }) => ({\r\n container: {\r\n backgroundColor: palette.neutralLighter,\r\n flex: '0 0 33px',\r\n },\r\n footerList: {\r\n display: 'flex',\r\n paddingLeft: '6px',\r\n },\r\n footerLinkContainer: {\r\n flex: 1,\r\n listStyle: 'none',\r\n marginTop: 0,\r\n marginBottom: 0,\r\n paddingLeft: 0,\r\n },\r\n footerItem: {\r\n display: 'inline-block',\r\n padding: '6px 10px',\r\n '& > a': {\r\n color: '#106EBE',\r\n },\r\n '& > button': {\r\n color: '#106EBE',\r\n border: 0,\r\n },\r\n },\r\n});\r\n","export { GlobalErrorView } from './src';\r\n","/* eslint-disable react/no-array-index-key */\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport _ from 'underscore';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport { getStyle } from './style/get-style';\r\n\r\nclass UnthemedGlobalErrorView extends React.PureComponent {\r\n render() {\r\n const {\r\n classes, description, title, className,\r\n } = this.props;\r\n return (\r\n <div className={classNames(['global-error-page-container', className, classes.errorPage])}>\r\n <div className={classes.errorPageContent}>\r\n <div className={classes.errorPageIcon} />\r\n <div className={classes.errorPageTxtContent}>\r\n <div className={classes.errorPageTxtTitle} id=\"global-error-title\">\r\n {title}\r\n </div>\r\n <div id=\"global-error-desc\">\r\n {_.map(description, (txt, index) => (\r\n <div className={classes.errorPageTxtDesc} key={index}>\r\n {_.isFunction(txt) ? txt() : txt}\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nUnthemedGlobalErrorView.propTypes = {\r\n description: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.func]))\r\n .isRequired,\r\n title: PropTypes.string.isRequired,\r\n classes: PropTypes.shape({\r\n errorPage: PropTypes.string,\r\n errorPageContent: PropTypes.string,\r\n errorPageIcon: PropTypes.string,\r\n errorPageTxtContent: PropTypes.string,\r\n errorPageTxtDesc: PropTypes.string,\r\n }).isRequired,\r\n className: PropTypes.string,\r\n};\r\n\r\nUnthemedGlobalErrorView.defaultProps = {\r\n className: '',\r\n};\r\n\r\nexport const GlobalErrorView\r\n = withDefaultStyles(UnthemedGlobalErrorView, getStyle);\r\n","/* istanbul ignore file */\r\nimport { iconBase64 } from './global-error-icon';\r\n\r\nexport const getStyle = (_, { palette = {} }) => ({\r\n errorPage: {\r\n width: '100%',\r\n height: '100%',\r\n minWidth: 800,\r\n backgroundColor: palette.white,\r\n position: 'relative',\r\n },\r\n\r\n errorPageContent: {\r\n position: 'absolute',\r\n top: 163,\r\n height: 230,\r\n width: 727,\r\n left: '50%',\r\n transform: 'translate(-50%, 0)',\r\n '-webkit-transform': 'translate(-50%, 0)',\r\n },\r\n\r\n errorPageIcon: {\r\n width: 230,\r\n height: 230,\r\n position: 'absolute',\r\n backgroundImage: `url(\"data:image/svg+xml;base64, ${iconBase64}\")`,\r\n backgroundSize: '230px 230px',\r\n },\r\n\r\n errorPageTxtContent: {\r\n position: 'absolute',\r\n left: 288,\r\n top: '50%',\r\n transform: 'translate(0, -50%)',\r\n '-webkit-transform': 'translate(0, -50%)',\r\n },\r\n\r\n errorPageTxtTitle: {\r\n color: palette.neutralPrimary,\r\n fontSize: 26,\r\n fontWeight: 600,\r\n },\r\n\r\n errorPageTxtDesc: {\r\n color: palette.neutralPrimary,\r\n fontSize: 14,\r\n marginTop: 16,\r\n },\r\n\r\n errorPageTxtRefresh: {\r\n color: '#0078D4',\r\n fontSize: 14,\r\n marginTop: 16,\r\n cursor: 'pointer',\r\n width: 107,\r\n\r\n '&:focus': {\r\n border: `1px solid ${palette.neutralSecondary}`,\r\n outline: 'none',\r\n },\r\n '&:hover': {\r\n color: '#23527c',\r\n textDecoration: 'underline',\r\n },\r\n },\r\n});\r\n","export const iconBase64 = 'PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjAxLjYgMjAxLjYiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojOGI4Y2M0O30uY2xzLTJ7ZmlsbDojZTFkZmRkO30uY2xzLTN7ZmlsbDojZmZmO30uY2xzLTR7ZmlsbDojZjdiNTQ4O30uY2xzLTV7ZmlsbDojZTBiYjk1O30uY2xzLTZ7ZmlsbDojNTk0NTM5O30uY2xzLTd7ZmlsbDp1cmwoI3JhZGlhbC1ncmFkaWVudCk7fS5jbHMtOHtmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50KTt9LmNscy05e2ZpbGw6I2ZmZDU5MDt9LmNscy0xMHtmaWxsOnVybCgjbGluZWFyLWdyYWRpZW50LTIpO30uY2xzLTExe2ZpbGw6dXJsKCNsaW5lYXItZ3JhZGllbnQtMyk7fS5jbHMtMTJ7ZmlsbDp1cmwoI3JhZGlhbC1ncmFkaWVudC0yKTt9LmNscy0xM3tmaWxsOnVybCgjcmFkaWFsLWdyYWRpZW50LTMpO30uY2xzLTE0e2ZpbGw6I2JmOGY2ODt9LmNscy0xNXtmaWxsOm5vbmU7fS5jbHMtMTZ7ZmlsbDojNzk3NjczO308L3N0eWxlPjxyYWRpYWxHcmFkaWVudCBpZD0icmFkaWFsLWdyYWRpZW50IiBjeD0iLTY3LjkxIiBjeT0iMTA2OS42NCIgcj0iMTcuNzEiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC45OCwgLTAuMTgsIDAuMTgsIDAuOTgsIC02NS43MiwgLTEwMDIuNDIpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMjMxZjIwIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNTk0NTM5IiBzdG9wLW9wYWNpdHk9IjAiLz48L3JhZGlhbEdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50IiB4MT0iNTkuNzgiIHkxPSI4MTEuMDciIHgyPSI3Ni40NCIgeTI9IjgxOC4xMiIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgwIC02OTcuMykiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNiZjhmNjgiLz48c3RvcCBvZmZzZXQ9IjAuODUiIHN0b3AtY29sb3I9IiNkYmI0OGUiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNlMGJiOTUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyLWdyYWRpZW50LTIiIHgxPSIzNi44MyIgeTE9IjkwMy4wNSIgeDI9IjQ2Ljg5IiB5Mj0iODMyLjI5IiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTY5Ny4zKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMC4wMSIgc3RvcC1jb2xvcj0iIzRiNGM3NSIvPjxzdG9wIG9mZnNldD0iMC4yNiIgc3RvcC1jb2xvcj0iIzY0NjU5MyIvPjxzdG9wIG9mZnNldD0iMC41NSIgc3RvcC1jb2xvcj0iIzc5N2FhZSIvPjxzdG9wIG9mZnNldD0iMC44IiBzdG9wLWNvbG9yPSIjODY4N2JlIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjOGI4Y2M0Ii8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhci1ncmFkaWVudC0zIiB4MT0iMTAzIiB5MT0iOTA1LjU2IiB4Mj0iMTAxLjU1IiB5Mj0iODU4LjQzIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTY5Ny4zKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMC4wMSIgc3RvcC1jb2xvcj0iIzRiNGM3NSIvPjxzdG9wIG9mZnNldD0iMC4xOCIgc3RvcC1jb2xvcj0iIzVhNWI4OCIvPjxzdG9wIG9mZnNldD0iMC41MiIgc3RvcC1jb2xvcj0iIzc1NzZhOSIvPjxzdG9wIG9mZnNldD0iMC44MSIgc3RvcC1jb2xvcj0iIzg1ODZiZCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzhiOGNjNCIvPjwvbGluZWFyR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPSJyYWRpYWwtZ3JhZGllbnQtMiIgY3g9Ii01MzUuNDkiIGN5PSItMzQ0Ljg0IiByPSI5LjIiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTAuODksIDAuNDYsIC0wLjMyLCAtMC42MSwgLTUxNS42MiwgMTM5LjQ2KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2JmOGY2OCIvPjxzdG9wIG9mZnNldD0iMC4xNyIgc3RvcC1jb2xvcj0iI2M2OTk3MiIvPjxzdG9wIG9mZnNldD0iMC42OSIgc3RvcC1jb2xvcj0iI2Q5YjI4YiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2UwYmI5NSIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPSJyYWRpYWwtZ3JhZGllbnQtMyIgY3g9IjY5LjU5IiBjeT0iNzczLjMxIiByPSIxNy4xNyIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgwIC02OTUuMykiIHhsaW5rOmhyZWY9IiNyYWRpYWwtZ3JhZGllbnQiLz48L2RlZnM+PGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+PGcgaWQ9IkxheWVyXzEtMiIgZGF0YS1uYW1lPSJMYXllciAxIj48cG9seWdvbiBjbGFzcz0iY2xzLTEiIHBvaW50cz0iNDcuMzUgMTgyLjY4IDQ0LjU5IDE4OC40NiA0MC42NiAxODIuMDMgNDcuMzUgMTgyLjY4Ii8+PGNpcmNsZSBjbGFzcz0iY2xzLTIiIGN4PSIxMDAuOCIgY3k9IjEwMC44IiByPSIxMDAuOCIvPjxjaXJjbGUgY2xhc3M9ImNscy0zIiBjeD0iMTUxLjk0IiBjeT0iNjcuMTYiIHI9IjI5LjI4Ii8+PGNpcmNsZSBjbGFzcz0iY2xzLTMiIGN4PSIxMjIuNzMiIGN5PSI4Mi40OCIgcj0iNi42OSIvPjxjaXJjbGUgY2xhc3M9ImNscy0zIiBjeD0iMTA5Ljc1IiBjeT0iODUuNDgiIHI9IjMuNTUiLz48cGF0aCBjbGFzcz0iY2xzLTQiIGQ9Ik0xNTIsODAuOTFhMi44MywyLjgzLDAsMCwxLTItLjgyQTIuOTEsMi45MSwwLDAsMSwxNTAsNzZhMi44OCwyLjg4LDAsMCwxLDQuNjUuODksMi44LDIuOCwwLDAsMSwwLDIuMjcsMi44OSwyLjg5LDAsMCwxLS42NC45MSwyLjc3LDIuNzcsMCwwLDEtLjkxLjZBMi44MywyLjgzLDAsMCwxLDE1Miw4MC45MVptLS4wNS04Ljc2aDBhMi40LDIuNCwwLDAsMS0yLjQtMi4zM0wxNDkuMSw1NS45YTIuNDEsMi40MSwwLDAsMSwyLjQtMi40OGguODhhMi4zOSwyLjM5LDAsMCwxLDIuMzksMi40OGwtLjQzLDEzLjkyQTIuNDEsMi40MSwwLDAsMSwxNTEuOTQsNzIuMTVaIi8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNNTYuOCwxMjUuNjJIODZhMjkuMTksMjkuMTksMCwwLDEsMTkuOTQsNy44NCw0NS4xLDQ1LjEsMCwwLDAtMzMuMjMtMTQuNTdoMGE0NC45Myw0NC45MywwLDAsMC0yNi44Nyw4Ljg2QTI5LjE1LDI5LjE1LDAsMCwxLDU2LjgsMTI1LjYyWiIvPjxwYXRoIGNsYXNzPSJjbHMtNCIgZD0iTTg0LjYsNTUuNzcsMzkuOTEsNjQsMzYsNjIuODlsMy4yNi0yLjY2TDgzLjkxLDUyYTEuNDQsMS40NCwwLDAsMSwxLjY3LDEuMTVsLjE3LDFBMS40NSwxLjQ1LDAsMCwxLDg0LjYsNTUuNzdaIi8+PGNpcmNsZSBjbGFzcz0iY2xzLTYiIGN4PSI2MC40NiIgY3k9IjUzLjQxIiByPSIxNC41NiIvPjxjaXJjbGUgY2xhc3M9ImNscy03IiBjeD0iNjAuNDYiIGN5PSI1My40MyIgcj0iMTQuNTYiLz48Y2lyY2xlIGNsYXNzPSJjbHMtNiIgY3g9IjY2LjQ3IiBjeT0iODYiIHI9IjMwLjA3Ii8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNODQuNSwxMjAuNDVsLTMuMy0uNjZhMy4wOSwzLjA5LDAsMCwxLTIuNDgtM3YtMmwtMS45Myw1LjY3WiIvPjxyZWN0IGNsYXNzPSJjbHMtOCIgeD0iNjEuODciIHk9Ijk3LjI3IiB3aWR0aD0iMTYuODUiIGhlaWdodD0iNDEuOTEiLz48cGF0aCBjbGFzcz0iY2xzLTkiIGQ9Ik04NiwxMjUuNjJINTYuOGEyOS4yOSwyOS4yOSwwLDAsMC0yOS4zLDI5LjI5VjE3MGExMDAuNTMsMTAwLjUzLDAsMCwwLDczLjMsMzEuNjEsMTAyLDEwMiwwLDAsMCwxNC41LTFWMTU0LjkxQTI5LjI5LDI5LjI5LDAsMCwwLDg2LDEyNS42MloiLz48cGF0aCBjbGFzcz0iY2xzLTEwIiBkPSJNMjcuNSwxNDIuODJsLTgsMzMuNjFjMjEuMTgtNiwyNS45LDEwLjEyLDQwLjY4LDE2LjYzVjExOC4yMkg1Mi4xQzMyLjY4LDExOC4xNiwyNy41LDE0Mi44MiwyNy41LDE0Mi44MloiLz48cGF0aCBjbGFzcz0iY2xzLTExIiBkPSJNODYuNDgsMTIxdjc5LjU1YTEwMS4zOCwxMDEuMzgsMCwwLDAsMzEuNDMtLjQzVjE2My44OUMxMTcuOTEsMTQzLjc4LDEwMC44LDEzNi4zMSw4Ni40OCwxMjFaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNODYuNDgsMTIxYy0uNyw4LDMuODYsNDEuNiwzLjg2LDQxLjZzMjYuNzEsNS43NSwyNS40NCwxN0MxMTQuNTcsMTkwLjIyLDgxLjcyLDE5MCw4MS43MiwxOTBMODMsMjAwYTEwMiwxMDIsMCwwLDAsMTcuNzcsMS41NiwxMDAuNTksMTAwLjU5LDAsMCwwLDI5LjI2LTQuMzIsMTguMywxOC4zLDAsMCwwLDcuMTMtNS4zOEMxNTAuODgsMTczLjU2LDEyNS45MywxMzQuMzIsODYuNDgsMTIxWiIvPjxjaXJjbGUgY2xhc3M9ImNscy01IiBjeD0iNjcuNDYiIGN5PSI5My45NyIgcj0iMjEuOTgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNy4xNCAxNjAuNTQpIHJvdGF0ZSgtODkuNDYpIi8+PHBvbHlnb24gY2xhc3M9ImNscy0xMiIgcG9pbnRzPSI2NC44MyA4MS4wMSA3MS40NiAxMTUuNTggNTUuMzQgMTEyLjA1IDQ3LjYxIDg0LjAxIDY0LjgzIDgxLjAxIi8+PHBhdGggY2xhc3M9ImNscy01IiBkPSJNNzEuMTYsMTE0LjQ2bC0xLjktNy4zM2ExLjksMS45LDAsMCwwLS44Mi0xLjE0Yy0uNTgtLjM1LTEuMjktLjY5LTEuNTQtMS4zMi0uNzMtMS44OCwxLjI2LTIuNDgsMS40NS01LjM0LDAtLjExLS44MS00LjE5LS44MS00LjE5bDQuNzItLjg4LDUuMjIsMTcuNDJaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNODUuNjIsOTQuNzhhOC42NSw4LjY1LDAsMCwwLTE3LS4yNUw2Ni4yNSw5NWE4Ljg1LDguODUsMCwwLDAtMi40LTIuNDhBOC42NCw4LjY0LDAsMSwwLDY3LjQ1LDk4YTguMDgsOC4wOCwwLDAsMC0uMjktMS4xbDEuMzQtLjI1YTcuNTcsNy41NywwLDAsMCwuMTMsMS4yNEE4LjY0LDguNjQsMCwwLDAsNzcuMSwxMDVhOS40OSw5LjQ5LDAsMCwwLDEuNTktLjE0LDguNjUsOC42NSwwLDAsMCw2LjkzLTEwLjA3Wm0tMjEuMjgsOC41NGE2LjU0LDYuNTQsMCwxLDEsMS00LjlBNi41LDYuNSwwLDAsMSw2NC4zNCwxMDMuMzJabTE4LjE3LTMuMjZhNi41NCw2LjU0LDAsMCwxLTExLjgyLTIuNTIsNi41Niw2LjU2LDAsMCwxLDUuMjQtNy42Miw2LjkzLDYuOTMsMCwwLDEsMS4xOS0uMTEsNi41NCw2LjU0LDAsMCwxLDUuMzksMTAuMjVaIi8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNNzcuODIsNjQuNmEyNy4zNiwyNy4zNiwwLDAsMC0xLTRjLTEuMjUtLjUxLTEwLjQ2LS44My0xNi4xMi44M0M0NS41Nyw2NS44NiwzOC40LDkzLjIyLDM4LjUyLDkzLjcyQTI3LjIxLDI3LjIxLDAsMCwwLDc3LjgyLDY0LjZaIi8+PHBhdGggY2xhc3M9ImNscy02IiBkPSJNNzcuODIsNjQuNmEyNy4zNiwyNy4zNiwwLDAsMC0xLTQsMjguNDcsMjguNDcsMCwwLDEsMTcuNDcsMzFBMjcuMywyNy4zLDAsMCwxLDc2LjQ3LDc5LjMyLDI3LjA3LDI3LjA3LDAsMCwwLDc3LjgyLDY0LjZaIi8+PHBhdGggY2xhc3M9ImNscy0xMyIgZD0iTTc3LjgyLDY0LjZhMjcuMzYsMjcuMzYsMCwwLDAtMS00LDI4LjQ3LDI4LjQ3LDAsMCwxLDE3LjQ3LDMxQTI3LjMsMjcuMywwLDAsMSw3Ni40Nyw3OS4zMiwyNy4wNywyNy4wNywwLDAsMCw3Ny44Miw2NC42WiIvPjxlbGxpcHNlIGNsYXNzPSJjbHMtNiIgY3g9IjU5LjEzIiBjeT0iMTAwLjc2IiByeD0iMS42MiIgcnk9IjIuODgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNy4zNiAxMi40NSkgcm90YXRlKC0xMC40OSkiLz48ZWxsaXBzZSBjbGFzcz0iY2xzLTYiIGN4PSI3Ni4yNiIgY3k9Ijk3LjUzIiByeD0iMS42MiIgcnk9IjIuODgiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xNi40OSAxNS41Mikgcm90YXRlKC0xMC40OSkiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik02MC4zMywxMTguMTksNjUsMTIyLjg2cy05Ljg3LDM1LjY2LTEwLjE4LDM1LjM1LTEzLjM0LTUtMTMuMzQtNVoiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik02NS4wNSwxMjIuODZsLTEzLjgtNS4xNi0zLjM3LTEwLjI0aDBhMS44MSwxLjgxLDAsMCwxLDEuOTEuMDksNS43Nyw1Ljc3LDAsMCwxLDEuODEsMkw1NCwxMTQuMTJsNS44NS43NWE4LjA3LDguMDcsMCwwLDEsMy44NSwxLjQ3LDQuMiw0LjIsMCwwLDEsMS42NywzLjgyWiIvPjxwYXRoIGNsYXNzPSJjbHMtMTQiIGQ9Ik03My40OCwxMDkuNDNsLTEuMzUuNTlhMTIuODgsMTIuODgsMCwwLDEtMS4zOC41Miw1Ljg2LDUuODYsMCwwLDEtMS42OS4yOCwzLjIyLDMuMjIsMCwwLDEtMS44My0uNDkuNDkuNDksMCwwLDEtLjE0LS42OS4zOC4zOCwwLDAsMSwuMTYtLjE1bDAsMGMuNTEtLjMuOTItLjUxLDEuMzYtLjcyYTguNjMsOC42MywwLDAsMSwxLjQxLS41NSw1LjM3LDUuMzcsMCwwLDEsMS43NS0uMjQsMywzLDAsMCwxLDEuODQuNjIuNS41LDAsMCwxLC4wNy43LjY3LjY3LDAsMCwxLS4xOS4xNFoiLz48cGF0aCBjbGFzcz0iY2xzLTE1IiBkPSJNMjAxLjYsMTAwLjhBMTAwLjgsMTAwLjgsMCwwLDEsMjcuNjksMTcwLjE5Yy0xLjMxLTEuMzgtOC43NCwxMy4xNS0xMCwxMS42OXMzLjczLTE4Ljg5LDIuNTgtMjAuNDFBMTAwLjgsMTAwLjgsMCwxLDEsMjAxLjYsMTAwLjhaIi8+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNNjUuNTMsMTMwUzQ2LjEzLDE4Ni41OCw0NC4yLDE4OS4yYy0yLjc5LDMuNzgtMTIuNDUsNy42My0xOS4zNywzLjMxLTguNTEtNS4zMi02Ljg4LTE2Ljk0LTEuOTEtMjIuNzMsMTMuNzctMTYuMDUsMzIuNjktNDUuNDQsMzIuNjktNDUuNDRaIi8+PHBhdGggY2xhc3M9ImNscy0xNiIgZD0iTTEwNy4zNSwxNTQuMTdINDlhMywzLDAsMCwwLTIuODgsM3YyOC4zYTEwMC4yMiwxMDAuMjIsMCwwLDAsNDkuNjUsMTZoMTBjLjgsMCwxLjU5LS4wOSwyLjM4LS4xNWEzLDMsMCwwLDAsMi0yLjg4VjE1Ny4yQTMsMywwLDAsMCwxMDcuMzUsMTU0LjE3WiIvPjwvZz48L2c+PC9zdmc+';\r\n","export { LayoutContainer } from './src/layout-container';\r\nexport { Layout } from './src/layout';\r\nexport { LayoutContext } from './src/layout-context';\r\nexport { layoutConfigs } from './src/layout-configs';\r\nexport { Mode } from './src/mode';\r\nexport { withLayoutContext } from './src/with-layout-context';\r\nexport { useChangeLayout } from './src/use-change-layout';\r\nexport * from './src/with-layout';\r\nexport { components } from './src/components';\r\nexport { OverlayComponent } from './src/overlay-component';\r\n","import _ from 'underscore';\r\nimport classNames from 'classnames';\r\nimport { merge, cloneDeep } from '@bingads-webui-universal/primitive-utilities';\r\nimport { withDefaultStyles } from '@bingads-webui-react/with-default-styles';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { layoutConfigs } from './layout-configs';\r\nimport { LayoutContext } from './layout-context';\r\nimport { StylesContainer } from './styles-container';\r\nimport { names } from './components';\r\nimport { Mode } from './mode';\r\nimport { styles } from './styles';\r\n\r\nclass LayoutContainer extends React.PureComponent {\r\n static propTypes = {\r\n children: PropTypes.node.isRequired,\r\n persistConfig: PropTypes.objectOf(PropTypes.shape({\r\n mode: PropTypes.oneOf(_.values(Mode)),\r\n })),\r\n pageConfig: PropTypes.objectOf(PropTypes.shape({\r\n mode: PropTypes.oneOf(_.values(Mode)),\r\n })),\r\n controlledByProps: PropTypes.bool,\r\n isGridLayout: PropTypes.bool,\r\n classes: PropTypes.shape({\r\n container: PropTypes.string,\r\n }).isRequired,\r\n };\r\n\r\n static defaultProps = {\r\n persistConfig: layoutConfigs.default,\r\n pageConfig: layoutConfigs.default,\r\n controlledByProps: false,\r\n isGridLayout: false,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n if (!props.isGridLayout) {\r\n this.stylesContainer = new StylesContainer(props.persistConfig);\r\n }\r\n\r\n this.state = {\r\n persistConfig: props.persistConfig,\r\n pageConfig: props.pageConfig,\r\n controlledByProps: props.controlledByProps,\r\n isLayoutLocked: false,\r\n };\r\n }\r\n\r\n static getDerivedStateFromProps(nextProps, prevState) {\r\n if (!prevState.controlledByProps) {\r\n return null;\r\n }\r\n if (prevState.ownUpdate) {\r\n // getDerivedStateFromProps is triggered before each render.\r\n // need to ensure that we dont override changes from its own update\r\n return { ownUpdate: false };\r\n } else if (!_.isEqual(nextProps.pageConfig, prevState.pageConfig)) {\r\n return { pageConfig: nextProps.pageConfig };\r\n }\r\n return null;\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n if (!_.isEqual(this.state.pageConfig, prevState.pageConfig)) {\r\n this.updatePage();\r\n }\r\n }\r\n\r\n changeLayout = (\r\n updates,\r\n isPageConfig,\r\n isPageConfigPartialUpdate = false,\r\n afterChangeLayout = _.noop,\r\n lockLayout = false\r\n ) => {\r\n if (_.find(updates, (item, key) => !_.has(names, key))) {\r\n throw new Error('Invalid layout configs');\r\n }\r\n\r\n if (this.state.isLayoutLocked) {\r\n return;\r\n }\r\n this.state.isLayoutLocked = lockLayout;\r\n\r\n if (isPageConfig) {\r\n this.setState((state) => {\r\n const pageConfig = isPageConfigPartialUpdate ?\r\n merge(cloneDeep(state.pageConfig), updates) :\r\n merge(cloneDeep(state.persistConfig), updates);\r\n return {\r\n pageConfig: _.isEqual(pageConfig, state.pageConfig) ? state.pageConfig : pageConfig,\r\n ownUpdate: true,\r\n };\r\n }, () => {\r\n this.updatePage(afterChangeLayout);\r\n });\r\n } else {\r\n this.setState((state) => {\r\n const persistConfig = merge(cloneDeep(state.persistConfig), updates);\r\n const pageConfig = merge(cloneDeep(state.pageConfig), updates);\r\n return {\r\n persistConfig: _.isEqual(persistConfig, state.persistConfig) ?\r\n state.persistConfig :\r\n persistConfig,\r\n pageConfig: _.isEqual(pageConfig, state.pageConfig) ? state.pageConfig : pageConfig,\r\n ownUpdate: true,\r\n };\r\n }, () => {\r\n this.updatePage(afterChangeLayout);\r\n });\r\n }\r\n };\r\n\r\n updatePage(afterChangeLayout = _.noop) {\r\n if (this.stylesContainer) {\r\n this.stylesContainer.update(this.state.pageConfig);\r\n }\r\n afterChangeLayout();\r\n }\r\n\r\n render() {\r\n return (\r\n <LayoutContext.Provider value={{\r\n config: this.state.pageConfig,\r\n styles: this.stylesContainer ? this.stylesContainer.styles : {},\r\n isGridLayout: this.props.isGridLayout,\r\n change: this.changeLayout,\r\n }}\r\n >\r\n {this.props.isGridLayout ? (\r\n <div className={classNames('app-root-container', this.props.classes.container)}>\r\n {this.props.children}\r\n </div>)\r\n : this.props.children}\r\n </LayoutContext.Provider>\r\n );\r\n }\r\n}\r\n\r\nconst StyledLayoutContainer = withDefaultStyles(LayoutContainer, () => styles);\r\n\r\nexport { StyledLayoutContainer as LayoutContainer };\r\n","import _ from 'underscore';\r\nimport { Mode } from './mode';\r\n\r\n// these components have logic themselves to dynamically change layout\r\nconst dynamicComponents = {\r\n topBanner: {\r\n mode: Mode.Collapsed,\r\n },\r\n promotionBanner: {\r\n mode: Mode.Collapsed,\r\n },\r\n copilot: {\r\n mode: Mode.Collapsed,\r\n },\r\n};\r\n\r\nconst staticComponents = {\r\n header: {\r\n mode: Mode.Collapsed,\r\n },\r\n panelContainer: {\r\n mode: Mode.Collapsed,\r\n },\r\n nav: {\r\n mode: Mode.Expanded,\r\n },\r\n scopePanel: {\r\n mode: Mode.Hidden,\r\n },\r\n menu: {\r\n mode: Mode.Expanded,\r\n },\r\n status: {\r\n mode: Mode.Expanded,\r\n },\r\n tab: {\r\n mode: Mode.Collapsed,\r\n },\r\n subTab: {\r\n mode: Mode.Hidden,\r\n },\r\n content: {\r\n mode: Mode.Expanded,\r\n },\r\n overlay: {\r\n mode: Mode.Hidden,\r\n },\r\n};\r\n\r\nconst base = { ...staticComponents, ...dynamicComponents };\r\n\r\nconst immersive = _.defaults({\r\n nav: {\r\n mode: Mode.Collapsed,\r\n },\r\n}, staticComponents);\r\n\r\nconst fullScreen = _.defaults({\r\n nav: {\r\n mode: Mode.Hidden,\r\n },\r\n menu: {\r\n mode: Mode.Hidden,\r\n },\r\n status: {\r\n mode: Mode.Hidden,\r\n },\r\n tab: {\r\n mode: Mode.Hidden,\r\n },\r\n}, staticComponents);\r\n\r\nconst mainContentWithTab = _.defaults({\r\n nav: {\r\n mode: Mode.Hidden,\r\n },\r\n menu: {\r\n mode: Mode.Hidden,\r\n },\r\n status: {\r\n mode: Mode.Hidden,\r\n },\r\n header: {\r\n mode: Mode.Hidden,\r\n },\r\n topBanner: {\r\n mode: Mode.Hidden,\r\n },\r\n}, staticComponents);\r\n\r\nconst mainContentWithStatus = _.defaults({\r\n header: {\r\n mode: Mode.Hidden,\r\n },\r\n topBanner: {\r\n mode: Mode.Hidden,\r\n },\r\n nav: {\r\n mode: Mode.Hidden,\r\n },\r\n menu: {\r\n mode: Mode.Hidden,\r\n },\r\n tab: {\r\n mode: Mode.Hidden,\r\n },\r\n}, staticComponents);\r\n\r\nconst fullScreenWithNavRefresh = _.defaults({\r\n status: {\r\n mode: Mode.Hidden,\r\n },\r\n tab: {\r\n mode: Mode.Hidden,\r\n },\r\n}, staticComponents);\r\n\r\nconst withoutDate = {\r\n tab: {\r\n mode: Mode.Collapsed,\r\n showDatePicker: false,\r\n },\r\n};\r\n\r\nconst withDisabledDate = {\r\n tab: {\r\n mode: Mode.Collapsed,\r\n showDisabledDatePicker: true,\r\n showDatePicker: false,\r\n },\r\n};\r\n\r\nconst withHistoryButton = {\r\n tab: {\r\n mode: Mode.Collapsed,\r\n showDatePicker: false,\r\n showHistoryButton: true,\r\n },\r\n};\r\n\r\nconst dateWithoutCompare = {\r\n tab: {\r\n mode: Mode.Collapsed,\r\n disableCompare: true,\r\n },\r\n};\r\n\r\nconst fullScreenWithSummaryBar = _.defaults({\r\n nav: {\r\n mode: Mode.Hidden,\r\n },\r\n menu: {\r\n mode: Mode.Hidden,\r\n },\r\n tab: {\r\n mode: Mode.Hidden,\r\n },\r\n}, staticComponents);\r\n\r\nconst fullScreenWithSummaryBarWithNavRefresh = _.defaults({\r\n tab: {\r\n mode: Mode.Hidden,\r\n },\r\n}, staticComponents);\r\n\r\nconst fullScreenWithSummaryBarAndTab = _.defaults({\r\n nav: {\r\n mode: Mode.Hidden,\r\n },\r\n menu: {\r\n mode: Mode.Hidden,\r\n },\r\n}, staticComponents);\r\n\r\nconst withoutNav = _.defaults({\r\n nav: {\r\n mode: Mode.Hidden,\r\n },\r\n}, staticComponents);\r\n\r\nconst accountSummary = {\r\n nav: {\r\n mode: Mode.Hidden,\r\n },\r\n};\r\n\r\nconst accountSummaryWithoutDate = {\r\n ...accountSummary,\r\n ...withoutDate,\r\n};\r\n\r\nconst withMenuOnly = {\r\n nav: {\r\n mode: Mode.Hidden,\r\n },\r\n tab: {\r\n mode: Mode.Hidden,\r\n },\r\n};\r\n\r\nconst withoutMenu = {\r\n menu: {\r\n mode: Mode.Hidden,\r\n },\r\n};\r\n\r\nconst withSingleTab = {\r\n nav: {\r\n mode: Mode.Hidden,\r\n },\r\n tab: {\r\n singleTabMode: true,\r\n },\r\n};\r\n\r\nconst withCollapsedMenuOnly = _.defaults({\r\n nav: {\r\n // Main menu\r\n mode: Mode.Collapsed,\r\n },\r\n menu: {\r\n // Page menu\r\n mode: Mode.Hidden,\r\n },\r\n status: {\r\n // Top bar containing 'Back' button and page title\r\n mode: Mode.Hidden,\r\n },\r\n tab: {\r\n // Horizontal tabs on top of page bearing page titles\r\n mode: Mode.Hidden,\r\n showDatePicker: false,\r\n },\r\n}, staticComponents);\r\n\r\nconst withCollapsedMenuAndNav = _.defaults({\r\n nav: {\r\n // Main menu\r\n mode: Mode.Collapsed,\r\n },\r\n menu: {\r\n // Page menu\r\n mode: Mode.Expanded,\r\n },\r\n status: {\r\n // Top bar containing 'Back' button and page title\r\n mode: Mode.Expanded,\r\n },\r\n tab: {\r\n // Horizontal tabs on top of page bearing page titles\r\n mode: Mode.Hidden,\r\n showDatePicker: false,\r\n },\r\n}, staticComponents);\r\n\r\nconst withTabAndSubTab = {\r\n tab: {\r\n mode: Mode.Collapsed,\r\n },\r\n subTab: {\r\n mode: Mode.Expanded,\r\n },\r\n};\r\n\r\nconst signupScreen = _.defaults({\r\n header: {\r\n mode: Mode.Expanded,\r\n },\r\n nav: {\r\n mode: Mode.Hidden,\r\n },\r\n menu: {\r\n mode: Mode.Hidden,\r\n },\r\n status: {\r\n mode: Mode.Hidden,\r\n },\r\n tab: {\r\n mode: Mode.Hidden,\r\n },\r\n}, base);\r\n\r\nexport const layoutConfigs = {\r\n default: base,\r\n staticComponents,\r\n immersive,\r\n fullScreen,\r\n withoutDate,\r\n withDisabledDate,\r\n withoutNav,\r\n withSingleTab,\r\n fullScreenWithSummaryBar,\r\n fullScreenWithSummaryBarAndTab,\r\n accountSummary,\r\n accountSummaryWithoutDate,\r\n withMenuOnly,\r\n withCollapsedMenuOnly,\r\n withCollapsedMenuAndNav,\r\n withoutMenu,\r\n dateWithoutCompare,\r\n withTabAndSubTab,\r\n withHistoryButton,\r\n signupScreen,\r\n fullScreenWithNavRefresh,\r\n fullScreenWithSummaryBarWithNavRefresh,\r\n mainContentWithTab,\r\n mainContentWithStatus,\r\n};\r\n","export const Mode = {\r\n Expanded: 'expanded',\r\n Collapsed: 'collapsed',\r\n Hidden: 'hidden',\r\n};\r\n","import _ from 'underscore';\r\nimport React from 'react';\r\nimport { layoutConfigs } from './layout-configs';\r\n\r\nexport const LayoutContext = React.createContext({\r\n config: layoutConfigs.default,\r\n change: _.noop,\r\n});\r\n","/* eslint-disable max-len */\r\nimport _ from 'underscore';\r\nimport { jss } from 'react-jss';\r\nimport { components, names } from './components';\r\n\r\nconst calcQueue = [\r\n names.header,\r\n /*\r\n * Currently we only support calculate css \"left\" from left to right, or calculate css \"top\" from top to bottom.\r\n * However the ads copilot will be displayed at the right side of the page, which is not supported by current layout system\r\n * To resolve this issue, we created a container node for copilot, whose left is 0 and top is the height of the header, and the z-index is 0\r\n * then we will put the actual copilot component at the right side of this container node.\r\n */\r\n names.copilot,\r\n names.panelContainer,\r\n names.topBanner,\r\n names.promotionBanner,\r\n names.nav,\r\n names.status,\r\n names.menu,\r\n names.tab,\r\n names.subTab,\r\n names.content,\r\n];\r\n\r\nconst getSelection = config => _.mapObject(config, ({ mode, ...advancedOptions }, key) => {\r\n let result = _.result(components[key], mode, {});\r\n\r\n // i.e. advancedOptions = { showExperimentScoreCard: true }\r\n _.each(advancedOptions, (advancedOptionValue, advancedOptionName) => {\r\n const advancedProcessor = components[key][advancedOptionName];\r\n if (advancedOptionValue && _.isFunction(advancedProcessor)) {\r\n result = advancedProcessor(result, advancedOptionValue);\r\n }\r\n });\r\n\r\n return result;\r\n});\r\n\r\nexport class StylesContainer {\r\n constructor(config) {\r\n const selected = getSelection(config);\r\n this.styles = _.mapObject(selected, (item, key) =>\r\n jss.createStyleSheet({ [key]: style => style }, { link: true }).attach());\r\n this.update(config);\r\n }\r\n\r\n update(config) {\r\n const selected = getSelection(config);\r\n const startPos = { top: 0, left: 0 };\r\n\r\n _.each(calcQueue, (key) => {\r\n const component = selected[key];\r\n this.styles[key].update(_.extend(component, startPos));\r\n startPos.top += _.result(component, 'height', 0);\r\n startPos.left += _.result(component, 'width', 0);\r\n });\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { Constants } from '@bingads-webui-theme-2018/theme-fluent';\r\n\r\nconst { ZIndexShellComponents } = Constants;\r\n\r\n// In the future, we may want to support resizing, so we need a way to support dynamicly set styles for each component\r\nconst showCopilot = (cfg, overrideValue = {}) => ({\r\n ...cfg,\r\n ...overrideValue,\r\n});\r\n\r\nconst shared = {\r\n position: 'absolute',\r\n display: 'block',\r\n};\r\n\r\nconst hidden = _.defaults({\r\n display: 'none',\r\n}, shared);\r\n\r\nconst header = {\r\n expanded: _.defaults({\r\n get height() {\r\n return window.surveyHeight + 60 || 60;\r\n },\r\n right: 0,\r\n zIndex: ZIndexShellComponents.Header,\r\n }, shared),\r\n collapsed: _.defaults({\r\n height: 60,\r\n right: 0,\r\n zIndex: ZIndexShellComponents.Header,\r\n }, shared),\r\n hidden,\r\n};\r\n\r\nconst panelContainer = {\r\n expanded: _.defaults({\r\n right: 0,\r\n bottom: 0,\r\n zIndex: ZIndexShellComponents.Panel,\r\n }, shared),\r\n hidden,\r\n collapsed: hidden,\r\n};\r\n\r\nconst topBanner = {\r\n expanded: _.defaults({\r\n height: 37,\r\n right: 0,\r\n display: 'block',\r\n zIndex: ZIndexShellComponents.TopBanner,\r\n }, shared),\r\n hidden,\r\n collapsed: hidden,\r\n showCopilot,\r\n};\r\n\r\nconst promotionBanner = {\r\n expanded: _.defaults({\r\n height: 32,\r\n right: 0,\r\n zIndex: ZIndexShellComponents.PromotionBanner,\r\n }, shared),\r\n hidden,\r\n collapsed: hidden,\r\n showCopilot,\r\n};\r\n\r\nconst nav = {\r\n expanded: _.defaults({\r\n width: 228,\r\n bottom: 0,\r\n zIndex: ZIndexShellComponents.Nav,\r\n }, shared),\r\n collapsed: _.defaults({\r\n width: 0,\r\n bottom: 0,\r\n zIndex: ZIndexShellComponents.Nav,\r\n }, shared),\r\n hidden,\r\n};\r\n\r\nconst status = {\r\n expanded: _.defaults({\r\n height: 45,\r\n right: 0,\r\n zIndex: ZIndexShellComponents.Status,\r\n }, shared),\r\n hidden,\r\n showCopilot,\r\n};\r\n\r\nconst menu = {\r\n expanded: _.defaults({\r\n width: 164,\r\n bottom: 0,\r\n zIndex: ZIndexShellComponents.Menu,\r\n }, shared),\r\n collapsed: _.defaults({\r\n width: 48,\r\n bottom: 0,\r\n zIndex: ZIndexShellComponents.Menu,\r\n }, shared),\r\n hidden,\r\n hotelCenterMenu: cfg => ({\r\n ...cfg,\r\n width: 180,\r\n }),\r\n};\r\n\r\nconst tab = {\r\n optimizationScore: _.defaults({\r\n height: 139,\r\n right: 0,\r\n zIndex: ZIndexShellComponents.Tab,\r\n }, shared),\r\n expanded: _.defaults({\r\n height: 72,\r\n right: 0,\r\n zIndex: ZIndexShellComponents.Tab,\r\n }, shared),\r\n collapsed: _.defaults({\r\n height: 58,\r\n right: 0,\r\n zIndex: ZIndexShellComponents.Tab,\r\n }, shared),\r\n hidden,\r\n /*\r\n * advanced processor to handle config like below:\r\n * {\r\n * tab: {\r\n * mode: 'collapsed' or 'expanded',\r\n * showExperimentScoreCard: true,\r\n * },\r\n * }\r\n * For more details, see ./styles-container.js\r\n */\r\n showExperimentScoreCard: cfg => ({\r\n ...cfg,\r\n height: cfg.height + 176,\r\n }),\r\n showCopilot,\r\n};\r\n\r\nconst subTab = {\r\n expanded: _.defaults({\r\n height: 58,\r\n right: 0,\r\n zIndex: ZIndexShellComponents.SubTab,\r\n }, shared),\r\n hidden,\r\n showCopilot,\r\n};\r\n\r\nconst content = {\r\n expanded: _.defaults({\r\n right: 0,\r\n bottom: 0,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n zIndex: ZIndexShellComponents.Content,\r\n }, shared),\r\n showCopilot,\r\n};\r\n\r\nconst copilot = {\r\n expanded: _.defaults({\r\n overflow: 'hidden',\r\n display: 'flex',\r\n zIndex: 0,\r\n bottom: 0,\r\n right: 0,\r\n }, shared),\r\n hidden,\r\n};\r\n\r\nconst scopePanel = {\r\n expanded: {},\r\n hidden,\r\n};\r\n\r\nconst overlay = {\r\n expanded: {},\r\n hidden,\r\n};\r\n\r\nexport const components = {\r\n header,\r\n panelContainer,\r\n topBanner,\r\n promotionBanner,\r\n nav,\r\n status,\r\n menu,\r\n tab,\r\n copilot,\r\n scopePanel,\r\n subTab,\r\n content,\r\n overlay,\r\n};\r\n\r\nexport const names = _.mapObject(components, (value, name) => name);\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__48__;","import { Constants } from '@bingads-webui-theme-2018/theme-fluent';\r\n\r\nconst { ZIndexShellComponents } = Constants;\r\n\r\nexport const styles = {\r\n container: {\r\n display: 'grid',\r\n gridTemplateColumns: 'auto auto auto 1fr',\r\n gridTemplateRows: 'auto auto auto minmax(0px, 1fr)',\r\n height: '100vh',\r\n\r\n '& .app-shell-header': {\r\n gridColumn: '1 / span 5',\r\n gridRow: 1,\r\n position: 'relative',\r\n zIndex: ZIndexShellComponents.Header,\r\n },\r\n '& .app-shell-topBanner': {\r\n gridColumn: '1 / span 4',\r\n gridRow: 2,\r\n zIndex: ZIndexShellComponents.TopBanner,\r\n position: 'relative',\r\n },\r\n '& .app-shell-nav': {\r\n gridColumn: 1,\r\n gridRow: '3 / span 2',\r\n position: 'relative',\r\n display: 'flex',\r\n },\r\n '& .app-shell-status': {\r\n gridColumn: '3 / span 2',\r\n gridRow: 3,\r\n position: 'relative',\r\n zIndex: ZIndexShellComponents.Status,\r\n },\r\n '& .app-shell-scopePanel': {\r\n gridColumn: '2',\r\n gridRow: '3 / span 2',\r\n position: 'relative',\r\n },\r\n '& .app-shell-menu': {\r\n gridColumn: '3',\r\n gridRow: 4,\r\n position: 'relative',\r\n display: 'flex',\r\n },\r\n '& main': {\r\n gridColumn: '4',\r\n gridRow: 4,\r\n display: 'grid',\r\n gridTemplateColumns: 'minmax(0px, 1fr)',\r\n gridTemplateRows: 'auto auto 1fr',\r\n '& .app-shell-tab': {\r\n gridRow: 1,\r\n position: 'relative',\r\n zIndex: ZIndexShellComponents.Tab,\r\n },\r\n '& .app-shell-subTab': {\r\n gridRow: 2,\r\n position: 'relative',\r\n zIndex: ZIndexShellComponents.SubTab,\r\n },\r\n '& .app-shell-content': {\r\n gridRow: 3,\r\n overflow: 'hidden',\r\n display: 'flex',\r\n position: 'relative',\r\n flexDirection: 'column',\r\n zIndex: ZIndexShellComponents.Content,\r\n },\r\n },\r\n '& .app-shell-copilot': {\r\n gridColumn: '5',\r\n gridRow: '2 / span 3',\r\n display: 'flex',\r\n },\r\n '& .app-shell-overlay': {\r\n gridColumn: '1 / span 4',\r\n gridRow: '2 / span 3',\r\n position: 'relative',\r\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\r\n zIndex: ZIndexShellComponents.Panel,\r\n },\r\n },\r\n};\r\n","import _ from 'underscore';\r\nimport React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { LayoutContext } from './layout-context';\r\nimport { Mode } from './mode';\r\n\r\nexport const Layout = (props) => {\r\n const Component = props.component;\r\n const itemName = props.item;\r\n const {\r\n config, styles, change: changeLayout, isGridLayout,\r\n } = useContext(LayoutContext);\r\n\r\n const componentProps = { ...(_.result(config, itemName)), changeLayout };\r\n\r\n let className = '';\r\n if (!isGridLayout) {\r\n const { classes } = _.result(styles, itemName);\r\n className = _.result(classes, itemName);\r\n }\r\n\r\n return (\r\n <div\r\n className={`app-shell-${itemName} ${className}`}\r\n style={isGridLayout && (componentProps.mode === Mode.Hidden) ? { display: 'none' } : {}}\r\n >\r\n <Component {..._.defaults(componentProps, props)} />\r\n </div>\r\n );\r\n};\r\n\r\nLayout.propTypes = {\r\n component: PropTypes.elementType.isRequired,\r\n item: PropTypes.string.isRequired,\r\n};\r\n","/* eslint-disable max-len */\r\nimport React from 'react';\r\nimport { LayoutContext } from './layout-context';\r\n\r\nexport function withLayoutContext(Component) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ config, change, isGridLayout }) => (<Component {...props} changeLayout={change} layoutConfig={config} isGridLayout={isGridLayout} />)}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n","import _ from 'underscore';\r\nimport { useContext, useEffect } from 'react';\r\nimport { LayoutContext } from './layout-context';\r\n\r\nexport const useChangeLayout = (layout) => {\r\n const { change } = useContext(LayoutContext);\r\n useEffect(() => {\r\n if (!_.isEmpty(layout))change(layout);\r\n }, [change, layout]);\r\n};\r\n","/* eslint-disable max-len */\r\nimport _ from 'underscore';\r\nimport React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { LayoutContext } from './layout-context';\r\nimport { layoutConfigs } from './layout-configs';\r\nimport { Mode } from './mode';\r\nimport { withLayoutContext } from './with-layout-context';\r\n\r\nclass LayoutHoCBase extends React.Component {\r\n static propTypes = {\r\n componentProps: PropTypes.shape({}).isRequired,\r\n changeLayout: PropTypes.func.isRequired,\r\n component: PropTypes.elementType.isRequired,\r\n toLayout: PropTypes.shape({}).isRequired,\r\n isGridLayout: PropTypes.bool.isRequired,\r\n layoutConfig: PropTypes.shape({\r\n menu: PropTypes.shape({\r\n mode: PropTypes.string,\r\n }).isRequired,\r\n }).isRequired,\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n props.changeLayout(this.getTargetLayout(props.toLayout), true);\r\n }\r\n\r\n shouldComponentUpdate(nextProps) {\r\n const { component, componentProps } = nextProps;\r\n if (!_.isEqual(component, this.props.component) || !_.isEqual(componentProps, this.props.componentProps)) {\r\n this.props.changeLayout(this.getTargetLayout(nextProps.toLayout), true);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n getTargetLayout(toLayout) {\r\n if (!this.props.isGridLayout) {\r\n return toLayout;\r\n }\r\n\r\n const { layoutConfig } = this.props;\r\n\r\n if (layoutConfig && layoutConfig.menu && layoutConfig.menu.mode === Mode.Collapsed) {\r\n // if menu is collapsed (by user interaction), maintain the collapsed state\r\n return { ...toLayout, menu: { mode: Mode.Collapsed } };\r\n }\r\n\r\n return toLayout;\r\n }\r\n\r\n render() {\r\n const { componentProps, component: Component } = this.props;\r\n return <Component changeLayout={this.props.changeLayout} {...componentProps} />;\r\n }\r\n}\r\n\r\nconst LayoutHoC = withLayoutContext(LayoutHoCBase);\r\n\r\nexport function withFullScreenLayout(Component) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ change }) => (<LayoutHoC component={Component} toLayout={layoutConfigs.fullScreen} changeLayout={change} componentProps={props} />)}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n\r\nexport function withLayout(Component, toLayout) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ change }) => (<LayoutHoC component={Component} toLayout={toLayout} changeLayout={change} componentProps={props} />)}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n\r\nexport function withMenuLayout(Component) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ config }) => (<Component {...props} {...config.menu} />)}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n\r\nexport function withDefaultLayout(Component) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ change }) => (<LayoutHoC component={Component} toLayout={{}} changeLayout={change} componentProps={props} />)}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n\r\nexport function withCollapsedMenuOnly(Component) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ change }) => (<LayoutHoC component={Component} toLayout={layoutConfigs.withCollapsedMenuOnly} changeLayout={change} componentProps={props} />)}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n\r\nexport function withCollapsedMenuAndNav(Component) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ change }) => (<LayoutHoC component={Component} toLayout={layoutConfigs.withCollapsedMenuAndNav} changeLayout={change} componentProps={props} />)}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n\r\nexport function withLayoutNavRefresh(Component, toLayout) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ change, isGridLayout }) => {\r\n if (isGridLayout) {\r\n return (<LayoutHoC component={Component} toLayout={{ ...toLayout, nav: { mode: Mode.Expanded }, menu: { mode: Mode.Expanded } }} changeLayout={change} componentProps={props} />);\r\n }\r\n\r\n return (<LayoutHoC component={Component} toLayout={toLayout} changeLayout={change} componentProps={props} />);\r\n }}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n\r\nexport function withLayoutNavRefreshNoMenu(Component, toLayout) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ change, isGridLayout }) => {\r\n if (isGridLayout) {\r\n return (<LayoutHoC component={Component} toLayout={{ ...toLayout, nav: { mode: Mode.Expanded } }} changeLayout={change} componentProps={props} />);\r\n }\r\n\r\n return (<LayoutHoC component={Component} toLayout={toLayout} changeLayout={change} componentProps={props} />);\r\n }}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n\r\nexport function withLayoutNavRefreshWithTab(Component, toLayout) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ change, isGridLayout }) => {\r\n if (isGridLayout) {\r\n let { tab } = toLayout;\r\n if (tab.mode === Mode.Hidden) {\r\n tab = {\r\n ...toLayout.tab,\r\n mode: Mode.Collapsed,\r\n showDatePicker: false,\r\n singleTabMode: true,\r\n };\r\n }\r\n\r\n return (<LayoutHoC\r\n component={Component}\r\n toLayout={{\r\n ...toLayout,\r\n nav: { mode: Mode.Expanded },\r\n menu: { mode: Mode.Expanded },\r\n tab,\r\n }}\r\n changeLayout={change}\r\n componentProps={props}\r\n />);\r\n }\r\n\r\n return (<LayoutHoC component={Component} toLayout={toLayout} changeLayout={change} componentProps={props} />);\r\n }}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n\r\nexport const withMenuOnlyLayout = _.partial(withLayoutNavRefresh, _, layoutConfigs.withMenuOnly);\r\nexport const withoutMenuLayout = _.partial(withLayoutNavRefresh, _, layoutConfigs.withoutMenu);\r\nexport const withSingleTabLayout = _.partial(withLayoutNavRefresh, _, layoutConfigs.withSingleTab);\r\nexport const withSummaryBarAndTabNoDateLayout = _.partial(withLayout, _, { ...layoutConfigs.fullScreenWithSummaryBarAndTab, ...layoutConfigs.withoutDate });\r\nexport const withSummaryBarAndTabAndSubTabLayout = _.partial(withLayout, _, { ...layoutConfigs.fullScreenWithSummaryBarAndTab, ...layoutConfigs.withTabAndSubTab });\r\nexport const withFullScreenWithSummaryBar = _.partial(withLayout, _, layoutConfigs.fullScreenWithSummaryBar);\r\nexport const withFullScreenWithSummaryBarAndTabLayout = _.partial(withLayout, _, { ...layoutConfigs.fullScreenWithSummaryBarAndTab });\r\n\r\n// *NavRefresh no L1, L2 in original shell, while adding L1, L2 for nav refresh\r\n\r\nexport function withFullScreenLayoutNavRefresh(Component) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ change, isGridLayout }) => {\r\n if (isGridLayout) {\r\n return (<LayoutHoC component={Component} toLayout={layoutConfigs.fullScreenWithNavRefresh} changeLayout={change} componentProps={props} />);\r\n }\r\n\r\n return (<LayoutHoC component={Component} toLayout={layoutConfigs.fullScreen} changeLayout={change} componentProps={props} />);\r\n }}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n\r\nexport function withSummaryBarAndTabNoDateLayoutNavRefresh(Component) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ change, isGridLayout }) => {\r\n if (isGridLayout) {\r\n return (<LayoutHoC component={Component} toLayout={{ ...layoutConfigs.staticComponents, ...layoutConfigs.withoutDate }} changeLayout={change} componentProps={props} />);\r\n }\r\n\r\n return (<LayoutHoC component={Component} toLayout={{ ...layoutConfigs.fullScreenWithSummaryBarAndTab, ...layoutConfigs.withoutDate }} changeLayout={change} componentProps={props} />);\r\n }}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n\r\nexport function withSummaryBarAndTabAndSubTabLayoutNavRefresh(Component) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ change, isGridLayout }) => {\r\n if (isGridLayout) {\r\n return (<LayoutHoC component={Component} toLayout={{ ...layoutConfigs.staticComponents, ...layoutConfigs.withTabAndSubTab }} changeLayout={change} componentProps={props} />);\r\n }\r\n\r\n return (<LayoutHoC component={Component} toLayout={{ ...layoutConfigs.fullScreenWithSummaryBarAndTab, ...layoutConfigs.withTabAndSubTab }} changeLayout={change} componentProps={props} />);\r\n }}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n\r\nexport function withFullScreenWithSummaryBarNavRefresh(Component) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ change, isGridLayout }) => {\r\n if (isGridLayout) {\r\n return (<LayoutHoC component={Component} toLayout={layoutConfigs.fullScreenWithSummaryBarWithNavRefresh} changeLayout={change} componentProps={props} />);\r\n }\r\n\r\n return (<LayoutHoC component={Component} toLayout={layoutConfigs.fullScreenWithSummaryBar} changeLayout={change} componentProps={props} />);\r\n }}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n\r\nexport function withFullScreenWithSummaryBarNavRefreshNoMenu(Component) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ change, isGridLayout }) => {\r\n if (isGridLayout) {\r\n return (<LayoutHoC component={Component} toLayout={{ ...layoutConfigs.fullScreenWithSummaryBar, nav: { mode: Mode.Expanded } }} changeLayout={change} componentProps={props} />);\r\n }\r\n\r\n return (<LayoutHoC component={Component} toLayout={layoutConfigs.fullScreenWithSummaryBar} changeLayout={change} componentProps={props} />);\r\n }}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n\r\nexport function withFullScreenWithSummaryBarAndTabLayoutNavRefresh(Component) {\r\n return props => (\r\n <LayoutContext.Consumer>\r\n {({ change, isGridLayout }) => {\r\n if (isGridLayout) {\r\n return (<LayoutHoC component={Component} toLayout={layoutConfigs.staticComponents} changeLayout={change} componentProps={props} />);\r\n }\r\n\r\n return (<LayoutHoC component={Component} toLayout={layoutConfigs.fullScreenWithSummaryBarAndTab} changeLayout={change} componentProps={props} />);\r\n }}\r\n </LayoutContext.Consumer>\r\n );\r\n}\r\n","import React, { useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const OverlayComponent = ({ content, changeLayout, contentProps }) => {\r\n useEffect(() => {\r\n if (!content) {\r\n changeLayout({ overlay: { mode: 'hidden' } });\r\n }\r\n }, [changeLayout, content]);\r\n\r\n const Content = content;\r\n\r\n if (!Content) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div\r\n className=\"overlay-component\"\r\n style={{\r\n display: 'flex',\r\n height: '100%',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n }}\r\n >\r\n <Content {...contentProps} />\r\n </div>\r\n );\r\n};\r\n\r\nOverlayComponent.propTypes = {\r\n content: PropTypes.elementType,\r\n changeLayout: PropTypes.func.isRequired,\r\n contentProps: PropTypes.shape({}),\r\n};\r\n\r\nOverlayComponent.defaultProps = {\r\n content: null,\r\n contentProps: {},\r\n};\r\n","export { App } from './src/index';\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { FluentProvider, webLightTheme } from '@fluentui/react-components';\r\nimport { ThemeProvider } from 'react-jss';\r\n\r\nimport { I18nContext } from '@bingads-webui-react/i18n-context';\r\nimport { InstrumentationContext } from '@bingads-webui-react/hoc-with-instrumentation';\r\nimport { PreferenceContext } from '@bingads-webui-react/preference-context';\r\nimport { GlobalErrorBoundary } from '@bingads-webui-react/global-error-boundary';\r\n\r\nconst customLightTheme = {\r\n ...webLightTheme,\r\n lineHeightBase300: '1.5', // override token to match ThemeProvider\r\n};\r\n\r\n/**\r\n * React component for initializing common modules shared by Bing Ads UI applications.\r\n * @param {object} props - Configuration options for initializing the application.\r\n * @returns {node} - React node for the application with common modules initialized.\r\n */\r\nexport function App(props) {\r\n return (\r\n <FluentProvider theme={customLightTheme}>\r\n <ThemeProvider theme={props.theme}>\r\n <PreferenceContext.Provider value={props.preferenceService}>\r\n <I18nContext.Provider value={props.i18nModel}>\r\n <InstrumentationContext.Provider value={props.instrumentation}>\r\n <GlobalErrorBoundary {...props.globalErrorOptions}>\r\n {props.children}\r\n </GlobalErrorBoundary>\r\n </InstrumentationContext.Provider>\r\n </I18nContext.Provider>\r\n </PreferenceContext.Provider>\r\n </ThemeProvider>\r\n </FluentProvider>\r\n );\r\n}\r\n\r\nApp.propTypes = {\r\n /**\r\n * The application contents.\r\n */\r\n children: PropTypes.node.isRequired,\r\n /**\r\n * Configuration options for the GlobalErrorBoundary.\r\n */\r\n globalErrorOptions: PropTypes.shape({\r\n /**\r\n * Function for logging the error that occurred.\r\n * @param {Object} obj - Object based on the arguments provided to React componentDidCatch\r\n * @param {Object} obj.error - Error object from React, which includes an error stack trace.\r\n * @param {Object} obj.info - Info object from React, which includes a componentStack trace.\r\n */\r\n logError: PropTypes.func,\r\n /**\r\n * Function for generating an error page view.\r\n * @param {Object} obj - Object based on the arguments provided to React componentDidCatch\r\n * @param {Object} obj.error - Error object from React, which includes an error stack trace.\r\n * @param {Object} obj.info - Info object from React, which includes a componentStack trace.\r\n * @returns - React node for the error view.\r\n */\r\n renderErrorView: PropTypes.func,\r\n }).isRequired,\r\n /**\r\n * i18n model for initializing the application localization.\r\n */\r\n i18nModel: PropTypes.shape().isRequired,\r\n /**\r\n * Instrumentation object used to initialize the InstrumentContext.\r\n */\r\n instrumentation: PropTypes.shape().isRequired,\r\n /**\r\n * JSS theme for the application.\r\n */\r\n theme: PropTypes.oneOfType([\r\n PropTypes.shape(),\r\n PropTypes.func,\r\n ]).isRequired,\r\n // preferenceService to get user preference, expect to be a Promise\r\n preferenceService: PropTypes.shape().isRequired,\r\n};\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__18__;","module.exports = __WEBPACK_EXTERNAL_MODULE__20__;"],"names":["installedModules","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__WEBPACK_EXTERNAL_MODULE__114__","__WEBPACK_EXTERNAL_MODULE__17__","__WEBPACK_EXTERNAL_MODULE__19__","__WEBPACK_EXTERNAL_MODULE__3__","__WEBPACK_EXTERNAL_MODULE__430__","MultiStepTeachingBubbleContext","createContext","MultiStepTeachingBubbleContextProviderBase","memo","props","i18n","useContext","I18nContext","scope","ScopeContext","preferenceService","PreferenceContext","read","readPreference","update","setPreference","usePreference","preferenceName","PREFERENCE_KEY","preferenceDefaultValue","featureName","step","isUserLevel","initState","defaultInitialState","configs","state","dispatch","useReducer","reducer","preference","current","waitList","history","lock","releaseLock","useLock","keyVault","teachingBubble","priority","priorityLevel","isReady","useEffect","stepPreference","type","ACTIONS","SET_PREFERENCE","propsFromState","useMemo","getTeachingBubblePropsFromState","siteMap","serverContext","logger","shouldRerender","status","elementStatus","reset","resetElementDetection","useElementDetection","targetElement","isElementDeleted","resetIsElementDeleted","useElementDeletionDetection","isElementFound","ELEMENT_STATUS","FOUND","shouldShowFromGovernance","useShouldShow","userGovernanceConfig","dismissCurrent","useCallback","DISMISS","NOT_FOUND","length","logWaitList","map","item","show","logAction","action","currentStep","totalSteps","steps","hasShown","DISPLAY","Provider","children","TeachingBubbleWithoutLock","MultiStepTeachingBubbleContextProvider","withSiteMap","__WEBPACK_EXTERNAL_MODULE__888__","__WEBPACK_EXTERNAL_MODULE__889__","__WEBPACK_EXTERNAL_MODULE__890__","ADD","includes","config","newHistory","NEXT_STEP","slice","indexInWaitList","findIndex","indexInConfigs","newCurrentStep","logProps","message","url","window","location","href","trace","JSON","stringify","states","footerText","hideAnnotation","getString","index","total","undefined","isLastStep","onDismiss","isContentString","content","secondaryButtonText","title","primaryButtonText","isSecondaryButtonHidden","onDone","onNext","onClose","directionalHint","skipOnDoneGovernance","doNotLayer","elementSelector","setStatus","useState","isEmpty","LOADING","startTime","Date","now","intervalId","setInterval","element","document","querySelector","offsetParent","clearInterval","defaultTimeout","interval","setIsElementDeleted","parentElements","nodes","el","push","parentNode","unshift","getAllParents","observer","MutationObserver","mutations","forEach","mutation","intersection","removedNodes","observe","subtree","childList","disconnect","triggerBubbleProps","find","cfg","defaultUserGovernanceConfig","getTeachingBubbleUserGovernanceConfig","__WEBPACK_EXTERNAL_MODULE__9__","__WEBPACK_EXTERNAL_MODULE__10__","__WEBPACK_EXTERNAL_MODULE__11__","__WEBPACK_EXTERNAL_MODULE__36__","__WEBPACK_EXTERNAL_MODULE__417__","__WEBPACK_EXTERNAL_MODULE__42__","__WEBPACK_EXTERNAL_MODULE__5__","__WEBPACK_EXTERNAL_MODULE__561__","TeachingBubbleInner","isOneStepTeachingBubble","classes","activity","isLightDismissSupported","className","logTrace","useLogger","forceUpdate","setValue","useForceUpdate","labelId","useId","descriptionId","onDoneButtonClick","onDismissButtonClick","onCloseButtonClick","onCalloutDismiss","event","keyCode","preventDismissOnEvent","footerContent","Fragment","DefaultButton","text","onClick","PrimaryButton","Callout","ariaLabelledBy","ariaDescribedBy","role","styles","callout","target","Text","block","variant","id","Stack","horizontal","verticalAlign","footer","Item","defaultBtn","primaryBtn","IconButton","iconProps","iconName","ariaLabel","_TL_","style","position","top","right","closeBtn","teachingBubbleContent","TeachingBubbleContent","headline","hasCloseButton","closeButtonAriaLabel","propTypes","PropTypes","bool","shape","string","isRequired","func","error","number","defaultProps","_","noop","DirectionalHint","bottomLeftEdge","StyledTeachingBubbleInnerWithoutLock","compose","withActivityContext","withUserGovernance","WrappedComponent","withDefaultStyles","getStyles","StyledTeachingBubbleInner","withLock","lockKey","autoClose","Scenario","Activity","expirationDate","UnstyledTeachingBubble","onTeachingBubbleOpen","rightOffset","positioningContainerProps","offsetFromTarget","onAnimationOpenEnd","Coachmark","root","persistentBeak","preventFocusOnMount","delayBeforeCoachmarkAnimation","delayBeforeMouseOpen","StyledTeachingBubble","ComponentWithUserGovernance","featurePreferenceService","useFeaturePreferenceService","featurePreference","useFeaturePreference","governancedOnDone","nextState","stateMachine","cooldownDays","nextShownDate","getDaysAfter","governancedOnDismiss","skipOnDismissGovernance","governancedOnClose","result","withI18nConsumer","withPreference","PreferenceState","INIT","STOP_SHOWN","FIRST_DISMISS","SUBMIT","SECOND_DISMISS","THIRD_DISMISS","Infinity","PreferenceService","preferenceKey","getPreference","teachingBubbleUserGovernanceConfig","cloneDeep","constructor","this","Error","getUserLevelPreference","Name","Data","Type","Version","setAtUserLevel","findByNameAtUserLevel","chain","days","date","setTime","getTime","initializePreference","lineHeight","fontWeight","backgroundColor","justifyContent","border","marginLeft","marginRight","marginBottom","criticalInfo","paddingLeft","dialogFooter","display","mergeStyleSets","maxWidth","padding","color","overflowWrap","fontSize","outline","flexWrap","whiteSpace","overflow","textOverflow","paddingBottom","borderRadius","background","outlineColor","logError","getLogger","logPrefix","CriticalInfoRaw","subTitle","isDialogOpen","setIsDialogOpen","onPrimaryButtonClick","onDialogDismiss","Dialog","hidden","dialogContentProps","showCloseButton","minWidth","minHeight","modalProps","isBlocking","dragOptions","DialogFooter","CriticalInfoWithHOC","SystemAnnouncementRaw","SystemAnnouncementWithHOC","systemLevelAnnouncement","extend","useStyles","makeStyles","expandButton","height","SecondaryNavigationCollapsedKey","SecondaryNavigationExpandButtonBase","buttonRef","useRef","activityContext","ActivityContext","LayoutContext","layoutConfig","changeLayout","change","previousLayoutConfig","usePrevious","preferences","navItems","getItems","menu","Mode","Expanded","Collapsed","focus","Button","ref","appearance","icon","PanelRightContract20Regular","mergeClasses","signal","__WEBPACK_EXTERNAL_MODULE__1122__","__WEBPACK_EXTERNAL_MODULE__15__","__WEBPACK_EXTERNAL_MODULE__594__","__WEBPACK_EXTERNAL_MODULE__644__","__WEBPACK_EXTERNAL_MODULE__645__","__WEBPACK_EXTERNAL_MODULE__1012__","SecondaryNavigationBase","userContext","count","hotKey","appPerfMarker","perfMarker","marker","createChild","willInit","getPerMarker","collapseButtonRef","layoutSize","setLayoutSize","React","useLayoutResizeObserver","previousCount","largeSize","LayoutSizeScale","XL","getModeByLayoutSize","collapseMenu","navigationRouter","navigate","Hidden","ShortcutTypeKeyMapping","ShortcutType","ShowHideSecondaryNavigation","done","container","vertical","PanelLeftContract20Regular","closeButton","SideNavigation","SecondaryNavigationConfig","showTag","tag","isPrimary","StyledMenuItemTag","tagContent","items","tab","siteMapPropType","perfMarkerPropTypes","CurrentAccount","withHotKeys","withUserConsumer","withScope","overrideAccessoryItem","getPriority","tabId","isAccordion","secondaryNavItems","secondaryItem","getMandatoryFilter","getAccessoryItem","getSelectedNavigationItemId","selectedItem","first","isSelected","filter","primaryNavigationItem","tokens","colorNeutralBackground2","width","shorthands","borderRight","colorNeutralStroke2","alignContent","alignItems","justifyItems","flexGrow","flexShrink","textAlign","wordBreak","WebkitLineClamp","WebkitBoxOrient","alignSelf","marginTop","zIndex","mapSecondaryNavigationItem","siteMapItem","isPrimaryItem","selected","subMenuItems","child","searchable","route","getSubMenuItems","menuItems","mapSecondaryNavigationItems","siteMapItems","mapSecondaryNavigationGroupItems","navigationGroups","navigationItemConfig","groups","groupName","groupIndex","overwrittenName","filteredGroups","group","findSiteMap","campaignDataViewPref","hideAccordion","isCollapsed","groupingConfig","advertise","CampaignNavigationGroups","CampaignNavigationItemConfig","HotelCenterNavigationGroups","HotelCenterNavigationItemConfig","PropertyCenterNavigationGroups","PropertyCenterNavigationItemConfig","selectedSiteMap","rawChildren","externalLink","groupConfig","NavigationConfigKeys","Overview","Recommendations","QueryInsights","Campaigns","AppAdsAssetGroups","AssetGroups","AdGroups","ProductGroups","PropertyGroups","ListingGroups","Experiments","Products","Properties","Hotels","FeedItems","HotelGroups","Ads","AssetsReport","DSA","LandingPages","Competition","Settings","ChangeHistory","Targeting","Keywords","Audiences","Demographics","Locations","AdSchedule","Devices","Assets","HotelCenterOverview","HotelCenterAssignment","HotelCenterIntelligence","HotelCenterFeeds","HotelCenterReports","HotelCenterAdExtensions","HotelCenterReconciliation","PropertyCenterOverview","PropertyCenterLogos","PropertyCenterFeeds","PropertyCenterProperties","PropertyCenterLanding","PropertyCenterPricing","PropertyCenterReports","PropertyCenterSOVReport","PropertyCenterBookingReport","PropertyCenterReconReport","pathName","pathname","search","getSiteMapItemRoute","__WEBPACK_EXTERNAL_MODULE__354__","__WEBPACK_EXTERNAL_MODULE__601__","__WEBPACK_EXTERNAL_MODULE__606__","__WEBPACK_EXTERNAL_MODULE__607__","__WEBPACK_EXTERNAL_MODULE__907__","needUpdate","setNeedUpdate","getPreferenceValue","pref","findByNameAtAccountLevel","getPreferenceGet","isFunction","isUndefined","preferenceValue","setPreferenceValue","newValue","set","getPreferenceSet","setAtAccountLevel","ExpertSignupWizard","ExpertCampaignCreationWizards","options","previousHeight","getHeightIncludeAbsolutePositionedElements","token","body","contains","currentHeight","triggerContainerResizing","trigger","absolutePositionedElementSelectors","heights","offsetHeight","selector","childElement","childTop","getBoundingClientRect","childHeight","max","__WEBPACK_EXTERNAL_MODULE__67__","FocusZone","stopFocusPropagation","preventDefaultWhenHandled","TreeView","__WEBPACK_EXTERNAL_MODULE__4__","alertCssClasses","Warning","Confirmation","Info","defaultIcon","actionArray","Alert","Component","onActionClicked","innerText","callback","nodeName","componentDidMount","addActionListeners","componentDidUpdate","componentWillUnmount","removeActionListeners","isString","Array","alertMessageElement","querySelectorAll","anchor","addEventListener","actionClickedHandler","removeEventListener","render","level","hasIcon","customCssClass","dismissible","cssClass","iconSpan","dismissButton","tabIndex","actionButton","actionButtonClickedHandler","messageContent","dangerouslySetInnerHTML","__html","oneOf","oneOfType","__WEBPACK_EXTERNAL_MODULE__16__","AppContentContainerBase","stylesProperties","Grid","fluid","Row","flexContainer","rowContainer","Col","hasStickyBottom","stickyBottom","hasStickyFooter","stickyFooter","AppContentContainerStyled","AppContentContainer","stylesConfigProps","getStylesProperties","stickyBottomContainerCssSelector","stickyFooterContainerCssSelector","leftPositionStickyElements","bottomPositionStickyElement","totalHeightStickyElements","node","stickyBottomContainerHeight","stickyFooterContainerHeight","layoutComponents","__WEBPACK_EXTERNAL_MODULE__24__","flex","flexDirection","paddingRight","isStickyItemsFixed","left","bottom","margin","getLayoutLeftWidth","layoutConfigWithLeftWidth","pick","elementNames","keys","reduce","elementName","isGridLayout","footerHeightStickyElement","AppContentFooter","links","texts","copyright","help","feedbackProps","isOpen","setOpen","openFeedbackPanel","closeFeedbackPanel","isTestEnv","email","pageId","sessionId","feedbackLogger","appId","appData","FeedbackPanelComponent","lazy","then","FeedbackPanel","default","dismissPanel","instrumentationService","footerList","footerItem","footerLinkContainer","link","Link","hasFeedbackPanel","Suspense","fallback","arrayOf","log","__WEBPACK_EXTERNAL_MODULE__30__","__WEBPACK_EXTERNAL_MODULE__31__","palette","neutralLighter","listStyle","UnthemedGlobalErrorView","PureComponent","description","errorPage","errorPageContent","errorPageIcon","errorPageTxtContent","errorPageTxtTitle","txt","errorPageTxtDesc","GlobalErrorView","getStyle","white","transform","backgroundImage","iconBase64","backgroundSize","neutralPrimary","errorPageTxtRefresh","cursor","neutralSecondary","textDecoration","LayoutContainer","super","updates","isPageConfig","isPageConfigPartialUpdate","afterChangeLayout","lockLayout","has","names","isLayoutLocked","setState","pageConfig","merge","persistConfig","isEqual","ownUpdate","updatePage","stylesContainer","StylesContainer","controlledByProps","getDerivedStateFromProps","nextProps","prevState","prevProps","objectOf","values","layoutConfigs","StyledLayoutContainer","dynamicComponents","topBanner","promotionBanner","copilot","staticComponents","header","panelContainer","nav","scopePanel","subTab","overlay","base","immersive","defaults","fullScreen","mainContentWithTab","mainContentWithStatus","fullScreenWithNavRefresh","withoutDate","showDatePicker","withDisabledDate","showDisabledDatePicker","withHistoryButton","showHistoryButton","dateWithoutCompare","disableCompare","fullScreenWithSummaryBar","fullScreenWithSummaryBarWithNavRefresh","fullScreenWithSummaryBarAndTab","withoutNav","accountSummary","accountSummaryWithoutDate","withMenuOnly","withoutMenu","withSingleTab","singleTabMode","withCollapsedMenuOnly","withCollapsedMenuAndNav","withTabAndSubTab","signupScreen","calcQueue","getSelection","mapObject","advancedOptions","components","each","advancedOptionValue","advancedOptionName","advancedProcessor","jss","createStyleSheet","attach","startPos","component","ZIndexShellComponents","Constants","showCopilot","overrideValue","shared","expanded","surveyHeight","Header","collapsed","Panel","TopBanner","PromotionBanner","Nav","Status","Menu","hotelCenterMenu","optimizationScore","Tab","showExperimentScoreCard","SubTab","Content","__WEBPACK_EXTERNAL_MODULE__48__","gridTemplateColumns","gridTemplateRows","gridColumn","gridRow","Layout","itemName","componentProps","elementType","Consumer","layout","LayoutHoC","toLayout","LayoutHoCBase","getTargetLayout","shouldComponentUpdate","withLayoutContext","withLayout","withLayoutNavRefresh","withMenuOnlyLayout","partial","withoutMenuLayout","withSingleTabLayout","withSummaryBarAndTabNoDateLayout","withSummaryBarAndTabAndSubTabLayout","withFullScreenWithSummaryBar","withFullScreenWithSummaryBarAndTabLayout","OverlayComponent","contentProps","customLightTheme","webLightTheme","lineHeightBase300","App","FluentProvider","theme","ThemeProvider","i18nModel","InstrumentationContext","instrumentation","GlobalErrorBoundary","globalErrorOptions","renderErrorView","__WEBPACK_EXTERNAL_MODULE__18__","__WEBPACK_EXTERNAL_MODULE__20__"],"sourceRoot":""}