{"version":3,"file":"static/js/15.50a54ee49ece19fa9b80.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/toysrus/views/cart.view.tsx?016c","webpack://Msdyn365.Commerce.Online/./src/themes/toysrus/views/components/giftwrapping.component.tsx?1d81","webpack://Msdyn365.Commerce.Online/./src/custom-proxy/DataServiceEntities.g.ts?0bcc","webpack://Msdyn365.Commerce.Online/./src/custom-proxy/DataActionExtension.g.ts?5568","webpack://Msdyn365.Commerce.Online/./src/themes/toysrus/views/components/papergiftcard.component.tsx?e971","webpack://Msdyn365.Commerce.Online/./src/themes/toysrus/views/header.view.tsx?ff27","webpack://Msdyn365.Commerce.Online/./src/utilities/attribute-utilities.ts?1410","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","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/product-specification/components/product-specification-table-stucture.tsx?c1c4","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/product-specification.tsx?6583","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/product-specification.view.tsx?7490","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"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\r\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport classNames from 'classnames';\r\n\r\nimport { ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart/src/modules/cart/./cart';\r\nimport { ICartlinesViewProps } from '@msdyn365-commerce-modules/cart/src/modules/cart/./components/cart-line-items';\r\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/src/modules/cart/./components/cart-line-items-promotion';\r\n\r\nimport { AttributeTextValue, AttributeValueBase} from '@msdyn365-commerce/retail-proxy';\r\nimport { GiftWrappping } from './components/giftwrapping.component';\r\nimport { ICartConfig, ICartResources } from \"../definition-extensions/cart.ext.props.autogenerated\";\r\n//import { PaperGiftCard } from './components/papergiftcard.component';\r\n\r\nconst _renderCartlines = (cartLines: ICartlinesViewProps[] | undefined, cartEmptyText: string, CartlinesWrapper: INodeProps, storeSelector: React.ReactNode | undefined,\r\n backToShoppingButton: React.ReactNode, waitingComponent: React.ReactNode, cartLoadingStatus: string, cartDataResult: boolean, props: ICartViewProps | undefined): JSX.Element[] | JSX.Element => {\r\n\r\n if (cartLoadingStatus) {\r\n return (<>\r\n {cartLoadingStatus}\r\n );\r\n }\r\n\r\n if (cartLines) {\r\n return cartLines.map((cartLine) => {\r\n const isWrappingProductLine = isWrappingProduct(cartLine)\r\n return (\r\n
\r\n {cartLine.cartline}\r\n {\r\n storeSelector && cartLine.pickUpInStore ? \r\n \r\n {cartLine.pickUpInStore.defaultComponent}\r\n : null\r\n }\r\n { !isWrappingProductLine &&\r\n \r\n \r\n \r\n } \r\n { \r\n /*!isWrappingProductLine &&\r\n \r\n \r\n */\r\n }\r\n {\r\n cartLine.addToOrderTemplate ? (\r\n \r\n {cartLine.remove}\r\n {cartLine.addToWishlist}\r\n {cartLine.addToOrderTemplate}\r\n \r\n ) : (\r\n <>\r\n {cartLine.remove}\r\n {cartLine.addToWishlist}\r\n \r\n )\r\n }\r\n
\r\n );\r\n });\r\n }\r\n return (cartDataResult ? (\r\n
\r\n

\r\n {cartEmptyText}\r\n

\r\n {backToShoppingButton}\r\n
\r\n ) : <>\r\n {waitingComponent}\r\n \r\n );\r\n\r\n};\r\n\r\nconst isWrappingProduct = (cartLine: ICartlinesViewProps): boolean => {\r\n const attributeValue = getTextAttributeValue(cartLine?.data?.cartline?.AttributeValues!, \"TRUS_WrappingProductParentCartLineId\");\r\n return !!attributeValue;\r\n};\r\n\r\nconst getTextAttributeValue = (attributes: AttributeValueBase[], name: string) => {\r\n if (attributes) {\r\n const attribute = attributes?.find(x => x.Name == name) as AttributeTextValue \r\n if (attribute) {\r\n return attribute.TextValue;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\n/**\r\n * Method will render error block.\r\n * @param errorData -The order summary errors interface.\r\n * @returns Jsx element.\r\n */\r\nconst _renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\r\n if (!errorData || !ArrayExtensions.hasElements(errorData.errors)) {\r\n return null;\r\n }\r\n return (\r\n \r\n {errorData.header}\r\n {errorData.errors}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Method will render invoice summary lines.\r\n * @param invoiceSummaryLines -The invoicesummary lines interface.\r\n * @param OrderSummaryItems -The order summary items props.\r\n * @param props -The cartview props.\r\n * @returns Jsx element.\r\n */\r\nconst _renderInvoiceSummarylines = (invoiceSummaryLines: IInvoiceSummaryLines | undefined, OrderSummaryItems: INodeProps, props: ICartViewProps):\r\nJSX.Element | null => {\r\n if (!invoiceSummaryLines) {\r\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\r\n return null;\r\n }\r\n return (\r\n \r\n {invoiceSummaryLines.invoices}\r\n {invoiceSummaryLines.giftCard}\r\n {invoiceSummaryLines.loyalty}\r\n {invoiceSummaryLines.orderTotal}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Method will render order summary lines.\r\n * @param orderSummaryLines -The ordersummary lines interface.\r\n * @param OrderSummaryItems -The order summary items props.\r\n * @param props -The cartview props.\r\n * @returns Jsx element.\r\n */\r\nconst _renderOrderSummarylines = (orderSummaryLines: IOrderSummaryLines | undefined, OrderSummaryItems: INodeProps, props: ICartViewProps):\r\nJSX.Element | null => {\r\n if (!orderSummaryLines) {\r\n props.context.telemetry.error('OrderSummary content is empty, module wont render');\r\n return null;\r\n }\r\n return (\r\n \r\n {props.promoCode}\r\n {orderSummaryLines.subtotal}\r\n {orderSummaryLines.shipping}\r\n {orderSummaryLines.otherCharge}\r\n {orderSummaryLines.tax}\r\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\r\n {orderSummaryLines.orderTotal}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Method will render cart promotions.\r\n * @param promotions -The cartline item view props.\r\n * @returns Jsx element.\r\n */\r\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\r\n return (\r\n <>\r\n \r\n {promotions.promotionMessage}\r\n {promotions.promotionSeeAllLink}\r\n {promotions.promotionDialog}\r\n \r\n\r\n \r\n );\r\n\r\n};\r\n\r\n/**\r\n * Method will render cartlines group title.\r\n * @param cartLine -The cartline view props.\r\n * @param titleSeparate -The title separate.\r\n * @returns Jsx element.\r\n */\r\nconst renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, titleSeparate: string) => {\r\n const isBopisSelected: boolean | undefined = cartLine.pickUpInStore?.isBopisSelected;\r\n return (\r\n <>\r\n \r\n {isBopisSelected ?

\r\n {cartLine.pickUpInStore?.deliveryOption}\r\n {titleSeparate}\r\n {cartLine.pickUpInStore?.orgUnitName}\r\n

: null}\r\n
\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Method will render cartlines groups header title.\r\n * @param pickUpText -The pickup text for group.\r\n * @param shippingText -The shipping text for group.\r\n * @param emailShippingText -The email shipping text for group.\r\n * @param titleSeparate -The title separator.\r\n * @param cartLine -The cartline view props.\r\n * @param emailDeliveryModeCode -The email delivery code from channel.\r\n * @returns Jsx element.\r\n */\r\nconst renderCartLinesGroupHeader = (pickUpText: string, shippingText: string, emailShippingText: string,\r\n titleSeparate: string, cartLine: ICartlinesViewProps, emailDeliveryModeCode?: string) => {\r\n const isBopisSelected: boolean | undefined = cartLine.pickUpInStore?.isBopisSelected;\r\n let groupTitle: string;\r\n let groupTitleClass: string;//ut - fix\r\n\r\n groupTitle = isBopisSelected ? pickUpText : shippingText;\r\n groupTitleClass = isBopisSelected ? 'pickup' : 'shipping';\r\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailShippingText : groupTitle;\r\n groupTitleClass = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? \"email\" : groupTitleClass;\r\n\r\n return (\r\n <>\r\n
\r\n

\r\n

\r\n {groupTitle}\r\n

\r\n {renderCartLinesGroupTitle(cartLine, titleSeparate)}\r\n
\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Method will render cartlines in groups.\r\n * @param props -The cartline.\r\n * @returns Jsx element.\r\n */\r\nconst renderCartLinesGroup = (props: ICartViewProps): JSX.Element | undefined => {\r\n if (props.cartLinesGroup && ArrayExtensions.hasElements(props.cartLinesGroup)) {\r\n return (\r\n
\r\n { props.cartLinesGroup.map(cartlines => {\r\n return (
\r\n {renderCartLinesGroupHeader(props.resources.pickUpText, props.resources.shippingText,\r\n props.resources.emailshippingText, props.resources.titleSeparate, cartlines[0],\r\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode)}\r\n {_renderCartlines(cartlines, props.resources.emptyCartText, props.CartlinesWrapper, props.storeSelector,\r\n props.backToShoppingButton, props.waitingComponent, props.cartLoadingStatus, props.cartDataResult, props)}\r\n
);\r\n })}\r\n
\r\n );\r\n }\r\n return (props.cartDataResult ? (\r\n
\r\n
\r\n

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

\r\n {props.backToShoppingButton}\r\n
\r\n
\r\n ) : <>\r\n {props.waitingComponent}\r\n \r\n );\r\n\r\n};\r\n\r\nconst CartView: React.FC = (props: ICartViewProps) => (\r\n
\r\n {props.title}\r\n {!props.cart?.hasInvoiceLine && props.promotionOptions && _renderPromotions(props.promotionOptions)}\r\n {props.multiplePickUpEnabled ? renderCartLinesGroup(props) : \r\n {_renderCartlines(props.cartlines, props.resources.emptyCartText, props.CartlinesWrapper, props.storeSelector,\r\n props.backToShoppingButton, props.waitingComponent, props.cartLoadingStatus, props.cartDataResult, props)}\r\n }\r\n {props.orderSummaryHeading &&\r\n \r\n {props.orderSummaryHeading}\r\n {props.cart?.hasInvoiceLine ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props) : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\r\n {_renderErrorBlock(props.OrderSummaryErrors)}\r\n {props.checkoutAsSignInUserButton}\r\n {props.checkoutAsGuestButton}\r\n {props.backToShoppingButton}\r\n {props.createTemplateFromCartButton}\r\n }\r\n {props.storeSelector}\r\n
\r\n);\r\n\r\nexport default CartView;\r\n","import React, { useState } from \"react\";\r\nimport classNames from 'classnames';\r\nimport { updateCartLinesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\r\nimport { getAttributeValuesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\r\nimport {\r\n CultureInfoFormatter\r\n} from '@msdyn365-commerce/core-internal';\r\nimport { AttributeTextValue, SimpleProduct, AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\nimport { ICoreContext, IActionContext } from '@msdyn365-commerce/core';\r\nimport { ICartlinesViewProps } from '@msdyn365-commerce-modules/cart/src/modules/cart/components/cart-line-items';\r\nimport { getCartState } from '@msdyn365-commerce/global-state';\r\nimport { Button} from '@msdyn365-commerce-modules/utilities';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { ICartConfig, ICartResources } from \"../../definition-extensions/cart.ext.props.autogenerated\";\r\nimport { createBooleanAttribute, createTextAttribute, getAttributeValueOrDefault, getBooleanAttributeValue, getTextAttributeValue, updateBooleanAttribute, updateTextAttribute } from \"../../../../utilities/attribute-utilities\";\r\nimport { getProductsByMasterProductId } from \"../../../../utilities/product-utilities\";\r\n\r\nexport interface IGiftWrapppingComponentProps {\r\n cartLine: ICartlinesViewProps\r\n allLines: ICartlinesViewProps[]\r\n masterProduct?: number;\r\n channelId?: number;\r\n context?: ICoreContext | undefined;\r\n resources?: ICartResources | undefined;\r\n configs?: ICartConfig | undefined;\r\n}\r\n\r\nexport interface IGiftWrappingResources{\r\n toggleLabel?: string;\r\n disableGiftwrappingLabel?: string;\r\n enableGiftwrappingLabel?: string;\r\n}\r\n\r\nconst wrappingProductAttrName: string = \"TRUS_CartLineWrappingProductId\";\r\nconst cartLineNeedWrappingAttrName: string = \"TRUS_CartLineNeedWrapping\";\r\nconst wrappingProductNumberAttrName: string = \"TRUS_CartLineWrappingProductCaclNumber\";\r\nconst enableWrappingAttrName: string = \"Gift Wrapping\";\r\n\r\nexport const GiftWrappping: React.FC = ({context, cartLine, allLines, configs, resources}) => {\r\n\r\n const masterWrappingProductId = configs?.masterProductId;\r\n const giftWrappingResources: IGiftWrappingResources = {\r\n toggleLabel: resources?.giftWrappingSectionTitle || '',\r\n enableGiftwrappingLabel: resources?.enableGiftwrappingLabel || '',\r\n disableGiftwrappingLabel: resources?.disableGiftwrappingLabel || '',\r\n }\r\n\r\n const channelId = context?.actionContext?.requestContext?.apiSettings?.channelId!;\r\n const actionContext = context?.actionContext as IActionContext;\r\n \r\n initializeTelementryAndCultureFormatterIfMissing(context!);\r\n\r\n const [wrappingProducts, setWrappingProducts] = useState([])\r\n const [wrappingEnabled, setWrappingEnabled] = useState(false)\r\n\r\n React.useEffect(() => {\r\n if (masterWrappingProductId) {\r\n const fetchData = async () => {\r\n const productAttributes = await getProductAttributes(cartLine.data?.cartline.ProductId!, channelId, actionContext);\r\n const isWrappingEnabledForProduct = getAttributeValueOrDefault(productAttributes, enableWrappingAttrName, (x) => x.BooleanValue, true);\r\n\r\n setWrappingEnabled(isWrappingEnabledForProduct);\r\n\r\n if (isWrappingEnabledForProduct) {\r\n const products = await getProductsByMasterProductId(masterWrappingProductId, channelId, actionContext);\r\n setWrappingProducts(products)\r\n }\r\n };\r\n fetchData().catch(console.error);\r\n }\r\n else {\r\n console.error(\"Invalid master product id provided\")\r\n }\r\n },[]);\r\n\r\n return (\r\n <>\r\n { \r\n wrappingEnabled &&\r\n \r\n {renderEnableGiftWrappingToggle(cartLine, context!, giftWrappingResources, wrappingProducts)}\r\n {\r\n isCartLineNeedWrapping(cartLine) && \r\n
\r\n
\r\n { wrappingProducts.map(product => renderWrappingProduct(cartLine, allLines, product, context!)) }\r\n
\r\n
\r\n }\r\n
\r\n }\r\n \r\n );\r\n};\r\n\r\nfunction initializeTelementryAndCultureFormatterIfMissing(context: ICoreContext){\r\n const actionContext = context?.actionContext as IActionContext;\r\n if(context && !context.telemetry)\r\n context.telemetry = actionContext.telemetry;\r\n if(context && !context.cultureFormatter)\r\n context.cultureFormatter = new CultureInfoFormatter(\r\n actionContext?.requestContext?.locale,\r\n actionContext?.requestContext?.channel?.Currency ?? \"SAR\",\r\n actionContext?.requestContext?.query\r\n )\r\n}\r\n\r\nfunction renderWrappingProduct(cartLine: ICartlinesViewProps, allLines: ICartlinesViewProps[], product: SimpleProduct, context: ICoreContext){\r\n const variantClassName = classNames(\"giftwrapping_variant\", getSelectedWrappingProductId(cartLine, allLines) === product.RecordId ? \"selected-wrapping\" : \"\");\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {context?.cultureFormatter?.formatCurrency(product.AdjustedPrice)}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nconst renderEnableGiftWrappingToggle = (cartLine: ICartlinesViewProps, ctx: ICoreContext, resources: IGiftWrappingResources, wrappingProducts?: SimpleProduct[]): JSX.Element | null => {\r\n let value = getBooleanAttributeValue(cartLine?.data?.cartline?.AttributeValues!, cartLineNeedWrappingAttrName, false);\r\n const toggleState = value === true && 'enable' || 'disable';\r\n const buttonValue = value === true && 'true' || 'false';\r\n const ariaPressed = value;\r\n const className = \"giftwrapping\";\r\n\r\n return (\r\n
\r\n

{resources.toggleLabel}

\r\n {(\r\n
\r\n\r\n {resources.disableGiftwrappingLabel}\r\n \r\n {resources.enableGiftwrappingLabel}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nconst updateSelectedWrappingVariant = (cartLine: ICartlinesViewProps, product: SimpleProduct, context: ICoreContext) => {\r\n return async () => {\r\n const actionContext = context.actionContext;\r\n const cartState = await getCartState(actionContext);\r\n const cartLineToUpdate = cartState?.cart?.CartLines?.find(x => x.LineId === cartLine.cartlineId);\r\n if (cartLineToUpdate) {\r\n cartLineToUpdate.AttributeValues = cartLineToUpdate.AttributeValues || [];\r\n let changeSet = [ \r\n { attributeName: wrappingProductAttrName, value: product.RecordId.toString() },\r\n { attributeName: wrappingProductNumberAttrName, value: calculateProductNumber(product) }\r\n ]\r\n changeSet.map(x => {\r\n let attributeValue = cartLineToUpdate.AttributeValues?.find(a => a.Name === x.attributeName) \r\n if (attributeValue) {\r\n updateTextAttribute(attributeValue as AttributeTextValue, x.value!);\r\n } else {\r\n cartLineToUpdate.AttributeValues?.push(createTextAttribute(x.attributeName!, x.value!));\r\n }\r\n });\r\n await updateCartLinesAsync({ callerContext: actionContext }, cartState?.cart.Id, cartState?.cart?.CartLines);\r\n await cartState.refreshCart({});\r\n } \r\n }\r\n};\r\n\r\nconst updateIsCartLineNeedWrapping = (cartLine: ICartlinesViewProps, context: ICoreContext, value: boolean, wrappingProducts?: SimpleProduct[]) => {\r\n return async ( ) => {\r\n const actionContext = context.actionContext;\r\n const cartState = await getCartState(actionContext);\r\n const cartLineToUpdate = cartState?.cart?.CartLines?.find(x => x.LineId === cartLine.cartlineId);\r\n if (cartLineToUpdate) {\r\n cartLineToUpdate.AttributeValues = cartLineToUpdate.AttributeValues?.filter(x => x.Name !== wrappingProductAttrName && x.Name !== wrappingProductNumberAttrName) ?? [];\r\n\r\n let changeSet: any[] = [ \r\n { attributeName: cartLineNeedWrappingAttrName, value: value, type: \"boolean\" }\r\n ]\r\n\r\n if (value === true && wrappingProducts && wrappingProducts.length > 0) {\r\n let product = wrappingProducts[0];\r\n changeSet.push({ attributeName: wrappingProductAttrName, value: product.RecordId.toString(), type: \"text\" })\r\n changeSet.push({ attributeName: wrappingProductNumberAttrName, value: calculateProductNumber(product), type: \"text\" })\r\n }\r\n\r\n changeSet.map(x => {\r\n let attributeValue = cartLineToUpdate.AttributeValues?.find(a => a.Name === x.attributeName) \r\n if (attributeValue) {\r\n if(x.type === \"text\")\r\n updateTextAttribute(attributeValue as AttributeTextValue, x.value!);\r\n if(x.type === \"boolean\")\r\n updateBooleanAttribute(attributeValue as AttributeTextValue, x.value!);\r\n } else {\r\n if(x.type === \"text\")\r\n cartLineToUpdate.AttributeValues?.push(createTextAttribute(x.attributeName!, x.value!));\r\n if(x.type === \"boolean\")\r\n cartLineToUpdate.AttributeValues?.push(createBooleanAttribute(x.attributeName!, x.value!));\r\n }\r\n });\r\n\r\n await updateCartLinesAsync({ callerContext: actionContext }, cartState?.cart.Id, cartState?.cart?.CartLines);\r\n await cartState.refreshCart({});\r\n }\r\n }\r\n};\r\n\r\nasync function getProductAttributes(productId: number, channelId: number, actionContext: IActionContext): Promise {\r\n return await getAttributeValuesAsync({ callerContext: actionContext}, productId, channelId, 0);\r\n}\r\n\r\nconst isCartLineNeedWrapping = (cartLine: ICartlinesViewProps) => {\r\n return getBooleanAttributeValue(cartLine?.data?.cartline?.AttributeValues!, cartLineNeedWrappingAttrName, false);\r\n};\r\n\r\nconst getSelectedWrappingProductId = (cartLine: ICartlinesViewProps, allLines: ICartlinesViewProps[]) => {\r\n const wrappingProductId = getTextAttributeValue(cartLine?.data?.cartline?.AttributeValues!, wrappingProductAttrName);\r\n return wrappingProductId ? parseInt(wrappingProductId) : null;\r\n};\r\n\r\nconst calculateProductNumber = (product: SimpleProduct) => {\r\n if (product) {\r\n return `${product.ItemId}-${product.Dimensions?.map(x => x?.DimensionValue?.DimensionId).join(\",\")}`;\r\n }\r\n return '';\r\n};","export interface IImageResponse {\r\n imageUrl: string;\r\n errorMessage?: string;\r\n}\r\n\r\nexport class ImageResponseClass implements IImageResponse {\r\n public imageUrl: string;\r\n public errorMessage?: string;\r\n\r\n constructor(odataObject?: any) {\r\n odataObject = odataObject || {};\r\n\r\n this.imageUrl = odataObject.imageUrl;\r\n this.errorMessage = odataObject.errorMessage;\r\n }\r\n}","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n * THIS FILE IS AN AUTOGENERATED TYPESCRIPT PROXY EXTENSION.\r\n * TO USE THIS FILE, IT MUST BE ADDED TO A D365COMMERCE APPLICATION\r\n */\r\n// tslint:disable\r\nimport {\r\n AsyncResult,\r\n callActionOrExecute,\r\n DataServiceQuery,\r\n IContext,\r\n IDataServiceRequest\r\n} from '@msdyn365-commerce/retail-proxy';\r\n// @ts-ignore\r\nimport * as EntityClasses from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceModels.g';\r\nimport * as DataServiceEntities from './DataServiceEntities.g';\r\n\r\nexport function trusUploadImageQuery(): DataServiceQuery {\r\n return new DataServiceQuery();\r\n}\r\n\r\nexport function trusUploadImageInput(base64Data: string, fileName: string): IDataServiceRequest {\r\n const query = trusUploadImageQuery();\r\n\r\n return query.createDataServiceRequestForOperation(\r\n 'TRUSUploadImage',\r\n true,\r\n DataServiceEntities.ImageResponseClass,\r\n 'false',\r\n { bypassCache: 'get', returnEntity: 'DataServiceEntities.IImageResponse' },\r\n {\r\n imageData: {\r\n Base64Data: base64Data,\r\n FileName: fileName\r\n }\r\n }\r\n );\r\n}\r\n\r\nexport function trusUploadImageAsync(context: IContext, base64Data: string, fileName: string): AsyncResult {\r\n const request = trusUploadImageInput(base64Data, fileName);\r\n return callActionOrExecute(request, context.callerContext);\r\n}\r\n","import React from \"react\";\r\nimport classNames from 'classnames';\r\nimport { updateCartLinesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CartsDataActions.g';\r\nimport { AttributeTextValue } from '@msdyn365-commerce/retail-proxy';\r\nimport { ICoreContext, IActionContext} from '@msdyn365-commerce/core';\r\nimport { ICartlinesViewProps } from '@msdyn365-commerce-modules/cart/src/modules/cart/components/cart-line-items';\r\nimport { getCartState } from '@msdyn365-commerce/global-state';\r\nimport { Button, Node} from '@msdyn365-commerce-modules/utilities';\r\nimport { ICartConfig, ICartResources } from \"../../definition-extensions/cart.ext.props.autogenerated\";\r\nimport { createBooleanAttribute, createTextAttribute, getAttributeValueOrDefault, getBooleanAttributeValue, getTextAttributeValue, updateBooleanAttribute, updateTextAttribute } from \"../../../../utilities/attribute-utilities\";\r\nimport { trusUploadImageAsync } from \"../../../../custom-proxy/DataActionExtension.g\";\r\nimport { getAttributeValuesAsync } from \"@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g\";\r\n\r\nexport interface IPaperGiftCardComponentProps {\r\n cartLine: ICartlinesViewProps\r\n allLines: ICartlinesViewProps[]\r\n masterProduct?: number;\r\n channelId?: number;\r\n context?: ICoreContext | undefined;\r\n resources?: ICartResources | undefined;\r\n configs?: ICartConfig | undefined;\r\n}\r\n\r\nexport interface IPaperGiftCardComponentState {\r\n from?: string,\r\n to?: string,\r\n message?: string,\r\n image?: string,\r\n imageName?: string,\r\n isEditMode: boolean,\r\n isDataLoaded: boolean,\r\n canDiscard: boolean,\r\n errorMessage?: string\r\n isProcesssing: boolean,\r\n wrappingEnabled: boolean\r\n}\r\n\r\nexport interface IGiftCardResources{\r\n toggleLabel?: string;\r\n disableGiftwrappingLabel?: string;\r\n enableGiftwrappingLabel?: string;\r\n}\r\n\r\nconst needPaperGiftCardAttribute: string = \"TRUS_CartLineNeedGiftCard\";\r\nconst paperGiftCardFromAttribute: string = \"TRUS_PaperGiftCardFrom\";\r\nconst paperGiftCardToAttribute: string = \"TRUS_PaperGiftCardTo\";\r\nconst paperGiftCardMessageAttribute: string = \"TRUS_PaperGiftCardMessage\";\r\nconst paperGiftCardImageAttribute: string = \"TRUS_PaperGiftCardImage\";\r\nconst enableWrappingAttrName: string = \"Gift Wrapping\";\r\n\r\nexport class PaperGiftCard extends React.Component {\r\n\r\n constructor(props: IPaperGiftCardComponentProps, state: IPaperGiftCardComponentState) {\r\n super(props);\r\n this.state = { \r\n isEditMode: false, \r\n canDiscard: false,\r\n isDataLoaded: false,\r\n isProcesssing: false,\r\n wrappingEnabled: false,\r\n };\r\n }\r\n\r\n get isSaveButtonVisible(): boolean {\r\n return this.state.isEditMode;\r\n }\r\n\r\n get isCancelVisible(): boolean {\r\n return this.isSaveButtonVisible && this.state.canDiscard;\r\n }\r\n\r\n componentDidMount(): void {\r\n this.initializeStateFromAttributes();\r\n\r\n const fetchData = async () => {\r\n const productAttributes = await getAttributeValuesAsync({ callerContext: this.props.context?.actionContext! }, this.props.cartLine.data?.cartline.ProductId!, this.props.context?.actionContext?.requestContext?.apiSettings?.channelId!, 0);;\r\n const isWrappingEnabledForProduct = getAttributeValueOrDefault(productAttributes, enableWrappingAttrName, (x) => x.BooleanValue, true);\r\n\r\n this.setState({wrappingEnabled: isWrappingEnabledForProduct})\r\n };\r\n\r\n fetchData().catch(console.error);\r\n }\r\n\r\n initializeStateFromAttributes(): void {\r\n const {\r\n cartLine\r\n } = this.props;\r\n\r\n const from = getTextAttributeValue(cartLine?.data?.cartline?.AttributeValues!, paperGiftCardFromAttribute) ?? '';\r\n const to = getTextAttributeValue(cartLine?.data?.cartline?.AttributeValues!, paperGiftCardToAttribute) ?? '';\r\n const message = getTextAttributeValue(cartLine?.data?.cartline?.AttributeValues!, paperGiftCardMessageAttribute) ?? '';\r\n const image = getTextAttributeValue(cartLine?.data?.cartline?.AttributeValues!, paperGiftCardImageAttribute) ?? '';\r\n\r\n this.setState({\r\n from: from,\r\n to: to,\r\n message: message,\r\n image: image,\r\n canDiscard: !!from && !!to && !!message && !!image,\r\n isEditMode: false,\r\n isDataLoaded: true,\r\n isProcesssing: false,\r\n\r\n imageName: undefined,\r\n errorMessage: undefined\r\n })\r\n }\r\n\r\n public render(): JSX.Element {\r\n\r\n const {\r\n cartLine,\r\n resources,\r\n context\r\n } = this.props;\r\n \r\n const giftWrappingResources: IGiftCardResources = {\r\n toggleLabel: 'Free Paper Gift Card' || '',\r\n enableGiftwrappingLabel: resources?.enableGiftwrappingLabel || '',\r\n disableGiftwrappingLabel: resources?.disableGiftwrappingLabel || '',\r\n }\r\n \r\n return (\r\n <>\r\n {\r\n this.state.wrappingEnabled &&\r\n \r\n {\r\n this.renderGiftWrappingToggle(cartLine, context!, giftWrappingResources)\r\n }\r\n {\r\n isWrappingNeeded(cartLine) && this.state.isDataLoaded && this.renderGiftCardInputs()\r\n }\r\n \r\n }\r\n \r\n );\r\n }\r\n\r\n private readonly onFromInputChangeHandler = (e: React.ChangeEvent) => {\r\n this.setState({\r\n from: e.target.value,\r\n isEditMode: true,\r\n errorMessage: undefined\r\n });\r\n };\r\n\r\n private readonly onToInputChangeHandler = (e: React.ChangeEvent) => {\r\n this.setState({\r\n to: e.target.value,\r\n isEditMode: true,\r\n errorMessage: undefined\r\n });\r\n };\r\n\r\n private readonly onMessageInputChangeHandler = (e: React.ChangeEvent) => {\r\n this.setState({\r\n message: e.target.value,\r\n isEditMode: true,\r\n errorMessage: undefined\r\n });\r\n };\r\n\r\n private readonly onImageInputChangeHandler = (event: React.ChangeEvent) => {\r\n if(event.target.files && event.target.files.length > 0 && event.target.files[0]){\r\n const reader = new FileReader();\r\n const imageFile = event.target.files[0];\r\n const fileName = imageFile.name;\r\n reader.onload = (ev: any) => {\r\n this.setState({\r\n image: ev.target.result,\r\n imageName: fileName,\r\n isEditMode: true,\r\n errorMessage: undefined\r\n });\r\n };\r\n reader.onerror = (ev: any) => {\r\n this.setState({\r\n errorMessage: \"Error while uploading image, please try again or choose different image format\"\r\n });\r\n };\r\n reader.readAsDataURL(imageFile);\r\n \r\n //clean file input\r\n ///@ts-ignore\r\n event.target.value = null;\r\n }\r\n };\r\n\r\n private readonly cleanImageHandler = () => {\r\n this.setState({\r\n isEditMode: true,\r\n image: undefined,\r\n imageName: undefined,\r\n errorMessage: undefined \r\n });\r\n };\r\n\r\n private readonly savePaperGiftCardInfo = async () => {\r\n const { to, from, message, image, imageName } = this.state;\r\n let imageUrl = image;\r\n \r\n if (to && from && message) {\r\n\r\n this.setState({ isProcesssing: true })\r\n\r\n if (imageName) {\r\n imageUrl = await uploadPaperGiftCardImage(this.props.context?.actionContext!, image!, imageName!);\r\n if (!imageUrl) {\r\n this.setState({ errorMessage: \"Error occured while saving image. Please try image with png or jpg format\", isProcesssing: false })\r\n return;\r\n }\r\n }\r\n await updatePaperGiftCardInfo(this.props.cartLine, this.props.context!, to!, from!, message!, imageUrl!);\r\n this.initializeStateFromAttributes();\r\n return;\r\n }\r\n else {\r\n this.setState({ errorMessage: \"Fill all required fields before save or disable paper gift card option if you don't need it\" })\r\n }\r\n };\r\n\r\n private readonly discardEdit = () => {\r\n this.initializeStateFromAttributes()\r\n };\r\n\r\n private renderGiftCardInputs(){\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

{this.state.errorMessage}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n { \r\n (!this.state.image) && \r\n \r\n }\r\n { \r\n (this.state.image) && \r\n
\r\n
\r\n \r\n {this.state.imageName}\r\n {/*×*/}\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n {\r\n this.state.isProcesssing && \r\n
\r\n Saving..\r\n
\r\n }\r\n {\r\n this.isSaveButtonVisible && !this.state.isProcesssing &&\r\n
\r\n Save\r\n
\r\n }\r\n {\r\n (this.state.image) && !this.state.isProcesssing &&\r\n
\r\n Remove image\r\n
\r\n }\r\n {\r\n this.isCancelVisible&& !this.state.isProcesssing &&\r\n
\r\n Cancel Edit\r\n
\r\n }\r\n
\r\n
\r\n )\r\n }\r\n\r\n private renderGiftWrappingToggle(cartLine: ICartlinesViewProps, ctx: ICoreContext, resources: IGiftCardResources): JSX.Element | null {\r\n let value = getBooleanAttributeValue(cartLine?.data?.cartline?.AttributeValues!, needPaperGiftCardAttribute, false);\r\n const toggleState = value === true && 'enable' || 'disable';\r\n const buttonValue = value === true && 'true' || 'false';\r\n const ariaPressed = value;\r\n const className = \"giftwrapping\";\r\n \r\n return (\r\n
\r\n

{resources.toggleLabel}

\r\n {(\r\n
\r\n \r\n {resources.disableGiftwrappingLabel}\r\n \r\n {resources.enableGiftwrappingLabel}\r\n
\r\n )}\r\n
\r\n );\r\n };\r\n\r\n private updateProductNeedPaperGiftCard(cartLine: ICartlinesViewProps, context: ICoreContext, value: boolean){\r\n return async ( ) => {\r\n const actionContext = context.actionContext as IActionContext;\r\n if (actionContext) {\r\n const cartState = await getCartState(actionContext);\r\n const cartLineToUpdate = cartState?.cart?.CartLines?.find(x => x.LineId === cartLine.cartlineId);\r\n if (cartLineToUpdate) {\r\n \r\n //clean paper gift card data from attributes\r\n cartLineToUpdate.AttributeValues = cartLineToUpdate.AttributeValues || [];\r\n cartLineToUpdate.AttributeValues = cartLineToUpdate.AttributeValues?.filter(x => x.Name !== paperGiftCardFromAttribute);\r\n cartLineToUpdate.AttributeValues = cartLineToUpdate.AttributeValues?.filter(x => x.Name !== paperGiftCardToAttribute);\r\n cartLineToUpdate.AttributeValues = cartLineToUpdate.AttributeValues?.filter(x => x.Name !== paperGiftCardMessageAttribute);\r\n cartLineToUpdate.AttributeValues = cartLineToUpdate.AttributeValues?.filter(x => x.Name !== paperGiftCardImageAttribute);\r\n \r\n const attributeValue = cartLineToUpdate.AttributeValues?.find(x => x.Name == needPaperGiftCardAttribute) \r\n if (attributeValue) {\r\n updateBooleanAttribute(attributeValue as AttributeTextValue, value);\r\n } else {\r\n cartLineToUpdate.AttributeValues?.push(createBooleanAttribute(needPaperGiftCardAttribute, value));\r\n }\r\n \r\n await updateCartLinesAsync({ callerContext: actionContext }, cartState?.cart.Id, cartState?.cart?.CartLines);\r\n await cartState.refreshCart({});\r\n this.initializeStateFromAttributes();\r\n }\r\n }\r\n }\r\n };\r\n};\r\n\r\nconst uploadPaperGiftCardImage = async (actionContext: IActionContext, imageBase64: string, imageName: string): Promise => {\r\n let imageUrl = \"\";\r\n const context = { callerContext: actionContext };\r\n\r\n try {\r\n const imageData = await trusUploadImageAsync(context, imageBase64, imageName);\r\n if (imageData && imageData.imageUrl) {\r\n imageUrl = imageData.imageUrl;\r\n }\r\n }\r\n catch {\r\n imageUrl = \"\";\r\n }\r\n\r\n return imageUrl;\r\n};\r\n\r\nconst updatePaperGiftCardInfo = async (cartLine: ICartlinesViewProps, context: ICoreContext, to: string, from: string, message: string, image: string) => {\r\n const actionContext = context.actionContext as IActionContext;\r\n if (actionContext) {\r\n const cartState = await getCartState(actionContext);\r\n const cartLineToUpdate = cartState?.cart?.CartLines?.find(x => x.LineId === cartLine.cartlineId);\r\n if (cartLineToUpdate) {\r\n cartLineToUpdate.AttributeValues = cartLineToUpdate.AttributeValues || [];\r\n let changeSet = [ \r\n { attribute: paperGiftCardFromAttribute, value: from },\r\n { attribute: paperGiftCardToAttribute, value: to }, \r\n { attribute: paperGiftCardMessageAttribute, value: message }, \r\n { attribute: paperGiftCardImageAttribute, value: image }\r\n ]\r\n changeSet.map(x => {\r\n let attributeValue = cartLineToUpdate.AttributeValues?.find(a => a.Name === x.attribute) \r\n if (attributeValue) {\r\n updateTextAttribute(attributeValue as AttributeTextValue, x.value!);\r\n } else {\r\n cartLineToUpdate.AttributeValues?.push(createTextAttribute(x.attribute!, x.value!));\r\n }\r\n });\r\n await updateCartLinesAsync({ callerContext: actionContext }, cartState?.cart.Id, cartState?.cart?.CartLines);\r\n await cartState.refreshCart({});\r\n }\r\n } \r\n};\r\n\r\nconst isWrappingNeeded = (cartLine: ICartlinesViewProps) => {\r\n return getBooleanAttributeValue(cartLine?.data?.cartline?.AttributeValues!, needPaperGiftCardAttribute, false);\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\nimport { HtmlHeadInclude, CultureInfoFormatter } from '@msdyn365-commerce/core';\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\r\nimport { Collapse, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { IHeaderResources } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\nconst headerView: React.FC = props => {\r\n const {\r\n context,\r\n HeaderTag,\r\n HeaderContainer,\r\n HeaderTopBarContainer,\r\n Divider\r\n } = props;\r\n\r\n React.useEffect(() => {\r\n //@ts-ignore\r\n if (context?.cultureFormatter && context.cultureFormatter.locale !== \"en-US\") {\r\n context.cultureFormatter = new CultureInfoFormatter(\r\n \"en-US\",\r\n context.actionContext?.requestContext?.channel?.Currency ?? \"SAR\",\r\n context.actionContext.requestContext.query\r\n )\r\n }\r\n },[]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {_renderNavigateBack(props)}\r\n {props.navIcon}\r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.preferredStore}\r\n {_renderAccountBlock(props, false)}\r\n {props.wishListIconDesktop}\r\n \r\n {props.cartIcon}\r\n {_renderReactFragment(props.siteOptions)}\r\n \r\n {_renderCollapseMenu(props)}\r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\r\n const { Divider, /*MobileMenuLinksContainer,*/ mobileMenuCollapsed } = props;\r\n return (\r\n \r\n {/*\r\n {_renderReactFragment(props.search)}\r\n {_renderMobileAccountBlock(props, true)}\r\n {props.wishListIconMobile}\r\n {props.siteOptions}\r\n */}\r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n );\r\n}\r\n\r\n/*\r\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\r\n const customer = accountInformation && accountInformation.result;\r\n return (\r\n <>\r\n {customer ? customer.FirstName || customer.Name : ''}\r\n \r\n );\r\n};\r\n*/\r\n\r\n/*\r\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n signOutLink,\r\n signInLink,\r\n data,\r\n accountLinks } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames('ms-header__drawer', AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\r\n\r\n if (accountLinks) {\r\n return (\r\n \r\n
\r\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\r\n {signOutLink}\r\n
\r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n return null;\r\n}\r\n*/\r\n\r\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): 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\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames(AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop', 'trus-accountbutton');\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\n\r\nfunction _renderNavigateBack(props: IHeaderViewProps): JSX.Element | null {\r\n const resources = props.resources as IHeaderResources;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n <>\r\n {items && items.length > 0 ? items.map((slot: React.ReactNode, index: number) => {\r\n return (\r\n {slot}\r\n );\r\n }) : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","import { AttributeTextValue, AttributeValue, AttributeValueBase } from \"@msdyn365-commerce/retail-proxy\";\r\n\r\nexport const updateTextAttribute = (attribute: AttributeTextValue, value: string) => {\r\n if (attribute) {\r\n attribute.TextValue = value;\r\n attribute.TextValueTranslations = [];\r\n attribute['@odata.type'] = \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue\";\r\n } \r\n return attribute;\r\n};\r\n\r\nexport const updateBooleanAttribute = (attribute: AttributeTextValue, value: boolean) => {\r\n return updateTextAttribute(attribute, value === true ? \"true\" : \"false\");\r\n};\r\n\r\nexport const createBooleanAttribute = (name: string, value: boolean) => {\r\n return createTextAttribute(name, value === true ? \"true\" : \"false\")\r\n};\r\n\r\nexport const createTextAttribute = (name: string, value: string) => {\r\n return { \r\n Name : name, \r\n TextValue: value,\r\n TextValueTranslations: [],\r\n '@odata.type': \"#Microsoft.Dynamics.Commerce.Runtime.DataModel.AttributeTextValue\"\r\n };\r\n};\r\n\r\nexport const getTextAttributeValue = (attributes: AttributeValueBase[], name: string) => {\r\n if (attributes) {\r\n const attribute = attributes?.find(x => x.Name == name) as AttributeTextValue \r\n if (attribute) {\r\n return attribute.TextValue;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nexport const getBooleanAttributeValue = (attributes: AttributeValueBase[], name: string, defaultVal: boolean = false) => {\r\n const textValue = getTextAttributeValue(attributes, name);\r\n if (textValue) {\r\n return textValue.toLowerCase() === \"true\" ? true : false;\r\n }\r\n return defaultVal;\r\n};\r\n\r\nexport const getAttributeValueOrDefault = (attributes: AttributeValue[], name: string, valueSelector: (x: AttributeValue) => any, defaultVal: boolean = false) => {\r\n const attribute = attributes.find(x => x.Name === name);\r\n if (attribute) {\r\n const attributeValue = valueSelector(attribute);\r\n if (attributeValue === undefined || attributeValue === null) {\r\n return defaultVal\r\n }\r\n return attributeValue;\r\n }\r\n return defaultVal;\r\n};","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\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 { getRichTextHtml } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\n/**\n * Product specification table row.\n */\nexport interface IProductSpecificationTableRow {\n productName?: string;\n cellData?: React.ReactNode;\n className?: string;\n}\n\n/**\n * Product specification table row component.\n * @param props - For product specification table row.\n * @param props.productName - Product name.\n * @param props.cellData - Cell data.\n * @param props.className - Class name.\n * @returns - Returns JSX element.\n */\nexport const ProductSpecificationTableRow: React.FC = ({ productName, cellData, className }) => (\n \n \n {/* eslint-disable-next-line react/no-danger */}\n \n \n {cellData}\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 { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Drawer, IModuleProps, INodeProps, Module } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\nimport { AttributesForSelectedVariantInput, getAttributesForSelectedVariant } from '../..';\nimport { ProductSpecificationTableRow } from './components/product-specification-table-stucture';\nimport { IProductSpecificationData } from './product-specification.data';\nimport { displayStyle, IProductSpecificationProps } from './product-specification.props.autogenerated';\n\n/**\n * Maintain Drawer State.\n */\nexport interface IProductSpecificationState {\n isDrawerOpen: boolean;\n isAdditionalMediaDrawerOpen: boolean;\n drawerListId: number | undefined;\n}\n\n/**\n * Product specification view props.\n */\nexport interface IProductSpecificationViewProps extends IProductSpecificationProps<{}> {\n ProductSpecification: IModuleProps;\n ProductSpecificationTableProps: INodeProps;\n ProductSpecificationTableBodyProps: INodeProps;\n productSpecificationResult?: (JSX.Element | null)[];\n\n title?: React.ReactNode;\n isAccrodion?: boolean;\n handleText?(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * Check for display style either accordion or table.\n */\nexport interface IProductSpecificationExtentedProps extends IProductSpecificationProps {\n displayStyle?: displayStyle;\n}\n\n/**\n *\n * ProductSpecification component.\n * @extends {React.Component>}\n */\n@observer\nclass ProductSpecification extends React.Component {\n public constructor(props: IProductSpecificationExtentedProps) {\n super(props);\n this.state = {\n isDrawerOpen: false,\n isAdditionalMediaDrawerOpen: false,\n drawerListId: undefined\n };\n }\n\n public async componentDidMount(): Promise {\n const { context, data, telemetry } = this.props;\n const catalogId = Msdyn365.getCatalogId(this.props.context.request);\n validateCatalogId(catalogId);\n reaction(\n () => (data.product.result ? data.product.result.RecordId : null),\n () => {\n if (context && data.product.result) {\n const actionInput = new AttributesForSelectedVariantInput(\n data.product.result.RecordId,\n\n +context.actionContext.requestContext.apiSettings.channelId,\n data.product.result,\n catalogId\n );\n\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch((error: Error) => {\n telemetry.error(error.message);\n telemetry.debug('Unable to update attributes for Product');\n telemetry.error(error.message);\n });\n }\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IProductSpecificationExtentedProps, nextState: IProductSpecificationState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n let data: IProductSpecificationData;\n try {\n data = this.props.data;\n } catch (error) {\n this.props.telemetry.error(`Something went wrong ------${error}`);\n return
{error}
;\n }\n\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\n this.props.telemetry.error('Product specification content is empty, module wont render.');\n return null;\n }\n\n const { heading, className } = this.props.config;\n const { productSpecificationData } = this.props.data;\n const isAccrodion = this.props.config.displayStyle === displayStyle.accordion;\n const viewProps = {\n ...this.props,\n handleText: this.handleHeadingChange,\n ProductSpecification: {\n moduleProps: this.props,\n className: classnames('ms-product-specification', className)\n },\n ProductSpecificationTableProps: isAccrodion\n ? {\n moduleProps: this.props,\n className: classnames('ms-product-specification__accordion', className)\n }\n : {\n className: classnames('ms-product-specification__table table-striped table-bordered'),\n tag: 'table'\n },\n isAccrodion,\n ProductSpecificationTableBodyProps: isAccrodion\n ? {}\n : {\n className: '',\n tag: 'tbody'\n },\n title: heading?.text && (\n \n ),\n productSpecificationResult:\n productSpecificationData.result && (isAccrodion ? this._createDrawerBody(data) : this._createTableBody(data))\n } as IProductSpecificationViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle Heading Text Change.\n * @param event - Current event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n private _createTableBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const tableRows = content.productSpecificationData.result!.map((product, index) => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n\n if (!cellData) {\n return null;\n }\n\n return (\n <>\n \n \n );\n });\n\n if (this.props.context.request.app?.config?.OmniChannelMedia && this.props.data.additionalMediaLocations.result?.length) {\n tableRows.push(this._createAdditionalMediaDrawer());\n }\n\n return tableRows;\n }\n\n private _createDrawerBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n\n const drawers = content.productSpecificationData.result!.map(product => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n if (!cellData) {\n return null;\n }\n return (\n \n \n
{cellData}
\n \n
\n );\n });\n\n if (this.props.context.request.app?.config?.OmniChannelMedia && this.props.data.additionalMediaLocations.result?.length) {\n drawers.push(this._createAdditionalMediaDrawer());\n }\n\n return drawers;\n }\n private _createAdditionalMediaDrawer(): JSX.Element {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n\n return (\n \n {\n this.setState(prevState => ({\n ...prevState,\n isAdditionalMediaDrawerOpen: !prevState.isAdditionalMediaDrawerOpen\n }));\n }}\n >\n
\n \n
\n \n
\n );\n }\n\n private readonly _toggle = (drawerListId: number | undefined) => (): void => {\n if (this.state.drawerListId !== drawerListId) {\n this.setState({ drawerListId, isDrawerOpen: true });\n } else {\n this.setState({ drawerListId: undefined, isDrawerOpen: false });\n }\n };\n\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\n switch (product.DataTypeValue) {\n case 0: // None\n // Return span here instead of null so the row still shows\n return ;\n case 1: // Currency\n return this._renderCurrencyCell(product);\n case 2: // DateTime\n return this._renderDateTimeCell(product);\n case 3: // Decimal\n return this._renderDecimalCell(product);\n case 4: // Integer\n return this._renderIntegerCell(product);\n case 5: // Text\n return this._renderTextCell(product);\n case 6: // TrueFalse\n return this._renderTrueFalseCell(product);\n case 40: // Video\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\n return null;\n case 41: // Image\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\n return null;\n default:\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\n return null;\n }\n }\n\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\n return (\n \n {product.CurrencyCode}\n {product.CurrencyValue}\n \n );\n }\n\n return null;\n }\n\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\n if (product.DateTimeOffsetValue?.toUTCString) {\n return {product.DateTimeOffsetValue.toUTCString()};\n }\n\n return null;\n }\n\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\n return {product.IntegerValue};\n }\n\n return null;\n }\n\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\n return {product.FloatValue};\n }\n\n return null;\n }\n\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\n if (product.TextValue !== null && product.TextValue !== undefined) {\n // eslint-disable-next-line react/no-danger\n return ;\n }\n\n return null;\n }\n\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\n // TODO 20369885 setting to default value is needed to work around a platform bug where\n // config string value does not get its default value.\n if (product.BooleanValue) {\n return {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'};\n }\n return {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'};\n }\n}\n\nexport default ProductSpecification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductSpecificationViewProps } from './product-specification';\n\nconst ProductSpecificationView: React.FC = props => {\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\n const rowdata =\n productSpecificationResult &&\n ArrayExtensions.hasElements(productSpecificationResult) &&\n productSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row));\n\n return rowdata && ArrayExtensions.hasElements(rowdata) ? (\n \n {props.title}\n \n {rowdata}\n \n \n ) : null;\n};\n\nexport default ProductSpecificationView;\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"],"names":["_renderCartlines","cartLines","cartEmptyText","CartlinesWrapper","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","props","React","map","cartLine","isWrappingProductLine","isWrappingProduct","className","classNames","key","cartlineId","cartline","pickUpInStore","Node","Object","assign","ContainerProps","defaultComponent","GiftWrappping","resources","configs","config","context","allLines","addToOrderTemplate","remove","addToWishlist","_cartLine$data","getTextAttributeValue","data","AttributeValues","attributes","name","attribute","find","x","Name","TextValue","renderCartLinesGroupHeader","pickUpText","shippingText","emailShippingText","titleSeparate","emailDeliveryModeCode","_cartLine$pickUpInSto4","isBopisSelected","groupTitle","groupTitleClass","DeliveryMode","toLowerCase","renderCartLinesGroupTitle","_cartLine$pickUpInSto","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","deliveryOption","orgUnitName","_props$cart","_props$cart2","errorData","promotions","id","renderModuleAttributes","title","cart","hasInvoiceLine","promotionOptions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","multiplePickUpEnabled","cartLinesGroup","ArrayExtensions","hasElements","cartlines","_props$context$action","emailshippingText","actionContext","requestContext","channel","EmailDeliveryModeCode","emptyCartText","renderCartLinesGroup","orderSummaryHeading","OrderSummaryWrapper","_renderInvoiceSummarylines","invoiceSummaryLines","OrderSummaryItems","invoices","giftCard","loyalty","orderTotal","telemetry","error","invoiceSummaryLineitems","_renderOrderSummarylines","orderSummaryLines","promoCode","subtotal","shipping","otherCharge","tax","totalDiscounts","orderSummaryLineitems","OrderSummaryErrors","errors","Wrapper","header","checkoutAsSignInUserButton","checkoutAsGuestButton","createTemplateFromCartButton","wrappingProductAttrName","cartLineNeedWrappingAttrName","wrappingProductNumberAttrName","_ref","_context$actionContex","masterWrappingProductId","masterProductId","giftWrappingResources","toggleLabel","giftWrappingSectionTitle","enableGiftwrappingLabel","disableGiftwrappingLabel","channelId","apiSettings","_actionContext$reques","_actionContext$reques2","_actionContext$reques3","_actionContext$reques4","cultureFormatter","CultureInfoFormatter","locale","Currency","query","initializeTelementryAndCultureFormatterIfMissing","wrappingProducts","setWrappingProducts","useState","wrappingEnabled","setWrappingEnabled","async","productAttributes","productId","getAttributeValuesAsync","callerContext","getProductAttributes","ProductId","isWrappingEnabledForProduct","getAttributeValueOrDefault","BooleanValue","products","getProductsByMasterProductId","fetchData","catch","console","renderEnableGiftWrappingToggle","isCartLineNeedWrapping","product","_context$cultureForma","variantClassName","getSelectedWrappingProductId","RecordId","onClick","updateSelectedWrappingVariant","src","PrimaryImageUrl","formatCurrency","AdjustedPrice","renderWrappingProduct","ctx","_cartLine$data2","value","getBooleanAttributeValue","toggleState","buttonValue","ariaPressed","Button","updateIsCartLineNeedWrapping","disabled","_cartState$cart","cartState","getCartState","cartLineToUpdate","CartLines","LineId","_cartState$cart2","attributeName","toString","calculateProductNumber","_cartLineToUpdate$Att","attributeValue","a","_cartLineToUpdate$Att2","updateTextAttribute","push","createTextAttribute","updateCartLinesAsync","Id","refreshCart","_cartState$cart3","_cartLineToUpdate$Att3","_cartLineToUpdate$Att4","_cartState$cart4","filter","changeSet","type","length","_cartLineToUpdate$Att5","_cartLineToUpdate$Att6","_cartLineToUpdate$Att7","updateBooleanAttribute","createBooleanAttribute","_cartLine$data3","_cartLine$data4","wrappingProductId","parseInt","_product$Dimensions","ItemId","Dimensions","_x$DimensionValue","DimensionValue","DimensionId","join","ImageResponseClass","constructor","odataObject","this","imageUrl","errorMessage","trusUploadImageInput","base64Data","fileName","DataServiceQuery","createDataServiceRequestForOperation","DataServiceEntities","bypassCache","returnEntity","imageData","Base64Data","FileName","needPaperGiftCardAttribute","paperGiftCardFromAttribute","paperGiftCardToAttribute","paperGiftCardMessageAttribute","paperGiftCardImageAttribute","PaperGiftCard","state","super","onFromInputChangeHandler","e","setState","from","target","isEditMode","undefined","onToInputChangeHandler","to","onMessageInputChangeHandler","message","onImageInputChangeHandler","event","files","reader","FileReader","imageFile","onload","ev","image","result","imageName","onerror","readAsDataURL","cleanImageHandler","savePaperGiftCardInfo","_this$props$context","isProcesssing","uploadPaperGiftCardImage","updatePaperGiftCardInfo","initializeStateFromAttributes","discardEdit","canDiscard","isDataLoaded","isSaveButtonVisible","componentDidMount","_this$props$context2","_this$props$cartLine$","_this$props$context3","_getTextAttributeValu","_getTextAttributeValu2","_getTextAttributeValu3","_getTextAttributeValu4","render","renderGiftWrappingToggle","isWrappingNeeded","renderGiftCardInputs","onChange","bind","accept","isCancelVisible","_cartLine$data5","updateProductNeedPaperGiftCard","imageBase64","request","callActionOrExecute","trusUploadImageAsync","_unused","_cartLineToUpdate$Att8","_cartLine$data6","_renderReactFragment","items","slot","index","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","_context$actionContex2","Module","HtmlHeadInclude","content","history","back","backButtonAriaLabel","_renderNavigateBack","navIcon","logo","search","preferredStore","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","accountClassName","classnames","link","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","mobileMenuCollapsed","Collapse","isOpen","menuBar","_renderCollapseMenu","TextValueTranslations","defaultVal","arguments","textValue","valueSelector","OrganizationUsersTile","heading","description","links","assembleNode","item","itemIndex","_item$links","renderHeading","additionalContentHeading","Msdyn365","text","tag","editProps","onEdit","handleAdditionalTextChange","subtext","renderParagraph","additionalContentParagraphText","ctaLink","renderLinks","linkIndex","editableLink","ariaLabel","linkText","linkUrl","destinationUrl","openInNewTab","role","onTextChange","handleAdditionalLinkTextChange","additionalContentItemContainer","additionalContentItemLinks","contentBlockAdditionalContent","additionalContent","reactNodes","additionalContentNode","additionalContentItems","ContentCardLinks","_mapEditableLinks","linkdata","editableLinks","forEach","payLoad","getPayloadObject","telemetryContent","contentAction","etext","getTelemetryAttributes","btnClass","additionalProperties","onTelemetryClick","ContentBlock","getTelemetryObject","telemetryPageName","friendlyName","handleTextChange","handleParagraphChange","paragraph","handleLinkTextChange","Number","_heading$tag","_this$props$context$r","_this$props$config$im","imageAriaLabel","contentBlockTitle","contentBlockLinks","LinksComponent","msdyn365__moduleLayout","contentBlockText","contentBlockImageSettings","imageSettings","backgroundColor","_objectSpread","imageProps","gridSettings","contentBlockImage","preserveImageSpace","moduleType","typeName","imagePropertyName","moduleId","layout","shouldSkipToMainImage","contentBlockContainerStyle","contentBlockviewProps","moduleClass","contentBlockContainer","moduleProps","style","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","_getImageLink","handleAdditionalParagraphChange","handleAdditionalText","handleAdditionalParagraph","renderView","additionalContentObject","actionableRegion","renderAdditionalContent","_additionalContent$ad","href","_renderPromotions","mulitplePickUp","MsDyn365","isBrowser","_renderBOPISBlock","_renderGroupBOPISBlock","onToggleBopisHandler","callbacks","toggleBopis","onChangeStoreHandler","shipInsteadDisplayText","shipToAddressDisplayText","pickItUpDisplayText","pickUpAtStoreWithLocationText","changeStoreDisplayText","TelemetryConstant","PickupInStore","puckUpinStoreAttribute","_renderErrorBlock","_renderCartLinesGroup","_props$context$action2","_props$context$action3","_renderCartLinesGroupHeader","_countItems","count","payInvoicesDisplayText","IsInvoiceLine","StringExtensions","isNullOrEmpty","_renderCartLinesGroupTitle","countItem","reduce","_item$data","Quantity","itemLabel","itemsLabel","suffix","expressCheckoutButton","ExpressCheckoutSectionWrapper","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","amount","channelReferenceId","OrderHistoryGroupDelivery","_ref2","deliveryProps","processing","address","trackingInfo","OrderHistoryGroup","_ref3","groupProps","delivery","salesLinesProps","salesLines","salesLine","OrderHistoryGroups","_ref4","groupsProps","groups","group","OrderHistoryHeader","_ref5","headerProps","orderCountLabel","extraActions","OrderHistorySalesOder","_ref6","salesOrderProps","orderInfomation","orderDetailsLink","expandProductsButton","OrderHistoryList","_ref7","listProps","salesOrders","salesOrder","_ref8","orderHistoryProps","alert","loading","emptyMessage","backToShoppingLink","list","table","moreButton","labelGroup","renderErrorLabel","responseErrorMessage","errorMessageClassName","renderRegisteredUserMessage","signInUrl","signInLinkClassName","registeredUserClassName","orderLookupRegisteredUserText","orderLookupViewAccountText","orderLookupSignInLinkText","infoMessage","signInText","renderFieldErrors","orderLookupFieldValidationErrorMessage","RenderOrderLookupAdditionalFieldInput","shouldComponentUpdate","nextProps","_getOrderLookupAdditionalFields","additionalFieldLabel","additionalFieldError","additionalFieldInput","additionalFieldLabelClassName","inputType","isValidAdditionalFieldName","additionalFieldValidationMessage","__decorate","observer","RenderOrderLookupFormFields","_getOrderLookupFields","label","input","orderLookupLabelClassName","orderLookupLabel","ref","inputReference","fieldErrorClassName","isInputTypeError","renderAlert","isValidInputField","OrderLookupSearchValues","OrderLookup","isEmailValue","isOrderNumberValue","orderLookupExtensibleEnum","handleSubmit","orderNumber","email","orderLookupValue","orderStatusLookUpParametersType","orderLookupName","_validateOrderLookupForm","_Msdyn365$getUrlSync","actionContextValue","orderDetailsPath","baseUrl","URL","window","location","origin","redirectUrl","searchParameters","searchParams","set","fieldName","isNullOrWhitespace","replace","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","trim","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","onSubmit","orderNumberInput","submitButton","submitButtonLabelText","fieldErrorMessage","registeredUserMessage","user","submit","_renderAdditionalFields","_getExtensibleEnumera","_getExtensibleEnumera2","isOrderLookupAdditionalFieldValid","isOrderLookupFieldValid","getExtensibleEnumerations","StoreOperationsDataActions","TypeName","ExtensibleEnumerations","orderLookupAdditionalParameter","validateOrderLookupField","orderStatusLookUpParameter","isValidField","validateOrderLookupAdditionalField","orderStatusLookUpAdditionalParameters","isValidAdditionalField","_item$fieldKey","fieldKey","validateAdditionalFieldWithProxy","some","setLookupFieldState","additionalFieldsInput","OrderLookupViewComponent","_orderLookupForm$clas","_submitButton$classNa","ProductSpecificationTableRow","productName","cellData","scope","dangerouslySetInnerHTML","getRichTextHtml","ProductSpecification","handleHeadingChange","_toggle","drawerListId","isDrawerOpen","isAdditionalMediaDrawerOpen","catalogId","validateCatalogId","reaction","actionInput","AttributesForSelectedVariantInput","getAttributesForSelectedVariant","debug","nextState","productSpecificationData","isAccrodion","displayStyle","handleText","ProductSpecificationTableProps","ProductSpecificationTableBodyProps","productSpecificationResult","_createDrawerBody","_createTableBody","_this$props$data$addi","tableRows","_renderProductCell","app","OmniChannelMedia","additionalMediaLocations","_createAdditionalMediaDrawer","_this$props$context$r2","_this$props$data$addi2","accordionItemContainer","drawers","_product$Name","Drawer","collapseProps","timeout","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","onToggle","additionalDownloadsText","prevState","mediaLocation","Uri","download","AltText","DataTypeValue","_renderCurrencyCell","_renderDateTimeCell","_renderDecimalCell","_renderIntegerCell","_renderTextCell","_renderTrueFalseCell","warning","CurrencyValue","CurrencyCode","_product$DateTimeOffs","DateTimeOffsetValue","toUTCString","IntegerValue","FloatValue","trueValueText","falseValueText","rowdata","row","ObjectExtensions","isNullOrUndefined","SocialShare","slots","socialShareItems","cookies","isConsentGiven","params","isEditor","viewprops","SocialShareList","caption","orientation","SocialShareItem","tabIndex","SocialShareItemElements","SocialShareView","SocialShareElement"],"sourceRoot":""}