{"version":3,"file":"static/js/b225b6ff0edb80c27c03.bundle.js","mappings":"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","sources":["webpack://Dobbies.Commerce/./src/actions/get-channels.ts?fd22","webpack://Dobbies.Commerce/./src/actions/get-org-unit-locations.ts?0b40","webpack://Dobbies.Commerce/./src/actions/get-sales-order-originators.ts?f89a","webpack://Dobbies.Commerce/./src/actions/get-sales-order-details-by-confirmation-id.ts?ce6e","webpack://Dobbies.Commerce/./src/actions/get-sales-order-with-hydrations.ts?a5de","webpack://Dobbies.Commerce/./src/actions/get-tender-types.ts?d667","webpack://Dobbies.Commerce/./src/modules/order-details/components/get-help.tsx?57cc","webpack://Dobbies.Commerce/./src/modules/order-details/components/get-order-summary.tsx?ba20","webpack://Dobbies.Commerce/./src/modules/order-details/components/get-payment-methods.tsx?eed1","webpack://Dobbies.Commerce/./src/modules/order-details/components/table-view/components/order-details-table-header-component.tsx?ab70","webpack://Dobbies.Commerce/./src/modules/order-details/components/table-view/components/order-details-table-row-component.tsx?bbd4","webpack://Dobbies.Commerce/./src/modules/order-details/components/table-view/order-details-table.tsx?7c6f","webpack://Dobbies.Commerce/./src/modules/order-details/components/view-tracking-button.tsx?3e36","webpack://Dobbies.Commerce/./src/modules/order-details/order-details.tsx?4414","webpack://Dobbies.Commerce/./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 IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { ChannelIdentity } from '@msdyn365-commerce/retail-proxy';\nimport { getChannelsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { buildCacheKey, QueryResultSettingsProxy } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Interface of Channel Identity..\n */\ninterface IChannelIdentity {\n channelIdentities: ChannelIdentity[];\n}\n\n/**\n * Calls the Retail API and returns the channels.\n * @returns - List of channel identity.\n */\nconst getChannels = () => async (ctx: IActionContext): Promise => {\n return getChannelsAsync({\n callerContext: ctx,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx)\n });\n};\n\n/**\n * Action input.\n */\nexport class GetChannelIdentitiesInput implements IActionInput {\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey('ChannelIdentities', this.apiSettings);\n\n public getCacheObjectType = () => 'ChannelIdentities';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData - Action Data Input.\n * @returns - Input object.\n */\nconst createChannelIdentitiesInput = (inputData: ICreateActionContext>) => {\n return new GetChannelIdentitiesInput(inputData.requestContext.apiSettings);\n};\n\n/**\n * Get channels action.\n * @param input - Input data.\n * @param context - Action context.\n * @returns - Channel Identity.\n */\nexport async function getChannelsAction(input: GetChannelIdentitiesInput, context: IActionContext): Promise {\n if (!context) {\n throw new Error('getChannelsAction - Action context cannot be null/undefined');\n }\n\n let channels: ChannelIdentity[] = [];\n\n try {\n channels = await getChannels()(context);\n } catch (error) {\n throw error;\n }\n\n return { channelIdentities: channels };\n}\n\n/**\n * Get sales order with hydrations action.\n * @param id - Unique Id for data action.\n * @param context - Action context.\n * @param input - Input for data action.\n * @returns Channel api response.\n */\nexport const getChannelsActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-management/get-channels',\n action: >getChannelsAction,\n input: createChannelIdentitiesInput\n});\n\nexport default getChannelsActionDataAction;\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 ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { OrgUnitLocation, SearchArea } from '@msdyn365-commerce/retail-proxy';\nimport { getOrgUnitLocationsByAreaAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/OrgUnitsDataActions.g';\nimport { buildCacheKey, QueryResultSettingsProxy } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Interface of Org Unit Locations.\n */\ninterface IOrgUnitLocations {\n orgUnitLocations: OrgUnitLocation[];\n}\n\nconst searchArea: SearchArea = {\n Radius: Math.max(),\n DistanceUnitValue: 0 // 0 is miles\n};\n\n/**\n * Calls the Retail API and returns the orgUnitLocations.\n * @returns - List Org Unit Locations.\n */\nconst getOrgUnitLocations = () => async (ctx: IActionContext): Promise => {\n return getOrgUnitLocationsByAreaAsync(\n {\n callerContext: ctx,\n queryResultSettings: QueryResultSettingsProxy.getPagingFromInputDataOrDefaultValue(ctx)\n },\n searchArea\n );\n};\n\n/**\n * Action input.\n */\nexport class GetOrgUnitLocationsInput implements IActionInput {\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(apiSettings: ICommerceApiSettings) {\n this.apiSettings = apiSettings;\n }\n\n public getCacheKey = () => buildCacheKey('OrgUnitLocations', this.apiSettings);\n\n public getCacheObjectType = () => 'OrgUnitLocations';\n\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData - Action Context.\n * @returns - Org Unit Location input.\n */\nconst createOrgUnitLocationsInput = (inputData: ICreateActionContext>) => {\n return new GetOrgUnitLocationsInput(inputData.requestContext.apiSettings);\n};\n\n/**\n * Get orgUnitLocations action.\n * @param input - Org UNit Locations Input.\n * @param context - Action Context.\n */\nexport async function getOrgUnitLocationsAction(input: GetOrgUnitLocationsInput, context: IActionContext): Promise {\n if (!context) {\n throw new Error('getOrgUnitLocationsAction - Action context cannot be null/undefined');\n }\n\n let orgUnitLocations: OrgUnitLocation[] = [];\n\n try {\n orgUnitLocations = await getOrgUnitLocations()(context);\n } catch (error) {\n throw error;\n }\n\n return { orgUnitLocations };\n}\n\nexport const getOrgUnitLocationsActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-management/get-org-unit-locations',\n action: >getOrgUnitLocationsAction,\n input: createOrgUnitLocationsInput\n});\n\nexport default getOrgUnitLocationsActionDataAction;\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} 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 orderDetailsRequestDeliveryDateTextForTableHeader: string;\n orderDetailsAddressTextForTableHeader: 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.orderDetailsRequestDeliveryDateTextForTableHeader}\n {resources.orderDetailsAddressTextForTableHeader}\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, {\n IAny,\n IComponentProps,\n ICoreContext,\n IDateFormatOptions,\n IGeneric,\n IImageSettings,\n Image,\n isChannelTypeB2B\n} 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 { ViewTrackingButton } from '../../view-tracking-button';\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 viewTrackingButtonLabel?: 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 orderDetailsReferences?: React.RefObject;\n isExtraButtonDialogViewEnabled?: 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 formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n };\n\n const confirmedShipDateAvailable = salesLine.ConfirmedShipDate === undefined || salesLine.ConfirmedShipDate === null;\n const requestDeliveryDateAvailable = salesLine.RequestedDeliveryDate === undefined || salesLine.RequestedDeliveryDate === null;\n\n const currentProduct = new OrderDetailsProduct(product.salesLine, product.simpleProduct, productUrl);\n\n const defaultConfirmedShipDateLabelValue = '-';\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 \n {!confirmedShipDateAvailable ? formatDate(props.context, salesLine.ConfirmedShipDate) : defaultConfirmedShipDateLabelValue}\n \n \n {!requestDeliveryDateAvailable\n ? formatDate(props.context, salesLine.RequestedDeliveryDate)\n : defaultConfirmedShipDateLabelValue}\n \n {salesLine.ShippingAddress?.FullAddress}\n {!props.isExtraButtonDialogViewEnabled ? (\n \n \n \n ) : (\n \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 actions popup for the mobile view.\n * @param props - Configuration for popup.\n * @returns A react node with actions..\n */\nconst OrderDetailsDesktopExtraActionsPopupComponent: React.FC = (\n props: IOrderDetailsTableRowProps\n): JSX.Element | null => {\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 /**\n * Request specific invoice function.\n * @param props -Invoice table row props.\n * @param requestInvoiceButtonReference -Reference button.\n * @returns Call Request Invoice.\n */\n const onViewTrackingClick = (\n props: IOrderDetailsTableRowProps,\n requestInvoiceButtonReference: React.RefObject,\n setShowActions: React.Dispatch>\n ) => () => {\n setShowActions(false);\n };\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}__desktop-extra-actions-cell`;\n const actionsContainerClassName = `${className}__actions-container`;\n\n return (\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 isExtraButtonDialogViewEnabled?: 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 { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IViewTrackingButtonProps {\n innerReference?: React.RefObject;\n className: string;\n viewTrackingButtonLabel?: string;\n onClicked(): void;\n}\n\nexport const ViewTrackingButton: React.FC = ({\n className,\n onClicked,\n viewTrackingButtonLabel,\n innerReference\n}) => {\n return (\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: