{"version":3,"file":"static/js/8525946f618e247911a6.bundle.js","mappings":"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","sources":["webpack://ahi-ecommerce/./src/modules/ahi-cart/common/configurableCartlineContext.tsx?ff1d","webpack://ahi-ecommerce/./src/themes/ahi/views/cart-icon.view.tsx?bf82","webpack://ahi-ecommerce/./src/themes/ahi/views/components/carticon.component.tsx?74a1","webpack://ahi-ecommerce/./lib/cart-icon/module-registration.js?4d28","webpack://ahi-ecommerce/./src/validate-cart.ts?cd50","webpack://ahi-ecommerce/./src/Common/get-product.ts?0a21","webpack://ahi-ecommerce/./src/modules/cart-icon/utils/get-products-in-mini-cart.ts?3c15","webpack://ahi-ecommerce/./src/modules/cart-icon/cart-icon.tsx?4ae8","webpack://ahi-ecommerce/./src/modules/cart-icon/cart-icon.view.tsx?f9dd","webpack://ahi-ecommerce/./src/modules/cart-icon/components/flyout-cart-line-items.tsx?f2c4","webpack://ahi-ecommerce/../../src/search-org-unit-locations.ts?d18d","webpack://ahi-ecommerce/./src/modules/adventureworks/views/cart-icon.view.tsx?7ec9","webpack://ahi-ecommerce/external var \"React\"?0d3b","webpack://ahi-ecommerce/external var \"ReactDOM\"?853b"],"sourcesContent":["import React from 'react';\nimport { ICartlinesViewProps } from '../components/ahi-cart-line-items';\n\nexport const ConfigurableCartLineContext = React.createContext>({});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AddToCartBehavior } from '@msdyn365-commerce/components';\nimport MsDyn365, { getUrlSync } from '@msdyn365-commerce/core';\nimport { ICartIconViewProps, ICartViewProps, ICartlinesViewProps, IFlyoutCartLineItemViewProps } from '@msdyn365-commerce-modules/cart';\nimport { Button, getPayloadObject, INodeProps, KeyCodes, Modal, Node, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { ICartIconProps as ICartIconExtensionProps } from '../definition-extensions/cart-icon.ext.props.autogenerated';\nimport { getItemCount } from './components/carticon.component';\nimport { ConfigurableCartLineContext } from '../../../modules/ahi-cart/common/configurableCartlineContext';\n\n/**\n * ICartIconViewState: Interface for Cart Icon View State.\n */\ninterface ICartIconViewState {\n isModalOpen: boolean;\n}\n\n/**\n * Render Cart lines.\n * @param cartLines - Flyout cart line view props.\n * @param props - Cart icon view props.\n * @returns JSX Element.\n */\nconst renderCartlines = (cartLines: IFlyoutCartLineItemViewProps[] | undefined, props: ICartIconViewProps): JSX.Element[] | null => {\n if (!cartLines) {\n props.context.telemetry.error('Cartlines content is empty, module wont render');\n return null;\n }\n return cartLines.map((cartLine, index) => {\n const cartLineIndex = index;\n return (\n \n {cartLine.cartline}\n {cartLine.storeLocation}\n {cartLine.remove}\n \n );\n });\n};\n\n/**\n * Initiate total price.\n * @param props - Cart icon view props.\n * @returns JSX Element.\n */\nconst renderTotalPrice = (props: ICartIconViewProps & ICartIconExtensionProps<{}>): JSX.Element | null => {\n const cart = props.data.cart.result ?? undefined;\n const price = cart && !cart.hasInvoiceLine && (cart.cart.TotalAmount || undefined);\n const totalPrice = price\n ? props.context.cultureFormatter.formatCurrency(price)\n : props.context.cultureFormatter.formatCurrency(props.resources.emptyPrice);\n return (\n
\n \n {props.resources.totalPriceFormatString.replace('{price}', '')}\n {totalPrice}\n \n
\n );\n};\n\n/**\n *\n * CartIconView component.\n * @extends {React.PureComponent}\n */\nexport class CartIconView extends React.PureComponent<\n ICartViewProps & ICartIconViewProps & ICartIconExtensionProps<{}>,\n ICartIconViewState\n> {\n private isAutoDisplayTriggered: boolean;\n\n private readonly cartIconRef: React.RefObject = React.createRef();\n\n public constructor(props: ICartViewProps & ICartIconViewState & ICartIconViewProps & ICartIconExtensionProps<{}>) {\n super(props);\n this.isAutoDisplayTriggered = false;\n this.state = {\n isModalOpen: false\n };\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n window.addEventListener('keydown', this._escFunction, false);\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n window.removeEventListener('keydown', this._escFunction, false);\n }\n }\n\n /**\n * Render Cart Item count.\n * @returns JSX Element.\n */\n public render(): JSX.Element | null {\n const cart = this.props.data.cart.result ?? undefined;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- check config.\n const shouldShowMiniCart =\n cart?.isProductAddedToCart && this.props.context.app.config.addToCartBehavior === AddToCartBehavior.showMiniCart;\n if (shouldShowMiniCart) {\n if (!this.isAutoDisplayTriggered) {\n // First time trigger auto mini cart.\n this.setState({ isModalOpen: true });\n this.isAutoDisplayTriggered = true;\n } else if (!this.state.isModalOpen) {\n // If modal is closed, reset the flag.\n this.isAutoDisplayTriggered = false;\n }\n }\n let mainCartlines: ICartlinesViewProps[] & IFlyoutCartLineItemViewProps[] = [];\n let configurableSubItemCartLinesMap: Record = {};\n\n this.props.cartlines?.forEach(cartLineView => {\n const cartLine = cartLineView.data?.cartline;\n\n if (!cartLine) {\n return;\n }\n\n const isConfigurableCartLine =\n cartLine.ExtensionProperties?.some(\n property => property.Key === 'isConfigurableItem' && property.Value?.BooleanValue === true\n ) ?? false;\n if (!isConfigurableCartLine) {\n mainCartlines.push(cartLineView);\n } else {\n const isConfigurableMainCartLine =\n cartLine.ExtensionProperties?.some(\n property => property.Key === 'isConfigurableItemMain' && property.Value?.BooleanValue === true\n ) ?? false;\n const isConfigurableSubItemCartLine =\n cartLine.ExtensionProperties?.some(\n property => property.Key === 'isConfigurableItemMain' && property.Value?.BooleanValue === false\n ) ?? false;\n if (isConfigurableMainCartLine) {\n mainCartlines.push(cartLineView);\n }\n if (isConfigurableSubItemCartLine) {\n const configurableGroupUUID = cartLine.ExtensionProperties?.find(\n property => property.Key === 'configurableItemGroupUUID'\n )?.Value?.StringValue;\n if (configurableGroupUUID) {\n if (!configurableSubItemCartLinesMap[configurableGroupUUID]) {\n configurableSubItemCartLinesMap[configurableGroupUUID] = [];\n }\n configurableSubItemCartLinesMap[configurableGroupUUID].push(cartLineView);\n }\n }\n }\n });\n return (\n \n \n \n \n {this.props.flyoutTitle}\n {this._renderCartItemCount(this.props)}\n {this._renderCartCloseIcon()}\n \n \n {this.props.data.cart.result?.isEmpty ? this.props.slots.emptyCart : null}\n \n \n {renderCartlines(mainCartlines, this.props)}\n \n \n \n \n {this.props.slots.promoContentItem}\n {renderTotalPrice(this.props)}\n

{this.props.resources.subTotalMessage}

\n {this.props.checkoutAsSignInUserButton}\n {this.props.checkoutAsGuestButton}\n {this.props.data.cart.result?.isEmpty ? null : this.props.goToCartButton}\n \n {this.props.data.cart.result?.isEmpty ? (\n \n {this.props.resources.continueShoppingButtonTitle}\n \n ) : null}\n \n
\n
\n
\n );\n }\n\n /**\n * Initiate modal container.\n * @returns Inode props.\n */\n private readonly _modalContainer = (): INodeProps => {\n return {\n tag: Modal,\n placement: 'bottom-end',\n hideArrow: true,\n className: 'ms-cart-icon__minicartmodal-container',\n wrapClassName: 'ms-cart-icon__minicartmodal',\n isOpen: this.state.isModalOpen,\n toggle: this.closeModal\n };\n };\n\n /**\n * Initiate open modal.\n */\n private readonly _openModal = (): void => {\n const payLoad = getPayloadObject('click', this.props.telemetryContent!, 'cart-icon', '');\n onTelemetryClick(this.props.telemetryContent!, payLoad, 'cart-icon');\n this.setState({\n isModalOpen: true\n });\n };\n\n /**\n * Initiate close modal.\n */\n private readonly closeModal = (): void => {\n this.cartIconRef.current?.focus();\n this.setState({\n isModalOpen: false\n });\n };\n\n /**\n * Initiate cart close Icon.\n * @returns JSX Element.\n */\n private readonly _renderCartCloseIcon = (): JSX.Element | null => {\n return \n ) : null,\n checkoutAsGuestButton:\n isAnonymousCheckout && !isCartEmpty && !isAuthenticated ? (\n \n {resources.guestCheckoutButtonTitle}\n \n ) : null,\n goToCartButton: (\n \n {goToCartButtonText}\n \n ),\n checkoutBlockedDueToUnavailableFunds: null,\n flyoutTitle: {flyoutTitle},\n totalPrice:
{priceString}
\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _validateCart(): void {\n const {\n data: { cart }\n } = this.props;\n const cartVersion = cart.result?.cart?.Version ?? undefined;\n if (this.lastValidatedCartVersion === cartVersion) {\n return;\n }\n\n this.lastValidatedCartVersion = cartVersion; // This field is populated to block concurrent requests\n\n if (this.state.isQuantityLimitsFeatureEnabled) {\n validateCartAsync(cart, this.props.telemetry, this.props.context)\n .then((result: CartLineValidationResultsByLineId | undefined) => {\n this.setState({ isCartValid: !ArrayExtensions.hasElements(result?.ValidationResultsPairs) });\n })\n .catch(() => {\n this.setState({ isCartValid: false });\n });\n } else {\n this.setState({ isCartValid: true });\n }\n }\n\n private _getCheckoutURL(isAuthenticated: boolean, guestCheckoutUrl: string, signInUrl: string): string {\n if (isAuthenticated) {\n return guestCheckoutUrl;\n }\n\n const isAbsoluteUrl = urlCheck(guestCheckoutUrl);\n let returnURL = guestCheckoutUrl;\n if (msdyn365Commerce.isBrowser && !isAbsoluteUrl) {\n returnURL = `${window.location.origin}${guestCheckoutUrl}`;\n }\n\n return `${signInUrl}${!signInUrl.includes('?') ? '?' : '&'}ru=${returnURL}`;\n }\n\n /**\n * Sort cartline items.\n * @param cartlines - Cartlines to be sorted.\n * @param sortOrder - Ascending or descending.\n * @returns - Sorted cartlines.\n */\n private readonly getSortedCartLines = (cartlines: CartLine[], sortOrder?: cartLinesSortOrder): CartLine[] => {\n const lines: CartLine[] = [...cartlines];\n const zero: number = 0;\n\n if (sortOrder === cartLinesSortOrder.descending) {\n return lines.sort((item1, item2) => (item2.LineNumber ?? zero) - (item1.LineNumber ?? zero));\n }\n return lines.sort((item1, item2) => (item1.LineNumber ?? zero) - (item2.LineNumber ?? zero));\n };\n\n private _getCartLines(): IFlyoutCartLineItemViewProps[] | null {\n const {\n context: {\n request: { channel: { PickupDeliveryModeCode } = { PickupDeliveryModeCode: undefined } }\n },\n config,\n telemetry,\n resources\n } = this.props;\n\n const imageSettings = this._getImageSettings(config.imageSettings);\n const cart = this.props.data.cart && this.props.data.cart.result;\n\n // Cart-icon could be placed in each page\n // so we check cart content to reduce number of RS calls\n return this.state.miniCartData.products && cart && cart.cart.CartLines && cart.cart.CartLines.length > 0\n ? FlyoutCartLineItems({\n cartlines: this.getSortedCartLines(cart.cart.CartLines, config.cartLinesSortOrder),\n products: this.state.miniCartData.products,\n productAvailabilites: this.state.miniCartData.productAvailabilites,\n productDeliveryOptions: this.state.miniCartData.deliveryOptions,\n imageSettings,\n outOfStockThreshold: this.props.context.app.config.outOfStockThreshold || 0,\n isStockCheckEnabled: this.props.context.app.config.enableStockCheck || false,\n maxCartlineQuantity: updateMaxQuantityForCartLineItem(this.props.context.app.config.maxQuantityForCartLineItem),\n gridSettings: this.props.context.request.gridSettings!,\n context: this.props.context,\n typeName: this.props.typeName,\n id: this.props.id,\n resources: {\n sizeString: resources.productDimensionTypeSize,\n colorString: resources.productDimensionTypeColor,\n configString: resources.productDimensionTypeConfiguration,\n styleString: resources.productDimensionTypeStyle,\n quantityDisplayString: resources.quantityDisplayText,\n salesAgreementPricePrompt: resources.salesAgreementPricePrompt,\n inputQuantityAriaLabel: '', // Not used\n discountStringText: '', // Not used\n originalPriceText: '',\n currentPriceText: '',\n shippingChargesText: '',\n shippingText: resources.shippingText\n },\n telemetry,\n removeButtonText: resources.removeCartButtonText,\n outOfStockText: '', // Not used\n outOfRangeOneText: '', // Not used\n outOfRangeFormatText: '', // Not used\n cartState: cart,\n orgUnitLocations: this.state.orgUnitLocations,\n removeItemClickHandler: this._removeItemFromCartHandler,\n pickupDeliveryModeCode: PickupDeliveryModeCode,\n telemetryContent: this.telemetryContent,\n channelDeliveryOptionConfig: this.retailMultiplePickUpOptionEnabled ? this.channelDeliveryOptionConfig : undefined,\n isQuantityLimitsFeatureEnabled: this.state.isQuantityLimitsFeatureEnabled,\n catalogs: this.props.data.catalogs?.result\n })\n : null;\n }\n\n private readonly _getImageSettings = (imageSettings: IImageSettings | undefined): IImageSettings => {\n return (\n imageSettings || {\n viewports: {\n xs: { q: 'w=80&h=94&m=6', w: 0, h: 0 },\n sm: { q: 'w=148&h=174&m=6', w: 0, h: 0 },\n lg: { q: 'w=148&h=174&m=6', w: 0, h: 0 }\n },\n lazyload: true\n }\n );\n };\n\n private readonly _removeItemFromCartHandler = (cartlineToRemove: CartLine) => {\n if (this.props.data.cart.result) {\n const input = {\n cartLineIds: [cartlineToRemove.LineId!.toString()]\n };\n this.props.data.cart.result.removeCartLines(input).catch(error => {\n this.props.telemetry.warning(error);\n this.props.telemetry.debug('Unable to Remove Cart Line');\n });\n }\n };\n\n private async _setQuantityLimitsFeatureFlag(): Promise {\n const featureStatuses = await this.props.data.featureState;\n\n const isChannelQuantityLimitsFeatureEnabledInHq =\n featureStatuses?.find(\n featureState => featureState.Name === 'Dynamics.AX.Application.EcommerceQuantityLimitConfigurationsFeature'\n )?.IsEnabled || false;\n if (isChannelQuantityLimitsFeatureEnabledInHq) {\n this.setState({ isQuantityLimitsFeatureEnabled: true });\n return;\n }\n\n const useSiteBuilderSettings = featureStatuses?.find(\n featureState => featureState.Name === 'RevertToSiteBuilderOrderQuantityLimitsSettings'\n )?.IsEnabled;\n\n if (useSiteBuilderSettings) {\n const defaultOrderQuantityLimitsFeatureConfig = this.props.context?.request?.app?.platform?.enableDefaultOrderQuantityLimits;\n if (!defaultOrderQuantityLimitsFeatureConfig || defaultOrderQuantityLimitsFeatureConfig === 'none') {\n this.setState({ isQuantityLimitsFeatureEnabled: false });\n return;\n }\n\n try {\n const featureStatuses = await this.props.data.featureState;\n const isQuantityLimitsFeatureEnabledInHq =\n featureStatuses?.find(\n featureState => featureState.Name === 'Dynamics.AX.Application.RetailDefaultOrderQuantityLimitsFeature'\n )?.IsEnabled || false;\n if (!isQuantityLimitsFeatureEnabledInHq) {\n this.setState({ isQuantityLimitsFeatureEnabled: false });\n return;\n }\n } catch (error) {\n this.props.telemetry.warning(error);\n this.props.telemetry.debug('Unable to get feature states');\n this.setState({ isQuantityLimitsFeatureEnabled: false });\n return;\n }\n if (defaultOrderQuantityLimitsFeatureConfig === 'all') {\n this.setState({ isQuantityLimitsFeatureEnabled: true });\n } else {\n this.props.data.customerInformation\n .then(customerInfo => {\n const result =\n !!customerInfo &&\n ((defaultOrderQuantityLimitsFeatureConfig === 'b2b' && customerInfo.IsB2b) ||\n (defaultOrderQuantityLimitsFeatureConfig === 'b2c' && !customerInfo.IsB2b));\n this.setState({ isQuantityLimitsFeatureEnabled: result });\n })\n .catch(error => {\n this.props.telemetry.warning(error);\n this.props.telemetry.debug('Unable to get customer info');\n });\n }\n } else {\n const cartConfiguration = await this.props.data.cartConfiguration;\n this.setState({ isQuantityLimitsFeatureEnabled: !(cartConfiguration?.IgnoreOrderSettings ?? false) });\n return;\n }\n }\n}\n\nexport default CartIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICartIconViewProps } from './cart-icon';\nimport { IFlyoutCartLineItemViewProps } from './components/flyout-cart-line-items';\n\nconst _renderCartlines = (cartLines: IFlyoutCartLineItemViewProps[] | undefined, props: ICartIconViewProps): JSX.Element[] | null => {\n if (!cartLines) {\n props.context.telemetry.error('Cartlines content is empty, module wont render');\n return null;\n }\n return cartLines.map((cartLine, index) => {\n return (\n \n {cartLine.cartline}\n {cartLine.storeLocation}\n {cartLine.remove}\n \n );\n });\n};\n\nconst CartIconView: React.FC = (props: ICartIconViewProps) => (\n \n {props.cartIcon}\n {props.FlyoutContainer ? (\n \n {props.flyoutTitle}\n {props.checkoutBlockedDueToUnavailableFunds}\n {_renderCartlines(props.cartlines, props)}\n {props.totalPrice}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.goToCartButton}\n \n ) : (\n false\n )}\n \n);\n\nexport default CartIconView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CartLineItemComponent, ICartlineResourceString } from '@msdyn365-commerce/components';\nimport MsDyn365, { ICoreContext, IGridSettings, IImageSettings, ITelemetry, isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { ICartState } from '@msdyn365-commerce/global-state';\nimport {\n CartLine,\n ChannelDeliveryOptionConfiguration,\n OrgUnitLocation,\n ProductAvailableQuantity,\n ProductDeliveryOptions,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\nimport { ProductCatalog, ReleasedProductType } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getProductUrlSync, IProductInventoryInformation } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { getProductByProductId, getProductByProductIdAndWarehouse } from '../../../Common/get-product';\n\nexport interface IFlyoutCartLineItemsProps {\n cartlines: CartLine[];\n cartState: ICartState | undefined;\n orgUnitLocations: OrgUnitLocation[] | undefined;\n resources: ICartlineResourceString;\n productAvailabilites: IProductInventoryInformation[] | undefined;\n products: SimpleProduct[] | undefined;\n productDeliveryOptions: ProductDeliveryOptions[] | undefined;\n pickupDeliveryModeCode?: string;\n catalogs?: ProductCatalog[];\n\n /**\n * GridSettings for the product image in cartline\n */\n gridSettings: IGridSettings;\n\n /**\n * ImageSettings for the product image in cartline\n */\n imageSettings: IImageSettings;\n id: string;\n typeName: string;\n context: ICoreContext;\n telemetry: ITelemetry;\n removeButtonText: string;\n outOfStockText: string;\n outOfRangeOneText: string;\n outOfRangeFormatText: string;\n maxCartlineQuantity: number;\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\n isQuantityLimitsFeatureEnabled: boolean;\n\n outOfStockThreshold: number;\n isStockCheckEnabled: boolean;\n telemetryContent?: ITelemetryContent;\n removeItemClickHandler(cartlineToRemove: CartLine): void;\n}\n\nexport interface IFlyoutCartLineItemViewProps {\n cartline: React.ReactNode;\n remove: React.ReactNode;\n storeLocation: React.ReactNode;\n hasError: boolean;\n\n data: {\n product: SimpleProduct;\n cartline: CartLine;\n };\n}\n\nconst _getCartItemAvailableQuantity = (\n isStockCheckEnabled: boolean,\n outOfStockThreshold: number,\n productAvailability?: ProductAvailableQuantity\n): number => {\n if (isStockCheckEnabled) {\n if (\n !productAvailability ||\n !productAvailability.AvailableQuantity ||\n productAvailability.AvailableQuantity <= 0 ||\n productAvailability.AvailableQuantity <= outOfStockThreshold\n ) {\n return 0;\n }\n return productAvailability.AvailableQuantity - outOfStockThreshold;\n }\n\n return 0;\n};\n\nconst _getCartItemMaxQuantity = (\n maxQuantityByConfig: number,\n isStockCheckEnabled: boolean,\n availableQuantityInStock: number,\n isQuantityLimitsFeatureEnabled: boolean,\n maxByQuantityLimitsFeature: number\n) => {\n if (isQuantityLimitsFeatureEnabled) {\n let maxByQuantityLimitsFeatureResult = maxByQuantityLimitsFeature;\n\n // If max by feature in not defined when feature is on then we suggest that there is no max by feature\n // and consider available qty if stock check enabled and max from config in site settings.\n if (!maxByQuantityLimitsFeature) {\n maxByQuantityLimitsFeatureResult = maxQuantityByConfig || 10;\n }\n\n return isStockCheckEnabled\n ? maxByQuantityLimitsFeatureResult < availableQuantityInStock\n ? maxByQuantityLimitsFeatureResult\n : availableQuantityInStock\n : maxByQuantityLimitsFeatureResult;\n }\n if (isStockCheckEnabled) {\n return availableQuantityInStock < maxQuantityByConfig ? availableQuantityInStock : maxQuantityByConfig;\n }\n return maxQuantityByConfig;\n};\n\n/**\n * On Remove Click functionality.\n * @param removeItemClickHandler -Remove item click function.\n * @param cartline -CartLine.\n * @returns Remove change value.\n */\nconst onRemoveClickFunction = (removeItemClickHandler: (cartlineToRemove: CartLine) => void, cartline: CartLine) => () => {\n removeItemClickHandler(cartline);\n};\nconst _assembleNode = (\n cartline: CartLine,\n product: SimpleProduct,\n props: IFlyoutCartLineItemsProps,\n index: number,\n foundProductAvailability?: ProductAvailableQuantity,\n foundProductDeliveryOptions?: ProductDeliveryOptions\n): IFlyoutCartLineItemViewProps => {\n const { imageSettings, gridSettings, id, typeName, context, resources, removeButtonText, removeItemClickHandler } = props;\n\n const availableQuantityInStock = _getCartItemAvailableQuantity(\n props.isStockCheckEnabled,\n props.outOfStockThreshold,\n foundProductAvailability\n );\n const maxQuantity =\n product &&\n _getCartItemMaxQuantity(\n props.maxCartlineQuantity,\n props.isStockCheckEnabled,\n availableQuantityInStock,\n props.isQuantityLimitsFeatureEnabled,\n product?.Behavior?.MaximumQuantity || 0\n );\n\n // Check if the product is service or not by product type\n const isServiceItem = product.ItemTypeValue === ReleasedProductType.Service;\n\n const onRemoveClickHandler = onRemoveClickFunction(removeItemClickHandler, cartline);\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.RemoveCartItem);\n const removeCartItemAttribute = getTelemetryAttributes(props.telemetryContent!, payLoad);\n\n let productUrl = getProductUrlSync(product, props.context.actionContext, undefined);\n if (MsDyn365.isBrowser && isChannelTypeB2B(props.context.actionContext.requestContext)) {\n const fullUrl = new URL(productUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${cartline.CatalogId ?? 0}`);\n productUrl = fullUrl.href;\n }\n\n return {\n data: {\n product,\n cartline\n },\n hasError: !isServiceItem && props.isStockCheckEnabled ? cartline.Quantity! > maxQuantity : false,\n cartline: (\n \n ),\n remove: (\n \n {removeButtonText}\n \n ),\n storeLocation: _renderStoreLocation(cartline, props)\n };\n};\n\nconst _renderDeliveryLocation = (cartLine: CartLine | null | undefined, props: IFlyoutCartLineItemsProps): string | undefined => {\n let deliverylocation;\n if (cartLine && cartLine.FulfillmentStoreId) {\n const orgUnitName = _getOrgUnitName(cartLine.FulfillmentStoreId, props.orgUnitLocations);\n\n let foundProductDeliveryOption;\n if (props.productDeliveryOptions && props.productDeliveryOptions.length > 0) {\n foundProductDeliveryOption = props.productDeliveryOptions.find(deliveryOption => {\n return deliveryOption && deliveryOption.ProductId === cartLine.ProductId;\n });\n }\n const delivery = foundProductDeliveryOption?.DeliveryOptions?.find(option => option.Code === cartLine.DeliveryMode);\n const location = delivery?.Description;\n\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n if (location) {\n deliverylocation = `${location}, ${orgUnitName}`;\n } else {\n deliverylocation = `${orgUnitName}`;\n }\n } else {\n deliverylocation = props.resources.shippingText;\n }\n return deliverylocation;\n};\n\nconst _renderStoreLocation = (cartLine: CartLine | null | undefined, props: IFlyoutCartLineItemsProps): JSX.Element | null => {\n if (cartLine && cartLine.FulfillmentStoreId) {\n const orgUnitName = _getOrgUnitName(cartLine.FulfillmentStoreId, props.orgUnitLocations);\n\n if (orgUnitName) {\n return (\n
\n {orgUnitName}\n
\n );\n }\n }\n\n return null;\n};\n\nconst _getOrgUnitName = (fulfillmentStoreId: string | undefined, orgUnitLocations: OrgUnitLocation[] | undefined) => {\n if (!orgUnitLocations || !fulfillmentStoreId || orgUnitLocations.length === 0) {\n return '';\n }\n\n const foundLocation = orgUnitLocations.find(orgUnitLocation => {\n return orgUnitLocation.OrgUnitNumber === fulfillmentStoreId;\n });\n\n if (foundLocation) {\n return foundLocation.OrgUnitName;\n }\n return fulfillmentStoreId;\n};\n\nconst _assembleCartlines = (\n cartlines: CartLine[],\n products: SimpleProduct[] | undefined,\n props: IFlyoutCartLineItemsProps\n): IFlyoutCartLineItemViewProps[] | null => {\n const reactNodes: IFlyoutCartLineItemViewProps[] = [];\n\n if (!products || products.length === 0) {\n props.context.telemetry.error('Cartlines content is empty, module wont render');\n return null;\n }\n\n cartlines.map((cartline, index) => {\n let product;\n if (props.isQuantityLimitsFeatureEnabled) {\n // When feature is enabled the same products could have different quantity limits in Behavior so we need\n // to check productId and WarehouseId for identification.\n product = getProductByProductIdAndWarehouse(cartline.ProductId, products, cartline.WarehouseId, props.cartState);\n } else {\n product = getProductByProductId(cartline.ProductId, products);\n }\n let foundProductAvailability;\n if (props.productAvailabilites && props.productAvailabilites.length > 0) {\n foundProductAvailability = props.productAvailabilites.find(productAvailability => {\n return productAvailability.ProductAvailableQuantity?.ProductId! === cartline.ProductId;\n });\n }\n let foundProductDeliveryOption;\n if (props.productDeliveryOptions && props.productDeliveryOptions.length > 0) {\n foundProductDeliveryOption = props.productDeliveryOptions.find(deliveryOption => {\n return deliveryOption && deliveryOption.ProductId === cartline.ProductId;\n });\n }\n if (product) {\n reactNodes.push(\n _assembleNode(\n cartline,\n product,\n props,\n index,\n foundProductAvailability?.ProductAvailableQuantity,\n foundProductDeliveryOption\n )\n );\n }\n });\n\n return reactNodes;\n};\n\n/**\n * CartLineItems component.\n */\n\nexport const FlyoutCartLineItems = (props: IFlyoutCartLineItemsProps) => {\n const { products, cartlines } = props;\n return _assembleCartlines(cartlines, products, props);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IAny,\n IActionContext,\n IActionInput,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { searchOrgUnitLocationsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/OrgUnitsDataActions.g';\n\n/**\n * Input for search-org-unit-locations data action.\n */\nexport class SearchOrgUnitLocationsInput implements IActionInput {\n public getCacheKey = () => 'SearchOrgUnitLocations';\n\n public getCacheObjectType = () => 'SearchOrgUnitLocations';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData -- Input data.\n * @returns -- IActionInput.\n */\nexport const createSearchOrgUnitLocationsInputFunc = (inputData: ICreateActionContext>): IActionInput => {\n return new SearchOrgUnitLocationsInput();\n};\n\n/**\n * Calls the Retail API and returns all the orgUnitLocations as array.\n * @param input - Input.\n * @param ctx - Context.\n * @returns - orgUnitLocations.\n */\nexport async function getSearchOrgUnitLocationsAction(\n input: SearchOrgUnitLocationsInput,\n context: IActionContext\n): Promise {\n const OrgUnitLocations = await searchOrgUnitLocationsAsync(\n {\n callerContext: context\n },\n {}\n );\n\n return OrgUnitLocations;\n}\n\nexport const retailActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/retail-actions/search-org-unit-locations',\n action: >getSearchOrgUnitLocationsAction,\n input: createSearchOrgUnitLocationsInputFunc\n});\n\nexport default retailActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AddToCartBehavior } from '@msdyn365-commerce/components';\nimport MsDyn365, { getUrlSync } from '@msdyn365-commerce/core';\nimport { ICartIconViewProps, ICartViewProps, IFlyoutCartLineItemViewProps } from '@msdyn365-commerce-modules/cart';\nimport { Button, getPayloadObject, INodeProps, KeyCodes, Modal, Node, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { ICartIconProps as ICartIconExtensionProps } from '../definition-extensions/cart-icon.ext.props.autogenerated';\n\n/**\n * ICartIconViewState: Interface for Cart Icon View State.\n */\ninterface ICartIconViewState {\n isModalOpen: boolean;\n}\n\n/**\n * Render Cart lines.\n * @param cartLines - Flyout cart line view props.\n * @param props - Cart icon view props.-\n * @returns JSX Element.\n */\nconst renderCartlines = (cartLines: IFlyoutCartLineItemViewProps[] | undefined, props: ICartIconViewProps): JSX.Element[] | null => {\n if (!cartLines) {\n props.context.telemetry.error('Cartlines content is empty, module wont render');\n return null;\n }\n\n return cartLines.map((cartLine, index) => {\n const cartLineIndex = index;\n return (\n \n {cartLine.cartline}\n {cartLine.storeLocation}\n {cartLine.remove}\n \n );\n });\n};\n\n/**\n * Initiate total price.\n * @param props - Cart icon view props.\n * @returns JSX Element.\n */\nconst renderTotalPrice = (props: ICartIconViewProps & ICartIconExtensionProps<{}>): JSX.Element | null => {\n const cart = props.data.cart.result ?? undefined;\n const price = cart && !cart.hasInvoiceLine && (cart.cart.TotalAmount || undefined);\n const totalPrice = price\n ? props.context.cultureFormatter.formatCurrency(price)\n : props.context.cultureFormatter.formatCurrency(props.resources.emptyPrice);\n return cart && !cart.hasInvoiceLine ? (\n
\n \n {props.resources.totalPriceFormatString}\n {totalPrice}\n \n
\n ) : (\n <>\n );\n};\n\n/**\n * Initiate subtotal message.\n * @param props - Cart icon view props.\n * @returns JSX Element.\n */\nconst renderSubtotalMessage = (props: ICartIconViewProps & ICartIconExtensionProps<{}>): JSX.Element | null => {\n const cart = props.data.cart.result ?? undefined;\n return cart && !cart.hasInvoiceLine ?

{props.resources.subTotalMessage}

: null;\n};\n\n/**\n *\n * CartIconView component.\n * @extends {React.PureComponent}\n */\nexport class CartIconView extends React.PureComponent<\n ICartViewProps & ICartIconViewProps & ICartIconExtensionProps<{}>,\n ICartIconViewState\n> {\n private isAutoDisplayTriggered: boolean;\n\n private readonly cartIconRef: React.RefObject = React.createRef();\n\n public constructor(props: ICartViewProps & ICartIconViewState & ICartIconViewProps & ICartIconExtensionProps<{}>) {\n super(props);\n this.isAutoDisplayTriggered = false;\n this.state = {\n isModalOpen: false\n };\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n window.addEventListener('keydown', this._escFunction, false);\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n window.removeEventListener('keydown', this._escFunction, false);\n }\n }\n\n /**\n * Render Cart Item count.\n * @returns JSX Element.\n */\n public render(): JSX.Element | null {\n const cart = this.props.data.cart.result ?? undefined;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- check config.\n const shouldShowMiniCart =\n cart?.isProductAddedToCart && this.props.context.app.config.addToCartBehavior === AddToCartBehavior.showMiniCart;\n if (shouldShowMiniCart) {\n if (!this.isAutoDisplayTriggered) {\n // First time trigger auto mini cart.\n this.setState({ isModalOpen: true });\n this.isAutoDisplayTriggered = true;\n } else if (!this.state.isModalOpen) {\n // If modal is closed, reset the flag.\n this.isAutoDisplayTriggered = false;\n }\n }\n return (\n \n \n \n \n {this.props.flyoutTitle}\n {this._renderCartItemCount(this.props)}\n {this._renderCartCloseIcon()}\n \n \n {this.props.data.cart.result?.isEmpty ? this.props.slots.emptyCart : null}\n {this.props.checkoutBlockedDueToUnavailableFunds}\n {renderCartlines(this.props.cartlines, this.props)}\n \n \n {this.props.slots.promoContentItem}\n {renderTotalPrice(this.props)}\n {renderSubtotalMessage(this.props)}\n {this.props.checkoutAsSignInUserButton}\n {this.props.checkoutAsGuestButton}\n {this.props.data.cart.result?.isEmpty ? null : this.props.goToCartButton}\n \n {this.props.data.cart.result?.isEmpty ? (\n \n {this.props.resources.continueShoppingButtonTitle}\n \n ) : null}\n \n \n \n \n );\n }\n\n /**\n * Initiate modal container.\n * @returns Inode props.\n */\n private readonly _modalContainer = (): INodeProps => {\n return {\n tag: Modal,\n placement: 'bottom-end',\n hideArrow: true,\n className: 'ms-cart-icon__minicartmodal-container',\n wrapClassName: 'ms-cart-icon__minicartmodal',\n isOpen: this.state.isModalOpen,\n toggle: this.closeModal\n };\n };\n\n /**\n * Initiate open modal.\n */\n private readonly _openModal = (): void => {\n const payLoad = getPayloadObject('click', this.props.telemetryContent!, 'cart-icon', '');\n onTelemetryClick(this.props.telemetryContent!, payLoad, 'cart-icon');\n this.setState({\n isModalOpen: true\n });\n };\n\n /**\n * Initiate close modal.\n */\n private readonly closeModal = (): void => {\n this.cartIconRef.current?.focus();\n this.setState({\n isModalOpen: false\n });\n };\n\n /**\n * Initiate cart close Icon.\n * @returns JSX Element.\n */\n private readonly _renderCartCloseIcon = (): JSX.Element | null => {\n return