{"version":3,"file":"static/js/7.b20f11bfef480875063e.chunk.js","mappings":"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","sources":["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/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/product-specification/components/product-specification-table-stucture.tsx?c1c4","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/product-specification.tsx?6583","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/product-specification.view.tsx?7490","webpack://Msdyn365.Commerce.Online/./src/modules/subscribe/subscribe.tsx?9fea","webpack://Msdyn365.Commerce.Online/./src/modules/subscribe/subscribe.view.tsx?19c8"],"sourcesContent":["/* 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","/*!\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 { getRichTextHtml } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\n/**\n * Product specification table row.\n */\nexport interface IProductSpecificationTableRow {\n productName?: string;\n cellData?: React.ReactNode;\n className?: string;\n}\n\n/**\n * Product specification table row component.\n * @param props - For product specification table row.\n * @param props.productName - Product name.\n * @param props.cellData - Cell data.\n * @param props.className - Class name.\n * @returns - Returns JSX element.\n */\nexport const ProductSpecificationTableRow: React.FC = ({ productName, cellData, className }) => (\n \n \n {/* eslint-disable-next-line react/no-danger */}\n \n \n {cellData}\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Drawer, IModuleProps, INodeProps, Module } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { AttributesForSelectedVariantInput, getAttributesForSelectedVariant } from '../..';\nimport { ProductSpecificationTableRow } from './components/product-specification-table-stucture';\nimport { IProductSpecificationData } from './product-specification.data';\nimport { displayStyle, IProductSpecificationProps } from './product-specification.props.autogenerated';\n\n/**\n * Maintain Drawer State.\n */\nexport interface IProductSpecificationState {\n isDrawerOpen: boolean;\n drawerListId: number | undefined;\n}\n\n/**\n * Product specification view props.\n */\nexport interface IProductSpecificationViewProps extends IProductSpecificationProps<{}> {\n ProductSpecification: IModuleProps;\n ProductSpecificationTableProps: INodeProps;\n ProductSpecificationTableBodyProps: INodeProps;\n productSpecificationResult?: (JSX.Element | null)[];\n title?: React.ReactNode;\n isAccrodion?: boolean;\n handleText?(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * Check for display style either accordion or table.\n */\nexport interface IProductSpecificationExtentedProps extends IProductSpecificationProps {\n displayStyle?: displayStyle;\n}\n\n/**\n *\n * ProductSpecification component.\n * @extends {React.Component>}\n */\n@observer\nclass ProductSpecification extends React.Component {\n public constructor(props: IProductSpecificationExtentedProps) {\n super(props);\n this.state = {\n isDrawerOpen: false,\n drawerListId: undefined\n };\n }\n\n public async componentDidMount(): Promise {\n const { context, data, telemetry } = this.props;\n const catalogId = Msdyn365.getCatalogId(this.props.context.request);\n reaction(\n () => (data.product.result ? data.product.result.RecordId : null),\n () => {\n if (context && data.product.result) {\n const actionInput = new AttributesForSelectedVariantInput(\n data.product.result.RecordId,\n\n +context.actionContext.requestContext.apiSettings.channelId,\n data.product.result,\n catalogId\n );\n\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch((error: Error) => {\n telemetry.error(error.message);\n telemetry.debug('Unable to update attributes for Product');\n telemetry.error(error.message);\n });\n }\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IProductSpecificationExtentedProps, nextState: IProductSpecificationState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n let data: IProductSpecificationData;\n try {\n data = this.props.data;\n } catch (error) {\n this.props.telemetry.error(`Something went wrong ------${error}`);\n return
{error}
;\n }\n\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\n this.props.telemetry.error('Product specification content is empty, module wont render.');\n return null;\n }\n\n const { heading, className } = this.props.config;\n const { productSpecificationData } = this.props.data;\n const isAccrodion = this.props.config.displayStyle === displayStyle.accordion;\n const viewProps = {\n ...this.props,\n handleText: this.handleHeadingChange,\n ProductSpecification: {\n moduleProps: this.props,\n className: classnames('ms-product-specification', className)\n },\n ProductSpecificationTableProps: isAccrodion\n ? {\n moduleProps: this.props,\n className: classnames('ms-product-specification__accordion', className)\n }\n : {\n className: classnames('ms-product-specification__table table-striped table-bordered'),\n tag: 'table'\n },\n isAccrodion,\n ProductSpecificationTableBodyProps: isAccrodion\n ? {}\n : {\n className: '',\n tag: 'tbody'\n },\n title: heading?.text && (\n \n ),\n\n productSpecificationResult: isAccrodion\n ? productSpecificationData && this._createDrawerBody(data)\n : productSpecificationData && this._createTableBody(data)\n } as IProductSpecificationViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle Heading Text Change.\n * @param event - Current event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n private _createTableBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n return content.productSpecificationData.result!.map((product, index) => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n\n if (!cellData) {\n return null;\n }\n\n return (\n \n );\n });\n }\n\n private _createDrawerBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n return content.productSpecificationData.result!.map(product => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n if (!cellData) {\n return null;\n }\n return (\n \n \n
{cellData}
\n \n
\n );\n });\n }\n\n private readonly _toggle = (drawerListId: number | undefined) => (): void => {\n if (this.state.drawerListId !== drawerListId) {\n this.setState({ drawerListId, isDrawerOpen: true });\n } else {\n this.setState({ drawerListId: undefined, isDrawerOpen: false });\n }\n };\n\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\n switch (product.DataTypeValue) {\n case 0: // None\n // Return span here instead of null so the row still shows\n return ;\n case 1: // Currency\n return this._renderCurrencyCell(product);\n case 2: // DateTime\n return this._renderDateTimeCell(product);\n case 3: // Decimal\n return this._renderDecimalCell(product);\n case 4: // Integer\n return this._renderIntegerCell(product);\n case 5: // Text\n return this._renderTextCell(product);\n case 6: // TrueFalse\n return this._renderTrueFalseCell(product);\n case 40: // Video\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\n return null;\n case 41: // Image\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\n return null;\n default:\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\n return null;\n }\n }\n\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\n return (\n \n {product.CurrencyCode}\n {product.CurrencyValue}\n \n );\n }\n\n return null;\n }\n\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\n if (product.DateTimeOffsetValue?.toUTCString) {\n return {product.DateTimeOffsetValue.toUTCString()};\n }\n\n return null;\n }\n\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\n return {product.IntegerValue};\n }\n\n return null;\n }\n\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\n return {product.FloatValue};\n }\n\n return null;\n }\n\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\n if (product.TextValue !== null && product.TextValue !== undefined) {\n // eslint-disable-next-line react/no-danger\n return ;\n }\n\n return null;\n }\n\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\n // TODO 20369885 setting to default value is needed to work around a platform bug where\n // config string value does not get its default value.\n if (product.BooleanValue) {\n return {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'};\n }\n return {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'};\n }\n}\n\nexport default ProductSpecification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductSpecificationViewProps } from './product-specification';\n\nconst ProductSpecificationView: React.FC = props => {\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\n const rowdata =\n productSpecificationResult &&\n ArrayExtensions.hasElements(productSpecificationResult) &&\n productSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row));\n\n return rowdata && ArrayExtensions.hasElements(rowdata) ? (\n \n {props.title}\n \n {rowdata}\n \n \n ) : null;\n};\n\nexport default ProductSpecificationView;\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":["ContentCardLinks","React","constructor","_mapEditableLinks","linkdata","length","editableLinks","forEach","link","index","payLoad","getPayloadObject","this","props","telemetryContent","linkText","contentAction","etext","attributes","getTelemetryAttributes","btnClass","editableLink","ariaLabel","className","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","onClick","onTelemetryClick","push","render","links","Msdyn365","editProps","onTextChange","requestContext","actionableRegion","HeadingTag","ContentBlock","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","handleTextChange","event","config","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","error","contentBlockviewProps","_objectSpread","title","moduleClass","contentBlockContainer","moduleProps","classnames","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","_getImageLink","renderView","region","imageAndLinks","Module","Node","href","Iframe","super","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","id","mobileViewLabelText","parentMenu","state","undefined","_resetFocus","setTimeout","menuNode","current","focus","_handleClickOutside","contains","_closeSubmenu","bind","componentDidMount","document","body","addEventListener","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","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","window","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","BackTopFooter","backtoTopText","destination","BackToTop","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","color","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","ProductSpecificationTableRow","productName","cellData","scope","dangerouslySetInnerHTML","getRichTextHtml","ProductSpecification","_toggle","drawerListId","isDrawerOpen","catalogId","RecordId","actionInput","AttributesForSelectedVariantInput","apiSettings","channelId","getAttributesForSelectedVariant","catch","debug","shouldComponentUpdate","nextProps","nextState","productSpecificationData","isAccrodion","displayStyle","handleText","ProductSpecificationTableProps","ProductSpecificationTableBodyProps","productSpecificationResult","_createDrawerBody","_createTableBody","_renderProductCell","accordionItemContainer","_product$Name","collapseProps","onToggle","DataTypeValue","_renderCurrencyCell","_renderDateTimeCell","_renderDecimalCell","_renderIntegerCell","_renderTextCell","_renderTrueFalseCell","warning","CurrencyValue","CurrencyCode","_product$DateTimeOffs","DateTimeOffsetValue","toUTCString","IntegerValue","FloatValue","TextValue","BooleanValue","trueValueText","falseValueText","rowdata","row","ObjectExtensions","isNullOrUndefined","Subscribe","_emailAddressInputRef","subscribeParagraph","subscribeHeading","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":""}