{"version":3,"file":"static/js/9.cd963cb2388a8377551a.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/invoices-list.view.tsx?38e4","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/media-gallery.view.tsx?87fd","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/order-confirmation.view.tsx?6e38","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/order-history.view.tsx?e453","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/checkout-section-container.view.tsx?8c27","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/invoices-list.view.tsx?e526","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/media-gallery.view.tsx?0cc7","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/order-confirmation.view.tsx?4222","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/order-history.view.tsx?d255","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?8281","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?44e9","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?95ac","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/components/terms-paragraph.tsx?1a9a","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/business-partner-promotion.tsx?df24","webpack://Msdyn365.Commerce.Online/./src/modules/business-partner-promotion/business-partner-promotion.view.tsx?1ff2","webpack://Msdyn365.Commerce.Online/../../src/checkout-state-data-action.ts?8344","webpack://Msdyn365.Commerce.Online/../../src/checkout-state.ts?acd8","webpack://Msdyn365.Commerce.Online/../../src/checkout-utilities.data.ts?b2cc","webpack://Msdyn365.Commerce.Online/../../../src/module-state-manager/module-state.ts?7579","webpack://Msdyn365.Commerce.Online/../../../src/module-state-manager/with-module-state.tsx?61ca","webpack://Msdyn365.Commerce.Online/./src/checkout-errors/checkout-errors.ts?a9e0","webpack://Msdyn365.Commerce.Online/./src/common/error.tsx?096f","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-customer-account-payment/components/get-account-payment-form-edit-mode.tsx?83e6","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-customer-account-payment/components/get-account-payment-form-summary-mode.tsx?5675","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-customer-account-payment/checkout-customer-account-payment.tsx?de67","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-customer-account-payment/checkout-customer-account-payment.view.tsx?79c6","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-pickup/components/checkout-pickup-group.tsx?9de7","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-pickup/components/checkout-pickup-utility.ts?b7eb","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-pickup/components/checkout-pickup-date-dropdown.tsx?e5a3","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-pickup/components/checkout-pickup-timeslot-dropdown.tsx?aef8","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-pickup/checkout-pickup.tsx?28aa","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-pickup/checkout-pickup.view.tsx?d64e","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-terms-and-conditions/components/checkout-terms-and-conditions.check-box.tsx?3b17","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-terms-and-conditions/components/checkout-terms-and-conditions.error-message.tsx?c6a5","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-terms-and-conditions/components/checkout-terms-and-conditions.error-title.tsx?f908","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-terms-and-conditions/checkout-terms-and-conditions.tsx?9243","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-terms-and-conditions/checkout-terms-and-conditions.view.tsx?26e8","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/components/accept-button.tsx?8e73","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/components/links.tsx?97b8","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/cookie-compliance.tsx?02ac","webpack://Msdyn365.Commerce.Online/./src/modules/cookie-compliance/cookie-compliance.view.tsx?a33f","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/header.view.tsx?6d84","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/navigation-menu.view.tsx?bc23","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/search-result-container.view.tsx?89df","webpack://Msdyn365.Commerce.Online/./src/modules/back-top-footer/back-top-footer.tsx?f47e","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-view-mode-selector.component.tsx?6452","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison-button/product-comparison-button.tsx?9384","webpack://Msdyn365.Commerce.Online/./src/modules/product-comparison-button/product-comparison-button.view.tsx?94a7","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/components/promocode.component.tsx?c06b","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/content-block.view.tsx?0db4","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/footer-item.view.tsx?15be"],"sourcesContent":["/*--------------------------------------------------------------\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 } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport MsDyn365 from \"@msdyn365-commerce/core\";\r\nimport { IInvoicesListViewProps } from '@msdyn365-commerce-modules/invoice/src/modules/invoices-list/./invoices-list';\r\n\r\nexport const InvoiceListView: React.FC = props => {\r\n const { header, filter, content, invoiceRequestModal, pagination } = props;\r\n if (MsDyn365.isBrowser) {\r\n const linksElements = document.querySelectorAll('a.msc-invoices-list__container__content__table__row__open-invoice');\r\n console.log(linksElements);\r\n linksElements.forEach(l => l.setAttribute('href', '#'));\r\n }\r\n return (\r\n \r\n {header}\r\n {invoiceRequestModal}\r\n {filter}\r\n {content}\r\n {pagination}\r\n \r\n );\r\n};\r\n\r\nexport default InvoiceListView;\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, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport { IMediaGalleryThumbnailItemViewProps,\r\n IMediaGalleryThumbnailsViewProps,\r\n IMediaGalleryViewProps\r\n} from '@msdyn365-commerce-modules/media-gallery';\r\nimport { Button, KeyCodes, Module, Node, NodeTag } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport React from 'react';\r\n\r\n/**\r\n * Render the thumbnail item images.\r\n * @param thumbnail - The carousel thumbnail line props.\r\n * @returns Return HTML having thumnailcontainer props with image.\r\n */\r\nconst renderThumbnailItem = (thumbnail: IMediaGalleryThumbnailItemViewProps): JSX.Element => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\r\n const { ThumbnailItemContainerProps, Picture } = thumbnail;\r\n\r\n return (\r\n \r\n {Picture}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Gets the thumbnail item to display media gallery images.\r\n * @param image - The media gallery images.\r\n * @param imageSettings - Image settings for the image gallery items.\r\n * @param imageId - Image id.\r\n * @param modifiedActiveIndex - Modified Index of the images when selection changes.\r\n * @param props - The Media gallery view props from business layer.\r\n * @returns Return thumbnail view props which will be used to render images.\r\n */\r\nconst GetThumbnailItemComponent = (\r\n image: IImageData,\r\n imageSettings: IImageSettings,\r\n imageId: number,\r\n modifiedActiveIndex: number,\r\n props: IMediaGalleryViewProps\r\n): IMediaGalleryThumbnailItemViewProps => {\r\n\r\n /**\r\n * OnClick method of media gallery item.\r\n * */\r\n const onClick = () => {\r\n props.callbackToggle?.();\r\n props.callbackThumbnailClick?.(imageId);\r\n props.state.activeIndex = imageId;\r\n };\r\n\r\n const classes = classnames(\r\n 'ms-media-gallery__thumbnail-item',\r\n modifiedActiveIndex === imageId ? 'ms-media-gallery__thumbnail-item-active' : ''\r\n );\r\n\r\n /**\r\n * Keydown event of media gallery item.\r\n * @param event - React.KeyboardEvent.\r\n * */\r\n const handleKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === KeyCodes.Enter) {\r\n event.preventDefault();\r\n onClick();\r\n }\r\n };\r\n\r\n return {\r\n ThumbnailItemContainerProps: {\r\n tag: 'li' as NodeTag,\r\n className: classes,\r\n role: 'presentation',\r\n key: imageId\r\n },\r\n Picture: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n};\r\n\r\n/**\r\n * Gets the empty thumbnail item to display media gallery images.\r\n * @param imageSettings - Image settings for the image gallery items.\r\n * @param props - The Media gallery view props from business layer.\r\n * @returns Return thumbnail view props which will be used to render empty images.\r\n */\r\nconst GetEmptyThumbnailItemComponent = (imageSettings: IImageSettings, props: IMediaGalleryViewProps): IMediaGalleryThumbnailItemViewProps => {\r\n return {\r\n ThumbnailItemContainerProps: {\r\n tag: 'li' as NodeTag,\r\n className: 'ms-media-gallery__thumbnail-item',\r\n role: 'tab',\r\n tabIndex: 0,\r\n key: 0,\r\n 'aria-label': '',\r\n 'aria-selected': true\r\n },\r\n Picture: (\r\n \r\n )\r\n };\r\n};\r\n\r\n/**\r\n * Update media gallery items method.\r\n * @param items - The media gallery thumbnail item view props.\r\n * @returns The IImageData array.\r\n */\r\nconst getMediaGalleryItems = (items?: IMediaGalleryThumbnailItemViewProps[]): IImageData[] | undefined => {\r\n return items?.map(item => {\r\n return {\r\n altText: item.Picture.props.altText,\r\n src: item.Picture.props.src\r\n };\r\n });\r\n};\r\n\r\nconst defaultThumbnailImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 },\r\n xl: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n};\r\n\r\n/**\r\n * Render the Media gallery thumbnails to represent images in grid view.\r\n * @param thumbnails - The thumbnail view props.\r\n * @param props - The media gallery view props.\r\n * @returns - The single slide carousel component to render as media gallery image.\r\n */\r\nconst renderThumbnails = (\r\n thumbnails: IMediaGalleryThumbnailsViewProps,\r\n props: IMediaGalleryViewProps\r\n): JSX.Element => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\r\n const { ThumbnailsContainerProps, SingleSlideCarouselComponentProps } = thumbnails;\r\n const { state, Thumbnails } = props;\r\n const mediaGalleryItems = getMediaGalleryItems(Thumbnails.items);\r\n\r\n const items: IMediaGalleryThumbnailItemViewProps[] | undefined =\r\n // eslint-disable-next-line multiline-ternary -- need multiline for easy code reading\r\n state.lastUpdate && mediaGalleryItems && mediaGalleryItems[0].src === 'empty' ? [GetEmptyThumbnailItemComponent(defaultThumbnailImageSettings, props)] :\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery\r\n mediaGalleryItems?.map((item: IImageData, id: number) => GetThumbnailItemComponent(item,\r\n defaultThumbnailImageSettings, id, state.activeIndex, props));\r\n\r\n return (\r\n \r\n \r\n {items?.map(renderThumbnailItem)}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render the Media gallery items using viewprops.\r\n * @param props - The media gallery view props.\r\n * @returns The media gallery module wrapping up images node.\r\n */\r\nconst mediaGalleryView: React.FC = props => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\r\n const { CarouselProps, Thumbnails, MediaGallery, Modal } = props;\r\n return (\r\n \r\n \r\n {Modal}\r\n {renderThumbnails(Thumbnails, props)}\r\n \r\n );\r\n};\r\n\r\nexport default mediaGalleryView;\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 { IModuleProps, INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nimport {\r\n IHelp,\r\n IOrderSummary,\r\n IPaymentMethods\r\n} from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common';\r\nimport {\r\n IGroup,\r\n IGroupDelivery,\r\n IGroups\r\n} from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-groups';\r\n// import { IOrderInformation } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-order-information';\r\nimport { ISalesLine } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-sales-line';\r\nimport { IOrderConfirmationData } from '@msdyn365-commerce-modules/order-management';\r\nimport { SalesOrder } from '@msdyn365-commerce/retail-proxy';\r\nimport { IOrderConfirmationProps, IChargeLinesBreakdownData } from '../definition-extensions/order-confirmation.ext.props.autogenerated';\r\nimport _ from 'lodash';\r\n\r\nexport interface IOrderConfirmationViewProps extends IOrderConfirmationProps {\r\n moduleProps: IModuleProps;\r\n salesOrder?: SalesOrder;\r\n footerProps?: INodeProps;\r\n alert?: React.ReactNode;\r\n loading?: React.ReactNode;\r\n heading: React.ReactNode;\r\n backToShoppingLink?: React.ReactNode;\r\n orderInfomation?: IOrderInformation;\r\n salesLines?: ISalesLine[];\r\n groups?: IGroups;\r\n orderSummary?: IOrderSummary;\r\n payment?: IPaymentMethods;\r\n help?: IHelp;\r\n IChargeLinesBreakdownData?: IChargeLinesBreakdownData;\r\n}\r\n\r\nexport interface IOrderInformation {\r\n orderInformationProps: INodeProps;\r\n channelName: React.ReactNode;\r\n channelAddress: React.ReactNode;\r\n placedBy?: React.ReactNode;\r\n salesId: React.ReactNode;\r\n receiptId: React.ReactNode;\r\n receiptEmail: React.ReactNode;\r\n createdDate: React.ReactNode;\r\n count: React.ReactNode;\r\n amount: React.ReactNode;\r\n channelReferenceId: React.ReactNode;\r\n note?: React.ReactNode;\r\n props: IOrderConfirmationViewProps;\r\n}\r\n\r\ninterface IPaymentMethodsExt extends IPaymentMethods {\r\n totalOnAccount?: string;\r\n}\r\n\r\nexport const OrderConfirmationOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n // receiptEmail,\r\n createdDate,\r\n channelReferenceId,\r\n props\r\n}) => {\r\n return (\r\n \r\n {createdDate}\r\n {channelReferenceId}\r\n {renderEmailMessage(props)}\r\n \r\n );\r\n};\r\n\r\nexport const renderEmailMessage = (props: IOrderConfirmationViewProps) => {\r\n const {\r\n resources: {\r\n receiptMessageWithEmail,\r\n receiptMessageNoEmail\r\n },\r\n data: {\r\n orderHydration\r\n }\r\n } = props;\r\n const email = orderHydration.result?.salesOrder.ReceiptEmail;\r\n let emailMessage = receiptMessageNoEmail;\r\n if (email) {\r\n emailMessage = receiptMessageWithEmail.replace('{email}', email);\r\n }\r\n \r\n // const email = _.get(receiptEmail as object, 'props.children[1].props.children');\r\n // const messageParts = receiptMessage.split('{email}');\r\n return (\r\n \r\n \r\n {/* {messageParts[0]} */}\r\n {/* {email} */}\r\n {/* {messageParts[1]} */}\r\n \r\n );\r\n};\r\n\r\nexport const OrderConfirmationSalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton }) => (\r\n {salesLine}\r\n);\r\n\r\nexport const OrderConfirmationGroupDelivery: React.FC = ({\r\n deliveryProps,\r\n heading,\r\n // count,\r\n // processing,\r\n address,\r\n // trackingInfo,\r\n pickupDateTimeslot\r\n}) => (\r\n \r\n {heading}\r\n {address}\r\n {pickupDateTimeslot}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\r\n \r\n {delivery && }\r\n {delivery && delivery.shippingItemsToYou}\r\n {salesLines && (\r\n \r\n {salesLines.map((salesLine: ISalesLine) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group: IGroup, index: number) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const otherChargesLines = (props: IOrderConfirmationViewProps) => {\r\n const [chargeLines, setChargeLines] = React.useState([]);\r\n const [loading, setLoading] = React.useState(true);\r\n\r\n React.useEffect(() => {\r\n const fetchOtherChargesLines = async () => {\r\n const chargeCodes = props.config.chargeLinesBreakdown;\r\n\r\n let lines = props.data.orderHydration.result?.salesOrder.ChargeLines;\r\n let linesNode: React.ReactNode[] = [];\r\n let otherChargeTotal = props.data.orderHydration.result?.salesOrder.ChargeAmount || 0;\r\n let currencyFormatter = props.context.cultureFormatter.formatCurrency;\r\n\r\n chargeCodes?.map(c => {\r\n const node = lines\r\n ?.filter(line => line.ChargeCode === c.chargeCode)\r\n .map(r => {\r\n otherChargeTotal -= r.CalculatedAmount || 0;\r\n return renderLineChargeNode(c.chargeLineLabel || '', currencyFormatter(r.CalculatedAmount?.toString() ?? ''));\r\n });\r\n linesNode.push(node);\r\n });\r\n\r\n if (otherChargeTotal >= 0.01) {\r\n const otherChargesNode = renderLineChargeNode(\r\n props.resources.otherChargeLabel,\r\n currencyFormatter(otherChargeTotal.toString() ?? '')\r\n );\r\n linesNode.push(otherChargesNode);\r\n }\r\n\r\n setChargeLines(linesNode);\r\n setLoading(false);\r\n };\r\n\r\n fetchOtherChargesLines();\r\n }, [props.context.actionContext, props.config.chargeLinesBreakdown, props.context.cultureFormatter]);\r\n\r\n if (loading) {\r\n return
Loading...
;\r\n }\r\n\r\n return <>{chargeLines};\r\n};\r\n\r\nexport const renderLineChargeNode = (chargeName: string, chargeAmount: string): React.ReactNode => {\r\n return (\r\n

\r\n {chargeName}\r\n \r\n {chargeAmount}\r\n \r\n

\r\n );\r\n};\r\n\r\nexport const renderTaxLine = (props: IOrderConfirmationViewProps): React.ReactNode => {\r\n const taxAmount = props.data.orderHydration.result?.salesOrder.TaxAmount;\r\n let currencyFormatter = props.context.cultureFormatter.formatCurrency;\r\n return renderLineChargeNode(props.resources.taxLabel, currencyFormatter(taxAmount!.toString() ?? ''));\r\n};\r\n\r\nexport const OrderConfirmationOrderSummary: React.FC = props => {\r\n const orderSummary = props.orderSummary;\r\n\r\n return (\r\n \r\n {orderSummary?.heading}\r\n {orderSummary?.subtotal}\r\n {props.config.displayShippingline && orderSummary?.shipping}\r\n {otherChargesLines(props)}\r\n {props.config.displayTaxNote ? (\r\n

{props.resources.taxAmountNote}

\r\n ) : (\r\n renderTaxLine(props)\r\n )}\r\n\r\n {orderSummary?.totalAmount}\r\n {orderSummary?.earnedPoints}\r\n
\r\n );\r\n};\r\n\r\nexport const OrderConfirmationPayment: React.FC = ({ paymentMethodsProps, title, methods, totalOnAccount }) => (\r\n \r\n {title}\r\n {totalOnAccount ?

On Account: {totalOnAccount}

: null}\r\n {methods}\r\n
\r\n);\r\n\r\nexport const OrderConfirmationHelp: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\nconst OrderConfirmationView: React.FC = props => {\r\n const {\r\n moduleProps,\r\n heading,\r\n backToShoppingLink,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups,\r\n context: {\r\n cultureFormatter: { formatCurrency }\r\n }\r\n } = props;\r\n\r\n const tenderLines = props.data.orderHydration.result?.salesOrder?.TenderLines;\r\n let totalOnAccount = 0;\r\n if (tenderLines) {\r\n totalOnAccount = tenderLines.map(tl => tl.AmountInCompanyCurrency || 0).reduce((num, total) => num + total, 0);\r\n }\r\n console.log(totalOnAccount);\r\n\r\n return (\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {orderInfomation && }\r\n {backToShoppingLink}\r\n {groups && }\r\n {payment && (\r\n 0 ? formatCurrency(totalOnAccount) : undefined} />\r\n )}\r\n {orderSummary && }\r\n {help && }\r\n \r\n );\r\n};\r\n\r\nexport default OrderConfirmationView;\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 { IGroup, IGroupDelivery, IGroups, IHeader, IList, IOrderHistoryViewProps, IOrderInformation, ISalesOrder } from '@msdyn365-commerce-modules/order-management';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const OrderHistoryOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n salesId,\r\n receiptId,\r\n channelName,\r\n createdDate,\r\n count,\r\n amount\r\n // channelReferenceId\r\n}) => (\r\n \r\n {channelName}\r\n {salesId}\r\n {receiptId}\r\n {createdDate}\r\n {count}\r\n {amount}\r\n {/* {channelReferenceId} */}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo }) => (\r\n \r\n {heading}\r\n {count}\r\n {processing}\r\n {address}\r\n {trackingInfo}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\r\n \r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n \r\n {salesLine.salesLine}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\r\n \r\n {heading}\r\n {orderCountLabel}\r\n {extraActions}\r\n \r\n);\r\n\r\nexport const OrderHistorySalesOder: React.FC = ({ salesOrderProps, orderInfomation, groups, orderDetailsLink, expandProductsButton }) => (\r\n \r\n {orderInfomation && }\r\n {groups && }\r\n {expandProductsButton}\r\n {orderDetailsLink}\r\n \r\n);\r\n\r\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\r\n \r\n {salesOrders && salesOrders.map((salesOrder, index) => )}\r\n \r\n);\r\n\r\nconst OrderHistoryView: React.FC = ({\r\n orderHistoryProps,\r\n header,\r\n alert,\r\n loading,\r\n emptyMessage,\r\n backToShoppingLink,\r\n list,\r\n table,\r\n moreButton\r\n}) => (\r\n \r\n {header && }\r\n {loading}\r\n {alert && (\r\n <>\r\n {alert}\r\n {backToShoppingLink}\r\n \r\n )}\r\n {emptyMessage && (\r\n \r\n {emptyMessage}\r\n {backToShoppingLink}\r\n \r\n )}\r\n {list && }\r\n {table}\r\n {moreButton && moreButton}\r\n \r\n);\r\n\r\nexport default OrderHistoryView;\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 { ICheckoutSectionContainerItem, ICheckoutSectionContainerViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-section-container/./checkout-section-container';\r\n\r\nconst ItemComponent: React.FC = ({ loading, itemProps, item }) => (\r\n <>\r\n {loading}\r\n \r\n {item}\r\n \r\n \r\n);\r\n\r\nconst CheckoutSectionContainerView: React.FC = ({ checkoutPlainContainerProps, items }) => {\r\n return(\r\n \r\n {items.map(item => {\r\n // remove the hidden classname that is given in the checkout-section-container\r\n item.itemProps = { ...item.itemProps,\r\n className: 'ms-checkout-section-container__item'\r\n }\r\n return \r\n })}\r\n \r\n )\r\n};\r\n\r\nexport default CheckoutSectionContainerView;\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 } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n// import MsDyn365 from \"@msdyn365-commerce/core\";\r\nimport { IInvoicesListViewProps } from '@msdyn365-commerce-modules/invoice/src/modules/invoices-list/./invoices-list';\r\n\r\nexport const InvoiceListView: React.FC = props => {\r\n const { header, filter, content, invoiceRequestModal, pagination } = props;\r\n // if (MsDyn365.isBrowser) {\r\n // const linksElements = document.querySelectorAll('a.msc-invoices-list__container__content__table__row__open-invoice');\r\n // console.log(linksElements);\r\n // linksElements.forEach(l => l.setAttribute('href', '#'));\r\n // }\r\n return (\r\n \r\n {header}\r\n {invoiceRequestModal}\r\n {filter}\r\n {content}\r\n {pagination}\r\n \r\n );\r\n};\r\n\r\nexport default InvoiceListView;\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, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport { IMediaGalleryThumbnailItemViewProps,\r\n IMediaGalleryThumbnailsViewProps,\r\n IMediaGalleryViewProps\r\n} from '@msdyn365-commerce-modules/media-gallery';\r\nimport { Button, KeyCodes, Module, Node, NodeTag } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport React from 'react';\r\n\r\n/**\r\n * Render the thumbnail item images.\r\n * @param thumbnail - The carousel thumbnail line props.\r\n * @returns Return HTML having thumnailcontainer props with image.\r\n */\r\nconst renderThumbnailItem = (thumbnail: IMediaGalleryThumbnailItemViewProps): JSX.Element => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\r\n const { ThumbnailItemContainerProps, Picture } = thumbnail;\r\n\r\n return (\r\n \r\n {Picture}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Gets the thumbnail item to display media gallery images.\r\n * @param image - The media gallery images.\r\n * @param imageSettings - Image settings for the image gallery items.\r\n * @param imageId - Image id.\r\n * @param modifiedActiveIndex - Modified Index of the images when selection changes.\r\n * @param props - The Media gallery view props from business layer.\r\n * @returns Return thumbnail view props which will be used to render images.\r\n */\r\nconst GetThumbnailItemComponent = (\r\n image: IImageData,\r\n imageSettings: IImageSettings,\r\n imageId: number,\r\n modifiedActiveIndex: number,\r\n props: IMediaGalleryViewProps\r\n): IMediaGalleryThumbnailItemViewProps => {\r\n\r\n /**\r\n * OnClick method of media gallery item.\r\n * */\r\n const onClick = () => {\r\n props.callbackToggle?.();\r\n props.callbackThumbnailClick?.(imageId);\r\n props.state.activeIndex = imageId;\r\n };\r\n\r\n const classes = classnames(\r\n 'ms-media-gallery__thumbnail-item',\r\n modifiedActiveIndex === imageId ? 'ms-media-gallery__thumbnail-item-active' : ''\r\n );\r\n\r\n /**\r\n * Keydown event of media gallery item.\r\n * @param event - React.KeyboardEvent.\r\n * */\r\n const handleKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === KeyCodes.Enter) {\r\n event.preventDefault();\r\n onClick();\r\n }\r\n };\r\n\r\n return {\r\n ThumbnailItemContainerProps: {\r\n tag: 'li' as NodeTag,\r\n className: classes,\r\n role: 'presentation',\r\n key: imageId\r\n },\r\n Picture: (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n };\r\n};\r\n\r\n/**\r\n * Gets the empty thumbnail item to display media gallery images.\r\n * @param imageSettings - Image settings for the image gallery items.\r\n * @param props - The Media gallery view props from business layer.\r\n * @returns Return thumbnail view props which will be used to render empty images.\r\n */\r\nconst GetEmptyThumbnailItemComponent = (imageSettings: IImageSettings, props: IMediaGalleryViewProps): IMediaGalleryThumbnailItemViewProps => {\r\n return {\r\n ThumbnailItemContainerProps: {\r\n tag: 'li' as NodeTag,\r\n className: 'ms-media-gallery__thumbnail-item',\r\n role: 'tab',\r\n tabIndex: 0,\r\n key: 0,\r\n 'aria-label': '',\r\n 'aria-selected': true\r\n },\r\n Picture: (\r\n \r\n )\r\n };\r\n};\r\n\r\n/**\r\n * Update media gallery items method.\r\n * @param items - The media gallery thumbnail item view props.\r\n * @returns The IImageData array.\r\n */\r\nconst getMediaGalleryItems = (items?: IMediaGalleryThumbnailItemViewProps[]): IImageData[] | undefined => {\r\n return items?.map(item => {\r\n return {\r\n altText: item.Picture.props.altText,\r\n src: item.Picture.props.src\r\n };\r\n });\r\n};\r\n\r\nconst defaultThumbnailImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 },\r\n xl: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n};\r\n\r\n/**\r\n * Render the Media gallery thumbnails to represent images in grid view.\r\n * @param thumbnails - The thumbnail view props.\r\n * @param props - The media gallery view props.\r\n * @returns - The single slide carousel component to render as media gallery image.\r\n */\r\nconst renderThumbnails = (\r\n thumbnails: IMediaGalleryThumbnailsViewProps,\r\n props: IMediaGalleryViewProps\r\n): JSX.Element => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\r\n const { ThumbnailsContainerProps, SingleSlideCarouselComponentProps } = thumbnails;\r\n const { state, Thumbnails } = props;\r\n const mediaGalleryItems = getMediaGalleryItems(Thumbnails.items);\r\n\r\n const items: IMediaGalleryThumbnailItemViewProps[] | undefined =\r\n // eslint-disable-next-line multiline-ternary -- need multiline for easy code reading\r\n state.lastUpdate && mediaGalleryItems && mediaGalleryItems[0].src === 'empty' ? [GetEmptyThumbnailItemComponent(defaultThumbnailImageSettings, props)] :\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery\r\n mediaGalleryItems?.map((item: IImageData, id: number) => GetThumbnailItemComponent(item,\r\n defaultThumbnailImageSettings, id, state.activeIndex, props));\r\n\r\n return (\r\n \r\n \r\n {items?.map(renderThumbnailItem)}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render the Media gallery items using viewprops.\r\n * @param props - The media gallery view props.\r\n * @returns The media gallery module wrapping up images node.\r\n */\r\nconst mediaGalleryView: React.FC = props => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\r\n const { CarouselProps, Thumbnails, MediaGallery, Modal } = props;\r\n return (\r\n \r\n \r\n {Modal}\r\n {renderThumbnails(Thumbnails, props)}\r\n \r\n );\r\n};\r\n\r\nexport default mediaGalleryView;\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 { IHelp, IOrderSummary, IPaymentMethods } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common';\r\nimport { IGroup, IGroupDelivery, IGroups } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-groups';\r\nimport { IOrderInformation } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-order-information';\r\nimport { ISalesLine } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-sales-line';\r\nimport { IOrderConfirmationViewProps } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/./order-confirmation';\r\nimport { SalesOrder } from \"@msdyn365-commerce/retail-proxy\";\r\n\r\ninterface IPaymentMethodsExt extends IPaymentMethods {\r\n totalOnAccount?: string;\r\n}\r\n\r\n\r\nexport const OrderConfirmationOrderInfomation: React.FC = ({\r\n orderInformationProps\r\n // receiptEmail,\r\n // createdDate\r\n // channelReferenceId\r\n}) => (\r\n \r\n {/* {createdDate} */}\r\n {/* {channelReferenceId} */}\r\n {/* {receiptEmail} */}\r\n \r\n);\r\n\r\nexport const OrderConfirmationSalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton }) => (\r\n \r\n {salesLine}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo, pickupDateTimeslot }) => (\r\n \r\n {heading}\r\n {address}\r\n {pickupDateTimeslot}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\r\n \r\n {delivery && }\r\n {delivery && delivery.shippingItemsToYou}\r\n {salesLines && (\r\n \r\n {salesLines.map((salesLine: ISalesLine) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group: IGroup, index: number) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderConfirmationOrderSummary: React.FC = ({ orderSummaryProps, heading, subtotal, shipping, tax, totalAmount, earnedPoints }) => (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n);\r\n\r\nexport const OrderConfirmationPayment: React.FC = ({ paymentMethodsProps, title, methods, totalOnAccount }) => \r\n {title}\r\n {totalOnAccount ?

