{"version":3,"file":"static/js/14.c27d919a021a4448780a.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/krannich-c-search-result-container/components/productCard.component.tsx?3701","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-custom-loader/krannich-custom-loader.tsx?cda3","webpack://Msdyn365.Commerce.Online/./src/modules/krannich-custom-loader/krannich-custom-loader.view.tsx?feb2","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/checkout-customer-account-payment.view.tsx?5a6b","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/checkout-delivery-options.view.tsx?d41b","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/components/price.component.tsx?7e44","webpack://Msdyn365.Commerce.Online/./src/themes/krannich/views/components/promocode.component.tsx?d4b5","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/utils/atp-utils.tsx?854b","webpack://Msdyn365.Commerce.Online/./src/utils/badges.tsx?5a27","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-shipping-address/checkout-shipping-address.view.tsx?3386","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/components/additional-content.tsx?d5f9","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/components/links.tsx?abbf","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/content-block.tsx?3084","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/content-block.view.tsx?1773","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/cart.view.tsx?ac8f","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/order-history.view.tsx?a21d","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/utilities/order-lookup-utility.tsx?c60b","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/components/order-lookup-additional-fields.tsx?9951","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/components/order-lookup-fields.tsx?297b","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/order-lookup.tsx?72d3","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/order-lookup.view.tsx?b8e5","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.tsx?899b","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.view.tsx?dcdf","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/checkout-customer-account-payment.view.tsx?0efc"],"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 { IProductsDimensionsAvailabilities } from '@msdyn365-commerce/commerce-entities';\r\nimport {\r\n getCatalogId,\r\n IComponent,\r\n IComponentProps,\r\n ICoreContext,\r\n IGridSettings,\r\n IImageData,\r\n IImageSettings,\r\n Image,\r\n msdyn365Commerce\r\n} from '@msdyn365-commerce/core';\r\nimport { AttributeValue, Customer, ProductPrice, ProductSearchResult, Cart, AsyncResult } from '@msdyn365-commerce/retail-proxy';\r\n// Todo: will remove getProductPageUrlSync after implentation of custom urls\r\nimport { generateImageUrl, /*getProductPageUrlSync,*/ validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport PriceComponent, { IPriceComponentResources } from '../../../themes/krannich/views/components/price.component';\r\nimport { IPlpRequestPriceButtonData } from '../krannich-c-search-result-container.props.autogenerated';\r\nimport { ATPMessage, TrafficLights } from '../../../utils/atp-utils';\r\nimport { _calculateWpPrice, filteredProductAttributeList, formatUrlPath, isRequestPrice, taxPercentage } from '../../../utils/helper';\r\nimport { PromotionBadges } from '../../../utils/badges';\r\n\r\nexport interface IProductComponentProps extends IComponentProps<{ product?: ProductSearchResult }> {\r\n className?: string;\r\n imageSettings?: IImageSettings;\r\n savingsText?: string;\r\n freePriceText?: string;\r\n originalPriceText?: string;\r\n currentPriceText?: string;\r\n ratingAriaLabel?: string;\r\n ratingCountAriaLabel?: string;\r\n allowBack?: boolean;\r\n telemetryContent?: ITelemetryContent;\r\n quickViewButton?: React.ReactNode;\r\n productComparisonButton?: React.ReactNode;\r\n inventoryLabel?: string;\r\n isPriceMinMaxEnabled?: boolean;\r\n priceResources?: IPriceComponentResources;\r\n dimensionAvailabilities?: IProductsDimensionsAvailabilities[];\r\n swatchItemAriaLabel?: string;\r\n requestPriceBtn?: IPlpRequestPriceButtonData | undefined;\r\n activePrices?: ProductPrice[];\r\n customerInformation?: Customer;\r\n resources?: any;\r\n atpData?: any;\r\n cart?: AsyncResult;\r\n}\r\n\r\nexport interface IProductComponent extends IComponent {}\r\n\r\nconst PriceComponentActions = {};\r\n\r\n/**\r\n * Renders product comparison button similar to the quick view button.\r\n * @param productComparisonButton - React element of the button.\r\n * @param product - Current product info.\r\n * @param catalogId - Current catalog.\r\n * @returns React element for the specific product.\r\n */\r\nfunction renderProductComparisonButton(\r\n productComparisonButton: React.ReactNode,\r\n product: ProductSearchResult,\r\n catalogId: number\r\n): JSX.Element | undefined {\r\n validateCatalogId(catalogId);\r\n return React.cloneElement(productComparisonButton as React.ReactElement, { product, catalogId });\r\n}\r\n\r\nconst ProductCard: React.FC = ({\r\n data,\r\n context,\r\n imageSettings,\r\n telemetryContent,\r\n quickViewButton,\r\n productComparisonButton,\r\n requestPriceBtn,\r\n activePrices,\r\n customerInformation,\r\n resources,\r\n atpData,\r\n cart\r\n}) => {\r\n const product = data.product;\r\n //To set Image Url\r\n const [imgURI, setImgURL] = React.useState();\r\n const [producerName, setProducerName] = React.useState('');\r\n const [isBundle, setIsBundle] = React.useState(false);\r\n //to generate Image url after getting img url from api call\r\n React.useEffect(() => {\r\n if (imgURI) {\r\n let imageUrl = generateImageUrl(imgURI, context.actionContext.requestContext.apiSettings);\r\n imageUrl = imageUrl?.replace('=/', '=') || '';\r\n setImgURL(imageUrl);\r\n }\r\n }, [imgURI]);\r\n\r\n const isBundleProduct = () => {\r\n product?.AttributeValues?.map(e => {\r\n if (e.Name === 'IsBundleProduct') {\r\n if (e.BooleanValue === true) {\r\n setIsBundle(true);\r\n }\r\n }\r\n });\r\n };\r\n React.useEffect(() => {\r\n if (product) {\r\n findProducerName();\r\n isBundleProduct();\r\n }\r\n }, [product]);\r\n const _renderQuickView = (quickview: React.ReactNode, item?: number, attributevalues?: AttributeValue[]): JSX.Element | null => {\r\n if (!quickview) {\r\n return null;\r\n }\r\n return React.cloneElement(quickview as React.ReactElement, {\r\n selectedProductId: item,\r\n attributevalues: attributevalues,\r\n cart: cart\r\n });\r\n };\r\n //To set the producer name\r\n React.useEffect(() => {\r\n if (producerName) {\r\n setImgURL(producerName);\r\n }\r\n }, [producerName]);\r\n\r\n /**\r\n * Updates the product url link to product details page.\r\n * @param productDetailsPageUrl - Product page url.\r\n * @param coreContext - Context of the module using the component.\r\n * @param queryString - Querystring to be added to the URL.\r\n * @returns The update product page url.\r\n */\r\n function updateProductUrl(productDetailsPageUrl: string, coreContext: ICoreContext, queryString: string): string {\r\n const sourceUrl = new URL(productDetailsPageUrl, coreContext.request.apiSettings.baseUrl);\r\n if (sourceUrl.search) {\r\n sourceUrl.search += `&${queryString}`;\r\n } else {\r\n sourceUrl.search += queryString;\r\n }\r\n\r\n const updatedUrl = new URL(sourceUrl.href);\r\n return updatedUrl.pathname + sourceUrl.search;\r\n }\r\n const productAttributes = filteredProductAttributeList(product?.AttributeValues, context.app.config.kcProductAttribute);\r\n const findProducerName = () => {\r\n productAttributes?.map(e => {\r\n if (e.identifier === 'Manufacturer') {\r\n const manufactuerValueforImage = e.ExtensionProperties?.find(eProperty => eProperty.Key === 'globalAttributeValue')?.Value;\r\n setProducerName(manufactuerValueforImage?.StringValue);\r\n }\r\n });\r\n };\r\n const _renderProducerName = (prod: ProductSearchResult): string => {\r\n if (!prod) {\r\n return '';\r\n }\r\n return productAttributes?.find(attr => attr.identifier === 'Manufacturer')?.TextValue || '';\r\n };\r\n const _renderProducerKeyName = (prod: ProductSearchResult): string => {\r\n if (!prod) {\r\n return '';\r\n }\r\n return productAttributes?.find(attr => attr.identifier === 'Manufacturer')?.Name || '';\r\n };\r\n const getManufacturerItemTypeName = (prod: ProductSearchResult): string => {\r\n if (!prod) {\r\n return '';\r\n }\r\n return prod?.ExtensionProperties?.find(extension => extension.Key === 'ManufItemTypeName')?.Value?.StringValue || '';\r\n };\r\n // Todo: will remove productUrl after implentation of custom urls\r\n // let productUrl = product\r\n // ? getProductPageUrlSync(\r\n // formatUrlPath(_renderProducerName(product), getManufacturerItemTypeName(product)) ?? '',\r\n // product.RecordId,\r\n // context.actionContext,\r\n // undefined\r\n // )\r\n // : '';\r\n\r\n const urlPath = formatUrlPath(_renderProducerName(product!), getManufacturerItemTypeName(product!));\r\n const pathName = context.actionContext.requestContext.url.requestUrl.pathname.split('/');\r\n const isAddingPathWithUrl = context.actionContext.requestContext.app.config.addPathWithUrl ?? false;\r\n let productUrl =\r\n product &&\r\n (isAddingPathWithUrl\r\n ? `${context.actionContext.requestContext.url.requestUrl.origin}/${pathName[1]}/${urlPath}/${product.RecordId}.p`\r\n : `${context.actionContext.requestContext.url.requestUrl.origin}/${urlPath}/${product.RecordId}.p`);\r\n if (productUrl) {\r\n productUrl = updateProductUrl(productUrl, context, 'back=true');\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access -- app context is generic\r\n\r\n if (!product) {\r\n return null;\r\n }\r\n\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', telemetryContent!, '', product.RecordId.toString());\r\n\r\n const attribute = getTelemetryAttributes(telemetryContent!, payLoad);\r\n //use this function to render or display category image\r\n const _renderCategoryImg = (imgURI: string) => {\r\n return (\r\n
\r\n producer-images\r\n
\r\n );\r\n };\r\n\r\n const _renderProductPlacementImage = (\r\n imageSettings?: IImageSettings,\r\n gridSettings?: IGridSettings,\r\n imageUrl?: string,\r\n altText?: string\r\n ): JSX.Element | null => {\r\n if (!imageUrl || !gridSettings || !imageSettings) {\r\n return null;\r\n }\r\n const img: IImageData = {\r\n src: imageUrl,\r\n altText: altText ? altText : ''\r\n };\r\n const imageProps = {\r\n gridSettings: gridSettings,\r\n imageSettings\r\n };\r\n return ;\r\n };\r\n\r\n const activePrice = activePrices?.find((val: any) => val?.ProductId === product?.RecordId);\r\n const trafficLightATP = atpData && atpData?.filter((item: any) => item?.ItemId === product?.ItemId);\r\n const atpMsgRes = trafficLightATP && trafficLightATP[0]?.JsonResponseObject;\r\n const atpMsgResParsed = atpMsgRes && JSON.parse(atpMsgRes);\r\n const extensionsProps = product?.ExtensionProperties;\r\n const customerTaxPercentage = taxPercentage(customerInformation!);\r\n let promotionBadge = '';\r\n if (extensionsProps?.find(e => e?.Key === 'PromotionBadge')) {\r\n promotionBadge = extensionsProps?.find(e => e?.Key === 'PromotionBadge')?.Value?.StringValue || '';\r\n }\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
{imgURI && _renderCategoryImg(imgURI)}
\r\n
\r\n
\r\n {_renderProductPlacementImage(imageSettings, context.request.gridSettings, product.PrimaryImageUrl, product.Name)}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n

{product.Name}

\r\n\r\n
\r\n {resources.itemNumberLabel}\r\n {product.ItemId}\r\n
\r\n\r\n
\r\n \r\n
\r\n {_renderProducerKeyName(product)}: {_renderProducerName(product)}\r\n
\r\n
\r\n
\r\n
\r\n {context.actionContext.requestContext.user.isAuthenticated && trafficLightATP && (\r\n
\r\n \r\n {isBundle ? (\r\n

{resources.atpDiscontinuedMessageLabel}

\r\n ) : (\r\n /*VSI CUSTOMIZATION | DATE FORMATE | START | */\r\n atpMsgResParsed && (\r\n \r\n )\r\n /*VSI CUSTOMIZATION | DATE FORMATE | END | */\r\n )}\r\n
\r\n )}\r\n \r\n \r\n {context.actionContext.requestContext.user.isAuthenticated ? (\r\n <>\r\n
\r\n
\r\n {isRequestPrice(activePrice!, customerInformation?.LineDiscountGroup!, isBundle) || isBundle ? (\r\n
\r\n {resources.requestPriceLabel}\r\n
\r\n \r\n {resources.tooltipText}\r\n
\r\n
\r\n ) : (\r\n <>\r\n \r\n \r\n )}\r\n
\r\n
\r\n {context.actionContext.requestContext.user.isAuthenticated &&\r\n _calculateWpPrice(product?.AttributeValues!, context, isBundle, activePrice!, customerInformation!)}\r\n
\r\n
\r\n\r\n {productComparisonButton &&\r\n renderProductComparisonButton(productComparisonButton, product, getCatalogId(context.request))}\r\n
\r\n {quickViewButton && _renderQuickView(quickViewButton, product.RecordId, product?.AttributeValues)}\r\n \r\n {resources.viewDetailsLabel}\r\n \r\n
\r\n \r\n ) : (\r\n
\r\n \r\n {requestPriceBtn?.linkText}\r\n \r\n \r\n {resources.viewDetailsLabel}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport const ProductComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride<\r\n IProductComponent\r\n>('Product', { component: ProductCard, ...PriceComponentActions });\r\n\r\nexport default ProductComponent;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { IKrannichCustomLoaderData } from './krannich-custom-loader.data';\r\nimport { IKrannichCustomLoaderProps } from './krannich-custom-loader.props.autogenerated';\r\n\r\nexport interface IKrannichCustomLoaderViewProps extends IKrannichCustomLoaderProps {}\r\n\r\n/**\r\n *\r\n * KrannichCustomLoader component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass KrannichCustomLoader extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default KrannichCustomLoader;\r\n","import React from 'react';\r\nimport { IKrannichCustomLoaderViewProps } from './krannich-custom-loader';\r\nimport { Waiting } from '@msdyn365-commerce-modules/utilities';\r\n\r\nconst CustomLoaderView: React.FC = () => {\r\n const [loading, setLoading] = React.useState(true);\r\n\r\n React.useEffect(() => {\r\n // Function to handle window load event\r\n const handleOnLoad = () => setLoading(false);\r\n\r\n // Check if document is already loaded\r\n if (document.readyState === 'complete') {\r\n setLoading(false);\r\n } else {\r\n // Add event listener for window load\r\n window.addEventListener('load', handleOnLoad);\r\n }\r\n\r\n // Cleanup function to remove event listener\r\n return () => {\r\n window.removeEventListener('load', handleOnLoad);\r\n };\r\n }, []);\r\n\r\n // Render loading indicator if loading, otherwise render content\r\n return (\r\n
\r\n {loading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default CustomLoaderView;\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 { ICoreContext, IGeneric, IAny } from '@msdyn365-commerce/core';\r\nimport { ICheckoutState } from '@msdyn365-commerce/global-state';\r\nimport { ICheckoutCustomerAccountPaymentViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/./checkout-customer-account-payment';\r\nimport { IAccountPaymentEditViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/./components/get-account-payment-form-edit-mode';\r\nimport { IAccountPaymentSummaryViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/./components/get-account-payment-form-summary-mode';\r\nimport { IModuleStateManager } from '@msdyn365-commerce-modules/checkout-utilities';\r\nimport { Customer, CustomerAttribute, CustomerBalances } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n ICheckoutCustomerAccountPaymentProps,\r\n ICheckoutCustomerAccountPaymentResources\r\n} from '../definition-extensions/checkout-customer-account-payment.ext.props.autogenerated';\r\nimport { currencyFormat } from '../../../utils/helper';\r\n\r\n//VSI Customization\r\n// extends IAccountPaymentEditViewForm\r\ninterface IAccountPaymentEditViewFormExtended extends IAccountPaymentEditViewForm {\r\n context: ICoreContext>;\r\n resources: ICheckoutCustomerAccountPaymentResources;\r\n customerInfo?: Customer;\r\n checkoutInfo?: ICheckoutState;\r\n customerBalanceInfo?: CustomerBalances;\r\n moduleState: IModuleStateManager;\r\n}\r\n\r\n//VSI Customization\r\nconst _getPaymentAmount = (amount: React.ReactNode): string => {\r\n const amountJSX = amount as JSX.Element;\r\n const amountPropsJSX = amountJSX.props;\r\n return amountPropsJSX?.max || '0';\r\n};\r\n\r\nconst _getAvailableCredit = (creditBalances: CustomerBalances | undefined) => {\r\n let availableCredit = 0;\r\n\r\n if (!creditBalances) {\r\n return 0;\r\n }\r\n\r\n if (creditBalances.InvoiceAccountCreditLimit === 0) {\r\n availableCredit = creditBalances.CreditLimit - creditBalances.Balance - creditBalances.PendingBalance;\r\n } else {\r\n availableCredit =\r\n creditBalances.InvoiceAccountCreditLimit - creditBalances.InvoiceAccountBalance - creditBalances.InvoiceAccountPendingBalance;\r\n }\r\n\r\n return availableCredit;\r\n};\r\n\r\nconst _addPayment = async (paymentAmount: number, checkoutState?: ICheckoutState): Promise => {\r\n if (!checkoutState) {\r\n return;\r\n }\r\n\r\n await checkoutState.updateCustomerAccountAmount({ newAmount: paymentAmount });\r\n};\r\nexport const SummaryForm: React.FC = ({\r\n formProps,\r\n label,\r\n paymentAmount,\r\n addPaymentButton,\r\n appliedLine,\r\n bottomBorder\r\n}) => (\r\n \r\n <>\r\n {label}\r\n {paymentAmount}\r\n {addPaymentButton}\r\n {appliedLine}\r\n {bottomBorder}\r\n \r\n \r\n);\r\n\r\nexport const EditForm: React.FC = ({\r\n formProps,\r\n inputLabel,\r\n inputAmount,\r\n addPaymentButton,\r\n customerName,\r\n customerAccountNumber,\r\n customerSince,\r\n accountCredit,\r\n alert,\r\n accountDetails,\r\n appliedLine,\r\n bottomBorder,\r\n resources,\r\n context,\r\n customerBalanceInfo,\r\n customerInfo,\r\n checkoutInfo,\r\n moduleState\r\n}) => {\r\n const customerAttributes: CustomerAttribute[] = customerInfo?.Attributes || [];\r\n\r\n const isPrePaidCustomer =\r\n customerAttributes.find(attr => attr.Name === context.app.config.prepaidCustomerAttribute || 'Prepaid Customer')?.AttributeValue\r\n ?.BooleanValue || false;\r\n\r\n const creditBalance = customerBalanceInfo ? _getAvailableCredit(customerBalanceInfo) : 0;\r\n\r\n const paymentAmount = _getPaymentAmount(inputAmount);\r\n const usSiteFlag = context?.actionContext?.requestContext?.apiSettings?.oun === context.app.config.ounNumberForUsSite;\r\n\r\n React.useEffect(() => {\r\n const _addPaymentHandler = async (amountValue: number) => {\r\n await _addPayment(amountValue, checkoutInfo);\r\n };\r\n\r\n if (isPrePaidCustomer) {\r\n _addPaymentHandler(Number(paymentAmount)).then(() => {\r\n moduleState.onReady();\r\n });\r\n } else {\r\n _addPaymentHandler(Number(paymentAmount)).then(() => {\r\n moduleState.onReady();\r\n });\r\n }\r\n }, [paymentAmount]);\r\n\r\n return (\r\n \r\n <>\r\n {usSiteFlag ? (\r\n <>\r\n ) : isPrePaidCustomer ? (\r\n

{resources.prepaidCustomerMessage}

\r\n ) : (\r\n <>\r\n {false && customerName}\r\n {false && customerAccountNumber}\r\n {false &&
{customerSince}
}\r\n {false && accountCredit}\r\n {false && accountDetails}\r\n {false && inputLabel}\r\n {false && alert}\r\n {false && inputAmount}\r\n {false && addPaymentButton}\r\n {false && appliedLine}\r\n {false && bottomBorder}\r\n {false && (\r\n
\r\n {resources.totalAvailableCreditLimit} \r\n {currencyFormat(creditBalance, context)}\r\n
\r\n )}\r\n
\r\n {resources.orderAmount}\r\n {currencyFormat(Number(paymentAmount), context)}\r\n
\r\n \r\n )}\r\n \r\n
\r\n );\r\n};\r\n\r\nconst CheckoutCustomerAccountView: React.FC> = props => {\r\n const {\r\n checkoutCustomerAccount,\r\n summaryView,\r\n editView,\r\n moduleState,\r\n data: {\r\n customerInformation: { result: customerInfo },\r\n creditBalances: { result: customerBalanceInfo },\r\n checkout: { result: checkoutInfo }\r\n },\r\n context,\r\n resources,\r\n checkoutErrorRef\r\n } = props;\r\n return (\r\n \r\n {alert}\r\n\r\n {false && moduleState.isReady && summaryView && }\r\n {/* {!moduleState.isReady && editView && } */}\r\n {/* VSI CUSTOMIZATION START */}\r\n \r\n\r\n {/* VSI CUSTOMIZATION END */}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutCustomerAccountView;\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\n\r\nimport {\r\n ICheckoutDeliveryOptionEdit,\r\n ICheckoutDeliveryOptionsList,\r\n ICheckoutDeliveryOptionsViewProps\r\n} from '@msdyn365-commerce-modules/checkout/src/modules/checkout-delivery-options/./checkout-delivery-options';\r\nimport { DeliveryOption } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\n\r\nexport interface ICheckoutDeliveryOptionWithSelected {\r\n selectedItem?: DeliveryOption;\r\n}\r\nconst DeliveryOptionList: React.FC = ({ DeliveryOptionsList, list }) => {\r\n if (!list || list.length === 0) {\r\n return null;\r\n }\r\n return (\r\n \r\n {list.map((deliveryOption: ICheckoutDeliveryOptionEdit) => {\r\n return (\r\n \r\n {deliveryOption.radioButton}\r\n {deliveryOption.description}\r\n {deliveryOption.code !== 'Collection' ? (\r\n To Be Calculated\r\n ) : (\r\n deliveryOption.price\r\n )}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst DeliveryOptionSelected: React.FC = ({ selectedItem }) => {\r\n return (\r\n \r\n {selectedItem?.Description}\r\n {selectedItem?.Code === 'Collection' ? (\r\n Free\r\n ) : (\r\n To Be Calculated\r\n )}\r\n \r\n );\r\n};\r\n\r\nconst CheckoutDeliveryOptionsView: React.FC = props => {\r\n const {\r\n CheckoutDeliveryOptions,\r\n checkoutErrorRef,\r\n viewState,\r\n deliveryOptions,\r\n deliveryOptionSelected,\r\n alert,\r\n waiting,\r\n saveButton,\r\n editButton,\r\n cancelButton,\r\n deliveryOptionsData,\r\n selectedItemId\r\n } = props;\r\n deliveryOptions?.DeliveryOptionsList;\r\n const selectedItem = deliveryOptionsData.find(deliveryOption => deliveryOption.Code === selectedItemId);\r\n return (\r\n // TODO: All wrapper div should be provided by viewProps. Once SDK provide the sln, update markup.\r\n \r\n {viewState.isLoading && waiting}\r\n {viewState.isError && alert}\r\n {viewState.isShowList && deliveryOptions && }\r\n {viewState.isShowSelected && deliveryOptionSelected && selectedItem && }\r\n {viewState.isShowSaveButton && saveButton}\r\n {viewState.isShowEditButton && editButton}\r\n {viewState.isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutDeliveryOptionsView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { PriceLine, ProductPrice, SalesAgreementPriceLine } from '@msdyn365-commerce/retail-proxy';\r\nimport { Button, Collapse, format, ICollapseProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { incExcPriceFormat } from '../../../../utils/helper';\r\n\r\nconst defaultPrice: number = 0;\r\nconst freePrice: number = 0;\r\n\r\n/**\r\n * Interface for price component resources.\r\n * @param {string} priceRangeSeparator - The price range separator.\r\n */\r\nexport interface IPriceComponentResources {\r\n priceRangeSeparator?: string;\r\n salesAgreementPricePrompt?: string;\r\n salesAgreementExpirationDatePrompt?: string;\r\n salesAgreementCommittedQuantityPrompt?: string;\r\n salesAgreementRemainingQuantityPrompt?: string;\r\n}\r\n\r\n/**\r\n * Interface for price component props.\r\n * @param {boolean} isPriceMinMaxEnabled - Whether the price range feature is enabled or not.\r\n * @param {IPriceComponentResources} priceResources - The price range resources.\r\n */\r\nexport interface IPriceComponentProps extends IComponentProps<{ price: ProductPrice }> {\r\n className?: string;\r\n savingsText?: string;\r\n freePriceText?: string;\r\n originalPriceText?: string;\r\n currentPriceText?: string;\r\n isPriceMinMaxEnabled?: boolean;\r\n isSalesAgreementPriceFeatureEnabled?: boolean;\r\n useLegacySalesAgreementHTMLFeature?: boolean;\r\n salesAgreementLineId?: number;\r\n priceResources?: IPriceComponentResources;\r\n salesAgreementDetailCollapseProps?: ICollapseProps;\r\n salesAgreementDetailOnClick?(event: React.MouseEvent | React.KeyboardEvent): void;\r\n isIncExPriceFormatEnabled?: boolean;\r\n wpPrice?: JSX.Element;\r\n currencyCode?: string;\r\n customerTaxPercentage?: number;\r\n}\r\n\r\n/**\r\n * The interface of price component.\r\n */\r\nexport interface IPriceComponent extends IComponent {}\r\n\r\nconst priceComponentActions = {};\r\n\r\n/**\r\n * Get the original price from price component props.\r\n * @param props - The IPriceComponentProps.\r\n * @returns The original price.\r\n */\r\nconst getOriginalPrice = (props: IPriceComponentProps): number => {\r\n return Math.max(\r\n props.data.price.BasePrice ?? defaultPrice,\r\n props.data.price.TradeAgreementPrice ?? defaultPrice,\r\n props.data.price.AdjustedPrice ?? defaultPrice\r\n );\r\n};\r\n\r\n/**\r\n * Get the formatted currency.\r\n * @param props - The props.\r\n * @param price - The price.\r\n * @param shouldUseFreePriceText - The shouldUseFreePriceText.\r\n * @returns The formatted currency.\r\n */\r\nconst formatCurrency = (\r\n props: IPriceComponentProps,\r\n price: number | undefined,\r\n shouldUseFreePriceText: boolean | undefined,\r\n currencyCode?: string | undefined\r\n): string | JSX.Element => {\r\n if (price === undefined) {\r\n return '';\r\n }\r\n\r\n if (shouldUseFreePriceText && price === freePrice && props.freePriceText) {\r\n return props.freePriceText;\r\n }\r\n const { enabledIncExPrices } = props.context.app.config;\r\n // modify the below return statement of price with currency format\r\n // return props.context.cultureFormatter.formatCurrency(price);\r\n return props.isIncExPriceFormatEnabled\r\n ? incExcPriceFormat(price, props.context, enabledIncExPrices, props.customerTaxPercentage || 0)\r\n : props.context.cultureFormatter.formatCurrency(price, currencyCode);\r\n};\r\n\r\n/**\r\n * ShowStrikethroughPricing.\r\n * @param props - The props.\r\n * @returns True if showStrikethroughPricing, false otherwise.\r\n */\r\nconst showStrikethroughPricing = (props: IPriceComponentProps): boolean => {\r\n const originalPrice = getOriginalPrice(props);\r\n if (\r\n props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice\r\n ) {\r\n return props.data.price.MinVariantPrice < originalPrice;\r\n }\r\n\r\n if (originalPrice && props.data.price?.CustomerContextualPrice) {\r\n return originalPrice > props.data.price?.CustomerContextualPrice;\r\n }\r\n\r\n return false;\r\n};\r\n\r\n/**\r\n * Render current price.\r\n * @param props - The props.\r\n * @returns The JSX.Element.\r\n */\r\nconst renderCurrentPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const maxVariantPrice: string | JSX.Element = formatCurrency(props, props.data.price.MaxVariantPrice, false, props.currencyCode);\r\n const minVariantPrice: string | JSX.Element = formatCurrency(props, props.data.price.MinVariantPrice, false, props.currencyCode);\r\n if (\r\n props.isPriceMinMaxEnabled &&\r\n props.data.price.MaxVariantPrice &&\r\n props.data.price.MinVariantPrice &&\r\n props.data.price.MaxVariantPrice > props.data.price.MinVariantPrice\r\n ) {\r\n return (\r\n \r\n \r\n {minVariantPrice}\r\n \r\n \r\n {props.priceResources?.priceRangeSeparator}\r\n \r\n \r\n {maxVariantPrice}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {formatCurrency(props, props.data.price?.CustomerContextualPrice, true, props.currencyCode)}\r\n {props?.wpPrice && props?.wpPrice}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render current price with original price.\r\n * @param props - The props.\r\n * @returns The JSX.Element.\r\n */\r\nconst renderCurrentPriceWithOriginalPrice = (props: IPriceComponentProps): JSX.Element => {\r\n const originalPrice: number = getOriginalPrice(props);\r\n const initialPrice: string | JSX.Element = formatCurrency(props, originalPrice, true);\r\n return (\r\n <>\r\n \r\n {` `}\r\n {props.originalPriceText}\r\n {` `}\r\n {initialPrice}\r\n {` `}\r\n {props.currentPriceText}\r\n {` `}\r\n {renderCurrentPrice(props)}\r\n \r\n {/* */}\r\n \r\n {props.savingsText && {props.savingsText}}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * The state of sales agreement details.\r\n * @deprecated This will be removed with SalesAgreementPrice class soon.\r\n */\r\nexport interface ISalesAgreementDetailState {\r\n isOpen: boolean;\r\n}\r\n\r\n/**\r\n * The SalesAgreementPrice class.\r\n * @deprecated This implementation is deprecated. It will be removed soon. Please use the implementation in the Price function component.\r\n */\r\n// eslint-disable-next-line react/require-optimization -- Not needed.\r\nclass SalesAgreementPrice extends React.Component {\r\n public constructor(props: IPriceComponentProps) {\r\n super(props);\r\n this._toggle = this._toggle.bind(this);\r\n this.state = {\r\n isOpen: true\r\n } as ISalesAgreementDetailState;\r\n }\r\n\r\n public render(): React.ReactElement {\r\n const priceLines: PriceLine[] = this.props.data.price.AttainablePriceLines ?? [];\r\n const firstPriceLine: SalesAgreementPriceLine = priceLines[0] as SalesAgreementPriceLine;\r\n if (this.props.salesAgreementDetailCollapseProps) {\r\n this.props.salesAgreementDetailCollapseProps.isOpen = this.state.isOpen;\r\n }\r\n return (\r\n \r\n

\r\n {formatCurrency(\r\n this.props,\r\n this.props.data.price.SalesAgreementPrice ?? this.props.data.price?.CustomerContextualPrice,\r\n true\r\n )}\r\n

\r\n \r\n {this.props.priceResources?.salesAgreementPricePrompt}\r\n

\r\n \r\n

\r\n \r\n {/* Available date */}\r\n {// eslint-disable-next-line prefer-template -- Copied from other class.\r\n ' · ' +\r\n format(\r\n this.props.priceResources?.salesAgreementExpirationDatePrompt ?? '',\r\n this.props.context.cultureFormatter.formatDate(firstPriceLine.EffectiveDate as Date),\r\n this.props.context.cultureFormatter.formatDate(firstPriceLine.ExpirationDate as Date)\r\n )}\r\n \r\n \r\n {/* Quantity commitment */}\r\n {// eslint-disable-next-line prefer-template -- Copied from other class.\r\n ' · ' +\r\n format(\r\n this.props.priceResources?.salesAgreementCommittedQuantityPrompt ?? '',\r\n firstPriceLine.CommittedQuantity\r\n )}\r\n \r\n \r\n {/* Remaining quantity to qualify */}\r\n {// eslint-disable-next-line prefer-template -- Copied from other class.\r\n ' · ' +\r\n format(\r\n this.props.priceResources?.salesAgreementRemainingQuantityPrompt ?? '',\r\n firstPriceLine.RemainingQuantity\r\n )}\r\n \r\n

\r\n
\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * Callback which toggles collapse mode.\r\n * @param event - The mouse or keyboard event.\r\n */\r\n private _toggle(event: React.MouseEvent | React.KeyboardEvent): void {\r\n event.preventDefault();\r\n // eslint-disable-next-line react/no-access-state-in-setstate -- Copied from other class.\r\n this.setState({ isOpen: !this.state.isOpen });\r\n }\r\n}\r\n\r\nconst renderSalesAgreementDetail = (props: IPriceComponentProps): JSX.Element => {\r\n // In most cases there should be only one sales agreement line.\r\n // If there are more than one, only the first one will be shown.\r\n const firstPriceLine: SalesAgreementPriceLine = (props.data.price.AttainablePriceLines ?? [])[0] as SalesAgreementPriceLine;\r\n return (\r\n

\r\n

\r\n {/* Available date */}\r\n {// eslint-disable-next-line prefer-template -- Copied from other class.\r\n ' · ' +\r\n format(\r\n props.priceResources?.salesAgreementExpirationDatePrompt ?? '',\r\n props.context.cultureFormatter.formatDate(firstPriceLine.EffectiveDate as Date),\r\n props.context.cultureFormatter.formatDate(firstPriceLine.ExpirationDate as Date)\r\n )}\r\n

\r\n

\r\n {/* Quantity commitment */}\r\n {// eslint-disable-next-line prefer-template -- Copied from other class.\r\n ' · ' + format(props.priceResources?.salesAgreementCommittedQuantityPrompt ?? '', firstPriceLine.CommittedQuantity)}\r\n

\r\n

\r\n {/* Remaining quantity to qualify */}\r\n {// eslint-disable-next-line prefer-template -- Copied from other class.\r\n ' · ' + format(props.priceResources?.salesAgreementRemainingQuantityPrompt ?? '', firstPriceLine.RemainingQuantity)}\r\n

\r\n

\r\n );\r\n};\r\n\r\n/**\r\n * Price.\r\n * @param props - The props.\r\n * @returns The JSX.Element.\r\n */\r\nconst Price: React.FC = (props: IPriceComponentProps): JSX.Element | null => {\r\n // CustomerContextualPrice could be zero);\r\n if (props.data.price?.CustomerContextualPrice === undefined) {\r\n return null;\r\n }\r\n\r\n // Determine if contract price is avaiable/applied by:\r\n // isFeatureEnabled and SA price != 0, for PDP.\r\n // SA line id != 0, for cart line.\r\n if (props.isSalesAgreementPriceFeatureEnabled && props.data.price.SalesAgreementPrice !== 0) {\r\n if (props.useLegacySalesAgreementHTMLFeature) {\r\n const salesAgreementPrice = new SalesAgreementPrice(props);\r\n return {salesAgreementPrice.render()};\r\n } else {\r\n const [isExpanded, setIsExpanded] = React.useState(false);\r\n const toggle = () => {\r\n setIsExpanded(!isExpanded);\r\n };\r\n return (\r\n \r\n \r\n

\r\n {formatCurrency(props, props.data.price.SalesAgreementPrice ?? props.data.price.CustomerContextualPrice, true)}\r\n

\r\n \r\n {props.priceResources?.salesAgreementPricePrompt}\r\n \r\n {isExpanded && renderSalesAgreementDetail(props)}\r\n
\r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n \r\n {showStrikethroughPricing(props) ? renderCurrentPriceWithOriginalPrice(props) : renderCurrentPrice(props)}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * The PriceComponent.\r\n */\r\nexport const PriceComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\r\n 'Price',\r\n {\r\n component: Price,\r\n ...priceComponentActions\r\n }\r\n);\r\n\r\nexport default PriceComponent;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { PriceComponent } from '../../../../themes/krannich/views/components/price.component';\r\nimport { IComponent, IComponentProps, msdyn365Commerce, IActionContext } from '@msdyn365-commerce/core';\r\nimport { ICartState, getCheckoutState } from '@msdyn365-commerce/global-state';\r\nimport { Coupon, Customer } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\r\nimport {\r\n Button,\r\n format,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n IPayLoad,\r\n ITelemetryContent,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { taxPercentage } from '../../../../utils/helper';\r\n\r\nexport interface IPromoCodeProps extends IComponentProps<{}> {\r\n cart: ICartState | undefined;\r\n promoCodeHeadingText: string;\r\n appliedPromoCodeHeadingText: string;\r\n removePromoAriaLabelFormat: string;\r\n promoPlaceholderText: string;\r\n promoCodeApplyButtonText: string;\r\n collapseTimeOut: number;\r\n removePromoText: string;\r\n invalidPromoCodeErrorText: string;\r\n failedToAddPromoCodeErrorText: string;\r\n duplicatePromoCodeErrorText: string;\r\n failedToRemovePromoCodeErrorText: string;\r\n //these below upatePromoError & promoError props are defined to use this component in checkout and to resolve error message issue\r\n // we use these two props and these props are passed through checkout and set the error state for checkout only\r\n upatePromoError?: (err: string) => void;\r\n promoError?: string;\r\n customerInformation: Customer;\r\n\r\n /**\r\n * The telemetry content\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n promoCodeApplyCallback?(): void;\r\n}\r\n\r\nexport interface IPromoCodeComponent extends IComponent {}\r\n\r\nconst PromoCodeComponentActions = {};\r\n\r\ninterface IPromoCodeState {\r\n isCollapseOpen: boolean;\r\n promoCodeInputValue: string;\r\n error: string;\r\n canApply: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * The PromoCode component renders the promocode section.\r\n * @extends {React.PureComponent}\r\n */\r\nclass PromoCode extends React.Component {\r\n private readonly payLoad: IPayLoad;\r\n\r\n constructor(props: IPromoCodeProps, state: IPromoCodeState) {\r\n super(props);\r\n this.payLoad = getPayloadObject('click', this.props.telemetryContent!, TelemetryConstant.ApplyPromoCode);\r\n this.state = {\r\n isCollapseOpen: false,\r\n promoCodeInputValue: '',\r\n error: this.props.promoError || '',\r\n canApply: false\r\n };\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IPromoCodeProps, nextState: IPromoCodeState): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element {\r\n return (\r\n
\r\n
\r\n
{this.props.promoCodeHeadingText}
\r\n
\r\n INFORMATIOMN ICONs\r\n
\r\n
\r\n {this._renderForm(this.props.promoPlaceholderText, this.props.promoCodeApplyButtonText, this.props.cart)}\r\n

\r\n {this.state.error}\r\n

\r\n {this._renderAppliedPromoCode(this.props)}\r\n
\r\n );\r\n }\r\n\r\n private readonly _onInputChange = (e: React.ChangeEvent) => {\r\n const error = e.target.value === '' ? '' : this.state.error;\r\n this.setState({\r\n promoCodeInputValue: e.target.value,\r\n error,\r\n canApply: !!e.target.value\r\n });\r\n };\r\n\r\n private readonly _applyPromotion = (cartState: ICartState | undefined) => {\r\n const { upatePromoError } = this.props;\r\n if (!cartState || !cartState.cart) {\r\n return;\r\n }\r\n const appliedPromo = this.state.promoCodeInputValue;\r\n\r\n cartState\r\n .addPromoCode({ promoCode: appliedPromo })\r\n .then(async result => {\r\n if (result.status === 'SUCCESS') {\r\n // Show success text\r\n this.setState({ promoCodeInputValue: '', error: '', canApply: false });\r\n await cartState.refreshCart({});\r\n const checkoutState = await getCheckoutState(this.props.context.actionContext);\r\n await checkoutState.checkoutCart.addPromoCode({ promoCode: appliedPromo }).then(async result => {\r\n if (result.status === 'SUCCESS') {\r\n this.setState({ error: '' });\r\n }\r\n await checkoutState.checkoutCart.refreshCart({});\r\n });\r\n } else if (result.substatus === 'ALREADYADDED') {\r\n upatePromoError && upatePromoError(this.props.duplicatePromoCodeErrorText);\r\n this.setState({ error: this.props.duplicatePromoCodeErrorText });\r\n } else if (result.status === 'FAILED' && result.substatus !== 'INVALIDPROMOCODE') {\r\n const multipleValidPromoCodeError = result.errorDetails?.LocalizedMessage;\r\n upatePromoError && upatePromoError(multipleValidPromoCodeError!);\r\n this.setState({ error: multipleValidPromoCodeError! });\r\n } else {\r\n upatePromoError && upatePromoError(this.props.invalidPromoCodeErrorText);\r\n this.setState({ error: this.props.invalidPromoCodeErrorText });\r\n }\r\n })\r\n .catch(error => {\r\n upatePromoError && upatePromoError(this.props.failedToAddPromoCodeErrorText);\r\n this.setState({ error: this.props.failedToAddPromoCodeErrorText });\r\n });\r\n };\r\n\r\n private readonly _renderForm = (promoPlaceholderText: string, promoCodeApplyButtonText: string, cartState: ICartState | undefined) => {\r\n const _onSubmit = (event: React.FormEvent) => {\r\n event.preventDefault();\r\n this._applyPromotion(cartState);\r\n };\r\n const _applyPromotion = (event: React.MouseEvent) => {\r\n this._applyPromotion(cartState);\r\n };\r\n const attributes = getTelemetryAttributes(this.props.telemetryContent!, this.payLoad);\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {promoCodeApplyButtonText}\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n private readonly _removePromotion = (cartState: ICartState | undefined, event: React.MouseEvent, ctx: IActionContext) => {\r\n if (!cartState) {\r\n return;\r\n }\r\n const code = event.currentTarget.getAttribute('data-value') || '';\r\n cartState\r\n .removePromoCodes({\r\n promoCodes: [code]\r\n })\r\n .then(async result => {\r\n const checkoutState = await getCheckoutState(ctx);\r\n if (result.status === 'SUCCESS') {\r\n this.setState({ error: '' });\r\n await cartState.refreshCart({});\r\n await checkoutState.checkoutCart.removePromoCodes({ promoCodes: [code] }).then(async result => {\r\n if (result.status === 'SUCCESS') {\r\n this.setState({ error: '' });\r\n }\r\n await checkoutState.checkoutCart.refreshCart({});\r\n });\r\n }\r\n })\r\n .catch(() => {\r\n this.setState({ error: this.props.failedToRemovePromoCodeErrorText });\r\n });\r\n };\r\n\r\n private readonly _calculateDiscount = (code: string, cartState: ICartState | undefined) => {\r\n if (!cartState || !cartState.cart || !cartState.cart.CartLines || cartState.cart.CartLines.length === 0 || !code) {\r\n return;\r\n }\r\n let discountAmount = 0;\r\n for (const line of cartState.cart.CartLines) {\r\n if (line.DiscountLines) {\r\n for (const discountLine of line.DiscountLines) {\r\n if (discountLine.DiscountCode === code) {\r\n discountAmount += discountLine.DiscountCost!;\r\n }\r\n }\r\n }\r\n }\r\n return discountAmount * -1;\r\n };\r\n\r\n private readonly _renderAppliedPromoCode = (props: IPromoCodeProps) => {\r\n if (!props.cart || !props.cart.cart || !props.cart.cart.Coupons || props.cart.cart.Coupons.length === 0) {\r\n return;\r\n }\r\n\r\n const _removePromotion = (event: React.MouseEvent) => {\r\n this._removePromotion(props.cart, event, props.context.actionContext);\r\n };\r\n const customerTaxPercentage = taxPercentage(props.customerInformation);\r\n\r\n for (const coupon of props.cart.cart.Coupons) {\r\n const discountAmount = this._calculateDiscount(coupon.Code ?? '', props.cart);\r\n let totalCouponDiscountAmount = 0;\r\n if (discountAmount) {\r\n totalCouponDiscountAmount = totalCouponDiscountAmount + discountAmount;\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
{this.props.appliedPromoCodeHeadingText}
\r\n {props.cart.cart.Coupons.map((coupon: Coupon) => {\r\n const ariaLabel = props.removePromoAriaLabelFormat\r\n ? format(props.removePromoAriaLabelFormat, props.removePromoText, coupon.Code)\r\n : '';\r\n\r\n return (\r\n
\r\n
\r\n {coupon.Code}\r\n \r\n
\r\n \r\n {props.removePromoText}\r\n \r\n
\r\n );\r\n })}\r\n \r\n );\r\n };\r\n}\r\n\r\n// @ts-expect-error\r\nexport const PromoCodeComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride(\r\n 'PromoCode',\r\n { component: PromoCode, ...PromoCodeComponentActions }\r\n);\r\n\r\nexport default PromoCodeComponent;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as 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, getPayloadObject, getTelemetryObject, onTelemetryClick } 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\nimport debounce from 'lodash/debounce';\r\n\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, lookUpTime, setTimeToLogout },\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\r\n const [lastActivityTime, setLastActivityTime] = React.useState(Date.now());\r\n\r\n const resetIdleTime = () => {\r\n setLastActivityTime(Date.now());\r\n };\r\n\r\n function signout() {\r\n localStorage.setItem('hasSignedOut', 'true');\r\n setCookie('hasSignedOut', 'true', 1);\r\n const telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.friendlyName, props.telemetry);\r\n const payLoad = getPayloadObject('click', telemetryContent, 'Sign out');\r\n onTelemetryClick(telemetryContent, payLoad, 'Sign out');\r\n window.location.href = props.context.request.user.signOutUrl!;\r\n }\r\n\r\n const checkUserActivityTime = () => {\r\n const currentTime = Date.now();\r\n if (currentTime - lastActivityTime >= (setTimeToLogout ?? 5 * 60 * 1000)) {\r\n console.log('User is idle for more than 5 minutes');\r\n signout();\r\n }\r\n };\r\n\r\n const setCookie = (name: string, value: string, deltaDaysFromToday: number) => {\r\n const { cookies } = props.context.request;\r\n const expirationDate = new Date(Date.now());\r\n expirationDate.setTime(expirationDate.getTime() + deltaDaysFromToday * 24 * 60 * 60 * 1000);\r\n cookies.set(name, value, {\r\n expires: deltaDaysFromToday ? expirationDate : null,\r\n isEssential: true\r\n } as {});\r\n };\r\n\r\n const debouncedResetIdleTime = debounce(resetIdleTime, 200);\r\n const isLoggedIn = props.context.request.user.isAuthenticated;\r\n React.useEffect(() => {\r\n if (isLoggedIn) {\r\n const events = ['mousemove', 'mousedown', 'click', 'scroll', 'keypress'];\r\n\r\n events.forEach(event => {\r\n window.addEventListener(event, debouncedResetIdleTime);\r\n });\r\n\r\n const intervalId = setInterval(checkUserActivityTime, lookUpTime ?? 1000);\r\n\r\n return () => {\r\n events.forEach(event => {\r\n window.removeEventListener(event, debouncedResetIdleTime);\r\n });\r\n clearInterval(intervalId);\r\n };\r\n }\r\n return;\r\n }, [lastActivityTime]);\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\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","import React from 'react';\r\nimport { IKRV_ATPLeadTimePropertiesDate } from '../actions/customProxy/ATP-update/DataServiceEntities.g';\r\nimport { dateFormatByLocale } from './helper';\r\n\r\ninterface ITrafficLight {\r\n lightColor?: string;\r\n isVisible?: string;\r\n}\r\n\r\ninterface IKRV_ATPLeadTimePropertiesDateFormat extends IKRV_ATPLeadTimePropertiesDate {\r\n locale?: string;\r\n currency?: string;\r\n}\r\n\r\nexport const TrafficLights: React.FC = ({ lightColor, isVisible }) => (\r\n
\r\n
\r\n
\r\n);\r\n\r\nexport const ATPMessage: React.FC = props => {\r\n /* VSI CUSTOMIZATION | DATE FORMAT | START */\r\n let PurchaseLeadTimeDate = props.PurchaseLeadTimeDate;\r\n if (props.currency && props.locale && PurchaseLeadTimeDate) {\r\n PurchaseLeadTimeDate = dateFormatByLocale(props.locale, props.currency, PurchaseLeadTimeDate);\r\n }\r\n let PODate = props.PODate;\r\n if (props.currency && props.locale && PODate) {\r\n PODate = dateFormatByLocale(props.locale, props.currency, PODate);\r\n }\r\n /* VSI CUSTOMIZATION | DATE FORMAT | END */\r\n let atpMessage = '';\r\n if (props.IsVisible === 'No') {\r\n atpMessage = 'no further supplies';\r\n } else if (props.IsDiscontinuedProduct === 'Yes') {\r\n atpMessage = props?.Message!.toLowerCase();\r\n } else if (PurchaseLeadTimeDate !== '' && props.Quantity === 0 && props.POQuantity === 0) {\r\n atpMessage = `${props.Quantity} in stock, more from ${PurchaseLeadTimeDate}`;\r\n } else if (PurchaseLeadTimeDate === '' && props.Quantity === 0 && props.POQuantity > 0) {\r\n atpMessage = `${props.Quantity} in stock, more from ${PODate}`;\r\n } else if (PurchaseLeadTimeDate !== '' && props.Quantity > 0 && props.POQuantity === 0) {\r\n atpMessage = `${props.Quantity} in stock, more from ${PurchaseLeadTimeDate}`;\r\n } else if (PurchaseLeadTimeDate === '' && props.Quantity > 0 && props.POQuantity > 0) {\r\n atpMessage = `${props.Quantity} in stock, more from ${PODate}`;\r\n } else if (PurchaseLeadTimeDate === '' && props.Quantity >= 0 && props.POQuantity === 0) {\r\n atpMessage = props?.Message ? `${props.Quantity} in stock, ${props?.Message.toLowerCase()}` : `${props.Quantity} in stock`;\r\n }\r\n if (atpMessage !== '') {\r\n return (\r\n
\r\n

{atpMessage}

\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n

\r\n

\r\n Information\r\n \r\n Error while fetching the data!!!\r\n

\r\n

\r\n
\r\n );\r\n};\r\n","import React from 'react';\r\nexport const PromotionBadges: React.FC = ({ promotionalBadge, context }) => {\r\n const { enableBadges, badges } = context?.actionContext?.requestContext?.app.config;\r\n const badgeUI = badges?.find((badge: { label: string }) => badge?.label?.trim() === promotionalBadge?.trim());\r\n const enabledForGuest = badgeUI?.enableForGuest || false;\r\n if (\r\n enableBadges &&\r\n (enabledForGuest || context?.actionContext?.requestContext?.user?.isAuthenticated) &&\r\n promotionalBadge?.length !== 0\r\n ) {\r\n return (\r\n \r\n {promotionalBadge}\r\n
\r\n );\r\n }\r\n return null;\r\n};\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IAddressAddItem, IAddressAddUpdateProps } from '../../common/components/address-add';\nimport { IAddressSelectItem, IAddressSelectProps } from '../../common/components/address-select';\nimport { IAddressShowItem, IAddressShowProps } from '../../common/components/address-show';\nimport { ICheckoutShippingAddressViewProps } from './checkout-shipping-address';\nimport { IShipMultipleAddressesViewProps } from '../../common/components/address-ship-multiple';\nimport { IShipMultipleAddressesLineViewProps } from '../../common/components/address-ship-multiple-lines';\n\n/**\n * Address show component.\n * @param param0 - Root param.\n * @param param0.AddressDetail - Address detail.\n * @param param0.items - IAddressShowItem[].\n * @returns - Address Node.\n */\nconst AddressShow: React.FC = ({ AddressDetail, items }) => {\n return (\n \n {items.map((item: IAddressShowItem) => {\n return <>{item.description};\n })}\n \n );\n};\n\n/**\n * Address Select Component.\n * @param param0 - Root param.\n * @param param0.SelectAddress - Select address.\n * @param param0.shipMultipleAddressesButton - Ship to multiple addresses button.\n * @param param0.addButton - Add button.\n * @param param0.items - IAddressSelectItem[].\n * @param param0.isShowSaveButton - Boolean.\n * @param param0.saveButton - Save button.\n * @param param0.isShowCancelButton - Boolean.\n * @param param0.cancelButton - Cancel button.\n * @returns - SelectAddress Node.\n */\nconst AddressSelect: React.FC = ({\n SelectAddress,\n shipMultipleAddressesButton,\n addButton,\n items,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton\n}) => {\n return (\n \n \n {addButton}\n {shipMultipleAddressesButton}\n \n {items.map((item: IAddressSelectItem) => {\n const SelectItem = item.SelectItem;\n return (\n \n {item.input}\n \n \n );\n })}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\n/**\n * Address Ship Multiple Component.\n * @param param0 - Root param.\n * @param param0.ShipMultipleAddress - Ship multiple address form.\n * @param param0.shipSingleAddressButton - Ship single address button.\n * @param param0.clearSelectionButton - Clear selection button.\n * @param param0.addressDropdown - Address dropdown button.\n * @param param0.ProductsTable - Products table component.\n * @param param0.ProductsTableHeading - Products table heading component.\n * @param param0.ProductsTableRow - Products table row component.\n * @param param0.shipMultipleAddressLines - Ship multiple address lines.\n * @param param0.hasError - Boolean.\n * @param param0.error - Error message.\n * @returns Address ship multiple component node.\n */\nconst AddressShipMultiple: React.FC = ({\n ShipMultipleAddress,\n shipSingleAddressButton,\n clearSelectionButton,\n addressDropdown,\n ProductsTable,\n ProductsTableHeading,\n ProductsTableRow,\n shipMultipleAddressLines,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton,\n isMobile\n}) => {\n if (ShipMultipleAddress && isMobile !== undefined) {\n if (!isMobile) {\n return (\n \n {shipSingleAddressButton}\n \n {clearSelectionButton}\n\n {addressDropdown}\n \n {ProductsTable && shipMultipleAddressLines && shipMultipleAddressLines.length > 0 && (\n \n {ProductsTableHeading}\n \n {shipMultipleAddressLines &&\n shipMultipleAddressLines.map((line: IShipMultipleAddressesLineViewProps) => {\n return _renderShipMultipleAddressLine(line, isMobile, ProductsTableRow);\n })}\n \n \n )}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n } else {\n return (\n \n {shipSingleAddressButton}\n {addressDropdown}\n {ProductsTable && shipMultipleAddressLines && shipMultipleAddressLines.length > 0 && (\n \n {ProductsTableHeading}\n \n {shipMultipleAddressLines &&\n shipMultipleAddressLines.map((line: IShipMultipleAddressesLineViewProps) => {\n return _renderShipMultipleAddressLine(line, isMobile, ProductsTableRow);\n })}\n \n \n )}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n }\n } else {\n return null;\n }\n};\n\n/**\n * Address Add Update Component.\n * @param param0 - Root param.\n * @param param0.AddressForm - Address form.\n * @param param0.heading - Address heading.\n * @param param0.items - IAddressAddItem[].\n * @param param0.hasError - Boolean.\n * @param param0.error - Error message.\n * @param param0.isShowSaveButton - Boolean.\n * @param param0.saveButton - Save button.\n * @param param0.isShowCancelButton - Boolean.\n * @param param0.cancelButton - Cancel button.\n * @returns Address add update component node.\n */\nconst AddressAddUpdate: React.FC = ({\n AddressForm,\n heading,\n items,\n hasError,\n error,\n isShowSaveButton,\n saveButton,\n isShowCancelButton,\n cancelButton\n}) => {\n return (\n \n {heading}\n {items.map((item: IAddressAddItem) => {\n const { AddressItem, key, label, alert, input } = item;\n return (\n \n {label}\n {alert}\n {input}\n \n );\n })}\n {hasError && (\n \n {error.title}\n {error.message}\n \n )}\n {isShowSaveButton && saveButton}\n {isShowCancelButton && cancelButton}\n \n );\n};\n\nconst _renderShipMultipleAddressLine = (\n shipMultipleAddressesLine: IShipMultipleAddressesLineViewProps,\n isMobile: boolean,\n ProductsTableRow?: INodeProps\n): JSX.Element | null => {\n if (!shipMultipleAddressesLine) {\n return null;\n }\n\n const {\n selectLine,\n productImage,\n productNumber,\n productInfo,\n productPrice,\n productQuantity,\n productAddress\n } = shipMultipleAddressesLine;\n\n if (!isMobile) {\n return (\n \n {selectLine}\n \n
{productImage}
\n
{productNumber}
\n \n {productInfo}\n {productPrice}\n {productQuantity}\n {productAddress}\n
\n );\n } else {\n return (\n \n \n {selectLine}\n \n {productImage}\n {productInfo}\n {`QTY: ${productQuantity}`}\n \n {productPrice}\n \n \n {productAddress}\n \n \n );\n }\n};\n\n/**\n * Checkout Shipping Address View Component.\n * @param props - Props.\n * @returns - CheckoutShippingAddress Module.\n */\nconst CheckoutShippingAddressView: React.FC = props => {\n const {\n CheckoutShippingAddress,\n checkoutErrorRef,\n alert,\n viewState,\n showAddress,\n showAddressSelect,\n showAddOrUpdateAddress,\n showShipMultipleAddresses,\n cartLineImages\n } = props;\n\n return (\n \n {alert}\n {!viewState.isShowShipMultipleAddress && cartLineImages}\n {viewState.isShowAddress && }\n {viewState.isShowAddresList && }\n {viewState.isShowAddOrUpdateAddress && }\n {viewState.isShowShipMultipleAddress && (\n \n )}\n \n );\n};\n\nexport default CheckoutShippingAddressView;\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 { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAdditionalContentData, ILinksData } from '../content-block.props.autogenerated';\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Component props.\n */\nexport interface IContentBlockAdditionalContentProps {\n requestContext: Msdyn365.IRequestContext;\n additionalContent: IAdditionalContentData[] | undefined;\n handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content view props.\n */\nexport interface IContentBlockAdditionalContentViewProps {\n additionalContentNode: INodeProps;\n additionalContentItems?: IContentBlockAdditionalContentItemViewProps[];\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Item view props.\n */\nexport interface IContentBlockAdditionalContentItemViewProps {\n heading: React.ReactNode;\n text: React.ReactNode;\n links: React.ReactNode;\n additionalContentItemContainer: INodeProps;\n additionalContentItemLinks: INodeProps;\n}\n\n/**\n * Renders additional content heading.\n * @param additionalContentHeading - Additional content heading.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Heading Node.\n */\nconst renderHeading = (additionalContentHeading: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param additionalContentParagraphText - Additional content paragraph text.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Paragraph Node.\n */\nconst renderParagraph = (additionalContentParagraphText: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param ctaLink - Additional content link.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @param linkIndex - Additional content link index.\n * @returns Link Node.\n */\nconst renderLinks = (ctaLink: ILinksData, props: IContentBlockAdditionalContentProps, itemIndex: number, linkIndex: number) => {\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: ctaLink.ariaLabel,\n className: 'ms-content-block__details__additional-content-cta-links',\n linkText: ctaLink.linkText,\n linkUrl: ctaLink.linkUrl.destinationUrl,\n openInNewTab: ctaLink.openInNewTab,\n role: 'link'\n };\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalLinkTextChange(linkIndex, itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Create node for each additonal content item.\n * @param item - Content block additonal content item props.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns IContentBlockAdditionalContentItemViewProps.\n */\nconst assembleNode = (\n item: IAdditionalContentData,\n props: IContentBlockAdditionalContentProps,\n itemIndex: number\n): IContentBlockAdditionalContentItemViewProps => {\n const headingNode = item.heading && renderHeading(item.heading, props, itemIndex);\n const paragraphNode = item.subtext && renderParagraph(item.subtext, props, itemIndex);\n const linksNode = item.links?.map((ctaLink: ILinksData, index: number) => {\n return renderLinks(ctaLink, props, itemIndex, index);\n });\n\n return {\n heading: headingNode,\n text: paragraphNode,\n links: linksNode,\n additionalContentItemContainer: { className: 'ms-content-block__details__additional-content__container' },\n additionalContentItemLinks: { className: 'ms-content-block__details__additional-content-cta' }\n };\n};\n\n/**\n * ContentBlockAdditionalContent component.\n * @param props - Content Block Additional content component props.\n * @returns Content Block Additional content view props.\n */\nexport const contentBlockAdditionalContent = (\n props: IContentBlockAdditionalContentProps\n): IContentBlockAdditionalContentViewProps | undefined => {\n const { additionalContent } = props;\n if (!additionalContent) {\n return undefined;\n }\n\n const reactNodes: IContentBlockAdditionalContentItemViewProps[] = [];\n additionalContent.map((item, index: number) => {\n return reactNodes.push(assembleNode(item, props, index));\n });\n\n return {\n additionalContentNode: { className: 'ms-content-block__details__additional-content' },\n additionalContentItems: reactNodes\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../content-block.props.autogenerated';\n\nexport interface IContentCardLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n role?: string;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class ContentCardLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n }\n\n private readonly _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: btnClass,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: this.props.role,\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 ContentCardLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { contentBlockAdditionalContent, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport LinksComponent from './components/links';\nimport { actionableRegion as region, IContentBlockConfig, IContentBlockProps } from './content-block.props.autogenerated';\n\nexport interface IContentBlockViewProps extends IContentBlockProps<{}> {\n title?: React.ReactNode;\n text?: React.ReactNode;\n image?: React.ReactNode;\n links?: React.ReactNode;\n className?: string;\n contentBlockContainer: IModuleProps;\n imageContainer: INodeProps;\n detailsContainer: INodeProps;\n contentBlockAnchorTag?: INodeProps;\n imageLink?: string;\n imageAriaLabel?: string;\n additionalContent?: IContentBlockAdditionalContentViewProps;\n handleAdditionalText?(): void;\n handleAdditionalParagraph?(): void;\n handleAdditionalLinkTextChange?(): void;\n}\n\n/**\n * Site-builder configuration for the module.\n */\nexport interface IContentBlockFullConfig extends IContentBlockConfig {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\n msdyn365__moduleLayout?: string;\n}\n\n/**\n * ContentCard component.\n * @extends {React.PureComponent}\n */\nexport class ContentBlock 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 render(): JSX.Element | null {\n const { heading, paragraph, image, links, className, imageAriaLabel } = this.props.config;\n const contentBlockTitle = heading && (\n \n );\n\n const contentBlockLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n const contentBlockText = paragraph && (\n \n );\n\n let contentBlockImageSettings: Msdyn365.IImageSettings | undefined;\n\n if (image && image.imageSettings && !image.imageSettings.backgroundColor && this.props.config.backgroundColor) {\n contentBlockImageSettings = {\n ...image?.imageSettings,\n backgroundColor: this.props.config.backgroundColor\n };\n } else {\n contentBlockImageSettings = image?.imageSettings;\n }\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings ?? {},\n imageSettings: contentBlockImageSettings\n };\n\n const contentBlockImage = (\n \n );\n\n const contentBlockContainerStyle: React.CSSProperties | undefined = this.props.config.backgroundColor\n ? { backgroundColor: this.props.config.backgroundColor }\n : undefined;\n\n if (!contentBlockTitle && !contentBlockText && !contentBlockLinks) {\n this.props.context.telemetry.error('Content block content is empty, module wont render.');\n return null;\n }\n const contentBlockviewProps = {\n ...this.props,\n title: contentBlockTitle,\n text: contentBlockText,\n image: contentBlockImage,\n links: contentBlockLinks,\n moduleClass: this.props.config.className,\n contentBlockContainer: {\n moduleProps: this.props,\n className: classnames('ms-content-block', className),\n style: contentBlockContainerStyle\n },\n imageContainer: { className: 'ms-content-block__image' },\n detailsContainer: { className: 'ms-content-block__details' },\n contentBlockAnchorTag: {\n tag: 'a',\n className: 'ms-content-block__link',\n role: 'link'\n },\n imageLink: this._getImageLink(),\n imageAriaLabel,\n additionalContent: contentBlockAdditionalContent({\n requestContext: this.props.context.request,\n additionalContent: this.props.config.additionalContent,\n handleAdditionalTextChange: this.handleAdditionalTextChange,\n handleAdditionalParagraphChange: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n }),\n handleAdditionalText: this.handleAdditionalTextChange,\n handleAdditionalParagraph: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n };\n\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n /**\n * To handle paragraph change.\n * @param event - To handle text change event.\n * @name - HandleParagraphChange\n * @public\n * @returns - The Paragraph value.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\n\n /**\n * Handle link text change.\n * @param linkIndex - The link index.\n * @returns - Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n public handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].heading = event.target.value;\n }\n }\n\n public handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void {\n const additionalContentObject =\n (this.props.config.additionalContent &&\n ArrayExtensions.hasElements(this.props.config.additionalContent) &&\n this.props.config.additionalContent[Number(index)]) ||\n {};\n if (additionalContentObject.links) {\n additionalContentObject.links[Number(linkIndex)].linkText = event.target.value;\n }\n }\n\n public handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].subtext = event.target.value;\n }\n }\n\n private _getImageLink(): string | null {\n const { imageLink, links, actionableRegion } = this.props.config;\n if (actionableRegion === region.imageAndLinks) {\n if (imageLink?.destinationUrl) {\n return imageLink.destinationUrl;\n } else if (links && ArrayExtensions.hasElements(links) && links[0].linkUrl) {\n return links[0].linkUrl.destinationUrl;\n }\n return null;\n }\n return null;\n }\n}\n\nexport default ContentBlock;\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 { IContentBlockAdditionalContentItemViewProps, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport { IContentBlockViewProps } from './content-block';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\nconst ContentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n if (imageLink) {\n return (\n \n \n {image}\n \n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default ContentBlockView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICartlinesViewProps, ICartResources, ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart';\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/dist/types/modules/cart/components/cart-line-items-promotion';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Node,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst CartView: React.FC = (props: ICartViewProps) => (\n
\n {props.title}\n {props.promotionOptions && _renderPromotions(props.promotionOptions)}\n {props.cart?.hasInvoiceLine || props.multiplePickUpEnabled ? (\n _renderCartLinesGroup(props, props.resources)\n ) : (\n \n {_renderCartlines(\n props.cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n \n )}\n {props.orderSummaryHeading && (\n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {_renderErrorBlock(props.OrderSummaryErrors)}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n {props.backToShoppingButton}\n {props.createTemplateFromCartButton}\n \n )}\n {props.storeSelector}\n
\n);\n\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n \n );\n};\n\nconst _renderCartlines = (\n cartLines: ICartlinesViewProps[] | undefined,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n backToShoppingButton: React.ReactNode,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n cartDataResult: boolean,\n telemetryContent?: ITelemetryContent,\n mulitplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n const { emptyCartText } = resources;\n\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n if (cartLines) {\n return cartLines.map((cartLine, index) => {\n return (\n
\n {cartLine.cartline}\n {mulitplePickUp ? null : _renderBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {mulitplePickUp ? (\n \n {_renderGroupBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : cartLine.addToOrderTemplate ? (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : (\n <>\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n )}\n
\n );\n });\n }\n return cartDataResult ? (\n
\n

{emptyCartText}

\n {backToShoppingButton}\n
\n ) : (\n <>{waitingComponent}\n );\n};\n\n/**\n * On Toggle function.\n * @param cartLine -Cartline.\n * @param isBopisSelected -Boolean.\n * @returns Set state of button.\n */\nconst onToggleBopisHandler = (cartLine: ICartlinesViewProps, isBopisSelected: boolean) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(!isBopisSelected);\n};\n\n/**\n * On change store function.\n * @param cartLine -CartLine items prop.\n * @returns Set state of button.\n */\nconst onChangeStoreHandler = (cartLine: ICartlinesViewProps) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(true);\n};\n\nconst _renderBOPISBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for BOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const {\n shipInsteadDisplayText,\n shipToAddressDisplayText,\n pickItUpDisplayText,\n pickUpAtStoreWithLocationText,\n changeStoreDisplayText\n } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n
\n {isBopisSelected ? (\n {pickUpAtStoreWithLocationText}\n ) : (\n {shipToAddressDisplayText}\n )}\n
\n {isBopisSelected && (\n
\n {cartLine.pickUpInStore.orgUnitName}\n \n
\n )}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n
\n );\n};\n\nconst _renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\n if (!errorData || errorData.errors.length === 0) {\n return null;\n }\n return (\n \n {errorData.header}\n {errorData.errors}\n \n );\n};\n\nconst _renderOrderSummarylines = (\n orderSummaryLines: IOrderSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!orderSummaryLines) {\n return null;\n }\n return (\n \n {props.promoCode}\n {orderSummaryLines.subtotal}\n {orderSummaryLines.shipping}\n {orderSummaryLines.otherCharge}\n {orderSummaryLines.tax}\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\n {orderSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderInvoiceSummarylines = (\n invoiceSummaryLines: IInvoiceSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!invoiceSummaryLines) {\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {invoiceSummaryLines.invoices}\n {invoiceSummaryLines.giftCard}\n {invoiceSummaryLines.loyalty}\n {invoiceSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderCartLinesGroup = (props: ICartViewProps, resources: ICartResources): JSX.Element | undefined => {\n if (props.cartLinesGroup && props.cartLinesGroup.length > 0) {\n return (\n
\n {props.cartLinesGroup.map(cartlines => {\n return (\n
\n {_renderCartLinesGroupHeader(\n cartlines[0],\n props.storeSelector,\n resources,\n _countItems(cartlines),\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n {_renderCartlines(\n cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n
\n );\n })}\n
\n );\n }\n return props.cartDataResult ? (\n
\n
\n

{props.resources.emptyCartText}

\n {props.backToShoppingButton}\n
\n
\n ) : (\n <>{props.waitingComponent}\n );\n};\nconst _renderCartLinesGroupHeader = (\n cartLine: ICartlinesViewProps,\n storeSelector: React.ReactNode | undefined,\n resources: ICartResources,\n count: number,\n emailDeliveryModeCode?: string\n) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { pickUpText, shippingText, emailshippingText, payInvoicesDisplayText } = resources;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n if (cartLine.data && cartLine.data.cartline.IsInvoiceLine) {\n groupTitle = payInvoicesDisplayText;\n } else if (!StringExtensions.isNullOrEmpty(emailDeliveryModeCode)) {\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\n }\n\n return (\n <>\n
\n

\n

{groupTitle}

\n {_renderCartLinesGroupTitle(cartLine, resources, count)}\n
\n \n );\n};\n\nconst _renderGroupBOPISBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for GroupBOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { changeStoreDisplayText, shipInsteadDisplayText, pickItUpDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n <>\n {isBopisSelected ? (\n \n ) : null}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n \n );\n};\n\nconst _countItems = (cartLine: ICartlinesViewProps[]): number => {\n let countItem = 0;\n countItem = cartLine.reduce((count, item) => {\n return count + (item.data?.cartline.Quantity || 0);\n }, 0);\n return countItem;\n};\n\nconst _renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { itemLabel, itemsLabel } = resources;\n const suffix = count > 1 ? itemsLabel : itemLabel;\n return (\n <>\n \n {isBopisSelected ? (\n

\n {cartLine.pickUpInStore?.deliveryOption}\n {', '}\n {cartLine.pickUpInStore?.orgUnitName}\n

\n ) : null}\n

\n ({count}\n {` `}\n {suffix})\n

\n
\n \n );\n};\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHeader,\n IList,\n IOrderHistoryViewProps,\n IOrderInformation,\n ISalesOrder\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({\n deliveryProps,\n heading,\n count,\n processing,\n address,\n trackingInfo\n}) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({\n salesOrderProps,\n orderInfomation,\n groups,\n orderDetailsLink,\n expandProductsButton\n}) => (\n \n {orderInfomation && }\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ExtensibleEnumeration } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { IOrderLookupResources, IOrderLookupSearchAdditionalFieldsData } from '../order-lookup.props.autogenerated';\n\n/**\n * Render label.\n * @param className - Classname for label.\n * @param value - Text for label.\n * @returns -The JSX Element.\n */\nexport const labelGroup = (className: string, value: string): JSX.Element => {\n return
{value}
;\n};\n\n/**\n * Error label.\n * @param responseErrorMessage - Error message for label.\n * @param errorMessageClassName - Error message for class name.\n * @returns - Error ReactNode.\n */\nexport const renderErrorLabel = (responseErrorMessage: string, errorMessageClassName: string): React.ReactNode => {\n return responseErrorMessage &&
{responseErrorMessage}
;\n};\n\n/**\n * Registered user message.\n * @param resources - Resource values.\n * @param signInUrl - Signin url.\n * @param signInLinkClassName - Signin link classname.\n * @param registeredUserClassName - Registered user message classname.\n * @returns - ReactNode.\n */\nexport const renderRegisteredUserMessage = (\n resources: IOrderLookupResources,\n signInUrl: string,\n signInLinkClassName: string,\n registeredUserClassName: string\n): React.ReactNode => {\n const { orderLookupRegisteredUserText, orderLookupViewAccountText, orderLookupSignInLinkText } = resources;\n const message: string = orderLookupRegisteredUserText;\n const infoMessage: string = orderLookupViewAccountText;\n const signInText: string = orderLookupSignInLinkText;\n return (\n
\n {message}\n \n {signInText}\n \n {infoMessage}\n
\n );\n};\n\n/**\n * EmailValid submit.\n * @param email - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isEmailValid = (email: string): boolean => {\n return EmailRegex.defaultRegex.test(email);\n};\n\n/**\n * Additional field validation for on submit.\n * @param name - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isAdditionalFieldValid = (name: string): boolean => {\n const regEx = new RegExp('^(?!\\\\s)[A-Za-z0-9\\\\s]+$', 'u');\n return regEx.test(name);\n};\n\n/**\n * Validate order lookup field against extensible enum.\n * @param orderStatusLookUpParameter - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupField = (\n orderStatusLookUpParameter: string,\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidField: boolean = false;\n for (const item of orderLookupExtensibleEnum) {\n if (item.Name.toLocaleLowerCase() === orderStatusLookUpParameter.toLocaleLowerCase()) {\n isValidField = true;\n return isValidField;\n }\n }\n return isValidField;\n};\n\n/**\n * Validate order lookup additional fields with proxy values.\n * @param value - Value to be validated.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateAdditionalFieldWithProxy = (value: string, orderLookupExtensibleEnum: ExtensibleEnumeration[]): boolean => {\n return !orderLookupExtensibleEnum.some(item => item.Name.toLocaleLowerCase() === value.toLocaleLowerCase());\n};\n\n/**\n * Validate order lookup additional fields against extensible enum.\n * @param orderStatusLookUpAdditionalParameters - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupAdditionalField = (\n orderStatusLookUpAdditionalParameters: IOrderLookupSearchAdditionalFieldsData[],\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidAdditionalField: boolean = false;\n if (ArrayExtensions.hasElements(orderStatusLookUpAdditionalParameters)) {\n orderStatusLookUpAdditionalParameters.map(item => {\n const fieldKey: string = item.fieldKey ?? '';\n if (!isValidAdditionalField) {\n isValidAdditionalField = validateAdditionalFieldWithProxy(fieldKey, orderLookupExtensibleEnum);\n }\n return isValidAdditionalField;\n });\n } else {\n isValidAdditionalField = false;\n }\n return isValidAdditionalField;\n};\n\n/**\n * Render validation message if field does not matches with extensible enum.\n * @param orderLookupFieldValidationErrorMessage - Order lookup validation message.\n * @returns - ReactNode.\n */\nexport const renderFieldErrors = (orderLookupFieldValidationErrorMessage: string): React.ReactNode => {\n return
{orderLookupFieldValidationErrorMessage}
;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Additional input field props.\n */\nexport interface IOrderLookupAdditionalFieldInfoInput {\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n additionalFieldLabel: string;\n additionalFieldLabelClassName: string;\n isValidAdditionalFieldName: boolean;\n additionalFieldValidationMessage: string;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup additional field props.\n */\nexport interface IOrderLookupAdditionalFieldInfo {\n additionalFieldLabel: React.ReactNode;\n additionalFieldInput: React.ReactNode;\n additionalFieldError: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupAdditionalFieldInput component.\n */\n@observer\nexport default class RenderOrderLookupAdditionalFieldInput extends React.Component {\n public constructor(props: IOrderLookupAdditionalFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupAdditionalFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupAdditionalFields().additionalFieldLabel}\n {this._getOrderLookupAdditionalFields().additionalFieldError}\n {this._getOrderLookupAdditionalFields().additionalFieldInput}\n
\n );\n }\n\n /**\n * Function to create the order lookup additional fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupAdditionalFields(): IOrderLookupAdditionalFieldInfo {\n return {\n additionalFieldLabel: labelGroup(this.props.additionalFieldLabelClassName, this.props.additionalFieldLabel),\n additionalFieldInput: (\n
\n \n
\n ),\n additionalFieldError: (\n
\n {!this.props.isValidAdditionalFieldName ? this.props.additionalFieldValidationMessage : ''}\n
\n )\n };\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Input field props.\n */\nexport interface IOrderLookupFieldInfoInput {\n inputReference?: React.RefObject;\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n orderLookupLabel: string;\n orderLookupLabelClassName: string;\n fieldErrorClassName: string;\n isInputTypeError: boolean;\n isValidInputField: boolean;\n renderAlert(className: string): JSX.Element;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup field props.\n */\nexport interface IOrderLookupFieldInfo {\n label: React.ReactNode;\n input: React.ReactNode;\n error: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupInputs component.\n */\n@observer\nexport default class RenderOrderLookupFormFields extends React.Component {\n public constructor(props: IOrderLookupFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupFields().label}\n {this._getOrderLookupFields().error}\n {this._getOrderLookupFields().input}\n
\n );\n }\n\n /**\n * Function to create the order lookup fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupFields(): IOrderLookupFieldInfo {\n return {\n label: labelGroup(this.props.orderLookupLabelClassName, this.props.orderLookupLabel),\n input: (\n
\n \n
\n ),\n error: (\n
\n {this.props.isInputTypeError ? this.props.renderAlert(this.props.name) : ''}\n {this.props.isValidInputField ? this.props.renderAlert(this.props.name) : ''}\n
\n )\n };\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { ExtensibleEnumeration, StoreOperationsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport RenderOrderLookupAdditionalFieldInput from './components/order-lookup-additional-fields';\nimport RenderOrderLookupFormFields from './components/order-lookup-fields';\nimport {\n IOrderLookupProps,\n IOrderLookupSearchAdditionalFieldsData,\n orderStatusLookUpParametersType as orderStatusLookUpParametersTypes\n} from './order-lookup.props.autogenerated';\nimport {\n isAdditionalFieldValid,\n isEmailValid,\n renderErrorLabel,\n renderFieldErrors,\n renderRegisteredUserMessage,\n validateOrderLookupAdditionalField,\n validateOrderLookupField\n} from './utilities/order-lookup-utility';\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupViewProps extends IOrderLookupProps<{}> {\n additionalProperties: JSX.Element[] | undefined;\n orderLookup: IModuleProps;\n orderLookupContainer: INodeProps;\n orderLookupAdditionalFieldContainer: INodeProps;\n paragraph?: React.ReactNode;\n heading?: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n orderLookupForm?: INodeProps;\n renderOrderLookupInputField: JSX.Element | undefined;\n orderNumberInput?: JSX.Element | undefined;\n errorMessage?: React.ReactNode;\n fieldErrorMessage?: React.ReactNode;\n registeredUserMessage?: React.ReactNode;\n onChange?(event: React.ChangeEvent): void;\n submit?(): void;\n}\n\n/**\n * OrderLookupSearchValues -- supported values.\n */\nenum OrderLookupSearchValues {\n email = 'email',\n ordernumber = 'ordernumber'\n}\n\n/**\n * To render and handle state for additional order lookup fields.\n */\nexport interface IOrderLookupAdditionalFields {\n labelName: string;\n isValidFieldName: boolean;\n fieldValue: string;\n ariaLabel: string;\n additionalfieldErrorMessage: string;\n}\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupFormState {\n orderNumber: string;\n email: string;\n isOrdNumberError: boolean;\n isEmailError: boolean;\n isValidEmailError: boolean;\n isReqError: boolean;\n isDisabled: boolean;\n isValidLookupField: boolean;\n isValidAdditionalLookupField: boolean;\n responseErrorMessage: string;\n additionalProperties: IOrderLookupAdditionalFields[];\n}\n\n/**\n *\n * OrderLookup component.\n * @extends {React.PureComponent>}\n */\nclass OrderLookup extends React.PureComponent, IOrderLookupFormState> {\n public orderNumberInputRef: React.RefObject;\n\n public emailInputRef: React.RefObject;\n\n public isEmailValue: boolean = false;\n\n private requiredErrorMessage: string | undefined;\n\n private emailValidationErrorMessage: string | undefined;\n\n private isOrderNumberValue: boolean = false;\n\n private orderLookupExtensibleEnum: ExtensibleEnumeration[] = [];\n\n public constructor(props: IOrderLookupProps<{}>) {\n super(props);\n this.orderNumberInputRef = React.createRef();\n this.emailInputRef = React.createRef();\n const { config } = this.props;\n const { orderLookupSearchAdditionalFields } = config;\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n\n if (orderLookupSearchAdditionalFields) {\n for (const item of orderLookupSearchAdditionalFields) {\n additionalPropertyStates.push({\n labelName: item.labelName ?? '',\n isValidFieldName: true,\n fieldValue: '',\n ariaLabel: item.ariaLabel ?? '',\n additionalfieldErrorMessage: item.validationMessage ?? ''\n });\n }\n }\n\n this.state = {\n orderNumber: '',\n email: '',\n isOrdNumberError: false,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false,\n isDisabled: true,\n isValidLookupField: true,\n isValidAdditionalLookupField: false,\n responseErrorMessage: '',\n additionalProperties: additionalPropertyStates\n };\n }\n\n public render(): JSX.Element | null {\n const {\n config: { paragraph, heading },\n resources,\n context\n } = this.props;\n\n const {\n orderLookupDefaultHeadingText,\n orderLookupButtonLabel,\n orderLookupFormAriaLabel,\n orderLookupOrderNumberLabel,\n orderLookupOrderNumberAriaLabel,\n orderLookupSubmitAriaLabel,\n orderLookupFieldValidationErrorMessage\n } = resources;\n\n const { responseErrorMessage, isDisabled, orderNumber, isOrdNumberError } = this.state;\n\n const headingText = StringExtensions.isNullOrEmpty(heading?.text) ? orderLookupDefaultHeadingText : heading?.text;\n const headingTag = heading?.tag ?? 'h1';\n\n const moduleClassName = 'ms-order-lookup';\n const orderLookupContainerClassName = `${moduleClassName}__details`;\n const orderLookupHeadingClassName = `${orderLookupContainerClassName}__heading`;\n const orderLookupFormClassName = `${orderLookupContainerClassName}__form`;\n const orderLookupAdditionalFiledContainerClassName = `${orderLookupFormClassName}__additional-fields-container`;\n const orderLookupFormFieldsClassName = `${orderLookupFormClassName}__fields`;\n const orderNumberLabelClassName = `${orderLookupFormFieldsClassName}__order-number-label`;\n const orderNumberInputErrorClassName = `${orderLookupFormFieldsClassName}__order-number-input-error`;\n const submitButtonClassName = `${orderLookupFormClassName}__submit`;\n const labelErrorMessageClassName = `${moduleClassName}__error-message`;\n const registeredUserClassName = `${moduleClassName}__registered-user`;\n const signinLinkClassName = `${registeredUserClassName}__sign-in-link msc-btn`;\n\n const orderLookupHeading = (\n \n );\n\n const viewProps: IOrderLookupViewProps = {\n ...this.props,\n orderLookup: {\n moduleProps: this.props,\n className: moduleClassName\n },\n\n orderLookupContainer: {\n className: orderLookupContainerClassName\n },\n orderLookupAdditionalFieldContainer: {\n className: orderLookupAdditionalFiledContainerClassName\n },\n paragraph: paragraph && this._createParagraph(paragraph),\n heading: orderLookupHeading,\n\n renderOrderLookupInputField: this._renderOrderLookupInput(),\n orderLookupForm: {\n className: orderLookupFormClassName,\n tag: 'form',\n 'aria-label': orderLookupFormAriaLabel,\n name: 'orderLookupForm',\n role: 'form',\n autoComplete: 'off',\n onSubmit: this.handleSubmit\n },\n orderNumberInput: (\n \n ),\n\n submitButton: {\n className: submitButtonClassName,\n tag: Button,\n 'aria-label': orderLookupSubmitAriaLabel,\n type: 'submit',\n role: 'button',\n title: orderLookupButtonLabel,\n onClick: this.handleSubmit,\n disabled: isDisabled\n },\n\n submitButtonLabelText: orderLookupButtonLabel,\n errorMessage: renderErrorLabel(responseErrorMessage, labelErrorMessageClassName),\n fieldErrorMessage:\n (!this.state.isValidLookupField || this.state.isValidAdditionalLookupField) &&\n renderFieldErrors(orderLookupFieldValidationErrorMessage),\n registeredUserMessage: renderRegisteredUserMessage(\n resources,\n context.request.user.signInUrl ?? '',\n signinLinkClassName,\n registeredUserClassName\n ),\n onChange: this.onChange,\n submit: this.handleSubmit,\n additionalProperties: this._renderAdditionalFields()\n };\n return this.props.renderView(viewProps);\n }\n\n public async componentDidMount(): Promise {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { orderStatusLookUpParametersType, orderLookupSearchAdditionalFields } = config;\n let isOrderLookupAdditionalFieldValid: boolean = false;\n let isOrderLookupFieldValid: boolean = false;\n\n const getExtensibleEnumerations = await StoreOperationsDataActions.getExtensibleEnumerationsAsync({ callerContext: actionContext });\n this.orderLookupExtensibleEnum =\n getExtensibleEnumerations.find(item => item.TypeName === 'OrderLookupAdditionalCriteriaType')?.ExtensibleEnumerations ?? [];\n\n const orderLookupParameter: string = orderStatusLookUpParametersType ?? '';\n const orderLookupAdditionalParameter: IOrderLookupSearchAdditionalFieldsData[] = orderLookupSearchAdditionalFields ?? [];\n\n isOrderLookupFieldValid = validateOrderLookupField(orderLookupParameter, this.orderLookupExtensibleEnum);\n isOrderLookupAdditionalFieldValid = validateOrderLookupAdditionalField(\n orderLookupAdditionalParameter,\n this.orderLookupExtensibleEnum\n );\n this.setLookupFieldState(isOrderLookupFieldValid, isOrderLookupAdditionalFieldValid);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n const { config } = this.props;\n config.paragraph = event.target.value;\n };\n\n /**\n * Sets isValidLookupField after validating with extensible emun.\n * @param isValidField - Sets the property.\n * @param isValidAdditionalField - Sets the additional field property.\n */\n public setLookupFieldState(isValidField: boolean, isValidAdditionalField: boolean): void {\n this.setState({ isValidLookupField: isValidField, isValidAdditionalLookupField: isValidAdditionalField });\n }\n\n /**\n * HandleSubmit submit.\n */\n public readonly handleSubmit = (): void => {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { additionalProperties, orderNumber, email } = this.state;\n const orderLookupValue = email;\n const { orderStatusLookUpParametersType } = config;\n const orderLookupName = orderStatusLookUpParametersType !== undefined ? orderStatusLookUpParametersType : '';\n const isValid: boolean = this._validateOrderLookupForm();\n if (isValid) {\n const actionContextValue: IActionContext = actionContext;\n const orderDetailsPath = Msdyn365.getUrlSync('orderDetails', actionContextValue) ?? '';\n if (orderDetailsPath) {\n const baseUrl = new URL(window.location.origin);\n const redirectUrl = new URL(orderDetailsPath, baseUrl);\n const searchParameters = redirectUrl.searchParams;\n\n searchParameters.set('confirmationId', orderNumber);\n searchParameters.set('propertyName', orderLookupName);\n searchParameters.set('propertyValue', orderLookupValue);\n\n if (ArrayExtensions.hasElements(additionalProperties)) {\n additionalProperties.map((item, index) => {\n const fieldName = !StringExtensions.isNullOrWhitespace(item.ariaLabel)\n ? item.ariaLabel.replace(' ', '').toLocaleLowerCase()\n : '';\n const fieldValue = !StringExtensions.isNullOrWhitespace(item.fieldValue) ? item.fieldValue : '';\n searchParameters.set(`field${index + 1}Name`, fieldName);\n searchParameters.set(`field${index + 1}Value`, fieldValue);\n return item;\n });\n }\n\n window.location.assign(redirectUrl.toString());\n }\n }\n };\n\n /**\n * OnChange event.\n * @param event - Value of input field.\n */\n public readonly onChange = (event: React.ChangeEvent): void => {\n const { additionalProperties } = this.state;\n const { config } = this.props;\n const { orderStatusLookUpParametersType } = config;\n const name = event.target.name || '';\n const value = event.target.value || '';\n this.isOrderNumberValue = !StringExtensions.isNullOrWhitespace(this.orderNumberInputRef.current?.value);\n this.isEmailValue = !StringExtensions.isNullOrWhitespace(this.emailInputRef.current?.value);\n\n if (orderStatusLookUpParametersType?.toLocaleLowerCase() === 'none') {\n this.isEmailValue = true;\n }\n\n this.setState({ responseErrorMessage: '' });\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isAdditionalFieldError: boolean = true as boolean;\n let isKeyExistInAdditionalFieldArray: boolean = false as boolean;\n\n for (const item of additionalProperties) {\n const fieldName: string = item.ariaLabel.replace(' ', '');\n if (fieldName.toLocaleLowerCase() === name.toLocaleLowerCase()) {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: true,\n fieldValue: value,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n } else {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: item.isValidFieldName,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n if (fieldName.toLocaleLowerCase() === orderStatusLookUpParametersType?.toLocaleLowerCase()) {\n isKeyExistInAdditionalFieldArray = true;\n }\n }\n\n for (const items of additionalPropertyStates) {\n if (StringExtensions.isNullOrWhitespace(items.fieldValue)) {\n isAdditionalFieldError = false;\n }\n }\n\n this.setState({ additionalProperties: additionalPropertyStates });\n\n if (!isKeyExistInAdditionalFieldArray) {\n switch (name.toLocaleLowerCase()) {\n case OrderLookupSearchValues.ordernumber: {\n this.setState({\n orderNumber: value,\n isOrdNumberError: false,\n isReqError: false\n });\n break;\n }\n case OrderLookupSearchValues.email: {\n this.setState({\n email: value,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false\n });\n break;\n }\n default: {\n this.setState({ isReqError: false });\n }\n }\n }\n\n if (\n this.isOrderNumberValue &&\n this.isEmailValue &&\n isAdditionalFieldError &&\n this.state.isValidLookupField &&\n !this.state.isValidAdditionalLookupField\n ) {\n this.setState({ isDisabled: false });\n } else {\n this.setState({ isDisabled: true });\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n const { context } = this.props;\n const { request } = context;\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n /**\n * Render order lookup validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupEmailValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isEmailError, email, isValidEmailError, isReqError } = this.state;\n if (isEmailError) {\n this.requiredErrorMessage = orderLookupRequiredTextErrorMessage;\n }\n\n if (!StringExtensions.isNullOrEmpty(email) && isValidEmailError) {\n this.emailValidationErrorMessage = orderLookupEmailValidationErrorMessage;\n }\n\n const isRequireError = isReqError;\n const isEmailValidError = isValidEmailError;\n const isValidEmailInput = className.toLocaleLowerCase() === OrderLookupSearchValues.email;\n return (\n <>\n {isRequireError && (\n \n {this.requiredErrorMessage}\n \n )}\n {isEmailValidError && isValidEmailInput && (\n \n {this.emailValidationErrorMessage}\n \n )}\n \n );\n };\n\n /**\n * Render order number validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderOrderNumberAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupOrderNumberValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isOrdNumberError, isReqError } = this.state;\n return (\n <>\n {isReqError && (\n \n {orderLookupRequiredTextErrorMessage}\n \n )}\n {isOrdNumberError && (\n \n {orderLookupOrderNumberValidationErrorMessage}\n \n )}\n \n );\n };\n\n private _renderAdditionalFields(): JSX.Element[] | undefined {\n const { additionalProperties } = this.state;\n const additionalFieldsInput: JSX.Element[] = [];\n for (const item of additionalProperties) {\n const name: string = item.ariaLabel.replace(' ', '');\n additionalFieldsInput.push(\n \n );\n }\n return additionalFieldsInput;\n }\n\n /**\n * Render Input field for order lookup.\n * @returns - IOrderLookupFieldInfo.\n */\n private readonly _renderOrderLookupInput = (): JSX.Element | undefined => {\n const { email, isEmailError, isValidEmailError } = this.state;\n const {\n config: { orderStatusLookUpParametersType },\n resources: { orderLookupEmailLabel, orderLookupEmailAriaLabel }\n } = this.props;\n\n switch (orderStatusLookUpParametersType) {\n case orderStatusLookUpParametersTypes.none:\n return undefined;\n case orderStatusLookUpParametersTypes.email:\n default:\n return (\n \n );\n }\n };\n\n /**\n * _validation for additional fields.\n * @returns - Returns IOrderLookupAdditionalFields[].\n */\n private readonly _additionalFieldValidation = (): IOrderLookupAdditionalFields[] => {\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n for (const item of this.state.additionalProperties) {\n const isFieldValid: boolean = !StringExtensions.isNullOrWhitespace(item.fieldValue) && isAdditionalFieldValid(item.fieldValue);\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: isFieldValid,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n return additionalPropertyStates;\n };\n\n /**\n * _validateOrderLookupForm submit.\n * @returns - Returns boolean.\n */\n private readonly _validateOrderLookupForm = (): boolean => {\n const { config } = this.props;\n const { orderNumber, email } = this.state;\n const { orderStatusLookUpParametersType } = config;\n let additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isValid = false;\n let isDisable = false;\n\n if (ArrayExtensions.hasElements(this.state.additionalProperties)) {\n additionalPropertyStates = this._additionalFieldValidation();\n for (const item of additionalPropertyStates) {\n if (!item.isValidFieldName) {\n isDisable = true;\n }\n }\n\n if (isDisable) {\n this.setState({\n additionalProperties: additionalPropertyStates,\n isDisabled: true\n });\n }\n }\n\n if (StringExtensions.isNullOrWhitespace(orderNumber)) {\n this.setState({\n isOrdNumberError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderNumber.trim() !== orderNumber) {\n this.setState({\n isOrdNumberError: true,\n isReqError: false,\n isDisabled: true\n });\n } else if (\n orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email &&\n StringExtensions.isNullOrWhitespace(email)\n ) {\n this.setState({\n isEmailError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email && !isEmailValid(email)) {\n this.setState({\n isValidEmailError: true,\n isDisabled: true\n });\n } else if (isDisable || !this.state.isValidLookupField || this.state.isValidAdditionalLookupField) {\n this.setState({\n isDisabled: true\n });\n } else {\n this.setState({\n isDisabled: false\n });\n isValid = true;\n }\n return isValid;\n };\n}\n\nexport default OrderLookup;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderLookupViewProps } from './order-lookup';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns JSX Element.\n */\nexport const OrderLookupViewComponent: React.FC = props => {\n const {\n orderLookup,\n orderLookupContainer,\n orderLookupAdditionalFieldContainer,\n heading,\n paragraph,\n orderLookupForm,\n renderOrderLookupInputField,\n orderNumberInput,\n errorMessage,\n submitButton,\n additionalProperties,\n registeredUserMessage,\n fieldErrorMessage\n } = props;\n return (\n \n \n {heading}\n {paragraph}\n \n {orderNumberInput}\n {renderOrderLookupInputField}\n {ArrayExtensions.hasElements(additionalProperties) && (\n \n {additionalProperties.map((item: JSX.Element) => (\n {item}\n ))}\n \n )}\n {fieldErrorMessage}\n \n {props.submitButtonLabelText}\n \n {errorMessage}\n \n {registeredUserMessage}\n \n \n );\n};\n\nexport default OrderLookupViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (!slots || !ArrayExtensions.hasElements(slots.socialShareItems)) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven && !this.props.context.request.params.isEditor) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${\n this.props.config.orientation === orientation.vertical ? 'vertical' : ''\n }`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\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 '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/checkout-customer-account-payment';\nimport { IAccountPaymentEditViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-edit-mode';\nimport { IAccountPaymentSummaryViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-summary-mode';\n\nexport const SummaryForm: React.FC = ({\n formProps,\n label,\n addPaymentButton,\n appliedLine,\n bottomBorder,\n paymentAmountInput\n}) => (\n \n <>\n {label}\n {paymentAmountInput}\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"],"names":["ProductComponent","msdyn365Commerce","createComponentOverride","_objectSpread","component","_ref","_context$actionContex","_trafficLightATP$","_promotionBadge","_trafficLightATP$2","_context$request$chan","data","context","imageSettings","telemetryContent","quickViewButton","productComparisonButton","requestPriceBtn","activePrices","customerInformation","resources","atpData","cart","product","imgURI","setImgURL","React","producerName","setProducerName","isBundle","setIsBundle","_imageUrl","imageUrl","generateImageUrl","actionContext","requestContext","apiSettings","replace","isBundleProduct","_product$AttributeVal","findProducerName","AttributeValues","map","e","Name","BooleanValue","productAttributes","filteredProductAttributeList","app","config","kcProductAttribute","identifier","_e$ExtensionPropertie","manufactuerValueforImage","ExtensionProperties","find","eProperty","Key","Value","StringValue","_renderProducerName","prod","_productAttributes$fi","attr","TextValue","_renderProducerKeyName","_productAttributes$fi2","urlPath","formatUrlPath","_prod$ExtensionProper","extension","pathName","url","requestUrl","pathname","split","isAddingPathWithUrl","addPathWithUrl","productUrl","origin","RecordId","productDetailsPageUrl","coreContext","queryString","sourceUrl","URL","request","baseUrl","search","href","updateProductUrl","payLoad","getPayloadObject","toString","attribute","getTelemetryAttributes","activePrice","val","ProductId","trafficLightATP","filter","item","ItemId","atpMsgRes","JsonResponseObject","atpMsgResParsed","JSON","parse","extensionsProps","customerTaxPercentage","taxPercentage","promotionBadge","_extensionsProps$find","quickview","attributevalues","className","length","key","Object","assign","onClick","onTelemetryClick","PromotionBadges","promotionalBadge","src","alt","_renderCategoryImg","_renderProductPlacementImage","gridSettings","altText","img","imageProps","Image","loadFailureBehavior","PrimaryImageUrl","itemNumberLabel","user","isAuthenticated","TrafficLights","lightColor","TrafficLight","isVisible","IsVisible","atpDiscontinuedMessageLabel","ATPMessage","locale","dateFormat","currency","channel","Currency","isRequestPrice","LineDiscountGroup","requestPriceLabel","tabIndex","tooltipText","PriceComponent","id","String","typeName","price","freePriceText","priceFree","originalPriceText","currentPriceText","isIncExPriceFormatEnabled","_calculateWpPrice","catalogId","validateCatalogId","renderProductComparisonButton","getCatalogId","selectedProductId","viewDetailsLabel","title","linkUrl","destinationUrl","linkText","KrannichCustomLoader","render","this","props","renderView","CustomLoaderView","loading","setLoading","handleOnLoad","document","readyState","window","addEventListener","removeEventListener","Waiting","SummaryForm","formProps","label","paymentAmount","addPaymentButton","appliedLine","bottomBorder","Node","EditForm","_ref2","_customerAttributes$f","inputLabel","inputAmount","customerName","customerAccountNumber","customerSince","accountCredit","alert","accountDetails","customerBalanceInfo","customerInfo","checkoutInfo","moduleState","isPrePaidCustomer","Attributes","prepaidCustomerAttribute","AttributeValue","creditBalances","availableCredit","InvoiceAccountCreditLimit","CreditLimit","Balance","PendingBalance","InvoiceAccountBalance","InvoiceAccountPendingBalance","_getAvailableCredit","amount","amountPropsJSX","max","_getPaymentAmount","usSiteFlag","oun","ounNumberForUsSite","_addPaymentHandler","async","checkoutState","updateCustomerAccountAmount","newAmount","_addPayment","amountValue","Number","then","onReady","prepaidCustomerMessage","orderAmount","currencyFormat","checkoutCustomerAccount","summaryView","editView","result","checkout","checkoutErrorRef","Module","ref","DeliveryOptionList","DeliveryOptionsList","list","deliveryOption","DeliveryOption","code","radioButton","description","DeliveryOptionSelected","selectedItem","Description","Code","CheckoutDeliveryOptions","viewState","deliveryOptions","deliveryOptionSelected","waiting","saveButton","editButton","cancelButton","deliveryOptionsData","selectedItemId","isLoading","isError","isShowList","isShowSelected","isShowSaveButton","isShowEditButton","isShowCancelButton","getOriginalPrice","_props$data$price$Bas","_props$data$price$Tra","_props$data$price$Adj","Math","BasePrice","TradeAgreementPrice","AdjustedPrice","formatCurrency","shouldUseFreePriceText","currencyCode","undefined","enabledIncExPrices","incExcPriceFormat","cultureFormatter","renderCurrentPrice","_props$data$price3","maxVariantPrice","MaxVariantPrice","minVariantPrice","MinVariantPrice","_props$priceResources","isPriceMinMaxEnabled","itemProp","priceResources","priceRangeSeparator","CustomerContextualPrice","wpPrice","SalesAgreementPrice","constructor","super","_toggle","bind","state","isOpen","_this$props$data$pric","_this$props$data$pric2","_this$props$data$pric3","_this$props$priceReso","_this$props$priceReso2","_this$props$priceReso3","_this$props$priceReso4","_this$props$priceReso5","_this$props$priceReso6","_this$props$priceReso7","firstPriceLine","AttainablePriceLines","salesAgreementDetailCollapseProps","classnames","salesAgreementPricePrompt","Collapse","format","salesAgreementExpirationDatePrompt","formatDate","EffectiveDate","ExpirationDate","salesAgreementCommittedQuantityPrompt","CommittedQuantity","salesAgreementRemainingQuantityPrompt","RemainingQuantity","event","preventDefault","setState","_props$data$price4","isSalesAgreementPriceFeatureEnabled","useLegacySalesAgreementHTMLFeature","salesAgreementPrice","_props$data$price$Sal","_props$priceResources8","_props$priceResources9","isExpanded","setIsExpanded","toggle","Button","_props$data$price$Att","_props$priceResources2","_props$priceResources3","_props$priceResources4","_props$priceResources5","_props$priceResources6","_props$priceResources7","renderSalesAgreementDetail","_props$data$price","originalPrice","_props$data$price2","showStrikethroughPricing","initialPrice","savingsText","renderCurrentPriceWithOriginalPrice","PromoCode","_onInputChange","error","target","value","promoCodeInputValue","canApply","_applyPromotion","cartState","upatePromoError","appliedPromo","addPromoCode","promoCode","status","refreshCart","getCheckoutState","checkoutCart","substatus","duplicatePromoCodeErrorText","_result$errorDetails","multipleValidPromoCodeError","errorDetails","LocalizedMessage","invalidPromoCodeErrorText","catch","failedToAddPromoCodeErrorText","_renderForm","promoPlaceholderText","promoCodeApplyButtonText","attributes","onSubmit","onChange","placeholder","disabled","_removePromotion","ctx","currentTarget","getAttribute","removePromoCodes","promoCodes","failedToRemovePromoCodeErrorText","_calculateDiscount","CartLines","discountAmount","line","DiscountLines","discountLine","DiscountCode","DiscountCost","_renderAppliedPromoCode","Coupons","coupon","_coupon$Code","totalCouponDiscountAmount","appliedPromoCodeHeadingText","ariaLabel","removePromoAriaLabelFormat","removePromoText","TelemetryConstant","ApplyPromoCode","isCollapseOpen","promoError","shouldComponentUpdate","nextProps","nextState","_this$props","promoCodeHeadingText","promoCodeInformationMessage","PromoCodeComponent","Logo","_renderLogo","link","openInNewTab","rel","_renderImage","Msdyn365","image","viewports","xs","q","w","h","lg","lazyload","editProps","moduleType","imagePropertyName","shouldSkipToMainImage","_renderReactFragment","items","slot","index","_props$config$discoun","_props$config$discoun2","scroll","setScroll","scrollY","HeaderTag","HeaderContainer","HeaderTopBarContainer","MobileMenuContainer","MobileMenuBodyContainer","MobileMenuLinksContainer","Divider","signInUrl","registerNowButton","lookUpTime","setTimeToLogout","hello","login","miniCartIconHide","telemetryPageName","cartIcon","isMobile","setIsMobile","_updateViewport","viewport","_getViewport","_props$context","device","Type","MsDyn365","isBrowser","innerWidth","_props$context2","sm","md","lastActivityTime","setLastActivityTime","Date","now","checkUserActivityTime","console","log","localStorage","setItem","setCookie","getTelemetryObject","friendlyName","telemetry","location","signOutUrl","signout","name","deltaDaysFromToday","cookies","expirationDate","setTime","getTime","set","expires","isEssential","debouncedResetIdleTime","debounce","resetIdleTime","isLoggedIn","events","forEach","intervalId","setInterval","clearInterval","mobileLogo","mobileLogoLink","mobileLogoImage","navIcon","logo","preferredStore","currentDistributor","_props$config$signout","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","extendedUrl","signoutExtendedUrl","trim","_renderDesktopAccountBlock","discountTextHeading","discountAndOffersText","siteOptions","menuBar","MobileMenuHeader","toLowerCase","PurchaseLeadTimeDate","dateFormatByLocale","PODate","atpMessage","IsDiscontinuedProduct","Message","Quantity","POQuantity","_context$actionContex2","enableBadges","badges","badgeUI","badge","_badge$label","enabledForGuest","enableForGuest","style","background","bgColor","color","fontColor","AddressShow","AddressDetail","AddressSelect","SelectAddress","shipMultipleAddressesButton","addButton","SelectItem","input","showItems","AddressShipMultiple","_ref3","ShipMultipleAddress","shipSingleAddressButton","clearSelectionButton","addressDropdown","ProductsTable","ProductsTableHeading","ProductsTableRow","shipMultipleAddressLines","_renderShipMultipleAddressLine","AddressAddUpdate","_ref4","AddressForm","heading","hasError","AddressItem","AddressError","message","shipMultipleAddressesLine","selectLine","productImage","productNumber","productInfo","productPrice","productQuantity","productAddress","position","top","verticalAlign","colSpan","width","display","marginTop","textAlign","CheckoutShippingAddress","showAddress","showAddressSelect","showAddOrUpdateAddress","showShipMultipleAddresses","cartLineImages","isShowShipMultipleAddress","isShowAddress","isShowAddresList","isShowAddOrUpdateAddress","assembleNode","itemIndex","_item$links","renderHeading","additionalContentHeading","text","tag","onEdit","handleAdditionalTextChange","subtext","renderParagraph","additionalContentParagraphText","links","ctaLink","renderLinks","linkIndex","editableLink","role","onTextChange","handleAdditionalLinkTextChange","additionalContentItemContainer","additionalContentItemLinks","contentBlockAdditionalContent","additionalContent","reactNodes","push","additionalContentNode","additionalContentItems","ContentCardLinks","_mapEditableLinks","linkdata","editableLinks","contentAction","etext","btnClass","additionalProperties","ContentBlock","handleTextChange","handleParagraphChange","paragraph","handleLinkTextChange","_heading$tag","_this$props$context$r","_this$props$config$im","imageAriaLabel","contentBlockTitle","contentBlockLinks","ArrayExtensions","hasElements","LinksComponent","msdyn365__moduleLayout","contentBlockText","contentBlockImageSettings","backgroundColor","contentBlockImage","preserveImageSpace","moduleId","layout","contentBlockContainerStyle","contentBlockviewProps","moduleClass","contentBlockContainer","moduleProps","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","_getImageLink","handleAdditionalParagraphChange","handleAdditionalText","handleAdditionalParagraph","additionalContentObject","actionableRegion","renderAdditionalContent","_additionalContent$ad","_renderPromotions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","_renderCartlines","cartLines","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","mulitplePickUp","emailDeliveryModeCode","emptyCartText","cartLine","cartline","_renderBOPISBlock","_renderGroupBOPISBlock","addToOrderTemplate","addToWishlist","remove","onToggleBopisHandler","isBopisSelected","pickUpInStore","callbacks","toggleBopis","onChangeStoreHandler","_cartLine$data","DeliveryMode","shipInsteadDisplayText","shipToAddressDisplayText","pickItUpDisplayText","pickUpAtStoreWithLocationText","changeStoreDisplayText","PickupInStore","puckUpinStoreAttribute","ContainerProps","orgUnitName","_renderErrorBlock","errorData","errors","Wrapper","header","_renderOrderSummarylines","orderSummaryLines","OrderSummaryItems","subtotal","shipping","otherCharge","tax","totalDiscounts","orderTotal","_renderInvoiceSummarylines","invoiceSummaryLines","invoices","giftCard","loyalty","_renderCartLinesGroup","cartLinesGroup","cartlines","_props$context$action2","_props$context$action3","cartlineId","_renderCartLinesGroupHeader","_countItems","EmailDeliveryModeCode","multiplePickUpEnabled","count","_cartLine$pickUpInSto","pickUpText","shippingText","emailshippingText","payInvoicesDisplayText","groupTitle","IsInvoiceLine","StringExtensions","isNullOrEmpty","_renderCartLinesGroupTitle","_cartLine$data2","countItem","reduce","_item$data","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","_cartLine$pickUpInSto4","itemLabel","itemsLabel","suffix","_props$cart","_props$context$action","_props$cart2","renderModuleAttributes","promotionOptions","hasInvoiceLine","CartlinesWrapper","orderSummaryHeading","OrderSummaryWrapper","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","processing","address","trackingInfo","OrderHistoryGroup","groupProps","delivery","salesLinesProps","salesLines","salesLine","LineId","OrderHistoryGroups","groupsProps","groups","group","OrderHistoryHeader","_ref5","headerProps","orderCountLabel","extraActions","OrderHistorySalesOder","_ref6","salesOrderProps","orderInfomation","orderDetailsLink","expandProductsButton","OrderHistoryList","_ref7","listProps","salesOrders","salesOrder","_ref8","orderHistoryProps","emptyMessage","backToShoppingLink","table","moreButton","labelGroup","renderErrorLabel","responseErrorMessage","errorMessageClassName","renderRegisteredUserMessage","signInLinkClassName","registeredUserClassName","orderLookupRegisteredUserText","orderLookupViewAccountText","orderLookupSignInLinkText","infoMessage","signInText","renderFieldErrors","orderLookupFieldValidationErrorMessage","RenderOrderLookupAdditionalFieldInput","_getOrderLookupAdditionalFields","additionalFieldLabel","additionalFieldError","additionalFieldInput","additionalFieldLabelClassName","type","inputType","isValidAdditionalFieldName","additionalFieldValidationMessage","__decorate","observer","RenderOrderLookupFormFields","_getOrderLookupFields","orderLookupLabelClassName","orderLookupLabel","inputReference","fieldErrorClassName","isInputTypeError","renderAlert","isValidInputField","OrderLookupSearchValues","OrderLookup","isEmailValue","isOrderNumberValue","orderLookupExtensibleEnum","handleSubmit","orderNumber","email","orderLookupValue","orderStatusLookUpParametersType","orderLookupName","_validateOrderLookupForm","_Msdyn365$getUrlSync","actionContextValue","orderDetailsPath","redirectUrl","searchParameters","searchParams","fieldName","isNullOrWhitespace","toLocaleLowerCase","fieldValue","_this$orderNumberInpu","_this$emailInputRef$c","orderNumberInputRef","current","emailInputRef","additionalPropertyStates","isAdditionalFieldError","isKeyExistInAdditionalFieldArray","labelName","isValidFieldName","additionalfieldErrorMessage","ordernumber","isOrdNumberError","isReqError","isEmailError","isValidEmailError","isValidLookupField","isValidAdditionalLookupField","isDisabled","_renderAlert","orderLookupEmailValidationErrorMessage","orderLookupRequiredTextErrorMessage","requiredErrorMessage","emailValidationErrorMessage","isRequireError","isEmailValidError","isValidEmailInput","_renderOrderNumberAlert","orderLookupOrderNumberValidationErrorMessage","_renderOrderLookupInput","orderLookupEmailLabel","orderLookupEmailAriaLabel","_additionalFieldValidation","isFieldValid","RegExp","test","isValid","isDisable","EmailRegex","defaultRegex","isEmailValid","orderLookupSearchAdditionalFields","_item$labelName","_item$ariaLabel","_item$validationMessa","validationMessage","_context$request$user","orderLookupDefaultHeadingText","orderLookupButtonLabel","orderLookupFormAriaLabel","orderLookupOrderNumberLabel","orderLookupOrderNumberAriaLabel","orderLookupSubmitAriaLabel","headingText","headingTag","moduleClassName","orderLookupContainerClassName","orderLookupFormClassName","orderLookupAdditionalFiledContainerClassName","orderLookupFormFieldsClassName","orderNumberLabelClassName","orderNumberInputErrorClassName","submitButtonClassName","signinLinkClassName","orderLookupHeading","viewProps","orderLookup","orderLookupContainer","orderLookupAdditionalFieldContainer","_createParagraph","renderOrderLookupInputField","orderLookupForm","autoComplete","orderNumberInput","submitButton","submitButtonLabelText","errorMessage","fieldErrorMessage","registeredUserMessage","submit","_renderAdditionalFields","_getExtensibleEnumera","_getExtensibleEnumera2","isOrderLookupAdditionalFieldValid","isOrderLookupFieldValid","getExtensibleEnumerations","StoreOperationsDataActions","callerContext","TypeName","ExtensibleEnumerations","orderLookupAdditionalParameter","validateOrderLookupField","orderStatusLookUpParameter","isValidField","validateOrderLookupAdditionalField","orderStatusLookUpAdditionalParameters","isValidAdditionalField","_item$fieldKey","fieldKey","validateAdditionalFieldWithProxy","some","setLookupFieldState","additionalFieldsInput","OrderLookupViewComponent","_orderLookupForm$clas","_submitButton$classNa","SocialShare","slots","socialShareItems","isConsentGiven","params","isEditor","viewprops","SocialShareList","caption","orientation","SocialShareItem","SocialShareItemElements","SocialShareView","SocialShareElement","paymentAmountInput","isReady"],"sourceRoot":""}