{"version":3,"file":"static/js/15.2720c2f5d6d1fefcf635.chunk.js","mappings":"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MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI","sources":["webpack://venchi-ecommerce-msdyn365/./src/modules/breadcrumb/components/link.tsx?d232","webpack://venchi-ecommerce-msdyn365/./src/modules/breadcrumb/components/separator.tsx?92bb","webpack://venchi-ecommerce-msdyn365/./src/modules/breadcrumb/breadcrumb.tsx?efcc","webpack://venchi-ecommerce-msdyn365/./src/modules/country-picker/country-picker.tsx?4fcb","webpack://venchi-ecommerce-msdyn365/./src/modules/footer-category/footer-category.tsx?e0bd","webpack://venchi-ecommerce-msdyn365/./src/modules/image-list/image-list.tsx?5602","webpack://venchi-ecommerce-msdyn365/./src/modules/interactive-feature-collection/interactive-feature-collection.tsx?96a6","webpack://venchi-ecommerce-msdyn365/./src/modules/interactive-feature-item/components/links.tsx?7423","webpack://venchi-ecommerce-msdyn365/./src/modules/interactive-feature-item/interactive-feature-item.tsx?792c","webpack://venchi-ecommerce-msdyn365/./src/modules/map/map.tsx?6111","webpack://venchi-ecommerce-msdyn365/./src/modules/subscribe/subscribe.tsx?9fea","webpack://venchi-ecommerce-msdyn365/./src/modules/country-selector/country-selector.tsx?a8bc","webpack://venchi-ecommerce-msdyn365/./src/modules/country-selector/country-selector.view.tsx?44d3","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/account-management-address.view.tsx?2098","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/loyalty-sign-up.view.tsx?1edc","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/write-review.view.tsx?10da","webpack://venchi-ecommerce-msdyn365/./src/modules/breadcrumb/breadcrumb.view.tsx?4b3d","webpack://venchi-ecommerce-msdyn365/./src/modules/country-picker/country-picker.view.tsx?0036","webpack://venchi-ecommerce-msdyn365/./src/modules/fabrikam/views/buybox.view.tsx?aec4","webpack://venchi-ecommerce-msdyn365/./src/modules/footer-category/footer-category.view.tsx?fdce","webpack://venchi-ecommerce-msdyn365/./src/modules/image-list/image-list.view.tsx?2bed","webpack://venchi-ecommerce-msdyn365/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52","webpack://venchi-ecommerce-msdyn365/./src/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc","webpack://venchi-ecommerce-msdyn365/./src/modules/map/map.view.tsx?5db9","webpack://venchi-ecommerce-msdyn365/./src/modules/subscribe/subscribe.view.tsx?19c8","webpack://venchi-ecommerce-msdyn365/./src/modules/adventureworks/views/order-template-list.view.tsx?46b6","webpack://venchi-ecommerce-msdyn365/./src/modules/adventureworks/views/components/carticon.component.tsx?3c7c","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/utils/convert_a2_a3.ts?c0bb"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILink {\n className?: string;\n text?: string;\n href?: string;\n ariaLabel?: string;\n index: string;\n noclick?: boolean;\n telemetryContent: ITelemetryContent;\n}\n\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n\n const linkText = text !== undefined ? text : '';\n payLoad.contentAction.etext = linkText;\n\n // Construct telemetry attribute to render\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n\n return (\n \n {linkText}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface ISeparator {\n separator: string;\n}\n\nexport const Separator: React.FC = ({ separator }) => (\n \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 from '@msdyn365-commerce/core';\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbData } from './breadcrumb.data';\nimport { IBreadcrumbProps, ILinksData } from './breadcrumb.props.autogenerated';\nimport { Link } from './components/link';\nimport { Separator } from './components/separator';\n\nexport interface IBreadcrumbViewProps extends IBreadcrumbProps {\n root?: React.ReactNode;\n links?: React.ReactNode[];\n backButton?: React.ReactNode;\n separator?: React.ReactNode;\n BreadcrumbContainer: IModuleProps;\n BreadcrumbList: INodeProps;\n BreadcrumbListItem: INodeProps;\n}\n\n/**\n *\n * Breadcrumb component.\n * @extends {React.PureComponent>}\n */\nclass Breadcrumb extends React.PureComponent> {\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n let rootLink = null;\n let breadcrumbLinks = null;\n let backButtonComponent = null;\n rootLink = this._getRootLink();\n const itemPosition = rootLink ? 1 : 0;\n if (this._pageType === 'Category') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\n }\n } else if (this._pageType === 'Product') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n if (breaCrumbType === 'category') {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'categoryAndBack') {\n backButtonComponent = this._getPDPBackButton();\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'back') {\n backButtonComponent = this._getPDPBackButton();\n if (backButtonComponent === null) {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n }\n }\n } else {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n }\n const linkSeparator = ;\n\n const breadcrumbViewProps = {\n ...this.props,\n BreadcrumbContainer: {\n moduleProps: this.props,\n className: classnames('ms-breadcrumb', className),\n tag: 'nav',\n role: 'navigation'\n },\n BreadcrumbList: {\n tag: 'ol' as NodeTag,\n className: 'ms-breadcrumb_list'\n },\n BreadcrumbListItem: {\n tag: 'li',\n className: 'ms-breadcrumb_item'\n },\n root: rootLink,\n links: breadcrumbLinks,\n backButton: backButtonComponent,\n separator: linkSeparator\n };\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\n }\n\n private readonly _getRootLink = (): JSX.Element | null => {\n const { root } = this.props.config;\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\n return null;\n }\n return (\n \n );\n };\n\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\n const { links } = this.props.config;\n\n if (!links || links.length === 0) {\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\n return null;\n }\n const defaultValueToSubtract = 1;\n return links.map((value: ILinksData, index: number) => {\n itemPosition++;\n const keyIndex = index;\n return index !== links.length - defaultValueToSubtract ? (\n \n ) : (\n
\n {value.linkText}\n
\n );\n });\n };\n\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\n const { data } = this.props;\n const categoryHierarchy = data.categoryHierarchy.result;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\n return null;\n }\n return categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\n itemPosition++;\n\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\n\n return (\n \n );\n });\n };\n\n /**\n * The function to get translation name for the locale.\n * @param locale - The locale information.\n * @param nameTranslations - The name translations names.\n * @returns - The translation name for the locale.\n */\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n // If friendly name for current locale is null, should use default locale.\n if (nameTranslation === undefined && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations[0];\n }\n\n return nameTranslation?.Text;\n };\n\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\n const { data, config } = this.props;\n const categoryHierarchy = data.categoryPaths.result;\n const product = data.product.result;\n const url = this.props.context.request.url.requestUrl.href;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category path content is empty for the product');\n return null;\n }\n const links: JSX.Element[] = [];\n\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\n itemPosition++;\n links.push(\n \n );\n });\n if (product && !config.hideProductName) {\n itemPosition++;\n links.push(\n \n );\n }\n return links;\n };\n\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed =\n this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\n if (!isBackAllowed) {\n return null;\n }\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\n return null;\n }\n return (\n \n {this.props.resources.backToResultsText}\n \n );\n };\n}\n\nexport default Breadcrumb;\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 { ICookieSetOptions, IImageDimension, ILocaleItems } from '@msdyn365-commerce/core-internal';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICountryPickerData } from './country-picker.data';\nimport { IActionLinkData, ICountryPickerProps } from './country-picker.props.autogenerated';\n\n/**\n * CountryPicker view props interface.\n */\nexport interface ICountryPickerViewProps extends ICountryPickerProps {\n modalContainer: IModuleProps;\n modalHeaderContainer: INodeProps;\n modalFooterContainer: INodeProps;\n modalBodyContainer: INodeProps;\n heading?: React.ReactNode;\n subheading?: React.ReactNode;\n link?: React.ReactNode;\n countryList?: React.ReactNode[];\n isModalOpen?: boolean;\n state?: ICountryPickerState;\n stayOnCurrentSiteButton?: React.ReactNode;\n}\n\n/**\n * ICountryPickerState: Interface for Country picker State.\n */\nexport interface ICountryPickerState {\n isModalOpen: boolean;\n}\n\n/**\n *\n * CountryPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CountryPicker extends React.PureComponent, ICountryPickerState> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private readonly _preferredSiteStorageKey: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationTime = 5_184_000;\n\n public constructor(props: ICountryPickerProps) {\n super(props);\n let isCookieValueSet: boolean = false;\n if (props.context.request.cookies.get(this._preferredSiteStorageKey).value) {\n isCookieValueSet = true;\n }\n this.state = {\n isModalOpen: !isCookieValueSet && this.props.context.request.marketSettings !== undefined\n };\n }\n\n public render(): JSX.Element | null {\n const { heading, subheading, countryList, actionLink } = this.props.config;\n\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven) {\n return null;\n }\n\n const countryPickerHeading = heading && (\n \n );\n\n const countryPickerSubHeading = subheading && (\n \n );\n\n const countryPickerActionLink = actionLink && this.createLink(actionLink);\n const currentSiteButton = (\n \n );\n\n const viewprops: ICountryPickerViewProps = {\n ...this.props,\n state: this.state,\n isModalOpen: this.state.isModalOpen,\n modalContainer: {\n moduleProps: this.props,\n tag: Modal,\n className: 'ms-country-picker__dialog',\n isOpen: true,\n 'aria-label': 'country-picker',\n toggle: this.closeModal,\n modalTransition: { timeout: 0 },\n shouldUpdateFocusToFirstElement: true\n },\n modalHeaderContainer: {\n tag: ModalHeader,\n className: 'ms-country-picker__modal-header',\n toggle: this.closeModal,\n closeButtonTabIndex: 1\n },\n modalFooterContainer: {\n tag: ModalFooter,\n className: 'ms-countryPicker__modal-footer'\n },\n modalBodyContainer: {\n tag: ModalBody,\n className: 'ms-counrtyPicker__modal-body'\n },\n heading: countryPickerHeading,\n subheading: countryPickerSubHeading,\n link: countryPickerActionLink,\n countryList: countryList && this.renderCountryList(),\n stayOnCurrentSiteButton: currentSiteButton\n };\n\n return this.props.renderView(viewprops);\n }\n\n /**\n * Initiate close modal.\n */\n public readonly closeModal = (): void => {\n this.setState({\n isModalOpen: false\n });\n };\n\n public handleParagraphChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.subheading = event.target.value;\n }\n\n public handleTextChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.heading!.text = event.target.value;\n }\n\n public handleLinkTextChange(event: MsDyn365.ContentEditableEvent): void {\n if (this.props.config.actionLink?.linkText) {\n this.props.config.actionLink.linkText = event.target.value;\n }\n }\n\n public createLink(link?: IActionLinkData): React.ReactNode | null {\n if (!StringExtensions.isNullOrEmpty(link?.linkUrl.destinationUrl)) {\n const linkText = link?.linkText ?? '';\n const payLoad = getPayloadObject('click', this._telemetryContent, '', '');\n const attributes = getTelemetryAttributes(this._telemetryContent, payLoad);\n const editableLink: MsDyn365.ILinksData = {\n ariaLabel: link?.ariaLabel,\n className: 'ms-countryPicker__link',\n linkText,\n linkUrl: link?.linkUrl.destinationUrl,\n openInNewTab: link?.openInNewTab,\n role: 'link',\n additionalProperties: attributes!,\n onClick: onTelemetryClick(this._telemetryContent, payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n public renderCountryList(): React.ReactNode[] | undefined {\n const marketSettings = this.props.context.request.marketSettings;\n if (!marketSettings) {\n return undefined;\n }\n const localeItems = marketSettings.localeItems;\n const countryLinks = localeItems.map((value: ILocaleItems) => {\n return this.renderCountry(value);\n });\n\n return countryLinks;\n }\n\n public renderCountry(localeItem: ILocaleItems): React.ReactNode | null {\n const countryList = this.props.config.countryList;\n let baseUrl = localeItem.localeBaseUrl;\n baseUrl = this._appendProtocolToUrl(baseUrl);\n const matchedCountryItem = countryList?.find(item => item.url === baseUrl);\n if (!matchedCountryItem) {\n return null;\n }\n const imageSize: IImageDimension = { q: 'w=48&h=48&m=6', w: 0, h: 0 };\n const defaultImageSettings: MsDyn365.IImageSettings = {\n viewports: {\n xs: imageSize,\n lg: imageSize,\n xl: imageSize\n },\n lazyload: true\n };\n const image = matchedCountryItem.image;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings ?? defaultImageSettings\n };\n return (\n \n {image && (\n \n )}\n
\n {matchedCountryItem.displayString}\n {matchedCountryItem.displaySubString}\n
\n \n );\n }\n\n /**\n * Writes the current site base url to cookie and closes the country picker modal dialog.\n */\n private readonly _handleStayOnSiteButtonClick = (): void => {\n const currentBaseUrl = this.props.context.request.marketSettings?.currentBaseUrl;\n if (currentBaseUrl) {\n const urlToStore = this._appendProtocolToUrl(currentBaseUrl);\n this._writeToCookie(this._preferredSiteStorageKey, urlToStore);\n }\n this.closeModal();\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n * @returns - This method just writes the cookie to the browser.\n */\n private readonly _handleClick = (storageKey?: string, storageValue?: string) => () => {\n this._writeToCookie(storageKey, storageValue);\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n */\n private readonly _writeToCookie = (storageKey?: string, storageValue?: string): void => {\n if (!storageKey || !storageValue) {\n return;\n }\n const cookieOptions: ICookieSetOptions = { secure: true, sameSite: 'none' };\n cookieOptions.maxAge = this._cookieExpirationTime;\n this.props.context.request.cookies.set(storageKey, storageValue, cookieOptions);\n };\n\n /**\n * Appends protocol to an url.\n * @param baseUrl - Url to be formatted.\n * @returns - URL after appending protocol.\n */\n private readonly _appendProtocolToUrl = (baseUrl: string): string => {\n return !baseUrl.includes('https://') ? `https://${baseUrl}` : baseUrl;\n };\n}\n\nexport default CountryPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterCategoryConfig, IFooterCategoryProps } from './footer-category.props.autogenerated';\n\nexport interface IFooterCategoryViewProps extends IFooterCategoryProps {\n categories: React.ReactNode[];\n FooterList: IModuleProps;\n FooterListItem: INodeProps;\n}\n\n/**\n *\n * FooterCategory component.\n * @extends {React.PureComponent>}\n */\nclass FooterCategory extends React.PureComponent> {\n public render(): JSX.Element | null {\n if (!this.props.slots || !this.props.slots.content || this.props.slots.content.length === 0) {\n this.props.context.telemetry.error('footer slots content is empty, module wont render');\n return null;\n }\n const viewprops = {\n ...this.props,\n categories: this.props.slots.content,\n FooterList: {\n moduleProps: this.props,\n className: classnames('ms-footer__list', this.props.config.className),\n tag: 'ul'\n },\n FooterListItem: {\n className: classnames('ms-footer__list-item', this.props.config.className),\n tag: 'li'\n }\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default FooterCategory;\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 { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IImageListConfig, IImageListProps, IImagesData } from './image-list.props.autogenerated';\n\n/**\n * The interface for IImageListViewProps.\n */\nexport interface IImageListViewProps extends IImageListProps {\n imageList: IModuleProps;\n imageListHeading?: React.ReactNode;\n imageListContainer: INodeProps;\n imageListItem: INodeProps;\n imageListItemAnchorTag: INodeProps;\n imageListItems: IImageListItem[] | undefined;\n}\n\n/**\n * The interface for IImageListItem.\n */\nexport interface IImageListItem {\n image: JSX.Element | undefined;\n text: JSX.Element | undefined;\n link: string | undefined;\n linkAltText: string | undefined;\n linkAriaLabel: string | undefined;\n linkOpenInNewTab?: boolean;\n}\n\n/**\n *\n * ImageList component.\n * @extends {React.PureComponent>}\n */\nclass ImageList extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { heading } = this.props.config;\n const imageListTitle = heading && ;\n const viewProps: IImageListViewProps = {\n ...this.props,\n imageList: {\n moduleProps: this.props,\n className: classnames('ms-image-list', this.props.config.className),\n tag: 'div'\n },\n imageListHeading: imageListTitle,\n imageListContainer: {\n className: 'ms-image-list__list',\n role: 'list',\n tag: 'ul'\n },\n imageListItem: {\n className: 'ms-image-list__list-item',\n role: 'listitem',\n tag: 'li'\n },\n imageListItemAnchorTag: {\n tag: 'a',\n className: 'ms-image-list__link',\n role: 'link'\n },\n imageListItems: this._renderImageListItems()\n };\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle paragraph change.\n * @param index - Index of image item in array of image items.\n * @returns Void.\n */\n public handleParagraphChange = (index: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.images![index]) {\n this.props.config.images![index].paragraph = event.target.value;\n }\n };\n\n /**\n * Render list of images.\n * @returns List of images with text and redirection link.\n */\n private readonly _renderImageListItems = (): IImageListItem[] | undefined => {\n const imageList: IImagesData[] | undefined = this.props.config.images;\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n lg: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n xl: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 }\n },\n lazyload: false,\n disableLazyLoad: true\n };\n return imageList?.map((item, index) => {\n const { image, link, paragraph } = item;\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: (image?.imageSettings ?? defaultImageSettings) as Msdyn365.IImageSettings | undefined\n };\n\n const imageLink: string | undefined = link?.linkUrl.destinationUrl;\n const imageLinkText: string | undefined = link?.linkText ?? link?.ariaLabel;\n const imageLinkAriaLabel: string | undefined = link?.ariaLabel;\n const imageLinkOpenInNewTab = link?.openInNewTab;\n\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\n const imageImage = (\n \n );\n\n const imageText = paragraph && (\n \n );\n const imageListItem: IImageListItem = {\n image: imageImage,\n text: imageText,\n link: imageLink,\n linkAltText: imageLinkText,\n linkAriaLabel: imageLinkAriaLabel,\n linkOpenInNewTab: imageLinkOpenInNewTab\n };\n return imageListItem;\n });\n };\n}\n\nexport default ImageList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n getTelemetryObject,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps } from './interactive-feature-collection.props.autogenerated';\n\n/**\n * Interactive Feature Collection view props.\n */\nexport interface IInteractiveFeatureCollectionViewProps extends IInteractiveFeatureCollectionProps<{}> {\n title: React.ReactNode;\n interactiveFeatureCollectionHeading: INodeProps;\n interactiveFeatureCollectionContainer: IModuleProps;\n interactiveFeatureCollectionDesktopContainer: INodeProps;\n interactiveFeatureCollectionDesktopItems: React.ReactNode[];\n interactiveFeatureCollectionMobileContainer: INodeProps;\n interactiveFeatureCollectionMobileItems: React.ReactNode[];\n singleSlideCarouselComponentProps: INodeProps;\n singleSlideCarouselItemContainer: INodeProps;\n}\n\n/**\n *\n * InteractiveFeatureCollection component.\n * @extends {React.PureComponent>}\n */\nexport class InteractiveFeatureCollection extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private static _getFeatureItem(item: React.ReactNode, index: number, itemsCounter: number): React.ReactNode {\n const keyIndex = `interactive-feature-mosaic-item__${index}`;\n return (\n \n {React.cloneElement(item as React.ReactElement, { indexItem: index, itemCounter: itemsCounter, isMosaic: true })}\n \n );\n }\n\n public constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots && this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems && interactiveItems.length;\n const singleSlideCarouselComponentProps: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n const initItemsFeatureCounter = 0;\n const createHeading = title && (\n \n );\n const viewProps = {\n ...this.props,\n title: createHeading,\n interactiveFeatureCollectionHeading: {\n className: 'ms-interactive-feature-collection__heading'\n },\n interactiveFeatureCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-interactive-feature-collection', className)\n },\n interactiveFeatureCollectionDesktopContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-desktop'\n },\n interactiveFeatureCollectionMobileContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mobile'\n },\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel',\n role: 'listitem'\n },\n interactiveFeatureCollectionMobileItems: this.props.slots.interactiveFeatureItems,\n interactiveFeatureCollectionDesktopItems:\n itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) =>\n InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter)\n )\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.title!.text = event.target.value);\n}\n\nexport default InteractiveFeatureCollection;\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 { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature links.\n */\nexport interface IInteractiveFeatureLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * IInteractiveFeatureLinks component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureCollectionLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n }\n\n /**\n * IInteractiveFeatureLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata?: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || !ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-interactive-feature-collection__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n }\n\n return editableLinks;\n };\n}\nexport default InteractiveFeatureCollectionLinks;\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 { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InteractiveFeatureCollectionLinks } from './components';\nimport { IHeadingData, IInteractiveFeatureItemProps } from './interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature Item view props.\n */\nexport interface IInteractiveFeatureItemViewProps extends IInteractiveFeatureItemProps<{}> {\n title: React.ReactNode;\n paragraph: React.ReactNode;\n image: React.ReactNode;\n links: React.ReactNode;\n featureItem: IModuleProps;\n isMosaic: boolean;\n indexItem?: number;\n itemCounter?: number;\n\n interactiveFeatureCollectionCarouselContainer: INodeProps;\n interactiveFeatureCollectionCarouselImage: INodeProps;\n interactiveFeatureCollectionCarouselContent: INodeProps;\n\n interactiveFeatureCollectionMosaicContainer: INodeProps;\n interactiveFeatureCollectionMosaicImage: INodeProps;\n interactiveFeatureCollectionMosaicDetails: INodeProps;\n}\n\n/**\n * Interactive Feature Item Extented props.\n */\nexport interface IInteractiveFeatureItemExtentedProps extends IInteractiveFeatureItemProps<{}> {\n isMosaic?: boolean;\n indexItem?: number;\n itemCounter?: number;\n}\n\n/**\n *\n * InteractiveFeatureItem component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureItem extends React.PureComponent {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: IInteractiveFeatureItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { indexItem, itemCounter, isMosaic } = this.props;\n const { heading, paragraph, image, links } = this.props.config;\n const featureItemLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n\n const viewProps = {\n ...this.props,\n indexItem,\n itemCounter,\n isMosaic: isMosaic ? isMosaic : false,\n title: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n image: this._renderImage(image),\n links: featureItemLinks,\n featureItem: {\n moduleProps: this.props,\n className: ''\n },\n interactiveFeatureCollectionCarouselContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__container'\n },\n interactiveFeatureCollectionCarouselImage: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__image'\n },\n interactiveFeatureCollectionCarouselContent: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__heading'\n },\n interactiveFeatureCollectionMosaicContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mosaic',\n 'aria-label': heading?.text,\n tabindex: '0',\n role: 'group'\n },\n interactiveFeatureCollectionMosaicImage: {\n className: 'ms-interactive-feature-collection-mosaic__image'\n },\n interactiveFeatureCollectionMosaicDetails: {\n className: 'ms-interactive-feature-collection-mosaic__details'\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // Even if image.src is null, we render the Image component to render the fallback SVG\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=459&m=6', w: 328, h: 459 },\n sm: { q: 'w=348&h=487&m=6', w: 348, h: 487 },\n md: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n lg: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n xl: { q: 'w=650&h=366&m=6', w: 650, h: 366 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n return (\n \n );\n }\n}\n\nexport default InteractiveFeatureItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observable, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IMapData } from './map.data';\nimport { IMapProps, IPushpinOptionsData } from './map.props.autogenerated';\n\n/**\n * Header Interface.\n */\nexport interface IHeader {\n headerProps: INodeProps;\n heading: React.ReactNode;\n}\n\n/**\n * MapViewProps Interface.\n */\nexport interface IMapViewProps extends IMapProps {\n ModuleProps: IModuleProps;\n Header: IHeader;\n MapProps: INodeProps;\n Map: Microsoft.Maps.Map | undefined;\n}\n\n/**\n *\n * Map component.\n * @extends {React.Component>}\n */\n@observer\nclass Map extends React.Component> {\n @observable public map: Microsoft.Maps.Map | undefined;\n private timeout: number = 500;\n\n private readonly mapRef: React.RefObject = React.createRef();\n\n public constructor(props: IMapProps) {\n super(props);\n }\n\n public componentDidMount(): void {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n }\n } = this.props;\n\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n const loadMapAPIInput = {\n key: channel?.BingMapsApiKey,\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\n };\n\n if (\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded\n ) {\n this._initMap();\n if (this.props.data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n this._updateMapsForDistributor();\n } else {\n this._updateMap();\n }\n }\n\n when(\n () => !!this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n when(\n () => !!this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.loadMapApi ||\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi,\n () => {\n if (this.props.data.distributorSelectorStateManager?.result?.loadMapApi) {\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n } else {\n this.props.data.storeSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n }\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded,\n () => {\n this._initMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.storeSelectorStateManager.result?.context?.orgUnitStoreInformation,\n this.props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\n this.map\n ];\n },\n () => {\n this._updateMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.distributorSelectorStateManager?.result?.distributorList,\n this.props.data.distributorSelectorStateManager?.result?.selectedDistributorId,\n this.map\n ];\n },\n () => {\n this._updateMapsForDistributor();\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { heading, className },\n data\n } = this.props;\n\n const shouldDisplayMap = data.storeSelectorStateManager?.result?.isDialogOpen\n ? data.storeSelectorStateManager?.result?.listMapViewState.displayMap\n : data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen\n ? data.distributorSelectorStateManager?.result?.listMapViewState.displayMap\n : false;\n\n const viewProps: IMapViewProps = {\n ...this.props,\n ModuleProps: {\n tag: 'div',\n moduleProps: this.props,\n className: classname('ms-map', { show: shouldDisplayMap }, className)\n },\n Header: {\n headerProps: { className: 'ms-map__header' },\n heading: heading?.text && (\n \n )\n },\n MapProps: {\n tag: 'div',\n className: 'ms-map__body',\n ref: this.mapRef\n },\n Map: this.map\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Initialize the map.\n */\n private readonly _initMap = () => {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n }\n },\n data\n } = this.props;\n\n if (data.storeSelectorStateManager?.result?.isMapApiLoaded || data.distributorSelectorStateManager?.result?.isMapApiLoaded) {\n const mapLoadOptions = {\n credentials: channel?.BingMapsApiKey,\n pushpinAccessible: true\n };\n this.map = new Microsoft.Maps.Map(this.mapRef.current as HTMLElement, mapLoadOptions);\n Microsoft.Maps.Events.addHandler(this.map, 'click', async () => {\n if (data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n // Hide the distributor details that appear below the screen size of 768px.\n data.distributorSelectorStateManager?.result?.updateDistributorMapVisibility(false);\n await data.distributorSelectorStateManager?.result?.setSelectedDistributorId(undefined);\n } else {\n await data.storeSelectorStateManager?.result?.setSelectedStoreLocationId(undefined);\n }\n });\n }\n };\n\n private readonly _updateMapsForDistributor = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n const distributorInfoList = distributorSelectorStateManager?.distributorList;\n const selectedDistributorId = distributorSelectorStateManager?.selectedDistributorId;\n\n if (this.map && ArrayExtensions.hasElements(distributorInfoList)) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const distributorList = distributorInfoList.filter(distributor => distributor.OrgUnit !== undefined);\n\n for (const [index, distributorInfo] of distributorList.entries()) {\n const orgUnit = distributorInfo.OrgUnit;\n\n if (orgUnit?.Latitude && orgUnit.Longitude) {\n const isLocationSelected = selectedDistributorId === orgUnit?.RecordId;\n const options = this._getPushpinOptions(isLocationSelected, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(orgUnit?.Latitude, orgUnit.Longitude), options);\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleDistributorPushpinClick(orgUnit.RecordId);\n });\n isLocationSelected ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isLocationSelected) {\n mapLocation = orgUnit;\n }\n }\n }\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true } as Microsoft.Maps.IMapOptions);\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Update the map.\n */\n private readonly _updateMap = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager?.result;\n const orgUnitStoreInformation = storeSelectorStateManager?.context?.orgUnitStoreInformation;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n\n if (this.map && orgUnitStoreInformation) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const storeLocationList = orgUnitStoreInformation.filter(store => store.OrgUnitAvailability !== undefined);\n\n for (const [index, unitStoreInfo] of storeLocationList.entries()) {\n const storeLocation = unitStoreInfo.OrgUnitAvailability?.OrgUnitLocation;\n\n if (storeLocation?.Latitude && storeLocation.Longitude) {\n const isSelectedLocation = selectedStoreLocationId === storeLocation.OrgUnitNumber;\n const options = this._getPushpinOptions(isSelectedLocation, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(\n new Microsoft.Maps.Location(storeLocation.Latitude, storeLocation.Longitude),\n options\n );\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleClickEvent(storeLocation.OrgUnitNumber);\n });\n isSelectedLocation ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isSelectedLocation) {\n mapLocation = storeLocation;\n }\n }\n }\n\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n // Create a LocationRect from array of pushpins and set the map view.\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true } as Microsoft.Maps.IMapOptions);\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Handle click event.\n * @param orgUnitNumber - Organization unit number.\n */\n private readonly handleClickEvent = (orgUnitNumber: string | undefined): void => {\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager.result;\n storeSelectorStateManager?.setSelectedStoreLocationId(undefined);\n if (orgUnitNumber) {\n setTimeout(() => {\n storeSelectorStateManager?.setSelectedStoreLocationId(orgUnitNumber);\n }, this.timeout);\n }\n };\n\n /**\n * Handle the click event of the pushpin for distributors on the maps.\n * @param recordId - RecordId.\n */\n private readonly handleDistributorPushpinClick = (recordId: number | undefined): void => {\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n // Show the distributor details that appear below the screen size of 768px.\n distributorSelectorStateManager?.updateDistributorMapVisibility(true);\n distributorSelectorStateManager?.setSelectedDistributorId(undefined);\n if (recordId) {\n setTimeout(() => {\n distributorSelectorStateManager?.setSelectedDistributorId(recordId);\n }, this.timeout);\n }\n };\n\n /**\n * Get the pushpin option.\n * @param isSelectedLocation - Is selected location.\n * @param index - Index.\n * @param pushpinOptions - PushpinOptions.\n * @returns - The pushpin options.\n */\n private readonly _getPushpinOptions = (isSelectedLocation: boolean, index: number, pushpinOptions?: IPushpinOptionsData) => {\n const text = pushpinOptions?.showIndex ? (index + 1).toString() : undefined;\n\n const size = pushpinOptions?.size || 1;\n const color = isSelectedLocation ? pushpinOptions?.selectionColor || pushpinOptions?.color : pushpinOptions?.color;\n const icon = this._getSvgIcon(size, color, text);\n\n return {\n // Fallback if icon doesn't render properly\n color: isSelectedLocation ? pushpinOptions?.selectionColor : pushpinOptions?.color,\n icon\n };\n };\n\n private readonly _getSvgIcon = (size: number, color?: string, text?: string) => {\n const baseValue: number = 32;\n return `\n \n ${text ? `${text}` : ''}\n `;\n };\n}\n\nexport default Map;\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 { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISubscribeConfig, ISubscribeProps } from './subscribe.props.autogenerated';\n\n/**\n * Subscribe view props.\n */\nexport interface ISubscribeViewProps extends ISubscribeProps {\n subscribe: IModuleProps;\n subscribeContainer: INodeProps;\n heading: React.ReactNode;\n text: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n subscribeForm?: INodeProps;\n emailInput?: INodeProps;\n handleText(): void;\n}\n\n/**\n * Subscribe component.\n * @extends {React.PureComponent>}\n */\nexport class Subscribe extends React.PureComponent> {\n private readonly _emailAddressInputRef: React.RefObject;\n\n public constructor(props: ISubscribeViewProps) {\n super(props);\n this._emailAddressInputRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const moduleClassName = 'ms-subscribe';\n\n const subscribeParagraph = paragraph && (\n \n );\n\n const subscribeHeading = heading && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n subscribe: {\n moduleProps: this.props,\n className: moduleClassName\n },\n subscribeContainer: {\n className: 'ms-subscribe__details'\n },\n heading: subscribeHeading,\n text: subscribeParagraph,\n subscribeForm: {\n className: 'ms-subscribe__details__form',\n tag: 'form',\n 'aria-label': this.props.resources.subscribeFormAriaLabel,\n name: 'subscribeForm',\n role: 'form',\n autoComplete: 'off'\n },\n emailInput: {\n className: 'ms-subscribe__details__form__email',\n tag: 'input',\n ref: this._emailAddressInputRef,\n type: 'email',\n 'aria-label': this.props.resources.subscribeFormEmailAriaLabel,\n placeholder: this.props.resources.subscribeEmailPlaceholderText\n },\n submitButton: {\n className: 'ms-subscribe__details__form__submit',\n tag: Button,\n 'aria-label': this.props.resources.subscribeFormSubmitAriaLabel,\n type: 'submit',\n title: this.props.resources.subscribeButtonLabel\n },\n submitButtonLabelText: this.props.resources.subscribeButtonLabel\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n}\n\nexport default Subscribe;\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\n/* eslint-disable no-duplicate-imports */\r\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { IGridSettings, IImageSettings, isEmptyOrNullObject } from '@msdyn365-commerce/core';\r\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport { computed, observable } from 'mobx';\r\nimport * as React from 'react';\r\nimport { IMenuItemData, ICountrySelectorData } from './country-selector.data';\r\nimport { ICmsNavItemsData, ICountrySelectorProps, ISubMenusData } from './country-selector.props.autogenerated';\r\n\r\nexport interface ICountrySelectorViewProps extends ICountrySelectorProps {\r\n className: string;\r\n menuItemData: IMenuItemData[];\r\n Navigation: IModuleProps;\r\n MenuList: INodeProps;\r\n ListItem: INodeProps;\r\n Link: INodeProps;\r\n Button: INodeProps;\r\n Span: INodeProps;\r\n ImageContainer: INodeProps;\r\n MobileDescriptionContainer: INodeProps;\r\n MobileBackButton: INodeProps;\r\n MobileDescriptionLabel: INodeProps;\r\n imageSettings: IImageSettings;\r\n gridSettings: IGridSettings;\r\n isMobileView: boolean;\r\n DivContainer?: INodeProps;\r\n ImageDivContainer?: INodeProps;\r\n countrySelectorIntroText: string;\r\n}\r\n\r\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\nexport interface INavigationMenuState {\r\n isMobile: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * CountrySelector component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CountrySelector extends React.PureComponent, INavigationMenuState> {\r\n private static CMSItemIdInit: number = 1000;\r\n private resizeThrottledEventHandler?: (event: Event) => void;\r\n private menuItemList: IMenuItemData[];\r\n private isCMS: boolean = true;\r\n @observable\r\n private viewport: GridSize;\r\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\r\n let nameTranslation: TextValueTranslation | undefined;\r\n if (locale && nameTranslations && nameTranslations.length > 0) {\r\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\r\n }\r\n\r\n return nameTranslation && nameTranslation.Text;\r\n }\r\n\r\n constructor(props: ICountrySelectorProps) {\r\n super(props);\r\n this._updateViewport = this._updateViewport.bind(this);\r\n this.viewport =\r\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\r\n this.state = { isMobile: this.isMobile };\r\n this.menuItemList = [];\r\n }\r\n\r\n @computed get isMobile(): boolean {\r\n return this.viewport === 'xs' || this.viewport === 'sm';\r\n }\r\n\r\n public componentDidMount(): void {\r\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\r\n this._updateViewport();\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n this.menuItemList = this._mapData();\r\n if (isEmptyOrNullObject(this.props.data)) {\r\n this.props.telemetry.error('Navigatiomenu returned null');\r\n return null;\r\n }\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=224&h=300&m=6`, w: 0, h: 0 },\r\n xl: { q: `w=224&h=300&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n const viewProps = {\r\n ...this.props,\r\n ...this.state,\r\n imageSettings: defaultImageSettings,\r\n gridSettings: this.props.context.request.gridSettings,\r\n Navigation: {\r\n moduleProps: this.props,\r\n className: classnames(\r\n 'ms-nav menu--country-selector',\r\n this.props.config.className,\r\n this.state.isMobile ? 'mobile-vp' : 'desktop-vp'\r\n ),\r\n tag: 'nav',\r\n role: 'navigation',\r\n 'aria-label': this.props.config.countrySelectorAriaLabel\r\n },\r\n MenuList: {\r\n className: 'ms-nav__list',\r\n tag: 'ul'\r\n },\r\n ListItem: {\r\n className: 'ms-nav__list__item',\r\n tag: 'li'\r\n },\r\n Link: {\r\n tag: 'a',\r\n className: 'ms-nav__list__item__link'\r\n },\r\n DivContainer: {\r\n tag: 'div',\r\n className: 'ms-nav__feature'\r\n },\r\n ImageDivContainer: {\r\n tag: 'div',\r\n className: 'category-image',\r\n role: 'tabpanel'\r\n },\r\n Button: {\r\n className: 'ms-nav__list__item__button',\r\n tag: 'button',\r\n onClick: this.props\r\n },\r\n ImageContainer: {\r\n className: 'ms-nav__list__item__image'\r\n },\r\n Span: {\r\n className: 'ms-nav__list__item__span',\r\n tag: 'span'\r\n },\r\n MobileDescriptionContainer: {\r\n className: 'ms-nav__list__mobile__container'\r\n },\r\n MobileBackButton: {\r\n className: 'ms-nav__list__mobile__container__button',\r\n tag: 'button',\r\n onClick: this.props\r\n },\r\n MobileDescriptionLabel: {\r\n className: 'ms-nav__list__mobile__container__span',\r\n tag: 'span'\r\n },\r\n isMobileView: this.state.isMobile,\r\n menuItemData: this.menuItemList,\r\n className: classnames('ms-nav', this.props.config.className)\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _mapData(): IMenuItemData[] {\r\n const { config } = this.props;\r\n const mergedData: IMenuItemData[] = [];\r\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\r\n config.cmsNavItems.map((item: ICmsNavItemsData) => mergedData.push(this._constructMenuItemData(item)));\r\n }\r\n return mergedData;\r\n }\r\n\r\n // tslint:disable-next-line: cyclomatic-complexity\r\n private _constructMenuItemData(cmsItem?: ICmsNavItemsData): IMenuItemData {\r\n return {\r\n id: CountrySelector.CMSItemIdInit++,\r\n linkText: (cmsItem && cmsItem.linkText) || '',\r\n linkURL: (cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl) || '',\r\n imageDestinationURL: (cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl) || '',\r\n imageSource: (cmsItem && cmsItem.image && cmsItem.image.src) || '',\r\n subMenu: this._getCMSNestedChildren(cmsItem)\r\n } as IMenuItemData;\r\n }\r\n\r\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\r\n const nestedChildren: IMenuItemData[] = [];\r\n\r\n if (!category || !category.subMenus || !category.subMenus.length) {\r\n return [];\r\n }\r\n\r\n category.subMenus.map((item: ISubMenusData, idx: number) => {\r\n nestedChildren.push(this._constructMenuItemData(item));\r\n });\r\n return nestedChildren;\r\n }\r\n\r\n private _updateViewport(): void {\r\n this.viewport = this._getViewport();\r\n this.setState({ isMobile: this.isMobile });\r\n }\r\n\r\n private _getViewport(): GridSize {\r\n const { context } = this.props;\r\n // always render in mobile viewport on a mobile device\r\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n if (typeof window !== undefined && window.innerWidth) {\r\n const gridSettings = context.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n } else {\r\n return 'xl';\r\n }\r\n }\r\n }\r\n return 'xs';\r\n }\r\n}\r\n\r\nexport default CountrySelector;\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 Drawer,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n IDrawerState,\r\n IPayLoad,\r\n ITelemetryContent,\r\n Module,\r\n Node,\r\n onTelemetryClick\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { IImageData } from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { ICountrySelectorViewProps } from './country-selector';\r\nimport { IMenuItemData } from './country-selector.data';\r\nimport { ICountrySelectorConfig } from './country-selector.props.autogenerated';\r\n\r\ninterface INavigationState {\r\n parentMenu?: number;\r\n activeMenu?: number;\r\n categoryImage?: IImageData[] | null;\r\n mobileViewLabelText?: string;\r\n categoryImageAltText: string;\r\n}\r\n\r\n/**\r\n *\r\n * NavigationMenuView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class CountrySelectorView extends React.PureComponent {\r\n private currentLevel: number = 0;\r\n private escapeKey: number = 27;\r\n private menuNode: React.RefObject;\r\n private telemetryContent: ITelemetryContent;\r\n private payLoad: IPayLoad;\r\n private resizeObserver: ResizeObserver | null = null;\r\n\r\n constructor(props: ICountrySelectorViewProps) {\r\n super(props);\r\n this.menuNode = React.createRef();\r\n this.state = {\r\n activeMenu: undefined,\r\n mobileViewLabelText: '',\r\n parentMenu: undefined,\r\n categoryImageAltText: ''\r\n };\r\n this._closeSubmenu = this._closeSubmenu.bind(this);\r\n this._escFunction = this._escFunction.bind(this);\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\r\n }\r\n\r\n private initializeResizeObserver = () => {\r\n this.resizeObserver = new ResizeObserver(_ => {\r\n const div = document.querySelector('.mobile.menus');\r\n if (div) {\r\n div.scrollIntoView({ behavior: 'smooth', block: 'end' });\r\n }\r\n });\r\n };\r\n\r\n public componentDidMount(): void {\r\n document.body && document.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n document.body && document.body.addEventListener('mousedown', this._handleClickOutside);\r\n this.initializeResizeObserver();\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n document.body && document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n document.body && document.body.removeEventListener('mousedown', this._handleClickOutside, false);\r\n if (this.resizeObserver) {\r\n this.resizeObserver.disconnect();\r\n }\r\n }\r\n\r\n public handleDrawerToggle = (e: IDrawerState) => {\r\n const mobileMenu = document.querySelector('.mobile.menus');\r\n if (e.isOpen && mobileMenu && this.resizeObserver) {\r\n this.resizeObserver.observe(mobileMenu);\r\n }\r\n };\r\n\r\n public render(): JSX.Element | null {\r\n const { isMobileView } = this.props;\r\n\r\n this.currentLevel = 1;\r\n return {isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()};\r\n }\r\n\r\n private _renderMobileMenu(): JSX.Element {\r\n const { isMobileView, menuItemData, Navigation, config } = this.props;\r\n return (\r\n \r\n {menuItemData.map((menuItem: IMenuItemData) => {\r\n return this._renderDrawerMenu(menuItem, config);\r\n })}\r\n \r\n );\r\n }\r\n private _renderDesktopMenu(): JSX.Element {\r\n const { MenuList, Navigation } = this.props;\r\n return (\r\n \r\n \r\n {this._renderDisplay()}\r\n \r\n \r\n );\r\n }\r\n\r\n private _renderDrawerMenu(menuItem: IMenuItemData, config: ICountrySelectorConfig): JSX.Element | null {\r\n if (menuItem && menuItem.subMenu && menuItem.subMenu.length > 0) {\r\n return this._renderDrawer(menuItem, config);\r\n } else {\r\n return this._renderLinkMenuItem(menuItem);\r\n }\r\n }\r\n\r\n private _renderDrawer(menuItem: IMenuItemData, config: ICountrySelectorConfig): JSX.Element | null {\r\n const toggleButtonText = menuItem.linkText;\r\n const toggleButtonImg = menuItem.imageSource;\r\n return (\r\n \r\n
\r\n {config.countrySelectorIntroText &&

{config.countrySelectorIntroText}

}\r\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData) => {\r\n return this._renderDrawerLink(menuSubItem);\r\n })}\r\n
\r\n \r\n );\r\n }\r\n\r\n private _renderLinkText(linkText: string | undefined, linkImg: string | undefined): JSX.Element {\r\n return (\r\n \r\n {linkText}\r\n {linkImg && {''}}\r\n \r\n );\r\n }\r\n\r\n private _renderDrawerLink(item: IMenuItemData): JSX.Element | null {\r\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\r\n return this._renderLinkMenuItem(item);\r\n } else if (item && item.linkText && !item.linkURL) {\r\n return this._renderSpanMenuItem(item);\r\n }\r\n return null;\r\n }\r\n\r\n private _renderDisplay(): JSX.Element[] {\r\n const { ListItem, menuItemData, isMobileView } = this.props;\r\n const { activeMenu } = this.state;\r\n const menuItemList: JSX.Element[] = [];\r\n\r\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\r\n let menuItem: IMenuItemData = {};\r\n for (let i = 0; i < menuItemData.length; i++) {\r\n if (menuItemData[i] && menuItemData[i].id === activeMenu) {\r\n menuItem = menuItemData[i];\r\n this.setState({\r\n parentMenu: undefined,\r\n mobileViewLabelText: menuItemData[i].linkText\r\n });\r\n break;\r\n }\r\n menuItem = this._getFromSubMenu(menuItemData[i]) as IMenuItemData;\r\n if (menuItem && menuItem.id === activeMenu) {\r\n break;\r\n }\r\n }\r\n\r\n menuItem &&\r\n menuItemList.push(\r\n \r\n {' '}\r\n {this._createMenuItemList(menuItem)}{' '}\r\n \r\n );\r\n } else {\r\n menuItemData.forEach((item: IMenuItemData, index: number) => {\r\n menuItemList.push(\r\n \r\n {this._createMenuItemList(item)}\r\n \r\n );\r\n });\r\n }\r\n\r\n return menuItemList;\r\n }\r\n\r\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\r\n const subMenus = item && item.subMenu;\r\n if (subMenus && subMenus.length > 0) {\r\n for (let i = 0; i <= subMenus.length - 1; i++) {\r\n if (subMenus[i].id === this.state.activeMenu) {\r\n this.setState({\r\n parentMenu: item && item.id,\r\n mobileViewLabelText: subMenus[i].linkText\r\n });\r\n return subMenus[i];\r\n }\r\n const found = this._getFromSubMenu(subMenus[i]);\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\r\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\r\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\r\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id);\r\n } else {\r\n return (\r\n \r\n {this._renderButtonMenuItem(menuItemData)}\r\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\r\n \r\n );\r\n }\r\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\r\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false);\r\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\r\n return this._renderSpanMenuItem(menuItemData);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\r\n const { isMobileView, ListItem } = this.props;\r\n const enableMultiSupportMenu = false;\r\n const multiLevelSupportedMenu = 2;\r\n // const isParentMenu:boolean= false;\r\n if (activeMenu && this.state.activeMenu !== activeMenu) {\r\n // this.props.context.telemetry.error(\r\n // \"Navigation Active menu content is empty, module wont render.\"\r\n // );\r\n return null;\r\n }\r\n\r\n if (!subMenus || subMenus.length === 0) {\r\n // this.props.context.telemetry.error(\r\n // \"Navigation Submenu content is empty, module wont render.\"\r\n // );\r\n return null;\r\n }\r\n\r\n let levelClassName: string = '';\r\n const menuOptions =\r\n subMenus &&\r\n subMenus.map((option: IMenuItemData, idx: number) => {\r\n const hasOptions = option.subMenu && option.subMenu.length > 0;\r\n let menuItem: JSX.Element | null;\r\n if (hasOptions && isMobileView) {\r\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\r\n } else {\r\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\r\n }\r\n let subMenu;\r\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\r\n if (haveSubmenu) {\r\n this.currentLevel++;\r\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\r\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\r\n }\r\n return (\r\n \r\n {menuItem}\r\n {subMenu}\r\n \r\n );\r\n });\r\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\r\n }\r\n\r\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\r\n const { Button } = this.props;\r\n return (\r\n \r\n {option.linkText}\r\n {option.imageSource && {''}}\r\n \r\n );\r\n }\r\n\r\n private _renderLinkMenuItem(option: IMenuItemData, index?: number, hoverEffect: boolean = true): JSX.Element | null {\r\n const { Link } = this.props;\r\n const linkText = option.linkText ? option.linkText : '';\r\n const imagesource = option.imageSource ? option.imageSource : '';\r\n this.payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n const currentSite = typeof window !== 'undefined' && `${location.origin}${this.props.context.request.sitePath}`;\r\n const currentLang = currentSite === option.linkURL ? true : false;\r\n return (\r\n \r\n {imagesource && {''}}\r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\r\n const { Span } = this.props;\r\n return (\r\n \r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\r\n const { DivContainer, MenuList, config } = this.props;\r\n const DivContainerClass = this.currentLevel > 2 ? DivContainer!.className : 'ms-nav__deafult';\r\n this.currentLevel = 1;\r\n return (\r\n \r\n \r\n {config.countrySelectorIntroText &&

