{"version":3,"file":"static/js/16.6fca29a2c909ee2667ca.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/find-store-worldwide/components/pickup-option-list.tsx?9899","webpack://Msdyn365.Commerce.Online/./src/modules/find-store-worldwide/components/store-pickup-option-list.tsx?fcf6","webpack://Msdyn365.Commerce.Online/./src/modules/find-store-worldwide/components/find-store-worldwide-location-line-item/date-time-helpers.ts?31c5","webpack://Msdyn365.Commerce.Online/./src/modules/find-store-worldwide/components/find-store-worldwide-location-line-item/find-store-worldwide-location-line-item.components.tsx?9ca8","webpack://Msdyn365.Commerce.Online/./src/modules/find-store-worldwide/components/find-store-worldwide-location-lines.tsx?bbef","webpack://Msdyn365.Commerce.Online/./src/modules/find-store-worldwide/components/find-store-worldwide-search-form.tsx?05ef","webpack://Msdyn365.Commerce.Online/./src/modules/find-store-worldwide/components/find-store-worldwide-small-components.tsx?cef1","webpack://Msdyn365.Commerce.Online/./src/modules/find-store-worldwide/components/selected-store/selected-store.tsx?d7a6","webpack://Msdyn365.Commerce.Online/./src/modules/find-store-worldwide/find-store-worldwide.props.autogenerated.ts?b0ff","webpack://Msdyn365.Commerce.Online/./src/modules/find-store-worldwide/find-store-worldwide.tsx?f58c","webpack://Msdyn365.Commerce.Online/./src/modules/find-store-worldwide/find-store-worldwide.view.tsx?59ba","webpack://Msdyn365.Commerce.Online/./src/modules/generic-popup/generic-popup.tsx?12c8","webpack://Msdyn365.Commerce.Online/./src/modules/generic-popup/generic-popup.view.tsx?638f","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/iframe.view.tsx?059a","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/sign-up.view.tsx?e5d6","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?8281","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?44e9","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?95ac","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/components/terms-paragraph.tsx?1a9a","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/business-partner-promotion.tsx?df24","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/business-partner-promotion.view.tsx?1ff2","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/header.view.tsx?6d84","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/navigation-menu.view.tsx?bc23","webpack://Msdyn365.Commerce.Online/./src/modules/navigation-menu/navigation-menu.data.ts?9815","webpack://Msdyn365.Commerce.Online/./src/modules/navigation-menu/navigation-menu.tsx?2bef","webpack://Msdyn365.Commerce.Online/./src/modules/navigation-menu/navigation-menu.view.tsx?c594","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/content-block.view.tsx?0db4","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/footer-item.view.tsx?15be","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/navigation-menu-utilities.tsx?d092","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/navigation-menu-root-disabled.tsx?1d68","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/navigation-menu-root-enabled.tsx?d5b3","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/navigation-menu.view.tsx?5304"],"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\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Interface Pickup option list.\r\n */\r\nexport interface IPickUpOptionListProps {\r\n pickupListOptionMenuText: string;\r\n pickupmodeList?: DeliveryOption[];\r\n onChange(deliveryCode: string): Promise;\r\n}\r\n\r\n/**\r\n * Interface pickup option list state.\r\n */\r\nexport interface IPickOptionListState {\r\n expandSiteOptions: boolean;\r\n}\r\n\r\n/**\r\n * Simple Pickup option dropdown with Button to get menu option.\r\n */\r\nexport class PickUpOptionList extends React.PureComponent {\r\n private readonly _pickupListOptionMenu: React.RefObject;\r\n\r\n private readonly _pickupListOptionButton: React.RefObject;\r\n\r\n private readonly eventsToBeBind = ['click', 'touchstart'];\r\n\r\n public constructor(props: IPickUpOptionListProps) {\r\n super(props);\r\n this._renderDeliveryOptions = this._renderDeliveryOptions.bind(this);\r\n this._pickupListOptionMenu = React.createRef();\r\n this._pickupListOptionButton = React.createRef();\r\n this.state = {\r\n expandSiteOptions: false\r\n };\r\n }\r\n\r\n public componentDidMount(): void {\r\n for (const event of this.eventsToBeBind) {\r\n window.addEventListener(event, this.handleDocumentClick, true);\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n for (const event of this.eventsToBeBind) {\r\n window.removeEventListener(event, this.handleDocumentClick, true);\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { pickupListOptionMenuText, pickupmodeList } = this.props;\r\n\r\n return (\r\n
\r\n \r\n {pickupListOptionMenuText}\r\n \r\n \r\n {this.state.expandSiteOptions ? (\r\n
    \r\n {pickupmodeList?.map((delivery: DeliveryOption) => {\r\n return (\r\n
  • \r\n \r\n \r\n {delivery.Description}\r\n \r\n \r\n
  • \r\n );\r\n })}\r\n
\r\n ) : null}\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * Handle the document click.\r\n * @param event -- Event object.\r\n */\r\n private readonly handleDocumentClick = (event: Event): void => {\r\n const htmlElement = event.target as HTMLElement;\r\n if (\r\n !(\r\n (this._pickupListOptionButton.current !== null &&\r\n (event.target === this._pickupListOptionButton.current ||\r\n this._pickupListOptionButton.current.contains(htmlElement))) ||\r\n (this._pickupListOptionMenu.current !== null &&\r\n (event.target === this._pickupListOptionMenu.current || this._pickupListOptionMenu.current.contains(htmlElement)))\r\n )\r\n ) {\r\n this.setState({\r\n expandSiteOptions: false\r\n });\r\n }\r\n };\r\n\r\n private _renderDeliveryOptions(event: React.MouseEvent): void {\r\n event.stopPropagation();\r\n const isExpandSiteOptionsState = this.state.expandSiteOptions;\r\n this.setState({\r\n expandSiteOptions: !isExpandSiteOptionsState\r\n });\r\n }\r\n\r\n /**\r\n * Select Delivery option.\r\n * @param event -- Event Object.\r\n */\r\n private readonly _onSelect = async (event: React.MouseEvent): Promise => {\r\n event.preventDefault();\r\n const deliveryCode = event.currentTarget.getAttribute('data-value');\r\n if (deliveryCode && deliveryCode.length > 0) {\r\n await this.props.onChange(deliveryCode);\r\n }\r\n };\r\n}\r\n","/*!\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\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Store Pickup option list interface.\r\n */\r\nexport interface IStorePickUpOptionListProps {\r\n productPickupListOptionMenuText?: string;\r\n productPickupModeList?: DeliveryOption[];\r\n defaultOptionText?: string;\r\n onChange(deliveryCode: string): Promise;\r\n}\r\n\r\n/**\r\n * Store Pickup option state interface.\r\n */\r\nexport interface IStorePickOptionListState {\r\n isFilterExpanded: boolean;\r\n selectedPickupMode?: string;\r\n}\r\n\r\n/**\r\n * Simple Pickup option dropdown with Button to get menu option.\r\n */\r\nexport class StorePickUpOptionList extends React.PureComponent {\r\n private readonly _storePickupListOptionMenu: React.RefObject;\r\n\r\n public constructor(props: IStorePickUpOptionListProps) {\r\n super(props);\r\n this._storePickupListOptionMenu = React.createRef();\r\n this.state = {\r\n isFilterExpanded: false,\r\n selectedPickupMode: ''\r\n };\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { productPickupListOptionMenuText, productPickupModeList, defaultOptionText } = this.props;\r\n const selectedPickupModeDesc = defaultOptionText\r\n ? defaultOptionText\r\n : productPickupModeList?.find((delivery: DeliveryOption) => delivery.Code === this.state.selectedPickupMode)?.Description;\r\n const role = 'menu';\r\n return (\r\n
\r\n \r\n {this.state.isFilterExpanded ? (\r\n
    \r\n {productPickupModeList?.map((delivery: DeliveryOption) => {\r\n return (\r\n \r\n \r\n \r\n {delivery.Description}\r\n \r\n \r\n \r\n );\r\n })}\r\n
\r\n ) : null}\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * Method to call when drop dwon get selected.\r\n */\r\n private readonly _rendeDeliveryOptions = () => {\r\n const isExpandOptionsState = this.state.isFilterExpanded;\r\n this.setState({\r\n isFilterExpanded: !isExpandOptionsState\r\n });\r\n };\r\n\r\n /**\r\n * Method to call on select pickup mode.\r\n * @param event - Mouse event.\r\n * @returns Void.\r\n */\r\n private readonly _onSelect = async (event: React.MouseEvent): Promise => {\r\n event.preventDefault();\r\n const deliveryCode = event.currentTarget.getAttribute('data-value');\r\n if (deliveryCode !== null) {\r\n this.setState({\r\n selectedPickupMode: deliveryCode\r\n });\r\n\r\n this._rendeDeliveryOptions();\r\n await this.props.onChange(deliveryCode);\r\n }\r\n };\r\n\r\n /**\r\n * Method to call on select pickup mode.\r\n * @param event - Mouse event.\r\n * @returns Void.\r\n */\r\n private readonly _onKeyDown = async (event: React.KeyboardEvent): Promise => {\r\n event.preventDefault();\r\n const deliveryCode = event.currentTarget.getAttribute('data-value');\r\n if (deliveryCode !== null) {\r\n this.setState({\r\n selectedPickupMode: deliveryCode\r\n });\r\n\r\n this._rendeDeliveryOptions();\r\n await this.props.onChange(deliveryCode);\r\n }\r\n };\r\n}\r\n","/*!\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\n/* eslint-disable no-duplicate-imports */\r\nimport { RegularStoreHours } from '@msdyn365-commerce/retail-proxy';\r\nimport get from 'lodash/get';\r\nimport { IStoreSelectorLocationLineItemResources } from '../../find-store-worldwide';\r\n\r\nexport interface IHoursDisplayInfo {\r\n startDayShort: string;\r\n startDayFull: string;\r\n endDayShort?: string;\r\n endDayFull?: string;\r\n timeRange: string;\r\n}\r\n\r\ninterface IHoursInfo {\r\n isClosed: boolean;\r\n openTime?: number;\r\n closeTime?: number;\r\n}\r\n\r\ntype DayType = 'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT' | 'SUN';\r\n\r\nexport const secondsToTime = (seconds: number | undefined): string | undefined => {\r\n if (seconds === undefined) {\r\n return undefined;\r\n }\r\n let hours = Math.floor(seconds / (60 * 60));\r\n const ampm = hours >= 12 ? 'pm' : 'am';\r\n hours %= 12;\r\n hours = hours ? hours : 12;\r\n const divisorForMinutes = seconds % (60 * 60);\r\n const minutes = Math.floor(divisorForMinutes / 60) < 10 ? `0${Math.floor(divisorForMinutes / 60)}` : Math.floor(divisorForMinutes / 60);\r\n return `${hours}:${minutes} ${ampm}`;\r\n};\r\n\r\nconst getShortTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.monday;\r\n case 'TUE':\r\n return resources.days.tuesday;\r\n case 'WED':\r\n return resources.days.wednesday;\r\n case 'THU':\r\n return resources.days.thursday;\r\n case 'FRI':\r\n return resources.days.friday;\r\n case 'SAT':\r\n return resources.days.saturday;\r\n default:\r\n // Case 'SUN':\r\n return resources.days.sunday;\r\n }\r\n};\r\n\r\nconst getFullTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.mondayFull;\r\n case 'TUE':\r\n return resources.days.tuesdayFull;\r\n case 'WED':\r\n return resources.days.wednesdayFull;\r\n case 'THU':\r\n return resources.days.thursdayFull;\r\n case 'FRI':\r\n return resources.days.fridayFull;\r\n case 'SAT':\r\n return resources.days.saturdayFull;\r\n default:\r\n // Case 'SUN':\r\n return resources.days.sundayFull;\r\n }\r\n};\r\n\r\nconst buildHoursDisplayInfo = (\r\n startDay: DayType,\r\n endDay: DayType,\r\n hoursInfo: string,\r\n resources: IStoreSelectorLocationLineItemResources\r\n): IHoursDisplayInfo => {\r\n return {\r\n startDayShort: getShortTimeString(startDay, resources),\r\n startDayFull: getFullTimeString(startDay, resources),\r\n endDayShort: startDay !== endDay ? getShortTimeString(endDay, resources) : undefined,\r\n endDayFull: startDay !== endDay ? getFullTimeString(endDay, resources) : undefined,\r\n timeRange: hoursInfo\r\n };\r\n};\r\n\r\nconst shouldMergeLines = (firstLine: IHoursInfo, secondLine: IHoursInfo): boolean => {\r\n if (firstLine.isClosed && secondLine.isClosed) {\r\n return true;\r\n }\r\n\r\n if (!firstLine.isClosed && !secondLine.isClosed) {\r\n return firstLine.openTime === secondLine.openTime && firstLine.closeTime === secondLine.closeTime;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getStoreHoursData = (storeHours: RegularStoreHours, dateForLookup: string): IHoursInfo => {\r\n return {\r\n isClosed: get(storeHours, `IsClosedOn${dateForLookup}`, false),\r\n openTime: get(storeHours, `${dateForLookup}OpenTime`, undefined),\r\n closeTime: get(storeHours, `${dateForLookup}CloseTime`, undefined)\r\n };\r\n};\r\n\r\nconst buildStoreHoursString = (hoursInfo: IHoursInfo, resources: IStoreSelectorLocationLineItemResources): string => {\r\n if (hoursInfo.isClosed) {\r\n return resources.closedText;\r\n }\r\n const openFrom: string | undefined = secondsToTime(hoursInfo.openTime);\r\n const openTo: string | undefined = secondsToTime(hoursInfo.closeTime);\r\n\r\n return `${openFrom}–${openTo}`;\r\n};\r\n\r\nexport const buildStoreHours = (storeHours: RegularStoreHours, resources: IStoreSelectorLocationLineItemResources): IHoursDisplayInfo[] => {\r\n const storeHoursList: IHoursDisplayInfo[] = [];\r\n\r\n const mondayHours = getStoreHoursData(storeHours, 'Monday');\r\n const tuesdayHours = getStoreHoursData(storeHours, 'Tuesday');\r\n const wednesdayHours = getStoreHoursData(storeHours, 'Wednesday');\r\n const thursdayHours = getStoreHoursData(storeHours, 'Thursday');\r\n const fridayHours = getStoreHoursData(storeHours, 'Friday');\r\n const saturdayHours = getStoreHoursData(storeHours, 'Saturday');\r\n const sundayHours = getStoreHoursData(storeHours, 'Sunday');\r\n\r\n let periodStart: DayType = 'MON';\r\n let periodEnd: DayType = 'MON';\r\n\r\n if (!shouldMergeLines(mondayHours, tuesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(mondayHours, resources), resources));\r\n\r\n periodStart = 'TUE';\r\n }\r\n periodEnd = 'TUE';\r\n\r\n if (!shouldMergeLines(tuesdayHours, wednesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(tuesdayHours, resources), resources));\r\n\r\n periodStart = 'WED';\r\n }\r\n periodEnd = 'WED';\r\n\r\n if (!shouldMergeLines(wednesdayHours, thursdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(wednesdayHours, resources), resources));\r\n\r\n periodStart = 'THU';\r\n }\r\n periodEnd = 'THU';\r\n\r\n if (!shouldMergeLines(thursdayHours, fridayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(thursdayHours, resources), resources));\r\n\r\n periodStart = 'FRI';\r\n }\r\n periodEnd = 'FRI';\r\n\r\n if (!shouldMergeLines(fridayHours, saturdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(fridayHours, resources), resources));\r\n\r\n periodStart = 'SAT';\r\n }\r\n periodEnd = 'SAT';\r\n\r\n if (!shouldMergeLines(saturdayHours, sundayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(saturdayHours, resources), resources));\r\n\r\n periodStart = 'SUN';\r\n }\r\n periodEnd = 'SUN';\r\n\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(sundayHours, resources), resources));\r\n\r\n return storeHoursList;\r\n};\r\n","/*!\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\n/* eslint-disable no-duplicate-imports */\r\nimport { OrgUnitContact, OrgUnitLocation, StoreHours } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\n// import { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { buildStoreHours, IHoursDisplayInfo, secondsToTime } from './date-time-helpers';\r\nimport { IStoreSelectorLocationLineItemProps, IStoreSelectorLocationLineItemResources } from '../../find-store-worldwide';\r\n\r\n// /**\r\n// * Store Locator line item resources.\r\n// */\r\n// export interface IStoreSelectorLocationLineItemResources {\r\n// storeHoursHeader: string;\r\n// closedText: string;\r\n// storeLabelRetailer: string;\r\n// storeLabelVenchi: string;\r\n// goToStoreWebPage: string;\r\n\r\n// days: {\r\n// monday: string;\r\n// tuesday: string;\r\n// wednesday: string;\r\n// thursday: string;\r\n// friday: string;\r\n// saturday: string;\r\n// sunday: string;\r\n// mondayFull: string;\r\n// tuesdayFull: string;\r\n// wednesdayFull: string;\r\n// thursdayFull: string;\r\n// fridayFull: string;\r\n// saturdayFull: string;\r\n// sundayFull: string;\r\n// };\r\n// }\r\n\r\n// /**\r\n// * Store Locator line item props.\r\n// */\r\n// export interface IStoreSelectorLocationLineItemProps {\r\n// location: OrgUnitLocation;\r\n// storeHours?: StoreHours;\r\n\r\n// // hideStockStatus?: boolean;\r\n// // isInStock?: boolean;\r\n// // isCurrentLocation?: boolean;\r\n\r\n// resources: IStoreSelectorLocationLineItemResources;\r\n// // stockStatusLabel?: string;\r\n// // storeLocatorView?: boolean;\r\n// // isPreferredStoreEnabled?: boolean;\r\n// index: string;\r\n// // preferredStoreLocationId: string | null;\r\n// // storePickUpOptionList?: DeliveryOption[];\r\n// // productPickUpOptionList?: DeliveryOption[];\r\n// // filteredPickupMode?: string;\r\n// // shouldShowIndex?: boolean;\r\n// baseUrl?: string;\r\n// shouldShowStorePageLinks?: boolean;\r\n// storePageLinksCountries?: string[];\r\n// baseClassName?: string;\r\n\r\n// /**\r\n// * The telemetry content.\r\n// */\r\n// telemetryContent?: ITelemetryContent;\r\n// preferredDistanceUnit: string;\r\n// isLocationDisabled?: boolean;\r\n// // handlers: {\r\n// // onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\r\n// // onSetAsPreferredStore(locationId: string | undefined): void;\r\n// // onRemovePreferredStore(): void;\r\n// // };\r\n// }\r\n\r\nconst hasStoreHoursInfo = (storeHours: StoreHours | undefined, location: OrgUnitLocation): boolean => {\r\n if (storeHours?.RegularStoreHours || (location.OpenFrom && location.OpenTo)) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Function to render store hours.\r\n * @param storeHours - Store Hours object.\r\n * @param location - Store Unit.\r\n * @param resources - Resources.\r\n * @returns - Jsx element.\r\n */\r\nexport const renderStoreHours = (\r\n storeHours: StoreHours | undefined,\r\n location: OrgUnitLocation,\r\n resources: IStoreSelectorLocationLineItemResources\r\n): JSX.Element | null => {\r\n // First, use the store hours. This will allow listing day by day houts\r\n if (storeHours?.RegularStoreHours) {\r\n const storeHoursList: IHoursDisplayInfo[] = buildStoreHours(storeHours.RegularStoreHours, resources);\r\n return (\r\n \r\n \r\n \r\n {\r\n //TODO LOCALIZE\r\n }\r\n \r\n \r\n \r\n \r\n \r\n {storeHoursList.map(displayTime => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
DayHours
\r\n {displayTime.endDayShort ? (\r\n <>\r\n {displayTime.startDayShort}–\r\n {displayTime.endDayShort}\r\n \r\n ) : (\r\n {displayTime.startDayShort}\r\n )}\r\n {displayTime.timeRange}
\r\n );\r\n // return (\r\n //
\r\n // {storeHoursList.map(displayTime => (\r\n //
\r\n // {displayTime.endDayShort ? (\r\n //
\r\n // {displayTime.startDayShort}–\r\n // {displayTime.endDayShort}\r\n //
\r\n // ) : (\r\n //
\r\n // {displayTime.startDayShort}\r\n //
\r\n // )}\r\n //
{displayTime.timeRange}
\r\n //
\r\n // ))}\r\n //
\r\n // );\r\n }\r\n\r\n // If that fails, fall back to using the OpenFrom and OpenTo properties on the location\r\n const storeOpenFrom: string | undefined = secondsToTime(location.OpenFrom);\r\n const storeOpenTo: string | undefined = secondsToTime(location.OpenTo);\r\n\r\n return (\r\n
\r\n {storeOpenFrom}-{storeOpenTo}\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Function to return distance measure unit.\r\n * @param distance - Store location within radius.\r\n * @param preferredDistanceUnit - Unit configuration.\r\n * @param isLocationDisabled - Flag to check user location.\r\n * @returns - Unit of distance.\r\n */\r\nexport const buildDistanceString = (\r\n distance: number | undefined,\r\n preferredDistanceUnit: string,\r\n isLocationDisabled?: boolean\r\n): string | undefined => {\r\n if (distance === undefined || isLocationDisabled) {\r\n return undefined;\r\n } else if (distance < 1) {\r\n return `(<1 ${preferredDistanceUnit})`;\r\n }\r\n return `(${Math.floor(distance)} ${preferredDistanceUnit})`;\r\n};\r\n\r\n/**\r\n * Function to store contact.\r\n * @param contacts - Store location within radius.\r\n * @returns - Return primary contact number of store.\r\n */\r\nconst extractPhoneNumber = (contacts: OrgUnitContact[] | undefined): string | undefined => {\r\n if (!contacts) {\r\n return undefined;\r\n }\r\n\r\n const allPhoneContacts = contacts.filter(contact => contact.ContactTypeValue === 1 && !contact.IsPrivate);\r\n\r\n if (ArrayExtensions.hasElements(allPhoneContacts)) {\r\n const primaryPhoneContact = allPhoneContacts.find(contact => contact.IsPrimary);\r\n\r\n if (primaryPhoneContact) {\r\n return primaryPhoneContact.Locator;\r\n }\r\n\r\n return allPhoneContacts[0].Locator;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport function formatAddress(location: OrgUnitLocation): string {\r\n const addressParts = [];\r\n\r\n // Street and Street Number\r\n if (location.Street || location.StreetNumber) {\r\n addressParts.push(`${location.Street || ''} ${location.StreetNumber || ''}`.trim());\r\n }\r\n\r\n // District and Building Compliment\r\n const districtBuildingParts = [];\r\n if (location.DistrictName) {\r\n districtBuildingParts.push(location.DistrictName);\r\n }\r\n if (location.BuildingCompliment) {\r\n districtBuildingParts.push(location.BuildingCompliment);\r\n }\r\n if (districtBuildingParts.length > 0) {\r\n addressParts.push(districtBuildingParts.join(', '));\r\n }\r\n\r\n // City, County, State\r\n const cityCountyStateParts = [];\r\n if (location.City) {\r\n cityCountyStateParts.push(location.City);\r\n }\r\n if (location.County || location.CountyName) {\r\n cityCountyStateParts.push(location.County || location.CountyName);\r\n }\r\n if ((location.State || location.StateName) && !(location.Country === 'ITA')) {\r\n cityCountyStateParts.push(location.State || location.StateName);\r\n }\r\n if (cityCountyStateParts.length > 0) {\r\n addressParts.push(cityCountyStateParts.join(', '));\r\n }\r\n\r\n // Zipcode\r\n if (location.Zip) {\r\n addressParts.push(location.Zip);\r\n }\r\n\r\n // Country\r\n if (location.Country) {\r\n addressParts.push(location.Country);\r\n }\r\n\r\n return addressParts.join('\\n');\r\n}\r\n/**\r\n * Renders store location line items.\r\n * @param props - Store location line items props.\r\n * @returns - HTML.\r\n */\r\nconst storeSelectorLocationLineItem: React.FC = (props: IStoreSelectorLocationLineItemProps) => {\r\n const {\r\n location,\r\n resources,\r\n storeHours,\r\n index,\r\n isLocationDisabled,\r\n storePageLinksCountries,\r\n shouldShowStorePageLinks,\r\n baseUrl,\r\n baseClassName\r\n } = props;\r\n\r\n var storeName: string | undefined = location.OrgUnitName;\r\n const retailer = storeName?.startsWith('R ') ? true : false;\r\n if (storeName && retailer) {\r\n storeName = storeName.slice(2);\r\n }\r\n const storeUrl = storeName\r\n ?.toLowerCase()\r\n .replace(/[ .&@',]/g, '-')\r\n .replace(/-+/g, '-');\r\n const distanceAsString: string | undefined = buildDistanceString(location.Distance, props.preferredDistanceUnit, isLocationDisabled);\r\n const storeAddress: string = formatAddress(location);\r\n const phoneNumber: string | undefined = extractPhoneNumber(location.Contacts);\r\n const displayStoreHours = hasStoreHoursInfo(storeHours, location);\r\n const parentClassName = baseClassName ? baseClassName : 'ms-store-select-venchi__location-line-item';\r\n\r\n const urlStorePage = (): JSX.Element | null => {\r\n if (!retailer && shouldShowStorePageLinks && location.Country && storePageLinksCountries?.includes(location.Country)) {\r\n return (\r\n
\r\n \r\n \r\n {resources.goToStoreWebPage}\r\n \r\n
\r\n );\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n /* eslint-disable prettier/prettier */\r\n return (\r\n
\r\n
\r\n

\r\n {`${retailer ? resources.storeLabelRetailer : resources.storeLabelVenchi} ${index}`}\r\n {distanceAsString ?\r\n \r\n {' '}\r\n {distanceAsString}\r\n : false}\r\n

\r\n

{storeName}

\r\n
\r\n
\r\n
\r\n {storeAddress && (\r\n
\r\n \r\n {storeAddress}\r\n
\r\n )}\r\n {phoneNumber && (\r\n
\r\n \r\n {phoneNumber}\r\n
\r\n )}\r\n {urlStorePage()}\r\n
\r\n {displayStoreHours && (\r\n
\r\n

{resources.storeHoursHeader}

\r\n {renderStoreHours(storeHours, location, resources)}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Store location line item component.\r\n */\r\nexport const StoreSelectorLocationLineItemComponent = storeSelectorLocationLineItem as (\r\n props: IStoreSelectorLocationLineItemProps\r\n) => JSX.Element;\r\n","/* eslint-disable security/detect-object-injection */\r\n/*!\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\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption, OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions, IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { observable, reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nimport { IFindStoreWorldwideResources } from '../find-store-worldwide.props.autogenerated';\r\nimport { StoreSelectorLocationLineItemComponent } from './find-store-worldwide-location-line-item';\r\nimport { IStoreSelectorLocationLineItemResources } from '../find-store-worldwide';\r\n\r\n/**\r\n * Store selector location lines props interface.\r\n */\r\nexport interface IStoreSelectorLocationLinesProps {\r\n locations?: IFullOrgUnitAvailability[];\r\n resources: IFindStoreWorldwideResources;\r\n preferredDistanceUnit?: string;\r\n\r\n alreadySelectedLocation?: OrgUnitLocation;\r\n outOfStockThreshold: number;\r\n enableOutOfStockCheck: boolean;\r\n storeLocatorView?: boolean;\r\n selectedStoreLocationId?: string;\r\n isPreferredStoreEnabled?: boolean;\r\n displayList?: boolean;\r\n isLocationDisabled?: boolean;\r\n productPickUpDeliveryOptions?: DeliveryOption[];\r\n onClick: (locationId: string | undefined) => void;\r\n preferredStoreLocationId: string | null;\r\n onSetAsPreferredStore: (locationId: string | undefined) => void;\r\n onRemovePreferredStore: () => void;\r\n filteredPickupMode?: string;\r\n shouldShowIndex?: boolean;\r\n baseUrl?: string;\r\n shouldShowStorePageLinks?: boolean;\r\n storePageLinksCountries?: string[];\r\n\r\n /**\r\n * The telemetry content.\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n onLocationSelected(location: OrgUnitLocation | undefined): void;\r\n}\r\n\r\n/**\r\n * Displays all the location line items, or null if none exists.\r\n */\r\n@observer\r\nexport class StoreSelectorLocationLines extends React.PureComponent {\r\n @observable private _stores: IFullOrgUnitAvailability[] | undefined;\r\n\r\n private readonly selectedLocationRef: React.RefObject;\r\n\r\n private storeCounter: number;\r\n\r\n public constructor(props: IStoreSelectorLocationLinesProps) {\r\n super(props);\r\n this.selectedLocationRef = React.createRef();\r\n this.storeCounter = 0;\r\n }\r\n\r\n public componentDidUpdate(previousProps: IStoreSelectorLocationLinesProps): void {\r\n if (this.props.selectedStoreLocationId !== previousProps.selectedStoreLocationId) {\r\n this._scrollIntoView();\r\n }\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (this.props.locations) {\r\n this._stores = this._sortStores(this.props.locations);\r\n }\r\n\r\n reaction(\r\n () => this.props.locations,\r\n () => {\r\n if (this.props.locations) {\r\n this._stores = this._sortStores(this.props.locations);\r\n }\r\n }\r\n );\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (!ArrayExtensions.hasElements(this._stores)) {\r\n return null;\r\n }\r\n\r\n this.storeCounter = 0;\r\n\r\n return (\r\n
\r\n {this._stores.map((store, index) => {\r\n return this._renderStoreLocation(store, index);\r\n })}\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * On click Handler function.\r\n * @param orgUnitLocation -OrgUnit location.\r\n * @returns Click action on orgUnit Location.\r\n */\r\n private readonly onClickHandler = (orgUnitLocation: OrgUnitLocation | undefined) => () => {\r\n this.props.onClick(orgUnitLocation?.OrgUnitNumber);\r\n };\r\n\r\n private _renderStoreLocation(store: IFullOrgUnitAvailability, index: number): JSX.Element | undefined {\r\n const orgUnitLocation = store?.OrgUnitAvailability?.OrgUnitLocation;\r\n const selectedStoreLocationId = this.props.selectedStoreLocationId;\r\n // const deliveryOptions = store?.OrgUnitPickUpDeliveryModes;\r\n const defaultAriaSetsize = 0;\r\n if (orgUnitLocation) {\r\n ++this.storeCounter;\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Sort store.\r\n * @param stores - Array of stores data.\r\n * @returns Sorted stores array.\r\n */\r\n private _sortStores(stores: IFullOrgUnitAvailability[]): IFullOrgUnitAvailability[] {\r\n /**\r\n * IsPreferredStore.\r\n * @param value - Array of stores data.\r\n * @returns IsPreferred store boolean value.\r\n */\r\n const isPreferredStore = (value: IFullOrgUnitAvailability) =>\r\n this.props.isPreferredStoreEnabled &&\r\n this.props.preferredStoreLocationId &&\r\n value.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitNumber === this.props.preferredStoreLocationId;\r\n\r\n return [...stores.filter(isPreferredStore), ...stores.filter(store => !isPreferredStore(store))];\r\n }\r\n\r\n /**\r\n * Scroll into view.\r\n */\r\n private readonly _scrollIntoView = () => {\r\n const selectedLocationDiv = this.selectedLocationRef.current;\r\n const parent = selectedLocationDiv?.parentElement;\r\n if (selectedLocationDiv && parent) {\r\n if (parent.scrollTop > selectedLocationDiv.offsetTop) {\r\n parent.scrollTop = selectedLocationDiv.offsetTop;\r\n } else if (selectedLocationDiv.offsetTop + selectedLocationDiv.clientHeight > parent.scrollTop + parent.clientHeight) {\r\n parent.scrollTop = selectedLocationDiv.offsetTop + selectedLocationDiv.clientHeight - parent.clientHeight;\r\n }\r\n }\r\n };\r\n\r\n // /**\r\n // * Is current location.\r\n // * @param location - Org unit location.\r\n // * @returns The current location.\r\n // */\r\n // private readonly _isCurrentLocation = (location: OrgUnitLocation | undefined): boolean =>\r\n // (this.props.alreadySelectedLocation && location && this.props.alreadySelectedLocation.OrgUnitNumber === location.OrgUnitNumber) ||\r\n // false;\r\n\r\n // /**\r\n // * Check the product is in stock or not.\r\n // * @param itemAvailabilities - Item availabilities.\r\n // * @returns If the product is in stock.\r\n // */\r\n // private readonly _isProductInStock = (itemAvailabilities: ItemAvailability[] | undefined): boolean => {\r\n // if (!this.props.enableOutOfStockCheck) {\r\n // return true;\r\n // }\r\n\r\n // if (ArrayExtensions.hasElements(itemAvailabilities)) {\r\n // return itemAvailabilities[0].AvailableQuantity ? itemAvailabilities[0].AvailableQuantity > 0 : false;\r\n // }\r\n\r\n // return false;\r\n // };\r\n\r\n // /**\r\n // * Get the stock inventory label.\r\n // * @param availabilityWithHours - Full org unit availability.\r\n // * @returns The stock label.\r\n // */\r\n // private readonly _stockInventoryLabel = (availabilityWithHours: IFullOrgUnitAvailability | undefined): string | undefined => {\r\n // if (availabilityWithHours && ArrayExtensions.hasElements(availabilityWithHours.ProductInventoryInformation)) {\r\n // for (let i = 0; i < availabilityWithHours.ProductInventoryInformation.length; i++) {\r\n // if (\r\n // availabilityWithHours.OrgUnitAvailability?.OrgUnitLocation?.InventoryLocationId ===\r\n // availabilityWithHours.ProductInventoryInformation[i].InventLocationId\r\n // ) {\r\n // return availabilityWithHours.ProductInventoryInformation[i].StockLevelLabel;\r\n // }\r\n // }\r\n // }\r\n\r\n // return undefined;\r\n // };\r\n\r\n /**\r\n * Map resources.\r\n * @param resources - Store resources.\r\n * @returns Resources.\r\n */\r\n private readonly _mapResources = (resources: IFindStoreWorldwideResources): IStoreSelectorLocationLineItemResources => {\r\n return {\r\n storeHoursHeader: resources.timeText,\r\n closedText: resources.storeHoursClosedText,\r\n storeLabelRetailer: resources.storeLabelRetailer,\r\n storeLabelVenchi: resources.storeLabelVenchi,\r\n goToStoreWebPage: resources.goToStoreWebPage,\r\n\r\n days: {\r\n monday: resources.storeHoursMondayText,\r\n tuesday: resources.storeHoursTuesdayText,\r\n wednesday: resources.storeHoursWednesdayText,\r\n thursday: resources.storeHoursThursdayText,\r\n friday: resources.storeHoursFridayText,\r\n saturday: resources.storeHoursSaturdayText,\r\n sunday: resources.storeHoursSundayText,\r\n mondayFull: resources.storeHoursMondayFullText,\r\n tuesdayFull: resources.storeHoursTuesdayFullText,\r\n wednesdayFull: resources.storeHoursWednesdayFullText,\r\n thursdayFull: resources.storeHoursThursdayFullText,\r\n fridayFull: resources.storeHoursFridayFullText,\r\n saturdayFull: resources.storeHoursSaturdayFullText,\r\n sundayFull: resources.storeHoursSundayFullText\r\n }\r\n };\r\n };\r\n}\r\n","/*!\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n IPayLoad,\r\n ITelemetryContent,\r\n KeyCodes,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { CustomInput } from 'reactstrap';\r\n\r\n/**\r\n * Store Selector Search Form Props interface.\r\n */\r\nexport interface IStoreSelectorSearchFormProps {\r\n resources: {\r\n searchInputAriaLabel: string;\r\n searchButtonAriaLabel: string;\r\n searchPlaceholderText: string;\r\n viewListText: string;\r\n viewMapText: string;\r\n includeRetailersButtonLabel: string;\r\n pickupFilterByHeading?: string;\r\n pickupFilterMenuHeading?: string;\r\n };\r\n\r\n id: string;\r\n value: string;\r\n displayIncludeRetailersButton: boolean;\r\n isMapDisabled?: boolean;\r\n showAllStores?: boolean;\r\n displayRetailers?: boolean;\r\n displayList?: boolean;\r\n locatorView?: boolean;\r\n locationsMessage?: React.ReactNode;\r\n\r\n /**\r\n * The telemetry content.\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n onShowAllStores(): void;\r\n onDisplayRetailers(displayRetailersValue: boolean): void;\r\n onToggleListMapViewState(): void;\r\n performSearch(searchTerm: string): Promise;\r\n searchTermChanged(searchTerm: string): Promise;\r\n}\r\n\r\n/**\r\n * Simple search form consisting of search text and a search button.\r\n */\r\nexport class StoreSelectorSearchForm extends React.PureComponent {\r\n private readonly searchBoxRef: React.RefObject = React.createRef();\r\n private readonly searchSectionRef: React.RefObject = React.createRef();\r\n\r\n private readonly storeSearchAttributes: Msdyn365.IDictionary | undefined;\r\n\r\n // private readonly showAllStoreAttributes: Msdyn365.IDictionary | undefined;\r\n\r\n private readonly toggleMapViewAttributes: Msdyn365.IDictionary | undefined;\r\n\r\n private previousValue: string = '';\r\n\r\n private isSearchResultOpened: boolean = false;\r\n\r\n public constructor(props: IStoreSelectorSearchFormProps) {\r\n super(props);\r\n this.state = { value: '' };\r\n // this._handleKeyPressPrev = this._handleKeyPressPrev.bind(this);\r\n const payLoad: IPayLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.SearchStore);\r\n this.storeSearchAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n payLoad.contentAction.etext = TelemetryConstant.ShowAllStore;\r\n // this.showAllStoreAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n payLoad.contentAction.etext = TelemetryConstant.ToggleMapView;\r\n this.toggleMapViewAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n }\r\n private setScrollPositionToSearch = () => {\r\n if (this.searchSectionRef.current?.offsetParent) {\r\n window.scrollTo({\r\n //@ts-ignore\r\n top: this.searchSectionRef.current.offsetParent.offsetTop - 48,\r\n behavior: 'auto'\r\n });\r\n }\r\n };\r\n\r\n public render(): JSX.Element {\r\n const {\r\n resources: { searchButtonAriaLabel, searchPlaceholderText, viewListText, viewMapText, includeRetailersButtonLabel },\r\n id,\r\n value,\r\n isMapDisabled,\r\n // showAllStores,\r\n displayList,\r\n displayRetailers,\r\n // onShowAllStores,\r\n onDisplayRetailers,\r\n locatorView,\r\n locationsMessage,\r\n displayIncludeRetailersButton\r\n } = this.props;\r\n\r\n const toggleButtonText = displayList ? viewMapText : viewListText;\r\n\r\n const onDisplayAllRetailersInternal = (event: React.ChangeEvent) => {\r\n const isChecked = event.target.checked;\r\n onDisplayRetailers(isChecked);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n /**\r\n * Handles the key press on the input box.\r\n * @param event - Event object.\r\n */\r\n private readonly _handleInputKeyPress = (event: React.KeyboardEvent): void => {\r\n // When the user navigates through the up and down arrow on the result returned by the auto suggest and press enter.\r\n // At that time, two requests were made to fetch the store details due to which incorrect result is shown and causes flickering.\r\n // In order to avoid that. Checking if the search result is open or not.\r\n if (event.keyCode === KeyCodes.ArrowUp || event.keyCode === KeyCodes.ArrowDown) {\r\n const activeDescedantValue = (event.target as HTMLInputElement).getAttribute('aria-activedescendant');\r\n if (activeDescedantValue) {\r\n if (this.previousValue === '') {\r\n this.previousValue = activeDescedantValue;\r\n this.isSearchResultOpened = true;\r\n return;\r\n }\r\n\r\n if (activeDescedantValue !== this.previousValue) {\r\n this.previousValue = activeDescedantValue;\r\n this.isSearchResultOpened = true;\r\n } else {\r\n this.isSearchResultOpened = false;\r\n }\r\n }\r\n }\r\n };\r\n\r\n // /**\r\n // * Calls method display result.\r\n // * @param event - The first number.\r\n // */\r\n // private readonly _handleKeyPressPrev = (event: React.KeyboardEvent): void => {\r\n // if (event.keyCode === KeyCodes.Enter || event.keyCode === KeyCodes.Space) {\r\n // this.props.onShowAllStores();\r\n // }\r\n // };\r\n\r\n /**\r\n * Method called on search text changed.\r\n * @param event - Input value.\r\n */\r\n private readonly _searchTextChanged = async (event: React.ChangeEvent): Promise => {\r\n const inputValue: string = event.target.value;\r\n\r\n await this.props.searchTermChanged(inputValue);\r\n };\r\n\r\n /**\r\n * Method called on search submit.\r\n * @param event - Input value.\r\n */\r\n private readonly _onSubmit = async (event: React.SyntheticEvent): Promise => {\r\n event.preventDefault(); // Prevents form submission\r\n this.searchBoxRef.current?.blur();\r\n if (!this.isSearchResultOpened) {\r\n await this.props.performSearch(this.props.value);\r\n }\r\n this.isSearchResultOpened = false;\r\n };\r\n\r\n /**\r\n * Method to render pickup mode list.\r\n * @param props - Store selector search form props.\r\n * @param toggleButtonText - Locator view button text.\r\n * @param locatorView - Locator View is on\\off.\r\n * @param shouldDisplayList - Display List.\r\n * @returns Jsx component.\r\n */\r\n private readonly renderToggleMapButton = (\r\n props: IStoreSelectorSearchFormProps,\r\n toggleButtonText: string,\r\n locatorView: boolean | undefined,\r\n shouldDisplayList?: boolean\r\n ): JSX.Element | null => {\r\n const handleButtonClick = () => {\r\n this.setScrollPositionToSearch();\r\n props.onToggleListMapViewState();\r\n };\r\n const toggleButtonClass = shouldDisplayList ? 'view-map' : 'list-view';\r\n if (locatorView) {\r\n return (\r\n \r\n {toggleButtonText}\r\n \r\n );\r\n }\r\n return null;\r\n };\r\n}\r\n","/*!\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\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IFindStoreWorldwideResources, ITermsOfServiceLinkData } from '../find-store-worldwide.props.autogenerated';\r\n\r\nexport interface IStoreSelectorEmptyMessageProps {\r\n resources: IFindStoreWorldwideResources;\r\n}\r\nexport const StoreSelectorEmptyMessage: React.FC = ({ resources }) => (\r\n
\r\n

{resources.emptyLocationsText}

\r\n
\r\n);\r\n\r\nexport const StoreSelectorWaiting: React.FC = () => (\r\n
\r\n);\r\n\r\nexport interface IStoreSelectorTermsOfServiceProps {\r\n link?: ITermsOfServiceLinkData;\r\n requestContext: Msdyn365.IRequestContext;\r\n onTextChange?(event: Msdyn365.ContentEditableEvent): void;\r\n}\r\n\r\nexport const StoreSelectorTermsOfService: React.FC = ({ link, requestContext, onTextChange }) => {\r\n if (link) {\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: 'ms-store-select-venchi__terms-link',\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: 'link'\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n return null;\r\n};\r\n\r\nexport interface IStoreSelectorFoundLocationsMessage {\r\n resources: IFindStoreWorldwideResources;\r\n locations?: IFullOrgUnitAvailability[];\r\n includeRetailers: boolean;\r\n forSearchBar: boolean;\r\n shouldDisplayLabel: boolean;\r\n}\r\nexport const StoreSelectorFoundLocationsMessage: React.FC = ({\r\n locations,\r\n resources,\r\n includeRetailers,\r\n forSearchBar,\r\n shouldDisplayLabel\r\n}) => {\r\n if (locations) {\r\n const countRetailers: number = locations.filter(loc => {\r\n return loc.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitName?.startsWith('R ') ? true : false;\r\n }).length;\r\n const countVenchiStores: number = locations.length - countRetailers;\r\n return (\r\n \r\n {includeRetailers\r\n ? resources.storeAndRetailersAllCountMessage\r\n .replace('{count}', countVenchiStores.toString())\r\n .replace('{countRetailers}', countRetailers.toString())\r\n : resources.storeAllCountMessage.replace('{count}', countVenchiStores.toString())}\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n};\r\n","/*!\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\n/* eslint-disable no-duplicate-imports */\r\nimport { DeliveryOption, OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\r\nimport { IFullOrgUnitAvailability } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n INodeProps,\r\n IPayLoad,\r\n ITelemetryContent,\r\n NodeTag,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { buildDistanceString } from '../find-store-worldwide-location-line-item';\r\n\r\n/**\r\n * Store Locator line item resources.\r\n */\r\nexport interface ISelectedStoreResources {\r\n closedText: string;\r\n}\r\n\r\n/**\r\n * Store Selector resources.\r\n */\r\nexport interface ISelectedStoreProps {\r\n className?: string;\r\n shouldHideStockStatus?: boolean;\r\n isCurrentLocation?: boolean;\r\n isInStock?: boolean;\r\n selectedStore?: IFullOrgUnitAvailability;\r\n resources: ISelectedStoreResources;\r\n stockStatusLabel?: string;\r\n isLocationDisabled?: boolean;\r\n telemetryContent?: ITelemetryContent;\r\n preferredDistanceUnit: string;\r\n storeRenderedComponent?: React.ReactNode;\r\n handlers: {\r\n onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\r\n onSetAsPreferredStore(locationId: string | undefined): void;\r\n onRemovePreferredStore(): void;\r\n closeStoreDetailsModal(): Promise;\r\n };\r\n}\r\n\r\n/**\r\n * Store Selector resources.\r\n */\r\nexport interface ISelectedStoreViewProps {\r\n isCurrentLocation?: boolean;\r\n canSelectLocation?: boolean;\r\n selectedStore?: IFullOrgUnitAvailability;\r\n deliveryOptions?: DeliveryOption[];\r\n resources: ISelectedStoreResources;\r\n storeRenderedComponent: React.ReactNode;\r\n storeDetailsMain: INodeProps;\r\n storeHeader: INodeProps;\r\n storeName: React.ReactNode;\r\n storeDistance: React.ReactNode;\r\n storeDetailsAvailabilityContainer: INodeProps;\r\n currentLocation: React.ReactNode;\r\n storeDetailsCloseButton?: React.ReactNode;\r\n handlers: {\r\n onSelected(location: OrgUnitLocation, deliveryMode?: string): void;\r\n };\r\n}\r\n\r\n/**\r\n * On store details close functionality.\r\n * @param props -Store locator location items.\r\n * @returns Void promise.\r\n */\r\nconst storeDetailsModalHandler = (props: ISelectedStoreProps) => async (): Promise => {\r\n await props.handlers.closeStoreDetailsModal();\r\n};\r\n\r\n/**\r\n * Renders selected store details.\r\n * @param props - Store location details props.\r\n * @returns - Selected Store view props.\r\n */\r\nconst selectedStoreDetails = (props: ISelectedStoreProps): ISelectedStoreViewProps => {\r\n const {\r\n className,\r\n shouldHideStockStatus,\r\n isCurrentLocation,\r\n isInStock,\r\n selectedStore,\r\n resources,\r\n isLocationDisabled,\r\n telemetryContent,\r\n preferredDistanceUnit,\r\n storeRenderedComponent\r\n } = props;\r\n\r\n const parentClassName = className ? className : 'ms-store-select-venchi__map__selected_store';\r\n const storeName: string | undefined = selectedStore?.OrgUnitAvailability?.OrgUnitLocation?.OrgUnitName;\r\n const location = selectedStore?.OrgUnitAvailability?.OrgUnitLocation;\r\n const distanceAsString: string | undefined = buildDistanceString(location?.Distance, preferredDistanceUnit, isLocationDisabled);\r\n // eslint-disable-next-line no-nested-ternary -- Required to check stock Label\r\n const canSelectLocation = !shouldHideStockStatus && isInStock;\r\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\r\n payLoad.contentAction.etext = TelemetryConstant.PreferredStore;\r\n payLoad.contentAction.etext = TelemetryConstant.RemovePreferredStore;\r\n\r\n const viewProps: ISelectedStoreViewProps = {\r\n storeRenderedComponent,\r\n selectedStore,\r\n isCurrentLocation,\r\n canSelectLocation,\r\n resources,\r\n storeDetailsMain: {\r\n tag: 'div' as NodeTag,\r\n className: `${parentClassName}__main`\r\n },\r\n storeHeader: {\r\n tag: 'div' as NodeTag,\r\n className: `${parentClassName}__header`\r\n },\r\n storeName: {storeName},\r\n storeDetailsCloseButton: \r\n {recallDismissable ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default GenericPopupView;\r\n","/*!\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 { IIframeViewProps } from '@msdyn365-commerce-modules/iframe';\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * IFrameView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class IFrameView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { Heading, IframeContainer, IFrame, alert, cookieConsentAccepted } = this.props;\r\n\r\n return (\r\n \r\n {alert}\r\n {cookieConsentAccepted && cookieConsentAccepted === true ? (\r\n <>\r\n {Heading}\r\n
{IFrame}
\r\n \r\n ) : null}\r\n
\r\n );\r\n }\r\n}\r\nexport default IFrameView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n ISignUpEmailVerification,\r\n ISignUpItem,\r\n ISignUpLoading,\r\n ISignUpLocalAccount,\r\n ISignUpViewProps\r\n} from '@msdyn365-commerce-modules/account-management';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\r\n return (\r\n <>\r\n \r\n {successMessage &&\r\n successMessage.map((message: React.ReactNode) => {\r\n return <>{message};\r\n })}\r\n {errorMessage &&\r\n errorMessage.map((message: React.ReactNode) => {\r\n return <>{message};\r\n })}\r\n \r\n {buttons &&\r\n buttons.map((button: React.ReactNode) => {\r\n return <>{button};\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\nconst LocalAccount: React.FC = (\r\n { localAccount, items, emailVerification, buttons, errorMessage, disclaimer },\r\n props\r\n) => {\r\n const europe = ['/fr', '/de'];\r\n const locale = props?.context?.request?.locale;\r\n const uiLocales = props?.context?.request?.query.ui_locales;\r\n const regionCRM = europe.includes(uiLocales) ? uiLocales : props.config.RegionCRM;\r\n\r\n const [birthDate, setBirthDate] = React.useState('');\r\n const [formatDateState, setFormatDateState] = React.useState(true);\r\n const pattern = /^((1[6789]|[2-9][0-9])[0-9]{2}\\/(0[13578]|1[02])\\/(0[1-9]|[12][0-9]|3[01]))$|^((1[6789]|[2-9][0-9])[0-9]{2}\\/(0[469]|11)\\/(0[1-9]|[12][0-9]|30))$|^((16|[248][048]|[3579][26])00)|(1[6789]|[2-9][0-9])(0[48]|[13579][26]|[2468][048])\\/02\\/(0[1-9]|1[0-9]|2[0-9])$|^(1[6789]|[2-9][0-9])[0-9]{2}\\/02\\/(0[1-9]|1[0-9]|2[0-8])$/gm;\r\n const patternUS = /^((0[13578]|1[02])\\/(0[1-9]|[12][0-9]|3[01]))$|^((0[469]|11)\\/(0[1-9]|[12][0-9]|30))$|^02\\/(0[1-9]|1[0-9]|2[0-9])$/gm;\r\n\r\n const checkDate = (event: React.KeyboardEvent) => {\r\n const value = event.currentTarget.value;\r\n const today = new Date();\r\n if (value !== '' && (!value.match(locale !== 'en-US' ? pattern : patternUS) || today < new Date(value))) {\r\n setFormatDateState(false);\r\n } else {\r\n setFormatDateState(true);\r\n }\r\n if (locale === 'en-US') {\r\n setBirthDate(`1900/${value}`);\r\n }\r\n };\r\n if (typeof window !== 'undefined') {\r\n const signUpButton: HTMLElement = document.getElementById('continue') as HTMLElement;\r\n\r\n if (signUpButton !== undefined) {\r\n signUpButton.onclick = e => {\r\n if (!formatDateState) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n };\r\n }\r\n }\r\n\r\n return (\r\n \r\n {items &&\r\n items.map((item: ISignUpItem) => {\r\n if (item.key === 'email' && emailVerification.isRequired) {\r\n return (\r\n \r\n \r\n
\r\n \r\n {formatDateState === false ? (\r\n

{props.resources.birthdayErrorText}

\r\n ) : (\r\n ''\r\n )}\r\n {locale !== 'en-US' ? (\r\n checkDate(e)}\r\n onPaste={e => e.preventDefault()}\r\n />\r\n ) : (\r\n <>\r\n checkDate(e)}\r\n onPaste={e => e.preventDefault()}\r\n />\r\n \r\n \r\n )}\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {props.config.renderThirdPartyPrivacy && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n
\r\n );\r\n }\r\n return ;\r\n })}\r\n {errorMessage &&\r\n errorMessage.map((error: React.ReactNode, index: number) => {\r\n return {error};\r\n })}\r\n {buttons &&\r\n buttons.map((button: React.ReactNode, index: number) => {\r\n return {button};\r\n })}\r\n {disclaimer}\r\n
\r\n );\r\n};\r\n\r\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignUpView: React.FC = props => {\r\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading, signUpLocalAccount } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n {heading}\r\n {LocalAccount(signUpLocalAccount, props)}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SignUpView;\r\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 { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BSite) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BSite))\n );\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (\n account.Balance === 0 &&\n account.CreditLimit === 0 &&\n account.InvoiceAccountBalance === 0 &&\n account.InvoiceAccountCreditLimit === 0\n ) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n {error}\n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n {value}\n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n {label}\n {value}\n
\n);\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 } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountCustomerBalanceTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-customer-balance-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountCustomerBalanceTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IBusinessPartnerPromotionTermsParagraphProp {\n description: string;\n className: string;\n title?: string;\n titleClassName?: string;\n}\n\nexport const BusinessPartnerPromotionTermsParagraph: React.FC = ({\n title,\n description,\n className,\n titleClassName\n}) => {\n return (\n
  • \n {title &&

    {title}

    }\n

    {description}

    \n
  • \n );\n};\n\nexport default BusinessPartnerPromotionTermsParagraph;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { Button, Alert, IModuleProps, Modal, ModalBody, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport { promoteToSellerAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport { BusinessPartnerUser } from '@msdyn365-commerce/retail-proxy';\nimport { ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Text } from '@msdyn365-commerce/core';\nimport { IBusinessPartnerPromotionData } from './business-partner-promotion.data';\nimport { IBusinessPartnerPromotionProps } from './business-partner-promotion.props.autogenerated';\nimport { BusinessPartnerPromotionTermsParagraph } from './components';\n\nexport interface IBusinessPartnerPromotionViewProps extends IBusinessPartnerPromotionProps {\n businessPartnerPromotionProps: IModuleProps;\n heading: React.ReactNode;\n notificationMessage?: React.ReactNode;\n sellerDescriptions: React.ReactNode[];\n termsOfServiceCheckbox: React.ReactNode;\n termsOfServiceModal: React.ReactNode;\n submitButton: React.ReactNode;\n}\n\nexport interface IBusinessPartnerPromotionState {\n showTermsOfService: boolean;\n showSubmitButton: boolean;\n termsOfServiceChecked: boolean;\n termsOfServiceModalOpened: boolean;\n errorMessage?: string;\n notificationMessage?: string;\n}\n\n/**\n * The class name root for the module.\n */\nexport const moduleClassName: string = 'ms-business-partner-promotion';\n\n/**\n *\n * BusinessPartnerPromotion component\n * @extends {React.PureComponent>}\n */\nclass BusinessPartnerPromotion extends React.Component<\n IBusinessPartnerPromotionProps,\n IBusinessPartnerPromotionState\n> {\n constructor(props: IBusinessPartnerPromotionProps) {\n super(props);\n this.state = {\n showTermsOfService: true,\n showSubmitButton: true,\n termsOfServiceChecked: false,\n termsOfServiceModalOpened: false,\n errorMessage: undefined,\n notificationMessage: undefined\n };\n }\n\n public render(): JSX.Element | null {\n const {\n showSubmitButton,\n showTermsOfService,\n termsOfServiceChecked,\n termsOfServiceModalOpened,\n errorMessage,\n notificationMessage\n } = this.state;\n const { resources, data, config } = this.props;\n const { heading, termsOfService } = config;\n const { authorizationErrorMessage } = resources;\n const { b2bUserInformation } = data;\n const canSubmit = this.isAdminUser(b2bUserInformation.result);\n let error: string | undefined = errorMessage;\n\n // do not show error message when the API is still in loading.\n if (!canSubmit && b2bUserInformation.status !== 'LOADING') {\n error = authorizationErrorMessage;\n }\n const btnEnabled = canSubmit && termsOfServiceChecked;\n\n const viewProps: IBusinessPartnerPromotionViewProps = {\n ...this.props,\n businessPartnerPromotionProps: {\n moduleProps: this.props,\n className: classnames(moduleClassName, moduleClassName)\n },\n heading: ,\n notificationMessage: this.renderNotificationBar(error, notificationMessage),\n sellerDescriptions: this.renderSellerDescriptions(),\n termsOfServiceCheckbox: showTermsOfService && (\n
    \n \n {resources.termsOfServiceAgreementText}\n \n {resources.termsOfServiceLinkText}\n \n
    \n ),\n termsOfServiceModal: (\n \n {resources.termsOfServiceModalHeading}\n \n \n \n \n ),\n submitButton: showSubmitButton && (\n
    \n \n {resources.submitRequestLabel}\n \n
    \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n private renderNotificationBar(errorMessage: string | undefined, notificationMessage: string | undefined): React.ReactNode {\n let notificationBar: React.ReactNode = null;\n if (errorMessage) {\n notificationBar = {errorMessage};\n } else if (notificationMessage) {\n notificationBar = {notificationMessage};\n }\n return notificationBar;\n }\n\n private renderSellerDescriptions(): React.ReactNode[] {\n const { config } = this.props;\n const results: React.ReactNode[] = [];\n const sellerDescriptions = config.sellerDescriptions;\n\n if (!sellerDescriptions) {\n return results;\n }\n\n return sellerDescriptions.map((description, idx1) => {\n return (\n
    \n \n
      \n {description.bulletPoints?.map((bulletPoint, idx2) => {\n return (\n \n );\n })}\n
    \n
    \n );\n });\n }\n\n private isAdminUser(user: BusinessPartnerUser | undefined): boolean {\n return (\n !ObjectExtensions.isNullOrUndefined(user) && !StringExtensions.isNullOrEmpty(user.BusinessPartnerId) && user.IsAdmin === true\n );\n }\n\n private readonly onCheckBoxChange = (event: React.ChangeEvent) => {\n this.setState({\n termsOfServiceChecked: event.target.checked\n });\n };\n\n private readonly onToggleTermOfServiceModal = () => {\n this.setState({\n termsOfServiceModalOpened: !this.state.termsOfServiceModalOpened\n });\n };\n\n private readonly onSubmit = async (event: React.MouseEvent) => {\n const { context, data, resources } = this.props;\n const { errorMessageText, promoteToSellerSubmitSuccessMessage } = resources;\n const businessPartnerId = data.b2bUserInformation.result?.BusinessPartnerId ?? '';\n\n try {\n await promoteToSellerAsync({ callerContext: context.actionContext }, businessPartnerId);\n this.setState({\n showSubmitButton: false,\n showTermsOfService: false,\n errorMessage: undefined,\n notificationMessage: promoteToSellerSubmitSuccessMessage\n });\n } catch {\n this.setState({\n showTermsOfService: true,\n showSubmitButton: true,\n errorMessage: errorMessageText,\n notificationMessage: undefined\n });\n }\n };\n}\n\nexport default BusinessPartnerPromotion;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessPartnerPromotionViewProps } from './business-partner-promotion';\n\n/**\n * View layout of business partner promotion module.\n * @param props - React props of the component.\n * @returns Functional component.\n */\nconst businessPartnersView: React.FC = props => {\n const {\n businessPartnerPromotionProps,\n heading,\n notificationMessage,\n sellerDescriptions,\n termsOfServiceCheckbox,\n termsOfServiceModal,\n submitButton\n } = props;\n return (\n \n {heading}\n {notificationMessage}\n {sellerDescriptions}\n {termsOfServiceCheckbox}\n {termsOfServiceModal}\n {submitButton}\n \n );\n};\n\nexport default businessPartnersView;\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 MsDyn365, { IDictionary, IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { IMenuItemData, INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IDrawerState,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n categoryImageAltText: string;\n drawerKeyValue: IDictionary;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private currentLevel: number = 0;\n\n private readonly _positionInSetOffset: number = 1;\n\n private readonly escapeKey: number = 27;\n\n private readonly menuNode: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.state = { activeMenu: undefined, parentMenu: undefined, categoryImageAltText: '', drawerKeyValue: {} };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView } = this.props;\n\n this.currentLevel = 1;\n return <>{isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()};\n }\n\n /**\n * Method to render mobile menu.\n * @returns Jsx element.\n */\n private _renderMobileMenu(): JSX.Element {\n const { isMobileView, menuItemData, Navigation } = this.props;\n return (\n \n {menuItemData.map((menuItem: IMenuItemData, posinset: number) => {\n return this._renderDrawerMenu(menuItem, menuItemData.length, posinset + this._positionInSetOffset);\n })}\n \n );\n }\n\n /**\n * Method to render desktop menu.\n * @returns Jsx element.\n */\n private _renderDesktopMenu(): JSX.Element {\n const { MenuList, Navigation } = this.props;\n return (\n \n \n {this._renderDisplay()}\n \n \n );\n }\n\n /**\n * Method to render drawer menu.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerMenu(menuItem: IMenuItemData, setSize: number, posinset: number): JSX.Element | null {\n if (menuItem && menuItem.subMenu && ArrayExtensions.hasElements(menuItem.subMenu)) {\n return this._renderDrawer(menuItem, setSize, posinset);\n }\n return this._renderLinkMenuItem(menuItem, undefined, true, false, setSize, posinset);\n }\n\n /**\n * Method to render drawer component.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawer(menuItem: IMenuItemData, setSize?: number, posinset?: number): JSX.Element | null {\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue !== undefined ? keyValue : {};\n const { isMobileView } = this.props;\n\n let isDrawerOpen = false;\n if (keys[buttonText]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { isOpen: isDrawerOpen };\n return (\n \n
    \n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, currentPos: number) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n return this._renderDrawer(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n }\n return this._renderDrawerLink(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n })}\n
    \n \n );\n }\n\n /**\n * Method to render link.\n * @param linkText -Text on Menu link.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkText(linkText: string | undefined, setSize: number | undefined, posinset: number | undefined): JSX.Element {\n return (\n \n {linkText}\n \n );\n }\n\n /**\n * Method to render drawer link.\n * @param item -Single Menuitem.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerLink(item: IMenuItemData, setSize: number | undefined, posinset: number): JSX.Element | null {\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\n return this._renderLinkMenuItem(item, undefined, true, false, setSize, posinset);\n } else if (item && item.linkText && !item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n /**\n * Method to generate menu.\n * @returns Jsx element.\n */\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n this.setState({ parentMenu: undefined });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {` `}\n {this._createMenuItemList(menuItem)}\n {` `}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n /**\n * Method to get data for submenu.\n * @param item -Single Menuitem.\n * @returns IMenuItemData.\n */\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n this.setState({ parentMenu: item?.id });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n /**\n * Method to create item list.\n * @param menuItemData -Single Menuitem.\n * @returns Jsx element.\n */\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const subMenuLevel = 3;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || subMenuLevel;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n /**\n * Method to render button menu item.\n * @param option -Single Menuitem.\n * @param activeMenu -Active menu number.\n * @param index -Active menu index.\n * @returns Jsx element.\n */\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render link menu item.\n * @param option -Single Menuitem.\n * @param index -Active menu index.\n * @param hoverEffect -Active menu effect.\n * @param isParent -Is parent menu.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false,\n setSize?: number,\n posinset?: number\n ): JSX.Element | null {\n const { Link, isMobileView } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render promotional link.\n * @param linkText -Link text.\n * @param linkUrl -Link url.\n * @returns Jsx element.\n */\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n /**\n * Method to render span menu item.\n * @param option -Single Menu Item.\n * @param index -Index.\n * @param isParent -Is parent menu.\n * @returns Jsx element.\n */\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render menu.\n * @param level -Menu level.\n * @param menuOptions -Menu lists.\n * @param currentItem -Menu current.\n * @param submenu -Mneu has submenu or not.\n * @returns Jsx element.\n */\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, isMobileView, showPromotionalContent } = this.props;\n const categoryImageDisplay =\n !isMobileView && showCategoryImage && this.state.categoryImage !== null && this.state.categoryImage !== undefined && !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n
    \n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n
    \n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n /**\n * Method to handle dropdwon change.\n * @param data -Menuitem data.\n * @param parentId -Menu parent.\n * @returns Jsx element.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n }\n\n this._resetFocus();\n };\n\n /**\n * Method to call when focus lost from menu.\n */\n private readonly _resetFocus = () => {\n if (this.props.isMobileView) {\n setTimeout(() => {\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\n }, 0);\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Method to handle close submenu event.\n */\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined });\n }\n }\n\n /**\n * Method to handle escape key event.\n * @param event -HTML event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey) {\n if (!this.props.isMobileView) {\n const navDrawerList = Array.from(this.menuNode.current!.childNodes);\n for (const item of navDrawerList) {\n const navDrawerButton = item.firstChild as HTMLButtonElement;\n if (navDrawerButton.getAttribute('aria-expanded') === 'true') {\n navDrawerButton.focus();\n }\n }\n }\n this._closeSubmenu();\n }\n };\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(categoryImage.src, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n const ImageData: IImageData = { src: categoryImageUrl };\n return (\n \n );\n }\n return null;\n };\n\n /**\n * Method to handle escape key event.\n * @param drawerState -HTML event.\n */\n private readonly _onDrawerChange = (drawerState: IDrawerState) => {\n const { drawerKeyValue } = this.state;\n const drawerText: string = drawerState.buttonText !== undefined ? drawerState.buttonText : '';\n const newPair = { [drawerText]: drawerState.isOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n}\n\nexport default NavigationMenuView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\n\nimport { ICategoryPromotionalContentData } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuData {\n categories: AsyncResult;\n}\n\nexport interface IMenuItemData {\n id?: number;\n linkText?: string;\n linkURL?: string;\n imageSource?: string;\n imageDestinationURL?: string;\n subMenu?: IMenuItemData[];\n promotionalContent?: ICategoryPromotionalContentData[];\n menuSource?: string;\n shouldOpenNewTab?: boolean;\n ariaLabel?: string;\n}\n\n/**\n *\n * Menu type index id.\n */\nexport enum MenuTypeIndexId {\n Cms = 1000,\n Retail = 5000\n}\n\n/**\n *\n * Menu type source.\n */\nexport enum MenuSource {\n Cms = 'Cms',\n Retail = 'Retail'\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365, { IActionContext, IGridSettings, IImageSettings, isEmptyOrNullObject } from '@msdyn365-commerce/core';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, getCategoryUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport * as React from 'react';\n\nimport { IMenuItemData, INavigationMenuData, MenuSource, MenuTypeIndexId } from './navigation-menu.data';\nimport { ICmsNavItemsData, INavigationMenuProps, ISubMenusData, navigationMenuSource } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuViewProps extends INavigationMenuProps {\n className: string;\n menuItemData: IMenuItemData[];\n Navigation: IModuleProps;\n MenuList: INodeProps;\n ListItem: INodeProps;\n Link: INodeProps;\n Button: INodeProps;\n Span: INodeProps;\n ImageContainer: INodeProps;\n MobileDescriptionContainer: INodeProps;\n MobileBackButton: INodeProps;\n MobileDescriptionLabel: INodeProps;\n imageSettings: IImageSettings;\n gridSettings: IGridSettings;\n isMobileView: boolean;\n DivContainer?: INodeProps;\n ImageDivContainer?: INodeProps;\n showCategoryImage?: boolean;\n showPromotionalContent?: boolean;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface INavigationMenuState {\n isMobile: boolean;\n}\n\n/**\n *\n * NavigationMenu component.\n * @extends {React.PureComponent>}\n */\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\n private static CMSItemIdInit: number = MenuTypeIndexId.Cms;\n\n private static RSItemIdInit: number = MenuTypeIndexId.Retail;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n private menuItemList: IMenuItemData[];\n\n private isRetail: boolean = true;\n\n private isCMS: boolean = true;\n\n @observable\n private viewport: GridSize;\n\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && nameTranslations.length > 0) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n return nameTranslation && nameTranslation.Text;\n }\n\n constructor(props: INavigationMenuProps) {\n super(props);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._setNavigationSource(this.props.config && this.props.config.navigationMenuSource);\n this.state = { isMobile: this.isMobile };\n this.menuItemList = [];\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n this.resizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n }\n this._updateViewport();\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n this.menuItemList = this._mapData();\n if (isEmptyOrNullObject(this.props.data)) {\n this.props.telemetry.error('Navigatiomenu returned null');\n return null;\n }\n\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=224&h=300&m=6', w: 0, h: 0 },\n xl: { q: 'w=224&h=300&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n const viewProps = {\n ...this.props,\n ...this.state,\n imageSettings: defaultImageSettings,\n gridSettings: this.props.context.request.gridSettings,\n Navigation: {\n moduleProps: this.props,\n className: classnames('ms-nav', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp'),\n tag: 'nav',\n role: this.isMobile ? 'listbox' : 'navigation'\n },\n MenuList: {\n className: 'ms-nav__list',\n tag: 'ul',\n role: this.isMobile ? 'listbox' : 'menu'\n },\n ListItem: {\n className: 'ms-nav__list__item',\n role: 'presentation',\n tag: 'li'\n },\n showCategoryImage: this.props.config.displayCategoryImage ?? false,\n showPromotionalContent: this.props.config.displayPromotionalImage ?? false,\n Link: {\n tag: 'a',\n className: 'ms-nav__list__item__link',\n role: this.isMobile ? 'option' : 'menuitem'\n },\n DivContainer: {\n tag: 'div',\n className: 'ms-nav__feature'\n },\n ImageDivContainer: {\n tag: 'div',\n className: 'category-image',\n role: 'tabpanel'\n },\n Button: {\n className: 'ms-nav__list__item__button',\n tag: 'button',\n role: this.isMobile ? 'option' : 'menuitem',\n onClick: this.props\n },\n ImageContainer: {\n className: 'ms-nav__list__item__image'\n },\n Span: {\n className: 'ms-nav__list__item__span',\n tag: 'span'\n },\n MobileDescriptionContainer: {\n className: 'ms-nav__list__mobile__container'\n },\n MobileBackButton: {\n className: 'ms-nav__list__mobile__container__button',\n tag: 'button',\n 'aria-label': this.props.resources.backButtonAriaLabel,\n onClick: this.props\n },\n MobileDescriptionLabel: {\n className: 'ms-nav__list__mobile__container__span',\n tag: 'span'\n },\n isMobileView: this.state.isMobile,\n menuItemData: this.menuItemList,\n className: classnames('ms-nav', this.props.config.className)\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _mapData(): IMenuItemData[] {\n const { data, config } = this.props;\n const mergedData: IMenuItemData[] = [];\n if (this.isRetail && data && data.categories && data.categories.result && data.categories.result.length > 0) {\n data.categories.result.map((item: CategoryHierarchy, index) =>\n mergedData.push(this._constructMenuItemData(item, undefined, true, index, true))\n );\n }\n\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\n config.cmsNavItems.map((item: ICmsNavItemsData, idx: number) =>\n mergedData.push(this._constructMenuItemData(undefined, item, false, idx + 1))\n );\n }\n return this._constructTopMenuItemData(mergedData);\n }\n\n private _constructTopMenuItemData(mergedData: IMenuItemData[]): IMenuItemData[] {\n const enableTopLevelMenu = this.props.config.enabletopMenu ?? false;\n if (!enableTopLevelMenu) {\n return mergedData;\n }\n const mergedRootMenuData: IMenuItemData[] = [];\n const topMenu = {\n id: 1,\n linkText: this.props.config.rootMenuNavigation ?? '...',\n linkURL: '#',\n imageSource: undefined,\n subMenu: mergedData\n } as IMenuItemData;\n mergedRootMenuData.push(topMenu);\n\n return mergedRootMenuData;\n }\n\n private _constructMenuItemData(\n retailItem?: CategoryHierarchy,\n cmsItem?: ICmsNavItemsData,\n isRetail?: boolean,\n idx?: number,\n addedAllMenu?: boolean\n ): IMenuItemData {\n const locale =\n this.props.context && this.props.context.request && this.props.context.request.locale\n ? this.props.context.request.locale\n : 'en-us';\n const { categoryPromotionalContent } = this.props.config;\n const cmsItemText = (cmsItem && cmsItem.linkText) || '';\n const { menuAriaLabel } = this.props.resources;\n\n // Filter category promotional data based on category name\n const promotionalData =\n retailItem &&\n categoryPromotionalContent?.filter(promoItem => promoItem.categoryName?.toLowerCase() === retailItem?.Name?.toLowerCase());\n\n // First check if image is available from promotional data else read from retail server\n let imageSource: string = 'empty';\n if (ArrayExtensions.hasElements(retailItem?.Images) && retailItem!.Images[0].Uri) {\n imageSource = retailItem!.Images[0].Uri;\n }\n if (isRetail) {\n return {\n id: NavigationMenu.RSItemIdInit++,\n linkText: NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? '',\n linkURL: retailItem?.Url,\n imageSource,\n subMenu: this._getNestedChildren(retailItem, imageSource, addedAllMenu),\n promotionalContent: this.props.config.displayPromotionalImage && promotionalData,\n menuSource: MenuSource.Retail,\n ariaLabel: `${NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? ''} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n return {\n id: NavigationMenu.CMSItemIdInit++,\n linkText: cmsItemText,\n linkURL: (cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl) || '',\n imageDestinationURL: (cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl) || '',\n imageSource: (cmsItem && cmsItem.image && cmsItem.image.src) || '',\n subMenu: this._getCMSNestedChildren(cmsItem),\n menuSource: MenuSource.Cms,\n shouldOpenNewTab: cmsItem?.openInNewTab,\n ariaLabel: `${cmsItemText} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n\n private _getNestedChildren(category?: CategoryHierarchy, imageSourceUrl?: string, addedAllMenu: boolean = false): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n if (!category || !category.Children || category.Children.length === 0) {\n return [];\n }\n if (!this.props.config.enabletopMenu && addedAllMenu) {\n nestedChildren.push({\n linkText: this.props.resources.allCategoryMenuText,\n imageSource: imageSourceUrl,\n linkURL: getCategoryUrl(category, (this.props.context as unknown) as IActionContext, {})\n });\n }\n category.Children.map((item: CategoryHierarchy, index) => {\n nestedChildren.push(this._constructMenuItemData(item, undefined, true, index, false));\n });\n return nestedChildren;\n }\n\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n\n if (!category || !category.subMenus || category.subMenus.length === 0) {\n return [];\n }\n\n category.subMenus.map((item: ISubMenusData, idx: number) => {\n nestedChildren.push(this._constructMenuItemData(undefined, item, false, idx));\n });\n return nestedChildren;\n }\n\n private readonly _setNavigationSource = (sourceType?: navigationMenuSource): void => {\n switch (sourceType) {\n case navigationMenuSource.retailServerOnly:\n this.isRetail = true;\n this.isCMS = false;\n break;\n case navigationMenuSource.cmsOnly:\n this.isRetail = false;\n this.isCMS = true;\n break;\n case navigationMenuSource.all:\n this.isRetail = true;\n this.isCMS = true;\n break;\n default:\n }\n };\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n }\n}\n\nexport default NavigationMenu;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { INavigationMenuViewProps } from './navigation-menu';\nimport { IMenuItemData } from './navigation-menu.data';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n mobileViewLabelText?: string;\n categoryImageAltText: string;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private currentLevel: number = 0;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n this.state = { activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined, categoryImageAltText: '' };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView, MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props;\n\n this.currentLevel = 1;\n return (\n \n \n {isMobileView && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: undefined })\n : this.setState({ parentMenu: undefined, mobileViewLabelText: menuItemDatum.linkText });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {' '}\n {this._createMenuItemList(menuItem)}{' '}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: item?.id })\n : this.setState({ parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n this.props.context.telemetry.error('Submenu content is empty, module wont render.');\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n this.props.context.telemetry.error('Navigation menu content is empty, module wont render.');\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || 3;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false\n ): JSX.Element | null {\n const { Link } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent, isMobileView } = this.props;\n const categoryImageDisplay =\n !isMobileView &&\n (showCategoryImage || showPromotionalContent) &&\n !ArrayExtensions.hasElements(this.state.categoryImage) &&\n !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuView.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n private readonly _handleGoBack = () => () => {\n NavigationMenuView.isBackTrack = true;\n this.setState({ activeMenu: this.state.parentMenu });\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n mobileViewLabelText: '',\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Parent user clicked Sub menu list.\n * @param optionLinkText -Sub menu list.\n * @returns Ref.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n if (!NavigationMenuView.isBackTrack && index === 0) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined, categoryImage: null, mobileViewLabelText: '' });\n }\n }\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(`${categoryImage.src}`, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n return (\n \n );\n }\n return null;\n };\n}\n\nexport default NavigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IContentBlockAdditionalContentItemViewProps,\n IContentBlockAdditionalContentViewProps,\n IContentBlockViewProps\n} from '@msdyn365-commerce-modules/content-block';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\n/**\n * Render View.\n * @param props - The view props.\n * @returns -The JSX Element.\n */\nconst contentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n // @ts-expect-error HTML element need to be clear on run time.\n const hasImage: boolean = image.props.src;\n const imageClass: string = hasImage ? `${detailsContainer.className} withImage` : `${detailsContainer.className} withoutImage`;\n\n if (imageLink) {\n return (\n \n \n {image}\n \n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default contentBlockView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return (\n \n {' '}\n \n );\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\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 { INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { INavigationMenuProps } from '../../definition-extensions/navigation-menu.ext.props.autogenerated';\n\n/**\n * INavigationMenuViewRootProps.\n */\nexport interface INavigationMenuViewRootProps {\n navProps: INavigationMenuViewProps & INavigationMenuProps<{}>;\n}\n\n/**\n * Represent navigation menu state interface.\n */\nexport interface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: Msdyn365.IImageData[] | null;\n mobileViewLabelText?: string;\n drawerKeyValue: Msdyn365.IDictionary;\n isOnlyMobile: boolean;\n isNavOpen: boolean;\n}\n\n/**\n * NavMenuConstants enum.\n */\nexport enum NavMenuConstants {\n zero = 0,\n one = 1,\n two = 2,\n three = 3,\n four = 4,\n escapeKey = 27,\n rootMenu = 1\n}\n\n/**\n * GridSizes.\n */\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Get category image.\n * @param props - Navigation menu props.\n * @param categoryImage - Category Image.\n * @param alttext - AltText String.\n * @returns Returns Node.\n */\nexport const getCategoryImage = (props: INavigationMenuViewRootProps, categoryImage: string, alttext: string): React.ReactNode | null => {\n const categoryImageUrl = generateImageUrl(`${categoryImage}`, props.navProps.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=162&h=162&m=8', w: 0, h: 0 },\n sm: { q: 'w=162&h=162&m=8', w: 0, h: 0 },\n md: { q: 'w=203&h=203&m=8', w: 0, h: 0 },\n lg: { q: 'w=203&h=203&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n const imageData: Msdyn365.IImageData = { src: categoryImageUrl };\n return (\n \n );\n }\n return null;\n};\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 { IMenuItemData, MenuTypeIndexId } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n addThrottledEvent,\n Button,\n Collapse,\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IPayLoad,\n isMobile,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { getCategoryImage, INavigationMenuViewRootProps, INavigationState, NavMenuConstants } from './navigation-menu-utilities';\n\n/**\n *\n * NavigationMenuRootDisabled component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuRootDisabled extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private readonly supportedLevel: number = NavMenuConstants.four;\n\n private currentLevel: number = NavMenuConstants.zero;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly escapeKey: number = NavMenuConstants.escapeKey;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly promotionalImage: Msdyn365.IImageData[] = [];\n\n private readonly payLoad: IPayLoad;\n\n private readonly attributes?: Msdyn365.IDictionary;\n\n private customResizeThrottledEventHandler?: (event: Event) => void;\n\n public constructor(props: INavigationMenuViewRootProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n const { menuItemData } = this.props.navProps;\n if (ArrayExtensions.hasElements(menuItemData) && ArrayExtensions.hasElements(menuItemData[0].subMenu)) {\n const imagesource = menuItemData[0].subMenu[0].imageSource ? menuItemData[0].subMenu[0].imageSource : '';\n const linkText = menuItemData[0].subMenu[0].linkText ? menuItemData[0].subMenu[0].linkText : '';\n this.promotionalImage = [{ src: imagesource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(menuItemData[0].subMenu[0].promotionalContent)) {\n menuItemData[0].subMenu[0].promotionalContent.map(item => {\n const imageSource = item.image.src;\n this.promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n return null;\n });\n }\n }\n\n this.state = {\n activeMenu: 1,\n mobileViewLabelText: '',\n parentMenu: undefined,\n drawerKeyValue: {},\n isOnlyMobile: this.isOnlyMobile,\n categoryImage: this.promotionalImage,\n isNavOpen: false\n };\n this.telemetryContent = getTelemetryObject(\n this.props.navProps.context.request.telemetryPageName!,\n this.props.navProps.friendlyName,\n this.props.navProps.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n }\n\n @computed public get isOnlyMobile(): boolean {\n return isMobile({ variant: VariantType.Browser, context: this.props.navProps.context.request }) === 'xs';\n }\n\n public componentDidMount(): void {\n this.customResizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._customUpdateViewport as EventListener);\n document.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n this._customUpdateViewport();\n document.body.addEventListener('mousedown', this._handleClickOutside);\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.navProps.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n window.removeEventListener('resize', this.customResizeThrottledEventHandler!, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n }\n\n public render(): JSX.Element | null {\n this.currentLevel = 1;\n const navbarKey = 'header-nav-mobile';\n return (\n \n {this.state.isOnlyMobile ? (\n this._renderMobileMenu()\n ) : (\n <>\n \n {this._renderCollapseMenu()}\n \n )}\n \n );\n }\n\n /**\n * Function to handle nav bar toggle.\n */\n private readonly _toggleNavBar = (): void => {\n this.setState(previousState => ({\n activeMenu: 1,\n isNavOpen: !previousState.isNavOpen\n }));\n };\n\n private _renderCollapseMenu(): JSX.Element | null {\n return (\n \n {this.state.isOnlyMobile ? this._renderMobileMenu() : this._renderDesktopMenu()}\n \n );\n }\n\n private _renderMobileMenu(): JSX.Element {\n const { MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props.navProps;\n\n this.currentLevel = 1;\n return (\n \n \n {this.state.isOnlyMobile && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDesktopMenu(): JSX.Element {\n const { MenuList, Navigation } = this.props.navProps;\n\n return (\n \n \n {this._renderDisplay()}\n
    \n
    \n
    \n
    \n );\n }\n\n private _renderDrawerLink(item: IMenuItemData): JSX.Element | null {\n if (item.linkURL && !StringExtensions.isNullOrWhitespace(item.linkURL)) {\n return this._renderLinkMenuItem(item);\n } else if (!item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem } = this.props.navProps;\n const menuItemData: IMenuItemData[] = this.props.navProps.menuItemData;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (ArrayExtensions.hasElements(menuItemData)) {\n menuItemData[0].id = 1;\n }\n\n if (this.state.isOnlyMobile && activeMenu !== undefined && ArrayExtensions.hasElements(menuItemData)) {\n const menuItem = this._getFromSubMenu(undefined, menuItemData);\n\n if (menuItem) {\n menuItemList.push(\n \n {` `}\n {this._createMenuItemList(menuItem)} {` `}\n \n );\n }\n } else {\n for (const [index, item] of menuItemData.entries()) {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n
    \n );\n }\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(parentMenuId?: number, menu?: IMenuItemData[]): IMenuItemData | null {\n if (!menu) {\n return null;\n }\n\n for (let index = 0; index <= menu.length - NavMenuConstants.one; index++) {\n const item: IMenuItemData = menu[Number(index)];\n\n if (item.id === this.state.activeMenu) {\n if (!NavigationMenuRootDisabled.isBackTrack) {\n this.setState({ parentMenu: parentMenuId });\n } else {\n this.setState({ parentMenu: parentMenuId, mobileViewLabelText: item.linkText });\n }\n return item;\n }\n const found = this._getFromSubMenu(item.id, item.subMenu);\n if (found) {\n return found;\n }\n }\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (ArrayExtensions.hasElements(menuItemData.subMenu)) {\n if (this.state.isOnlyMobile && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n } else if (menuItemData.linkURL && !StringExtensions.isNullOrWhitespace(menuItemData.linkURL)) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id);\n } else if (!menuItemData.linkURL && !(this.state.isOnlyMobile && this.state.activeMenu !== undefined)) {\n return this._renderSpanMenuItem(menuItemData);\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenuArray?: IMenuItemData[], activeMenu?: number, isSubMenu?: boolean): JSX.Element | null {\n let subMenus: IMenuItemData[] | undefined = subMenuArray;\n if (activeMenu === NavMenuConstants.rootMenu) {\n subMenus = subMenuArray!.filter(subMenuItem => subMenuItem.id && subMenuItem.id >= MenuTypeIndexId.Retail);\n }\n\n const { ListItem } = this.props.navProps;\n const isEnableMultiSupportMenu = this.props.navProps.config.enableMultilevelMenu ?? false;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.navProps.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || !ArrayExtensions.hasElements(subMenus)) {\n this.props.navProps.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions = subMenus.map((option: IMenuItemData, index: number) => {\n const hasOptions = option.subMenu && ArrayExtensions.hasElements(option.subMenu);\n let menuItem: JSX.Element | null;\n if (hasOptions && this.state.isOnlyMobile) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, index);\n } else if (this.currentLevel === NavMenuConstants.one || !hasOptions) {\n menuItem = this.getMenuItem(option, index);\n } else {\n menuItem = null;\n }\n let subMenu;\n const isHavingSubmenu =\n hasOptions && isEnableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - NavMenuConstants.one;\n\n if (hasOptions && !this.state.isOnlyMobile) {\n if (this.currentLevel >= NavMenuConstants.two) {\n subMenu = this._renderSubMenuDrawer(option);\n } else if (this.currentLevel <= this.supportedLevel) {\n this.currentLevel++;\n levelClassName = `level-${this.currentLevel.toString()}`;\n subMenu = this._renderSubMenu(option.subMenu, undefined, true);\n }\n }\n\n if (isHavingSubmenu && this.state.isOnlyMobile) {\n this.currentLevel++;\n levelClassName = isEnableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, option.id, true);\n }\n const imagesource = option.imageSource ? option.imageSource : '';\n return (\n \n {menuItem}\n {subMenu}\n
    \n );\n });\n return this._renderMenu(levelClassName, menuOptions, isSubMenu);\n }\n\n private getMenuItem(option: IMenuItemData, index: number): JSX.Element | null {\n let menuItem: JSX.Element | null;\n if (this.currentLevel === NavMenuConstants.one) {\n menuItem = option.linkURL ? this._renderLinkMenuItemLevelOne(option, index) : this._renderSpanMenuItem(option);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, index) : this._renderSpanMenuItem(option);\n }\n return menuItem;\n }\n\n private _renderSubMenuDrawer(menuItem: IMenuItemData): JSX.Element | null {\n const levelClassName = `level-${this.currentLevel.toString()}`;\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n let isDrawerOpen = false;\n if (keys[menuItem.id!]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { timeout: 0, isOpen: isDrawerOpen };\n\n return (\n \n
    \n {menuItem.subMenu!.map((menuSubItem: IMenuItemData) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n this.currentLevel++;\n if (this.currentLevel < multiLevelSupportedMenu) {\n return this._renderSubMenuDrawer(menuSubItem);\n }\n }\n return this._renderDrawerLink(menuSubItem);\n })}\n
    \n \n );\n }\n\n /**\n * Method to handle escape key event.\n * @param menuId -Number.\n * @param isDrawerOpen -Boolean.\n * @returns Void.\n */\n private readonly _bindDesktopCategoryClick = (menuId: number | undefined, isDrawerOpen: boolean) => (): void => {\n const { drawerKeyValue } = this.state;\n const newPair = { [menuId!]: !isDrawerOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItemLevelOne(option: IMenuItemData, index?: number, isHoverEffect: boolean = true): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props.navProps;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Span } = this.props.navProps;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], isSubmenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent } = this.props.navProps;\n const isCategoryImageDisplay =\n !this.state.isOnlyMobile &&\n showCategoryImage &&\n this.state.categoryImage !== null &&\n this.state.categoryImage !== undefined &&\n !isSubmenu;\n const isPromotionalContentDisplay =\n !this.state.isOnlyMobile && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !isSubmenu;\n const divContainerClass =\n this.currentLevel > NavMenuConstants.two || isCategoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = NavMenuConstants.one;\n const menuLevelSupportClassName =\n isCategoryImageDisplay &&\n this.props.navProps.config.menuLevelSupport &&\n this.props.navProps.config.menuLevelSupport > NavMenuConstants.two &&\n 'navmenu-multi-level';\n\n const categoryImages = this.state.categoryImage?.filter(image => !StringExtensions.isNullOrWhitespace(image.src));\n const imagesContainerKey = categoryImages?.map(item => item.src).join('-');\n return (\n \n \n {menuOptions}\n \n
    \n {isCategoryImageDisplay &&\n ArrayExtensions.hasElements(categoryImages) &&\n categoryImages.map(item => (\n \n {getCategoryImage(this.props, item.src ?? '', item.altText!.toString())}\n {isPromotionalContentDisplay &&\n this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n
    \n \n );\n }\n\n /**\n * Handle Category image update.\n * @param categoryImageSource - Image source.\n * @param option - Menu Item data.\n * @returns Returns empty.\n */\n private readonly _updateCategoryImage = (categoryImageSource: string, option: IMenuItemData) => () => {\n const linkText = option.linkText ? option.linkText : '';\n const promotionalImage: Msdyn365.IImageData[] = [{ src: categoryImageSource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n for (const item of option.promotionalContent) {\n const imageSource = item.image.src;\n promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n }\n this.setState({\n categoryImage: ArrayExtensions.hasElements(promotionalImage) ? promotionalImage : [{ src: 'empty' }]\n });\n };\n\n /**\n * Handle dropdown toggle.\n * @param data - Menu Item data.\n * @param parentId - Number.\n * @returns Returns empty.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.state.isOnlyMobile) {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n if (this.props.navProps.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuRootDisabled.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n /**\n * Handle back navigation for menu items for mobile view.\n * @returns Returns empty.\n */\n private readonly _handleGoBack = () => () => {\n NavigationMenuRootDisabled.isBackTrack = true;\n this.setState(previousState => ({ activeMenu: previousState.parentMenu }));\n };\n\n /**\n * Function to close the nav menu on click on body.\n * @param event - MouseEvent.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: 1, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Mobile view label text.\n * @param optionLinkText -Sub menu item link text.\n * @returns Boolean.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n const firstIndex: number = 0;\n if (!NavigationMenuRootDisabled.isBackTrack && index === firstIndex) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n /**\n * Function to handle nav menu close.\n */\n private readonly _closeNavMenu = (): void => {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: 1, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n (this.menuNode.current?.children[0] as HTMLElement).focus();\n };\n\n /**\n * Function to close the nav menu on esc key.\n * @param event - Event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey && !this.state.isOnlyMobile && this.state.isNavOpen) {\n this.setState({ activeMenu: 1, mobileViewLabelText: '', isNavOpen: false });\n (this.menuNode.current?.children[0] as HTMLElement).focus();\n }\n };\n\n /**\n * Custom update viewport.\n */\n private readonly _customUpdateViewport = (): void => {\n this.setState({ isOnlyMobile: this.isOnlyMobile });\n };\n}\n\nexport default NavigationMenuRootDisabled;\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 { IMenuItemData, MenuSource, MenuTypeIndexId } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n addThrottledEvent,\n Button,\n Collapse,\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IPayLoad,\n isMobile,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { getCategoryImage, INavigationMenuViewRootProps, INavigationState, NavMenuConstants } from './navigation-menu-utilities';\n\n/**\n *\n * NavigationMenuRootEnabled component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuRootEnabled extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private readonly supportedLevel: number = NavMenuConstants.four;\n\n private currentLevel: number = NavMenuConstants.zero;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly escapeKey: number = NavMenuConstants.escapeKey;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly promotionalImage: Msdyn365.IImageData[] = [];\n\n private menuItemData: IMenuItemData[] = [];\n\n private readonly payLoad: IPayLoad;\n\n private readonly attributes?: Msdyn365.IDictionary;\n\n private customResizeThrottledEventHandler?: (event: Event) => void;\n\n public constructor(props: INavigationMenuViewRootProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n const { menuItemData } = this.props.navProps;\n if (ArrayExtensions.hasElements(menuItemData) && ArrayExtensions.hasElements(menuItemData[0].subMenu)) {\n const imagesource = menuItemData[0].subMenu[0].imageSource ? menuItemData[0].subMenu[0].imageSource : '';\n const linkText = menuItemData[0].subMenu[0].linkText ? menuItemData[0].subMenu[0].linkText : '';\n this.promotionalImage = [{ src: imagesource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(menuItemData[0].subMenu[0].promotionalContent)) {\n menuItemData[0].subMenu[0].promotionalContent.map(item => {\n const imageSource = item.image.src;\n this.promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n return null;\n });\n }\n }\n this.state = {\n activeMenu: NavMenuConstants.rootMenu,\n mobileViewLabelText: '',\n parentMenu: undefined,\n drawerKeyValue: {},\n isOnlyMobile: this.isOnlyMobile,\n categoryImage: this.promotionalImage,\n isNavOpen: false\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.navProps.context.request.telemetryPageName!,\n this.props.navProps.friendlyName,\n this.props.navProps.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n }\n\n @computed public get isOnlyMobile(): boolean {\n return isMobile({ variant: VariantType.Browser, context: this.props.navProps.context.request }) === 'xs';\n }\n\n public componentDidMount(): void {\n this.customResizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._customUpdateViewport as EventListener);\n document.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n this._customUpdateViewport();\n document.body.addEventListener('mousedown', this._handleClickOutside);\n this._addShopAllLink();\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.navProps.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n window.removeEventListener('resize', this.customResizeThrottledEventHandler!, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n }\n\n public render(): JSX.Element | null {\n this.currentLevel = NavMenuConstants.one;\n const navbarKey = 'header-nav-mobile';\n return (\n \n {this.state.isOnlyMobile ? (\n this._renderMobileMenu()\n ) : (\n <>\n \n {this._renderCollapseMenu()}\n \n )}\n \n );\n }\n\n /**\n * Function to handle nav bar toggle.\n */\n private readonly _toggleNavBar = (): void => {\n this.setState(previousState => ({\n activeMenu: NavMenuConstants.rootMenu,\n isNavOpen: !previousState.isNavOpen\n }));\n };\n\n private _renderCollapseMenu(): JSX.Element | null {\n return (\n \n {this.state.isOnlyMobile ? this._renderMobileMenu() : this._renderDesktopMenu()}\n \n );\n }\n\n private _renderMobileMenu(): JSX.Element {\n const { MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props.navProps;\n\n this.currentLevel = NavMenuConstants.one;\n return (\n \n \n {this.state.isOnlyMobile && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDesktopMenu(): JSX.Element {\n const { Navigation } = this.props.navProps;\n return (\n \n \n {this._renderDisplay()}\n
    \n
    \n
    \n
    \n );\n }\n\n private _renderDrawerLink(item: IMenuItemData): JSX.Element | null {\n if (item.linkURL && !StringExtensions.isNullOrWhitespace(item.linkURL)) {\n return this._renderLinkMenuItem(item);\n } else if (!item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem } = this.props.navProps;\n let menuItemData: IMenuItemData[] = [];\n if (this.state.isOnlyMobile) {\n menuItemData = this.menuItemData;\n } else {\n menuItemData = this.props.navProps.menuItemData;\n }\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n let cmsMenuData: IMenuItemData[] | undefined = [];\n let retailMenuItemData: IMenuItemData[] | undefined = [];\n const retailMenuData = JSON.parse(JSON.stringify(menuItemData)) as IMenuItemData[];\n\n for (const item of retailMenuData) {\n retailMenuItemData = item.subMenu!.filter(subMenuItem => subMenuItem.id && subMenuItem.id >= MenuTypeIndexId.Retail);\n item.subMenu = retailMenuItemData;\n }\n\n for (const item of menuItemData) {\n cmsMenuData = item.subMenu!.filter(subMenuItem => subMenuItem.id && subMenuItem.id < MenuTypeIndexId.Retail);\n }\n\n if (this.state.isOnlyMobile && activeMenu !== undefined && ArrayExtensions.hasElements(menuItemData)) {\n let menuItem: IMenuItemData | null = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n if (!NavigationMenuRootEnabled.isBackTrack) {\n this.setState({\n parentMenu: undefined\n });\n } else {\n this.setState({\n parentMenu: undefined,\n mobileViewLabelText: menuItemDatum.linkText\n });\n }\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum);\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n if (menuItem) {\n menuItemList.push(\n \n {` `}\n {this._createMenuItemList(menuItem)} {` `}\n \n );\n }\n } else {\n for (const [index, item] of retailMenuData.entries()) {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n
    \n );\n }\n\n for (const [index, item] of cmsMenuData.entries()) {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n }\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item?.subMenu;\n if (subMenus && ArrayExtensions.hasElements(subMenus)) {\n for (let index = 0; index <= subMenus.length - NavMenuConstants.one; index++) {\n const subMenu: IMenuItemData = subMenus[Number(index)];\n let parentMenuId = item?.id;\n\n if (subMenu.id === this.state.activeMenu) {\n if (parentMenuId === NavMenuConstants.rootMenu && subMenu.id! < MenuTypeIndexId.Retail) {\n parentMenuId = undefined;\n }\n\n if (!NavigationMenuRootEnabled.isBackTrack) {\n this.setState({ parentMenu: parentMenuId });\n } else {\n this.setState({ parentMenu: parentMenuId, mobileViewLabelText: subMenu.linkText });\n }\n return subMenu;\n }\n const found = this._getFromSubMenu(subMenu);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (ArrayExtensions.hasElements(menuItemData.subMenu)) {\n if (this.state.isOnlyMobile && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n } else if (menuItemData.linkURL && !StringExtensions.isNullOrWhitespace(menuItemData.linkURL)) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id);\n } else if (!menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData);\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenuArray?: IMenuItemData[], activeMenu?: number, isSubMenu?: boolean): JSX.Element | null {\n let subMenus: IMenuItemData[] | undefined = subMenuArray;\n if (activeMenu === NavMenuConstants.rootMenu) {\n subMenus = subMenuArray!.filter(subMenuItem => subMenuItem.id && subMenuItem.id >= MenuTypeIndexId.Retail);\n }\n\n const { ListItem } = this.props.navProps;\n const isEnableMultiSupportMenu = this.props.navProps.config.enableMultilevelMenu ?? false;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.navProps.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || !ArrayExtensions.hasElements(subMenus)) {\n this.props.navProps.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions = subMenus.map((option: IMenuItemData, index: number) => {\n const hasOptions = option.subMenu && ArrayExtensions.hasElements(option.subMenu);\n let menuItem: JSX.Element | null;\n if (hasOptions && this.state.isOnlyMobile) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, index);\n } else if (this.currentLevel === NavMenuConstants.one || !hasOptions) {\n menuItem = this.getMenuItem(option, index);\n } else {\n menuItem = null;\n }\n let subMenu;\n const isHavingSubmenu =\n hasOptions && isEnableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - NavMenuConstants.one;\n\n if (hasOptions && !this.state.isOnlyMobile) {\n if (this.currentLevel >= NavMenuConstants.two) {\n subMenu = this._renderSubMenuDrawer(option);\n } else if (this.currentLevel <= this.supportedLevel - NavMenuConstants.one) {\n this.currentLevel++;\n levelClassName = `level-${this.currentLevel.toString()}`;\n subMenu = this._renderSubMenu(option.subMenu, undefined, true);\n }\n }\n if (isHavingSubmenu && this.state.isOnlyMobile) {\n this.currentLevel++;\n levelClassName = isEnableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, option.id, true);\n }\n const imagesource = option.imageSource ? option.imageSource : '';\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, isSubMenu);\n }\n\n private getMenuItem(option: IMenuItemData, index: number): JSX.Element | null {\n let menuItem: JSX.Element | null;\n if (this.currentLevel === NavMenuConstants.one) {\n menuItem = option.linkURL ? this._renderLinkMenuItemLevelOne(option, index) : this._renderSpanMenuItem(option);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, index) : this._renderSpanMenuItem(option);\n }\n return menuItem;\n }\n\n private _renderSubMenuDrawer(menuItem: IMenuItemData): JSX.Element | null {\n const levelClassName = `level-${this.currentLevel.toString()}`;\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue;\n const multiLevelSupportedMenu = this.props.navProps.config.menuLevelSupport ?? NavMenuConstants.three;\n\n let isDrawerOpen = false;\n if (keys[menuItem.id!]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { timeout: 0, isOpen: isDrawerOpen };\n return (\n \n
    \n {menuItem.subMenu!.map((menuSubItem: IMenuItemData) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n this.currentLevel++;\n if (this.currentLevel < multiLevelSupportedMenu) {\n return this._renderSubMenuDrawer(menuSubItem);\n }\n }\n return this._renderDrawerLink(menuSubItem);\n })}\n
    \n \n );\n }\n\n /**\n * Method to handle escape key event.\n * @param menuId -Number.\n * @param isDrawerOpen -Boolean.\n * @returns Void.\n */\n private readonly _bindDesktopCategoryClick = (menuId: number | undefined, isDrawerOpen: boolean) => (): void => {\n const { drawerKeyValue } = this.state;\n const newPair = { [menuId!]: !isDrawerOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItemLevelOne(option: IMenuItemData, index?: number, isHoverEffect: boolean = true): JSX.Element | null {\n const { Link } = this.props.navProps;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props.navProps;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\n const { Span } = this.props.navProps;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], isSubmenu?: boolean): JSX.Element | null {\n const { DivContainer, ImageDivContainer, showCategoryImage, showPromotionalContent } = this.props.navProps;\n const isCategoryImageDisplay =\n !this.state.isOnlyMobile &&\n showCategoryImage &&\n this.state.categoryImage !== null &&\n this.state.categoryImage !== undefined &&\n !isSubmenu;\n const isPromotionalContentDisplay =\n !this.state.isOnlyMobile && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !isSubmenu;\n const divContainerClass =\n this.currentLevel > NavMenuConstants.two || isCategoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = NavMenuConstants.one;\n const menuLevelSupportClassName =\n isCategoryImageDisplay &&\n this.props.navProps.config.menuLevelSupport &&\n this.props.navProps.config.menuLevelSupport > NavMenuConstants.two &&\n 'navmenu-multi-level';\n\n const categoryImages = this.state.categoryImage?.filter(image => !StringExtensions.isNullOrWhitespace(image.src));\n const imagesContainerKey = categoryImages?.map(item => item.src).join('-');\n return (\n \n \n {menuOptions}\n \n
    \n {isCategoryImageDisplay &&\n ArrayExtensions.hasElements(categoryImages) &&\n categoryImages.map(item => (\n \n {getCategoryImage(this.props, item.src ?? '', item.altText!.toString())}\n {isPromotionalContentDisplay &&\n this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n
    \n \n );\n }\n\n /**\n * Handle Category image update.\n * @param categoryImageSource - Image source.\n * @param option - Menu Item data.\n * @returns Returns empty.\n */\n private readonly _updateCategoryImage = (categoryImageSource: string, option: IMenuItemData) => () => {\n const linkText = option.linkText ? option.linkText : '';\n const promotionalImage: Msdyn365.IImageData[] = [{ src: categoryImageSource, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n for (const item of option.promotionalContent) {\n const imageSource = item.image.src;\n promotionalImage.push({\n src: imageSource,\n altText: item.text,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n }\n this.setState({\n categoryImage: ArrayExtensions.hasElements(promotionalImage) ? promotionalImage : [{ src: 'empty' }]\n });\n };\n\n /**\n * Handle dropdown toggle.\n * @param data - Menu Item data.\n * @param parentId - Number.\n * @returns Returns empty.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.state.isOnlyMobile) {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n if (this.props.navProps.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuRootEnabled.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n /**\n * Handle back navigation for menu items for mobile view.\n * @returns Returns empty.\n */\n private readonly _handleGoBack = () => () => {\n NavigationMenuRootEnabled.isBackTrack = true;\n this.setState(previousState => ({ activeMenu: previousState.parentMenu }));\n };\n\n /**\n * Function to close the nav menu on click on body.\n * @param event - MouseEvent.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: NavMenuConstants.rootMenu, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n }\n };\n\n /**\n * Add shop all link for Mobile submenu.\n */\n private readonly _addShopAllLink = (): void => {\n const { menuItemData } = this.props.navProps;\n this.menuItemData = menuItemData;\n if (ArrayExtensions.hasElements(menuItemData) && ArrayExtensions.hasElements(menuItemData[0].subMenu)) {\n this.menuItemData[0].subMenu?.map(item => {\n const shopAllObject = {};\n Object.assign(shopAllObject, { imageSource: item.imageSource });\n Object.assign(shopAllObject, { linkText: this.props.navProps.resources.allCategoryMenuText });\n Object.assign(shopAllObject, { linkURL: item.linkURL });\n if (ArrayExtensions.hasElements(item.subMenu) && item.menuSource === MenuSource.Retail) {\n item.subMenu.unshift(shopAllObject);\n }\n return item;\n });\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Mobile view label text.\n * @param optionLinkText -Sub menu item link text.\n * @returns Boolean.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n const firstIndex: number = 0;\n if (!NavigationMenuRootEnabled.isBackTrack && index === firstIndex) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n /**\n * Function to handle nav menu close.\n */\n private readonly _closeNavMenu = (): void => {\n if (!this.state.isOnlyMobile) {\n this.setState({ activeMenu: NavMenuConstants.rootMenu, mobileViewLabelText: '', isNavOpen: false });\n } else {\n this.setState({ activeMenu: undefined, mobileViewLabelText: '', isNavOpen: false });\n }\n };\n\n /**\n * Function to close the nav menu on esc key.\n * @param event - Event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey && !this.state.isOnlyMobile && this.state.isNavOpen) {\n this.setState({ activeMenu: NavMenuConstants.rootMenu, mobileViewLabelText: '', isNavOpen: false });\n }\n };\n\n /**\n * Custom update viewport.\n */\n private readonly _customUpdateViewport = (): void => {\n this.setState({ isOnlyMobile: this.isOnlyMobile });\n };\n}\n\nexport default NavigationMenuRootEnabled;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport * as React from 'react';\n\nimport { INavigationMenuProps } from '../definition-extensions/navigation-menu.ext.props.autogenerated';\nimport NavigationMenuRootDisabled from './components/navigation-menu-root-disabled';\nimport NavigationMenuRootEnabled from './components/navigation-menu-root-enabled';\n\n/**\n * Render the Navigation menu.\n * @param props - The navigation menu view props.\n * @returns Return HTML having INavigationMenuViewProps props with navigation menu.\n */\nconst navigationMenuView = (props: INavigationMenuViewProps & INavigationMenuProps<{}>): JSX.Element => {\n if (props.config.enabletopMenu) {\n return ;\n }\n\n return ;\n};\n\nexport default navigationMenuView;\n"],"names":["React","secondsToTime","seconds","undefined","hours","Math","floor","ampm","divisorForMinutes","getShortTimeString","day","resources","days","monday","tuesday","wednesday","thursday","friday","saturday","sunday","getFullTimeString","mondayFull","tuesdayFull","wednesdayFull","thursdayFull","fridayFull","saturdayFull","sundayFull","buildHoursDisplayInfo","startDay","endDay","hoursInfo","startDayShort","startDayFull","endDayShort","endDayFull","timeRange","shouldMergeLines","firstLine","secondLine","isClosed","openTime","closeTime","getStoreHoursData","storeHours","dateForLookup","get","buildStoreHoursString","closedText","buildStoreHours","storeHoursList","mondayHours","tuesdayHours","wednesdayHours","thursdayHours","fridayHours","saturdayHours","sundayHours","periodStart","periodEnd","push","buildDistanceString","distance","preferredDistanceUnit","isLocationDisabled","StoreSelectorLocationLineItemComponent","props","_storeName","_storeName2","location","index","storePageLinksCountries","shouldShowStorePageLinks","baseUrl","baseClassName","storeName","OrgUnitName","retailer","startsWith","slice","storeUrl","toLowerCase","replace","distanceAsString","Distance","storeAddress","addressParts","Street","StreetNumber","trim","districtBuildingParts","DistrictName","BuildingCompliment","length","join","cityCountyStateParts","City","County","CountyName","State","StateName","Country","Zip","formatAddress","phoneNumber","contacts","allPhoneContacts","filter","contact","ContactTypeValue","IsPrivate","ArrayExtensions","hasElements","primaryPhoneContact","find","IsPrimary","Locator","extractPhoneNumber","Contacts","displayStoreHours","hasStoreHoursInfo","RegularStoreHours","OpenFrom","OpenTo","parentClassName","className","storeLabelRetailer","storeLabelVenchi","includes","target","href","rel","goToStoreWebPage","storeHoursHeader","renderStoreHours","scope","map","displayTime","key","JSON","stringify","title","storeOpenFrom","storeOpenTo","StoreSelectorLocationLines","constructor","super","onClickHandler","orgUnitLocation","this","onClick","OrgUnitNumber","_scrollIntoView","selectedLocationDiv","selectedLocationRef","current","parent","parentElement","scrollTop","offsetTop","clientHeight","_mapResources","timeText","storeHoursClosedText","storeHoursMondayText","storeHoursTuesdayText","storeHoursWednesdayText","storeHoursThursdayText","storeHoursFridayText","storeHoursSaturdayText","storeHoursSundayText","storeHoursMondayFullText","storeHoursTuesdayFullText","storeHoursWednesdayFullText","storeHoursThursdayFullText","storeHoursFridayFullText","storeHoursSaturdayFullText","storeHoursSundayFullText","storeCounter","componentDidUpdate","previousProps","selectedStoreLocationId","componentDidMount","locations","_stores","_sortStores","reaction","render","classnames","show","displayList","role","store","_renderStoreLocation","_store$OrgUnitAvailab","OrgUnitAvailability","OrgUnitLocation","selected","ref","StoreHours","toString","telemetryContent","stores","isPreferredStore","value","_value$OrgUnitAvailab","isPreferredStoreEnabled","preferredStoreLocationId","__decorate","observable","observer","StoreSelectorSearchForm","searchBoxRef","searchSectionRef","previousValue","isSearchResultOpened","setScrollPositionToSearch","_this$searchSectionRe","offsetParent","window","scrollTo","top","behavior","_handleInputKeyPress","event","keyCode","KeyCodes","ArrowUp","ArrowDown","activeDescedantValue","getAttribute","_searchTextChanged","async","inputValue","searchTermChanged","_onSubmit","_this$searchBoxRef$cu","preventDefault","blur","performSearch","renderToggleMapButton","toggleButtonText","locatorView","shouldDisplayList","handleButtonClick","onToggleListMapViewState","toggleButtonClass","Object","assign","toggleMapViewAttributes","state","payLoad","getPayloadObject","TelemetryConstant","SearchStore","storeSearchAttributes","getTelemetryAttributes","contentAction","etext","ShowAllStore","ToggleMapView","searchButtonAriaLabel","searchPlaceholderText","viewListText","viewMapText","includeRetailersButtonLabel","id","isMapDisabled","displayRetailers","onDisplayRetailers","locationsMessage","displayIncludeRetailersButton","name","autoComplete","onSubmit","type","searchInputAriaLabel","placeholder","onChange","onKeyUp","color","CustomInput","checked","isChecked","label","StoreSelectorEmptyMessage","_ref","emptyLocationsText","StoreSelectorWaiting","StoreSelectorTermsOfService","_ref2","link","requestContext","onTextChange","editableLink","ariaLabel","linkText","linkUrl","destinationUrl","openInNewTab","Msdyn365","editProps","StoreSelectorFoundLocationsMessage","_ref3","includeRetailers","forSearchBar","shouldDisplayLabel","countRetailers","loc","_loc$OrgUnitAvailabil","countVenchiStores","storeAndRetailersAllCountMessage","storeAllCountMessage","storeDetailsModalHandler","handlers","closeStoreDetailsModal","SelectedStoreComponent","_selectedStore$OrgUni","_selectedStore$OrgUni2","shouldHideStockStatus","isCurrentLocation","isInStock","selectedStore","storeRenderedComponent","canSelectLocation","PickupInStore","PreferredStore","RemovePreferredStore","storeDetailsMain","tag","storeHeader","storeDetailsCloseButton","Button","storeDistance","storeDetailsAvailabilityContainer","currentLocation","onSelected","searchRadiusUnit","StoreSelector","_this$props$config$de","renderSelectedStore","data","storeSelectorStateManager","result","storeLocations","context","selectedStoreIndex","findIndex","selectedStoreResources","currentUrl","request","url","requestUrl","substring","lastIndexOf","storeIndexString","selectedProps","_isCurrentLocation","alreadySelectedLocation","_onOrgUnitLocationSelected","onSetAsPreferredStore","_setPreferredStore","onRemovePreferredStore","_removePreferredStore","_closeStoreDetailModal","config","displayStorePageLinks","storePageLinksContries","handleLinkTextChange","termsOfServiceLink","handleHeadingChange","heading","onShowAllStoresHandler","_getAndUpdateStoreLocation","setState","filteredPickupMode","onDisplayRetailersHandler","displayRetailersValue","onFilterLocations","_location$OrgUnitPick","OrgUnitPickUpDeliveryModes","DeliveryOptions","some","deliveryOption","Code","_attachMapAutoSuggest","autoSuggestOptions","telemetry","actionContext","channel","isMapApiLoaded","autoSuggestManager","Microsoft","Maps","loadModule","callback","options","_objectSpread","countryCode","ChannelCountryRegionISOCode","AutosuggestManager","attachAutosuggest","_onSuggestionSelected","errorCallback","debug","credentials","BingMapsApiKey","_this$props$data$stor","_searchTermChanged","formattedSuggestion","_performSearch","_preferredStore$OrgUn","_preferredStore$OrgUn2","_preferredStore$OrgUn3","storeId","cookies","availabilitiesWithHours","preferredStore","_store$OrgUnitAvailab2","setPreferredStoreLocation","isConsentGiven","Latitude","Longitude","clearPreferredStore","setSelectedStoreLocationId","_setSelectedStore","searchTerm","isSearchInProgress","geoLocate","_updateLocations","latitude","longitude","shouldShowAllStores","_navigator","navigator","geolocation","getCurrentPosition","position","coords","error","PERMISSION_DENIED","isSeeAllStoreValue","timeout","_closeDialog","_storeSelectorStateMa","parentElementRef","focus","closeDialog","_setOrgUnitStoreInformation","moduleId","input","onLocationSelected","Promise","resolve","preferredLocationId","StoreId","storeLocationList","orgUnitStoreInformation","showMapViewLink","isDialog","product","setOrgUnitStoreInformation","catch","message","retailersLookup","distanceUnitValue","SearchRadiusUnit","kilometers","localLatitude","long","lastInlineStoreLocation","lastInlineShownStoreInfo","setLastInlineStoreInfo","getOrgUnitLocationByArea","calRadius","orgUnitLocationsInput","GetOrgUnitLocationsByAreaInput","orgUnitLocations","getOrgUnitLocationsByAreaDataAction","deliveryMode","warning","selectedLocation","defaultIncludeRetailers","getTelemetryObject","telemetryPageName","friendlyName","_this$props$data$stor6","autoSuggestionEnabled","isAutoSuggestionEnabled","_this$props$context","setTimeout","_this$props$data$stor2","isDialogOpen","_this$props$data$stor3","_this$props$data$stor4","_this$props$data$stor5","loadMapApi","BingMapsEnabled","lang","locale","market","_this$props$data$stor7","_this$props$data$stor8","_this$props$context$a","_this$props$data$stor9","when","_this$props$data$stor10","_this$props$data$stor11","_this$props$data$stor12","isSameContext","shouldComponentUpdate","_storeSelectorStateMa2","_storeLocationList","_this$state$displayRe","_this$state$displayRe2","_storeSelectorStateMa3","app","appConfig","slots","maps","mapSlot","currentViewport","isMobile","variant","VariantType","Browser","isMobileDevice","listMapViewState","canShowLocationView","isMapModuleLoaded","storeSelectorActions","toggleListMapViewState","configHeading","storeLocatorHeaderText","kilometersShortText","milesShortText","locationListProps","_getStoreLocationListProps","locationsMessageForSearch","hasMapSlot","locationsMessageForList","origin","sitePath","viewProps","ModuleProps","moduleProps","classname","autoFocus","fade","isOpen","onClosed","horizontalPosition","verticalPosition","toggle","isMobileView","HeaderContainerProps","HeaderProps","text","onEdit","FooterContainerProps","FooterContainerPropsMaps","SearchBarSectionMapOnlyMobileClassName","BodyContainerProps","bodyWrapperProps","storeResultContainerProps","mapContainerProps","storeDetailsModal","search","showAllStores","onShowAllStores","spinner","locationsList","outOfStockThreshold","enableOutOfStockCheck","enableStockCheck","productPickUpDeliveryOptions","deliveryOptions","shouldShowIndex","noLocationsMessage","terms","headerText","sortLocations","callbacks","getAndUpdateUserLocation","attachMapAutoSuggest","onSuggestionSelected","setPreferredStore","removePreferredStore","setSelectedStore","renderView","storeList","storeLineProps","_createStoreLocationList","_store$OrgUnitAvailab3","selectedStoreLocation","lineResources","locationOpen","openFrom","openTo","Module","Node","GenericPopup","popupVisible","recallVisible","_onDismissRecall","createCookieRecall","_onDismissPopup","recallEnabled","recallShowAfterPopup","_displayRecallNow","_displayPopupNow","cookieCheckbox","createCookie","classNamePopup","classNameRecall","onDismissRecall","onDismissPopup","handleTextRecall","cookie","Cookies","hidePopupIfCookieIsSet","modalId","delayRecall","delayPopup","expireDays","date","Date","setDate","getDate","expires","set","recallDismissableForDays","recallDismissable","modalHeader","recallText","closeButtonAriaLabel","closeButtonLabel","_window$dataLayer","_window$dataLayer$pus","modalName","dataLayer","call","eventCategory","eventAction","eventLabel","handleClose","popupElement","document","querySelector","form","getElementsByTagName","_window$dataLayer2","_window$dataLayer2$pu","Modal","ModalHeader","ModalBody","renderModuleAttributes","content","IFrameView","Heading","IframeContainer","IFrame","alert","cookieConsentAccepted","SignUpItem","wrapper","errorMessage","SignUpEmailVerification","email","buttonWrapper","buttons","successMessage","button","SignUpLoading","_ref4","modal","modalBody","icon","signUp","viewState","loading","defaultAADConainer","aadConainer","signUpLocalAccount","isShowLoading","LocalAccount","_props$context","_props$context2","localAccount","items","emailVerification","disclaimer","uiLocales","query","ui_locales","regionCRM","RegionCRM","birthDate","setBirthDate","formatDateState","setFormatDateState","pattern","patternUS","checkDate","currentTarget","today","match","signUpButton","getElementById","onclick","e","stopPropagation","item","isRequired","verificationControlWrapper","htmlFor","birthdayLabelText","birthdayErrorText","maxLength","onPaste","BirthdayText","renderThirdPartyPrivacy","defaultChecked","textGenericMarketing","required","textThirdParty","AccountCustomerBalanceTile","_initState","hasError","ErrorComponent","apiGenericErrorMessage","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","nextProps","nextState","isCustomerAccountPaymentEnabled","links","headingTag","isDetailsLinkDisplayed","LinksComponent","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","formatCurrency","customerCredit","customerCreditFormatted","toFixed","CreditComponent","verbagePrefix","verbagePostfix","computed","_mapEditableLinks","linkdata","editableLinks","forEach","attributes","additionalProperties","BusinessPartnerPromotionTermsParagraph","description","titleClassName","moduleClassName","BusinessPartnerPromotion","onCheckBoxChange","termsOfServiceChecked","onToggleTermOfServiceModal","termsOfServiceModalOpened","_data$b2bUserInformat","_data$b2bUserInformat2","errorMessageText","promoteToSellerSubmitSuccessMessage","businessPartnerId","b2bUserInformation","BusinessPartnerId","promoteToSellerAsync","callerContext","showSubmitButton","showTermsOfService","notificationMessage","_unused","termsOfService","authorizationErrorMessage","canSubmit","isAdminUser","status","btnEnabled","businessPartnerPromotionProps","Text","renderNotificationBar","sellerDescriptions","renderSellerDescriptions","termsOfServiceCheckbox","termsOfServiceLinkText","termsOfServiceAgreementText","termsOfServiceModal","termsOfServiceModalHeading","MsDyn365","submitButton","submitRequestLabel","disabled","notificationBar","Alert","results","idx1","_description$bulletPo","bulletPoints","bulletPoint","idx2","user","ObjectExtensions","isNullOrUndefined","StringExtensions","isNullOrEmpty","IsAdmin","renderCustomerName","accountInformation","customer","FirstName","Name","_renderReactFragment","slot","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","navIcon","logo","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","accountClassName","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuLinksContainer","mobileMenuCollapsed","Collapse","Drawer","openGlyph","closeGlyph","glyphPlacement","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","NavigationMenuView","currentLevel","_positionInSetOffset","escapeKey","_updateCategoryImage","categoryImageSrc","option","promotionalImage","src","altText","promotionalContent","image","imageSrc","promotionalItemImageSettings","imageSettings","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","activeMenu","parentMenu","showCategoryImage","imageSource","_resetFocus","menuNode","_handleClickOutside","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_escFunction","navDrawerList","Array","from","childNodes","navDrawerButton","firstChild","_getCategoryImage","categoryImageUrl","generateImageUrl","apiSettings","defaultImageSettings","viewports","xs","q","w","h","sm","md","lg","lazyload","_categoryImage$imageS","ImageData","Image","gridSettings","categoryImageSettings","loadFailureBehavior","_onDrawerChange","drawerState","drawerKeyValue","newPair","buttonText","bind","isBrowser","body","addEventListener","componentWillUnmount","removeEventListener","_renderMobileMenu","_renderDesktopMenu","menuItemData","Navigation","menuItem","posinset","_renderDrawerMenu","MenuList","tabIndex","_renderDisplay","setSize","subMenu","_renderDrawer","_renderLinkMenuItem","keyValue","keys","isDrawerOpen","colProps","toggleButtonProps","onToggle","collapseProps","_renderLinkText","menuSubItem","currentPos","_menuItem$subMenu2","_menuItem$subMenu","_renderDrawerLink","linkURL","_renderSpanMenuItem","ListItem","menuItemList","menuItemDatum","_getFromSubMenu","_createMenuItemList","subMenus","i","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","idx","hasOptions","haveSubmenu","round","_renderMenu","onFocus","hoverEffect","arguments","isParent","Link","imagesource","shouldOpenNewTab","onMouseOver","onTelemetryClick","_renderPromotionalLink","Span","level","currentItem","submenu","DivContainer","ImageDivContainer","showPromotionalContent","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","MenuTypeIndexId","MenuSource","NavigationMenu","isRetail","isCMS","_setNavigationSource","sourceType","_updateViewport","viewport","device","Type","navigationMenuSource","nameTranslations","nameTranslation","Language","resizeThrottledEventHandler","addThrottledEvent","_this$props$config$di","_this$props$config$di2","_mapData","isEmptyOrNullObject","xl","displayCategoryImage","displayPromotionalImage","ImageContainer","MobileDescriptionContainer","MobileBackButton","backButtonAriaLabel","MobileDescriptionLabel","mergedData","categories","_constructMenuItemData","cmsNavItems","_constructTopMenuItemData","_this$props$config$en","_this$props$config$ro","enabletopMenu","mergedRootMenuData","topMenu","rootMenuNavigation","retailItem","cmsItem","addedAllMenu","categoryPromotionalContent","cmsItemText","menuAriaLabel","promotionalData","promoItem","_promoItem$categoryNa","_retailItem$Name","categoryName","_NavigationMenu$getFr","_NavigationMenu$getFr2","Images","Uri","RSItemIdInit","getFriendlyName","NameTranslations","Url","_getNestedChildren","menuSource","Retail","CMSItemIdInit","imageDestinationURL","imageLink","_getCMSNestedChildren","Cms","category","imageSourceUrl","nestedChildren","Children","allCategoryMenuText","getCategoryUrl","_getViewport","innerWidth","isBackTrack","mobileViewLabelText","_handleGoBack","_shouldAddFocusMenuRef","optionLinkText","menuItemRef","_this$menuItemRef$cur","children","renderAdditionalContent","additionalContent","_additionalContent$ad","additionalContentNode","additionalContentItems","additionalContentItemContainer","additionalContentItemLinks","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageAriaLabel","imageClass","FooterItemView","FooterItem","_renderElement","HeadingContainer","EditableLink","NavMenuConstants","getCategoryImage","alttext","navProps","_props$navProps$confi","imageData","NavigationMenuRootDisabled","supportedLevel","four","zero","_toggleNavBar","previousState","isNavOpen","_bindDesktopCategoryClick","menuId","categoryImageSource","isOnlyMobile","_closeNavMenu","_this$menuNode$curren","_this$menuNode$curren2","_customUpdateViewport","customResizeThrottledEventHandler","hamburgerAriaLabel","isNullOrWhitespace","entries","parentMenuId","menu","one","Number","subMenuArray","isSubMenu","_this$props$navProps$","_this$props$navProps$2","rootMenu","subMenuItem","isEnableMultiSupportMenu","three","getMenuItem","isHavingSubmenu","two","_renderSubMenuDrawer","_renderLinkMenuItemLevelOne","_this$props$navProps$3","isHoverEffect","isSubmenu","_this$state$categoryI","isCategoryImageDisplay","isPromotionalContentDisplay","divContainerClass","menuLevelSupportClassName","categoryImages","imagesContainerKey","_item$src","NavigationMenuRootEnabled","_addShopAllLink","_this$menuItemData$0$","shopAllObject","unshift","cmsMenuData","retailMenuItemData","retailMenuData","parse"],"sourceRoot":""}