{"version":3,"file":"static/js/10.22cad10e2517c3303856.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/cart-line-comment/cart-line-comment.tsx?05fd","webpack://Msdyn365.Commerce.Online/./src/modules/cart-line-comment/cart-line-comment.view.tsx?d930","webpack://Msdyn365.Commerce.Online/./src/modules/order-level-comment/order-level-comment.tsx?07c3","webpack://Msdyn365.Commerce.Online/./src/modules/order-level-comment/order-level-comment.view.tsx?be78","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/b2b-requests-status.view.tsx?eedf","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/checkout-delivery-options.view.tsx?ba31","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/components/search.categorysuggest.tsx?1d05","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/components/search.mobile.empty.tsx?3ee2","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/components/search.form.tsx?31cb","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/components/search.keywordsuggest.tsx?3ae1","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/components/search.productsuggest.tsx?f921","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/components/search.arisuggest.tsx?64e5","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/search.view.tsx?175e","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/b2b-requests-status.view.tsx?8540","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/checkout-delivery-options.view.tsx?27bd","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/components/search.mobile.empty.tsx?f1ef","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/components/search.form.tsx?77b5","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/search.view.tsx?9ead","webpack://Msdyn365.Commerce.Online/./src/utils/getAriModelDetailUrl.ts?5e00","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/link.tsx?d232","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/separator.tsx?92bb","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.tsx?efcc","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.view.tsx?4b3d","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-button.tsx?e1d9","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-error.tsx?7f8a","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-input.tsx?5bbe","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-label.tsx?4988","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-radio-button.tsx?f8c1","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/business-sign-up.tsx?13a2","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/business-sign-up.view.tsx?e2f8","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/components/search-bar.tsx?63c1","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/components/data-grid.tsx?ddec","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/components/business-partner-users-table.tsx?c677","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/components/business-partners-table.tsx?8b1d","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/business-partners.tsx?57a6","webpack://Msdyn365.Commerce.Online/./src/modules/business-partners/business-partners.view.tsx?b34e","webpack://Msdyn365.Commerce.Online/./src/modules/country-picker/country-picker.tsx?4fcb","webpack://Msdyn365.Commerce.Online/./src/modules/country-picker/country-picker.view.tsx?0036","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.tsx?e0bd","webpack://Msdyn365.Commerce.Online/./src/modules/footer-category/footer-category.view.tsx?fdce","webpack://Msdyn365.Commerce.Online/./src/modules/subscribe/subscribe.tsx?9fea","webpack://Msdyn365.Commerce.Online/./src/modules/subscribe/subscribe.view.tsx?19c8","webpack://Msdyn365.Commerce.Online/./src/modules/tab-item/tab-item.tsx?b1b8","webpack://Msdyn365.Commerce.Online/./src/modules/tab-item/tab-item.view.tsx?ee3b","webpack://Msdyn365.Commerce.Online/./src/modules/tab/tab.tsx?9ac6","webpack://Msdyn365.Commerce.Online/./src/modules/tab/tab.view.tsx?a99d","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list-item/components/links.tsx?c969","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list-item/tile-list-item.tsx?114a","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list-item/tile-list-item.view.tsx?19a8","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/carticon.component.tsx?3c7c","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/write-review.view.tsx?c67c"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { ICartLineCommentData } from './cart-line-comment.data';\r\nimport { ICartLineCommentProps } from './cart-line-comment.props.autogenerated';\r\nimport { Button, IModuleProps, INodeProps, Modal, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\n\r\nexport interface ICartLineCommentViewProps extends ICartLineCommentProps {\r\n staticDisplay: INodeProps;\r\n cartLineCommentModuleProps: IModuleProps;\r\n modal: React.ReactNode;\r\n}\r\n\r\ninterface ICartLineCommentExtendedProps extends ICartLineCommentProps {\r\n comment: string;\r\n cartLineId: string;\r\n cartProductTitle: string;\r\n}\r\n\r\ninterface ICartLineCommentState {\r\n comment: string;\r\n isCommentAreaActive: boolean;\r\n}\r\n/**\r\n *\r\n * CartLineComment component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CartLineComment extends React.PureComponent {\r\n private _className = 'gar-cart-comment';\r\n constructor(props: ICartLineCommentExtendedProps) {\r\n super(props);\r\n this.state = {\r\n comment: props.comment,\r\n isCommentAreaActive: false\r\n };\r\n }\r\n\r\n /**\r\n * Saves cart comment\r\n * Method must call updateCartLineQuantity on the cart state because\r\n * updateCart does not update the cart line comment. Calling the other method with an additional\r\n * parameter for the comment successfully updates the comment\r\n */\r\n private _updateCartLineComment = async (): Promise => {\r\n const cartState = this.props.data.cart.result;\r\n if (!cartState) {\r\n return;\r\n }\r\n const dummyCart = { ...cartState.cart };\r\n const cartLineToUpdate = dummyCart.CartLines?.find(cl => cl.LineId === this.props.cartLineId);\r\n if (cartLineToUpdate) {\r\n cartLineToUpdate.Comment = this.state.comment;\r\n }\r\n await cartState.updateCartLineQuantity({\r\n cartLineId: this.props.cartLineId,\r\n newQuantity: cartLineToUpdate?.Quantity!,\r\n additionalProperties: { Comment: this.state.comment }\r\n });\r\n\r\n this.setState({ isCommentAreaActive: false });\r\n };\r\n\r\n /**\r\n * Updates the comment in state\r\n * @param event new comment from event\r\n */\r\n private _updateCommentState = (event: React.ChangeEvent): void => {\r\n this.setState({ comment: event.target.value });\r\n };\r\n /**\r\n * Resets Cart Comment\r\n */\r\n private _resetCommentToProps = (): void => {\r\n this.setState({ comment: this.props.comment, isCommentAreaActive: false });\r\n };\r\n\r\n /**\r\n * Toggles the isCommentAreaActive state property\r\n */\r\n private _toggleCommentAreaActive = () =>\r\n this.setState(prevState => {\r\n return {\r\n isCommentAreaActive: !prevState.isCommentAreaActive\r\n };\r\n });\r\n\r\n /**\r\n * Renders the static comment display for when the isCommentAreaActive state param is false\r\n * @return React.ReactNode\r\n */\r\n private _renderStaticCommentDisplay = (): React.ReactNode => {\r\n const {\r\n resources: { commentLinkText, editLinkText }\r\n } = this.props;\r\n if (!this.props.comment) {\r\n return this._renderCommentLink(commentLinkText);\r\n } else {\r\n return (\r\n \r\n

{this._getCommentPreview()}

\r\n {this._renderCommentLink(editLinkText)}\r\n
\r\n );\r\n }\r\n };\r\n\r\n private _getCommentPreview = (): string => {\r\n const { comment } = this.props;\r\n if (comment.length > 50) {\r\n return `${comment.substring(0, 50)}...`;\r\n } else {\r\n return comment;\r\n }\r\n };\r\n\r\n /**\r\n * Renders a comment link which toggles the active area state\r\n * @param linkText text for the link\r\n */\r\n private _renderCommentLink = (linkText: string): React.ReactNode => (\r\n \r\n {linkText}\r\n \r\n );\r\n\r\n /**\r\n * Renders a button to save comments to the cartlines\r\n * @return React.ReactNode\r\n */\r\n private _renderSaveButton = (): React.ReactNode => {\r\n const {\r\n resources: { saveButtonText }\r\n } = this.props;\r\n return (\r\n \r\n );\r\n };\r\n\r\n /**\r\n * Renders a button to cancel the comment entry and set the state to default\r\n * @return React.ReactNode\r\n */\r\n private _renderCancelButton = (): React.ReactNode => {\r\n const {\r\n resources: { cancelButtonText }\r\n } = this.props;\r\n return (\r\n \r\n );\r\n };\r\n\r\n /**\r\n * Renders the text area for inputting comments\r\n */\r\n private _renderTextArea = (): React.ReactNode => {\r\n const {\r\n resources: { textAreaLabel }\r\n } = this.props;\r\n const { comment } = this.state;\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n };\r\n /**\r\n * Renders the button area\r\n */\r\n private _renderButtonArea = (): React.ReactNode => (\r\n
\r\n {this._renderSaveButton()}\r\n {this._renderCancelButton()}\r\n
\r\n );\r\n\r\n private _renderModal = () => {\r\n return (\r\n \r\n {this._getModalTitle()}\r\n {this._renderTextArea()}\r\n {this._renderButtonArea()}\r\n \r\n );\r\n };\r\n\r\n /**\r\n * Gets ID for the text field\r\n */\r\n private _getFieldId = (): string => `${this.props.cartLineId}__commentInput`;\r\n\r\n /**\r\n * Gets the title for the comment modal\r\n */\r\n private _getModalTitle = (): string => {\r\n const {\r\n resources: { commentModalTitle }\r\n } = this.props;\r\n\r\n return commentModalTitle.replace('{0}', this.props.cartProductTitle);\r\n };\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n config: { className }\r\n } = this.props;\r\n const viewProps: ICartLineCommentViewProps = {\r\n ...this.props,\r\n staticDisplay: {\r\n tag: 'div',\r\n className: `${this._className}__static-display`,\r\n children: this._renderStaticCommentDisplay()\r\n },\r\n cartLineCommentModuleProps: {\r\n className: classnames(className, this._className),\r\n tag: 'div',\r\n moduleProps: { ...this.props }\r\n },\r\n modal: this._renderModal()\r\n };\r\n return this.props.renderView(viewProps);\r\n }\r\n}\r\n\r\nexport default CartLineComment;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { ICartLineCommentViewProps } from './cart-line-comment';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport default (props: ICartLineCommentViewProps) => {\r\n const { staticDisplay, cartLineCommentModuleProps, modal } = props;\r\n return (\r\n \r\n {modal}\r\n \r\n \r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { IOrderLevelCommentData } from './order-level-comment.data';\r\nimport { IOrderLevelCommentProps } from './order-level-comment.props.autogenerated';\r\nimport { Button, IModuleProps, INodeProps, Modal, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport interface IOrderLevelCommentViewProps extends IOrderLevelCommentProps {\r\n staticDisplay: INodeProps;\r\n orderLevelCommentModuleProps: IModuleProps;\r\n modal: React.ReactNode;\r\n}\r\n\r\ninterface IOrderLevelCommentExtendedProps extends IOrderLevelCommentProps {\r\n comment: string;\r\n}\r\n\r\ninterface IOrderLevelCommentState {\r\n comment: string;\r\n isCommentAreaActive: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * OrderLevelComment component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass OrderLevelComment extends React.PureComponent {\r\n private _className = 'gar-order-comment';\r\n private _maxCommentLength = 60;\r\n constructor(props: IOrderLevelCommentExtendedProps) {\r\n super(props);\r\n this.state = {\r\n comment: props.data.cart.result?.cart.Comment || '',\r\n isCommentAreaActive: false\r\n };\r\n }\r\n\r\n /**\r\n * Saves order comment\r\n */\r\n\r\n private _updateOrderLevelComment = async (): Promise => {\r\n const cartState = this.props.data.cart.result;\r\n if (!cartState?.cart) {\r\n return;\r\n }\r\n const dummyCart = { ...cartState.cart };\r\n dummyCart.Comment = this.state.comment;\r\n await cartState.updateCart({ newCartObject: dummyCart });\r\n this.setState({ isCommentAreaActive: false });\r\n };\r\n\r\n /**\r\n * Updates the comment in state\r\n * @param event new comment from event\r\n */\r\n private _updateCommentState = (event: React.ChangeEvent): void => {\r\n this.setState({ comment: event.target.value });\r\n };\r\n /**\r\n * Resets Cart Comment\r\n */\r\n private _resetCommentToProps = (): void => {\r\n this.setState({ comment: this.props.comment, isCommentAreaActive: false });\r\n };\r\n\r\n /**\r\n * Toggles the isCommentAreaActive state property\r\n */\r\n private _toggleCommentAreaActive = () =>\r\n this.setState(prevState => {\r\n return {\r\n isCommentAreaActive: !prevState.isCommentAreaActive\r\n };\r\n });\r\n\r\n /**\r\n * Renders the static comment display for when the isCommentAreaActive state param is false\r\n * @return React.ReactNode\r\n */\r\n private _renderStaticCommentDisplay = (): React.ReactNode => {\r\n const {\r\n resources: { commentLinkText, editLinkText },\r\n config: { disclaimer }\r\n } = this.props;\r\n const currentComment = this.props.data.cart.result?.cart.Comment;\r\n if (!currentComment) {\r\n return (\r\n <>\r\n {this._renderCommentLink(commentLinkText)}\r\n \r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n

{this._getCommentPreview()}

\r\n {this._renderCommentLink(editLinkText)}\r\n {disclaimer ? (\r\n \r\n ) : null}\r\n \r\n );\r\n }\r\n };\r\n\r\n private _getCommentPreview = (): string => {\r\n const comment = this.props.data.cart.result?.cart.Comment || '';\r\n if (comment.length > 50) {\r\n return `${comment.substring(0, 50)}...`;\r\n } else {\r\n return comment;\r\n }\r\n };\r\n\r\n /**\r\n * Renders a comment link which toggles the active area state\r\n */\r\n private _renderCommentLink = (linkText: string): React.ReactNode => (\r\n \r\n {linkText}\r\n \r\n );\r\n\r\n /**\r\n * Renders a button to save comments to the cartlines\r\n */\r\n private _renderSaveButton = (): React.ReactNode => {\r\n const {\r\n resources: { saveButtonText }\r\n } = this.props;\r\n return (\r\n \r\n );\r\n };\r\n\r\n /**\r\n * Renders a button to cancel the comment entry and set the state to default\r\n */\r\n private _renderCancelButton = (): React.ReactNode => {\r\n const {\r\n resources: { cancelButtonText }\r\n } = this.props;\r\n return (\r\n \r\n );\r\n };\r\n\r\n /**\r\n * Renders the text area for inputting comments\r\n */\r\n private _renderTextArea = (): React.ReactNode => {\r\n const {\r\n resources: { textAreaLabel, charactersRemaining }\r\n } = this.props;\r\n const { comment } = this.state;\r\n return (\r\n
\r\n \r\n \r\n

\r\n {`${this._maxCommentLength - (comment && comment.length ? comment.length : 0)} ${charactersRemaining}`}\r\n

\r\n
\r\n );\r\n };\r\n\r\n /**\r\n * Renders the button area\r\n */\r\n private _renderButtonArea = (): React.ReactNode => (\r\n
\r\n {this._renderSaveButton()}\r\n {this._renderCancelButton()}\r\n
\r\n );\r\n\r\n /**\r\n * Renders the complete modal\r\n */\r\n private _renderModal = () => {\r\n return (\r\n \r\n {this._getModalTitle()}\r\n {this._renderTextArea()}\r\n {this._renderButtonArea()}\r\n \r\n );\r\n };\r\n\r\n /**\r\n * Gets ID for the text field\r\n */\r\n private _getFieldId = (): string => `orderLevelCommentInput`;\r\n\r\n /**\r\n * Gets the title for the comment modal\r\n */\r\n private _getModalTitle = (): string => {\r\n const {\r\n resources: { commentModalTitle }\r\n } = this.props;\r\n\r\n return commentModalTitle;\r\n };\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n config: { className }\r\n } = this.props;\r\n const viewProps: IOrderLevelCommentViewProps = {\r\n ...this.props,\r\n staticDisplay: {\r\n tag: 'div',\r\n className: `${this._className}__static-display`,\r\n children: this._renderStaticCommentDisplay()\r\n },\r\n orderLevelCommentModuleProps: {\r\n className: classnames(className, this._className),\r\n tag: 'div',\r\n moduleProps: { ...this.props }\r\n },\r\n modal: this._renderModal()\r\n };\r\n\r\n return this.props.renderView(viewProps);\r\n }\r\n}\r\n\r\nexport default OrderLevelComment;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { IOrderLevelCommentViewProps } from './order-level-comment';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport default (props: IOrderLevelCommentViewProps) => {\r\n const { staticDisplay, orderLevelCommentModuleProps, modal } = props;\r\n return (\r\n \r\n {modal}\r\n \r\n \r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { getUrlSync } from '@msdyn365-commerce/core';\r\nimport { IB2bRequestsStatusViewProps } from '@msdyn365-commerce-modules/account-management';\r\nimport { Button, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { IB2bRequestsStatusProps, IB2bRequestsStatusResources } from '../definition-extensions/b2b-requests-status.ext.props.autogenerated';\r\n\r\n/**\r\n * B2b Request status View.\r\n * @param props - The view props.\r\n * @returns The JSX Element.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\nconst B2bRequestsStatusView: React.FC> = props => {\r\n const { b2bRequestsStatus, heading, table } = props;\r\n const { continueShoppingButtonTitle } = props.resources;\r\n const initialCount = 0;\r\n\r\n if (props.data.operationRequests.result?.length === initialCount) {\r\n return (\r\n \r\n {heading}\r\n \r\n
\r\n

\r\n {props.resources.headingForEmptyRequestStatus}\r\n

\r\n

\r\n {props.resources.textForEmptyRequestStatus}\r\n

\r\n \r\n \r\n {continueShoppingButtonTitle}\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n return (\r\n \r\n {heading}\r\n {table}\r\n \r\n );\r\n};\r\n\r\nexport default B2bRequestsStatusView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICheckoutDeliveryOption, ICheckoutDeliveryOptionEdit, ICheckoutDeliveryOptionsList, ICheckoutDeliveryOptionsViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-delivery-options/./checkout-delivery-options';\r\n\r\nconst DeliveryOptionList: React.FC = ({\r\n DeliveryOptionsList,\r\n list\r\n}) => {\r\n if (!list || list.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {list.map((deliveryOption: ICheckoutDeliveryOptionEdit) => {\r\n return (\r\n {deliveryOption.radioButton}\r\n {deliveryOption.description}\r\n {/* {deliveryOption.price} */}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst DeliveryOptionSelected: React.FC = ({\r\n DeliveryOption,\r\n description,\r\n price\r\n}) => {\r\n\r\n return (\r\n \r\n {description}\r\n {/* {price} */}\r\n \r\n );\r\n};\r\n\r\nconst CheckoutDeliveryOptionsView: React.FC = props => {\r\n const { CheckoutDeliveryOptions,\r\n viewState,\r\n deliveryOptions,\r\n deliveryOptionSelected,\r\n alert,\r\n waiting,\r\n saveButton,\r\n editButton,\r\n cancelButton } = props;\r\n\r\n return (\r\n\r\n // TODO: All wrapper div should be provided by viewProps. Once SDK provide the sln, update markup.\r\n \r\n {viewState.isLoading && waiting}\r\n {viewState.isError && alert}\r\n {viewState.isShowList && deliveryOptions && }\r\n {viewState.isShowSelected && deliveryOptionSelected && }\r\n {viewState.isShowSaveButton && saveButton}\r\n {viewState.isShowEditButton && editButton}\r\n {viewState.isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { ISearchData, ISearchViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Categories heading.\r\n * @param inCategoriesHeading - The Keywords result heading.\r\n * @returns The JSX Element.\r\n */\r\nconst renderCategorySuggestionsTitle = (inCategoriesHeading: string): JSX.Element => {\r\n const categoryAutoSuggestionHeading = inCategoriesHeading ? inCategoriesHeading : 'In categories';\r\n\r\n return (\r\n
\r\n {categoryAutoSuggestionHeading}\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Render Categories suggestion result.\r\n * @param searchText search text\r\n * @param inCategoriesHeading - The Categories result heading.\r\n * @param noResultText - The \"No Result\" text.\r\n * @param props - The Categories suggestion result.\r\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\r\n * @param isLoadingNode - The autosuggestion loading node.\r\n * @returns The JSX Element.\r\n */\r\nexport const CategorySuggestionsComponent = (\r\n searchText: string | undefined,\r\n inCategoriesHeading: string,\r\n noResultText: string,\r\n props: ISearchViewProps & ISearchProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n): JSX.Element => {\r\n return props.autosuggestCategory ? (\r\n \r\n {renderCategorySuggestionsTitle(inCategoriesHeading.replace('{0}', searchText || ''))}\r\n \r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest && props.autosuggestCategory.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n ) : (\r\n \r\n {renderCategorySuggestionsTitle(inCategoriesHeading.replace('{0}', searchText || ''))}\r\n \r\n
  • \r\n {noResultText}\r\n
  • \r\n
    \r\n
    \r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IImageData, Image } from '@msdyn365-commerce/core';\r\nimport { ISearchData } from '@msdyn365-commerce-modules/search';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Products Suggestion result heading.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductNotFoundResultsImage = (props: ISearchProps): JSX.Element | null => {\r\n const noSearchResultImage: IImageData | undefined = props.config.noSearchResultImage;\r\n if (!noSearchResultImage || !noSearchResultImage.src) {\r\n return null;\r\n }\r\n const imageSettings = {\r\n lazyload: true,\r\n viewports: {\r\n xs: { w: 100, h: 100, q: 'w=100&h=100&q=60&m=6' }\r\n }\r\n };\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Product suggestion result.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nexport const MobileAutoSuggestEmptyComponent = (\r\n props: ISearchProps\r\n): JSX.Element => {\r\n return (\r\n \r\n
    \r\n {renderProductNotFoundResultsImage(props)}\r\n
    \r\n
    \r\n
    \r\n {props.resources.emptyMobileSearchTextHeading}\r\n
    \r\n
    \r\n {props.resources.emptyMobileSearchText}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { ISearchData, ISearchFormViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { Button, INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\nimport { MobileAutoSuggestEmptyComponent } from './search.mobile.empty';\r\n\r\n/**\r\n * Render Clear button for mobile viewport.\r\n * @param clearSearchButtonText -The Clear button text.\r\n * @param clearSearch -Clear Search callback.\r\n * @returns -The JSX Element.\r\n */\r\nconst renderClearButton = (clearSearchButtonText: string, clearSearch: () => void): JSX.Element => {\r\n return (\r\n \r\n {clearSearchButtonText || 'Clear'}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Search form.\r\n * @param form -Form view props.\r\n * @param searchForm -Search Form props.\r\n * @param formWrapper -Form Wrapper props.\r\n * @param isMobile -Is mobile viewport flag.\r\n * @param clearSearchButtonText -The Clear button text.\r\n * @param props -The props for resource.\r\n * @param isSearchText -Is SearchText flag for input text.\r\n * @param clearSearch -Clear Search callback.\r\n * @returns -The JSX Element.\r\n */\r\nexport const FormComponent = (\r\n form: ISearchFormViewProps,\r\n searchForm: INodeProps,\r\n formWrapper: INodeProps,\r\n isMobile: boolean,\r\n clearSearchButtonText: string,\r\n props: ISearchProps,\r\n isSearchText: boolean,\r\n clearSearch: () => void): JSX.Element => {\r\n\r\n // const cancelButtonNode = (\r\n // \r\n // );\r\n\r\n return (\r\n isMobile ? (\r\n \r\n {form.cancelBtn}\r\n \r\n {form.input}\r\n {isSearchText && renderClearButton(clearSearchButtonText, clearSearch)}\r\n {!isSearchText ? MobileAutoSuggestEmptyComponent(props) : null}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {form.input}\r\n {form.submitBtn}\r\n {/*{isSearchText && cancelButtonNode}*/}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { ISearchKeywordViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\n/**\r\n * Render keywords heading.\r\n * @param keywordsHeading -The Keywords result heading.\r\n * @returns The JSX Element.\r\n */\r\nconst renderKeywordSuggestionsTitle = (keywordsHeading: string): JSX.Element => {\r\n const categoryAutoSuggestionHeading = keywordsHeading ? keywordsHeading : 'Keywords';\r\n\r\n return (\r\n
    \r\n {categoryAutoSuggestionHeading}\r\n
    \r\n );\r\n};\r\n\r\n/**\r\n * Render keywords reults.\r\n * @param keywordSuggest -The Keywords suggest Node props.\r\n * @param ulKeyword -The List Node props.\r\n * @param keywordsHeading -The Keywords result heading.\r\n * @param noResultText -The \"No Result\" text.\r\n * @param keywordSuggestions -The Keywords suggestion result.\r\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\r\n * @param isLoadingNode - The autosuggestion loading node.\r\n * @returns -The JSX Element.\r\n */\r\nexport const KeywordSuggestionsComponent = (\r\n keywordSuggest: INodeProps,\r\n ulKeyword: INodeProps,\r\n keywordsHeading: string,\r\n noResultText: string,\r\n keywordSuggestions?: ISearchKeywordViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n): JSX.Element => {\r\n return (\r\n keywordSuggestions ? (\r\n \r\n {renderKeywordSuggestionsTitle(keywordsHeading)}\r\n \r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest && keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n ) : (\r\n \r\n {renderKeywordSuggestionsTitle(keywordsHeading)}\r\n \r\n
  • \r\n {noResultText}\r\n
  • \r\n
    \r\n
    \r\n )\r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IImageData, Image } from '@msdyn365-commerce/core';\r\nimport { ISearchData, ISearchProductViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Products Suggestion result heading.\r\n * @param productSuggestionsHeading -The products suggestion result heading.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductSuggestionsTitle = (productSuggestionsHeading: string): JSX.Element => {\r\n const productAutoSuggestionHeading = productSuggestionsHeading ? productSuggestionsHeading : 'Products';\r\n\r\n return (\r\n
    \r\n {productAutoSuggestionHeading}\r\n
    \r\n );\r\n};\r\n\r\n/**\r\n * Render Products Suggestion result heading.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductNotFoundResultsImage = (props: ISearchProps): JSX.Element | null => {\r\n const noSearchResultImage: IImageData | undefined = props.config.noSearchResultImage;\r\n if (!noSearchResultImage || !noSearchResultImage.src) {\r\n return null;\r\n }\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Products No result section.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductNotFoundResults = (props: ISearchProps): JSX.Element => {\r\n return (\r\n \r\n
    \r\n {renderProductNotFoundResultsImage(props)}\r\n
    \r\n
    \r\n {props.resources.noResultContentHeadingText}\r\n
    \r\n
    \r\n {props.resources.noResultContentParagraphText}\r\n
    \r\n
    \r\n );\r\n};\r\n\r\n/**\r\n * Render Product suggestion result.\r\n * @param productSuggest -The product suggest Node props.\r\n * @param ulProduct -The List Node props.\r\n * @param props -The props.\r\n * @param productSuggestions -The Product suggestion result.\r\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\r\n * @param isLoadingNode - The autosuggestion loading node.\r\n * @returns The JSX Element.\r\n */\r\nexport const ProductSuggestionsComponent = (\r\n productSuggest: INodeProps,\r\n ulProduct: INodeProps,\r\n props: ISearchProps,\r\n productSuggestions?: ISearchProductViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n): JSX.Element => {\r\n const liProduct: INodeProps = {\r\n tag: 'li',\r\n className: 'msc-no-result-content'\r\n };\r\n return productSuggestions ? (\r\n \r\n {renderProductSuggestionsTitle(props.resources.productSuggestionHeading)}\r\n \r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest && 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 {renderProductSuggestionsTitle(props.resources.productSuggestionHeading)}\r\n \r\n \r\n {renderProductNotFoundResults(props)}\r\n \r\n \r\n \r\n );\r\n};\r\n","import { ISearchData, ISearchViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\nimport { IAriServiceModelExtension } from \"../../../../actions/DataServiceEntities.g\";\r\nimport generateAriModelDetailUrl from \"../../../../utils/getAriModelDetailUrl\";\r\n\r\nconst renderAriSuggestionsTitle = (heading: string): JSX.Element =>\r\n (\r\n
    \r\n {heading}\r\n
    \r\n )\r\n\r\n\r\nexport const AriSuggestionsComponent = (\r\n noResultsText: string,\r\n props: ISearchViewProps & ISearchProps,\r\n isLoading: boolean,\r\n searchResults: IAriServiceModelExtension[],\r\n loadingNode: React.ReactNode\r\n): JSX.Element => {\r\n const { resources: { ariModelResultsHeading }, UlCategory } = props;\r\n return (\r\n
    \r\n {renderAriSuggestionsTitle(ariModelResultsHeading)}\r\n \r\n {isLoading? (\r\n loadingNode\r\n ) : (\r\n searchResults?.length ? (\r\n <>\r\n {searchResults.map(r => (
  • \r\n \r\n {r.Name}\r\n \r\n
  • ))}\r\n \r\n\r\n ) : (
  • \r\n {noResultsText}\r\n
  • )\r\n )}\r\n\r\n
    \r\n
    \r\n )\r\n}\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { ISearchData, ISearchFormViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { Button, format, isMobile, Module, Node, VariantType } from '@msdyn365-commerce-modules/utilities';\r\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\r\n\r\nimport { ISearchProps } from '../definition-extensions/search.ext.props.autogenerated';\r\nimport { CategorySuggestionsComponent } from './components/search.categorysuggest';\r\nimport { FormComponent } from './components/search.form';\r\nimport { KeywordSuggestionsComponent } from './components/search.keywordsuggest';\r\nimport { ProductSuggestionsComponent } from './components/search.productsuggest';\r\nimport SearchModelsAction, { SearchModelsInput } from '../../../actions/search-models.action';\r\nimport { QueryResultSettings } from '@msdyn365-commerce/retail-proxy';\r\nimport { IAriServiceModelExtension } from '../../../actions/DataServiceEntities.g';\r\nimport * as _ from 'lodash';\r\nimport { AriSuggestionsComponent } from './components/search.arisuggest';\r\n// import MsDyn365, { getUrlSync } from \"@msdyn365-commerce/core\";\r\n/**\r\n * Render Title for AutoSuggest.\r\n * @param searchSuggestionHeading -The heading resource string.\r\n * @param searchText -The search string.\r\n * @returns -The JSX Element.\r\n */\r\nconst renderTitle = (searchSuggestionHeading: string, searchText: string): JSX.Element => {\r\n const searchTextString = '\"'.concat(searchText.concat('\"'));\r\n const searchAutoSuggestionHeading = searchSuggestionHeading\r\n ? format(searchSuggestionHeading, searchTextString)\r\n : `Search for ${searchTextString}`;\r\n\r\n return {searchAutoSuggestionHeading};\r\n};\r\n\r\n/**\r\n * Search View.\r\n * @param props - The view props.\r\n * @returns The JSX Element.\r\n */\r\nconst SearchView: React.FC> = (\r\n props: ISearchViewProps & ISearchProps\r\n): JSX.Element => {\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 UlKeyword,\r\n UlProduct,\r\n form,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label,\r\n context,\r\n isLoadingAutoSuggest,\r\n isLoadingNode,\r\n context: {\r\n request: { apiSettings },\r\n actionContext\r\n },\r\n config: { topResultsCount }\r\n } = props;\r\n\r\n const { searchSuggestionHeading, categorySuggestionHeading, keywordsHeading, noResultText, clearSearchButtonText } = props.resources;\r\n\r\n const [searchTextString, setSearchTextString] = useState();\r\n const [isMobilePort, setIsMobile] = useState(false);\r\n const [ariSearchResults, setAriSearchResults] = useState([]);\r\n const [ariSearchLoading, setAriSearchLoading] = useState(false);\r\n\r\n const debouncedSearchHandler = useMemo(() => _.debounce((search: string) => getAriSearchResults(search), 500), []);\r\n\r\n useEffect(() => {\r\n setSearchTextString(searchText);\r\n if (searchText.length > 0) debouncedSearchHandler(searchText);\r\n }, [searchText]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n debouncedSearchHandler.cancel();\r\n };\r\n }, [debouncedSearchHandler]);\r\n\r\n /**\r\n * ClearSearch callback method to clear search string.\r\n */\r\n const clearSearch = (): void => {\r\n setSearchTextString('');\r\n\r\n const propsForm = props.form as ISearchFormViewProps;\r\n const propsFormInput = propsForm.input as React.DetailedHTMLProps, HTMLInputElement>;\r\n const propsFormInputCurrent = (propsFormInput.ref as React.RefObject).current;\r\n\r\n if (propsFormInputCurrent) {\r\n propsFormInputCurrent.value = '';\r\n }\r\n\r\n propsFormInput.value = '';\r\n props.searchText = '';\r\n props.FormWrapper.action = '';\r\n };\r\n\r\n const isMobileViewport = useCallback(() => {\r\n const isMobileView = isMobile({ variant: VariantType.Browser, context: context.request }) === 'xs';\r\n setIsMobile(isMobileView);\r\n }, [context]);\r\n\r\n useEffect(() => {\r\n window.addEventListener('resize', isMobileViewport);\r\n isMobileViewport();\r\n }, [isMobileViewport]);\r\n\r\n const viewport = isMobile({ variant: VariantType.Browser, context: context.request });\r\n\r\n const isMobileView = viewport === 'xs';\r\n\r\n AutoSuggest.className = !StringExtensions.isNullOrEmpty(searchTextString)\r\n ? `${AutoSuggest.className} show`\r\n : `${AutoSuggest.className} hide`;\r\n const isSearchText: boolean = !StringExtensions.isNullOrEmpty(searchTextString);\r\n\r\n const getAriSearchResults = async (search: string) => {\r\n setAriSearchLoading(true);\r\n const queryResultSettings: QueryResultSettings = {\r\n Paging: {\r\n Top: topResultsCount || 5\r\n }\r\n };\r\n const input = new SearchModelsInput(search, queryResultSettings, 'Search', apiSettings, false);\r\n\r\n const data = await SearchModelsAction(input, actionContext);\r\n setAriSearchResults(data.ariSearchResults.Models || []);\r\n setAriSearchLoading(false);\r\n };\r\n\r\n // const _generateSeeMoreUrl = (): string => {\r\n // const {\r\n // context: {\r\n // actionContext,\r\n // app: {\r\n // config: { searchQueryStringParameter }\r\n // }\r\n // }\r\n // } = props;\r\n\r\n // const query = props.searchText;\r\n // const searchQsp = searchQueryStringParameter || 'q';\r\n // const searchURL = _appendQueryParams(getUrlSync('search', actionContext) || '', query, searchQsp);\r\n // return searchURL;\r\n // };\r\n\r\n // const _appendQueryParams = (route: string, query: string, qsp: string): string => {\r\n // if (!MsDyn365.isBrowser) {\r\n // return '';\r\n // }\r\n // const queryUrl = new URL(route, window.location.href);\r\n // if (qsp && query) {\r\n // queryUrl.searchParams.set(qsp, query);\r\n // }\r\n\r\n // return queryUrl.href;\r\n // };\r\n\r\n return (\r\n \r\n {label}\r\n {FormComponent(\r\n form as ISearchFormViewProps,\r\n SearchForm,\r\n FormWrapper,\r\n isMobilePort,\r\n clearSearchButtonText,\r\n props,\r\n isSearchText,\r\n clearSearch\r\n )}\r\n {!isMobileView && (\r\n \r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\r\n {AutoSuggestAriaLabelText}\r\n ) : (\r\n ''\r\n )}\r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\r\n <>\r\n \r\n \r\n {renderTitle(searchSuggestionHeading, searchText)}\r\n \r\n \r\n \r\n {ProductSuggestionsComponent(\r\n ProductSuggest,\r\n UlProduct,\r\n props,\r\n autosuggestProduct,\r\n isLoadingAutoSuggest,\r\n isLoadingNode\r\n )}\r\n\r\n {CategorySuggestionsComponent(\r\n searchTextString,\r\n categorySuggestionHeading,\r\n noResultText,\r\n props,\r\n isLoadingAutoSuggest,\r\n isLoadingNode\r\n )}\r\n {AriSuggestionsComponent(noResultText, props, ariSearchLoading, ariSearchResults, isLoadingNode)}\r\n {KeywordSuggestionsComponent(\r\n KeywordSuggest,\r\n UlKeyword,\r\n keywordsHeading,\r\n noResultText,\r\n autosuggestKeyword,\r\n isLoadingAutoSuggest,\r\n isLoadingNode\r\n )}\r\n \r\n \r\n {/* See More */}\r\n \r\n ) : null}\r\n \r\n )}\r\n {isMobileView && props.isSearchFormExpanded && (\r\n \r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\r\n {AutoSuggestAriaLabelText}\r\n ) : (\r\n ''\r\n )}\r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\r\n <>\r\n \r\n {(form as ISearchFormViewProps).cancelBtn}\r\n {renderTitle(searchSuggestionHeading, searchText)}\r\n \r\n \r\n \r\n {CategorySuggestionsComponent(\r\n searchTextString,\r\n categorySuggestionHeading,\r\n noResultText,\r\n props,\r\n isLoadingAutoSuggest,\r\n isLoadingNode\r\n )}\r\n {AriSuggestionsComponent(noResultText, props, ariSearchLoading, ariSearchResults, isLoadingNode)}\r\n {KeywordSuggestionsComponent(\r\n KeywordSuggest,\r\n UlKeyword,\r\n keywordsHeading,\r\n noResultText,\r\n autosuggestKeyword,\r\n isLoadingAutoSuggest,\r\n isLoadingNode\r\n )}\r\n \r\n {ProductSuggestionsComponent(\r\n ProductSuggest,\r\n UlProduct,\r\n props,\r\n autosuggestProduct,\r\n isLoadingAutoSuggest,\r\n isLoadingNode\r\n )}\r\n \r\n \r\n ) : null}\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 * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { getUrlSync } from '@msdyn365-commerce/core';\r\nimport { IB2bRequestsStatusViewProps } from '@msdyn365-commerce-modules/account-management';\r\nimport { Button, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { IB2bRequestsStatusProps, IB2bRequestsStatusResources } from '../definition-extensions/b2b-requests-status.ext.props.autogenerated';\r\n\r\n/**\r\n * B2b Request status View.\r\n * @param props - The view props.\r\n * @returns The JSX Element.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\nconst B2bRequestsStatusView: React.FC> = props => {\r\n const { b2bRequestsStatus, heading, table } = props;\r\n const { continueShoppingButtonTitle } = props.resources;\r\n const initialCount = 0;\r\n\r\n if (props.data.operationRequests.result?.length === initialCount) {\r\n return (\r\n \r\n {heading}\r\n \r\n
    \r\n

    \r\n {props.resources.headingForEmptyRequestStatus}\r\n

    \r\n

    \r\n {props.resources.textForEmptyRequestStatus}\r\n

    \r\n \r\n \r\n {continueShoppingButtonTitle}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n return (\r\n \r\n {heading}\r\n {table}\r\n \r\n );\r\n};\r\n\r\nexport default B2bRequestsStatusView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { get } from 'lodash';\r\n\r\nimport { ICheckoutDeliveryOption, ICheckoutDeliveryOptionEdit, ICheckoutDeliveryOptionsList, ICheckoutDeliveryOptionsViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-delivery-options/./checkout-delivery-options';\r\nconst DLV_MODE_KEY = 'dlv-mode'\r\nconst DeliveryOptionList: React.FC = ({\r\n DeliveryOptionsList,\r\n list\r\n}) => {\r\n if (!list || list.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {list.map((deliveryOption: ICheckoutDeliveryOptionEdit) => {\r\n return (\r\n {deliveryOption.radioButton}\r\n {deliveryOption.description}\r\n {/* {deliveryOption.price} */}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst DeliveryOptionSelected: React.FC = ({\r\n DeliveryOption,\r\n description,\r\n price\r\n}) => {\r\n\r\n return (\r\n \r\n {description}\r\n {/* {price} */}\r\n \r\n );\r\n};\r\n\r\nconst CheckoutDeliveryOptionsView: React.FC = props => {\r\n const { CheckoutDeliveryOptions,\r\n viewState,\r\n deliveryOptions,\r\n deliveryOptionSelected,\r\n alert,\r\n waiting,\r\n saveButton,\r\n editButton,\r\n cancelButton } = props;\r\n\r\n React.useEffect(() => {\r\n const dlvDescription = get(deliveryOptionSelected, 'description.props.description') || ''\r\n window.sessionStorage.setItem(DLV_MODE_KEY, dlvDescription)\r\n }, [deliveryOptionSelected])\r\n\r\n return (\r\n\r\n // TODO: All wrapper div should be provided by viewProps. Once SDK provide the sln, update markup.\r\n \r\n {viewState.isLoading && waiting}\r\n {viewState.isError && alert}\r\n {viewState.isShowList && deliveryOptions && }\r\n {viewState.isShowSelected && deliveryOptionSelected && }\r\n {viewState.isShowSaveButton && saveButton}\r\n {viewState.isShowEditButton && editButton}\r\n {viewState.isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IImageData, Image } from '@msdyn365-commerce/core';\r\nimport { ISearchData } from '@msdyn365-commerce-modules/search';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Products Suggestion result heading.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductNotFoundResultsImage = (props: ISearchProps): JSX.Element | null => {\r\n const noSearchResultImage: IImageData | undefined = props.config.noSearchResultImage;\r\n if (!noSearchResultImage || !noSearchResultImage.src) {\r\n return null;\r\n }\r\n const imageSettings = {\r\n lazyload: true,\r\n viewports: {\r\n xs: { w: 100, h: 100, q: 'w=100&h=100&q=60&m=6' }\r\n }\r\n };\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Product suggestion result.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nexport const MobileAutoSuggestEmptyComponent = (\r\n props: ISearchProps\r\n): JSX.Element => {\r\n return (\r\n \r\n
    \r\n {renderProductNotFoundResultsImage(props)}\r\n
    \r\n
    \r\n
    \r\n {props.resources.emptyMobileSearchTextHeading}\r\n
    \r\n
    \r\n {props.resources.emptyMobileSearchText}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { ISearchData, ISearchFormViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { Button, INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\nimport { MobileAutoSuggestEmptyComponent } from './search.mobile.empty';\r\n\r\n/**\r\n * Render Clear button for mobile viewport.\r\n * @param clearSearchButtonText -The Clear button text.\r\n * @param clearSearch -Clear Search callback.\r\n * @returns -The JSX Element.\r\n */\r\nconst renderClearButton = (clearSearchButtonText: string, clearSearch: () => void): JSX.Element => {\r\n return (\r\n \r\n {clearSearchButtonText || 'Clear'}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Search form.\r\n * @param form -Form view props.\r\n * @param searchForm -Search Form props.\r\n * @param formWrapper -Form Wrapper props.\r\n * @param isMobile -Is mobile viewport flag.\r\n * @param clearSearchButtonText -The Clear button text.\r\n * @param props -The props for resource.\r\n * @param isSearchText -Is SearchText flag for input text.\r\n * @param clearSearch -Clear Search callback.\r\n * @returns -The JSX Element.\r\n */\r\nexport const FormComponent = (\r\n form: ISearchFormViewProps,\r\n searchForm: INodeProps,\r\n formWrapper: INodeProps,\r\n isMobile: boolean,\r\n clearSearchButtonText: string,\r\n props: ISearchProps,\r\n isSearchText: boolean,\r\n clearSearch: () => void): JSX.Element => {\r\n\r\n // const cancelButtonNode = (\r\n // \r\n // );\r\n\r\n return (\r\n isMobile ? (\r\n \r\n {form.cancelBtn}\r\n \r\n {form.input}\r\n {isSearchText && renderClearButton(clearSearchButtonText, clearSearch)}\r\n {!isSearchText ? MobileAutoSuggestEmptyComponent(props) : null}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {form.input}\r\n {form.submitBtn}\r\n {/*{isSearchText && cancelButtonNode}*/}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { ISearchData, ISearchFormViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search';\r\nimport {\r\n // Button,\r\n // format,\r\n isMobile,\r\n Module,\r\n // Node,\r\n VariantType\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\r\n\r\nimport { ISearchProps } from '../definition-extensions/search.ext.props.autogenerated';\r\n// import { CategorySuggestionsComponent } from './components/search.categorysuggest';\r\nimport { FormComponent } from './components/search.form';\r\n// import { KeywordSuggestionsComponent } from './components/search.keywordsuggest';\r\n// import { ProductSuggestionsComponent } from './components/search.productsuggest';\r\n// import SearchModelsAction, { SearchModelsInput } from '../../../actions/search-models.action';\r\n// import { QueryResultSettings } from '@msdyn365-commerce/retail-proxy';\r\n// import { IAriServiceModelExtension } from '../../../actions/DataServiceEntities.g';\r\nimport * as _ from 'lodash';\r\n// import { AriSuggestionsComponent } from './components/search.arisuggest';\r\n// import MsDyn365, { getUrlSync } from \"@msdyn365-commerce/core\";\r\n/**\r\n * Render Title for AutoSuggest.\r\n * @param searchSuggestionHeading -The heading resource string.\r\n * @param searchText -The search string.\r\n * @returns -The JSX Element.\r\n */\r\n// const renderTitle = (searchSuggestionHeading: string, searchText: string): JSX.Element => {\r\n// const searchTextString = '\"'.concat(searchText.concat('\"'));\r\n// const searchAutoSuggestionHeading = searchSuggestionHeading\r\n// ? format(searchSuggestionHeading, searchTextString)\r\n// : `Search for ${searchTextString}`;\r\n\r\n// return {searchAutoSuggestionHeading};\r\n// };\r\n\r\n/**\r\n * Search View.\r\n * @param props - The view props.\r\n * @returns The JSX Element.\r\n */\r\nconst SearchView: React.FC> = (\r\n props: ISearchViewProps & ISearchProps\r\n): JSX.Element => {\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 // UlKeyword,\r\n // UlProduct,\r\n form,\r\n // autosuggestKeyword,\r\n // autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label,\r\n context\r\n // isLoadingAutoSuggest,\r\n // isLoadingNode,\r\n // context: {\r\n // request: { apiSettings },\r\n // actionContext\r\n // },\r\n // config: { topResultsCount }\r\n } = props;\r\n\r\n const {\r\n // searchSuggestionHeading, categorySuggestionHeading, keywordsHeading, noResultText,\r\n clearSearchButtonText\r\n } = props.resources;\r\n\r\n const [searchTextString, setSearchTextString] = useState();\r\n const [isMobilePort, setIsMobile] = useState(false);\r\n // const [ariSearchResults, setAriSearchResults] = useState([]);\r\n // const [ariSearchLoading, setAriSearchLoading] = useState(false);\r\n\r\n const debouncedSearchHandler = useMemo(() => _.debounce((search: string) => getAriSearchResults(search), 500), []);\r\n\r\n useEffect(() => {\r\n setSearchTextString(searchText);\r\n if (searchText.length > 0) debouncedSearchHandler(searchText);\r\n }, [searchText]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n debouncedSearchHandler.cancel();\r\n };\r\n }, [debouncedSearchHandler]);\r\n\r\n /**\r\n * ClearSearch callback method to clear search string.\r\n */\r\n const clearSearch = (): void => {\r\n setSearchTextString('');\r\n\r\n const propsForm = props.form as ISearchFormViewProps;\r\n const propsFormInput = propsForm.input as React.DetailedHTMLProps, HTMLInputElement>;\r\n const propsFormInputCurrent = (propsFormInput.ref as React.RefObject).current;\r\n\r\n if (propsFormInputCurrent) {\r\n propsFormInputCurrent.value = '';\r\n }\r\n\r\n propsFormInput.value = '';\r\n props.searchText = '';\r\n props.FormWrapper.action = '';\r\n };\r\n\r\n const isMobileViewport = useCallback(() => {\r\n const isMobileView = isMobile({ variant: VariantType.Browser, context: context.request }) === 'xs';\r\n setIsMobile(isMobileView);\r\n }, [context]);\r\n\r\n useEffect(() => {\r\n window.addEventListener('resize', isMobileViewport);\r\n isMobileViewport();\r\n }, [isMobileViewport]);\r\n\r\n // const viewport = isMobile({ variant: VariantType.Browser, context: context.request });\r\n\r\n // const isMobileView = viewport === 'xs';\r\n\r\n AutoSuggest.className = !StringExtensions.isNullOrEmpty(searchTextString)\r\n ? `${AutoSuggest.className} show`\r\n : `${AutoSuggest.className} hide`;\r\n const isSearchText: boolean = !StringExtensions.isNullOrEmpty(searchTextString);\r\n\r\n const getAriSearchResults = async (search: string) => {\r\n // setAriSearchLoading(true);\r\n // const queryResultSettings: QueryResultSettings = {\r\n // Paging: {\r\n // Top: topResultsCount || 5\r\n // }\r\n // };\r\n // const input = new SearchModelsInput(search, queryResultSettings, 'Search', apiSettings, false);\r\n // const data = await SearchModelsAction(input, actionContext);\r\n // setAriSearchResults(data.ariSearchResults.Models || []);\r\n // setAriSearchLoading(false);\r\n };\r\n\r\n // const _generateSeeMoreUrl = (): string => {\r\n // const {\r\n // context: {\r\n // actionContext,\r\n // app: {\r\n // config: { searchQueryStringParameter }\r\n // }\r\n // }\r\n // } = props;\r\n\r\n // const query = props.searchText;\r\n // const searchQsp = searchQueryStringParameter || 'q';\r\n // const searchURL = _appendQueryParams(getUrlSync('search', actionContext) || '', query, searchQsp);\r\n // return searchURL;\r\n // };\r\n\r\n // const _appendQueryParams = (route: string, query: string, qsp: string): string => {\r\n // if (!MsDyn365.isBrowser) {\r\n // return '';\r\n // }\r\n // const queryUrl = new URL(route, window.location.href);\r\n // if (qsp && query) {\r\n // queryUrl.searchParams.set(qsp, query);\r\n // }\r\n\r\n // return queryUrl.href;\r\n // };\r\n\r\n return (\r\n \r\n {label}\r\n {FormComponent(\r\n form as ISearchFormViewProps,\r\n SearchForm,\r\n FormWrapper,\r\n isMobilePort,\r\n clearSearchButtonText,\r\n props,\r\n isSearchText,\r\n clearSearch\r\n )}\r\n {/* {!isMobileView && (\r\n \r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\r\n {AutoSuggestAriaLabelText}\r\n ) : (\r\n ''\r\n )} */}\r\n {/* {!StringExtensions.isNullOrEmpty(searchTextString) ? (\r\n <>\r\n \r\n \r\n {renderTitle(searchSuggestionHeading, searchText)}\r\n \r\n \r\n \r\n {ProductSuggestionsComponent(ProductSuggest, UlProduct, props, autosuggestProduct,\r\n isLoadingAutoSuggest, isLoadingNode)}\r\n\r\n {CategorySuggestionsComponent(\r\n searchTextString,\r\n categorySuggestionHeading,\r\n noResultText,\r\n props,\r\n isLoadingAutoSuggest,\r\n isLoadingNode\r\n )}\r\n {AriSuggestionsComponent(noResultText, props, ariSearchLoading, ariSearchResults, isLoadingNode)}\r\n {KeywordSuggestionsComponent(\r\n KeywordSuggest,\r\n UlKeyword,\r\n keywordsHeading,\r\n noResultText,\r\n autosuggestKeyword,\r\n isLoadingAutoSuggest,\r\n isLoadingNode\r\n )}\r\n \r\n \r\n \r\n See More\r\n \r\n ) : null} */}\r\n {/* \r\n )} */}\r\n {/* {isMobileView && props.isSearchFormExpanded && (\r\n \r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\r\n {AutoSuggestAriaLabelText}\r\n ) : (\r\n ''\r\n )}\r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\r\n <>\r\n \r\n {(form as ISearchFormViewProps).cancelBtn}\r\n {renderTitle(searchSuggestionHeading, searchText)}\r\n \r\n \r\n \r\n {CategorySuggestionsComponent(\r\n searchTextString,\r\n categorySuggestionHeading,\r\n noResultText,\r\n props,\r\n isLoadingAutoSuggest,\r\n isLoadingNode\r\n )}\r\n {AriSuggestionsComponent(noResultText, props, ariSearchLoading, ariSearchResults, isLoadingNode)}\r\n {KeywordSuggestionsComponent(\r\n KeywordSuggest,\r\n UlKeyword,\r\n keywordsHeading,\r\n noResultText,\r\n autosuggestKeyword,\r\n isLoadingAutoSuggest,\r\n isLoadingNode\r\n )}\r\n \r\n {ProductSuggestionsComponent(\r\n ProductSuggest,\r\n UlProduct,\r\n props,\r\n autosuggestProduct,\r\n isLoadingAutoSuggest,\r\n isLoadingNode\r\n )}\r\n \r\n \r\n ) : null}\r\n \r\n )} */}\r\n \r\n );\r\n};\r\nexport default SearchView;\r\n","import { IActionContext } from '@msdyn365-commerce/core-internal';\r\nimport { getUrlSync } from '@msdyn365-commerce/core';\r\n\r\nexport default function generateAriModelDetailUrl(modelId: string, brandCode: string, actionContext: IActionContext): string {\r\n const _modelDetailModelIdQueryParamKey = 'modelId';\r\n const _modelDetailBrandCodeQueryParamKey = 'brandCode';\r\n const _modelDetailSlug = 'model';\r\n let url = getUrlSync(_modelDetailSlug, actionContext);\r\n if (url) {\r\n url += `${\r\n url.indexOf('?') > -1 ? '&' : '?'\r\n }${_modelDetailModelIdQueryParamKey}=${modelId}&${_modelDetailBrandCodeQueryParamKey}=${brandCode}`;\r\n }\r\n\r\n return url || '';\r\n}\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILink {\n className?: string;\n text?: string;\n href?: string;\n ariaLabel?: string;\n index: string;\n noclick?: boolean;\n telemetryContent: ITelemetryContent;\n}\n\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n\n const linkText = text !== undefined ? text : '';\n payLoad.contentAction.etext = linkText;\n\n // Construct telemetry attribute to render\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n\n return (\n \n {linkText}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface ISeparator {\n separator: string;\n}\n\nexport const Separator: React.FC = ({ separator }) => (\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbData } from './breadcrumb.data';\nimport { IBreadcrumbProps, ILinksData } from './breadcrumb.props.autogenerated';\nimport { Link } from './components/link';\nimport { Separator } from './components/separator';\n\nexport interface IBreadcrumbViewProps extends IBreadcrumbProps {\n root?: React.ReactNode;\n links?: React.ReactNode[];\n backButton?: React.ReactNode;\n separator?: React.ReactNode;\n BreadcrumbContainer: IModuleProps;\n BreadcrumbList: INodeProps;\n BreadcrumbListItem: INodeProps;\n}\n\n/**\n *\n * Breadcrumb component.\n * @extends {React.PureComponent>}\n */\nclass Breadcrumb extends React.PureComponent> {\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n let rootLink = null;\n let breadcrumbLinks = null;\n let backButtonComponent = null;\n rootLink = this._getRootLink();\n const itemPosition = rootLink ? 1 : 0;\n if (this._pageType === 'Category') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\n }\n } else if (this._pageType === 'Product') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n if (breaCrumbType === 'category') {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'categoryAndBack') {\n backButtonComponent = this._getPDPBackButton();\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'back') {\n backButtonComponent = this._getPDPBackButton();\n if (backButtonComponent === null) {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n }\n }\n } else {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n }\n const linkSeparator = ;\n\n const breadcrumbViewProps = {\n ...this.props,\n BreadcrumbContainer: {\n moduleProps: this.props,\n className: classnames('ms-breadcrumb', className),\n tag: 'nav',\n role: 'navigation'\n },\n BreadcrumbList: {\n tag: 'ol' as NodeTag,\n className: 'ms-breadcrumb_list'\n },\n BreadcrumbListItem: {\n tag: 'li',\n className: 'ms-breadcrumb_item'\n },\n root: rootLink,\n links: breadcrumbLinks,\n backButton: backButtonComponent,\n separator: linkSeparator\n };\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\n }\n\n private readonly _getRootLink = (): JSX.Element | null => {\n const { root } = this.props.config;\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\n return null;\n }\n return (\n \n );\n };\n\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\n const { links } = this.props.config;\n\n if (!links || links.length === 0) {\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\n return null;\n }\n const defaultValueToSubtract = 1;\n return links.map((value: ILinksData, index: number) => {\n itemPosition++;\n const keyIndex = index;\n return index !== links.length - defaultValueToSubtract ? (\n \n ) : (\n
    \n {value.linkText}\n
    \n );\n });\n };\n\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\n const { data } = this.props;\n const categoryHierarchy = data.categoryHierarchy.result;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\n return null;\n }\n return categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\n itemPosition++;\n\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\n\n return (\n \n );\n });\n };\n\n /**\n * The function to get translation name for the locale.\n * @param locale - The locale information.\n * @param nameTranslations - The name translations names.\n * @returns - The translation name for the locale.\n */\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n // If friendly name for current locale is null, should use default locale.\n if (nameTranslation === undefined && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations[0];\n }\n\n return nameTranslation?.Text;\n };\n\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\n const { data, config } = this.props;\n const categoryHierarchy = data.categoryPaths.result;\n const product = data.product.result;\n const url = this.props.context.request.url.requestUrl.href;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category path content is empty for the product');\n return null;\n }\n const links: JSX.Element[] = [];\n\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\n itemPosition++;\n links.push(\n \n );\n });\n if (product && !config.hideProductName) {\n itemPosition++;\n links.push(\n \n );\n }\n return links;\n };\n\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed =\n this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\n if (!isBackAllowed) {\n return null;\n }\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\n return null;\n }\n return (\n \n {this.props.resources.backToResultsText}\n \n );\n };\n}\n\nexport default Breadcrumb;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root && (\n \n {root}\n {links && separator}\n \n )}\n {backButton && {backButton}}\n {links &&\n links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n \n \n );\n};\n\nexport default BreadCrumbView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IBusinessSignUpButtonProps {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n link?: string;\n telemetryContent: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const SignUpButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n link,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent, text);\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\n return (\n \n {text}\n \n );\n};\n\nexport default SignUpButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IBusinessSignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n

    {message}

    \n \n );\n};\n\nexport default SignUpError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InputType } from '../business-sign-up';\n\nexport interface IBusinessSignUpInputProps {\n id?: string;\n type: InputType;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IBusinessSignUpInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nexport const SignUpInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n onChange,\n fieldReference\n}) => {\n if (type === InputType.TextArea) {\n return (\n \n );\n }\n\n return (\n \n );\n};\n\nexport default SignUpInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IBusinessSignUpLabelProps {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nexport const SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IBusinessSignUpRadioButtonProps {\n id: string;\n isRequired: boolean;\n options: IBusinessSignUpRadioButtonOptionProps[];\n}\n\nexport interface IBusinessSignUpRadioButtonOptionProps {\n id: string;\n name: string;\n value: string;\n label: string;\n className: string;\n onChange(event: React.ChangeEvent): void;\n}\n\nexport const BusinessSignUpRadioButtonOption: React.FC = props => {\n const { id, name, value, label, className, onChange } = props;\n return (\n
    \n \n \n
    \n );\n};\n\nexport default BusinessSignUpRadioButtonOption;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent, getUrlSync, RichTextComponent, Text } from '@msdyn365-commerce/core';\nimport { Address, BusinessPartnerProspect } from '@msdyn365-commerce/retail-proxy';\nimport { createProspectAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBusinessSignUpConfig, IBusinessSignUpProps } from './business-sign-up.props.autogenerated';\nimport { SignUpButton, SignUpError, SignUpInput, SignUpLabel } from './components';\nimport { IBusinessSignUpRadioButtonOptionProps, BusinessSignUpRadioButtonOption } from './components/sign-up-radio-button';\n\nexport interface IBusinessSignUpExtendedProps extends IBusinessSignUpProps {\n formItems?: IFormItem[];\n}\n\nexport interface IBusinessSignUpItem {\n wrapper: INodeProps;\n isAddressInput?: boolean;\n id: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input?: React.ReactNode;\n}\n\nexport interface IBusinessState {\n isReady: boolean;\n formItems: IFormItem[];\n addressHasErrors: boolean;\n showAddressErrors: boolean;\n hasSubmitErrors: boolean;\n}\n\nexport interface IBusinessSignUpLocalAccount {\n FormWrapper: INodeProps;\n items: IBusinessSignUpItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface IBusinessSignUpViewProps {\n className: string;\n businessSignUp: IModuleProps;\n ContainerWrapper: INodeProps;\n heading: React.ReactNode;\n businessSignUpForm: IBusinessSignUpLocalAccount;\n formItems: IFormItem[];\n}\n\nexport interface IFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n address?: Address;\n customClass?: string;\n fieldReference?: React.RefObject;\n radioButtonOptions?: IBusinessSignUpRadioButtonOptionProps[];\n radioButtonGroupClass?: string;\n}\n\nexport enum InputType {\n // eslint-disable-next-line @typescript-eslint/no-shadow -- Text enum doesn't override the imported Text\n Text = 'text',\n Address = 'address',\n Email = 'email',\n TextArea = 'textarea',\n RadioButton = 'radiobutton'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n Email = 'CompanyEmail',\n CompanyName = 'CompanyName',\n Address = 'CompanyAddress',\n JobTitle = 'JobTitle',\n Size = 'CompanySize',\n Department = 'Department',\n Comment = 'Comment',\n ProspectType = 'ProspectType'\n}\n\nexport const renderInputSection = (\n inputs: IFormItem[],\n className: string,\n needToReset: boolean,\n onInputChange: (event: React.ChangeEvent) => void,\n showErrors: boolean,\n addressForm?: React.ReactNode,\n updateAddress?: (errors: boolean, currAddress?: Address) => void\n): IBusinessSignUpItem[] => {\n return inputs.map((element, index) => {\n const {\n id,\n type,\n label,\n maxChars,\n isRequired,\n pattern,\n customClass,\n value,\n fieldReference,\n radioButtonOptions,\n radioButtonGroupClass\n } = element;\n\n const baseSignUpItem: IBusinessSignUpItem = {\n wrapper: {\n className: classnames(className, `${className}-${id}`, customClass)\n },\n id,\n label: ,\n errorMessage: \n };\n\n if (type === InputType.Address) {\n if (addressForm) {\n baseSignUpItem.isAddressInput = true;\n baseSignUpItem.input = (\n <>\n {React.cloneElement(addressForm as React.ReactElement, {\n updateForm: updateAddress,\n hasError: showErrors,\n isRequired: isRequired === undefined ? false : isRequired,\n resetAddress: needToReset\n })}\n \n );\n } else {\n // If the address slot is not filled, remove this input from the form\n inputs.splice(index, 1);\n }\n } else if (type === InputType.RadioButton) {\n baseSignUpItem.input = (\n
    \n {radioButtonOptions &&\n radioButtonOptions.map((element, index) => {\n return ;\n })}\n
    \n );\n } else {\n baseSignUpItem.input = (\n \n );\n }\n\n return baseSignUpItem;\n });\n};\n\n/**\n *\n * Business Request Form Modules\n * Form that a business can use to submit a request to become a partner with Microsoft.\n * @extends {React.Component>}\n */\nclass BusinessSignUp extends React.Component {\n private readonly moduleClassName: string = 'ms-business-sign-up';\n private readonly prospectRadioButtonName: string = 'business-sign-up-radio-button';\n\n // Used as default data\n // eslint-disable-next-line @typescript-eslint/member-ordering\n public BusinessSignUpDefaultInputs: IFormItem[] = [\n {\n id: InputID.ProspectType,\n type: InputType.RadioButton,\n label: this.props.resources.prospectTypeLabel,\n value: '',\n isRequired: true,\n customClass: 'width-100',\n radioButtonGroupClass: 'radio-option-container',\n radioButtonOptions: [\n {\n id: `${InputID.ProspectType}-buyer`,\n name: this.prospectRadioButtonName,\n value: '1', // Buyer\n label: this.props.resources.prospectTypeBuyerLabel,\n className: `${this.moduleClassName}__form-item-radio-button-option`,\n onChange: this._onInputChange.bind(this)\n },\n {\n id: `${InputID.ProspectType}-seller`,\n name: this.prospectRadioButtonName,\n value: '2', // Seller\n className: `${this.moduleClassName}__form-item-radio-button-option`,\n label: this.props.resources.prospectTypeSellerLabel,\n onChange: this._onInputChange.bind(this)\n }\n ]\n },\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.firstNameLabel,\n value: '',\n isRequired: true,\n customClass: 'width-25'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.lastNameLabel,\n value: '',\n isRequired: true,\n customClass: 'width-25'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.emailAddressLabel,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-50'\n },\n {\n id: InputID.CompanyName,\n type: InputType.Text,\n label: this.props.resources.companyLabel,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Department,\n type: InputType.Text,\n label: this.props.resources.departmentLabel,\n value: '',\n isRequired: false,\n customClass: 'width-50'\n },\n {\n id: InputID.JobTitle,\n type: InputType.Text,\n label: this.props.resources.jobTitleLabel,\n value: '',\n isRequired: false,\n customClass: 'width-50'\n },\n {\n id: InputID.Size,\n type: InputType.Text,\n label: this.props.resources.companySizeLabel,\n value: '',\n isRequired: false,\n customClass: 'width-50'\n },\n {\n id: InputID.Address,\n type: InputType.Address,\n label: this.props.resources.companyAddressLabel,\n value: '',\n isRequired: false,\n customClass: 'width-100'\n },\n {\n id: InputID.Comment,\n type: InputType.TextArea,\n label: this.props.resources.commentLabel,\n value: '',\n isRequired: false,\n customClass: 'width-100'\n }\n ];\n\n private readonly formChildReference: React.RefObject = React.createRef();\n\n private needsToReset: boolean = false;\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IBusinessSignUpExtendedProps) {\n super(props);\n\n this.state = {\n isReady: false,\n formItems: this.props.formItems || this._addedReference(),\n addressHasErrors: false,\n showAddressErrors: false,\n hasSubmitErrors: false\n };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this.formChildReference.current?.focus();\n }\n\n public shouldComponentUpdate(nextProps: IBusinessSignUpExtendedProps, nextState: IBusinessState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const { formItems } = this.state;\n const { className, heading } = config;\n\n const viewProps = {\n ...this.props,\n businessSignUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n ContainerWrapper: {\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n businessSignUpForm: this._renderForm(),\n formItems\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle the heading change event.\n * @param event - Content Editable Event.\n */\n public handleHeadingChange = (event: ContentEditableEvent): void => {\n this.props.config.heading.text = event.target.value;\n };\n\n private _renderForm(): IBusinessSignUpLocalAccount {\n const { config, resources, slots } = this.props;\n const { showAddressErrors, hasSubmitErrors, isReady, formItems } = this.state;\n const {\n signUpButtonArialabel,\n signUpButtonText,\n cancelButtonArialabel,\n cancelButtonText,\n errorMessage,\n partialAddressErrorMessage\n } = resources;\n const addressForm = (slots && slots.addressSlot && slots.addressSlot.length > 0 && slots.addressSlot[0]) || undefined;\n\n const form = {\n FormWrapper: {\n className: `${this.moduleClassName}__form `\n },\n items: renderInputSection(\n formItems,\n `${this.moduleClassName}__form-item`,\n this.needsToReset,\n this._onInputChange.bind(this),\n showAddressErrors,\n addressForm,\n this._onAddressChange\n ),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasSubmitErrors && ,\n showAddressErrors && (\n \n )\n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n\n if (this.needsToReset) {\n this.needsToReset = false;\n }\n\n return form;\n }\n\n private _onInputChange(event: React.ChangeEvent): void {\n const newForm = this.state.formItems;\n newForm.forEach(item => {\n if (item.type === InputType.RadioButton && event.target.name === this.prospectRadioButtonName) {\n item.value = event.target.value;\n } else if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Check if form is ready, update state object with latest values, values have changed so reset hasSubmitErrros\n this.setState({\n isReady: this._isFormReady(),\n formItems: newForm,\n hasSubmitErrors: false\n });\n }\n\n private _addedReference(): IFormItem[] {\n const newFormFields = this.BusinessSignUpDefaultInputs;\n newFormFields[0].fieldReference = this.formChildReference;\n return newFormFields;\n }\n\n private readonly _onAddressChange = (errors: boolean, currentAddress?: Address): void => {\n // Find address item\n const newForm = this.state.formItems;\n const addressItem = newForm.find(item => {\n return item.type === InputType.Address;\n });\n\n // If found --> set to currentAddress\n if (addressItem) {\n addressItem.address = currentAddress;\n\n // Update state with new values and set errors to false if address is not required field\n this.setState(\n {\n formItems: newForm,\n addressHasErrors: errors,\n showAddressErrors: false\n },\n () => {\n this.setState({ isReady: this._isFormReady() });\n }\n );\n }\n };\n\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const currentInput of formItems) {\n // Will return FALSE if:\n // - input field is required\n // IF is address AND addressHasErrors === true\n // ELSE value is undefined OR empty\n // OR\n // - pattern provided and value does not match pattern\n\n if (currentInput.isRequired) {\n if (currentInput.type === InputType.Address) {\n if (this.state.addressHasErrors) {\n return false;\n }\n } else if (currentInput.value === undefined || currentInput.value === '') {\n return false;\n }\n }\n if (currentInput.pattern !== undefined && currentInput.value.match(currentInput.pattern) === null) {\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _onSubmit = (event: React.MouseEvent) => {\n if (this.state.addressHasErrors) {\n this.setState({\n showAddressErrors: true\n });\n\n event.preventDefault();\n return;\n }\n\n const { config, context } = this.props;\n\n // Check for matching id and if not empty\n const firstName = this._getItem(InputID.FirstName);\n const lastName = this._getItem(InputID.LastName);\n const companyName = this._getItem(InputID.CompanyName);\n const companyEmail = this._getItem(InputID.Email);\n const companyAddress = this._getItem(InputID.Address, true);\n const jobTitle = this._getItem(InputID.JobTitle);\n const department = this._getItem(InputID.Department);\n const companySize = this._getItem(InputID.Size);\n const comments = this._getItem(InputID.Comment);\n const prospectType = this._getItem(InputID.ProspectType);\n\n // API gets email as part of the address object, but I do not use the email input from the address component, thus we need to copy it over\n if (companyEmail && companyEmail.value && companyAddress && companyAddress.address) {\n companyAddress.address.Email = companyEmail.value;\n }\n\n const newPartner: BusinessPartnerProspect = {\n FirstName: firstName && firstName.value,\n LastName: lastName && lastName.value,\n CompanyName: companyName && companyName.value,\n Address: companyAddress && companyAddress.address && companyAddress.address,\n JobTitle: jobTitle && jobTitle.value,\n Department: department && department.value,\n CompanySize: (companySize && Number.parseInt(companySize.value, 10)) || 0,\n Comments: comments && comments.value,\n ProspectTypeValue: (prospectType && Number.parseInt(prospectType.value, 10)) || 0\n };\n\n this.setState({\n isReady: false\n });\n\n // Create business partner request\n createProspectAsync({ callerContext: context.actionContext }, newPartner)\n .then(() => {\n const successPageURL =\n (config.confirmationLink && config.confirmationLink.linkUrl && config.confirmationLink.linkUrl.destinationUrl) ||\n getUrlSync('home', this.props.context.actionContext) ||\n '';\n window.location.href = successPageURL;\n })\n .catch(() => {\n this.setState({\n hasSubmitErrors: true\n });\n });\n };\n\n private readonly _onCancel = () => {\n // Reset values of the form\n const cleanForm = this.state.formItems;\n cleanForm.forEach(input => {\n input.value = '';\n });\n\n // Set reset flag so address input will get reset on next renderInputSection() call\n this.needsToReset = true;\n\n this.setState({\n isReady: false,\n formItems: cleanForm,\n addressHasErrors: true,\n showAddressErrors: false,\n hasSubmitErrors: false\n });\n };\n\n private readonly _getItem = (id: string, isAddress: boolean = false) => {\n if (isAddress) {\n return this.state.formItems.find(item => {\n return item.id === id && item.address;\n });\n }\n return this.state.formItems.find(item => {\n return item.id === id && item.value !== '';\n });\n };\n}\n\nexport default BusinessSignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessSignUpItem, IBusinessSignUpViewProps } from './business-sign-up';\n\nconst BusinessSignUpItem: React.FC = ({ wrapper, label, errorMessage, input, isAddressInput }) => {\n // Hide label and error message if rendering address section\n return (\n \n {!isAddressInput && label}\n {!isAddressInput && errorMessage}\n {input}\n \n );\n};\n\nconst BusinesSignUpView: React.FC = props => {\n const { businessSignUp, ContainerWrapper, heading, businessSignUpForm } = props;\n\n const { FormWrapper, buttons, items, errorMessage, disclaimer } = businessSignUpForm;\n\n return (\n \n \n {heading}\n \n {items &&\n items.map((item: IBusinessSignUpItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n \n \n );\n};\n\nexport default BusinesSignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\nimport { KeyCodes } from '@msdyn365-commerce-modules/utilities';\n\nexport interface ISearchBarProps {\n className: string;\n searchPlaceholderLabel: string;\n onSearch(searchText: string): void;\n}\n\nexport interface ISearchBarState {\n searchText: string;\n}\n\nexport class SearchBar extends React.Component {\n constructor(props: ISearchBarProps) {\n super(props);\n this.state = {\n searchText: ''\n };\n }\n\n public render(): JSX.Element {\n const { className, searchPlaceholderLabel } = this.props;\n return (\n
    \n \n
    \n );\n }\n\n private readonly onSearchTextChange = (ev: React.ChangeEvent): void => {\n this.setState({\n searchText: ev.target.value\n });\n };\n\n private readonly onSearch = (): void => {\n this.props.onSearch(this.state.searchText);\n };\n\n private readonly handleKeyUp = (event: React.KeyboardEvent): void => {\n if (event.keyCode === KeyCodes.Enter) {\n this.onSearch();\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 { IComponentProps } from '@msdyn365-commerce/core';\nimport { CommerceException } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, Button } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { moduleClassName } from '../business-partners';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { SearchBar } from './search-bar';\n\n/**\n * Props of DataGrid component.\n */\nexport interface IDataGridProps extends IComponentProps {\n className: string;\n pageSize?: number;\n searchPlaceholderLabel: string;\n defaultSorting?: ISortingInfo;\n resources: IBusinessPartnersResources;\n columns: IDataGridColumn[];\n loadData(): Promise;\n}\n\n/**\n * State of DataGrid component.\n */\nexport interface IDataGridState {\n data: Tdata[];\n paging: IPagingInfo;\n filter: IFilterInfo;\n sorting?: ISortingInfo;\n isLoading: boolean;\n errorMessage: string;\n}\n\nexport interface IPagingInfo {\n index: number;\n}\n\nexport interface IFilterInfo {\n searchText: string;\n}\n\nexport interface ISortingInfo {\n fieldName: string;\n ascending: boolean;\n}\n\n/**\n * Column definition of DataGrid component.\n */\nexport interface IDataGridColumn {\n /**\n * A unique key for identifying the column.\n */\n reactKey: string;\n\n /**\n * Name to render on the column header.\n */\n name: string;\n\n /**\n * Class name added to table cell.\n */\n className?: string;\n\n /**\n * The field to pull the text value from for the column.Can be unset if a custom `onRender` method is provided.\n */\n fieldName?: string;\n\n /**\n * Whether the user can search this column by text.\n */\n isSearchable?: boolean;\n\n /**\n * Custom renderer for cell content, instead of the default text rendering.\n */\n onRender?(item: Tdata): JSX.Element;\n\n /**\n * Event when the table cell is clicked.\n */\n onClick?(item: Tdata): void;\n}\n\nconst defaultPageSize = 10;\n\n/**\n * DataGrid component encapsulates common table functionalities.\n */\nexport class DataGrid extends React.Component, IDataGridState> {\n constructor(props: IDataGridProps) {\n super(props);\n this.state = {\n data: [],\n sorting: props.defaultSorting,\n paging: { index: 0 },\n filter: { searchText: '' },\n isLoading: true,\n errorMessage: ''\n };\n }\n\n public componentDidMount(): void {\n this.loadDataInternal();\n }\n\n public shouldComponentUpdate(nextProps: Readonly>, nextState: Readonly>): boolean {\n return (\n this.props.id !== nextProps.id ||\n this.props.columns !== nextProps.columns ||\n this.state.data !== nextState.data ||\n this.state.paging !== nextState.paging ||\n this.state.filter !== nextState.filter ||\n this.state.isLoading !== nextState.isLoading ||\n this.state.errorMessage !== nextState.errorMessage\n );\n }\n\n public render(): JSX.Element | null {\n const data = this.getDataToDisplay();\n const hasMore = this.hasMore();\n if (this.state.errorMessage) {\n return {this.state.errorMessage};\n }\n if (this.state.isLoading) {\n return {this.props.resources.loadingLabel};\n }\n if (!ArrayExtensions.hasElements(data)) {\n return (\n <>\n \n

    {this.props.resources.noDataMessage}

    \n \n );\n }\n return (\n <>\n \n \n {this.renderGridHeader()}\n {data.map((item, index) => this.renderGridRow(item, index))}\n
    \n {hasMore && (\n
    \n \n
    \n )}\n \n );\n }\n\n /**\n * Renders the TH header in the table.\n * @returns - Header react node.\n */\n private readonly renderGridHeader = () => {\n const className = `${this.props.className}__header`;\n const rowClassName = `${className}__row`;\n return (\n \n \n {this.props.columns.map(column => (\n \n {column.name}\n \n ))}\n \n \n );\n };\n\n /**\n * Renders table row.\n * @param item - Data item for this row.\n * @param index - Index of the row.\n * @returns - Row react node.\n */\n private readonly renderGridRow = (item: Tdata, index: number) => {\n const rowClassName = `${this.props.className}__row`;\n return (\n \n {this.props.columns.map(column => {\n let cell: JSX.Element = <>;\n if (column.onRender) {\n cell = column.onRender(item);\n } else if (column.fieldName) {\n cell = {((item as unknown) as { [key: string]: string })[column.fieldName]};\n }\n return (\n column.onClick?.(item)}>\n {cell}\n \n );\n })}\n \n );\n };\n\n /**\n * Load data for the table.\n * @returns Promise.\n */\n private readonly loadDataInternal = async () => {\n if (!this.props.context.actionContext.requestContext.user.isAuthenticated) {\n this.setState({\n isLoading: false\n });\n return;\n }\n try {\n const result = await this.props.loadData();\n this.setState({\n isLoading: false,\n data: result\n });\n } catch (e) {\n this.setState({\n isLoading: false,\n errorMessage: (e as { data: CommerceException })?.data?.LocalizedMessage || this.props.resources.genericErrorMessage\n });\n }\n };\n\n private readonly onSearch = (searchText: string): void => {\n this.setState({\n paging: { index: 0 },\n filter: { searchText }\n });\n };\n\n private readonly loadMore = (): void => {\n this.setState({\n paging: { index: this.state.paging.index + 1 }\n });\n };\n\n private readonly sortData = (): Tdata[] => {\n const sorting = this.state.sorting;\n if (!sorting) {\n return this.state.data;\n }\n const { fieldName, ascending } = sorting;\n return this.state.data.sort((item1: Tdata, item2: Tdata) => {\n let value1 = ((item1 as unknown) as { [key: string]: string })[fieldName];\n let value2 = ((item2 as unknown) as { [key: string]: string })[fieldName];\n if (typeof value1 === 'string' && typeof value2 === 'string') {\n value1 = value1.toLowerCase();\n value2 = value2.toLowerCase();\n }\n const compareResult = value1 > value2 ? 1 : value1 < value2 ? -1 : 0;\n return ascending ? compareResult : compareResult * -1;\n });\n };\n\n private readonly filterData = (): Tdata[] => {\n const column = this.props.columns.find(c => c.isSearchable);\n const searchText = this.state.filter.searchText;\n return this.sortData().filter(item => {\n if (!column?.fieldName || !searchText) {\n return true;\n }\n const columnValue = ((item as unknown) as { [key: string]: string })[column.fieldName];\n return columnValue && columnValue.toLowerCase().indexOf(searchText.trim().toLowerCase()) >= 0;\n });\n };\n\n private readonly getDataToDisplay = (): Tdata[] => {\n const itemsCount = (this.props.pageSize || defaultPageSize) * (this.state.paging.index + 1);\n const filteredItems = this.filterData();\n return filteredItems.slice(0, itemsCount);\n };\n\n private readonly hasMore = (): boolean => {\n const itemsCount = (this.props.pageSize || defaultPageSize) * (this.state.paging.index + 1);\n const filteredItems = this.filterData();\n return filteredItems.length > itemsCount;\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps } from '@msdyn365-commerce/core';\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React, { ReactNode } from 'react';\nimport { isMobile, Node, VariantType } from '@msdyn365-commerce-modules/utilities';\n\nimport { BusinessPartner, BusinessPartnerUser, BusinessPartnersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { IBusinessPartnersResources } from '../business-partners.props.autogenerated';\nimport { DataGrid, IDataGridColumn } from './data-grid';\n\n/**\n * View model of business partner user, used to display.\n */\nexport interface IBusinessPartnerUserViewModel extends BusinessPartnerUser {\n name: string;\n spendingLimit: ReactNode;\n}\n\n/**\n * Props of BusinessPartnerUsersTable.\n */\nexport interface IBusinessPartnerUsersTableProps extends IComponentProps {\n className: string;\n pageSize?: number;\n businessPartner: BusinessPartner;\n resources: IBusinessPartnersResources;\n onSelect(businessPartnerUser: BusinessPartnerUser): void;\n}\n\n/**\n * BusinessPartnerUsersTable component.\n */\nexport class BusinessPartnerUsersTable extends React.Component {\n public shouldComponentUpdate(nextProps: Readonly): boolean {\n return this.props.id !== nextProps.id;\n }\n\n public render(): JSX.Element {\n return (\n \n );\n }\n\n /**\n * Get column definition of the table.\n * @returns - Columns.\n */\n private readonly getColumns = (): IDataGridColumn[] => {\n const isMobileDevice = isMobile({ variant: VariantType.Viewport, context: this.props.context.request }) === 'xs';\n\n return [\n {\n reactKey: 'name',\n name: this.props.resources.businessUserTableNameHeadingText,\n isSearchable: true,\n fieldName: 'name',\n onClick: this.props.onSelect,\n onRender: (data: IBusinessPartnerUserViewModel) => {data.name}\n },\n {\n reactKey: 'email',\n name: this.props.resources.businessUserTableEmailHeadingText,\n fieldName: 'Email',\n onClick: this.props.onSelect\n },\n {\n reactKey: 'spendingLimit',\n name: this.props.resources.businessUserTableSpendingLimitHeadingText,\n className: `${this.props.className}__row__column-with-number`,\n fieldName: 'spendingLimit',\n onClick: !isMobileDevice ? this.props.onSelect : undefined\n }\n ];\n };\n\n /**\n * Call retail proxy to get business partner users.\n * @returns - Business partner users view model.\n */\n private readonly getBusinessPartnerUsers = async (): Promise => {\n const businessPartners = await BusinessPartnersDataActions.getUsersAsync(\n {\n callerContext: this.props.context.actionContext,\n bypassCache: 'get',\n queryResultSettings: {}\n },\n this.props.businessPartner.BusinessPartnerId\n );\n return businessPartners\n .filter(user => user.StatusValue === 1)\n .map(user => {\n return {\n ...user,\n name: `${user.FirstName} ${user.LastName}`,\n spendingLimit: (\n \n {!ObjectExtensions.isNullOrUndefined(user.SpendingLimit)\n ? this.props.context.cultureFormatter.formatCurrency(user.SpendingLimit.toString())\n : ''}\n {!ObjectExtensions.isNullOrUndefined(user.SpendingLimit) && user.SpendingLimit === 0 ? (\n \n