{"version":3,"file":"static/js/19b7a4544c998f7cf8e5.bundle.js","mappings":"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","sources":["webpack://goodwill-loyalty/./src/themes/goodwill-loyalty/views/header.view.tsx?f9f5","webpack://goodwill-loyalty/./lib/header/module-registration.js?4d67","webpack://goodwill-loyalty/./src/store-selector-state-manager/base-store-selector-state-manager.ts?281e","webpack://goodwill-loyalty/./src/store-selector-state-manager/map-store-selector-state-manager.ts?2ae0","webpack://goodwill-loyalty/./src/store-selector-state-manager/store-selector-state-manager-data-action.ts?bd3e","webpack://goodwill-loyalty/./src/modules/fabrikam/views/header.view.tsx?6d84","webpack://goodwill-loyalty/./src/modules/header/components/header-preferred-store.tsx?ee9c","webpack://goodwill-loyalty/./src/modules/header/components/logo.tsx?f27e","webpack://goodwill-loyalty/./src/modules/header/components/nav-icon.tsx?2475","webpack://goodwill-loyalty/./src/modules/header/header.tsx?e91a","webpack://goodwill-loyalty/./src/modules/header/header.view.tsx?cf0f","webpack://goodwill-loyalty/external var \"React\"?0d3b","webpack://goodwill-loyalty/external var \"ReactDOM\"?853b"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/src/modules/header/./header';\r\n\r\n//----------------------------------------------------------\r\n// @CUSTOM: Added imports for additional config from\r\n// extended definition\r\n//----------------------------------------------------------\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\nimport { Button } from '@msdyn365-commerce-modules/utilities';\r\n//----------------------------------------------------------\r\n\r\nconst headerView: React.FC> = props => { // @CUSTOM: Added extended definition props\r\n const {\r\n slots, // @CUSTOM: Get slots from extended definition\r\n HeaderTag,\r\n HeaderContainer,\r\n HeaderTopBarContainer,\r\n MobileMenuContainer,\r\n MobileMenuBodyContainer,\r\n MobileMenuLinksContainer,\r\n // @CUSTOM: Removed 'Divider' as it is not used here\r\n } = props;\r\n\r\n return (\r\n \r\n {/* @CUSTOM: TSX below has been reorganized for the theme, with some unnecessary elements removed */}\r\n \r\n \r\n {props.navIcon}\r\n \r\n \r\n \r\n {props.MobileMenuHeader}\r\n {_renderReactFragment(props.menuBar)}\r\n {_renderReactFragment(slots.secondaryMenuBar)}\r\n \r\n {/* @CUSTOM: Always provide sign out link if there is a sign in error */}\r\n {props.context.request.user.retailServerErrorCode ? (\r\n \r\n \r\n {props.resources.signOutLinkText}\r\n \r\n \r\n ) : (\r\n <>\r\n {props.signInLink}\r\n {props.signOutLink}\r\n \r\n )}\r\n \r\n \r\n \r\n {_renderReactFragment(props.menuBar)}\r\n {_renderReactFragment(slots.secondaryMenuBar)}\r\n {/* @CUSTOM: Always provide sign out link if there is a sign in error */}\r\n {props.context.request.user.retailServerErrorCode ? (\r\n \r\n \r\n {props.resources.signOutLinkText}\r\n \r\n \r\n ) : (\r\n <>\r\n {props.signInLink}\r\n {props.signOutLink}\r\n \r\n )}\r\n \r\n {/*-------------------------------------------------------*/}\r\n \r\n );\r\n};\r\n\r\n// @CUSTOM: Removed _renderDesktopAccountBlock as it is not needed for this header\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n <>\r\n {items && items.length > 0\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['header'] = {\n c: () => require('@msdyn365-commerce-modules/header/dist/lib/modules/header/header'),\n $type: 'containerModule',\n da: [{name:'accountInformation', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer', runOn: 0},{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/get-cart-state-data-action', runOn: 1},{name:'storeSelectorStateManager', path:'@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action', runOn: 1},{name:'wishlists', path:'@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id', runOn: 0}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'header',\n p: 'header',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/header/dist/lib/modules/header'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action';\n let dataAction = require('@msdyn365-commerce-modules/bopis-utilities/dist/lib/store-selector-state-manager/store-selector-state-manager-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-customer');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id';\n let dataAction = require('@msdyn365-commerce-modules/retail-actions/dist/lib/get-wishlist-by-customer-id');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/get-cart-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/get-cart-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|themes|goodwill-loyalty|views|header'] = {\n c: () => require('partner/themes/goodwill-loyalty/views/header.view.tsx'),\n cn: '__local__-__local__-header'\n };\nviewDictionary['@msdyn365-commerce-modules|fabrikam-design-kit|modules|fabrikam|views|header'] = {\n c: () => require('@msdyn365-commerce-modules/fabrikam-design-kit/dist/lib/modules/fabrikam/views/header.view.js'),\n cn: '@msdyn365-commerce-modules-fabrikam-design-kit-header'\n };\nviewDictionary['@msdyn365-commerce-modules|header|modules|header|header'] = {\n c: () => require('@msdyn365-commerce-modules/header/dist/lib/modules/header/header.view.js'),\n cn: '@msdyn365-commerce-modules-header-header'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IActionContext } from '@msdyn365-commerce/core';\nimport { action, computed, observable } from 'mobx';\n\nimport {\n IListMapViewState,\n ILoadMapApiInput,\n IStoreInfo,\n IStoreSelectionStateContext,\n IStoreSelectorLocation,\n IStoreSelectorStateManager\n} from './i-store-selection-state-manager';\n\n/**\n * Abstract instance of IStoreSelectorStateManager with base implementation\n * of everything except the geoLocate function.\n */\nexport abstract class BaseStoreSelectorStateManager implements IStoreSelectorStateManager {\n @computed public get isDialogOpen(): Readonly {\n return this._context !== undefined;\n }\n\n @computed public get context(): Readonly {\n return this._context;\n }\n\n @observable public isMapApiLoaded?: boolean;\n\n @observable public selectedStoreLocationId?: string;\n\n @observable public preferredStore?: IStoreInfo;\n\n @observable public listMapViewState: IListMapViewState = { displayList: true, displayMap: false };\n\n @observable public isMapModuleLoaded?: boolean;\n\n @observable public lastInlineShownStoreInfo?: IStoreInfo;\n\n @observable protected _context?: IStoreSelectionStateContext;\n\n private readonly preferredStoreLocalStorageKey: string = '_msdyn365__preferredStore_';\n\n constructor() {\n this.isMapModuleLoaded = false;\n const value = this._readFromToCookie(this.preferredStoreLocalStorageKey);\n try {\n const storeInfo: IStoreInfo | undefined = value ? JSON.parse(value) : undefined;\n if (storeInfo) {\n this.preferredStore = storeInfo;\n }\n } catch {\n this.preferredStore = undefined;\n }\n }\n\n public abstract geoLocate(searchTerm: string, actionContext: IActionContext): Promise;\n\n public abstract loadMapApi(input: ILoadMapApiInput): Promise;\n\n @action\n public async toggleListMapViewState(): Promise {\n this.listMapViewState = {\n displayList: !this.listMapViewState.displayList,\n displayMap: !this.listMapViewState.displayMap\n };\n }\n\n @action\n public async setMapModuleLoaded(input: boolean): Promise {\n this.isMapModuleLoaded = input;\n }\n\n @action\n public async setOrgUnitStoreInformation(input: IStoreSelectionStateContext): Promise {\n this._context = input;\n }\n\n @action\n public async setSelectedStoreLocationId(storeId: string | undefined): Promise {\n this.selectedStoreLocationId = storeId;\n }\n\n @action\n public async setPreferredStoreLocation(\n storeId?: string,\n storeName?: string | undefined,\n writeToCookie: boolean = false,\n latitude?: number,\n longitude?: number\n ): Promise {\n const storeInfo: IStoreInfo = { StoreId: storeId, StoreName: storeName, Latitude: latitude, Longitude: longitude };\n this.preferredStore = storeInfo;\n if (writeToCookie) {\n this._writeToCookie(this.preferredStoreLocalStorageKey, JSON.stringify(storeInfo));\n }\n }\n\n @action\n public async setLastInlineStoreInfo(latitude?: number, longitude?: number): Promise {\n const storeInfo: IStoreInfo = { StoreId: '', StoreName: '', Latitude: latitude, Longitude: longitude };\n this.lastInlineShownStoreInfo = storeInfo;\n }\n\n @action\n public async clearPreferredStore(writeToCookie: boolean): Promise {\n this.preferredStore = undefined;\n if (writeToCookie) {\n this._removeCookie(this.preferredStoreLocalStorageKey);\n }\n }\n\n @action\n public async openDialog(input: IStoreSelectionStateContext): Promise {\n if (this._context && this._context.id === input.id) {\n throw new Error('Dialog is already opened');\n }\n\n this._context = input;\n }\n\n @action\n public async closeDialog(): Promise {\n this._context = undefined;\n }\n\n private _removeCookie(key: string): void {\n if (!key) {\n return;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n storage.removeItem(key);\n }\n }\n\n private _writeToCookie(key: string, value: string | undefined): void {\n if (!key || !value) {\n return;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n storage.setItem(key, value);\n }\n }\n\n private _readFromToCookie(key: string): string | undefined {\n if (!key) {\n return undefined;\n }\n if (MsDyn365.isBrowser) {\n const storage = window.localStorage;\n const cookieValue = storage.getItem(key);\n if (cookieValue) {\n return cookieValue;\n }\n }\n\n return undefined;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { action } from 'mobx';\n\nimport { BaseStoreSelectorStateManager } from './base-store-selector-state-manager';\nimport { ILoadMapApiInput, IStoreSelectorLocation } from './i-store-selection-state-manager';\nimport { IMapWindow, MapLocationsResult } from './models/map-data';\n\ndeclare const window: IMapWindow;\n\n/**\n * Instance of IStoreSelectorStateManager manager that uses Map service\n * for geo location.\n */\nexport class MapStoreSelectorStateManager extends BaseStoreSelectorStateManager {\n private readonly SERVICE_ENDPOINT: string = 'https://dev.virtualearth.net/REST/v1/';\n\n private readonly MAP_API_ENDPOINT: string = 'https://www.bing.com/api/maps/mapcontrol?callback=mapAPIReady';\n\n @action\n public async geoLocate(searchTerm: string, actionContext: IActionContext): Promise {\n if (\n !searchTerm ||\n !actionContext.requestContext.channel ||\n !actionContext.requestContext.channel.BingMapsApiKey ||\n !actionContext.requestContext.channel.BingMapsEnabled\n ) {\n return undefined;\n }\n\n let searchContent: string = searchTerm;\n\n const jsonp = `mapSearchCallback_${crypto.getRandomValues(new Uint32Array(1))[0]}`;\n\n if (actionContext.requestContext.channel.ChannelCountryRegionISOCode) {\n searchContent = `${searchTerm.trim()} ${actionContext.requestContext.channel.ChannelCountryRegionISOCode}`;\n }\n\n const query = encodeURI(searchContent);\n const key = encodeURI(actionContext.requestContext.channel.BingMapsApiKey);\n\n const geolocationApiUrl =\n actionContext.requestContext.app &&\n actionContext.requestContext.app.config &&\n actionContext.requestContext.app.config.geolocationApiUrl;\n const requestUrl = `${\n geolocationApiUrl ? geolocationApiUrl : this.SERVICE_ENDPOINT\n }/Locations?query=${query}&key=${key}&jsonp=${jsonp}`;\n\n return new Promise(resolve => {\n const script = document.createElement('script');\n script.setAttribute('type', 'text/javascript');\n script.setAttribute('src', requestUrl);\n\n window[jsonp] = (data: MapLocationsResult) => {\n delete window[jsonp];\n script.remove();\n\n if (data && data.resourceSets && data.resourceSets.length > 0 && data.resourceSets[0].resources.length > 0) {\n resolve({\n latitude: data.resourceSets[0].resources[0].point.coordinates[0],\n longitude: data.resourceSets[0].resources[0].point.coordinates[1]\n });\n }\n\n resolve(undefined);\n };\n\n document.body.appendChild(script);\n });\n }\n\n @action\n public async loadMapApi(input: ILoadMapApiInput): Promise {\n if (StringExtensions.isNullOrEmpty(input.key)) {\n return Promise.resolve();\n }\n\n const isScriptAlreadyLoaded = !!document?.getElementById('msdyn_map-api-script');\n\n if (isScriptAlreadyLoaded) {\n // Prevents from loading multiple script into the body\n return Promise.resolve();\n }\n\n const url = `${this.MAP_API_ENDPOINT}${input.key ? `&key=${input.key}` : ''}${input.lang ? `&setLang=${input.lang}` : ''}${\n input.market ? `&setMkt=${input.market}` : ''\n }`;\n\n return new Promise((resolve, reject) => {\n const script = document?.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.src = url;\n script.id = 'msdyn_map-api-script';\n if (window) {\n window.mapAPIReady = () => {\n this.isMapApiLoaded = true;\n resolve();\n };\n }\n script.addEventListener('error', (error: string | Event) => {\n reject(error);\n });\n document?.body?.appendChild(script);\n });\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { createObservableDataAction, IAction, IActionInput, IAny, ICreateActionContext, IGeneric } from '@msdyn365-commerce/core';\nimport { GenericInput, getGenericAction } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IStoreSelectorStateManager } from './i-store-selection-state-manager';\nimport { MapStoreSelectorStateManager } from './map-store-selector-state-manager';\n\nexport function createStoreSelectorStateInput(result: IStoreSelectorStateManager): GenericInput {\n return new GenericInput('mapSSSM', result, 'IStoreSelectorStateManager');\n}\n\nconst createStoreSelectorStateInputInternal = (inputData: ICreateActionContext>): IActionInput => {\n return createStoreSelectorStateInput(new MapStoreSelectorStateManager());\n};\n\nexport const getGenericActionDataAction = createObservableDataAction({\n action: >getGenericAction,\n input: createStoreSelectorStateInputInternal\n});\n\nexport default getGenericActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nconst headerView: React.FC = props => {\n const { HeaderTag, HeaderContainer, HeaderTopBarContainer, Divider } = props;\n return (\n \n \n \n {props.navIcon}\n {props.logo}\n {_renderReactFragment(props.search)}\n {props.preferredStore}\n {_renderAccountBlock(props, false)}\n {props.wishListIconDesktop}\n \n {props.cartIcon}\n {_renderReactFragment(props.siteOptions)}\n \n {_renderCollapseMenu(props)}\n {_renderReactFragment(props.menuBar)}\n \n \n );\n};\n\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\n const { Divider, MobileMenuLinksContainer, mobileMenuCollapsed } = props;\n return (\n \n \n {_renderReactFragment(props.search)}\n {_renderMobileAccountBlock(props, true)}\n {props.wishListIconMobile}\n {props.siteOptions}\n \n \n {_renderReactFragment(props.menuBar)}\n \n );\n}\n\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\n const customer = accountInformation && accountInformation.result;\n return <>{customer ? customer.FirstName || customer.Name : ''};\n};\n\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const { AccountInfoDropdownParentContainer, signOutLink, signInLink, data, accountLinks } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n 'ms-header__drawer',\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n\n if (accountLinks) {\n return (\n \n
\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n
\n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n return null;\n}\n\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n AccountInfoDropdownPopoverConentContainer,\n accountInfoDropdownButton,\n signOutLink,\n signInLink,\n accountLinks\n } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n if (AccountInfoDropdownPopoverConentContainer) {\n return (\n \n {accountInfoDropdownButton}\n \n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n\n return null;\n}\n\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\n return (\n <>\n {items && items.length > 0\n ? items.map((slot: React.ReactNode, index: number) => {\n return {slot};\n })\n : null}\n \n );\n}\n\nexport default headerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IHeaderData } from '../header.data';\nimport { IHeaderProps } from '../header.props.autogenerated';\n\n/**\n * The header preferred store component.\n */\n@observer\nexport class HeaderPreferredStore extends React.PureComponent> {\n private readonly modalCloseButtonRef: React.RefObject = React.createRef();\n\n /**\n * Handle click on the store selector.\n * @returns : Promise void.\n */\n public handleClick = () => {\n return this._findPreferredStoreOnClick(this.props);\n };\n\n public render(): JSX.Element | undefined {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n },\n slots,\n resources\n } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- slots can be undefined.\n if (ArrayExtensions.hasElements(slots?.storeSelector)) {\n const storeName =\n storeSelectorStateManager?.preferredStore && storeSelectorStateManager.preferredStore.StoreName\n ? storeSelectorStateManager.preferredStore.StoreName\n : resources.headerPreferredStoreText;\n\n return (\n
\n \n {storeName}\n \n {slots.storeSelector}\n
\n );\n }\n\n return undefined;\n }\n\n private async _findPreferredStoreOnClick(props: IHeaderProps): Promise {\n const {\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n },\n modules\n } = props;\n if (!storeSelectorStateManager) {\n return;\n }\n let storeSelectorId: string = '';\n if (modules && Object.keys(modules).length > 0 && ArrayExtensions.hasElements(modules.storeSelector)) {\n storeSelectorId = modules.storeSelector[0].id;\n }\n await storeSelectorStateManager\n .openDialog({\n id: storeSelectorId,\n showMapViewLink: true,\n parentElementRef: this.modalCloseButtonRef,\n onLocationSelected: orgUnitLocation => {\n return Promise.resolve();\n }\n })\n .catch((error: Error) => {\n if (props.telemetry) {\n props.telemetry.error(error.message);\n props.telemetry.debug('Unable to set preferred store');\n }\n });\n }\n}\n\nexport default HeaderPreferredStore;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILogoProps {\n image: Msdyn365.IImageData;\n gridSettings?: Msdyn365.IGridSettings;\n link?: ILinkData;\n className?: string;\n telemetryContent?: ITelemetryContent;\n requestContext: Msdyn365.IRequestContext;\n typeName?: string;\n}\n\nexport interface ILinkData {\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n linkText?: string;\n}\n\n/**\n *\n * Logo component.\n * @extends {React.PureComponent}\n */\nexport class Logo extends React.PureComponent {\n private readonly attributes?: Msdyn365.IDictionary;\n\n constructor(props: ILogoProps) {\n super(props);\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.Logo);\n this.attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n }\n\n public render(): JSX.Element {\n return
{this._renderLogo(this.props)}
;\n }\n\n private _renderLogo(config: ILogoProps): JSX.Element {\n if (config.link && config.link.linkUrl.destinationUrl) {\n return (\n \n {this._renderImage(config)}\n \n );\n }\n return this._renderImage(config);\n }\n\n private _renderImage(config: ILogoProps): JSX.Element {\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=132&h=28&m=6', w: 0, h: 0 },\n lg: { q: 'w=160&h=48&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n return (\n \n );\n }\n}\n\nexport default Logo;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IHeaderResources } from '../header.props.autogenerated';\n\nexport interface INavIconProps {\n resources: IHeaderResources;\n isExpanded: boolean;\n targetId: string;\n telemetryContent?: ITelemetryContent;\n toggleNavBar(): void;\n}\n\n/**\n *\n * NavIcon component.\n * @extends {React.PureComponent}\n */\n\n@observer\nexport class NavIcon extends React.PureComponent {\n private readonly attributes?: Msdyn365.IDictionary;\n\n constructor(props: INavIconProps) {\n super(props);\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.NavIcon);\n this.attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n }\n\n public render(): JSX.Element {\n return (\n \n );\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CartIconComponent, WishListIconComponent } from '@msdyn365-commerce/components';\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { ErrorNotification, NotificationsManager } from '@msdyn365-commerce-modules/notifications-core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n ITelemetryContent,\n KeyCodes,\n Modal,\n ModalBody,\n ModalHeader,\n onTelemetryClick,\n Popover,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { HeaderPreferredStore, Logo, NavIcon } from './components';\nimport { IHeaderData } from './header.data';\nimport { IHeaderProps, IHeaderResources, IMyAccountLinksData } from './header.props.autogenerated';\n\nexport interface IHeaderState {\n mobileMenuCollapsed: boolean;\n signinPopoverOpen: boolean;\n hasSigninerror?: boolean;\n}\n\nexport interface IHeaderViewProps extends IHeaderProps, IHeaderState {\n logo: React.ReactNode;\n wishListIconDesktop: React.ReactNode;\n wishListIconMobile: React.ReactNode;\n cartIcon: React.ReactNode;\n navIcon: React.ReactNode;\n className: string;\n menuBar: React.ReactNode[];\n search: React.ReactNode[];\n siteOptions: React.ReactNode[];\n HeaderTag: IModuleProps;\n HeaderContainer: INodeProps;\n MobileMenuContainer: INodeProps;\n MobileMenuHeader: React.ReactNode;\n MobileMenuBodyContainer: INodeProps;\n MobileMenuLinksContainer: INodeProps;\n HeaderTopBarContainer: INodeProps;\n Divider: INodeProps;\n\n AccountInfoDropdownParentContainer?: INodeProps;\n AccountInfoDropdownPopoverConentContainer?: INodeProps;\n accountInfoDropdownButton?: React.ReactNode;\n\n signOutLink?: React.ReactNode;\n signInLink?: React.ReactNode;\n switchCustomerLink?: React.ReactNode;\n isOBORequest?: boolean;\n accountLinks?: React.ReactNode[];\n preferredStore?: React.ReactNode;\n}\n\n/**\n *\n * Header component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass Header extends React.PureComponent, IHeaderState> {\n private readonly popOverRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private cart: ICartState | undefined;\n\n /**\n * The signed-in user name displayed in the header bar\n */\n @computed public get displayName(): Readonly {\n const user = this.props.context.request.user;\n return user?.isOBORequest ? this.workerName : this.customerName;\n }\n\n /**\n * OBO scenario. The name of worker who shops on behalf of customer.\n */\n @computed public get workerName(): Readonly {\n const user = this.props.context.request.user;\n return user?.firstName || user?.name;\n }\n\n @computed public get customerName(): Readonly {\n const customer = this.props.data.accountInformation?.result;\n return customer ? customer.FirstName || customer.Name : undefined;\n }\n\n public constructor(props: IHeaderProps) {\n super(props);\n this.popOverRef = React.createRef();\n this._toggleNavbar = this._toggleNavbar.bind(this);\n this._togglePopover = this._togglePopover.bind(this);\n this._keydown = this._keydown.bind(this);\n this.state = {\n mobileMenuCollapsed: true,\n signinPopoverOpen: false,\n hasSigninerror: false\n };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n if (MsDyn365.msdyn365Commerce.isBrowser) {\n window.addEventListener('keydown', this._keydown);\n }\n reaction(\n () => this.props.data.cart.result,\n () => {\n this.cart = this.props.data.cart.result;\n }\n );\n\n const {\n context: {\n request: { user }\n },\n resources: { signUpCustomerNotFoundTitle, signUpMultipleCustomerFoundTitle, closeNotificationLabel }\n } = this.props;\n\n const signinNotificationError = this._getSigninNotification(user, signUpMultipleCustomerFoundTitle, signUpCustomerNotFoundTitle);\n if (signinNotificationError !== undefined && this.state.hasSigninerror === false) {\n // For signup show simple error notification.\n NotificationsManager.instance().addNotification(new ErrorNotification(signinNotificationError, closeNotificationLabel));\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.msdyn365Commerce.isBrowser) {\n window.removeEventListener('keydown', this._keydown, false);\n }\n }\n\n public render(): JSX.Element | null {\n const {\n id,\n typeName,\n data: { accountInformation, wishlists },\n context: {\n request: { user }\n },\n context,\n resources: { cartLabel, cartQtyLabel }\n } = this.props;\n const { logoLink, logoImage, shouldShowWishlistCount } = this.props.config;\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access -- app config is generic\n const disableTooltip = this.props.context.app.config.disableTooltip || false;\n const headerToggleClass = this.state.mobileMenuCollapsed ? '' : 'ms-header-open';\n const headerClassName = classnames('ms-header', this.props.config.className, headerToggleClass);\n const navbarKey = 'header-nav-mobile';\n const customer = accountInformation && accountInformation.result;\n const cartIconSlot = this._getSlot('cartIcon');\n const menuBarSlot = this._getSlot('menuBar');\n const searchSlot = this._getSlot('search');\n let wishlistCount = 0;\n const siteOptionsSlot = this._getSlot('siteOptions');\n const preferredStoreSlot = this._getSlot('storeSelector');\n if (wishlists !== undefined) {\n if (\n !wishlists.result ||\n !ArrayExtensions.hasElements(wishlists.result) ||\n !wishlists.result[0].CommerceListLines ||\n !ArrayExtensions.hasElements(wishlists.result[0].CommerceListLines)\n ) {\n wishlistCount = 0;\n } else {\n wishlistCount = wishlists.result[0].CommerceListLines.length;\n }\n }\n const viewProps: IHeaderViewProps = {\n ...(this.props as IHeaderProps),\n ...this.state,\n logo: (\n \n ),\n wishListIconDesktop: (\n \n ),\n wishListIconMobile: (\n \n ),\n cartIcon: ArrayExtensions.hasElements(cartIconSlot) ? (\n cartIconSlot[0]\n ) : (\n \n ),\n navIcon: (\n \n ),\n menuBar: ArrayExtensions.hasElements(menuBarSlot) ? menuBarSlot : [],\n search: ArrayExtensions.hasElements(searchSlot) ? searchSlot : [],\n siteOptions: ArrayExtensions.hasElements(siteOptionsSlot) ? siteOptionsSlot : [],\n className: headerClassName,\n HeaderTag: {\n moduleProps: this.props,\n className: classnames(headerClassName),\n 'aria-label': this.props.resources.headerAriaLabel,\n tag: 'header'\n },\n HeaderContainer: {\n className: classnames('ms-header__container')\n },\n HeaderTopBarContainer: {\n className: classnames('ms-header__topbar')\n },\n Divider: {\n className: classnames('ms-header__divider')\n },\n MobileMenuContainer: {\n tag: Modal,\n id: navbarKey,\n className: 'ms-header__mobile-hamburger',\n isOpen: !this.state.mobileMenuCollapsed,\n wrapClassName: 'ms-header__modal',\n toggle: this._toggleNavbar\n },\n MobileMenuHeader: ,\n MobileMenuBodyContainer: {\n tag: ModalBody,\n className: 'ms-header__mobile-hamburger-menu-body'\n },\n MobileMenuLinksContainer: {\n className: 'ms-header__mobile-hamburger-menu-links'\n },\n AccountInfoDropdownParentContainer: {\n className: 'ms-header__account-info'\n },\n AccountInfoDropdownPopoverConentContainer: this.displayName\n ? {\n tag: Popover,\n id: 'myprofilePopover',\n className: 'ms-header__account-info-content',\n placement: 'bottom',\n isOpen: this.state.signinPopoverOpen,\n target: this.popOverRef,\n toggle: this._togglePopover\n }\n : undefined,\n signInLink: this._getSigninButton(user, this.props.resources),\n signOutLink: this._getSignOutButton(user, this.props.resources),\n isOBORequest: user?.isOBORequest,\n switchCustomerLink: this._getSwitchCustomerButton(user, this.props.resources),\n accountInfoDropdownButton: this._getAccountInfoDropdownButton(user, this.props.resources),\n accountLinks: this._getAccountLinks(customer),\n preferredStore: ArrayExtensions.hasElements(preferredStoreSlot) && \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle link text change.\n * @param linkIndex - Link Index.\n * @returns : Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent): void => {\n if (this.props.config.myAccountLinks?.[linkIndex]) {\n this.props.config.myAccountLinks[linkIndex].linkText = event.target.value;\n }\n };\n\n /**\n * Get the slot.\n * @param slotName - Name of the slot.\n * @returns The slot.\n */\n private _getSlot(slotName: string): React.ReactNode[] | null {\n const { slots } = this.props;\n return (slots && slots[slotName] && slots[slotName].length && slots[slotName]) || null;\n }\n\n /**\n * Renders the sign in button.\n * @param user - Request context user.\n * @param resources - Resources.\n * @returns React Node.\n */\n private _getSigninButton(user: MsDyn365.IRequestContextUser | undefined, resources: IHeaderResources): React.ReactNode | undefined {\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n return (\n !this.displayName && (\n \n \n {resources.signInLinkText}\n \n \n )\n );\n }\n\n /**\n * Renders the sign out button.\n * @param user - Request context user.\n * @param resources - Resources.\n * @returns React Node.\n */\n private _getSignOutButton(user: MsDyn365.IRequestContextUser | undefined, resources: IHeaderResources): React.ReactNode | undefined {\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignOut);\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n return (\n this.displayName && (\n \n \n {resources.signOutLinkText}\n \n \n )\n );\n }\n\n /**\n * Renders the sign out button.\n * @param user - Request context user.\n * @param resources - Resources.\n * @returns React Node.\n */\n private _getSwitchCustomerButton(\n user: MsDyn365.IRequestContextUser | undefined,\n resources: IHeaderResources\n ): React.ReactNode | undefined {\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SwitchCustomer);\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n const isOBOAccountSelected = user?.isOBORequest && this.props.context.request.cookies.getAccountSelectionCookie();\n return (\n this.displayName &&\n isOBOAccountSelected && (\n this.props.context.request.cookies.removeAccountSelectionCookie(),\n additionalProperties: attributes\n }}\n />\n )\n );\n }\n\n private _getSigninNotification(\n user: MsDyn365.IRequestContextUser | undefined,\n signUpMultipleCustomerFoundTitle: string,\n signUpCustomerNotFoundTitle: string\n ): string | undefined {\n const { signUpCustomerNotFound, signUpMultipleCustomerFound } = this.props.config;\n const notFoundError = 'Microsoft_Dynamics_Commerce_Runtime_CustomerNotFound_WhenAutoLinking';\n const multipleAccountError = 'Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountsFoundWithSameEmailAddress';\n\n if (user?.retailServerErrorCode === notFoundError) {\n return signUpCustomerNotFound !== undefined ? signUpCustomerNotFound : signUpCustomerNotFoundTitle;\n } else if (user?.retailServerErrorCode === multipleAccountError) {\n return signUpMultipleCustomerFound !== undefined ? signUpMultipleCustomerFound : signUpMultipleCustomerFoundTitle;\n }\n return undefined;\n }\n\n private _getAccountInfoDropdownButton(\n user: MsDyn365.IRequestContextUser | undefined,\n resources: IHeaderResources\n ): React.ReactNode | undefined {\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.MyProfile);\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n return (\n this.displayName && (\n \n
\n
{this.displayName}
\n {user?.isOBORequest && this.customerName &&
{format(resources.shoppingAsText, this.customerName)}
}\n
\n \n )\n );\n }\n\n private _getAccountLinks(customer: Customer | undefined): React.ReactNode[] | undefined {\n const { myAccountLinks } = this.props.config;\n const payLoad = getPayloadObject('click', this.telemetryContent, '');\n if (!customer || !this.displayName || !myAccountLinks || !ArrayExtensions.hasElements(myAccountLinks)) {\n return undefined;\n }\n return myAccountLinks.map((cta: IMyAccountLinksData, index: number) => {\n payLoad.contentAction.etext = cta.linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n const editableLink: MsDyn365.ILinksData = {\n ariaLabel: cta.ariaLabel,\n className: 'ms-signin-info__account-link-button',\n linkText: cta.linkText,\n linkUrl: cta.linkUrl.destinationUrl,\n openInNewTab: cta.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n\n return (\n \n );\n });\n }\n\n private _toggleNavbar(): void {\n this.setState({\n mobileMenuCollapsed: !this.state.mobileMenuCollapsed\n });\n }\n\n private _togglePopover(): void {\n this.setState({\n signinPopoverOpen: !this.state.signinPopoverOpen\n });\n }\n\n private _keydown(event: KeyboardEvent): void {\n if (event.keyCode === KeyCodes.Escape) {\n this.setState({ mobileMenuCollapsed: true });\n }\n }\n}\n\nexport default Header;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IHeaderViewProps } from './header';\n\nconst headerView: React.FC = props => {\n const {\n HeaderTag,\n HeaderContainer,\n HeaderTopBarContainer,\n MobileMenuContainer,\n MobileMenuBodyContainer,\n MobileMenuLinksContainer,\n Divider\n } = props;\n return (\n \n \n \n {props.navIcon}\n {props.logo}\n {_renderReactFragment(props.search)}\n {props.preferredStore}\n {_renderDesktopAccountBlock(props)}\n {props.wishListIconDesktop}\n \n {props.cartIcon}\n {_renderReactFragment(props.siteOptions)}\n \n \n \n {props.MobileMenuHeader}\n {_renderReactFragment(props.menuBar)}\n \n {props.accountLinks ? props.accountLinks.map(link => link) : false}\n {props.siteOptions}\n {props.wishListIconMobile}\n {props.signInLink}\n {props.signOutLink}\n \n \n \n {_renderReactFragment(props.menuBar)}\n \n \n );\n};\n\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n AccountInfoDropdownPopoverConentContainer,\n accountInfoDropdownButton,\n signOutLink,\n signInLink,\n accountLinks\n } = props;\n\n if (AccountInfoDropdownParentContainer) {\n if (AccountInfoDropdownPopoverConentContainer) {\n return (\n \n {accountInfoDropdownButton}\n \n {accountLinks ? accountLinks.map(link => link) : false}\n {signOutLink}\n \n \n );\n } else if (signInLink) {\n return {signInLink};\n }\n }\n props.context.telemetry.error('Header content is empty, module wont render.');\n return null;\n}\n\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\n return (\n <>\n {items && items.length > 0\n ? items.map((slot: React.ReactNode, index: number) => {\n return {slot};\n })\n : null}\n \n );\n}\n\nexport default headerView;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["_renderReactFragment","items","React","length","map","slot","index","key","props","slots","HeaderTag","HeaderContainer","HeaderTopBarContainer","MobileMenuContainer","MobileMenuBodyContainer","MobileMenuLinksContainer","Module","Node","navIcon","MobileMenuHeader","menuBar","secondaryMenuBar","context","request","user","retailServerErrorCode","Button","className","title","resources","signOutLinkText","href","signOutUrl","signOutLinkAriaText","signInLink","signOutLink","binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","id","c","require","$type","da","name","path","runOn","iNM","ns","n","p","pdp","md","window","__bindings__","viewDictionary","cn","BaseStoreSelectorStateManager","constructor","listMapViewState","displayList","displayMap","preferredStoreLocalStorageKey","this","isMapModuleLoaded","value","_readFromToCookie","storeInfo","JSON","parse","undefined","preferredStore","_context","input","storeId","selectedStoreLocationId","storeName","writeToCookie","StoreId","StoreName","Latitude","Longitude","_writeToCookie","stringify","latitude","longitude","lastInlineShownStoreInfo","_removeCookie","MsDyn365","localStorage","removeItem","setItem","cookieValue","getItem","__decorate","computed","observable","action","MapStoreSelectorStateManager","SERVICE_ENDPOINT","MAP_API_ENDPOINT","searchTerm","actionContext","requestContext","channel","BingMapsApiKey","BingMapsEnabled","searchContent","jsonp","crypto","getRandomValues","Uint32Array","ChannelCountryRegionISOCode","trim","query","encodeURI","geolocationApiUrl","app","config","requestUrl","Promise","resolve","script","document","createElement","setAttribute","data","remove","resourceSets","point","coordinates","body","appendChild","StringExtensions","getElementById","url","lang","market","reject","type","async","defer","src","mapAPIReady","isMapApiLoaded","addEventListener","error","createStoreSelectorStateInput","result","GenericInput","getGenericActionDataAction","createObservableDataAction","getGenericAction","inputData","renderCustomerName","accountInformation","customer","FirstName","Name","Divider","logo","search","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","accountLinks","accountClassName","classnames","link","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","mobileMenuCollapsed","Collapse","isOpen","Drawer","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","_renderMobileAccountBlock","wishListIconMobile","_renderCollapseMenu","HeaderPreferredStore","modalCloseButtonRef","handleClick","_findPreferredStoreOnClick","render","storeSelectorStateManager","ArrayExtensions","storeSelector","headerPreferredStoreText","color","headerPreferredStoreAriaLabel","onClick","ref","storeSelectorId","Object","keys","openDialog","showMapViewLink","parentElementRef","onLocationSelected","orgUnitLocation","catch","telemetry","message","debug","observer","Logo","super","payLoad","getPayloadObject","telemetryContent","TelemetryConstant","attributes","getTelemetryAttributes","_renderLogo","linkUrl","destinationUrl","ariaLabel","target","openInNewTab","rel","_renderImage","Msdyn365","image","gridSettings","imageSettings","viewports","xs","q","w","h","lg","lazyload","loadFailureBehavior","editProps","moduleType","typeName","imagePropertyName","shouldSkipToMainImage","NavIcon","toggleNavBar","mobileHamburgerAriaLabel","isExpanded","targetId","Header","handleLinkTextChange","linkIndex","event","myAccountLinks","linkText","popOverRef","_toggleNavbar","bind","_togglePopover","_keydown","state","signinPopoverOpen","hasSigninerror","getTelemetryObject","telemetryPageName","friendlyName","isOBORequest","workerName","customerName","firstName","componentDidMount","reaction","cart","signUpCustomerNotFoundTitle","signUpMultipleCustomerFoundTitle","closeNotificationLabel","signinNotificationError","_getSigninNotification","NotificationsManager","addNotification","ErrorNotification","componentWillUnmount","removeEventListener","wishlists","cartLabel","cartQtyLabel","logoLink","logoImage","shouldShowWishlistCount","disableTooltip","headerToggleClass","headerClassName","navbarKey","cartIconSlot","_getSlot","menuBarSlot","searchSlot","wishlistCount","siteOptionsSlot","preferredStoreSlot","CommerceListLines","viewProps","WishListIconComponent","showButtonTooltip","wishlistTooltipText","wishlistCountLabel","isDispayWishlistCount","CartIconComponent","moduleProps","headerAriaLabel","tag","Modal","wrapClassName","toggle","ModalHeader","ModalBody","displayName","Popover","placement","_getSigninButton","_getSignOutButton","switchCustomerLink","_getSwitchCustomerButton","_getAccountInfoDropdownButton","_getAccountLinks","renderView","slotName","signInLinkText","signInUrl","signInLinkAriaText","onTelemetryClick","isOBOAccountSelected","cookies","getAccountSelectionCookie","switchCustomerLinkAriaText","switchCustomerLinkText","role","removeAccountSelectionCookie","additionalProperties","signUpCustomerNotFound","signUpMultipleCustomerFound","innerRef","format","shoppingAsText","cta","contentAction","etext","editableLink","onTextChange","setState","keyCode","KeyCodes","_renderDesktopAccountBlock","module","exports","ReactDOM"],"sourceRoot":""}