{config.countrySelectorIntroText}

}\r\n\r\n {menuOptions}\r\n
\r\n
\r\n );\r\n }\r\n private _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\r\n if (!this.props.isMobileView) {\r\n this.setState({\r\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\r\n parentMenu: parentId\r\n });\r\n } else {\r\n this.setState({\r\n activeMenu: data.id,\r\n mobileViewLabelText: data.linkText!,\r\n parentMenu: parentId\r\n });\r\n }\r\n\r\n this._resetFocus();\r\n };\r\n\r\n private _resetFocus = () => {\r\n if (this.props.isMobileView) {\r\n setTimeout(() => {\r\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\r\n }, 0);\r\n }\r\n };\r\n\r\n // tslint:disable-next-line:no-any\r\n private _handleClickOutside = (event: any) => {\r\n if (this.menuNode.current && !this.menuNode.current.contains(event.target)) {\r\n this.setState({ activeMenu: undefined, mobileViewLabelText: '' });\r\n }\r\n };\r\n\r\n private _closeSubmenu(): void {\r\n if (!this.props.isMobileView) {\r\n this.setState({ activeMenu: undefined, mobileViewLabelText: '' });\r\n }\r\n }\r\n private _escFunction = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === this.escapeKey) {\r\n this._closeSubmenu();\r\n }\r\n };\r\n}\r\n\r\nexport default CountrySelectorView;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address';\r\nimport { convert_a2_to_a3 } from '../utils/convert_a2_a3';\r\n\r\nconst AddressShow: React.FC = ({ AddressDetail, items }) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: IAddressShowItem) => {\r\n return <>{item.description};\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({ List, isShowList, heading, items }) => {\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items &&\r\n items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton, removeButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n \r\n {isShowError && (\r\n \r\n {title}\r\n {message}\r\n \r\n )}\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n {removeButton}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n// tslint:disable-next-line:max-func-body-length\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n ...other\r\n}) => {\r\n // @ts-ignore\r\n const resources = other?.moduleProps?.resources;\r\n // @ts-ignore\r\n const localeString = other?.moduleProps?.context?.request?.locale;\r\n // @ts-ignore\r\n const sitePath = other?.moduleProps?.context?.request?.sitePath;\r\n const europe = ['/fr', '/de'];\r\n // @ts-ignore\r\n const currency = other?.moduleProps?.context?.request?.channel?.Currency;\r\n const locale =\r\n sitePath && europe.includes(sitePath)\r\n ? 'eu'\r\n : currency === 'EUR' && localeString === 'en-GB'\r\n ? 'eu'\r\n : localeString.replace('-', '');\r\n\r\n const [hasAddressError, setHasAddressError] = React.useState(false);\r\n React.useEffect(() => {\r\n setHasAddressError(error.title ? true : false);\r\n }, [error.title]);\r\n // console.log(`${currency} ${localeString} ${locale}`);\r\n const countriesAvail = {\r\n enGB: {\r\n autocomplete: ['gb'],\r\n select: ['GBR']\r\n },\r\n it: {\r\n autocomplete: ['it'],\r\n select: ['ITA']\r\n },\r\n enUS: {\r\n autocomplete: ['us'],\r\n // autocomplete: ['us', 'ca'],\r\n // select: ['USA', 'CAN']\r\n select: ['USA']\r\n },\r\n eu: {\r\n // removed componentRestrictions for country as there is limit of 5 in google maps\r\n // autocomplete:['at','be','bg','ch','cz','de','dk','es','ee','fi','fr','gr','hr','hu','ie','li','lt','lu','lv','mc','nl','no','pl','pt','ro','sk','si','se'],\r\n autocomplete: [],\r\n select: [\r\n 'AUT',\r\n 'BEL',\r\n 'BGR',\r\n 'CHE',\r\n 'CZE',\r\n 'DEU',\r\n 'DNK',\r\n 'ESP',\r\n 'EST',\r\n 'FIN',\r\n 'FRA',\r\n 'GRC',\r\n 'HRV',\r\n 'HUN',\r\n 'IRL',\r\n 'LIE',\r\n 'LTU',\r\n 'LUX',\r\n 'LVA',\r\n 'MCO',\r\n 'NLD',\r\n 'NOR',\r\n 'POL',\r\n 'PRT',\r\n 'ROU',\r\n 'SVK',\r\n 'SVN',\r\n 'SWE'\r\n ]\r\n },\r\n enSG: {\r\n autocomplete: ['sg'],\r\n select: ['SGP']\r\n },\r\n enHK: {\r\n autocomplete: ['hk'],\r\n select: ['HKG']\r\n },\r\n zhHK: {\r\n autocomplete: ['hk'],\r\n select: ['HKG']\r\n }\r\n };\r\n // @ts-ignore\r\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype, 'value').set;\r\n // tslint:disable-next-line:typedef\r\n function gMapsAutocomplete() {\r\n const googleComponents = [\r\n { googleComponent: 'sublocality_level_1', id: 'shipping_addresscity' },\r\n { googleComponent: 'locality', id: 'shipping_addresscity' },\r\n { googleComponent: 'postal_town', id: 'shipping_addresscity' },\r\n { googleComponent: 'administrative_area_level_3', id: 'shipping_addresscity' },\r\n { googleComponent: 'administrative_area_level_1', id: 'shipping_addressstate' },\r\n { googleComponent: 'postal_code_prefix', id: 'shipping_addresszipcode' },\r\n { googleComponent: 'postal_code', id: 'shipping_addresszipcode' },\r\n { googleComponent: 'country', id: 'shipping_addressthreeletterisoregionname' },\r\n { googleComponent: 'administrative_area_level_2', id: 'shipping_addresscounty' }\r\n ];\r\n\r\n const autocompleteFormField = document.getElementById('shipping_addressstreet');\r\n // @ts-ignore\r\n const autocomplete = new window.google.maps.places.Autocomplete(autocompleteFormField, {\r\n types: ['address'],\r\n componentRestrictions: { country: countriesAvail[locale] && countriesAvail[locale].autocomplete }\r\n });\r\n if (autocompleteFormField === null) {\r\n return;\r\n }\r\n autocompleteFormField.setAttribute('placeholder', resources.startTypingYourAddress);\r\n // @ts-ignore\r\n window.google.maps.event.clearInstanceListeners(autocompleteFormField);\r\n // @ts-ignore\r\n window.google.maps.event.addListener(autocomplete, `place_changed`, () => {\r\n const place = autocomplete.getPlace();\r\n // console.log(place);\r\n if (nativeInputValueSetter === undefined) {\r\n return;\r\n }\r\n nativeInputValueSetter.call(autocompleteFormField, place.name);\r\n const eCustom = new Event('change', { bubbles: true });\r\n autocompleteFormField.dispatchEvent(eCustom);\r\n for (const googleComponent of googleComponents) {\r\n const addressComponents = place.address_components;\r\n if (addressComponents && addressComponents.length > 0) {\r\n // @ts-ignore\r\n addressComponents.forEach(addressComponent => populateFormElements(addressComponent, googleComponent));\r\n }\r\n }\r\n });\r\n }\r\n // tslint:disable-next-line:typedef no-any\r\n function populateFormElements(\r\n addressComponent: { types: any[]; short_name: string; long_name: string },\r\n formMap: { googleComponent: any; id: string }\r\n ) {\r\n const addressType = addressComponent.types[0];\r\n\r\n if (document.getElementById(formMap.id) === undefined || document.getElementById(formMap.id) === null) {\r\n return;\r\n }\r\n\r\n if (formMap.googleComponent === addressType) {\r\n if (formMap.id === 'shipping_addressthreeletterisoregionname' || formMap.id === 'shipping_addressstate') {\r\n const input = document.getElementById(formMap.id) as HTMLSelectElement;\r\n if (input !== null) {\r\n const formValue = locale === 'it' && formMap.id === 'shipping_addressstate' ? 'DEF' : addressComponent.short_name;\r\n // console.log(formValue);\r\n const selectedValue = selectItemByValue(input, formValue, addressType === 'country' ? true : false);\r\n // console.log(selectedValue);\r\n if (selectedValue !== undefined) {\r\n input.value = selectedValue;\r\n // console.log(input.value);\r\n const event = new Event('change', { bubbles: true });\r\n input.dispatchEvent(event);\r\n }\r\n }\r\n } else {\r\n const formValue = formMap.id === 'shipping_addresscounty' ? addressComponent.short_name : addressComponent.long_name;\r\n const input = document.getElementById(formMap.id);\r\n if (input !== undefined) {\r\n if (nativeInputValueSetter === undefined) {\r\n return;\r\n }\r\n nativeInputValueSetter.call(input, formValue);\r\n const eCustom = new Event('input', { bubbles: true });\r\n if (input !== null) {\r\n input.dispatchEvent(eCustom);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // @ts-ignore\r\n // tslint:disable-next-line:typedef\r\n function selectItemByValue(elmnt: HTMLSelectElement, value: string, is_convert_a2_to_a3) {\r\n for (let i = 0; i < elmnt.options.length; i++) {\r\n const eValue = elmnt.options[i].value;\r\n if ((is_convert_a2_to_a3 && eValue === convert_a2_to_a3[value]) || (!is_convert_a2_to_a3 && eValue === value)) {\r\n return elmnt.options[i].value;\r\n }\r\n }\r\n }\r\n const checkPhone = () => {\r\n const saveAddressButton = document.querySelector('.msc-address-form__button-save.msc-btn') as HTMLButtonElement;\r\n const phone = document.getElementById('shipping_addressphone') as HTMLInputElement;\r\n if (phone) {\r\n const phoneCtn = phone.closest('.msc-address-form__item') as HTMLElement;\r\n const phoneAlert = phoneCtn.getElementsByClassName('msc-address-form__alert')[0];\r\n const pattern = /^[0-9]*$/;\r\n const pattern2 = /^\\+?\\d+$/;\r\n phone.setAttribute('aria-required', 'true');\r\n phone.setAttribute('type', 'tel');\r\n phone.setAttribute('maxlength', '15');\r\n if (phone.value.length === 0) {\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n }\r\n phone.onkeyup = () => {\r\n if (!phone.value.match(pattern) && !phone.value.match(pattern2)) {\r\n phoneCtn.classList.add('address-form__item-invalid');\r\n phoneAlert.textContent = resources.addressPhoneRequiredErrorMessage;\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n } else if (phone.value.length < 6) {\r\n phoneCtn.classList.add('address-form__item-invalid');\r\n phoneAlert.textContent = resources.addressPhoneRequiredErrorMessage;\r\n saveAddressButton.setAttribute('disabled', 'true');\r\n } else {\r\n phoneCtn.classList.remove('address-form__item-invalid');\r\n phoneAlert.textContent = '';\r\n saveAddressButton.removeAttribute('disabled');\r\n }\r\n };\r\n }\r\n };\r\n function phoneValidation(): void {\r\n const addressForm = document.getElementsByClassName('msc-address-form')[0];\r\n const saveAddressButton = document.querySelector('.msc-address-form__button-save.msc-btn') as HTMLButtonElement;\r\n const county = document.getElementById('shipping_addresscounty') as HTMLInputElement;\r\n const countyCtn = county && county !== null ? (county.closest('.msc-address-form__item') as HTMLInputElement) : undefined;\r\n const countyAlert = countyCtn?.getElementsByClassName('msc-address-form__alert')[0];\r\n\r\n if (countyCtn !== undefined) {\r\n countyCtn.onkeyup = () => {\r\n countyCtn?.classList.remove('address-form__item-invalid');\r\n if (countyAlert) {\r\n countyAlert.textContent = '';\r\n }\r\n };\r\n }\r\n if (saveAddressButton !== undefined) {\r\n saveAddressButton.onclick = e => {\r\n const countyValid =\r\n locale === 'it' && (county.value === '' || county.value.length > 2 || !/[^a-z]/i.test(county.value) === false)\r\n ? false\r\n : true;\r\n if (!countyValid) {\r\n countyCtn?.classList.add('address-form__item-invalid');\r\n if (countyAlert) {\r\n countyAlert.textContent = 'Inserire Codice ISO a 2 lettere';\r\n }\r\n const elements = addressForm.querySelectorAll('input');\r\n let fieldInALL = true;\r\n elements.forEach(fieldInControl);\r\n function fieldInControl(element: HTMLInputElement): void {\r\n if (element.value === '' && element.name !== 'County') {\r\n fieldInALL = false;\r\n }\r\n }\r\n if (fieldInALL) {\r\n e.stopPropagation();\r\n }\r\n }\r\n };\r\n }\r\n }\r\n React.useEffect(() => {\r\n gMapsAutocomplete();\r\n const options = document.querySelectorAll('#shipping_addressthreeletterisoregionname option');\r\n options.forEach(o => {\r\n const optionV = (o as HTMLOptionElement).value;\r\n if (countriesAvail[locale] && !countriesAvail[locale].select.includes(optionV)) {\r\n o.remove();\r\n }\r\n });\r\n const countrySelect = document.getElementById('shipping_addressthreeletterisoregionname') as HTMLSelectElement;\r\n if (locale === 'enUS') {\r\n countrySelect.value = 'USA';\r\n }\r\n const event = new Event('change', { bubbles: true });\r\n countrySelect.dispatchEvent(event);\r\n }, []);\r\n\r\n // Auto select of DEF value in state select on italian site\r\n React.useEffect(() => {\r\n const event = new Event('change', { bubbles: true });\r\n if (locale === 'it' && (document.querySelector('#shipping_addressstate option[value=DEF]') as HTMLOptionElement)) {\r\n const optionDEF = document.querySelector('#shipping_addressstate option[value=DEF]') as HTMLOptionElement;\r\n optionDEF.setAttribute('aria-selected', 'true');\r\n (optionDEF.parentNode as HTMLSelectElement).value = 'DEF';\r\n (optionDEF.parentNode as HTMLSelectElement).dispatchEvent(event);\r\n (optionDEF.parentNode as HTMLSelectElement).disabled = Boolean('true');\r\n }\r\n }, [document.querySelector('#shipping_addressstate option[value=DEF]')]);\r\n\r\n React.useEffect(() => {\r\n const phoneItem = items.find(i => i.key === 'Phone');\r\n\r\n //@ts-ignore\r\n if (phoneItem?.input?.props?.onChange) {\r\n //@ts-ignore\r\n const { onChange } = phoneItem.input.props;\r\n\r\n const handlePhoneChange = (event: React.ChangeEvent) => {\r\n onChange(event);\r\n checkPhone();\r\n };\r\n\r\n //@ts-ignore\r\n phoneItem.input.props.onChange = handlePhoneChange;\r\n }\r\n }, [items]);\r\n\r\n React.useEffect(() => {\r\n phoneValidation();\r\n }, [document.getElementsByClassName('msc-address-form')[0]]);\r\n\r\n // Refesh once saving processed\r\n let updatedCount = 0;\r\n React.useEffect(() => {\r\n ++updatedCount;\r\n if (updatedCount > 1) {\r\n location.reload();\r\n }\r\n }, [document.querySelector('.msc-address-form__button-updating')]);\r\n return (\r\n \r\n {heading}\r\n {items &&\r\n items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n if (key === 'Name' && input) {\r\n // @ts-ignore\r\n input.props.maxLength = 34;\r\n }\r\n return (\r\n \r\n {label}\r\n {alert}\r\n {input}\r\n \r\n );\r\n })}\r\n {hasAddressError && (\r\n \r\n

{resources.addressErrorMessage}

\r\n
\r\n )}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n
\r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ILoyaltySignUpViewProps } from '@msdyn365-commerce-modules/account-management';\r\nimport { ILoyaltySignUpProps } from '../definition-extensions/loyalty-sign-up.ext.props.autogenerated';\r\n\r\nconst LoyaltySignUpView: React.FC> = props => {\r\n const {\r\n LoyaltySignUp,\r\n heading,\r\n memberHeading,\r\n signInLink,\r\n signUpText,\r\n signUpButton,\r\n detailsLink,\r\n // termsLink, Not needed\r\n loading,\r\n infoMessageBar\r\n } = props;\r\n\r\n if (loading) {\r\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\r\n return null;\r\n }\r\n\r\n // const hostname = props?.context?.request?.url?.requestUrl?.hostname || '';\r\n\r\n if (typeof window !== 'undefined') {\r\n const loyalty_join_toggle_btn = document.getElementsByClassName('ms-loyalty-terms__toggle')[0];\r\n loyalty_join_toggle_btn?.addEventListener('click', () => {\r\n const loyalty_join_btn = document.getElementsByClassName('ms-loyalty-terms__submit')[0];\r\n loyalty_join_btn.addEventListener('click', () => {\r\n loyalty_join_btn.innerHTML = \"
\";\r\n });\r\n });\r\n }\r\n\r\n /*\r\n [signInLink = true, loyalty_join_flag = false] guest (no loyalty join) -> standard sign in\r\n [signInLink = true, loyalty_join_flag = true] guest (loyalty join) -> \"thanks\" instead of sign in\r\n [signInLink = false] logged in -> hidden module content\r\n */\r\n const loyalty_join_flag = props.context.request.query?.hasJoined;\r\n // signInLink is null (thus false) when the user is logged in\r\n return (\r\n signInLink &&\r\n (loyalty_join_flag ? (\r\n
\r\n {props.resources.joinedLoyaltyThankYouHeader && (\r\n

{props.resources.joinedLoyaltyThankYouHeader}

\r\n )}\r\n {props.resources.joinedLoyaltyParagraphContent && (\r\n
\r\n

{props.resources.joinedLoyaltyParagraphContent}

\r\n
\r\n )}\r\n {/* {props.resources.loyaltyBalanceCheckURL && props.resources.joinedLoyaltyBalanceCheckLinkText && ({props.resources.joinedLoyaltyBalanceCheckLinkText})} */}\r\n
\r\n ) : (\r\n \r\n {infoMessageBar}\r\n {memberHeading}\r\n {heading}\r\n {detailsLink}\r\n {signUpText}\r\n {/* {termsLink} Not needed */}\r\n {signUpButton}\r\n {signInLink}\r\n \r\n ))\r\n );\r\n};\r\n\r\nexport default LoyaltySignUpView;\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\n// import { IContentBlockViewProps } from '@msdyn365-commerce-modules/content-block';\r\nimport { IWriteReviewViewProps, IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { Module, Node, IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst ContentBlockView: React.FC = props => {\r\n const { heading, /* signInMessage, */ signInButton, modalToggle, reviewModal, moduleProps } = props;\r\n const isAuthenticated = props.context.request.user.isAuthenticated;\r\n // @ts-ignore\r\n //const reviewButtonLabel = moduleProps?.moduleProps?.resources?.reviewButtonLabel ?? '';\r\n //const customSignInButton = signInButton;\r\n // @ts-ignore\r\n //customSignInButton.props.text = reviewButtonLabel;\r\n // const test = { ...moduleProps };\r\n // @ts-ignore\r\n moduleProps.moduleProps.resources.signInLabel = moduleProps.moduleProps.resources.reviewButtonLabel;\r\n React.useEffect(() => {\r\n const button = document.getElementsByClassName('ms-write-review__sign-in-btn')[0];\r\n if (button) {\r\n button.setAttribute('style', 'visibility: visible');\r\n }\r\n }, []);\r\n return React.createElement(\r\n Module,\r\n Object.assign({}, moduleProps),\r\n heading,\r\n !isAuthenticated\r\n ? React.createElement(React.Fragment, null, null, signInButton)\r\n : React.createElement(React.Fragment, null, modalToggle, createReviewModal(reviewModal, moduleProps))\r\n );\r\n /* return (React.createElement(Module, Object.assign({}, moduleProps),\r\n heading,\r\n !isAuthenticated ? React.createElement(React.Fragment, null,\r\n signInMessage,\r\n signInButton) : React.createElement(React.Fragment, null,\r\n modalToggle,\r\n createReviewModal(reviewModal, moduleProps)))); */\r\n};\r\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps) => {\r\n return React.createElement(\r\n Module,\r\n Object.assign({}, props.modal, moduleProps),\r\n props.modalHeader,\r\n React.createElement(\r\n Node,\r\n Object.assign({}, props.modalBody),\r\n React.createElement(\r\n Node,\r\n Object.assign({}, props.form),\r\n React.createElement(Node, Object.assign({}, props.inputRow), props.rating, props.ratingLabel),\r\n React.createElement(Node, Object.assign({}, props.inputRow), props.titleLabel, props.titleInput),\r\n React.createElement(Node, Object.assign({}, props.inputRow), props.textLabel, props.textInput),\r\n props.privacyPolicyUrl,\r\n props.error\r\n )\r\n ),\r\n React.createElement(Node, Object.assign({}, props.modalFooter), props.submitButton, props.cancelButton)\r\n );\r\n};\r\nexport default ContentBlockView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root && (\n \n {root}\n {links && separator}\n \n )}\n {backButton && {backButton}}\n {links &&\n links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n \n \n );\n};\n\nexport default BreadCrumbView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICountryPickerViewProps } from './index';\n\n/**\n * Functional component which renders country picker module.\n * @param props - Configuration for the country picker component.\n * @returns React.FC - Functional component of the country picker module.\n */\nexport const countryPickerView: React.FC = (props: ICountryPickerViewProps) => {\n const {\n isModalOpen,\n modalContainer,\n modalHeaderContainer,\n modalBodyContainer,\n heading,\n modalFooterContainer,\n subheading,\n link,\n countryList,\n stayOnCurrentSiteButton\n } = props;\n return isModalOpen && countryList ? (\n \n \n {heading}\n {subheading}\n \n \n {countryList.map(country => (\n <>{country}\n ))}\n \n \n {stayOnCurrentSiteButton}\n {link}\n \n \n ) : null;\n};\n\nexport default countryPickerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n callbacks,\n state,\n resources,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n shopSimilarDescription,\n unitOfMeasure\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {_renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity &&\n _renderQuantity(\n quantity,\n callbacks,\n props,\n state,\n resources,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n telemetryContent\n )}\n {inventoryLabel}\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps\n): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n min: number | undefined,\n max: number | undefined,\n applyDefaultOrderSettings?: boolean,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IFooterCategoryViewProps } from './footer-category';\n\nexport const FooterCategoryView: React.FC = props => {\n const { categories, FooterList, FooterListItem } = props;\n if (!categories || categories.length === 0) {\n props.context.telemetry.error('Footer content is empty, module wont render');\n return null;\n }\n return (\n \n {categories.map((category: ReactNode, index: number) => {\n return (\n \n {category}\n \n );\n })}\n \n );\n};\n\nexport default FooterCategoryView;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IImageListViewProps } from './image-list';\n\n/**\n * Render the thumbnail item images.\n * @param props - The image list view props.\n * @returns Return HTML having IImageListViewProps props with image List.\n */\nexport const imageListView = (props: IImageListViewProps): JSX.Element => {\n const { imageList, imageListContainer, imageListHeading, imageListItem, imageListItems, imageListItemAnchorTag } = props;\n return (\n \n {imageListHeading}\n \n {imageListItems?.map(item => {\n let indexKey: string;\n\n if (item.image) {\n const image = (item.image as unknown) as Msdyn365.Image;\n indexKey = image.props.src as string;\n } else {\n const text = (item.text as unknown) as Msdyn365.RichTextComponent;\n indexKey = text.props.text as string;\n }\n return (\n \n {item.image && (\n \n {item.image}\n \n )}\n {item.text}\n \n );\n })}\n \n \n );\n};\n\nexport default imageListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IInteractiveFeatureCollectionViewProps } from './interactive-feature-collection';\n\n/**\n * Feature Collection View.\n * @param props - Feature Collection view props.\n * @returns Feature Collection View.\n */\nexport const interactiveFeatureCollectionView: React.FC = props => {\n const {\n title,\n interactiveFeatureCollectionHeading,\n interactiveFeatureCollectionContainer,\n interactiveFeatureCollectionDesktopContainer,\n interactiveFeatureCollectionDesktopItems,\n interactiveFeatureCollectionMobileItems,\n interactiveFeatureCollectionMobileContainer,\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer\n } = props;\n return (\n \n {title}\n {interactiveFeatureCollectionDesktopItems}\n \n \n {interactiveFeatureCollectionMobileItems &&\n interactiveFeatureCollectionMobileItems.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureItemViewProps } from './interactive-feature-item';\n\n/**\n * Enumerator used to make some calculations to set the proper classnames\n * using modular calculations to see if they are in a right or left column or on first or last row.\n */\nenum MagicNumber {\n modularDivisor = 4,\n caseNumberZero = 0,\n caseNumberOne = 1,\n caseNumberTwo = 2\n}\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @param indexItem - Feature Item view props.\n * @param itemCounter - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewProps, indexItem?: number, itemCounter?: number): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails\n } = thisProps;\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\n const modularAux = indexAux % MagicNumber.modularDivisor;\n const firstRow = indexAux <= MagicNumber.caseNumberTwo ? 'firstRow' : '';\n const lastRow =\n itemCounterAux && (indexAux === itemCounterAux || indexAux === itemCounterAux - MagicNumber.caseNumberOne) ? 'lastRow' : '';\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\n\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */ const renderCarousel = (thisProps: IInteractiveFeatureItemViewProps): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent\n } = thisProps;\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param props - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nexport const FeatureItemViewComponent: React.FC = props => {\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\n if (isMosaic) {\n return <>{renderMosaic(props, indexItem, itemCounter)};\n }\n return {renderCarousel(props)};\n};\n\nexport default FeatureItemViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IHeader, IMapViewProps } from './map';\n\n/**\n * Render the heading.\n * @param param0 -- Heading props.\n * @param param0.headerProps -- Heading Props.\n * @param param0.heading -- Heading Node.\n * @returns -- Returns the node.\n */\nconst MapHeader: React.FC = ({ headerProps, heading }) => {heading};\n\n/**\n * Renders the map view props.\n * @param param0 -- Map view props.\n * @param param0.ModuleProps -- Module props.\n * @param param0.Header -- Header props.\n * @param param0.MapProps -- Map props.\n * @returns -- Returns the map module.\n */\nconst MapView: React.FC = ({ ModuleProps, Header, MapProps }) => (\n \n {Header && }\n \n \n);\n\nexport default MapView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISubscribeViewProps } from './subscribe';\n\n/**\n * Override form action and button action below.\n * @param event - The form event.\n */\nconst onSubmit = (event: React.FormEvent): void => {\n event.preventDefault();\n};\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns nothing.\n */\nexport const subscribeView: React.FC = props => {\n const { subscribe, subscribeContainer, heading, text, subscribeForm, emailInput, submitButton } = props;\n return (\n \n \n {heading}\n {text}\n \n \n \n {props.submitButtonLabelText}\n \n \n \n \n );\n};\n\nexport default subscribeView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IOrderTemplateListViewProps, ISingleOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderTemplateListProps, IOrderTemplateListResources } from '../definition-extensions/order-template-list.ext.props.autogenerated';\n\n/**\n * Interface for OrderTemplateImage.\n */\ninterface IOrderTemplateImage {\n props: {\n children: React.ReactElement[];\n };\n}\n\n/**\n * To render order template.\n * @param orderTemplate - The order template view props.\n * @param orderTemplateNodeProps - The order template node props.\n * @returns The JSX Element.\n */\nconst renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, orderTemplateNodeProps?: INodeProps): JSX.Element | null => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\n\n const orderTemplateImageElement: IOrderTemplateImage = orderTemplateImage as React.ReactElement;\n const currentImageListLength = orderTemplateImageElement.props.children.length;\n const defaultNumberImagesInTile = 4;\n\n if (currentImageListLength < defaultNumberImagesInTile) {\n for (let index = 0; index < defaultNumberImagesInTile - currentImageListLength; index++) {\n orderTemplateImageElement.props.children.push();\n }\n }\n\n return (\n \n {orderTemplateName}\n {orderTemplateImage}\n {addToCartButton}\n {removeButton}\n {orderTemplateStatusMessage}\n \n );\n};\n\n/**\n * Order Template List View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nexport const OrderTemplateListViewComponent: React.FC> = props => {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n OrderTemplateList,\n OrderTemplates,\n OrderTemplate,\n status,\n statusMessage,\n heading,\n orderTemplates,\n createOrderTemplateButton,\n templateHeaderStatusMessage\n } = props;\n\n return (\n \n {heading}\n \n {status === 'SUCCESS' && (!OrderTemplates || !orderTemplates || !ArrayExtensions.hasElements(orderTemplates)) ? (\n
\n

{props.resources.headingForEmptyOrderTemplateList}

\n

{props.resources.textForEmptyOrderTemplateList}

\n {createOrderTemplateButton}\n
\n ) : (\n createOrderTemplateButton\n )}\n {templateHeaderStatusMessage}\n
\n {status !== 'SUCCESS' && statusMessage}\n {OrderTemplates && orderTemplates && ArrayExtensions.hasElements(orderTemplates) && (\n \n {orderTemplates.map(orderTemplate => {\n return renderOrderTemplate(orderTemplate, OrderTemplate);\n })}\n \n )}\n
\n );\n};\n\nexport default OrderTemplateListViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { format, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\n/**\n * ICartIconData: Interface for Cart Icon Data.\n */\nexport interface ICartIconData {\n cart?: ICartState;\n}\n\n/**\n * ICartIconComponentProps: Interface for Cart Icon component props.\n */\nexport interface ICartIconComponentProps extends IComponentProps {\n className?: string;\n cartLabel: string;\n cartQtyLabel: string;\n telemetryContent?: ITelemetryContent;\n salesAgreementPricePrompt?: string;\n}\n\n/**\n * ICartIconComponent: Interface for Cart Icon component.\n */\nexport interface ICartIconComponent extends IComponent {}\n\nconst CartIconComponentActions = {};\n\n/**\n *\n * CartIcon component.\n * @extends {React.FC}\n */\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\n const {\n cartLabel,\n cartQtyLabel,\n data: { cart }\n } = props;\n const defaultCartItemCount: number = 0;\n\n const cartItem = cart ? cart.totalItemsInCart : defaultCartItemCount;\n let qtyLabel: string = '';\n const cartMaxQuantity: number = 99;\n const maxQuantityLabel: string = '99+';\n if (cartItem > cartMaxQuantity) {\n qtyLabel = maxQuantityLabel;\n } else {\n qtyLabel = format(cartQtyLabel, cartItem);\n }\n const label = format(cartLabel, cartItem);\n\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', props.telemetryContent!, 'cart-icon', '');\n const attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n const style: React.CSSProperties = {\n visibility: cart ? 'visible' : 'hidden'\n };\n return (\n
\n
\n {qtyLabel}\n
\n
\n );\n});\n\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride<\n // @ts-expect-error -- Compatible issue with the component override.\n ICartIconComponent\n>('CartIcon', { component: CartIcon, ...CartIconComponentActions });\n\nexport default CartIconComponent;\n","// tslint:disable-next-line:variable-name\r\nexport const convert_a2_to_a3 = {\r\n AF: 'AFG',\r\n AX: 'ALA',\r\n AL: 'ALB',\r\n DZ: 'DZA',\r\n AS: 'ASM',\r\n AD: 'AND',\r\n AO: 'AGO',\r\n AI: 'AIA',\r\n AQ: 'ATA',\r\n AG: 'ATG',\r\n AR: 'ARG',\r\n AM: 'ARM',\r\n AW: 'ABW',\r\n AU: 'AUS',\r\n AT: 'AUT',\r\n AZ: 'AZE',\r\n BS: 'BHS',\r\n BH: 'BHR',\r\n BD: 'BGD',\r\n BB: 'BRB',\r\n BY: 'BLR',\r\n BE: 'BEL',\r\n BZ: 'BLZ',\r\n BJ: 'BEN',\r\n BM: 'BMU',\r\n BT: 'BTN',\r\n BO: 'BOL',\r\n BA: 'BIH',\r\n BW: 'BWA',\r\n BV: 'BVT',\r\n BR: 'BRA',\r\n IO: 'IOT',\r\n BN: 'BRN',\r\n BG: 'BGR',\r\n BF: 'BFA',\r\n BI: 'BDI',\r\n KH: 'KHM',\r\n CM: 'CMR',\r\n CA: 'CAN',\r\n CV: 'CPV',\r\n KY: 'CYM',\r\n CF: 'CAF',\r\n TD: 'TCD',\r\n CL: 'CHL',\r\n CN: 'CHN',\r\n CX: 'CXR',\r\n CC: 'CCK',\r\n CO: 'COL',\r\n KM: 'COM',\r\n CG: 'COG',\r\n CD: 'COD',\r\n CK: 'COK',\r\n CR: 'CRI',\r\n CI: 'CIV',\r\n HR: 'HRV',\r\n CU: 'CUB',\r\n CY: 'CYP',\r\n CZ: 'CZE',\r\n DK: 'DNK',\r\n DJ: 'DJI',\r\n DM: 'DMA',\r\n DO: 'DOM',\r\n EC: 'ECU',\r\n EG: 'EGY',\r\n SV: 'SLV',\r\n GQ: 'GNQ',\r\n ER: 'ERI',\r\n EE: 'EST',\r\n ET: 'ETH',\r\n FK: 'FLK',\r\n FO: 'FRO',\r\n FJ: 'FJI',\r\n FI: 'FIN',\r\n FR: 'FRA',\r\n GF: 'GUF',\r\n PF: 'PYF',\r\n TF: 'ATF',\r\n GA: 'GAB',\r\n GM: 'GMB',\r\n GE: 'GEO',\r\n DE: 'DEU',\r\n GH: 'GHA',\r\n GI: 'GIB',\r\n GR: 'GRC',\r\n GL: 'GRL',\r\n GD: 'GRD',\r\n GP: 'GLP',\r\n GU: 'GUM',\r\n GT: 'GTM',\r\n GG: 'GGY',\r\n GN: 'GIN',\r\n GW: 'GNB',\r\n GY: 'GUY',\r\n HT: 'HTI',\r\n HM: 'HMD',\r\n VA: 'VAT',\r\n HN: 'HND',\r\n HK: 'HKG',\r\n HU: 'HUN',\r\n IS: 'ISL',\r\n IN: 'IND',\r\n ID: 'IDN',\r\n IR: 'IRN',\r\n IQ: 'IRQ',\r\n IE: 'IRL',\r\n IM: 'IMN',\r\n IL: 'ISR',\r\n IT: 'ITA',\r\n JM: 'JAM',\r\n JP: 'JPN',\r\n JE: 'JEY',\r\n JO: 'JOR',\r\n KZ: 'KAZ',\r\n KE: 'KEN',\r\n KI: 'KIR',\r\n KP: 'PRK',\r\n KR: 'KOR',\r\n KW: 'KWT',\r\n KG: 'KGZ',\r\n LA: 'LAO',\r\n LV: 'LVA',\r\n LB: 'LBN',\r\n LS: 'LSO',\r\n LR: 'LBR',\r\n LY: 'LBY',\r\n LI: 'LIE',\r\n LT: 'LTU',\r\n LU: 'LUX',\r\n MO: 'MAC',\r\n MK: 'MKD',\r\n MG: 'MDG',\r\n MW: 'MWI',\r\n MY: 'MYS',\r\n MV: 'MDV',\r\n ML: 'MLI',\r\n MT: 'MLT',\r\n MH: 'MHL',\r\n MQ: 'MTQ',\r\n MR: 'MRT',\r\n MU: 'MUS',\r\n YT: 'MYT',\r\n MX: 'MEX',\r\n FM: 'FSM',\r\n MD: 'MDA',\r\n MC: 'MCO',\r\n MN: 'MNG',\r\n ME: 'MNE',\r\n MS: 'MSR',\r\n MA: 'MAR',\r\n MZ: 'MOZ',\r\n MM: 'MMR',\r\n NA: 'NAM',\r\n NR: 'NRU',\r\n NP: 'NPL',\r\n NL: 'NLD',\r\n AN: 'ANT',\r\n NC: 'NCL',\r\n NZ: 'NZL',\r\n NI: 'NIC',\r\n NE: 'NER',\r\n NG: 'NGA',\r\n NU: 'NIU',\r\n NF: 'NFK',\r\n MP: 'MNP',\r\n NO: 'NOR',\r\n OM: 'OMN',\r\n PK: 'PAK',\r\n PW: 'PLW',\r\n PS: 'PSE',\r\n PA: 'PAN',\r\n PG: 'PNG',\r\n PY: 'PRY',\r\n PE: 'PER',\r\n PH: 'PHL',\r\n PN: 'PCN',\r\n PL: 'POL',\r\n PT: 'PRT',\r\n PR: 'PRI',\r\n QA: 'QAT',\r\n RE: 'REU',\r\n RO: 'ROU',\r\n RU: 'RUS',\r\n RW: 'RWA',\r\n BL: 'BLM',\r\n SH: 'SHN',\r\n KN: 'KNA',\r\n LC: 'LCA',\r\n MF: 'MAF',\r\n PM: 'SPM',\r\n VC: 'VCT',\r\n WS: 'WSM',\r\n SM: 'SMR',\r\n ST: 'STP',\r\n SA: 'SAU',\r\n SN: 'SEN',\r\n RS: 'SRB',\r\n SC: 'SYC',\r\n SL: 'SLE',\r\n SG: 'SGP',\r\n SK: 'SVK',\r\n SI: 'SVN',\r\n SB: 'SLB',\r\n SO: 'SOM',\r\n ZA: 'ZAF',\r\n GS: 'SGS',\r\n ES: 'ESP',\r\n LK: 'LKA',\r\n SD: 'SDN',\r\n SR: 'SUR',\r\n SJ: 'SJM',\r\n SZ: 'SWZ',\r\n SE: 'SWE',\r\n CH: 'CHE',\r\n SY: 'SYR',\r\n TW: 'TWN',\r\n TJ: 'TJK',\r\n TZ: 'TZA',\r\n TH: 'THA',\r\n TL: 'TLS',\r\n TG: 'TGO',\r\n TK: 'TKL',\r\n TO: 'TON',\r\n TT: 'TTO',\r\n TN: 'TUN',\r\n TR: 'TUR',\r\n TM: 'TKM',\r\n TC: 'TCA',\r\n TV: 'TUV',\r\n UG: 'UGA',\r\n UA: 'UKR',\r\n AE: 'ARE',\r\n GB: 'GBR',\r\n US: 'USA',\r\n UM: 'UMI',\r\n UY: 'URY',\r\n UZ: 'UZB',\r\n VU: 'VUT',\r\n VE: 'VEN',\r\n VN: 'VNM',\r\n VG: 'VGB',\r\n VI: 'VIR',\r\n WF: 'WLF',\r\n EH: 'ESH',\r\n YE: 'YEM',\r\n ZM: 'ZMB',\r\n ZW: 'ZWE'\r\n};\r\n"],"names":["Link","_ref","text","className","href","ariaLabel","index","noclick","telemetryContent","payLoad","getPayloadObject","linkText","undefined","contentAction","etext","attribute","getTelemetryAttributes","React","Object","assign","onClick","onTelemetryClick","itemProp","content","Separator","separator","Breadcrumb","constructor","_pageType","this","props","context","request","urlTokens","pageType","getTelemetryObject","telemetryPageName","friendlyName","telemetry","_getRootLink","root","config","linkUrl","destinationUrl","error","_getCustomBreadcrumbLinks","itemPosition","links","length","map","value","keyIndex","key","toString","_getCategoryHierarchy","data","categoryHierarchy","result","_getFriendlyName","locale","NameTranslations","Url","nameTranslations","_nameTranslation","nameTranslation","ArrayExtensions","hasElements","find","item","Language","toLowerCase","Text","_getPDPLinks","categoryPaths","product","url","requestUrl","push","Name","hideProductName","_goBack","window","history","back","_getPDPBackButton","query","MsDyn365","isBrowser","document","referrer","role","resources","backToResultsText","render","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","app","breadcrumbType","linkSeparator","breadcrumbViewProps","_objectSpread","BreadcrumbContainer","moduleProps","classnames","tag","BreadcrumbList","BreadcrumbListItem","backButton","renderView","CountryPicker","super","_telemetryContent","_preferredSiteStorageKey","_cookieExpirationTime","closeModal","setState","isModalOpen","_handleStayOnSiteButtonClick","_this$props$context$r","currentBaseUrl","marketSettings","urlToStore","_appendProtocolToUrl","_writeToCookie","_handleClick","storageKey","storageValue","cookieOptions","secure","sameSite","maxAge","cookies","set","baseUrl","includes","isCookieValueSet","get","state","_heading$tag","heading","subheading","countryList","actionLink","isConsentGiven","countryPickerHeading","editProps","onEdit","handleTextChange","requestContext","countryPickerSubHeading","handleParagraphChange","countryPickerActionLink","createLink","currentSiteButton","Button","tabIndex","stayOnCurrentSiteButtonText","viewprops","modalContainer","Modal","isOpen","toggle","modalTransition","timeout","shouldUpdateFocusToFirstElement","modalHeaderContainer","ModalHeader","closeButtonTabIndex","modalFooterContainer","ModalFooter","modalBodyContainer","ModalBody","link","renderCountryList","stayOnCurrentSiteButton","event","target","handleLinkTextChange","_this$props$config$ac","StringExtensions","isNullOrEmpty","_link$linkText","attributes","editableLink","openInNewTab","additionalProperties","onTextChange","localeItems","renderCountry","localeItem","_image$imageSettings","_image$src","localeBaseUrl","matchedCountryItem","imageSize","q","w","h","defaultImageSettings","viewports","xs","lg","xl","lazyload","image","imageProps","gridSettings","imageSettings","displayString","src","altText","loadFailureBehavior","shouldSkipToMainImage","displaySubString","FooterCategory","slots","categories","FooterList","FooterListItem","ImageList","images","paragraph","_renderImageListItems","imageList","disableLazyLoad","imageLink","imageLinkText","imageLinkAriaLabel","imageLinkOpenInNewTab","Msdyn365","linkAltText","linkAriaLabel","linkOpenInNewTab","imageListTitle","viewProps","imageListHeading","imageListContainer","imageListItem","imageListItemAnchorTag","imageListItems","InteractiveFeatureCollection","title","itemsCounter","indexItem","itemCounter","isMosaic","_this$props$config$cl","_title$tag","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","singleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","id","vertical","createHeading","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionMobileContainer","singleSlideCarouselItemContainer","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionDesktopItems","_getFeatureItem","InteractiveFeatureCollectionLinks","_mapEditableLinks","linkdata","editableLinks","InteractiveFeatureItem","handleHeadingChange","linkIndex","_this$props$config$li","Number","featureItemLinks","_createHeading","_createParagraph","_renderImage","featureItem","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","interactiveFeatureCollectionMosaicContainer","tabindex","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","isNullOrWhitespace","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","sm","md","moduleType","typeName","imagePropertyName","moduleId","Map","mapRef","_initMap","_data$storeSelectorSt","_data$distributorSele","actionContext","channel","storeSelectorStateManager","isMapApiLoaded","distributorSelectorStateManager","mapLoadOptions","credentials","BingMapsApiKey","pushpinAccessible","Microsoft","Maps","current","Events","addHandler","async","_data$distributorSele2","_data$distributorSele3","_data$distributorSele4","_data$storeSelectorSt2","isDistributorSelectorDialogOpen","updateDistributorMapVisibility","setSelectedDistributorId","setSelectedStoreLocationId","_updateMapsForDistributor","_this$props$data$dist","pushpinOptions","distributorInfoList","distributorList","selectedDistributorId","mapLocation","entities","clear","pushpins","filter","distributor","OrgUnit","distributorInfo","entries","orgUnit","Latitude","Longitude","isLocationSelected","RecordId","options","_getPushpinOptions","pushpin","Pushpin","Location","handleDistributorPushpinClick","unshift","currentLocation","setView","center","_Microsoft$Maps$Locat","bounds","LocationRect","fromShapes","setOptions","_updateMap","_this$props$data$stor","_storeSelectorStateMa","orgUnitStoreInformation","selectedStoreLocationId","storeLocationList","store","OrgUnitAvailability","unitStoreInfo","_unitStoreInfo$OrgUni","storeLocation","OrgUnitLocation","isSelectedLocation","OrgUnitNumber","handleClickEvent","_Microsoft$Maps$Locat2","orgUnitNumber","setTimeout","recordId","_this$props$data$dist2","showIndex","size","color","selectionColor","icon","_getSvgIcon","componentDidMount","_this$props$context","_this$props$data$stor2","_this$props$data$dist3","BingMapsEnabled","loadMapAPIInput","lang","market","ChannelCountryRegionISOCode","_this$props$data$dist4","when","_this$props$data$stor3","setMapModuleLoaded","_this$props$data$stor4","_this$props$data$dist5","_this$props$data$dist6","reaction","_this$props$data$stor5","_this$props$data$dist7","loadMapApi","_this$props$data$dist8","_this$props$data$dist9","_this$props$data$stor6","_this$props$data$stor7","_this$props$data$dist10","_this$props$data$stor8","_this$props$data$stor9","_this$props$data$dist11","_this$props$data$dist12","_data$storeSelectorSt3","_data$storeSelectorSt4","_data$distributorSele5","_data$distributorSele6","shouldDisplayMap","isDialogOpen","listMapViewState","displayMap","ModuleProps","classname","show","Header","headerProps","MapProps","ref","__decorate","observable","observer","Subscribe","_emailAddressInputRef","subscribeParagraph","subscribeHeading","handleText","subscribe","subscribeContainer","subscribeForm","subscribeFormAriaLabel","name","autoComplete","emailInput","type","subscribeFormEmailAriaLabel","placeholder","subscribeEmailPlaceholderText","submitButton","subscribeFormSubmitAriaLabel","subscribeButtonLabel","submitButtonLabelText","CountrySelector","isCMS","_updateViewport","bind","viewport","device","Type","isMobile","menuItemList","resizeThrottledEventHandler","addThrottledEvent","componentWillUnmount","removeEventListener","_mapData","isEmptyOrNullObject","Navigation","countrySelectorAriaLabel","MenuList","ListItem","DivContainer","ImageDivContainer","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","MobileDescriptionLabel","isMobileView","menuItemData","mergedData","cmsNavItems","_constructMenuItemData","cmsItem","CMSItemIdInit","linkURL","imageDestinationURL","imageSource","subMenu","_getCMSNestedChildren","category","nestedChildren","subMenus","idx","_getViewport","innerWidth","computed","CountrySelectorView","currentLevel","escapeKey","resizeObserver","initializeResizeObserver","ResizeObserver","_","div","querySelector","scrollIntoView","behavior","block","handleDrawerToggle","e","mobileMenu","observe","_handleDropdownToggle","activeMenu","mobileViewLabelText","parentMenu","_resetFocus","menuNode","focus","_handleClickOutside","contains","_escFunction","keyCode","_closeSubmenu","categoryImageAltText","body","addEventListener","disconnect","_renderMobileMenu","_renderDesktopMenu","Module","menuItem","_renderDrawerMenu","Node","_renderDisplay","_renderDrawer","_renderLinkMenuItem","toggleButtonText","toggleButtonImg","Drawer","onToggle","_renderLinkText","countrySelectorIntroText","menuSubItem","_renderDrawerLink","linkImg","alt","_renderSpanMenuItem","i","_getFromSubMenu","_createMenuItemList","forEach","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","levelClassName","menuOptions","option","hasOptions","haveSubmenu","_renderMenu","onFocus","imagesource","currentLang","location","origin","sitePath","level","currentItem","submenu","DivContainerClass","AddressShow","AddressDetail","items","description","AddressList","_ref2","List","isShowList","Item","showItems","isShowPrimaryButton","primaryButton","editButton","removeButton","Error","isShowError","message","AddressLists","_ref3","ListAddress","isShowEmptyListMessage","emptyListMessage","addButton","primaryAddressList","otherAddressList","AddressAddUpdate","_ref4","_other$moduleProps","_other$moduleProps2","_other$moduleProps3","_other$moduleProps4","AddressForm","hasError","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","other","_objectWithoutProperties","_excluded","localeString","currency","Currency","replace","hasAddressError","setHasAddressError","countriesAvail","enGB","autocomplete","select","it","enUS","eu","enSG","enHK","zhHK","nativeInputValueSetter","getOwnPropertyDescriptor","HTMLInputElement","prototype","populateFormElements","addressComponent","formMap","addressType","types","getElementById","googleComponent","input","selectedValue","elmnt","is_convert_a2_to_a3","eValue","convert_a2_to_a3","selectItemByValue","short_name","Event","bubbles","dispatchEvent","formValue","long_name","call","eCustom","googleComponents","autocompleteFormField","google","maps","places","Autocomplete","componentRestrictions","country","setAttribute","startTypingYourAddress","clearInstanceListeners","addListener","place","getPlace","addressComponents","address_components","gMapsAutocomplete","querySelectorAll","o","optionV","remove","countrySelect","optionDEF","parentNode","disabled","Boolean","_phoneItem$input","phoneItem","onChange","handlePhoneChange","checkPhone","saveAddressButton","phone","phoneCtn","closest","phoneAlert","getElementsByClassName","pattern","pattern2","onkeyup","match","classList","add","textContent","addressPhoneRequiredErrorMessage","removeAttribute","addressForm","county","countyCtn","countyAlert","onclick","test","elements","fieldInALL","element","stopPropagation","phoneValidation","updatedCount","reload","AddressItem","label","alert","maxLength","AddressError","addressErrorMessage","AccountAddressManagement","viewState","showAddressList","showAddOrUpdateAddress","isShowAddresList","isShowAddOrUpdateAddress","_props$context$reques","LoyaltySignUp","memberHeading","signInLink","signUpText","signUpButton","detailsLink","loading","infoMessageBar","loyalty_join_toggle_btn","loyalty_join_btn","innerHTML","loyalty_join_flag","hasJoined","joinedLoyaltyThankYouHeader","joinedLoyaltyParagraphContent","createReviewModal","modal","modalHeader","modalBody","form","inputRow","rating","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","modalFooter","signInButton","modalToggle","reviewModal","isAuthenticated","user","signInLabel","reviewButtonLabel","button","countryPickerView","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","_renderConfigure","configure","ContainerProps","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","errors","_renderFindInStore","findInStore","storeSelector","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderQuantity","quantityComponent","extentionResources","quantityLimitsMessages","min","max","applyDefaultOrderSettings","quantity","IncrementalQuantity","currentCount","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","_renderShopSimilarItem","shopSimilarItem","MediaGalleryContainerProps","ProductInfoContainerProps","price","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","mediaGallery","bulkPurchaseLink","FooterCategoryView","imageListView","indexKey","interactiveFeatureCollectionView","tileItem","MagicNumber","FeatureItemViewComponent","renderMosaic","thisProps","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","renderCarousel","MapHeader","onSubmit","preventDefault","subscribeView","_subscribeForm$classN","_emailInput$className","_submitButton$classNa","OrderTemplateListViewComponent","OrderTemplateList","OrderTemplates","OrderTemplate","status","statusMessage","orderTemplates","createOrderTemplateButton","templateHeaderStatusMessage","headingForEmptyOrderTemplateList","textForEmptyOrderTemplateList","orderTemplate","renderOrderTemplate","orderTemplateNodeProps","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","orderTemplateName","orderTemplateImageElement","currentImageListLength","children","CartIcon","cartLabel","cartQtyLabel","cart","cartItem","totalItemsInCart","qtyLabel","format","style","visibility","CartIconComponent","msdyn365Commerce","createComponentOverride","component","AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","AN","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW"],"sourceRoot":""}