{"version":3,"file":"static/js/27.b55881da5cd2a65297aa.chunk.js","mappings":"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","sources":["webpack://msdyn365.commerce.online/./src/models/notification-message-type.ts?e39e","webpack://msdyn365.commerce.online/./src/modules/content-block-no-headings/components/links.tsx?bf2f","webpack://msdyn365.commerce.online/./src/modules/content-block-no-headings/content-block-no-headings.props.autogenerated.ts?1e17","webpack://msdyn365.commerce.online/./src/modules/content-block-no-headings/content-block-no-headings.tsx?5b4f","webpack://msdyn365.commerce.online/./src/modules/content-block-no-headings/content-block-no-headings.view.tsx?d90f","webpack://msdyn365.commerce.online/./src/modules/notification/notification.tsx?d6a7","webpack://msdyn365.commerce.online/./src/modules/smwe-footer-category/smwe-footer-category.tsx?6bac","webpack://msdyn365.commerce.online/./src/modules/smwe-footer-category/smwe-footer-category.view.tsx?7803","webpack://msdyn365.commerce.online/./src/Utilities/heading/Heading.tsx?3183","webpack://msdyn365.commerce.online/./src/modules/smwe-footer-item/smwe-footer-item.tsx?7c5e","webpack://msdyn365.commerce.online/./src/modules/smwe-footer-item/smwe-footer-item.view.tsx?a558","webpack://msdyn365.commerce.online/./src/themes/blend/views/search.view.tsx?75dd","webpack://msdyn365.commerce.online/./src/themes/colsolare/views/search.view.tsx?e776","webpack://msdyn365.commerce.online/./src/themes/columbiacrest/views/search.view.tsx?d65b","webpack://msdyn365.commerce.online/./src/themes/conn-creek/views/search.view.tsx?cf9a","webpack://msdyn365.commerce.online/./src/themes/elicit/views/search.view.tsx?af64","webpack://msdyn365.commerce.online/./src/themes/emp/views/search.view.tsx?f1a4","webpack://msdyn365.commerce.online/./src/themes/enoteca/views/search.view.tsx?9c84","webpack://msdyn365.commerce.online/./src/themes/erath/views/search.view.tsx?f581","webpack://msdyn365.commerce.online/./src/themes/fth/views/search.view.tsx?4cac","webpack://msdyn365.commerce.online/./src/themes/generazioni/views/search.view.tsx?6dfe","webpack://msdyn365.commerce.online/./src/themes/intrinsic-wine-co/views/search.view.tsx?fb27","webpack://msdyn365.commerce.online/./src/themes/north-star/views/search.view.tsx?6201","webpack://msdyn365.commerce.online/./src/themes/patzhall/views/search.view.tsx?93d2","webpack://msdyn365.commerce.online/./src/themes/spring-valley-vineyard/views/search.view.tsx?5fec","webpack://msdyn365.commerce.online/./src/themes/stagsleap/views/search.view.tsx?2a3f","webpack://msdyn365.commerce.online/./src/themes/stemichelle-new/views/search.view.tsx?bd72","webpack://msdyn365.commerce.online/./src/themes/stemichelle/views/search.view.tsx?e690","webpack://msdyn365.commerce.online/./src/themes/wine-estates/views/search.view.tsx?169f","webpack://msdyn365.commerce.online/./src/modules/check-in-for-pickup/check-in-confirmation.tsx?406f","webpack://msdyn365.commerce.online/./src/modules/check-in-for-pickup/check-in-error.tsx?e789","webpack://msdyn365.commerce.online/./src/modules/check-in-for-pickup/check-in-for-pickup.tsx?8686","webpack://msdyn365.commerce.online/./src/modules/check-in-for-pickup/check-in-for-pickup.view.tsx?bd7a","webpack://msdyn365.commerce.online/./src/modules/distributor-selector/components/distributor-selector-small-components.tsx?a27a","webpack://msdyn365.commerce.online/./src/modules/distributor-selector/components/distributor-selector-line-item.components.tsx?0d4f","webpack://msdyn365.commerce.online/./src/modules/distributor-selector/components/distributor-selector-lines.tsx?3695","webpack://msdyn365.commerce.online/./src/modules/distributor-selector/components/distributor-payment-option-list.tsx?d919","webpack://msdyn365.commerce.online/./src/modules/distributor-selector/components/distributor-selector-search-form.tsx?6f95","webpack://msdyn365.commerce.online/./src/modules/distributor-selector/distributor-selector.tsx?f21b","webpack://msdyn365.commerce.online/./src/modules/distributor-selector/distributor-selector.view.tsx?0f28","webpack://msdyn365.commerce.online/./src/modules/order-lookup/utilities/order-lookup-utility.tsx?c60b","webpack://msdyn365.commerce.online/./src/modules/order-lookup/components/order-lookup-additional-fields.tsx?9951","webpack://msdyn365.commerce.online/./src/modules/order-lookup/components/order-lookup-fields.tsx?297b","webpack://msdyn365.commerce.online/./src/modules/order-lookup/order-lookup.tsx?72d3","webpack://msdyn365.commerce.online/./src/modules/order-lookup/order-lookup.view.tsx?b8e5"],"sourcesContent":["/**\r\n * enum to define all message types used in INotificationMessage\r\n */\r\nexport const enum NotificationType {\r\n info = 'info',\r\n success = 'success',\r\n warning = 'warning',\r\n error = 'error',\r\n validation = 'validation',\r\n none = 'none'\r\n}\r\n","/* eslint-disable no-duplicate-imports */\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { ILinksData } from '../content-block-no-headings.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\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 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 * IContentBlockNoHeadings 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 IContentBlockNoHeadingsConfig 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 IContentBlockNoHeadingsProps extends Msdyn365.IModule {\r\n config: IContentBlockNoHeadingsConfig;\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/* eslint-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, IContentBlockNoHeadingsProps } from './content-block-no-headings.props.autogenerated';\r\n\r\nexport interface IContentBlockViewProps extends IContentBlockNoHeadingsProps<{}> {\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(this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry);\r\n public render(): JSX.Element | null {\r\n const {\r\n heading,\r\n image,\r\n links,\r\n className,\r\n imageAriaLabel\r\n } = this.props.config;\r\n let { paragraph } = this.props.config;\r\n const contentBlockTitle = heading && (\r\n \r\n );\r\n const imageProps = {\r\n gridSettings: this.props.context.request.gridSettings || {},\r\n imageSettings: image && image.imageSettings,\r\n };\r\n const contentBlockLinks = links && links.length > 0 && (\r\n \r\n );\r\n //Change the paragraph source by replacing all the heading tags to p tags and adding custom styling for font size to them\r\n if (paragraph) {\r\n if (paragraph.indexOf(\"= 0 && paragraph.indexOf(\"\") >= 0) {\r\n const modifyh1 = paragraph.substring(paragraph.indexOf(\"\") + 5);\r\n let updatedh1 = modifyh1.replace(\"\", \"\").replace('class=\"', 'class=\"h1 ');\r\n if (!updatedh1.includes(\"class\")) {\r\n updatedh1 = updatedh1.replace(\"= 0 && paragraph.indexOf(\"\") >= 0) {\r\n const modifyh2 = paragraph.substring(paragraph.indexOf(\"\") + 5);\r\n let updatedh2 = modifyh2.replace(\"\", \"\").replace('class=\"', 'class=\"h2 ');\r\n if (!updatedh2.includes(\"class\")) {\r\n updatedh2 = updatedh2.replace(\"= 0 && paragraph.indexOf(\"\") >= 0) {\r\n const modifyh3 = paragraph.substring(paragraph.indexOf(\"\") + 5);\r\n let updatedh3 = modifyh3.replace(\"\", \"\").replace('class=\"', 'class=\"h3 ');\r\n if (!updatedh3.includes(\"class\")) {\r\n updatedh3 = updatedh3.replace(\"= 0 && paragraph.indexOf(\"\") >= 0) {\r\n const modifyh4 = paragraph.substring(paragraph.indexOf(\"\") + 5);\r\n let updatedh4 = modifyh4.replace(\"\", \"\").replace('class=\"', 'class=\"h4 ');\r\n if (!updatedh4.includes(\"class\")) {\r\n updatedh4 = updatedh4.replace(\"= 0 && paragraph.indexOf(\"\") >= 0) {\r\n const modifyh5 = paragraph.substring(paragraph.indexOf(\"\") + 5);\r\n let updatedh5 = modifyh5.replace(\"\", \"\").replace('class=\"', 'class=\"h5 ');\r\n if (!updatedh5.includes(\"class\")) {\r\n updatedh5 = updatedh5.replace(\"= 0 && paragraph.indexOf(\"\") >= 0) {\r\n const modifyh6 = paragraph.substring(paragraph.indexOf(\"\") + 5);\r\n let updatedh6 = modifyh6.replace(\"\", \"\").replace('class=\"', 'class=\"h6 ');\r\n if (!updatedh6.includes(\"class\")) {\r\n updatedh6 = updatedh6.replace(\"\r\n );\r\n const contentBlockImage = image && (\r\n \r\n );\r\n\r\n if (\r\n !contentBlockTitle &&\r\n !contentBlockText &&\r\n !contentBlockImage &&\r\n !contentBlockLinks\r\n ) {\r\n this.props.context.telemetry.error(\r\n 'Content block content is empty, module wont render.'\r\n );\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('ms-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) => this.props.config.heading!.text = event.target.value;\r\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => 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/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IContentBlockViewProps } from './content-block-no-headings';\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\nimport { Alert } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { NotificationType } from '../../models/notification-message-type';\r\nimport { INotificationData } from './notification.data';\r\nimport { INotificationProps } from './notification.props.autogenerated';\r\n\r\n/**\r\n *\r\n * Notification component\r\n * @extends {React.Component>}\r\n */\r\nclass Notification extends React.Component> {\r\n public render(): JSX.Element | null {\r\n const moduleData = this.props.data;\r\n if (!(moduleData && moduleData.notification && moduleData.notification.result)) {\r\n return null;\r\n }\r\n const notificationMessageObject = moduleData.notification.result;\r\n if (notificationMessageObject.message && !notificationMessageObject.displayed) {\r\n return (\r\n
\r\n {this._renderErrorBlock(notificationMessageObject.message, notificationMessageObject.messagetype)}\r\n
\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: INotificationProps): boolean {\r\n return Boolean(nextProps.data.notification && nextProps.data.notification.status === 'SUCCESS');\r\n }\r\n\r\n private _markNotificationDisplayed = () => {\r\n this.props.data.notification!.result!.displayed = true;\r\n this.forceUpdate();\r\n };\r\n\r\n private _renderErrorBlock = (message: string, _errorType: NotificationType): JSX.Element | null => {\r\n const alertcolorclassName = this._getClassName(_errorType,'color');\r\n const messageTextClassName = this._getClassName(_errorType,'text');\r\n return (\r\n \r\n
{message}
\r\n
\r\n );\r\n };\r\n\r\n private _getClassName = (errorType: NotificationType ,classtype:string): string => {\r\n switch (errorType) {\r\n case NotificationType.error:\r\n return `message-error-${classtype}`;\r\n case NotificationType.info:\r\n return `message-info-${classtype}`;\r\n case NotificationType.success:\r\n return `message-success-${classtype}`;\r\n case NotificationType.validation:\r\n return `message-validation-${classtype}`;\r\n case NotificationType.warning:\r\n return `message-warning-${classtype}`;\r\n case NotificationType.none:\r\n return '';\r\n default:\r\n return '';\r\n }\r\n };\r\n}\r\n\r\nexport default Notification;\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/* eslint-disable no-duplicate-imports */\r\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { ISmweFooterCategoryConfig, ISmweFooterCategoryProps } from './smwe-footer-category.props.autogenerated';\r\n\r\nexport interface IFooterCategoryViewProps extends ISmweFooterCategoryProps {\r\n categories: React.ReactNode[];\r\n FooterList: IModuleProps;\r\n FooterListItem: INodeProps;\r\n}\r\n\r\n/**\r\n *\r\n * FooterCategory component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass FooterCategory extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n if(!this.props.slots || !this.props.slots.content || !this.props.slots.content.length) {\r\n this.props.context.telemetry.error('footer slots content is empty, module wont render');\r\n return null;\r\n }\r\n const viewprops = {\r\n ...this.props,\r\n categories: this.props.slots.content,\r\n FooterList: {\r\n moduleProps: this.props,\r\n className: classnames('ms-footer__list', this.props.config.className),\r\n tag:'ul'\r\n },\r\n FooterListItem: {\r\n className: classnames('ms-footer__list-item', this.props.config.className),\r\n tag: 'li'\r\n },\r\n };\r\n\r\n return this.props.renderView(viewprops) as React.ReactElement;\r\n }\r\n}\r\n\r\nexport default FooterCategory;\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/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React, { ReactNode } from 'react';\r\nimport { IFooterCategoryViewProps } from './smwe-footer-category';\r\n\r\nexport const FooterCategoryView: React.FC = props => {\r\n const {categories, FooterList, FooterListItem} = props;\r\n if(!categories || !categories.length) {\r\n props.context.telemetry.error('Footer content is empty, module wont render');\r\n return null;\r\n }\r\n return(\r\n \r\n { categories.map((category: ReactNode, index: number) => {\r\n return (\r\n \r\n {category}\r\n \r\n );\r\n })\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default FooterCategoryView;","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IHeadingProps } from './Heading.props';\r\n\r\n/**\r\n * Heading component.\r\n * @extends {React.PureComponent}\r\n */\r\n\r\nconst Heading = ({ headingTag: HTag = 'h1', tag: Tag, className, text, ariaLabel = text }: IHeadingProps) => (\r\n Tag ? \r\n {text}\r\n : \r\n {text}\r\n \r\n);\r\n\r\nexport default Heading;\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 { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { IHeadingData, ILinkData, ISmweFooterItemConfig, ISmweFooterItemProps } from './smwe-footer-item.props.autogenerated';\r\nimport Heading from '../../Utilities/heading/Heading';\r\n\r\nexport interface IFooterViewProps extends ISmweFooterItemProps {\r\n heading: React.ReactNode;\r\n image: React.ReactNode;\r\n text: React.ReactNode;\r\n linkText: React.ReactNode;\r\n className?: string;\r\n FooterItem: IModuleProps;\r\n HeadingContainer: INodeProps;\r\n ItemContainer: INodeProps;\r\n Link: INodeProps;\r\n}\r\n\r\n/**\r\n *\r\n * FooterItem component\r\n * @extends {React.PureComponent>}\r\n */\r\nexport class FooterItem extends React.PureComponent> {\r\n constructor(props: ISmweFooterItemProps) {\r\n super(props);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { heading, image, link, text } = this.props.config;\r\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\r\n\r\n const viewProps: IFooterViewProps = {\r\n ... this.props,\r\n heading: this._createHeading(heading!),\r\n image: this._createImageMarkup(image!),\r\n text: this._createText(text!),\r\n linkText: this._createLinkText(link!),\r\n // @ts-ignore\r\n FooterItem: {\r\n moduleProps: this.props,\r\n className: footerItemClassName\r\n },\r\n // @ts-ignore\r\n HeadingContainer: {\r\n className: 'ms-footer__heading'\r\n },\r\n // @ts-ignore\r\n ItemContainer: {\r\n className: 'ms-footer__link__container'\r\n },\r\n // @ts-ignore\r\n Link: link && link.linkUrl && link.linkUrl.destinationUrl && {\r\n tag: 'a',\r\n className: 'ms-footer__link',\r\n href: link.linkUrl.destinationUrl,\r\n title: link.linkText,\r\n target: link.openInNewTab ? '_blank' : undefined\r\n },\r\n className: footerItemClassName\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _createLinkText(link: ILinkData): React.ReactNode | null {\r\n if (!link || !link.linkText) {\r\n return null;\r\n }\r\n\r\n return ({link.linkText});\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 }\r\n\r\n private _createText(text: string): React.ReactNode | null {\r\n if (!text) {\r\n return null;\r\n }\r\n return
{text}
;\r\n }\r\n\r\n private _createImageMarkup(item: IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\r\n if (!item || !item.src || !item.src.length) {\r\n return null;\r\n }\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=24&h=24&m=6`, w: 0, h: 0 },\r\n lg: { q: `w=24&h=24&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n return ;\r\n }\r\n}\r\n\r\nexport default FooterItem;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IFooterViewProps } from './smwe-footer-item';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return (\r\n \r\n {/* New footer module */}\r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const { heading, HeadingContainer, Link, linkText, image } = props;\r\n if (heading) {\r\n return (\r\n \r\n {heading}\r\n {linkText}\r\n {image}\r\n \r\n );\r\n } else if (Link) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return (\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./components';\r\nimport { ISearchViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./search';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {_renderForm(form as ISearchFormViewProps, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n {form.submitBtn}\r\n
\r\n
\r\n {form.input}\r\n
\r\n {form.cancelBtn}\r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./components';\r\nimport { ISearchViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./search';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {_renderForm(form as ISearchFormViewProps, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n {form.submitBtn}\r\n
\r\n
\r\n {form.input}\r\n
\r\n {form.cancelBtn}\r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./components';\r\nimport { ISearchViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./search';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {_renderForm(form as ISearchFormViewProps, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n {form.submitBtn}\r\n
\r\n
\r\n {form.input}\r\n
\r\n {form.cancelBtn}\r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search/dist/types/index';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price !== 0 && (
{item.price}
)}\r\n
\r\n
\r\n );\r\n })}\r\n
\r\n
\r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*---------------------------------------------------------------------------------------------\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 { ISearchCategoryViewProps, ISearchFormViewProps, ISearchKeywordViewProps, ISearchProductViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./components';\r\nimport { ISearchViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./search';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {_renderForm(form as ISearchFormViewProps, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ?\r\n {AutoSuggestAriaLabelText} : ''\r\n }\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n {form.submitBtn}\r\n
\r\n
\r\n {form.input}\r\n
\r\n {form.cancelBtn}\r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport QRCode from 'qrcode.react';\nimport * as React from 'react';\n\n/**\n * CheckInConfirmation component Properties.\n */\nexport interface ICheckInConfirmationProps {\n /**\n * The confirmation text to show.\n */\n confirmationText: string;\n\n /**\n * Should the order confirmation number shown as QR code or not.\n * If false, the order confirmation number (channel reference ID) will be shown as text.\n */\n shouldShowQrCode: boolean;\n\n /**\n * The label shows for channel reference ID.\n */\n channelReferenceIdLabel: string;\n\n /**\n * The channel reference ID to show. When shouldShowQrCode is true, the ID is shown as QR code, otherwise it is shown as text.\n */\n channelReferenceId?: string;\n}\n\n/**\n * CheckInConfirmation component for showing confirmation information after check-in succeed.\n * @param confirmationProps - The confirmation properties.\n * @param confirmationProps.confirmationText - The confirmation text.\n * @param confirmationProps.shouldShowQrCode - Should the order confirmation number shown as QR code or not.\n * If false, the order confirmation number (channel reference ID) will be shown as text.\n * @param confirmationProps.channelReferenceIdLabel - The label shows for channel reference ID.\n * @param confirmationProps.channelReferenceId - The channel reference ID to show.\n * When shouldShowQrCode is true, the ID is shown as QR code, otherwise it is shown as text.\n * @returns The check-in confirmation component.\n */\nexport const CheckInConfirmationComponent: React.FC = ({\n confirmationText,\n shouldShowQrCode,\n channelReferenceIdLabel,\n channelReferenceId\n}) => {\n return (\n
\n

{confirmationText}

\n {channelReferenceId && (\n

\n {`${channelReferenceIdLabel} ${channelReferenceId}`}\n

\n )}\n {channelReferenceId && shouldShowQrCode && (\n \n \n \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\n/**\n * Check-in error properties.\n */\nexport interface ICheckInErrorProps {\n errorMessage?: string;\n}\n\n/**\n * Check-in error.\n * @param errorProps - The error properties.\n * @param errorProps.errorMessage - The error message to show.\n * @returns The alert element showing check-in errors.\n */\nexport const CheckInErrorComponent: React.FC = ({ errorMessage }) => {\n if (!errorMessage) {\n return null;\n }\n\n return (\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IDictionary } from '@msdyn365-commerce/core';\nimport { CommerceProperty, SalesOrdersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { CheckInConfirmationComponent } from './check-in-confirmation';\nimport { CheckInErrorComponent } from './check-in-error';\nimport { IAdditionalInformationKeysData, ICheckInForPickupConfig, ICheckInForPickupProps } from './check-in-for-pickup.props.autogenerated';\n\n/**\n * The interface representing a piece of additional information data.\n */\ninterface IAdditionalInformation {\n formKey: IAdditionalInformationKeysData;\n value: string;\n}\n\n/**\n * The state for check-in view.\n */\nexport interface ICheckInViewState {\n /**\n * If the module has header error to show.\n */\n isHeaderError: boolean;\n\n /**\n * If the customer has checked in.\n */\n isCheckedIn: boolean;\n\n /**\n * Additional information to capture.\n */\n additionalInformation: IDictionary[];\n}\n\n/**\n * The properties for check-in view.\n */\nexport interface ICheckInViewProps extends ICheckInForPickupProps {\n headerError: React.ReactNode;\n confirmationComponent: React.ReactNode;\n viewState: ICheckInViewState;\n additionalInformationValues: string[];\n checkInForOrderPickup(additionalInformation?: IAdditionalInformation[]): Promise;\n}\n\n/**\n * The state of the CheckInForPickup module.\n */\nexport interface ICheckInForPickupState {\n /**\n * The header error message.\n */\n headerErrorMessage: string;\n\n /**\n * If the customer has checked in successfully.\n */\n isCheckedIn: boolean;\n}\n\n/**\n *\n * CheckIn component.\n * @extends {React.Component, ICheckInForPickupState>}\n */\nclass CheckInForPickup extends React.Component, ICheckInForPickupState> {\n public constructor(props: ICheckInForPickupProps) {\n super(props);\n this.state = {\n headerErrorMessage: '',\n isCheckedIn: false\n };\n }\n\n public render(): JSX.Element | null {\n const isHeaderError: boolean = this.state.headerErrorMessage !== '';\n\n const viewProps = {\n ...this.props,\n headerError: ,\n confirmationComponent: (\n \n ),\n checkInForOrderPickup: this.checkInForOrderPickup,\n additionalInformationValues: this.props.config.additionalInformationKeys\n ? this.props.config.additionalInformationKeys.map(() => {\n return {};\n })\n : undefined,\n viewState: {\n isHeaderError,\n isCheckedIn: this.state.isCheckedIn\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public shouldComponentUpdate(nextProps: ICheckInForPickupProps, nextState: ICheckInForPickupState): boolean {\n if (\n this.props.config.additionalInformationHeading !== nextProps.config.additionalInformationHeading ||\n this.props.config.confirmationText !== nextProps.config.confirmationText\n ) {\n return true;\n }\n if (this.state.headerErrorMessage !== nextState.headerErrorMessage || this.state.isCheckedIn !== nextState.isCheckedIn) {\n return true;\n }\n return false;\n }\n\n public async componentDidMount(): Promise {\n await this._onInit();\n }\n\n /**\n * The async callback for submitting check-in.\n * @param additionalInformationList - The optional additional information captured.\n * @returns The async result.\n */\n public checkInForOrderPickup = async (additionalInformationList?: IAdditionalInformation[]): Promise => {\n const channelId: number = Number.parseInt(this.props.context.request.query!.channelId, 10);\n const channelReferenceId: string = this.props.context.request.query!.channelReferenceId;\n const packingSlipId: string = this.props.context.request.query!.packingSlipId;\n\n const additionalInformationToSubmit: { formKey: string; value: string }[] | undefined = additionalInformationList?.map(\n additionalInformationKeyValuePair => {\n return {\n formKey: additionalInformationKeyValuePair.formKey.resourceId ?? '',\n value: additionalInformationKeyValuePair.value\n };\n }\n );\n const extensionPropertyList: CommerceProperty[] = [];\n if (!ObjectExtensions.isNullOrUndefined(additionalInformationToSubmit)) {\n for (const additionalInformation of additionalInformationToSubmit) {\n extensionPropertyList.push({\n Key: additionalInformation.formKey,\n Value: {\n StringValue: additionalInformation.value\n }\n });\n }\n }\n try {\n await SalesOrdersDataActions.checkInForOrderPickupAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\n channelId,\n packingSlipId,\n channelReferenceId,\n extensionPropertyList\n );\n } catch (error) {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage, isCheckedIn: false });\n this.props.telemetry.error(error);\n return Promise.resolve();\n }\n this.setState({ headerErrorMessage: '', isCheckedIn: true });\n return Promise.resolve();\n };\n\n /**\n * The action performed on module initialization.\n * @returns The async result.\n */\n private readonly _onInit = async (): Promise => {\n const channelId: number = Number.parseInt(this.props.context.request.query?.channelId ?? '', 10);\n const channelReferenceId: string | undefined = this.props.context.request.query?.channelReferenceId;\n const packingSlipId: string | undefined = this.props.context.request.query?.packingSlipId;\n if (Number.isNaN(channelId) || !channelReferenceId || !packingSlipId) {\n // No error message shown in editor mode.\n if (this.props.context.request.params.isEditor) {\n return Promise.resolve();\n } else if (this.props.context.request.params.isPreview) {\n this.setState({ headerErrorMessage: this.props.resources.requiredParameterMissingErrorMessage });\n } else {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage });\n }\n this.props.context.telemetry.error(\n 'One or more required URL parameters are missing. ' +\n 'Please make sure you have pass in channelId, channelReferenceId and packingSlipId through URL parameter.'\n );\n return Promise.resolve();\n }\n\n const { additionalInformationKeys } = this.props.config;\n\n const hasAdditionalInformation: boolean = ArrayExtensions.hasElements(additionalInformationKeys);\n\n // Call check-in-for-pickup directly if no additional information to capture.\n if (!hasAdditionalInformation) {\n try {\n await SalesOrdersDataActions.checkInForOrderPickupAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\n channelId,\n packingSlipId,\n channelReferenceId\n );\n } catch (error) {\n this.setState({ headerErrorMessage: this.props.resources.genericErrorMessage, isCheckedIn: false });\n this.props.telemetry.error(error);\n return Promise.resolve();\n }\n this.setState({ headerErrorMessage: '', isCheckedIn: true });\n }\n return Promise.resolve();\n };\n}\n\nexport default CheckInForPickup;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { FormBuilder } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckInViewProps } from './check-in-for-pickup';\n\n/**\n * The check-in view for submitting check-in, capturing additional information, and showing check-in confirmation.\n * @param props - The check-in view properties.\n * @returns The check-in view as a react component.\n */\nconst CheckInViewComponent: React.FC = (props: ICheckInViewProps) => {\n const { headerError, checkInForOrderPickup, confirmationComponent, viewState } = props;\n return (\n <>\n {viewState.isHeaderError && headerError}\n {!viewState.isHeaderError && ArrayExtensions.hasElements(props.config.additionalInformationKeys) && (\n \n )}\n {!viewState.isHeaderError &&\n !ArrayExtensions.hasElements(props.config.additionalInformationKeys) &&\n viewState.isCheckedIn &&\n confirmationComponent}\n \n );\n};\n\nexport default CheckInViewComponent;\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 { IDistributorInfo } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\nimport classnames from 'classnames';\nimport { ITermsOfServiceLinkData } from '../distributor-selector.props.autogenerated';\n\nexport interface IDistributorSelectorFoundResultsMessage {\n distributorCountMessage: string;\n distributors?: IDistributorInfo[];\n}\n\nexport interface IDistributorSelectorTermsOfServiceProps {\n link?: ITermsOfServiceLinkData;\n requestContext: Msdyn365.IRequestContext;\n onTextChange?(event: Msdyn365.ContentEditableEvent): void;\n}\n\nexport interface IDistributorDoNotShowProps {\n onChange(event: React.ChangeEvent): void;\n doNotShowAgainMessage: string;\n}\n\nexport interface IDistributorButtonProps {\n onClick(event: React.MouseEvent): void;\n text: string;\n className: string;\n}\n\nexport interface IDistributorEmptyMessageProps {\n emptyLocationsText?: string;\n}\n\nexport const DistributorSelectorCountMessage: React.FC = ({\n distributors,\n distributorCountMessage\n}) => {\n if (distributors) {\n return (\n
\n {distributorCountMessage.replace('{count}', distributors.length.toString())}\n
\n );\n }\n\n return null;\n};\n\nexport const DistributorSelectorTermsOfService: React.FC = ({\n link,\n requestContext,\n onTextChange\n}) => {\n if (link) {\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-distributor-selector__terms-link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link'\n };\n\n return (\n
\n \n
\n );\n }\n return null;\n};\n\nexport const DistributorSelectorWaiting: React.FC = () => {\n return
;\n};\n\nexport const DistributorSelectorDoNotShowAgain: React.FC = ({ onChange, doNotShowAgainMessage }) => {\n return (\n
\n \n {doNotShowAgainMessage}\n
\n );\n};\n\nexport const DistributorSelectorButton: React.FC = ({ onClick, text, className }) => {\n return (\n \n );\n};\n\nexport const DistributorEmptyMessage: React.FC = ({ emptyLocationsText }) => (\n
\n

{emptyLocationsText}

\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions, IDistributorInfo } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant,\n getPayloadObject,\n getTelemetryAttributes\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\n/**\n * Distributor selector line item resources.\n */\n// @ts-ignore\nexport interface IDistributorSelectorDistributorLineItemResources {\n currentDistributorText: string;\n locationHeadingText: string;\n primaryContactText: string;\n paymentTypeText: string;\n viewAllDistributorText: string;\n deliveryMethodHeadingText: string;\n}\n\n/**\n * Distributor Locator line item props.\n */\nexport interface IDistributorSelectorLineItemProps {\n mainClassName: string;\n selectDistributorText?: string;\n distributor: IDistributorInfo;\n resources: IDistributorSelectorDistributorLineItemResources;\n index: string;\n currentDistributorId: number | undefined;\n distributorDetailsToBeShown?: string[];\n shouldShowIndex?: boolean;\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n handlers: {\n onSetAsCurrentDistributor(distributorId: number | undefined): void;\n onViewAllDistributorDetails(distributorId: number | undefined): void;\n };\n}\n\n/**\n * Set Preferred distributor functionality.\n * @param props -Distributor locator location items.\n * @returns Distributor locator selected location line item action.\n */\nconst onSetCurrentDistributorClickHandler = (props: IDistributorSelectorLineItemProps) => () => {\n props.handlers.onSetAsCurrentDistributor(props.distributor.OrgUnit?.RecordId);\n};\n\nconst onViewAllDistributorDetailsClickHandler = (props: IDistributorSelectorLineItemProps) => () => {\n props.handlers.onViewAllDistributorDetails(props.distributor.OrgUnit?.RecordId);\n};\n\n/**\n * Renders distributor selector line items.\n * @param props - Distributor selector line items props.\n * @returns - HTML.\n */\nconst distributorSelectorLineItem: React.FC = (props: IDistributorSelectorLineItemProps) => {\n const {\n distributor,\n resources,\n index,\n currentDistributorId,\n telemetryContent,\n shouldShowIndex,\n selectDistributorText,\n distributorDetailsToBeShown,\n mainClassName\n } = props;\n\n const distributorName: string | undefined = distributor.OrgUnit?.OrgUnitName;\n const isCurrentDistributor = currentDistributorId === distributor.OrgUnit?.RecordId;\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.CurrentDistributor);\n const currentDistributorAttributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const distributorAddress = distributor.OrgUnit?.OrgUnitAddress?.FullAddress;\n const distributorPhoneNo = distributor.OrgUnit?.OrgUnitAddress?.Phone;\n const deliveryMethods = distributor?.OrgUnitDeliveryOptions?.DeliveryOptions;\n\n return (\n
\n {isCurrentDistributor ? (\n
\n
{resources.currentDistributorText}
\n
\n ) : null}\n
\n {shouldShowIndex && {index}}\n {distributorName}\n
\n
\n {distributorDetailsToBeShown && distributorDetailsToBeShown.indexOf('location') > -1 ? (\n
\n {resources.locationHeadingText}\n {distributorAddress && (\n
\n \n {distributorAddress}\n
\n )}\n
\n ) : null}\n {distributorDetailsToBeShown && distributorDetailsToBeShown.indexOf('primaryContact') > -1 ? (\n
\n {resources.primaryContactText}\n {distributorPhoneNo && (\n
\n \n {distributorPhoneNo}\n
\n )}\n
\n ) : null}\n {distributorDetailsToBeShown && distributorDetailsToBeShown.indexOf('deliveryMethod') > -1 ? (\n
\n {resources.deliveryMethodHeadingText}\n {ArrayExtensions.hasElements(deliveryMethods) && (\n
\n <>\n {deliveryMethods?.map(deliveryMethod => {\n return (\n \n {deliveryMethod.Description}\n \n );\n })}\n \n
\n )}\n
\n ) : null}\n \n {resources.viewAllDistributorText}\n \n {!isCurrentDistributor ? (\n \n {selectDistributorText}\n \n ) : null}\n
\n
\n );\n};\n\n/**\n * Distributor line item component.\n */\nexport const DistributorSelectorLineItemComponent = distributorSelectorLineItem as (\n props: IDistributorSelectorLineItemProps\n) => JSX.Element;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions, IDistributorInfo } from '@msdyn365-commerce-modules/retail-actions';\nimport { ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { OrgUnit } from '@msdyn365-commerce/retail-proxy';\nimport React from 'react';\nimport { observable, reaction } from 'mobx';\nimport classnames from 'classnames';\nimport { IDistributorSelectorResources } from '../distributor-selector.props.autogenerated';\nimport { DistributorSelectorLineItemComponent } from './distributor-selector-line-item.components';\n\n/**\n * Distributor selector lines props interface.\n */\nexport interface IDistributorSelectorLinesProps {\n mainClassName: string;\n distributors?: IDistributorInfo[];\n resources: IDistributorSelectorResources;\n selectedDistributorId?: number;\n shouldDisplayList?: boolean;\n isLocationDisabled?: boolean;\n currentDistributorId: number | undefined;\n shouldShowIndex: boolean;\n distributorDetailsToBeShown?: string[];\n selectDistributorText?: string;\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n onDistributorSelected(distributor: OrgUnit | undefined): void;\n onSetAsCurrentDistributor: (distributorId: number | undefined) => void;\n onViewAllDistributorDetails: (distributorId: number | undefined) => void;\n}\n\nexport class DistributorSelectorLines extends React.PureComponent {\n private readonly selectedDistributorRef: React.RefObject;\n private distributorCounter: number;\n @observable private shouldDisplayList: boolean | undefined;\n\n public constructor(props: IDistributorSelectorLinesProps) {\n super(props);\n this.selectedDistributorRef = React.createRef();\n this.distributorCounter = 0;\n this.shouldDisplayList = this.props.shouldDisplayList;\n }\n\n public componentDidMount(): void {\n reaction(\n () => this.shouldDisplayList,\n () => {\n setTimeout(() => {\n this._scrollIntoView();\n }, 0);\n }\n );\n }\n\n public componentDidUpdate(previousProps: IDistributorSelectorLinesProps): void {\n if (this.props.selectedDistributorId !== previousProps.selectedDistributorId) {\n this._scrollIntoView();\n }\n }\n\n public render(): JSX.Element | null {\n const { distributors, mainClassName } = this.props;\n this.shouldDisplayList = this.props.shouldDisplayList;\n\n if (!ArrayExtensions.hasElements(distributors)) {\n return null;\n }\n\n this.distributorCounter = 0;\n\n return (\n
\n {distributors.map((distributor, index) => {\n return this._renderDistributor(distributor, index);\n })}\n
\n );\n }\n\n /**\n * On click Handler function.\n * @param orgUnit -OrgUnit distributor.\n * @returns Click action on orgUnit Distributor.\n */\n private readonly onDistributorSelected = (orgUnit: OrgUnit | undefined) => () => {\n this.props.onDistributorSelected(orgUnit);\n };\n\n private _renderDistributor(distributor: IDistributorInfo, index: number): JSX.Element | undefined {\n const {\n distributors,\n mainClassName,\n currentDistributorId,\n resources,\n telemetryContent,\n distributorDetailsToBeShown,\n selectDistributorText,\n shouldShowIndex,\n onSetAsCurrentDistributor,\n onViewAllDistributorDetails\n } = this.props;\n const selectedDistributorId = this.props.selectedDistributorId;\n const defaultAriaSetsize = 0;\n const orgUnit = distributor?.OrgUnit;\n if (distributor) {\n ++this.distributorCounter;\n return (\n \n \n
\n );\n }\n return undefined;\n }\n\n /**\n * Scroll into view.\n */\n private readonly _scrollIntoView = () => {\n const selectedDistributorDiv = this.selectedDistributorRef.current;\n // In devices with a screen width of less than 768px, we display a toggle button that allows users to switch between the distributor list and the map.\n // The distributor list is initially shown in the list view, followed by the map. Each view has its own scrolling behavior, and they are contained within separate parent wrapper div's.\n const parent = this.props.shouldDisplayList\n ? selectedDistributorDiv?.parentElement?.parentElement\n : selectedDistributorDiv?.parentElement;\n if (selectedDistributorDiv && parent) {\n if (this.props.shouldDisplayList) {\n if (parent.scrollTop > selectedDistributorDiv.offsetTop) {\n parent.scrollTop = selectedDistributorDiv.offsetTop - 10;\n } else if (\n selectedDistributorDiv.offsetTop + selectedDistributorDiv.clientHeight >\n parent.scrollTop + parent.clientHeight\n ) {\n parent.scrollTop = selectedDistributorDiv.offsetTop + selectedDistributorDiv.clientHeight - parent.clientHeight - 10;\n }\n } else {\n if (parent.scrollLeft > selectedDistributorDiv.offsetLeft) {\n parent.scrollLeft = selectedDistributorDiv.offsetLeft;\n } else if (\n selectedDistributorDiv.offsetLeft + selectedDistributorDiv.clientHeight >\n parent.scrollLeft + parent.clientHeight\n ) {\n parent.scrollLeft = selectedDistributorDiv.offsetLeft + selectedDistributorDiv.clientHeight - parent.clientHeight - 10;\n }\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 { TenderType } from '@msdyn365-commerce/retail-proxy';\nimport * as React from 'react';\n\n/**\n * Distributor Payment type list interface.\n */\nexport interface IDistributorPaymentTypesListProps {\n mainClassName: string;\n paymentTypesMenuText?: string;\n paymentTypesList?: TenderType[];\n defaultOptionText?: string;\n onChange(paymentType: string): Promise;\n}\n\n/**\n * Distributor Payment types state interface.\n */\nexport interface IDistributorPaymentTypeListState {\n isFilterExpanded: boolean;\n selectedPaymentTypes?: string;\n}\n\n/**\n * Distributor payment option list Filter\n */\nexport class DistributorPaymentOptionList extends React.PureComponent {\n private readonly _distributorPaymentTypesMenu: React.RefObject;\n\n public constructor(props: IDistributorPaymentTypesListProps) {\n super(props);\n this._distributorPaymentTypesMenu = React.createRef();\n this.state = {\n isFilterExpanded: false,\n selectedPaymentTypes: ''\n };\n }\n\n public render(): JSX.Element {\n const { mainClassName, paymentTypesMenuText, paymentTypesList, defaultOptionText } = this.props;\n const selectedPaymentTypesDesc = defaultOptionText\n ? defaultOptionText\n : paymentTypesList?.find((payment: TenderType) => payment.TenderTypeId === this.state.selectedPaymentTypes)?.Name;\n const role = 'menu';\n return (\n
\n \n {this.state.isFilterExpanded ? (\n
    \n {paymentTypesList?.map((tenderType: TenderType) => {\n return (\n \n \n {tenderType.Name}\n \n \n );\n })}\n
\n ) : null}\n
\n );\n }\n\n /**\n * Method to call when drop down get selected.\n */\n private readonly _renderTenderTypes = () => {\n const isExpandOptionsState = this.state.isFilterExpanded;\n this.setState({\n isFilterExpanded: !isExpandOptionsState\n });\n };\n\n private readonly handleFilterSelection = async (event: React.SyntheticEvent): Promise => {\n event.preventDefault();\n const paymentCode = event.currentTarget.getAttribute('data-value');\n if (paymentCode !== null) {\n this.setState({\n selectedPaymentTypes: paymentCode\n });\n\n this._renderTenderTypes();\n await this.props.onChange(paymentCode);\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 Msdyn365 from '@msdyn365-commerce/core';\nimport {\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant,\n getPayloadObject,\n getTelemetryAttributes\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\nimport { TenderType } from '@msdyn365-commerce/retail-proxy';\nimport { DistributorPaymentOptionList } from './distributor-payment-option-list';\n\n/**\n * Distributor Selector Search Form Props interface.\n */\nexport interface IDistributorSelectorSearchFormProps {\n mainClassName: string;\n shouldDisplayList?: boolean;\n telemetryContent?: ITelemetryContent;\n viewMapText: string;\n viewListText: string;\n paymentFilterMenuHeading: string;\n paymentFilterByHeading: string;\n showLocatorView?: boolean;\n showPaymentTypeFilter?: boolean;\n paymentTypes?: TenderType[];\n filteredPaymentType?: string;\n onPaymentFilterSelected(tenderTypeId: string): void;\n onToggleListMapViewState(): void;\n}\n\n/**\n * Simple search form consisting of search text and a search button.\n */\nexport class DistributorSelectorSearchForm extends React.PureComponent {\n private readonly toggleMapViewAttributes: Msdyn365.IDictionary | undefined;\n\n public constructor(props: IDistributorSelectorSearchFormProps) {\n super(props);\n const payLoad: IPayLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.ToggleMapView);\n this.toggleMapViewAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n }\n\n public render(): JSX.Element {\n const {\n mainClassName,\n shouldDisplayList,\n viewMapText,\n viewListText,\n showLocatorView,\n paymentTypes,\n paymentFilterMenuHeading,\n paymentFilterByHeading,\n showPaymentTypeFilter,\n onToggleListMapViewState\n } = this.props;\n const toggleButtonText = shouldDisplayList ? viewMapText : viewListText;\n const toggleButtonClass = shouldDisplayList ? 'view-map' : 'list-view';\n\n return (\n
\n
\n {showLocatorView && (\n \n {toggleButtonText}\n \n )}\n {showPaymentTypeFilter &&\n this.renderPaymentTypeList(this.props, paymentTypes, paymentFilterMenuHeading, paymentFilterByHeading)}\n
\n
\n );\n }\n\n /**\n * Method called on payment filter change.\n * @returns - Void.\n */\n private readonly _onChangeHandler = () => async (tenderTypeId: string): Promise => {\n this.props.onPaymentFilterSelected(tenderTypeId);\n return Promise.resolve();\n };\n\n private readonly renderPaymentTypeList = (\n props: IDistributorSelectorSearchFormProps,\n paymentTypesOptions: TenderType[] | undefined,\n paymentFilterMenuHeading: string | undefined,\n paymentFilterByHeading: string | undefined\n ): JSX.Element | null => {\n return (\n <>\n
{paymentFilterByHeading}
\n \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\n/// \n\nimport * as React from 'react';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport classname from 'classnames';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n isMobile,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n NodeTag,\n TelemetryConstant,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\nimport { ArrayExtensions, IDistributorInfo } from '@msdyn365-commerce-modules/retail-actions';\nimport { OrgUnit, TenderType } from '@msdyn365-commerce/retail-proxy';\nimport { IDistributorSelectorData } from './distributor-selector.data';\nimport { IDistributorSelectorProps } from './distributor-selector.props.autogenerated';\nimport {\n DistributorSelectorButton,\n DistributorSelectorDoNotShowAgain,\n DistributorSelectorCountMessage,\n DistributorSelectorTermsOfService,\n DistributorSelectorWaiting,\n DistributorEmptyMessage\n} from './components/distributor-selector-small-components';\nimport { DistributorSelectorLines } from './components/distributor-selector-lines';\nimport { DistributorSelectorSearchForm } from './components/distributor-selector-search-form';\n\n/**\n * Distributor State Interface.\n */\nexport interface IDistributorState {\n isSearchInProgress: boolean;\n searchTerm?: string;\n isLocationDisabled?: boolean;\n showDistributorDetails?: boolean;\n showWarningDialog?: boolean;\n warningDialogState?: boolean;\n currentSelectedDistributor?: IDistributorInfo;\n distributorId: number | undefined;\n distributorDetailsFromPopup: boolean;\n filteredPaymentTypeId: string;\n}\n\nexport interface ICurrentDistributor {\n DistributorName?: string;\n DistributorId?: number;\n}\n\n/**\n * Distributor View Props Interface.\n */\nexport interface IDistributorSelectorViewProps extends IDistributorSelectorProps {\n state: IDistributorState;\n\n // Current distributor button props\n currentDistributorContainer?: IModuleProps;\n currentDistributorButton: React.ReactNode;\n\n // Containers:\n moduleProps: IModuleProps;\n bodyContainerProps: INodeProps;\n footerContainerProps: INodeProps;\n headerContainerProps: INodeProps;\n\n // Distributor warning Props\n distributorWarningHeaderProps?: React.ReactNode;\n distributorWarningContentHeadingProps?: React.ReactNode;\n distributorWarningContent?: React.ReactNode;\n distributorWarningDoNotShowAgain?: React.ReactNode;\n distributorWarningContinue?: React.ReactNode;\n distributorWarningCancel?: React.ReactNode;\n distributorWarningButtonWrapper: INodeProps;\n\n // Distributor selector Props\n distributorSelectorHeaderProps?: React.ReactNode;\n // Components\n distributorCountMessage?: React.ReactNode;\n searchForm?: React.ReactNode;\n spinner?: React.ReactNode;\n noDistributorsMessage?: React.ReactNode;\n mapContainerProps?: INodeProps;\n maps?: React.ReactNode;\n isMobileView?: boolean;\n distributorDetailsModal?: INodeProps;\n bodyWrapperProps?: INodeProps;\n distributorsResultContainerProps: INodeProps;\n distributorsResultWrapperProps: INodeProps;\n distributorLinesViewProps?: React.ReactNode;\n terms?: React.ReactNode;\n\n // distributor details modal popup\n showDistributorDetailsPopup: boolean;\n distributorDetailsModalPopup: IModuleProps;\n distributorDetailsModalHeader: INodeProps;\n distributorDetailsHeaderProps: React.ReactNode;\n distributorDetailsModalBody: INodeProps;\n distributorDetailsModalBodyContainer: INodeProps;\n\n distributorDetailsLocation: React.ReactNode;\n distributorDetailsPrimaryContact: React.ReactNode;\n distributorDetailsDeliveryMethods: React.ReactNode;\n distributorDetailsViewAllDetails: React.ReactNode;\n distributorDetailsModalFooter: INodeProps;\n distributorDetailsChangeDistributor: React.ReactNode;\n\n // distributor details slider\n distributorDetailsSliderWrapper: INodeProps;\n distributorDetailsSliderHeaderContainer: INodeProps;\n distributorDetailsSliderFooterContainer: INodeProps;\n distributorDetailsSliderBodyContainer: INodeProps;\n distributorDetailsSliderDistributorName: React.ReactNode;\n distributorDetailsSliderHeaderContent: React.ReactNode;\n distributorDetailsSliderInformationWrapper: INodeProps;\n distributorDetailsSliderCurrentDistributorTitle: React.ReactNode;\n distributorDetailsSliderSelectDistributor: React.ReactNode;\n}\n\n/**\n * ILocationHours Interface.\n */\nexport interface ILocationHours {\n openFrom?: string;\n openTo?: string;\n}\n\n/**\n *\n * DistributorSelector component\n * @extends {React.Component>}\n */\n@observer\nclass DistributorSelector extends React.Component, IDistributorState> {\n private readonly telemetryContent: ITelemetryContent;\n private mainClass = 'ms-distributor-selector';\n private headerClass = 'ms-header__current-distributor';\n private readonly currentDistributorBtnRef: React.RefObject = React.createRef();\n private currentDistributor?: ICurrentDistributor;\n\n public constructor(props: IDistributorSelectorProps) {\n super(props);\n this.state = {\n isSearchInProgress: true,\n searchTerm: '',\n showWarningDialog: false,\n showDistributorDetails: false,\n distributorId: undefined,\n distributorDetailsFromPopup: false,\n filteredPaymentTypeId: ''\n };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.currentDistributor = this.getCurrentDistributor();\n }\n\n public async componentDidMount(): Promise {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n },\n request: { user }\n }\n } = this.props;\n\n if (this.props.data.distributorSelectorStateManager.result) {\n await this._getAndUpdateDistributorList();\n this.checkUserStateAndOpenDialog(user);\n }\n\n reaction(\n () => this.props.data.distributorSelectorStateManager.result,\n async () => {\n await this._getAndUpdateDistributorList();\n this.checkUserStateAndOpenDialog(user);\n }\n );\n\n reaction(\n () => this.props.data.distributorSelectorStateManager.result?.loadMapApi,\n () => {\n this.props.data.distributorSelectorStateManager.result?.loadMapApi({\n key: channel?.BingMapsEnabled ? channel.BingMapsApiKey : '',\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context.actionContext.requestContext.channel?.ChannelCountryRegionISOCode\n });\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: {\n className,\n distributorSelectorHeading,\n distributorWarningDialogHeading,\n distributorWarningContent,\n termsOfServiceLink,\n distributorDetailsToBeShown,\n selectDistributorText,\n doNotShowAgainCheckbox,\n noDistributorFoundText\n },\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n },\n context: {\n request: { user }\n },\n slots: { maps: mapSlot },\n resources\n } = this.props;\n const { showWarningDialog } = this.state;\n const currentDistributorId = this.currentDistributor?.DistributorId;\n const currentDistributorName = this.currentDistributor?.DistributorName;\n const headerText = currentDistributorName ? currentDistributorName : resources.headerCurrentDistributorText;\n\n let distributorInfoList = distributorSelectorStateManager?.distributorList;\n const paymentTypes = this.getUniquePaymentTypes(distributorInfoList);\n\n const hasMapSlot = ArrayExtensions.hasElements(mapSlot);\n const isMobileDevice = isMobile({ variant: VariantType.Viewport, context: this.props.context.request }) === 'xs';\n const selectedDistributorId = distributorSelectorStateManager?.selectedDistributorId;\n\n const distributorDetails = this.state.showDistributorDetails\n ? this.getDistributorDetails(this.state.distributorId)\n : this.getDistributorDetails(currentDistributorId);\n const isCurrentDistributorSelected = this.state.distributorId === currentDistributorId;\n const shouldOpenDistributorSelectorDialog = !!distributorSelectorStateManager?.isDistributorSelectorDialogOpen;\n const shouldOpenDistributorDetailPopup = !!(distributorSelectorStateManager?.isDistributorDetailPopupOpen && distributorDetails);\n const shouldDisplayList = distributorSelectorStateManager?.listMapViewState?.displayList;\n if (this.state.filteredPaymentTypeId && distributorInfoList) {\n distributorInfoList = this.filterDistributorsByPaymentTypes(distributorInfoList, this.state.filteredPaymentTypeId);\n }\n const sortedDistributorList = distributorInfoList ? this._sortDistributor(distributorInfoList, currentDistributorId) : [];\n\n const canShowLocationView =\n (distributorSelectorStateManager?.distributorSelectorContext?.showMapViewLink === undefined ||\n distributorSelectorStateManager.distributorSelectorContext.showMapViewLink) &&\n distributorSelectorStateManager?.isMapModuleLoaded &&\n hasMapSlot;\n\n const showDistributorDetailsOnMap = distributorSelectorStateManager?.showDistributorDetailsOnMap;\n\n // @ts-ignore\n const viewProps: IDistributorSelectorViewProps = {\n ...(this.props as IDistributorSelectorProps),\n state: this.state,\n maps: hasMapSlot ? mapSlot[0] : undefined,\n showDistributorDetailsPopup: shouldOpenDistributorDetailPopup,\n currentDistributorContainer: this.shouldShowDistributors(user)\n ? {\n tag: 'div' as NodeTag,\n moduleProps: this.props,\n className: `${this.headerClass}-container`\n }\n : undefined,\n currentDistributorButton: (\n \n {headerText}\n \n ),\n moduleProps: {\n tag: Modal,\n moduleProps: this.props,\n className: classname(hasMapSlot ? `${this.mainClass} maps` : `${this.mainClass}`, className),\n autoFocus: true,\n fade: true,\n isOpen: shouldOpenDistributorSelectorDialog,\n 'aria-label': showWarningDialog ? distributorWarningDialogHeading : distributorSelectorHeading,\n onClosed: this._closeDistributorSelectorDialog,\n horizontalPosition: 'center',\n verticalPosition: 'center',\n toggle:\n currentDistributorId || !ArrayExtensions.hasElements(distributorInfoList)\n ? this._closeDistributorSelectorDialog\n : undefined\n },\n isMobileView: isMobileDevice,\n headerContainerProps: {\n tag: ModalHeader,\n className: `${this.mainClass}-modal-header`,\n toggle:\n currentDistributorId || !ArrayExtensions.hasElements(distributorInfoList)\n ? this._closeDistributorSelectorDialog\n : undefined\n },\n distributorSelectorHeaderProps: distributorSelectorHeading && (\n \n ),\n distributorWarningHeaderProps: distributorWarningDialogHeading && (\n \n ),\n distributorWarningContent: distributorWarningContent && (\n \n ),\n footerContainerProps: {\n tag: ModalFooter,\n className: classname(`${this.mainClass}__modal-footer`, this.state.showWarningDialog ? 'distributor-warning-footer' : '')\n },\n bodyContainerProps: {\n tag: ModalBody,\n className: classname(`${this.mainClass}__modal-body`, this.state.showWarningDialog ? 'distributor-warning' : '')\n },\n bodyWrapperProps: {\n tag: 'div' as NodeTag,\n className: `${this.mainClass}__body_wrapper`\n },\n distributorsResultContainerProps: {\n tag: 'div' as NodeTag,\n className: classname(`${this.mainClass}__distributor_container`, shouldDisplayList ? 'show' : 'hide')\n },\n distributorsResultWrapperProps: {\n tag: 'div' as NodeTag,\n className: classname(`${this.mainClass}__distributors_wrapper`, !showDistributorDetailsOnMap ? 'hide' : '')\n },\n mapContainerProps: hasMapSlot\n ? {\n tag: 'div' as NodeTag,\n className: classname(`${this.mainClass}__map_container`, !shouldDisplayList ? 'show' : 'hide')\n }\n : undefined,\n distributorCountMessage: (\n \n ),\n searchForm: (\n \n ),\n spinner: ,\n distributorLinesViewProps: ArrayExtensions.hasElements(distributorInfoList) ? (\n \n ) : (\n undefined\n ),\n noDistributorsMessage: ,\n terms: (\n \n ),\n distributorWarningButtonWrapper: {\n tag: 'div' as NodeTag,\n className: `${this.mainClass}__footer-button-wrapper`\n },\n distributorWarningDoNotShowAgain: doNotShowAgainCheckbox && (\n \n ),\n distributorWarningContinue: (\n \n ),\n distributorWarningCancel: (\n \n ),\n ...this.renderDistributorDetailsViewProps(distributorDetails),\n ...this.renderDistributorSliderViewProps(distributorDetails, isCurrentDistributorSelected)\n };\n return this.props.renderView(viewProps);\n }\n\n public toggleListMapViewState = async (): Promise => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n await distributorSelectorStateManager?.toggleListMapViewState();\n };\n\n /**\n * Method to be called on the click on don't show again checkbox.\n */\n public onChangeForDoNotShow = (event: React.ChangeEvent): void => {\n this.setState({ warningDialogState: event.target.checked });\n };\n\n public onSelectDistributor = async (): Promise => {\n if (this.state.distributorId) {\n await this._setCurrentDistributor(this.state.distributorId);\n }\n };\n\n public onChangeDistributorClick = async (): Promise => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n if (distributorSelectorStateManager) {\n // Set selected distributor id\n await distributorSelectorStateManager.setSelectedDistributorId(undefined);\n\n if (distributorSelectorStateManager.isDistributorDetailPopupOpen) {\n // close the detail popup\n await distributorSelectorStateManager.closeDistributorDetailPopup();\n }\n\n if (distributorSelectorStateManager.isDistributorSelectorDialogOpen) {\n this.setState({ distributorId: undefined, showDistributorDetails: false, distributorDetailsFromPopup: false });\n } else {\n // Open the distributor selector modal\n await distributorSelectorStateManager.openDistributorSelectorDialog({\n parentElementRef: this.currentDistributorBtnRef\n });\n }\n }\n };\n\n public onDistributorCloseButtonClick = async () => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n if (distributorSelectorStateManager) {\n await distributorSelectorStateManager.closeDistributorDetailPopup();\n }\n };\n\n /**\n * Method to be called on the click on the continue button.\n */\n public continueButtonClick = async (): Promise => {\n const {\n context: {\n actionContext: {\n requestContext: { cookies }\n }\n },\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n\n const currentDistributor = this.state.currentSelectedDistributor;\n\n if (this.state.warningDialogState) {\n distributorSelectorStateManager?.hideWarningMessage(cookies.isConsentGiven());\n }\n\n await this._closeDistributorSelectorDialog();\n this.redirectToDistributorURL(currentDistributor);\n };\n\n /**\n * Method to be called on click on the cancel button.\n */\n public cancelButtonClick = async (): Promise => {\n await this._closeDistributorSelectorDialog();\n this.setState({ warningDialogState: false, showWarningDialog: false, currentSelectedDistributor: undefined });\n };\n\n public backToSearchClick = async (): Promise => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n this.setState({ showDistributorDetails: false, distributorId: undefined });\n await distributorSelectorStateManager?.setSelectedDistributorId(undefined);\n };\n\n public onViewAllDistributorDetailsFromPopup = async (): Promise => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n\n if (distributorSelectorStateManager) {\n if (!this.currentDistributor?.DistributorId) {\n return;\n }\n\n // close the detail popup\n await distributorSelectorStateManager.closeDistributorDetailPopup();\n\n // Open the distributor selector modal\n await distributorSelectorStateManager.openDistributorSelectorDialog({\n parentElementRef: this.currentDistributorBtnRef\n });\n\n // Set selected distributor id\n await distributorSelectorStateManager.setSelectedDistributorId(this.currentDistributor?.DistributorId);\n\n this.setState({\n distributorId: this.currentDistributor?.DistributorId,\n showDistributorDetails: true,\n distributorDetailsFromPopup: true\n });\n }\n };\n\n public onViewAllDistributorDetails = async (distributorId: number | undefined): Promise => {\n if (!distributorId) {\n return;\n }\n this.setState({ distributorId: distributorId, showDistributorDetails: true });\n };\n\n private getCurrentDistributor = (): ICurrentDistributor | undefined => {\n const {\n context: {\n request: {\n url: { requestUrl },\n user\n }\n }\n } = this.props;\n\n // We show the distributor selector module when the user is signed-in.\n if (user.isAuthenticated) {\n const distributorList = this.props.data.distributorList?.result;\n\n const currentDistributor = distributorList?.find(distributor =>\n distributor.MarketSettings?.localeItems.some(\n locale => requestUrl.href.toLowerCase().indexOf(locale.localeBaseUrl.toLowerCase()) >= 0\n )\n );\n\n if (currentDistributor) {\n return {\n DistributorId: currentDistributor.OrgUnit?.RecordId,\n DistributorName: currentDistributor.OrgUnit?.OrgUnitName\n };\n } else {\n return undefined;\n }\n }\n return undefined;\n };\n\n private getUniquePaymentTypes = (distributors?: IDistributorInfo[]) => {\n const uniquePaymentTypes = new Set();\n distributors?.forEach(distributor => {\n distributor.PaymentTypes?.forEach(paymentType => {\n uniquePaymentTypes.add(paymentType);\n });\n });\n return [...uniquePaymentTypes];\n };\n\n /**\n * The method to be called for filtering store locations based on the user's selected filters.\n * @param distributors - Distributors List.\n * @param filteredPaymentTypeId - Filter selected by the user.\n * @returns -Filtered distributors.\n */\n private readonly filterDistributorsByPaymentTypes = (distributors: IDistributorInfo[], filteredPaymentTypeId: string) => {\n return distributors.filter(distributor => {\n return distributor?.PaymentTypes?.some(paymentType => {\n return paymentType.TenderTypeId === filteredPaymentTypeId;\n });\n });\n };\n\n /**\n * Redirect user to the distributor selector site.\n * @param currentDistributor - Current distributor details\n */\n private redirectToDistributorURL = (currentDistributor: IDistributorInfo | undefined) => {\n const { telemetry } = this.props;\n const marketSettings = currentDistributor?.MarketSettings;\n\n // Check if the current locale is present.\n const currentLocale = marketSettings?.localeItems.find(localeItem => localeItem.locale === this.props.context.request.locale);\n let distributorURL = '';\n if (currentLocale) {\n distributorURL = currentLocale.localeBaseUrl;\n } else {\n // Check if the default locale is set.\n let defaultLocale = marketSettings?.localeItems.find(localeItem => localeItem.isDefaultLocale);\n if (!defaultLocale) {\n defaultLocale = ArrayExtensions.hasElements(marketSettings?.localeItems) ? marketSettings?.localeItems[0] : undefined;\n } else {\n distributorURL = defaultLocale.localeBaseUrl;\n }\n }\n\n if (distributorURL) {\n if (!distributorURL.startsWith('https://')) {\n distributorURL = `https://${distributorURL}`;\n }\n window.location.href = distributorURL;\n } else if (telemetry) {\n telemetry.debug('redirectToDistributorURL: Distributor URL is empty');\n }\n };\n\n /**\n * Handle click on the distributor selector.\n * @returns : Promise void.\n */\n private handleDistributorSelectorClick = async () => {\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n\n if (this.currentDistributor?.DistributorId) {\n if (distributorSelectorStateManager?.isDistributorDetailPopupOpen) {\n distributorSelectorStateManager?.closeDistributorDetailPopup();\n } else {\n await distributorSelectorStateManager?.openDistributorDetailPopup({\n parentElementRef: this.currentDistributorBtnRef\n });\n }\n return;\n }\n };\n\n /**\n * Filter distributors by payment types.\n * @param tenderTypeId -Delivery Code.\n */\n private readonly onFilteredPaymentType = (tenderTypeId: string) => {\n this.setState({ filteredPaymentTypeId: tenderTypeId });\n };\n\n /**\n * Creates the distributor details view props.\n * @param distributorDetails: Distributor details\n * @returns : View props for the distributor details.\n */\n private renderDistributorDetailsViewProps = (distributorDetails: IDistributorInfo | undefined) => {\n const {\n config: { switchDistributorText, distributorDetailsToBeShown },\n resources\n } = this.props;\n const distributorAddress = distributorDetails?.OrgUnit?.OrgUnitAddress?.FullAddress;\n const distributorPhoneNo = distributorDetails?.OrgUnit?.OrgUnitAddress?.Phone;\n const deliveryMethods = distributorDetails?.OrgUnitDeliveryOptions?.DeliveryOptions;\n\n const distributorDetailsViewProps = {\n distributorDetailsModalPopup: {\n tag: 'div',\n moduleProps: this.props,\n className: classname(`${this.mainClass}__details_dialog`)\n },\n distributorDetailsModalHeader: {\n tag: 'div',\n className: `${this.mainClass}__dialog__header`\n },\n distributorDetailsHeaderProps: (\n <>\n {distributorDetails?.OrgUnit?.OrgUnitName || ''}\n \n \n ),\n distributorDetailsModalBody: {\n tag: 'div',\n className: `${this.mainClass}__dialog__body`\n },\n distributorDetailsModalBodyContainer: {\n tag: 'div',\n className: `${this.mainClass}__dialog__container`\n },\n distributorDetailsLocation: (this.state.showDistributorDetails ||\n (distributorDetailsToBeShown && distributorDetailsToBeShown.indexOf('location') > -1)) && (\n
\n {resources.locationHeadingText}\n {distributorAddress && (\n
\n \n {distributorAddress}\n
\n )}\n
\n ),\n distributorDetailsPrimaryContact: (this.state.showDistributorDetails ||\n (distributorDetailsToBeShown && distributorDetailsToBeShown?.indexOf('primaryContact') > -1)) && (\n
\n {resources.primaryContactText}\n {distributorPhoneNo && (\n
\n \n {distributorPhoneNo}\n
\n )}\n
\n ),\n distributorDetailsDeliveryMethods: (this.state.showDistributorDetails ||\n (distributorDetailsToBeShown && distributorDetailsToBeShown.indexOf('deliveryMethod') > -1)) && (\n
\n {resources.deliveryMethodHeadingText}\n {ArrayExtensions.hasElements(deliveryMethods) && (\n
\n <>\n {deliveryMethods?.map(deliveryMethod => {\n return (\n \n {deliveryMethod.Description}\n \n );\n })}\n \n
\n )}\n
\n ),\n distributorDetailsViewAllDetails: (\n \n {resources.viewAllDistributorText}\n \n ),\n distributorDetailsChangeDistributor: (\n \n ),\n distributorDetailsModalFooter: {\n tag: 'div',\n className: `${this.mainClass}__dialog__footer`\n },\n distributorDetailsSliderWrapper: {\n tag: 'div',\n className: classname(\n `${this.mainClass}__details-slider-wrapper`,\n this.state.showDistributorDetails ? 'show' : '',\n this.state.distributorDetailsFromPopup ? 'no-header' : ''\n )\n }\n };\n return distributorDetailsViewProps;\n };\n\n private renderDistributorSliderViewProps = (\n distributorDetails: IDistributorInfo | undefined,\n isCurrentDistributorSelected: boolean\n ) => {\n const {\n resources,\n config: { selectDistributorText }\n } = this.props;\n const payLoad: IPayLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.CurrentDistributor);\n const currentDistributorAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n\n const distributorSliderViewProps = {\n distributorDetailsSliderDistributorName: (\n
{distributorDetails?.OrgUnit?.OrgUnitName}
\n ),\n distributorDetailsSliderHeaderContent: (\n \n {resources.distributorSliderBackToSearch}\n \n ),\n distributorDetailsSliderHeaderContainer: {\n tag: 'div',\n className: `${this.mainClass}__details-slider-heading`\n },\n distributorDetailsSliderBodyContainer: {\n tag: 'div',\n className: `${this.mainClass}__details-slider-body`\n },\n distributorDetailsSliderFooterContainer: {\n tag: 'div',\n className: `${this.mainClass}__details-slider-footer`\n },\n distributorDetailsSliderInformationWrapper: {\n tag: 'div',\n className: `${this.mainClass}__details-slider-info-wrapper`\n },\n distributorDetailsSlidercurrentDistributorTitle: isCurrentDistributorSelected && (\n
\n
{resources.currentDistributorText}
\n
\n ),\n distributorDetailsSliderSelectDistributor: !isCurrentDistributorSelected && (\n \n {\n \n }\n \n )\n };\n return distributorSliderViewProps;\n };\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n private handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n if (this.state.showWarningDialog) {\n this.props.config.distributorWarningDialogHeading = event.target.value;\n } else {\n this.props.config.distributorSelectorHeading = event.target.value;\n }\n };\n\n /**\n * Method to be called on warning text change.\n * @param event -Content Edit Event.\n */\n private handleWarningTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.distributorWarningContent = event.target.value;\n };\n\n /**\n * Method to be called on term of service text change.\n * @param event -Content Edit Event.\n */\n private handleLinkTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.termsOfServiceLink) {\n this.props.config.termsOfServiceLink.linkText = event.target.value;\n }\n };\n\n /**\n * Method to be called on distributor text change.\n * @param event -Content Edit Event.\n */\n private handleSelectDistributorTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n event.preventDefault();\n event.stopPropagation();\n if (this.props.config.selectDistributorText) {\n this.props.config.selectDistributorText = event.target.value;\n }\n };\n\n /**\n * Method to be called on link text change.\n * @param event -Content Edit Event.\n */\n private handleChangeDistributorTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n event.preventDefault();\n event.stopPropagation();\n if (this.props.config.switchDistributorText) {\n this.props.config.switchDistributorText = event.target.value;\n }\n };\n\n private shouldShowDistributors = (user: Msdyn365.IRequestContextUser): boolean => {\n const isOboRequest = Msdyn365.isOboRequest(this.props.context.request);\n const isOBOAccountSelected = isOboRequest && !!this.props.context.request.cookies.getAccountSelectionCookie();\n return isOBOAccountSelected || (!isOboRequest && !!user.isSignedIn);\n };\n\n /**\n * If the user is authenticated but has no current distributor, open the distributor selector dialog.\n * @param user - IRequestContextUser\n */\n private checkUserStateAndOpenDialog = (user: Msdyn365.IRequestContextUser) => {\n if (!this.currentDistributor && this.shouldShowDistributors(user)) {\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager.result;\n distributorSelectorStateManager?.openDistributorSelectorDialog({\n parentElementRef: this.currentDistributorBtnRef\n });\n }\n };\n\n /**\n * Get the distributor details from the distributorId\n * @param distributorId - Distributor Id\n * @returns - Returns the distributor info.\n */\n private getDistributorDetails = (distributorId: number | undefined): IDistributorInfo | undefined => {\n const {\n data: {\n distributorList: { result: distributorList }\n }\n } = this.props;\n\n return distributorList?.find(distributor => distributor.OrgUnit?.RecordId === distributorId);\n };\n\n /**\n * Method to be called updating the distributor list.\n */\n private readonly _getAndUpdateDistributorList = async (): Promise => {\n const {\n data: {\n distributorList: { result: distributorList }\n }\n } = this.props;\n\n this.setState({ isSearchInProgress: true });\n\n if (distributorList) {\n await this._updateDistributorListInStateManager(distributorList);\n }\n\n this.setState({ isSearchInProgress: false });\n };\n\n /**\n * Method to update the distributor state manager.\n * @param distributorList - distributor Info Object.\n * @returns Void promise.\n */\n private readonly _updateDistributorListInStateManager = async (distributorList: IDistributorInfo[]): Promise => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n },\n telemetry\n } = this.props;\n\n if (!distributorSelectorStateManager || !distributorList) {\n return;\n }\n\n const currentDistributorId = this.currentDistributor?.DistributorId;\n const sortedDistributorList = this._sortDistributor(distributorList, currentDistributorId);\n\n // When serializing the distributor selector state manager, functions get stripped.\n if (distributorSelectorStateManager.setDistributorsList) {\n await distributorSelectorStateManager.setDistributorsList(sortedDistributorList).catch((error: Error) => {\n if (telemetry) {\n telemetry.error(error.message);\n telemetry.debug('Unable to Update distributor state');\n }\n });\n }\n };\n\n /**\n * Method will sort all distributor.\n * @param distributors - Distributor List.\n * @param currentDistributorId - Distributor Id.\n * @returns List of distributor.\n */\n private _sortDistributor(distributors: IDistributorInfo[], currentDistributorId: number | undefined): IDistributorInfo[] {\n const isCurrentDistributor = (value: IDistributorInfo) => currentDistributorId && value.OrgUnit?.RecordId === currentDistributorId;\n\n return [...distributors.filter(isCurrentDistributor), ...distributors.filter(distributor => !isCurrentDistributor(distributor))];\n }\n\n /**\n * Method to be called closing the distributor selector dialog.\n * @returns Void promise.\n */\n private readonly _closeDistributorSelectorDialog = async (): Promise => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n if (distributorSelectorStateManager) {\n distributorSelectorStateManager.distributorSelectorContext?.parentElementRef?.current?.focus();\n // Update the distributor map visibility to true.\n distributorSelectorStateManager.updateDistributorMapVisibility(true);\n await distributorSelectorStateManager.setSelectedDistributorId(undefined);\n await distributorSelectorStateManager.closeDistributorSelectorDialog();\n this.setState({\n searchTerm: '',\n showWarningDialog: false,\n currentSelectedDistributor: undefined,\n distributorDetailsFromPopup: false,\n showDistributorDetails: false,\n distributorId: undefined\n });\n }\n };\n\n /**\n * On Selecting distributor.\n * @param distributorId - Distributor Id.\n */\n private readonly _setSelectedDistributor = async (orgUnit: OrgUnit | undefined): Promise => {\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n\n if (!distributorSelectorStateManager || !orgUnit) {\n return;\n }\n\n await distributorSelectorStateManager.setSelectedDistributorId(orgUnit.RecordId);\n };\n\n /**\n * On Selecting Current Distributor.\n * @param distributorId - Distributor Id.\n */\n private readonly _setCurrentDistributor = async (distributorId: number | undefined): Promise => {\n if (!distributorId) {\n return;\n }\n\n const {\n data: {\n distributorSelectorStateManager: { result: distributorSelectorStateManager }\n }\n } = this.props;\n\n if (!distributorSelectorStateManager) {\n return;\n }\n const distributorList = distributorSelectorStateManager?.distributorList;\n const currentDistributor = distributorList?.find(distributor => distributor.OrgUnit?.RecordId === distributorId);\n if (distributorSelectorStateManager.hideDistributorWarning || !this.currentDistributor) {\n this.redirectToDistributorURL(currentDistributor);\n await this._closeDistributorSelectorDialog();\n } else {\n this.setState({ showWarningDialog: true, currentSelectedDistributor: currentDistributor });\n }\n };\n}\n\nexport default DistributorSelector;\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';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport { IDistributorSelectorViewProps } from './distributor-selector';\n\n/**\n * Render the body of the popup.\n * @param props -- Distributor selector view props.\n * @returns -- Returns the html.\n */\nconst renderDistributorSelectorBody: React.FC = props => {\n const {\n bodyContainerProps,\n state,\n spinner,\n distributorLinesViewProps,\n maps,\n bodyWrapperProps,\n distributorsResultContainerProps,\n distributorsResultWrapperProps,\n mapContainerProps,\n distributorCountMessage,\n searchForm,\n noDistributorsMessage\n } = props;\n\n return (\n \n \n {searchForm}\n \n {state.isSearchInProgress ? (\n spinner\n ) : (\n \n {distributorLinesViewProps ? (\n <>\n {distributorCountMessage}\n {distributorLinesViewProps}\n \n ) : (\n <>{noDistributorsMessage}\n )}\n \n )}\n \n {mapContainerProps ? (\n \n {maps}\n {distributorLinesViewProps}\n \n ) : (\n undefined\n )}\n \n \n );\n};\n\nconst renderDistributorDetails: React.FC = props => {\n const {\n distributorDetailsSliderWrapper,\n distributorDetailsSliderHeaderContainer,\n distributorDetailsSliderHeaderContent,\n distributorDetailsSliderBodyContainer,\n distributorDetailsSliderCurrentDistributorTitle,\n distributorDetailsSliderFooterContainer,\n distributorDetailsSliderDistributorName,\n distributorDetailsSliderInformationWrapper,\n distributorDetailsLocation,\n distributorDetailsPrimaryContact,\n distributorDetailsSliderSelectDistributor,\n terms,\n distributorDetailsChangeDistributor,\n state,\n distributorDetailsDeliveryMethods\n } = props;\n\n return (\n \n {!state.distributorDetailsFromPopup ? (\n {distributorDetailsSliderHeaderContent}\n ) : null}\n \n {distributorDetailsSliderCurrentDistributorTitle}\n {distributorDetailsSliderDistributorName}\n \n {distributorDetailsLocation}\n {distributorDetailsPrimaryContact}\n {distributorDetailsDeliveryMethods}\n \n {distributorDetailsSliderSelectDistributor}\n {state.distributorDetailsFromPopup ? distributorDetailsChangeDistributor : null}\n \n {terms}\n \n );\n};\n\nconst renderDistributorWarningBody: React.FC = props => {\n const { bodyContainerProps, distributorWarningContent } = props;\n\n return {distributorWarningContent};\n};\n\nconst renderDistributorSelectorModal: React.FC = props => {\n const { footerContainerProps, headerContainerProps, distributorSelectorHeaderProps, moduleProps, terms } = props;\n return (\n \n {renderDistributorDetails(props)}\n {distributorSelectorHeaderProps}\n {renderDistributorSelectorBody(props)}\n {terms}\n \n );\n};\n\nconst renderDistributorDetailsPopup = (props: IDistributorSelectorViewProps): JSX.Element | null => {\n const {\n distributorDetailsModalPopup,\n distributorDetailsModalHeader,\n distributorDetailsHeaderProps,\n distributorDetailsModalBody,\n distributorDetailsModalBodyContainer,\n distributorDetailsLocation,\n distributorDetailsPrimaryContact,\n distributorDetailsViewAllDetails,\n distributorDetailsChangeDistributor,\n distributorDetailsModalFooter,\n showDistributorDetailsPopup,\n distributorDetailsDeliveryMethods\n } = props;\n if (showDistributorDetailsPopup) {\n return (\n \n {distributorDetailsHeaderProps}\n \n \n {distributorDetailsLocation}\n {distributorDetailsPrimaryContact}\n {distributorDetailsDeliveryMethods}\n \n {distributorDetailsViewAllDetails}\n \n {distributorDetailsChangeDistributor}\n \n );\n }\n return null;\n};\n\nconst renderWarningDialog = (props: IDistributorSelectorViewProps): JSX.Element | undefined => {\n const {\n footerContainerProps,\n headerContainerProps,\n distributorWarningHeaderProps,\n moduleProps,\n distributorWarningButtonWrapper,\n distributorWarningDoNotShowAgain,\n distributorWarningContinue,\n distributorWarningCancel\n } = props;\n return (\n \n {distributorWarningHeaderProps}\n {renderDistributorWarningBody(props)}\n \n {distributorWarningDoNotShowAgain}\n \n {distributorWarningCancel} {distributorWarningContinue}\n \n \n \n );\n};\n\n/**\n * Distributor selector view props.\n * @param props - Distributor selector view props.\n * @returns - HTML.\n */\nconst DistributorSelectorView: React.FC = props => {\n const { currentDistributorContainer, currentDistributorButton, state } = props;\n\n return currentDistributorContainer ? (\n \n {currentDistributorButton}\n {renderDistributorDetailsPopup(props)}\n {state.showWarningDialog ? renderWarningDialog(props) : renderDistributorSelectorModal(props)}\n \n ) : null;\n};\n\nexport default DistributorSelectorView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ExtensibleEnumeration } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { IOrderLookupResources, IOrderLookupSearchAdditionalFieldsData } from '../order-lookup.props.autogenerated';\n\n/**\n * Render label.\n * @param className - Classname for label.\n * @param value - Text for label.\n * @returns -The JSX Element.\n */\nexport const labelGroup = (className: string, value: string): JSX.Element => {\n return
{value}
;\n};\n\n/**\n * Error label.\n * @param responseErrorMessage - Error message for label.\n * @param errorMessageClassName - Error message for class name.\n * @returns - Error ReactNode.\n */\nexport const renderErrorLabel = (responseErrorMessage: string, errorMessageClassName: string): React.ReactNode => {\n return responseErrorMessage &&
{responseErrorMessage}
;\n};\n\n/**\n * Registered user message.\n * @param resources - Resource values.\n * @param signInUrl - Signin url.\n * @param signInLinkClassName - Signin link classname.\n * @param registeredUserClassName - Registered user message classname.\n * @returns - ReactNode.\n */\nexport const renderRegisteredUserMessage = (\n resources: IOrderLookupResources,\n signInUrl: string,\n signInLinkClassName: string,\n registeredUserClassName: string\n): React.ReactNode => {\n const { orderLookupRegisteredUserText, orderLookupViewAccountText, orderLookupSignInLinkText } = resources;\n const message: string = orderLookupRegisteredUserText;\n const infoMessage: string = orderLookupViewAccountText;\n const signInText: string = orderLookupSignInLinkText;\n return (\n
\n {message}\n \n {signInText}\n \n {infoMessage}\n
\n );\n};\n\n/**\n * EmailValid submit.\n * @param email - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isEmailValid = (email: string): boolean => {\n return EmailRegex.defaultRegex.test(email);\n};\n\n/**\n * Additional field validation for on submit.\n * @param name - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isAdditionalFieldValid = (name: string): boolean => {\n const regEx = new RegExp('^(?!\\\\s)[A-Za-z0-9\\\\s]+$', 'u');\n return regEx.test(name);\n};\n\n/**\n * Validate order lookup field against extensible enum.\n * @param orderStatusLookUpParameter - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupField = (\n orderStatusLookUpParameter: string,\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidField: boolean = false;\n for (const item of orderLookupExtensibleEnum) {\n if (item.Name.toLocaleLowerCase() === orderStatusLookUpParameter.toLocaleLowerCase()) {\n isValidField = true;\n return isValidField;\n }\n }\n return isValidField;\n};\n\n/**\n * Validate order lookup additional fields with proxy values.\n * @param value - Value to be validated.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateAdditionalFieldWithProxy = (value: string, orderLookupExtensibleEnum: ExtensibleEnumeration[]): boolean => {\n return !orderLookupExtensibleEnum.some(item => item.Name.toLocaleLowerCase() === value.toLocaleLowerCase());\n};\n\n/**\n * Validate order lookup additional fields against extensible enum.\n * @param orderStatusLookUpAdditionalParameters - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupAdditionalField = (\n orderStatusLookUpAdditionalParameters: IOrderLookupSearchAdditionalFieldsData[],\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidAdditionalField: boolean = false;\n if (ArrayExtensions.hasElements(orderStatusLookUpAdditionalParameters)) {\n orderStatusLookUpAdditionalParameters.map(item => {\n const fieldKey: string = item.fieldKey ?? '';\n if (!isValidAdditionalField) {\n isValidAdditionalField = validateAdditionalFieldWithProxy(fieldKey, orderLookupExtensibleEnum);\n }\n return isValidAdditionalField;\n });\n } else {\n isValidAdditionalField = false;\n }\n return isValidAdditionalField;\n};\n\n/**\n * Render validation message if field does not matches with extensible enum.\n * @param orderLookupFieldValidationErrorMessage - Order lookup validation message.\n * @returns - ReactNode.\n */\nexport const renderFieldErrors = (orderLookupFieldValidationErrorMessage: string): React.ReactNode => {\n return
{orderLookupFieldValidationErrorMessage}
;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Additional input field props.\n */\nexport interface IOrderLookupAdditionalFieldInfoInput {\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n additionalFieldLabel: string;\n additionalFieldLabelClassName: string;\n isValidAdditionalFieldName: boolean;\n additionalFieldValidationMessage: string;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup additional field props.\n */\nexport interface IOrderLookupAdditionalFieldInfo {\n additionalFieldLabel: React.ReactNode;\n additionalFieldInput: React.ReactNode;\n additionalFieldError: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupAdditionalFieldInput component.\n */\n@observer\nexport default class RenderOrderLookupAdditionalFieldInput extends React.Component {\n public constructor(props: IOrderLookupAdditionalFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupAdditionalFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupAdditionalFields().additionalFieldLabel}\n {this._getOrderLookupAdditionalFields().additionalFieldError}\n {this._getOrderLookupAdditionalFields().additionalFieldInput}\n
\n );\n }\n\n /**\n * Function to create the order lookup additional fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupAdditionalFields(): IOrderLookupAdditionalFieldInfo {\n return {\n additionalFieldLabel: labelGroup(this.props.additionalFieldLabelClassName, this.props.additionalFieldLabel),\n additionalFieldInput: (\n
\n \n
\n ),\n additionalFieldError: (\n
\n {!this.props.isValidAdditionalFieldName ? this.props.additionalFieldValidationMessage : ''}\n
\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 { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Input field props.\n */\nexport interface IOrderLookupFieldInfoInput {\n inputReference?: React.RefObject;\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n orderLookupLabel: string;\n orderLookupLabelClassName: string;\n fieldErrorClassName: string;\n isInputTypeError: boolean;\n isValidInputField: boolean;\n renderAlert(className: string): JSX.Element;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup field props.\n */\nexport interface IOrderLookupFieldInfo {\n label: React.ReactNode;\n input: React.ReactNode;\n error: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupInputs component.\n */\n@observer\nexport default class RenderOrderLookupFormFields extends React.Component {\n public constructor(props: IOrderLookupFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupFields().label}\n {this._getOrderLookupFields().error}\n {this._getOrderLookupFields().input}\n
\n );\n }\n\n /**\n * Function to create the order lookup fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupFields(): IOrderLookupFieldInfo {\n return {\n label: labelGroup(this.props.orderLookupLabelClassName, this.props.orderLookupLabel),\n input: (\n
\n \n
\n ),\n error: (\n
\n {this.props.isInputTypeError ? this.props.renderAlert(this.props.name) : ''}\n {this.props.isValidInputField ? this.props.renderAlert(this.props.name) : ''}\n
\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 Msdyn365 from '@msdyn365-commerce/core';\nimport { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { ExtensibleEnumeration, StoreOperationsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport RenderOrderLookupAdditionalFieldInput from './components/order-lookup-additional-fields';\nimport RenderOrderLookupFormFields from './components/order-lookup-fields';\nimport {\n IOrderLookupProps,\n IOrderLookupSearchAdditionalFieldsData,\n orderStatusLookUpParametersType as orderStatusLookUpParametersTypes\n} from './order-lookup.props.autogenerated';\nimport {\n isAdditionalFieldValid,\n isEmailValid,\n renderErrorLabel,\n renderFieldErrors,\n renderRegisteredUserMessage,\n validateOrderLookupAdditionalField,\n validateOrderLookupField\n} from './utilities/order-lookup-utility';\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupViewProps extends IOrderLookupProps<{}> {\n additionalProperties: JSX.Element[] | undefined;\n orderLookup: IModuleProps;\n orderLookupContainer: INodeProps;\n orderLookupAdditionalFieldContainer: INodeProps;\n paragraph?: React.ReactNode;\n heading?: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n orderLookupForm?: INodeProps;\n renderOrderLookupInputField: JSX.Element | undefined;\n orderNumberInput?: JSX.Element | undefined;\n errorMessage?: React.ReactNode;\n fieldErrorMessage?: React.ReactNode;\n registeredUserMessage?: React.ReactNode;\n onChange?(event: React.ChangeEvent): void;\n submit?(): void;\n}\n\n/**\n * OrderLookupSearchValues -- supported values.\n */\nenum OrderLookupSearchValues {\n email = 'email',\n ordernumber = 'ordernumber'\n}\n\n/**\n * To render and handle state for additional order lookup fields.\n */\nexport interface IOrderLookupAdditionalFields {\n labelName: string;\n isValidFieldName: boolean;\n fieldValue: string;\n ariaLabel: string;\n additionalfieldErrorMessage: string;\n}\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupFormState {\n orderNumber: string;\n email: string;\n isOrdNumberError: boolean;\n isEmailError: boolean;\n isValidEmailError: boolean;\n isReqError: boolean;\n isDisabled: boolean;\n isValidLookupField: boolean;\n isValidAdditionalLookupField: boolean;\n responseErrorMessage: string;\n additionalProperties: IOrderLookupAdditionalFields[];\n}\n\n/**\n *\n * OrderLookup component.\n * @extends {React.PureComponent>}\n */\nclass OrderLookup extends React.PureComponent, IOrderLookupFormState> {\n public orderNumberInputRef: React.RefObject;\n\n public emailInputRef: React.RefObject;\n\n public isEmailValue: boolean = false;\n\n private requiredErrorMessage: string | undefined;\n\n private emailValidationErrorMessage: string | undefined;\n\n private isOrderNumberValue: boolean = false;\n\n private orderLookupExtensibleEnum: ExtensibleEnumeration[] = [];\n\n public constructor(props: IOrderLookupProps<{}>) {\n super(props);\n this.orderNumberInputRef = React.createRef();\n this.emailInputRef = React.createRef();\n const { config } = this.props;\n const { orderLookupSearchAdditionalFields } = config;\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n\n if (orderLookupSearchAdditionalFields) {\n for (const item of orderLookupSearchAdditionalFields) {\n additionalPropertyStates.push({\n labelName: item.labelName ?? '',\n isValidFieldName: true,\n fieldValue: '',\n ariaLabel: item.ariaLabel ?? '',\n additionalfieldErrorMessage: item.validationMessage ?? ''\n });\n }\n }\n\n this.state = {\n orderNumber: '',\n email: '',\n isOrdNumberError: false,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false,\n isDisabled: true,\n isValidLookupField: true,\n isValidAdditionalLookupField: false,\n responseErrorMessage: '',\n additionalProperties: additionalPropertyStates\n };\n }\n\n public render(): JSX.Element | null {\n const {\n config: { paragraph, heading },\n resources,\n context\n } = this.props;\n\n const {\n orderLookupDefaultHeadingText,\n orderLookupButtonLabel,\n orderLookupFormAriaLabel,\n orderLookupOrderNumberLabel,\n orderLookupOrderNumberAriaLabel,\n orderLookupSubmitAriaLabel,\n orderLookupFieldValidationErrorMessage\n } = resources;\n\n const { responseErrorMessage, isDisabled, orderNumber, isOrdNumberError } = this.state;\n\n const headingText = StringExtensions.isNullOrEmpty(heading?.text) ? orderLookupDefaultHeadingText : heading?.text;\n const headingTag = heading?.tag ?? 'h1';\n\n const moduleClassName = 'ms-order-lookup';\n const orderLookupContainerClassName = `${moduleClassName}__details`;\n const orderLookupHeadingClassName = `${orderLookupContainerClassName}__heading`;\n const orderLookupFormClassName = `${orderLookupContainerClassName}__form`;\n const orderLookupAdditionalFiledContainerClassName = `${orderLookupFormClassName}__additional-fields-container`;\n const orderLookupFormFieldsClassName = `${orderLookupFormClassName}__fields`;\n const orderNumberLabelClassName = `${orderLookupFormFieldsClassName}__order-number-label`;\n const orderNumberInputErrorClassName = `${orderLookupFormFieldsClassName}__order-number-input-error`;\n const submitButtonClassName = `${orderLookupFormClassName}__submit`;\n const labelErrorMessageClassName = `${moduleClassName}__error-message`;\n const registeredUserClassName = `${moduleClassName}__registered-user`;\n const signinLinkClassName = `${registeredUserClassName}__sign-in-link msc-btn`;\n\n const orderLookupHeading = (\n \n );\n\n const viewProps: IOrderLookupViewProps = {\n ...this.props,\n orderLookup: {\n moduleProps: this.props,\n className: moduleClassName\n },\n\n orderLookupContainer: {\n className: orderLookupContainerClassName\n },\n orderLookupAdditionalFieldContainer: {\n className: orderLookupAdditionalFiledContainerClassName\n },\n paragraph: paragraph && this._createParagraph(paragraph),\n heading: orderLookupHeading,\n\n renderOrderLookupInputField: this._renderOrderLookupInput(),\n orderLookupForm: {\n className: orderLookupFormClassName,\n tag: 'form',\n 'aria-label': orderLookupFormAriaLabel,\n name: 'orderLookupForm',\n role: 'form',\n autoComplete: 'off',\n onSubmit: this.handleSubmit\n },\n orderNumberInput: (\n \n ),\n\n submitButton: {\n className: submitButtonClassName,\n tag: Button,\n 'aria-label': orderLookupSubmitAriaLabel,\n type: 'submit',\n role: 'button',\n title: orderLookupButtonLabel,\n onClick: this.handleSubmit,\n disabled: isDisabled\n },\n\n submitButtonLabelText: orderLookupButtonLabel,\n errorMessage: renderErrorLabel(responseErrorMessage, labelErrorMessageClassName),\n fieldErrorMessage:\n (!this.state.isValidLookupField || this.state.isValidAdditionalLookupField) &&\n renderFieldErrors(orderLookupFieldValidationErrorMessage),\n registeredUserMessage: renderRegisteredUserMessage(\n resources,\n context.request.user.signInUrl ?? '',\n signinLinkClassName,\n registeredUserClassName\n ),\n onChange: this.onChange,\n submit: this.handleSubmit,\n additionalProperties: this._renderAdditionalFields()\n };\n return this.props.renderView(viewProps);\n }\n\n public async componentDidMount(): Promise {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { orderStatusLookUpParametersType, orderLookupSearchAdditionalFields } = config;\n let isOrderLookupAdditionalFieldValid: boolean = false;\n let isOrderLookupFieldValid: boolean = false;\n\n const getExtensibleEnumerations = await StoreOperationsDataActions.getExtensibleEnumerationsAsync({ callerContext: actionContext });\n this.orderLookupExtensibleEnum =\n getExtensibleEnumerations.find(item => item.TypeName === 'OrderLookupAdditionalCriteriaType')?.ExtensibleEnumerations ?? [];\n\n const orderLookupParameter: string = orderStatusLookUpParametersType ?? '';\n const orderLookupAdditionalParameter: IOrderLookupSearchAdditionalFieldsData[] = orderLookupSearchAdditionalFields ?? [];\n\n isOrderLookupFieldValid = validateOrderLookupField(orderLookupParameter, this.orderLookupExtensibleEnum);\n isOrderLookupAdditionalFieldValid = validateOrderLookupAdditionalField(\n orderLookupAdditionalParameter,\n this.orderLookupExtensibleEnum\n );\n this.setLookupFieldState(isOrderLookupFieldValid, isOrderLookupAdditionalFieldValid);\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 const { config } = this.props;\n config.paragraph = event.target.value;\n };\n\n /**\n * Sets isValidLookupField after validating with extensible emun.\n * @param isValidField - Sets the property.\n * @param isValidAdditionalField - Sets the additional field property.\n */\n public setLookupFieldState(isValidField: boolean, isValidAdditionalField: boolean): void {\n this.setState({ isValidLookupField: isValidField, isValidAdditionalLookupField: isValidAdditionalField });\n }\n\n /**\n * HandleSubmit submit.\n */\n public readonly handleSubmit = (): void => {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { additionalProperties, orderNumber, email } = this.state;\n const orderLookupValue = email;\n const { orderStatusLookUpParametersType } = config;\n const orderLookupName = orderStatusLookUpParametersType !== undefined ? orderStatusLookUpParametersType : '';\n const isValid: boolean = this._validateOrderLookupForm();\n if (isValid) {\n const actionContextValue: IActionContext = actionContext;\n const orderDetailsPath = Msdyn365.getUrlSync('orderDetails', actionContextValue) ?? '';\n if (orderDetailsPath) {\n const baseUrl = new URL(window.location.origin);\n const redirectUrl = new URL(orderDetailsPath, baseUrl);\n const searchParameters = redirectUrl.searchParams;\n\n searchParameters.set('confirmationId', orderNumber);\n searchParameters.set('propertyName', orderLookupName);\n searchParameters.set('propertyValue', orderLookupValue);\n\n if (ArrayExtensions.hasElements(additionalProperties)) {\n additionalProperties.map((item, index) => {\n const fieldName = !StringExtensions.isNullOrWhitespace(item.ariaLabel)\n ? item.ariaLabel.replace(' ', '').toLocaleLowerCase()\n : '';\n const fieldValue = !StringExtensions.isNullOrWhitespace(item.fieldValue) ? item.fieldValue : '';\n searchParameters.set(`field${index + 1}Name`, fieldName);\n searchParameters.set(`field${index + 1}Value`, fieldValue);\n return item;\n });\n }\n\n window.location.assign(redirectUrl.toString());\n }\n }\n };\n\n /**\n * OnChange event.\n * @param event - Value of input field.\n */\n public readonly onChange = (event: React.ChangeEvent): void => {\n const { additionalProperties } = this.state;\n const { config } = this.props;\n const { orderStatusLookUpParametersType } = config;\n const name = event.target.name || '';\n const value = event.target.value || '';\n this.isOrderNumberValue = !StringExtensions.isNullOrWhitespace(this.orderNumberInputRef.current?.value);\n this.isEmailValue = !StringExtensions.isNullOrWhitespace(this.emailInputRef.current?.value);\n\n if (orderStatusLookUpParametersType?.toLocaleLowerCase() === 'none') {\n this.isEmailValue = true;\n }\n\n this.setState({ responseErrorMessage: '' });\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isAdditionalFieldError: boolean = true as boolean;\n let isKeyExistInAdditionalFieldArray: boolean = false as boolean;\n\n for (const item of additionalProperties) {\n const fieldName: string = item.ariaLabel.replace(' ', '');\n if (fieldName.toLocaleLowerCase() === name.toLocaleLowerCase()) {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: true,\n fieldValue: value,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n } else {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: item.isValidFieldName,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n if (fieldName.toLocaleLowerCase() === orderStatusLookUpParametersType?.toLocaleLowerCase()) {\n isKeyExistInAdditionalFieldArray = true;\n }\n }\n\n for (const items of additionalPropertyStates) {\n if (StringExtensions.isNullOrWhitespace(items.fieldValue)) {\n isAdditionalFieldError = false;\n }\n }\n\n this.setState({ additionalProperties: additionalPropertyStates });\n\n if (!isKeyExistInAdditionalFieldArray) {\n switch (name.toLocaleLowerCase()) {\n case OrderLookupSearchValues.ordernumber: {\n this.setState({\n orderNumber: value,\n isOrdNumberError: false,\n isReqError: false\n });\n break;\n }\n case OrderLookupSearchValues.email: {\n this.setState({\n email: value,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false\n });\n break;\n }\n default: {\n this.setState({ isReqError: false });\n }\n }\n }\n\n if (\n this.isOrderNumberValue &&\n this.isEmailValue &&\n isAdditionalFieldError &&\n this.state.isValidLookupField &&\n !this.state.isValidAdditionalLookupField\n ) {\n this.setState({ isDisabled: false });\n } else {\n this.setState({ isDisabled: true });\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n const { context } = this.props;\n const { request } = context;\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n /**\n * Render order lookup validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupEmailValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isEmailError, email, isValidEmailError, isReqError } = this.state;\n if (isEmailError) {\n this.requiredErrorMessage = orderLookupRequiredTextErrorMessage;\n }\n\n if (!StringExtensions.isNullOrEmpty(email) && isValidEmailError) {\n this.emailValidationErrorMessage = orderLookupEmailValidationErrorMessage;\n }\n\n const isRequireError = isReqError;\n const isEmailValidError = isValidEmailError;\n const isValidEmailInput = className.toLocaleLowerCase() === OrderLookupSearchValues.email;\n return (\n <>\n {isRequireError && (\n \n {this.requiredErrorMessage}\n \n )}\n {isEmailValidError && isValidEmailInput && (\n \n {this.emailValidationErrorMessage}\n \n )}\n \n );\n };\n\n /**\n * Render order number validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderOrderNumberAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupOrderNumberValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isOrdNumberError, isReqError } = this.state;\n return (\n <>\n {isReqError && (\n \n {orderLookupRequiredTextErrorMessage}\n \n )}\n {isOrdNumberError && (\n \n {orderLookupOrderNumberValidationErrorMessage}\n \n )}\n \n );\n };\n\n private _renderAdditionalFields(): JSX.Element[] | undefined {\n const { additionalProperties } = this.state;\n const additionalFieldsInput: JSX.Element[] = [];\n for (const item of additionalProperties) {\n const name: string = item.ariaLabel.replace(' ', '');\n additionalFieldsInput.push(\n \n );\n }\n return additionalFieldsInput;\n }\n\n /**\n * Render Input field for order lookup.\n * @returns - IOrderLookupFieldInfo.\n */\n private readonly _renderOrderLookupInput = (): JSX.Element | undefined => {\n const { email, isEmailError, isValidEmailError } = this.state;\n const {\n config: { orderStatusLookUpParametersType },\n resources: { orderLookupEmailLabel, orderLookupEmailAriaLabel }\n } = this.props;\n\n switch (orderStatusLookUpParametersType) {\n case orderStatusLookUpParametersTypes.none:\n return undefined;\n case orderStatusLookUpParametersTypes.email:\n default:\n return (\n \n );\n }\n };\n\n /**\n * _validation for additional fields.\n * @returns - Returns IOrderLookupAdditionalFields[].\n */\n private readonly _additionalFieldValidation = (): IOrderLookupAdditionalFields[] => {\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n for (const item of this.state.additionalProperties) {\n const isFieldValid: boolean = !StringExtensions.isNullOrWhitespace(item.fieldValue) && isAdditionalFieldValid(item.fieldValue);\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: isFieldValid,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n return additionalPropertyStates;\n };\n\n /**\n * _validateOrderLookupForm submit.\n * @returns - Returns boolean.\n */\n private readonly _validateOrderLookupForm = (): boolean => {\n const { config } = this.props;\n const { orderNumber, email } = this.state;\n const { orderStatusLookUpParametersType } = config;\n let additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isValid = false;\n let isDisable = false;\n\n if (ArrayExtensions.hasElements(this.state.additionalProperties)) {\n additionalPropertyStates = this._additionalFieldValidation();\n for (const item of additionalPropertyStates) {\n if (!item.isValidFieldName) {\n isDisable = true;\n }\n }\n\n if (isDisable) {\n this.setState({\n additionalProperties: additionalPropertyStates,\n isDisabled: true\n });\n }\n }\n\n if (StringExtensions.isNullOrWhitespace(orderNumber)) {\n this.setState({\n isOrdNumberError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderNumber.trim() !== orderNumber) {\n this.setState({\n isOrdNumberError: true,\n isReqError: false,\n isDisabled: true\n });\n } else if (\n orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email &&\n StringExtensions.isNullOrWhitespace(email)\n ) {\n this.setState({\n isEmailError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email && !isEmailValid(email)) {\n this.setState({\n isValidEmailError: true,\n isDisabled: true\n });\n } else if (isDisable || !this.state.isValidLookupField || this.state.isValidAdditionalLookupField) {\n this.setState({\n isDisabled: true\n });\n } else {\n this.setState({\n isDisabled: false\n });\n isValid = true;\n }\n return isValid;\n };\n}\n\nexport default OrderLookup;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderLookupViewProps } from './order-lookup';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns JSX Element.\n */\nexport const OrderLookupViewComponent: React.FC = props => {\n const {\n orderLookup,\n orderLookupContainer,\n orderLookupAdditionalFieldContainer,\n heading,\n paragraph,\n orderLookupForm,\n renderOrderLookupInputField,\n orderNumberInput,\n errorMessage,\n submitButton,\n additionalProperties,\n registeredUserMessage,\n fieldErrorMessage\n } = props;\n return (\n \n \n {heading}\n {paragraph}\n \n {orderNumberInput}\n {renderOrderLookupInputField}\n {ArrayExtensions.hasElements(additionalProperties) && (\n \n {additionalProperties.map((item: JSX.Element) => (\n {item}\n ))}\n \n )}\n {fieldErrorMessage}\n \n {props.submitButtonLabelText}\n \n {errorMessage}\n \n {registeredUserMessage}\n \n \n );\n};\n\nexport default OrderLookupViewComponent;\n"],"names":["NotificationType","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","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","imageProps","gridSettings","imageSettings","contentBlockLinks","LinksComponent","Object","assign","indexOf","modifyh1","substring","updatedh1","replace","includes","modifyh2","updatedh2","modifyh3","updatedh3","modifyh4","updatedh4","modifyh5","updatedh5","modifyh6","updatedh6","contentBlockText","contentBlockImage","key","error","contentBlockviewProps","_objectSpread","title","moduleClass","contentBlockContainer","moduleProps","classnames","imageContainer","detailsContainer","contentBlockAnchorTag","role","imageLink","_getImageLink","renderView","region","imageAndLinks","Module","Node","href","Notification","_markNotificationDisplayed","data","notification","result","displayed","forceUpdate","_renderErrorBlock","message","_errorType","alertcolorclassName","_getClassName","messageTextClassName","Alert","color","errorType","classtype","info","success","validation","warning","none","moduleData","notificationMessageObject","onAnimationEnd","messagetype","shouldComponentUpdate","nextProps","Boolean","status","FooterCategory","slots","content","viewprops","categories","FooterList","FooterListItem","FooterCategoryView","map","category","_ref","headingTag","HTag","Tag","FooterItem","super","footerItemClassName","viewProps","_createHeading","_createImageMarkup","_createText","_createLinkText","HeadingContainer","ItemContainer","Link","undefined","Heading","item","ariaHiddenAttr","src","defaultImageSettings","viewports","xs","q","w","h","lg","lazyload","Image","loadFailureBehavior","FooterItemView","_renderElement","_renderForm","form","FormWrapper","submitBtn","input","cancelBtn","_renderKeywordSuggestions","KeywordSuggest","UlKeyword","keywordSuggestions","_renderProductSuggestions","ProductSuggest","UlProduct","productSuggestions","items","LiProduct","id","AProduct","thumbnail","price","_renderCategorySuggestions","CategorySuggest","UlCategory","categorySuggestions","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","searchText","AutoSuggest","autosuggestCategory","autosuggestKeyword","autosuggestProduct","SearchForm","label","CheckInConfirmationComponent","confirmationText","shouldShowQrCode","channelReferenceIdLabel","channelReferenceId","QRCode","size","CheckInErrorComponent","errorMessage","CheckInForPickup","checkInForOrderPickup","async","channelId","Number","parseInt","query","packingSlipId","additionalInformationToSubmit","additionalInformationList","additionalInformationKeyValuePair","_additionalInformatio","formKey","resourceId","extensionPropertyList","ObjectExtensions","isNullOrUndefined","additionalInformation","Key","Value","StringValue","SalesOrdersDataActions","callerContext","actionContext","queryResultSettings","setState","headerErrorMessage","resources","genericErrorMessage","isCheckedIn","Promise","resolve","_onInit","_this$props$context$r","_this$props$context$r2","_this$props$context$r3","_this$props$context$r4","isNaN","params","isEditor","isPreview","requiredParameterMissingErrorMessage","additionalInformationKeys","ArrayExtensions","hasElements","state","_this$props$context$r5","isHeaderError","headerError","confirmationComponent","defaultConfirmationText","confirmationIdLabel","additionalInformationValues","viewState","nextState","additionalInformationHeading","_props$config$additio","FormBuilder","additionalInformationDefaultHeading","submitButtonText","additionalInformationSubmitButtonText","keys","requiredValueMissingErrorMessage","onSubmit","DistributorSelectorCountMessage","distributors","distributorCountMessage","toString","DistributorSelectorTermsOfService","_ref2","DistributorSelectorWaiting","DistributorSelectorDoNotShowAgain","_ref3","onChange","doNotShowAgainMessage","type","DistributorSelectorButton","_ref4","DistributorEmptyMessage","_ref5","emptyLocationsText","onSetCurrentDistributorClickHandler","_props$distributor$Or","handlers","onSetAsCurrentDistributor","distributor","OrgUnit","RecordId","onViewAllDistributorDetailsClickHandler","_props$distributor$Or2","onViewAllDistributorDetails","DistributorSelectorLineItemComponent","_distributor$OrgUnit","_distributor$OrgUnit2","_distributor$OrgUnit3","_distributor$OrgUnit4","_distributor$OrgUnitD","currentDistributorId","shouldShowIndex","selectDistributorText","distributorDetailsToBeShown","mainClassName","distributorName","OrgUnitName","isCurrentDistributor","TelemetryConstant","CurrentDistributor","currentDistributorAttributes","distributorAddress","OrgUnitAddress","FullAddress","distributorPhoneNo","Phone","deliveryMethods","OrgUnitDeliveryOptions","DeliveryOptions","currentDistributorText","locationHeadingText","primaryContactText","deliveryMethodHeadingText","deliveryMethod","Description","viewAllDistributorText","DistributorSelectorLines","onDistributorSelected","orgUnit","_scrollIntoView","_selectedDistributorD","selectedDistributorDiv","selectedDistributorRef","current","parent","shouldDisplayList","parentElement","scrollTop","offsetTop","clientHeight","scrollLeft","offsetLeft","distributorCounter","componentDidMount","reaction","setTimeout","componentDidUpdate","previousProps","selectedDistributorId","_renderDistributor","selected","ref","__decorate","observable","DistributorPaymentOptionList","_renderTenderTypes","isExpandOptionsState","isFilterExpanded","handleFilterSelection","preventDefault","paymentCode","currentTarget","getAttribute","selectedPaymentTypes","_distributorPaymentTypesMenu","_paymentTypesList$fin","paymentTypesMenuText","paymentTypesList","defaultOptionText","selectedPaymentTypesDesc","find","payment","TenderTypeId","Name","tenderType","tabIndex","onKeyDown","DistributorSelectorSearchForm","_onChangeHandler","onPaymentFilterSelected","tenderTypeId","renderPaymentTypeList","paymentTypesOptions","paymentFilterMenuHeading","paymentFilterByHeading","filteredPaymentType","ToggleMapView","toggleMapViewAttributes","viewMapText","viewListText","showLocatorView","paymentTypes","showPaymentTypeFilter","onToggleListMapViewState","toggleButtonText","toggleButtonClass","DistributorSelector","mainClass","headerClass","currentDistributorBtnRef","toggleListMapViewState","distributorSelectorStateManager","onChangeForDoNotShow","warningDialogState","checked","onSelectDistributor","distributorId","_setCurrentDistributor","onChangeDistributorClick","setSelectedDistributorId","isDistributorDetailPopupOpen","closeDistributorDetailPopup","isDistributorSelectorDialogOpen","showDistributorDetails","distributorDetailsFromPopup","openDistributorSelectorDialog","parentElementRef","onDistributorCloseButtonClick","continueButtonClick","cookies","currentDistributor","currentSelectedDistributor","hideWarningMessage","isConsentGiven","_closeDistributorSelectorDialog","redirectToDistributorURL","cancelButtonClick","showWarningDialog","backToSearchClick","onViewAllDistributorDetailsFromPopup","_this$currentDistribu","_this$currentDistribu2","_this$currentDistribu3","DistributorId","getCurrentDistributor","url","requestUrl","user","isAuthenticated","_this$props$data$dist","distributorList","_distributor$MarketSe","MarketSettings","localeItems","some","locale","toLowerCase","localeBaseUrl","_currentDistributor$O","_currentDistributor$O2","DistributorName","getUniquePaymentTypes","uniquePaymentTypes","Set","_distributor$PaymentT","PaymentTypes","paymentType","add","filterDistributorsByPaymentTypes","filteredPaymentTypeId","filter","_distributor$PaymentT2","marketSettings","currentLocale","localeItem","distributorURL","defaultLocale","isDefaultLocale","startsWith","window","location","debug","handleDistributorSelectorClick","_this$props$data$dist2","_this$currentDistribu4","openDistributorDetailPopup","onFilteredPaymentType","renderDistributorDetailsViewProps","distributorDetails","_distributorDetails$O","_distributorDetails$O2","_distributorDetails$O3","_distributorDetails$O4","switchDistributorText","distributorDetailsModalPopup","classname","distributorDetailsModalHeader","distributorDetailsHeaderProps","closeDistributorDetailPopupButtonAriaLabel","distributorDetailsModalBody","distributorDetailsModalBodyContainer","distributorDetailsLocation","distributorDetailsPrimaryContact","distributorDetailsDeliveryMethods","distributorDetailsViewAllDetails","distributorDetailsChangeDistributor","handleChangeDistributorTextChange","distributorDetailsModalFooter","distributorDetailsSliderWrapper","renderDistributorSliderViewProps","isCurrentDistributorSelected","_distributorDetails$O5","distributorDetailsSliderDistributorName","distributorDetailsSliderHeaderContent","distributorSliderBackToSearch","distributorDetailsSliderHeaderContainer","distributorDetailsSliderBodyContainer","distributorDetailsSliderFooterContainer","distributorDetailsSliderInformationWrapper","distributorDetailsSlidercurrentDistributorTitle","distributorDetailsSliderSelectDistributor","handleSelectDistributorTextChange","handleHeadingChange","distributorWarningDialogHeading","distributorSelectorHeading","handleWarningTextChange","distributorWarningContent","termsOfServiceLink","stopPropagation","shouldShowDistributors","isOboRequest","getAccountSelectionCookie","isSignedIn","checkUserStateAndOpenDialog","getDistributorDetails","_getAndUpdateDistributorList","isSearchInProgress","_updateDistributorListInStateManager","_this$currentDistribu5","sortedDistributorList","_sortDistributor","setDistributorsList","catch","_distributorSelectorS","distributorSelectorContext","focus","updateDistributorMapVisibility","closeDistributorSelectorDialog","searchTerm","_setSelectedDistributor","hideDistributorWarning","channel","_this$props$data$dist3","loadMapApi","_this$props$data$dist4","_this$props$context$a","BingMapsEnabled","BingMapsApiKey","lang","market","ChannelCountryRegionISOCode","_this$currentDistribu6","_this$currentDistribu7","_distributorSelectorS2","_distributorSelectorS3","doNotShowAgainCheckbox","noDistributorFoundText","maps","mapSlot","currentDistributorName","headerText","headerCurrentDistributorText","distributorInfoList","hasMapSlot","isMobileDevice","isMobile","variant","VariantType","Viewport","shouldOpenDistributorSelectorDialog","shouldOpenDistributorDetailPopup","listMapViewState","displayList","canShowLocationView","showMapViewLink","isMapModuleLoaded","showDistributorDetailsOnMap","showDistributorDetailsPopup","currentDistributorContainer","currentDistributorButton","headerCurrentDistributorAriaLabel","Modal","autoFocus","fade","isOpen","onClosed","horizontalPosition","verticalPosition","toggle","isMobileView","headerContainerProps","ModalHeader","distributorSelectorHeaderProps","distributorWarningHeaderProps","footerContainerProps","ModalFooter","bodyContainerProps","ModalBody","bodyWrapperProps","distributorsResultContainerProps","distributorsResultWrapperProps","mapContainerProps","searchForm","spinner","distributorLinesViewProps","isLocationDisabled","noDistributorsMessage","terms","distributorWarningButtonWrapper","distributorWarningDoNotShowAgain","distributorWarningContinue","distributorWarningCancel","_value$OrgUnit","observer","renderDistributorSelectorModal","distributorDetailsSliderCurrentDistributorTitle","renderDistributorDetails","renderDistributorSelectorBody","renderWarningDialog","renderDistributorWarningBody","renderDistributorDetailsPopup","labelGroup","renderErrorLabel","responseErrorMessage","errorMessageClassName","renderRegisteredUserMessage","signInUrl","signInLinkClassName","registeredUserClassName","orderLookupRegisteredUserText","orderLookupViewAccountText","orderLookupSignInLinkText","infoMessage","signInText","renderFieldErrors","orderLookupFieldValidationErrorMessage","RenderOrderLookupAdditionalFieldInput","_getOrderLookupAdditionalFields","additionalFieldLabel","additionalFieldError","additionalFieldInput","additionalFieldLabelClassName","inputType","name","isValidAdditionalFieldName","additionalFieldValidationMessage","RenderOrderLookupFormFields","_getOrderLookupFields","orderLookupLabelClassName","orderLookupLabel","inputReference","fieldErrorClassName","isInputTypeError","renderAlert","isValidInputField","OrderLookupSearchValues","OrderLookup","isEmailValue","isOrderNumberValue","orderLookupExtensibleEnum","handleSubmit","orderNumber","email","orderLookupValue","orderStatusLookUpParametersType","orderLookupName","_validateOrderLookupForm","_Msdyn365$getUrlSync","actionContextValue","orderDetailsPath","baseUrl","URL","origin","redirectUrl","searchParameters","searchParams","set","fieldName","StringExtensions","isNullOrWhitespace","toLocaleLowerCase","fieldValue","_this$orderNumberInpu","_this$emailInputRef$c","orderNumberInputRef","emailInputRef","additionalPropertyStates","isAdditionalFieldError","isKeyExistInAdditionalFieldArray","labelName","isValidFieldName","additionalfieldErrorMessage","ordernumber","isOrdNumberError","isReqError","isEmailError","isValidEmailError","isValidLookupField","isValidAdditionalLookupField","isDisabled","_renderAlert","orderLookupEmailValidationErrorMessage","orderLookupRequiredTextErrorMessage","requiredErrorMessage","isNullOrEmpty","emailValidationErrorMessage","isRequireError","isEmailValidError","isValidEmailInput","_renderOrderNumberAlert","orderLookupOrderNumberValidationErrorMessage","_renderOrderLookupInput","orderLookupEmailLabel","orderLookupEmailAriaLabel","_additionalFieldValidation","isFieldValid","RegExp","test","isValid","isDisable","trim","EmailRegex","defaultRegex","isEmailValid","orderLookupSearchAdditionalFields","_item$labelName","_item$ariaLabel","_item$validationMessa","validationMessage","_heading$tag","_context$request$user","orderLookupDefaultHeadingText","orderLookupButtonLabel","orderLookupFormAriaLabel","orderLookupOrderNumberLabel","orderLookupOrderNumberAriaLabel","orderLookupSubmitAriaLabel","headingText","moduleClassName","orderLookupContainerClassName","orderLookupFormClassName","orderLookupAdditionalFiledContainerClassName","orderLookupFormFieldsClassName","orderNumberLabelClassName","orderNumberInputErrorClassName","submitButtonClassName","signinLinkClassName","orderLookupHeading","orderLookup","orderLookupContainer","orderLookupAdditionalFieldContainer","_createParagraph","renderOrderLookupInputField","orderLookupForm","autoComplete","orderNumberInput","submitButton","Button","disabled","submitButtonLabelText","fieldErrorMessage","registeredUserMessage","submit","_renderAdditionalFields","_getExtensibleEnumera","_getExtensibleEnumera2","isOrderLookupAdditionalFieldValid","isOrderLookupFieldValid","getExtensibleEnumerations","StoreOperationsDataActions","TypeName","ExtensibleEnumerations","orderLookupAdditionalParameter","validateOrderLookupField","orderStatusLookUpParameter","isValidField","validateOrderLookupAdditionalField","orderStatusLookUpAdditionalParameters","isValidAdditionalField","_item$fieldKey","fieldKey","validateAdditionalFieldWithProxy","setLookupFieldState","additionalFieldsInput","OrderLookupViewComponent","_orderLookupForm$clas","_submitButton$classNa"],"sourceRoot":""}