{"version":3,"file":"static/js/21.a9a659b5adae75279e4b.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/components/Logo.tsx?b64b","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/header.view.tsx?8952","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/order-confirmation.view.tsx?ce8f","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/common/waiting.tsx?8095","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-express-payment-container/checkout-express-payment-container.tsx?1d63","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-express-payment-container/checkout-express-payment-container.view.tsx?4299","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-section-container/checkout-section-container.tsx?c853","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-section-container/checkout-section-container.view.tsx?b4ab","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-section-container/components/loading.tsx?2e57","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/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/interactive-feature-item/components/links.tsx?7423","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.tsx?792c","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface ILogoProps {\r\n image: Msdyn365.IImageData;\r\n gridSettings?: Msdyn365.IGridSettings;\r\n link?: ILinkData;\r\n className?: string;\r\n telemetryContent?: ITelemetryContent;\r\n requestContext: Msdyn365.IRequestContext;\r\n typeName?: string;\r\n}\r\n\r\nexport interface ILinkData {\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n linkText?: string;\r\n}\r\n\r\n/**\r\n *\r\n * Logo component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class Logo extends React.PureComponent {\r\n private readonly attributes?: Msdyn365.IDictionary;\r\n\r\n constructor(props: ILogoProps) {\r\n super(props);\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.Logo);\r\n this.attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n }\r\n\r\n public render(): JSX.Element {\r\n return
{this._renderLogo(this.props)}
;\r\n }\r\n\r\n private _renderLogo(config: ILogoProps): JSX.Element {\r\n if (config.link && config.link.linkUrl.destinationUrl) {\r\n return (\r\n \r\n {this._renderImage(config)}\r\n \r\n );\r\n }\r\n return this._renderImage(config);\r\n }\r\n\r\n private _renderImage(config: ILogoProps): JSX.Element {\r\n const defaultImageSettings: Msdyn365.IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=132&h=28&m=6', w: 0, h: 0 },\r\n lg: { q: 'w=160&h=48&m=6', w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default Logo;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node, getTelemetryObject } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport MsDyn365 from '@msdyn365-commerce/core';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\nimport { IHeaderData } from './header.data';\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header/src/modules/header/./header';\r\nimport { Logo } from './components/Logo';\r\nconst headerView: React.FC> = props => {\r\n // VSI Customization\r\n const [scroll, setScroll] = React.useState(false);\r\n React.useEffect(() => {\r\n window.addEventListener('scroll', () => {\r\n setScroll(window.scrollY > 0);\r\n });\r\n }, []);\r\n const {\r\n HeaderTag,\r\n HeaderContainer,\r\n HeaderTopBarContainer,\r\n MobileMenuContainer,\r\n MobileMenuBodyContainer,\r\n MobileMenuLinksContainer,\r\n Divider,\r\n context: {\r\n request: {\r\n user: { isAuthenticated, signInUrl }\r\n }\r\n },\r\n config: { registerNowButton },\r\n resources: { hello, login }\r\n } = props;\r\n const miniCartIconHide = props.context.request.telemetryPageName === 'CheckoutPage' ? null : props.cartIcon;\r\n const discountOffer = 'discount-offer';\r\n const [isMobile, setIsMobile] = React.useState();\r\n const _updateViewport = (): void => {\r\n const viewport = _getViewport();\r\n viewport === 'xs' || viewport === 'sm' ? setIsMobile(true) : setIsMobile(false);\r\n };\r\n type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\n const _getViewport = (): GridSize => {\r\n // Always render in mobile viewport on a mobile device\r\n if (props.context?.request && props.context.request.device && props.context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n if (MsDyn365.isBrowser && window.innerWidth) {\r\n const gridSettings = props.context?.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n }\r\n return 'xl';\r\n }\r\n }\r\n return 'lg';\r\n };\r\n\r\n React.useEffect(() => {\r\n _updateViewport();\r\n if (MsDyn365.isBrowser && window.addEventListener) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n window.addEventListener('resize', _updateViewport);\r\n }\r\n }, []);\r\n const telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.friendlyName, props.telemetry);\r\n\r\n const mobileLogo: React.ReactNode = (\r\n \r\n );\r\n return (\r\n
\r\n {/*
*/}\r\n \r\n \r\n \r\n {props.navIcon}\r\n {isMobile ? mobileLogo : props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.preferredStore}\r\n {props.currentDistributor}\r\n {/* {_renderDesktopAccountBlock(props)} */}\r\n {/* VSI CUSTOMIZATION FOR GUEST USER LINKS STARTS REGISTER ARE CONFIG AND SINGINURL AUTO GENERATED */}\r\n {registerNowButton && signInUrl && (\r\n
\r\n {miniCartIconHide && {hello}}\r\n {!isAuthenticated ? (\r\n \r\n ) : (\r\n _renderDesktopAccountBlock(props)\r\n )}\r\n
\r\n )}\r\n {/* {props.wishListIconDesktop} */}\r\n {/* VSI CUSTOMIZATIOMN END */}\r\n \r\n
\r\n {props.config.discountTextHeading}\r\n \r\n {props.config.discountAndOffersText?.linkText}\r\n \r\n
\r\n {miniCartIconHide && isAuthenticated ? props.cartIcon : false}\r\n\r\n {_renderReactFragment(props.siteOptions)}\r\n
\r\n {_renderReactFragment(props.menuBar)}\r\n
\r\n \r\n \r\n
{isMobile ? mobileLogo : props.logo}
\r\n {_renderReactFragment(props.search)}\r\n {props.MobileMenuHeader}\r\n \r\n {props.accountLinks ? props.accountLinks.map(link => link) : false}\r\n {props.siteOptions}\r\n {props.signInLink}\r\n {props.signOutLink}\r\n {_renderReactFragment(props.menuBar)}\r\n {/* {props.wishListIconMobile} */}\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nfunction _renderDesktopAccountBlock(props: IHeaderViewProps & IHeaderProps): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks\r\n } = props;\r\n const extendedUrl =\r\n props.context.request.user.signOutUrl! + props.config.signoutExtendedUrl?.trim() ||\r\n '?ru=https://e-commerce-krannich.commerce.dynamics.com/kaum-au/';\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n \r\n {accountLinks ? accountLinks.map(link => link) : false}\r\n {React.cloneElement(signOutLink as React.ReactElement, { href: extendedUrl })}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return {signInLink};\r\n }\r\n }\r\n props.context.telemetry.error('Header content is empty, module wont render.');\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n <>\r\n {items && items.length > 0\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * 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\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 { IOrderConfirmationConfig, IOrderConfirmationProps } from '../definition-extensions/order-confirmation.ext.props.autogenerated';\r\nimport { IContentBlockConfig } from '../definition-extensions/content-block.ext.props.autogenerated';\r\nimport { currencyFormat, dateFormatByLocale, incExcPriceFormat } from '../../../utils/helper';\r\nimport { IAny, ICoreContext, IGeneric } from '@msdyn365-commerce/core-internal';\r\nimport { IOrderConfirmationData } from './order-confirmation.data';\r\nimport MsDyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const OrderConfirmationOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n receiptEmail,\r\n createdDate,\r\n channelReferenceId\r\n}) => (\r\n // VSI customization for new designs implementation\r\n <>\r\n);\r\n\r\nexport const OrderConfirmationSalesLine: React.FC = ({\r\n salesLineProps,\r\n salesLine,\r\n buyAgainButton,\r\n data,\r\n context\r\n}) => {\r\n const { enabledIncExPrices, incExPricePercentage } = context?.app.config;\r\n const unitPrice = Number(data.salesLine.NetAmount!) / Number(data.salesLine.Quantity);\r\n return (\r\n <>\r\n {/* */}\r\n \r\n {data.product?.ItemId}\r\n {data.product?.Name}\r\n {incExcPriceFormat(unitPrice, context, enabledIncExPrices, incExPricePercentage)}\r\n {data.product?.DefaultUnitOfMeasure}\r\n \r\n {data.salesLine.Quantity}\r\n \r\n {/* {salesLine} */}\r\n {incExcPriceFormat(data.salesLine.NetAmount!, context, enabledIncExPrices, incExPricePercentage)}\r\n \r\n {/* */}\r\n \r\n );\r\n};\r\n\r\n// VSI CUSTOMIZATION FOR MOBILE LIST VIEW\r\nexport const OrderConfirmationSalesLineForMobile: React.FC = ({\r\n salesLineProps,\r\n salesLine,\r\n buyAgainButton,\r\n data,\r\n context\r\n}) => {\r\n const { enabledIncExPrices, incExPricePercentage } = context?.app.config;\r\n return (\r\n <>\r\n
\r\n
\r\n Item Number: \r\n {data.product?.ItemId}\r\n
\r\n
\r\n Product Name: \r\n {data.product?.Name}\r\n
\r\n
\r\n Unit Price: \r\n \r\n {incExcPriceFormat(data.product?.Price!, context, enabledIncExPrices, incExPricePercentage)}\r\n \r\n
\r\n
\r\n UOM: \r\n {data.product?.DefaultUnitOfMeasure}\r\n
\r\n
\r\n Quantity: \r\n {data.salesLine.Quantity}\r\n
\r\n
\r\n Total Price: \r\n \r\n {incExcPriceFormat(data.salesLine.NetAmount!, context, enabledIncExPrices, incExPricePercentage)}\r\n \r\n
\r\n
\r\n \r\n );\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 // VSI customization for new designs implementation\r\n <>\r\n);\r\n\r\nexport const OrderConfirmationGroup: React.FC = ({\r\n groupProps,\r\n delivery,\r\n salesLinesProps,\r\n salesLines,\r\n context\r\n}) => {\r\n //Configs For Mobile View\r\n const [isMobile, setIsMobile] = React.useState();\r\n const _updateViewport = (): void => {\r\n const viewport = _getViewport();\r\n viewport === 'xs' || viewport === 'sm' ? setIsMobile(true) : setIsMobile(false);\r\n };\r\n type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\n const _getViewport = (): GridSize => {\r\n // const { context } = productManufacturarAttribute;\r\n\r\n // Always render in mobile viewport on a mobile device\r\n if (context?.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n\r\n if (MsDyn365.isBrowser && window.innerWidth) {\r\n const gridSettings = context?.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n }\r\n return 'xl';\r\n }\r\n }\r\n\r\n return 'lg';\r\n };\r\n\r\n React.useEffect(() => {\r\n _updateViewport();\r\n if (MsDyn365.isBrowser && window.addEventListener) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n window.addEventListener('resize', _updateViewport);\r\n }\r\n }, []);\r\n if (isMobile) {\r\n return (\r\n salesLines && (\r\n <>\r\n {salesLines.map((salesLine: ISalesLine) => (\r\n \r\n ))}\r\n \r\n )\r\n );\r\n } else {\r\n return (\r\n \r\n {/* {delivery && }\r\n {delivery && delivery.shippingItemsToYou} */}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {salesLines && (\r\n <>\r\n {salesLines.map((salesLine: ISalesLine) => (\r\n \r\n ))}\r\n \r\n )}\r\n
Item NumberProduct NameUnit PriceUOM\r\n Quantity\r\n Total Price
\r\n
\r\n );\r\n }\r\n};\r\n\r\nexport const OrderConfirmationGroups: React.FC = ({ groupsProps, groups, context }) => (\r\n \r\n {groups.map((group: IGroup, index: number) => (\r\n \r\n ))}\r\n \r\n);\r\ninterface IOrderSummaryExtend {\r\n discountAmount?: number;\r\n context?: ICoreContext>;\r\n deliveryMode?: string;\r\n freightAndGSTMessage?: string;\r\n freightAndGSTMessageFromResources?: string;\r\n}\r\ninterface JSXNumberValue {\r\n value: number;\r\n}\r\n\r\nexport const OrderConfirmationOrderSummary: React.FC = ({\r\n orderSummaryProps,\r\n heading,\r\n subtotal,\r\n shipping,\r\n tax,\r\n totalAmount,\r\n earnedPoints,\r\n discountAmount,\r\n deliveryMode,\r\n context,\r\n freightAndGSTMessage,\r\n freightAndGSTMessageFromResources\r\n}) => {\r\n const subTotalJSX = subtotal as JSX.Element;\r\n const subTotalJSXValue = subTotalJSX.props as JSXNumberValue;\r\n const subTotalAmount = subTotalJSXValue?.value;\r\n\r\n return (\r\n \r\n {heading}\r\n {/* {subtotal} */}\r\n

\r\n Subtotal\r\n \r\n {currencyFormat(subTotalAmount, context)}\r\n \r\n

\r\n

\r\n Shipping Fee\r\n \r\n {deliveryMode && deliveryMode === 'Collection' ? (\r\n \r\n FREE\r\n \r\n ) : (\r\n

\r\n {'To Be Calculated '}\r\n
\r\n \r\n \r\n {\r\n 'This quotation is excluding freight costs. Freight will be detailed in your sales order confirmation.'\r\n }\r\n \r\n
\r\n
\r\n )}\r\n \r\n

\r\n {tax}\r\n {totalAmount}\r\n
\r\n {freightAndGSTMessage ? freightAndGSTMessage : freightAndGSTMessageFromResources}\r\n
\r\n {earnedPoints}\r\n
\r\n );\r\n};\r\n\r\nexport const OrderConfirmationPayment: React.FC = ({ paymentMethodsProps, title, methods }) => (\r\n \r\n {/* // VSI customization for new designs implementation */}\r\n\r\n {/* {title} */}\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> = ({\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,\r\n resources,\r\n config: { bannerImage, bannerLink, freightAndGSTMessage },\r\n context: {\r\n request: { gridSettings },\r\n actionContext: { requestContext }\r\n },\r\n context\r\n}) => {\r\n const deliveryMode = data?.orderHydration?.result?.salesOrder?.DeliveryMode!;\r\n //VSI CUSTOMIZATION TO SET CHECKOUT PHONE NUMBER\r\n const [phnRcdId, setPhnRcdId] = React.useState();\r\n const [phnRcdNumber, setPhnRcdNumber] = React.useState();\r\n\r\n React.useEffect(() => {\r\n setTimeout(() => {\r\n const phnRcdId = localStorage.getItem('phnRcdId');\r\n setPhnRcdId(Number(phnRcdId!));\r\n }, 1000);\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (phnRcdId) {\r\n const primaryAddresses = data.customerInformation.result?.Addresses?.filter(e => e.PhoneRecordId === phnRcdId);\r\n if (primaryAddresses) setPhnRcdNumber(primaryAddresses[0]?.Phone!);\r\n }\r\n }, [phnRcdId]);\r\n\r\n //VSI Customization to check if phone number exists\r\n const discountAmount = data?.orderHydration.result?.salesOrder?.DiscountAmount || undefined;\r\n const addressProps = groups && groups?.groups?.find(addr => addr?.delivery?.address)?.delivery.address;\r\n\r\n //VSI Customization to add banner image from config for new design implementation\r\n const imageProps = {\r\n gridSettings: gridSettings ?? {},\r\n imageSettings: bannerImage?.imageSettings\r\n };\r\n\r\n interface IContentBlockFullConfig extends IContentBlockConfig {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\r\n msdyn365__moduleLayout?: string;\r\n }\r\n const contentBlockImage = (\r\n \r\n );\r\n //VSI Customization to add banner image for new design implementation -- END\r\n const newDate = new Date(data?.orderHydration.result?.salesOrder.CreatedDateTime!);\r\n const formattedDate = newDate.toLocaleDateString('en-GB');\r\n /* VSI CUSTOMIZATION | DATE FORMAT | START */\r\n const dateLocale = context.app.config.dateFormat;\r\n const currency = context.request.channel?.Currency;\r\n const formattedDateByLocale: string =\r\n (dateLocale && currency && formattedDate && dateFormatByLocale(dateLocale, currency, formattedDate)) || '';\r\n /* VSI CUSTOMIZATION | DATE FORMAT | END */\r\n return (\r\n <>\r\n \r\n
\r\n {heading}\r\n {backToShoppingLink}\r\n
\r\n {/* //VSI Customization to change shipping address & order details layout for new design implementation */}\r\n {\r\n
\r\n
\r\n

{resources.shippingAddressyHeading}

\r\n {/* {data?.orderHydration?.result?.salesOrder?.CustomerName} */}\r\n {addressProps && addressProps}\r\n {/* //VSI Customization to check if phone number exists */}\r\n\r\n {/* {data?.customerInformation?.result?.Phone && (\r\n
\r\n {resources.phoneNumberLabel}\r\n {data?.customerInformation?.result?.Phone}\r\n
\r\n )} */}\r\n
\r\n {resources.phoneNumberLabel}\r\n {phnRcdNumber}\r\n
\r\n
\r\n
\r\n

{resources.orderRequestDetailsHeading}

\r\n
\r\n \r\n \r\n {data?.orderHydration?.result?.salesOrder?.ChannelReferenceId}\r\n \r\n
\r\n
\r\n \r\n \r\n {data?.orderHydration?.result?.salesOrder?.ReceiptEmail}\r\n \r\n
\r\n
\r\n {resources.orderRequestDateLabel.replace('{date}', formattedDateByLocale!)}\r\n
\r\n
\r\n
\r\n }\r\n {/* //VSI Customization to change shipping address & order details layout for new design implementation -- END */}\r\n {/* {data.orderHydration.result?.salesOrder?.ShippingAddress?.Name}\r\n {data.orderHydration.result?.salesOrder?.ShippingAddress?.FullAddress} */}\r\n {groups && }\r\n {alert}\r\n {loading}\r\n\r\n {/* {payment && } */}\r\n
\r\n {bannerLink && bannerLink.linkUrl && bannerLink.linkUrl.destinationUrl && (\r\n
\r\n \r\n {contentBlockImage}\r\n \r\n
\r\n )}\r\n
\r\n

Payment Summary

\r\n {orderSummary && (\r\n \r\n )}\r\n
\r\n
\r\n {help && }\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default OrderConfirmationView;\r\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 { Waiting } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * Payment waiting props.\n */\nexport interface IPaymentWaitingProps {\n message: string;\n className?: string;\n}\n\n/**\n * Payment waiting.\n * @param param0 - First in param.\n * @param param0.message - Message.\n * @param param0.className - ClassName.\n * @returns React node.\n */\nexport const WaitingComponent: React.FC = ({ message, className = 'ms-checkout-payment-instrument' }) => (\n
\n \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 } from './checkout-customer-account-payment';\nimport { IAccountPaymentEditViewForm } from './components/get-account-payment-form-edit-mode';\nimport { IAccountPaymentSummaryViewForm } from './components/get-account-payment-form-summary-mode';\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleStateProps, EnabledPaymentsForOBO } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport classname from 'classnames';\n\nimport { reaction } from 'mobx';\nimport { ICheckoutExpressPaymentContainerData } from './checkout-express-payment-container.data';\nimport {\n ICheckoutExpressPaymentContainerProps,\n ICheckoutExpressPaymentContainerHeadingData\n} from './checkout-express-payment-container.props.autogenerated';\nimport { WaitingComponent } from '../../common/waiting';\n\n/**\n * ICheckoutExpressPaymentContainerModuleProps interface.\n */\nexport interface ICheckoutExpressPaymentContainerModuleProps\n extends ICheckoutExpressPaymentContainerProps,\n IModuleStateProps {}\n\nexport interface ICheckoutExpressPaymentContainerViewProps\n extends ICheckoutExpressPaymentContainerProps<{}>,\n ICheckoutExpressPaymentContainerState {\n checkoutPlainContainerProps: IModuleProps;\n items: React.ReactNode[];\n isReady?: boolean;\n waiting?: React.ReactNode;\n title?: React.ReactNode;\n headerProps: INodeProps;\n}\n\n/**\n * Checkout Express Payment Container State.\n */\nexport interface ICheckoutExpressPaymentContainerState {\n isReady?: boolean;\n shouldHideExpressPaymentContainer?: boolean;\n}\n\n/**\n *\n * CheckoutExpressPaymentContainer component\n * @extends {React.PureComponent>}\n */\n@observer\nexport class CheckoutExpressPaymentContainer extends React.PureComponent<\n ICheckoutExpressPaymentContainerProps,\n ICheckoutExpressPaymentContainerState\n> {\n private readonly moduleClassName: string = 'ms-checkout-express-section-container';\n\n public constructor(props: ICheckoutExpressPaymentContainerModuleProps) {\n super(props);\n this.state = {\n isReady: false,\n shouldHideExpressPaymentContainer: this.props.data.checkout.result?.shippingAddressFromExpressCheckout ? true : false\n };\n }\n\n public componentDidMount(): void {\n reaction(\n () => this.props.data.checkout.result?.isExpressPaymentModulesReady,\n () => {\n const items = this._getItems();\n if (items.length === 0) {\n this.props.context.telemetry.error('Checkout express payment container content is empty, module wont render');\n } else {\n let isReady = true;\n\n for (const item of items) {\n // @ts-ignore\n if (item.key.includes('checkout-express')) {\n // @ts-ignore\n const extensionPropertyKey = `is${item.props.config.paymentTenderType}ExpressModuleReady`;\n\n const isModuleReady =\n this.props.data.checkout.result?.isExpressPaymentModulesReady?.find(\n property => property.Key === extensionPropertyKey\n )?.Value?.BooleanValue ?? false;\n isReady = isReady && isModuleReady;\n }\n }\n this.setState({ isReady });\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.isExpressCheckoutApplied,\n isExpressCheckoutApplied => {\n this.setState({ shouldHideExpressPaymentContainer: isExpressCheckoutApplied });\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { checkoutExpressPaymentContainerHeading },\n resources: { checkoutExpressPaymentSectionLoadingMessage },\n data: { checkout }\n } = this.props;\n\n if (!checkout.result || checkout.result?.isExpressCheckoutApplied || checkout.result?.isPaymentVerificationRedirection) {\n this.props.context.telemetry.information('Other payment is applied, checkout express payment container module wont render');\n return null;\n }\n\n if (this.props.context.request.user.isOBORequest && EnabledPaymentsForOBO.ExpressPayment === 0) {\n this.props.context.telemetry.information('isOBORequest is enabled, Checkout express payment container module wont render');\n return null;\n }\n\n const items = this._getItems();\n if (items.length === 0) {\n this.props.context.telemetry.error('Checkout express payment container content is empty, module wont render');\n return null;\n }\n\n const shouldHideExpressPaymentContainerClassName: string = this.state.shouldHideExpressPaymentContainer ? 'hide' : '';\n\n const moduleClassName = classname(\n 'ms-checkout-express-payment-container',\n this.props.config.className,\n shouldHideExpressPaymentContainerClassName\n );\n\n const viewProps: ICheckoutExpressPaymentContainerViewProps = {\n ...this.props,\n\n checkoutPlainContainerProps: {\n moduleProps: this.props,\n className: moduleClassName\n },\n items: items,\n isReady: this.state.isReady,\n waiting: ,\n title: checkoutExpressPaymentContainerHeading && this._renderMsdyn365Text(checkoutExpressPaymentContainerHeading),\n headerProps: { className: 'ms-checkout-express-payment-container__head' }\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly _getItems = (): React.ReactNode[] => {\n const { slots } = this.props;\n return (slots && slots.primary && slots.primary.length && slots.primary) || [];\n };\n\n /**\n * Renders heading.\n * @param checkoutExpressPaymentContainerHeading - The checkout express container heading.\n * @returns React node.\n */\n private _renderMsdyn365Text(checkoutExpressPaymentContainerHeading: ICheckoutExpressPaymentContainerHeadingData): React.ReactNode {\n return (\n \n );\n }\n\n /**\n * Event handler for heading change event.\n * @param event - The content change event in heading element.\n * @returns The new heading value.\n */\n private _handleCheckoutExpressContainerHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.checkoutExpressPaymentContainerHeading!.text = event.target.value);\n}\n\nexport default CheckoutExpressPaymentContainer;\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 { ICheckoutExpressPaymentContainerViewProps } from './checkout-express-payment-container';\n\ninterface IContainerItemsComponent {\n isLoadingClassName: string;\n items: React.ReactNode[];\n}\n\nconst ContainerItemsComponent: React.FC = ({ isLoadingClassName, items }) => (\n
{items}
\n);\n\nconst CheckoutExpressPaymentContainerView: React.FC = ({\n checkoutPlainContainerProps,\n items,\n isReady,\n waiting,\n title,\n headerProps\n}) => {\n const isLoadingClassName: string = isReady ? 'showContainer' : 'notShowContainer';\n return (\n \n {title}\n {!isReady && waiting}\n \n \n );\n};\n\nexport default CheckoutExpressPaymentContainerView;\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 useHour12TimeFormat?: boolean;\n setTimeslotHandler(pickupStoreId: string, deliveryMode: string, pickupTimeslot: PickupTimeslotAvailability | undefined): void;\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 { ICheckoutPickupViewProps } from './checkout-pickup';\nimport { ICheckoutPickupGroupViewProps } from './components/checkout-pickup-group';\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 { IModuleStateManager, IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ICheckoutSectionContainerData } from './checkout-section-container.data';\nimport { ICheckoutSectionContainerProps } from './checkout-section-container.props.autogenerated';\nimport LoadingComponent from './components/loading';\n\n/**\n * ICheckoutSectionContainerModuleProps interface.\n */\nexport interface ICheckoutSectionContainerModuleProps\n extends ICheckoutSectionContainerProps,\n IModuleStateProps {\n enableControl: boolean;\n}\n\ninterface ICheckoutSectionContainerState {\n isCollapse?: boolean;\n}\n\nexport interface ICheckoutSectionContainerItem {\n id: string;\n loading?: React.ReactNode;\n itemProps: INodeProps;\n item: React.ReactNode;\n}\n\nexport interface ICheckoutSectionContainerViewProps extends ICheckoutSectionContainerProps<{}> {\n className: string;\n checkoutPlainContainerProps: IModuleProps;\n items: ICheckoutSectionContainerItem[];\n}\n\nconst paymentInstrumentModuleId = 'payment-instrument';\n\nconst zeroAmount = 0;\n\n/**\n *\n * CheckoutPlainContainer component.\n * @extends {React.Component>}\n */\n@observer\nexport class CheckoutPlainContainer extends React.Component {\n @computed public get amountDue(): number {\n const {\n data: { checkout }\n } = this.props;\n if (!checkout?.result) {\n return 0;\n }\n\n const checkoutResult = checkout.result;\n const cart = checkoutResult.checkoutCart?.cart;\n if (!cart || !cart.CartLines || !ArrayExtensions.hasElements(cart.CartLines)) {\n return 0;\n }\n\n return cart.TotalAmount ?? zeroAmount;\n }\n\n public constructor(props: ICheckoutSectionContainerModuleProps) {\n super(props);\n this.state = { isCollapse: false };\n }\n\n public componentDidMount(): void {\n const items = this.getItems();\n const childIds = items.map((item: React.ReactNode) => get(item, 'props.id'));\n const shouldEnableSinglePaymentAuthorizationCheckout: boolean =\n this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout ?? false;\n\n this.props.moduleState.init({\n onEdit: this.onEdit,\n onCancel: shouldEnableSinglePaymentAuthorizationCheckout ? undefined : this.onCancel,\n onSubmit: shouldEnableSinglePaymentAuthorizationCheckout ? undefined : this.onSubmit,\n childIds\n });\n\n reaction(\n () => this.props.moduleState.isReady,\n () => {\n this.onContainerReady();\n }\n );\n\n reaction(\n () => this.props.moduleState.shouldSubmitContainer,\n () => {\n this.onSubmit();\n }\n );\n\n // Reaction to collapse the payment section for new checkout flow.\n reaction(\n () => this.props.data.checkout.result?.shouldCollapsePaymentSection,\n shouldCollapsePaymentSection => {\n const isPaymentSectionContainer = ArrayExtensions.hasElements(\n this.props.moduleState.childIds.filter(childId => childId.includes(paymentInstrumentModuleId))\n );\n\n if (shouldEnableSinglePaymentAuthorizationCheckout && isPaymentSectionContainer) {\n this.setState({ isCollapse: shouldCollapsePaymentSection });\n }\n }\n );\n\n // Reaction to submit section container for new checkout flow\n reaction(\n () => this.props.data.checkout.result?.shouldTriggerPaymentWithPlaceOrder,\n () => {\n const isPaymentSectionContainer = ArrayExtensions.hasElements(\n this.props.moduleState.childIds.filter(childId => childId.includes(paymentInstrumentModuleId))\n );\n\n if (shouldEnableSinglePaymentAuthorizationCheckout && isPaymentSectionContainer) {\n this.onSubmit();\n }\n }\n );\n\n // Reaction to set isPaymentSectionContainerReady for new checkout flow.\n reaction(\n () => this.props.moduleState.isReady,\n async isReady => {\n const isPaymentSectionContainer = ArrayExtensions.hasElements(\n this.props.moduleState.childIds.filter(childId => childId.includes(paymentInstrumentModuleId))\n );\n\n if (shouldEnableSinglePaymentAuthorizationCheckout && isPaymentSectionContainer && this.amountDue > zeroAmount) {\n await this.props.data.checkout.result?.updateIsPaymentSectionContainerReady({\n newIsPaymentSectionContainerReady: isReady\n });\n }\n }\n );\n\n // Reaction to set isPaymentSectionContainerHasError for new checkout flow.\n reaction(\n () => this.props.moduleState.hasError,\n async hasError => {\n const isPaymentSectionContainer = ArrayExtensions.hasElements(\n this.props.moduleState.childIds.filter(childId => childId.includes(paymentInstrumentModuleId))\n );\n\n if (shouldEnableSinglePaymentAuthorizationCheckout && isPaymentSectionContainer) {\n await this.props.data.checkout.result?.updateIsPaymentSectionContainerHasError({\n newIsPaymentSectionContainerHasError: hasError\n });\n }\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.isCheckoutCallFailed,\n async () => {\n const isPaymentSectionContainer = ArrayExtensions.hasElements(\n this.props.moduleState.childIds.filter(childId => childId.includes(paymentInstrumentModuleId))\n );\n\n if (isPaymentSectionContainer && this.props.data.checkout.result?.isCheckoutCallFailed) {\n this.onEdit();\n await this.props.data.checkout.result.updateIsCheckoutCallFailed({ newIsCheckoutCallFailed: true });\n }\n }\n );\n }\n\n public componentDidUpdate(): void {\n if (!this.props.moduleState.hasExternalSubmitGroup) {\n return;\n }\n\n /**\n * Review all modules to updating status if one of the modules has error.\n */\n const { childIds, hasError, getModule } = this.props.moduleState;\n const hasReadyOrSkippedItems = childIds.some((childId: string) => {\n const state = getModule(childId);\n return !!state && (state.isReady || state.isSkipped);\n });\n if (hasReadyOrSkippedItems && hasError) {\n this.onEdit();\n }\n }\n\n public shouldComponentUpdate(nextProps: ICheckoutSectionContainerModuleProps, nextState: ICheckoutSectionContainerState): 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 enableControl,\n moduleState,\n config: { width }\n } = this.props;\n\n const items = this.getItems();\n if (items.length === 0) {\n this.props.context.telemetry.error('Checkout section content is empty, module wont render');\n return null;\n }\n\n const moduleClassName = classname(\n 'ms-checkout-section-container',\n {\n 'has-initialized': moduleState.hasInitialized,\n 'is-ready': moduleState.isReady,\n 'is-updating': !moduleState.isReady,\n container: width === 'container',\n 'col-12 fullwidth': width === 'fluid'\n },\n this.props.config.className\n );\n\n const viewProps: ICheckoutSectionContainerViewProps = {\n ...this.props,\n\n className: moduleClassName,\n checkoutPlainContainerProps: {\n moduleProps: this.props,\n className: moduleClassName\n },\n items: items.map((item: React.ReactNode) => {\n const childId = get(item, 'props.id');\n const state = moduleState.getModule(childId);\n\n // Modules has not completed initializing or it's disable\n const hidden =\n this.state.isCollapse || (state.hasModuleState && (!state.hasInitialized || state.isDisabled || state.isSkipped));\n return {\n id: childId,\n loading: state.hasModuleState && !state.hasInitialized && ,\n itemProps: {\n 'data-type-name': state.typeName,\n className: classname('ms-checkout-section-container__item', {\n hidden,\n initialized: state.hasInitialized,\n disabled: state.isDisabled,\n skipped: state.isSkipped,\n ready: state.isReady,\n updating: state.isUpdating,\n pending: state.isPending\n })\n },\n item: React.cloneElement(item as React.ReactElement, { enableControl })\n };\n })\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly getItems = (): React.ReactNode[] => {\n const { slots } = this.props;\n return (slots && slots.primary && slots.primary.length && slots.primary) || [];\n };\n\n private readonly getActiveChildModuleStates = (): IModuleStateManager[] => {\n const { childIds, getModule } = this.props.moduleState;\n return childIds\n .map(getModule)\n .filter((state): state is IModuleStateManager => !!state && !state.isDisabled && state.hasModuleState);\n };\n\n private readonly clearError = (): void => {\n // Clear error before action, otherwise it will rise conflict;\n this.getActiveChildModuleStates().forEach(state => {\n state.hasError && state.setHasError(false);\n });\n };\n\n private readonly onSubmit = (): void => {\n const isPaymentSectionContainer = ArrayExtensions.hasElements(\n this.props.moduleState.childIds.filter(childId => childId.includes(paymentInstrumentModuleId))\n );\n\n this.props.telemetry.information('Section container onSubmit is called.');\n\n this.clearError();\n this.getActiveChildModuleStates().forEach(state => {\n !state.isReady && state.onSubmit && state.onSubmit();\n });\n\n // Handle when the amount due is zero\n if (\n this.props.data.checkout.result?.shouldEnableSinglePaymentAuthorizationCheckout &&\n isPaymentSectionContainer &&\n this.amountDue === zeroAmount\n ) {\n this.props.data.checkout.result?.updateIsPaymentSectionContainerReady({\n newIsPaymentSectionContainerReady: true\n });\n }\n };\n\n private readonly onCancel = (): void => {\n this.props.telemetry.information('Section container onCancel is called.');\n\n this.clearError();\n this.getActiveChildModuleStates().forEach(state => {\n !state.isReady && state.onCancel && state.onCancel();\n });\n };\n\n private readonly onEdit = (): void => {\n this.props.telemetry.information('Section container onEdit is called.');\n\n this.getActiveChildModuleStates().forEach(state => {\n (state.isReady || state.isSkipped) && state.onEdit && state.onEdit();\n });\n };\n\n private readonly onContainerReady = (): void => {\n this.props.telemetry.information('Section container onContainerReady is called.');\n\n this.getActiveChildModuleStates().forEach(state => {\n state.isReady && state.onContainerReady && state.onContainerReady();\n });\n };\n}\n\nexport default withModuleState(CheckoutPlainContainer);\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 { ICheckoutSectionContainerItem, ICheckoutSectionContainerViewProps } from './checkout-section-container';\n\nconst ItemComponent: React.FC = ({ loading, itemProps, item }) => (\n <>\n {loading}\n {item}\n \n);\n\nconst CheckoutSectionContainerView: React.FC = ({ checkoutPlainContainerProps, items }) => (\n \n {items.map(item => (\n \n ))}\n \n);\n\nexport default CheckoutSectionContainerView;\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\nconst Loading: React.FC = () =>
;\n\nexport default Loading;\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, 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 { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature links.\n */\nexport interface IInteractiveFeatureLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * IInteractiveFeatureLinks component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureCollectionLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n }\n\n /**\n * IInteractiveFeatureLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata?: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || !ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-interactive-feature-collection__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n }\n\n return editableLinks;\n };\n}\nexport default InteractiveFeatureCollectionLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InteractiveFeatureCollectionLinks } from './components';\nimport { IHeadingData, IInteractiveFeatureItemProps } from './interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature Item view props.\n */\nexport interface IInteractiveFeatureItemViewProps extends IInteractiveFeatureItemProps<{}> {\n title: React.ReactNode;\n paragraph: React.ReactNode;\n image: React.ReactNode;\n links: React.ReactNode;\n featureItem: IModuleProps;\n isMosaic: boolean;\n indexItem?: number;\n itemCounter?: number;\n\n interactiveFeatureCollectionCarouselContainer: INodeProps;\n interactiveFeatureCollectionCarouselImage: INodeProps;\n interactiveFeatureCollectionCarouselContent: INodeProps;\n\n interactiveFeatureCollectionMosaicContainer: INodeProps;\n interactiveFeatureCollectionMosaicImage: INodeProps;\n interactiveFeatureCollectionMosaicDetails: INodeProps;\n}\n\n/**\n * Interactive Feature Item Extented props.\n */\nexport interface IInteractiveFeatureItemExtentedProps extends IInteractiveFeatureItemProps<{}> {\n isMosaic?: boolean;\n indexItem?: number;\n itemCounter?: number;\n}\n\n/**\n *\n * InteractiveFeatureItem component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureItem extends React.PureComponent {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: IInteractiveFeatureItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { indexItem, itemCounter, isMosaic } = this.props;\n const { heading, paragraph, image, links } = this.props.config;\n const featureItemLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n\n const viewProps = {\n ...this.props,\n indexItem,\n itemCounter,\n isMosaic: isMosaic ? isMosaic : false,\n title: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n image: this._renderImage(image),\n links: featureItemLinks,\n featureItem: {\n moduleProps: this.props,\n className: ''\n },\n interactiveFeatureCollectionCarouselContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__container'\n },\n interactiveFeatureCollectionCarouselImage: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__image'\n },\n interactiveFeatureCollectionCarouselContent: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__heading'\n },\n interactiveFeatureCollectionMosaicContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mosaic',\n 'aria-label': heading?.text,\n tabindex: '0',\n role: 'group'\n },\n interactiveFeatureCollectionMosaicImage: {\n className: 'ms-interactive-feature-collection-mosaic__image'\n },\n interactiveFeatureCollectionMosaicDetails: {\n className: 'ms-interactive-feature-collection-mosaic__details'\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // Even if image.src is null, we render the Image component to render the fallback SVG\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=459&m=6', w: 328, h: 459 },\n sm: { q: 'w=348&h=487&m=6', w: 348, h: 487 },\n md: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n lg: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n xl: { q: 'w=650&h=366&m=6', w: 650, h: 366 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n return (\n \n );\n }\n}\n\nexport default InteractiveFeatureItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureItemViewProps } from './interactive-feature-item';\n\n/**\n * Enumerator used to make some calculations to set the proper classnames\n * using modular calculations to see if they are in a right or left column or on first or last row.\n */\nenum MagicNumber {\n modularDivisor = 4,\n caseNumberZero = 0,\n caseNumberOne = 1,\n caseNumberTwo = 2\n}\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @param indexItem - Feature Item view props.\n * @param itemCounter - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewProps, indexItem?: number, itemCounter?: number): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails\n } = thisProps;\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\n const modularAux = indexAux % MagicNumber.modularDivisor;\n const firstRow = indexAux <= MagicNumber.caseNumberTwo ? 'firstRow' : '';\n const lastRow =\n itemCounterAux && (indexAux === itemCounterAux || indexAux === itemCounterAux - MagicNumber.caseNumberOne) ? 'lastRow' : '';\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\n\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */ const renderCarousel = (thisProps: IInteractiveFeatureItemViewProps): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent\n } = thisProps;\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param props - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nexport const FeatureItemViewComponent: React.FC = props => {\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\n if (isMosaic) {\n return <>{renderMosaic(props, indexItem, itemCounter)};\n }\n return {renderCarousel(props)};\n};\n\nexport default FeatureItemViewComponent;\n"],"names":["Logo","React","constructor","props","super","payLoad","getPayloadObject","telemetryContent","TelemetryConstant","this","attributes","getTelemetryAttributes","render","className","_renderLogo","config","link","linkUrl","destinationUrl","Object","assign","href","ariaLabel","target","openInNewTab","undefined","rel","_renderImage","Msdyn365","image","requestContext","gridSettings","imageSettings","viewports","xs","q","w","h","lg","lazyload","loadFailureBehavior","editProps","key","moduleType","typeName","imagePropertyName","shouldSkipToMainImage","_renderReactFragment","items","length","map","slot","index","_props$config$discoun","_props$config$discoun2","scroll","setScroll","window","addEventListener","scrollY","HeaderTag","HeaderContainer","HeaderTopBarContainer","MobileMenuContainer","MobileMenuBodyContainer","MobileMenuLinksContainer","Divider","context","request","user","isAuthenticated","signInUrl","registerNowButton","resources","hello","login","miniCartIconHide","telemetryPageName","cartIcon","isMobile","setIsMobile","_updateViewport","viewport","_getViewport","_props$context","device","Type","MsDyn365","isBrowser","innerWidth","_props$context2","sm","md","getTelemetryObject","friendlyName","telemetry","mobileLogo","mobileLogoLink","mobileLogoImage","Module","Node","navIcon","logo","search","preferredStore","currentDistributor","_props$config$signout","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","extendedUrl","signOutUrl","signoutExtendedUrl","trim","id","error","_renderDesktopAccountBlock","title","discountTextHeading","discountAndOffersText","linkText","siteOptions","menuBar","MobileMenuHeader","OrderConfirmationOrderInfomation","_ref","orderInformationProps","receiptEmail","createdDate","channelReferenceId","OrderConfirmationSalesLine","_ref2","_data$product","_data$product2","_data$product3","salesLineProps","salesLine","buyAgainButton","data","enabledIncExPrices","incExPricePercentage","app","unitPrice","Number","NetAmount","Quantity","product","ItemId","Name","incExcPriceFormat","DefaultUnitOfMeasure","OrderConfirmationSalesLineForMobile","_ref3","_data$product4","_data$product5","_data$product6","_data$product7","Price","OrderConfirmationGroupDelivery","_ref4","deliveryProps","heading","count","processing","address","trackingInfo","pickupDateTimeslot","OrderConfirmationGroup","_ref5","groupProps","delivery","salesLinesProps","salesLines","LineId","OrderConfirmationGroups","_ref6","groupsProps","groups","group","OrderConfirmationOrderSummary","_ref7","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","discountAmount","deliveryMode","freightAndGSTMessage","freightAndGSTMessageFromResources","subTotalJSXValue","subTotalAmount","value","currencyFormat","itemProp","tabIndex","OrderConfirmationPayment","_ref8","paymentMethodsProps","methods","OrderConfirmationHelp","_ref9","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","_ref10","_data$orderHydration","_data$orderHydration$","_groups$groups","_data$orderHydration$2","_context$request$chan","_data$orderHydration2","_data$orderHydration3","_bannerLink$linkUrl","moduleProps","backToShoppingLink","alert","loading","orderInfomation","orderSummary","payment","help","bannerImage","bannerLink","actionContext","orderHydration","result","salesOrder","DeliveryMode","phnRcdId","setPhnRcdId","phnRcdNumber","setPhnRcdNumber","setTimeout","localStorage","getItem","_data$customerInforma","_primaryAddresses$","primaryAddresses","customerInformation","Addresses","filter","e","PhoneRecordId","Phone","DiscountAmount","addressProps","find","addr","_addr$delivery","imageProps","contentBlockImage","layout","msdyn365__moduleLayout","formattedDate","Date","CreatedDateTime","toLocaleDateString","dateLocale","dateFormat","currency","channel","Currency","formattedDateByLocale","dateFormatByLocale","shippingAddressyHeading","phoneNumberLabel","orderRequestDetailsHeading","orderRequestIDLabel","ChannelReferenceId","orderRequestEmailLabel","ReceiptEmail","orderRequestDateLabel","replace","freightAndGSTMessageResources","CheckoutErrors","async","setCheckoutErrors","errorCode","isExpressCheckoutApplied","ctx","apiError","clientCheckoutError","consoleCheckoutErrors","checkoutState","getCheckoutState","catch","exception","checkoutError","checkoutErrorsList","errorLocation","ErrorLocation","Console","consoleCheckoutError","errorMessageResource","push","Error","errorMessage","getCheckoutErrorMessage","console","log","CheckoutPaymentInstrument","Checkout","updateCheckoutError","newCheckoutError","updateShouldFocusOnCheckoutError","newShouldFocusOnCheckoutError","genericError","genericErrorMessage","focusOnCheckoutError","checkoutErrorRef","current","scrollIntoView","updateCheckoutErrorFocus","newCheckoutErrorFocus","CheckoutModule","None","setCheckoutErrorFocus","checkoutModuleId","checkoutModule","keys","includes","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","ErrorComponent","message","role","WaitingComponent","Waiting","onAddAccountPayment","onAddPayment","event","preventDefault","onChangeAmountHandler","customizedAmt","paymentAmount","amountVariable","locale","onChangePaymentAmount","customState","customizedAmount","returnModifiedState","getLocaleBasedCustomizedPrice","keyCode","getAccountPaymentFormEditMode","options","amount","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","onSubmit","tag","addPaymentButton","Button","onClick","disabled","isNaN","inputAmount","type","onInput","currentTarget","onKeyDown","which","min","max","customerName","customerAccountNumber","AccountNumber","customerSince","accountCredit","accountDetails","Alert","assertive","fade","includeAlertClass","isOpen","appliedLine","bottomBorder","getAccountPaymentFormSummaryMode","inputAmountSummaryLabel","label","paymentAmountInput","defaultLocale","baseClassName","getAvailableCredit","creditBalances","InvoiceAccountCreditLimit","CreditLimit","Balance","PendingBalance","InvoiceAccountBalance","InvoiceAccountPendingBalance","addPayment","checkout","setState","handleSaveAndContinue","_clearError","updateCustomerAccountAmount","newAmount","state","information","toggleCreditSection","isCreditSectionExpanded","init","moduleState","onCancel","handleCancelOrSubmit","onEdit","customerAccountAmount","onReady","updateMaxAmount","Math","toString","onUpdating","checkoutCart","cart","TotalAmount","_setErrorMessage","invalidAmountForOBOMessage","isCheckoutCustomerAccountPaymentRequired","customerAccountCreditErrorMessage","onSkip","removePayment","NaN","setHasError","get","maxPaymentAmount","Intl","NumberFormat","format","customerInfo","b2bChannel","isChannelTypeB2B","platform","AllowOnAccountPayment","enableCustomerAccountPayment","loyaltyAmount","_this$props$data$cust","amountDue","getLoyaltyAmount","_this$props$data$cred","MandatoryCreditLimit","invalidAmountExceedAmountDueMessage","invalidAmountNegativeMessage","cultureFormatter","formatCurrency","currencyCode","status","_this$props$data$chec","when","isDataReady","reaction","shouldEnableCheckoutErrorDisplayMessaging","_this$props$data$chec2","_this$props$data$chec3","checkoutErrorFocus","shouldComponentUpdate","nextProps","nextState","_this$props$data$cust2","_this$props$context$r","isCustomerAccountPaymentEnabled","hasInvoiceLine","customerSinceDate","hasError","_objectSpread","checkoutCustomerAccount","classnames","errorMessageTitle","editView","formattedExcessCredit","features","skipCheckoutOnChangeLogic","summaryView","renderView","__decorate","computed","action","withModuleState","observer","SummaryForm","EditForm","ref","isReady","CheckoutExpressPaymentContainer","moduleClassName","_getItems","slots","primary","_handleCheckoutExpressContainerHeadingChange","checkoutExpressPaymentContainerHeading","text","shouldHideExpressPaymentContainer","shippingAddressFromExpressCheckout","componentDidMount","isExpressPaymentModulesReady","item","_this$props$data$chec4","extensionPropertyKey","paymentTenderType","isModuleReady","property","Key","Value","BooleanValue","_this$props$data$chec5","_checkout$result","_checkout$result2","checkoutExpressPaymentSectionLoadingMessage","isPaymentVerificationRedirection","isOBORequest","EnabledPaymentsForOBO","ExpressPayment","shouldHideExpressPaymentContainerClassName","classname","viewProps","checkoutPlainContainerProps","waiting","_renderMsdyn365Text","headerProps","ContainerItemsComponent","isLoadingClassName","PickupTimeslotAvailabilityState","CheckoutPickupError","CheckoutPickupGroupHeader","storeInfo","CheckoutPickupTimeslotInfo","content","CheckoutPickupAddress","Street","City","State","County","ZipCode","ThreeLetterISORegionName","CheckoutPickupCartLines","cartLines","ArrayExtensions","hasElements","prop","showQty","quantity","lineId","Image","DefaultImageSettings","xl","quality","getDate","date","DateTimeFormat","timeZone","getTimeslot","placeHolder","startDate","endDate","useHour12TimeFormat","hour","minute","hour12","formatter","getUTCDateWithoutTime","input","UTC","getUTCFullYear","getUTCMonth","getUTCDate","CheckoutPickupDateDropdown","defaultKey","updateDateSelection","notification","pickupStoreId","setDateHandler","selectedOption","getDateMap","has","mapDatesToOptions","dates","selectedDate","defaultOption","unshift","findIndex","getTime","dropdownOptions","defaultText","bind","Map","availableDates","forEach","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","_this","isLoading","initModuleState","canPickup","isPickupTimeSlotSet","onPending","updateCartLinePickupDateTimeslot","setError","isHeaderError","arguments","headerErrorMessage","clearError","initPickupGroup","_this$props","_featureState$result","pickupCartLines","getCartLinesforPickup","products","getProductsByCartLines","ChannelId","pickupGroups","locations","orgUnitLocations","featureState","deliveryOptions","retailMultiplePickUpOptionEnabled","feature","IsEnabled","line","x","FulfillmentStoreId","RecordId","ProductId","lineDeliverySpecification","DeliverySpecification","DeliveryModeId","DeliveryPreferenceTypeValue","PickUpStoreId","PickupTimeslotStartDateTime","PickupTimeslotEndDateTime","DeliveryAddress","ShippingAddress","lineDeliverySpecs","cartLine","location","OrgUnitNumber","storeName","getStoreName","newGroup","pickupModeName","getPickupModeDescription","generalPickupText","pickupAddress","availabilityState","dailyGroupingResults","searchCriteria","DeliveryModeCode","StoreId","SearchOptionValue","getEstimatedPickupTimeslotAvailabilitiesAsync","callerContext","queryResultSettings","getPickupTimeslotAvailabilityState","NotAvailable","groupErrorMessage","noAvailableDateError","AvailableCapacity","timeslotResults","StartDate","EndDate","bypassCache","filteredPickupGroups","Available","validateTimeslot","lineSpecs","concat","lineDeliverySpecifications","setIsCancellable","_unused","channelId","productInputs","ObjectExtensions","isNullOrUndefined","ProductInput","apiSettings","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","PickupDeliveryModeCode","channelDeliveryOptionConfig","_channelDeliveryOptio","pickupDeliveryMode","PickupDeliveryModeCodes","isNullOrWhiteSpace","resourceString","deliveryOption","_foundProductDelivery","_foundProductDelivery2","foundProductDeliveryOption","deliveryO","deliveryDesc","DeliveryOptions","option","Code","Description","dailyResult","_countItems","cartlines","reduce","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","altText","src","PrimaryImageUrl","fallBackSrc","getFallbackImageUrl","OmniChannelMedia","numberOfCartLines","itemText","itemTitle","groupHeader","lineImageProps","cartLineImages","dateString","timeslotString","timeslotInfoProps","selectedDateTimeslotNode","dropdownClassName","labelClassName","dropdownSelectClassName","dateDropdownNode","timeslotDropdownNode","viewProp","pickupGroupContainer","dateTimeslotContainer","pickupDateDropdown","pickupTimeslotDropdown","selectedDateTimeslot","isShowDropdown","isShowSelected","checkoutPickup","viewState","headerError","pickupDate","oldGroup","lineSpec","noAvailableTimeslotError","pickupTimeslot","observable","pickupGroupViewProps","paymentInstrumentModuleId","CheckoutPlainContainer","getItems","getActiveChildModuleStates","childIds","getModule","isDisabled","hasModuleState","isPaymentSectionContainer","childId","shouldEnableSinglePaymentAuthorizationCheckout","updateIsPaymentSectionContainerReady","newIsPaymentSectionContainerReady","isSkipped","onContainerReady","isCollapse","_checkoutResult$check","_cart$TotalAmount","shouldSubmitContainer","shouldCollapsePaymentSection","_this$props$data$chec6","shouldTriggerPaymentWithPlaceOrder","_this$props$data$chec7","_this$props$data$chec8","updateIsPaymentSectionContainerHasError","newIsPaymentSectionContainerHasError","_this$props$data$chec9","isCheckoutCallFailed","_this$props$data$chec10","updateIsCheckoutCallFailed","newIsCheckoutCallFailed","componentDidUpdate","hasExternalSubmitGroup","some","enableControl","width","hasInitialized","container","hidden","LoadingComponent","itemProps","initialized","skipped","ready","updating","isUpdating","pending","isPending","ItemComponent","Loading","CheckoutTermsAndConditions","isTermsAccepted","handleTextChange","description","getTermsAndConditions","showCheckbox","isAutoSave","isTermsAndConditionAccepted","checkboxAriaLabel","termsAndConditionAcceptance","checkBox","CheckboxComponent","isChecked","onChange","_data$checkout$result","updateTermsAndConditionsAcceptance","getErrorMessage","ErrorTitleComponent","ErrorMessageComponent","getCancelButton","cancelBtnLabel","cancelBtnAriaLabel","color","getSaveButton","saveBtnLabel","saveBtnAriaLabel","getEditButton","editBtnLabel","editBtnAriaLabel","newIsTermsAndConditionAccepted","checked","updateIsTermsAndConditionsChecked","newIsTermsAndConditionChecked","showControlButtons","defaultTermsAndConditionAcceptedValue","isError","isShowContent","errorMessageData","isShowSaveButton","isShowButtons","isShowEditButton","isShowCancelButton","checkoutTermsAndConditions","termsAndConditionsContent","saveButton","editButton","cancelButton","onSave","TermsAndCondition","ErrorMessage","attribute","name","InteractiveFeatureCollectionLinks","_mapEditableLinks","linkdata","editableLinks","contentAction","etext","editableLink","additionalProperties","onTelemetryClick","links","onTextChange","InteractiveFeatureItem","_telemetryContent","handleHeadingChange","handleParagraphChange","paragraph","handleLinkTextChange","linkIndex","_this$props$config$li","indexItem","itemCounter","isMosaic","featureItemLinks","_createHeading","_createParagraph","featureItem","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","interactiveFeatureCollectionMosaicContainer","tabindex","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","_heading$tag","StringExtensions","isNullOrWhitespace","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","moduleId","MagicNumber","FeatureItemViewComponent","renderMosaic","thisProps","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","renderCarousel"],"sourceRoot":""}