On Account: {totalOnAccount}

: null}\r\n {methods}\r\n
;\r\n\r\nexport const OrderConfirmationHelp: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\nconst _renderOrderTable = (salesOrder: SalesOrder) => {\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {salesOrder.SalesLines?.map(so => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
Item IdDescriptionPriceQuantityTotal
{so.ItemId}{so.Description}{so.Price}{so.Quantity}{so.TotalAmount}
\r\n )\r\n}\r\n\r\n\r\nconst OrderConfirmationView: React.FC = (props) => {\r\n const {\r\n moduleProps,\r\n heading,\r\n backToShoppingLink,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups,\r\n data: { orderHydration },\r\n context: { cultureFormatter: { formatCurrency }}\r\n } = props;\r\n const tenderLines = props.data.orderHydration.result?.salesOrder.TenderLines;\r\n let totalOnAccount = 0;\r\n if (tenderLines) {\r\n totalOnAccount = tenderLines.map(tl => tl.AmountInCompanyCurrency || 0).reduce((num, total) => num + total, 0);\r\n }\r\n\r\n\r\n return (\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {orderInfomation && }\r\n {orderHydration?.result?.salesOrder && _renderOrderTable(orderHydration?.result?.salesOrder)}\r\n {backToShoppingLink}\r\n {groups && }\r\n {payment && 0 ? formatCurrency(totalOnAccount) : undefined}\r\n />}\r\n {orderSummary && }\r\n {help && }\r\n \r\n );\r\n};\r\n\r\nexport default OrderConfirmationView;\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 { IGroup, IGroupDelivery, IGroups, IHeader, IList, IOrderHistoryViewProps, IOrderInformation, ISalesOrder } from '@msdyn365-commerce-modules/order-management';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const OrderHistoryOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n salesId,\r\n receiptId,\r\n channelName,\r\n createdDate,\r\n count,\r\n amount,\r\n channelReferenceId\r\n}) => (\r\n \r\n {channelName}\r\n {salesId}\r\n {receiptId}\r\n {createdDate}\r\n {count}\r\n {amount}\r\n {channelReferenceId}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroupDelivery: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo }) => (\r\n \r\n {heading}\r\n {count}\r\n {processing}\r\n {address}\r\n {trackingInfo}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\r\n \r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n \r\n {salesLine.salesLine}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\r\n \r\n {heading}\r\n {orderCountLabel}\r\n {extraActions}\r\n \r\n);\r\n\r\nexport const OrderHistorySalesOder: React.FC = ({ salesOrderProps, orderInfomation, groups, orderDetailsLink, expandProductsButton }) => (\r\n \r\n {orderInfomation && }\r\n {groups && }\r\n {expandProductsButton}\r\n {orderDetailsLink}\r\n \r\n);\r\n\r\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\r\n \r\n {salesOrders && salesOrders.map((salesOrder, index) => )}\r\n \r\n);\r\n\r\nconst OrderHistoryView: React.FC = ({\r\n orderHistoryProps,\r\n header,\r\n alert,\r\n loading,\r\n emptyMessage,\r\n backToShoppingLink,\r\n list,\r\n table,\r\n moreButton\r\n}) => (\r\n \r\n {header && }\r\n {loading}\r\n {alert && (\r\n <>\r\n {alert}\r\n {backToShoppingLink}\r\n \r\n )}\r\n {emptyMessage && (\r\n \r\n {emptyMessage}\r\n {backToShoppingLink}\r\n \r\n )}\r\n {list && }\r\n {table}\r\n {moreButton && moreButton}\r\n \r\n);\r\n\r\nexport default OrderHistoryView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BSite) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BSite))\n );\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState\n ): 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 if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (\n account.Balance === 0 &&\n account.CreditLimit === 0 &&\n account.InvoiceAccountBalance === 0 &&\n account.InvoiceAccountCreditLimit === 0\n ) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\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 IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n {error}\n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n {value}\n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n {label}\n {value}\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountCustomerBalanceTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-customer-balance-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountCustomerBalanceTileLinks;\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';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { SignUpText } from './components/loyalty-sign-up-small-components';\nimport { ILoyaltySignUpData } from './loyalty-sign-up.data';\nimport { ILoyaltySignUpProps } from './loyalty-sign-up.props.autogenerated';\n\nexport interface IAccountLoyaltyJoinState {\n clicked: boolean;\n}\nexport interface ILoyaltySignUpViewProps extends ILoyaltySignUpProps {\n LoyaltySignUp: IModuleProps;\n heading: React.ReactNode;\n memberHeading: React.ReactNode;\n signInLink: React.ReactElement;\n signUpText: React.ReactElement;\n signUpButton: React.ReactElement;\n detailsLink: React.ReactElement;\n termsLink: React.ReactElement;\n loading: boolean;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * LoyaltySignUp component.\n * @extends {React.Component>}\n */\n@observer\nclass LoyaltySignUp extends React.Component, IAccountLoyaltyJoinState> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n this.loyaltySignInAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.SignUp;\n this.loyaltySignUpAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyDetailLink;\n this.loyaltyDetailsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsLink;\n this.loyaltyTermsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltySignUpProps, nextState: IAccountLoyaltyJoinState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, heading, memberHeading },\n resources,\n context: {\n actionContext,\n request: {\n user: { signInUrl, isAuthenticated }\n }\n },\n data\n } = this.props;\n\n const termsUrl = Msdyn365.getUrlSync('loyaltyTerms', actionContext);\n let loyaltyJoinUrl = `${Msdyn365.getUrlSync('loyaltyJoin', actionContext)}?joiningLoyalty=true`;\n if (MsDyn365.isBrowser) {\n loyaltyJoinUrl = `${window.location.origin}${loyaltyJoinUrl}`;\n }\n const signInurl = `${signInUrl}?ru=${loyaltyJoinUrl}`;\n const completeClass = classname('ms-loyalty-signup', className);\n const loyaltyCard = data.loyaltyCard;\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n const customerInformation = data.customerInformation?.result;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false);\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n loading: !this.props.context.request.params.isEditor && loyaltyCard?.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && (\n \n ),\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && (\n \n {this.props.resources.joinLoyaltyButtonText}\n \n ),\n detailsLink: hasLoyaltyAccount && (\n \n {this.props.resources.viewLoyaltyPageText}\n \n ),\n termsLink: !hasLoyaltyAccount && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleMemberHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.memberHeading!.text = event.target.value);\n\n private readonly _issueLoyalty = () => {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(() => {\n if (MsDyn365.isBrowser) {\n window.location.assign(Msdyn365.getUrlSync('loyalty', this.props.context.actionContext) || '');\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n };\n}\n\nexport default LoyaltySignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {\n LoyaltySignUp,\n heading,\n memberHeading,\n signInLink,\n signUpText,\n signUpButton,\n detailsLink,\n termsLink,\n loading,\n infoMessageBar\n } = props;\n\n if (loading) {\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\n return null;\n }\n\n return (\n \n {infoMessageBar}\n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface ILoyaltyTermsModalProps {\n resources: ILoyaltyTermsModalResources;\n returnRef: React.RefObject | undefined;\n checked: boolean;\n isOpen: boolean;\n terms: React.ReactNode;\n telemetryContent?: ITelemetryContent;\n onToggle(): void;\n onSubmit(): void;\n onCheck(): void;\n}\n\nexport interface ILoyaltyTermsModalResources {\n loyaltyTermsHeading: string;\n loyaltyAgreeToTerms: string;\n joinLoyaltyTermsText: string;\n cancelLoyaltyTermsText: string;\n}\n\nexport interface ILoyaltyTermsModalViewProps {\n modal: INodeProps;\n modalHeader: INodeProps;\n modalFooter: INodeProps;\n modalBody: INodeProps;\n heading: React.ReactElement;\n cancelButton: React.ReactElement;\n submitButton: React.ReactElement;\n terms: React.ReactNode;\n checkbox: React.ReactElement;\n agreeText: React.ReactElement;\n agreeSection: INodeProps;\n}\n\nexport const LoyaltyTermsModal = (props: ILoyaltyTermsModalProps): ILoyaltyTermsModalViewProps => {\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.LoyaltyTermsCancel);\n const loyaltyTermCancelAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsSubmit;\n const loyaltyTermSubmitAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsAgree;\n const loyaltyTermCheckboxAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n return {\n modal: {\n tag: Modal,\n className: 'ms-loyalty-terms__modal',\n toggle: props.onToggle,\n applicationNode: 'renderPage',\n isOpen: props.isOpen,\n returnFocusRef: props.returnRef\n },\n modalHeader: { tag: ModalHeader, className: 'ms-loyalty-terms__modal-header', toggle: props.onToggle },\n modalFooter: { tag: ModalFooter, className: 'ms-loyalty-terms__modal-footer' },\n modalBody: { tag: ModalBody, className: 'ms-loyalty-terms__modal-body' },\n cancelButton: (\n \n ),\n submitButton: (\n \n {props.resources.joinLoyaltyTermsText}\n \n ),\n heading:

{props.resources.loyaltyTermsHeading}

,\n terms: props.terms,\n agreeSection: { className: 'ms-loyalty-terms__agree-section' },\n checkbox: (\n \n ),\n agreeText:

{props.resources.loyaltyAgreeToTerms}

