{"version":3,"file":"static/js/e3de723deacfa42c264a.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/actions/get-sales-order-originators.ts?f89a","webpack://Msdyn365.Commerce.Online/./src/common/expand-button-state.ts?0e6f","webpack://Msdyn365.Commerce.Online/./src/common/sales-line-state.ts?3828","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/actions/get-date-refiner-options.ts?ceee","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/actions/get-order-history-with-search-and-filters.ts?d907","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/actions/get-order-status-refiner-options.ts?f617","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/actions/get-search-options.ts?f248","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/actions/get-sort-options.ts?7dea","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/common/get-sales-order.ts?e014","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/common/refiner-option.ts?b3fd","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/common/search-option.ts?20d1","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/common/sort-option.ts?5e94","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-header.component.tsx?3609","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-order-list.component.tsx?9f7d","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-order-table.component.tsx?c86f","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-organization-wide-selector.component.tsx?b9a7","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-view-mode-selector.component.tsx?6452","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/common/refiner-option-mappings.ts?5f11","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/common/sort-option-mappings.ts?635a","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/order-history-with-search-and-filters.tsx?e2e5","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/common/search-option-mappings.ts?a532","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/order-history-with-search-and-filters.view.tsx?0c93"],"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 { observable } from 'mobx';\n\n/**\n * Represents state of the expand button.\n */\nexport class ExpandButtonState {\n @observable public extraProductsCount: number;\n\n public constructor(extraProductsCount: number) {\n this.extraProductsCount = extraProductsCount;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { observable } from 'mobx';\n\n/**\n * Represents state of the sales line product.\n */\nexport class SalesLineState {\n @observable public isHidden?: boolean;\n\n public stateId: string;\n\n public constructor(stateId: string, isHidden?: boolean) {\n this.stateId = stateId;\n this.isHidden = isHidden;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n createObservableDataAction,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core';\nimport { DateRefinerOptionItem } from '../common/refiner-option';\n\n/**\n * Gets the date refiner options.\n * @returns - List of refiner options.\n */\nconst getDateRefinerOptions = () => async (ctx: IActionContext): Promise => {\n return Promise.resolve([\n DateRefinerOptionItem.LastSevenDays,\n DateRefinerOptionItem.LastThirtyDays,\n DateRefinerOptionItem.LastThreeMonths,\n DateRefinerOptionItem.LastSixMonths,\n DateRefinerOptionItem.Customized\n ]);\n};\n\n/**\n * Action input.\n */\nexport class GetDateRefinerOptionsInput implements IActionInput {\n public getCacheKey = () => 'OrderHistoryWithSearchAndFiltersDateRefinerOptions';\n\n public getCacheObjectType = () => 'OrderHistoryWithSearchAndFiltersDateRefinerOptions';\n\n public dataCacheType = (): CacheType => 'instance';\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 createGetDateRefinerOptionsInput = (inputData: ICreateActionContext>): IActionInput => {\n return new GetDateRefinerOptionsInput();\n};\n\n/**\n * Get action.\n * @param input - Input data.\n * @param context - Action context.\n * @returns - List of refiner options.\n */\nexport async function getDateRefinerOptionsAction(\n input: GetDateRefinerOptionsInput,\n context: IActionContext\n): Promise {\n if (!context) {\n throw new Error('getDateRefinerOptionsAction - Action context cannot be null/undefined');\n }\n\n let refinerOptions: DateRefinerOptionItem[] = [];\n\n try {\n refinerOptions = await getDateRefinerOptions()(context);\n } catch (error) {\n throw error;\n }\n\n return refinerOptions;\n}\n\n/**\n * Get date refiner options action.\n * @param id - Unique Id for data action.\n * @param context - Action context.\n * @param input - Input for data action.\n * @returns Api response.\n */\nexport const getDateRefinerOptionsActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-history-with-search-and-filters/get-date-refiner-options',\n action: getDateRefinerOptionsAction as IAction,\n input: createGetDateRefinerOptionsInput\n});\n\nexport default getDateRefinerOptionsActionDataAction;\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 { SalesLine } from '@msdyn365-commerce/retail-proxy';\nimport { buildCacheKey, getSimpleProducts, ProductInput } from '@msdyn365-commerce-modules/retail-actions';\n\nimport {\n getSalesOrdersByLookupCriteriaAsync,\n searchOrdersAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/SalesOrdersDataActions.g';\nimport { getCurrentAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport {\n CustomerOrderType,\n OrderSearchCriteria,\n QueryResultSettings,\n SalesOrder,\n SalesOrderLookupBySalesId,\n SalesOrderLookupByTransactionId,\n SalesOrdersLookupCriteria,\n SimpleProduct,\n SortColumn\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\n\nimport { isNullOrWhiteSpace } from '@msdyn365-commerce-modules/utilities';\nimport { OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState } from '../components';\n\n/**\n * IGetOrderHistoryWithSearchAndFiltersPaging interface.\n */\nexport interface IGetOrderHistoryWithSearchAndFiltersPaging {\n top: number;\n nextPageToken: string;\n}\n\n/**\n * IGetOrderHistoryWithSearchAndFiltersSorting interface.\n */\nexport interface IGetOrderHistoryWithSearchAndFiltersSorting {\n columnName: string;\n isDescending: boolean;\n}\n\nexport interface IOrderHistoryWithSearchAndFilterError {\n statusCode?: number;\n errorMessageResource?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error?: any;\n}\n/**\n * IOrderHistoryWithSearchAndFiltersResult interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersResult {\n salesOrders: SalesOrder[];\n products: SimpleProduct[];\n paging: IGetOrderHistoryWithSearchAndFiltersPaging;\n error?: IOrderHistoryWithSearchAndFilterError;\n}\n\n/**\n * IGetOrdersResult interface.\n */\ninterface IGetOrdersResult {\n salesOrders: SalesOrder[];\n paging: IGetOrderHistoryWithSearchAndFiltersPaging;\n error?: IOrderHistoryWithSearchAndFilterError;\n}\n\n/**\n * Calls the Retail API and returns the orders.\n * @param paging - The paging information to use in SearchOrders API.\n * @param sorting - The sorting information to use in SearchOrders API.\n * @param organizationWideSelectorState - The organization wide selector state.\n * @param orderSearchCriteria - The search criteria.\n * @returns Collection of SalesOrder.\n */\nconst getOrders = (\n paging: IGetOrderHistoryWithSearchAndFiltersPaging,\n sorting: IGetOrderHistoryWithSearchAndFiltersSorting | undefined,\n organizationWideSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState,\n orderSearchCriteria: OrderSearchCriteria\n) => async (ctx: IActionContext): Promise => {\n let searchCriteria: OrderSearchCriteria;\n switch (organizationWideSelectorState) {\n case OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.CurrentUser:\n searchCriteria = {\n ...orderSearchCriteria,\n CustomerAccountNumber: ctx.requestContext.user.customerAccountNumber,\n OrderType: CustomerOrderType.SalesOrder\n };\n break;\n case OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.OrganizationWide:\n const businessPartner = await getCurrentAsync({ callerContext: ctx });\n if (!businessPartner) {\n throw new Error('Unable to get order history. Failed to retrieve business partner id.');\n }\n searchCriteria = {\n ...orderSearchCriteria,\n BusinessPartnerId: businessPartner.BusinessPartnerId,\n OrderType: CustomerOrderType.SalesOrder\n };\n break;\n default:\n throw new Error('getSalesOrderWithHydrationsAction - Invalid OrganizationOrderHistorySelectorState passed');\n }\n\n const queryResultSettings: QueryResultSettings = {\n Paging: {\n Top: paging.top,\n NextPageToken: paging.nextPageToken // this value will be overwritten in server side.\n }\n };\n\n if (sorting) {\n queryResultSettings.Sorting = {\n Columns: [\n {\n ColumnName: sorting.columnName,\n IsDescending: sorting.isDescending\n } as SortColumn\n ]\n };\n }\n\n const searchOrdersResults = searchOrdersAsync(\n {\n callerContext: ctx,\n bypassCache: 'get',\n queryResultSettings: queryResultSettings\n },\n searchCriteria,\n paging.nextPageToken\n );\n\n const errorDetails: IOrderHistoryWithSearchAndFilterError = {};\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const searchOrdersResponse: SalesOrder[] = await searchOrdersResults.catch((error: any) => {\n errorDetails.statusCode = error?.statusCode;\n errorDetails.errorMessageResource = error?.message;\n errorDetails.error = error;\n return [];\n });\n\n const nextLinkUrl = searchOrdersResults.metadata?.others?.nextLink;\n const nextPageLink = nextLinkUrl !== undefined ? new URL(nextLinkUrl).searchParams.get('nextPageToken') : undefined;\n const newNextPageToken = nextPageLink !== null ? nextPageLink : undefined;\n\n const salesOrdersLookupCriteria: SalesOrdersLookupCriteria = {};\n salesOrdersLookupCriteria.SalesOrderLookups = searchOrdersResponse?.map((order: SalesOrder) => {\n if (order.SalesId && !isNullOrWhiteSpace(order.SalesId)) {\n const salesOrderLookupBySalesId = {\n SalesId: order.SalesId,\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.SalesOrderLookupBySalesId'\n } as SalesOrderLookupBySalesId;\n return salesOrderLookupBySalesId;\n } else if (order.Id && !isNullOrWhiteSpace(order.Id)) {\n const salesOrderLookupByTransactionId = {\n TransactionId: order.Id,\n ChannelId: order.ChannelId,\n StoreId: order.StoreId,\n TerminalId: order.TerminalId,\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.SalesOrderLookupByTransactionId'\n } as SalesOrderLookupByTransactionId;\n return salesOrderLookupByTransactionId;\n } else {\n throw new Error('Invalid input - There are no orders to view.');\n }\n });\n\n const orderHistoryResults = getSalesOrdersByLookupCriteriaAsync(\n {\n callerContext: ctx,\n bypassCache: 'get'\n },\n salesOrdersLookupCriteria\n );\n\n const orderHistoryResponse = await orderHistoryResults;\n\n // organize the order history by the order of the search results\n const orderHistoryResponseMap = new Map();\n orderHistoryResponse.forEach(order => {\n if (order.SalesId && !isNullOrWhiteSpace(order.SalesId)) {\n orderHistoryResponseMap.set(order.SalesId, order);\n }\n\n if (order.Id && !isNullOrWhiteSpace(order.Id)) {\n const key = `${order.Id}_${order.ChannelId}_${order.StoreId}_${order.TerminalId}`;\n orderHistoryResponseMap.set(key, order);\n }\n });\n\n const orderedOrderHistoryResponse = searchOrdersResponse\n ?.map((order: SalesOrder) => {\n let key: string;\n if (order.SalesId && !isNullOrWhiteSpace(order.SalesId)) {\n key = order.SalesId;\n } else if (order.Id && !isNullOrWhiteSpace(order.Id)) {\n key = `${order.Id}_${order.ChannelId}_${order.StoreId}_${order.TerminalId}`;\n } else {\n throw new Error('Invalid order - Missing key (SalesId / Id).');\n }\n return orderHistoryResponseMap.get(key);\n })\n .filter(order => order !== undefined);\n\n return {\n salesOrders: orderedOrderHistoryResponse,\n error: errorDetails,\n paging: {\n top: paging.top,\n nextPageToken: newNextPageToken || ''\n }\n } as IGetOrdersResult;\n};\n\n/**\n * Calls the Retail API and returns the products.\n * @param productIds - Collection of products identifiers.\n * @param channelId - Channel identifier.\n * @returns Collections of simple products.\n */\nconst getProducts = (productIds: number[] = [], channelId?: number) => (ctx: IActionContext): Promise => {\n const productInputs = productIds.map(\n productId => new ProductInput(productId, ctx.requestContext.apiSettings, channelId, undefined, ctx.requestContext)\n );\n return getSimpleProducts(productInputs, ctx);\n};\n\n/**\n * Action input.\n */\nexport class GetOrderHistoryWithSearchAndFiltersInput implements IActionInput {\n public paging: IGetOrderHistoryWithSearchAndFiltersPaging;\n\n public sorting?: IGetOrderHistoryWithSearchAndFiltersSorting;\n\n public organizationWideSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState;\n\n public orderSearchCriteria: OrderSearchCriteria;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n constructor(\n paging: IGetOrderHistoryWithSearchAndFiltersPaging,\n apiSettings: ICommerceApiSettings,\n organizationWideSelectorState?: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState,\n orderSearchCriteria?: OrderSearchCriteria,\n sorting?: IGetOrderHistoryWithSearchAndFiltersSorting\n ) {\n this.apiSettings = apiSettings;\n this.paging = paging;\n this.sorting = sorting;\n this.organizationWideSelectorState =\n organizationWideSelectorState || OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.CurrentUser;\n this.orderSearchCriteria = orderSearchCriteria || ({} as OrderSearchCriteria);\n }\n\n public getCacheKey = () => buildCacheKey('OrderHistoryWithSearchAndFilters', this.apiSettings);\n\n /**\n * GetCacheObjectType.\n * @returns String.\n */\n public getCacheObjectType = () => 'OrderHistoryWithSearchAndFilters';\n\n public dataCacheType = (): CacheType => 'none';\n}\n\n/**\n * Splits product ids from the given orders into lists by their channel id.\n * @param {SalesOrder[]} salesOrders Orders with the products.\n * @param {number} currentChannelId Channel id to use by default if no channel id is provided for a product.\n * @returns {{ [x: number]: number[] }} A dictionary where the key is a channel id,\n * and the value is a list of product ids in which all items correspond to the key channel id.\n * @remark The list of product ids is always non-empty.\n */\nconst splitProductsByChannelId = (salesOrders: SalesOrder[], currentChannelId: number): { [x: number]: number[] } => {\n const productIdsByChannel: { [x: number]: number[] } = {};\n\n salesOrders.forEach(salesOrder =>\n salesOrder?.SalesLines?.forEach(line => {\n const orderProductId = line.ProductId || 0;\n const orderChannelId = salesOrder.ChannelId || currentChannelId;\n if (!productIdsByChannel[orderChannelId]) {\n productIdsByChannel[orderChannelId] = [];\n }\n productIdsByChannel[orderChannelId].push(orderProductId);\n })\n );\n\n return productIdsByChannel;\n};\n\n/**\n * Get sales orders given search and filters options.\n * @param input - GetOrderHistoryWithSearchAndFiltersInput.\n * @param context - Channel context.\n * @returns - Order History props.\n */\nexport async function getGetOrderHistoryWithSearchAndFiltersAction(\n input: GetOrderHistoryWithSearchAndFiltersInput,\n context: IActionContext\n): Promise {\n if (!context) {\n throw new Error('getSalesOrderWithHydrationsAction - Action context cannot be null/undefined');\n }\n const channelId = context.requestContext.apiSettings.channelId;\n const response: IGetOrdersResult = await getOrders(\n input.paging,\n input.sorting,\n input.organizationWideSelectorState,\n input.orderSearchCriteria\n )(context);\n const salesOrders: SalesOrder[] = response.salesOrders;\n const paging: IGetOrderHistoryWithSearchAndFiltersPaging = response.paging;\n\n salesOrders.map(salesOrder => {\n return (salesOrder.SalesLines = salesOrder.SalesLines?.filter((saleline: SalesLine) => !saleline.IsVoided));\n });\n\n if (!salesOrders || salesOrders.length === 0) {\n return {\n salesOrders: [],\n products: [],\n paging: paging,\n error: response.error\n };\n }\n\n // Splits the data by channel ids so that the products from different channels can be processed separately.\n const productIdsByChannelId = splitProductsByChannelId(salesOrders, channelId);\n\n // Promise that retrieves information about the products for each channel id.\n // Note, the list of product ids should not be empty\n // as it will generate an empty request which will force the promise to fail.\n const getProductsPromise = Object.entries(productIdsByChannelId).map(([entryChannelId, entryProductIdsList]) => {\n const getProductsCall = getProducts(entryProductIdsList, Number(entryChannelId));\n return getProductsCall(context);\n });\n\n return Promise.all(getProductsPromise)\n .then(\n (productList): IOrderHistoryWithSearchAndFiltersResult => {\n const products = productList.reduce((memo, list) => {\n return [...memo, ...list];\n }, []);\n return {\n salesOrders,\n products,\n paging: paging,\n error: response.error\n };\n }\n )\n .catch(error => {\n context.telemetry.exception(error);\n context.telemetry.debug('Failed to get products');\n throw error;\n });\n}\n\nexport const getGetOrderHistoryWithSearchAndFiltersActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-history-with-search-and-filters/get-order-history-with-search-and-filters',\n action: getGetOrderHistoryWithSearchAndFiltersAction as IAction\n});\n\nexport default getGetOrderHistoryWithSearchAndFiltersActionDataAction;\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 { OrderStatusRefinerOptionItem } from '../common/refiner-option';\n\n/**\n * Gets the order status refiner options.\n * @returns - List of refiner options.\n */\nconst getOrderStatusRefinerOptions = () => async (ctx: IActionContext): Promise => {\n return Promise.resolve([\n OrderStatusRefinerOptionItem.Created,\n OrderStatusRefinerOptionItem.Invoiced,\n OrderStatusRefinerOptionItem.Canceled\n ]);\n};\n\n/**\n * Action input.\n */\nexport class GetOrderStatusRefinerOptionsInput implements IActionInput {\n public getCacheKey = () => 'OrderHistoryWithSearchAndFiltersOrderStatusRefinerOptions';\n\n public getCacheObjectType = () => 'OrderHistoryWithSearchAndFiltersOrderStatusRefinerOptions';\n\n public dataCacheType = (): CacheType => 'instance';\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 createGetOrderStatusRefinerOptionsInput = (inputData: ICreateActionContext>): IActionInput => {\n return new GetOrderStatusRefinerOptionsInput();\n};\n\n/**\n * Get action.\n * @param input - Input data.\n * @param context - Action context.\n * @returns - List of refiner options.\n */\nexport async function getOrderStatusRefinerOptionsAction(\n input: GetOrderStatusRefinerOptionsInput,\n context: IActionContext\n): Promise {\n if (!context) {\n throw new Error('getOrderStatusRefinerOptionsAction - Action context cannot be null/undefined');\n }\n\n let refinerOptions: OrderStatusRefinerOptionItem[] = [];\n\n try {\n refinerOptions = await getOrderStatusRefinerOptions()(context);\n } catch (error) {\n throw error;\n }\n\n return refinerOptions;\n}\n\n/**\n * Get order status refiner options action.\n * @param id - Unique Id for data action.\n * @param context - Action context.\n * @param input - Input for data action.\n * @returns Api response.\n */\nexport const getOrderStatusRefinerOptionsActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-history-with-search-and-filters/get-order-status-refiner-options',\n action: getOrderStatusRefinerOptionsAction as IAction,\n input: createGetOrderStatusRefinerOptionsInput\n});\n\nexport default getOrderStatusRefinerOptionsActionDataAction;\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 { SearchOption } from '../common/search-option';\n\n/**\n * Gets the search options.\n * @returns - List of search options.\n */\nconst getSearchOptions = () => async (ctx: IActionContext): Promise => {\n return Promise.resolve([\n SearchOption.OrderNumber,\n SearchOption.ConfirmationId,\n SearchOption.ChannelName,\n SearchOption.CustomerRequisition\n ]);\n};\n\n/**\n * Action input.\n */\nexport class GetSearchOptionsInput implements IActionInput {\n public getCacheKey = () => 'OrderHistoryWithSearchAndFiltersSearchOptions';\n\n public getCacheObjectType = () => 'OrderHistoryWithSearchAndFiltersSearchOptions';\n\n public dataCacheType = (): CacheType => 'instance';\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 createGetSearchOptionsInput = (inputData: ICreateActionContext>): IActionInput => {\n return new GetSearchOptionsInput();\n};\n\n/**\n * Get action.\n * @param input - Input data.\n * @param context - Action context.\n * @returns - List of search options.\n */\nexport async function getSearchOptionsAction(input: GetSearchOptionsInput, context: IActionContext): Promise {\n if (!context) {\n throw new Error('getSearchOptionsAction - Action context cannot be null/undefined');\n }\n\n let searchOptions: SearchOption[] = [];\n\n try {\n searchOptions = await getSearchOptions()(context);\n } catch (error) {\n throw error;\n }\n\n return searchOptions;\n}\n\n/**\n * Get search options action.\n * @param id - Unique Id for data action.\n * @param context - Action context.\n * @param input - Input for data action.\n * @returns Api response.\n */\nexport const getSearchOptionsActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-history-with-search-and-filters/get-search-options',\n action: getSearchOptionsAction as IAction,\n input: createGetSearchOptionsInput\n});\n\nexport default getSearchOptionsActionDataAction;\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 { SortOption } from '../common/sort-option';\n\n/**\n * Gets the sort options.\n * @returns - List of sort options.\n */\nconst getAllSortOptions = () => async (ctx: IActionContext): Promise => {\n return Promise.resolve([\n SortOption.CreatedDateTimeDescending,\n SortOption.CreatedDateTimeAscending,\n SortOption.ConfirmedShipDateDescending,\n SortOption.ConfirmedShipDateAscending\n ]);\n};\n\n/**\n * Gets the sort options without confirmed ship date options.\n * @returns - List of sort options.\n */\nconst getSortOptionsWithoutConfirmedShipDate = () => async (ctx: IActionContext): Promise => {\n return Promise.resolve([SortOption.CreatedDateTimeDescending, SortOption.CreatedDateTimeAscending]);\n};\n\n/**\n * Action input.\n */\nexport class GetSortOptionsInput implements IActionInput {\n public allowSortingByConfirmedShipDate: boolean;\n\n constructor(allowSortingByConfirmedShipDate: boolean) {\n this.allowSortingByConfirmedShipDate = allowSortingByConfirmedShipDate;\n }\n\n public getCacheKey = () => 'OrderHistoryWithSearchAndFiltersSortOptions';\n\n public getCacheObjectType = () => 'OrderHistoryWithSearchAndFiltersSortOptions';\n\n public dataCacheType = (): CacheType => 'instance';\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 createGetSortOptionsInput = (inputData: ICreateActionContext>): IActionInput => {\n return new GetSortOptionsInput(inputData.config?.showConfirmedShipDateSortingOptions || false);\n};\n\n/**\n * Get action.\n * @param input - Input data.\n * @param context - Action context.\n * @returns - List of sort options.\n */\nexport async function getSortOptionsAction(input: GetSortOptionsInput, context: IActionContext): Promise {\n if (!context) {\n throw new Error('getSortOptionsAction - Action context cannot be null/undefined');\n }\n\n let sortOptions: SortOption[] = [];\n\n try {\n sortOptions = input.allowSortingByConfirmedShipDate\n ? await getAllSortOptions()(context)\n : await getSortOptionsWithoutConfirmedShipDate()(context);\n } catch (error) {\n throw error;\n }\n\n return sortOptions;\n}\n\n/**\n * Get sort options action.\n * @param id - Unique Id for data action.\n * @param context - Action context.\n * @param input - Input for data action.\n * @returns Api response.\n */\nexport const getSortOptionsActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce-modules/order-history-with-search-and-filters/get-sort-options',\n action: getSortOptionsAction as IAction,\n input: createGetSortOptionsInput\n});\n\nexport default getSortOptionsActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext, getUrlSync } from '@msdyn365-commerce/core-internal';\nimport { SalesOrder, SalesStatus } from '@msdyn365-commerce/retail-proxy';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\n\n/**\n * Resources for order status.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrderStatusResources {\n orderStatusCreated: string;\n orderStatusDelivered: string;\n orderStatusInvoiced: string;\n orderStatusCanceled: string;\n}\n\n/**\n * Retrieves the url for order details page.\n * @param actionContext - Core action context.\n * @param salesOrder - Order information.\n * @returns Url to order details.\n */\nexport const getOrderDetailsPageUrl = (actionContext: IActionContext, salesOrder: SalesOrder): string => {\n const orderDetailsUrl = getUrlSync('orderDetails', actionContext) || '';\n const separator = orderDetailsUrl.includes('?') ? '&' : '?';\n if (!StringExtensions.isNullOrWhitespace(salesOrder.SalesId)) {\n // Redirect with sales order sales id\n return `${orderDetailsUrl}${separator}salesId=${salesOrder.SalesId}`;\n }\n\n // Redirect with sales order transaction id\n return `${orderDetailsUrl}${separator}transactionId=${salesOrder.Id}`;\n};\n\n/**\n * Retrieves the text for order status.\n * @param status - The sales order.\n * @param resources - Resources where we can find the text.\n * @returns The text for the order status.\n */\nexport const getOrderStatusLabel = (\n status: SalesStatus | undefined,\n resources: IOrderHistoryWithSearchAndFiltersOrderStatusResources\n): string => {\n switch (status) {\n case SalesStatus.Created:\n return resources.orderStatusCreated;\n case SalesStatus.Delivered:\n return resources.orderStatusDelivered;\n case SalesStatus.Invoiced:\n return resources.orderStatusInvoiced;\n case SalesStatus.Canceled:\n return resources.orderStatusCanceled;\n default:\n return '';\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { SalesStatus } from '@msdyn365-commerce/retail-proxy';\n\nexport enum RefinerSourceType {\n Origin = 1,\n CreatedDate = 2,\n OrderStatus = 3\n}\n\nexport enum DateRefinerOptionItem {\n LastSevenDays = 0,\n LastThirtyDays = 1,\n LastThreeMonths = 2,\n LastSixMonths = 3,\n Customized = 999\n}\n\nexport enum OrderStatusRefinerOptionItem {\n Created = SalesStatus.Created,\n Delivered = SalesStatus.Delivered,\n Invoiced = SalesStatus.Invoiced,\n Canceled = SalesStatus.Canceled\n}\n\nexport interface IDateRange {\n startDate?: Date;\n endDate?: Date;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport enum SearchOption {\n OrderNumber = 0,\n ConfirmationId = 1,\n ChannelName = 2,\n CustomerRequisition = 3\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport enum SortOption {\n CreatedDateTimeAscending = 'CreatedDateTimeAscending',\n CreatedDateTimeDescending = 'CreatedDateTimeDescending',\n ConfirmedShipDateAscending = 'ConfirmedShipDateAscending',\n ConfirmedShipDateDescending = 'ConfirmedShipDateDescending'\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\nimport { SalesOrder } from '@msdyn365-commerce/retail-proxy';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-header';\nconst headingClassName = `${componentClassName}__heading`;\nconst orderCountClassName = `${componentClassName}__order-count`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderResources {\n orderCountLabel: string;\n ordersCountLabel: string;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderData {\n salesOrders: SalesOrder[];\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderProps\n extends Msdyn365.IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersHeaderResources;\n textProps: Msdyn365.ITextProps;\n showOrderCount: boolean;\n extraActions?: React.ReactNode;\n onChange(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersHeader component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersHeaderFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersHeaderProps\n) => {\n const {\n resources,\n data: { salesOrders },\n textProps,\n showOrderCount,\n extraActions\n } = props;\n\n const orderCount = salesOrders?.length;\n const orderCountText = `(${orderCount} ${orderCount === 1 ? resources?.orderCountLabel : resources?.ordersCountLabel})`;\n\n return (\n \n {textProps?.text && (\n \n )}\n {showOrderCount && {orderCountText}}\n {extraActions}\n \n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersHeader component.\n */\nexport const OrderHistoryWithSearchAndFiltersHeaderComponent: React.FunctionComponent = Msdyn365.msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersHeaderProps\n>('OrderHistoryWithSearchAndFiltersHeaderComponent', { component: OrderHistoryWithSearchAndFiltersHeaderFunctionalComponent });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n ITelemetryContent,\n Node,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport {\n ChannelDeliveryOptionConfiguration,\n ChannelIdentity,\n Customer,\n OrderOriginator,\n OrgUnitLocation,\n SalesOrder,\n SimpleProduct\n} from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Observer } from 'mobx-react';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\nimport { getGroups, IGroup, IGroupDelivery, IGroups } from '../../../common/get-groups';\nimport { getOrderInformation, getOrderInformationInput, IOrderInformation } from '../../../common/get-order-information';\nimport { ISalesLine } from '../../../common/get-sales-line';\nimport { getSalesLines, getSalesLinesInput, IGetSalesLinesInput } from '../../../common/get-sales-lines';\nimport { ExpandButtonState, IPriceContext, SalesLineState } from '../../../common';\nimport {\n IOrderHistoryWithSearchAndFiltersProps,\n IOrderHistoryWithSearchAndFiltersResources\n} from '../order-history-with-search-and-filters.props.autogenerated';\nimport { IOrderHistoryWithSearchAndFiltersData } from '../order-history-with-search-and-filters.data';\nimport { getOrderDetailsPageUrl } from '../common/get-sales-order';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-order-list';\nconst orderListItemClassName = `${componentClassName}__sales-order`;\nconst orderInformationHeaderClassName = `${componentClassName}__sales-order__header`;\nconst expandProductsButtonClassName = `${componentClassName}__sales-order__expand-products-button`;\nconst expandProductsButtonWrapperClassName = `${componentClassName}__sales-order__expand-products-button-wrapper`;\nconst orderDetailButtonClassName = `${componentClassName}__btn-order-details`;\nconst moduleName = componentClassName;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrderListData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrderListData {\n salesOrders: SalesOrder[];\n products: SimpleProduct[];\n channelIdentities?: ChannelIdentity[];\n orgUnitLocations?: OrgUnitLocation[];\n customer?: Customer;\n originators?: OrderOriginator[];\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrderListProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrderListProps extends IComponentProps {\n moduleProps: IOrderHistoryWithSearchAndFiltersProps;\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersResources;\n isMobileView?: boolean;\n showChannelInfo: boolean;\n showOrderPlacedBy?: boolean;\n salesLinesLimit?: number;\n telemetryContent?: ITelemetryContent;\n retailMultiplePickUpOptionEnabled?: boolean;\n channelDeliveryOptionConfig?: ChannelDeliveryOptionConfiguration;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrderItemProps interface.\n */\ninterface IOrderHistoryWithSearchAndFiltersOrderItemProps {\n orderInfomation: IOrderInformation;\n groups?: IGroups;\n orderDetailsLink: React.ReactNode;\n expandProductsButton?: React.ReactNode;\n}\n\n/**\n * OrderInfomation component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderInfomationComponent: React.FC = ({\n orderInformationProps,\n placedBy,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {placedBy}\n
\n {channelName}\n {count}\n
\n {salesId}\n {receiptId}\n {createdDate}\n {amount}\n {channelReferenceId}\n
\n);\n\n/**\n * GroupDelivery component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst GroupDeliveryComponent: React.FC = ({ deliveryProps, heading, count, processing, address, trackingInfo }) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\n/**\n * Group component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst GroupComponent: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {delivery && }\n {salesLines && (\n \n {salesLines.map((salesLine: ISalesLine) => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\n/**\n * Groups component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst GroupsComponent: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group: IGroup, index: number) => (\n \n ))}\n \n);\n\n/**\n * Updates product states to show all products.\n * @param expandButtonState - Expand button state.\n * @param productStates - Product states.\n * @returns Callback method.\n */\nconst onExpandProductsCallback = (expandButtonState: ExpandButtonState, productStates: SalesLineState[]) => () => {\n for (const productState of productStates) {\n productState.isHidden = false;\n }\n expandButtonState.extraProductsCount = 0;\n};\n\n/**\n * Gets the IOrderHistoryWithSearchAndFiltersOrderItem configuration.\n * @param salesOrder The sales order\n * @param index The sales order index\n * @param props The component props\n * @returns The IOrderHistoryWithSearchAndFiltersOrderItem configuration.\n */\nconst createOrderHistoryWithSearchAndFiltersOrderItemProps = (\n salesOrder: SalesOrder,\n index: number,\n props: IOrderHistoryWithSearchAndFiltersOrderListProps\n): IOrderHistoryWithSearchAndFiltersOrderItemProps => {\n const {\n id,\n typeName,\n context,\n moduleProps: { telemetry },\n data: { products, channelIdentities, orgUnitLocations, customer, originators },\n showChannelInfo,\n telemetryContent,\n resources: { freePriceText, detailsAriaLabel, detailsLabel, orderItemLabel, orderItemsLabel },\n context: { actionContext },\n retailMultiplePickUpOptionEnabled,\n channelDeliveryOptionConfig\n } = props;\n\n const priceContext = {\n id,\n typeName,\n context,\n telemetry,\n freePriceText\n } as IPriceContext;\n\n const originator: OrderOriginator | undefined = originators?.find(\n originator =>\n (salesOrder.SalesId && originator.SalesId === salesOrder.SalesId) ||\n (salesOrder.Id && originator.TransactionId === salesOrder.Id)\n );\n\n const salesLinesInput =\n products &&\n getSalesLinesInput(\n props.moduleProps,\n moduleName,\n salesOrder,\n products,\n priceContext,\n undefined,\n undefined,\n undefined,\n retailMultiplePickUpOptionEnabled,\n channelDeliveryOptionConfig\n );\n\n let salesLines: ISalesLine[] | undefined;\n let expandProductsButton: React.ReactNode;\n if (salesLinesInput) {\n const getSalesLinesInputProps: IGetSalesLinesInput = { ...salesLinesInput, imageOnly: true };\n if (!ObjectExtensions.isNullOrUndefined(props.salesLinesLimit)) {\n const extraProductsCount = getSalesLinesInputProps.salesLines.length - props.salesLinesLimit;\n getSalesLinesInputProps.salesLineStates = getSalesLinesInputProps.salesLines.map(\n (salesLine, index) => new SalesLineState(`${salesLine.LineId ?? ''}-${index}`, index >= props.salesLinesLimit!)\n );\n if (extraProductsCount > 0) {\n const expandButtonState = new ExpandButtonState(extraProductsCount);\n expandProductsButton = (\n <>\n \n {() => {\n const text = format(\n props.resources.orderHistoryExpandProductsButtonText,\n expandButtonState.extraProductsCount\n );\n return (\n expandButtonState.extraProductsCount > 0 && (\n \n {text}\n \n )\n );\n }}\n \n \n );\n }\n }\n salesLines = getSalesLines(getSalesLinesInputProps);\n }\n\n expandProductsButton = (\n <>\n {expandProductsButton}\n
\n \n );\n\n const groups =\n salesLines &&\n getGroups({\n moduleName,\n salesLines,\n resources: { orderItemLabel, orderItemsLabel },\n retailMultiplePickUpOptionEnabled\n });\n\n const orderInfomationInput = getOrderInformationInput(\n props.moduleProps,\n moduleName,\n salesOrder,\n priceContext,\n channelIdentities,\n orgUnitLocations,\n customer,\n originator,\n showChannelInfo\n );\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.OrderDetails);\n const orderDetailsAttributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n const orderDetailsLink = (\n \n {detailsLabel}\n \n );\n\n return {\n orderInfomation: getOrderInformation(orderInfomationInput),\n groups: groups,\n orderDetailsLink: orderDetailsLink,\n expandProductsButton: expandProductsButton\n };\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrderList component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrderListFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrderListProps\n) => {\n return (\n \n {ArrayExtensions.hasElements(props.data.salesOrders) &&\n props.data.salesOrders.map((salesOrder: SalesOrder, index: number) => {\n const itemProps: IOrderHistoryWithSearchAndFiltersOrderItemProps = createOrderHistoryWithSearchAndFiltersOrderItemProps(\n salesOrder,\n index,\n props\n );\n return (\n \n {itemProps.orderInfomation && }\n {itemProps.groups && }\n {itemProps.expandProductsButton}\n {itemProps.orderDetailsLink}\n \n );\n })}\n \n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrderList component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrderListComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrderListProps\n>('OrderHistoryWithSearchAndFiltersOrderListComponent', { component: OrderHistoryWithSearchAndFiltersOrderListFunctionalComponent });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, ICoreContext, IDateFormatOptions, msdyn365Commerce, isOboRequest } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { ChannelIdentity, Customer, OrderOriginator, OrgUnitLocation, SalesOrder } from '@msdyn365-commerce/retail-proxy';\nimport {\n ActionMenuComponent,\n TableCellComponent,\n TableComponent,\n TableCellContentType,\n TableHeaderComponent,\n TableRowComponent\n} from '@msdyn365-commerce/components';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\nimport {\n Button,\n ITelemetryContent,\n TelemetryConstant,\n getPayloadObject,\n getTelemetryAttributes\n} from '@msdyn365-commerce-modules/utilities';\nimport { countItems, getOrderChannelAddress, getOrderChannelName, getOrderChannelTypeValue, isOnlineStoreChannel } from '../../../common';\nimport {\n IOrderHistoryWithSearchAndFiltersOrderStatusResources,\n getOrderDetailsPageUrl,\n getOrderStatusLabel\n} from '../common/get-sales-order';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-order-table';\nconst placedByClassName = `${componentClassName}__row__placed-by`;\nconst orderNumberClassName = `${componentClassName}__row__order-number`;\nconst columnMobileClassName = `${componentClassName}__row__mobile-cell`;\nconst actionsClassName = `${componentClassName}__row__actions`;\nconst viewDetailsMenuItemClassName = `${componentClassName}__row__view-details-action`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrderTableResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrderTableResources extends IOrderHistoryWithSearchAndFiltersOrderStatusResources {\n orderHistoryOrderNumberText: string;\n orderHistoryCreatedDateText: string;\n orderHistoryItemsText: string;\n orderHistoryTotalText: string;\n orderHistoryOriginText: string;\n orderHistoryOrderStatusText: string;\n orderHistoryActionMenuButtonAriaLabel: string;\n orderHistoryViewDetailsButtonText: string;\n orderHistoryViewDetailsButtonAriaLabel: string;\n orderHistoryCreatedDateMobileDescriptionText: string;\n orderHistoryOrderNumberIsNotAvailable: string;\n onlineStoreChannelNameText: string;\n posChannelNameText: string;\n orderPlacedByFullText?: string;\n orderPlacedByYouText?: string;\n orderOnBehalfOfText?: string;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrderTableData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrderTableData {\n salesOrders: SalesOrder[];\n channelIdentities?: ChannelIdentity[];\n orgUnitLocations?: OrgUnitLocation[];\n customer?: Customer;\n originators?: OrderOriginator[];\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrderTableProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrderTableProps extends IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersOrderTableResources;\n isMobileView?: boolean;\n showChannelInfo: boolean;\n showOrderPlacedBy?: boolean;\n telemetryContent?: ITelemetryContent;\n}\n\ninterface IOnBehalfOfOrderResources {\n orderHistoryOrderNumberIsNotAvailable?: string;\n}\n\ninterface IOnBehalfOfOrderProps {\n salesOrder: SalesOrder;\n isOnBehalfOfOrder: boolean;\n originator?: OrderOriginator;\n placedByName: string;\n placedByText: string;\n onBehalfOfText: string;\n showOrderPlacedBy?: boolean;\n resources: IOnBehalfOfOrderResources;\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 * Formats date.\n * @param context - Core context.\n * @param date - Date to display.\n * @returns String value.\n */\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'short', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst getShortEllipsisText = (originalText: string, maxTextLength: number) => {\n const isRtl = document.body.parentElement?.getAttribute('dir') === 'rtl';\n return originalText.length > maxTextLength\n ? isRtl\n ? `…${originalText.substring(0, maxTextLength - 1)}`\n : `${originalText.substring(0, maxTextLength - 1)}…`\n : originalText;\n};\n\nconst getOnBehalfOfOrderProps = (\n props: IOrderHistoryWithSearchAndFiltersOrderTableProps,\n salesOrder: SalesOrder\n): IOnBehalfOfOrderProps => {\n const {\n data: { channelIdentities, orgUnitLocations, customer, originators },\n resources: { orderPlacedByFullText, orderPlacedByYouText, orderOnBehalfOfText, orderHistoryOrderNumberIsNotAvailable }\n } = props;\n\n const channelAddress = getOrderChannelAddress(salesOrder, orgUnitLocations);\n const channelTypeValue = getOrderChannelTypeValue(salesOrder, channelIdentities);\n const isOnlineStore = isOnlineStoreChannel(channelTypeValue, channelAddress);\n\n const originator: OrderOriginator | undefined = originators?.find(\n originator =>\n (salesOrder.SalesId && originator.SalesId === salesOrder.SalesId) ||\n (salesOrder.Id && originator.TransactionId === salesOrder.Id)\n );\n\n const isYou =\n !isOboRequest(props.context.request) &&\n originator?.CustomerId &&\n originator?.CustomerName &&\n !originator?.StaffId &&\n !originator?.StaffName &&\n customer?.AccountNumber === originator?.CustomerId\n ? true\n : false;\n const isYouObo = !isYou && !isOboRequest(props.context.request);\n let placedByName =\n originator?.StaffId && originator.StaffName\n ? originator.StaffName\n : originator?.CustomerId && originator.CustomerName\n ? originator.CustomerName\n : '-';\n placedByName = `${placedByName} ${isYou ? orderPlacedByYouText : ''}`;\n const isOnBehalfOfOrder = isOnlineStore && originator?.StaffName && customer?.Name;\n const placedByText = `${orderPlacedByFullText} ${placedByName}`;\n const onBehalfOfText = `${orderOnBehalfOfText} ${customer?.Name} ${isYouObo ? orderPlacedByYouText : ''}`;\n\n return {\n resources: { orderHistoryOrderNumberIsNotAvailable: orderHistoryOrderNumberIsNotAvailable },\n salesOrder: salesOrder,\n isOnBehalfOfOrder: !!isOnBehalfOfOrder,\n originator: originator,\n placedByName: placedByName,\n placedByText: placedByText,\n onBehalfOfText: onBehalfOfText,\n showOrderPlacedBy: props.showOrderPlacedBy\n };\n};\n\nconst getOrderPlacedByCellContent = (props: IOnBehalfOfOrderProps): JSX.Element | null => {\n const maxOrderTextLength = window.innerWidth > 700 ? 20 : 12;\n return (\n \n {props.placedByName}\n {props.isOnBehalfOfOrder && (\n <>\n
{getShortEllipsisText(props.onBehalfOfText, maxOrderTextLength)}\n \n )}\n
\n );\n};\n\nconst getOrderNumberCellContent = (onBehalfOfOrderProps: IOnBehalfOfOrderProps, linkToOrderDetails: string): JSX.Element | null => {\n const maxOrderTextLength = window.innerWidth > 700 ? 20 : 12;\n const {\n salesOrder,\n isOnBehalfOfOrder,\n placedByText,\n showOrderPlacedBy,\n resources: { orderHistoryOrderNumberIsNotAvailable }\n } = onBehalfOfOrderProps;\n\n let orderNumberCellText = salesOrder.SalesId;\n if (StringExtensions.isNullOrWhitespace(orderNumberCellText)) {\n orderNumberCellText = orderHistoryOrderNumberIsNotAvailable;\n }\n\n return (\n <>\n \n {isOnBehalfOfOrder && !showOrderPlacedBy && (\n \n {getShortEllipsisText(placedByText, maxOrderTextLength)}\n \n )}\n \n );\n};\n\nconst getTableRowComponentChildren = (\n props: IOrderHistoryWithSearchAndFiltersOrderTableProps,\n index: number,\n salesOrder: SalesOrder\n): React.ReactElement[] => {\n const numItemsCellText: number = ArrayExtensions.hasElements(salesOrder.SalesLines) ? countItems(salesOrder.SalesLines) : 0;\n const totalAmountCellText: string = formatAmount(props.context, salesOrder.TotalAmount, salesOrder.CurrencyCode);\n\n const orderStatusCellText: string = getOrderStatusLabel(salesOrder.StatusValue, props.resources);\n\n const channelName: string = getOrderChannelName(salesOrder, props.data.channelIdentities);\n const channelAddress: string = getOrderChannelAddress(salesOrder, props.data.orgUnitLocations);\n const channelNameCellText: string =\n channelName &&\n (channelAddress ? `${props.resources.posChannelNameText} ${channelName}` : props.resources.onlineStoreChannelNameText);\n\n const onBehalfOfOrderProps: IOnBehalfOfOrderProps = getOnBehalfOfOrderProps(props, salesOrder);\n\n const linkToOrderDetails = getOrderDetailsPageUrl(props.context.actionContext, salesOrder);\n\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.OrderDetails);\n const orderDetailsAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n\n return [\n \n {getOrderPlacedByCellContent(onBehalfOfOrderProps)}\n ,\n \n {getOrderNumberCellContent(onBehalfOfOrderProps, linkToOrderDetails)}\n ,\n \n {channelNameCellText}\n ,\n \n {numItemsCellText}\n ,\n \n {totalAmountCellText}\n ,\n \n {formatDate(props.context, salesOrder.CreatedDateTime)}\n ,\n \n {orderStatusCellText}\n ,\n \n \n \n {props.resources.orderHistoryViewDetailsButtonText}\n \n \n \n ];\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrderTable component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrderTableFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrderTableProps\n) => {\n return (\n \n \n \n {props.resources.orderPlacedByFullText ?? ''}\n \n \n {props.resources.orderHistoryOrderNumberText}\n \n \n {props.resources.orderHistoryOriginText}\n \n \n {props.resources.orderHistoryItemsText}\n \n \n {props.resources.orderHistoryTotalText}\n \n \n {props.resources.orderHistoryCreatedDateText}\n \n \n {props.resources.orderHistoryOrderStatusText}\n \n \n \n {props.data.salesOrders?.map((salesOrder: SalesOrder, index: number) => {\n return (\n \n {getTableRowComponentChildren(props, index, salesOrder)}\n \n );\n })}\n \n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrderTable component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrderTableComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrderTableProps\n>('OrderHistoryWithSearchAndFiltersOrderTableComponent', { component: OrderHistoryWithSearchAndFiltersOrderTableFunctionalComponent });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { Button, ITelemetryContent, getPayloadObject, getTelemetryAttributes } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-organization-wide-selector';\nconst buttonClassName = `${componentClassName}__button`;\nconst buttonActiveClassName = `${componentClassName}__active-button`;\nconst buttonInactiveClassName = `${componentClassName}__inactive-button`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources {\n currentUserOptionLabel: string;\n currentUserOptionAriaLabel?: string;\n organizationWideOptionLabel: string;\n organizationWideOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState {\n CurrentUser,\n OrganizationWide\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData {\n customer: Customer;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n extends IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources;\n currentSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState;\n telemetryContent?: ITelemetryContent;\n onChange(state: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n) => {\n // Current version doesn't include functionality for non b2b users or non-admin b2b users.\n if (!props.data.customer.IsB2bAdmin) {\n return
;\n }\n\n const [selectorState, setSelectorState] = React.useState(props.currentSelectorState);\n\n const onClickHandler = (newSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState) => {\n setSelectorState(newSelectorState);\n props.onChange(newSelectorState);\n };\n\n // define telemetry attributes\n const currentUserOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Current user order history')\n );\n const orgWideOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Org wide order history')\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.CurrentUser)}\n {...currentUserOrderHistoryAttributes}\n >\n {props.resources?.currentUserOptionLabel}\n \n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.OrganizationWide)}\n {...orgWideOrderHistoryAttributes}\n >\n {props.resources?.organizationWideOptionLabel}\n \n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n>('OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent', {\n component: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport {\n Button,\n ITelemetryContent,\n TelemetryConstant,\n getPayloadObject,\n getTelemetryAttributes\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-view-mode-selector';\nconst detailsViewClassName = `${componentClassName}__detailed-view`;\nconst listViewClassName = `${componentClassName}__list-view`;\nconst viewSelectedClassName = `${componentClassName}__selected`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeResources {\n listViewOptionAriaLabel?: string;\n detailedViewOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewModeState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersViewModeState {\n DetailedView,\n ListView\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeProps extends IComponentProps<{}> {\n className?: string;\n resources?: IOrderHistoryWithSearchAndFiltersViewModeResources;\n currentViewModeState: OrderHistoryWithSearchAndFiltersViewModeState;\n telemetryContent?: ITelemetryContent;\n onClick(state: OrderHistoryWithSearchAndFiltersViewModeState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersViewModeProps\n) => {\n const [viewModeState, setViewModeState] = React.useState(props.currentViewModeState);\n\n const onClickHandler = (newViewModeState: OrderHistoryWithSearchAndFiltersViewModeState) => {\n setViewModeState(newViewModeState);\n props.onClick(newViewModeState);\n };\n\n // define telemetry attributes\n const viewModeDetailedViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - Detailed view`)\n );\n const viewModeListViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - List view`)\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.DetailedView)}\n {...viewModeDetailedViewAttributes}\n />\n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.ListView)}\n {...viewModeListViewAttributes}\n />\n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n */\nexport const OrderHistoryWithSearchAndFiltersViewModeComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersViewModeProps\n>('OrderHistoryWithSearchAndFiltersViewModeComponent', { component: OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IRefinerItemData, RefinerItemType } from '@msdyn365-commerce/components';\nimport { ChannelIdentity, SalesStatus } from '@msdyn365-commerce/retail-proxy';\nimport { IOrderHistoryWithSearchAndFiltersResources } from '../order-history-with-search-and-filters.props.autogenerated';\nimport { getOrderStatusLabel } from './get-sales-order';\nimport { DateRefinerOptionItem, IDateRange, OrderStatusRefinerOptionItem, RefinerSourceType } from './refiner-option';\n\nexport function mapChannelIdentityIntoIRefinerItemData(channelIdentity: ChannelIdentity): IRefinerItemData {\n return {\n sourceTypeValue: RefinerSourceType.Origin,\n label: channelIdentity.Name ?? channelIdentity.RecordId.toString(),\n value: channelIdentity.RecordId.toString(),\n refinerItemId: channelIdentity.RecordId,\n isChecked: false,\n itemType: RefinerItemType.Check\n };\n}\n\nexport function mapDateRefinerOptionIntoIRefinerItemData(\n dateRefinerOptionItem: DateRefinerOptionItem,\n resources: IOrderHistoryWithSearchAndFiltersResources\n): IRefinerItemData {\n let itemData: IRefinerItemData;\n switch (dateRefinerOptionItem) {\n case DateRefinerOptionItem.LastSevenDays:\n itemData = {\n label: resources.lastSevenDaysCreatedDateRefinerItemLabel,\n itemType: RefinerItemType.Check\n } as IRefinerItemData;\n break;\n case DateRefinerOptionItem.LastThirtyDays:\n itemData = {\n label: resources.lastThirtyDaysCreatedDateRefinerItemLabel,\n itemType: RefinerItemType.Check\n } as IRefinerItemData;\n break;\n case DateRefinerOptionItem.LastThreeMonths:\n itemData = {\n label: resources.lastThreeMonthsCreatedDateRefinerItemLabel,\n itemType: RefinerItemType.Check\n } as IRefinerItemData;\n break;\n case DateRefinerOptionItem.LastSixMonths:\n itemData = {\n label: resources.lastSixMonthsCreatedDateRefinerItemLabel,\n itemType: RefinerItemType.Check\n } as IRefinerItemData;\n break;\n case DateRefinerOptionItem.Customized:\n itemData = {\n label: resources.customizedCreatedDateRefinerItemLabel,\n minLabel: resources.customizedStartDateRefinerItemLabel,\n maxLabel: resources.customizedEndDateRefinerItemLabel,\n itemType: RefinerItemType.DateRange\n } as IRefinerItemData;\n break;\n default:\n throw new Error(`Invalid date refiner option: ${dateRefinerOptionItem}`);\n }\n\n return {\n ...itemData,\n sourceTypeValue: RefinerSourceType.CreatedDate,\n value: dateRefinerOptionItem.toString(),\n refinerItemId: dateRefinerOptionItem,\n isChecked: false\n } as IRefinerItemData;\n}\n\nexport function mapIRefinerItemDataIntoDateRefinerOptionItem(refinerItemData?: IRefinerItemData): DateRefinerOptionItem | undefined {\n if (!refinerItemData) {\n return;\n }\n\n const value = Number(refinerItemData.value);\n if (isNaN(value)) {\n return;\n }\n\n switch (value) {\n case DateRefinerOptionItem.LastSevenDays:\n case DateRefinerOptionItem.LastThirtyDays:\n case DateRefinerOptionItem.LastThreeMonths:\n case DateRefinerOptionItem.LastSixMonths:\n case DateRefinerOptionItem.Customized:\n return value;\n default:\n return;\n }\n}\n\nexport function getDateRange(dateRefinerOptionItem: DateRefinerOptionItem): IDateRange {\n switch (dateRefinerOptionItem) {\n case DateRefinerOptionItem.LastSevenDays:\n return {\n startDate: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),\n endDate: new Date()\n } as IDateRange;\n case DateRefinerOptionItem.LastThirtyDays:\n return {\n startDate: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000),\n endDate: new Date()\n } as IDateRange;\n case DateRefinerOptionItem.LastThreeMonths:\n return {\n startDate: new Date(Date.now() - 3 * 30 * 24 * 60 * 60 * 1000),\n endDate: new Date()\n } as IDateRange;\n case DateRefinerOptionItem.LastSixMonths:\n return {\n startDate: new Date(Date.now() - 6 * 30 * 24 * 60 * 60 * 1000),\n endDate: new Date()\n } as IDateRange;\n default:\n return {} as IDateRange;\n }\n}\n\nexport function getDateFromString(dateString?: string): Date | undefined {\n if (!dateString) {\n return undefined;\n }\n\n const parts: string[] = dateString.split('-');\n if (parts.length !== 3) {\n return undefined;\n }\n\n const now = new Date();\n return new Date(Number(parts[0]), Number(parts[1]) - 1, Number(parts[2]), now.getHours(), now.getMinutes(), now.getSeconds());\n}\n\nexport function mapOrderStatusRefinerOptionIntoIRefinerItemData(\n orderStatusRefinerOptionItem: OrderStatusRefinerOptionItem,\n resources: IOrderHistoryWithSearchAndFiltersResources\n): IRefinerItemData {\n let itemData: IRefinerItemData;\n switch (orderStatusRefinerOptionItem) {\n case OrderStatusRefinerOptionItem.Created:\n case OrderStatusRefinerOptionItem.Delivered:\n case OrderStatusRefinerOptionItem.Invoiced:\n case OrderStatusRefinerOptionItem.Canceled:\n itemData = {\n label: getOrderStatusRefinerOptionItemLabel(orderStatusRefinerOptionItem, resources)\n } as IRefinerItemData;\n break;\n default:\n throw new Error(`Invalid order status refiner option: ${orderStatusRefinerOptionItem}`);\n }\n\n return {\n ...itemData,\n sourceTypeValue: RefinerSourceType.OrderStatus,\n value: orderStatusRefinerOptionItem.toString(),\n refinerItemId: orderStatusRefinerOptionItem,\n isChecked: false,\n itemType: RefinerItemType.Check\n } as IRefinerItemData;\n}\n\nfunction getOrderStatusRefinerOptionItemLabel(\n orderStatusRefinerOptionItem: OrderStatusRefinerOptionItem,\n resources: IOrderHistoryWithSearchAndFiltersResources\n): string {\n return getOrderStatusLabel(mapOrderStatusRefinerOptionItemIntoSalesStatus(orderStatusRefinerOptionItem), resources);\n}\n\nexport function mapIRefinerItemDataIntoOrderStatusRefinerOptionItem(\n refinerItemData?: IRefinerItemData\n): OrderStatusRefinerOptionItem | undefined {\n if (!refinerItemData) {\n return;\n }\n\n const value = Number(refinerItemData.value);\n if (isNaN(value)) {\n return;\n }\n\n switch (value) {\n case OrderStatusRefinerOptionItem.Created:\n case OrderStatusRefinerOptionItem.Delivered:\n case OrderStatusRefinerOptionItem.Invoiced:\n case OrderStatusRefinerOptionItem.Canceled:\n return value as OrderStatusRefinerOptionItem;\n default:\n return;\n }\n}\n\nexport function mapOrderStatusRefinerOptionItemIntoSalesStatus(\n orderStatusRefinerOptionItem?: OrderStatusRefinerOptionItem\n): SalesStatus | undefined {\n switch (orderStatusRefinerOptionItem) {\n case OrderStatusRefinerOptionItem.Created:\n return SalesStatus.Created;\n case OrderStatusRefinerOptionItem.Delivered:\n return SalesStatus.Delivered;\n case OrderStatusRefinerOptionItem.Invoiced:\n return SalesStatus.Invoiced;\n case OrderStatusRefinerOptionItem.Canceled:\n return SalesStatus.Canceled;\n default:\n return;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IRefinerSortOption } from '@msdyn365-commerce/components';\nimport { IOrderHistoryWithSearchAndFiltersResources } from '../order-history-with-search-and-filters.props.autogenerated';\nimport { SortOption } from './sort-option';\n\nexport function mapSortOptionIntoIRefinerSortOption(\n sortOption: SortOption,\n resources: IOrderHistoryWithSearchAndFiltersResources\n): IRefinerSortOption {\n switch (sortOption) {\n case SortOption.CreatedDateTimeAscending:\n return {\n label: resources.createdDateTimeAscendingSortOptionLabel,\n value: SortOption.CreatedDateTimeAscending\n } as IRefinerSortOption;\n case SortOption.CreatedDateTimeDescending:\n return {\n label: resources.createdDateTimeDescendingSortOptionLabel,\n value: SortOption.CreatedDateTimeDescending\n } as IRefinerSortOption;\n case SortOption.ConfirmedShipDateAscending:\n return {\n label: resources.confirmedShipDateAscendingSortOptionLabel,\n value: SortOption.ConfirmedShipDateAscending\n } as IRefinerSortOption;\n case SortOption.ConfirmedShipDateDescending:\n return {\n label: resources.confirmedShipDateDescendingSortOptionLabel,\n value: SortOption.ConfirmedShipDateDescending\n } as IRefinerSortOption;\n default:\n throw new Error(`Invalid sort option: ${sortOption}`);\n }\n}\n\nexport function mapIRefinerSortOptionIntoSortOption(refinerSortOption?: IRefinerSortOption): SortOption | undefined {\n if (!refinerSortOption) {\n return;\n }\n\n if (refinerSortOption.value === SortOption.CreatedDateTimeAscending.toString()) {\n return SortOption.CreatedDateTimeAscending;\n }\n\n if (refinerSortOption.value === SortOption.CreatedDateTimeDescending.toString()) {\n return SortOption.CreatedDateTimeDescending;\n }\n\n if (refinerSortOption.value === SortOption.ConfirmedShipDateAscending.toString()) {\n return SortOption.ConfirmedShipDateAscending;\n }\n\n if (refinerSortOption.value === SortOption.ConfirmedShipDateDescending.toString()) {\n return SortOption.ConfirmedShipDateDescending;\n }\n\n return;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n IPayLoad,\n isMobile,\n ITelemetryContent,\n TelemetryConstant,\n VariantType\n} from '@msdyn365-commerce-modules/utilities';\n\nimport {\n getUpdatedRefinementCriteria,\n IRefinerApplyProps,\n IRefinerChoiceSummaryClickNotification,\n IRefinerChoiceSummaryProps,\n IRefinerFooterProps,\n IRefinerHeaderProps,\n IRefinerItemData,\n IRefinerItemToggleNotification,\n IRefinerModalProps,\n IRefinerModalToggleProps,\n IRefinerProps,\n IRefinerSortOption,\n IRefinerSortProps,\n IRefinerToggleProps,\n ISearchBarOption,\n ISearchBarProps,\n isMatchingRefinementCriterion,\n RefinerOptionsComponent,\n RefinerOptionsType\n} from '@msdyn365-commerce/components';\n\nimport classname from 'classnames';\nimport { computed, observable, transaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { OrderOriginator, OrderSearchCriteria, SalesOrder, SalesStatus } from '@msdyn365-commerce/retail-proxy';\nimport { Label } from '../../common/label';\nimport {\n getGetOrderHistoryWithSearchAndFiltersAction,\n GetOrderHistoryWithSearchAndFiltersInput,\n IGetOrderHistoryWithSearchAndFiltersSorting,\n IOrderHistoryWithSearchAndFiltersResult\n} from './actions/get-order-history-with-search-and-filters';\nimport { getOriginatorsAction, GetOrderOriginatorsInput } from '../../actions/get-sales-order-originators';\nimport {\n IOrderHistoryWithSearchAndFiltersHeaderProps,\n IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps,\n OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState,\n OrderHistoryWithSearchAndFiltersViewModeState,\n IOrderHistoryWithSearchAndFiltersViewModeProps,\n OrderHistoryWithSearchAndFiltersViewModeComponent,\n OrderHistoryWithSearchAndFiltersOrderTableComponent\n} from './components';\nimport { IOrderHistoryWithSearchAndFiltersData } from './order-history-with-search-and-filters.data';\nimport { IOrderHistoryWithSearchAndFiltersProps } from './order-history-with-search-and-filters.props.autogenerated';\nimport { SearchOption } from './common/search-option';\nimport { mapISearchBarOptionIntoSearchOption, mapSearchOptionIntoISearchBarOption } from './common/search-option-mappings';\nimport { DateRefinerOptionItem, RefinerSourceType } from './common/refiner-option';\nimport {\n getDateFromString,\n getDateRange,\n mapChannelIdentityIntoIRefinerItemData,\n mapDateRefinerOptionIntoIRefinerItemData,\n mapIRefinerItemDataIntoDateRefinerOptionItem,\n mapIRefinerItemDataIntoOrderStatusRefinerOptionItem,\n mapOrderStatusRefinerOptionIntoIRefinerItemData,\n mapOrderStatusRefinerOptionItemIntoSalesStatus\n} from './common/refiner-option-mappings';\nimport { OrderHistoryWithSearchAndFiltersOrderListComponent } from './components/order-history-with-search-and-filters-order-list.component';\nimport { mapIRefinerSortOptionIntoSortOption, mapSortOptionIntoIRefinerSortOption } from './common/sort-option-mappings';\nimport { SortOption } from './common/sort-option';\n\ninterface IOrderHistoryWithSearchAndFiltersViewRefinerState {\n isModalOpen: boolean;\n isExpanded: boolean;\n currentSortOption?: IRefinerSortOption;\n}\n\ninterface IOrderHistoryWithSearchAndFiltersViewSearchBarState {\n currentSearchOption?: ISearchBarOption;\n currentSearchText?: string;\n}\n\nexport interface IOrderHistoryWithSearchAndFiltersViewState {\n isDataReady: boolean;\n hasError: boolean;\n isLoading: boolean;\n isShowMoreButton: boolean;\n errorCode?: string;\n errorMessage?: string;\n}\n\nexport interface IOrderHistoryWithSearchAndFiltersViewProps\n extends IOrderHistoryWithSearchAndFiltersProps {\n orderHistoryWithSearchAndFiltersProps: IModuleProps;\n headerProps: IOrderHistoryWithSearchAndFiltersHeaderProps;\n organizationWideSelectorProps?: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps;\n viewState: IOrderHistoryWithSearchAndFiltersViewState;\n searchBarProps?: ISearchBarProps;\n refinerProps: IRefinerProps;\n orderHistorywithSearchAndFiltersResult: IOrderHistoryWithSearchAndFiltersResult;\n alert?: React.ReactNode;\n loading?: React.ReactNode;\n emptyMessage?: React.ReactNode;\n backToShoppingLink?: React.ReactNode;\n list?: React.ReactNode;\n table?: React.ReactNode;\n moreButton?: React.ReactNode;\n}\n\n/**\n * Grid size enum.\n */\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n *\n * OrderHistoryWithSearchAndFilters component.\n * @extends {React.Component>}\n */\n@observer\nclass OrderHistoryWithSearchAndFilters extends React.Component<\n IOrderHistoryWithSearchAndFiltersProps\n> {\n @observable private orderHistoryWithSearchAndFilters!: IOrderHistoryWithSearchAndFiltersResult;\n\n @observable private viewState!: IOrderHistoryWithSearchAndFiltersViewState;\n\n @observable private _refinerState!: IOrderHistoryWithSearchAndFiltersViewRefinerState;\n\n @observable private _activeRefinementCriteria: IRefinerItemData[];\n\n private originatorList!: OrderOriginator[];\n\n @observable private _ordersViewModeState: OrderHistoryWithSearchAndFiltersViewModeState;\n\n @observable private _viewport: GridSize;\n\n private _organizationWideSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState;\n\n private pageSize!: number;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly _refinerModalToggleRef: React.RefObject;\n\n private _searchBarState: IOrderHistoryWithSearchAndFiltersViewSearchBarState;\n\n private readonly orderHistoryClassName = 'ms-order-history-with-search-and-filters';\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n constructor(props: IOrderHistoryWithSearchAndFiltersProps) {\n super(props);\n this.initState();\n this._organizationWideSelectorState = OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.CurrentUser;\n this._ordersViewModeState = OrderHistoryWithSearchAndFiltersViewModeState.DetailedView;\n this._searchBarState = {\n currentSearchOption: undefined,\n currentSearchText: ''\n };\n this._activeRefinementCriteria = [];\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this._refinerModalToggleRef = React.createRef();\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n }\n\n public componentDidMount(): void {\n if (this.props.context.actionContext.requestContext.user.isAuthenticated) {\n this._updateOrderHistory();\n } else {\n this.viewState.isDataReady = true;\n }\n\n if (Msdyn365.msdyn365Commerce.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n\n this._activeRefinementCriteria = [];\n }\n\n public componentWillUnmount(): void {\n if (Msdyn365.msdyn365Commerce.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IOrderHistoryWithSearchAndFiltersProps,\n nextState: IOrderHistoryWithSearchAndFiltersViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const {\n config: { className, shouldShowCount },\n resources: { genericErrorMessage, noOrderHistoryLable, moreButtonText, backToShopping, loadingLabel }\n } = this.props;\n const { salesOrders, products } = this.orderHistoryWithSearchAndFilters;\n const { isDataReady, hasError, isShowMoreButton, isLoading } = this.viewState;\n const backToShoppingUrl = Msdyn365.getUrlSync('home', this.props.context.actionContext) || '';\n const channelIdentities = this.props.data.channels.result && this.props.data.channels.result.channelIdentities;\n const orgUnitLocations = this.props.data.orgUnitLocations.result && this.props.data.orgUnitLocations.result.orgUnitLocations;\n const customer = this.props.data.customerInformation && this.props.data.customerInformation.result;\n\n let viewProps: IOrderHistoryWithSearchAndFiltersViewProps = {\n ...this.props,\n orderHistorywithSearchAndFiltersResult: this.orderHistoryWithSearchAndFilters,\n viewState: this.viewState,\n orderHistoryWithSearchAndFiltersProps: {\n moduleProps: this.props,\n className: classname(this.orderHistoryClassName, className)\n },\n headerProps: this._getHeaderProps(),\n searchBarProps: this._getSearchBarProps(),\n refinerProps: this._getRefinerProps(),\n organizationWideSelectorProps: this._getOrganizationWideSelectorProps(),\n backToShoppingLink: backToShoppingUrl && (\n \n )\n };\n\n if (hasError) {\n viewProps = {\n ...viewProps,\n alert: