{"version":3,"file":"static/js/b13ac18e154b4fcef6b1.bundle.js","mappings":"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","sources":["webpack://henrys-ecommerce/./src/actions/get-sales-order-originators.ts?f89a","webpack://henrys-ecommerce/./src/actions/get-sales-order-details-by-confirmation-id.ts?ce6e","webpack://henrys-ecommerce/./src/actions/get-sales-order-with-hydrations.ts?a5de","webpack://henrys-ecommerce/./src/actions/get-tender-types.ts?d667","webpack://henrys-ecommerce/./src/modules/order-details/components/get-help.tsx?57cc","webpack://henrys-ecommerce/./src/modules/order-details/components/get-order-summary.tsx?ba20","webpack://henrys-ecommerce/./src/modules/order-details/components/get-payment-methods.tsx?eed1","webpack://henrys-ecommerce/./src/modules/order-details/components/table-view/components/order-details-table-header-component.tsx?ab70","webpack://henrys-ecommerce/./src/modules/order-details/components/table-view/components/order-details-table-row-component.tsx?bbd4","webpack://henrys-ecommerce/./src/modules/order-details/components/table-view/order-details-table.tsx?7c6f","webpack://henrys-ecommerce/./src/modules/order-details/order-details.tsx?4414","webpack://henrys-ecommerce/./src/modules/order-details/order-details.view.tsx?89b1"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICommerceApiSettings,\n ICreateActionContext\n} from '@msdyn365-commerce/core';\nimport { OrderOriginator, SalesOrdersDataActions, OrderOriginatorSearchCriteria } from '@msdyn365-commerce/retail-proxy';\nimport { buildCacheKey } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Action input.\n */\nexport class GetOrderOriginatorsInput implements IActionInput {\n public searchCriteria: OrderOriginatorSearchCriteria = {};\n\n private readonly apiSettings: ICommerceApiSettings;\n\n public constructor(transactionIds: string[] | undefined, salesIds: string[] | undefined, apiSettings: ICommerceApiSettings) {\n this.searchCriteria = {\n TransactionIds: transactionIds,\n SalesIds: salesIds\n };\n this.apiSettings = apiSettings;\n }\n\n /**\n * GetCacheKey.\n * @returns - String.\n */\n public getCacheKey = (): string =>\n buildCacheKey(`OrderOriginators-${this.searchCriteria.TransactionIds}-${this.searchCriteria.SalesIds}`, this.apiSettings);\n\n /**\n * GetCacheObjectType.\n * @returns - String.\n */\n public getCacheObjectType = (): string => 'OrderOriginators';\n\n /**\n * DataCacheType.\n * @returns - String.\n */\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Get order originators by transaction ids or sales ids action.\n * @param input - GetOrderOriginators input.\n * @param context - Channel context.\n * @returns - Originators array.\n */\nexport async function getOriginatorsAction(input: GetOrderOriginatorsInput, context: IActionContext): Promise {\n return SalesOrdersDataActions.getOrderOriginatorsAsync({ callerContext: context }, input.searchCriteria);\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData -- InputData as ICreateActionContext.\n * @returns Action Input.\n */\nexport const createSalesOrderOriginatorsInput = (inputData: ICreateActionContext) => {\n const { salesId, transactionId } = inputData.requestContext.query ?? {};\n\n if (salesId) {\n return new GetOrderOriginatorsInput(undefined, [salesId], inputData.requestContext.apiSettings);\n } else if (transactionId) {\n return new GetOrderOriginatorsInput([transactionId], undefined, inputData.requestContext.apiSettings);\n }\n\n throw new Error('createSalesOrderOriginatorsInput - No salesId or transactionId provided.');\n};\n\n/**\n * GetSalesOrderOriginatorsActionDataAction.\n * @returns -- IObservableAction.\n */\nexport const getSalesOrderOriginatorsActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-management/get-sales-order-originators',\n action: getOriginatorsAction as IAction,\n input: createSalesOrderOriginatorsInput\n});\n\nexport default getSalesOrderOriginatorsActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICommerceApiSettings\n} from '@msdyn365-commerce/core';\nimport {\n ChannelReferenceLookupCriteria,\n OrderShipments,\n SalesOrder,\n SalesOrdersDataActions,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\nimport { buildCacheKey } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * IOrderHistory.\n */\nexport interface IOrderHistory {\n salesOrders: OrderShipments[];\n products: SimpleProduct[];\n}\n\n/**\n * Action input.\n */\nexport class GetSalesOrderDetailsByConfirmationInput implements IActionInput {\n public channelReferenceLookupCriteria: ChannelReferenceLookupCriteria | null;\n\n public confirmationId: string | undefined;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n public constructor(channelReferenceLookupCriteria: ChannelReferenceLookupCriteria | null, apiSettings: ICommerceApiSettings) {\n this.channelReferenceLookupCriteria = channelReferenceLookupCriteria;\n this.apiSettings = apiSettings;\n this.confirmationId = channelReferenceLookupCriteria?.ChannelReferenceId;\n }\n\n /**\n * GetCacheKey.\n * @returns - String.\n */\n public getCacheKey = (): string => buildCacheKey(`OrderDetails-${this.confirmationId ? this.confirmationId : ''}`, this.apiSettings);\n\n /**\n * GetCacheObjectType.\n * @returns - String.\n */\n public getCacheObjectType = (): string => 'OrderDetails';\n\n /**\n * DataCacheType.\n * @returns - String.\n */\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Get sales order details by confirmation id action.\n * @param input - GetOrderHistory hydration input.\n * @param context - Channel context.\n * @returns - Sales Order Details.\n */\nexport async function getSalesOrderDetailsByChannelReferenceIdAction(\n input: GetSalesOrderDetailsByConfirmationInput,\n context: IActionContext\n): Promise {\n return SalesOrdersDataActions.getOrderByChannelReferenceLookupCriteriaAsync(\n { callerContext: context },\n input.channelReferenceLookupCriteria\n );\n}\n\n/**\n * GetSalesOrderDetailsByConfirmationIdDataAction.\n * @returns -- IObservableAction.\n */\nexport const getSalesOrderDetailsByChannelReferenceIdDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-management/order-lookup/get-sales-order-details-by-confirmation-id',\n action: getSalesOrderDetailsByChannelReferenceIdAction as IAction\n});\n\nexport default getSalesOrderDetailsByChannelReferenceIdDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n ICommerceApiSettings,\n ICreateActionContext,\n isChannelTypeB2B\n} from '@msdyn365-commerce/core';\nimport {\n CatalogsDataActions,\n ChannelReferenceAdditionalLookupCriteria,\n ChannelReferenceLookupCriteria,\n ExtensibleEnumeration,\n FeatureState,\n IDictionary,\n ProductDeliveryOptions,\n ProductsDataActions,\n SalesOrder,\n SalesOrdersDataActions,\n SearchLocation,\n SimpleProduct,\n StoreOperationsDataActions,\n TransactionType,\n SalesLine\n} from '@msdyn365-commerce/retail-proxy';\nimport {\n ArrayExtensions,\n buildCacheKey,\n getSimpleProducts,\n ObjectExtensions,\n ProductInput,\n QueryResultSettingsProxy\n} from '@msdyn365-commerce-modules/retail-actions';\n\nimport {\n getFeatureStatesAsync,\n getOnlineChannelAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport {\n getSalesOrderDetailsByChannelReferenceIdAction,\n GetSalesOrderDetailsByConfirmationInput\n} from './get-sales-order-details-by-confirmation-id';\n/**\n * ISalesOrderWithHydrations.\n */\ninterface ISalesOrderWithHydrations {\n salesOrder: SalesOrder;\n products: SimpleProduct[];\n productDeliveryOptions?: ProductDeliveryOptions[];\n isSameSiteType?: boolean;\n}\n\n/**\n * Product and Catalog Interface.\n */\ninterface IProductCatalog {\n productId: number;\n catalogId: number | undefined;\n}\n\n/**\n * AdditionalLookupCriteria entity interface.\n */\nexport interface IAdditionalLookupCriteria {\n orderStatusLookUpParameterTypeName: string;\n orderStatusLookUpParameterValue: string;\n}\n\n/**\n * OrderTypes Types of orders.\n */\nexport enum orderTypes {\n salesOrder = 'salesOrder',\n transaction = 'transaction'\n}\n\n/**\n * GetQueryStringParameters.\n * @param context -- URL.\n * @returns Additional lookup criteria -- IAdditionalLookupCriteria[].\n */\nconst getQueryStringParameters = (context: IActionContext): IAdditionalLookupCriteria[] => {\n const addtionalLookupParameter: IAdditionalLookupCriteria[] = [];\n let query: IDictionary;\n if (context.requestContext.query) {\n query = context.requestContext.query;\n const queryArray = Object.entries(query);\n\n for (let index = 1; index <= queryArray.length; index++) {\n const additionalFieldName: string = `field${index}Name`;\n const additionalFieldValue = `field${index}Value`;\n if (additionalFieldName in query && additionalFieldValue in query) {\n addtionalLookupParameter.push({\n orderStatusLookUpParameterTypeName: query[additionalFieldName],\n orderStatusLookUpParameterValue: query[additionalFieldValue]\n });\n }\n }\n }\n return addtionalLookupParameter;\n};\n\n/**\n * Calls the Retail API and returns the sales order for anonymous user.\n * @param confirmationId -- Confirmation Id.\n * @returns SalesOrder -- Promise.\n */\nconst getSalesOrderDetailsByLookupCriteria = (confirmationId: string) => async (context: IActionContext): Promise => {\n const { propertyName = '', propertyValue = '' } = context.requestContext.query ?? {};\n\n const addtionalLookupParameter: IAdditionalLookupCriteria[] = getQueryStringParameters(context);\n\n const getExtensibleEnumerations = await StoreOperationsDataActions.getExtensibleEnumerationsAsync({ callerContext: context });\n\n const orderLookupExtensibleEnum: ExtensibleEnumeration[] =\n getExtensibleEnumerations.find(item => item.TypeName === 'OrderLookupAdditionalCriteriaType')?.ExtensibleEnumerations ?? [];\n\n const channelReferenceAdditionalLookupCriteria: ChannelReferenceAdditionalLookupCriteria[] = [];\n\n for (const item of orderLookupExtensibleEnum) {\n const retailProxyValue: string = item.Name.toLocaleLowerCase();\n const retailProxyTypeValue: number = item.Value;\n const orderLookupSearchPropertyName: string = propertyName.toLocaleLowerCase();\n if (retailProxyValue === orderLookupSearchPropertyName) {\n channelReferenceAdditionalLookupCriteria.push({\n OrderLookupAdditionalCriteriaTypeValue: item.Value,\n OrderLookupAdditionalCriteriaTypeParameterValue: propertyValue\n });\n }\n if (ArrayExtensions.hasElements(addtionalLookupParameter)) {\n for (const additionalItem of addtionalLookupParameter) {\n if (retailProxyValue === additionalItem.orderStatusLookUpParameterTypeName.toLocaleLowerCase()) {\n channelReferenceAdditionalLookupCriteria.push({\n OrderLookupAdditionalCriteriaTypeValue: retailProxyTypeValue,\n OrderLookupAdditionalCriteriaTypeParameterValue: additionalItem.orderStatusLookUpParameterValue\n });\n }\n }\n }\n }\n\n const channelReferenceLookupCriteria: ChannelReferenceLookupCriteria = {\n ChannelReferenceId: confirmationId,\n ChannelReferenceAdditionalLookupCriteria: channelReferenceAdditionalLookupCriteria\n };\n\n const input = new GetSalesOrderDetailsByConfirmationInput(channelReferenceLookupCriteria, context.requestContext.apiSettings);\n\n return getSalesOrderDetailsByChannelReferenceIdAction(input, context);\n};\n\n/**\n * Calls the Retail API and returns the sales order.\n * @param orderType -- Order Type.\n * @param orderId -- Order id.\n * @returns SalesOrder -- Promise.\n */\nconst getSalesOrder = (orderType: string = '', orderId: string = '') => async (context: IActionContext): Promise => {\n const { confirmationId = '' } = context.requestContext.query ?? {};\n\n if (confirmationId) {\n return getSalesOrderDetailsByLookupCriteria(confirmationId)(context);\n } else if (orderType === orderTypes.salesOrder) {\n return SalesOrdersDataActions.getSalesOrderDetailsBySalesIdAsync({ callerContext: context }, orderId);\n }\n\n return SalesOrdersDataActions.getSalesOrderDetailsByTransactionIdAsync({ callerContext: context }, orderId, SearchLocation.All);\n};\n\n/**\n * Calls the Retail API and returns the products.\n * @param productCatalog - The product and catalog ids of the product to retrieve.\n * @param channelId - The channel id for the products.\n * @returns Simple product data.\n */\nconst getProductsWithCatalog = (productCatalog: IProductCatalog[], channelId?: number) => async (\n context: IActionContext\n): Promise => {\n const productInputs = productCatalog.map(\n index =>\n new ProductInput(\n index.productId,\n context.requestContext.apiSettings,\n channelId,\n undefined,\n context.requestContext,\n index.catalogId\n )\n );\n return getSimpleProducts(productInputs, context);\n};\n\n/**\n * Action input.\n */\nexport class GetSalesOrderWithHydrationsInput implements IActionInput {\n public orderType: string | undefined;\n\n public orderId: string | undefined;\n\n public confirmationId: string | undefined;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n public constructor(\n orderType: string | undefined,\n orderId: string | undefined,\n apiSettings: ICommerceApiSettings,\n confirmationId?: string\n ) {\n this.orderType = orderType;\n this.orderId = orderId;\n this.apiSettings = apiSettings;\n this.confirmationId = confirmationId;\n }\n\n /**\n * GetCacheKey.\n * @returns String.\n */\n public getCacheKey = (): string => buildCacheKey('SalesOrderWithHydrations', this.apiSettings);\n\n /**\n * GetCacheObjectType.\n * @returns String.\n */\n public getCacheObjectType = (): string =>\n `SalesOrderWithHydrations-${this.orderType ?? ''}-${this.orderId ?? ''}-${this.confirmationId ?? ''}`;\n\n /**\n * DataCacheType.\n * @returns CacheType.\n */\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData -- InputData as ICreateActionContext.\n * @returns Action Input.\n */\nconst createSalesOrderWithHydrationsInput = (inputData: ICreateActionContext) => {\n const { salesId = '', transactionId = '', confirmationId = '' } = inputData.requestContext.query ?? {};\n\n if (confirmationId) {\n const orderType = undefined;\n const orderId = undefined;\n return new GetSalesOrderWithHydrationsInput(orderType, orderId, inputData.requestContext.apiSettings, confirmationId);\n } else if (salesId) {\n return new GetSalesOrderWithHydrationsInput(orderTypes.salesOrder, salesId, inputData.requestContext.apiSettings);\n } else if (transactionId) {\n return new GetSalesOrderWithHydrationsInput(orderTypes.transaction, transactionId, inputData.requestContext.apiSettings);\n }\n\n throw new Error('createSalesOrderWithHydrationsInput - No salesId, confirmationId or transactionId provided.');\n};\n\n/**\n * Get sales order with hydrations action.\n * @param input -- Input.\n * @param context -- Context.\n * @returns ISalesOrderWithHydrations.\n */\nexport async function getSalesOrderWithHydrationsAction(\n input: GetSalesOrderWithHydrationsInput,\n context: IActionContext\n): Promise {\n const { orderType, orderId } = input;\n\n const { confirmationId = '' } = context.requestContext.query ?? {};\n\n if (context.requestContext.user.isAuthenticated && (!orderType || !orderId) && !confirmationId) {\n context.trace('[getSalesOrderWithHydrationsAction] No orderType or orderId or confirmationId provided.');\n return {};\n }\n\n const salesOrder = await getSalesOrder(orderType, orderId)(context);\n if (salesOrder && salesOrder.SalesLines) {\n salesOrder.SalesLines = salesOrder.SalesLines.filter((saleline: SalesLine) => !saleline.IsVoided);\n }\n\n if (!salesOrder) {\n context.trace('[getSalesOrderWithHydrationsAction] No salesOrder found.');\n return {};\n }\n\n // If it is salesInvoice, return salesOrder and empty products\n if (salesOrder.TransactionTypeValue === TransactionType.SalesInvoice) {\n return {\n salesOrder,\n products: []\n };\n }\n let isEnabled: boolean = true;\n\n if (salesOrder.ChannelId !== context.requestContext.apiSettings.channelId && salesOrder.ChannelId !== undefined) {\n context.trace('[getSalesOrderWithHydrationsAction] SalesOrder is not from current channel.');\n try {\n const channelInfo = await getOnlineChannelAsync({ callerContext: context }, salesOrder.ChannelId);\n const salesOrderChannelType = channelInfo?.OnlineStoreCustomerTypeValue;\n isEnabled = salesOrderChannelType === 1 && isChannelTypeB2B(context.requestContext);\n } catch (error) {\n console.log('Please check the channel type if it is not online, 400 expected.', error);\n }\n }\n\n if (!ArrayExtensions.hasElements(salesOrder.SalesLines)) {\n context.trace('[getSalesOrderWithHydrationsAction] No salesLine found.');\n return {};\n }\n\n const productCatalogIds: IProductCatalog[] = salesOrder.SalesLines.map(salesLine => {\n return {\n productId: salesLine.ProductId !== undefined ? salesLine.ProductId : 0,\n catalogId: salesLine.CatalogId\n };\n });\n\n if (!ArrayExtensions.hasElements(productCatalogIds)) {\n context.trace('[getSalesOrderWithHydrationsAction] No products in saleLines found.');\n return {};\n }\n\n const featureStates = await getFeatureStatesAsync({ callerContext: context }, [\n 'Dynamics.AX.Application.ChannelMultipleCatalogsFeature'\n ]);\n const isCatalogsFeatureEnabled =\n featureStates?.find((featureState: FeatureState) => featureState.Name === 'Dynamics.AX.Application.ChannelMultipleCatalogsFeature')\n ?.IsEnabled || false;\n\n let products: SimpleProduct[] = [];\n\n if (!isCatalogsFeatureEnabled) {\n products = await getProductsWithCatalog(productCatalogIds, salesOrder.ChannelId)(context);\n } else {\n // Get product catalogs for current user. Catalog ids will be stored in RecordId property of userCatalogIds.\n const userCatalogIds = await CatalogsDataActions.getCatalogsAsync(\n { callerContext: context },\n context.requestContext.apiSettings.channelId,\n true\n );\n\n // Filter productCatalogIds to get only those that are in userCatalogIds.\n const matchingProductCatalogIds = productCatalogIds.filter(productCatalogId => {\n return userCatalogIds.some(userCatalogId => userCatalogId.RecordId === productCatalogId.catalogId);\n });\n\n // Filter productCatalogIds to get only those that are NOT in userCatalogIds.\n const nonMatchingProductCatalogIds = productCatalogIds.filter(productCatalogId => {\n return userCatalogIds.some(userCatalogId => userCatalogId.RecordId !== productCatalogId.catalogId);\n });\n\n let matchingProducts: SimpleProduct[] = [];\n if (matchingProductCatalogIds.length !== 0) {\n matchingProducts = await getProductsWithCatalog(\n matchingProductCatalogIds,\n context.requestContext.apiSettings.channelId\n )(context);\n }\n\n let nonMatchingProducts: SimpleProduct[] = [];\n if (nonMatchingProductCatalogIds.length !== 0) {\n nonMatchingProducts = await getProductsWithCatalog(nonMatchingProductCatalogIds, salesOrder.ChannelId)(context);\n }\n\n products = [...matchingProducts, ...nonMatchingProducts];\n }\n\n if (!ArrayExtensions.hasElements(products)) {\n context.trace('[getSalesOrderWithHydrationsAction] No simple products found.');\n return {};\n }\n const validProducts = products.filter(product => !ObjectExtensions.isNullOrUndefined(product.RecordId));\n\n const deliveryOptions = await ProductsDataActions.getDeliveryOptionsAsync(\n {\n callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n },\n validProducts.map(product => product.RecordId),\n {},\n 4\n )\n .then(result => {\n return result;\n })\n .catch((error: Error) => {\n context.trace(error.message);\n context.telemetry.exception(error);\n context.telemetry.debug('[getDeliveryOptionsForCartLineItems]Error executing action');\n throw new Error('[getDeliveryOptionsForCartLineItems]Error executing action');\n });\n\n return {\n salesOrder,\n products,\n deliveryOptions,\n isSameSiteType: isEnabled\n };\n}\n\n/**\n * GetSalesOrderWithHydrationsAction Data Action.\n * @param options -- Options.\n */\nexport const getSalesOrderWithHydrationsActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-management/get-sales-order-with-hydrations',\n action: getSalesOrderWithHydrationsAction as IAction,\n input: createSalesOrderWithHydrationsInput\n});\n\nexport default getSalesOrderWithHydrationsActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { getTenderTypesAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { TenderType } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { QueryResultSettingsProxy } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Action input.\n */\nexport class GetTenderTypesInput implements IActionInput {\n public getCacheKey = () => 'TenderTypes';\n\n public getCacheObjectType = () => 'TenderTypes';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * CreateInput method for the getTenderTypes method.\n * @param inputData -- The input data passed to the createInput method.\n * @returns - Input for data action.\n */\nexport const createTenderTyperInput = (inputData: ICreateActionContext>): IActionInput => {\n return new GetTenderTypesInput();\n};\n\n/**\n * Get tender type action.\n * @param input - Input data.\n * @param context - Action context.\n * @returns - TenderType\n */\nexport async function getTenderTypeAction(input: GetTenderTypesInput, context: IActionContext): Promise {\n const tenderType = await getTenderTypesAsync({\n callerContext: context,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(context)\n });\n\n return tenderType;\n}\n\n/**\n * Get Tender Types Data Action.\n */\nexport const getTenderTypeActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-management/get-tender-types',\n action: getTenderTypeAction as IAction,\n input: createTenderTyperInput\n});\n\nexport default getTenderTypeActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IGetHelpInput, IHelp } from '../../../common';\n\nexport const getOrderDetailsHelp = ({\n needHelpLabel,\n helpLineNumberLabel,\n contactNumber,\n helpLineContactAriaLabel,\n telemetryContent\n}: IGetHelpInput): IHelp => {\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.ContactNumber);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return {\n helpProps: { className: 'ms-order-details__help' },\n needHelpLabel:

{needHelpLabel}

,\n helpLineNumberLabel: {helpLineNumberLabel},\n contactNumber: (\n \n {contactNumber}\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 { PriceComponent } from '@msdyn365-commerce/components';\nimport * as React from 'react';\n\nimport { IGetOrderSummaryInput, IOrderSummary, IPriceContext } from '../../../common';\n\ninterface ISummaryLineProps {\n priceContext?: IPriceContext;\n name: string;\n label: string;\n value?: number;\n priceCurrency?: string;\n}\n\nconst OrderSummaryLine: React.SFC = ({ name, label, value = 0, priceContext, priceCurrency }) => (\n

\n {label}\n {priceContext ? (\n \n ) : (\n {value}\n )}\n

\n);\n\nexport const getOrderDetailsOrderSummary = ({\n order,\n priceContext,\n earnedPoints,\n resource: {\n orderSummaryHeading,\n orderSummaryItemsTotalLabel,\n orderSummaryShippingFeeLabel,\n orderSummaryTaxLabel,\n orderSummaryGrandTotalLabel,\n pointsEarnedLabel\n },\n canShip,\n isTaxIncludedInPrice,\n isShowTaxBreakUp\n}: IGetOrderSummaryInput): IOrderSummary => {\n const subTotal = isTaxIncludedInPrice && isShowTaxBreakUp ? order.SubtotalAmountWithoutTax : order.SubtotalAmount;\n const taxOnShippingCharge = order.TaxOnShippingCharge !== undefined ? order.TaxOnShippingCharge : 0;\n const shippingChargeAmount = order.ShippingChargeAmount !== undefined ? order.ShippingChargeAmount : 0;\n\n // isTaxIncludedInPrice isShowTaxBreakup useProperties\n // False False/True shippingChargeAmount\n // True True shippingChargeAmount\n // True false shippingChargeAmount + taxOnShippingCharge\n const shippingCharge =\n isTaxIncludedInPrice && !isShowTaxBreakUp ? shippingChargeAmount + taxOnShippingCharge : order.ShippingChargeAmount;\n return {\n orderSummaryProps: { className: 'ms-order-details__order-summary' },\n heading:

{orderSummaryHeading}

,\n subtotal: (\n \n ),\n shipping: canShip ? (\n \n ) : (\n ''\n ),\n tax: isShowTaxBreakUp ? (\n \n ) : (\n ''\n ),\n totalAmount: (\n \n ),\n earnedPoints: earnedPoints ? : undefined\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { PriceComponent } from '@msdyn365-commerce/components';\nimport { TenderLine } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport * as React from 'react';\n\nimport { IPaymentMethods, IPaymentMethodsInput } from '../../../common';\n\nexport const getOrderDetailsPaymentMethods = ({\n priceContext,\n tenderLines,\n tenderIdOperationIdMap,\n resource: {\n paymentMethodsTitle,\n creditCardEndingLabel,\n giftCardEndingLabel,\n amountCoveredLabel,\n loyaltyCardUsedLabel,\n cashUsedLabel,\n customerAccountUsedLabel\n },\n priceCurrency\n}: IPaymentMethodsInput): IPaymentMethods => {\n const OPERATIONS = {\n PayCard: 201,\n PayGiftCertificate: 214,\n PayLoyalty: 207,\n PayCash: 200,\n PayCustomerAccount: 202\n };\n\n const getLastFourDigit = (digits = '') => (digits ? digits.substr(-4) : '');\n\n const getCard = (tenderLine: TenderLine, showAmount: boolean = false) => {\n const cardLastFourDigit = getLastFourDigit(tenderLine.MaskedCardNumber);\n\n // @ts-expect-error\n const isValidCardNumber = cardLastFourDigit && !isNaN(cardLastFourDigit);\n const amount = (tenderLine.AuthorizedAmount || 0) > 0 ? tenderLine.AuthorizedAmount : tenderLine.Amount;\n const showAmountCovered = !!(showAmount && amount && amount > 0);\n\n return (\n
\n

\n {`${tenderLine.CardTypeId} ${isValidCardNumber ? `${creditCardEndingLabel} ${cardLastFourDigit}` : ''}`}\n

\n {showAmountCovered && (\n

\n {amountCoveredLabel}\n \n

\n )}\n
\n );\n };\n\n const getCustomerAccountPayment = (tenderLine: TenderLine) => (\n
\n

\n {customerAccountUsedLabel}\n {` `}\n {tenderLine.CustomerId}\n

\n

\n {amountCoveredLabel}\n \n

\n
\n );\n\n const getGiftCertificate = (tenderLine: TenderLine) => (\n
\n

\n {giftCardEndingLabel}\n {` `}\n {getLastFourDigit(tenderLine.GiftCardId)}\n

\n

\n {amountCoveredLabel}\n \n

\n
\n );\n\n const getLoyalty = (tenderLine: TenderLine) => (\n
\n

\n {loyaltyCardUsedLabel}\n {` `}\n {tenderLine.LoyaltyCardId}\n

\n

\n {amountCoveredLabel}\n \n

\n
\n );\n\n const getCash = (tenderLine: TenderLine) => (\n
\n

{cashUsedLabel}

\n

\n {amountCoveredLabel}\n \n

\n
\n );\n\n return {\n paymentMethodsProps: { className: 'ms-order-details__payment-methods' },\n title:
{paymentMethodsTitle}
,\n methods: tenderLines.reduce((lines: React.ReactNode[], tenderLine) => {\n if (!tenderLine.TenderTypeId) {\n return lines;\n }\n switch (tenderIdOperationIdMap[tenderLine.TenderTypeId]) {\n case OPERATIONS.PayCard:\n lines.push(getCard(tenderLine, tenderLines.length > 1));\n break;\n case OPERATIONS.PayGiftCertificate:\n lines.push(getGiftCertificate(tenderLine));\n break;\n case OPERATIONS.PayLoyalty:\n lines.push(getLoyalty(tenderLine));\n break;\n case OPERATIONS.PayCash:\n lines.push(getCash(tenderLine));\n break;\n case OPERATIONS.PayCustomerAccount:\n lines.push(getCustomerAccountPayment(tenderLine));\n break;\n default:\n\n // Do nothing\n }\n return lines;\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 { IAny, IComponentProps, ICoreContext, IGeneric } from '@msdyn365-commerce/core';\nimport { isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\n/**\n * Resources which are used in order details header.\n */\nexport interface IOrderDetailsTableHeaderResources {\n orderDetailsProductNumberText: string;\n orderDetailsProductText: string;\n orderDetailsUnitPriceText: string;\n orderDetailsModeOfDeliveryText: string;\n orderDetailsStatusText: string;\n orderDetailsQuantityText: string;\n orderDetailsUnitOfMeasureText: string;\n orderDetailsTotalText: string;\n orderDetailsActionsText: string;\n orderDetailsSelectAllRadioAriaLabelText: string;\n orderDetailsConfirmedShipDateTextForTableHeader: string;\n}\n\n/**\n * Configuration of the component.\n */\nexport interface IOrderDetailsTableHeaderProps extends IComponentProps {\n context: ICoreContext>;\n className: string;\n\n resources: IOrderDetailsTableHeaderResources;\n\n isCashAndCarryTransaction: boolean;\n isSelectedAll: boolean;\n isSelectionModeEnabled: boolean;\n isChannelMultipleCatalogsFeatureEnabled?: boolean;\n onSelectAll(isSelected: boolean): void;\n confirmedShipDateAvailable?: boolean;\n}\n\n/**\n * Renders checkbox for order details lines selection.\n * @param props - Order detail table header props.\n * @returns React element.\n */\nconst OrderDetailsHeaderCheckboxComponent: React.FC = (props: IOrderDetailsTableHeaderProps) => {\n const switchCheckedState = React.useCallback(() => {\n props.onSelectAll(!props.isSelectedAll);\n }, [props]);\n\n return (\n \n );\n};\n\n/**\n * Renders desktop view cells.\n * @param props - Configuration of the module.\n * @returns List of cells for the header.\n */\nconst OrderDetailsDesktopHeaderCellsComponent: React.FC = (props: IOrderDetailsTableHeaderProps) => {\n const { resources } = props;\n\n const columnWithNumberClassName = `${props.className}__row__column-with-number`;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- app configs are of generic type\n const shouldDisplayUnitOfMeasure =\n props.context.app.config.unitOfMeasureDisplayType && props.context.app.config.unitOfMeasureDisplayType !== 'none';\n\n return (\n <>\n {props.isSelectionModeEnabled ? (\n \n \n \n ) : (\n undefined\n )}\n \n {resources.orderDetailsProductNumberText}\n {resources.orderDetailsProductText}\n {resources.orderDetailsUnitPriceText}\n {resources.orderDetailsModeOfDeliveryText}\n {props.isCashAndCarryTransaction ? undefined : {resources.orderDetailsStatusText}}\n {resources.orderDetailsQuantityText}\n {shouldDisplayUnitOfMeasure && {resources.orderDetailsUnitOfMeasureText}}\n\n {resources.orderDetailsTotalText}\n {resources.orderDetailsConfirmedShipDateTextForTableHeader}\n {resources.orderDetailsActionsText}\n \n );\n};\n\n/**\n * Renders mobile view cells.\n * @param props - Configuration of the module.\n * @returns List of cells for the header.\n */\nconst OrderDetailsMobileHeaderCellsComponent: React.FC = (props: IOrderDetailsTableHeaderProps) => {\n const { resources } = props;\n return (\n <>\n {props.isSelectionModeEnabled ? (\n \n \n \n ) : (\n undefined\n )}\n \n {resources.orderDetailsProductText}\n \n );\n};\n\n/**\n * Order details table header component.\n * @param props - Configuration of the component.\n * @returns React node with the header.\n */\nexport const OrderDetailsTableHeaderComponent: React.FC = (props: IOrderDetailsTableHeaderProps) => {\n const rowClassName = `${props.className}__row`;\n\n let headerCells: JSX.Element;\n const isMobileView = isMobile({ variant: VariantType.Viewport, context: props.context.request }) === 'xs';\n if (isMobileView) {\n headerCells = ;\n } else {\n headerCells = ;\n }\n\n return (\n \n {headerCells}\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 { OrderDetailsProduct } from '@msdyn365-commerce/components';\nimport MsDyn365, { IAny, IComponentProps, ICoreContext, IGeneric, IImageSettings, Image, isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { ChannelDeliveryOptionConfiguration, format, ProductDeliveryOptions, SalesOrder } from '@msdyn365-commerce/retail-proxy';\nimport { getFallbackImageUrl, getProductPageUrlSync, ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React, { useState } from 'react';\n\nimport { BuySelectedComponent } from '../../../../../common/buy-selected-component';\nimport {\n getDeliveryDescriptionByProductId,\n getDeliveryType,\n getDeliveryTypeString,\n IDeliveryTypeStringMap,\n ISalesStatusStringMap\n} from '../../../../../common/get-sales-line';\nimport { defaultImageSettings, getSalesStatusCode } from '../../../../../common/utilities';\n\n/**\n * Data required to render each order details row.\n */\nexport interface IOrderDetailsTableRowData {\n salesOrder: SalesOrder;\n product: OrderDetailsProduct;\n deliveryOptions: ProductDeliveryOptions[];\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\n}\n\n/**\n * Resources for order details table rows.\n */\nexport interface IOrderDetailsTableRowResources {\n orderDetailsProductDimensionsSeparator: string;\n orderDetailsQuantityMobileText: string;\n orderDetailsViewDetailsButtonText: string;\n orderDetailsViewDetailsButtonAriaLabel: string;\n pickedUpSalesLines: string;\n deliveredSalesLines: string;\n carryOutSalesLines: string;\n emailSalesLines: string;\n orderStatusReadyForPickup: string;\n orderStatusProcessing: string;\n orderStatusShipped: string;\n orderStatusPickedUp: string;\n orderStatusCanceled: string;\n orderStatusEmailed: string;\n\n orderDetailsSelectRadioAriaLabelText: string;\n\n orderDetailsBuyItAgainButtonText: string;\n orderDetailsBuyItAgainButtonAriaLabel: string;\n orderDetailsBuySelectedAddingToCartErrorNotificationTitle: string;\n orderDetailsBuySelectedAddingToCartErrorNotificationCloseAriaLabel: string;\n orderDetailsUnavailableProductText?: string;\n}\n\n/**\n * Configuration for the order details rows.\n */\nexport interface IOrderDetailsTableRowProps extends IComponentProps {\n context: ICoreContext>;\n className: string;\n\n imageSettings?: IImageSettings;\n isCashAndCarryTransaction: boolean;\n isReorderingEnabled?: boolean;\n isRetailMultiplePickUpOptionEnabled?: boolean;\n isSelectionModeEnabled: boolean;\n\n resources: IOrderDetailsTableRowResources;\n isChannelMultipleCatalogsFeatureEnabled?: boolean;\n}\n\n/**\n * Formats amount.\n * @param context - Core context.\n * @param amount - Amount to display.\n * @param currencyCode - Currency for the amount.\n * @returns String value.\n */\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\n/**\n * Renders checkbox for order details line selection.\n * @param props - Order detail table row props.\n * @returns React element.\n */\nconst OrderDetailsRowCheckboxComponent: React.FC = (props: IOrderDetailsTableRowProps) => {\n const product = props.data.product;\n\n const checkboxRowAriaLabel = format(props.resources.orderDetailsSelectRadioAriaLabelText, product.salesLine.ProductId);\n const onSelectLine = React.useCallback(() => {\n product.isSelected = !product.isSelected;\n }, [product]);\n\n return (\n \n );\n};\n\n/**\n * Renders product image for order details line.\n * @param props - Order detail table row props.\n * @returns React element.\n */\nconst OrderDetailsRowProductImageComponent: React.FC = (props: IOrderDetailsTableRowProps) => {\n const product = props.data.product;\n const fallbackImageUrl = getFallbackImageUrl(\n product.simpleProduct?.ItemId,\n props.context.actionContext.requestContext.apiSettings,\n props.context.request.app?.config?.OmniChannelMedia\n );\n\n const containerClassName = `${props.className}__product-image-container`;\n\n const productName = product.simpleProduct?.Name ?? product.salesLine.Description;\n\n return (\n
\n \n
\n );\n};\n\n/**\n * Renders rows for desktop view.\n * @param props - Configuration for the rows.\n * @returns A react node with a list of order details rows for desktop view.\n */\nexport const OrderDetailsDesktopTableRowCellComponent: React.FC = (props: IOrderDetailsTableRowProps) => {\n const {\n data: { product, salesOrder, deliveryOptions }\n } = props;\n const salesLine = product.salesLine;\n\n const pickupMode = getDeliveryDescriptionByProductId(salesLine.ProductId, salesLine.DeliveryMode, deliveryOptions);\n const pickupDeliveryModeCode = props.context.request.channel?.PickupDeliveryModeCode;\n const emailDeliveryModeCode = props.context.request.channel?.EmailDeliveryModeCode;\n const deliveryType = getDeliveryType(\n pickupMode,\n salesLine,\n salesLine.DeliveryMode,\n pickupDeliveryModeCode,\n props.isRetailMultiplePickUpOptionEnabled,\n props.data.channelDeliveryOptionConfig,\n emailDeliveryModeCode\n );\n const deliveryTypeStringMap: IDeliveryTypeStringMap = {\n pickUp: props.resources.pickedUpSalesLines,\n ship: props.resources.deliveredSalesLines,\n carryOut: props.resources.carryOutSalesLines,\n email: props.resources.emailSalesLines\n };\n const deliveryTypeString = getDeliveryTypeString(deliveryType, deliveryTypeStringMap, props.isRetailMultiplePickUpOptionEnabled);\n\n const salesStatusStringMap: ISalesStatusStringMap = {\n canceled: props.resources.orderStatusCanceled,\n readyForPickup: props.resources.orderStatusReadyForPickup,\n pickedUp: props.resources.orderStatusPickedUp,\n processing: props.resources.orderStatusProcessing,\n shipped: props.resources.orderStatusShipped,\n unknown: undefined,\n emailed: props.resources.orderStatusEmailed\n };\n\n const salesStatus = getSalesStatusCode(deliveryType, salesLine.SalesStatusValue, pickupMode);\n const salesStatusString = salesStatusStringMap[salesStatus];\n\n const columnWithNumberClassName = `${props.className}__column-with-number`;\n\n const productName = product.simpleProduct?.Name ?? salesLine.Description;\n\n let productUrl = '';\n if (!ObjectExtensions.isNullOrUndefined(productName) && !ObjectExtensions.isNullOrUndefined(salesLine.ProductId)) {\n productUrl = getProductPageUrlSync(productName, salesLine.ProductId, props.context.actionContext);\n\n if (MsDyn365.isBrowser && isChannelTypeB2B(props.context.actionContext.requestContext)) {\n const fullUrl = new URL(productUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${salesLine.CatalogId ?? 0}`);\n productUrl = fullUrl.href;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- app configs are of generic type\n const shouldDisplayUnitOfMeasure =\n props.context.app.config.unitOfMeasureDisplayType && props.context.app.config.unitOfMeasureDisplayType !== 'none';\n\n const confirmedShipDateAvailable = salesLine.ConfirmedShipDate === undefined || salesLine.ConfirmedShipDate === null;\n\n const currentProduct = new OrderDetailsProduct(product.salesLine, product.simpleProduct, productUrl);\n\n return (\n <>\n {props.isSelectionModeEnabled ? (\n \n \n \n ) : (\n undefined\n )}\n \n \n \n {salesLine.ItemId}\n \n
\n \n {productName}\n \n \n {product.simpleProduct?.Dimensions?.map(dimension => dimension.DimensionValue?.Value)\n .filter(dimensionValue => !StringExtensions.isNullOrWhitespace(dimensionValue))\n .join(props.resources.orderDetailsProductDimensionsSeparator)}\n \n {!product.isProductAvailable && (\n
{props.resources.orderDetailsUnavailableProductText}
\n )}\n
\n \n {formatAmount(props.context, salesLine.Price, salesOrder.CurrencyCode)}\n {deliveryTypeString}\n {props.isCashAndCarryTransaction ? undefined : {salesStatusString}}\n {salesLine.Quantity}\n {shouldDisplayUnitOfMeasure && {salesLine.UnitOfMeasureSymbol}}\n\n {formatAmount(props.context, salesLine.TotalAmount, salesOrder.CurrencyCode)}\n {!confirmedShipDateAvailable && {salesLine.ConfirmedShipDate}}\n \n \n \n \n );\n};\n\nlet setShowPreviousActions: React.Dispatch> | undefined;\n\n/**\n * Renders actions popup for the mobile view.\n * @param props - Configuration for popup.\n * @returns A react node with actions..\n */\nconst OrderDetailsExtraActionsPopupComponent: React.FC = (\n props: IOrderDetailsTableRowProps\n): JSX.Element | null => {\n const {\n resources: { orderDetailsViewDetailsButtonAriaLabel, orderDetailsViewDetailsButtonText }\n } = props;\n\n const [shouldShowActions, setShowActions] = useState(false);\n\n const salesLine = props.data.product.salesLine;\n\n const productName = props.data.product.simpleProduct?.Name ?? salesLine.Description;\n let productUrl = '';\n if (!ObjectExtensions.isNullOrUndefined(productName) && !ObjectExtensions.isNullOrUndefined(salesLine.ProductId)) {\n productUrl = getProductPageUrlSync(productName, salesLine.ProductId, props.context.actionContext);\n\n if (MsDyn365.isBrowser && isChannelTypeB2B(props.context.actionContext.requestContext)) {\n const fullUrl = new URL(productUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${salesLine.CatalogId ?? 0}`);\n productUrl = fullUrl.href;\n }\n }\n const currentProduct = new OrderDetailsProduct(props.data.product.salesLine, props.data.product.simpleProduct, productUrl);\n\n const onClickViewDetails = React.useCallback(() => {\n if (MsDyn365.isBrowser) {\n window.location.href = productUrl;\n }\n }, [productUrl]);\n\n const toggle = React.useCallback(() => {\n const shouldShowActionsNewValue = !shouldShowActions;\n if (shouldShowActionsNewValue) {\n if (setShowPreviousActions) {\n setShowPreviousActions(false);\n }\n setShowActions(shouldShowActionsNewValue);\n setShowPreviousActions = setShowActions;\n } else {\n setShowPreviousActions = undefined;\n setShowActions(shouldShowActionsNewValue);\n }\n }, [shouldShowActions, setShowActions]);\n\n if (StringExtensions.isNullOrWhitespace(productUrl)) {\n return null;\n }\n\n const className = `${props.className}__extra-actions-cell`;\n const actionsContainerClassName = `${className}__actions-container`;\n\n return (\n
\n \n \n
\n )}\n \n );\n};\n\n/**\n * Renders rows for mobile view.\n * @param props - Configuration for the rows.\n * @returns A react node with a list of order details rows for mobile view.\n */\nexport const OrderDetailsMobileTableRowCellComponent: React.FC = (props: IOrderDetailsTableRowProps) => {\n const {\n data: { product }\n } = props;\n const salesLine = product.salesLine;\n const productName = product.simpleProduct?.Name ?? salesLine.Description;\n\n return (\n <>\n {props.isSelectionModeEnabled ? (\n \n \n \n ) : (\n undefined\n )}\n \n \n \n \n
\n {productName}\n \n {format(props.resources.orderDetailsQuantityMobileText, salesLine.Quantity)}\n \n
\n \n \n \n \n \n );\n};\n\n/**\n * Renders order details rows.\n * @param props - Configuration for the rows.\n * @returns A react node with a list of order details rows.\n */\nexport const OrderDetailsTableRowComponent: React.FC = (props: IOrderDetailsTableRowProps) => {\n const isMobileView = isMobile({ variant: VariantType.Viewport, context: props.context.request }) === 'xs';\n const className = classnames(\n props.className,\n props.data.product.isProductAvailable ? `${props.className}__available-product` : `${props.className}__unavailable-product`,\n props.className,\n props.data.product.isSelected ? `${props.className}__selected` : `${props.className}__unselected`\n );\n\n return (\n \n {isMobileView ? (\n \n ) : (\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 { OrderDetailsProduct } from '@msdyn365-commerce/components';\nimport { IComponentProps, ICoreContext, IImageSettings } from '@msdyn365-commerce/core';\nimport { ChannelDeliveryOptionConfiguration, ProductDeliveryOptions, SalesOrder } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\n\nimport { IOrderDetailsTableHeaderResources, OrderDetailsTableHeaderComponent } from './components/order-details-table-header-component';\nimport { IOrderDetailsTableRowResources, OrderDetailsTableRowComponent } from './components/order-details-table-row-component';\n\n/**\n * Interface with the data required for order details.\n */\nexport interface IOrderDetailsTableData {\n order: SalesOrder;\n products: OrderDetailsProduct[];\n deliveryOptions: ProductDeliveryOptions[];\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\n}\n\n/**\n * Resources needed to render order details table.\n */\nexport interface IOrderDetailsTableResources extends IOrderDetailsTableHeaderResources, IOrderDetailsTableRowResources {}\n\n/**\n * Configuration of order details table.\n */\nexport interface IOrderDetailsTableProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n\n imageSettings?: IImageSettings;\n isCashAndCarryTransaction: boolean;\n isReorderingEnabled?: boolean;\n isRetailMultiplePickUpOptionEnabled?: boolean;\n isSelectionModeEnabled: boolean;\n\n resources: IOrderDetailsTableResources;\n isChannelMultipleCatalogsFeatureEnabled?: boolean;\n}\n\n/**\n * On select all function.\n * @param props - Invoice table props.\n * @returns On change.\n */\nconst onSelectAllHandler = (props: IOrderDetailsTableProps) => (isSelected: boolean) => {\n for (const product of props.data.products) {\n product.isSelected = isSelected;\n }\n};\n\n/**\n * Renders order details table.\n * @param props - Configuration for order details table.\n * @returns React node with the table.\n */\nexport const OrderDetailsTableComponent: React.FC = (props: IOrderDetailsTableProps) => {\n const rowClassName = `${props.className}__row`;\n const headerClassName = `${props.className}__header`;\n const products = props.data.products;\n const availableProducts = products.filter(product => product.isProductAvailable);\n\n return (\n \n product.isSelected)}\n onSelectAll={onSelectAllHandler(props)}\n isChannelMultipleCatalogsFeatureEnabled={props.isChannelMultipleCatalogsFeatureEnabled}\n />\n {products.map((product, index) => {\n return (\n \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 { OrderDetailsProduct } from '@msdyn365-commerce/components';\nimport Msdyn365, { ContentEditableEvent, getUrlSync, isChannelTypeB2B, Text, isUserTypeB2B } from '@msdyn365-commerce/core';\nimport {\n ChannelDeliveryOptionConfiguration,\n FeatureState,\n LoyaltyRewardPoint,\n OrderOriginator,\n ProductCatalog,\n ProductDeliveryOptions,\n SalesLine,\n SalesOrder,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport get from 'lodash/get';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { BuySelectedComponent, IGetOrderSummaryInput, IHelp, IOrderSummary, IPaymentMethods, IPaymentMethodsInput } from '../../common';\nimport { getGroups, IGroups } from '../../common/get-groups';\nimport { getOrderInformation, getOrderInformationInput, IOrderInformation } from '../../common/get-order-information';\nimport { ISalesLine } from '../../common/get-sales-line';\nimport { getSalesLines, getSalesLinesInput } from '../../common/get-sales-lines';\nimport { Label } from '../../common/label';\nimport { getTenderIdOperationIdMap, IPriceContext } from '../../common/utilities';\nimport { getOrderDetailsHelp } from './components/get-help';\nimport { getOrderDetailsOrderSummary } from './components/get-order-summary';\nimport { getOrderDetailsPaymentMethods } from './components/get-payment-methods';\nimport { OrderDetailsTableComponent } from './components/table-view';\nimport { IOrderDetailsData } from './order-details.data';\nimport { addressOptions, IOrderDetailsProps } from './order-details.props.autogenerated';\n\n/**\n * Specifies different layouts for order details.\n */\nexport enum OrderDetailsViewMode {\n listView = 0,\n detailedView = 1\n}\n\nexport interface IOrderDetailsViewProps extends IOrderDetailsProps {\n moduleProps: IModuleProps;\n tableViewActions?: React.ReactNode;\n viewModes?: React.ReactNode;\n table?: React.ReactNode;\n salesOrder?: SalesOrder;\n footerProps?: INodeProps;\n alert?: React.ReactNode;\n loading?: React.ReactNode;\n heading: React.ReactNode;\n placedBy?: React.ReactNode;\n backToShoppingLink?: React.ReactNode;\n orderInfomation?: IOrderInformation;\n salesLines?: ISalesLine[];\n groups?: IGroups;\n orderSummary?: IOrderSummary;\n payment?: IPaymentMethods;\n help?: IHelp;\n catalogs?: ProductCatalog[];\n}\n\n/**\n *\n * OrderDetails component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass OrderDetails extends React.PureComponent> {\n @observable private _viewMode: OrderDetailsViewMode;\n\n @observable private _products: OrderDetailsProduct[];\n\n @observable private _isSelectionModeEnabled: boolean;\n\n private readonly moduleName: string = 'ms-order-details';\n\n private readonly multiplePickupStoreSwitchName: string = 'Dynamics.AX.Application.RetailMultiplePickupDeliveryModeFeature';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @computed get isCurrentChannel(): boolean {\n if (!this.order) {\n return false;\n }\n return this.order.ChannelId === get(this.props, 'context.request.apiSettings.channelId');\n }\n\n @computed get isDataReady(): boolean {\n return get(this.props, 'data.orderHydration.status') === 'SUCCESS';\n }\n\n @computed get hasError(): boolean {\n return get(this.props, 'data.orderHydration.status') === 'FAILED';\n }\n\n @computed get order(): SalesOrder | undefined {\n return get(this.props, 'data.orderHydration.result.salesOrder');\n }\n\n @computed get products(): SimpleProduct[] {\n return get(this.props, 'data.orderHydration.result.products') || [];\n }\n\n @computed get deliveryOptions(): ProductDeliveryOptions[] {\n return get(this.props, 'data.orderHydration.result.deliveryOptions') || [];\n }\n\n @computed get priceContext(): IPriceContext {\n const {\n id,\n typeName,\n context,\n telemetry,\n resources: { freePriceText }\n } = this.props;\n return {\n id,\n typeName,\n context,\n telemetry,\n freePriceText\n };\n }\n\n @computed get earnedPoints(): number {\n const loyaltyCard = this.props.data.loyaltyCard.result;\n if (loyaltyCard && loyaltyCard.RewardPoints && this.order) {\n const pointPrograms = new Set(loyaltyCard.RewardPoints.map((point: LoyaltyRewardPoint) => point.RewardPointId));\n const rewardLines = this.order.LoyaltyRewardPointLines || [];\n let total = 0;\n rewardLines.forEach(line => {\n if ((line.RewardPointAmountQuantity || 0) > 0 && pointPrograms.has(line.RewardPointId)) {\n total += line.RewardPointAmountQuantity!;\n }\n });\n return total;\n }\n return 0;\n }\n\n @computed get orderSummaryProps(): IGetOrderSummaryInput | undefined {\n if (!this.order) {\n return;\n }\n const { request } = this.props.context;\n const { channelDeliveryOptionConfig, featureState } = this.props?.data;\n const isMultiplePickUpOptionEnabled = featureState?.result?.find(\n (item: FeatureState) => item.Name === this.multiplePickupStoreSwitchName\n )?.IsEnabled;\n const pickupDeliveryModeCode = request && request.channel && request.channel.PickupDeliveryModeCode;\n const emailDeliveryModeCode = request && request.channel && request.channel.EmailDeliveryModeCode;\n const orderDetailsLines = this.order?.SalesLines;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- app configs are of generic type\n const isShowOrHideTaxEnabled = request.app.config.isEnableShowOrHideSalesTaxECommerceEnabled === true;\n\n const { salesId = '' } = request.query || {};\n const isCashAndCarryTransaction =\n (this.order.ChannelReferenceId === undefined || this.order.ChannelReferenceId === '') && salesId === '';\n\n const canShip =\n !isCashAndCarryTransaction &&\n orderDetailsLines?.some(orderDetailsLine =>\n orderDetailsLine.DeliveryMode && orderDetailsLine.DeliveryMode !== ''\n ? orderDetailsLine.DeliveryMode !==\n this.getDeliveryMode(\n orderDetailsLine,\n isMultiplePickUpOptionEnabled,\n channelDeliveryOptionConfig?.result,\n pickupDeliveryModeCode\n ) && orderDetailsLine.DeliveryMode !== emailDeliveryModeCode\n : orderDetailsLine\n );\n\n const {\n resources: {\n orderSummaryHeading,\n orderSummaryItemsTotalLabel,\n orderSummaryShippingFeeLabel,\n orderSummaryTaxLabel,\n orderSummaryGrandTotalLabel,\n pointsEarnedLabel\n }\n } = this.props;\n return {\n order: this.order,\n earnedPoints: this.earnedPoints,\n priceContext: this.priceContext,\n resource: {\n orderSummaryHeading,\n orderSummaryItemsTotalLabel,\n orderSummaryShippingFeeLabel,\n orderSummaryTaxLabel,\n pointsEarnedLabel,\n orderSummaryGrandTotalLabel\n },\n canShip,\n isTaxIncludedInPrice: this.order.IsTaxIncludedInPrice,\n isShowTaxBreakUp: isShowOrHideTaxEnabled\n };\n }\n\n @computed get paymentMethodsProps(): IPaymentMethodsInput | undefined {\n const tenderTypes = this.props.data.tenderTypes.result;\n if (!this.order || !this.order.TenderLines || !tenderTypes) {\n return;\n }\n\n const locale = get(this.props, 'context.request.locale') || 'en-US';\n\n const {\n resources: {\n paymentMethodsTitle,\n creditCardEndingLabel,\n giftCardEndingLabel,\n amountCoveredLabel,\n cashUsedLabel,\n loyaltyCardUsedLabel,\n customerAccountUsedLabel\n }\n } = this.props;\n\n return {\n priceContext: this.priceContext,\n tenderLines: this.order.TenderLines,\n tenderIdOperationIdMap: getTenderIdOperationIdMap(tenderTypes),\n locale,\n resource: {\n paymentMethodsTitle,\n creditCardEndingLabel,\n giftCardEndingLabel,\n amountCoveredLabel,\n cashUsedLabel,\n loyaltyCardUsedLabel,\n customerAccountUsedLabel\n },\n priceCurrency: this.order.CurrencyCode\n };\n }\n\n @computed\n private get _orderDetailsProducts(): OrderDetailsProduct[] {\n if (!ArrayExtensions.hasElements(this._products)) {\n this._initProductsModel();\n }\n\n return this._products;\n }\n\n @computed\n private get _orderDetailsAvailableProducts(): OrderDetailsProduct[] {\n if (!ArrayExtensions.hasElements(this._products)) {\n this._initProductsModel();\n }\n\n return this._products.filter(product => product.isProductAvailable);\n }\n\n @computed\n private get _selectedProducts(): OrderDetailsProduct[] {\n const products = this._orderDetailsAvailableProducts;\n const selectedProducts = products.filter(product => product.isSelected);\n if (!ArrayExtensions.hasElements(selectedProducts)) {\n return [];\n }\n\n return selectedProducts;\n }\n\n public constructor(props: IOrderDetailsProps) {\n super(props);\n this._viewMode = OrderDetailsViewMode.detailedView;\n this._products = [];\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this._isSelectionModeEnabled = false;\n }\n\n public render(): JSX.Element {\n const {\n resources: { noSalesOrderDetailsText, loadingLabel },\n config: { shouldShowQrCode, showChannelInfo, showTimeslot, isReorderingEnabled }\n } = this.props;\n\n const showFullAddress =\n this.props.config.addressOptions !== undefined &&\n this.props.config.addressOptions === addressOptions.showAddressWithMultiplelines;\n const channelIdentities = this.props.data.channels.result?.channelIdentities;\n const orgUnitLocations = this.props.data.orgUnitLocations.result?.orgUnitLocations;\n const customer = this.props.data.customerInformation && this.props.data.customerInformation.result;\n const originators = this.props.data.orderOriginators && this.props.data.orderOriginators.result;\n const originator: OrderOriginator | undefined = originators && originators.length === 1 ? originators[0] : undefined;\n const channelMultipleCatalogsFeature = 'Dynamics.AX.Application.ChannelMultipleCatalogsFeature';\n const { channelDeliveryOptionConfig, featureState } = this.props.data;\n const isMultiplePickUpOptionEnabled = featureState.result?.find(\n (item: FeatureState) => item.Name === this.multiplePickupStoreSwitchName\n )?.IsEnabled;\n const isMultipleCatalogsFeatureEnabled = featureState.result?.find(\n (item: FeatureState) => item.Name === channelMultipleCatalogsFeature\n )?.IsEnabled;\n const { confirmationId = '', salesId = '', transactionId = '' } = this.props.context.actionContext.requestContext.query ?? {};\n\n const orderInformationInput =\n this.order &&\n getOrderInformationInput(\n this.props,\n this.moduleName,\n this.order,\n this.priceContext,\n channelIdentities,\n orgUnitLocations,\n customer,\n originator,\n showChannelInfo,\n false,\n shouldShowQrCode ?? true\n );\n\n const orderInformation =\n this._isSelectionModeEnabled || !orderInformationInput ? undefined : getOrderInformation(orderInformationInput);\n\n let viewProps: IOrderDetailsViewProps = this.getOrderDetailsProps();\n if (isUserTypeB2B(this.props.context.request) && orderInformationInput?.isOnlineStore && originator) {\n viewProps = {\n ...viewProps,\n placedBy: orderInformation?.placedBy\n };\n }\n\n if ((salesId || transactionId) && !this.props.context.actionContext.requestContext.user.isAuthenticated) {\n const signInUrl: string = this.props.context.actionContext.requestContext.user.signInUrl ?? '';\n if (Msdyn365.isBrowser) {\n window.location.assign(signInUrl);\n }\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n if (this.hasError || !this.order) {\n if (((salesId || transactionId) && this.props.context.actionContext.requestContext.user.isAuthenticated) || confirmationId) {\n viewProps = {\n ...viewProps,\n alert: