{"version":3,"file":"static/js/13.0a9ff7455f8c2abc46ff.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/components/inventory-breakdown.component.tsx?0b96","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/components/order-details.no-shipment-tracking.component.tsx?5523","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/components/invoice-details-products.component.tsx?bb1a","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.tsx?5602","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.tsx?96a6","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/components/links.tsx?7423","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.tsx?792c","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/account-profile.view.tsx?3056","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/cart.view.tsx?c9ea","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/sign-in.view.tsx?abf9","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/sign-up.view.tsx?786d","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme-b2c/views/write-review.view.tsx?6b75","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/account-profile.view.tsx?4ea1","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/account-welcome-tile.view.tsx?d739","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/cart.view.tsx?1dfc","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/invoice-details.view.tsx?dfe1","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/sign-in.view.tsx?0f65","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/sign-up.view.tsx?6f05","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/write-review.view.tsx?ec4d","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/buybox.view.tsx?aec4","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/ratings-histogram.view.tsx?6e01","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.view.tsx?2bed","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-template-list.view.tsx?46b6","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/models/SupersessionKey.ts?818f","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/components/line-pagination.tsx?514b"],"sourcesContent":["import React from 'react';\r\nimport getExtensionPropertyValueByKey, { CommercePropertyValueEnum } from '../../../../utils/getExtensionPropertyValueByKey';\r\nimport { SupersessionKey } from '../../models/SupersessionKey';\r\nimport { CommerceProperty } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\n\r\nexport interface IWarehouseMapping {\r\n warehouseId: string;\r\n warehouseName: string;\r\n}\r\n\r\ninterface IInventoryBreakdownComponentProps {\r\n extensionProperties: CommerceProperty[] | undefined;\r\n itemId: string;\r\n canBackorder: boolean;\r\n canChangeWarehouse?: boolean;\r\n onWarehouseChange?: (whId: string) => void;\r\n allowableText: string;\r\n alternateText: string;\r\n productQuantity?: number | undefined;\r\n setShouldShowQtyMessage?: React.Dispatch>;\r\n warehouseMappings: IWarehouseMapping[];\r\n}\r\n\r\nexport type WarehouseInventoryType = {\r\n WarehouseId: string;\r\n IsAllowable: boolean;\r\n Available: number;\r\n Name: string;\r\n};\r\n\r\nexport const InventoryBreakdownComponent: React.FC = props => {\r\n const { extensionProperties, canChangeWarehouse, onWarehouseChange, productQuantity, warehouseMappings } = props;\r\n const [warehouseData, setWarehouseData] = React.useState([]);\r\n const [hasError, setHasError] = React.useState(false);\r\n\r\n const handleSelectWarehouseClick = (e: React.MouseEvent, warehouseId: string) => {\r\n e.preventDefault();\r\n if (onWarehouseChange) {\r\n onWarehouseChange(warehouseId);\r\n }\r\n };\r\n\r\n const shouldDisableWarehouseSelect = (warehouse: WarehouseInventoryType) => {\r\n if (ArrayExtensions.hasElements(warehouseData) && warehouse.WarehouseId === warehouseData[0].WarehouseId) {\r\n return false;\r\n }\r\n const anyWarehouseHasSufficientQty = warehouseData.some(wh => wh.Available >= (productQuantity ?? 0));\r\n props.setShouldShowQtyMessage?.(!anyWarehouseHasSufficientQty);\r\n return warehouse.Available <= 0 || warehouse.Available < productQuantity!;\r\n };\r\n\r\n const renderWarehouseSelectLink = (warehouse: WarehouseInventoryType) => {\r\n if (shouldDisableWarehouseSelect(warehouse)) {\r\n return

Unavailable

;\r\n }\r\n return (\r\n handleSelectWarehouseClick(e, warehouse.WarehouseId)}\r\n >\r\n Select Warehouse\r\n \r\n );\r\n };\r\n React.useEffect(() => {\r\n try {\r\n const warehouseJsonData = getExtensionPropertyValueByKey(\r\n extensionProperties,\r\n SupersessionKey.InventoryBreakdown,\r\n CommercePropertyValueEnum.string\r\n ) as string;\r\n const data = JSON.parse(warehouseJsonData) as WarehouseInventoryType[];\r\n setWarehouseData(data || []);\r\n setHasError(false);\r\n } catch {\r\n setHasError(true);\r\n }\r\n }, [extensionProperties]);\r\n\r\n const allowableText = props.allowableText || '-------------------';\r\n const alternateText = props.alternateText || 'Alternate Warehouse';\r\n\r\n //TODO\r\n // if selected warehouse doesnt contain enough stock, display the expected to ship from multiple warehouse message.\r\n\r\n const getWarehouseFriendlyName = (warehouseId: string) => {\r\n return warehouseMappings?.find(mapping => mapping.warehouseId === warehouseId)?.warehouseName;\r\n };\r\n\r\n const formatWarehouseName = (name: string) => {\r\n return name.replace(/gardner\\s*/i, '');\r\n };\r\n\r\n // const mergedWarehouses =\r\n // warehouseMappings && warehouseMappings.length > 0\r\n // ? [\r\n // ...warehouseData.map(wh => ({\r\n // WarehouseId: wh.WarehouseId,\r\n // Name: getWarehouseFriendlyName(wh.WarehouseId) ?? wh.Name,\r\n // Available: wh.Available,\r\n // IsAllowable: wh.IsAllowable\r\n // })),\r\n // ...warehouseMappings\r\n // .filter(mapping => !warehouseData.some(wh => wh.WarehouseId === mapping.warehouseId))\r\n // .map(mapping => ({\r\n // WarehouseId: mapping.warehouseId,\r\n // Name: mapping.warehouseName,\r\n // Available: 0,\r\n // IsAllowable: false\r\n // }))\r\n // ]\r\n // : warehouseData.map(wh => ({\r\n // WarehouseId: wh.WarehouseId,\r\n // Name: formatWarehouseName(wh.Name),\r\n // Available: wh.Available,\r\n // IsAllowable: wh.IsAllowable\r\n // }));\r\n\r\n return (\r\n
\r\n {hasError ?

Inventory unavailable, please try again later

: null}\r\n {warehouseData.length ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {canChangeWarehouse ? \r\n \r\n \r\n {warehouseData.map(wh => (\r\n \r\n \r\n \r\n \r\n {canChangeWarehouse ? : undefined}\r\n \r\n ))}\r\n \r\n
WarehouseAvailable : undefined}\r\n
\r\n {getWarehouseFriendlyName(wh.WarehouseId) ?? formatWarehouseName(wh.Name)} - {wh.WarehouseId}\r\n {wh.Available}{wh.IsAllowable ? allowableText : alternateText}{renderWarehouseSelectLink(wh)}
\r\n ) : (\r\n
\r\n

No Inventory Data Available

\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { ICoreContext, IDateFormatOptions, IRequestContext } from '@msdyn365-commerce/core';\nimport { BusinessPartnerOperationRequest, BusinessPartnerOperationRequestDetails } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n IDataTableProps,\n IHeadingsProperty,\n ITableItemProps,\n ITableRowProps,\n Table,\n TableDataType\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsStatusData } from '../b2b-requests-status.data';\nimport { IB2bRequestsStatusProps } from '../b2b-requests-status.props.autogenerated';\n\nexport interface IB2bRequestsTableProps {\n moduleProps: IB2bRequestsStatusProps;\n isMobile: boolean;\n mobileExcludedColumns: string[];\n}\n\nexport interface IB2bRequestsTableResources {\n b2bRequestsTypeCreateProspect: string;\n b2bRequestsTypeAddUser: string;\n b2bRequestsTypeEditUser: string;\n b2bRequestsTypeDeleteUser: string;\n b2bRequestsTypeRequestAccountStatement: string;\n b2bRequestsTypeRequestInvoiceCopy: string;\n b2bRequestsTypeUnknown: string;\n b2bRequestsStatusRequested: string;\n b2bRequestsStatusProcessed: string;\n b2bRequestsStatusError: string;\n b2bRequestsNumberOfItems: string;\n b2bRequestsNumberOfItemsSingular: string;\n b2bRequestsNameDisplay: string;\n b2bRequestsPreviousText: string;\n b2bRequestsNextText: string;\n b2bRequestsUserColumn: string;\n b2bRequestsStatusColumn: string;\n b2bRequestsRequestDateColumn: string;\n b2bRequestsTypeColumn: string;\n b2bRequestsDescriptionColumn: string;\n b2bRequestsAccountStatementDetails: string;\n b2bRequestsInvoiceCopyDetails: string;\n businessUserSelectCheckBoxAriaLabelText?: string;\n sortByAscending?: string;\n sortByDescending?: string;\n}\n\nexport enum RequestsTableColumnHeader {\n Name = 'User',\n Status = 'Status',\n RequestDate = 'Request date',\n Type = 'Request type',\n Description = 'Request detail'\n}\n\nconst getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n};\n\nconst getUserName = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources) => {\n if (StringExtensions.isNullOrEmpty(request.UserFirstName)) {\n if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return '';\n }\n\n return request.UserLastName;\n } else if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return request.UserFirstName;\n }\n\n return resources.b2bRequestsNameDisplay.replace('{0}', request.UserFirstName!).replace('{1}', request.UserLastName!);\n};\n\nconst 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/**\n * Gets the value to display for the request details.\n * @param request - The request to parse for the details.\n * @param resources - The resources.\n * @param context - The context.\n * @returns The string to display.\n */\nconst getDetails = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources, context: ICoreContext) => {\n if (!request.Details) {\n return '';\n }\n\n const requestDetails: BusinessPartnerOperationRequestDetails = request.Details;\n\n const accountStatementStartDateTime = formatDate(context, requestDetails.AccountStatementStartDateTime) || '';\n const accountStatementEndDateTime = formatDate(context, requestDetails.AccountStatementEndDateTime) || '';\n const invoiceId = requestDetails.InvoiceId ?? '';\n\n switch (request.TypeValue) {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 5:\n if (\n !StringExtensions.isNullOrEmpty(accountStatementStartDateTime) &&\n !StringExtensions.isNullOrEmpty(accountStatementEndDateTime)\n ) {\n return resources.b2bRequestsAccountStatementDetails\n .replace('{0}', accountStatementStartDateTime)\n .replace('{1}', accountStatementEndDateTime);\n }\n\n return '';\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 6:\n if (!StringExtensions.isNullOrEmpty(invoiceId)) {\n return resources.b2bRequestsInvoiceCopyDetails.replace('{0}', invoiceId);\n }\n\n return '';\n default:\n return '';\n }\n};\n\nconst createTableItems = (\n operationRequests: BusinessPartnerOperationRequest[] | undefined,\n props: IB2bRequestsStatusProps\n): ITableRowProps[] => {\n if (!ArrayExtensions.hasElements(operationRequests)) {\n return [];\n }\n\n return operationRequests.map(request => {\n return {\n row: [\n {\n id: props.resources.b2bRequestsTypeColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyTypeValue(request.TypeValue ?? 0, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsRequestDateColumn,\n type: TableDataType.Text,\n value: formatDate(props.context, request.CreatedDateTime)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsDescriptionColumn,\n type: TableDataType.Text,\n value: getDetails(request, props.resources, props.context)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsUserColumn,\n type: TableDataType.Text,\n value: getUserName(request, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsStatusColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyStatusValue(request.StatusValue ?? 0, props.resources)\n } as ITableItemProps\n ],\n isSelected: false,\n className: props.config.className\n };\n });\n};\n\nconst getDisplayFriendlyTypeValue = (typeValue: number, resources: IB2bRequestsTableResources): string => {\n switch (typeValue) {\n case 1:\n return resources.b2bRequestsTypeCreateProspect;\n case 2:\n return resources.b2bRequestsTypeAddUser;\n case 3:\n return resources.b2bRequestsTypeDeleteUser;\n case 4:\n return resources.b2bRequestsTypeEditUser;\n case 5:\n return resources.b2bRequestsTypeRequestAccountStatement;\n case 6:\n return resources.b2bRequestsTypeRequestInvoiceCopy;\n default:\n return resources.b2bRequestsTypeUnknown;\n }\n};\n\nconst getDisplayFriendlyStatusValue = (statusValue: number, resources: IB2bRequestsTableResources): string => {\n switch (statusValue) {\n case 1:\n return resources.b2bRequestsStatusProcessed;\n case 2:\n return resources.b2bRequestsStatusError;\n default:\n return resources.b2bRequestsStatusRequested;\n }\n};\n\nconst createTableProps = (tableProps: IB2bRequestsTableProps) => {\n const { context, data, resources } = tableProps.moduleProps;\n\n const tableData = createTableItems(data.operationRequests.result, tableProps.moduleProps);\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row\n .filter(item => {\n // Check that this is either not mobile or the column should be displayed when mobile.\n return !tableProps.isMobile || !tableProps.mobileExcludedColumns.includes(item.id);\n })\n .map(item => {\n return {\n name: item.id,\n sortable: true,\n ariaLabel: resources.columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources: {},\n headings: tableHeading,\n rows: tableData,\n className: `${tableProps.moduleProps.config.className}__table`,\n editLinkText: '',\n deleteLinkText: '',\n viewLinkText: '',\n enableToModify: false,\n actionLinkText: '',\n showCheckBoxes: false,\n isSortable: true,\n showPagination: true,\n minifyActions: tableProps.isMobile,\n excludedColumns: tableProps.isMobile ? tableProps.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context.request.query?.skip && !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: 10,\n prevText: resources.b2bRequestsPreviousText,\n nextText: resources.b2bRequestsNextText,\n paginationText: '',\n url: (context && getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n actions: {\n onDelete: undefined,\n onEdit: undefined,\n onView: undefined\n },\n businessUserSelectCheckBoxAriaLabelText: tableProps.moduleProps.resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: tableProps.moduleProps.resources.sortByAscending,\n sortByDescending: tableProps.moduleProps.resources.sortByDescending\n } as IDataTableProps;\n};\n\nexport const B2bRequestsTable: React.FC = (tableProps: IB2bRequestsTableProps) => {\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 { format, Heading, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport { computed } from 'mobx';\nimport * as React from 'react';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\n\nimport { IB2bRequestsStatusData } from './b2b-requests-status.data';\nimport { IB2bRequestsStatusProps, IHeadingData } from './b2b-requests-status.props.autogenerated';\nimport { B2bRequestsTable } from './components/b2b-requests-table';\n\nexport interface IB2bRequestsStatusViewProps extends IB2bRequestsStatusProps {\n b2bRequestsStatus: IModuleProps;\n heading?: React.ReactNode;\n table: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsStatus component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsStatus extends React.PureComponent> {\n @computed get isMobile(): boolean {\n const size = isMobile({ variant: VariantType.Viewport, context: this.props.context.request });\n return size === 'xs';\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const className = config.className || '';\n\n const viewProps = {\n ...this.props,\n b2bRequestsStatus: {\n moduleProps: this.props,\n className\n },\n heading: this.renderHeader(className, config.heading),\n table: this.renderTable()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly renderHeader = (className: string, headingData: IHeadingData): React.ReactNode => {\n const itemCount = this.props.data.operationRequests.result?.length ?? 0;\n\n return (\n
\n \n {this.getItemNumberDisplayString(itemCount)}\n
\n );\n };\n\n /**\n * Returns columns that needs to be excluded for mobile view.\n * @returns Array of column names.\n */\n private readonly _retrieveExcludedColumns = (): string[] => {\n const { resources } = this.props;\n return [resources.b2bRequestsRequestDateColumn, resources.b2bRequestsDescriptionColumn, resources.b2bRequestsUserColumn];\n };\n\n private readonly renderTable = (): React.ReactNode => {\n return (\n \n );\n };\n\n private readonly getItemNumberDisplayString = (itemCount: number): string => {\n switch (itemCount) {\n case 0:\n return '';\n case 1:\n return format(this.props.resources.b2bRequestsNumberOfItemsSingular, itemCount);\n default:\n return format(this.props.resources.b2bRequestsNumberOfItems, itemCount);\n }\n };\n}\n\nexport default B2bRequestsStatus;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IB2bRequestsStatusViewProps } from './b2b-requests-status';\n\nconst B2bRequestsStatusView: React.FC = props => {\n const { b2bRequestsStatus, heading, table } = props;\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\n","import * as React from 'react';\r\nimport { INodeProps, Node } from \"@msdyn365-commerce-modules/utilities\";\r\n\r\nexport interface INoShipmentTrackingProps {\r\n noShipmentTrackingNodeProps: INodeProps;\r\n noShipmentTrackingResources: INoShipmentTrackingResources;\r\n}\r\n\r\nexport interface INoShipmentTrackingResources {\r\n noShippingFoundText: string;\r\n}\r\n\r\nexport const NoShipmentTrackingComponent: React.FC = (props: INoShipmentTrackingProps) => {\r\n const {\r\n noShipmentTrackingNodeProps,\r\n noShipmentTrackingResources: {\r\n noShippingFoundText = ''\r\n }\r\n } = props;\r\n\r\n const baseClassName = noShipmentTrackingNodeProps.className\r\n\r\n return (\r\n \r\n
{noShippingFoundText}
\r\n
\r\n );\r\n}","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IComponent, IComponentProps, ICoreContext, IImageSettings, Image, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { getFallbackImageUrl, getProductPageUrlSync, ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport React from 'react';\r\n\r\nimport { InvoicePaidStatus, OrderInvoice, SalesInvoice, SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { IPayableInvoice } from '@msdyn365-commerce-modules/invoice';\r\n\r\n// import { IInvoiceProductLine, InvoiceDetailsModel } from '../helpers/invoice-data';\r\n\r\nexport interface IInvoicePaymentDetails {\r\n totalDiscount?: number;\r\n subtotal?: number;\r\n totalCharges?: number;\r\n totalTax?: number;\r\n totalAmount?: number;\r\n currencyCode?: string;\r\n}\r\n\r\nexport interface IInvoiceProductLine extends SalesInvoiceLine {\r\n primaryImageUrl?: string;\r\n}\r\n\r\n/**\r\n * Represents invoice details data model.\r\n */\r\nexport class InvoiceDetailsModel implements IPayableInvoice, IInvoicePaymentDetails {\r\n public id: string;\r\n\r\n public invoiceDate?: Date;\r\n\r\n public customerAccountNumber?: string;\r\n\r\n public customerName?: string;\r\n\r\n public dueDate?: Date;\r\n\r\n public amountDue?: number;\r\n\r\n public status?: InvoicePaidStatus;\r\n\r\n public lines: IInvoiceProductLine[];\r\n\r\n public totalDiscount?: number;\r\n\r\n public subtotal?: number;\r\n\r\n public totalCharges?: number;\r\n\r\n public totalTax?: number;\r\n\r\n public totalAmount?: number;\r\n\r\n public currencyCode?: string;\r\n\r\n public constructor(invoice: OrderInvoice, invoiceDetails: SalesInvoice, products: SimpleProduct[]) {\r\n this.id = invoice.Id || '';\r\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\r\n this.customerName = invoice.CustomerName;\r\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\r\n this.amountDue = invoice.AmountBalance;\r\n this.status = invoice.InvoicePaidStatusValue;\r\n this.lines = (invoiceDetails.SalesInvoiceLine || []).map(line => {\r\n const productLine: IInvoiceProductLine = {\r\n ...line,\r\n primaryImageUrl: products.find(product => product.RecordId === line.RecordId)?.PrimaryImageUrl\r\n };\r\n return productLine;\r\n });\r\n\r\n this.totalDiscount = invoiceDetails.TotalDiscount;\r\n this.subtotal = invoiceDetails.InvoiceSubtotal;\r\n this.totalCharges = invoiceDetails.TotalCharges;\r\n this.totalTax = invoiceDetails.TotalTaxAmount;\r\n this.totalAmount = invoice.TotalAmount;\r\n this.currencyCode = invoice.CurrencyCode;\r\n }\r\n\r\n public get canBePaid(): boolean {\r\n return this.status !== InvoicePaidStatus.Paid;\r\n }\r\n}\r\n\r\n\r\nexport interface IInvoiceDetailsProductsData {\r\n invoiceDetails: InvoiceDetailsModel;\r\n}\r\n\r\nexport interface IInvoiceDetailsProductsResources {\r\n invoiceProductColor: string;\r\n invoiceProductSize: string;\r\n invoiceProductStyle: string;\r\n invoiceQuantity: string;\r\n}\r\n\r\nexport interface IInvoiceDetailsProductsProps extends IComponentProps {\r\n context: ICoreContext;\r\n className: string;\r\n imageSettings?: IImageSettings;\r\n resources: IInvoiceDetailsProductsResources;\r\n}\r\n\r\nexport interface IInvoiceDetailsProductsComponent extends IComponent {\r\n}\r\n\r\nconst _renderProductDimensions = (className: string, resources: IInvoiceDetailsProductsResources, product: SalesInvoiceLine): JSX.Element => {\r\n return (\r\n
\r\n {StringExtensions.isNullOrWhitespace(product.ColorName) ? null :
\r\n {resources.invoiceProductColor.replace('{0}', product.ColorName!)}\r\n
}\r\n {StringExtensions.isNullOrWhitespace(product.SizeName) ? null :
\r\n {resources.invoiceProductSize.replace('{0}', product.SizeName!)}\r\n
}\r\n {StringExtensions.isNullOrWhitespace(product.StyleName) ? null :
\r\n {resources.invoiceProductStyle.replace('{0}', product.StyleName!)}\r\n
}\r\n
\r\n );\r\n};\r\n\r\nconst _renderProductImage = (className: string, context: ICoreContext, product: IInvoiceProductLine, imageSettings?: IImageSettings): JSX.Element | null => {\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=315&h=315&m=6', w: 0, h: 0 },\r\n lg: { q: 'w=315&h=315&m=6', w: 0, h: 0 },\r\n xl: { q: 'w=315&h=315&m=6', w: 0, h: 0 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n };\r\n\r\n if (imageSettings) {\r\n imageSettings.cropFocalRegion = true;\r\n }\r\n\r\n const fallbackImage = getFallbackImageUrl(product.ItemId, context.actionContext.requestContext.apiSettings);\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\r\n if (amount === undefined) {\r\n return '';\r\n }\r\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\r\n};\r\n\r\nconst InvoiceDetailsProducts: React.FC = (props: IInvoiceDetailsProductsProps): JSX.Element => {\r\n const { className, data: { invoiceDetails }, resources } = props;\r\n\r\n const productLineClass = `${className}__product-line`;\r\n const productLineInfoContainerClass = `${productLineClass}__product-info-container`;\r\n const productLineDetailsClass = `${productLineInfoContainerClass}__product-details`;\r\n const productLineSmallDetailsClass = `${productLineDetailsClass}__small-details`;\r\n\r\n return (\r\n
\r\n {\r\n invoiceDetails.lines.map(product => {\r\n const quantity = product.Quantity || 1;\r\n\r\n let productUrl = '';\r\n if (!ObjectExtensions.isNullOrUndefined(product.ProductName) &&\r\n !ObjectExtensions.isNullOrUndefined(product.RecordId)) {\r\n productUrl = getProductPageUrlSync(product.ProductName, product.RecordId, props.context.actionContext);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {_renderProductImage(`${productLineInfoContainerClass}__product-image`, props.context, product)}\r\n
\r\n \r\n {`${product.ItemId} - ${product.ProductName}`}\r\n \r\n
\r\n {_renderProductDimensions(`${productLineSmallDetailsClass}__dimensions`, resources, product)}\r\n
\r\n {formatAmount(props.context, product.Price, invoiceDetails.currencyCode)}\r\n
\r\n
\r\n {resources.invoiceQuantity.replace('{0}', quantity.toString())}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {formatAmount(props.context, product.NetAmount, invoiceDetails.currencyCode)}\r\n
\r\n
\r\n );\r\n })\r\n }\r\n
\r\n );\r\n};\r\n\r\n// @ts-expect-error\r\nexport const InvoiceDetailsProductsComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n 'InvoiceDetailsProductsComponent',\r\n { component: InvoiceDetailsProducts }\r\n);\r\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 { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IImageListConfig, IImageListProps, IImagesData } from './image-list.props.autogenerated';\n\n/**\n * The interface for IImageListViewProps.\n */\nexport interface IImageListViewProps extends IImageListProps {\n imageList: IModuleProps;\n imageListHeading?: React.ReactNode;\n imageListContainer: INodeProps;\n imageListItem: INodeProps;\n imageListItemAnchorTag: INodeProps;\n imageListItems: IImageListItem[] | undefined;\n}\n\n/**\n * The interface for IImageListItem.\n */\nexport interface IImageListItem {\n image: JSX.Element | undefined;\n text: JSX.Element | undefined;\n link: string | undefined;\n linkAltText: string | undefined;\n linkAriaLabel: string | undefined;\n linkOpenInNewTab?: boolean;\n}\n\n/**\n *\n * ImageList component.\n * @extends {React.PureComponent>}\n */\nclass ImageList extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { heading } = this.props.config;\n const imageListTitle = heading && ;\n const viewProps: IImageListViewProps = {\n ...this.props,\n imageList: {\n moduleProps: this.props,\n className: classnames('ms-image-list', this.props.config.className),\n tag: 'div'\n },\n imageListHeading: imageListTitle,\n imageListContainer: {\n className: 'ms-image-list__list',\n role: 'list',\n tag: 'ul'\n },\n imageListItem: {\n className: 'ms-image-list__list-item',\n role: 'listitem',\n tag: 'li'\n },\n imageListItemAnchorTag: {\n tag: 'a',\n className: 'ms-image-list__link',\n role: 'link'\n },\n imageListItems: this._renderImageListItems()\n };\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle paragraph change.\n * @param index - Index of image item in array of image items.\n * @returns Void.\n */\n public handleParagraphChange = (index: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.images![index]) {\n this.props.config.images![index].paragraph = event.target.value;\n }\n };\n\n /**\n * Render list of images.\n * @returns List of images with text and redirection link.\n */\n private readonly _renderImageListItems = (): IImageListItem[] | undefined => {\n const imageList: IImagesData[] | undefined = this.props.config.images;\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n lg: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n xl: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 }\n },\n lazyload: false,\n disableLazyLoad: true\n };\n return imageList?.map((item, index) => {\n const { image, link, paragraph } = item;\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: (image?.imageSettings ?? defaultImageSettings) as Msdyn365.IImageSettings | undefined\n };\n\n const imageLink: string | undefined = link?.linkUrl.destinationUrl;\n const imageLinkText: string | undefined = link?.linkText ?? link?.ariaLabel;\n const imageLinkAriaLabel: string | undefined = link?.ariaLabel;\n const imageLinkOpenInNewTab = link?.openInNewTab;\n\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\n const imageImage = (\n \n );\n\n const imageText = paragraph && (\n \n );\n const imageListItem: IImageListItem = {\n image: imageImage,\n text: imageText,\n link: imageLink,\n linkAltText: imageLinkText,\n linkAriaLabel: imageLinkAriaLabel,\n linkOpenInNewTab: imageLinkOpenInNewTab\n };\n return imageListItem;\n });\n };\n}\n\nexport default ImageList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n getTelemetryObject,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps } from './interactive-feature-collection.props.autogenerated';\n\n/**\n * Interactive Feature Collection view props.\n */\nexport interface IInteractiveFeatureCollectionViewProps extends IInteractiveFeatureCollectionProps<{}> {\n title: React.ReactNode;\n interactiveFeatureCollectionHeading: INodeProps;\n interactiveFeatureCollectionContainer: IModuleProps;\n interactiveFeatureCollectionDesktopContainer: INodeProps;\n interactiveFeatureCollectionDesktopItems: React.ReactNode[];\n interactiveFeatureCollectionMobileContainer: INodeProps;\n interactiveFeatureCollectionMobileItems: React.ReactNode[];\n singleSlideCarouselComponentProps: INodeProps;\n singleSlideCarouselItemContainer: INodeProps;\n}\n\n/**\n *\n * InteractiveFeatureCollection component.\n * @extends {React.PureComponent>}\n */\nexport class InteractiveFeatureCollection extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private static _getFeatureItem(item: React.ReactNode, index: number, itemsCounter: number): React.ReactNode {\n const keyIndex = `interactive-feature-mosaic-item__${index}`;\n return (\n \n {React.cloneElement(item as React.ReactElement, { indexItem: index, itemCounter: itemsCounter, isMosaic: true })}\n \n );\n }\n\n public constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots && this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems && interactiveItems.length;\n const singleSlideCarouselComponentProps: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n const initItemsFeatureCounter = 0;\n const createHeading = title && (\n \n );\n const viewProps = {\n ...this.props,\n title: createHeading,\n interactiveFeatureCollectionHeading: {\n className: 'ms-interactive-feature-collection__heading'\n },\n interactiveFeatureCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-interactive-feature-collection', className)\n },\n interactiveFeatureCollectionDesktopContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-desktop'\n },\n interactiveFeatureCollectionMobileContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mobile'\n },\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel',\n role: 'listitem'\n },\n interactiveFeatureCollectionMobileItems: this.props.slots.interactiveFeatureItems,\n interactiveFeatureCollectionDesktopItems:\n itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) =>\n InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter)\n )\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.title!.text = event.target.value);\n}\n\nexport default InteractiveFeatureCollection;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature links.\n */\nexport interface IInteractiveFeatureLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * IInteractiveFeatureLinks component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureCollectionLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n }\n\n /**\n * IInteractiveFeatureLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata?: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || !ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-interactive-feature-collection__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n }\n\n return editableLinks;\n };\n}\nexport default InteractiveFeatureCollectionLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InteractiveFeatureCollectionLinks } from './components';\nimport { IHeadingData, IInteractiveFeatureItemProps } from './interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature Item view props.\n */\nexport interface IInteractiveFeatureItemViewProps extends IInteractiveFeatureItemProps<{}> {\n title: React.ReactNode;\n paragraph: React.ReactNode;\n image: React.ReactNode;\n links: React.ReactNode;\n featureItem: IModuleProps;\n isMosaic: boolean;\n indexItem?: number;\n itemCounter?: number;\n\n interactiveFeatureCollectionCarouselContainer: INodeProps;\n interactiveFeatureCollectionCarouselImage: INodeProps;\n interactiveFeatureCollectionCarouselContent: INodeProps;\n\n interactiveFeatureCollectionMosaicContainer: INodeProps;\n interactiveFeatureCollectionMosaicImage: INodeProps;\n interactiveFeatureCollectionMosaicDetails: INodeProps;\n}\n\n/**\n * Interactive Feature Item Extented props.\n */\nexport interface IInteractiveFeatureItemExtentedProps extends IInteractiveFeatureItemProps<{}> {\n isMosaic?: boolean;\n indexItem?: number;\n itemCounter?: number;\n}\n\n/**\n *\n * InteractiveFeatureItem component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureItem extends React.PureComponent {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: IInteractiveFeatureItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { indexItem, itemCounter, isMosaic } = this.props;\n const { heading, paragraph, image, links } = this.props.config;\n const featureItemLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n\n const viewProps = {\n ...this.props,\n indexItem,\n itemCounter,\n isMosaic: isMosaic ? isMosaic : false,\n title: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n image: this._renderImage(image),\n links: featureItemLinks,\n featureItem: {\n moduleProps: this.props,\n className: ''\n },\n interactiveFeatureCollectionCarouselContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__container'\n },\n interactiveFeatureCollectionCarouselImage: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__image'\n },\n interactiveFeatureCollectionCarouselContent: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__heading'\n },\n interactiveFeatureCollectionMosaicContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mosaic',\n 'aria-label': heading?.text,\n tabindex: '0',\n role: 'group'\n },\n interactiveFeatureCollectionMosaicImage: {\n className: 'ms-interactive-feature-collection-mosaic__image'\n },\n interactiveFeatureCollectionMosaicDetails: {\n className: 'ms-interactive-feature-collection-mosaic__details'\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // Even if image.src is null, we render the Image component to render the fallback SVG\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=459&m=6', w: 328, h: 459 },\n sm: { q: 'w=348&h=487&m=6', w: 348, h: 487 },\n md: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n lg: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n xl: { q: 'w=650&h=366&m=6', w: 650, h: 366 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n return (\n \n );\n }\n}\n\nexport default InteractiveFeatureItem;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/account-profile/./account-profile';\r\n\r\nconst AccountPreferencesSection: React.FC = ({\r\n accountPreferences,\r\n heading,\r\n personalization,\r\n extraPreferences\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n \r\n {\r\n extraPreferences && extraPreferences.map((preferenceSecton, index) => {\r\n return ;\r\n })\r\n }\r\n \r\n );\r\n};\r\n\r\nconst AccountPreferenceSection: React.FC = ({\r\n accountPreference,\r\n heading,\r\n description,\r\n buttonWrapper,\r\n buttonYesText,\r\n button,\r\n buttonNoText\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {description}\r\n \r\n {buttonNoText}\r\n {button}\r\n {buttonYesText}\r\n \r\n \r\n );\r\n};\r\n\r\nconst AccountProfileSection: React.FC = ({\r\n AccountProfileItem,\r\n heading,\r\n links,\r\n description\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {description}\r\n {/*{links}*/}\r\n \r\n );\r\n};\r\n\r\nconst AccountProfileView: React.FC = props => {\r\n const { AccountProfile, accountProfileWrapper, heading, emailSection, nameSection, preferenceSection, customerAttributesWrapper, customerAttributesSection } = props;\r\n\r\n return (\r\n \r\n {accountProfileWrapper && (\r\n {heading}\r\n \r\n \r\n \r\n \r\n )}\r\n {customerAttributesWrapper && (\r\n {customerAttributesSection}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AccountProfileView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n// @ts-ignore\r\nimport {ICartLineItemViewProps, ICartlinesViewProps, ICartResources, ICartViewProps, IOrderSummaryErrors} from \"@msdyn365-commerce-modules/cart\";\r\nimport { IInvoiceSummaryLines } from \"@msdyn365-commerce-modules/invoice-payment-summary\";\r\nimport { IOrderSummaryLines } from \"@msdyn365-commerce-modules/order-summary-utilities\";\r\nimport { ArrayExtensions } from \"@msdyn365-commerce-modules/retail-actions\";\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n INodeProps,\r\n ITelemetryContent,\r\n Node,\r\n TelemetryConstant\r\n} from \"@msdyn365-commerce-modules/utilities\";\r\nimport * as React from \"react\";\r\n\r\nimport { ICartProps as ICartExtensionProps } from \"../definition-extensions/cart.ext.props.autogenerated\";\r\n\r\n/**\r\n * Toggle Bopis Function.\r\n * @param cartLine -CartLine.\r\n * @param isBopisSelected -Boolean.\r\n * @returns Toggle Bopis.\r\n */\r\nconst toggleBopisHandler = (cartLine: ICartlinesViewProps, isBopisSelected: boolean) => () => {\r\n cartLine.pickUpInStore?.callbacks.toggleBopis(!isBopisSelected);\r\n};\r\n\r\n/**\r\n * Change Store Function.\r\n * @param cartLine -CartLine.\r\n * @returns Toggle Bopis.\r\n */\r\nconst onChangeStoreHandler = (cartLine: ICartlinesViewProps) => () => {\r\n cartLine.pickUpInStore?.callbacks.toggleBopis(true);\r\n};\r\n\r\n/**\r\n * Render Bopis block.\r\n * @param cartLine - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @param storeSelector - Store selector element.\r\n * @param telemetryContent - The telemetry object.\r\n * @param emailDeliveryModeCode - The email delivery mode code.\r\n * @returns JSX Element.\r\n */\r\nconst renderBopisBlock = (cartLine: ICartlinesViewProps, resources: ICartResources, storeSelector: React.ReactNode | undefined,\r\n telemetryContent?: ITelemetryContent, emailDeliveryModeCode?: string): JSX.Element | null => {\r\n // If it is electronic item cart line, then return null for BOPISBlock.\r\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\r\n return null;\r\n }\r\n\r\n const {\r\n shipInsteadDisplayText,\r\n shipToAddressDisplayText,\r\n pickItUpDisplayText,\r\n pickUpAtStoreWithLocationText,\r\n changeStoreDisplayText\r\n } = resources;\r\n\r\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\r\n\r\n const payLoad = getPayloadObject(\"click\", telemetryContent!, TelemetryConstant.PickupInStore);\r\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\r\n\r\n return (\r\n \r\n
\r\n {isBopisSelected ? \r\n {pickUpAtStoreWithLocationText}\r\n : \r\n {shipToAddressDisplayText}\r\n }\r\n
\r\n {\r\n isBopisSelected &&\r\n
\r\n \r\n {cartLine.pickUpInStore.orgUnitName}\r\n \r\n \r\n {changeStoreDisplayText}\r\n \r\n
\r\n }\r\n \r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Render Bopis block.\r\n * @param cartLine - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @param storeSelector - Store selector element.\r\n * @param telemetryContent - The telemetry object.\r\n * @param emailDeliveryModeCode - The email delivery mode code.\r\n * @returns JSX Element.\r\n */\r\nconst renderGroupBopisBlock = (cartLine: ICartlinesViewProps, resources: ICartResources, storeSelector: React.ReactNode | undefined,\r\n telemetryContent?: ITelemetryContent, emailDeliveryModeCode?: string): JSX.Element | null => {\r\n // If it is electronic item cart line, then return null for GroupBOPISBlock.\r\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\r\n return null;\r\n }\r\n\r\n const { changeStoreDisplayText, shipInsteadDisplayText, pickItUpDisplayText } = resources;\r\n\r\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\r\n\r\n const payLoad = getPayloadObject(\"click\", telemetryContent!, TelemetryConstant.PickupInStore);\r\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\r\n\r\n return (\r\n <>\r\n {isBopisSelected ?\r\n : null}\r\n \r\n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\r\n \r\n \r\n );\r\n};\r\n\r\nconst renderCartLineComment = (cartLineComment: React.ReactNode, comment: string, cartLineId: string, cartProductTitle?: string) => {\r\n if (!cartLineComment) {\r\n return null;\r\n }\r\n return React.cloneElement(cartLineComment[0] as React.ReactElement, { comment, cartLineId, cartProductTitle})\r\n}\r\n\r\n\r\n/**\r\n * Render Cart Lines.\r\n * @param cartLine - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @param storeSelector - Store selector element.\r\n * @param cartLineComment - Cart line comment element\r\n * @param telemetryContent - The telemetry object.\r\n * @param isMultiplePickUp - FLag to check if there multiple pickups.\r\n * @param emailDeliveryModeCode - The email delivery mode code.\r\n * @returns JSX Element.\r\n */\r\nconst renderCartLine = (cartLine: ICartlinesViewProps, resources: ICartResources, storeSelector: React.ReactNode | undefined,\r\n cartLineComment: React.ReactNode | undefined, telemetryContent?: ITelemetryContent,\r\n isMultiplePickUp?: boolean, emailDeliveryModeCode?: string): JSX.Element => {\r\n const comment = cartLine.data?.cartline.Comment || '';\r\n const cartLineProductTitle = cartLine.data?.product?.Name;\r\n if (cartLine.error === resources.outOfStockErrorMessage) {\r\n return (\r\n \r\n {renderCartLineComment(cartLineComment, comment, cartLine.cartlineId!, cartLineProductTitle)}\r\n {cartLine.addToWishlist}\r\n {cartLine.remove}\r\n \r\n );\r\n }\r\n\r\n if (isMultiplePickUp) {\r\n return (\r\n \r\n {renderGroupBopisBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\r\n {renderCartLineComment(cartLineComment, comment, cartLine.cartlineId!, cartLineProductTitle)}\r\n {cartLine.addToOrderTemplate}\r\n {cartLine.addToWishlist}\r\n {cartLine.remove}\r\n \r\n );\r\n }\r\n\r\n if (cartLine.addToOrderTemplate) {\r\n return (\r\n \r\n {renderCartLineComment(cartLineComment, comment, cartLine.cartlineId!, cartLineProductTitle)}\r\n {cartLine.addToOrderTemplate}\r\n {cartLine.addToWishlist}\r\n {cartLine.remove}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {renderCartLineComment(cartLineComment, comment, cartLine.cartlineId!, cartLineProductTitle)}\r\n {cartLine.addToWishlist}\r\n {cartLine.remove}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Cart Lines.\r\n * @param cartLines - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @param storeSelector - Store selector element.\r\n * @param telemetryContent - The telemetry object.\r\n * @param isMultiplePickUp - Flag to check if there multiple pickups.\r\n * @param emailDeliveryModeCode - The email delivery mode code.\r\n * @returns JSX Element.\r\n */\r\nconst renderCartlinesInternal = (isPrintView: boolean, cartLines: ICartlinesViewProps[], resources: ICartResources,\r\n storeSelector: React.ReactNode | undefined, cartLineComment: React.ReactNode | undefined, telemetryContent?: ITelemetryContent, isMultiplePickUp?: boolean,\r\n emailDeliveryModeCode?: string): JSX.Element[] | JSX.Element => {\r\n return (\r\n cartLines.map((cartLine, index) => {\r\n const itemIndex = index;\r\n return (\r\n
\r\n {cartLine.cartline}\r\n \r\n {isMultiplePickUp ? null : renderBopisBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\r\n {\r\n renderCartLine(cartLine, resources, storeSelector, cartLineComment, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)\r\n }\r\n \r\n
\r\n );\r\n }));\r\n};\r\n\r\n/**\r\n * Render Cart Lines.\r\n * @param props - The cart line props.\r\n * @param cartLines - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @param storeSelector - Store selector element.\r\n * @param waitingComponent - Waiting component element.\r\n * @param cartLoadingStatus - Cart loading status string.\r\n * @param isCartDataResult - Flag to check if there is cart data.\r\n * @param telemetryContent - The telemetry object.\r\n * @param isMultiplePickUp - Flag to check if there multiple pickups.\r\n * @param emailDeliveryModeCode - The email delivery mode code.\r\n * @returns JSX Element.\r\n */\r\nconst renderCartlines = (isPrintView: boolean, props: ICartViewProps & ICartExtensionProps<{}>, cartLines: ICartlinesViewProps[] | undefined, resources: ICartResources,\r\n storeSelector: React.ReactNode | undefined, waitingComponent: React.ReactNode,\r\n cartLoadingStatus: string, isCartDataResult: boolean, telemetryContent?: ITelemetryContent, isMultiplePickUp?: boolean,\r\n emailDeliveryModeCode?: string): JSX.Element[] | JSX.Element => {\r\n const { slots: { cartLineComment, orderLevelComment } } = props;\r\n if (cartLoadingStatus) {\r\n return (<>\r\n {cartLoadingStatus}\r\n );\r\n }\r\n\r\n // Props.CartlinesWrapper is only required on cart lines and when multiple pickup mode is disabled. This is also required to handle the empty cart styling.\r\n // Else, empty cart multiple pickup mode is disabled falls under the other cart line wrapper which is creating issue with Empty cart scenario.\r\n if (cartLines) {\r\n return props.multiplePickUpEnabled ? (\r\n renderCartlinesInternal(isPrintView, cartLines, resources, storeSelector, cartLineComment, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)\r\n ) : (\r\n \r\n {renderCartlinesInternal(isPrintView, cartLines, resources, storeSelector, cartLineComment, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)}\r\n {renderOrderLevelComment(isPrintView, orderLevelComment)}\r\n \r\n );\r\n }\r\n\r\n return (isCartDataResult ? (\r\n
\r\n
\r\n {props.slots.emptyCart}\r\n
\r\n
\r\n ) : <>\r\n {waitingComponent}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Cart Lines group title.\r\n * @param cartLine - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @param count - Count of products.\r\n * @returns JSX Element.\r\n */\r\nconst renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\r\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\r\n const { itemLabel, itemsLabel } = resources;\r\n const itemCountOne: number = 1;\r\n const suffix = count > itemCountOne ? itemsLabel : itemLabel;\r\n const countTitle = `(${count} ${suffix})`;\r\n return (\r\n <>\r\n \r\n {isBopisSelected ?

\r\n {cartLine.pickUpInStore?.deliveryOption}\r\n {\", \"}\r\n {cartLine.pickUpInStore?.orgUnitName}\r\n

: null}\r\n

\r\n {countTitle}\r\n

\r\n
\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Cart Lines group title.\r\n * @param cartLine - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @param count - Count of products.\r\n * @param emailDeliveryModeCode - The email delivery mode code.\r\n * @returns JSX Element.\r\n */\r\nconst renderCartLinesGroupHeader = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number, emailDeliveryModeCode?: string) => {\r\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\r\n const { pickUpText, shippingText, emailshippingText } = resources;\r\n let groupTitle: string;\r\n\r\n groupTitle = isBopisSelected ? pickUpText : shippingText;\r\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\r\n\r\n return (\r\n <>\r\n
\r\n \r\n

\r\n {groupTitle}\r\n

\r\n {renderCartLinesGroupTitle(cartLine, resources, count)}\r\n
\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Returns count of products.\r\n * @param cartLine - The cart line view props.\r\n * @returns Number of products.\r\n */\r\nconst countItems = (cartLine: ICartlinesViewProps[]): number => {\r\n let countItem = 0;\r\n const defaultItemCount = 0;\r\n countItem = cartLine.reduce((count, item) => {\r\n return count + (item.data?.cartline.Quantity ?? defaultItemCount);\r\n\r\n }, defaultItemCount);\r\n return countItem;\r\n};\r\n\r\n/**\r\n * Render Cart Lines group.\r\n * @param props - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @returns JSX Element.\r\n */\r\nconst renderCartLinesGroup = (isPrintView: boolean, props: ICartViewProps & ICartExtensionProps<{}>, resources: ICartResources): JSX.Element | undefined => {\r\n if (props.cartLinesGroup && ArrayExtensions.hasElements(props.cartLinesGroup)) {\r\n return (\r\n
\r\n {props.cartLinesGroup.map(cartlines => {\r\n return (
\r\n {renderCartLinesGroupHeader(cartlines[0], resources, countItems(cartlines),\r\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode)}\r\n {renderCartlines(isPrintView, props, cartlines, props.resources, props.storeSelector,\r\n props.waitingComponent, props.cartLoadingStatus, props.cartDataResult,\r\n props.telemetryContent, props.multiplePickUpEnabled, props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode)}\r\n
);\r\n })}\r\n
\r\n );\r\n }\r\n return (props.cartDataResult ? (\r\n
\r\n
\r\n {props.slots.emptyCart}\r\n
\r\n
\r\n ) : <>\r\n {props.waitingComponent}\r\n \r\n );\r\n\r\n};\r\n\r\n/**\r\n * Render error block.\r\n * @param errorData - Error component.\r\n * @returns JSX Element.\r\n */\r\nconst renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\r\n if (!errorData || !ArrayExtensions.hasElements(errorData.errors)) {\r\n return null;\r\n }\r\n return (\r\n \r\n {errorData.header}\r\n {errorData.errors}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render invoice summary.\r\n * @param invoiceSummaryLines - Invoice summary component.\r\n * @param orderSummaryItems - Order summary component.\r\n * @param props - The module props.\r\n * @returns JSX Element.\r\n */\r\nconst renderInvoiceSummarylines = (invoiceSummaryLines: IInvoiceSummaryLines | undefined, orderSummaryItems: INodeProps,\r\n props: ICartViewProps): JSX.Element | null => {\r\n if (!invoiceSummaryLines) {\r\n props.context.telemetry.error(\"InvoiceSummary content is empty, module wont render\");\r\n return null;\r\n }\r\n return (\r\n \r\n {invoiceSummaryLines.invoices}\r\n {invoiceSummaryLines.giftCard}\r\n {invoiceSummaryLines.loyalty}\r\n {invoiceSummaryLines.orderTotal}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render order summary.\r\n * @param orderSummaryLines - Order summary component.\r\n * @param orderSummaryItems - Order summary items component.\r\n * @param props - The module props.\r\n * @returns JSX Element.\r\n */\r\nconst renderOrderSummarylines = (orderSummaryLines: IOrderSummaryLines | undefined, orderSummaryItems: INodeProps,\r\n props: ICartViewProps): JSX.Element | null => {\r\n if (!orderSummaryLines) {\r\n props.context.telemetry.error(\"OrderSummary content is empty, module wont render\");\r\n return null;\r\n }\r\n return (\r\n \r\n {orderSummaryLines.subtotal}\r\n {/* {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null} */}\r\n {orderSummaryLines.shipping}\r\n {orderSummaryLines.otherCharge}\r\n {orderSummaryLines.tax}\r\n {orderSummaryLines.orderTotal}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render error block.\r\n * @param promotions - The module view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\r\n return (\r\n <>\r\n \r\n {promotions.promotionMessage}\r\n \r\n {promotions.promotionSeeAllLink}\r\n \r\n {promotions.promotionDialog}\r\n \r\n\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render order summary checkout.\r\n * @param props - The module view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderOrderSummaryCheckout = (props: ICartViewProps): JSX.Element | undefined => {\r\n return (\r\n \r\n {props.cart?.hasInvoiceLine ? null : props.promoCode}\r\n \r\n {/* {props.checkoutAsSignInUserButton} */}\r\n {props.checkoutAsGuestButton}\r\n \r\n {props.createTemplateFromCartButton}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render order summary checkout button.\r\n * @param props - The module view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderOrderSummaryCheckoutButton = (props: ICartViewProps): JSX.Element | undefined => {\r\n return (\r\n \r\n {/* {props.checkoutAsSignInUserButton} */}\r\n {props.checkoutAsGuestButton}\r\n \r\n );\r\n};\r\n\r\nconst _renderPrintView = (isPrintView: boolean,\r\n handlePrintViewChange: (e: React.MouseEventHandler) => void,\r\n printViewLabel: string\r\n): React.ReactNode => (\r\n
\r\n \r\n\r\n\r\n
\r\n);\r\n\r\n/**\r\n * Renders the order-level-comment that displays a comment at the bottom of the cart.\r\n */\r\n\r\nconst renderOrderLevelComment = (isPrintView: boolean, orderLevelComment: React.ReactNode | undefined): React.ReactNode => {\r\n if (!orderLevelComment) {\r\n return null;\r\n }\r\n return(\r\n
\r\n {orderLevelComment}\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Render cart view.\r\n * @param props - The module view props.\r\n * @returns JSX Element.\r\n */\r\nconst CartView: React.FC> = (props: ICartViewProps & ICartExtensionProps<{}>) => {\r\n\r\n const handlePrintViewChange = () => setIsPrintView(!isPrintView);\r\n const [isPrintView, setIsPrintView] = React.useState(false);\r\n const printViewToggle = _renderPrintView(isPrintView, handlePrintViewChange, \"Print View\");\r\n const totalItemCountOne: number = 1;\r\n const updatedTitle = (\r\n

\r\n {props.resources.cartTitle}\r\n \r\n {` (${Number(props.cart?.totalItemsInCart)} ${props.cart?.totalItemsInCart !== totalItemCountOne ? \"items\" : \"item\"})`}\r\n \r\n

\r\n );\r\n return (\r\n
\r\n {updatedTitle}\r\n
\r\n {props.orderSummaryLineitems?.orderTotal}\r\n
\r\n {renderOrderSummaryCheckoutButton(props)}\r\n {!props.cart?.hasInvoiceLine && props.promotionOptions && renderPromotions(props.promotionOptions)}\r\n {props.multiplePickUpEnabled ? renderCartLinesGroup(isPrintView, props, props.resources) : renderCartlines(isPrintView, props, props.cartlines,\r\n props.resources, props.storeSelector, props.waitingComponent, props.cartLoadingStatus, props.cartDataResult)}\r\n {props.orderSummaryHeading &&\r\n \r\n {printViewToggle}\r\n \r\n {props.orderSummaryHeading}\r\n {props.cart?.hasInvoiceLine ? renderInvoiceSummarylines(\r\n props.invoiceSummaryLineitems, props.OrderSummaryItems, props) : renderOrderSummarylines(\r\n props.orderSummaryLineitems, props.OrderSummaryItems, props)}\r\n {renderErrorBlock(props.OrderSummaryErrors)}\r\n \r\n {renderOrderSummaryCheckout(props)}\r\n }\r\n {props.storeSelector}\r\n
\r\n );\r\n};\r\n\r\nexport default CartView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ISignInItem, ISignInLoading, ISignInLocalAccount,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/./sign-in';\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n forgetPassword,\r\n disclaimer,\r\n error,\r\n signInButton\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInItem) => {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {forgetPassword}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n \r\n );\r\n};\r\n//\r\n// const SocialAccount: React.FC = ({\r\n// socialAccounts,\r\n// items\r\n// }) => {\r\n//\r\n// return (\r\n// \r\n// {items && items.map((item: ISignInSocialItem) => {\r\n// return (\r\n// \r\n// {item.image}\r\n// {item.text}\r\n// \r\n// );\r\n// })}\r\n// \r\n// );\r\n// };\r\n\r\nconst SignInLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC = props => {\r\n\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n signUpDescription,\r\n signUpLink,\r\n signUpSection,\r\n signUpSectionHeading\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {/*{SocialAccount(signInSocialAccount)}*/}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n {signUpLink}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default SignInView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ISignUpEmailVerification,\r\n ISignUpGivenNameVerification,\r\n ISignUpItem,\r\n ISignUpLoading,\r\n ISignUpLocalAccount,\r\n ISignUpSurnameVerification,\r\n ISignUpViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-up/./sign-up';\r\n\r\nconst SignUpItem: React.FC = ({\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input\r\n}) => {\r\n\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst SignUpEmailVerification: React.FC = ({\r\n email,\r\n buttonWrapper,\r\n buttons,\r\n successMessage,\r\n errorMessage\r\n}) => {\r\n\r\n return (\r\n <>\r\n \r\n {successMessage && successMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n \r\n {buttons && buttons.map((button: React.ReactNode) => {\r\n return (\r\n <>\r\n {button}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Handles validation of sign-up givenName.\r\n * @param event - Content editable event.\r\n * @param event.givenName - Event Given Name.\r\n * @param event.errorMessage - Event Error Message.\r\n * @returns - Error Message for Given Name.\r\n */\r\nconst SignUpGivenNameVerificationComponent: React.FC = ({\r\n givenName,\r\n errorMessage\r\n}) => {\r\n return (\r\n <>\r\n \r\n {errorMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Handles validation of signUp surname.\r\n * @param event - Content editable event.\r\n * @param event.surname - Event surname.\r\n * @param event.errorMessage - Event Error Message.\r\n * @returns - Error Message for surname.\r\n */\r\nconst SignUpSurnameVerificationComponent: React.FC = ({\r\n surname,\r\n errorMessage\r\n}) => {\r\n return (\r\n <>\r\n \r\n {errorMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst LocalAccount: React.FC = ({\r\n localAccount,\r\n items,\r\n emailVerification,\r\n givenNameVerification,\r\n surnameVerification,\r\n buttons,\r\n errorMessage,\r\n disclaimer\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignUpItem) => {\r\n if (item.key === 'email' && emailVerification.isRequired) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n if (item.key === 'surname' && surnameVerification.isRequired) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n return (\r\n\r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((error: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {error}\r\n \r\n );\r\n })}\r\n {buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n \r\n );\r\n};\r\n\r\nconst SignUpLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignUpView: React.FC = props => {\r\n\r\n const {\r\n signUp,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n heading,\r\n signUpLocalAccount\r\n } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n {heading}\r\n {LocalAccount(signUpLocalAccount)}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SignUpView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IImageSettings, Image, RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { IWriteReviewData, IWriteReviewViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IWriteReviewProps } from '../definition-extensions/write-review.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Product Image.\r\n * @param props - WriteReview ViewProps.\r\n * @returns JSX Element.\r\n */\r\nconst renderProductImage = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\r\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\r\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\r\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\r\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\r\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\r\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Product Description.\r\n * @param props - WriteReview ViewProps.\r\n * @returns JSX Element.\r\n */\r\nconst renderProductDescription = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\r\n const product = props.data.product.result;\r\n return (\r\n \r\n
\r\n {renderProductImage(props)}\r\n
\r\n
\r\n
\r\n {product?.Name}\r\n
\r\n
\r\n {product?.Name}\r\n
\r\n
\r\n {product?.ItemId}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Create Write Review Modal.\r\n * @param props - WriteReview ViewProps.\r\n * @returns JSX Element.\r\n */\r\nconst createReviewModal = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\r\n const { resources, moduleProps, reviewModal } = props;\r\n\r\n return (\r\n \r\n {reviewModal.modalHeader}\r\n \r\n \r\n \r\n {renderProductDescription(props)}\r\n \r\n
\r\n {resources.selectRatingLabel}\r\n
\r\n {reviewModal.rating}\r\n
\r\n
\r\n \r\n {resources.reviewTitleLabel}\r\n {reviewModal.titleInput}\r\n \r\n \r\n {resources.reviewTextLabel}\r\n {reviewModal.textInput}\r\n \r\n {reviewModal.privacyPolicyUrl}\r\n {reviewModal.error}\r\n
\r\n
\r\n \r\n {reviewModal.submitButton}\r\n {reviewModal.cancelButton}\r\n \r\n
\r\n );\r\n};\r\n\r\n/**\r\n * WriteReview view.\r\n * @param props - WriteReview ViewProps.\r\n * @returns WriteReview view module.\r\n */\r\nconst WriteReviewView: React.FC> = props => {\r\n const { config, heading, signInMessage, signInButton, modalToggle, moduleProps } = props;\r\n const { paragraph } = config;\r\n const isAuthenticated = props.context.request.user.isAuthenticated;\r\n const text = paragraph && ();\r\n\r\n return (\r\n \r\n {heading}\r\n {!isAuthenticated ? <>\r\n {signInMessage}\r\n {signInButton}\r\n : <>\r\n {text}\r\n {modalToggle}\r\n {createReviewModal(props)}\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default WriteReviewView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/account-profile/./account-profile';\r\n\r\nconst AccountPreferencesSection: React.FC = ({\r\n accountPreferences,\r\n heading,\r\n personalization,\r\n extraPreferences\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n \r\n {\r\n extraPreferences && extraPreferences.map((preferenceSecton, index) => {\r\n return ;\r\n })\r\n }\r\n \r\n );\r\n};\r\n\r\nconst AccountPreferenceSection: React.FC = ({\r\n accountPreference,\r\n heading,\r\n description,\r\n buttonWrapper,\r\n buttonYesText,\r\n button,\r\n buttonNoText\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {description}\r\n \r\n {buttonNoText}\r\n {button}\r\n {buttonYesText}\r\n \r\n \r\n );\r\n};\r\n\r\nconst AccountProfileSection: React.FC = ({\r\n AccountProfileItem,\r\n heading,\r\n links,\r\n description\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {description}\r\n {/*{links}*/}\r\n \r\n );\r\n};\r\n\r\nconst AccountProfileView: React.FC = props => {\r\n const { AccountProfile, accountProfileWrapper, heading, emailSection, nameSection, preferenceSection, customerAttributesWrapper, customerAttributesSection } = props;\r\n\r\n return (\r\n \r\n {accountProfileWrapper && (\r\n {heading}\r\n \r\n \r\n \r\n \r\n )}\r\n {customerAttributesWrapper && (\r\n {customerAttributesSection}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AccountProfileView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAccountWelcomeTileViewProps } from '@msdyn365-commerce-modules/account-management';\r\n\r\nconst AccountWelcomeTileView: React.FC = props => {\r\n const { AccountWelcomeTile, heading } = props;\r\n\r\n return (\r\n \r\n {heading}\r\n {props.data.accountInformation?.result?.AccountNumber && (\r\n \r\n {' '} - {props.data.accountInformation.result.AccountNumber}\r\n \r\n )}\r\n \r\n );\r\n \r\n};\r\n\r\nexport default AccountWelcomeTileView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n// @ts-ignore\r\nimport { ICartLineItemViewProps, ICartlinesViewProps, ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart';\r\nimport { IInvoiceSummaryLines, IInvoiceSummaryProps } from '@msdyn365-commerce-modules/invoice-payment-summary';\r\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n INodeProps,\r\n ITelemetryContent,\r\n Node,\r\n Modal,\r\n ModalBody,\r\n ModalFooter,\r\n ModalHeader,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nimport { ICartConfig, ICartProps as ICartExtensionProps, ICartResources } from '../definition-extensions/cart.ext.props.autogenerated';\r\nimport { getAdvancedNotesAsync, getSupersessionV2Async } from '../../../actions/DataActionExtension.g';\r\nimport { IAdvancedNoteEntity } from '../../../actions/DataServiceEntities.g';\r\nimport { LinePagination } from './components/line-pagination';\r\nimport { AttributeTextValue, CartLine, CommerceProperty, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport getExtensionPropertyValueByKey, { CommercePropertyValueEnum } from '../../../utils/getExtensionPropertyValueByKey';\r\nimport { SupersessionKey } from '../models/SupersessionKey';\r\nimport { InventoryBreakdownComponent, WarehouseInventoryType } from './components/inventory-breakdown.component';\r\n\r\n/**s\r\n * Toggle Bopis Function.\r\n * @param cartLine -CartLine.\r\n * @param isBopisSelected -Boolean.\r\n * @returns Toggle Bopis.\r\n */\r\nconst toggleBopisHandler = (cartLine: ICartlinesViewProps, isBopisSelected: boolean) => () => {\r\n cartLine.pickUpInStore?.callbacks.toggleBopis(!isBopisSelected);\r\n};\r\n\r\n/**\r\n * Change Store Function.\r\n * @param cartLine -CartLine.\r\n * @returns Toggle Bopis.\r\n */\r\nconst onChangeStoreHandler = (cartLine: ICartlinesViewProps) => () => {\r\n cartLine.pickUpInStore?.callbacks.toggleBopis(true);\r\n};\r\n\r\n/**\r\n * Render Bopis block.\r\n * @param cartLine - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @param storeSelector - Store selector element.\r\n * @param telemetryContent - The telemetry object.\r\n * @param emailDeliveryModeCode - The email delivery mode code.\r\n * @returns JSX Element.\r\n */\r\nconst renderBopisBlock = (\r\n cartLine: ICartlinesViewProps,\r\n resources: ICartResources,\r\n storeSelector: React.ReactNode | undefined,\r\n telemetryContent?: ITelemetryContent,\r\n emailDeliveryModeCode?: string\r\n): JSX.Element | null => {\r\n // If it is electronic item cart line, then return null for BOPISBlock.\r\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\r\n return null;\r\n }\r\n\r\n const {\r\n shipInsteadDisplayText,\r\n shipToAddressDisplayText,\r\n pickItUpDisplayText,\r\n pickUpAtStoreWithLocationText,\r\n changeStoreDisplayText\r\n } = resources;\r\n\r\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\r\n\r\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\r\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\r\n\r\n return (\r\n \r\n
\r\n {isBopisSelected ? (\r\n {pickUpAtStoreWithLocationText}\r\n ) : (\r\n {shipToAddressDisplayText}\r\n )}\r\n
\r\n {isBopisSelected && (\r\n
\r\n {cartLine.pickUpInStore.orgUnitName}\r\n \r\n
\r\n )}\r\n \r\n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\r\n \r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Render Bopis block.\r\n * @param cartLine - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @param storeSelector - Store selector element.\r\n * @param telemetryContent - The telemetry object.\r\n * @param emailDeliveryModeCode - The email delivery mode code.\r\n * @returns JSX Element.\r\n */\r\nconst renderGroupBopisBlock = (\r\n cartLine: ICartlinesViewProps,\r\n resources: ICartResources,\r\n storeSelector: React.ReactNode | undefined,\r\n telemetryContent?: ITelemetryContent,\r\n emailDeliveryModeCode?: string\r\n): JSX.Element | null => {\r\n // If it is electronic item cart line, then return null for GroupBOPISBlock.\r\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\r\n return null;\r\n }\r\n\r\n const { changeStoreDisplayText, shipInsteadDisplayText, pickItUpDisplayText } = resources;\r\n\r\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\r\n\r\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\r\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\r\n\r\n return (\r\n <>\r\n {isBopisSelected ? (\r\n \r\n ) : null}\r\n \r\n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\r\n \r\n \r\n );\r\n};\r\n\r\nconst renderCartLineComment = (cartLineComment: React.ReactNode, comment: string, cartLineId: string, cartProductTitle?: string) => {\r\n if (!cartLineComment) {\r\n return null;\r\n }\r\n // @ts-ignore\r\n return React.cloneElement(cartLineComment[0] as React.ReactElement, { comment, cartLineId, cartProductTitle });\r\n};\r\n\r\n/**\r\n * Render Cart Lines.\r\n * @param cartLine - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @param storeSelector - Store selector element.\r\n * @param cartLineComment - Cart line comment element\r\n * @param telemetryContent - The telemetry object.\r\n * @param isMultiplePickUp - FLag to check if there multiple pickups.\r\n * @param emailDeliveryModeCode - The email delivery mode code.\r\n * @returns JSX Element.\r\n */\r\nconst renderCartLine = (\r\n cartLine: ICartlinesViewProps,\r\n resources: ICartResources,\r\n config: ICartConfig,\r\n storeSelector: React.ReactNode | undefined,\r\n cartLineComment: React.ReactNode | undefined,\r\n advancedNotes: React.ReactNode | undefined,\r\n productExtensionProperties: CommerceProperty[] | undefined,\r\n telemetryContent?: ITelemetryContent,\r\n isMultiplePickUp?: boolean,\r\n emailDeliveryModeCode?: string\r\n): JSX.Element => {\r\n const comment = cartLine.data?.cartline.Comment || '';\r\n const cartLineProductTitle = cartLine.data?.product?.Name;\r\n const diplayMovetowishlist = config.displayMoveToWishlistButton;\r\n if (cartLine.error === resources.outOfStockErrorMessage) {\r\n return (\r\n \r\n {renderCartLineComment(cartLineComment, comment, cartLine.cartlineId!, cartLineProductTitle)}\r\n {diplayMovetowishlist && cartLine.addToWishlist}\r\n {cartLine.remove}\r\n \r\n );\r\n }\r\n\r\n if (isMultiplePickUp) {\r\n return (\r\n \r\n {renderGroupBopisBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\r\n {renderCartLineComment(cartLineComment, comment, cartLine.cartlineId!, cartLineProductTitle)}\r\n {cartLine.addToOrderTemplate}\r\n {diplayMovetowishlist && cartLine.addToWishlist}\r\n {cartLine.remove}\r\n \r\n );\r\n }\r\n\r\n if (cartLine.addToOrderTemplate) {\r\n return (\r\n \r\n {renderCartLineComment(cartLineComment, comment, cartLine.cartlineId!, cartLineProductTitle)}\r\n {cartLine.addToOrderTemplate}\r\n {diplayMovetowishlist && cartLine.addToWishlist}\r\n {cartLine.remove}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {renderCartLineComment(cartLineComment, comment, cartLine.cartlineId!, cartLineProductTitle)}\r\n {diplayMovetowishlist && cartLine.addToWishlist}\r\n {cartLine.remove}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Cart Lines.\r\n * @param cartLines - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @param storeSelector - Store selector element.\r\n * @param telemetryContent - The telemetry object.\r\n * @param isMultiplePickUp - Flag to check if there multiple pickups.\r\n * @param emailDeliveryModeCode - The email delivery mode code.\r\n * @returns JSX Element.\r\n */\r\nconst renderCartlinesInternal = (\r\n supersessionData: SimpleProduct[],\r\n handleLinkClick: (lineId: string) => void,\r\n notes: IAdvancedNoteEntity[],\r\n isPrintView: boolean,\r\n cartLines: ICartlinesViewProps[],\r\n resources: ICartResources,\r\n config: ICartConfig,\r\n storeSelector: React.ReactNode | undefined,\r\n cartLineComment: React.ReactNode | undefined,\r\n advancedNotes: React.ReactNode | undefined,\r\n isAlternateWarehouseSelectionDisabled: boolean,\r\n shouldDisplayAlternateWarehouseFeature: boolean,\r\n // enforcePrimaryWarehouseAvailability: boolean,\r\n // hasWarehouseChanged: boolean | undefined,\r\n telemetryContent?: ITelemetryContent,\r\n isMultiplePickUp?: boolean,\r\n emailDeliveryModeCode?: string\r\n): JSX.Element[] | JSX.Element => {\r\n // TODO:\r\n return cartLines.map((cartLine, index) => {\r\n const itemIndex = index;\r\n const itemId = cartLine.data?.product?.ItemId || '';\r\n const productExtensionProperties = supersessionData.find(it => it.ItemId === itemId)?.ExtensionProperties;\r\n\r\n const inventoryBreakdownJSON = getExtensionPropertyValueByKey(\r\n productExtensionProperties,\r\n SupersessionKey.InventoryBreakdown,\r\n CommercePropertyValueEnum.string\r\n ) as string;\r\n\r\n let warehouse: WarehouseInventoryType | undefined = undefined;\r\n let isAlternateWarehouse: boolean = false;\r\n let numOfWarehouse: number | undefined = undefined;\r\n let primaryWarehouse: WarehouseInventoryType | undefined = undefined;\r\n let hasWarehouseChanged = false;\r\n if (inventoryBreakdownJSON) {\r\n const breakdown = JSON.parse(inventoryBreakdownJSON) as WarehouseInventoryType[];\r\n if (breakdown && breakdown.length) {\r\n // const currWh = cartLine.data?.cartline.WarehouseId;\r\n // hard-coded first element as its primary warehouse\r\n primaryWarehouse = breakdown[0];\r\n const warehouseAttr = cartLine.data?.cartline.AttributeValues?.find(\r\n attr => attr.Name === 'WarehouseId'\r\n ) as AttributeTextValue;\r\n const warehouseOverrideAttr = cartLine.data?.cartline.AttributeValues?.find(\r\n attr => attr.Name === 'IsWarehouseOverride'\r\n ) as AttributeTextValue;\r\n if (warehouseOverrideAttr) {\r\n hasWarehouseChanged = warehouseOverrideAttr.TextValue === 'true' ? true : false;\r\n }\r\n const warehouseId = warehouseAttr?.TextValue || primaryWarehouse.WarehouseId;\r\n const selectedWarehouse = breakdown.find(w => w.WarehouseId === warehouseId) || breakdown[0];\r\n // isAlternateWarehouse = selectedWarehouse.IsAllowable === false;\r\n isAlternateWarehouse = selectedWarehouse.WarehouseId !== primaryWarehouse.WarehouseId;\r\n numOfWarehouse = breakdown.length;\r\n warehouse = selectedWarehouse;\r\n }\r\n }\r\n const isCartView: boolean = true;\r\n\r\n const cartlineClone = React.cloneElement(cartLine.cartline as React.ReactElement, {\r\n shouldDisplayAlternateWarehouseFeature,\r\n // enforcePrimaryWarehouseAvailability,\r\n hasWarehouseChanged,\r\n primaryWarehouse,\r\n numOfWarehouse,\r\n isAlternateWarehouseSelectionDisabled,\r\n isAlternateWarehouse,\r\n isCartView,\r\n warehouse,\r\n selectProductForAvailability: handleLinkClick\r\n });\r\n return (\r\n
\r\n {cartlineClone}\r\n \r\n {isMultiplePickUp\r\n ? null\r\n : renderBopisBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\r\n {renderCartLine(\r\n cartLine,\r\n resources,\r\n config,\r\n storeSelector,\r\n cartLineComment,\r\n advancedNotes,\r\n productExtensionProperties,\r\n telemetryContent,\r\n isMultiplePickUp,\r\n emailDeliveryModeCode\r\n )}\r\n \r\n {renderAdvancedNotes(\r\n isPrintView,\r\n advancedNotes,\r\n notes.filter(n => n.ItemId === itemId)\r\n )}\r\n
\r\n );\r\n });\r\n};\r\n\r\n/**\r\n * Render Cart Lines.\r\n * @param props - The cart line props.\r\n * @param cartLines - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @param storeSelector - Store selector element.\r\n * @param waitingComponent - Waiting component element.\r\n * @param cartLoadingStatus - Cart loading status string.\r\n * @param isCartDataResult - Flag to check if there is cart data.\r\n * @param telemetryContent - The telemetry object.\r\n * @param isMultiplePickUp - Flag to check if there multiple pickups.\r\n * @param emailDeliveryModeCode - The email delivery mode code.\r\n * @returns JSX Element.\r\n */\r\nconst renderCartlines = (\r\n supersessionData: SimpleProduct[],\r\n handleLinkClick: (lineId: string) => void,\r\n notes: IAdvancedNoteEntity[],\r\n isPrintView: boolean,\r\n props: ICartViewProps & ICartExtensionProps<{}>,\r\n cartLines: ICartlinesViewProps[] | undefined,\r\n resources: ICartResources,\r\n storeSelector: React.ReactNode | undefined,\r\n waitingComponent: React.ReactNode,\r\n cartLoadingStatus: string,\r\n isCartDataResult: boolean,\r\n pagination: React.ReactNode,\r\n paginatedView: ICartlinesViewProps[] | undefined,\r\n isAlternateWarehouseSelectionDisabled: boolean,\r\n shouldDisplayAlternateWarehouseFeature: boolean,\r\n // enforcePrimaryWarehouseAvailability: boolean,\r\n // hasWarehouseChanged: boolean | undefined,\r\n telemetryContent?: ITelemetryContent,\r\n isMultiplePickUp?: boolean,\r\n emailDeliveryModeCode?: string\r\n): JSX.Element[] | JSX.Element => {\r\n const {\r\n slots: { cartLineComment, orderLevelComment, advancedNotes }\r\n } = props;\r\n if (cartLoadingStatus) {\r\n return <>{cartLoadingStatus};\r\n }\r\n\r\n // Props.CartlinesWrapper is only required on cart lines and when multiple pickup mode is disabled. This is also required to handle the empty cart styling.\r\n // Else, empty cart multiple pickup mode is disabled falls under the other cart line wrapper which is creating issue with Empty cart scenario.\r\n // if (cartLines) {\r\n if (paginatedView) {\r\n return props.multiplePickUpEnabled ? (\r\n <>\r\n {pagination}\r\n {renderCartlinesInternal(\r\n supersessionData,\r\n handleLinkClick,\r\n notes,\r\n isPrintView,\r\n /*cartLines*/ paginatedView,\r\n resources,\r\n props.config,\r\n storeSelector,\r\n cartLineComment,\r\n advancedNotes,\r\n isAlternateWarehouseSelectionDisabled,\r\n shouldDisplayAlternateWarehouseFeature,\r\n // enforcePrimaryWarehouseAvailability,\r\n // hasWarehouseChanged,\r\n telemetryContent,\r\n isMultiplePickUp,\r\n emailDeliveryModeCode\r\n )}\r\n {pagination}\r\n {renderOrderLevelComment(isPrintView, orderLevelComment)}\r\n \r\n ) : (\r\n <>\r\n \r\n {/*
*/}\r\n {/* {renderCartlinesInternal(notes, isPrintView, cartLines, resources, storeSelector, cartLineComment, telemetryContent, isMultiplePickUp, emailDeliveryModeCode)}*/}\r\n {/*
*/}\r\n {pagination}\r\n {renderCartlinesInternal(\r\n supersessionData,\r\n handleLinkClick,\r\n notes,\r\n isPrintView,\r\n /*cartLines*/ paginatedView,\r\n resources,\r\n props.config,\r\n storeSelector,\r\n cartLineComment,\r\n advancedNotes,\r\n isAlternateWarehouseSelectionDisabled,\r\n shouldDisplayAlternateWarehouseFeature,\r\n // enforcePrimaryWarehouseAvailability,\r\n // hasWarehouseChanged,\r\n telemetryContent,\r\n isMultiplePickUp,\r\n emailDeliveryModeCode\r\n )}\r\n {pagination}\r\n {renderOrderLevelComment(isPrintView, orderLevelComment)}\r\n
\r\n \r\n );\r\n }\r\n\r\n return isCartDataResult ? (\r\n
\r\n
{props.slots.emptyCart}
\r\n
\r\n ) : (\r\n <>{waitingComponent}\r\n );\r\n};\r\n\r\n/**\r\n * Render Cart Lines group title.\r\n * @param cartLine - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @param count - Count of products.\r\n * @returns JSX Element.\r\n */\r\nconst renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\r\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\r\n const { itemLabel, itemsLabel } = resources;\r\n const itemCountOne: number = 1;\r\n const suffix = count > itemCountOne ? itemsLabel : itemLabel;\r\n const countTitle = `(${count} ${suffix})`;\r\n return (\r\n <>\r\n \r\n {isBopisSelected ? (\r\n

\r\n {cartLine.pickUpInStore?.deliveryOption}\r\n {', '}\r\n {cartLine.pickUpInStore?.orgUnitName}\r\n

\r\n ) : null}\r\n

{countTitle}

\r\n
\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Cart Lines group title.\r\n * @param cartLine - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @param count - Count of products.\r\n * @param emailDeliveryModeCode - The email delivery mode code.\r\n * @returns JSX Element.\r\n */\r\nconst renderCartLinesGroupHeader = (\r\n cartLine: ICartlinesViewProps,\r\n resources: ICartResources,\r\n count: number,\r\n emailDeliveryModeCode?: string\r\n) => {\r\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\r\n const { pickUpText, shippingText, emailshippingText } = resources;\r\n let groupTitle: string;\r\n\r\n groupTitle = isBopisSelected ? pickUpText : shippingText;\r\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\r\n\r\n return (\r\n <>\r\n
\r\n

\r\n

{groupTitle}

\r\n {renderCartLinesGroupTitle(cartLine, resources, count)}\r\n
\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Returns count of products.\r\n * @param cartLine - The cart line view props.\r\n * @returns Number of products.\r\n */\r\nconst countItems = (cartLine: ICartlinesViewProps[]): number => {\r\n let countItem = 0;\r\n const defaultItemCount = 0;\r\n countItem = cartLine.reduce((count, item) => {\r\n return count + (item.data?.cartline.Quantity ?? defaultItemCount);\r\n }, defaultItemCount);\r\n return countItem;\r\n};\r\n\r\n/**\r\n * Render Cart Lines group.\r\n * @param props - The cart line view props.\r\n * @param resources - Module resource strings.\r\n * @returns JSX Element.\r\n */\r\nconst renderCartLinesGroup = (\r\n supersessionData: SimpleProduct[],\r\n handleInventoryLinkClick: (lineId: string) => void,\r\n advancedNotes: IAdvancedNoteEntity[],\r\n isPrintView: boolean,\r\n props: ICartViewProps & ICartExtensionProps<{}>,\r\n resources: ICartResources,\r\n pagination: React.ReactNode,\r\n paginatedView: ICartlinesViewProps[] | undefined,\r\n isAlternateWarehouseSelectionDisabled: boolean,\r\n shouldDisplayAlternateWarehouseFeature: boolean\r\n // enforcePrimaryWarehouseAvailability: boolean\r\n // hasWarehouseChanged: boolean | undefined\r\n): JSX.Element | undefined => {\r\n if (props.cartLinesGroup && ArrayExtensions.hasElements(props.cartLinesGroup)) {\r\n return (\r\n
\r\n {props.cartLinesGroup.map(cartlines => {\r\n return (\r\n
\r\n {renderCartLinesGroupHeader(\r\n cartlines[0],\r\n resources,\r\n countItems(cartlines),\r\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\r\n )}\r\n {renderCartlines(\r\n supersessionData,\r\n handleInventoryLinkClick,\r\n advancedNotes,\r\n isPrintView,\r\n props,\r\n cartlines,\r\n props.resources,\r\n props.storeSelector,\r\n props.waitingComponent,\r\n props.cartLoadingStatus,\r\n props.cartDataResult,\r\n pagination,\r\n paginatedView,\r\n isAlternateWarehouseSelectionDisabled,\r\n shouldDisplayAlternateWarehouseFeature,\r\n // enforcePrimaryWarehouseAvailability,\r\n // hasWarehouseChanged,\r\n props.telemetryContent,\r\n props.multiplePickUpEnabled,\r\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\r\n )}\r\n
\r\n );\r\n })}\r\n
\r\n );\r\n }\r\n return props.cartDataResult ? (\r\n
\r\n
{props.slots.emptyCart}
\r\n
\r\n ) : (\r\n <>{props.waitingComponent}\r\n );\r\n};\r\n\r\n/**\r\n * Render error block.\r\n * @param errorData - Error component.\r\n * @returns JSX Element.\r\n */\r\nconst renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\r\n if (!errorData || !ArrayExtensions.hasElements(errorData.errors)) {\r\n return null;\r\n }\r\n return (\r\n \r\n {errorData.header}\r\n {errorData.errors}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render invoice summary line.\r\n */\r\nconst renderInvoiceSummaryLine = (label: string | undefined, amount: string, type: string) => {\r\n return (\r\n

\r\n {label}\r\n \r\n \r\n {amount}\r\n \r\n \r\n

\r\n );\r\n};\r\n\r\n/**\r\n * Custom InvoiceSummary component.\r\n */\r\nconst InvoiceSummary = (props: IInvoiceSummaryProps, invoiceCssLabel: string, totalCssLabel: string) => {\r\n // const { TotalAmount, CartLines } = props.cart;\r\n const { CartLines, TotalAmount } = props.cart;\r\n const invoiceLines = CartLines?.filter(cartLine => cartLine.IsInvoiceLine);\r\n const total = TotalAmount ? props.context.cultureFormatter.formatCurrency(TotalAmount) : 'N/A';\r\n const reactNodes: IInvoiceSummaryLines = {\r\n invoices: invoiceLines?.map((invoiceLine: CartLine) => {\r\n const amount = invoiceLine.ExtendedPrice ? props.context.cultureFormatter.formatCurrency(invoiceLine.ExtendedPrice) : 'N/A';\r\n return renderInvoiceSummaryLine(invoiceLine.InvoiceId, amount, invoiceCssLabel);\r\n }),\r\n orderTotal: renderInvoiceSummaryLine(props.orderTotalLabel, total, totalCssLabel)\r\n };\r\n return reactNodes;\r\n};\r\n\r\n/**\r\n * Gets invoice summary line items.\r\n * @returns Invoice summary lines.\r\n */\r\nconst getInvoiceSummaryLineItems = (props: ICartViewProps & ICartExtensionProps<{}>): IInvoiceSummaryLines | undefined => {\r\n const cart = props.cart;\r\n // cart?.cart?.CartLines?.forEach(cartLine => cartLine.IsInvoiceLine && (cartLine.InvoiceAmount = cartLine.ExtendedPrice));\r\n return cart?.hasInvoiceLine\r\n ? InvoiceSummary(\r\n {\r\n orderTotalLabel: props.resources.summaryTotalAmountLabel,\r\n invoiceLabel: props.resources.invoiceLabel,\r\n cart: cart.cart,\r\n context: props.context,\r\n typeName: props.typeName,\r\n telemetry: props.telemetry,\r\n id: props.id\r\n },\r\n props.resources.invoiceCssLabel,\r\n props.resources.totalCssLabel\r\n )\r\n : undefined;\r\n};\r\n\r\n/**\r\n * Render invoice summary.\r\n * @param invoiceSummaryLines - Invoice summary component.\r\n * @param orderSummaryItems - Order summary component.\r\n * @param props - The module props.\r\n * @returns JSX Element.\r\n */\r\nconst renderInvoiceSummarylines = (\r\n invoiceSummaryLines: IInvoiceSummaryLines | undefined,\r\n orderSummaryItems: INodeProps,\r\n props: ICartViewProps\r\n): JSX.Element | null => {\r\n if (!invoiceSummaryLines) {\r\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\r\n return null;\r\n }\r\n return (\r\n \r\n {invoiceSummaryLines.invoices}\r\n {invoiceSummaryLines.giftCard}\r\n {invoiceSummaryLines.loyalty}\r\n {invoiceSummaryLines.orderTotal}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render order summary.\r\n * @param orderSummaryLines - Order summary component.\r\n * @param orderSummaryItems - Order summary items component.\r\n * @param props - The module props.\r\n * @returns JSX Element.\r\n */\r\nconst renderOrderSummarylines = (\r\n orderSummaryLines: IOrderSummaryLines | undefined,\r\n orderSummaryItems: INodeProps,\r\n props: ICartViewProps\r\n): JSX.Element | null => {\r\n if (!orderSummaryLines) {\r\n props.context.telemetry.error('OrderSummary content is empty, module wont render');\r\n return null;\r\n }\r\n return (\r\n \r\n {orderSummaryLines.subtotal}\r\n {/* {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null} */}\r\n {orderSummaryLines.shipping}\r\n {orderSummaryLines.otherCharge}\r\n {orderSummaryLines.tax}\r\n {orderSummaryLines.orderTotal}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render error block.\r\n * @param promotions - The module view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\r\n return (\r\n <>\r\n \r\n {promotions.promotionMessage}\r\n {promotions.promotionSeeAllLink}\r\n {promotions.promotionDialog}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render order summary checkout.\r\n * @param props - The module view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderOrderSummaryCheckout = (\r\n props: ICartViewProps & ICartExtensionProps<{}>,\r\n renderClearCart: React.ReactNode\r\n): JSX.Element | undefined => {\r\n return (\r\n \r\n {props.cart?.hasInvoiceLine\r\n ? null\r\n : React.cloneElement(props.promoCode as React.ReactElement, { couponMapping: props.config.couponCodeMap })}\r\n \r\n {props.checkoutAsSignInUserButton}\r\n {props.checkoutAsGuestButton}\r\n \r\n {props.createTemplateFromCartButton}\r\n {renderClearCart}\r\n \r\n );\r\n};\r\n\r\nconst renderReminderMessage = (props: ICartViewProps & ICartExtensionProps<{}>): JSX.Element => {\r\n const {\r\n config: { couponReminderMessage, couponReminderHeading }\r\n } = props;\r\n\r\n if (!couponReminderMessage) {\r\n return <>;\r\n }\r\n return (\r\n \r\n {couponReminderHeading && couponReminderHeading.trim() && (\r\n
{couponReminderHeading}
\r\n )}\r\n \r\n
\r\n // \r\n // \r\n // {props.config.couponReminderHeading}: \r\n // {props.config.couponReminderMessage}\r\n // \r\n // \r\n );\r\n};\r\n\r\n/**\r\n * Renders the clear cart button on the page. Clicking the button triggers the modal to confirm the action.\r\n *\r\n * @param {(e: React.SetStateAction) => void} setClearCartModalActive\r\n * @param {ICartResources} resources\r\n * @return {*} {React.ReactNode}\r\n */\r\nconst _renderClearCart = (\r\n setClearCartModalActive: (e: React.SetStateAction) => void,\r\n resources: ICartResources\r\n): React.ReactNode => (\r\n
\r\n setClearCartModalActive(true)}\r\n >\r\n {resources.clearCartButtonText}\r\n \r\n
\r\n);\r\n\r\n/**\r\n * Modal which is responsible for verifying the clear cart intention. Can either be dismissed or confirmed. If confirmed, will clear the cart.\r\n *\r\n * @param {(e: React.MouseEvent) => void} handleClearCart\r\n * @param {(e: React.SetStateAction) => void} setClearCartModalActive\r\n * @param {() => void} toggle\r\n * @param {boolean} clearCartModalActive\r\n * @param {ICartResources} resources\r\n * @return {*}\r\n */\r\nconst _renderClearCartModal = (\r\n handleClearCart: (e: React.MouseEvent) => void,\r\n setClearCartModalActive: (e: React.SetStateAction) => void,\r\n toggle: () => void,\r\n clearCartModalActive: boolean,\r\n resources: ICartResources\r\n) => {\r\n const clearCartClassName = 'clearcart';\r\n\r\n /**\r\n * Renders the button area\r\n */\r\n const _renderButtonArea = (): React.ReactNode => (\r\n
\r\n \r\n \r\n
\r\n );\r\n\r\n return (\r\n \r\n {resources.clearCartHeader}\r\n {resources.clearConfirmBody}\r\n {_renderButtonArea()}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render order summary checkout button.\r\n * @param props - The module view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderOrderSummaryCheckoutButton = (props: ICartViewProps): JSX.Element | undefined => {\r\n return (\r\n \r\n {props.checkoutAsSignInUserButton}\r\n {props.checkoutAsGuestButton}\r\n \r\n );\r\n};\r\n\r\nconst _renderPrintView = (\r\n isPrintView: boolean,\r\n handlePrintViewChange: (e: React.MouseEventHandler) => void,\r\n printViewLabel: string\r\n): React.ReactNode => (\r\n
\r\n