{"version":3,"file":"static/js/23.e56b4aaf2cf589d0964f.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/gdn-invoices-list/components/invoice-error-component.tsx?70c3","webpack://Msdyn365.Commerce.Online/./src/modules/gdn-invoices-list/components/invoices-filter-component.tsx?742b","webpack://Msdyn365.Commerce.Online/./src/modules/gdn-invoices-list/components/invoices-table/components/invoices-table-header-component.tsx?9171","webpack://Msdyn365.Commerce.Online/./src/modules/gdn-invoices-list/helpers/invoice-status.ts?135b","webpack://Msdyn365.Commerce.Online/./src/modules/gdn-invoices-list/helpers/pay-invoices.ts?48fe","webpack://Msdyn365.Commerce.Online/./src/modules/gdn-invoices-list/components/pay-invoice-component.tsx?152e","webpack://Msdyn365.Commerce.Online/./src/modules/gdn-invoices-list/components/request-invoice-button.tsx?f574","webpack://Msdyn365.Commerce.Online/./src/modules/gdn-invoices-list/components/invoices-table/components/invoices-table-row-component.tsx?3581","webpack://Msdyn365.Commerce.Online/./src/modules/gdn-invoices-list/components/invoices-table/invoices-table-component.tsx?e61f","webpack://Msdyn365.Commerce.Online/./src/modules/gdn-invoices-list/components/make-payment-component.tsx?b306","webpack://Msdyn365.Commerce.Online/./src/modules/gdn-invoices-list/components/request-invoice-modal.tsx?e6f1","webpack://Msdyn365.Commerce.Online/./src/modules/gdn-invoices-list/helpers/invoice-data.ts?7485","webpack://Msdyn365.Commerce.Online/./src/modules/gdn-invoices-list/components/invoices-table/components/invoice-tile.tsx?cc24","webpack://Msdyn365.Commerce.Online/./src/modules/gdn-invoices-list/gdn-invoices-list.tsx?0d0c","webpack://Msdyn365.Commerce.Online/./src/modules/gdn-invoices-list/gdn-invoices-list.view.tsx?9e28","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/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/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/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/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.tsx?5602","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.tsx?96a6","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52","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/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { Alert, Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nexport interface IInvoiceErrorProps extends IComponentProps {\r\n messageHeader?: string;\r\n errorMessage?: string;\r\n otherError?: string;\r\n showError: boolean;\r\n payInvoiceErrorModalOpen: boolean;\r\n\r\n errorDialogHeader: string;\r\n errorDialogBodyErrorTitle: string;\r\n errorDialogBodyErrorDescription: string;\r\n errorDialogFooterGoToCartButtonText: string;\r\n errorDialogFooterCancelButtonText: string;\r\n cartUrl: string;\r\n\r\n setPayInvoiceErrorModalClose(): void;\r\n}\r\n\r\nexport interface IInvoiceErrorComponent extends IComponent {}\r\n\r\nexport const InvoiceError: React.FC = ({\r\n messageHeader,\r\n errorMessage,\r\n otherError,\r\n showError,\r\n payInvoiceErrorModalOpen,\r\n errorDialogHeader,\r\n errorDialogBodyErrorTitle,\r\n errorDialogBodyErrorDescription,\r\n errorDialogFooterGoToCartButtonText,\r\n errorDialogFooterCancelButtonText,\r\n cartUrl,\r\n setPayInvoiceErrorModalClose\r\n}) => {\r\n const errorMessages: (string | undefined)[] = [];\r\n\r\n if (otherError) {\r\n errorMessages.push(otherError);\r\n } else {\r\n errorMessages.push(errorMessage);\r\n }\r\n\r\n const className = 'msc-pay-invoice-error-dialog';\r\n\r\n return (\r\n <>\r\n 0} color='danger' assertive aria-label={messageHeader}>\r\n \r\n {errorMessages.map((message, index) => {\r\n return (\r\n
\r\n {message}\r\n
\r\n );\r\n })}\r\n
\r\n \r\n \r\n {errorDialogHeader}\r\n \r\n \r\n
\r\n
{errorDialogBodyErrorTitle}
\r\n
{errorDialogBodyErrorDescription}
\r\n
\r\n
\r\n \r\n \r\n {errorDialogFooterGoToCartButtonText}\r\n \r\n \r\n {errorDialogFooterCancelButtonText}\r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\n// @ts-expect-error\r\nexport const InvoiceErrorComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n 'InvoiceError',\r\n { component: InvoiceError }\r\n);\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { EnumExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { IInvoiceStatusResources } from '../helpers/invoice-status';\r\n\r\nexport interface IInvoicesFilterResources extends IInvoiceStatusResources {\r\n invoicesFilterShowAll: string;\r\n}\r\n\r\nexport interface IInvoicesFilterProps extends IComponentProps {\r\n className: string;\r\n disabled: boolean;\r\n\r\n resources: IInvoicesFilterResources;\r\n\r\n currentState: InvoicesFilterState;\r\n onFilterStateChanged(state: InvoicesFilterState): void;\r\n}\r\n\r\nexport enum InvoicesFilterState {\r\n ShowAll,\r\n Paid,\r\n // PartiallyPaid,\r\n Unpaid\r\n}\r\n\r\nconst getInvoicesFilterStateResources = (filterState: InvoicesFilterState, resources: IInvoicesFilterResources): string => {\r\n switch (filterState) {\r\n case InvoicesFilterState.ShowAll:\r\n return resources.invoicesFilterShowAll;\r\n case InvoicesFilterState.Paid:\r\n return resources.invoiceStatusPaid;\r\n // case InvoicesFilterState.PartiallyPaid:\r\n // return resources.invoiceStatusPartiallyPaid;\r\n case InvoicesFilterState.Unpaid:\r\n return resources.invoiceStatusUnpaid;\r\n default:\r\n throw new Error('Failed to retrieve resource description for unknown invoices filter state.');\r\n }\r\n};\r\n\r\n/**\r\n * On Click function.\r\n * @param onStateClick -Invoice filter state function.\r\n * @param filterState -Invoice filter state.\r\n * @returns Set Invoice filter state.\r\n */\r\nconst onClickHandler = (onStateClick: (filterState: InvoicesFilterState) => void, filterState: InvoicesFilterState) => () => {\r\n onStateClick(filterState);\r\n};\r\n\r\nconst renderFilterStateItem = (\r\n filterState: InvoicesFilterState,\r\n resources: IInvoicesFilterResources,\r\n className: string,\r\n onStateClick: (filterState: InvoicesFilterState) => void\r\n): React.ReactNode => {\r\n const stateStringRepresentation = InvoicesFilterState[filterState];\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst InvoicesFilter: React.FC = (props: IInvoicesFilterProps) => {\r\n const popoverRef = React.createRef();\r\n const [popoverState, setPopoverState] = React.useState(false);\r\n const togglePopover = React.useCallback(() => {\r\n setPopoverState(!popoverState);\r\n }, [popoverState]);\r\n\r\n const [filterState, setFilterState] = React.useState(props.currentState);\r\n\r\n const onFilterStateClick = (clickedState: InvoicesFilterState) => {\r\n setFilterState(clickedState);\r\n setPopoverState(false);\r\n props.onFilterStateChanged(clickedState);\r\n };\r\n\r\n return (\r\n
\r\n \r\n {getInvoicesFilterStateResources(filterState, props.resources)}\r\n \r\n \r\n {EnumExtensions.getEnumValues(InvoicesFilterState).map(state => {\r\n return renderFilterStateItem(state, props.resources, props.className, onFilterStateClick);\r\n })}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport const InvoicesFilterComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\r\n // @ts-expect-error\r\n IInvoicesFilterProps\r\n>('InvoicesFilterComponent', { component: InvoicesFilter });\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport React from 'react';\r\n\r\nexport interface IInvoicesTableHeaderResources {\r\n invoicesText: string;\r\n invoiceNumberText: string;\r\n invoiceDateMobileText: string;\r\n invoiceDateText: string;\r\n invoiceUsersText: string;\r\n invoiceAmountText: string;\r\n invoiceDueDateText: string;\r\n invoiceAmountDueText: string;\r\n invoiceStatusText: string;\r\n invoiceActionsText: string;\r\n invoiceListSelectAllRadioAriaLabelText: string;\r\n}\r\n\r\nexport interface IInvoicesTableHeaderProps extends IComponentProps {\r\n context: ICoreContext;\r\n className: string;\r\n\r\n isSelectedAll: boolean;\r\n isMobile: boolean;\r\n isAdmin: boolean;\r\n\r\n resources: IInvoicesTableHeaderResources;\r\n\r\n onSelectAll(isSelected: boolean): void;\r\n}\r\n\r\nexport interface IInvoicesTableHeaderComponent extends IComponent {}\r\n\r\nconst getDesktopHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\r\n const { resources } = props;\r\n return (\r\n <>\r\n \r\n \r\n \r\n {resources.invoiceNumberText}\r\n {resources.invoiceDateText}\r\n {resources.invoiceUsersText}\r\n {resources.invoiceAmountText}\r\n {resources.invoiceDueDateText}\r\n {resources.invoiceAmountDueText}\r\n {resources.invoiceStatusText}\r\n {resources.invoiceActionsText}\r\n \r\n );\r\n};\r\n\r\nconst getMobileHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\r\n const { resources } = props;\r\n return (\r\n <>\r\n \r\n \r\n \r\n {resources.invoicesText}\r\n {resources.invoiceDateMobileText}\r\n \r\n {` `}\r\n {/* Actions */}\r\n \r\n );\r\n};\r\n\r\nconst InvoicesTableHeader: React.FC = (props: IInvoicesTableHeaderProps): JSX.Element => {\r\n const rowClassName = `${props.className}__row`;\r\n\r\n const switchCheckedState = () => {\r\n props.onSelectAll(!props.isSelectedAll);\r\n };\r\n\r\n let headerCells: JSX.Element;\r\n if (props.isMobile) {\r\n headerCells = getMobileHeaderCells(props, rowClassName, switchCheckedState);\r\n } else {\r\n headerCells = getDesktopHeaderCells(props, rowClassName, switchCheckedState);\r\n }\r\n\r\n return (\r\n \r\n {headerCells}\r\n \r\n );\r\n};\r\n\r\nexport const InvoicesTableHeaderComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\r\n // @ts-expect-error\r\n IInvoicesTableHeaderComponent\r\n>('InvoicesTableHeaderComponent', { component: InvoicesTableHeader });\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { InvoicePaidStatus } from '@msdyn365-commerce/retail-proxy';\r\n\r\nexport interface IInvoiceStatusResources {\r\n invoiceStatusNone: string;\r\n invoiceStatusUnpaid: string;\r\n invoiceStatusPartiallyPaid: string;\r\n invoiceStatusPaid: string;\r\n}\r\n\r\nexport const getInvoiceStatusText = (resources: IInvoiceStatusResources, invoiceStatus: InvoicePaidStatus | undefined) => {\r\n switch (invoiceStatus) {\r\n case InvoicePaidStatus.None:\r\n return resources.invoiceStatusNone;\r\n\r\n case InvoicePaidStatus.Unpaid:\r\n return resources.invoiceStatusUnpaid;\r\n\r\n case InvoicePaidStatus.PartiallyPaid:\r\n return resources.invoiceStatusPartiallyPaid;\r\n\r\n case InvoicePaidStatus.Paid:\r\n return resources.invoiceStatusPaid;\r\n default:\r\n return '';\r\n }\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { getUrlSync, IActionContext } from '@msdyn365-commerce/core';\r\nimport { getCartState } from '@msdyn365-commerce/global-state';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\n\r\nimport { IInvoiceErrorState } from '../gdn-invoices-list';\r\nimport { IPayableInvoice } from './invoice-data';\r\n\r\nexport type ICartActionFailureReason = 'EMPTYINPUT' | 'CARTACTIONFAILED';\r\nexport interface IAddInvoicesToCartFailureResult {\r\n failureReason: ICartActionFailureReason;\r\n}\r\n\r\nexport const payInvoices = async (\r\n invoices: IPayableInvoice[],\r\n actionContext: IActionContext,\r\n onError: (errorState: IInvoiceErrorState) => void\r\n) => {\r\n const invoicesToAdd: string[] = invoices.filter(invoice => invoice.canBePaid).map(invoice => invoice.id);\r\n\r\n if (!ArrayExtensions.hasElements(invoicesToAdd)) {\r\n onError({ errorMessage: '', errorReason: { failureReason: 'EMPTYINPUT' } });\r\n return;\r\n }\r\n\r\n const cartState = await getCartState(actionContext);\r\n const result = await cartState.addInvoicesToCart({ invoiceIds: invoicesToAdd });\r\n\r\n if (result.status !== 'SUCCESS') {\r\n onError({\r\n errorMessage: '',\r\n errorReason: { failureReason: 'CARTACTIONFAILED' },\r\n otherError: result.errorDetails?.LocalizedMessage,\r\n errorCode: result.errorDetails?.ErrorResourceId\r\n });\r\n return;\r\n }\r\n\r\n const cartUrl = getUrlSync('cart', actionContext);\r\n if (cartUrl) {\r\n window?.location.assign(cartUrl);\r\n }\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport React, { useState } from 'react';\r\n\r\nimport { IPayableInvoice } from '../helpers/invoice-data';\r\nimport { payInvoices } from '../helpers/pay-invoices';\r\nimport { IInvoiceErrorState } from '../gdn-invoices-list';\r\n\r\nexport interface IPayInvoiceData {\r\n invoice: IPayableInvoice;\r\n}\r\n\r\nexport interface IPayInvoiceResources {\r\n payInvoiceButtonText: string;\r\n payInvoiceButtonAriaLabel: string;\r\n}\r\n\r\nexport interface IPayInvoiceProps extends IComponentProps {\r\n context: ICoreContext;\r\n className: string;\r\n reference?: React.RefObject;\r\n resources: IPayInvoiceResources;\r\n disabled?: boolean;\r\n\r\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\r\n}\r\n\r\ninterface IPayInvoiceComponent extends IComponent {}\r\n\r\nconst onClick = async (\r\n _event: React.MouseEvent,\r\n props: IPayInvoiceProps,\r\n setDisabled: (disabled: boolean) => void\r\n): Promise => {\r\n if (props.data.invoice.amount !== undefined) {\r\n if (props.data.invoice.amount < 0) {\r\n // props.onError ? { errorMessage: '', errorReason: { failureReason: 'EMPTYINPUT' } } : _event.preventDefault();\r\n setDisabled(false);\r\n } else {\r\n setDisabled(true);\r\n }\r\n } else {\r\n setDisabled(true);\r\n }\r\n\r\n const propagateError = (errorState: IInvoiceErrorState): void => {\r\n if (props.onError) {\r\n props.onError(errorState, props.reference);\r\n }\r\n setDisabled(false);\r\n };\r\n\r\n await payInvoices([props.data.invoice], props.context.actionContext, propagateError);\r\n};\r\n\r\nconst PayInvoiceComponentActions = {\r\n onClick\r\n};\r\n\r\n/**\r\n * On click handler function.\r\n * @param props -Invoice props.\r\n * @param setDisabled -Set disabled.\r\n * @returns Pay invoice component action.\r\n */\r\nconst onClickHandler = (props: IPayInvoiceProps, setDisabled: React.Dispatch>) => async (\r\n event: React.MouseEvent\r\n) => {\r\n await PayInvoiceComponentActions.onClick(event, props, setDisabled);\r\n};\r\n\r\nconst PayInvoice: React.FC = (props: IPayInvoiceProps): JSX.Element => {\r\n const [disabled, setDisabled] = useState(false);\r\n\r\n return (\r\n \r\n {props.resources.payInvoiceButtonText}\r\n \r\n );\r\n};\r\n\r\n// @ts-expect-error\r\nexport const PayInvoiceComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n 'PayInvoiceComponent',\r\n { component: PayInvoice, ...PayInvoiceComponentActions }\r\n);\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\ninterface IRequestInvoiceButtonProps {\r\n innerReference?: React.RefObject;\r\n className: string;\r\n requestInvoiceButtonLabel: string;\r\n onClicked(): void;\r\n}\r\n\r\nexport const RequestInvoiceButton: React.FC = ({\r\n className,\r\n onClicked,\r\n requestInvoiceButtonLabel,\r\n innerReference\r\n}) => {\r\n return (\r\n \r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport MsDyn365, {\r\n IComponent,\r\n IComponentProps,\r\n ICoreContext,\r\n IDateFormatOptions,\r\n isOboRequest,\r\n msdyn365Commerce\r\n} from '@msdyn365-commerce/core';\r\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions, getInvoiceDetailsPageUrlSync, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Button, format } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport React, { useState } from 'react';\r\n\r\nimport { InvoiceModel } from '../../../helpers/invoice-data';\r\nimport { getInvoiceStatusText, IInvoiceStatusResources } from '../../../helpers/invoice-status';\r\nimport { IInvoiceErrorState } from '../../../gdn-invoices-list';\r\nimport { IPayInvoiceResources, PayInvoiceComponent } from '../../pay-invoice-component';\r\nimport { RequestInvoiceButton } from '../../request-invoice-button';\r\nimport { IInvoicePaymentScheduleEntity } from '../../../../../actions/DataServiceEntities.g';\r\n\r\ninterface IInvoicesTableRowData {\r\n invoice: InvoiceModel;\r\n index: number;\r\n customer: Customer;\r\n}\r\n\r\nexport interface IInvoicesTableRowResources extends IInvoiceStatusResources, IPayInvoiceResources {\r\n invoiceCurrentUser: string;\r\n invoiceViewDetailsButtonText: string;\r\n invoiceViewDetailsButtonAriaLabel: string;\r\n invoiceActionsButtonTextAriaLabel?: string;\r\n invoiceActionsButtonIsOnBehalfOfTextAriaLabel?: string;\r\n invoiceRequestButtonLabel: string;\r\n invoiceListSelectRadioAriaLabelText: string;\r\n}\r\n\r\nexport interface IInvoicesTableRowProps extends IComponentProps {\r\n context: ICoreContext;\r\n className: string;\r\n isMobile: boolean;\r\n invoiceReferences?: React.RefObject;\r\n payInvoiceReferences?: React.RefObject;\r\n resources: IInvoicesTableRowResources;\r\n invoiceBreakdown: IInvoicePaymentScheduleEntity[];\r\n\r\n onChange(): void;\r\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\r\n onRequestInvoice?(invoice: InvoiceModel, requestInvoiceButtonReference: React.RefObject): void;\r\n}\r\n\r\nexport interface IInvoicesTableRowComponent extends IComponent {}\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 formatDate = (context: ICoreContext, date: Date | undefined) => {\r\n if (date === undefined) {\r\n return '';\r\n }\r\n\r\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\r\n return context.cultureFormatter.formatDate(date, dateOptions);\r\n};\r\n\r\n/**\r\n * Request specific invoice function.\r\n * @param props -Invoice table row props.\r\n * @param requestInvoiceButtonReference -Reference button.\r\n * @returns Call Request Invoice.\r\n */\r\nconst onRequestSpecificInvoice = (\r\n props: IInvoicesTableRowProps,\r\n requestInvoiceButtonReference: React.RefObject\r\n) => () => {\r\n props.onRequestInvoice!(props.data.invoice, requestInvoiceButtonReference);\r\n};\r\n\r\nconst getDesktopRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\r\n const {\r\n data: { invoice, customer }\r\n } = props;\r\n\r\n const isCurrentUser =\r\n !StringExtensions.isNullOrWhitespace(customer.AccountNumber) && customer.AccountNumber === invoice.customerAccountNumber;\r\n\r\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\r\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\r\n const breakdownRows = props.invoiceBreakdown;\r\n if (ArrayExtensions.hasElements(breakdownRows)) {\r\n return (\r\n <>\r\n {breakdownRows.map((invoiceBreakdown, idx) => (\r\n \r\n \r\n \r\n \r\n {invoice.id}\r\n \r\n \r\n \r\n {formatDate(props.context, invoice.invoiceDate)}\r\n \r\n \r\n {invoice.customerName}\r\n {isCurrentUser ? {props.resources.invoiceCurrentUser} : null}\r\n \r\n {formatAmount(props.context, invoice.amount, invoice.currencyCode)}\r\n \r\n {formatDate(props.context, invoiceBreakdown.DueDate)}\r\n \r\n {formatAmount(props.context, invoiceBreakdown.AmountCur, invoice.currencyCode)}\r\n \r\n {getInvoiceStatusText(props.resources, invoice.status)}\r\n \r\n {extraActionsPopup(props)}\r\n \r\n ))}\r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n {checkIfCreditNote(invoice.amount) && (\r\n \r\n )}\r\n \r\n \r\n \r\n {invoice.id}\r\n \r\n \r\n \r\n {formatDate(props.context, invoice.invoiceDate)}\r\n \r\n \r\n {invoice.customerName}\r\n {isCurrentUser ? {props.resources.invoiceCurrentUser} : null}\r\n \r\n {formatAmount(props.context, invoice.amount, invoice.currencyCode)}\r\n \r\n {formatDate(props.context, invoice.dueDate)}\r\n \r\n {formatAmount(props.context, invoice.amountDue, invoice.currencyCode)}\r\n \r\n {getInvoiceStatusText(props.resources, invoice.status)}\r\n \r\n {extraActionsPopup(props)}\r\n \r\n );\r\n};\r\n\r\nlet setShowPreviousActions: React.Dispatch> | undefined;\r\n\r\n/**\r\n * On Click view details function.\r\n * @param linkToInvoiceDetails -Link to invoice details.\r\n * @returns Go to invoice details.\r\n */\r\nconst onClickViewDetails = (linkToInvoiceDetails: string) => () => {\r\n if (MsDyn365.isBrowser) {\r\n window.location.href = linkToInvoiceDetails;\r\n }\r\n return;\r\n};\r\n\r\n/**\r\n * Toggle function.\r\n * @param isShowActions -Link to invoice details.\r\n * @param setShowActions -Link to invoice details.\r\n * @returns Go to invoice details.\r\n */\r\nconst toggle = (isShowActions: boolean, setShowActions: React.Dispatch>) => () => {\r\n const shouldShowActions = !isShowActions;\r\n if (shouldShowActions) {\r\n if (setShowPreviousActions) {\r\n setShowPreviousActions(false);\r\n }\r\n setShowActions(shouldShowActions);\r\n setShowPreviousActions = setShowActions;\r\n } else {\r\n setShowPreviousActions = undefined;\r\n setShowActions(shouldShowActions);\r\n }\r\n};\r\n\r\nconst extraActionsPopup = (props: IInvoicesTableRowProps): JSX.Element | null => {\r\n const {\r\n resources: {\r\n invoiceViewDetailsButtonAriaLabel,\r\n invoiceViewDetailsButtonText,\r\n invoiceActionsButtonTextAriaLabel,\r\n invoiceActionsButtonIsOnBehalfOfTextAriaLabel\r\n },\r\n data: { index, invoice }\r\n } = props;\r\n\r\n const [showActions, setShowActions] = useState(false);\r\n const isOnBehalfOfRequest = isOboRequest(props.context.request);\r\n\r\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\r\n\r\n const className = `${props.className}__extra-actions-cell`;\r\n const actionsContainerClassName = `${className}__actions-container`;\r\n const payInvoiceClassName = `${actionsContainerClassName}__pay-invoice`;\r\n return (\r\n
\r\n \r\n {showActions && !isOnBehalfOfRequest && (\r\n
\r\n \r\n {invoiceViewDetailsButtonText}\r\n \r\n {checkIfCreditNote(invoice.amount) && (\r\n \r\n )}\r\n \r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nconst checkIfCreditNote = (amount: number | undefined) => amount && amount > 0;\r\n\r\nconst getMobileRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\r\n const {\r\n data: { invoice }\r\n } = props;\r\n\r\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\r\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\r\n return (\r\n <>\r\n \r\n {checkIfCreditNote(invoice.amount) && (\r\n \r\n )}\r\n \r\n \r\n \r\n {invoice.id}\r\n \r\n
\r\n {invoice.customerName}\r\n \r\n \r\n {formatDate(props.context, invoice.dueDate)}\r\n
\r\n {getInvoiceStatusText(props.resources, invoice.status)}\r\n \r\n {extraActionsPopup(props)}\r\n \r\n );\r\n};\r\n\r\nconst InvoicesTableRow: React.FC = (props: IInvoicesTableRowProps): JSX.Element => {\r\n const {\r\n data: { invoice }\r\n } = props;\r\n\r\n const onSelectLine = () => {\r\n invoice.isSelected = !invoice.isSelected;\r\n props.onChange();\r\n };\r\n\r\n if (props.isMobile) {\r\n return getMobileRowCells(props, onSelectLine);\r\n } else {\r\n return getDesktopRowCells(props, onSelectLine);\r\n }\r\n\r\n // return {rowCells}\r\n};\r\n\r\nexport const InvoicesTableRowComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\r\n // @ts-expect-error\r\n IInvoicesTableRowComponent\r\n>('InvoicesTableRowComponent', { component: InvoicesTableRow });\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport React, { useState } from 'react';\r\n\r\nimport { InvoiceModel } from '../../helpers/invoice-data';\r\nimport { IInvoiceErrorState } from '../../gdn-invoices-list';\r\nimport { IInvoicesTableHeaderResources, InvoicesTableHeaderComponent } from './components/invoices-table-header-component';\r\nimport { IInvoicesTableRowResources, InvoicesTableRowComponent } from './components/invoices-table-row-component';\r\nimport { IInvoicePaymentScheduleEntity } from '../../../../actions/DataServiceEntities.g';\r\n\r\ninterface IInvoicesTableData {\r\n invoices: InvoiceModel[];\r\n customer: Customer;\r\n}\r\n\r\nexport interface IInvoicesTableResources extends IInvoicesTableHeaderResources, IInvoicesTableRowResources {}\r\n\r\nexport interface IInvoicesTableProps extends IComponentProps {\r\n context: ICoreContext;\r\n className: string;\r\n invoiceButtonReferences?: React.RefObject[];\r\n payInvoiceButtonReferences?: React.RefObject[];\r\n resources: IInvoicesTableResources;\r\n invoiceBreakdown: IInvoicePaymentScheduleEntity[];\r\n onChange(): void;\r\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\r\n onRequestInvoice(invoice: InvoiceModel, requestInvoiceButtonReference: React.RefObject): void;\r\n}\r\n\r\nexport interface IInvoicesTableComponent extends IComponent {}\r\n\r\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\nconst getViewport = (context: ICoreContext): GridSize => {\r\n // Always render in mobile viewport on a mobile device\r\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n\r\n if (window?.innerWidth) {\r\n const gridSettings = context.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n }\r\n return 'xl';\r\n }\r\n }\r\n\r\n return 'xs';\r\n};\r\n\r\nconst isMobileView = (context: ICoreContext) => {\r\n const viewport = getViewport(context);\r\n return viewport === 'xs' || viewport === 'sm';\r\n};\r\n\r\n/**\r\n * On select all function.\r\n * @param props -Invoice table props.\r\n * @returns On change.\r\n */\r\nconst onSelectAllHandler = (props: IInvoicesTableProps) => (isSelected: boolean) => {\r\n props.data.invoices.forEach(invoice => {\r\n if (invoice.amount && invoice.amount > 0) {\r\n invoice.isSelected = isSelected;\r\n }\r\n });\r\n props.onChange();\r\n};\r\n\r\nconst InvoicesTable: React.FC = (props: IInvoicesTableProps): JSX.Element => {\r\n const [isMobile, setIsMobile] = useState(isMobileView(props.context));\r\n\r\n const updateViewport = () => {\r\n setIsMobile(isMobileView(props.context));\r\n };\r\n\r\n if (typeof window !== undefined && window.addEventListener) {\r\n window.addEventListener('resize', updateViewport);\r\n }\r\n const rowClassName = `${props.className}__row`;\r\n const headerClassName = `${props.className}__header`;\r\n\r\n return (\r\n \r\n invoice.isSelected)}\r\n isMobile={isMobile}\r\n isAdmin={props.data.customer.IsB2bAdmin || false}\r\n onSelectAll={onSelectAllHandler(props)}\r\n resources={props.resources}\r\n data={{}}\r\n />\r\n {props.data.invoices.map((invoice, index: number) => {\r\n const matchingBreakdown = props.invoiceBreakdown.filter(inv => inv.Invoice === invoice.id);\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n );\r\n};\r\n\r\nexport const InvoicesTableComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\r\n // @ts-expect-error\r\n IInvoicesTableComponent\r\n>('InvoicesTableComponent', { component: InvoicesTable });\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { IComponent, IComponentProps, ICoreContext, ITelemetry, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Button, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport React, { useState } from 'react';\r\n\r\nimport { InvoiceModel } from '../helpers/invoice-data';\r\nimport { payInvoices } from '../helpers/pay-invoices';\r\nimport { IInvoiceErrorState } from '../gdn-invoices-list';\r\n\r\ninterface IMakePaymentData {\r\n invoices: InvoiceModel[];\r\n}\r\n\r\nexport interface IMakePaymentResources {\r\n makePaymentButtonText: string;\r\n makePaymentButtonAriaLabel: string;\r\n}\r\n\r\nexport interface IMakePaymentProps extends IComponentProps {\r\n context: ICoreContext;\r\n itemKey?: string;\r\n telemetry: ITelemetry;\r\n moduleId: string;\r\n moduleTypeName: string;\r\n telemetryContent?: ITelemetryContent;\r\n navigationUrl?: string;\r\n buttonReferences?: React.RefObject;\r\n resources: IMakePaymentResources;\r\n disabled?: boolean;\r\n\r\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\r\n}\r\n\r\nexport interface IMakePaymentComponent extends IComponent {}\r\n\r\nconst onClick = async (\r\n _event: React.MouseEvent,\r\n props: IMakePaymentProps,\r\n setDisabled: (disabled: boolean) => void\r\n): Promise => {\r\n setDisabled(true);\r\n\r\n const propagateError = (errorState: IInvoiceErrorState): void => {\r\n if (props.onError) {\r\n props.onError(errorState, props.buttonReferences);\r\n }\r\n setDisabled(false);\r\n };\r\n\r\n await payInvoices(props.data.invoices, props.context.actionContext, propagateError);\r\n};\r\n\r\nconst MakePaymentComponentActions = {\r\n onClick\r\n};\r\n\r\n/**\r\n * On Click function.\r\n * @param input -Make payment props.\r\n * @param setDisabled -Set Disabled.\r\n * @returns Make payment component on click.\r\n */\r\nconst onClickHandler = (input: IMakePaymentProps, setDisabled: React.Dispatch>) => async (\r\n event: React.MouseEvent\r\n) => {\r\n await MakePaymentComponentActions.onClick(event, input, setDisabled);\r\n};\r\n\r\nconst MakePayment: React.FC = (input: IMakePaymentProps): JSX.Element => {\r\n const {\r\n data: { invoices }\r\n } = input;\r\n const hasInvoices = ArrayExtensions.hasElements(invoices.filter(invoice => invoice.canBePaid));\r\n const [disabled, setDisabled] = useState(false);\r\n\r\n return (\r\n \r\n {input.resources.makePaymentButtonText}\r\n \r\n );\r\n};\r\n\r\n// @ts-expect-error\r\nexport const MakePaymentComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n 'MakePayment',\r\n { component: MakePayment }\r\n);\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\n\r\n/* ---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { InvoiceModel } from '../helpers/invoice-data';\r\nimport { IGdnInvoicesListResources } from '../gdn-invoices-list.props.autogenerated';\r\n\r\ninterface IRequestInvoiceModalProps {\r\n className: string;\r\n email: string;\r\n isModalOpen: boolean;\r\n submitRequestLabel: string;\r\n modalHeaderLabel: string;\r\n sendToEmailLabel: string;\r\n cancelLabel: string;\r\n searchPlaceholderLabel: string;\r\n invoices: InvoiceModel[];\r\n invoicesFoundString: string;\r\n singleInvoiceFoundString: string;\r\n searchButtonAltText: string;\r\n resources: IGdnInvoicesListResources;\r\n toggle(): void;\r\n onSubmitRequest(invoiceId: string): void;\r\n}\r\n\r\n/**\r\n * On submit request click function.\r\n * @param selectedInvoiceIndex -Check is busy.\r\n * @param onClosing -On closing function.\r\n * @param filteredInvoices -Invoice modal.\r\n * @param onSubmitRequest -On submit request function.\r\n * @returns Call on submit request.\r\n */\r\nconst onSubmitRequestClick = (\r\n onClosing: () => void,\r\n filteredInvoices: InvoiceModel[],\r\n onSubmitRequest: (invoiceId: string) => void,\r\n checkboxRef: React.MutableRefObject\r\n) => () => {\r\n const defaultIndex = 0;\r\n let closingFlag: number = 0;\r\n\r\n filteredInvoices.map((invoice, index) => {\r\n const inputInvoice = checkboxRef.current[Number(index)] as React.RefObject;\r\n if (inputInvoice.current?.checked === true && index >= defaultIndex) {\r\n onSubmitRequest(invoice.id);\r\n closingFlag = closingFlag + 1;\r\n }\r\n });\r\n if (closingFlag <= filteredInvoices.length) {\r\n onClosing();\r\n }\r\n};\r\n\r\n/**\r\n * On search input change function.\r\n * @param setSearchInput -Set search input.\r\n * @returns Set search input function.\r\n */\r\nconst searchInputChangedHandler = (setSearchInput: React.Dispatch>) => (\r\n event: React.ChangeEvent\r\n) => {\r\n setSearchInput(event.target.value);\r\n};\r\n\r\n/**\r\n * Search entered handler.\r\n * @param invoices -InvoiceModel.\r\n * @param searchInput -String.\r\n * @param setFilteredInvoices -InvoiceModel action.\r\n * @param filteredInvoices -Filtered Invoices.\r\n * @param setSelectedInvoiceIndex -Selected Invoice Index.\r\n * @param setShouldShowSearchResults -Show search result action.\r\n * @param setInvoiceOptions -Invoice options action.\r\n * @param selectedInvoiceIndex -Selected invoice index.\r\n * @param className -String.\r\n * @returns Set invoice options.\r\n */\r\nconst searchEnteredHandler = (\r\n invoices: InvoiceModel[],\r\n searchInput: string,\r\n setFilteredInvoices: React.Dispatch>,\r\n filteredInvoices: InvoiceModel[],\r\n setSelectedInvoiceIndex: React.Dispatch>,\r\n setShouldShowSearchResults: React.Dispatch>,\r\n setInvoiceOptions: React.Dispatch>,\r\n selectedInvoiceIndex: number,\r\n className: string,\r\n checkboxRef: React.MutableRefObject\r\n) => () => {\r\n let updatedInvoices = filteredInvoices;\r\n if (!StringExtensions.isNullOrEmpty(searchInput)) {\r\n updatedInvoices = invoices.filter(invoice => invoice.id.toLocaleUpperCase().includes(searchInput.toLocaleUpperCase()));\r\n } else {\r\n updatedInvoices = invoices;\r\n }\r\n\r\n if (ArrayExtensions.hasElements(updatedInvoices)) {\r\n setFilteredInvoices(updatedInvoices);\r\n setSelectedInvoiceIndex(0);\r\n } else {\r\n setFilteredInvoices(updatedInvoices);\r\n setSelectedInvoiceIndex(-1);\r\n }\r\n setShouldShowSearchResults(true);\r\n\r\n setInvoiceOptions(\r\n renderInvoiceOptions(\r\n StringExtensions.isNullOrEmpty(searchInput) ? invoices : updatedInvoices,\r\n setSelectedInvoiceIndex,\r\n className,\r\n checkboxRef\r\n )\r\n );\r\n};\r\n\r\n/**\r\n * On cancel function.\r\n * @param onClosing -Closing function.\r\n * @param toggle -Toggle Function.\r\n * @returns Toggle function.\r\n */\r\nconst onCancelHandler = (onClosing: () => void, toggle: () => void) => () => {\r\n onClosing();\r\n toggle();\r\n};\r\n\r\n/**\r\n * On invoice select.\r\n * @param setSelectedInvoiceIndex -Set Selected Invoice Index.\r\n * @param index -Number.\r\n * @returns Set Selected Invoice Index.\r\n */\r\nconst onInvoiceSelectHandler = (setSelectedInvoiceIndex: (newIndex: number) => void, index: number) => () => {\r\n setSelectedInvoiceIndex(index);\r\n};\r\n\r\nconst renderInvoiceOptions = (\r\n filteredInvoices: InvoiceModel[],\r\n setSelectedInvoiceIndex: (newIndex: number) => void,\r\n className: string,\r\n checkboxRef: React.MutableRefObject\r\n) => {\r\n checkboxRef.current = filteredInvoices.map((_invoice, i) => checkboxRef.current[Number(i)] ?? React.createRef());\r\n return (\r\n
\r\n {filteredInvoices.map((invoice, index) => {\r\n const onInvoiceSelect = onInvoiceSelectHandler(setSelectedInvoiceIndex, index);\r\n\r\n const checkboxId = `invoice__${invoice.id}`;\r\n const checkboxName = `invoiceSelect__${invoice.id}`;\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n })}\r\n
\r\n );\r\n};\r\n\r\nexport const RequestInvoiceModal: React.FC = ({\r\n className,\r\n email,\r\n isModalOpen,\r\n toggle,\r\n modalHeaderLabel,\r\n sendToEmailLabel,\r\n submitRequestLabel,\r\n cancelLabel,\r\n onSubmitRequest,\r\n invoices,\r\n searchPlaceholderLabel,\r\n invoicesFoundString,\r\n singleInvoiceFoundString,\r\n searchButtonAltText,\r\n resources\r\n}) => {\r\n const [selectedInvoiceIndex, setSelectedInvoiceIndex] = React.useState(-1);\r\n const [filteredInvoices, setFilteredInvoices] = React.useState(invoices);\r\n const [searchInput, setSearchInput] = React.useState('');\r\n const [shouldShowSearchResults, setShouldShowSearchResults] = React.useState(false);\r\n const focusDelay = 110;\r\n const checkboxRef = React.useRef([]);\r\n const invoiceOptionsData = renderInvoiceOptions(filteredInvoices, setSelectedInvoiceIndex, className, checkboxRef);\r\n const [invoiceOptions, setInvoiceOptions] = React.useState(invoiceOptionsData);\r\n const focusElement = React.useRef(null);\r\n React.useEffect(() => {\r\n if (isModalOpen && focusElement.current) {\r\n setTimeout(() => {\r\n focusElement.current?.focus();\r\n }, focusDelay);\r\n }\r\n }, [isModalOpen]);\r\n\r\n /**\r\n * Sets the filtered invoices to the ones that were selected on the main screen.\r\n */\r\n const setFilteredInvoicesToSelectedInvoices = () => {\r\n setSelectedInvoiceIndex(-1);\r\n const selectedInvoices = invoices.filter(invoice => invoice.isSelected);\r\n if (ArrayExtensions.hasElements(selectedInvoices)) {\r\n setFilteredInvoices(selectedInvoices);\r\n\r\n // If only one invoice selected, auto select it\r\n if (selectedInvoices.length === 1) {\r\n setSelectedInvoiceIndex(0);\r\n }\r\n\r\n setInvoiceOptions(renderInvoiceOptions(selectedInvoices, setSelectedInvoiceIndex, className, checkboxRef));\r\n } else {\r\n setFilteredInvoices(invoices);\r\n setInvoiceOptions(renderInvoiceOptions(invoices, setSelectedInvoiceIndex, className, checkboxRef));\r\n }\r\n };\r\n\r\n const searchEntered = searchEnteredHandler(\r\n invoices,\r\n searchInput,\r\n setFilteredInvoices,\r\n filteredInvoices,\r\n setSelectedInvoiceIndex,\r\n setShouldShowSearchResults,\r\n setInvoiceOptions,\r\n selectedInvoiceIndex,\r\n className,\r\n checkboxRef\r\n );\r\n\r\n const onClosing = () => {\r\n setSelectedInvoiceIndex(-1);\r\n setFilteredInvoices(invoices);\r\n setSearchInput('');\r\n setShouldShowSearchResults(false);\r\n };\r\n\r\n /**\r\n * Sets the invoices that are possible to select when the dialog is opened.\r\n */\r\n const onOpened = () => {\r\n setSearchInput('');\r\n setFilteredInvoicesToSelectedInvoices();\r\n };\r\n\r\n const searchResultString = filteredInvoices.length === 1 ? singleInvoiceFoundString : invoicesFoundString;\r\n const invoicesFoundReplaceIndex = searchResultString.indexOf('{0}');\r\n\r\n return (\r\n \r\n \r\n {modalHeaderLabel}\r\n \r\n \r\n
\r\n \r\n
\r\n {email}\r\n
\r\n
\r\n {shouldShowSearchResults && (\r\n
\r\n {searchResultString.substring(0, invoicesFoundReplaceIndex)}\r\n {filteredInvoices.length}\r\n {searchResultString.substring(invoicesFoundReplaceIndex + 3)}\r\n
\r\n )}\r\n
\r\n \r\n \r\n
\r\n {invoiceOptions}\r\n
\r\n
\r\n
\r\n \r\n \r\n {submitRequestLabel}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { InvoicePaidStatus, InvoiceType, OrderInvoice } from '@msdyn365-commerce/retail-proxy';\r\n\r\nexport interface IPayableInvoice {\r\n readonly amount?: number;\r\n readonly id: string;\r\n readonly canBePaid: boolean;\r\n}\r\n\r\n/**\r\n * Represents invoice data model.\r\n */\r\nexport class InvoiceModel implements IPayableInvoice {\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 amount?: number;\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 currencyCode?: string;\r\n\r\n public isSelected: boolean;\r\n\r\n public invoiceTypeValue: InvoiceType;\r\n\r\n public constructor(invoice: OrderInvoice) {\r\n this.id = invoice.Id || '';\r\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\r\n this.customerAccountNumber = invoice.CustomerAccountNumber;\r\n this.customerName = invoice.CustomerName;\r\n this.amount = invoice.TotalAmount;\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.currencyCode = invoice.CurrencyCode;\r\n this.invoiceTypeValue = (invoice.InvoiceTypeValue as InvoiceType) || InvoiceType.None;\r\n this.isSelected = false;\r\n }\r\n\r\n public get canBePaid(): boolean {\r\n return this.status !== InvoicePaidStatus.Paid;\r\n }\r\n}\r\n","import React from 'react';\r\nimport { InvoiceModel } from '../../../helpers';\r\nimport { IInvoicePaymentScheduleEntity } from '../../../../../actions/DataServiceEntities.g';\r\nimport { ICultureInfoFormatter } from '@msdyn365-commerce/core';\r\nimport { getInvoiceDetailsPageUrlSync } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getInvoiceStatusText } from '../../../helpers/invoice-status';\r\nimport { IGdnInvoicesListResources } from '../../../gdn-invoices-list.props.autogenerated';\r\nimport { InvoicePaidStatus, InvoiceType } from '@msdyn365-commerce/retail-proxy';\r\n\r\ninterface InvoiceTileProps {\r\n invoice: InvoiceModel;\r\n invoiceBreakdownList: IInvoicePaymentScheduleEntity[];\r\n cultureFormatter: ICultureInfoFormatter;\r\n addInvoiceToCart: (invoiceId: string, amount: number) => void;\r\n actionContext: any;\r\n resources: IGdnInvoicesListResources;\r\n cart?: any;\r\n}\r\n\r\nexport const InvoiceTile: React.FC = (props: InvoiceTileProps) => {\r\n const {\r\n invoice,\r\n invoiceBreakdownList,\r\n cultureFormatter: { formatCurrency, formatDate },\r\n addInvoiceToCart,\r\n actionContext,\r\n resources,\r\n cart\r\n } = props;\r\n if (invoice.id === 'INV00421359') {\r\n console.log('props', props);\r\n }\r\n\r\n const breakdown = invoiceBreakdownList.filter(inv => inv.Invoice === invoice.id);\r\n const calculateTotalAmount = (rows: boolean[]): number => {\r\n return (\r\n rows.reduce((total, isSelected, idx) => {\r\n return isSelected ? total + (breakdown[idx].AmountCur || 0) : total;\r\n }, 0) - getAllowableFreightAmount()\r\n );\r\n };\r\n\r\n const getEarliestInvoiceDue = () =>\r\n invoiceBreakdownList.reduce((earliest, current) => {\r\n return earliest.DueDate && current.DueDate && new Date(current.DueDate) < new Date(earliest.DueDate) ? current : earliest;\r\n }, invoiceBreakdownList[0]);\r\n\r\n const isPastDue = (date?: Date) => {\r\n const dateToCompare = date || getEarliestInvoiceDue()?.DueDate;\r\n return dateToCompare && new Date(dateToCompare) < new Date();\r\n };\r\n const getAllowableFreightAmount = (): number => {\r\n const charge = breakdown.find(b => (b.AllowableFreightCharge || 0) > 0)?.AllowableFreightCharge;\r\n if (!charge) {\r\n return 0;\r\n }\r\n if (isPastDue()) {\r\n return 0;\r\n }\r\n const dateToCompare = getEarliestInvoiceDue()?.DueDate;\r\n if (dateToCompare) {\r\n const isBefore15th = new Date() <= new Date(dateToCompare.getFullYear(), dateToCompare?.getMonth(), 15);\r\n return isBefore15th ? charge : 0;\r\n }\r\n return 0;\r\n };\r\n\r\n const [isCreditNote, setIsCreditNote] = React.useState(false);\r\n const [selectAll, setSelectAll] = React.useState(false);\r\n const [selectedRows, setSelectedRows] = React.useState(() => breakdown.map(br => isPastDue(br.DueDate) ?? false));\r\n const [totalAmount, setTotalAmount] = React.useState(\r\n calculateTotalAmount(selectedRows) || (invoice.amountDue || 0) - getAllowableFreightAmount() || 0\r\n );\r\n const [displayedAmount, setDisplayedAmount] = React.useState(totalAmount?.toFixed(2));\r\n\r\n const isInvoiceInCart = React.useMemo(() => {\r\n return cart.CartLines.some((line: any) => line.InvoiceId === invoice.id);\r\n }, [cart, invoice.id]);\r\n\r\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(invoice.id, actionContext);\r\n\r\n const handleSelectAll = (event: React.ChangeEvent) => {\r\n const checked = event.target.checked;\r\n setSelectAll(checked);\r\n const updatedRows = Array(breakdown.length).fill(checked);\r\n setSelectedRows(updatedRows);\r\n setTotalAmount(calculateTotalAmount(updatedRows));\r\n setDisplayedAmount(calculateTotalAmount(updatedRows).toFixed(2));\r\n };\r\n\r\n const handleRowSelect = (index: number) => {\r\n const updatedRows = [...selectedRows];\r\n updatedRows[index] = !updatedRows[index];\r\n setSelectedRows(updatedRows);\r\n\r\n const allSelected = updatedRows.every(Boolean);\r\n const noneSelected = updatedRows.every(checked => !checked);\r\n setSelectAll(allSelected ? true : noneSelected ? false : allSelected);\r\n\r\n setTotalAmount(calculateTotalAmount(updatedRows));\r\n setDisplayedAmount(calculateTotalAmount(updatedRows).toFixed(2));\r\n };\r\n\r\n React.useEffect(() => {\r\n setIsCreditNote(invoice.invoiceTypeValue === InvoiceType.CreditNoteInvoice);\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n setSelectedRows(prevSelectedRows => {\r\n const newSelections = breakdown.map(br => isPastDue(br.DueDate) ?? false);\r\n return [...prevSelectedRows, ...newSelections.slice(prevSelectedRows.length)];\r\n });\r\n }, [invoiceBreakdownList]);\r\n\r\n const discount = getAllowableFreightAmount();\r\n const invoiceBreakdown = invoiceBreakdownList.find(item => item.Invoice === invoice.id);\r\n const newInvoiceBreakdownList = invoiceBreakdownList.filter(item => item.Invoice === invoice.id);\r\n let allowableFreight = 0;\r\n if (newInvoiceBreakdownList.length > 1) {\r\n allowableFreight = newInvoiceBreakdownList.find(item => (item.AllowableFreightCharge || 0) > 0)?.AllowableFreightCharge || 0;\r\n if (allowableFreight > 0) {\r\n invoiceBreakdown && (invoiceBreakdown.AllowableFreightCharge = allowableFreight);\r\n }\r\n }\r\n const handleReset = () => {\r\n const selectedTotal = calculateTotalAmount(selectedRows);\r\n setTotalAmount(selectedTotal);\r\n setDisplayedAmount(selectedTotal.toFixed(2));\r\n };\r\n\r\n const handleButtonDisabled = () => {\r\n return isInvoiceInCart || invoice.amount! < 0 || invoice.id.startsWith('FTC') || invoice.id.startsWith('CN') || totalAmount === 0;\r\n };\r\n\r\n const shouldDisplayMessage = () => {\r\n return isInvoiceInCart;\r\n };\r\n\r\n const handleBlur = (value: string) => {\r\n const num = parseFloat(value.replace('$', ''));\r\n const cleanNum = isNaN(num) ? '0.00' : num.toFixed(2);\r\n setDisplayedAmount(cleanNum);\r\n };\r\n\r\n const InvoicePaidStatusMap = {\r\n [InvoicePaidStatus.None]: 'None',\r\n [InvoicePaidStatus.Unpaid]: 'Not Paid',\r\n [InvoicePaidStatus.PartiallyPaid]: 'Not Paid',\r\n [InvoicePaidStatus.Paid]: 'Paid'\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {invoice.id}\r\n \r\n
\r\n
\r\n Invoice Date: {formatDate(invoice.invoiceDate!)}\r\n
\r\n
\r\n Sales Order: {invoiceBreakdown?.SalesId}\r\n
\r\n
\r\n
\r\n
\r\n Amount: \r\n {formatCurrency(invoice.amount || 0, invoice.currencyCode)}\r\n
\r\n {!isCreditNote && (\r\n <>\r\n
\r\n Terms: \r\n {invoiceBreakdown?.Description}\r\n
\r\n
\r\n PO: \r\n {invoiceBreakdown?.PurchaseOrder}\r\n
\r\n \r\n )}\r\n
\r\n
\r\n {!isCreditNote && (\r\n
\r\n
\r\n {invoice.status !== 3 && isPastDue() ? (\r\n Past Due\r\n ) : (\r\n \r\n {getInvoiceStatusText(resources, invoice.status)}\r\n \r\n )}\r\n
\r\n {invoice.status !== 3 && (\r\n
\r\n Next Payment Due: {formatDate(invoice.dueDate!)}\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n {invoice.status !== 3 && !isCreditNote &&
}\r\n\r\n {/* ticket 8686 */}\r\n {invoice.status === 3 ? (\r\n
\r\n
\r\n PAID: ${invoice.amount}\r\n
\r\n
\r\n ) : (\r\n
\r\n {discount ? (\r\n
\r\n Discount:{' '}\r\n {formatCurrency(discount, invoice.currencyCode)}\r\n
\r\n ) : null}\r\n {/* {discount > 0 ? (\r\n

\r\n Discount Amount: \r\n {formatCurrency(discount, invoice.currencyCode)}\r\n

\r\n ) : null} */}\r\n
\r\n Amount Due: \r\n {formatCurrency(invoice.amountDue || 0, invoice.currencyCode)}\r\n
\r\n {breakdown.length > 0 ? (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {breakdown.map((br, idx) => {\r\n const allowableFreightCharge = getAllowableFreightAmount();\r\n const allowableFreightChargeActual = br.AllowableFreightCharge || 0;\r\n const earliestInvoiceDate = getEarliestInvoiceDue()?.DueDate;\r\n const allowableFreightDueDate =\r\n earliestInvoiceDate &&\r\n new Date(earliestInvoiceDate.getFullYear(), earliestInvoiceDate?.getMonth(), 15);\r\n return (\r\n \r\n {allowableFreightCharge && allowableFreightChargeActual ? (\r\n \r\n \r\n \r\n {allowableFreightDueDate && (\r\n \r\n )}\r\n \r\n \r\n ) : (\r\n undefined\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {isPastDue(br.DueDate) ? 'PAST DUE' : InvoicePaidStatusMap[invoice.status!]}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n
\r\n \r\n PaymentDueStatus
\r\n handleRowSelect(idx)}\r\n />\r\n {formatCurrency(-allowableFreightChargeActual, invoice.currencyCode)}{formatDate(allowableFreightDueDate)}Allowable Freight Discount if Paid by 15th
\r\n handleRowSelect(idx)}\r\n />\r\n \r\n {br.AmountCur === invoice.amount\r\n ? formatCurrency(br.AmountCur || 0, invoice.currencyCode)\r\n : `${formatCurrency(\r\n br.AmountCur || 0,\r\n invoice.currencyCode\r\n )} remaining of ${formatCurrency(invoice.amount || 0, invoice.currencyCode)}`}\r\n {formatDate(br.DueDate!)}
\r\n
\r\n ) : null}\r\n {!isCreditNote && (\r\n <>\r\n
\r\n
\r\n Pay:\r\n\r\n handleBlur(e.target.value)}\r\n onChange={e => {\r\n let value = e.target.value;\r\n value = value.replace('$', '');\r\n setDisplayedAmount(value);\r\n if (Number(value) < 0) {\r\n setTotalAmount(0);\r\n setDisplayedAmount('0.00');\r\n return;\r\n }\r\n if (Number(value) > calculateTotalAmount(Array(breakdown.length).fill(true))) {\r\n setTotalAmount(calculateTotalAmount(selectedRows));\r\n setDisplayedAmount(calculateTotalAmount(selectedRows).toFixed(2));\r\n return;\r\n }\r\n setTotalAmount(value === '' ? null : Number(value));\r\n }}\r\n />\r\n
\r\n \r\n
\r\n
\r\n {totalAmount === calculateTotalAmount(selectedRows) ? (\r\n
\r\n Type in box to specify amount\r\n {shouldDisplayMessage() && Payment added to cart}\r\n
\r\n ) : (\r\n
\r\n Reset to selected amount\r\n
\r\n )}\r\n
\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { getUrlSync, isOboRequest } from '@msdyn365-commerce/core';\r\nimport {\r\n BusinessPartnerOperationDeliveryType,\r\n BusinessPartnerUsersDataActions,\r\n InvoicePaidStatus,\r\n InvoiceSearchCriteria,\r\n IQueryResultSettings,\r\n OrderInvoice\r\n} from '@msdyn365-commerce/retail-proxy';\r\nimport { getCurrentAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\r\nimport {\r\n ArrayExtensions,\r\n getCustomer,\r\n GetCustomerInput,\r\n // getInvoices,\r\n IQueryResultSettingsModuleConfig,\r\n QueryResultSettingsProxy,\r\n StringExtensions\r\n} from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Alert, Button, Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { reaction } from 'mobx';\r\nimport { observer } from 'mobx-react';\r\nimport getInvoiceBreakdownAction, { GetInvoiceBreakdownInput } from '../../actions/get-invoice-breakdown.action';\r\nimport { InvoiceErrorComponent } from './components/invoice-error-component';\r\nimport { InvoicesFilterComponent, InvoicesFilterState } from './components/invoices-filter-component';\r\nimport { InvoicesTableComponent } from './components/invoices-table/invoices-table-component';\r\nimport { IMakePaymentResources, MakePaymentComponent } from './components/make-payment-component';\r\nimport { RequestInvoiceButton } from './components/request-invoice-button';\r\nimport { RequestInvoiceModal } from './components/request-invoice-modal';\r\nimport { InvoiceModel } from './helpers/invoice-data';\r\nimport { IAddInvoicesToCartFailureResult } from './helpers/pay-invoices';\r\nimport { IGdnInvoicesListData } from './gdn-invoices-list.data';\r\nimport { IGdnInvoicesListProps } from './gdn-invoices-list.props.autogenerated';\r\nimport getGdnInvoices, { GetGdnInvoicesInput } from '../../actions/get-gdn-invoices.action';\r\nimport { IInvoicePaymentScheduleEntity } from '../../actions/DataServiceEntities.g';\r\nimport { addInvoicesToCartAsync } from '../../actions/DataActionExtension.g';\r\nimport { InvoiceTile } from './components';\r\n\r\nexport type InvoicesListStatus = 'LOADING' | 'SUCCESS' | 'FAILED' | 'EMPTY';\r\nexport type InvoiceErrorHost = 'ADDINVOICETOCART';\r\n\r\nexport interface IInvoicesListViewProps extends IGdnInvoicesListProps {\r\n moduleProps: IModuleProps;\r\n\r\n header: JSX.Element;\r\n filter: JSX.Element;\r\n content?: JSX.Element;\r\n invoiceRequestModal?: JSX.Element;\r\n pagination?: JSX.Element;\r\n}\r\n\r\nexport interface IInvoiceErrorState {\r\n errorHost?: InvoiceErrorHost;\r\n errorReason?: IAddInvoicesToCartFailureResult;\r\n errorMessage: string;\r\n otherError?: string;\r\n errorCode?: string;\r\n}\r\n\r\nexport interface IInvoicesListState {\r\n invoices: InvoiceModel[];\r\n invoicesFilterState: InvoicesFilterState;\r\n errorState: IInvoiceErrorState;\r\n isInvoiceRequestModalOpen: boolean;\r\n isLoading: boolean;\r\n isOpen: boolean;\r\n isPageLoaded: boolean;\r\n payInvoiceErrorModalOpen: boolean;\r\n selectedButtonElement?: HTMLButtonElement | null;\r\n invoiceBreakdownList: IInvoicePaymentScheduleEntity[];\r\n}\r\n\r\n/**\r\n * InvoicesList component.\r\n * @extends {React.Component, IInvoicesListState>}\r\n */\r\n@observer\r\nclass InvoicesList extends React.Component, IInvoicesListState> {\r\n private readonly getInvoiceType = this.props.config?.invoiceTypes || [];\r\n\r\n private readonly _className: string = 'msc-invoices-list';\r\n\r\n private readonly payInvoiceRequestReference: React.RefObject;\r\n\r\n private readonly makePaymentReference: React.RefObject;\r\n\r\n private buttonChildReference: React.RefObject[] = [];\r\n\r\n private buttonChildPayButtonReference: React.RefObject[] = [];\r\n\r\n private readonly _queryResultSettings: IQueryResultSettings;\r\n\r\n private invoiceIds: string[] = [];\r\n\r\n constructor(props: IGdnInvoicesListProps) {\r\n super(props);\r\n\r\n this._queryResultSettings = QueryResultSettingsProxy.fromModuleData(\r\n this.props.context.request,\r\n this.props.config as IQueryResultSettingsModuleConfig\r\n ).QueryResultSettings;\r\n this.payInvoiceRequestReference = React.createRef();\r\n this.makePaymentReference = React.createRef();\r\n this._updateInvoicesState = this._updateInvoicesState.bind(this);\r\n this._onAddToCartFailed = this._onAddToCartFailed.bind(this);\r\n this._onToggleInvoiceRequestModal = this._onToggleInvoiceRequestModal.bind(this);\r\n this._handleFilterStateChange = this._handleFilterStateChange.bind(this);\r\n this._loadMoreInvoices = this._loadMoreInvoices.bind(this);\r\n this._requestInvoice = this._requestInvoice.bind(this);\r\n this._requestSpecificInvoice = this._requestSpecificInvoice.bind(this);\r\n this._setPayInvoiceErrorModalClose = this._setPayInvoiceErrorModalClose.bind(this);\r\n this._addInvoiceToCart = this._addInvoiceToCart.bind(this);\r\n this.state = {\r\n invoices: [],\r\n invoicesFilterState: InvoicesFilterState.ShowAll,\r\n isLoading: true,\r\n isOpen: true,\r\n isPageLoaded: false,\r\n errorState: { errorMessage: '' },\r\n isInvoiceRequestModalOpen: false,\r\n payInvoiceErrorModalOpen: false,\r\n selectedButtonElement: null,\r\n invoiceBreakdownList: []\r\n };\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IGdnInvoicesListProps, nextState: IInvoicesListState): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n config: { className = '', heading },\r\n resources: { invoicesListTitle }\r\n } = this.props;\r\n\r\n // console.log('props', this.props);\r\n\r\n const invoicesListTitleHeading = heading?.text ?? invoicesListTitle;\r\n\r\n const headerClassName = `${this._className}__header`;\r\n\r\n const header = (\r\n
\r\n \r\n
\r\n {/*
{invoicesListDescTitle}
*/}\r\n {/*
{amountText}
\r\n
{countText}
*/}\r\n
\r\n
\r\n );\r\n\r\n const viewProps: IInvoicesListViewProps = {\r\n ...(this.props as IGdnInvoicesListProps),\r\n moduleProps: {\r\n moduleProps: this.props,\r\n className: classnames(this._className, className)\r\n },\r\n header,\r\n invoiceRequestModal: this._renderInvoiceRequestModal(),\r\n filter: this._renderInvoicesFilter(this._className),\r\n pagination: this._renderPagination()\r\n };\r\n\r\n if (!this.state.isPageLoaded) {\r\n return this.props.renderView(viewProps);\r\n }\r\n const renderListView = this.props.config.renderListView;\r\n\r\n if (ArrayExtensions.hasElements(this.state.invoices)) {\r\n if (renderListView) {\r\n viewProps.content = this._renderInvoiceTileView();\r\n } else {\r\n viewProps.content = this._renderListContainer();\r\n }\r\n } else {\r\n viewProps.content = this._renderEmptyInvoiceLinesPageContent();\r\n }\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n public async componentDidMount(): Promise {\r\n await this.props.data.customer;\r\n const invoicesData = await this.props.data.invoices;\r\n void this._initializeWithInvoices(invoicesData);\r\n\r\n reaction(\r\n () => this.state.isInvoiceRequestModalOpen,\r\n async () => {\r\n if (this.invoiceIds && !this.state.isInvoiceRequestModalOpen) {\r\n const context = { callerContext: this.props.context.actionContext };\r\n const b2bUserId: string = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\r\n for (const invoiceId of this.invoiceIds) {\r\n await BusinessPartnerUsersDataActions.requestInvoiceCopyAsync(\r\n context,\r\n b2bUserId,\r\n invoiceId,\r\n BusinessPartnerOperationDeliveryType.Email\r\n );\r\n }\r\n this.invoiceIds = [];\r\n }\r\n }\r\n );\r\n }\r\n\r\n private _addInvoiceToCart = async (invoiceId: string, amount: number) => {\r\n const {\r\n context: { actionContext },\r\n data: { cart }\r\n } = this.props;\r\n\r\n void (await addInvoicesToCartAsync(\r\n { callerContext: actionContext },\r\n [{ Amount: amount, InvoiceId: invoiceId }],\r\n cart?.result?.cart.Id || ''\r\n ));\r\n cart?.result?.refreshCart({});\r\n document.dispatchEvent(new CustomEvent('INVOICE_ADDED'));\r\n };\r\n\r\n private async _initializeWithInvoices(invoicesData: OrderInvoice[]): Promise {\r\n const invoices = invoicesData.map((invoice, index) => {\r\n this.buttonChildReference[Number(index)] = React.createRef();\r\n this.buttonChildPayButtonReference[Number(index)] = React.createRef();\r\n return new InvoiceModel(invoice);\r\n });\r\n\r\n const ids = invoices.map(inv => inv.id);\r\n const input = new GetInvoiceBreakdownInput(ids);\r\n const invoiceBreakdownList = await getInvoiceBreakdownAction(input, this.props.context.actionContext);\r\n // console.log('invoiceBreakdownList', invoiceBreakdownList);\r\n this.setState({\r\n invoices,\r\n isLoading: false,\r\n isPageLoaded: true,\r\n invoiceBreakdownList: invoiceBreakdownList.invoiceBreakdownList\r\n });\r\n }\r\n\r\n private _addInvoices(invoicesData: OrderInvoice[]): void {\r\n const newInvoices = invoicesData.map(invoice => new InvoiceModel(invoice));\r\n const invoices = this.state.invoices.concat(newInvoices);\r\n this.setState({\r\n invoices,\r\n isLoading: false\r\n });\r\n }\r\n\r\n private _addBreakdown(breakdownData: IInvoicePaymentScheduleEntity[]): void {\r\n const breakdowns = this.state.invoiceBreakdownList.concat(breakdownData);\r\n this.setState({ invoiceBreakdownList: breakdowns });\r\n }\r\n\r\n private _renderEmptyInvoiceLinesPageContent(): JSX.Element {\r\n const containerClass = `${this._className}__empty-lines__container`;\r\n const actionsContainerClass = `${containerClass}__actions`;\r\n return (\r\n
\r\n
{this.props.resources.invoiceEmptyInvoiceLinesTitle}
\r\n
{this.props.resources.invoiceEmptyInvoiceLinesDescription}
\r\n
\r\n \r\n {this.props.resources.invoiceEmptyInvoiceLinesContinueShoppingButtonText}\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private _getBreakdownForInvoice(invoice: InvoiceModel): IInvoicePaymentScheduleEntity[] {\r\n return this.state.invoiceBreakdownList.filter(inv => inv.Invoice === invoice.id);\r\n }\r\n\r\n private _renderInvoiceTileView(): JSX.Element {\r\n const { invoices } = this.state;\r\n // const containerClass = `${this._className}__container`;\r\n // const containerHeaderClass = `${containerClass}__header`;\r\n return (\r\n <>\r\n
\r\n {invoices.map(inv => (\r\n \r\n ))}\r\n
\r\n \r\n );\r\n }\r\n\r\n private _renderListContainer(): JSX.Element {\r\n const containerClass = `${this._className}__container`;\r\n const containerHeaderClass = `${containerClass}__header`;\r\n const containerContentClass = `${containerClass}__content`;\r\n const isOnBehalfOfRequest = isOboRequest(this.props.context.request);\r\n\r\n return (\r\n
\r\n
\r\n {this._renderMakePayment(containerHeaderClass, isOnBehalfOfRequest)}\r\n {this._renderInvoiceRequestButton()}\r\n
\r\n
{this._renderInvoiceErrors()}
\r\n
{this._renderInvoicesList(containerContentClass)}
\r\n
\r\n );\r\n }\r\n\r\n private _updateInvoicesState(): void {\r\n this.setState({\r\n invoices: this.state.invoices\r\n });\r\n }\r\n\r\n private async _getInvoicesSearchCriteria(state: InvoicesFilterState): Promise {\r\n const searchCriteria: InvoiceSearchCriteria = {};\r\n\r\n const context = this.props.context.actionContext;\r\n\r\n const businessPartner = await getCurrentAsync({ callerContext: context });\r\n searchCriteria.BusinessPartnerId = businessPartner.BusinessPartnerId;\r\n\r\n const customer = await getCustomer(new GetCustomerInput(context.requestContext.apiSettings), context);\r\n searchCriteria.CustomerId = customer.AccountNumber;\r\n\r\n switch (state) {\r\n case InvoicesFilterState.ShowAll:\r\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.None];\r\n break;\r\n case InvoicesFilterState.Paid:\r\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.Paid];\r\n break;\r\n // case InvoicesFilterState.PartiallyPaid:\r\n // searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.PartiallyPaid];\r\n // break;\r\n case InvoicesFilterState.Unpaid:\r\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.Unpaid, InvoicePaidStatus.PartiallyPaid];\r\n break;\r\n default:\r\n throw new Error('Failed to process unknown invoices filter state.');\r\n }\r\n\r\n return searchCriteria;\r\n }\r\n\r\n private async _handleFilterStateChange(state: InvoicesFilterState): Promise {\r\n this.setState({\r\n invoicesFilterState: state,\r\n isLoading: true\r\n });\r\n\r\n const searchCriteria = await this._getInvoicesSearchCriteria(state);\r\n\r\n if (this._queryResultSettings.Paging) {\r\n this._queryResultSettings.Paging.Skip = 0;\r\n }\r\n\r\n const invoices = await getGdnInvoices(\r\n new GetGdnInvoicesInput(searchCriteria, this._queryResultSettings, this.getInvoiceType),\r\n this.props.context.actionContext\r\n );\r\n this._initializeWithInvoices(invoices);\r\n }\r\n\r\n private _renderInvoicesFilter(className: string): JSX.Element {\r\n const containerClass = `${this._className}__container`;\r\n const containerContentClass = `${containerClass}__content`;\r\n const filterClassName = `${className}__filter`;\r\n return (\r\n
\r\n
{this._renderItemsInCartMessage()}
\r\n
{this._renderInvoiceRequestButton()}
\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderInvoicesList(className: string): JSX.Element {\r\n const tableClassName = `${className}__table`;\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _onAddToCartFailed(newErrorState: IInvoiceErrorState, reference?: React.RefObject): void {\r\n const errorState = { ...newErrorState };\r\n errorState.errorHost = 'ADDINVOICETOCART';\r\n errorState.errorMessage =\r\n newErrorState.errorReason?.failureReason === 'EMPTYINPUT'\r\n ? this.props.resources.invoiceErrorInvoiceIdNotExist\r\n : this.props.resources.invoiceErrorFailedAddInvoiceToCart;\r\n\r\n const shouldShowAdditionalInfoInPopup =\r\n errorState.errorCode === 'Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines';\r\n this.setState({ errorState, payInvoiceErrorModalOpen: shouldShowAdditionalInfoInPopup, selectedButtonElement: reference?.current });\r\n }\r\n\r\n private _renderMakePayment(className: string, disabled: boolean): JSX.Element {\r\n const id = `${className}__make-payment`;\r\n const makePaymentResources: IMakePaymentResources = {\r\n makePaymentButtonText: this.props.resources.makePaymentButtonText,\r\n makePaymentButtonAriaLabel: this.props.resources.makePaymentButtonAriaLabel\r\n };\r\n\r\n const selectedInvoices = this._getSelectedInvoices();\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _setPayInvoiceErrorModalClose(): void {\r\n this.setState({\r\n payInvoiceErrorModalOpen: false\r\n });\r\n this.state.selectedButtonElement?.focus();\r\n }\r\n\r\n private _renderInvoiceErrors(): JSX.Element {\r\n const {\r\n resources: {\r\n payInvoiceErrorDialogHeader,\r\n payInvoiceErrorDialogBodyErrorTitle,\r\n payInvoiceErrorDialogBodyErrorDescription,\r\n payInvoiceErrorDialogFooterGoToCartButtonText,\r\n payInvoiceErrorDialogFooterCancelButtonText\r\n }\r\n } = this.props;\r\n\r\n const cartUrl = getUrlSync('cart', this.props.context.actionContext) || '';\r\n\r\n const errorClassName = `${this._className}__errors`;\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderItemsInCartMessage(): JSX.Element {\r\n const cart = this.props.data.cart?.result;\r\n\r\n // parts or invoice in cart\r\n if (!cart?.isEmpty) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return <>;\r\n }\r\n\r\n // private _renderInvoiceInCartPaymentMessage(): JSX.Element {\r\n // const cart = this.props.data.cart?.result;\r\n\r\n // if (!cart?.hasInvoiceLine) {\r\n // return <>;\r\n // }\r\n\r\n // return (\r\n // \r\n // \r\n // \r\n // );\r\n // }\r\n\r\n // Dismiss alert.\r\n private readonly _onDismiss = () => {\r\n this.setState({\r\n isOpen: false\r\n });\r\n };\r\n\r\n private _renderPagination(): JSX.Element | undefined {\r\n const { data, resources } = this.props;\r\n const invoices = data?.invoices?.result;\r\n if (!invoices || invoices.length < this._queryResultSettings.Paging!.Top!) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n \r\n {resources.invoicesLoadMore}\r\n \r\n );\r\n }\r\n\r\n private async _loadMoreInvoices(): Promise {\r\n this.setState({ isLoading: true });\r\n const searchCriteria = await this._getInvoicesSearchCriteria(this.state.invoicesFilterState);\r\n if (this._queryResultSettings.Paging) {\r\n this._queryResultSettings.Paging.Skip! += this._queryResultSettings.Paging.Top!;\r\n }\r\n const newInvoices = await getGdnInvoices(\r\n new GetGdnInvoicesInput(searchCriteria, this._queryResultSettings, this.getInvoiceType),\r\n this.props.context.actionContext\r\n );\r\n this._addInvoices(newInvoices);\r\n\r\n // ticket 8686\r\n if (this.props.config.renderListView) {\r\n const newInvoiceModels = newInvoices.map((invoice, index) => {\r\n this.buttonChildReference[Number(index)] = React.createRef();\r\n this.buttonChildPayButtonReference[Number(index)] = React.createRef();\r\n return new InvoiceModel(invoice);\r\n });\r\n\r\n const ids = newInvoiceModels.map(inv => inv.id);\r\n const input = new GetInvoiceBreakdownInput(ids);\r\n const invoiceBreakdownList = await getInvoiceBreakdownAction(input, this.props.context.actionContext);\r\n this._addBreakdown(invoiceBreakdownList.invoiceBreakdownList);\r\n }\r\n }\r\n\r\n private _renderInvoiceRequestModal(): JSX.Element {\r\n const customer = this.props.data.customer.result;\r\n const {\r\n invoiceRequestModalCancelLabel,\r\n invoiceRequestModalSubmitLabel,\r\n invoiceRequestModalHeaderLabel,\r\n invoiceRequestModalSendToEmailLabel,\r\n invoiceRequestModalSearch,\r\n invoiceRequestModalInvoiceSearchDisplay,\r\n invoiceRequestModalSingleInvoiceSearchDisplay,\r\n invoiceRequestModalSearchButton\r\n } = this.props.resources;\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _onToggleInvoiceRequestModal(): void {\r\n this.setState({\r\n isInvoiceRequestModalOpen: !this.state.isInvoiceRequestModalOpen\r\n });\r\n if (this.state.isInvoiceRequestModalOpen) {\r\n this.state.selectedButtonElement?.focus();\r\n }\r\n }\r\n\r\n /**\r\n * Request specific invoice function.\r\n */\r\n private readonly _onToggleInvoiceRequestParentModal = () => {\r\n this.setState(\r\n {\r\n selectedButtonElement: this.payInvoiceRequestReference.current\r\n },\r\n () => {\r\n this._onToggleInvoiceRequestModal();\r\n }\r\n );\r\n };\r\n\r\n private _renderInvoiceRequestButton(): JSX.Element | null {\r\n const { invoiceRequestButtonLabel } = this.props.resources;\r\n const customer = this.props.data.customer.result;\r\n\r\n if (StringExtensions.isNullOrWhitespace(customer?.Email)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _requestInvoice(invoiceId: string): void {\r\n this.invoiceIds.push(invoiceId);\r\n this._onToggleInvoiceRequestModal();\r\n }\r\n\r\n private _getSelectedInvoices(): InvoiceModel[] {\r\n let selectedInvoices = this.state.invoices.filter(invoice => invoice.isSelected);\r\n if (!ArrayExtensions.hasElements(selectedInvoices)) {\r\n selectedInvoices = this.state.invoices;\r\n }\r\n\r\n return selectedInvoices;\r\n }\r\n\r\n private _requestSpecificInvoice(\r\n specificInvoice: InvoiceModel,\r\n requestInvoiceButtonReference: React.RefObject\r\n ): void {\r\n this.state.invoices.forEach((invoice: InvoiceModel) => {\r\n if (invoice === specificInvoice) {\r\n invoice.isSelected = true;\r\n } else {\r\n invoice.isSelected = false;\r\n }\r\n });\r\n this.setState({\r\n selectedButtonElement: requestInvoiceButtonReference.current\r\n });\r\n this._onToggleInvoiceRequestModal();\r\n }\r\n}\r\n\r\nexport default InvoicesList;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IInvoicesListViewProps } from './gdn-invoices-list';\r\n\r\nexport const InvoiceListView: React.FC = props => {\r\n const { header, filter, content, invoiceRequestModal, pagination } = props;\r\n\r\n return (\r\n \r\n {header}\r\n {invoiceRequestModal}\r\n {filter}\r\n {content}\r\n {pagination}\r\n \r\n );\r\n};\r\n\r\nexport default InvoiceListView;\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, 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.\r\n * All rights reserved. See LICENSE 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,\r\n ISignInLoading,\r\n ISignInLocalAccount,\r\n // ISignInSocialAccount,\r\n // ISignInSocialItem,\r\n ISignInB2BAccount,\r\n ISignInB2BItem,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management';\r\n\r\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\r\n return (\r\n \r\n {items &&\r\n 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 = ({ socialAccounts, items }) => {\r\n// return (\r\n// \r\n// {items &&\r\n// 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 B2BAccount: React.FC = ({ socialAccounts, items }) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: ISignInB2BItem) => {\r\n return (\r\n item && (\r\n \r\n {item.text}\r\n \r\n )\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\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 const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n // signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n // signInSocialAccount,\r\n // signUpSectionHeading,\r\n signInB2BAccount,\r\n // signUpDescription,\r\n // signUpLink\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 {B2BAccount(signInB2BAccount)}\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","/*!\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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignUpButton: React.FC = ({ id, className, text, ariaLabel, disabled, onClick }) => (\n \n);\n\nexport default SignUpButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignUpError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpInputProps {\n id?: string;\n hasFocus?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignUpInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignUpInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default SignUpInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingIcon {\n className: string;\n}\n\nconst SignUpLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignUpLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignUpLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignUpLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default SignUpSuccess;\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 { EmailRegex, PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignUpButtonComponent from './components/sign-up-button';\nimport SignUpErrorComponent from './components/sign-up-error';\nimport SignUpInputComponent from './components/sign-up-input';\nimport SignUpLabelComponent from './components/sign-up-label';\nimport SignUpLoadingIconComponent from './components/sign-up-loading-icon';\nimport SignUpLoadingMessageComponent from './components/sign-up-loading-message';\nimport SignUpSuccessComponent from './components/sign-up-success';\nimport { ISignUpConfig, ISignUpProps, ISignUpResources } from './sign-up.props.autogenerated';\n\nexport interface ISignUpViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignUpItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignUpEmailVerification {\n isRequired: boolean;\n email: ISignUpItem;\n buttonWrapper: INodeProps;\n buttons: React.ReactNode[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Given Name Verification Interface.\n */\nexport interface ISignUpGivenNameVerification {\n isRequired: boolean;\n givenName: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Surname Verification Interface.\n */\nexport interface ISignUpSurnameVerification {\n isRequired: boolean;\n surname: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\nexport interface ISignUpLocalAccount {\n localAccount: INodeProps;\n items: ISignUpItem[];\n emailVerification: ISignUpEmailVerification;\n givenNameVerification: ISignUpGivenNameVerification;\n surnameVerification: ISignUpSurnameVerification;\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface ISignUpLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignUpViewProps {\n className: string;\n viewState: ISignUpViewState;\n loading: ISignUpLoading;\n signUp: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n signUpLocalAccount: ISignUpLocalAccount;\n}\n\n/**\n *\n * SignUp component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignUp extends React.Component> {\n @observable private isGivenNameVerificationRequried: boolean;\n\n @observable private isSurnameVerificationRequried: boolean;\n\n private readonly moduleClassName: string = 'ms-sign-up';\n\n @observable private emailRegex: string;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isEmailVerificationRequried: boolean;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignUpProps) {\n super(props);\n\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isEmailVerificationRequried = false;\n this.isGivenNameVerificationRequried = false;\n this.isSurnameVerificationRequried = false;\n this.isInitialized = false;\n this.templateVersion = '';\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignUpProps, nextState: ISignUpViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n signUpLocalAccount: this._renderLocalAccount()\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 * @returns - Heading Text.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n * @returns - Paragraph Text.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.disclaimer = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\n switch (obj.ID.toLowerCase()) {\n case 'emailverificationcontrol': {\n this.isEmailVerificationRequried = true;\n this.templateVersion = 'v2';\n break;\n }\n case 'email': {\n this.emailRegex = obj.PAT;\n this.isEmailVerificationRequried = obj.VERIFY;\n this.templateVersion = 'v1';\n break;\n }\n case 'givennameverificationcontrol': {\n this.isGivenNameVerificationRequried = true;\n break;\n }\n case 'givenname': {\n this.isGivenNameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'surnameverificationcontrol': {\n this.isEmailVerificationRequried = true;\n break;\n }\n case 'surname': {\n this.isSurnameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n\n switch (obj.UX_INPUT_TYPE.toLowerCase()) {\n case 'password': {\n obj.PAT_DESC = resources.invalidPasswordError;\n break;\n }\n case 'emailbox': {\n obj.PAT_DESC = resources.invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n required_field: resources.requiredFieldMissingError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n\n private _renderLocalAccount(): ISignUpLocalAccount {\n const { config, resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', resources.lastNameLabelText, resources.lastNameMaxLength),\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, undefined, this.reenterPasswordRegex)\n ],\n emailVerification: {\n isRequired: this.isEmailVerificationRequried,\n email: this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n buttonWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n buttons: [\n ,\n ,\n ,\n \n ],\n successMessage: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n \n ]\n },\n givenNameVerification: {\n isRequired: this.isGivenNameVerificationRequried,\n givenName: this._renderInput(\n this.getValue('givenName_ver_input', 'givenNameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'givenNameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n surnameVerification: {\n isRequired: this.isSurnameVerificationRequried,\n surname: this._renderInput(\n this.getValue('surname_ver_input', 'surnameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'surnameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n buttons: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): ISignUpItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default SignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignUpEmailVerification,\n ISignUpGivenNameVerification,\n ISignUpItem,\n ISignUpLoading,\n ISignUpLocalAccount,\n ISignUpSurnameVerification,\n ISignUpViewProps\n} from './sign-up';\n\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\n return (\n <>\n {successMessage &&\n successMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {errorMessage &&\n errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode) => {\n return <>{button};\n })}\n \n \n );\n};\n\n/**\n * Handles validation of sign-up givenName.\n * @param event - Content editable event.\n * @param event.givenName - Event Given Name.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for Given Name.\n */\nconst SignUpGivenNameVerificationComponent: React.FC = ({ givenName, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\n/**\n * Handles validation of signUp surname.\n * @param event - Content editable event.\n * @param event.surname - Event surname.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for surname.\n */\nconst SignUpSurnameVerificationComponent: React.FC = ({ surname, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n emailVerification,\n givenNameVerification,\n surnameVerification,\n buttons,\n errorMessage,\n disclaimer\n}) => {\n return (\n \n {items &&\n items.map((item: ISignUpItem) => {\n if (item.key === 'email' && emailVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'surname' && surnameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n );\n};\n\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignUpView: React.FC = props => {\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading, signUpLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(signUpLocalAccount)}\n \n \n );\n};\n\nexport default SignUpView;\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IImageListViewProps } from './image-list';\n\n/**\n * Render the thumbnail item images.\n * @param props - The image list view props.\n * @returns Return HTML having IImageListViewProps props with image List.\n */\nexport const imageListView = (props: IImageListViewProps): JSX.Element => {\n const { imageList, imageListContainer, imageListHeading, imageListItem, imageListItems, imageListItemAnchorTag } = props;\n return (\n \n {imageListHeading}\n \n {imageListItems?.map(item => {\n let indexKey: string;\n\n if (item.image) {\n const image = (item.image as unknown) as Msdyn365.Image;\n indexKey = image.props.src as string;\n } else {\n const text = (item.text as unknown) as Msdyn365.RichTextComponent;\n indexKey = text.props.text as string;\n }\n return (\n \n {item.image && (\n \n {item.image}\n \n )}\n {item.text}\n \n );\n })}\n \n \n );\n};\n\nexport default imageListView;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IInteractiveFeatureCollectionViewProps } from './interactive-feature-collection';\n\n/**\n * Feature Collection View.\n * @param props - Feature Collection view props.\n * @returns Feature Collection View.\n */\nexport const interactiveFeatureCollectionView: React.FC = props => {\n const {\n title,\n interactiveFeatureCollectionHeading,\n interactiveFeatureCollectionContainer,\n interactiveFeatureCollectionDesktopContainer,\n interactiveFeatureCollectionDesktopItems,\n interactiveFeatureCollectionMobileItems,\n interactiveFeatureCollectionMobileContainer,\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer\n } = props;\n return (\n \n {title}\n {interactiveFeatureCollectionDesktopItems}\n \n \n {interactiveFeatureCollectionMobileItems &&\n interactiveFeatureCollectionMobileItems.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureItemViewProps } from './interactive-feature-item';\n\n/**\n * Enumerator used to make some calculations to set the proper classnames\n * using modular calculations to see if they are in a right or left column or on first or last row.\n */\nenum MagicNumber {\n modularDivisor = 4,\n caseNumberZero = 0,\n caseNumberOne = 1,\n caseNumberTwo = 2\n}\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @param indexItem - Feature Item view props.\n * @param itemCounter - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewProps, indexItem?: number, itemCounter?: number): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails\n } = thisProps;\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\n const modularAux = indexAux % MagicNumber.modularDivisor;\n const firstRow = indexAux <= MagicNumber.caseNumberTwo ? 'firstRow' : '';\n const lastRow =\n itemCounterAux && (indexAux === itemCounterAux || indexAux === itemCounterAux - MagicNumber.caseNumberOne) ? 'lastRow' : '';\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\n\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */ const renderCarousel = (thisProps: IInteractiveFeatureItemViewProps): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent\n } = thisProps;\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param props - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nexport const FeatureItemViewComponent: React.FC = props => {\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\n if (isMosaic) {\n return <>{renderMosaic(props, indexItem, itemCounter)};\n }\n return {renderCarousel(props)};\n};\n\nexport default FeatureItemViewComponent;\n"],"names":["InvoiceErrorComponent","msdyn365Commerce","createComponent","component","_ref","messageHeader","errorMessage","otherError","showError","payInvoiceErrorModalOpen","errorDialogHeader","errorDialogBodyErrorTitle","errorDialogBodyErrorDescription","errorDialogFooterGoToCartButtonText","errorDialogFooterCancelButtonText","cartUrl","setPayInvoiceErrorModalClose","errorMessages","push","className","React","Alert","isOpen","length","color","assertive","map","message","index","key","Modal","toggle","ModalHeader","ModalBody","ModalFooter","Button","title","href","role","onClick","InvoicesFilterState","getInvoicesFilterStateResources","filterState","resources","ShowAll","invoicesFilterShowAll","Paid","invoiceStatusPaid","Unpaid","invoiceStatusUnpaid","Error","onClickHandler","onStateClick","InvoicesFilterComponent","props","popoverRef","popoverState","setPopoverState","togglePopover","setFilterState","currentState","onFilterStateClick","clickedState","onFilterStateChanged","innerRef","disabled","Popover","id","placement","target","EnumExtensions","getEnumValues","state","renderFilterStateItem","stateStringRepresentation","InvoicesTableHeaderComponent","rowClassName","switchCheckedState","onSelectAll","isSelectedAll","headerCells","isMobile","getMobileHeaderCells","classnames","type","invoiceListSelectAllRadioAriaLabelText","checked","onChange","invoicesText","invoiceDateMobileText","getDesktopHeaderCells","invoiceNumberText","invoiceDateText","invoiceUsersText","invoiceAmountText","invoiceDueDateText","invoiceAmountDueText","invoiceStatusText","invoiceActionsText","getInvoiceStatusText","invoiceStatus","InvoicePaidStatus","None","invoiceStatusNone","PartiallyPaid","invoiceStatusPartiallyPaid","payInvoices","async","invoices","actionContext","onError","invoicesToAdd","filter","invoice","canBePaid","ArrayExtensions","hasElements","errorReason","failureReason","cartState","getCartState","result","addInvoicesToCart","invoiceIds","_result$errorDetails","_result$errorDetails2","status","errorDetails","LocalizedMessage","errorCode","ErrorResourceId","getUrlSync","_window","window","location","assign","PayInvoiceComponentActions","_event","setDisabled","undefined","data","amount","context","errorState","reference","event","PayInvoiceComponent","_objectSpread","useState","payInvoiceButtonAriaLabel","payInvoiceButtonText","RequestInvoiceButton","onClicked","requestInvoiceButtonLabel","innerReference","formatAmount","currencyCode","cultureFormatter","formatCurrency","formatDate","date","year","month","day","onRequestSpecificInvoice","requestInvoiceButtonReference","onRequestInvoice","setShowPreviousActions","onClickViewDetails","linkToInvoiceDetails","MsDyn365","isBrowser","isShowActions","setShowActions","shouldShowActions","extraActionsPopup","invoiceViewDetailsButtonAriaLabel","invoiceViewDetailsButtonText","invoiceActionsButtonTextAriaLabel","invoiceActionsButtonIsOnBehalfOfTextAriaLabel","showActions","isOnBehalfOfRequest","isOboRequest","request","getInvoiceDetailsPageUrlSync","actionsContainerClassName","payInvoiceClassName","checkIfCreditNote","typeName","payInvoiceReferences","invoiceReferences","invoiceRequestButtonLabel","InvoicesTableRowComponent","onSelectLine","isSelected","getMobileRowCells","invoiceRowArialabel","format","invoiceListSelectRadioAriaLabelText","customerName","dueDate","getDesktopRowCells","customer","isCurrentUser","StringExtensions","isNullOrWhitespace","AccountNumber","customerAccountNumber","breakdownRows","invoiceBreakdown","idx","invoiceDate","invoiceCurrentUser","DueDate","AmountCur","amountDue","isMobileView","viewport","device","Type","innerWidth","gridSettings","xs","w","sm","md","lg","getViewport","onSelectAllHandler","forEach","InvoicesTableComponent","setIsMobile","updateViewport","addEventListener","headerClassName","all","isAdmin","IsB2bAdmin","matchingBreakdown","inv","Invoice","invoiceButtonReferences","Number","payInvoiceButtonReferences","MakePaymentComponentActions","buttonReferences","input","MakePaymentComponent","hasInvoices","makePaymentButtonAriaLabel","makePaymentButtonText","onSubmitRequestClick","onClosing","filteredInvoices","onSubmitRequest","checkboxRef","closingFlag","_inputInvoice$current","current","searchInputChangedHandler","setSearchInput","value","onCancelHandler","renderInvoiceOptions","setSelectedInvoiceIndex","_invoice","i","_checkboxRef$current$","onInvoiceSelect","onInvoiceSelectHandler","checkboxId","checkboxName","name","ref","htmlFor","RequestInvoiceModal","email","isModalOpen","modalHeaderLabel","sendToEmailLabel","submitRequestLabel","cancelLabel","searchPlaceholderLabel","invoicesFoundString","singleInvoiceFoundString","searchButtonAltText","selectedInvoiceIndex","setFilteredInvoices","searchInput","shouldShowSearchResults","setShouldShowSearchResults","invoiceOptionsData","invoiceOptions","setInvoiceOptions","focusElement","setTimeout","_focusElement$current","focus","searchEntered","searchEnteredHandler","updatedInvoices","isNullOrEmpty","toLocaleUpperCase","includes","searchResultString","invoicesFoundReplaceIndex","indexOf","horizontalPosition","verticalPosition","autoFocus","fade","onOpened","setFilteredInvoicesToSelectedInvoices","selectedInvoices","requestInvoiceDialogAriaLabel","tag","substring","placeholder","InvoiceModel","constructor","this","Id","InvoiceDate","Date","CustomerAccountNumber","CustomerName","TotalAmount","InvoiceDueDate","AmountBalance","InvoicePaidStatusValue","CurrencyCode","invoiceTypeValue","InvoiceTypeValue","InvoiceType","InvoiceTile","invoiceBreakdownList","addInvoiceToCart","cart","console","log","breakdown","calculateTotalAmount","rows","reduce","total","getAllowableFreightAmount","getEarliestInvoiceDue","earliest","isPastDue","_getEarliestInvoiceDu","dateToCompare","_breakdown$find","_getEarliestInvoiceDu2","charge","find","b","AllowableFreightCharge","getFullYear","getMonth","isCreditNote","setIsCreditNote","selectAll","setSelectAll","selectedRows","setSelectedRows","br","_isPastDue","totalAmount","setTotalAmount","displayedAmount","setDisplayedAmount","toFixed","isInvoiceInCart","CartLines","some","line","InvoiceId","handleRowSelect","updatedRows","allSelected","every","Boolean","noneSelected","CreditNoteInvoice","prevSelectedRows","newSelections","_isPastDue2","slice","discount","item","newInvoiceBreakdownList","allowableFreight","_newInvoiceBreakdownL","InvoicePaidStatusMap","rel","SalesId","Description","PurchaseOrder","Array","fill","_getEarliestInvoiceDu3","allowableFreightCharge","allowableFreightChargeActual","earliestInvoiceDate","allowableFreightDueDate","onBlur","e","num","parseFloat","replace","cleanNum","isNaN","handleBlur","startsWith","handleReset","selectedTotal","InvoicesList","_this$props$config","super","getInvoiceType","config","invoiceTypes","_className","buttonChildReference","buttonChildPayButtonReference","_addInvoiceToCart","invoiceId","_cart$result","_cart$result2","addInvoicesToCartAsync","callerContext","Amount","refreshCart","document","dispatchEvent","CustomEvent","_onDismiss","setState","_onToggleInvoiceRequestParentModal","selectedButtonElement","payInvoiceRequestReference","_onToggleInvoiceRequestModal","_queryResultSettings","QueryResultSettingsProxy","fromModuleData","QueryResultSettings","makePaymentReference","_updateInvoicesState","bind","_onAddToCartFailed","_handleFilterStateChange","_loadMoreInvoices","_requestInvoice","_requestSpecificInvoice","_setPayInvoiceErrorModalClose","invoicesFilterState","isLoading","isPageLoaded","isInvoiceRequestModalOpen","shouldComponentUpdate","nextProps","nextState","render","_heading$text","heading","invoicesListTitle","invoicesListTitleHeading","text","header","Heading","viewProps","moduleProps","invoiceRequestModal","_renderInvoiceRequestModal","_renderInvoicesFilter","pagination","_renderPagination","renderView","renderListView","content","_renderInvoiceTileView","_renderListContainer","_renderEmptyInvoiceLinesPageContent","invoicesData","_initializeWithInvoices","reaction","_this$props$data$b2bU","b2bUserId","b2bUserInformation","B2BUserId","BusinessPartnerUsersDataActions","BusinessPartnerOperationDeliveryType","Email","ids","GetInvoiceBreakdownInput","getInvoiceBreakdownAction","_addInvoices","newInvoices","concat","_addBreakdown","breakdownData","breakdowns","containerClass","actionsContainerClass","invoiceEmptyInvoiceLinesTitle","invoiceEmptyInvoiceLinesDescription","invoiceEmptyInvoiceLinesContinueShoppingButtonAriaLabel","invoiceEmptyInvoiceLinesContinueShoppingButtonText","_getBreakdownForInvoice","_this$props$data$cart","containerHeaderClass","containerContentClass","_renderMakePayment","_renderInvoiceRequestButton","_renderInvoiceErrors","_renderInvoicesList","searchCriteria","businessPartner","getCurrentAsync","BusinessPartnerId","getCustomer","GetCustomerInput","requestContext","apiSettings","CustomerId","InvoicePaidStatusValues","_getInvoicesSearchCriteria","Paging","Skip","getGdnInvoices","GetGdnInvoicesInput","filterClassName","_renderItemsInCartMessage","tableClassName","newErrorState","_newErrorState$errorR","errorHost","invoiceErrorInvoiceIdNotExist","invoiceErrorFailedAddInvoiceToCart","shouldShowAdditionalInfoInPopup","makePaymentResources","_getSelectedInvoices","telemetry","moduleId","moduleTypeName","navigationUrl","_this$state$selectedB","payInvoiceErrorDialogHeader","payInvoiceErrorDialogBodyErrorTitle","payInvoiceErrorDialogBodyErrorDescription","payInvoiceErrorDialogFooterGoToCartButtonText","payInvoiceErrorDialogFooterCancelButtonText","errorClassName","invoiceErrorMessageHeader","_this$props$data$cart2","isEmpty","hasInvoiceLine","invoiceInCartPaymentMessage","partsInCartPaymentMessage","_data$invoices","Top","invoicesLoadMore","invoiceRequestModalCancelLabel","invoiceRequestModalSubmitLabel","invoiceRequestModalHeaderLabel","invoiceRequestModalSendToEmailLabel","invoiceRequestModalSearch","invoiceRequestModalInvoiceSearchDisplay","invoiceRequestModalSingleInvoiceSearchDisplay","invoiceRequestModalSearchButton","_this$state$selectedB2","specificInvoice","__decorate","observer","InvoiceListView","Module","Object","AccountPreferencesSection","accountPreferences","personalization","extraPreferences","Node","AccountPreferenceSection","preferenceSecton","_ref2","accountPreference","description","buttonWrapper","buttonYesText","button","buttonNoText","AccountProfileSection","_ref3","AccountProfileItem","links","AccountProfile","accountProfileWrapper","emailSection","nameSection","preferenceSection","customerAttributesWrapper","customerAttributesSection","SignInLoading","modal","modalBody","icon","signIn","viewState","loading","defaultAADConainer","aadConainer","signInSection","signInSectionHeading","signInLocalAccount","signUpDescription","signUpLink","signUpSection","signUpSectionHeading","isShowLoading","localAccount","items","forgetPassword","disclaimer","error","signInButton","wrapper","label","LocalAccount","SignUpItem","SignUpEmailVerification","buttons","successMessage","SignUpGivenNameVerificationComponent","givenName","SignUpSurnameVerificationComponent","_ref4","surname","SignUpLoading","_ref6","signUp","signUpLocalAccount","_ref5","emailVerification","givenNameVerification","surnameVerification","isRequired","verificationControlWrapper","renderProductDescription","product","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","generateImageUrl","Image","src","fallBackSrc","loadFailureBehavior","imageSettings","viewports","q","h","xl","lazyload","cropFocalRegion","renderProductImage","Name","ItemId","signInMessage","modalToggle","paragraph","isAuthenticated","user","RichTextComponent","reviewModal","modalHeader","form","inputRow","selectRatingLabel","rating","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","modalFooter","submitButton","cancelButton","createReviewModal","signInB2BAccount","socialAccounts","B2BAccount","RequestsTableColumnHeader","getUserName","UserFirstName","UserLastName","b2bRequestsNameDisplay","getDetails","_requestDetails$Invoi","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","_context$request$quer","tableData","operationRequests","_request$TypeValue","_request$StatusValue","row","b2bRequestsTypeColumn","TableDataType","Text","b2bRequestsRequestDateColumn","CreatedDateTime","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","StatusValue","createTableItems","headings","mobileExcludedColumns","sortable","ariaLabel","columnSortAriaLabel","editLinkText","deleteLinkText","viewLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","showPagination","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","parseInt","itemPerPage","prevText","b2bRequestsPreviousText","nextText","b2bRequestsNextText","paginationText","url","reqContext","URL","requestUrl","isSingleSelectOnly","actions","onDelete","onEdit","onView","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","B2bRequestsTable","Table","B2bRequestsStatus","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","Viewport","isChannelTypeB2B","b2bRequestsStatus","table","computed","GetMaxLength","maxLength","parsedMaxLength","pattern","forId","successClassName","SignUp","moduleClassName","handleHeadingChange","handleParagraphChange","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","isInitialized","obj","ID","toLowerCase","isEmailVerificationRequried","templateVersion","emailRegex","PAT","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","newPasswordRegex","reenterPasswordRegex","UX_INPUT_TYPE","PAT_DESC","invalidPasswordError","invalidEmailAddressError","required_field","requiredFieldMissingError","getValue","v1Value","v2Value","EmailRegex","defaultRegex","source","PasswordRegex","componentDidMount","componentDidUpdate","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","loadingMessage","style","display","Msdyn365","editProps","_renderLocalAccount","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","emailAddressLabelText","passwordLabelText","confirmPasswordLabelText","verificationCodeLabelText","SignUpButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","SignUpSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","SignUpErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","requiredFieldMissingSummaryError","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","cancelButtonText","passwordEntryMismatchError","fieldIncorrectError","labelText","cssClassName","SignUpLabelComponent","SignUpInputComponent","observable","ImageList","images","_renderImageListItems","imageList","defaultImageSettings","disableLazyLoad","_image$imageSettings","_link$linkText","image","link","imageProps","imageLink","linkUrl","destinationUrl","imageLinkText","linkText","imageLinkAriaLabel","imageLinkOpenInNewTab","openInNewTab","linkAltText","linkAriaLabel","linkOpenInNewTab","_heading$tag","imageListTitle","imageListHeading","imageListContainer","imageListItem","imageListItemAnchorTag","imageListItems","imageListView","indexKey","altText","InteractiveFeatureCollection","_telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","handleTextChange","static","itemsCounter","keyIndex","indexItem","itemCounter","isMosaic","_this$props$config$cl","_title$tag","interactiveItems","slots","interactiveFeatureItems","itemsFeatureCounter","singleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","telemetryContent","vertical","createHeading","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionMobileContainer","singleSlideCarouselItemContainer","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionDesktopItems","_getFeatureItem","interactiveFeatureCollectionView","tileItem","InteractiveFeatureCollectionLinks","_mapEditableLinks","linkdata","editableLinks","payLoad","getPayloadObject","contentAction","etext","attributes","getTelemetryAttributes","editableLink","additionalProperties","onTelemetryClick","onTextChange","InteractiveFeatureItem","handleLinkTextChange","linkIndex","_this$props$config$li","featureItemLinks","_createHeading","_createParagraph","_renderImage","featureItem","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","interactiveFeatureCollectionMosaicContainer","tabindex","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","moduleType","imagePropertyName","MagicNumber","FeatureItemViewComponent","renderMosaic","thisProps","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","renderCarousel"],"sourceRoot":""}