{"version":3,"file":"static/js/7.e995485921a7f22fbcad.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/farmlands-back-top-footer/farmlands-back-top-footer.tsx?432e","webpack://Msdyn365.Commerce.Online/./src/modules/farmlands-content-block/components/links.tsx?07de","webpack://Msdyn365.Commerce.Online/./src/modules/farmlands-content-block/farmlands-content-block.props.autogenerated.ts?6090","webpack://Msdyn365.Commerce.Online/./src/modules/farmlands-content-block/farmlands-content-block.tsx?8c9a","webpack://Msdyn365.Commerce.Online/./src/modules/farmlands-content-block/farmlands-content-block.view.tsx?31fc","webpack://Msdyn365.Commerce.Online/./src/modules/farmlands-iframe/farmlands-iframe.tsx?f5bf","webpack://Msdyn365.Commerce.Online/./src/modules/farmlands-iframe/farmlands-iframe.view.tsx?ed61","webpack://Msdyn365.Commerce.Online/./src/themes/farmlandstheme/views/breadcrumb.view.tsx?3c8d","webpack://Msdyn365.Commerce.Online/./src/themes/farmlandstheme/views/header.view.tsx?f353","webpack://Msdyn365.Commerce.Online/./src/themes/farmlandstheme/views/navigation-menu.view.tsx?66da","webpack://Msdyn365.Commerce.Online/./src/themes/farmlandstheme/views/promo-banner.view.tsx?a20e","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/link.tsx?d232","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/separator.tsx?92bb","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.tsx?efcc","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.view.tsx?4b3d","webpack://Msdyn365.Commerce.Online/./src/modules/country-picker/country-picker.tsx?4fcb","webpack://Msdyn365.Commerce.Online/./src/modules/country-picker/country-picker.view.tsx?0036","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/buybox.view.tsx?aec4","webpack://Msdyn365.Commerce.Online/./src/modules/back-top-footer/back-top-footer.tsx?f47e","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.tsx?e0bd","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.view.tsx?fdce","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.tsx?5602","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.view.tsx?2bed","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.tsx?96a6","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/components/links.tsx?7423","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.tsx?792c","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc","webpack://Msdyn365.Commerce.Online/./src/modules/map/map.tsx?6111","webpack://Msdyn365.Commerce.Online/./src/modules/map/map.view.tsx?5db9","webpack://Msdyn365.Commerce.Online/./src/modules/subscribe/subscribe.tsx?9fea","webpack://Msdyn365.Commerce.Online/./src/modules/subscribe/subscribe.view.tsx?19c8"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\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\r\nimport { BackToTop } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IFarmlandsBackTopFooterProps } from './farmlands-back-top-footer.props.autogenerated';\r\n\r\n/**\r\n *\r\n * BackTopFooter component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass BackTopFooter extends React.PureComponent> {\r\n constructor(props: IFarmlandsBackTopFooterProps<{}>) {\r\n super(props);\r\n }\r\n public render(): JSX.Element | null {\r\n if (typeof document !== 'undefined' && typeof window !== 'undefined') {\r\n const backToTop = document.getElementById('farmlands-top');\r\n const myScrollFunc = () => {\r\n const yAxis = window.scrollY;\r\n if (backToTop) {\r\n if (yAxis >= 800) {\r\n backToTop?.classList.remove('farmlands-top--hide');\r\n backToTop?.classList.add('farmlands-top--show');\r\n } else {\r\n backToTop?.classList.remove('farmlands-top--show');\r\n backToTop?.classList.add('farmlands-top--hide');\r\n }\r\n }\r\n };\r\n window.addEventListener('scroll', myScrollFunc);\r\n }\r\n\r\n if (this.props.config.destination === null) {\r\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {this.props.config.backtoTopText}\r\n \r\n expand_less\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default BackTopFooter;\r\n","/* tslint:disable: no-duplicate-imports */\r\nimport {\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n ITelemetryContent,\r\n onTelemetryClick\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { ILinksData } from '../farmlands-content-block.props.autogenerated';\r\n\r\nexport interface IContentCardLinks {\r\n links: ILinksData[];\r\n requestContext: Msdyn365.IRequestContext;\r\n telemetryContent: ITelemetryContent;\r\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\r\n}\r\n\r\n/**\r\n *\r\n * ContentCardLinks component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class ContentCardLinks extends React.PureComponent {\r\n public render(): JSX.Element {\r\n const editableLinks = this._mapEditableLinks(this.props.links);\r\n return (\r\n
\r\n {editableLinks && editableLinks.length ? (\r\n \r\n ) : null}\r\n
\r\n );\r\n }\r\n\r\n private _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\r\n if (!linkdata || linkdata.length === 0) {\r\n return null;\r\n }\r\n const editableLinks: Msdyn365.ILinksData[] = [];\r\n linkdata.forEach((link, index) => {\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\r\n const linkText = link.linkText ? link.linkText : '';\r\n payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\r\n const btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: btnClass,\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: 'button',\r\n additionalProperties: attributes,\r\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\r\n };\r\n editableLinks.push(editableLink);\r\n });\r\n\r\n return editableLinks;\r\n };\r\n}\r\nexport default ContentCardLinks;\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IFarmlandsContentBlock contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum actionableRegion {\r\n imageAndLinks = 'imageAndLinks',\r\n linksOnly = 'linksOnly'\r\n}\r\n\r\nexport interface IFarmlandsContentBlockConfig extends Msdyn365.IModuleConfig {\r\n heading?: IHeadingData;\r\n paragraph?: Msdyn365.RichText;\r\n image?: Msdyn365.IImageData;\r\n links?: ILinksData[];\r\n actionableRegion?: actionableRegion;\r\n imageLink?: Msdyn365.ILinkData;\r\n imageAriaLabel?: string;\r\n className?: string;\r\n}\r\n\r\nexport const enum HeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface IHeadingData {\r\n text: string;\r\n tag?: HeadingTag;\r\n}\r\n\r\nexport interface ILinksData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IFarmlandsContentBlockProps extends Msdyn365.IModule {\r\n config: IFarmlandsContentBlockConfig;\r\n}\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/* tslint:disable: no-duplicate-imports */\r\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport LinksComponent from './components/links';\r\nimport { actionableRegion as region, IFarmlandsContentBlockProps } from './farmlands-content-block.props.autogenerated';\r\n\r\nexport interface IContentBlockViewProps extends IFarmlandsContentBlockProps<{}> {\r\n title?: React.ReactNode;\r\n text?: React.ReactNode;\r\n image?: React.ReactNode;\r\n links?: React.ReactNode;\r\n className?: string;\r\n contentBlockContainer: IModuleProps;\r\n imageContainer: INodeProps;\r\n detailsContainer: INodeProps;\r\n contentBlockAnchorTag?: INodeProps;\r\n imageLink?: string;\r\n imageAriaLabel?: string;\r\n}\r\n/**\r\n *\r\n * ContentCard component\r\n * @extends {React.PureComponent}\r\n */\r\n\r\nclass ContentBlock extends React.PureComponent> {\r\n private telemetryContent: ITelemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n public render(): JSX.Element | null {\r\n const { heading, paragraph, image, links, className, imageAriaLabel } = this.props.config;\r\n const contentBlockTitle = heading && (\r\n \r\n );\r\n const imageProps = {\r\n gridSettings: {},\r\n imageSettings: {\r\n viewports: {\r\n xs: { q: '', w: 0, h: 0 },\r\n lg: { q: '', w: 0, h: 0 },\r\n xl: { q: '', w: 0, h: 0 }\r\n }\r\n }\r\n };\r\n const contentBlockLinks = links && links.length > 0 && (\r\n \r\n );\r\n const contentBlockText = paragraph && (\r\n \r\n );\r\n const contentBlockImage = image && (\r\n \r\n );\r\n\r\n if (!contentBlockTitle && !contentBlockText && !contentBlockImage && !contentBlockLinks) {\r\n this.props.context.telemetry.error('Content block content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n const contentBlockviewProps = {\r\n ...this.props,\r\n title: contentBlockTitle,\r\n text: contentBlockText,\r\n image: contentBlockImage,\r\n links: contentBlockLinks,\r\n moduleClass: this.props.config.className,\r\n contentBlockContainer: {\r\n moduleProps: this.props,\r\n className: classnames('farmlands-content-block', className)\r\n },\r\n imageContainer: { className: 'ms-content-block__image' },\r\n detailsContainer: { className: 'ms-content-block__details' },\r\n contentBlockAnchorTag: {\r\n tag: 'a',\r\n className: 'ms-content-block__link',\r\n role: 'link'\r\n },\r\n imageLink: this._getImageLink(),\r\n imageAriaLabel\r\n };\r\n\r\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\r\n }\r\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) =>\r\n (this.props.config.heading!.text = event.target.value);\r\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) =>\r\n (this.props.config.paragraph = event.target.value);\r\n /* Handle link text change*/\r\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\r\n if (this.props.config.links && this.props.config.links[linkIndex]) {\r\n this.props.config.links[linkIndex].linkText = event.target.value;\r\n }\r\n };\r\n private _getImageLink(): string | null {\r\n const { imageLink, links, actionableRegion } = this.props.config;\r\n if (actionableRegion === region.imageAndLinks) {\r\n if (imageLink && imageLink.destinationUrl) {\r\n return imageLink.destinationUrl;\r\n } else if (links && links.length && links[0].linkUrl) {\r\n return links[0].linkUrl.destinationUrl;\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport default ContentBlock;\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/* tslint:disable: no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IContentBlockViewProps } from './farmlands-content-block';\r\n\r\nconst ContentBlockView: React.FC = (props) => {\r\n const {\r\n contentBlockContainer,\r\n imageContainer,\r\n detailsContainer,\r\n title,\r\n text,\r\n links,\r\n image,\r\n contentBlockAnchorTag,\r\n imageLink,\r\n imageAriaLabel\r\n } = props;\r\n\r\n if (imageLink) {\r\n return (\r\n \r\n \r\n {image}\r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {image}\r\n \r\n {title}\r\n {text}\r\n {links}\r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default ContentBlockView;\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\r\n/* tslint:disable: no-duplicate-imports */\r\nimport { Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { IHeadingData, IFarmlandsIframeConfig, IFarmlandsIframeProps } from './farmlands-iframe.props.autogenerated';\r\n\r\nexport interface IIframeViewProps extends IFarmlandsIframeProps {\r\n Heading: React.ReactNode;\r\n IframeContainer: IModuleProps;\r\n IFrame: React.ReactNode;\r\n alert?: React.ReactNode;\r\n cookieConsentAccepted?: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * Iframe component\r\n * @extends {React.PureComponent}\r\n */\r\nclass Iframe extends React.PureComponent> {\r\n private iframeRef: React.RefObject;\r\n constructor(props: IFarmlandsIframeProps) {\r\n super(props);\r\n this.iframeRef = React.createRef();\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { config, resources } = this.props;\r\n const isConsentGiven =\r\n this.props.context.request &&\r\n this.props.context.request.cookies &&\r\n this.props.context.request.cookies.isConsentGiven &&\r\n this.props.context.request.cookies.isConsentGiven();\r\n\r\n if (!(config && config.target && config.target.destinationUrl)) {\r\n return null;\r\n }\r\n\r\n let srcURL;\r\n try {\r\n srcURL = new URL(config.target.destinationUrl);\r\n } catch (error) {\r\n this.props.telemetry.exception(error);\r\n return null;\r\n }\r\n\r\n if (srcURL && srcURL.protocol && srcURL.protocol.toLocaleLowerCase() !== 'https:') {\r\n return null;\r\n }\r\n const iframeClassName = classnames('ms-iframe', config.className);\r\n\r\n let viewProps: IIframeViewProps = {\r\n ...(this.props as IFarmlandsIframeProps),\r\n Heading: this._createHeading(config.heading!),\r\n IframeContainer: {\r\n moduleProps: this.props,\r\n className: iframeClassName\r\n },\r\n IFrame: this._createIframe()\r\n };\r\n\r\n if (isConsentGiven === false) {\r\n viewProps = {\r\n ...viewProps,\r\n alert: this._renderAlert(resources.cookieConsentRequiredMessage)\r\n };\r\n } else {\r\n viewProps = {\r\n ...viewProps,\r\n cookieConsentAccepted: true\r\n };\r\n }\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\r\n if (!heading || !heading.text || !heading.text.length) {\r\n return null;\r\n }\r\n\r\n return ;\r\n }\r\n\r\n private _renderAlert(message: string): React.ReactNode | null {\r\n return (\r\n

\r\n {message}\r\n

\r\n );\r\n }\r\n\r\n private _createIframe(): React.ReactNode | null {\r\n const { config } = this.props;\r\n const targetURL = config.target.destinationUrl;\r\n\r\n return (\r\n // tslint:disable-next-line: react-iframe-missing-sandbox\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Iframe;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* tslint:disable: no-duplicate-imports */\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IIframeViewProps } from './farmlands-iframe';\r\n\r\n/**\r\n *\r\n * IFrameView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class IFrameView extends React.PureComponent {\r\n\r\n public render(): JSX.Element | null {\r\n const { Heading, IframeContainer, IFrame, alert, cookieConsentAccepted } = this.props;\r\n\r\n return (\r\n \r\n {alert}\r\n {cookieConsentAccepted && cookieConsentAccepted === true ? (\r\n <>\r\n {Heading}\r\n {IFrame}\r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\nexport default IFrameView;","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { IBreadcrumbViewProps } from '@msdyn365-commerce-modules/breadcrumb/src/modules/breadcrumb/./breadcrumb';\r\n\r\nconst BreadCrumbView: React.FC = (props) => {\r\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem } = props;\r\n if (!root && !links && !backButton) {\r\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\r\n return null;\r\n }\r\n return (\r\n \r\n \r\n {root && (\r\n \r\n {root}\r\n {links && '>'}\r\n \r\n )}\r\n {backButton && {backButton} |}\r\n {links &&\r\n links.map((link, index) => (\r\n \r\n \r\n {link}\r\n {links[index + 1] && '>'}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default BreadCrumbView;\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\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\r\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { AsyncResult } from '@msdyn365-commerce/core';\r\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nconst headerView: React.FC = props => {\r\n const {\r\n HeaderTag,\r\n HeaderContainer,\r\n HeaderTopBarContainer,\r\n Divider,\r\n } = props;\r\n return (\r\n \r\n \r\n \r\n {props.navIcon}\r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {_renderAccountBlock(props, false)}\r\n {props.wishListIconDesktop}\r\n \r\n {props.cartIcon}\r\n \r\n {_renderCollapseMenu(props)}\r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\r\n const {Divider, MobileMenuLinksContainer, mobileMenuCollapsed} = props;\r\n return (\r\n \r\n \r\n {_renderReactFragment(props.search)}\r\n {_renderMobileAccountBlock(props, true)}\r\n { props.wishListIconMobile }\r\n \r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n );\r\n}\r\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\r\n const customer = accountInformation && accountInformation.result;\r\n return (\r\n <>{customer && customer.FirstName}\r\n );\r\n};\r\n\r\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n signOutLink,\r\n signInLink,\r\n data,\r\n accountLinks} = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames('ms-header__drawer', AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\r\n\r\n if (accountLinks) {\r\n return (\r\n \r\n
\r\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\r\n {signOutLink}\r\n
\r\n
\r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks,\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames(AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;","/*---------------------------------------------------------------------------------------------\r\n * 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 { IMenuItemData, INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\r\nimport { Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\ninterface INavigationState {\r\n parentMenu?: number;\r\n activeMenu?: number;\r\n mobileViewLabelText?: string;\r\n}\r\n\r\n/**\r\n *\r\n * NavigationMenuView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class NavigationMenuView extends React.PureComponent {\r\n private supportedLevel: number = 3;\r\n private currentLevel: number = 0;\r\n private menuNode: React.RefObject;\r\n constructor(props: INavigationMenuViewProps) {\r\n super(props);\r\n this.menuNode = React.createRef();\r\n this.state = { activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined };\r\n this._closeSubmenu = this._closeSubmenu.bind(this);\r\n }\r\n\r\n public componentDidMount(): void {\r\n document.body && document.body.addEventListener('mousedown', this._handleClickOutside);\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n document.body && document.body.removeEventListener('mousedown', this._handleClickOutside, false);\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 } = this.props;\r\n return (\r\n \r\n {menuItemData.map((menuItem: IMenuItemData) => {\r\n return this._renderDrawerMenu(menuItem);\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): JSX.Element | null {\r\n if (menuItem && menuItem.subMenu && menuItem.subMenu.length > 0) {\r\n return this._renderDrawer(menuItem);\r\n } else {\r\n return this._renderLinkMenuItem(menuItem);\r\n }\r\n }\r\n\r\n private _renderDrawer(menuItem: IMenuItemData): JSX.Element | null {\r\n const toggleButtonText = menuItem.linkText;\r\n return (\r\n \r\n
\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): JSX.Element {\r\n return {linkText};\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({ parentMenu: undefined, mobileViewLabelText: menuItemData[i].linkText });\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 {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({ parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText });\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);\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): JSX.Element | null {\r\n const { isMobileView, ListItem } = this.props;\r\n if (activeMenu && this.state.activeMenu !== activeMenu) {\r\n return null;\r\n }\r\n\r\n if (!subMenus || subMenus.length === 0) {\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\r\n ? this._renderLinkMenuItem(option, idx)\r\n : this._renderSpanMenuItem(option);\r\n }\r\n\r\n let subMenu;\r\n\r\n if (hasOptions) {\r\n this.currentLevel++;\r\n if (this.currentLevel <= this.supportedLevel - 1) {\r\n levelClassName = `level-${this.currentLevel.toString()}`;\r\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {menuItem}\r\n {subMenu}\r\n \r\n );\r\n });\r\n\r\n return this._renderMenu(levelClassName, menuOptions, activeMenu);\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 \r\n );\r\n }\r\n\r\n private _renderLinkMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\r\n const { Link } = this.props;\r\n return (\r\n \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): JSX.Element | null {\r\n const { MenuList } = this.props;\r\n this.currentLevel = 1;\r\n return (\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}\r\n\r\nexport default NavigationMenuView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IPromoBannerViewProps } from '@msdyn365-commerce-modules/promo-banner/src/modules/promo-banner/promo-banner';\r\nimport { IPromoBannerProps } from '../definition-extensions/promo-banner.ext.props.autogenerated';\r\n\r\nconst PromoBannerView: React.FC> = (props) => {\r\n const { promoBannerProps, contentProps, closeButton, bannerMessages, carouselProps } = props;\r\n\r\n const { fontColor, fontSize, boldText, italicizedText, underlineText } = props.config;\r\n\r\n const createConfigStyles = (isLink?: boolean): React.CSSProperties => {\r\n return {\r\n color: fontColor ? fontColor : '#FFFFFF',\r\n fontSize: fontSize ? `${fontSize}px` : '16px',\r\n fontWeight: boldText ? 'bold' : 'normal',\r\n fontStyle: italicizedText ? 'italic' : 'normal',\r\n textDecoration: underlineText || isLink ? 'underline' : 'none'\r\n };\r\n };\r\n\r\n const slides =\r\n bannerMessages &&\r\n bannerMessages.map((message, index) => {\r\n return (\r\n \r\n {message.text && (\r\n \r\n {message.text}\r\n \r\n )}\r\n {message.links && message.links.length > 0 && (\r\n \r\n {message.links.map((link) => {\r\n return (\r\n \r\n {link.linkText}\r\n \r\n );\r\n })}\r\n \r\n )}\r\n \r\n );\r\n });\r\n\r\n return (\r\n \r\n \r\n {closeButton}\r\n \r\n );\r\n};\r\nexport default PromoBannerView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceViewProps } from './account-customer-balance';\n\nexport default (props: IAccountCustomerBalanceViewProps) => {\n const {\n heading,\n accountSectionHeading,\n creditSummarySectionHeading,\n accountLabels,\n accountValues,\n creditSummaryLabels,\n creditSummaryValues,\n homeButton,\n actions,\n requestStatementModal,\n availableCredit,\n balanceOwed,\n creditExcess\n } = props;\n\n return (\n \n {heading}\n {requestStatementModal}\n {actions}\n {accountSectionHeading}\n
\n {accountLabels}\n {accountValues}\n
\n {creditSummarySectionHeading}\n
\n {creditSummaryLabels}\n {creditSummaryValues}\n {availableCredit}\n {balanceOwed}\n {creditExcess}\n
\n {homeButton}\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 { 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 { 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 * 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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICountryPickerViewProps } from './country-picker';\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 max,\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 && _renderQuantity(quantity, callbacks, props, state, resources, quantityLimitsMessages, max, telemetryContent)}\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 max: number | undefined,\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\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 { 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 { 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}\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\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 };\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 * 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 { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject,\n Heading,\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 React from 'react';\n\nimport { IInteractiveFeatureCollectionProps, ITitleData } 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 _createHeading(heading?: ITitleData): React.ReactNode | null {\n if (!heading || !heading.text || StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n return ;\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.interactiveFeatureItems;\n const itemsFeatureCounter = 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 viewProps = {\n ...this.props,\n title: InteractiveFeatureCollection._createHeading(title),\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\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 { 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.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 * 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\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\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 { 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.PureComponent> {\n @observable public map: Microsoft.Maps.Map | undefined;\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 if (this.props.data.storeSelectorStateManager.result?.isMapApiLoaded) {\n this._initMap();\n this._updateMap();\n }\n\n when(\n () => !!this.props.data.storeSelectorStateManager.result?.setMapModuleLoaded,\n () => {\n this.props.data.storeSelectorStateManager.result?.setMapModuleLoaded(true);\n }\n );\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.loadMapApi,\n () => {\n this.props.data.storeSelectorStateManager.result?.loadMapApi({\n key: channel?.BingMapsApiKey,\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\n });\n }\n );\n\n reaction(\n () => this.props.data.storeSelectorStateManager.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\n public render(): JSX.Element | null {\n const {\n config: { heading, className },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n const shouldDisplayMap = storeSelectorStateManager?.listMapViewState.displayMap;\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 storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n if (storeSelectorStateManager?.isMapApiLoaded) {\n this.map = new Microsoft.Maps.Map(this.mapRef.current as HTMLElement, {\n credentials: channel?.BingMapsApiKey,\n pushpinAccessible: true\n });\n Microsoft.Maps.Events.addHandler(this.map, 'click', async () => {\n await storeSelectorStateManager.setSelectedStoreLocationId(undefined);\n });\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 });\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 // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- Time out.\n }, 500);\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 { 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 * 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","/*!\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"],"names":["BackTopFooter","React","constructor","props","super","render","document","window","backToTop","getElementById","myScrollFunc","yAxis","scrollY","classList","remove","add","addEventListener","this","config","destination","telemetry","error","BackToTop","title","ariaLabel","backtoTopText","className","id","ContentCardLinks","_mapEditableLinks","linkdata","length","editableLinks","forEach","link","index","payLoad","getPayloadObject","telemetryContent","linkText","contentAction","etext","attributes","getTelemetryAttributes","btnClass","editableLink","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","onClick","onTelemetryClick","push","links","Msdyn365","editProps","onTextChange","requestContext","actionableRegion","HeadingTag","ContentBlock","getTelemetryObject","context","request","telemetryPageName","friendlyName","handleTextChange","event","heading","text","target","value","handleParagraphChange","paragraph","handleLinkTextChange","linkIndex","image","imageAriaLabel","contentBlockTitle","tag","onEdit","contentBlockLinks","LinksComponent","Object","assign","contentBlockText","contentBlockImage","gridSettings","imageSettings","viewports","xs","q","w","h","lg","xl","key","contentBlockviewProps","_objectSpread","moduleClass","contentBlockContainer","moduleProps","classnames","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","_getImageLink","renderView","region","imageAndLinks","Module","Node","href","Iframe","iframeRef","resources","isConsentGiven","cookies","srcURL","URL","exception","protocol","toLocaleLowerCase","iframeClassName","viewProps","Heading","_createHeading","IframeContainer","IFrame","_createIframe","alert","_renderAlert","cookieConsentRequiredMessage","cookieConsentAccepted","message","targetURL","src","height","width","iframeAriaLabel","ref","allowFullScreen","frameBorder","IFrameView","root","backButton","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","map","renderCustomerName","accountInformation","customer","result","FirstName","_renderReactFragment","items","slot","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","navIcon","logo","search","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","accountClassName","_renderAccountBlock","wishListIconDesktop","cartIcon","MobileMenuLinksContainer","mobileMenuCollapsed","Collapse","isOpen","data","Drawer","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","NavigationMenuView","supportedLevel","currentLevel","_handleDropdownToggle","parentId","isMobileView","setState","activeMenu","mobileViewLabelText","parentMenu","state","undefined","_resetFocus","setTimeout","menuNode","current","focus","_handleClickOutside","contains","_closeSubmenu","bind","componentDidMount","body","componentWillUnmount","removeEventListener","_renderMobileMenu","_renderDesktopMenu","menuItemData","Navigation","menuItem","_renderDrawerMenu","MenuList","tabIndex","_renderDisplay","subMenu","_renderDrawer","_renderLinkMenuItem","_renderLinkText","menuSubItem","_renderDrawerLink","item","linkURL","_renderSpanMenuItem","ListItem","menuItemList","i","_getFromSubMenu","_createMenuItemList","subMenus","found","_renderSubMenu","_renderButtonMenuItem","levelClassName","menuOptions","option","idx","hasOptions","toString","_renderMenu","Button","onFocus","Link","Span","level","currentItem","promoBannerProps","contentProps","closeButton","bannerMessages","carouselProps","fontColor","fontSize","boldText","italicizedText","underlineText","createConfigStyles","isLink","color","fontWeight","fontStyle","textDecoration","slides","style","accountSectionHeading","creditSummarySectionHeading","accountLabels","accountValues","creditSummaryLabels","creditSummaryValues","homeButton","actions","requestStatementModal","availableCredit","balanceOwed","creditExcess","_ref","noclick","attribute","itemProp","content","Separator","separator","Breadcrumb","_pageType","urlTokens","pageType","_getRootLink","_getCustomBreadcrumbLinks","itemPosition","keyIndex","_getCategoryHierarchy","categoryHierarchy","_getFriendlyName","locale","NameTranslations","Url","nameTranslations","_nameTranslation","nameTranslation","ArrayExtensions","hasElements","find","Language","toLowerCase","Text","_getPDPLinks","categoryPaths","product","url","requestUrl","Name","hideProductName","_goBack","history","back","_getPDPBackButton","query","MsDyn365","isBrowser","referrer","backToResultsText","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","app","breadcrumbType","linkSeparator","breadcrumbViewProps","CountryPicker","_telemetryContent","_preferredSiteStorageKey","_cookieExpirationTime","closeModal","isModalOpen","_handleStayOnSiteButtonClick","_this$props$context$r","currentBaseUrl","marketSettings","urlToStore","_appendProtocolToUrl","_writeToCookie","_handleClick","storageKey","storageValue","cookieOptions","secure","sameSite","maxAge","set","baseUrl","includes","isCookieValueSet","get","_heading$tag","subheading","countryList","actionLink","countryPickerHeading","countryPickerSubHeading","countryPickerActionLink","createLink","currentSiteButton","stayOnCurrentSiteButtonText","viewprops","modalContainer","Modal","toggle","modalTransition","timeout","shouldUpdateFocusToFirstElement","modalHeaderContainer","ModalHeader","closeButtonTabIndex","modalFooterContainer","ModalFooter","modalBodyContainer","ModalBody","renderCountryList","stayOnCurrentSiteButton","_this$props$config$ac","StringExtensions","isNullOrEmpty","_link$linkText","localeItems","renderCountry","localeItem","_image$imageSettings","_image$src","localeBaseUrl","matchedCountryItem","imageSize","defaultImageSettings","lazyload","imageProps","displayString","altText","loadFailureBehavior","shouldSkipToMainImage","displaySubString","countryPickerView","country","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","button","_renderConfigure","configure","ContainerProps","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","errors","select","_renderFindInStore","findInStore","storeSelector","description","modal","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderQuantity","quantityComponent","extentionResources","quantityLimitsMessages","max","quantity","IncrementalQuantity","currentCount","onChange","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","input","_renderShopSimilarItem","shopSimilarItem","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","price","rating","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","mediaGallery","bulkPurchaseLink","slots","FooterCategory","categories","FooterList","FooterListItem","FooterCategoryView","category","ImageList","images","_renderImageListItems","imageList","disableLazyLoad","imageLinkText","imageLinkAriaLabel","linkAltText","linkAriaLabel","imageListTitle","imageListHeading","imageListContainer","imageListItem","imageListItemAnchorTag","imageListItems","imageListView","indexKey","InteractiveFeatureCollection","isNullOrWhitespace","headingTag","itemsCounter","indexItem","itemCounter","isMosaic","_this$props$config$cl","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","singleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","vertical","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionMobileContainer","singleSlideCarouselItemContainer","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionDesktopItems","_getFeatureItem","interactiveFeatureCollectionView","tileItem","InteractiveFeatureCollectionLinks","InteractiveFeatureItem","handleHeadingChange","_this$props$config$li","Number","featureItemLinks","_createParagraph","_renderImage","featureItem","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","interactiveFeatureCollectionMosaicContainer","tabindex","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","sm","md","moduleType","typeName","imagePropertyName","MagicNumber","FeatureItemViewComponent","renderMosaic","thisProps","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","renderCarousel","Map","mapRef","_initMap","actionContext","channel","storeSelectorStateManager","isMapApiLoaded","Microsoft","Maps","credentials","BingMapsApiKey","pushpinAccessible","Events","addHandler","async","setSelectedStoreLocationId","_updateMap","_this$props$data$stor","_storeSelectorStateMa","pushpinOptions","orgUnitStoreInformation","selectedStoreLocationId","mapLocation","entities","clear","pushpins","storeLocationList","filter","store","OrgUnitAvailability","unitStoreInfo","entries","_unitStoreInfo$OrgUni","storeLocation","OrgUnitLocation","Latitude","Longitude","isSelectedLocation","OrgUnitNumber","options","_getPushpinOptions","pushpin","Pushpin","Location","handleClickEvent","unshift","currentLocation","setView","center","bounds","LocationRect","fromShapes","setOptions","orgUnitNumber","showIndex","size","selectionColor","icon","_getSvgIcon","_this$props$data$stor2","BingMapsEnabled","when","_this$props$data$stor3","setMapModuleLoaded","_this$props$data$stor4","reaction","_this$props$data$stor5","loadMapApi","_this$props$data$stor6","_this$props$context","lang","market","ChannelCountryRegionISOCode","_this$props$data$stor7","_this$props$data$stor8","_this$props$data$stor9","shouldDisplayMap","listMapViewState","displayMap","classname","show","Header","headerProps","MapProps","__decorate","observable","observer","MapHeader","_ref2","Subscribe","_emailAddressInputRef","subscribeParagraph","subscribeHeading","handleText","subscribe","subscribeContainer","subscribeForm","subscribeFormAriaLabel","name","autoComplete","emailInput","type","subscribeFormEmailAriaLabel","placeholder","subscribeEmailPlaceholderText","submitButton","subscribeFormSubmitAriaLabel","subscribeButtonLabel","submitButtonLabelText","onSubmit","preventDefault","subscribeView","_subscribeForm$classN","_emailInput$className","_submitButton$classNa"],"sourceRoot":""}