\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps, nextState: ILoyaltyTermsState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: hideToggle !== true && (\n \n ),\n modal:\n isAuthenticated &&\n loyaltyCard.result &&\n loyaltyCard.result.CardNumber === undefined &&\n LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(card => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then(fullCard => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n fullCard\n );\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n card\n );\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\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 { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\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 IBusinessPartnerPromotionTermsParagraphProp {\n description: string;\n className: string;\n title?: string;\n titleClassName?: string;\n}\n\nexport const BusinessPartnerPromotionTermsParagraph: React.FC = ({\n title,\n description,\n className,\n titleClassName\n}) => {\n return (\n
  • \n {title &&

    {title}

    }\n

    {description}

    \n
  • \n );\n};\n\nexport default BusinessPartnerPromotionTermsParagraph;\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\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { Button, Alert, IModuleProps, Modal, ModalBody, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport { promoteToSellerAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport { BusinessPartnerUser } from '@msdyn365-commerce/retail-proxy';\nimport { ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Text } from '@msdyn365-commerce/core';\nimport { IBusinessPartnerPromotionData } from './business-partner-promotion.data';\nimport { IBusinessPartnerPromotionProps } from './business-partner-promotion.props.autogenerated';\nimport { BusinessPartnerPromotionTermsParagraph } from './components';\n\nexport interface IBusinessPartnerPromotionViewProps extends IBusinessPartnerPromotionProps {\n businessPartnerPromotionProps: IModuleProps;\n heading: React.ReactNode;\n notificationMessage?: React.ReactNode;\n sellerDescriptions: React.ReactNode[];\n termsOfServiceCheckbox: React.ReactNode;\n termsOfServiceModal: React.ReactNode;\n submitButton: React.ReactNode;\n}\n\nexport interface IBusinessPartnerPromotionState {\n showTermsOfService: boolean;\n showSubmitButton: boolean;\n termsOfServiceChecked: boolean;\n termsOfServiceModalOpened: boolean;\n errorMessage?: string;\n notificationMessage?: string;\n}\n\n/**\n * The class name root for the module.\n */\nexport const moduleClassName: string = 'ms-business-partner-promotion';\n\n/**\n *\n * BusinessPartnerPromotion component\n * @extends {React.PureComponent>}\n */\nclass BusinessPartnerPromotion extends React.Component<\n IBusinessPartnerPromotionProps,\n IBusinessPartnerPromotionState\n> {\n constructor(props: IBusinessPartnerPromotionProps) {\n super(props);\n this.state = {\n showTermsOfService: true,\n showSubmitButton: true,\n termsOfServiceChecked: false,\n termsOfServiceModalOpened: false,\n errorMessage: undefined,\n notificationMessage: undefined\n };\n }\n\n public render(): JSX.Element | null {\n const {\n showSubmitButton,\n showTermsOfService,\n termsOfServiceChecked,\n termsOfServiceModalOpened,\n errorMessage,\n notificationMessage\n } = this.state;\n const { resources, data, config } = this.props;\n const { heading, termsOfService } = config;\n const { authorizationErrorMessage } = resources;\n const { b2bUserInformation } = data;\n const canSubmit = this.isAdminUser(b2bUserInformation.result);\n let error: string | undefined = errorMessage;\n\n // do not show error message when the API is still in loading.\n if (!canSubmit && b2bUserInformation.status !== 'LOADING') {\n error = authorizationErrorMessage;\n }\n const btnEnabled = canSubmit && termsOfServiceChecked;\n\n const viewProps: IBusinessPartnerPromotionViewProps = {\n ...this.props,\n businessPartnerPromotionProps: {\n moduleProps: this.props,\n className: classnames(moduleClassName, moduleClassName)\n },\n heading: ,\n notificationMessage: this.renderNotificationBar(error, notificationMessage),\n sellerDescriptions: this.renderSellerDescriptions(),\n termsOfServiceCheckbox: showTermsOfService && (\n
    \n \n {resources.termsOfServiceAgreementText}\n \n {resources.termsOfServiceLinkText}\n \n
    \n ),\n termsOfServiceModal: (\n \n {resources.termsOfServiceModalHeading}\n \n \n \n \n ),\n submitButton: showSubmitButton && (\n
    \n \n {resources.submitRequestLabel}\n \n
    \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n private renderNotificationBar(errorMessage: string | undefined, notificationMessage: string | undefined): React.ReactNode {\n let notificationBar: React.ReactNode = null;\n if (errorMessage) {\n notificationBar = {errorMessage};\n } else if (notificationMessage) {\n notificationBar = {notificationMessage};\n }\n return notificationBar;\n }\n\n private renderSellerDescriptions(): React.ReactNode[] {\n const { config } = this.props;\n const results: React.ReactNode[] = [];\n const sellerDescriptions = config.sellerDescriptions;\n\n if (!sellerDescriptions) {\n return results;\n }\n\n return sellerDescriptions.map((description, idx1) => {\n return (\n
    \n \n
      \n {description.bulletPoints?.map((bulletPoint, idx2) => {\n return (\n \n );\n })}\n
    \n
    \n );\n });\n }\n\n private isAdminUser(user: BusinessPartnerUser | undefined): boolean {\n return (\n !ObjectExtensions.isNullOrUndefined(user) && !StringExtensions.isNullOrEmpty(user.BusinessPartnerId) && user.IsAdmin === true\n );\n }\n\n private readonly onCheckBoxChange = (event: React.ChangeEvent) => {\n this.setState({\n termsOfServiceChecked: event.target.checked\n });\n };\n\n private readonly onToggleTermOfServiceModal = () => {\n this.setState({\n termsOfServiceModalOpened: !this.state.termsOfServiceModalOpened\n });\n };\n\n private readonly onSubmit = async (event: React.MouseEvent) => {\n const { context, data, resources } = this.props;\n const { errorMessageText, promoteToSellerSubmitSuccessMessage } = resources;\n const businessPartnerId = data.b2bUserInformation.result?.BusinessPartnerId ?? '';\n\n try {\n await promoteToSellerAsync({ callerContext: context.actionContext }, businessPartnerId);\n this.setState({\n showSubmitButton: false,\n showTermsOfService: false,\n errorMessage: undefined,\n notificationMessage: promoteToSellerSubmitSuccessMessage\n });\n } catch {\n this.setState({\n showTermsOfService: true,\n showSubmitButton: true,\n errorMessage: errorMessageText,\n notificationMessage: undefined\n });\n }\n };\n}\n\nexport default BusinessPartnerPromotion;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessPartnerPromotionViewProps } from './business-partner-promotion';\n\n/**\n * View layout of business partner promotion module.\n * @param props - React props of the component.\n * @returns Functional component.\n */\nconst businessPartnersView: React.FC = props => {\n const {\n businessPartnerPromotionProps,\n heading,\n notificationMessage,\n sellerDescriptions,\n termsOfServiceCheckbox,\n termsOfServiceModal,\n submitButton\n } = props;\n return (\n \n {heading}\n {notificationMessage}\n {sellerDescriptions}\n {termsOfServiceCheckbox}\n {termsOfServiceModal}\n {submitButton}\n \n );\n};\n\nexport default businessPartnersView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { buildCacheKey } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { CheckoutState } from './checkout-state';\n\n/**\n * CheckoutState - action input.\n */\nexport class CheckoutStateInput implements IActionInput {\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey('CheckoutState', this.apiSettings);\n\n public getCacheObjectType = () => 'CheckoutState';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * CheckoutState - action.\n * @param input\n * @param ctx\n */\nexport async function checkoutStateAction(input: CheckoutStateInput, ctx: IActionContext): Promise {\n return new CheckoutState();\n}\n\n/**\n * CheckoutState - create new input for create action.\n * @param inputData\n */\nconst createInput = (inputData: ICreateActionContext>): IActionInput => {\n return new CheckoutStateInput(inputData.requestContext.apiSettings);\n};\n\n/**\n * CheckoutState - create action.\n */\nexport const checkoutStateActionDataAction = createObservableDataAction({\n action: >checkoutStateAction,\n input: createInput\n});\n\nexport default checkoutStateActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IGiftCardExtend } from '@msdyn365-commerce/global-state';\nimport { Address, GiftCard, Note, TenderLine, TokenizedPaymentCard } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { action, computed, observable } from 'mobx';\n\n/**\n * State information related to what is needed to succesfully perform a checkout.\n */\nexport class CheckoutState {\n @observable private _tokenizedPaymentCard: TokenizedPaymentCard | undefined;\n\n @computed public get tokenizedPaymentCard(): Readonly | undefined {\n return this._tokenizedPaymentCard;\n }\n\n @observable private _tenderLine: TenderLine | undefined;\n\n @computed public get tenderLine(): Readonly | undefined {\n return this._tenderLine;\n }\n\n @observable private _billingAddress: Address | undefined;\n\n @computed public get billingAddress(): Readonly
    | undefined {\n return this._billingAddress;\n }\n\n @observable private _shippingAddress: Address | undefined;\n\n @computed public get shippingAddress(): Readonly
    | undefined {\n return this._shippingAddress;\n }\n\n @observable private _cardPrefix: string | undefined;\n\n @computed public get cardPrefix(): Readonly | undefined {\n return this._cardPrefix;\n }\n\n @observable private _giftCards: GiftCard[] = [];\n\n @computed public get giftCards(): readonly GiftCard[] {\n return this._giftCards;\n }\n\n @observable private _giftCardExtends: IGiftCardExtend[] = [];\n\n @computed public get giftCardExtends(): readonly IGiftCardExtend[] {\n return this._giftCardExtends;\n }\n\n @observable private _loyaltyCardNumber?: string;\n\n @computed public get loyaltyCardNumber(): Readonly | undefined {\n return this._loyaltyCardNumber;\n }\n\n @observable private _loyaltyAmount: number = 0;\n\n @computed public get loyaltyAmount(): Readonly | number {\n return this._loyaltyAmount;\n }\n\n @observable private _guestCheckoutEmail: string = '';\n @observable private _customerReference: string = '';\n @observable private _customerRequisition: string = '';\n @observable private _note: Note = {};\n\n @computed public get guestCheckoutEmail(): Readonly | string {\n return this._guestCheckoutEmail;\n }\n\n @computed public get customerReference(): Readonly | string {\n return this._customerReference;\n }\n\n @computed public get customerRequisition(): Readonly | string {\n return this._customerRequisition;\n }\n\n @computed public get note(): Readonly | Note[] {\n return this._note;\n }\n\n @observable private _isTermsAndConditionAccepted: boolean = false;\n\n @computed public get isTermsAndConditionAccepted(): Readonly | boolean {\n return this._isTermsAndConditionAccepted;\n }\n\n @observable private _customerAccountAmount: number = 0;\n\n @computed public get customerAccountAmount(): Readonly | number {\n return this._customerAccountAmount;\n }\n\n @action\n public updateTokenizedPaymentCard(newTokenizedPaymentCard: TokenizedPaymentCard): void {\n this._tokenizedPaymentCard = newTokenizedPaymentCard;\n }\n\n @action\n public updateTenderLine(newTenderLine: TenderLine | undefined): void {\n this._tenderLine = newTenderLine;\n }\n\n @action\n public updateShippingAddress(newShippingAddress: Address): void {\n this._shippingAddress = newShippingAddress;\n }\n\n @action\n public updateBillingAddress(newBillingAddress: Address): void {\n this._billingAddress = newBillingAddress;\n }\n\n @action\n public updateCardPrefix(newCardPrefix: string): void {\n this._cardPrefix = newCardPrefix;\n }\n\n @action\n public removeGiftCard(giftCardNumber: string): void {\n this._giftCards = this._giftCards.filter(giftCard => giftCard.Id !== giftCardNumber);\n }\n\n @action\n public removeGiftCardExtend(giftCardNumber: string): void {\n this._giftCardExtends = this._giftCardExtends.filter(giftCard => giftCard.Id !== giftCardNumber);\n }\n\n @action\n public addGiftCard(giftCard: GiftCard): void {\n this._giftCards = [giftCard, ...this._giftCards];\n }\n\n @action\n public addGiftCardExtend(giftCard: IGiftCardExtend): void {\n this._giftCardExtends = [giftCard, ...this._giftCards];\n }\n\n @action\n public updateLoyaltyCardNumber(newLoyaltyCardNumber: string): void {\n this._loyaltyCardNumber = newLoyaltyCardNumber;\n }\n\n @action\n public updateLoyaltyAmount(newAmount: number): void {\n this._loyaltyAmount = newAmount;\n }\n\n @action\n public updateGuestCheckoutEmail(\n newGuestCheckoutEmail: string,\n customerReference: string,\n customerRequisition: string,\n note: Note\n ): void {\n this._guestCheckoutEmail = newGuestCheckoutEmail;\n this._customerReference = customerReference;\n this._customerRequisition = customerRequisition;\n this._note = note;\n }\n\n @action\n public updateTermsAndConditionsAcceptance(newIsTermsAndConditionAccepted: boolean): void {\n this._isTermsAndConditionAccepted = newIsTermsAndConditionAccepted;\n }\n\n @action\n public updateCustomerAccountAmount(newAmount: number): void {\n this._customerAccountAmount = newAmount;\n }\n}\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\n/**\n * EnabledPaymentsForOBO enum.\n */\n export enum EnabledPaymentsForOBO {\n OnCustomerAccount = 1,\n ExpressPayment = 0,\n Loyalty = 0,\n GiftCard = 0,\n PaymentInstrument = 0,\n ApplePay = 0\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CacheType, IActionContext, IActionInput } from '@msdyn365-commerce/core';\n\nimport { IModuleStates } from './module-state.data';\n\n/**\n * GetModulesInput.\n */\nexport class ModuleStatesCacheKey implements IActionInput {\n public getCacheKey = () => 'ModuleState';\n\n public getCacheObjectType = () => 'ModuleState';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\nexport function getModuleStates(ctx: IActionContext): IModuleStates {\n const cacheKey = new ModuleStatesCacheKey();\n\n let moduleStates = ctx.get(cacheKey.getCacheObjectType(), cacheKey.getCacheKey());\n if (moduleStates) {\n return moduleStates;\n }\n ctx.update(cacheKey, {});\n moduleStates = ctx.get(cacheKey.getCacheObjectType(), cacheKey.getCacheKey());\n return moduleStates;\n}\n\nexport function updateModuleStates(value: IModuleStates, ctx: IActionContext): void {\n const cacheKey = new ModuleStatesCacheKey();\n ctx.update(cacheKey, value);\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModule } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport isMatch from 'lodash/isMatch';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { getModuleStates, updateModuleStates } from './module-state';\nimport { IModuleState, IModuleStateManager, IModuleStateProps, IModuleStates } from './module-state.data';\n\nexport interface IProps extends IModule, IModuleStateProps {\n enableControl?: boolean;\n}\n\nconst sectionContainerModuleId = 'section-container';\nconst paymentInstrumentModuleId = 'payment-instrument';\n\nconst withModuleState =

    (WrappedComponent: React.ComponentType

    ): React.ComponentType

    => {\n /**\n *\n * ModuleState component.\n * @extends {React.Component

    }\n */\n @observer\n class ModuleState extends React.Component

    {\n constructor(props: P) {\n super(props);\n this.initializeState();\n }\n\n public shouldComponentUpdate(nextProps: IModuleStateProps): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const { id } = this.props;\n return ;\n }\n\n private readonly initializeState = (): void => {\n const { id, typeName, context } = this.props;\n const states = getModuleStates(context.actionContext);\n if (!states) {\n this.props.telemetry.error('withModuleState initializeState() - states not found');\n return;\n }\n\n if (states[id]) {\n // State has been initialized\n return;\n }\n\n updateModuleStates(\n {\n ...states,\n [id]: {\n id,\n typeName,\n hasInitialized: false,\n hasError: false,\n isRequired: true,\n isCancellable: true,\n isSubmitContainer: false,\n status: undefined,\n childIds: []\n }\n },\n context.actionContext\n );\n };\n\n /**\n * GetModuleStateManager\n * Get module state manager by id.\n * @param id\n */\n private readonly getModuleStateManager = (id: string): IModuleStateManager => {\n const moduleState = this.get()[id];\n return {\n ...moduleState!,\n hasInitialized: this.validate(id, { hasInitialized: true }, true), // All has initialized is initialized\n hasError: this.validate(id, { hasError: true }), // Partial has error is error\n isReady: this.validate(id, { status: 'ready' }, true, true), // All ready is ready (exclued disabled and skipped)\n isUpdating: this.validate(id, { status: 'updating' }), // Partial updating is updating\n isPending: this.validate(id, { status: 'pending' }), // Partial pending is pending\n isSkipped: this.validate(id, { status: 'skipped' }, true, true), // All skipped is skipped (exclued disabled)\n isDisabled: this.validate(id, { status: 'disabled' }, true), // All disabled is disabled\n isCancelAllowed: this.validate(id, { isCancellable: true }, true, true), // Partial not allowed is not allowed\n shouldSubmitContainer: this.validate(id, { isSubmitContainer: true }), // Partial submit is submit.\n hasExternalSubmitGroup: this.hasExternalSubmitGroup(),\n hasModuleState: this.hasModuleState(id),\n setIsRequired: (value: boolean): void => {\n this.update(id, { isRequired: value });\n },\n setIsCancellable: (value: boolean): void => {\n this.update(id, { isCancellable: value });\n },\n setIsSubmitContainer: (value: boolean): void => {\n this.update(id, { isSubmitContainer: value });\n },\n setHasError: (value: boolean): void => {\n this.update(id, { hasError: value });\n },\n onReady: (): void => {\n this.update(id, { status: 'ready' });\n },\n onUpdating: (): void => {\n this.update(id, { status: 'updating' });\n },\n onPending: (): void => {\n this.update(id, { status: 'pending' });\n },\n onSkip: (): void => {\n this.update(id, { status: 'skipped' });\n },\n onDisable: (): void => {\n this.update(id, { status: 'disabled' });\n },\n getModule: (moduleId: string): IModuleStateManager => this.getModuleStateManager(moduleId),\n getModuleByTypeName: (typeName: string): IModuleStateManager => this.getModuleStateManagerByTypeName(typeName),\n init: (options?: Partial): void => {\n if (moduleState?.hasInitialized) {\n // State has been initialized\n return;\n }\n this.update(id, {\n hasInitialized: true,\n ...options\n });\n }\n };\n };\n\n /**\n * GetModuleStateManagerByTypeName\n * Get module state manager by type name.\n * @param typeName\n */\n private readonly getModuleStateManagerByTypeName = (typeName: string): IModuleStateManager => {\n const moduleStates = getModuleStates(this.props.context.actionContext);\n const moduleState = Object.values(moduleStates).find(_moduleState => _moduleState?.typeName === typeName);\n return this.getModuleStateManager((moduleState && moduleState.id) || '');\n };\n\n /**\n * Get\n * Get all module states.\n */\n private readonly get = (): IModuleStates => {\n return getModuleStates(this.props.context.actionContext);\n };\n\n /**\n * Update\n * Update module state.\n * @param id\n * @param value\n */\n private readonly update = (id: string, value: Partial): void => {\n // Console.log('withModuleState - update', id, value);\n const modules = this.get();\n if (!modules[id]) {\n this.props.telemetry.error(`withModuleState update() - Module state with id ${id} is not found.`);\n return;\n }\n modules[id] = {\n ...modules[id]!,\n ...value\n };\n };\n\n private readonly _validateLeaf = (id: string, source: Partial): boolean => {\n const modules = this.get();\n const module = modules[id];\n if (!module) {\n return false;\n }\n return isMatch(module, source);\n };\n\n private readonly _validateContainer = (\n id: string,\n source: Partial,\n allMatched?: boolean,\n skipSkippableItem?: boolean\n ): boolean => {\n const modules = this.get();\n const module = modules[id];\n if (!module) {\n // Module doesn't has module state\n return !!allMatched;\n }\n\n if (skipSkippableItem && (module.status === 'disabled' || module.status === 'skipped')) {\n // Skip disabled or skipped modules\n return !!allMatched;\n }\n\n // It is leaf module\n if (!module.childIds || module.childIds.length === 0) {\n return this._validateLeaf(id, source);\n }\n\n let childIds = module.childIds;\n\n if (this.props.context.app.config.shouldEnableSinglePaymentAuthorizationCheckout) {\n // For new checkout flow, we bypass the isReady check for payment section container to enable the place order button.\n childIds = childIds.filter(childId => !this._isPaymentSectionContainer(childId));\n }\n\n // It is container module\n const method = allMatched ? 'every' : 'some';\n return childIds[method](childId => this._validateContainer(childId, source, allMatched, skipSkippableItem));\n };\n\n /**\n * Check if it is a section container with payment module.\n * @param moduleId -- The id of the module.\n * @returns If it is a section container with payment module.\n */\n private readonly _isPaymentSectionContainer = (moduleId: string): boolean => {\n if (!moduleId.includes(sectionContainerModuleId)) {\n return false;\n }\n\n const modules = this.get();\n const module = modules[moduleId];\n\n if (module && ArrayExtensions.hasElements(module.childIds.filter(childId => childId.includes(paymentInstrumentModuleId)))) {\n return true;\n }\n\n return false;\n };\n\n /**\n * Validate\n * Validate current module and all its child module match the provided condition.\n * @param id\n * @param source\n * @param allMatched\n * @param skipSkippableItem\n */\n private readonly validate = (\n id: string,\n source: Partial,\n allMatched?: boolean,\n skipSkippableItem?: boolean\n ): boolean => {\n const modules = this.get();\n const module = modules[id];\n if (!module) {\n return false;\n }\n\n // It is leaf module\n if (!module.childIds || module.childIds.length === 0) {\n return this._validateLeaf(id, source);\n }\n\n // It is container module\n return this._validateContainer(id, source, allMatched, skipSkippableItem);\n };\n\n /**\n * HasExternalSubmitGroup\n * Module will use external submit group.\n */\n private readonly hasExternalSubmitGroup = (): boolean => {\n return !!this.props.enableControl;\n };\n\n /**\n * HasModuleState\n * Module is using module state manager.\n * @param id\n */\n private readonly hasModuleState = (id: string): boolean => {\n const modules = this.get();\n const module = modules[id];\n return !!module;\n };\n }\n\n return ModuleState;\n};\n\nexport default withModuleState;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext } from '@msdyn365-commerce/core';\nimport {\n CheckoutModule,\n ErrorCode,\n ErrorLocation,\n ErrorMessageResource,\n getCheckoutState,\n ICheckoutError,\n ICheckoutState\n} from '@msdyn365-commerce/global-state/';\n\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class -- create global class\nexport class CheckoutErrors {\n public static readonly ActionError: ICheckoutError = {\n errorCode: ErrorCode.ActionError,\n errorMessageResource: ErrorMessageResource.checkoutTimeoutErrorMessage,\n errorLocation: ErrorLocation.Checkout\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard,\n errorMessageResource: ErrorMessageResource.blockedLoyaltyCardErrorMessage,\n errorLocation: ErrorLocation.CheckoutLoyalty\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromAmountDue: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromAmountDue,\n errorMessageResource: ErrorMessageResource.customerAccountLimitSignDifferentFromAmountDueErrorMessage,\n errorLocation: ErrorLocation.CheckoutCustomerAccountPayment\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsAvailableCreditLimit: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsAvailableCreditLimit,\n errorMessageResource: ErrorMessageResource.customerAccountPaymentExceedsAvailableCreditLimitErrorMessage,\n errorLocation: ErrorLocation.Checkout\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsCustomerAccountFloorLimit: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsCustomerAccountFloorLimit,\n errorMessageResource: ErrorMessageResource.customerAccountPaymentExceedsCustomerAccountFloorLimitErrorMessage,\n errorLocation: ErrorLocation.CheckoutCustomerAccountPayment\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItems: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItems,\n errorMessageResource: ErrorMessageResource.customerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItemsErrorMessage,\n errorLocation: ErrorLocation.CheckoutCustomerAccountPayment\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentForCustomerWithoutAllowOnAccount: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentForCustomerWithoutAllowOnAccount,\n errorMessageResource: ErrorMessageResource.customerAccountPaymentForCustomerWithoutAllowOnAccountErrorMessage,\n errorLocation: ErrorLocation.CheckoutCustomerAccountPayment\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentNotAllowedForOpenInvoices: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentNotAllowedForOpenInvoices,\n errorMessageResource: ErrorMessageResource.customerAccountPaymentNotAllowedForOpenInvoicesErrorMessage,\n errorLocation: ErrorLocation.CheckoutCustomerAccountPayment\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_FraudRisk: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_FraudRisk,\n errorMessageResource: ErrorMessageResource.fraudRiskErrorMessage,\n errorLocation: ErrorLocation.CheckoutPaymentInstrument\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_GiftCardBalanceInquiryFailed: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_GiftCardBalanceInquiryFailed,\n errorMessageResource: ErrorMessageResource.giftCardBalanceInquiryFailedErrorMessage,\n errorLocation: ErrorLocation.CheckoutGiftCard\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_GiftCardCurrencyMismatch: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_GiftCardCurrencyMismatch,\n errorMessageResource: ErrorMessageResource.giftCardCurrencyMismatchErrorMessage,\n errorLocation: ErrorLocation.CheckoutGiftCard\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion,\n errorMessageResource: ErrorMessageResource.invalidCartVersionErrorMessage,\n errorLocation: ErrorLocation.Checkout\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber,\n errorMessageResource: ErrorMessageResource.invalidLoyaltyCardNumberErrorMessage,\n errorLocation: ErrorLocation.CheckoutLoyalty\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest,\n errorMessageResource: ErrorMessageResource.invalidPaymentRequestErrorMessage,\n errorLocation: ErrorLocation.CheckoutPaymentInstrument\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest_Console: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest,\n errorMessageResource: ErrorMessageResource.invalidPaymentRequestConsoleErrorMessage,\n errorLocation: ErrorLocation.Console\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines,\n errorMessageResource: ErrorMessageResource.missingRequiredCartTenderLinesErrorMessage,\n errorLocation: ErrorLocation.CheckoutPaymentInstrument\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountPaymentsNotAllowed: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountPaymentsNotAllowed,\n errorMessageResource: ErrorMessageResource.multipleCustomerAccountPaymentsNotAllowedErrorMessage,\n errorLocation: ErrorLocation.CheckoutCustomerAccountPayment\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneLoyaltyTender: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneLoyaltyTender,\n errorMessageResource: ErrorMessageResource.noMoreThanOneLoyaltyTenderErrorMessage,\n errorLocation: ErrorLocation.CheckoutLoyalty\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_NoResponseFromGatewayForGiftCardBalanceInquiry: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_NoResponseFromGatewayForGiftCardBalanceInquiry,\n errorMessageResource: ErrorMessageResource.noResponseFromGatewayForGiftCardBalanceInquiryErrorMessage,\n errorLocation: ErrorLocation.CheckoutGiftCard\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_NoTenderLoyaltyCard: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_NoTenderLoyaltyCard,\n errorMessageResource: ErrorMessageResource.noTenderLoyaltyCardErrorMessage,\n errorLocation: ErrorLocation.CheckoutLoyalty\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_NotEnoughRewardPoints: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_NotEnoughRewardPoints,\n errorMessageResource: ErrorMessageResource.notEnoughRewardPointsErrorMessage,\n errorLocation: ErrorLocation.CheckoutLoyalty\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_PaymentAlreadyVoided: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_PaymentAlreadyVoided,\n errorMessageResource: ErrorMessageResource.paymentAlreadyVoidedErrorMessage,\n errorLocation: ErrorLocation.CheckoutPaymentInstrument\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_PaymentAmountExceedsGiftBalance: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_PaymentAmountExceedsGiftBalance,\n errorMessageResource: ErrorMessageResource.paymentAmountExceedsGiftBalanceErrorMessage,\n errorLocation: ErrorLocation.CheckoutGiftCard\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties,\n errorMessageResource: ErrorMessageResource.paymentRequiresMerchantPropertiesErrorMessage,\n errorLocation: ErrorLocation.CheckoutPaymentInstrument\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties_Console: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties,\n errorMessageResource: ErrorMessageResource.paymentRequiresMerchantPropertiesConsoleErrorMessage,\n errorLocation: ErrorLocation.Console\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_PaymentUsingUnauthorizedAccount: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_PaymentUsingUnauthorizedAccount,\n errorMessageResource: ErrorMessageResource.paymentUsingUnauthorizedAccountErrorMessage,\n errorLocation: ErrorLocation.CheckoutCustomerAccountPayment\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_RefundAmountMoreThanAllowed: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_RefundAmountMoreThanAllowed,\n errorMessageResource: ErrorMessageResource.refundAmountMoreThanAllowedErrorMessage,\n errorLocation: ErrorLocation.CheckoutLoyalty\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment,\n errorMessageResource: ErrorMessageResource.unableToAuthorizePaymentErrorMessage,\n errorLocation: ErrorLocation.CheckoutPaymentInstrument\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardAdditionalContextRequired: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardAdditionalContextRequired,\n errorMessageResource: ErrorMessageResource.unableToAuthorizePaymentCardAdditionalContextRequiredErrorMessage,\n errorLocation: ErrorLocation.CheckoutPaymentInstrument\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardTypeMissingOrNotSupported: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardTypeMissingOrNotSupported,\n errorMessageResource: ErrorMessageResource.unableToAuthorizePaymentCardTypeMissingOrNotSupportedErrorMessage,\n errorLocation: ErrorLocation.CheckoutPaymentInstrument\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_UnableToCancelPayment: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_UnableToCancelPayment,\n errorMessageResource: ErrorMessageResource.unableToCancelPaymentErrorMessage,\n errorLocation: ErrorLocation.CheckoutPaymentInstrument\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_UnableToReadCardTokenInfo: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_UnableToReadCardTokenInfo,\n errorMessageResource: ErrorMessageResource.unableToReadCardTokenInfoErrorMessage,\n errorLocation: ErrorLocation.CheckoutPaymentInstrument\n };\n\n public static readonly Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult: ICheckoutError = {\n errorCode: ErrorCode.Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult,\n errorMessageResource: ErrorMessageResource.unableToRetrieveCardPaymentAcceptResultErrorMessage,\n errorLocation: ErrorLocation.CheckoutPaymentInstrument\n };\n\n public static readonly checkoutErrorsList: ICheckoutError[] = [\n CheckoutErrors.ActionError,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromAmountDue,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsAvailableCreditLimit,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsCustomerAccountFloorLimit,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItems,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentForCustomerWithoutAllowOnAccount,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentNotAllowedForOpenInvoices,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_FraudRisk,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_GiftCardBalanceInquiryFailed,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_GiftCardCurrencyMismatch,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest_Console,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountPaymentsNotAllowed,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneLoyaltyTender,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_NoResponseFromGatewayForGiftCardBalanceInquiry,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_NoTenderLoyaltyCard,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_NotEnoughRewardPoints,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_PaymentAlreadyVoided,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_PaymentAmountExceedsGiftBalance,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties_Console,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_PaymentUsingUnauthorizedAccount,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_RefundAmountMoreThanAllowed,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardAdditionalContextRequired,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardTypeMissingOrNotSupported,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_UnableToCancelPayment,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_UnableToReadCardTokenInfo,\n CheckoutErrors.Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult\n ];\n}\n\nexport async function setCheckoutErrors(\n errorCode: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n resources: any,\n isExpressCheckoutApplied: boolean,\n ctx: IActionContext,\n apiError?: string | undefined\n): Promise {\n let clientCheckoutError: ICheckoutError | undefined;\n const consoleCheckoutErrors: ICheckoutError[] = [];\n\n const checkoutState: ICheckoutState = await getCheckoutState(ctx).catch((error: Error) => {\n ctx.telemetry.exception(error);\n throw error;\n });\n\n // find the checkout errors\n for (const checkoutError of CheckoutErrors.checkoutErrorsList) {\n if (errorCode === checkoutError.errorCode) {\n if (checkoutError.errorLocation === ErrorLocation.Console) {\n const consoleCheckoutError: ICheckoutError = {\n errorCode: checkoutError.errorCode,\n errorMessageResource: checkoutError.errorMessageResource,\n errorLocation: checkoutError.errorLocation\n };\n consoleCheckoutErrors.push(consoleCheckoutError);\n } else {\n if (clientCheckoutError) {\n ctx.telemetry.exception(new Error('Invalid number of client checkout errors.'));\n throw new Error('Invalid number of client checkout errors.');\n } else {\n clientCheckoutError = {\n errorCode: checkoutError.errorCode,\n errorMessageResource: checkoutError.errorMessageResource,\n errorLocation: checkoutError.errorLocation\n };\n }\n }\n }\n }\n\n // log the console checkout errors\n for (const consoleCheckoutError of consoleCheckoutErrors) {\n consoleCheckoutError.errorMessage = getCheckoutErrorMessage(resources, consoleCheckoutError.errorMessageResource!, apiError!);\n console.log(consoleCheckoutError.errorMessage);\n }\n\n // handle the client checkout error\n if (clientCheckoutError) {\n clientCheckoutError.errorMessage = getCheckoutErrorMessage(resources, clientCheckoutError.errorMessageResource!, apiError!);\n\n if (isExpressCheckoutApplied && clientCheckoutError.errorLocation === ErrorLocation.CheckoutPaymentInstrument) {\n clientCheckoutError.errorLocation = ErrorLocation.Checkout;\n }\n\n await checkoutState.updateCheckoutError({ newCheckoutError: clientCheckoutError });\n await checkoutState.updateShouldFocusOnCheckoutError({ newShouldFocusOnCheckoutError: true });\n } else {\n // if could not map to any checkout error(s), show the API error message over generic error\n if (consoleCheckoutErrors.length === 0) {\n const genericError = {\n errorLocation: ErrorLocation.Checkout\n };\n if (apiError) {\n genericError['errorMessage'] = apiError;\n } else {\n genericError['errorMessage'] = resources.genericErrorMessage;\n }\n\n await checkoutState.updateCheckoutError({ newCheckoutError: genericError });\n await checkoutState.updateShouldFocusOnCheckoutError({ newShouldFocusOnCheckoutError: true });\n }\n }\n}\n\nexport async function focusOnCheckoutError(checkoutErrorRef: React.RefObject, ctx: IActionContext): Promise {\n const checkoutState: ICheckoutState = await getCheckoutState(ctx).catch((error: Error) => {\n ctx.telemetry.exception(error);\n throw error;\n });\n\n checkoutErrorRef.current && checkoutErrorRef.current.scrollIntoView();\n\n await checkoutState.updateCheckoutErrorFocus({ newCheckoutErrorFocus: CheckoutModule.None });\n await checkoutState.updateShouldFocusOnCheckoutError({ newShouldFocusOnCheckoutError: false });\n}\n\nexport async function setCheckoutErrorFocus(checkoutModuleId: string, ctx: IActionContext): Promise {\n const checkoutState: ICheckoutState = await getCheckoutState(ctx).catch((error: Error) => {\n ctx.telemetry.exception(error);\n throw error;\n });\n\n for (const checkoutModule of Object.keys(CheckoutModule)) {\n if (checkoutModuleId.includes(CheckoutModule[checkoutModule])) {\n await checkoutState.updateCheckoutErrorFocus({ newCheckoutErrorFocus: CheckoutModule[checkoutModule] });\n return;\n }\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getCheckoutErrorMessage(resources: any, errorMessageResource: ErrorMessageResource, errorMessageFromAPI: string): string {\n const errorResource = Object.keys(resources).find(resource => resource === errorMessageResource);\n // return API error when error resource string is not found in checkout definition file\n return errorResource !== undefined ? resources[errorResource] : errorMessageFromAPI;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\n/**\n * The payment error.\n */\nexport interface IPaymentError {\n title: string;\n message: string;\n className?: string;\n}\n\n/**\n * The payment error.\n * @param param0 - First param.\n * @param param0.title - Title.\n * @param param0.message - Message.\n * @param param0.className - ClassName.\n * @returns React node.\n */\nexport const ErrorComponent: React.FC = ({ title, message, className = 'ms-checkout-payment-instrument' }) => (\n

    \n

    {title}

    \n

    {message}

    \n
    \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { Alert, Button, INodeProps, NodeTag, getLocaleBasedCustomizedPrice, ILocalizedPrice } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckoutCustomerAccountPaymentResources } from '../checkout-customer-account-payment.props.autogenerated';\n\nexport interface IGetAccountPaymentEditViewFormInput {\n resources: ICheckoutCustomerAccountPaymentResources;\n customizedAmt: string;\n amount: number;\n amountVariable: string;\n maxAmount: number;\n customer: Customer | undefined;\n customerCreatedDate: string;\n availableCredit: string;\n showCreditLimit: boolean;\n errorMessage: string | undefined;\n creditSectionIsExpanded: boolean;\n orderTotal: string;\n excessCredit: string | undefined;\n appliedAmount: string | undefined;\n locale: string;\n onAddPayment(): Promise;\n onChangePaymentAmount(customizedAmt: string, paymentAmount: number, amountVariable: string): void;\n onToggleCreditSection(): void;\n onRemovePayment(): Promise;\n skipOnChangeLogic?: boolean;\n}\n\nexport interface IAccountPaymentEditViewForm {\n formProps: INodeProps;\n inputLabel: React.ReactNode;\n inputAmount: React.ReactNode;\n addPaymentButton: React.ReactNode;\n customerName: React.ReactNode;\n customerAccountNumber: React.ReactNode;\n customerSince: React.ReactNode;\n accountCredit: React.ReactNode;\n alert: React.ReactNode;\n accountDetails: React.ReactNode;\n appliedLine: React.ReactNode;\n bottomBorder: React.ReactNode;\n}\n\n/**\n * On Add Account Payment Function.\n * @param onAddPayment -On Add Payment Function.\n * @returns Call of Add payment function.\n */\nconst onAddAccountPayment = (onAddPayment: () => Promise) => async (event: React.SyntheticEvent): Promise => {\n event.preventDefault();\n await onAddPayment();\n};\n\n/**\n * On Change Amount Function.\n * @param onChangePaymentAmount -On Change Payment Amount Function.\n * @returns Call of Change payment Amount function.\n */\nconst onChangeAmountHandler = (\n customizedAmt: string,\n paymentAmount: number,\n amountVariable: string,\n locale: string,\n onChangePaymentAmount: (customizedAmt: string, paymentAmount: number, amountVariable: string) => void\n) => (event: React.ChangeEvent) => {\n const value = event.target.value;\n const customState: ILocalizedPrice = {\n customizedAmount: customizedAmt,\n amountVariable: amountVariable,\n paymentAmount: paymentAmount\n };\n const returnModifiedState = getLocaleBasedCustomizedPrice(value, customState, locale, keyCode);\n customizedAmt = returnModifiedState.customizedAmount as string;\n paymentAmount = returnModifiedState.paymentAmount as number;\n amountVariable = returnModifiedState.amountVariable as string;\n onChangePaymentAmount(customizedAmt, paymentAmount, amountVariable);\n keyCode = 0;\n};\n\nlet keyCode: number = 0;\nexport const getAccountPaymentFormEditMode = (options: IGetAccountPaymentEditViewFormInput): IAccountPaymentEditViewForm => {\n const {\n resources,\n onAddPayment,\n amount,\n customizedAmt,\n amountVariable,\n onChangePaymentAmount,\n maxAmount,\n customer,\n customerCreatedDate,\n availableCredit,\n showCreditLimit,\n errorMessage,\n onToggleCreditSection,\n creditSectionIsExpanded,\n orderTotal,\n excessCredit,\n onRemovePayment,\n appliedAmount,\n locale,\n skipOnChangeLogic\n } = options;\n\n const {\n addPaymentButtonLabel,\n inputAmountLabel,\n inputAmountAriaLabel,\n customerSinceLabel,\n accountCreditLabel,\n creditDetailsSectionLabel,\n orderTotalLabel,\n availableCreditLabel,\n creditExcessLabel,\n appliedCustomerAccountPaymentLabel,\n removeCustomerAccountPaymentLabel,\n accountCreditDetails\n } = resources;\n\n const inputLabel = (\n \n {inputAmountLabel}\n \n );\n\n const formProps = {\n className: 'ms-checkout-customer-account__form-edit',\n onSubmit: onAddAccountPayment(onAddPayment),\n tag: 'form' as NodeTag\n };\n\n const addPaymentButton = (\n maxAmount || amount < 0 || Number.isNaN(amount)}\n >\n {addPaymentButtonLabel}\n \n );\n\n const inputAmount = (\n onChangePaymentAmount(value, Number(value), value)\n : onChangeAmountHandler(customizedAmt, amount, amountVariable, locale, onChangePaymentAmount)\n }\n onKeyDown={event => (keyCode = event.which)}\n aria-label={inputAmountAriaLabel}\n aria-valuemin={0}\n aria-valuemax={maxAmount}\n aria-valuenow={amount}\n min={0}\n max={maxAmount}\n />\n );\n\n const customerName =
    {customer?.Name}
    ;\n\n const customerAccountNumber =
    #{customer?.AccountNumber}
    ;\n\n const customerSince = (\n
    \n {customerSinceLabel}\n {customerCreatedDate}\n
    \n );\n\n const accountCredit = (\n <>\n {accountCreditLabel}\n {showCreditLimit && {availableCredit}}\n \n \n );\n\n const accountDetails = creditSectionIsExpanded ? (\n
    \n <>\n
    \n \n \n {creditDetailsSectionLabel}\n \n
    \n \n
    \n {availableCreditLabel}\n {availableCredit}\n
    \n
    \n {orderTotalLabel}\n {orderTotal}\n
    \n
    \n {creditExcessLabel}\n {excessCredit ?? '0'}\n
    \n
    \n ) : (\n undefined\n );\n\n const alert = (\n \n {errorMessage}\n \n );\n\n const appliedLine = appliedAmount ? (\n
    \n {appliedCustomerAccountPaymentLabel}\n {appliedAmount}\n \n {removeCustomerAccountPaymentLabel}\n \n
    \n ) : (\n undefined\n );\n\n const bottomBorder =
    ;\n\n return {\n formProps,\n inputLabel,\n inputAmount,\n addPaymentButton,\n customerName,\n customerAccountNumber,\n customerSince,\n accountCredit,\n alert,\n accountDetails,\n appliedLine,\n bottomBorder\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckoutCustomerAccountPaymentResources } from '../checkout-customer-account-payment.props.autogenerated';\n\nexport interface IGetAccountPaymentSummaryViewFormInput {\n resources: ICheckoutCustomerAccountPaymentResources;\n amount: number;\n appliedAmount: string | undefined;\n}\n\nexport interface IAccountPaymentSummaryViewForm {\n formProps: INodeProps;\n label: React.ReactNode;\n paymentAmount: React.ReactNode;\n addPaymentButton: React.ReactNode;\n appliedLine: React.ReactNode;\n bottomBorder: React.ReactNode;\n alert?: React.ReactNode;\n paymentAmountInput?: React.ReactNode;\n}\n\nexport const getAccountPaymentFormSummaryMode = (options: IGetAccountPaymentSummaryViewFormInput): IAccountPaymentSummaryViewForm => {\n const { resources, amount, appliedAmount } = options;\n\n const { addPaymentButtonLabel, inputAmountSummaryLabel, appliedCustomerAccountPaymentLabel, inputAmountAriaLabel } = resources;\n\n const label = (\n \n );\n\n const formProps = {\n className: 'ms-checkout-customer-account__form-summary',\n tag: 'form' as NodeTag\n };\n\n const paymentAmount = ;\n\n const paymentAmountInput = (\n \n );\n\n const addPaymentButton = (\n \n );\n\n const appliedLine = appliedAmount ? (\n
    \n {appliedCustomerAccountPaymentLabel}\n {appliedAmount}\n
    \n ) : (\n undefined\n );\n\n const bottomBorder =
    ;\n\n return {\n formProps,\n label,\n paymentAmount,\n addPaymentButton,\n appliedLine,\n bottomBorder,\n paymentAmountInput\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { IModuleStateManager, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport { CheckoutModule, ErrorLocation } from '@msdyn365-commerce/global-state';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { action, computed, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ICheckoutCustomerAccountPaymentData } from './checkout-customer-account-payment.data';\nimport { ICheckoutCustomerAccountPaymentProps } from './checkout-customer-account-payment.props.autogenerated';\nimport { getAccountPaymentFormEditMode, IAccountPaymentEditViewForm } from './components/get-account-payment-form-edit-mode';\nimport { getAccountPaymentFormSummaryMode, IAccountPaymentSummaryViewForm } from './components/get-account-payment-form-summary-mode';\nimport { ErrorComponent } from '../../common/error';\nimport { focusOnCheckoutError } from '../../checkout-errors';\n\nexport interface ICheckoutCustomerAccountPaymentViewProps\n extends ICheckoutCustomerAccountPaymentProps {\n checkoutCustomerAccount: IModuleProps;\n summaryView: IAccountPaymentSummaryViewForm;\n editView: IAccountPaymentEditViewForm;\n moduleState: IModuleStateManager;\n alert?: React.ReactNode;\n checkoutErrorRef?: React.RefObject;\n}\n\nexport interface ICheckoutCustomerAccountPaymentState {\n paymentAmount: number;\n isCreditSectionExpanded: boolean;\n customizedAmt: string;\n amountVariable: string;\n errorMessage?: string;\n handleSaveAndContinue?: boolean;\n}\n\n/**\n *\n * CheckoutCustomerAccount component.\n * @extends {React.Component>}\n */\n// @ts-expect-error\n@withModuleState\n@observer\nexport class CheckoutCustomerAccountPayment extends React.Component<\n ICheckoutCustomerAccountPaymentViewProps,\n ICheckoutCustomerAccountPaymentState\n> {\n private readonly defaultLocale: string = 'en-us';\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerInfo = get(this.props, 'data.customerInformation.result');\n const request = get(this.props, 'context.request');\n const b2bChannel = isChannelTypeB2B(request);\n const platform = get(this.props, 'context.request.app.platform');\n\n return (\n customerInfo &&\n customerInfo.AllowOnAccountPayment === true &&\n platform &&\n (platform.enableCustomerAccountPayment === 'all' ||\n (platform.enableCustomerAccountPayment === 'b2b' && b2bChannel) ||\n (platform.enableCustomerAccountPayment === 'b2c' && !b2bChannel))\n );\n }\n\n @computed get getLoyaltyAmount(): number {\n const checkoutState = this.props.data.checkout.result;\n if (!checkoutState || !checkoutState.loyaltyAmount) {\n return 0;\n }\n return checkoutState.loyaltyAmount;\n }\n\n @computed get maxPaymentAmount(): number {\n const cart = this.props.data.checkout.result ? this.props.data.checkout.result.checkoutCart.cart : undefined;\n if (!cart) {\n return 0;\n }\n\n // Use customer account after loyalty.\n const amountDue = Math.max(0, (cart.TotalAmount || 0) - this.getLoyaltyAmount);\n\n // If the user has a mandatory credit limit, then the max amount must not be more than that\n if (this.props.data.customerInformation?.result?.MandatoryCreditLimit) {\n return Math.min(this.getAvailableCredit(this.props.data.creditBalances?.result), amountDue);\n }\n return amountDue;\n }\n\n @computed get errorMessage(): string | undefined {\n if (this.state.paymentAmount > this.maxPaymentAmount) {\n return this.props.resources.invalidAmountExceedAmountDueMessage;\n }\n\n if (this.state.paymentAmount < 0) {\n return this.props.resources.invalidAmountNegativeMessage;\n }\n\n return undefined;\n }\n\n @computed get currencyCode(): string | undefined {\n return get(this.props, 'context.request.channel.Currency');\n }\n\n @computed get availableCredit(): number {\n const creditBalances = get(this.props, 'data.creditBalances.result');\n\n return creditBalances ? this.getAvailableCredit(creditBalances) : 0;\n }\n\n @computed get orderTotal(): number {\n const orderTotal = get(this.props, 'data.checkout.result.checkoutCart.cart.TotalAmount');\n\n return orderTotal ? orderTotal : 0;\n }\n\n @computed get formattedExcessCredit(): string | undefined {\n const excessCredit = this.availableCredit - this.orderTotal;\n return excessCredit < 0 ? this.props.context.cultureFormatter.formatCurrency(excessCredit, this.currencyCode) : undefined;\n }\n\n @computed get isDataReady(): boolean {\n return (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS';\n }\n\n private readonly baseClassName: string = 'ms-checkout-customer-account';\n\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\n\n public constructor(props: ICheckoutCustomerAccountPaymentViewProps) {\n super(props);\n const locale = get(this.props, 'context.request.locale') || this.defaultLocale;\n this.state = {\n paymentAmount: this.maxPaymentAmount,\n isCreditSectionExpanded: false,\n customizedAmt: new Intl.NumberFormat(locale).format(this.maxPaymentAmount),\n amountVariable: this.maxPaymentAmount.toString(),\n handleSaveAndContinue: false\n };\n }\n\n public async componentDidMount(): Promise {\n when(\n () => this.isDataReady,\n async () => {\n await this.init();\n }\n );\n\n // When the cart.TotalAmount gets updated (like if selecting the delivery option adds a charge) we need to update the amount based on the new total amount.\n reaction(\n () =>\n this.props.data.checkout.result &&\n this.props.data.checkout.result.checkoutCart.cart &&\n this.props.data.checkout.result.checkoutCart.cart.TotalAmount,\n totalAmount => {\n this.updateMaxAmount(this.maxPaymentAmount);\n }\n );\n\n if (this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging) {\n reaction(\n () => this.props.data.checkout.result?.checkoutError,\n checkoutError => {\n if (\n checkoutError &&\n checkoutError.errorLocation === ErrorLocation.CheckoutCustomerAccountPayment &&\n checkoutError.errorMessage\n ) {\n this._setErrorMessage(checkoutError.errorMessage);\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.checkoutErrorFocus,\n checkoutErrorFocus => {\n if (checkoutErrorFocus === CheckoutModule.CheckoutCustomerAccountPayment) {\n focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\n }\n }\n );\n }\n }\n\n public shouldComponentUpdate(\n nextProps: ICheckoutCustomerAccountPaymentProps,\n nextState: ICheckoutCustomerAccountPaymentState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const customerInfo = this.props.data.customerInformation?.result;\n\n if (!this.isCustomerAccountPaymentEnabled) {\n this.props.context.telemetry.information(\n 'customer account payments will not display, because the feature is disabled or not enabled for this type of customer'\n );\n return null;\n }\n\n const checkoutState = this.props.data.checkout.result;\n const cart = checkoutState ? checkoutState.checkoutCart.cart : undefined;\n const hasInvoiceLine = checkoutState?.checkoutCart.hasInvoiceLine;\n const creditBalances = this.props.data.creditBalances.result;\n\n if (!cart || hasInvoiceLine) {\n return null;\n }\n const resources = this.props.resources;\n const locale = get(this.props, 'context.request.locale') || this.defaultLocale;\n\n const customerSinceDate = new Date(customerInfo?.CreatedDateTime || 0).toLocaleDateString(locale);\n\n const hasError = this.props.moduleState.hasError;\n const errorMessage = this.state.errorMessage;\n\n const props = {\n ...this.props,\n checkoutErrorRef: this.checkoutErrorRef,\n checkoutCustomerAccount: {\n moduleProps: this.props,\n className: classnames(this.baseClassName)\n },\n alert: hasError && errorMessage && (\n \n ),\n editView: getAccountPaymentFormEditMode({\n onAddPayment: this.addPayment,\n resources,\n customizedAmt: this.state.customizedAmt,\n amountVariable: this.state.amountVariable,\n amount: this.state.paymentAmount,\n onChangePaymentAmount: this.onChangePaymentAmount,\n maxAmount: this.maxPaymentAmount,\n customer: customerInfo,\n customerCreatedDate: customerSinceDate,\n availableCredit: this.props.context.cultureFormatter.formatCurrency(\n this.getAvailableCredit(creditBalances),\n this.currencyCode\n ),\n showCreditLimit: customerInfo?.MandatoryCreditLimit || false,\n errorMessage: this.errorMessage,\n onToggleCreditSection: this.toggleCreditSection,\n creditSectionIsExpanded: this.state.isCreditSectionExpanded,\n orderTotal: this.props.context.cultureFormatter.formatCurrency(this.orderTotal, this.currencyCode),\n excessCredit: this.formattedExcessCredit,\n onRemovePayment: this.removePayment,\n appliedAmount:\n checkoutState && checkoutState.customerAccountAmount > 0\n ? this.props.context.cultureFormatter.formatCurrency(checkoutState.customerAccountAmount, this.currencyCode)\n : undefined,\n locale:\n this.props.context && this.props.context.request && this.props.context.request.locale\n ? this.props.context.request.locale\n : this.defaultLocale,\n skipOnChangeLogic: this.props.context.request.features?.skipCheckoutOnChangeLogic\n }),\n summaryView: getAccountPaymentFormSummaryMode({\n resources,\n amount: this.state.paymentAmount,\n appliedAmount:\n checkoutState && checkoutState.customerAccountAmount > 0\n ? this.props.context.cultureFormatter.formatCurrency(checkoutState.customerAccountAmount, this.currencyCode)\n : undefined\n })\n };\n\n return this.props.renderView(props) as React.ReactElement;\n }\n\n private readonly getAvailableCredit = (creditBalances: CustomerBalances | undefined) => {\n let availableCredit = 0;\n\n if (!creditBalances) {\n return 0;\n }\n\n if (creditBalances.InvoiceAccountCreditLimit === 0) {\n availableCredit = creditBalances.CreditLimit - creditBalances.Balance - creditBalances.PendingBalance;\n } else {\n availableCredit =\n creditBalances.InvoiceAccountCreditLimit -\n creditBalances.InvoiceAccountBalance -\n creditBalances.InvoiceAccountPendingBalance;\n }\n\n return availableCredit;\n };\n\n private readonly addPayment = async (): Promise => {\n const checkoutState = this.props.data.checkout.result;\n\n if (!checkoutState) {\n this.props.context.telemetry.error('checkout state not found');\n return;\n }\n\n this.setState({ handleSaveAndContinue: true });\n this._clearError();\n await checkoutState.updateCustomerAccountAmount({ newAmount: this.state.paymentAmount });\n this.props.context.telemetry.information('customer account payment amount updated');\n };\n\n private readonly toggleCreditSection = (): void => {\n this.setState({\n isCreditSectionExpanded: !this.state.isCreditSectionExpanded\n });\n };\n\n private readonly init = async (): Promise => {\n this.props.moduleState.init({\n onCancel: this.handleCancelOrSubmit,\n onSubmit: this.handleCancelOrSubmit,\n onEdit: this.onEdit\n });\n\n if (this.props.data.checkout.result && this.props.data.checkout.result.customerAccountAmount !== 0) {\n this.props.moduleState.onReady();\n }\n };\n\n private readonly onChangePaymentAmount = (customizedAmt: string, paymentAmount: number, amountVariable: string): void => {\n this.setState({\n customizedAmt: customizedAmt,\n paymentAmount: paymentAmount,\n amountVariable: amountVariable\n });\n };\n\n private readonly updateMaxAmount = (newAmount: number): void => {\n // If the user has already set an amount, we should not override that in the UI because it will be confusing.\n if (this.props.data.checkout.result && this.props.data.checkout.result.customerAccountAmount === 0) {\n this.setState({\n // We should never allow a negative amount.\n paymentAmount: Math.max(0, newAmount),\n customizedAmt: Math.max(0, newAmount).toString()\n });\n }\n };\n\n private readonly onEdit = (): void => {\n this.props.telemetry.information('Payment section customer account payment onEdit is called.');\n\n this.props.moduleState.onUpdating();\n };\n\n private readonly handleCancelOrSubmit = () => {\n const checkoutState = this.props.data.checkout.result;\n if (checkoutState && checkoutState.customerAccountAmount > 0) {\n this.setState({ handleSaveAndContinue: false });\n this.props.telemetry.information('Payment section customer account payment onSubmit is called.');\n\n if (\n Msdyn365.isOboRequest(this.props.context.request) &&\n checkoutState?.customerAccountAmount !== checkoutState?.checkoutCart.cart.TotalAmount\n ) {\n this._setErrorMessage(this.props.resources.invalidAmountForOBOMessage);\n } else {\n this.props.moduleState.onReady();\n }\n } else if (\n checkoutState?.customerAccountAmount === 0 &&\n !this.state.handleSaveAndContinue &&\n this.props.config.isCheckoutCustomerAccountPaymentRequired\n ) {\n this._setErrorMessage(this.props.resources.customerAccountCreditErrorMessage);\n } else {\n this.props.telemetry.information('Payment section customer account payment onCancel is called.');\n\n // Skip the module\n this.props.moduleState.onSkip();\n }\n };\n\n private readonly removePayment = async (): Promise => {\n const checkoutState = this.props.data.checkout.result;\n\n if (!checkoutState) {\n this.props.context.telemetry.error('checkout state not found');\n return;\n }\n\n this.setState({\n paymentAmount: 0\n });\n\n this.onChangePaymentAmount('', NaN, '0');\n\n this._clearError();\n await checkoutState.updateCustomerAccountAmount({ newAmount: 0 });\n this.props.context.telemetry.information('customer account payment removed');\n };\n\n @action\n private readonly _setErrorMessage = (errorMessage: string): void => {\n this.props.telemetry.error(errorMessage);\n this.props.moduleState.setHasError(true);\n this.props.moduleState.onUpdating();\n this.setState({\n errorMessage\n });\n };\n\n private readonly _clearError = (): void => {\n this.props.moduleState.setHasError(false);\n this.setState({\n errorMessage: ''\n });\n };\n}\n\nexport default CheckoutCustomerAccountPayment;\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 { ICheckoutCustomerAccountPaymentViewProps, IAccountPaymentEditViewForm, IAccountPaymentSummaryViewForm } from './index';\n\nexport const SummaryForm: React.FC = ({\n formProps,\n label,\n paymentAmount,\n addPaymentButton,\n appliedLine,\n bottomBorder\n}) => (\n \n <>\n {label}\n {paymentAmount}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nexport const EditForm: React.FC = ({\n formProps,\n inputLabel,\n inputAmount,\n addPaymentButton,\n customerName,\n customerAccountNumber,\n customerSince,\n accountCredit,\n alert,\n accountDetails,\n appliedLine,\n bottomBorder\n}) => (\n \n <>\n {customerName}\n {customerAccountNumber}\n {customerSince}\n {accountCredit}\n {accountDetails}\n {inputLabel}\n {alert}\n {inputAmount}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nconst CheckoutCustomerAccountView: React.FC = props => {\n const { checkoutCustomerAccount, checkoutErrorRef, summaryView, editView, moduleState, alert } = props;\n return (\n \n {alert}\n {moduleState.isReady && summaryView && }\n {!moduleState.isReady && editView && }\n \n );\n};\n\nexport default CheckoutCustomerAccountView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageProps, IImageSettings, Image, IModule } from '@msdyn365-commerce/core';\nimport {\n Address,\n CartLine,\n LineDeliverySpecification,\n PickupTimeslotAvailability,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ICheckoutPickupGroupKey {\n pickupStoreId: string;\n deliveryMode: string;\n}\n\nexport interface ICheckoutPickupGroup extends ICheckoutPickupGroupKey {\n pickupModeName: string;\n storeName: string;\n pickupAddress?: Address;\n availabilityState: PickupTimeslotAvailabilityState;\n groupErrorMessage?: string;\n dateErrorMessage?: string;\n timeslotErrorMessage?: string;\n lineDeliverySpecs: LineDeliverySpecification[];\n cartLines: ICartLineWithProduct[];\n\n availableDates: Date[];\n availableTimeslots: PickupTimeslotAvailability[];\n\n selectedDate?: Date;\n selectedTimeslot?: PickupTimeslotAvailability;\n}\n\nexport enum PickupTimeslotAvailabilityState {\n None,\n Available,\n NotDefined,\n NotAvailable // All slots occupied\n}\n\nexport interface ICartLineWithProduct {\n cartLine: CartLine;\n product?: SimpleProduct;\n}\n\nexport interface ICheckoutPickupGroupViewProps {\n moduleProps: IModule;\n\n pickupGroupContainer: INodeProps;\n dateTimeslotContainer: INodeProps;\n\n pickupStoreId: string;\n pickupModeName: string;\n deliveryMode: string;\n\n groupDivider: React.ReactNode;\n groupHeader: React.ReactNode;\n groupErrorMessage: React.ReactNode;\n cartLineImages: React.ReactNode;\n pickupDateDropdown: React.ReactNode;\n pickupTimeslotDropdown: React.ReactNode;\n\n selectedDateTimeslot: React.ReactNode;\n pickupAddress: React.ReactNode;\n}\n\nexport interface ICheckoutPickupErrorProps {\n errorMessage?: string;\n}\n\nexport const CheckoutPickupError: React.FC = ({ errorMessage }) => {\n if (!errorMessage) {\n return null;\n }\n\n return (\n \n \n );\n};\n\nexport interface ICheckoutPickupGroupHeaderProps {\n moduleClassName: string;\n storeInfo: string;\n items: string;\n}\n\nexport const CheckoutPickupGroupHeader: React.FC = ({ moduleClassName, storeInfo, items }) => {\n return (\n
    \n
    {storeInfo}
    \n
    {items}
    \n
    \n );\n};\n\nexport interface ICheckoutPickupTimeslotInfoProps {\n moduleClassName: string;\n title: string;\n content: string;\n}\n\nexport const CheckoutPickupTimeslotInfo: React.FC = ({ moduleClassName, title, content }) => {\n return (\n
    \n
    {title}
    \n
    {content}
    \n
    \n );\n};\n\nexport interface ICheckoutPickupAddressProps {\n moduleClassName: string;\n title: string;\n address?: Address;\n}\n\nexport const CheckoutPickupAddress: React.FC = ({ moduleClassName, title, address }) => {\n if (!address) {\n return null;\n }\n\n return (\n
    \n
    {title}
    \n {address.Name && {address.Name}}\n <>\n {address.Street && {address.Street}}\n {address.City && {address.City}}\n {address.State && {`, ${address.State}`}}\n {address.County && {`, ${address.County}`}}\n {address.ZipCode && {` ${address.ZipCode}`}}\n {address.ThreeLetterISORegionName && (\n \n {` ${address.ThreeLetterISORegionName}`}\n \n )}\n \n
    \n );\n};\n\nexport interface ICheckoutPickupCartLineInfo {\n lineId: string;\n imageProps: IImageProps;\n quantity: number;\n}\n\nexport interface ICheckoutPickupCartLinesProps {\n moduleClassName: string;\n cartLines: ICheckoutPickupCartLineInfo[];\n}\n\nexport const CheckoutPickupCartLines: React.FC = ({ moduleClassName, cartLines }) => {\n if (!ArrayExtensions.hasElements(cartLines)) {\n return null;\n }\n return (\n
    \n {cartLines.map(prop => {\n const showQty = prop.quantity > 1;\n let className = `${moduleClassName}__group-product-image`;\n if (showQty) {\n className = classnames(className, ' product-image-wide');\n }\n return (\n
    \n \n {showQty &&
    {prop.quantity}
    }\n
    \n );\n })}\n
    \n );\n};\n\nexport const DefaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=108&h=108&q=80&m=6&f=jpg\"', w: 108, h: 108 },\n lg: { q: 'w=108&h=108&q=80&m=6&f=jpg', w: 108, h: 108 },\n xl: { q: 'w=108&h=108&q=80&m=6&f=jpg', w: 108, h: 108 }\n },\n lazyload: true,\n quality: 80\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { format } from '@msdyn365-commerce-modules/utilities';\n\nexport function getDate(date: Date | undefined, locale: string): string {\n if (!date) {\n return '';\n }\n const options: Intl.DateTimeFormatOptions = {\n timeZone: 'UTC'\n };\n const formatter = new Intl.DateTimeFormat(locale, options);\n return formatter.format(new Date(date));\n}\n\nexport const getTimeslot = (\n placeHolder: string,\n startDate: Date | undefined,\n endDate: Date | undefined,\n locale: string,\n useHour12TimeFormat?: boolean\n): string => {\n if (!startDate || !endDate) {\n return '';\n }\n let options: Intl.DateTimeFormatOptions = { hour: 'numeric', minute: 'numeric' };\n options = useHour12TimeFormat\n ? { hour: 'numeric', minute: 'numeric', timeZone: 'UTC' }\n : { hour: 'numeric', minute: 'numeric', timeZone: 'UTC', hour12: true };\n const formatter = new Intl.DateTimeFormat(locale, options);\n return format(placeHolder, formatter.format(new Date(startDate)), formatter.format(new Date(endDate)));\n};\n\nexport const getUTCDateWithoutTime = (input: Date): Date => {\n const date: Date = new Date(input);\n return new Date(Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 0, 0, 0));\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { LabeledDropdown } from '@msdyn365-commerce-modules/utilities';\nimport {\n ILabeledDropdownOnChangeNotification,\n ILabeledDropdownOption\n} from '@msdyn365-commerce-modules/utilities/dist/types/labeled-dropdown/LabeledDropdown.props';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { CheckoutPickupError } from './checkout-pickup-group';\nimport { getDate } from './checkout-pickup-utility';\n\nexport interface IPickupDropdownProps {\n pickupStoreId: string;\n deliveryMode: string;\n\n className: string;\n labelClassname?: string;\n labelText: string;\n defaultText: string;\n errorMessage?: string;\n\n locale: string;\n\n // Props for the LabeledDropdown component\n dropdownId: string;\n controlledByParent: boolean;\n toggleColor?: string;\n dropdownClassname?: string;\n}\n\nexport interface IPickupDateDropdownProps extends IPickupDropdownProps {\n availableDates: Date[];\n selectedDate?: Date;\n setDateHandler(pickupStoreId: string, deliveryMode: string, pickupDate: Date | undefined): void;\n}\n\n/**\n *\n * CheckoutPickupDateDropdown component.\n * @extends {React.Component}\n */\nexport class CheckoutPickupDateDropdown extends React.PureComponent {\n private readonly defaultKey: number = -1;\n\n private readonly defaultOption: ILabeledDropdownOption;\n\n // As the LabeledDropdown control only offers key and value, we need to map the key with date and timeslot data\n @computed get getDateMap(): Map {\n const map = new Map();\n this.props.availableDates.forEach((value, index) => {\n map.set(index.toString(), value);\n });\n return map;\n }\n\n constructor(props: IPickupDateDropdownProps) {\n super(props);\n this.defaultOption = { key: this.defaultKey.toString(), value: props.defaultText };\n this.updateDateSelection = this.updateDateSelection.bind(this);\n }\n\n public render(): JSX.Element | null {\n const {\n className,\n labelClassname,\n labelText,\n errorMessage,\n dropdownId,\n availableDates,\n selectedDate,\n controlledByParent,\n toggleColor,\n dropdownClassname\n } = this.props;\n\n const { dropdownOptions, selectedOption } = this.mapDatesToOptions(availableDates, selectedDate);\n\n return (\n
    \n \n \n \n
    \n );\n }\n\n private readonly updateDateSelection = (notification: ILabeledDropdownOnChangeNotification): void => {\n const { pickupStoreId, deliveryMode, setDateHandler } = this.props;\n const date: Date | undefined = this.getDate(notification);\n setDateHandler(pickupStoreId, deliveryMode, date);\n };\n\n private readonly getDate = (notification: ILabeledDropdownOnChangeNotification): Date | undefined => {\n const key: string = notification.selectedOption.key;\n if (key === this.defaultKey.toString() || !this.getDateMap.has(key)) {\n return undefined;\n }\n return this.getDateMap.get(key);\n };\n\n private readonly mapDatesToOptions = (\n dates: Date[],\n selectedDate: Date | undefined\n ): { dropdownOptions: ILabeledDropdownOption[]; selectedOption: ILabeledDropdownOption | undefined } => {\n const { locale } = this.props;\n let options: ILabeledDropdownOption[] = [];\n let selectedOption: ILabeledDropdownOption = this.defaultOption;\n\n options = dates.map((value: Date, index: number) => {\n return {\n key: index.toString(),\n value: getDate(value, locale)\n };\n });\n options.unshift(this.defaultOption);\n\n const index: number = dates.findIndex((value: Date) => selectedDate !== undefined && selectedDate.getTime() === value.getTime());\n if (index >= 0 && selectedDate) {\n selectedOption = {\n key: index.toString(),\n value: getDate(selectedDate, locale)\n };\n }\n\n return {\n dropdownOptions: options,\n selectedOption\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 { PickupTimeslotAvailability } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { LabeledDropdown } from '@msdyn365-commerce-modules/utilities';\nimport {\n ILabeledDropdownOnChangeNotification,\n ILabeledDropdownOption\n} from '@msdyn365-commerce-modules/utilities/dist/types/labeled-dropdown/LabeledDropdown.props';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { IPickupDropdownProps } from './checkout-pickup-date-dropdown';\nimport { CheckoutPickupError } from './checkout-pickup-group';\nimport { getTimeslot } from './checkout-pickup-utility';\n\nexport interface IPickupTimeslotDropdownProps extends IPickupDropdownProps {\n availableTimeslots: PickupTimeslotAvailability[];\n selectedTimeslot?: PickupTimeslotAvailability;\n timeslotPlaceHolder: string;\n setTimeslotHandler(pickupStoreId: string, deliveryMode: string, pickupTimeslot: PickupTimeslotAvailability | undefined): void;\n useHour12TimeFormat?: boolean;\n}\n\n/**\n *\n * CheckoutPickupTimeslotDropdown component.\n * @extends {React.Component}\n */\nexport class CheckoutPickupTimeslotDropdown extends React.PureComponent {\n private readonly defaultKey: number = -1;\n\n private readonly defaultOption: ILabeledDropdownOption;\n\n // As the LabeledDropdown control only offers key and value, we need to map the key with date and timeslot data\n @computed get getTimeslotMap(): Map {\n const map = new Map();\n this.props.availableTimeslots.forEach((value, index) => {\n map.set(index.toString(), value);\n });\n return map;\n }\n\n constructor(props: IPickupTimeslotDropdownProps) {\n super(props);\n this.defaultOption = { key: this.defaultKey.toString(), value: props.defaultText };\n this.updateTimeslotSelection = this.updateTimeslotSelection.bind(this);\n }\n\n public render(): JSX.Element | null {\n const {\n className,\n labelClassname,\n labelText,\n errorMessage,\n dropdownId,\n availableTimeslots,\n selectedTimeslot,\n controlledByParent,\n toggleColor,\n dropdownClassname\n } = this.props;\n\n const { dropdownOptions, selectedOption } = this.mapTimeslotsToOptions(availableTimeslots, selectedTimeslot);\n\n return (\n
    \n \n \n \n
    \n );\n }\n\n private readonly updateTimeslotSelection = (notification: ILabeledDropdownOnChangeNotification): void => {\n const { pickupStoreId, deliveryMode, setTimeslotHandler } = this.props;\n const timeslot: PickupTimeslotAvailability | undefined = this.getTimeslot(notification);\n setTimeslotHandler(pickupStoreId, deliveryMode, timeslot);\n };\n\n private readonly getTimeslot = (notification: ILabeledDropdownOnChangeNotification): PickupTimeslotAvailability | undefined => {\n const key: string = notification.selectedOption.key;\n if (key === this.defaultKey.toString() || !this.getTimeslotMap.has(key)) {\n return undefined;\n }\n return this.getTimeslotMap.get(key);\n };\n\n private readonly mapTimeslotsToOptions = (\n timeslots: PickupTimeslotAvailability[],\n selectedTimeslot: PickupTimeslotAvailability | undefined\n ): { dropdownOptions: ILabeledDropdownOption[]; selectedOption: ILabeledDropdownOption | undefined } => {\n const { timeslotPlaceHolder, locale, useHour12TimeFormat } = this.props;\n let options: ILabeledDropdownOption[] = [];\n let selectedOption: ILabeledDropdownOption = this.defaultOption;\n\n options = timeslots.map((value: PickupTimeslotAvailability, index: number) => {\n return {\n key: index.toString(),\n value: getTimeslot(timeslotPlaceHolder, value.StartDateTime, value.EndDateTime, locale, useHour12TimeFormat)\n };\n });\n options.unshift(this.defaultOption);\n\n const index: number = timeslots.findIndex(\n value =>\n selectedTimeslot !== undefined &&\n selectedTimeslot.StartDateTime?.getTime() === value.StartDateTime?.getTime() &&\n selectedTimeslot.EndDateTime?.getTime() === value.EndDateTime?.getTime()\n );\n if (index >= 0 && selectedTimeslot) {\n selectedOption = {\n key: index.toString(),\n value: getTimeslot(\n timeslotPlaceHolder,\n selectedTimeslot.StartDateTime,\n selectedTimeslot.EndDateTime,\n locale,\n useHour12TimeFormat\n )\n };\n }\n\n return {\n dropdownOptions: options,\n selectedOption\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 { CheckoutModule, ErrorLocation, ICheckoutState } from '@msdyn365-commerce/global-state';\nimport { getEstimatedPickupTimeslotAvailabilitiesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport {\n CartLine,\n LineDeliverySpecification,\n OrgUnitLocation,\n PickupTimeslotAvailability,\n PickupTimeslotAvailabilitySearchCriteria,\n ProductDeliveryOptions,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\nimport {\n ArrayExtensions,\n getFallbackImageUrl,\n getSimpleProducts,\n ObjectExtensions,\n ProductInput\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { format, IModuleProps, isNullOrWhiteSpace, Waiting } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { action, computed, observable, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ICheckoutPickupData } from './checkout-pickup.data';\nimport { ICheckoutPickupProps } from './checkout-pickup.props.autogenerated';\nimport {\n CheckoutPickupDateDropdown,\n CheckoutPickupError,\n CheckoutPickupTimeslotDropdown,\n getDate,\n getTimeslot,\n getUTCDateWithoutTime\n} from './components';\nimport {\n CheckoutPickupAddress,\n CheckoutPickupCartLines,\n CheckoutPickupGroupHeader,\n CheckoutPickupTimeslotInfo,\n DefaultImageSettings,\n ICheckoutPickupAddressProps,\n ICheckoutPickupCartLineInfo,\n ICheckoutPickupCartLinesProps,\n ICheckoutPickupGroup,\n ICheckoutPickupGroupHeaderProps,\n ICheckoutPickupGroupViewProps,\n ICheckoutPickupTimeslotInfoProps,\n PickupTimeslotAvailabilityState\n} from './components/checkout-pickup-group';\nimport { focusOnCheckoutError } from '../../checkout-errors';\n\nexport interface ICheckoutPickupModuleProps extends ICheckoutPickupProps, IModuleStateProps {}\n\nexport interface ICheckoutPickupState {\n pickupGroups: ICheckoutPickupGroup[];\n}\n\nexport interface ICheckoutPickupViewState {\n isLoading: boolean;\n isHeaderError: boolean;\n isShowDropdown: boolean;\n isShowSelected: boolean;\n}\n\nexport interface ICheckoutPickupViewProps extends ICheckoutPickupProps<{}> {\n checkoutPickup: IModuleProps;\n viewState: ICheckoutPickupViewState;\n headerError: React.ReactNode;\n waiting: React.ReactNode;\n pickupGroups: ICheckoutPickupGroupViewProps[];\n checkoutErrorRef?: React.RefObject;\n}\n\n/**\n *\n * CheckoutPickup component.\n * @extends {React.Component}\n */\n// @ts-expect-error\n@withModuleState\n@observer\nclass CheckoutPickup extends React.Component {\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\n\n @observable private isLoading: boolean = false;\n\n @observable private headerErrorMessage?: string;\n\n @computed get isDataReady(): boolean {\n return (\n (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS' &&\n (this.props.data.orgUnitLocations.result && this.props.data.orgUnitLocations.status) === 'SUCCESS'\n );\n }\n\n constructor(props: ICheckoutPickupModuleProps) {\n super(props);\n this.state = { pickupGroups: [] };\n\n this.setDateHandler = this.setDateHandler.bind(this);\n this.setTimeslotHandler = this.setTimeslotHandler.bind(this);\n }\n\n public componentDidMount(): void {\n when(\n () => this.isDataReady,\n async () => {\n await this.initPickupGroup();\n this.initModuleState();\n }\n );\n\n if (this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging) {\n reaction(\n () => this.props.data.checkout.result?.checkoutError,\n checkoutError => {\n if (checkoutError && checkoutError.errorLocation === ErrorLocation.CheckoutPickup && checkoutError.errorMessage) {\n this.setError(checkoutError.errorMessage);\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.checkoutErrorFocus,\n checkoutErrorFocus => {\n if (checkoutErrorFocus === CheckoutModule.CheckoutPickup) {\n focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\n }\n }\n );\n }\n }\n\n public shouldComponentUpdate(nextProps: ICheckoutPickupModuleProps, nextState: ICheckoutPickupState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n if (!this.isDataReady || !this.canPickup()) {\n return null;\n }\n\n const { resources, config, context } = this.props;\n\n const {\n pickupDateLabel,\n pickupTimeslotLabel,\n pickupDateDefaultText,\n pickupTimeslotDefaultText,\n itemsText,\n singleItemText,\n pickupDateTimeslotText,\n pickupTimeslotPlaceHolder,\n pickupLocationLabel\n } = resources;\n\n const { locale } = context.request;\n const { className, imageSettings, useHour12TimeFormat } = config;\n const defaultClassName = 'ms-checkout-pickup';\n const groupsViewProps: ICheckoutPickupGroupViewProps[] = [];\n\n this.state.pickupGroups.forEach((value, index) => {\n // Divider line for each pickup group\n const groupDivider: React.ReactNode = index !== 0 &&
    ;\n\n // Line images\n const cartlines: ICheckoutPickupCartLineInfo[] = value.cartLines\n .filter(x => !ObjectExtensions.isNullOrUndefined(x.product))\n .map(line => ({\n lineId: line.cartLine.LineId || '',\n imageProps: {\n requestContext: context.actionContext.requestContext,\n className: `${defaultClassName}__group-line-image`,\n altText: line.product?.Name,\n src: line.product?.PrimaryImageUrl || '',\n fallBackSrc: getFallbackImageUrl(\n line.product?.ItemId,\n context.actionContext.requestContext.apiSettings,\n context.request.app?.config?.OmniChannelMedia\n ),\n gridSettings: context.request.gridSettings!,\n imageSettings: imageSettings || DefaultImageSettings,\n loadFailureBehavior: 'empty'\n },\n quantity: line.cartLine.Quantity || 0\n }));\n\n // Heading for each group\n const numberOfCartLines = this._countItems(cartlines);\n const itemText = numberOfCartLines > 1 ? itemsText : singleItemText;\n const itemTitle = `(${format(itemText, numberOfCartLines)})`;\n const headerProps: ICheckoutPickupGroupHeaderProps = {\n moduleClassName: defaultClassName,\n storeInfo: `${value.pickupModeName}, ${value.storeName}`,\n items: itemTitle\n };\n const groupHeader: React.ReactNode = ;\n\n const lineImageProps: ICheckoutPickupCartLinesProps = {\n moduleClassName: defaultClassName,\n cartLines: cartlines.filter(x => !ObjectExtensions.isNullOrUndefined(x))\n };\n const cartLineImages: React.ReactNode = ;\n\n // Selected pickup date and timeslot node\n const dateString = getDate(value.selectedDate, locale);\n const timeslotString = getTimeslot(\n pickupTimeslotPlaceHolder,\n value.selectedTimeslot?.StartDateTime,\n value.selectedTimeslot?.EndDateTime,\n locale,\n useHour12TimeFormat\n );\n const timeslotInfoProps: ICheckoutPickupTimeslotInfoProps = {\n moduleClassName: defaultClassName,\n title: pickupDateTimeslotText,\n content: `${dateString} ${timeslotString}`\n };\n const selectedDateTimeslotNode: React.ReactNode = ;\n\n // Pickup address\n const addressProps: ICheckoutPickupAddressProps = {\n moduleClassName: defaultClassName,\n title: pickupLocationLabel,\n address: value.pickupAddress\n };\n const pickupAddress: React.ReactNode = ;\n\n // Pickup date and timeslot dropdown list\n const dropdownClassName = `${defaultClassName}__group-datetime-dropdown`;\n const labelClassName = `${dropdownClassName}-label`;\n const dropdownSelectClassName = `${dropdownClassName}-select`;\n const dateDropdownNode: React.ReactNode = (\n \n );\n\n const timeslotDropdownNode: React.ReactNode = (\n \n );\n\n const viewProp: ICheckoutPickupGroupViewProps = {\n moduleProps: { ...this.props },\n pickupGroupContainer: { className: `${defaultClassName}__group` },\n dateTimeslotContainer: { className: `${defaultClassName}__group-datetime` },\n pickupStoreId: value.pickupStoreId,\n pickupModeName: value.pickupModeName,\n deliveryMode: value.deliveryMode,\n groupDivider,\n groupHeader,\n groupErrorMessage: ,\n cartLineImages,\n pickupDateDropdown: dateDropdownNode,\n pickupTimeslotDropdown: timeslotDropdownNode,\n selectedDateTimeslot: selectedDateTimeslotNode,\n pickupAddress\n };\n\n groupsViewProps.push(viewProp);\n });\n\n const {\n moduleState: { isReady, hasError }\n } = this.props;\n const isHeaderError = !this.isLoading && this.headerErrorMessage !== undefined;\n const isShowDropdown = !this.isLoading && !isReady;\n const isShowSelected = !this.isLoading && !hasError && isReady;\n\n const viewProps: ICheckoutPickupViewProps = {\n ...this.props,\n checkoutPickup: {\n moduleProps: this.props,\n className: classname(defaultClassName, className)\n },\n viewState: {\n isLoading: this.isLoading,\n isHeaderError,\n isShowSelected,\n isShowDropdown\n },\n headerError: ,\n waiting: ,\n pickupGroups: groupsViewProps,\n checkoutErrorRef: this.checkoutErrorRef\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n @action\n public async setDateHandler(pickupStoreId: string, deliveryMode: string, pickupDate: Date | undefined): Promise {\n const oldGroup = this.state.pickupGroups.find(\n group => group.pickupStoreId === pickupStoreId && group.deliveryMode === deliveryMode\n );\n if (!oldGroup) {\n return;\n }\n\n const newGroup: ICheckoutPickupGroup = { ...oldGroup };\n newGroup.selectedDate = pickupDate;\n newGroup.selectedTimeslot = undefined; // Clear the selected timeslot in any case\n newGroup.timeslotErrorMessage = undefined; // Clear the timeslot error message if any\n newGroup.lineDeliverySpecs.forEach((lineSpec: LineDeliverySpecification) => {\n if (lineSpec.DeliverySpecification) {\n lineSpec.DeliverySpecification.PickupTimeslotStartDateTime = undefined;\n lineSpec.DeliverySpecification.PickupTimeslotEndDateTime = undefined;\n }\n });\n\n if (pickupDate) {\n // Date is set\n const searchCriteria: PickupTimeslotAvailabilitySearchCriteria = {\n DeliveryModeCode: newGroup.deliveryMode,\n StoreId: newGroup.pickupStoreId,\n StartDate: pickupDate,\n EndDate: pickupDate,\n SearchOptionValue: 2 // Test runtime does not recognize PickupTimeslotAvailabilitySearchOption.All\n };\n const timeslotResults: PickupTimeslotAvailability[] = await getEstimatedPickupTimeslotAvailabilitiesAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {}, bypassCache: 'get' },\n searchCriteria\n );\n\n newGroup.availableTimeslots = timeslotResults.filter(value => (value.AvailableCapacity || 0) > 0);\n newGroup.dateErrorMessage =\n newGroup.availableTimeslots.length === 0 ? this.props.resources.noAvailableTimeslotError : undefined;\n } else {\n // Date is not set\n newGroup.availableTimeslots = [];\n newGroup.dateErrorMessage = undefined;\n }\n\n const groups = this.state.pickupGroups.map(group => {\n if (group.pickupStoreId === pickupStoreId && group.deliveryMode === deliveryMode) {\n return newGroup;\n }\n return group;\n });\n\n this.setState({ pickupGroups: groups });\n }\n\n @action\n public setTimeslotHandler(pickupStoreId: string, deliveryMode: string, pickupTimeslot: PickupTimeslotAvailability | undefined): void {\n const oldGroup = this.state.pickupGroups.find(\n group => group.pickupStoreId === pickupStoreId && group.deliveryMode === deliveryMode\n );\n if (!oldGroup) {\n return;\n }\n\n const newGroup: ICheckoutPickupGroup = { ...oldGroup };\n\n newGroup.selectedTimeslot = pickupTimeslot;\n newGroup.lineDeliverySpecs.forEach((lineSpec: LineDeliverySpecification) => {\n if (lineSpec.DeliverySpecification) {\n lineSpec.DeliverySpecification.PickupTimeslotStartDateTime = pickupTimeslot?.StartDateTime;\n lineSpec.DeliverySpecification.PickupTimeslotEndDateTime = pickupTimeslot?.EndDateTime;\n }\n });\n\n if (pickupTimeslot) {\n newGroup.timeslotErrorMessage = undefined;\n }\n\n const groups = this.state.pickupGroups.map(group => {\n if (group.pickupStoreId === pickupStoreId && group.deliveryMode === deliveryMode) {\n return newGroup;\n }\n return group;\n });\n\n this.setState({ pickupGroups: groups });\n }\n\n @action\n private readonly initModuleState = (): void => {\n this.props.moduleState.init({\n onEdit: this.onEdit,\n onSubmit: this.onSubmit,\n status: this.canPickup() ? (this.isPickupTimeSlotSet() ? 'ready' : 'updating') : 'disabled'\n });\n };\n\n private readonly onEdit = (): void => {\n this.props.moduleState.onUpdating();\n };\n\n private readonly onReady = (): void => {\n this.props.moduleState.onReady();\n };\n\n private readonly onPending = (): void => {\n this.props.moduleState.onPending();\n };\n\n private readonly onSubmit = async (): Promise => {\n await this.updateCartLinePickupDateTimeslot();\n };\n\n private readonly setError = (errorMessage: string, isHeaderError: boolean = true): void => {\n this.props.telemetry.error(errorMessage);\n this.props.moduleState.setHasError(true);\n this.props.moduleState.onUpdating();\n if (isHeaderError) {\n this.headerErrorMessage = errorMessage;\n }\n };\n\n private readonly clearError = (): void => {\n this.props.moduleState.setHasError(false);\n this.headerErrorMessage = undefined;\n };\n\n @action\n private readonly initPickupGroup = async (): Promise => {\n const pickupCartLines: CartLine[] = this.getCartLinesforPickup();\n let products: SimpleProduct[] = [];\n try {\n products = await this.getProductsByCartLines(\n this.props.data.checkout.result?.checkoutCart.cart.ChannelId || 0,\n pickupCartLines\n );\n } catch (error) {\n this.props.telemetry.error(error);\n }\n const pickupGroups: ICheckoutPickupGroup[] = [];\n const locations: OrgUnitLocation[] = this.props.data.orgUnitLocations.result || [];\n this.isLoading = true;\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\n const { featureState, deliveryOptions } = this.props?.data;\n const retailMultiplePickUpOptionEnabled = featureState?.result?.find(feature => feature.Name === multiplePickupStoreSwitchName)\n ?.IsEnabled;\n\n for (const line of pickupCartLines) {\n const group: ICheckoutPickupGroup | undefined = pickupGroups.find(\n x => x.pickupStoreId === line.FulfillmentStoreId && x.deliveryMode === line.DeliveryMode\n );\n const product: SimpleProduct | undefined = products.find(x => x.RecordId === line.ProductId);\n const lineDeliverySpecification: LineDeliverySpecification = {\n LineId: line.LineId,\n DeliverySpecification: {\n DeliveryModeId: line.DeliveryMode,\n DeliveryPreferenceTypeValue: 2,\n PickUpStoreId: line.FulfillmentStoreId,\n PickupTimeslotStartDateTime: line.PickupTimeslotStartDateTime,\n PickupTimeslotEndDateTime: line.PickupTimeslotEndDateTime,\n DeliveryAddress: line.ShippingAddress\n }\n };\n if (group) {\n group.lineDeliverySpecs.push(lineDeliverySpecification);\n group.cartLines.push({ cartLine: line, product });\n } else {\n // Group not exists yet\n const location: OrgUnitLocation | undefined = locations.find(x => x.OrgUnitNumber === line.FulfillmentStoreId);\n const storeName: string = this.getStoreName(location, line);\n const selectedDate: Date | undefined =\n line.PickupTimeslotStartDateTime && getUTCDateWithoutTime(line.PickupTimeslotStartDateTime);\n const selectedTimeslot =\n line.PickupTimeslotStartDateTime && line.PickupTimeslotEndDateTime\n ? { StartDateTime: line.PickupTimeslotStartDateTime, EndDateTime: line.PickupTimeslotEndDateTime }\n : undefined;\n const newGroup: ICheckoutPickupGroup = {\n pickupModeName: retailMultiplePickUpOptionEnabled\n ? this.getPickupModeDescription(\n this.props.resources.generalPickupText,\n line.DeliveryMode,\n deliveryOptions?.result,\n product\n )\n : this.props.resources.generalPickupText,\n pickupStoreId: line.FulfillmentStoreId || '',\n deliveryMode: line.DeliveryMode || '',\n storeName,\n pickupAddress: line.ShippingAddress,\n availabilityState: PickupTimeslotAvailabilityState.None,\n lineDeliverySpecs: [lineDeliverySpecification],\n cartLines: [{ cartLine: line, product }],\n availableDates: [],\n availableTimeslots: [],\n selectedDate,\n selectedTimeslot\n };\n\n let dailyGroupingResults: PickupTimeslotAvailability[] = [];\n try {\n const searchCriteria: PickupTimeslotAvailabilitySearchCriteria = {\n DeliveryModeCode: newGroup.deliveryMode,\n StoreId: newGroup.pickupStoreId,\n SearchOptionValue: 1 // Test runtime does not recognize PickupTimeslotAvailabilitySearchOption.DailyGroupingTimeslotOnly\n };\n dailyGroupingResults = await getEstimatedPickupTimeslotAvailabilitiesAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {} },\n searchCriteria\n );\n } catch (error) {\n this.props.telemetry.error(error);\n }\n newGroup.availabilityState = this.getPickupTimeslotAvailabilityState(dailyGroupingResults);\n if (newGroup.availabilityState === PickupTimeslotAvailabilityState.NotAvailable) {\n newGroup.groupErrorMessage = this.props.resources.noAvailableDateError;\n this.setError(newGroup.groupErrorMessage, false);\n }\n dailyGroupingResults.forEach(value => {\n if (value.StartDateTime && (value.AvailableCapacity || 0) > 0) {\n newGroup.availableDates.push(getUTCDateWithoutTime(value.StartDateTime));\n }\n });\n\n if (selectedDate) {\n let timeslotResults: PickupTimeslotAvailability[] = [];\n try {\n const searchCriteria: PickupTimeslotAvailabilitySearchCriteria = {\n DeliveryModeCode: newGroup.deliveryMode,\n StoreId: newGroup.pickupStoreId,\n StartDate: selectedDate,\n EndDate: selectedDate,\n SearchOptionValue: 2 // Test runtime does not recognize PickupTimeslotAvailabilitySearchOption.All\n };\n timeslotResults = await getEstimatedPickupTimeslotAvailabilitiesAsync(\n { callerContext: this.props.context.actionContext, queryResultSettings: {}, bypassCache: 'get' },\n searchCriteria\n );\n } catch (error) {\n this.props.telemetry.error(error);\n }\n newGroup.availableTimeslots = timeslotResults.filter(value => (value.AvailableCapacity || 0) > 0);\n }\n pickupGroups.push(newGroup);\n }\n }\n\n const filteredPickupGroups = pickupGroups.filter(\n group =>\n group.availabilityState === PickupTimeslotAvailabilityState.Available ||\n group.availabilityState === PickupTimeslotAvailabilityState.NotAvailable\n );\n\n if (!ArrayExtensions.hasElements(filteredPickupGroups)) {\n this.props.context.telemetry.error('Data is not ready or pickup group is empty, module wont render.');\n }\n this.isLoading = false;\n this.setState({ pickupGroups: filteredPickupGroups });\n };\n\n @action\n private readonly updateCartLinePickupDateTimeslot = async (): Promise => {\n if (!this.validateTimeslot()) {\n return;\n }\n const { resources } = this.props;\n let lineSpecs: LineDeliverySpecification[] = [];\n\n this.state.pickupGroups.forEach(group => {\n lineSpecs = lineSpecs.concat(group.lineDeliverySpecs);\n });\n\n this.clearError();\n this.onPending();\n\n try {\n const checkoutState = this.props.data.checkout.result as ICheckoutState;\n const response = await checkoutState.checkoutCart.updateCartLinePickupDateTimeslot({ lineDeliverySpecifications: lineSpecs });\n\n if (response.status === 'FAILED') {\n this.setError(resources.genericErrorMessage);\n } else {\n this.onReady();\n this.props.moduleState.setIsCancellable(true);\n }\n } catch {\n this.setError(resources.genericErrorMessage);\n }\n };\n\n private readonly getProductsByCartLines = async (channelId: number, cartLines: CartLine[]): Promise => {\n const actionContext = this.props.context.actionContext;\n const productInputs = cartLines\n .filter(line => !ObjectExtensions.isNullOrUndefined(line.ProductId))\n .map(\n line =>\n new ProductInput(\n line.ProductId || 0,\n actionContext.requestContext.apiSettings,\n channelId,\n undefined,\n actionContext.requestContext\n )\n );\n return getSimpleProducts(productInputs, actionContext);\n };\n\n private readonly validateTimeslot = (): boolean => {\n let validationResult = true;\n this.state.pickupGroups.forEach(group => {\n switch (group.availabilityState) {\n case PickupTimeslotAvailabilityState.NotAvailable:\n // Need customer to select another store in this case\n validationResult = false;\n break;\n case PickupTimeslotAvailabilityState.Available:\n if (!group.selectedDate || !group.selectedTimeslot) {\n if (!group.selectedDate) {\n group.dateErrorMessage = this.props.resources.pickupDateRequired;\n }\n if (!group.selectedTimeslot) {\n group.timeslotErrorMessage = this.props.resources.pickupTimeslotRequired;\n }\n this.setError(this.props.resources.pickupDateTimeslotRequired, false);\n validationResult = false;\n } else {\n group.dateErrorMessage = undefined;\n group.timeslotErrorMessage = undefined;\n }\n break;\n\n // We consider timeslot not defined as fallback case\n case PickupTimeslotAvailabilityState.NotDefined:\n default:\n }\n });\n\n return validationResult;\n };\n\n private readonly getStoreName = (orgUnitLocation: OrgUnitLocation | undefined, cartLine: CartLine): string => {\n return orgUnitLocation?.OrgUnitName || cartLine.ShippingAddress?.Name || cartLine.FulfillmentStoreId || '';\n };\n\n private readonly canPickup = (): boolean => {\n return ArrayExtensions.hasElements(this.state.pickupGroups);\n };\n\n private readonly isPickupTimeSlotSet = (): boolean => {\n return (\n ArrayExtensions.hasElements(this.state.pickupGroups) &&\n this.state.pickupGroups.every(\n group =>\n !ObjectExtensions.isNullOrUndefined(group.selectedTimeslot?.StartDateTime) &&\n !ObjectExtensions.isNullOrUndefined(group.selectedTimeslot?.EndDateTime)\n )\n );\n };\n\n private readonly getCartLinesforPickup = (): CartLine[] => {\n return this.props.data.checkout.result?.checkoutCart.cart.CartLines?.filter(line => this.isPickupLine(line)) || [];\n };\n\n private readonly isPickupMode = (deliveryMode: string | undefined): boolean => {\n const pickupDeliveryModeCode = this.props.context.request.channel?.PickupDeliveryModeCode;\n const multiplePickupStoreSwitchName = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\n const { channelDeliveryOptionConfig, featureState } = this.props?.data;\n const retailMultiplePickUpOptionEnabled = featureState?.result?.find(feature => feature.Name === multiplePickupStoreSwitchName)\n ?.IsEnabled;\n if (retailMultiplePickUpOptionEnabled && deliveryMode !== undefined) {\n const pickupDeliveryMode = channelDeliveryOptionConfig?.result?.PickupDeliveryModeCodes?.includes(deliveryMode);\n return pickupDeliveryMode !== undefined ? pickupDeliveryMode : false;\n }\n return deliveryMode !== undefined && pickupDeliveryModeCode !== undefined && deliveryMode === pickupDeliveryModeCode;\n };\n\n private readonly isPickupLine = (line: CartLine): boolean => {\n return (\n this.isPickupMode(line.DeliveryMode) && line.FulfillmentStoreId !== undefined && !isNullOrWhiteSpace(line.FulfillmentStoreId)\n );\n };\n\n private readonly getPickupModeDescription = (\n resourceString: string,\n deliveryMode?: string,\n deliveryOptions?: ProductDeliveryOptions[],\n product?: SimpleProduct\n ): string => {\n let deliveryOption: string = resourceString;\n if (ArrayExtensions.hasElements(deliveryOptions) && product !== undefined) {\n let foundProductDeliveryOption;\n foundProductDeliveryOption = deliveryOptions?.find(deliveryO => {\n return deliveryO && deliveryO.ProductId === product.RecordId;\n });\n const deliveryDesc = foundProductDeliveryOption?.DeliveryOptions\n ? foundProductDeliveryOption?.DeliveryOptions?.find(option => option.Code === deliveryMode)?.Description\n : resourceString;\n if (deliveryDesc !== undefined) {\n deliveryOption = deliveryDesc;\n }\n }\n return deliveryOption;\n };\n\n private readonly getPickupTimeslotAvailabilityState = (dailyResult: PickupTimeslotAvailability[]) => {\n let state: PickupTimeslotAvailabilityState = PickupTimeslotAvailabilityState.None;\n if (!ArrayExtensions.hasElements(dailyResult)) {\n state = PickupTimeslotAvailabilityState.NotDefined;\n } else if (dailyResult.every(date => (date.AvailableCapacity || 0) <= 0)) {\n state = PickupTimeslotAvailabilityState.NotAvailable;\n } else {\n state = PickupTimeslotAvailabilityState.Available;\n }\n return state;\n };\n\n /**\n * Returns count of products.\n * @param cartLine - The checkout pickup cart line info props.\n * @returns Number of products.\n */\n private readonly _countItems = (cartlines: ICheckoutPickupCartLineInfo[]): number => {\n return cartlines.reduce((count, line) => {\n return count + (line.quantity || 0);\n }, 0);\n };\n}\n\nexport default CheckoutPickup;\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 { ICheckoutPickupGroupViewProps, ICheckoutPickupViewProps } from './index';\n\nconst CheckoutPickupView: React.FC = props => {\n const { checkoutPickup, checkoutErrorRef, viewState, headerError, waiting, pickupGroups } = props;\n\n return (\n \n {viewState.isLoading && waiting}\n {viewState.isHeaderError && headerError}\n {pickupGroups.map(\n (pickupGroupViewProps: ICheckoutPickupGroupViewProps, index: number): React.ReactElement => {\n const {\n pickupGroupContainer,\n dateTimeslotContainer,\n groupDivider,\n groupHeader,\n groupErrorMessage,\n cartLineImages,\n pickupDateDropdown,\n pickupTimeslotDropdown,\n selectedDateTimeslot,\n pickupAddress\n } = pickupGroupViewProps;\n\n return (\n \n {groupDivider}\n {groupHeader}\n {groupErrorMessage}\n {cartLineImages}\n {viewState.isShowDropdown && (\n \n {pickupDateDropdown}\n {pickupTimeslotDropdown}\n \n )}\n {viewState.isShowSelected && pickupAddress}\n {viewState.isShowSelected && selectedDateTimeslot}\n \n );\n }\n )}\n \n );\n};\n\nexport default CheckoutPickupView;\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 } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ICheckoutTermsAndConditionsCheckboxProps {\n isChecked: boolean;\n ariaLabel?: string;\n disabled: boolean;\n id?: string;\n telemetryContent?: ITelemetryContent;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * AddPaymentForm SFC.\n * @param root0\n * @param root0.isChecked\n * @param root0.ariaLabel\n * @param root0.disabled\n * @param root0.telemetryContent\n * @param root0.onChange\n * @param root0.id\n * @extends {React.FC}\n */\nconst CheckoutTermsAndConditionsCheckbox: React.FC = ({\n isChecked,\n ariaLabel,\n disabled,\n telemetryContent,\n onChange,\n id\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n const attribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n <>\n \n \n );\n};\n\nexport default CheckoutTermsAndConditionsCheckbox;\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 ICheckoutTermsAndConditionsErrorMessageProps {\n message?: string;\n}\n\n/**\n * AddPaymentForm SFC.\n * @param root0\n * @param root0.message\n * @extends {React.FC}\n */\nconst CheckoutTermsAndConditionsErrorMessage: React.FC = ({ message }) => {\n if (!message) {\n return null;\n }\n\n return

    {message}

    ;\n};\n\nexport default CheckoutTermsAndConditionsErrorMessage;\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 ICheckoutTermsAndConditionsErrorTitleProps {\n title?: string;\n}\n\n/**\n * AddPaymentForm SFC.\n * @param root0\n * @param root0.title\n * @extends {React.FC}\n */\nconst CheckoutTermsAndConditionsErrorTitle: React.FC = ({ title }) => {\n if (!title) {\n return null;\n }\n\n return

    {title}

    ;\n};\n\nexport default CheckoutTermsAndConditionsErrorTitle;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { Button, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { CheckoutModule, ErrorLocation } from '@msdyn365-commerce/global-state';\nimport classname from 'classnames';\nimport { action, computed, observable, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ICheckoutTermsAndConditionsData } from './checkout-terms-and-conditions.data';\nimport { ICheckoutTermsAndConditionsProps } from './checkout-terms-and-conditions.props.autogenerated';\nimport CheckboxComponent from './components/checkout-terms-and-conditions.check-box';\nimport ErrorMessageComponent from './components/checkout-terms-and-conditions.error-message';\nimport ErrorTitleComponent from './components/checkout-terms-and-conditions.error-title';\nimport { focusOnCheckoutError } from '../../checkout-errors';\n\nexport interface ICheckoutTermsAndConditionsModuleProps\n extends ICheckoutTermsAndConditionsProps,\n IModuleStateProps {}\n\nexport interface ICheckoutTermsAndConditions {\n termsAndConditionAcceptance: INodeProps;\n checkBox: React.ReactNode;\n description: React.ReactNode;\n}\n\nexport interface ICheckoutTermsAndConditionsError {\n error: INodeProps;\n title: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ICheckoutTermsAndConditionsViewState {\n isError: boolean;\n isShowSaveButton: boolean;\n isShowEditButton: boolean;\n isShowCancelButton: boolean;\n}\n\nexport interface ICheckoutTermsAndConditionsViewProps extends ICheckoutTermsAndConditionsProps<{}> {\n checkoutTermsAndConditions: IModuleProps;\n isTermsAccepted: boolean;\n errorMessageData: string;\n viewState: ICheckoutTermsAndConditionsViewState;\n termsAndConditionsContent: ICheckoutTermsAndConditions;\n errorMessage?: ICheckoutTermsAndConditionsError;\n saveButton?: React.ReactNode;\n editButton?: React.ReactNode;\n cancelButton?: React.ReactNode;\n checkoutErrorRef?: React.RefObject;\n onChange(event: React.ChangeEvent): void;\n onSave(): void;\n onEdit(): void;\n onCancel(): void;\n}\n\n/**\n *\n * CheckoutTermsAndConditions component.\n * @extends {React.Component>}\n */\n// @ts-expect-error\n@withModuleState\n@observer\nclass CheckoutTermsAndConditions extends React.Component {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly checkoutErrorRef: React.RefObject = React.createRef();\n\n @observable private isTermsAccepted: boolean = true;\n\n @observable private errorMessage?: string;\n\n constructor(props: ICheckoutTermsAndConditionsModuleProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n @computed get isDataReady(): boolean {\n return (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS';\n }\n\n @computed get isShowButtons(): boolean {\n const { showControlButtons } = this.props.config;\n return !this.props.moduleState.hasExternalSubmitGroup && (showControlButtons || false);\n }\n\n @computed get isAutoSave(): boolean {\n const { showControlButtons } = this.props.config;\n return !this.props.moduleState.hasExternalSubmitGroup && !showControlButtons;\n }\n\n @computed get defaultTermsAndConditionAcceptedValue(): boolean {\n const { showCheckbox } = this.props.config;\n return !showCheckbox;\n }\n\n public async componentDidMount(): Promise {\n when(\n () => this.isDataReady,\n async () => {\n await this.init();\n }\n );\n\n reaction(\n () => this.props.data.checkout.result && this.props.data.checkout.result.isTermsAndConditionAccepted,\n async () => {\n this.isTermsAccepted =\n this.props.data.checkout.result?.isTermsAndConditionAccepted || this.defaultTermsAndConditionAcceptedValue;\n }\n );\n\n if (this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging) {\n reaction(\n () => this.props.data.checkout.result?.checkoutError,\n checkoutError => {\n if (\n checkoutError &&\n checkoutError.errorLocation === ErrorLocation.CheckoutTermsAndConditions &&\n checkoutError.errorMessage\n ) {\n this.setError(checkoutError.errorMessage);\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.checkoutErrorFocus,\n checkoutErrorFocus => {\n if (checkoutErrorFocus === CheckoutModule.CheckoutTermsAndConditions) {\n focusOnCheckoutError(this.checkoutErrorRef, this.props.context.actionContext);\n }\n }\n );\n }\n }\n\n public shouldComponentUpdate(\n nextProps: ICheckoutTermsAndConditionsModuleProps,\n nextState: ICheckoutTermsAndConditionsViewState\n ): boolean {\n if (this.state === nextState && this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n moduleState: { isReady, hasError },\n config: { className }\n } = this.props;\n const isTermsAndConditionAccepted = this.props.data.checkout.result?.isTermsAndConditionAccepted;\n const isError = hasError;\n const isShowContent = !isReady;\n const isShowSelected = !hasError && isReady;\n\n const viewProps = {\n ...this.props,\n ...this.state,\n isTermsAccepted: this.isTermsAccepted,\n errorMessageData: this.errorMessage,\n checkoutErrorRef: this.checkoutErrorRef,\n viewState: {\n isError,\n isShowSaveButton: isShowContent && this.isShowButtons,\n isShowEditButton: isShowSelected && this.isShowButtons,\n isShowCancelButton: isShowContent && this.isShowButtons && isTermsAndConditionAccepted\n },\n checkoutTermsAndConditions: {\n moduleProps: this.props,\n className: classname('ms-checkout-terms-and-conditions', className)\n },\n termsAndConditionsContent: this.getTermsAndConditions(),\n errorMessage: this.getErrorMessage(),\n saveButton: this.getSaveButton(),\n editButton: this.getEditButton(),\n cancelButton: this.getCancelButton(),\n onSave: this.onSubmit,\n onEdit: this.onEdit,\n onCancel: this.onCancel,\n onChange: this.onChange\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleTextChange = (event: MsDyn365.ContentEditableEvent) => (this.props.config.description = event.target.value);\n\n private readonly getTermsAndConditions = (): ICheckoutTermsAndConditions => {\n const {\n moduleState: { isReady },\n config: { showCheckbox, description }\n } = this.props;\n const isDisabled = isReady && !this.isAutoSave;\n const isTermsAndConditionAccepted = this.isTermsAccepted;\n const { checkboxAriaLabel } = this.props.resources;\n return {\n termsAndConditionAcceptance: { className: 'ms-checkout-terms-and-conditions__container' },\n checkBox: showCheckbox && (\n \n ),\n description: (\n \n )\n };\n };\n\n @action\n private readonly init = async (): Promise => {\n const {\n data,\n config: { showCheckbox }\n } = this.props;\n\n const hasInvoiceLine = this.props.data.checkout.result?.checkoutCart.hasInvoiceLine;\n\n // If hasInvoiceLine is true, this is for b2b and isTermsAccepted should be true\n if (hasInvoiceLine || data.checkout.result?.isTermsAndConditionAccepted || !showCheckbox) {\n await this.updateTermsAndConditionsAcceptance(true);\n this.isTermsAccepted = true;\n } else if (showCheckbox) {\n await this.updateTermsAndConditionsAcceptance(false);\n this.isTermsAccepted = false;\n }\n\n this.props.moduleState.init({\n onEdit: this.onEdit,\n onCancel: this.onCancel,\n onSubmit: this.onSubmit,\n status: hasInvoiceLine ? 'disabled' : this.isTermsAccepted ? 'ready' : 'updating'\n });\n\n if (this.props.data.checkout.result?.isPaymentVerificationRedirection) {\n this.isTermsAccepted = true;\n this.props.moduleState.setHasError(false);\n this.props.moduleState.onReady();\n }\n };\n\n private readonly getErrorMessage = (): ICheckoutTermsAndConditionsError => {\n const { errorMessageTitle } = this.props.resources;\n return {\n error: { tag: 'div', className: 'ms-checkout-terms-and-conditions__error', role: 'alert', 'aria-live': 'assertive' },\n title: ,\n message: \n };\n };\n\n private readonly getCancelButton = (): React.ReactNode => {\n const { cancelBtnLabel = 'Cancel', cancelBtnAriaLabel } = this.props.resources;\n return (\n \n {cancelBtnLabel}\n \n );\n };\n\n private readonly getSaveButton = (): React.ReactNode => {\n const { saveBtnLabel = 'Save', saveBtnAriaLabel } = this.props.resources;\n return (\n \n {saveBtnLabel}\n \n );\n };\n\n private readonly getEditButton = (): React.ReactNode => {\n const { editBtnLabel = 'Change', editBtnAriaLabel } = this.props.resources;\n return (\n \n {editBtnLabel}\n \n );\n };\n\n private readonly onEdit = (): void => {\n this.props.telemetry.information('Terms and conditions onEdit is called.');\n\n this.onUpdating();\n };\n\n private readonly onSubmit = async (): Promise => {\n this.props.telemetry.information('Terms and conditions onSubmit is called.');\n\n if (!this.isTermsAccepted) {\n if (this.isAutoSave) {\n await this.updateTermsAndConditionsAcceptance(this.isTermsAccepted);\n } else {\n this.setError(this.props.resources.errorMessage);\n this.props.moduleState.setHasError(true);\n }\n } else {\n this.clearError();\n await this.updateTermsAndConditionsAcceptance(this.isTermsAccepted);\n this.props.moduleState.onReady();\n }\n };\n\n private readonly onUpdating = () => {\n this.props.moduleState.onUpdating();\n };\n\n private readonly setError = (errorMessage: string): void => {\n this.props.telemetry.error(errorMessage);\n this.props.moduleState.setHasError(true);\n this.props.moduleState.onUpdating();\n this.errorMessage = errorMessage;\n };\n\n private readonly onCancel = (): void => {\n this.props.telemetry.information('Terms and conditions onCancel is called.');\n\n // Reset to the saved value\n if (!this.props.data.checkout.result) {\n return;\n }\n\n const isTermsAccepted = this.props.data.checkout.result.isTermsAndConditionAccepted;\n if (!isTermsAccepted) {\n // It has no saved email, set to status updating and request user to fill the email form\n this.props.moduleState.onUpdating();\n } else {\n // It has saved email, set to status ready\n this.isTermsAccepted = true;\n this.props.moduleState.setHasError(false);\n this.props.moduleState.onReady();\n }\n };\n\n private readonly updateTermsAndConditionsAcceptance = async (isTermsAccepted: boolean): Promise => {\n if (this.props.data.checkout.result) {\n await this.props.data.checkout.result.updateTermsAndConditionsAcceptance({ newIsTermsAndConditionAccepted: isTermsAccepted });\n }\n };\n\n private readonly clearError = (): void => {\n this.props.moduleState.setHasError(false);\n this.errorMessage = undefined;\n };\n\n private readonly onChange = async (event: React.ChangeEvent) => {\n const checked = event.target.checked;\n this.isTermsAccepted = checked;\n\n if (this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout) {\n await this.props.data.checkout.result.updateIsTermsAndConditionsChecked({ newIsTermsAndConditionChecked: checked });\n }\n\n if (this.isAutoSave) {\n await this.onSubmit();\n }\n };\n}\n\nexport default CheckoutTermsAndConditions;\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 {\n ICheckoutTermsAndConditions,\n ICheckoutTermsAndConditionsError,\n ICheckoutTermsAndConditionsViewProps\n} from './checkout-terms-and-conditions';\n\nconst TermsAndCondition: React.FC = ({ termsAndConditionAcceptance, checkBox, description }) => {\n return (\n \n {checkBox}\n {description}\n \n );\n};\n\nconst ErrorMessage: React.FC = ({ error, title, message }) => {\n return (\n \n {title}\n {message}\n \n );\n};\n\nconst CheckoutTermsAndConditionsView: React.FC = props => {\n const {\n checkoutTermsAndConditions,\n checkoutErrorRef,\n viewState,\n termsAndConditionsContent,\n errorMessage,\n saveButton,\n editButton,\n cancelButton\n } = props;\n\n return (\n // TODO: All wrapper div should be provided by viewProps. Once SDK provide the sln, update markup.\n \n {viewState.isError && errorMessage && }\n \n {viewState.isShowSaveButton && saveButton}\n {viewState.isShowEditButton && editButton}\n {viewState.isShowCancelButton && cancelButton}\n \n );\n};\n\nexport default CheckoutTermsAndConditionsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ICookieComplianceAcceptButton {\n acceptCookiesButtonText?: string;\n acceptCookiesButtonAriaLabel?: string;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onClose(): void;\n}\n\nexport const CookieComplianceAcceptButton: React.FC = ({\n acceptCookiesButtonText,\n acceptCookiesButtonAriaLabel,\n telemetryContent,\n onClose\n}) => {\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, 'accept cookies');\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n {acceptCookiesButtonText}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IActionLinksData } from '../cookie-compliance.props.autogenerated';\n\nexport interface ICookieComplianceLinks {\n links: IActionLinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class CookieComplianceLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n \n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n \n );\n }\n\n private readonly _mapEditableLinks = (linkdata: IActionLinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\n\nexport default CookieComplianceLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IAlertProps, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { CookieComplianceAcceptButton, CookieComplianceLinks } from './components';\nimport { ICookieComplianceConfig, ICookieComplianceProps } from './cookie-compliance.props.autogenerated';\n\n/**\n * Alert state interface.\n */\nexport interface IAlertState {\n visible: boolean;\n}\n\n/**\n * Cookie compliance view props interface.\n */\nexport interface ICookieComplianceViewProps extends ICookieComplianceProps<{}> {\n CookieComplianceBanner: IModuleProps;\n AlertProps: IAlertProps;\n Content: INodeProps;\n text?: React.ReactNode;\n links?: React.ReactNode;\n acceptButton?: React.ReactNode;\n className: string;\n onDismiss(): void;\n}\n\n/**\n *\n * CookieCompliance component.\n * @extends {React.PureComponent>}\n */\nclass CookieCompliance extends React.PureComponent, IAlertState> {\n private readonly cookieRef: React.RefObject;\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 constructor(props: ICookieComplianceProps) {\n super(props);\n this.state = { visible: false };\n this.cookieRef = React.createRef();\n this._onDismiss = this._onDismiss.bind(this);\n }\n\n public componentDidMount(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies && !context.request.cookies.isConsentGiven()) {\n this.setState({ visible: true });\n }\n }\n\n public render(): JSX.Element | null {\n const { config, context, resources, telemetry } = this.props;\n const { acceptCookiesButtonText, acceptCookiesAriaLabel } = resources;\n const { visible } = this.state;\n\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\n let moduleConfig: ICookieComplianceConfig;\n\n try {\n moduleConfig = config;\n } catch (error) {\n telemetry.error(`Something went wrong while rendering the alert module ------${error}`);\n return
    {error}
    ;\n }\n\n if (isConsentGiven && !visible) {\n this.props.context.telemetry.error('Cookie Compliance content is empty, module wont render.');\n return null;\n }\n\n if (!MsDyn365.msdyn365Commerce.isBrowser) {\n return <>;\n }\n\n const viewProps = {\n ...this.props,\n onDismiss: this._onDismiss,\n CookieComplianceBanner: {\n moduleProps: this.props,\n className: classnames('ms-cookie-compliance', moduleConfig.className),\n ref: this.cookieRef\n },\n AlertProps: {\n className: 'ms-cookie-compliance__container',\n color: 'white',\n fade: false\n },\n Content: {\n className: 'ms-cookie-compliance__content'\n },\n text: moduleConfig.content && (\n \n ),\n links: ArrayExtensions.hasElements(moduleConfig.actionLinks) && (\n \n ),\n acceptButton: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles Link content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent): void => {\n if (this.props.config.actionLinks?.[linkIndex]) {\n this.props.config.actionLinks[linkIndex].linkText = event.target.value;\n }\n };\n\n /**\n * Handles content change event.\n * @param event - Event.\n */\n public handleContentChange = (event: MsDyn365.ContentEditableEvent): void => {\n this.props.config.content = event.target.value;\n };\n\n private _onDismiss(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies) {\n context.request.cookies.setConsentCookie();\n location.reload();\n }\n this.setState({ visible: false });\n }\n}\n\nexport default CookieCompliance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICookieComplianceViewProps } from './cookie-compliance';\n\nconst CookieComplianceView: React.FC = props => {\n const { CookieComplianceBanner, AlertProps, Content, acceptButton, text, links } = props;\n\n return (\n \n \n \n {text}\n {links}\n \n {acceptButton}\n \n \n );\n};\nexport default CookieComplianceView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nconst headerView: React.FC = props => {\n const { HeaderTag, HeaderContainer, HeaderTopBarContainer, Divider } = props;\n return (\n \n \n \n {props.navIcon}\n {props.logo}\n {_renderReactFragment(props.search)}\n {props.preferredStore}\n {_renderAccountBlock(props, false)}\n {props.wishListIconDesktop}\n \n {props.cartIcon}\n {_renderReactFragment(props.siteOptions)}\n \n {_renderCollapseMenu(props)}\n {_renderReactFragment(props.menuBar)}\n \n \n );\n};\n\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\n const { Divider, MobileMenuLinksContainer, mobileMenuCollapsed } = props;\n return (\n \n \n {_renderReactFragment(props.search)}\n {_renderMobileAccountBlock(props, true)}\n {props.wishListIconMobile}\n {props.siteOptions}\n \n \n {_renderReactFragment(props.menuBar)}\n \n );\n}\n\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\n const customer = accountInformation && accountInformation.result;\n return <>{customer ? customer.FirstName || customer.Name : ''};\n};\n\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const { AccountInfoDropdownParentContainer, signOutLink, signInLink, data, accountLinks } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n 'ms-header__drawer',\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n\n if (accountLinks) {\n return (\n \n
    \n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n
    \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n return null;\n}\n\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\n const {\n AccountInfoDropdownParentContainer,\n AccountInfoDropdownPopoverConentContainer,\n accountInfoDropdownButton,\n signOutLink,\n signInLink,\n accountLinks\n } = props;\n\n if (AccountInfoDropdownParentContainer) {\n const accountClassName = classnames(\n AccountInfoDropdownParentContainer.className,\n renderForMobile ? 'account-mobile' : 'account-desktop'\n );\n if (AccountInfoDropdownPopoverConentContainer) {\n return (\n \n {accountInfoDropdownButton}\n \n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\n {signOutLink}\n \n \n );\n } else if (signInLink) {\n return (\n \n {signInLink}\n \n );\n }\n }\n\n return null;\n}\n\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\n return (\n <>\n {items && items.length > 0\n ? items.map((slot: React.ReactNode, index: number) => {\n return {slot};\n })\n : null}\n \n );\n}\n\nexport default headerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IDictionary, IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { IMenuItemData, INavigationMenuViewProps } from '@msdyn365-commerce-modules/navigation-menu';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Drawer,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n ICollapseProps,\n IDrawerState,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n categoryImageAltText: string;\n drawerKeyValue: IDictionary;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private currentLevel: number = 0;\n\n private readonly _positionInSetOffset: number = 1;\n\n private readonly escapeKey: number = 27;\n\n private readonly menuNode: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.state = { activeMenu: undefined, parentMenu: undefined, categoryImageAltText: '', drawerKeyValue: {} };\n this._closeSubmenu = this._closeSubmenu.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView } = this.props;\n\n this.currentLevel = 1;\n return <>{isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()};\n }\n\n /**\n * Method to render mobile menu.\n * @returns Jsx element.\n */\n private _renderMobileMenu(): JSX.Element {\n const { isMobileView, menuItemData, Navigation } = this.props;\n return (\n \n {menuItemData.map((menuItem: IMenuItemData, posinset: number) => {\n return this._renderDrawerMenu(menuItem, menuItemData.length, posinset + this._positionInSetOffset);\n })}\n \n );\n }\n\n /**\n * Method to render desktop menu.\n * @returns Jsx element.\n */\n private _renderDesktopMenu(): JSX.Element {\n const { MenuList, Navigation } = this.props;\n return (\n \n \n {this._renderDisplay()}\n \n \n );\n }\n\n /**\n * Method to render drawer menu.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerMenu(menuItem: IMenuItemData, setSize: number, posinset: number): JSX.Element | null {\n if (menuItem && menuItem.subMenu && ArrayExtensions.hasElements(menuItem.subMenu)) {\n return this._renderDrawer(menuItem, setSize, posinset);\n }\n return this._renderLinkMenuItem(menuItem, undefined, true, false, setSize, posinset);\n }\n\n /**\n * Method to render drawer component.\n * @param menuItem -Menuitem data.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawer(menuItem: IMenuItemData, setSize?: number, posinset?: number): JSX.Element | null {\n const toggleButtonText = menuItem.linkText;\n const keyValue = this.state.drawerKeyValue;\n const buttonText = toggleButtonText !== undefined ? toggleButtonText : '';\n const keys = keyValue !== undefined ? keyValue : {};\n const { isMobileView } = this.props;\n\n let isDrawerOpen = false;\n if (keys[buttonText]) {\n isDrawerOpen = true;\n }\n const colProps: ICollapseProps = { isOpen: isDrawerOpen };\n return (\n \n
    \n {menuItem.subMenu!.map((menuSubItem: IMenuItemData, currentPos: number) => {\n if (ArrayExtensions.hasElements(menuSubItem.subMenu)) {\n return this._renderDrawer(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n }\n return this._renderDrawerLink(menuSubItem, menuItem.subMenu?.length, currentPos + this._positionInSetOffset);\n })}\n
    \n \n );\n }\n\n /**\n * Method to render link.\n * @param linkText -Text on Menu link.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkText(linkText: string | undefined, setSize: number | undefined, posinset: number | undefined): JSX.Element {\n return (\n \n {linkText}\n \n );\n }\n\n /**\n * Method to render drawer link.\n * @param item -Single Menuitem.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderDrawerLink(item: IMenuItemData, setSize: number | undefined, posinset: number): JSX.Element | null {\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\n return this._renderLinkMenuItem(item, undefined, true, false, setSize, posinset);\n } else if (item && item.linkText && !item.linkURL) {\n return this._renderSpanMenuItem(item);\n }\n return null;\n }\n\n /**\n * Method to generate menu.\n * @returns Jsx element.\n */\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n this.setState({ parentMenu: undefined });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {` `}\n {this._createMenuItemList(menuItem)}\n {` `}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n /**\n * Method to get data for submenu.\n * @param item -Single Menuitem.\n * @returns IMenuItemData.\n */\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n this.setState({ parentMenu: item?.id });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n\n /**\n * Method to create item list.\n * @param menuItemData -Single Menuitem.\n * @returns Jsx element.\n */\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const subMenuLevel = 3;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || subMenuLevel;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n /**\n * Method to render button menu item.\n * @param option -Single Menuitem.\n * @param activeMenu -Active menu number.\n * @param index -Active menu index.\n * @returns Jsx element.\n */\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render link menu item.\n * @param option -Single Menuitem.\n * @param index -Active menu index.\n * @param hoverEffect -Active menu effect.\n * @param isParent -Is parent menu.\n * @param setSize -Setsize data.\n * @param posinset -Current position.\n * @returns Jsx element.\n */\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false,\n setSize?: number,\n posinset?: number\n ): JSX.Element | null {\n const { Link, isMobileView } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render promotional link.\n * @param linkText -Link text.\n * @param linkUrl -Link url.\n * @returns Jsx element.\n */\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n /**\n * Method to render span menu item.\n * @param option -Single Menu Item.\n * @param index -Index.\n * @param isParent -Is parent menu.\n * @returns Jsx element.\n */\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n /**\n * Method to render menu.\n * @param level -Menu level.\n * @param menuOptions -Menu lists.\n * @param currentItem -Menu current.\n * @param submenu -Mneu has submenu or not.\n * @returns Jsx element.\n */\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, isMobileView, showPromotionalContent } = this.props;\n const categoryImageDisplay =\n !isMobileView && showCategoryImage && this.state.categoryImage !== null && this.state.categoryImage !== undefined && !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n
    \n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n
    \n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n /**\n * Method to handle dropdwon change.\n * @param data -Menuitem data.\n * @param parentId -Menu parent.\n * @returns Jsx element.\n */\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n this.setState({\n activeMenu: data.id,\n parentMenu: parentId\n });\n }\n\n this._resetFocus();\n };\n\n /**\n * Method to call when focus lost from menu.\n */\n private readonly _resetFocus = () => {\n if (this.props.isMobileView) {\n setTimeout(() => {\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\n }, 0);\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Method to handle close submenu event.\n */\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined });\n }\n }\n\n /**\n * Method to handle escape key event.\n * @param event -HTML event.\n */\n private readonly _escFunction = (event: React.KeyboardEvent) => {\n if (event.keyCode === this.escapeKey) {\n if (!this.props.isMobileView) {\n const navDrawerList = Array.from(this.menuNode.current!.childNodes);\n for (const item of navDrawerList) {\n const navDrawerButton = item.firstChild as HTMLButtonElement;\n if (navDrawerButton.getAttribute('aria-expanded') === 'true') {\n navDrawerButton.focus();\n }\n }\n }\n this._closeSubmenu();\n }\n };\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(categoryImage.src, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n const ImageData: IImageData = { src: categoryImageUrl };\n return (\n \n );\n }\n return null;\n };\n\n /**\n * Method to handle escape key event.\n * @param drawerState -HTML event.\n */\n private readonly _onDrawerChange = (drawerState: IDrawerState) => {\n const { drawerKeyValue } = this.state;\n const drawerText: string = drawerState.buttonText !== undefined ? drawerState.buttonText : '';\n const newPair = { [drawerText]: drawerState.isOpen };\n this.setState({ drawerKeyValue: { ...drawerKeyValue, ...newPair } });\n };\n}\n\nexport default NavigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ICategoryHierarchyViewProps,\n IRefineMenuViewProps,\n ISearchResultContainerViewProps,\n ISearchResultModalViewProps,\n ISortByViewProps,\n ITitleViewProps\n} from '@msdyn365-commerce-modules/search-result-container';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst SearchResultContainerView: React.FC = props => {\n const {\n SearchResultContainer,\n products,\n pagination,\n ProductsContainer,\n ProductSectionContainer,\n choiceSummary,\n isMobile,\n modalToggle,\n searchResultModal,\n TitleViewProps,\n refineMenu,\n categoryHierarchy,\n sortByOptions,\n CategoryNavContainer,\n RefineAndProductSectionContainer,\n errorMessage,\n FeatureSearchContainer,\n similarLookProduct\n } = props;\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\n if (isMobile) {\n return (\n \n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\n {renderTitle(TitleViewProps)}\n {choiceSummary}\n {modalToggle}\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, isRecoSearchPage)}\n {similarLookProduct}\n \n {errorMessage}\n {products}\n \n {pagination}\n \n );\n }\n return (\n \n {categoryHierarchy && {renderCategoryHierarchy(categoryHierarchy)}}\n \n {refineMenu && renderRefiner(refineMenu)}\n \n {similarLookProduct}\n
    \n {TitleViewProps && renderTitle(TitleViewProps)}\n {choiceSummary}\n
    \n
    \n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\n
    \n \n {errorMessage}\n {products}\n \n {pagination}\n
    \n
    \n
    \n );\n};\n\nconst createSearchResultModal = (\n modalProps: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element => {\n return React.cloneElement(\n modalProps.modal,\n {},\n modalProps.modalHeader,\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\n modalProps.modalFooter\n );\n};\n\nconst createModalBody = (\n props: ISearchResultModalViewProps,\n refineMenu: IRefineMenuViewProps,\n sortByDropDown: ISortByViewProps,\n isRecoSearchPage?: string\n): JSX.Element | null => {\n if (sortByDropDown) {\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefiner(refineMenu));\n }\n return null;\n};\n\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\n if (refiners) {\n return (\n \n \n {refiners.map((submenu, index) => (\n {submenu}\n ))}\n \n \n );\n }\n return null;\n};\n\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\n const { SortingContainer, sortByDropDown } = props;\n if (sortByDropDown && !isRecoSearchPage) {\n return {sortByDropDown};\n }\n return null;\n};\n\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\n if (categoryHierarchyList) {\n return (\n \n {categoryHierarchyList.map((category, index) => (\n \n {category}\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\n \n ))}\n \n );\n }\n\n return null;\n};\n\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\n const { title, TitleContainer } = props;\n if (title) {\n return (\n \n

    \n {title.titlePrefix}\n {title.titleText}({title.titleCount})\n

    \n
    \n );\n }\n return null;\n};\n\nexport default SearchResultContainerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport {\n Button,\n ITelemetryContent,\n TelemetryConstant,\n getPayloadObject,\n getTelemetryAttributes\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-view-mode-selector';\nconst detailsViewClassName = `${componentClassName}__detailed-view`;\nconst listViewClassName = `${componentClassName}__list-view`;\nconst viewSelectedClassName = `${componentClassName}__selected`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeResources {\n listViewOptionAriaLabel?: string;\n detailedViewOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewModeState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersViewModeState {\n DetailedView,\n ListView\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeProps extends IComponentProps<{}> {\n className?: string;\n resources?: IOrderHistoryWithSearchAndFiltersViewModeResources;\n currentViewModeState: OrderHistoryWithSearchAndFiltersViewModeState;\n telemetryContent?: ITelemetryContent;\n onClick(state: OrderHistoryWithSearchAndFiltersViewModeState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersViewModeProps\n) => {\n const [viewModeState, setViewModeState] = React.useState(props.currentViewModeState);\n\n const onClickHandler = (newViewModeState: OrderHistoryWithSearchAndFiltersViewModeState) => {\n setViewModeState(newViewModeState);\n props.onClick(newViewModeState);\n };\n\n // define telemetry attributes\n const viewModeDetailedViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - Detailed view`)\n );\n const viewModeListViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - List view`)\n );\n\n return (\n
    \n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.DetailedView)}\n {...viewModeDetailedViewAttributes}\n />\n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.ListView)}\n {...viewModeListViewAttributes}\n />\n
    \n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n */\nexport const OrderHistoryWithSearchAndFiltersViewModeComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersViewModeProps\n>('OrderHistoryWithSearchAndFiltersViewModeComponent', { component: OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult, Customer, ProductSearchResult, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions, Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { getCatalogId } from '@msdyn365-commerce/core';\nimport { ProductComparisonItem, ProductComparisonState } from '../product-comparison-state';\nimport { IProductComparisonButtonProps } from './product-comparison-button.props.autogenerated';\n\n/**\n * Represents product comparison view props.\n */\nexport interface IProductComparisonButtonViewProps extends IProductComparisonButtonProps<{}> {\n moduleProps: IModuleProps;\n productComparisonButton?: React.ReactNode;\n productComparisonPreview?: React.ReactNode;\n}\n\n/**\n * Represents the data which is required for the product comparison button to be rendered.\n */\nexport interface IProductComparisonButtonData {\n accountInformation?: AsyncResult;\n}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonButtonFullProps extends IProductComparisonButtonProps {\n product: ProductSearchResult | SimpleProduct;\n catalogId: number;\n}\n\n/**\n * Extended props for the module including info about the product.\n */\nexport interface IProductComparisonButtonState {\n canProductBeAddedToProductComparison: boolean;\n currentProductsCount: number;\n comparisonItemId: string;\n}\n\n/**\n * Represents the component which renders product comparison table.\n */\nexport class ProductComparisonButton extends React.PureComponent {\n private static _productComparisonPreview?: React.ReactNode;\n\n private readonly _className: string;\n\n private readonly _instanceId: string;\n\n private readonly _shouldUsePreview: boolean;\n\n private static _renderProductComparisonPreview(props: IProductComparisonButtonFullProps): React.ReactNode {\n if (!ProductComparisonButton._productComparisonPreview && ArrayExtensions.hasElements(props.slots.productComparisonPreview)) {\n ProductComparisonButton._productComparisonPreview = props.slots.productComparisonPreview[0];\n }\n\n return ProductComparisonButton._productComparisonPreview;\n }\n\n private static _renderProductComparisonButton(\n className: string,\n buttonText: string | undefined,\n title: string,\n onClickHandler?: () => void\n ): React.ReactNode {\n const isDisabled = ObjectExtensions.isNullOrUndefined(onClickHandler);\n let content: React.ReactNode;\n if (buttonText) {\n content = (\n <>\n
    \n
    {buttonText}
    \n \n );\n }\n return (\n \n );\n }\n\n public constructor(props: IProductComparisonButtonFullProps) {\n super(props);\n\n this._className = 'ms-product-comparison-button';\n this._instanceId = `${this._className}-${this.props.id}-${Random.Guid.generateGuid()}`;\n\n this.state = this._getNewState();\n\n this._shouldUsePreview = !ProductComparisonButton._productComparisonPreview;\n ProductComparisonButton._renderProductComparisonPreview(this.props);\n }\n\n public componentDidMount(): void {\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).listModifiedEvent.subscribe(\n {\n instanceId: this._instanceId,\n\n /**\n * Updates the state in case the state for the particular product was changed.\n */\n handler: () => {\n this.setState(this._getNewState());\n }\n }\n );\n }\n\n public getSnapshotBeforeUpdate(previousProps: Readonly): void {\n if (previousProps.product.RecordId !== this.props.product.RecordId || previousProps.catalogId !== this.props.catalogId) {\n this.setState(this._getNewState());\n }\n }\n\n public componentWillUnmount(): void {\n ProductComparisonState.instance(\n this.props.context.request,\n this.props.data.accountInformation?.result\n ).listModifiedEvent.unsubscribe(this._instanceId);\n }\n\n public render(): React.ReactNode | null {\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n if (!isConsentGiven) {\n return null;\n }\n\n const viewProps: IProductComparisonButtonViewProps = {\n ...this.props,\n moduleProps: {\n moduleProps: this.props,\n className: this._className\n }\n };\n\n if (this._shouldUsePreview) {\n viewProps.productComparisonPreview = ProductComparisonButton._productComparisonPreview;\n }\n\n const buttonClassName = this.props.config.shouldDisplayText ? `${this._className}__button` : `${this._className}__icon`;\n\n if (!this.state.canProductBeAddedToProductComparison) {\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.removeFromComparisonButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n classnames(`${buttonClassName}__removing`, buttonClassName),\n buttonText,\n this.props.resources.removeFromComparisonButtonText,\n this._removeFromProductComparison\n );\n return this.props.renderView(viewProps);\n }\n\n const productsLimit = this._getProductsLimit();\n if (!ObjectExtensions.isNullOrUndefined(productsLimit) && productsLimit <= this.state.currentProductsCount) {\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.addToComparisonLimitReachedButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n buttonClassName,\n buttonText,\n this.props.resources.addToComparisonLimitReachedButtonText\n );\n return this.props.renderView(viewProps);\n }\n\n const buttonText = this.props.config.shouldDisplayText ? this.props.resources.addToComparisonButtonText : undefined;\n viewProps.productComparisonButton = ProductComparisonButton._renderProductComparisonButton(\n buttonClassName,\n buttonText,\n this.props.resources.addToComparisonButtonText,\n this._addToProductComparison\n );\n return this.props.renderView(viewProps);\n }\n\n private _getProductsLimit(): number | undefined | null {\n const viewport = isMobile({ variant: VariantType.Browser, context: this.props.context.request });\n if (viewport === 'xs' || viewport === 'sm') {\n return this.props.context.app.config.productComparisonMobileProductsLimit;\n }\n return this.props.context.app.config.productComparisonDesktopProductsLimit;\n }\n\n /**\n * Adds current product to a product comparison list.\n */\n private readonly _addToProductComparison: () => void = () => {\n const item = new ProductComparisonItem(this.props.product.RecordId, this.props.catalogId);\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).addItem(item);\n };\n\n /**\n * Removes current product from the product comparison list where it was added earlier.\n */\n private readonly _removeFromProductComparison: () => void = () => {\n ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).removeItemById(\n this.state.comparisonItemId\n );\n };\n\n private _getProdutComparisonDataByCatalogId(): ProductComparisonItem[] {\n const items = ProductComparisonState.instance(this.props.context.request, this.props.data.accountInformation?.result).items;\n const catalogId = getCatalogId(this.props.context.request);\n const productByCatalogId = items?.filter(product => product.catalogId === catalogId) ?? [];\n return productByCatalogId;\n }\n\n /**\n * Retrieves the state of the component based on the comparison data.\n * @returns State object for the component.\n */\n private readonly _getNewState: () => IProductComparisonButtonState = () => {\n const comparisonItemId = ProductComparisonItem.getItemId(this.props.product.RecordId, this.props.catalogId);\n const products = this._getProdutComparisonDataByCatalogId();\n return {\n comparisonItemId,\n canProductBeAddedToProductComparison: !ProductComparisonState.instance(\n this.props.context.request,\n this.props.data.accountInformation?.result\n ).hasItemById(comparisonItemId),\n currentProductsCount: products.length\n };\n };\n}\n\nexport default ProductComparisonButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductComparisonButtonViewProps } from './product-comparison-button';\n\n/**\n * Represents product comparison button view.\n * @param props - View props for product comparison button.\n * @returns Functional component of product comparison button.\n */\nexport const ProductComparisonButtonViewFunctionalComponent: React.FC = props => {\n const { productComparisonButton, productComparisonPreview } = props;\n\n return (\n \n {productComparisonButton}\n {productComparisonPreview}\n \n );\n};\n\nexport default ProductComparisonButtonViewFunctionalComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport { Coupon } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * IPromoCodeProps: Interface for promo code component.\n */\nexport interface IPromoCodeProps extends IComponentProps<{}> {\n cart: ICartState | undefined;\n promoCodeHeadingText: string;\n appliedPromoCodeHeadingText: string;\n removePromoAriaLabelFormat: string;\n promoPlaceholderText: string;\n promoCodeApplyButtonText: string;\n collapseTimeOut: number;\n removePromoText: string;\n invalidPromoCodeErrorText: string;\n failedToAddPromoCodeErrorText: string;\n duplicatePromoCodeErrorText: string;\n failedToRemovePromoCodeErrorText: string;\n\n /**\n * The telemetry content.\n */\n telemetryContent?: ITelemetryContent;\n promoCodeApplyCallback?(): void;\n}\n\n/**\n * IPromoCodeProps: Interface for promo code component.\n */\nexport interface IPromoCodeComponent extends IComponent {}\n\n/**\n * IPromoCodeProps: Interface for promo code state.\n */\ninterface IPromoCodeState {\n promoCodeInputValue: string;\n error: string;\n canApply: boolean;\n}\n\n/**\n *\n * The PromoCode component renders the promocode section.\n * @extends {React.PureComponent}\n */\nclass PromoCode extends React.PureComponent {\n private readonly payLoad: IPayLoad;\n\n public constructor(props: IPromoCodeProps) {\n super(props);\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, TelemetryConstant.ApplyPromoCode);\n this.state = {\n promoCodeInputValue: '',\n error: '',\n canApply: false\n };\n }\n\n public render(): JSX.Element {\n return (\n
    \n
    {this.props.promoCodeHeadingText}
    \n {this._renderForm(this.props.promoPlaceholderText, this.props.promoCodeApplyButtonText, this.props.cart)}\n

    \n {this.state.error}\n

    \n {this._renderAppliedPromoCode(this.props)}\n
    \n );\n }\n\n /**\n * On input change method.\n * @param event - Change event.\n */\n private readonly _onInputChangeHandler = (event: React.ChangeEvent) => {\n const error = event.target.value === '' ? '' : this.state.error;\n this.setState({\n promoCodeInputValue: event.target.value.trim(),\n error,\n canApply: !!event.target.value\n });\n };\n\n /**\n * Apply promo code method.\n * @param cartState - Cart state interface.\n */\n private readonly _applyPromotion = (cartState: ICartState | undefined) => {\n if (!cartState) {\n return;\n }\n const appliedPromo = this.state.promoCodeInputValue;\n\n cartState\n .addPromoCode({ promoCode: appliedPromo })\n .then(result => {\n if (result.status === 'SUCCESS') {\n // Show success text\n this.setState({ promoCodeInputValue: '', error: '', canApply: false });\n } else if (result.substatus === 'ALREADYADDED') {\n this.setState({ error: this.props.duplicatePromoCodeErrorText });\n } else {\n this.setState({ error: this.props.invalidPromoCodeErrorText });\n }\n })\n .catch(() => {\n this.setState({ error: this.props.failedToAddPromoCodeErrorText });\n });\n };\n\n /**\n * On submit action.\n * @param cartState - Cart state.\n * @returns Apply promotion.\n */\n private readonly _onSubmitHandler = (cartState: ICartState | undefined) => (event: React.FormEvent) => {\n event.preventDefault();\n this._applyPromotion(cartState);\n };\n\n /**\n * On apply promotion.\n * @param cartState - Cart state.\n * @returns Apply promotion.\n */\n private readonly applyPromotionHandler = (cartState: ICartState | undefined) => () => {\n this._applyPromotion(cartState);\n };\n\n /**\n * Renders promo code form.\n * @param promoPlaceholderText - Promo code input box placeholder string.\n * @param promoCodeApplyButtonText - Promo code button text string.\n * @param cartState - Cart state interface.\n * @returns Promo code form.\n */\n private readonly _renderForm = (promoPlaceholderText: string, promoCodeApplyButtonText: string, cartState: ICartState | undefined) => {\n const attributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\n\n return (\n
    \n
    \n \n \n
    \n
    \n );\n };\n\n /**\n * Remove promo code method.\n * @param cartState - Cart state interface.\n * @param event - Mouse event.\n */\n private readonly _removePromotion = (cartState: ICartState | undefined, event: React.MouseEvent) => {\n if (!cartState) {\n return;\n }\n const code = event.currentTarget.getAttribute('data-value') ?? '';\n cartState\n .removePromoCodes({\n promoCodes: [code]\n })\n .then(result => {\n if (result.status === 'SUCCESS') {\n this.setState({ error: '' });\n }\n })\n .catch(() => {\n this.setState({ error: this.props.failedToRemovePromoCodeErrorText });\n });\n };\n\n /**\n * Renders applied promo code form.\n * @param props - Promo code component props.\n * @returns Applied promo code.\n */\n private readonly _renderAppliedPromoCode = (props: IPromoCodeProps) => {\n if (!props.cart || !props.cart.cart.Coupons || !ArrayExtensions.hasElements(props.cart.cart.Coupons)) {\n return;\n }\n\n /**\n * On remove promotion action.\n * @param event - Mouse event.\n */\n const removePromotionHandler = (event: React.MouseEvent) => {\n this._removePromotion(props.cart, event);\n };\n\n return (\n <>\n {props.cart.cart.Coupons.map((coupon: Coupon) => {\n const ariaLabel = props.removePromoAriaLabelFormat\n ? format(props.removePromoAriaLabelFormat, props.removePromoText, coupon.Code)\n : '';\n\n return (\n
    \n
    \n {'Code '}\n {coupon.Code}\n {'Applied '}\n
    \n \n
    \n );\n })}\n \n );\n };\n}\n\nexport default PromoCode;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IContentBlockAdditionalContentItemViewProps,\n IContentBlockAdditionalContentViewProps,\n IContentBlockViewProps\n} from '@msdyn365-commerce-modules/content-block';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\n/**\n * Render View.\n * @param props - The view props.\n * @returns -The JSX Element.\n */\nconst contentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n // @ts-expect-error HTML element need to be clear on run time.\n const hasImage: boolean = image.props.src;\n const imageClass: string = hasImage ? `${detailsContainer.className} withImage` : `${detailsContainer.className} withoutImage`;\n\n if (imageLink) {\n return (\n \n \n {image}\n \n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default contentBlockView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return (\n \n {' '}\n \n );\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n"],"names":["InvoiceListView","props","header","filter","content","invoiceRequestModal","pagination","MsDyn365","isBrowser","linksElements","document","querySelectorAll","console","log","forEach","l","setAttribute","React","Module","Object","assign","moduleProps","renderThumbnailItem","thumbnail","ThumbnailItemContainerProps","Picture","Node","GetEmptyThumbnailItemComponent","imageSettings","_props$config$thumbna2","tag","className","role","tabIndex","key","Image","requestContext","context","actionContext","src","gridSettings","request","config","thumbnailImageSettings","loadFailureBehavior","defaultThumbnailImageSettings","viewports","xs","q","w","h","xl","lazyload","cropFocalRegion","renderThumbnails","thumbnails","ThumbnailsContainerProps","SingleSlideCarouselComponentProps","state","Thumbnails","mediaGalleryItems","items","map","item","altText","getMediaGalleryItems","lastUpdate","id","GetThumbnailItemComponent","image","imageId","modifiedActiveIndex","_props$config$thumbna","onClick","_props$callbackToggle","_props$callbackThumbn","callbackToggle","call","callbackThumbnailClick","activeIndex","handleKeyDown","event","keyCode","KeyCodes","Enter","preventDefault","classnames","Button","onKeyDown","title","resources","fullScreenTitleText","CarouselProps","MediaGallery","Modal","OrderConfirmationOrderInfomation","_ref","orderInformationProps","createdDate","channelReferenceId","renderEmailMessage","_orderHydration$resul","receiptMessageWithEmail","receiptMessageNoEmail","data","orderHydration","email","result","salesOrder","ReceiptEmail","emailMessage","replace","Msdyn365","text","OrderConfirmationSalesLine","_ref2","salesLineProps","salesLine","buyAgainButton","OrderConfirmationGroupDelivery","_ref3","deliveryProps","heading","address","pickupDateTimeslot","OrderConfirmationGroup","_ref4","groupProps","delivery","salesLinesProps","salesLines","shippingItemsToYou","LineId","OrderConfirmationGroups","_ref5","groupsProps","groups","group","index","otherChargesLines","chargeLines","setChargeLines","loading","setLoading","async","_props$data$orderHydr","_props$data$orderHydr2","chargeCodes","chargeLinesBreakdown","lines","ChargeLines","linesNode","otherChargeTotal","ChargeAmount","currencyFormatter","cultureFormatter","formatCurrency","c","node","line","ChargeCode","chargeCode","r","_r$CalculatedAmount$t","_r$CalculatedAmount","CalculatedAmount","renderLineChargeNode","chargeLineLabel","toString","push","_otherChargeTotal$toS","otherChargesNode","otherChargeLabel","fetchOtherChargesLines","chargeName","chargeAmount","renderTaxLine","_props$data$orderHydr3","_taxAmount$toString","taxAmount","TaxAmount","taxLabel","OrderConfirmationOrderSummary","orderSummary","orderSummaryProps","subtotal","displayShippingline","shipping","displayTaxNote","taxAmountNote","totalAmount","earnedPoints","OrderConfirmationPayment","_ref6","paymentMethodsProps","methods","totalOnAccount","OrderConfirmationHelp","_ref7","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","_props$data$orderHydr4","backToShoppingLink","alert","orderInfomation","payment","help","tenderLines","TenderLines","tl","AmountInCompanyCurrency","reduce","num","total","undefined","OrderHistoryOrderInfomation","salesId","receiptId","channelName","count","amount","OrderHistoryGroupDelivery","processing","trackingInfo","OrderHistoryGroup","OrderHistoryGroups","OrderHistoryHeader","headerProps","orderCountLabel","extraActions","OrderHistorySalesOder","salesOrderProps","orderDetailsLink","expandProductsButton","OrderHistoryList","listProps","salesOrders","_ref8","orderHistoryProps","emptyMessage","list","table","moreButton","ItemComponent","itemProps","checkoutPlainContainerProps","_objectSpread","tax","_orderHydration$resul2","_salesOrder$SalesLine","SalesLines","so","ItemId","Description","Price","Quantity","TotalAmount","AccountCustomerBalanceTile","constructor","super","this","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","_initState","reaction","hasError","error","setState","ErrorComponent","value","apiGenericErrorMessage","get","isCustomerAccountPaymentEnabled","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","shouldComponentUpdate","nextProps","nextState","render","links","viewProps","Heading","headingTag","isDetailsLinkDisplayed","LinksComponent","onTextChange","renderView","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","customerCredit","customerCreditFormatted","toFixed","CreditComponent","verbagePrefix","verbagePostfix","__decorate","computed","_mapEditableLinks","linkdata","length","editableLinks","payLoad","getPayloadObject","link","contentAction","etext","linkText","attributes","getTelemetryAttributes","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","additionalProperties","editProps","SignUpText","LoyaltySignUp","handleHeadingChange","target","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","input","IssueLoyaltyInput","apiSettings","issueLoyalty","then","window","location","catch","message","debug","TelemetryConstant","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","loyaltyCard","hasLoyaltyAccount","CardTenderTypeValue","customerInformation","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","status","onEdit","signInLink","href","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","disabled","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","observer","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","modal","toggle","onToggle","applicationNode","isOpen","returnFocusRef","returnRef","modalHeader","ModalHeader","modalFooter","ModalFooter","modalBody","ModalBody","cancelButton","cancelLoyaltyTermsText","submitButton","onSubmit","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","type","onChange","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","bind","_submit","_checkboxChecked","toggleRef","search","url","requestUrl","isJoining","substring","qsps","split","qsp","splitQsp","isModalOpen","hideToggle","slots","serviceTerms","modalToggle","innerRef","joinLoyaltytermsToggleText","CardNumber","card","redirectToLoyalty","getUrlSync","getLoyaltyCardAsync","callerContext","fullCard","update","GetLoyaltyCardInput","BusinessPartnerPromotionTermsParagraph","description","titleClassName","moduleClassName","BusinessPartnerPromotion","onCheckBoxChange","termsOfServiceChecked","onToggleTermOfServiceModal","termsOfServiceModalOpened","_data$b2bUserInformat","_data$b2bUserInformat2","errorMessageText","promoteToSellerSubmitSuccessMessage","businessPartnerId","b2bUserInformation","BusinessPartnerId","promoteToSellerAsync","showSubmitButton","showTermsOfService","errorMessage","notificationMessage","_unused","termsOfService","authorizationErrorMessage","canSubmit","isAdminUser","btnEnabled","businessPartnerPromotionProps","Text","renderNotificationBar","sellerDescriptions","renderSellerDescriptions","termsOfServiceCheckbox","termsOfServiceLinkText","termsOfServiceAgreementText","termsOfServiceModal","horizontalPosition","verticalPosition","autoFocus","fade","termsOfServiceModalHeading","submitRequestLabel","notificationBar","Alert","color","results","idx1","_description$bulletPo","bulletPoints","bulletPoint","idx2","label","ObjectExtensions","isNullOrUndefined","StringExtensions","isNullOrEmpty","IsAdmin","CheckoutStateInput","_this","getCacheKey","buildCacheKey","getCacheObjectType","dataCacheType","createObservableDataAction","action","ctx","CheckoutState","inputData","_giftCards","_giftCardExtends","_loyaltyAmount","_guestCheckoutEmail","_customerReference","_customerRequisition","_note","_isTermsAndConditionAccepted","_customerAccountAmount","defineProperty","prototype","_tokenizedPaymentCard","_tenderLine","_billingAddress","_shippingAddress","_cardPrefix","_loyaltyCardNumber","updateTokenizedPaymentCard","newTokenizedPaymentCard","updateTenderLine","newTenderLine","updateShippingAddress","newShippingAddress","updateBillingAddress","newBillingAddress","updateCardPrefix","newCardPrefix","removeGiftCard","giftCardNumber","giftCard","Id","removeGiftCardExtend","addGiftCard","__spreadArrays","addGiftCardExtend","updateLoyaltyCardNumber","newLoyaltyCardNumber","updateLoyaltyAmount","newAmount","updateGuestCheckoutEmail","newGuestCheckoutEmail","customerReference","customerRequisition","note","updateTermsAndConditionsAcceptance","newIsTermsAndConditionAccepted","updateCustomerAccountAmount","observable","EnabledPaymentsForOBO","ModuleStatesCacheKey","getModuleStates","cacheKey","moduleStates","updateModuleStates","WrappedComponent","_super","ModuleState","initializeState","_b","typeName","states","__assign","_a","hasInitialized","isRequired","isCancellable","isSubmitContainer","childIds","getModuleStateManager","moduleState","validate","isReady","isUpdating","isPending","isSkipped","isDisabled","isCancelAllowed","shouldSubmitContainer","hasExternalSubmitGroup","hasModuleState","setIsRequired","setIsCancellable","setIsSubmitContainer","setHasError","onReady","onUpdating","onPending","onSkip","onDisable","getModule","moduleId","getModuleByTypeName","getModuleStateManagerByTypeName","init","options","values","find","_moduleState","modules","_validateLeaf","source","module","isMatch","_validateContainer","allMatched","skipSkippableItem","shouldEnableSinglePaymentAuthorizationCheckout","childId","_isPaymentSectionContainer","includes","ArrayExtensions","hasElements","enableControl","__extends","CheckoutErrors","setCheckoutErrors","errorCode","isExpressCheckoutApplied","apiError","clientCheckoutError","consoleCheckoutErrors","checkoutState","getCheckoutState","exception","checkoutError","checkoutErrorsList","errorLocation","ErrorLocation","Console","consoleCheckoutError","errorMessageResource","Error","getCheckoutErrorMessage","CheckoutPaymentInstrument","Checkout","updateCheckoutError","newCheckoutError","updateShouldFocusOnCheckoutError","newShouldFocusOnCheckoutError","genericError","genericErrorMessage","focusOnCheckoutError","checkoutErrorRef","current","scrollIntoView","updateCheckoutErrorFocus","newCheckoutErrorFocus","CheckoutModule","None","setCheckoutErrorFocus","checkoutModuleId","checkoutModule","keys","errorMessageFromAPI","errorResource","resource","ActionError","ErrorCode","ErrorMessageResource","checkoutTimeoutErrorMessage","Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard","blockedLoyaltyCardErrorMessage","CheckoutLoyalty","Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromAmountDue","customerAccountLimitSignDifferentFromAmountDueErrorMessage","CheckoutCustomerAccountPayment","Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsAvailableCreditLimit","customerAccountPaymentExceedsAvailableCreditLimitErrorMessage","Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsCustomerAccountFloorLimit","customerAccountPaymentExceedsCustomerAccountFloorLimitErrorMessage","Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItems","customerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItemsErrorMessage","Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentForCustomerWithoutAllowOnAccount","customerAccountPaymentForCustomerWithoutAllowOnAccountErrorMessage","Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentNotAllowedForOpenInvoices","customerAccountPaymentNotAllowedForOpenInvoicesErrorMessage","Microsoft_Dynamics_Commerce_Runtime_FraudRisk","fraudRiskErrorMessage","Microsoft_Dynamics_Commerce_Runtime_GiftCardBalanceInquiryFailed","giftCardBalanceInquiryFailedErrorMessage","CheckoutGiftCard","Microsoft_Dynamics_Commerce_Runtime_GiftCardCurrencyMismatch","giftCardCurrencyMismatchErrorMessage","Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion","invalidCartVersionErrorMessage","Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber","invalidLoyaltyCardNumberErrorMessage","Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest","invalidPaymentRequestErrorMessage","Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest_Console","invalidPaymentRequestConsoleErrorMessage","Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines","missingRequiredCartTenderLinesErrorMessage","Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountPaymentsNotAllowed","multipleCustomerAccountPaymentsNotAllowedErrorMessage","Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneLoyaltyTender","noMoreThanOneLoyaltyTenderErrorMessage","Microsoft_Dynamics_Commerce_Runtime_NoResponseFromGatewayForGiftCardBalanceInquiry","noResponseFromGatewayForGiftCardBalanceInquiryErrorMessage","Microsoft_Dynamics_Commerce_Runtime_NoTenderLoyaltyCard","noTenderLoyaltyCardErrorMessage","Microsoft_Dynamics_Commerce_Runtime_NotEnoughRewardPoints","notEnoughRewardPointsErrorMessage","Microsoft_Dynamics_Commerce_Runtime_PaymentAlreadyVoided","paymentAlreadyVoidedErrorMessage","Microsoft_Dynamics_Commerce_Runtime_PaymentAmountExceedsGiftBalance","paymentAmountExceedsGiftBalanceErrorMessage","Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties","paymentRequiresMerchantPropertiesErrorMessage","Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties_Console","paymentRequiresMerchantPropertiesConsoleErrorMessage","Microsoft_Dynamics_Commerce_Runtime_PaymentUsingUnauthorizedAccount","paymentUsingUnauthorizedAccountErrorMessage","Microsoft_Dynamics_Commerce_Runtime_RefundAmountMoreThanAllowed","refundAmountMoreThanAllowedErrorMessage","Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment","unableToAuthorizePaymentErrorMessage","Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardAdditionalContextRequired","unableToAuthorizePaymentCardAdditionalContextRequiredErrorMessage","Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardTypeMissingOrNotSupported","unableToAuthorizePaymentCardTypeMissingOrNotSupportedErrorMessage","Microsoft_Dynamics_Commerce_Runtime_UnableToCancelPayment","unableToCancelPaymentErrorMessage","Microsoft_Dynamics_Commerce_Runtime_UnableToReadCardTokenInfo","unableToReadCardTokenInfoErrorMessage","Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult","unableToRetrieveCardPaymentAcceptResultErrorMessage","onAddAccountPayment","onAddPayment","onChangeAmountHandler","customizedAmt","paymentAmount","amountVariable","locale","onChangePaymentAmount","customState","customizedAmount","returnModifiedState","getLocaleBasedCustomizedPrice","getAccountPaymentFormEditMode","maxAmount","customer","customerCreatedDate","availableCredit","showCreditLimit","onToggleCreditSection","creditSectionIsExpanded","orderTotal","excessCredit","onRemovePayment","appliedAmount","skipOnChangeLogic","addPaymentButtonLabel","inputAmountLabel","inputAmountAriaLabel","customerSinceLabel","accountCreditLabel","creditDetailsSectionLabel","orderTotalLabel","availableCreditLabel","creditExcessLabel","appliedCustomerAccountPaymentLabel","removeCustomerAccountPaymentLabel","accountCreditDetails","inputLabel","formProps","addPaymentButton","Number","isNaN","inputAmount","onInput","currentTarget","which","min","max","customerName","Name","customerAccountNumber","AccountNumber","customerSince","accountCredit","accountDetails","assertive","includeAlertClass","appliedLine","bottomBorder","getAccountPaymentFormSummaryMode","inputAmountSummaryLabel","paymentAmountInput","defaultLocale","baseClassName","getAvailableCredit","creditBalances","PendingBalance","InvoiceAccountPendingBalance","addPayment","checkout","handleSaveAndContinue","_clearError","information","toggleCreditSection","isCreditSectionExpanded","onCancel","handleCancelOrSubmit","customerAccountAmount","updateMaxAmount","Math","checkoutCart","cart","_setErrorMessage","invalidAmountForOBOMessage","isCheckoutCustomerAccountPaymentRequired","customerAccountCreditErrorMessage","removePayment","NaN","maxPaymentAmount","Intl","NumberFormat","format","customerInfo","b2bChannel","platform","getLoyaltyAmount","loyaltyAmount","_this$props$data$cust","amountDue","_this$props$data$cred","MandatoryCreditLimit","invalidAmountExceedAmountDueMessage","invalidAmountNegativeMessage","formattedExcessCredit","isDataReady","_this$props$data$chec","when","shouldEnableCheckoutErrorDisplayMessaging","_this$props$data$chec2","_this$props$data$chec3","checkoutErrorFocus","_this$props$data$cust2","_this$props$context$r","hasInvoiceLine","customerSinceDate","Date","CreatedDateTime","toLocaleDateString","checkoutCustomerAccount","errorMessageTitle","editView","features","skipCheckoutOnChangeLogic","summaryView","withModuleState","SummaryForm","EditForm","ref","PickupTimeslotAvailabilityState","CheckoutPickupError","CheckoutPickupGroupHeader","storeInfo","CheckoutPickupTimeslotInfo","CheckoutPickupAddress","Street","City","State","County","ZipCode","ThreeLetterISORegionName","CheckoutPickupCartLines","cartLines","prop","showQty","quantity","lineId","imageProps","DefaultImageSettings","lg","quality","getDate","date","DateTimeFormat","timeZone","getTimeslot","placeHolder","startDate","endDate","useHour12TimeFormat","hour","minute","hour12","formatter","getUTCDateWithoutTime","UTC","getUTCFullYear","getUTCMonth","getUTCDate","CheckoutPickupDateDropdown","defaultKey","updateDateSelection","notification","pickupStoreId","deliveryMode","setDateHandler","selectedOption","getDateMap","has","mapDatesToOptions","dates","selectedDate","defaultOption","unshift","findIndex","getTime","dropdownOptions","defaultText","Map","availableDates","set","labelClassname","labelText","dropdownId","controlledByParent","toggleColor","dropdownClassname","htmlFor","LabeledDropdown","onSelectOption","CheckoutPickupTimeslotDropdown","updateTimeslotSelection","setTimeslotHandler","getTimeslotMap","mapTimeslotsToOptions","timeslots","selectedTimeslot","timeslotPlaceHolder","StartDateTime","EndDateTime","_selectedTimeslot$Sta","_value$StartDateTime","_selectedTimeslot$End","_value$EndDateTime","availableTimeslots","CheckoutPickup","isLoading","initModuleState","canPickup","isPickupTimeSlotSet","updateCartLinePickupDateTimeslot","setError","isHeaderError","arguments","headerErrorMessage","clearError","initPickupGroup","_this$props","_featureState$result","pickupCartLines","getCartLinesforPickup","products","getProductsByCartLines","ChannelId","pickupGroups","locations","orgUnitLocations","featureState","deliveryOptions","retailMultiplePickUpOptionEnabled","feature","IsEnabled","x","FulfillmentStoreId","DeliveryMode","product","RecordId","ProductId","lineDeliverySpecification","DeliverySpecification","DeliveryModeId","DeliveryPreferenceTypeValue","PickUpStoreId","PickupTimeslotStartDateTime","PickupTimeslotEndDateTime","DeliveryAddress","ShippingAddress","lineDeliverySpecs","cartLine","OrgUnitNumber","storeName","getStoreName","newGroup","pickupModeName","getPickupModeDescription","generalPickupText","pickupAddress","availabilityState","dailyGroupingResults","searchCriteria","DeliveryModeCode","StoreId","SearchOptionValue","getEstimatedPickupTimeslotAvailabilitiesAsync","queryResultSettings","getPickupTimeslotAvailabilityState","NotAvailable","groupErrorMessage","noAvailableDateError","AvailableCapacity","timeslotResults","StartDate","EndDate","bypassCache","filteredPickupGroups","Available","validateTimeslot","lineSpecs","concat","lineDeliverySpecifications","channelId","productInputs","ProductInput","getSimpleProducts","validationResult","dateErrorMessage","timeslotErrorMessage","pickupDateRequired","pickupTimeslotRequired","pickupDateTimeslotRequired","NotDefined","orgUnitLocation","_cartLine$ShippingAdd","OrgUnitName","every","_group$selectedTimesl","_group$selectedTimesl2","CartLines","isPickupLine","isPickupMode","_this$props2","_featureState$result2","pickupDeliveryModeCode","channel","PickupDeliveryModeCode","channelDeliveryOptionConfig","_channelDeliveryOptio","pickupDeliveryMode","PickupDeliveryModeCodes","isNullOrWhiteSpace","resourceString","deliveryOption","_foundProductDelivery","_foundProductDelivery2","foundProductDeliveryOption","deliveryO","deliveryDesc","DeliveryOptions","option","Code","dailyResult","_countItems","cartlines","componentDidMount","_this$props$data$chec4","_this$props$data$chec5","pickupDateLabel","pickupTimeslotLabel","pickupDateDefaultText","pickupTimeslotDefaultText","itemsText","singleItemText","pickupDateTimeslotText","pickupTimeslotPlaceHolder","pickupLocationLabel","defaultClassName","groupsViewProps","_value$selectedTimesl","_value$selectedTimesl2","groupDivider","_line$product","_line$product2","_line$product3","_context$request$app","PrimaryImageUrl","fallBackSrc","getFallbackImageUrl","OmniChannelMedia","numberOfCartLines","itemText","itemTitle","groupHeader","lineImageProps","cartLineImages","dateString","timeslotString","timeslotInfoProps","selectedDateTimeslotNode","addressProps","dropdownClassName","labelClassName","dropdownSelectClassName","dateDropdownNode","timeslotDropdownNode","viewProp","pickupGroupContainer","dateTimeslotContainer","pickupDateDropdown","pickupTimeslotDropdown","selectedDateTimeslot","isShowDropdown","isShowSelected","checkoutPickup","viewState","headerError","waiting","Waiting","pickupDate","oldGroup","lineSpec","noAvailableTimeslotError","pickupTimeslot","pickupGroupViewProps","isChecked","attribute","name","CheckoutTermsAndConditions","isTermsAccepted","handleTextChange","getTermsAndConditions","showCheckbox","isAutoSave","isTermsAndConditionAccepted","checkboxAriaLabel","termsAndConditionAcceptance","checkBox","CheckboxComponent","_data$checkout$result","isPaymentVerificationRedirection","getErrorMessage","ErrorTitleComponent","ErrorMessageComponent","getCancelButton","cancelBtnLabel","cancelBtnAriaLabel","getSaveButton","saveBtnLabel","saveBtnAriaLabel","getEditButton","editBtnLabel","editBtnAriaLabel","updateIsTermsAndConditionsChecked","newIsTermsAndConditionChecked","isShowButtons","showControlButtons","defaultTermsAndConditionAcceptedValue","_this$props$data$chec6","_this$props$data$chec7","_this$props$data$chec8","isError","isShowContent","errorMessageData","isShowSaveButton","isShowEditButton","isShowCancelButton","checkoutTermsAndConditions","termsAndConditionsContent","saveButton","editButton","onSave","TermsAndCondition","ErrorMessage","CookieComplianceAcceptButton","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","onClose","CookieComplianceLinks","onTelemetryClick","CookieCompliance","handleLinkTextChange","linkIndex","_this$props$config$ac","actionLinks","handleContentChange","visible","cookieRef","_onDismiss","cookies","isConsentGiven","acceptCookiesAriaLabel","moduleConfig","onDismiss","CookieComplianceBanner","AlertProps","Content","acceptButton","setConsentCookie","reload","renderCustomerName","accountInformation","FirstName","_renderReactFragment","slot","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","navIcon","logo","preferredStore","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","accountLinks","accountClassName","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuLinksContainer","mobileMenuCollapsed","Collapse","Drawer","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","NavigationMenuView","currentLevel","_positionInSetOffset","escapeKey","_updateCategoryImage","categoryImageSrc","promotionalImage","promotionalContent","imageSrc","promotionalItemImageSettings","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isMobileView","activeMenu","parentMenu","showCategoryImage","imageSource","_resetFocus","setTimeout","menuNode","focus","_handleClickOutside","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_escFunction","navDrawerList","Array","from","childNodes","navDrawerButton","firstChild","getAttribute","_getCategoryImage","categoryImageUrl","generateImageUrl","defaultImageSettings","sm","md","_categoryImage$imageS","ImageData","categoryImageSettings","_onDrawerChange","drawerState","drawerKeyValue","newPair","buttonText","body","addEventListener","componentWillUnmount","removeEventListener","_renderMobileMenu","_renderDesktopMenu","menuItemData","Navigation","menuItem","posinset","_renderDrawerMenu","MenuList","_renderDisplay","setSize","subMenu","_renderDrawer","_renderLinkMenuItem","keyValue","isDrawerOpen","colProps","toggleButtonProps","collapseProps","_renderLinkText","menuSubItem","currentPos","_menuItem$subMenu2","_menuItem$subMenu","_renderDrawerLink","linkURL","_renderSpanMenuItem","ListItem","menuItemList","menuItemDatum","_getFromSubMenu","_createMenuItemList","subMenus","i","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","idx","hasOptions","haveSubmenu","round","_renderMenu","onFocus","hoverEffect","isParent","Link","imagesource","shouldOpenNewTab","onMouseOver","_renderPromotionalLink","Span","level","currentItem","submenu","DivContainer","ImageDivContainer","showPromotionalContent","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","createSearchResultModal","modalProps","refineMenu","sortByDropDown","isRecoSearchPage","createModalBody","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","SortingContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","category","renderTitle","TitleContainer","titlePrefix","titleText","titleCount","_props$context$action","SearchResultContainer","ProductsContainer","ProductSectionContainer","choiceSummary","isMobile","searchResultModal","TitleViewProps","categoryHierarchy","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","FeatureSearchContainer","similarLookProduct","query","recommendation","BackTopFooter","backtoTopText","destination","BackToTop","componentClassName","detailsViewClassName","listViewClassName","viewSelectedClassName","OrderHistoryWithSearchAndFiltersViewModeState","OrderHistoryWithSearchAndFiltersViewModeComponent","msdyn365Commerce","createComponent","component","_props$resources$deta","_props$resources","_props$resources$deta2","_props$resources2","_props$resources$list","_props$resources3","_props$resources$list2","_props$resources4","viewModeState","setViewModeState","currentViewModeState","onClickHandler","newViewModeState","viewModeDetailedViewAttributes","ViewMode","viewModeListViewAttributes","DetailedView","detailedViewOptionAriaLabel","ListView","listViewOptionAriaLabel","ProductComparisonButton","_addToProductComparison","_this$props$data$acco","ProductComparisonItem","catalogId","ProductComparisonState","instance","addItem","_removeFromProductComparison","_this$props$data$acco2","removeItemById","comparisonItemId","_getNewState","_this$props$data$acco3","getItemId","_getProdutComparisonDataByCatalogId","canProductBeAddedToProductComparison","hasItemById","currentProductsCount","_className","_instanceId","Random","Guid","generateGuid","_shouldUsePreview","_productComparisonPreview","_renderProductComparisonPreview","static","productComparisonPreview","_this$props$data$acco4","listModifiedEvent","subscribe","instanceId","handler","getSnapshotBeforeUpdate","previousProps","_this$props$data$acco5","unsubscribe","buttonClassName","shouldDisplayText","removeFromComparisonButtonText","productComparisonButton","_renderProductComparisonButton","productsLimit","_getProductsLimit","addToComparisonLimitReachedButtonText","addToComparisonButtonText","viewport","variant","VariantType","Browser","productComparisonMobileProductsLimit","productComparisonDesktopProductsLimit","_this$props$data$acco6","_items$filter","getCatalogId","ProductComparisonButtonViewFunctionalComponent","PromoCode","_onInputChangeHandler","promoCodeInputValue","trim","canApply","_applyPromotion","cartState","appliedPromo","addPromoCode","promoCode","substatus","duplicatePromoCodeErrorText","invalidPromoCodeErrorText","failedToAddPromoCodeErrorText","_onSubmitHandler","applyPromotionHandler","_renderForm","promoPlaceholderText","promoCodeApplyButtonText","placeholder","_removePromotion","_event$currentTarget$","code","removePromoCodes","promoCodes","failedToRemovePromoCodeErrorText","_renderAppliedPromoCode","Coupons","removePromotionHandler","coupon","removePromoAriaLabelFormat","removePromoText","ApplyPromoCode","promoCodeHeadingText","renderAdditionalContent","additionalContent","_additionalContent$ad","additionalContentNode","additionalContentItems","additionalContentItemContainer","additionalContentItemLinks","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","imageAriaLabel","imageClass","FooterItemView","FooterItem","_renderElement","HeadingContainer","EditableLink"],"sourceRoot":""}