{"version":3,"file":"static/js/16.c24433deecc406c2c5ab.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/components/order-details.no-shipment-tracking.component.tsx?5523","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/request-invoice-modal.tsx?f9b5","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/invoices-list.tsx?2d55","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/invoices-list.view.tsx?8b51","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/components/invoice-details-products.component.tsx?bb1a","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.tsx?5602","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-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/invoice-details/components/invoice-details-header.tsx?a6c6","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/components/invoice-details-payment-summary.tsx?3434","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/components/invoice-details-products.tsx?8f29","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/helpers/invoice-data.ts?608f","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/invoice-details.tsx?b51a","webpack://Msdyn365.Commerce.Online/./src/modules/map/map.tsx?6111","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/write-review.view.tsx?6b75","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/account-profile.view.tsx?4ea1","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/account-welcome-tile.view.tsx?d739","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/invoice-details.view.tsx?dfe1","webpack://Msdyn365.Commerce.Online/./src/themes/gardner-theme/views/write-review.view.tsx?ec4d","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/buybox.view.tsx?aec4","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/ratings-histogram.view.tsx?6e01","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.view.tsx?2bed","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc","webpack://Msdyn365.Commerce.Online/./src/modules/invoice-details/invoice-details.view.tsx?3784","webpack://Msdyn365.Commerce.Online/./src/modules/map/map.view.tsx?5db9","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-template-list.view.tsx?46b6","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/invoice-error-component.tsx?2ff9","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/pay-invoice-component.tsx?6f61","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/helpers/pay-invoices.ts?30c0","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/invoices-filter-component.tsx?5fd4","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/invoices-table/components/invoices-table-header-component.tsx?f5e1","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/invoices-table/components/invoices-table-row-component.tsx?48db","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/helpers/invoice-status.ts?5841","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/invoices-table/invoices-table-component.tsx?9790","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/make-payment-component.tsx?1427","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/helpers/invoice-data.ts?00b1","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/request-invoice-button.tsx?9eb0"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { ICoreContext, IDateFormatOptions, IRequestContext } from '@msdyn365-commerce/core';\nimport { BusinessPartnerOperationRequest, BusinessPartnerOperationRequestDetails } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n IDataTableProps,\n IHeadingsProperty,\n ITableItemProps,\n ITableRowProps,\n Table,\n TableDataType\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsStatusData } from '../b2b-requests-status.data';\nimport { IB2bRequestsStatusProps } from '../b2b-requests-status.props.autogenerated';\n\nexport interface IB2bRequestsTableProps {\n moduleProps: IB2bRequestsStatusProps;\n isMobile: boolean;\n mobileExcludedColumns: string[];\n}\n\nexport interface IB2bRequestsTableResources {\n b2bRequestsTypeCreateProspect: string;\n b2bRequestsTypeAddUser: string;\n b2bRequestsTypeEditUser: string;\n b2bRequestsTypeDeleteUser: string;\n b2bRequestsTypeRequestAccountStatement: string;\n b2bRequestsTypeRequestInvoiceCopy: string;\n b2bRequestsTypeUnknown: string;\n b2bRequestsStatusRequested: string;\n b2bRequestsStatusProcessed: string;\n b2bRequestsStatusError: string;\n b2bRequestsNumberOfItems: string;\n b2bRequestsNumberOfItemsSingular: string;\n b2bRequestsNameDisplay: string;\n b2bRequestsPreviousText: string;\n b2bRequestsNextText: string;\n b2bRequestsUserColumn: string;\n b2bRequestsStatusColumn: string;\n b2bRequestsRequestDateColumn: string;\n b2bRequestsTypeColumn: string;\n b2bRequestsDescriptionColumn: string;\n b2bRequestsAccountStatementDetails: string;\n b2bRequestsInvoiceCopyDetails: string;\n businessUserSelectCheckBoxAriaLabelText?: string;\n sortByAscending?: string;\n sortByDescending?: string;\n}\n\nexport enum RequestsTableColumnHeader {\n Name = 'User',\n Status = 'Status',\n RequestDate = 'Request date',\n Type = 'Request type',\n Description = 'Request detail'\n}\n\nconst getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n};\n\nconst getUserName = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources) => {\n if (StringExtensions.isNullOrEmpty(request.UserFirstName)) {\n if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return '';\n }\n\n return request.UserLastName;\n } else if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return request.UserFirstName;\n }\n\n return resources.b2bRequestsNameDisplay.replace('{0}', request.UserFirstName!).replace('{1}', request.UserLastName!);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Gets the value to display for the request details.\n * @param request - The request to parse for the details.\n * @param resources - The resources.\n * @param context - The context.\n * @returns The string to display.\n */\nconst getDetails = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources, context: ICoreContext) => {\n if (!request.Details) {\n return '';\n }\n\n const requestDetails: BusinessPartnerOperationRequestDetails = request.Details;\n\n const accountStatementStartDateTime = formatDate(context, requestDetails.AccountStatementStartDateTime) || '';\n const accountStatementEndDateTime = formatDate(context, requestDetails.AccountStatementEndDateTime) || '';\n const invoiceId = requestDetails.InvoiceId ?? '';\n\n switch (request.TypeValue) {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 5:\n if (\n !StringExtensions.isNullOrEmpty(accountStatementStartDateTime) &&\n !StringExtensions.isNullOrEmpty(accountStatementEndDateTime)\n ) {\n return resources.b2bRequestsAccountStatementDetails\n .replace('{0}', accountStatementStartDateTime)\n .replace('{1}', accountStatementEndDateTime);\n }\n\n return '';\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 6:\n if (!StringExtensions.isNullOrEmpty(invoiceId)) {\n return resources.b2bRequestsInvoiceCopyDetails.replace('{0}', invoiceId);\n }\n\n return '';\n default:\n return '';\n }\n};\n\nconst createTableItems = (\n operationRequests: BusinessPartnerOperationRequest[] | undefined,\n props: IB2bRequestsStatusProps\n): ITableRowProps[] => {\n if (!ArrayExtensions.hasElements(operationRequests)) {\n return [];\n }\n\n return operationRequests.map(request => {\n return {\n row: [\n {\n id: props.resources.b2bRequestsTypeColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyTypeValue(request.TypeValue ?? 0, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsRequestDateColumn,\n type: TableDataType.Text,\n value: formatDate(props.context, request.CreatedDateTime)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsDescriptionColumn,\n type: TableDataType.Text,\n value: getDetails(request, props.resources, props.context)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsUserColumn,\n type: TableDataType.Text,\n value: getUserName(request, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsStatusColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyStatusValue(request.StatusValue ?? 0, props.resources)\n } as ITableItemProps\n ],\n isSelected: false,\n className: props.config.className\n };\n });\n};\n\nconst getDisplayFriendlyTypeValue = (typeValue: number, resources: IB2bRequestsTableResources): string => {\n switch (typeValue) {\n case 1:\n return resources.b2bRequestsTypeCreateProspect;\n case 2:\n return resources.b2bRequestsTypeAddUser;\n case 3:\n return resources.b2bRequestsTypeDeleteUser;\n case 4:\n return resources.b2bRequestsTypeEditUser;\n case 5:\n return resources.b2bRequestsTypeRequestAccountStatement;\n case 6:\n return resources.b2bRequestsTypeRequestInvoiceCopy;\n default:\n return resources.b2bRequestsTypeUnknown;\n }\n};\n\nconst getDisplayFriendlyStatusValue = (statusValue: number, resources: IB2bRequestsTableResources): string => {\n switch (statusValue) {\n case 1:\n return resources.b2bRequestsStatusProcessed;\n case 2:\n return resources.b2bRequestsStatusError;\n default:\n return resources.b2bRequestsStatusRequested;\n }\n};\n\nconst createTableProps = (tableProps: IB2bRequestsTableProps) => {\n const { context, data, resources } = tableProps.moduleProps;\n\n const tableData = createTableItems(data.operationRequests.result, tableProps.moduleProps);\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row\n .filter(item => {\n // Check that this is either not mobile or the column should be displayed when mobile.\n return !tableProps.isMobile || !tableProps.mobileExcludedColumns.includes(item.id);\n })\n .map(item => {\n return {\n name: item.id,\n sortable: true,\n ariaLabel: resources.columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources: {},\n headings: tableHeading,\n rows: tableData,\n className: `${tableProps.moduleProps.config.className}__table`,\n editLinkText: '',\n deleteLinkText: '',\n viewLinkText: '',\n enableToModify: false,\n actionLinkText: '',\n showCheckBoxes: false,\n isSortable: true,\n showPagination: true,\n minifyActions: tableProps.isMobile,\n excludedColumns: tableProps.isMobile ? tableProps.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context.request.query?.skip && !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: 10,\n prevText: resources.b2bRequestsPreviousText,\n nextText: resources.b2bRequestsNextText,\n paginationText: '',\n url: (context && getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n actions: {\n onDelete: undefined,\n onEdit: undefined,\n onView: undefined\n },\n businessUserSelectCheckBoxAriaLabelText: tableProps.moduleProps.resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: tableProps.moduleProps.resources.sortByAscending,\n sortByDescending: tableProps.moduleProps.resources.sortByDescending\n } as IDataTableProps;\n};\n\nexport const B2bRequestsTable: React.FC = (tableProps: IB2bRequestsTableProps) => {\n return ;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { format, Heading, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport { computed } from 'mobx';\nimport * as React from 'react';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\n\nimport { IB2bRequestsStatusData } from './b2b-requests-status.data';\nimport { IB2bRequestsStatusProps, IHeadingData } from './b2b-requests-status.props.autogenerated';\nimport { B2bRequestsTable } from './components/b2b-requests-table';\n\nexport interface IB2bRequestsStatusViewProps extends IB2bRequestsStatusProps {\n b2bRequestsStatus: IModuleProps;\n heading?: React.ReactNode;\n table: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsStatus component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsStatus extends React.PureComponent> {\n @computed get isMobile(): boolean {\n const size = isMobile({ variant: VariantType.Viewport, context: this.props.context.request });\n return size === 'xs';\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const className = config.className || '';\n\n const viewProps = {\n ...this.props,\n b2bRequestsStatus: {\n moduleProps: this.props,\n className\n },\n heading: this.renderHeader(className, config.heading),\n table: this.renderTable()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly renderHeader = (className: string, headingData: IHeadingData): React.ReactNode => {\n const itemCount = this.props.data.operationRequests.result?.length ?? 0;\n\n return (\n
\n \n {this.getItemNumberDisplayString(itemCount)}\n
\n );\n };\n\n /**\n * Returns columns that needs to be excluded for mobile view.\n * @returns Array of column names.\n */\n private readonly _retrieveExcludedColumns = (): string[] => {\n const { resources } = this.props;\n return [resources.b2bRequestsRequestDateColumn, resources.b2bRequestsDescriptionColumn, resources.b2bRequestsUserColumn];\n };\n\n private readonly renderTable = (): React.ReactNode => {\n return (\n \n );\n };\n\n private readonly getItemNumberDisplayString = (itemCount: number): string => {\n switch (itemCount) {\n case 0:\n return '';\n case 1:\n return format(this.props.resources.b2bRequestsNumberOfItemsSingular, itemCount);\n default:\n return format(this.props.resources.b2bRequestsNumberOfItems, itemCount);\n }\n };\n}\n\nexport default B2bRequestsStatus;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IB2bRequestsStatusViewProps } from './b2b-requests-status';\n\nconst B2bRequestsStatusView: React.FC = props => {\n const { b2bRequestsStatus, heading, table } = props;\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\n","import * as React from 'react';\r\nimport { INodeProps, Node } from \"@msdyn365-commerce-modules/utilities\";\r\n\r\nexport interface INoShipmentTrackingProps {\r\n noShipmentTrackingNodeProps: INodeProps;\r\n noShipmentTrackingResources: INoShipmentTrackingResources;\r\n}\r\n\r\nexport interface INoShipmentTrackingResources {\r\n noShippingFoundText: string;\r\n}\r\n\r\nexport const NoShipmentTrackingComponent: React.FC = (props: INoShipmentTrackingProps) => {\r\n const {\r\n noShipmentTrackingNodeProps,\r\n noShipmentTrackingResources: {\r\n noShippingFoundText = ''\r\n }\r\n } = props;\r\n\r\n const baseClassName = noShipmentTrackingNodeProps.className\r\n\r\n return (\r\n \r\n
{noShippingFoundText}
\r\n
\r\n );\r\n}","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\n\n/* ---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InvoiceModel } from '../helpers/invoice-data';\nimport { IInvoicesListResources } from '../invoices-list.props.autogenerated';\n\ninterface IRequestInvoiceModalProps {\n className: string;\n email: string;\n isModalOpen: boolean;\n submitRequestLabel: string;\n modalHeaderLabel: string;\n sendToEmailLabel: string;\n cancelLabel: string;\n searchPlaceholderLabel: string;\n invoices: InvoiceModel[];\n invoicesFoundString: string;\n singleInvoiceFoundString: string;\n searchButtonAltText: string;\n resources: IInvoicesListResources;\n toggle(): void;\n onSubmitRequest(invoiceId: string): void;\n}\n\n/**\n * On submit request click function.\n * @param selectedInvoiceIndex -Check is busy.\n * @param onClosing -On closing function.\n * @param filteredInvoices -Invoice modal.\n * @param onSubmitRequest -On submit request function.\n * @returns Call on submit request.\n */\nconst onSubmitRequestClick = (\n onClosing: () => void,\n filteredInvoices: InvoiceModel[],\n onSubmitRequest: (invoiceId: string) => void,\n checkboxRef: React.MutableRefObject\n) => () => {\n const defaultIndex = 0;\n let closingFlag: number = 0;\n\n filteredInvoices.map((invoice, index) => {\n const inputInvoice = checkboxRef.current[Number(index)] as React.RefObject;\n if (inputInvoice.current?.checked === true && index >= defaultIndex) {\n onSubmitRequest(invoice.id);\n closingFlag = closingFlag + 1;\n }\n });\n if (closingFlag <= filteredInvoices.length) {\n onClosing();\n }\n};\n\n/**\n * On search input change function.\n * @param setSearchInput -Set search input.\n * @returns Set search input function.\n */\nconst searchInputChangedHandler = (setSearchInput: React.Dispatch>) => (\n event: React.ChangeEvent\n) => {\n setSearchInput(event.target.value);\n};\n\n/**\n * Search entered handler.\n * @param invoices -InvoiceModel.\n * @param searchInput -String.\n * @param setFilteredInvoices -InvoiceModel action.\n * @param filteredInvoices -Filtered Invoices.\n * @param setSelectedInvoiceIndex -Selected Invoice Index.\n * @param setShouldShowSearchResults -Show search result action.\n * @param setInvoiceOptions -Invoice options action.\n * @param selectedInvoiceIndex -Selected invoice index.\n * @param className -String.\n * @returns Set invoice options.\n */\nconst searchEnteredHandler = (\n invoices: InvoiceModel[],\n searchInput: string,\n setFilteredInvoices: React.Dispatch>,\n filteredInvoices: InvoiceModel[],\n setSelectedInvoiceIndex: React.Dispatch>,\n setShouldShowSearchResults: React.Dispatch>,\n setInvoiceOptions: React.Dispatch>,\n selectedInvoiceIndex: number,\n className: string,\n checkboxRef: React.MutableRefObject\n) => () => {\n let updatedInvoices = filteredInvoices;\n if (!StringExtensions.isNullOrEmpty(searchInput)) {\n updatedInvoices = invoices.filter(invoice => invoice.id.toLocaleUpperCase().includes(searchInput.toLocaleUpperCase()));\n } else {\n updatedInvoices = invoices;\n }\n\n if (ArrayExtensions.hasElements(updatedInvoices)) {\n setFilteredInvoices(updatedInvoices);\n setSelectedInvoiceIndex(0);\n } else {\n setFilteredInvoices(updatedInvoices);\n setSelectedInvoiceIndex(-1);\n }\n setShouldShowSearchResults(true);\n\n setInvoiceOptions(\n renderInvoiceOptions(\n StringExtensions.isNullOrEmpty(searchInput) ? invoices : updatedInvoices,\n setSelectedInvoiceIndex,\n className,\n checkboxRef\n )\n );\n};\n\n/**\n * On cancel function.\n * @param onClosing -Closing function.\n * @param toggle -Toggle Function.\n * @returns Toggle function.\n */\nconst onCancelHandler = (onClosing: () => void, toggle: () => void) => () => {\n onClosing();\n toggle();\n};\n\n/**\n * On invoice select.\n * @param setSelectedInvoiceIndex -Set Selected Invoice Index.\n * @param index -Number.\n * @returns Set Selected Invoice Index.\n */\nconst onInvoiceSelectHandler = (setSelectedInvoiceIndex: (newIndex: number) => void, index: number) => () => {\n setSelectedInvoiceIndex(index);\n};\n\nconst renderInvoiceOptions = (\n filteredInvoices: InvoiceModel[],\n setSelectedInvoiceIndex: (newIndex: number) => void,\n className: string,\n checkboxRef: React.MutableRefObject\n) => {\n checkboxRef.current = filteredInvoices.map((_invoice, i) => checkboxRef.current[Number(i)] ?? React.createRef());\n return (\n
\n {filteredInvoices.map((invoice, index) => {\n const onInvoiceSelect = onInvoiceSelectHandler(setSelectedInvoiceIndex, index);\n\n const checkboxId = `invoice__${invoice.id}`;\n const checkboxName = `invoiceSelect__${invoice.id}`;\n\n return (\n
\n \n \n
\n );\n })}\n
\n );\n};\n\nexport const RequestInvoiceModal: React.FC = ({\n className,\n email,\n isModalOpen,\n toggle,\n modalHeaderLabel,\n sendToEmailLabel,\n submitRequestLabel,\n cancelLabel,\n onSubmitRequest,\n invoices,\n searchPlaceholderLabel,\n invoicesFoundString,\n singleInvoiceFoundString,\n searchButtonAltText,\n resources\n}) => {\n const [selectedInvoiceIndex, setSelectedInvoiceIndex] = React.useState(-1);\n const [filteredInvoices, setFilteredInvoices] = React.useState(invoices);\n const [searchInput, setSearchInput] = React.useState('');\n const [shouldShowSearchResults, setShouldShowSearchResults] = React.useState(false);\n const focusDelay = 110;\n const checkboxRef = React.useRef([]);\n const invoiceOptionsData = renderInvoiceOptions(filteredInvoices, setSelectedInvoiceIndex, className, checkboxRef);\n const [invoiceOptions, setInvoiceOptions] = React.useState(invoiceOptionsData);\n const focusElement = React.useRef(null);\n React.useEffect(() => {\n if (isModalOpen && focusElement.current) {\n setTimeout(() => {\n focusElement.current?.focus();\n }, focusDelay);\n }\n }, [isModalOpen]);\n\n /**\n * Sets the filtered invoices to the ones that were selected on the main screen.\n */\n const setFilteredInvoicesToSelectedInvoices = () => {\n setSelectedInvoiceIndex(-1);\n const selectedInvoices = invoices.filter(invoice => invoice.isSelected);\n if (ArrayExtensions.hasElements(selectedInvoices)) {\n setFilteredInvoices(selectedInvoices);\n\n // If only one invoice selected, auto select it\n if (selectedInvoices.length === 1) {\n setSelectedInvoiceIndex(0);\n }\n\n setInvoiceOptions(renderInvoiceOptions(selectedInvoices, setSelectedInvoiceIndex, className, checkboxRef));\n } else {\n setFilteredInvoices(invoices);\n setInvoiceOptions(renderInvoiceOptions(invoices, setSelectedInvoiceIndex, className, checkboxRef));\n }\n };\n\n const searchEntered = searchEnteredHandler(\n invoices,\n searchInput,\n setFilteredInvoices,\n filteredInvoices,\n setSelectedInvoiceIndex,\n setShouldShowSearchResults,\n setInvoiceOptions,\n selectedInvoiceIndex,\n className,\n checkboxRef\n );\n\n const onClosing = () => {\n setSelectedInvoiceIndex(-1);\n setFilteredInvoices(invoices);\n setSearchInput('');\n setShouldShowSearchResults(false);\n };\n\n /**\n * Sets the invoices that are possible to select when the dialog is opened.\n */\n const onOpened = () => {\n setSearchInput('');\n setFilteredInvoicesToSelectedInvoices();\n };\n\n const searchResultString = filteredInvoices.length === 1 ? singleInvoiceFoundString : invoicesFoundString;\n const invoicesFoundReplaceIndex = searchResultString.indexOf('{0}');\n\n return (\n \n \n {modalHeaderLabel}\n \n \n
\n \n
\n {email}\n
\n
\n {shouldShowSearchResults && (\n
\n {searchResultString.substring(0, invoicesFoundReplaceIndex)}\n {filteredInvoices.length}\n {searchResultString.substring(invoicesFoundReplaceIndex + 3)}\n
\n )}\n
\n \n \n
\n {invoiceOptions}\n
\n
\n
\n \n \n {submitRequestLabel}\n \n \n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync, isOboRequest } from '@msdyn365-commerce/core';\nimport {\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUsersDataActions,\n InvoicePaidStatus,\n InvoiceSearchCriteria,\n IQueryResultSettings,\n OrderInvoice\n} from '@msdyn365-commerce/retail-proxy';\nimport { getCurrentAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport {\n ArrayExtensions,\n getCustomer,\n GetCustomerInput,\n getInvoices,\n GetInvoicesInput,\n IQueryResultSettingsModuleConfig,\n QueryResultSettingsProxy,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, Button, Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\n\nimport { InvoiceErrorComponent } from './components/invoice-error-component';\nimport { InvoicesFilterComponent, InvoicesFilterState } from './components/invoices-filter-component';\nimport { InvoicesTableComponent } from './components/invoices-table/invoices-table-component';\nimport { IMakePaymentResources, MakePaymentComponent } from './components/make-payment-component';\nimport { RequestInvoiceButton } from './components/request-invoice-button';\nimport { RequestInvoiceModal } from './components/request-invoice-modal';\nimport { InvoiceModel } from './helpers/invoice-data';\nimport { IAddInvoicesToCartFailureResult } from './helpers/pay-invoices';\nimport { IInvoicesListData } from './invoices-list.data';\nimport { IInvoicesListProps } from './invoices-list.props.autogenerated';\n\nexport type InvoicesListStatus = 'LOADING' | 'SUCCESS' | 'FAILED' | 'EMPTY';\nexport type InvoiceErrorHost = 'ADDINVOICETOCART';\n\nexport interface IInvoicesListViewProps extends IInvoicesListProps {\n moduleProps: IModuleProps;\n\n header: JSX.Element;\n filter: JSX.Element;\n content?: JSX.Element;\n invoiceRequestModal?: JSX.Element;\n pagination?: JSX.Element;\n}\n\nexport interface IInvoiceErrorState {\n errorHost?: InvoiceErrorHost;\n errorReason?: IAddInvoicesToCartFailureResult;\n errorMessage: string;\n otherError?: string;\n errorCode?: string;\n}\n\nexport interface IInvoicesListState {\n invoices: InvoiceModel[];\n invoicesFilterState: InvoicesFilterState;\n errorState: IInvoiceErrorState;\n isInvoiceRequestModalOpen: boolean;\n isLoading: boolean;\n isOpen: boolean;\n isPageLoaded: boolean;\n payInvoiceErrorModalOpen: boolean;\n selectedButtonElement?: HTMLButtonElement | null;\n}\n\n/**\n * InvoicesList component.\n * @extends {React.Component, IInvoicesListState>}\n */\n@observer\nclass InvoicesList extends React.Component, IInvoicesListState> {\n private readonly _className: string = 'msc-invoices-list';\n\n private readonly payInvoiceRequestReference: React.RefObject;\n\n private readonly makePaymentReference: React.RefObject;\n\n private buttonChildReference: React.RefObject[] = [];\n\n private buttonChildPayButtonReference: React.RefObject[] = [];\n\n private readonly _queryResultSettings: IQueryResultSettings;\n\n private invoiceIds: string[] = [];\n\n constructor(props: IInvoicesListProps) {\n super(props);\n\n this._queryResultSettings = QueryResultSettingsProxy.fromModuleData(\n this.props.context.request,\n this.props.config as IQueryResultSettingsModuleConfig\n ).QueryResultSettings;\n this.payInvoiceRequestReference = React.createRef();\n this.makePaymentReference = React.createRef();\n this._updateInvoicesState = this._updateInvoicesState.bind(this);\n this._onAddToCartFailed = this._onAddToCartFailed.bind(this);\n this._onToggleInvoiceRequestModal = this._onToggleInvoiceRequestModal.bind(this);\n this._handleFilterStateChange = this._handleFilterStateChange.bind(this);\n this._loadMoreInvoices = this._loadMoreInvoices.bind(this);\n this._requestInvoice = this._requestInvoice.bind(this);\n this._requestSpecificInvoice = this._requestSpecificInvoice.bind(this);\n this._setPayInvoiceErrorModalClose = this._setPayInvoiceErrorModalClose.bind(this);\n this.state = {\n invoices: [],\n invoicesFilterState: InvoicesFilterState.ShowAll,\n isLoading: true,\n isOpen: true,\n isPageLoaded: false,\n errorState: { errorMessage: '' },\n isInvoiceRequestModalOpen: false,\n payInvoiceErrorModalOpen: false,\n selectedButtonElement: null\n };\n }\n\n public shouldComponentUpdate(nextProps: IInvoicesListProps, nextState: IInvoicesListState): 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 | null {\n const {\n config: { className = '', heading },\n context: {\n request: { channel },\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n },\n data: { customerBalance },\n resources: { invoicesListTitle, invoicesListDescTitle, invoicesListDescCount }\n } = this.props;\n\n const totalAmount = customerBalance.result?.OpenInvoiceBalance || 0;\n const amountText = `${formatCurrency(totalAmount.toFixed(2), currencyCode)} ${channel?.Currency || 'USD'}`;\n\n const totalCount = customerBalance.result?.OpenInvoiceCount || 0;\n const countText = invoicesListDescCount.replace('{0}', totalCount.toString());\n const invoicesListTitleHeading = heading?.text ?? invoicesListTitle;\n\n const headerClassName = `${this._className}__header`;\n\n const header = (\n
\n \n
\n
{invoicesListDescTitle}
\n
{amountText}
\n
{countText}
\n
\n
\n );\n\n const viewProps: IInvoicesListViewProps = {\n ...(this.props as IInvoicesListProps),\n moduleProps: {\n moduleProps: this.props,\n className: classnames(this._className, className)\n },\n header,\n invoiceRequestModal: this._renderInvoiceRequestModal(),\n filter: this._renderInvoicesFilter(this._className),\n pagination: this._renderPagination()\n };\n\n if (!this.state.isPageLoaded) {\n return this.props.renderView(viewProps);\n }\n\n if (ArrayExtensions.hasElements(this.state.invoices)) {\n viewProps.content = this._renderListContainer();\n } else {\n viewProps.content = this._renderEmptyInvoiceLinesPageContent();\n }\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public async componentDidMount(): Promise {\n await this.props.data.customer;\n const invoicesData = await this.props.data.invoices;\n this._initializeWithInvoices(invoicesData);\n\n reaction(\n () => this.state.isInvoiceRequestModalOpen,\n async () => {\n if (this.invoiceIds && !this.state.isInvoiceRequestModalOpen) {\n const context = { callerContext: this.props.context.actionContext };\n const b2bUserId: string = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\n for (const invoiceId of this.invoiceIds) {\n await BusinessPartnerUsersDataActions.requestInvoiceCopyAsync(\n context,\n b2bUserId,\n invoiceId,\n BusinessPartnerOperationDeliveryType.Email\n );\n }\n this.invoiceIds = [];\n }\n }\n );\n }\n\n private _initializeWithInvoices(invoicesData: OrderInvoice[]): void {\n const invoices = invoicesData.map((invoice, index) => {\n this.buttonChildReference[Number(index)] = React.createRef();\n this.buttonChildPayButtonReference[Number(index)] = React.createRef();\n return new InvoiceModel(invoice);\n });\n this.setState({\n invoices,\n isLoading: false,\n isPageLoaded: true\n });\n }\n\n private _addInvoices(invoicesData: OrderInvoice[]): void {\n const newInvoices = invoicesData.map(invoice => new InvoiceModel(invoice));\n const invoices = this.state.invoices.concat(newInvoices);\n this.setState({\n invoices,\n isLoading: false\n });\n }\n\n private _renderEmptyInvoiceLinesPageContent(): JSX.Element {\n const containerClass = `${this._className}__empty-lines__container`;\n const actionsContainerClass = `${containerClass}__actions`;\n return (\n
\n
{this.props.resources.invoiceEmptyInvoiceLinesTitle}
\n
{this.props.resources.invoiceEmptyInvoiceLinesDescription}
\n
\n \n {this.props.resources.invoiceEmptyInvoiceLinesContinueShoppingButtonText}\n \n
\n
\n );\n }\n\n private _renderListContainer(): JSX.Element {\n const containerClass = `${this._className}__container`;\n const containerHeaderClass = `${containerClass}__header`;\n const containerContentClass = `${containerClass}__content`;\n const isOnBehalfOfRequest = isOboRequest(this.props.context.request);\n\n return (\n
\n
\n {this._renderMakePayment(containerHeaderClass, isOnBehalfOfRequest)}\n {this._renderInvoiceRequestButton()}\n
\n
{this._renderInvoiceErrors()}
\n
{this._renderInvoicesList(containerContentClass)}
\n
\n );\n }\n\n private _updateInvoicesState(): void {\n this.setState({\n invoices: this.state.invoices\n });\n }\n\n private async _getInvoicesSearchCriteria(state: InvoicesFilterState): Promise {\n const searchCriteria: InvoiceSearchCriteria = {};\n\n const context = this.props.context.actionContext;\n\n const businessPartner = await getCurrentAsync({ callerContext: context });\n searchCriteria.BusinessPartnerId = businessPartner?.BusinessPartnerId;\n\n const customer = await getCustomer(new GetCustomerInput(context.requestContext.apiSettings), context);\n searchCriteria.CustomerId = customer?.AccountNumber;\n\n switch (state) {\n case InvoicesFilterState.ShowAll:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.None];\n break;\n case InvoicesFilterState.Paid:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.Paid];\n break;\n case InvoicesFilterState.PartiallyPaid:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.PartiallyPaid];\n break;\n case InvoicesFilterState.Unpaid:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.Unpaid];\n break;\n default:\n throw new Error('Failed to process unknown invoices filter state.');\n }\n\n return searchCriteria;\n }\n\n private async _handleFilterStateChange(state: InvoicesFilterState): Promise {\n this.setState({\n invoicesFilterState: state,\n isLoading: true\n });\n\n const searchCriteria = await this._getInvoicesSearchCriteria(state);\n\n if (this._queryResultSettings.Paging) {\n this._queryResultSettings.Paging.Skip = 0;\n }\n\n const invoices = await getInvoices(\n new GetInvoicesInput(searchCriteria, this._queryResultSettings),\n this.props.context.actionContext\n );\n this._initializeWithInvoices(invoices);\n }\n\n private _renderInvoicesFilter(className: string): JSX.Element {\n const containerClass = `${this._className}__container`;\n const containerContentClass = `${containerClass}__content`;\n const filterClassName = `${className}__filter`;\n return (\n
\n
{this._renderInvoiceInCartPaymentMessage()}
\n \n
\n );\n }\n\n private _renderInvoicesList(className: string): JSX.Element {\n const tableClassName = `${className}__table`;\n return (\n \n );\n }\n\n private _onAddToCartFailed(newErrorState: IInvoiceErrorState, reference?: React.RefObject): void {\n const errorState = { ...newErrorState };\n errorState.errorHost = 'ADDINVOICETOCART';\n errorState.errorMessage =\n newErrorState.errorReason?.failureReason === 'EMPTYINPUT'\n ? this.props.resources.invoiceErrorInvoiceIdNotExist\n : this.props.resources.invoiceErrorFailedAddInvoiceToCart;\n\n const shouldShowAdditionalInfoInPopup =\n errorState.errorCode === 'Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines';\n this.setState({ errorState, payInvoiceErrorModalOpen: shouldShowAdditionalInfoInPopup, selectedButtonElement: reference?.current });\n }\n\n private _renderMakePayment(className: string, disabled: boolean): JSX.Element {\n const id = `${className}__make-payment`;\n const makePaymentResources: IMakePaymentResources = {\n makePaymentButtonText: this.props.resources.makePaymentButtonText,\n makePaymentButtonAriaLabel: this.props.resources.makePaymentButtonAriaLabel\n };\n\n const selectedInvoices = this._getSelectedInvoices();\n\n return (\n \n );\n }\n\n private _setPayInvoiceErrorModalClose(): void {\n this.setState({\n payInvoiceErrorModalOpen: false\n });\n this.state.selectedButtonElement?.focus();\n }\n\n private _renderInvoiceErrors(): JSX.Element {\n const {\n resources: {\n payInvoiceErrorDialogHeader,\n payInvoiceErrorDialogBodyErrorTitle,\n payInvoiceErrorDialogBodyErrorDescription,\n payInvoiceErrorDialogFooterGoToCartButtonText,\n payInvoiceErrorDialogFooterCancelButtonText\n }\n } = this.props;\n\n const cartUrl = getUrlSync('cart', this.props.context.actionContext) || '';\n\n const errorClassName = `${this._className}__errors`;\n\n return (\n \n );\n }\n\n private _renderInvoiceInCartPaymentMessage(): JSX.Element {\n const cart = this.props.data.cart?.result;\n\n if (!cart?.hasInvoiceLine) {\n return <>;\n }\n\n return (\n \n \n \n );\n }\n\n // Dismiss alert.\n private readonly _onDismiss = () => {\n this.setState({\n isOpen: false\n });\n };\n\n private _renderPagination(): JSX.Element | undefined {\n const { data, resources } = this.props;\n const invoices = data?.invoices?.result;\n if (!invoices || invoices.length < this._queryResultSettings.Paging!.Top!) {\n return undefined;\n }\n\n return (\n \n {resources.invoicesLoadMore}\n \n );\n }\n\n private async _loadMoreInvoices(): Promise {\n this.setState({ isLoading: true });\n const searchCriteria = await this._getInvoicesSearchCriteria(this.state.invoicesFilterState);\n if (this._queryResultSettings.Paging) {\n this._queryResultSettings.Paging.Skip! += this._queryResultSettings.Paging.Top!;\n }\n const newInvoices = await getInvoices(\n new GetInvoicesInput(searchCriteria, this._queryResultSettings),\n this.props.context.actionContext\n );\n this._addInvoices(newInvoices);\n }\n\n private _renderInvoiceRequestModal(): JSX.Element {\n const customer = this.props.data.customer.result;\n const {\n invoiceRequestModalCancelLabel,\n invoiceRequestModalSubmitLabel,\n invoiceRequestModalHeaderLabel,\n invoiceRequestModalSendToEmailLabel,\n invoiceRequestModalSearch,\n invoiceRequestModalInvoiceSearchDisplay,\n invoiceRequestModalSingleInvoiceSearchDisplay,\n invoiceRequestModalSearchButton\n } = this.props.resources;\n\n return (\n \n );\n }\n\n private _onToggleInvoiceRequestModal(): void {\n this.setState({\n isInvoiceRequestModalOpen: !this.state.isInvoiceRequestModalOpen\n });\n if (this.state.isInvoiceRequestModalOpen) {\n this.state.selectedButtonElement?.focus();\n }\n }\n\n /**\n * Request specific invoice function.\n */\n private readonly _onToggleInvoiceRequestParentModal = () => {\n this.setState(\n {\n selectedButtonElement: this.payInvoiceRequestReference.current\n },\n () => {\n this._onToggleInvoiceRequestModal();\n }\n );\n };\n\n private _renderInvoiceRequestButton(): JSX.Element | null {\n const { invoiceRequestButtonLabel } = this.props.resources;\n const customer = this.props.data.customer.result;\n\n if (StringExtensions.isNullOrWhitespace(customer?.Email)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _requestInvoice(invoiceId: string): void {\n this.invoiceIds.push(invoiceId);\n this._onToggleInvoiceRequestModal();\n }\n\n private _getSelectedInvoices(): InvoiceModel[] {\n let selectedInvoices = this.state.invoices.filter(invoice => invoice.isSelected);\n if (!ArrayExtensions.hasElements(selectedInvoices)) {\n selectedInvoices = this.state.invoices;\n }\n\n return selectedInvoices;\n }\n\n private _requestSpecificInvoice(\n specificInvoice: InvoiceModel,\n requestInvoiceButtonReference: React.RefObject\n ): void {\n this.state.invoices.forEach((invoice: InvoiceModel) => {\n if (invoice === specificInvoice) {\n invoice.isSelected = true;\n } else {\n invoice.isSelected = false;\n }\n });\n this.setState({\n selectedButtonElement: requestInvoiceButtonReference.current\n });\n this._onToggleInvoiceRequestModal();\n }\n}\n\nexport default InvoicesList;\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 * as React from 'react';\n\nimport { IInvoicesListViewProps } from './invoices-list';\n\nexport const InvoiceListView: React.FC = props => {\n const { header, filter, content, invoiceRequestModal, pagination } = props;\n\n return (\n \n {header}\n {invoiceRequestModal}\n {filter}\n {content}\n {pagination}\n \n );\n};\n\nexport default InvoiceListView;\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IComponent, IComponentProps, ICoreContext, IImageSettings, Image, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { getFallbackImageUrl, getProductPageUrlSync, ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport React from 'react';\r\n\r\nimport { InvoicePaidStatus, OrderInvoice, SalesInvoice, SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { IPayableInvoice } from '@msdyn365-commerce-modules/invoice';\r\n\r\n// import { IInvoiceProductLine, InvoiceDetailsModel } from '../helpers/invoice-data';\r\n\r\nexport interface IInvoicePaymentDetails {\r\n totalDiscount?: number;\r\n subtotal?: number;\r\n totalCharges?: number;\r\n totalTax?: number;\r\n totalAmount?: number;\r\n currencyCode?: string;\r\n}\r\n\r\nexport interface IInvoiceProductLine extends SalesInvoiceLine {\r\n primaryImageUrl?: string;\r\n}\r\n\r\n/**\r\n * Represents invoice details data model.\r\n */\r\nexport class InvoiceDetailsModel implements IPayableInvoice, IInvoicePaymentDetails {\r\n public id: string;\r\n\r\n public invoiceDate?: Date;\r\n\r\n public customerAccountNumber?: string;\r\n\r\n public customerName?: string;\r\n\r\n public dueDate?: Date;\r\n\r\n public amountDue?: number;\r\n\r\n public status?: InvoicePaidStatus;\r\n\r\n public lines: IInvoiceProductLine[];\r\n\r\n public totalDiscount?: number;\r\n\r\n public subtotal?: number;\r\n\r\n public totalCharges?: number;\r\n\r\n public totalTax?: number;\r\n\r\n public totalAmount?: number;\r\n\r\n public currencyCode?: string;\r\n\r\n public constructor(invoice: OrderInvoice, invoiceDetails: SalesInvoice, products: SimpleProduct[]) {\r\n this.id = invoice.Id || '';\r\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\r\n this.customerName = invoice.CustomerName;\r\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\r\n this.amountDue = invoice.AmountBalance;\r\n this.status = invoice.InvoicePaidStatusValue;\r\n this.lines = (invoiceDetails.SalesInvoiceLine || []).map(line => {\r\n const productLine: IInvoiceProductLine = {\r\n ...line,\r\n primaryImageUrl: products.find(product => product.RecordId === line.RecordId)?.PrimaryImageUrl\r\n };\r\n return productLine;\r\n });\r\n\r\n this.totalDiscount = invoiceDetails.TotalDiscount;\r\n this.subtotal = invoiceDetails.InvoiceSubtotal;\r\n this.totalCharges = invoiceDetails.TotalCharges;\r\n this.totalTax = invoiceDetails.TotalTaxAmount;\r\n this.totalAmount = invoice.TotalAmount;\r\n this.currencyCode = invoice.CurrencyCode;\r\n }\r\n\r\n public get canBePaid(): boolean {\r\n return this.status !== InvoicePaidStatus.Paid;\r\n }\r\n}\r\n\r\n\r\nexport interface IInvoiceDetailsProductsData {\r\n invoiceDetails: InvoiceDetailsModel;\r\n}\r\n\r\nexport interface IInvoiceDetailsProductsResources {\r\n invoiceProductColor: string;\r\n invoiceProductSize: string;\r\n invoiceProductStyle: string;\r\n invoiceQuantity: string;\r\n}\r\n\r\nexport interface IInvoiceDetailsProductsProps extends IComponentProps {\r\n context: ICoreContext;\r\n className: string;\r\n imageSettings?: IImageSettings;\r\n resources: IInvoiceDetailsProductsResources;\r\n}\r\n\r\nexport interface IInvoiceDetailsProductsComponent extends IComponent {\r\n}\r\n\r\nconst _renderProductDimensions = (className: string, resources: IInvoiceDetailsProductsResources, product: SalesInvoiceLine): JSX.Element => {\r\n return (\r\n
\r\n {StringExtensions.isNullOrWhitespace(product.ColorName) ? null :
\r\n {resources.invoiceProductColor.replace('{0}', product.ColorName!)}\r\n
}\r\n {StringExtensions.isNullOrWhitespace(product.SizeName) ? null :
\r\n {resources.invoiceProductSize.replace('{0}', product.SizeName!)}\r\n
}\r\n {StringExtensions.isNullOrWhitespace(product.StyleName) ? null :
\r\n {resources.invoiceProductStyle.replace('{0}', product.StyleName!)}\r\n
}\r\n
\r\n );\r\n};\r\n\r\nconst _renderProductImage = (className: string, context: ICoreContext, product: IInvoiceProductLine, imageSettings?: IImageSettings): JSX.Element | null => {\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=315&h=315&m=6', w: 0, h: 0 },\r\n lg: { q: 'w=315&h=315&m=6', w: 0, h: 0 },\r\n xl: { q: 'w=315&h=315&m=6', w: 0, h: 0 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n };\r\n\r\n if (imageSettings) {\r\n imageSettings.cropFocalRegion = true;\r\n }\r\n\r\n const fallbackImage = getFallbackImageUrl(product.ItemId, context.actionContext.requestContext.apiSettings);\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\r\n if (amount === undefined) {\r\n return '';\r\n }\r\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\r\n};\r\n\r\nconst InvoiceDetailsProducts: React.FC = (props: IInvoiceDetailsProductsProps): JSX.Element => {\r\n const { className, data: { invoiceDetails }, resources } = props;\r\n\r\n const productLineClass = `${className}__product-line`;\r\n const productLineInfoContainerClass = `${productLineClass}__product-info-container`;\r\n const productLineDetailsClass = `${productLineInfoContainerClass}__product-details`;\r\n const productLineSmallDetailsClass = `${productLineDetailsClass}__small-details`;\r\n\r\n return (\r\n
\r\n {\r\n invoiceDetails.lines.map(product => {\r\n const quantity = product.Quantity || 1;\r\n\r\n let productUrl = '';\r\n if (!ObjectExtensions.isNullOrUndefined(product.ProductName) &&\r\n !ObjectExtensions.isNullOrUndefined(product.RecordId)) {\r\n productUrl = getProductPageUrlSync(product.ProductName, product.RecordId, props.context.actionContext);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {_renderProductImage(`${productLineInfoContainerClass}__product-image`, props.context, product)}\r\n
\r\n \r\n {`${product.ItemId} - ${product.ProductName}`}\r\n \r\n
\r\n {_renderProductDimensions(`${productLineSmallDetailsClass}__dimensions`, resources, product)}\r\n
\r\n {formatAmount(props.context, product.Price, invoiceDetails.currencyCode)}\r\n
\r\n
\r\n {resources.invoiceQuantity.replace('{0}', quantity.toString())}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {formatAmount(props.context, product.NetAmount, invoiceDetails.currencyCode)}\r\n
\r\n
\r\n );\r\n })\r\n }\r\n
\r\n );\r\n};\r\n\r\n// @ts-expect-error\r\nexport const InvoiceDetailsProductsComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\r\n 'InvoiceDetailsProductsComponent',\r\n { component: InvoiceDetailsProducts }\r\n);\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IImageListConfig, IImageListProps, IImagesData } from './image-list.props.autogenerated';\n\n/**\n * The interface for IImageListViewProps.\n */\nexport interface IImageListViewProps extends IImageListProps {\n imageList: IModuleProps;\n imageListHeading?: React.ReactNode;\n imageListContainer: INodeProps;\n imageListItem: INodeProps;\n imageListItemAnchorTag: INodeProps;\n imageListItems: IImageListItem[] | undefined;\n}\n\n/**\n * The interface for IImageListItem.\n */\nexport interface IImageListItem {\n image: JSX.Element | undefined;\n text: JSX.Element | undefined;\n link: string | undefined;\n linkAltText: string | undefined;\n linkAriaLabel: string | undefined;\n linkOpenInNewTab?: boolean;\n}\n\n/**\n *\n * ImageList component.\n * @extends {React.PureComponent>}\n */\nclass ImageList extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { heading } = this.props.config;\n const imageListTitle = heading && ;\n const viewProps: IImageListViewProps = {\n ...this.props,\n imageList: {\n moduleProps: this.props,\n className: classnames('ms-image-list', this.props.config.className),\n tag: 'div'\n },\n imageListHeading: imageListTitle,\n imageListContainer: {\n className: 'ms-image-list__list',\n role: 'list',\n tag: 'ul'\n },\n imageListItem: {\n className: 'ms-image-list__list-item',\n role: 'listitem',\n tag: 'li'\n },\n imageListItemAnchorTag: {\n tag: 'a',\n className: 'ms-image-list__link',\n role: 'link'\n },\n imageListItems: this._renderImageListItems()\n };\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle paragraph change.\n * @param index - Index of image item in array of image items.\n * @returns Void.\n */\n public handleParagraphChange = (index: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.images![index]) {\n this.props.config.images![index].paragraph = event.target.value;\n }\n };\n\n /**\n * Render list of images.\n * @returns List of images with text and redirection link.\n */\n private readonly _renderImageListItems = (): IImageListItem[] | undefined => {\n const imageList: IImagesData[] | undefined = this.props.config.images;\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n lg: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n xl: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 }\n },\n lazyload: false,\n disableLazyLoad: true\n };\n return imageList?.map((item, index) => {\n const { image, link, paragraph } = item;\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: (image?.imageSettings ?? defaultImageSettings) as Msdyn365.IImageSettings | undefined\n };\n\n const imageLink: string | undefined = link?.linkUrl.destinationUrl;\n const imageLinkText: string | undefined = link?.linkText ?? link?.ariaLabel;\n const imageLinkAriaLabel: string | undefined = link?.ariaLabel;\n const imageLinkOpenInNewTab = link?.openInNewTab;\n\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\n const imageImage = (\n \n );\n\n const imageText = paragraph && (\n \n );\n const imageListItem: IImageListItem = {\n image: imageImage,\n text: imageText,\n link: imageLink,\n linkAltText: imageLinkText,\n linkAriaLabel: imageLinkAriaLabel,\n linkOpenInNewTab: imageLinkOpenInNewTab\n };\n return imageListItem;\n });\n };\n}\n\nexport default ImageList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 { IComponent, IComponentProps, ICoreContext, IDateFormatOptions, isOboRequest, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { IInvoiceErrorState, IPayInvoiceResources, PayInvoiceComponent } from '@msdyn365-commerce-modules/invoice';\nimport React from 'react';\n\nimport { InvoiceDetailsModel } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsHeaderData {\n invoiceDetails: InvoiceDetailsModel;\n}\n\nexport interface IInvoiceDetailsHeaderResources extends IPayInvoiceResources {\n invoiceOrderItem: string;\n invoiceOrderItems: string;\n invoiceIdLabel: string;\n invoicePlacedByLabel: string;\n invoiceAmountDueText: string;\n invoicePaymentDueDateText: string;\n}\n\nexport interface IInvoiceDetailsHeaderProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n resources: IInvoiceDetailsHeaderResources;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\nexport interface IInvoiceDetailsHeaderComponent extends IComponent {}\n\nconst formatShortDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'numeric', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst formatLongDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst InvoiceDetailsHeader: React.FC = (props: IInvoiceDetailsHeaderProps): JSX.Element => {\n const {\n className,\n data: { invoiceDetails },\n resources,\n onError\n } = props;\n\n const invoiceNumberText = resources.invoiceIdLabel.replace('{0}', invoiceDetails.id);\n\n const invoiceOrderItemsText =\n invoiceDetails.lines.length === 1\n ? resources.invoiceOrderItem\n : resources.invoiceOrderItems.replace('{0}', invoiceDetails.lines.length.toString());\n\n const invoiceInfoContainerClassName = `${className}__invoice-info-container`;\n const orderInfoContainerClassName = `${invoiceInfoContainerClassName}__order-info-container`;\n const orderInfoClassName = `${orderInfoContainerClassName}__order-info`;\n const orderMainInfoClassName = `${orderInfoClassName}__main-info`;\n const orderDetailsClassName = `${orderInfoClassName}__details`;\n `${className}__actions`;\n const actionsClassName = `${className}__actions`;\n const amountSummaryClassName = `${invoiceInfoContainerClassName}__amount-summary`;\n const orderDate = formatShortDate(props.context, invoiceDetails.invoiceDate);\n\n const dueDate = formatLongDate(props.context, invoiceDetails.dueDate);\n const dueDateText = resources.invoicePaymentDueDateText.replace('{0}', dueDate);\n const isOnBehalfOfRequest = isOboRequest(props.context.request);\n\n return (\n
\n
{invoiceNumberText}
\n
\n
\n
\n
\n
\n {resources.invoicePlacedByLabel}\n {invoiceDetails.customerName}\n
\n
\n
\n
{orderDate}
\n
{invoiceOrderItemsText}
\n
\n
\n
\n
\n
{resources.invoiceAmountDueText}
\n
\n {formatAmount(props.context, invoiceDetails.amountDue, invoiceDetails.currencyCode)}\n
\n
{dueDateText}
\n
\n
\n
\n \n
\n
\n );\n};\n\nexport const InvoiceDetailsHeaderComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsHeaderComponent\n>('InvoiceDetailsHeaderComponent', { component: InvoiceDetailsHeader });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { IInvoicePaymentDetails } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsPaymentDetailsData {\n invoicePaymentDetails: IInvoicePaymentDetails;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsResources {\n invoicePaymentDiscounts: string;\n invoicePaymentSubtotal: string;\n invoicePaymentCharges: string;\n invoicePaymentTax: string;\n invoicePaymentInvoiceTotal: string;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n resources: IInvoiceDetailsPaymentDetailsResources;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsComponent extends IComponent {}\n\ninterface IInvoicePaymentLineProps {\n label: string;\n value: number;\n className: string;\n}\n\nconst InvoiceDetailsPaymentDetails: React.FC = (\n props: IInvoiceDetailsPaymentDetailsProps\n): JSX.Element | null => {\n const {\n className,\n data: { invoicePaymentDetails },\n resources\n } = props;\n\n const lineClassName = `${className}__line`;\n\n const lines: IInvoicePaymentLineProps[] = [];\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalDiscount)) {\n lines.push({\n label: resources.invoicePaymentDiscounts,\n value: invoicePaymentDetails.totalDiscount,\n className: `${lineClassName}-total-discount`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.subtotal)) {\n lines.push({\n label: resources.invoicePaymentSubtotal,\n value: invoicePaymentDetails.subtotal,\n className: `${lineClassName}-subtotal`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalCharges)) {\n lines.push({\n label: resources.invoicePaymentCharges,\n value: invoicePaymentDetails.totalCharges,\n className: `${lineClassName}-total-charges`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalTax)) {\n lines.push({\n label: resources.invoicePaymentTax,\n value: invoicePaymentDetails.totalTax,\n className: `${lineClassName}-total-tax`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalAmount)) {\n lines.push({\n label: resources.invoicePaymentInvoiceTotal,\n value: invoicePaymentDetails.totalAmount,\n className: `${lineClassName}-total-amount`\n });\n }\n\n if (!ArrayExtensions.hasElements(lines)) {\n return null;\n }\n\n return (\n
\n {lines.map(line => {\n return (\n
\n
{line.label}
\n
\n {props.context.cultureFormatter.formatCurrency(line.value, invoicePaymentDetails.currencyCode)}\n
\n
\n );\n })}\n
\n );\n};\n\nexport const InvoiceDetailsPaymentDetailsComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsPaymentDetailsComponent\n>('InvoiceDetailsPaymentDetailsComponent', { component: InvoiceDetailsPaymentDetails });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, IImageSettings, Image, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { SalesInvoiceLine } from '@msdyn365-commerce/retail-proxy';\nimport { getFallbackImageUrl, getProductPageUrlSync, ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\n\nimport { IInvoiceProductLine, InvoiceDetailsModel } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsProductsData {\n invoiceDetails: InvoiceDetailsModel;\n}\n\nexport interface IInvoiceDetailsProductsResources {\n invoiceProductColor: string;\n invoiceProductSize: string;\n invoiceProductStyle: string;\n invoiceQuantity: string;\n}\n\nexport interface IInvoiceDetailsProductsProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n imageSettings?: IImageSettings;\n resources: IInvoiceDetailsProductsResources;\n}\n\nexport interface IInvoiceDetailsProductsComponent extends IComponent {}\n\nconst _renderProductDimensions = (\n className: string,\n resources: IInvoiceDetailsProductsResources,\n product: SalesInvoiceLine\n): JSX.Element => {\n return (\n
\n {StringExtensions.isNullOrWhitespace(product.ColorName) ? null : (\n
{resources.invoiceProductColor.replace('{0}', product.ColorName!)}
\n )}\n {StringExtensions.isNullOrWhitespace(product.SizeName) ? null : (\n
{resources.invoiceProductSize.replace('{0}', product.SizeName!)}
\n )}\n {StringExtensions.isNullOrWhitespace(product.StyleName) ? null : (\n
{resources.invoiceProductStyle.replace('{0}', product.StyleName!)}
\n )}\n
\n );\n};\n\nconst _renderProductImage = (\n className: string,\n context: ICoreContext,\n product: IInvoiceProductLine,\n imageSettings?: IImageSettings\n): JSX.Element | null => {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=80&h=94&m=6', w: 0, h: 0 },\n lg: { q: 'w=148&h=174&m=6', w: 0, h: 0 },\n xl: { q: 'w=148&h=174&m=6', w: 0, h: 0 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n if (imageSettings) {\n imageSettings.cropFocalRegion = true;\n }\n\n const fallbackImage = getFallbackImageUrl(\n product.ItemId,\n context.actionContext.requestContext.apiSettings,\n context.request.app?.config?.OmniChannelMedia\n );\n return (\n \n );\n};\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst InvoiceDetailsProducts: React.FC = (props: IInvoiceDetailsProductsProps): JSX.Element => {\n const {\n className,\n data: { invoiceDetails },\n resources\n } = props;\n\n const productLineClass = `${className}__product-line`;\n const productLineInfoContainerClass = `${productLineClass}__product-info-container`;\n const productLineDetailsClass = `${productLineInfoContainerClass}__product-details`;\n const productLineSmallDetailsClass = `${productLineDetailsClass}__small-details`;\n\n return (\n
\n {invoiceDetails.lines.map(product => {\n const quantity = product.Quantity || 1;\n\n let productUrl = '';\n if (!ObjectExtensions.isNullOrUndefined(product.ProductName) && !ObjectExtensions.isNullOrUndefined(product.ProductId)) {\n productUrl = getProductPageUrlSync(product.ProductName, product.ProductId, props.context.actionContext);\n }\n\n return (\n
\n
\n {_renderProductImage(`${productLineInfoContainerClass}__product-image`, props.context, product)}\n
\n \n {product.ProductName}\n \n
\n {_renderProductDimensions(`${productLineSmallDetailsClass}__dimensions`, resources, product)}\n
\n {formatAmount(props.context, product.Price, invoiceDetails.currencyCode)}\n
\n
\n {resources.invoiceQuantity.replace('{0}', quantity.toString())}\n
\n
\n
\n
\n
\n {formatAmount(props.context, product.NetAmount, invoiceDetails.currencyCode)}\n
\n
\n );\n })}\n
\n );\n};\n\nexport const InvoiceDetailsProductsComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsProductsComponent\n>('InvoiceDetailsProductsComponent', { component: InvoiceDetailsProducts });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus, OrderInvoice, SalesInvoice, SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IPayableInvoice } from '@msdyn365-commerce-modules/invoice';\n\nexport interface IInvoicePaymentDetails {\n totalDiscount?: number;\n subtotal?: number;\n totalCharges?: number;\n totalTax?: number;\n totalAmount?: number;\n currencyCode?: string;\n}\n\nexport interface IInvoiceProductLine extends SalesInvoiceLine {\n primaryImageUrl?: string;\n}\n\n/**\n * Represents invoice details data model.\n */\nexport class InvoiceDetailsModel implements IPayableInvoice, IInvoicePaymentDetails {\n public id: string;\n\n public invoiceDate?: Date;\n\n public customerAccountNumber?: string;\n\n public customerName?: string;\n\n public dueDate?: Date;\n\n public amountDue?: number;\n\n public status?: InvoicePaidStatus;\n\n public lines: IInvoiceProductLine[];\n\n public totalDiscount?: number;\n\n public subtotal?: number;\n\n public totalCharges?: number;\n\n public totalTax?: number;\n\n public totalAmount?: number;\n\n public currencyCode?: string;\n\n public constructor(invoice: OrderInvoice, invoiceDetails: SalesInvoice, products: SimpleProduct[]) {\n this.id = invoice.Id || '';\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\n this.customerName = invoice.CustomerName;\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\n this.amountDue = invoice.AmountBalance;\n this.status = invoice.InvoicePaidStatusValue;\n this.lines = (invoiceDetails.SalesInvoiceLine || []).map(line => {\n const productLine: IInvoiceProductLine = {\n ...line,\n primaryImageUrl: products.find(product => product.RecordId === line.ProductId)?.PrimaryImageUrl\n };\n return productLine;\n });\n\n this.totalDiscount = invoiceDetails.TotalDiscount;\n this.subtotal = invoiceDetails.InvoiceSubtotal;\n this.totalCharges = invoiceDetails.TotalCharges;\n this.totalTax = invoiceDetails.TotalTaxAmount;\n this.totalAmount = invoice.TotalAmount;\n this.currencyCode = invoice.CurrencyCode;\n }\n\n public get canBePaid(): boolean {\n return this.status !== InvoicePaidStatus.Paid;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IInvoiceErrorState, InvoiceErrorComponent } from '@msdyn365-commerce-modules/invoice';\nimport { getSimpleProductsAction, ProductInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InvoiceDetailsHeaderComponent } from './components/invoice-details-header';\nimport { InvoiceDetailsPaymentDetailsComponent } from './components/invoice-details-payment-summary';\nimport { InvoiceDetailsProductsComponent } from './components/invoice-details-products';\nimport { InvoiceDetailsModel } from './helpers/invoice-data';\nimport { IInvoiceDetailsData } from './invoice-details.data';\nimport { IInvoiceDetailsProps } from './invoice-details.props.autogenerated';\n\nexport interface IInvoiceDetailsViewState {\n invoiceDetails?: InvoiceDetailsModel;\n payInvoiceErrorModalOpen?: boolean;\n errorState?: IInvoiceErrorState;\n}\n\nexport interface IInvoiceDetailsViewProps extends IInvoiceDetailsProps {\n moduleProps: IModuleProps;\n header: JSX.Element;\n products: JSX.Element;\n paymentDetails: JSX.Element;\n payInvoiceError?: JSX.Element;\n}\n\n/**\n * InvoiceDetails component.\n * @extends {React.PureComponent>}\n */\nclass InvoiceDetails extends React.PureComponent, IInvoiceDetailsViewState> {\n private static readonly _className: string = 'msc-invoice-details';\n\n public constructor(props: IInvoiceDetailsProps) {\n super(props);\n\n this.state = { errorState: { errorMessage: '', otherError: '' } };\n this._onAddToCartFailed = this._onAddToCartFailed.bind(this);\n this._setPayInvoiceErrorModalClose = this._setPayInvoiceErrorModalClose.bind(this);\n }\n\n public async componentDidMount(): Promise {\n const invoice = await this.props.data.invoice;\n const invoiceDetails = await this.props.data.invoiceDetails;\n\n const products = await this._getProducts(invoiceDetails.SalesInvoiceLine, invoiceDetails.ChannelId);\n\n const invoiceDetailsModel = new InvoiceDetailsModel(invoice, invoiceDetails, products);\n\n this.setState({\n invoiceDetails: invoiceDetailsModel,\n payInvoiceErrorModalOpen: false,\n errorState: { errorMessage: '', otherError: '' }\n });\n }\n\n public render(): JSX.Element | null {\n if (!this.state.invoiceDetails) {\n return null;\n }\n\n const header = this._renderHeader();\n const products = this._renderProducts();\n const paymentDetails = this._renderPaymentDetails();\n const payInvoiceError = this._renderInvoiceErrors();\n\n const props: IInvoiceDetailsViewProps = {\n ...(this.props as IInvoiceDetailsProps),\n moduleProps: {\n moduleProps: this.props,\n className: InvoiceDetails._className\n },\n header,\n products,\n paymentDetails,\n payInvoiceError\n };\n\n return this.props.renderView(props);\n }\n\n private async _getProducts(invoiceLines: SalesInvoiceLine[] = [], channelId?: number): Promise {\n const productInputs = invoiceLines\n .filter(product => product.ProductId)\n .map(\n product =>\n new ProductInput(\n product.ProductId!,\n this.props.context.request.apiSettings,\n channelId,\n undefined,\n this.props.context.actionContext.requestContext\n )\n );\n return getSimpleProductsAction(productInputs, this.props.context.actionContext);\n }\n\n private _renderHeader(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n return (\n \n );\n }\n\n private _renderProducts(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n const { imageSettings } = this.props.config;\n return (\n \n );\n }\n\n private _renderPaymentDetails(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n return (\n \n );\n }\n\n private _onAddToCartFailed(newErrorState: IInvoiceErrorState): void {\n const errorState = { ...newErrorState };\n errorState.errorHost = 'ADDINVOICETOCART';\n\n // check for errorcode and otherError which contains the LocalizedMessage from API\n if (\n errorState &&\n errorState.errorCode === 'Microsoft_Dynamics_Commerce_Runtime_InvoiceLineAlreadyExistsInCart' &&\n errorState.otherError\n ) {\n this.setState({ errorState: errorState });\n }\n\n this.setState({ payInvoiceErrorModalOpen: true });\n }\n\n private _setPayInvoiceErrorModalClose(): void {\n this.setState({ payInvoiceErrorModalOpen: false });\n }\n\n private _renderInvoiceErrors(): JSX.Element {\n const {\n resources: {\n payInvoiceErrorDialogHeader,\n payInvoiceErrorDialogBodyErrorTitle,\n payInvoiceErrorDialogBodyErrorDescription,\n payInvoiceErrorDialogFooterGoToCartButtonText,\n payInvoiceErrorDialogFooterCancelButtonText\n }\n } = this.props;\n\n const cartUrl = getUrlSync('cart', this.props.context.actionContext) || '';\n\n const errorClassName = `${InvoiceDetails._className}__errors`;\n\n return (\n \n );\n }\n}\n\nexport default InvoiceDetails;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observable, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IMapData } from './map.data';\nimport { IMapProps, IPushpinOptionsData } from './map.props.autogenerated';\n\n/**\n * Header Interface.\n */\nexport interface IHeader {\n headerProps: INodeProps;\n heading: React.ReactNode;\n}\n\n/**\n * MapViewProps Interface.\n */\nexport interface IMapViewProps extends IMapProps {\n ModuleProps: IModuleProps;\n Header: IHeader;\n MapProps: INodeProps;\n Map: Microsoft.Maps.Map | undefined;\n}\n\n/**\n *\n * Map component.\n * @extends {React.Component>}\n */\n@observer\nclass Map extends React.Component> {\n @observable public map: Microsoft.Maps.Map | undefined;\n private timeout: number = 500;\n\n private readonly mapRef: React.RefObject = React.createRef();\n\n public constructor(props: IMapProps) {\n super(props);\n }\n\n public componentDidMount(): void {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n }\n } = this.props;\n\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n const loadMapAPIInput = {\n key: channel?.BingMapsApiKey,\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\n };\n\n if (\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded\n ) {\n this._initMap();\n if (this.props.data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n this._updateMapsForDistributor();\n } else {\n this._updateMap();\n }\n }\n\n when(\n () => !!this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n when(\n () => !!this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.loadMapApi ||\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi,\n () => {\n if (this.props.data.distributorSelectorStateManager?.result?.loadMapApi) {\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n } else {\n this.props.data.storeSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n }\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded,\n () => {\n this._initMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.storeSelectorStateManager.result?.context?.orgUnitStoreInformation,\n this.props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\n this.map\n ];\n },\n () => {\n this._updateMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.distributorSelectorStateManager?.result?.distributorList,\n this.props.data.distributorSelectorStateManager?.result?.selectedDistributorId,\n this.map\n ];\n },\n () => {\n this._updateMapsForDistributor();\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { heading, className },\n data\n } = this.props;\n\n const shouldDisplayMap = data.storeSelectorStateManager?.result?.isDialogOpen\n ? data.storeSelectorStateManager?.result?.listMapViewState.displayMap\n : data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen\n ? data.distributorSelectorStateManager?.result?.listMapViewState.displayMap\n : false;\n\n const viewProps: IMapViewProps = {\n ...this.props,\n ModuleProps: {\n tag: 'div',\n moduleProps: this.props,\n className: classname('ms-map', { show: shouldDisplayMap }, className)\n },\n Header: {\n headerProps: { className: 'ms-map__header' },\n heading: heading?.text && (\n \n )\n },\n MapProps: {\n tag: 'div',\n className: 'ms-map__body',\n ref: this.mapRef\n },\n Map: this.map\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Initialize the map.\n */\n private readonly _initMap = () => {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n }\n },\n data\n } = this.props;\n\n if (data.storeSelectorStateManager?.result?.isMapApiLoaded || data.distributorSelectorStateManager?.result?.isMapApiLoaded) {\n const mapLoadOptions = {\n credentials: channel?.BingMapsApiKey,\n pushpinAccessible: true\n };\n this.map = new Microsoft.Maps.Map(this.mapRef.current as HTMLElement, mapLoadOptions);\n Microsoft.Maps.Events.addHandler(this.map, 'click', async () => {\n if (data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n // Hide the distributor details that appear below the screen size of 768px.\n data.distributorSelectorStateManager?.result?.updateDistributorMapVisibility(false);\n await data.distributorSelectorStateManager?.result?.setSelectedDistributorId(undefined);\n } else {\n await data.storeSelectorStateManager?.result?.setSelectedStoreLocationId(undefined);\n }\n });\n }\n };\n\n private readonly _updateMapsForDistributor = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n const distributorInfoList = distributorSelectorStateManager?.distributorList;\n const selectedDistributorId = distributorSelectorStateManager?.selectedDistributorId;\n\n if (this.map && ArrayExtensions.hasElements(distributorInfoList)) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const distributorList = distributorInfoList.filter(distributor => distributor.OrgUnit !== undefined);\n\n for (const [index, distributorInfo] of distributorList.entries()) {\n const orgUnit = distributorInfo.OrgUnit;\n\n if (orgUnit?.Latitude && orgUnit.Longitude) {\n const isLocationSelected = selectedDistributorId === orgUnit?.RecordId;\n const options = this._getPushpinOptions(isLocationSelected, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(orgUnit?.Latitude, orgUnit.Longitude), options);\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleDistributorPushpinClick(orgUnit.RecordId);\n });\n isLocationSelected ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isLocationSelected) {\n mapLocation = orgUnit;\n }\n }\n }\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true } as Microsoft.Maps.IMapOptions);\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Update the map.\n */\n private readonly _updateMap = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager?.result;\n const orgUnitStoreInformation = storeSelectorStateManager?.context?.orgUnitStoreInformation;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n\n if (this.map && orgUnitStoreInformation) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const storeLocationList = orgUnitStoreInformation.filter(store => store.OrgUnitAvailability !== undefined);\n\n for (const [index, unitStoreInfo] of storeLocationList.entries()) {\n const storeLocation = unitStoreInfo.OrgUnitAvailability?.OrgUnitLocation;\n\n if (storeLocation?.Latitude && storeLocation.Longitude) {\n const isSelectedLocation = selectedStoreLocationId === storeLocation.OrgUnitNumber;\n const options = this._getPushpinOptions(isSelectedLocation, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(\n new Microsoft.Maps.Location(storeLocation.Latitude, storeLocation.Longitude),\n options\n );\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleClickEvent(storeLocation.OrgUnitNumber);\n });\n isSelectedLocation ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isSelectedLocation) {\n mapLocation = storeLocation;\n }\n }\n }\n\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n // Create a LocationRect from array of pushpins and set the map view.\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true } as Microsoft.Maps.IMapOptions);\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Handle click event.\n * @param orgUnitNumber - Organization unit number.\n */\n private readonly handleClickEvent = (orgUnitNumber: string | undefined): void => {\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager.result;\n storeSelectorStateManager?.setSelectedStoreLocationId(undefined);\n if (orgUnitNumber) {\n setTimeout(() => {\n storeSelectorStateManager?.setSelectedStoreLocationId(orgUnitNumber);\n }, this.timeout);\n }\n };\n\n /**\n * Handle the click event of the pushpin for distributors on the maps.\n * @param recordId - RecordId.\n */\n private readonly handleDistributorPushpinClick = (recordId: number | undefined): void => {\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n // Show the distributor details that appear below the screen size of 768px.\n distributorSelectorStateManager?.updateDistributorMapVisibility(true);\n distributorSelectorStateManager?.setSelectedDistributorId(undefined);\n if (recordId) {\n setTimeout(() => {\n distributorSelectorStateManager?.setSelectedDistributorId(recordId);\n }, this.timeout);\n }\n };\n\n /**\n * Get the pushpin option.\n * @param isSelectedLocation - Is selected location.\n * @param index - Index.\n * @param pushpinOptions - PushpinOptions.\n * @returns - The pushpin options.\n */\n private readonly _getPushpinOptions = (isSelectedLocation: boolean, index: number, pushpinOptions?: IPushpinOptionsData) => {\n const text = pushpinOptions?.showIndex ? (index + 1).toString() : undefined;\n\n const size = pushpinOptions?.size || 1;\n const color = isSelectedLocation ? pushpinOptions?.selectionColor || pushpinOptions?.color : pushpinOptions?.color;\n const icon = this._getSvgIcon(size, color, text);\n\n return {\n // Fallback if icon doesn't render properly\n color: isSelectedLocation ? pushpinOptions?.selectionColor : pushpinOptions?.color,\n icon\n };\n };\n\n private readonly _getSvgIcon = (size: number, color?: string, text?: string) => {\n const baseValue: number = 32;\n return `\n \n ${text ? `${text}` : ''}\n `;\n };\n}\n\nexport default Map;\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 { IImageSettings, Image, RichTextComponent } from '@msdyn365-commerce/core';\r\nimport { IWriteReviewData, IWriteReviewViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IWriteReviewProps } from '../definition-extensions/write-review.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Product Image.\r\n * @param props - WriteReview ViewProps.\r\n * @returns JSX Element.\r\n */\r\nconst renderProductImage = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\r\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\r\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\r\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\r\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\r\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\r\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Product Description.\r\n * @param props - WriteReview ViewProps.\r\n * @returns JSX Element.\r\n */\r\nconst renderProductDescription = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\r\n const product = props.data.product.result;\r\n return (\r\n \r\n
\r\n {renderProductImage(props)}\r\n
\r\n
\r\n
\r\n {product?.Name}\r\n
\r\n
\r\n {product?.Name}\r\n
\r\n
\r\n {product?.ItemId}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Create Write Review Modal.\r\n * @param props - WriteReview ViewProps.\r\n * @returns JSX Element.\r\n */\r\nconst createReviewModal = (props: IWriteReviewViewProps & IWriteReviewProps): JSX.Element => {\r\n const { resources, moduleProps, reviewModal } = props;\r\n\r\n return (\r\n \r\n {reviewModal.modalHeader}\r\n \r\n \r\n \r\n {renderProductDescription(props)}\r\n \r\n
\r\n {resources.selectRatingLabel}\r\n
\r\n {reviewModal.rating}\r\n
\r\n
\r\n \r\n {resources.reviewTitleLabel}\r\n {reviewModal.titleInput}\r\n \r\n \r\n {resources.reviewTextLabel}\r\n {reviewModal.textInput}\r\n \r\n {reviewModal.privacyPolicyUrl}\r\n {reviewModal.error}\r\n
\r\n
\r\n \r\n {reviewModal.submitButton}\r\n {reviewModal.cancelButton}\r\n \r\n
\r\n );\r\n};\r\n\r\n/**\r\n * WriteReview view.\r\n * @param props - WriteReview ViewProps.\r\n * @returns WriteReview view module.\r\n */\r\nconst WriteReviewView: React.FC> = props => {\r\n const { config, heading, signInMessage, signInButton, modalToggle, moduleProps } = props;\r\n const { paragraph } = config;\r\n const isAuthenticated = props.context.request.user.isAuthenticated;\r\n const text = paragraph && ();\r\n\r\n return (\r\n \r\n {heading}\r\n {!isAuthenticated ? <>\r\n {signInMessage}\r\n {signInButton}\r\n : <>\r\n {text}\r\n {modalToggle}\r\n {createReviewModal(props)}\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default WriteReviewView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/account-profile/./account-profile';\r\n\r\nconst AccountPreferencesSection: React.FC = ({\r\n accountPreferences,\r\n heading,\r\n personalization,\r\n extraPreferences\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n \r\n {\r\n extraPreferences && extraPreferences.map((preferenceSecton, index) => {\r\n return ;\r\n })\r\n }\r\n \r\n );\r\n};\r\n\r\nconst AccountPreferenceSection: React.FC = ({\r\n accountPreference,\r\n heading,\r\n description,\r\n buttonWrapper,\r\n buttonYesText,\r\n button,\r\n buttonNoText\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {description}\r\n \r\n {buttonNoText}\r\n {button}\r\n {buttonYesText}\r\n \r\n \r\n );\r\n};\r\n\r\nconst AccountProfileSection: React.FC = ({\r\n AccountProfileItem,\r\n heading,\r\n links,\r\n description\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {description}\r\n {/*{links}*/}\r\n \r\n );\r\n};\r\n\r\nconst AccountProfileView: React.FC = props => {\r\n const { AccountProfile, accountProfileWrapper, heading, emailSection, nameSection, preferenceSection, customerAttributesWrapper, customerAttributesSection } = props;\r\n\r\n return (\r\n \r\n {accountProfileWrapper && (\r\n {heading}\r\n \r\n \r\n \r\n \r\n )}\r\n {customerAttributesWrapper && (\r\n {customerAttributesSection}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AccountProfileView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAccountWelcomeTileViewProps } from '@msdyn365-commerce-modules/account-management';\r\n\r\nconst AccountWelcomeTileView: React.FC = props => {\r\n const { AccountWelcomeTile, heading } = props;\r\n\r\n return (\r\n \r\n {heading}\r\n {props.data.accountInformation?.result?.AccountNumber && (\r\n \r\n {' '} - {props.data.accountInformation.result.AccountNumber}\r\n \r\n )}\r\n \r\n );\r\n \r\n};\r\n\r\nexport default AccountWelcomeTileView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport { SalesInvoice, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\r\nimport { getSimpleProductsAction, ProductInput } from '@msdyn365-commerce-modules/retail-actions';\r\nimport * as React from 'react';\r\n\r\nimport { IInvoiceDetailsViewProps } from '@msdyn365-commerce-modules/invoice-details/src/modules/invoice-details/./invoice-details';\r\nimport { InvoiceDetailsProductsComponent, InvoiceDetailsModel } from './components/invoice-details-products.component';\r\n\r\n\r\n\r\nexport const InvoiceDetailsView: React.FC = props => {\r\n const {\r\n config,\r\n header,\r\n /*products,*/\r\n paymentDetails,\r\n payInvoiceError,\r\n context,\r\n resources,\r\n typeName\r\n } = props;\r\n const baseClassName: string = 'msc-invoice-details';\r\n const [invoiceDetails, setInvoiceDetails] = React.useState();\r\n const [products, setProducts] = React.useState([]);\r\n\r\n const getInvoiceDetails = async (): Promise => {\r\n const invoice = await props.data.invoice;\r\n const invDetails = await props.data.invoiceDetails;\r\n const invoiceDetailsModel = new InvoiceDetailsModel(invoice, invDetails, products);\r\n setInvoiceDetails(invoiceDetailsModel);\r\n return invDetails;\r\n };\r\n\r\n const getProducts = async (channelId?: number): Promise => {\r\n const invDetails = await getInvoiceDetails();\r\n const invoiceLines = invDetails.SalesInvoiceLine || [];\r\n const productInputs = invoiceLines.filter(product => product.RecordId).map(product => new ProductInput(\r\n product.RecordId!, context.request.apiSettings, channelId, undefined, context.actionContext.requestContext));\r\n const simpleProductsRes = await getSimpleProductsAction(productInputs, context.actionContext);\r\n setProducts(simpleProductsRes);\r\n return getSimpleProductsAction(productInputs, context.actionContext);\r\n }\r\n\r\n const renderProducts = (): JSX.Element | null => {\r\n const { imageSettings } = config;\r\n\r\n if (!invoiceDetails) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n React.useEffect(() => {\r\n void getProducts();\r\n }, []);\r\n \r\n return (\r\n \r\n {header}\r\n {/* {products} */}\r\n {renderProducts()}\r\n {paymentDetails}\r\n {payInvoiceError}\r\n \r\n );\r\n};\r\n\r\nexport default InvoiceDetailsView;\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 {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n callbacks,\n state,\n resources,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n shopSimilarDescription,\n unitOfMeasure\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {_renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity &&\n _renderQuantity(\n quantity,\n callbacks,\n props,\n state,\n resources,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n telemetryContent\n )}\n {inventoryLabel}\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps\n): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n min: number | undefined,\n max: number | undefined,\n applyDefaultOrderSettings?: boolean,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst RatingsHistogramView: React.FC = props => {\n const { heading, histogramItems, histogramProps, moduleProps } = props;\n return (\n \n {heading}\n \n {histogramItems.map(item => {\n return histogramItem(item);\n })}\n \n \n );\n};\n\nconst histogramItem = (props: IHistogramItemViewProps) => {\n return (\n \n {props.starLabel}\n {props.bar}\n {props.percentage}\n \n );\n};\n\nexport default RatingsHistogramView;\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 { 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","/*!\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 * as React from 'react';\n\nimport { IInvoiceDetailsViewProps } from './invoice-details';\n\nexport const InvoiceDetailsView: React.FC = props => {\n const { header, products, paymentDetails, payInvoiceError } = props;\n\n return (\n \n {header}\n {products}\n {paymentDetails}\n {payInvoiceError}\n \n );\n};\n\nexport default InvoiceDetailsView;\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 { IHeader, IMapViewProps } from './map';\n\n/**\n * Render the heading.\n * @param param0 -- Heading props.\n * @param param0.headerProps -- Heading Props.\n * @param param0.heading -- Heading Node.\n * @returns -- Returns the node.\n */\nconst MapHeader: React.FC = ({ headerProps, heading }) => {heading};\n\n/**\n * Renders the map view props.\n * @param param0 -- Map view props.\n * @param param0.ModuleProps -- Module props.\n * @param param0.Header -- Header props.\n * @param param0.MapProps -- Map props.\n * @returns -- Returns the map module.\n */\nconst MapView: React.FC = ({ ModuleProps, Header, MapProps }) => (\n \n {Header && }\n \n \n);\n\nexport default MapView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IOrderTemplateListViewProps, ISingleOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderTemplateListProps, IOrderTemplateListResources } from '../definition-extensions/order-template-list.ext.props.autogenerated';\n\n/**\n * Interface for OrderTemplateImage.\n */\ninterface IOrderTemplateImage {\n props: {\n children: React.ReactElement[];\n };\n}\n\n/**\n * To render order template.\n * @param orderTemplate - The order template view props.\n * @param orderTemplateNodeProps - The order template node props.\n * @returns The JSX Element.\n */\nconst renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, orderTemplateNodeProps?: INodeProps): JSX.Element | null => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\n\n const orderTemplateImageElement: IOrderTemplateImage = orderTemplateImage as React.ReactElement;\n const currentImageListLength = orderTemplateImageElement.props.children.length;\n const defaultNumberImagesInTile = 4;\n\n if (currentImageListLength < defaultNumberImagesInTile) {\n for (let index = 0; index < defaultNumberImagesInTile - currentImageListLength; index++) {\n orderTemplateImageElement.props.children.push();\n }\n }\n\n return (\n \n {orderTemplateName}\n {orderTemplateImage}\n {addToCartButton}\n {removeButton}\n {orderTemplateStatusMessage}\n \n );\n};\n\n/**\n * Order Template List View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nexport const OrderTemplateListViewComponent: React.FC> = props => {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n OrderTemplateList,\n OrderTemplates,\n OrderTemplate,\n status,\n statusMessage,\n heading,\n orderTemplates,\n createOrderTemplateButton,\n templateHeaderStatusMessage\n } = props;\n\n return (\n \n {heading}\n \n {status === 'SUCCESS' && (!OrderTemplates || !orderTemplates || !ArrayExtensions.hasElements(orderTemplates)) ? (\n
\n

{props.resources.headingForEmptyOrderTemplateList}

\n

{props.resources.textForEmptyOrderTemplateList}

\n {createOrderTemplateButton}\n
\n ) : (\n createOrderTemplateButton\n )}\n {templateHeaderStatusMessage}\n
\n {status !== 'SUCCESS' && statusMessage}\n {OrderTemplates && orderTemplates && ArrayExtensions.hasElements(orderTemplates) && (\n \n {orderTemplates.map(orderTemplate => {\n return renderOrderTemplate(orderTemplate, OrderTemplate);\n })}\n \n )}\n
\n );\n};\n\nexport default OrderTemplateListViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Alert, Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface IInvoiceErrorProps extends IComponentProps {\n messageHeader?: string;\n errorMessage?: string;\n otherError?: string;\n showError: boolean;\n payInvoiceErrorModalOpen: boolean;\n\n errorDialogHeader: string;\n errorDialogBodyErrorTitle: string;\n errorDialogBodyErrorDescription: string;\n errorDialogFooterGoToCartButtonText: string;\n errorDialogFooterCancelButtonText: string;\n cartUrl: string;\n\n setPayInvoiceErrorModalClose(): void;\n}\n\nexport interface IInvoiceErrorComponent extends IComponent {}\n\nexport const InvoiceError: React.FC = ({\n messageHeader,\n errorMessage,\n otherError,\n showError,\n payInvoiceErrorModalOpen,\n errorDialogHeader,\n errorDialogBodyErrorTitle,\n errorDialogBodyErrorDescription,\n errorDialogFooterGoToCartButtonText,\n errorDialogFooterCancelButtonText,\n cartUrl,\n setPayInvoiceErrorModalClose\n}) => {\n const errorMessages: (string | undefined)[] = [];\n\n if (otherError) {\n errorMessages.push(otherError);\n } else {\n errorMessages.push(errorMessage);\n }\n\n const className = 'msc-pay-invoice-error-dialog';\n\n return (\n <>\n 0} color='danger' assertive aria-label={messageHeader}>\n \n {errorMessages.map((message, index) => {\n return (\n
\n {message}\n
\n );\n })}\n
\n \n \n {errorDialogHeader}\n \n \n
\n
{errorDialogBodyErrorTitle}
\n
{errorDialogBodyErrorDescription}
\n
\n
\n \n \n {errorDialogFooterGoToCartButtonText}\n \n \n {errorDialogFooterCancelButtonText}\n \n \n
\n \n );\n};\n\n// @ts-expect-error\nexport const InvoiceErrorComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'InvoiceError',\n { component: InvoiceError }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport { IPayableInvoice } from '../helpers/invoice-data';\nimport { payInvoices } from '../helpers/pay-invoices';\nimport { IInvoiceErrorState } from '../invoices-list';\n\nexport interface IPayInvoiceData {\n invoice: IPayableInvoice;\n}\n\nexport interface IPayInvoiceResources {\n payInvoiceButtonText: string;\n payInvoiceButtonAriaLabel: string;\n}\n\nexport interface IPayInvoiceProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n reference?: React.RefObject;\n resources: IPayInvoiceResources;\n disabled?: boolean;\n\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\ninterface IPayInvoiceComponent extends IComponent {}\n\nconst onClick = async (\n _event: React.MouseEvent,\n props: IPayInvoiceProps,\n setDisabled: (disabled: boolean) => void\n): Promise => {\n setDisabled(true);\n\n const propagateError = (errorState: IInvoiceErrorState): void => {\n if (props.onError) {\n props.onError(errorState, props.reference);\n }\n setDisabled(false);\n };\n\n await payInvoices([props.data.invoice], props.context.actionContext, propagateError);\n};\n\nconst PayInvoiceComponentActions = {\n onClick\n};\n\n/**\n * On click handler function.\n * @param props -Invoice props.\n * @param setDisabled -Set disabled.\n * @returns Pay invoice component action.\n */\nconst onClickHandler = (props: IPayInvoiceProps, setDisabled: React.Dispatch>) => async (\n event: React.MouseEvent\n) => {\n await PayInvoiceComponentActions.onClick(event, props, setDisabled);\n};\n\nconst PayInvoice: React.FC = (props: IPayInvoiceProps): JSX.Element => {\n const [disabled, setDisabled] = useState(false);\n\n return (\n \n {props.resources.payInvoiceButtonText}\n \n );\n};\n\n// @ts-expect-error\nexport const PayInvoiceComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'PayInvoiceComponent',\n { component: PayInvoice, ...PayInvoiceComponentActions }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync, IActionContext } from '@msdyn365-commerce/core';\nimport { getCartState } from '@msdyn365-commerce/global-state';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IInvoiceErrorState } from '../invoices-list';\nimport { IPayableInvoice } from './invoice-data';\n\nexport type ICartActionFailureReason = 'EMPTYINPUT' | 'CARTACTIONFAILED';\nexport interface IAddInvoicesToCartFailureResult {\n failureReason: ICartActionFailureReason;\n}\n\nexport const payInvoices = async (\n invoices: IPayableInvoice[],\n actionContext: IActionContext,\n onError: (errorState: IInvoiceErrorState) => void\n) => {\n const invoicesToAdd: string[] = invoices.filter(invoice => invoice.canBePaid).map(invoice => invoice.id);\n\n if (!ArrayExtensions.hasElements(invoicesToAdd)) {\n onError({ errorMessage: '', errorReason: { failureReason: 'EMPTYINPUT' } });\n return;\n }\n\n const cartState = await getCartState(actionContext);\n const result = await cartState.addInvoicesToCart({ invoiceIds: invoicesToAdd });\n\n if (result.status !== 'SUCCESS') {\n onError({\n errorMessage: '',\n errorReason: { failureReason: 'CARTACTIONFAILED' },\n otherError: result.errorDetails?.LocalizedMessage,\n errorCode: result.errorDetails?.ErrorResourceId\n });\n return;\n }\n\n const cartUrl = getUrlSync('cart', actionContext);\n if (cartUrl) {\n window?.location.assign(cartUrl);\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { EnumExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IInvoiceStatusResources } from '../helpers/invoice-status';\n\nexport interface IInvoicesFilterResources extends IInvoiceStatusResources {\n invoicesFilterShowAll: string;\n}\n\nexport interface IInvoicesFilterProps extends IComponentProps {\n className: string;\n disabled: boolean;\n\n resources: IInvoicesFilterResources;\n\n currentState: InvoicesFilterState;\n onFilterStateChanged(state: InvoicesFilterState): void;\n}\n\nexport enum InvoicesFilterState {\n ShowAll,\n Paid,\n PartiallyPaid,\n Unpaid\n}\n\nconst getInvoicesFilterStateResources = (filterState: InvoicesFilterState, resources: IInvoicesFilterResources): string => {\n switch (filterState) {\n case InvoicesFilterState.ShowAll:\n return resources.invoicesFilterShowAll;\n case InvoicesFilterState.Paid:\n return resources.invoiceStatusPaid;\n case InvoicesFilterState.PartiallyPaid:\n return resources.invoiceStatusPartiallyPaid;\n case InvoicesFilterState.Unpaid:\n return resources.invoiceStatusUnpaid;\n default:\n throw new Error('Failed to retrieve resource description for unknown invoices filter state.');\n }\n};\n\n/**\n * On Click function.\n * @param onStateClick -Invoice filter state function.\n * @param filterState -Invoice filter state.\n * @returns Set Invoice filter state.\n */\nconst onClickHandler = (onStateClick: (filterState: InvoicesFilterState) => void, filterState: InvoicesFilterState) => () => {\n onStateClick(filterState);\n};\n\nconst renderFilterStateItem = (\n filterState: InvoicesFilterState,\n resources: IInvoicesFilterResources,\n className: string,\n onStateClick: (filterState: InvoicesFilterState) => void\n): React.ReactNode => {\n const stateStringRepresentation = InvoicesFilterState[filterState];\n\n return (\n \n );\n};\n\nconst InvoicesFilter: React.FC = (props: IInvoicesFilterProps) => {\n const popoverRef = React.createRef();\n const [popoverState, setPopoverState] = React.useState(false);\n const togglePopover = React.useCallback(() => {\n setPopoverState(!popoverState);\n }, [popoverState]);\n\n const [filterState, setFilterState] = React.useState(props.currentState);\n\n const onFilterStateClick = (clickedState: InvoicesFilterState) => {\n setFilterState(clickedState);\n setPopoverState(false);\n props.onFilterStateChanged(clickedState);\n };\n\n return (\n
\n \n {getInvoicesFilterStateResources(filterState, props.resources)}\n \n \n {EnumExtensions.getEnumValues(InvoicesFilterState).map(state => {\n return renderFilterStateItem(state, props.resources, props.className, onFilterStateClick);\n })}\n \n
\n );\n};\n\nexport const InvoicesFilterComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesFilterProps\n>('InvoicesFilterComponent', { component: InvoicesFilter });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport React from 'react';\n\nexport interface IInvoicesTableHeaderResources {\n invoicesText: string;\n invoiceNumberText: string;\n invoiceDateMobileText: string;\n invoiceDateText: string;\n invoiceUsersText: string;\n invoiceAmountText: string;\n invoiceDueDateText: string;\n invoiceAmountDueText: string;\n invoiceStatusText: string;\n invoiceActionsText: string;\n invoiceListSelectAllRadioAriaLabelText: string;\n}\n\nexport interface IInvoicesTableHeaderProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n\n isSelectedAll: boolean;\n isMobile: boolean;\n isAdmin: boolean;\n\n resources: IInvoicesTableHeaderResources;\n\n onSelectAll(isSelected: boolean): void;\n}\n\nexport interface IInvoicesTableHeaderComponent extends IComponent {}\n\nconst getDesktopHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\n const { resources } = props;\n return (\n <>\n
\n \n \n \n \n \n \n \n \n \n );\n};\n\nconst getMobileHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\n const { resources } = props;\n return (\n <>\n \n \n \n \n {headerCells}\n \n );\n};\n\nexport const InvoicesTableHeaderComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableHeaderComponent\n>('InvoicesTableHeaderComponent', { component: InvoicesTableHeader });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, {\n IComponent,\n IComponentProps,\n ICoreContext,\n IDateFormatOptions,\n isOboRequest,\n msdyn365Commerce\n} from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { getInvoiceDetailsPageUrlSync, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, format } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../../../helpers/invoice-data';\nimport { getInvoiceStatusText, IInvoiceStatusResources } from '../../../helpers/invoice-status';\nimport { IInvoiceErrorState } from '../../../invoices-list';\nimport { IPayInvoiceResources, PayInvoiceComponent } from '../../pay-invoice-component';\nimport { RequestInvoiceButton } from '../../request-invoice-button';\n\ninterface IInvoicesTableRowData {\n invoice: InvoiceModel;\n index: number;\n customer: Customer;\n}\n\nexport interface IInvoicesTableRowResources extends IInvoiceStatusResources, IPayInvoiceResources {\n invoiceCurrentUser: string;\n invoiceViewDetailsButtonText: string;\n invoiceViewDetailsButtonAriaLabel: string;\n invoiceActionsButtonTextAriaLabel?: string;\n invoiceActionsButtonIsOnBehalfOfTextAriaLabel?: string;\n invoiceRequestButtonLabel: string;\n invoiceListSelectRadioAriaLabelText: string;\n}\n\nexport interface IInvoicesTableRowProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n isMobile: boolean;\n invoiceReferences?: React.RefObject;\n payInvoiceReferences?: React.RefObject;\n resources: IInvoicesTableRowResources;\n\n onChange(): void;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n onRequestInvoice?(invoice: InvoiceModel, requestInvoiceButtonReference: React.RefObject): void;\n}\n\nexport interface IInvoicesTableRowComponent extends IComponent {}\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\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 * Request specific invoice function.\n * @param props -Invoice table row props.\n * @param requestInvoiceButtonReference -Reference button.\n * @returns Call Request Invoice.\n */\nconst onRequestSpecificInvoice = (\n props: IInvoicesTableRowProps,\n requestInvoiceButtonReference: React.RefObject,\n setShowActions: React.Dispatch>\n) => () => {\n setShowActions(false);\n props.onRequestInvoice!(props.data.invoice, requestInvoiceButtonReference);\n};\n\nconst getDesktopRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\n const {\n data: { invoice, customer }\n } = props;\n\n const isCurrentUser =\n !StringExtensions.isNullOrWhitespace(customer.AccountNumber) && customer.AccountNumber === invoice.customerAccountNumber;\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nlet setShowPreviousActions: React.Dispatch> | undefined;\n\n/**\n * On Click view details function.\n * @param linkToInvoiceDetails -Link to invoice details.\n * @returns Go to invoice details.\n */\nconst onClickViewDetails = (linkToInvoiceDetails: string) => () => {\n if (MsDyn365.isBrowser) {\n window.location.href = linkToInvoiceDetails;\n }\n return;\n};\n\n/**\n * Toggle function.\n * @param isShowActions -Link to invoice details.\n * @param setShowActions -Link to invoice details.\n * @returns Go to invoice details.\n */\nconst toggle = (isShowActions: boolean, setShowActions: React.Dispatch>) => () => {\n const shouldShowActions = !isShowActions;\n if (shouldShowActions) {\n if (setShowPreviousActions) {\n setShowPreviousActions(false);\n }\n setShowActions(shouldShowActions);\n setShowPreviousActions = setShowActions;\n } else {\n setShowPreviousActions = undefined;\n setShowActions(shouldShowActions);\n }\n};\n\nfunction useOutsideClick(refinerRefernce: React.RefObject, toggle: (event: Event | MouseEvent) => void) {\n function handleClickOutside(event: Event | MouseEvent) {\n if (refinerRefernce.current && !refinerRefernce.current.contains(event.target as Node)) {\n toggle(event);\n }\n }\n\n React.useEffect(() => {\n if (MsDyn365.isBrowser) {\n document.addEventListener('mousedown', handleClickOutside);\n }\n return () => {\n if (MsDyn365.isBrowser) {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n };\n }, [refinerRefernce, toggle]);\n}\n\nconst extraActionsPopup = (props: IInvoicesTableRowProps): JSX.Element | null => {\n const {\n resources: {\n invoiceViewDetailsButtonAriaLabel,\n invoiceViewDetailsButtonText,\n invoiceActionsButtonTextAriaLabel,\n invoiceActionsButtonIsOnBehalfOfTextAriaLabel\n },\n data: { index }\n } = props;\n\n const [showActions, setShowActions] = useState(false);\n const isOnBehalfOfRequest = isOboRequest(props.context.request);\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n\n const className = `${props.className}__extra-actions-cell`;\n const actionsContainerClassName = `${className}__actions-container`;\n const payInvoiceClassName = `${actionsContainerClassName}__pay-invoice`;\n const wrapperRefiner = React.useRef(null);\n useOutsideClick(wrapperRefiner, toggle(showActions && !isOnBehalfOfRequest, setShowActions));\n return (\n
\n \n {showActions && !isOnBehalfOfRequest && (\n
\n \n {invoiceViewDetailsButtonText}\n \n \n \n
\n )}\n
\n );\n};\n\nconst getMobileRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\n const {\n data: { invoice }\n } = props;\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\n\n return (\n <>\n
\n \n \n \n \n );\n};\n\nconst InvoicesTableRow: React.FC = (props: IInvoicesTableRowProps): JSX.Element => {\n const {\n data: { invoice }\n } = props;\n\n const onSelectLine = () => {\n invoice.isSelected = !invoice.isSelected;\n props.onChange();\n };\n\n let rowCells: JSX.Element;\n if (props.isMobile) {\n rowCells = getMobileRowCells(props, onSelectLine);\n } else {\n rowCells = getDesktopRowCells(props, onSelectLine);\n }\n\n return {rowCells};\n};\n\nexport const InvoicesTableRowComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableRowComponent\n>('InvoicesTableRowComponent', { component: InvoicesTableRow });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus } from '@msdyn365-commerce/retail-proxy';\n\nexport interface IInvoiceStatusResources {\n invoiceStatusNone: string;\n invoiceStatusUnpaid: string;\n invoiceStatusPartiallyPaid: string;\n invoiceStatusPaid: string;\n}\n\nexport const getInvoiceStatusText = (resources: IInvoiceStatusResources, invoiceStatus: InvoicePaidStatus | undefined) => {\n switch (invoiceStatus) {\n case InvoicePaidStatus.None:\n return resources.invoiceStatusNone;\n\n case InvoicePaidStatus.Unpaid:\n return resources.invoiceStatusUnpaid;\n\n case InvoicePaidStatus.PartiallyPaid:\n return resources.invoiceStatusPartiallyPaid;\n\n case InvoicePaidStatus.Paid:\n return resources.invoiceStatusPaid;\n default:\n return '';\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../../helpers/invoice-data';\nimport { IInvoiceErrorState } from '../../invoices-list';\nimport { IInvoicesTableHeaderResources, InvoicesTableHeaderComponent } from './components/invoices-table-header-component';\nimport { IInvoicesTableRowResources, InvoicesTableRowComponent } from './components/invoices-table-row-component';\n\ninterface IInvoicesTableData {\n invoices: InvoiceModel[];\n customer: Customer;\n}\n\nexport interface IInvoicesTableResources extends IInvoicesTableHeaderResources, IInvoicesTableRowResources {}\n\nexport interface IInvoicesTableProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n invoiceButtonReferences?: React.RefObject[];\n payInvoiceButtonReferences?: React.RefObject[];\n resources: IInvoicesTableResources;\n\n onChange(): void;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n onRequestInvoice(invoice: InvoiceModel, requestInvoiceButtonReference: React.RefObject): void;\n}\n\nexport interface IInvoicesTableComponent extends IComponent {}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nconst getViewport = (context: ICoreContext): GridSize => {\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (window?.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n};\n\nconst isMobileView = (context: ICoreContext) => {\n const viewport = getViewport(context);\n return viewport === 'xs' || viewport === 'sm';\n};\n\n/**\n * On select all function.\n * @param props -Invoice table props.\n * @returns On change.\n */\nconst onSelectAllHandler = (props: IInvoicesTableProps) => (isSelected: boolean) => {\n props.data.invoices.forEach(invoice => {\n invoice.isSelected = isSelected;\n });\n props.onChange();\n};\n\nconst InvoicesTable: React.FC = (props: IInvoicesTableProps): JSX.Element => {\n const [isMobile, setIsMobile] = useState(isMobileView(props.context));\n\n const updateViewport = () => {\n setIsMobile(isMobileView(props.context));\n };\n\n if (typeof window !== undefined && window.addEventListener) {\n window.addEventListener('resize', updateViewport);\n }\n const rowClassName = `${props.className}__row`;\n const headerClassName = `${props.className}__header`;\n\n return (\n
\n \n {resources.invoiceNumberText}{resources.invoiceDateText}{resources.invoiceUsersText}{resources.invoiceAmountText}{resources.invoiceDueDateText}{resources.invoiceAmountDueText}{resources.invoiceStatusText}{resources.invoiceActionsText}\n \n {resources.invoicesText}{resources.invoiceDateMobileText}\n {` `}\n {/* Actions */}\n \n );\n};\n\nconst InvoicesTableHeader: React.FC = (props: IInvoicesTableHeaderProps): JSX.Element => {\n const rowClassName = `${props.className}__row`;\n\n const switchCheckedState = () => {\n props.onSelectAll(!props.isSelectedAll);\n };\n\n let headerCells: JSX.Element;\n if (props.isMobile) {\n headerCells = getMobileHeaderCells(props, rowClassName, switchCheckedState);\n } else {\n headerCells = getDesktopHeaderCells(props, rowClassName, switchCheckedState);\n }\n\n return (\n
\n \n \n \n {invoice.id}\n \n \n {formatDate(props.context, invoice.invoiceDate)}\n \n {invoice.customerName}\n {isCurrentUser ? {props.resources.invoiceCurrentUser} : null}\n {formatAmount(props.context, invoice.amount, invoice.currencyCode)}\n {formatDate(props.context, invoice.dueDate)}\n {formatAmount(props.context, invoice.amountDue, invoice.currencyCode)}\n {getInvoiceStatusText(props.resources, invoice.status)}\n {extraActionsPopup(props)}\n \n \n \n {invoice.id}\n \n
\n {invoice.customerName}\n
\n {formatDate(props.context, invoice.dueDate)}\n
\n {getInvoiceStatusText(props.resources, invoice.status)}\n
{extraActionsPopup(props)}
\n invoice.isSelected)}\n isMobile={isMobile}\n isAdmin={props.data.customer.IsB2bAdmin || false}\n onSelectAll={onSelectAllHandler(props)}\n resources={props.resources}\n data={{}}\n />\n {props.data.invoices.map((invoice, index: number) => {\n return (\n \n );\n })}\n
\n );\n};\n\nexport const InvoicesTableComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableComponent\n>('InvoicesTableComponent', { component: InvoicesTable });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, ITelemetry, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../helpers/invoice-data';\nimport { payInvoices } from '../helpers/pay-invoices';\nimport { IInvoiceErrorState } from '../invoices-list';\n\ninterface IMakePaymentData {\n invoices: InvoiceModel[];\n}\n\nexport interface IMakePaymentResources {\n makePaymentButtonText: string;\n makePaymentButtonAriaLabel: string;\n}\n\nexport interface IMakePaymentProps extends IComponentProps {\n context: ICoreContext;\n itemKey?: string;\n telemetry: ITelemetry;\n moduleId: string;\n moduleTypeName: string;\n telemetryContent?: ITelemetryContent;\n navigationUrl?: string;\n buttonReferences?: React.RefObject;\n resources: IMakePaymentResources;\n disabled?: boolean;\n\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\nexport interface IMakePaymentComponent extends IComponent {}\n\nconst onClick = async (\n _event: React.MouseEvent,\n props: IMakePaymentProps,\n setDisabled: (disabled: boolean) => void\n): Promise => {\n setDisabled(true);\n\n const propagateError = (errorState: IInvoiceErrorState): void => {\n if (props.onError) {\n props.onError(errorState, props.buttonReferences);\n }\n setDisabled(false);\n };\n\n await payInvoices(props.data.invoices, props.context.actionContext, propagateError);\n};\n\nconst MakePaymentComponentActions = {\n onClick\n};\n\n/**\n * On Click function.\n * @param input -Make payment props.\n * @param setDisabled -Set Disabled.\n * @returns Make payment component on click.\n */\nconst onClickHandler = (input: IMakePaymentProps, setDisabled: React.Dispatch>) => async (\n event: React.MouseEvent\n) => {\n await MakePaymentComponentActions.onClick(event, input, setDisabled);\n};\n\nconst MakePayment: React.FC = (input: IMakePaymentProps): JSX.Element => {\n const {\n data: { invoices }\n } = input;\n // Added condition to enable MakePayment button only if can be paid invoice is selected\n const hasInvoices =\n ArrayExtensions.hasElements(invoices.filter(invoice => invoice.canBePaid)) &&\n ArrayExtensions.hasElements(invoices.filter(invoice => invoice.isSelected));\n const [disabled, setDisabled] = useState(false);\n\n return (\n \n {input.resources.makePaymentButtonText}\n \n );\n};\n\n// @ts-expect-error\nexport const MakePaymentComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'MakePayment',\n { component: MakePayment }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus, OrderInvoice } from '@msdyn365-commerce/retail-proxy';\n\nexport interface IPayableInvoice {\n readonly id: string;\n readonly canBePaid: boolean;\n}\n\n/**\n * Represents invoice data model.\n */\nexport class InvoiceModel implements IPayableInvoice {\n public id: string;\n\n public invoiceDate?: Date;\n\n public customerAccountNumber?: string;\n\n public customerName?: string;\n\n public amount?: number;\n\n public dueDate?: Date;\n\n public amountDue?: number;\n\n public status?: InvoicePaidStatus;\n\n public currencyCode?: string;\n\n public isSelected: boolean;\n\n public constructor(invoice: OrderInvoice) {\n this.id = invoice.Id || '';\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\n this.customerAccountNumber = invoice.CustomerAccountNumber;\n this.customerName = invoice.CustomerName;\n this.amount = invoice.TotalAmount;\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\n this.amountDue = invoice.AmountBalance;\n this.status = invoice.InvoicePaidStatusValue;\n this.currencyCode = invoice.CurrencyCode;\n\n this.isSelected = false;\n }\n\n public get canBePaid(): boolean {\n return this.status !== InvoicePaidStatus.Paid;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IRequestInvoiceButtonProps {\n innerReference?: React.RefObject;\n className: string;\n requestInvoiceButtonLabel: string;\n onClicked(): void;\n}\n\nexport const RequestInvoiceButton: React.FC = ({\n className,\n onClicked,\n requestInvoiceButtonLabel,\n innerReference\n}) => {\n return (\n \n );\n};\n"],"names":["RequestsTableColumnHeader","getUserName","request","resources","StringExtensions","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","replace","formatDate","context","date","undefined","cultureFormatter","year","month","day","getDetails","_requestDetails$Invoi","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","invoiceId","InvoiceId","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","_context$request$quer","data","moduleProps","tableData","operationRequests","result","props","ArrayExtensions","hasElements","map","_request$TypeValue","_request$StatusValue","row","id","b2bRequestsTypeColumn","type","TableDataType","Text","value","b2bRequestsRequestDateColumn","CreatedDateTime","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","StatusValue","isSelected","className","config","createTableItems","headings","filter","item","isMobile","mobileExcludedColumns","includes","name","sortable","ariaLabel","columnSortAriaLabel","rows","editLinkText","deleteLinkText","viewLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","showPagination","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","isNaN","Number","parseInt","itemPerPage","prevText","b2bRequestsPreviousText","nextText","b2bRequestsNextText","paginationText","url","reqContext","MsDyn365","isBrowser","URL","window","location","href","requestUrl","isSingleSelectOnly","actions","onDelete","onEdit","onView","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","B2bRequestsTable","React","Table","Object","assign","B2bRequestsStatus","constructor","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","this","length","Heading","tag","text","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","format","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","Viewport","render","isChannelTypeB2B","actionContext","requestContext","viewProps","_objectSpread","b2bRequestsStatus","heading","table","renderView","__decorate","computed","Module","NoShipmentTrackingComponent","noShipmentTrackingNodeProps","noShipmentTrackingResources","noShippingFoundText","baseClassName","Node","onSubmitRequestClick","onClosing","filteredInvoices","onSubmitRequest","checkboxRef","closingFlag","invoice","index","_inputInvoice$current","current","checked","searchInputChangedHandler","setSearchInput","event","target","onCancelHandler","toggle","renderInvoiceOptions","setSelectedInvoiceIndex","_invoice","i","_checkboxRef$current$","onInvoiceSelect","onInvoiceSelectHandler","checkboxId","checkboxName","key","ref","onChange","htmlFor","RequestInvoiceModal","_ref","email","isModalOpen","modalHeaderLabel","sendToEmailLabel","submitRequestLabel","cancelLabel","invoices","searchPlaceholderLabel","invoicesFoundString","singleInvoiceFoundString","searchButtonAltText","selectedInvoiceIndex","setFilteredInvoices","searchInput","shouldShowSearchResults","setShouldShowSearchResults","invoiceOptionsData","invoiceOptions","setInvoiceOptions","focusElement","setTimeout","_focusElement$current","focus","searchEntered","searchEnteredHandler","updatedInvoices","toLocaleUpperCase","searchResultString","invoicesFoundReplaceIndex","indexOf","Modal","classnames","isOpen","horizontalPosition","verticalPosition","autoFocus","fade","onOpened","setFilteredInvoicesToSelectedInvoices","selectedInvoices","requestInvoiceDialogAriaLabel","ModalHeader","ModalBody","role","substring","placeholder","onClick","title","ModalFooter","InvoicesList","super","_className","buttonChildReference","buttonChildPayButtonReference","invoiceIds","_onDismiss","setState","_onToggleInvoiceRequestParentModal","selectedButtonElement","payInvoiceRequestReference","_onToggleInvoiceRequestModal","_queryResultSettings","QueryResultSettingsProxy","fromModuleData","QueryResultSettings","makePaymentReference","_updateInvoicesState","bind","_onAddToCartFailed","_handleFilterStateChange","_loadMoreInvoices","_requestInvoice","_requestSpecificInvoice","_setPayInvoiceErrorModalClose","state","invoicesFilterState","InvoicesFilterState","ShowAll","isLoading","isPageLoaded","errorState","errorMessage","isInvoiceRequestModalOpen","payInvoiceErrorModalOpen","shouldComponentUpdate","nextProps","nextState","_customerBalance$resu","_customerBalance$resu2","_heading$text","channel","formatCurrency","currencyCode","customerBalance","invoicesListTitle","invoicesListDescTitle","invoicesListDescCount","amountText","OpenInvoiceBalance","toFixed","Currency","totalCount","OpenInvoiceCount","countText","toString","invoicesListTitleHeading","headerClassName","header","invoiceRequestModal","_renderInvoiceRequestModal","_renderInvoicesFilter","pagination","_renderPagination","content","_renderListContainer","_renderEmptyInvoiceLinesPageContent","async","customer","invoicesData","_initializeWithInvoices","reaction","_this$props$data$b2bU","callerContext","b2bUserId","b2bUserInformation","B2BUserId","BusinessPartnerUsersDataActions","BusinessPartnerOperationDeliveryType","Email","InvoiceModel","_addInvoices","newInvoices","concat","containerClass","actionsContainerClass","invoiceEmptyInvoiceLinesTitle","invoiceEmptyInvoiceLinesDescription","Button","invoiceEmptyInvoiceLinesContinueShoppingButtonAriaLabel","getUrlSync","invoiceEmptyInvoiceLinesContinueShoppingButtonText","containerHeaderClass","containerContentClass","isOnBehalfOfRequest","isOboRequest","_renderMakePayment","_renderInvoiceRequestButton","_renderInvoiceErrors","_renderInvoicesList","searchCriteria","businessPartner","getCurrentAsync","BusinessPartnerId","getCustomer","GetCustomerInput","apiSettings","CustomerId","AccountNumber","InvoicePaidStatusValues","InvoicePaidStatus","None","Paid","PartiallyPaid","Unpaid","Error","_getInvoicesSearchCriteria","Paging","Skip","getInvoices","GetInvoicesInput","filterClassName","_renderInvoiceInCartPaymentMessage","InvoicesFilterComponent","typeName","currentState","onFilterStateChanged","disabled","tableClassName","InvoicesTableComponent","invoiceButtonReferences","payInvoiceButtonReferences","onError","onRequestInvoice","newErrorState","reference","_newErrorState$errorR","errorHost","errorReason","failureReason","invoiceErrorInvoiceIdNotExist","invoiceErrorFailedAddInvoiceToCart","shouldShowAdditionalInfoInPopup","errorCode","makePaymentResources","makePaymentButtonText","makePaymentButtonAriaLabel","_getSelectedInvoices","MakePaymentComponent","telemetry","moduleId","moduleTypeName","navigationUrl","buttonReferences","_this$state$selectedB","payInvoiceErrorDialogHeader","payInvoiceErrorDialogBodyErrorTitle","payInvoiceErrorDialogBodyErrorDescription","payInvoiceErrorDialogFooterGoToCartButtonText","payInvoiceErrorDialogFooterCancelButtonText","cartUrl","errorClassName","InvoiceErrorComponent","messageHeader","invoiceErrorMessageHeader","otherError","showError","errorDialogHeader","errorDialogBodyErrorTitle","errorDialogBodyErrorDescription","errorDialogFooterGoToCartButtonText","errorDialogFooterCancelButtonText","setPayInvoiceErrorModalClose","_this$props$data$cart","cart","hasInvoiceLine","Alert","invoiceInCartPaymentMessage","_data$invoices","Top","invoicesLoadMore","invoiceRequestModalCancelLabel","invoiceRequestModalSubmitLabel","invoiceRequestModalHeaderLabel","invoiceRequestModalSendToEmailLabel","invoiceRequestModalSearch","invoiceRequestModalInvoiceSearchDisplay","invoiceRequestModalSingleInvoiceSearchDisplay","invoiceRequestModalSearchButton","_this$state$selectedB2","invoiceRequestButtonLabel","isNullOrWhitespace","RequestInvoiceButton","innerReference","requestInvoiceButtonLabel","onClicked","push","specificInvoice","requestInvoiceButtonReference","forEach","observer","InvoiceListView","InvoiceDetailsModel","invoiceDetails","products","Id","invoiceDate","InvoiceDate","Date","customerName","CustomerName","dueDate","InvoiceDueDate","amountDue","AmountBalance","status","InvoicePaidStatusValue","lines","SalesInvoiceLine","line","_products$find","primaryImageUrl","find","product","RecordId","PrimaryImageUrl","totalDiscount","TotalDiscount","subtotal","InvoiceSubtotal","totalCharges","TotalCharges","totalTax","TotalTaxAmount","totalAmount","TotalAmount","CurrencyCode","canBePaid","formatAmount","amount","InvoiceDetailsProductsComponent","msdyn365Commerce","createComponent","component","productLineClass","productLineInfoContainerClass","productLineDetailsClass","productLineSmallDetailsClass","quantity","Quantity","productUrl","ObjectExtensions","isNullOrUndefined","ProductName","getProductPageUrlSync","_renderProductImage","imageSettings","cropFocalRegion","fallbackImage","getFallbackImageUrl","ItemId","Image","altText","src","fallBackSrc","gridSettings","viewports","xs","q","w","h","lg","xl","lazyload","loadFailureBehavior","_renderProductDimensions","ColorName","invoiceProductColor","SizeName","invoiceProductSize","StyleName","invoiceProductStyle","Price","invoiceQuantity","NetAmount","ImageList","handleParagraphChange","images","paragraph","_renderImageListItems","imageList","defaultImageSettings","disableLazyLoad","_image$imageSettings","_link$linkText","image","link","imageProps","imageLink","linkUrl","destinationUrl","imageLinkText","linkText","imageLinkAriaLabel","imageLinkOpenInNewTab","openInNewTab","Msdyn365","editProps","linkAltText","linkAriaLabel","linkOpenInNewTab","_heading$tag","imageListTitle","imageListHeading","imageListContainer","imageListItem","imageListItemAnchorTag","imageListItems","InteractiveFeatureCollectionLinks","_mapEditableLinks","linkdata","editableLinks","payLoad","getPayloadObject","telemetryContent","contentAction","etext","attributes","getTelemetryAttributes","editableLink","additionalProperties","onTelemetryClick","links","onTextChange","InteractiveFeatureItem","_telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","handleHeadingChange","handleLinkTextChange","linkIndex","_this$props$config$li","indexItem","itemCounter","isMosaic","featureItemLinks","_createHeading","_createParagraph","_renderImage","featureItem","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","interactiveFeatureCollectionMosaicContainer","tabindex","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","sm","md","moduleType","imagePropertyName","InvoiceDetailsHeaderComponent","invoiceNumberText","invoiceIdLabel","invoiceOrderItemsText","invoiceOrderItem","invoiceOrderItems","invoiceInfoContainerClassName","orderInfoContainerClassName","orderInfoClassName","orderMainInfoClassName","orderDetailsClassName","actionsClassName","amountSummaryClassName","orderDate","formatShortDate","formatLongDate","dueDateText","invoicePaymentDueDateText","invoicePlacedByLabel","invoiceAmountDueText","PayInvoiceComponent","InvoiceDetailsPaymentDetailsComponent","invoicePaymentDetails","lineClassName","label","invoicePaymentDiscounts","invoicePaymentSubtotal","invoicePaymentCharges","invoicePaymentTax","invoicePaymentInvoiceTotal","ProductId","_context$request$app","app","OmniChannelMedia","InvoiceDetails","_getProducts","ChannelId","invoiceDetailsModel","_renderHeader","_renderProducts","paymentDetails","_renderPaymentDetails","payInvoiceError","channelId","arguments","productInputs","ProductInput","getSimpleProductsAction","_this$state$errorStat","Map","timeout","mapRef","_initMap","_data$storeSelectorSt","_data$distributorSele","storeSelectorStateManager","isMapApiLoaded","distributorSelectorStateManager","mapLoadOptions","credentials","BingMapsApiKey","pushpinAccessible","Microsoft","Maps","Events","addHandler","_data$distributorSele2","_data$distributorSele3","_data$distributorSele4","_data$storeSelectorSt2","isDistributorSelectorDialogOpen","updateDistributorMapVisibility","setSelectedDistributorId","setSelectedStoreLocationId","_updateMapsForDistributor","_this$props$data$dist","pushpinOptions","distributorInfoList","distributorList","selectedDistributorId","mapLocation","entities","clear","pushpins","distributor","OrgUnit","distributorInfo","entries","orgUnit","Latitude","Longitude","isLocationSelected","options","_getPushpinOptions","pushpin","Pushpin","Location","handleDistributorPushpinClick","unshift","currentLocation","setView","center","_Microsoft$Maps$Locat","bounds","LocationRect","fromShapes","setOptions","_updateMap","_this$props$data$stor","_storeSelectorStateMa","orgUnitStoreInformation","selectedStoreLocationId","storeLocationList","store","OrgUnitAvailability","unitStoreInfo","_unitStoreInfo$OrgUni","storeLocation","OrgUnitLocation","isSelectedLocation","OrgUnitNumber","handleClickEvent","_Microsoft$Maps$Locat2","orgUnitNumber","recordId","_this$props$data$dist2","showIndex","size","color","selectionColor","icon","_getSvgIcon","componentDidMount","_this$props$context","_this$props$data$stor2","_this$props$data$dist3","error","BingMapsEnabled","loadMapAPIInput","lang","locale","market","ChannelCountryRegionISOCode","_this$props$data$dist4","when","_this$props$data$stor3","setMapModuleLoaded","_this$props$data$stor4","_this$props$data$dist5","_this$props$data$dist6","_this$props$data$stor5","_this$props$data$dist7","loadMapApi","_this$props$data$dist8","_this$props$data$dist9","_this$props$data$stor6","_this$props$data$stor7","_this$props$data$dist10","_this$props$data$stor8","_this$props$data$stor9","_this$props$data$dist11","_this$props$data$dist12","_data$storeSelectorSt3","_data$storeSelectorSt4","_data$distributorSele5","_data$distributorSele6","shouldDisplayMap","isDialogOpen","listMapViewState","displayMap","ModuleProps","classname","show","Header","headerProps","MapProps","observable","AccountPreferencesSection","accountPreferences","personalization","extraPreferences","AccountPreferenceSection","preferenceSecton","_ref2","accountPreference","description","buttonWrapper","buttonYesText","button","buttonNoText","AccountProfileSection","_ref3","AccountProfileItem","AccountProfile","accountProfileWrapper","emailSection","nameSection","preferenceSection","customerAttributesWrapper","customerAttributesSection","renderProductDescription","_props$data$product$r","primaryImageSource","imageUrl","generateImageUrl","renderProductImage","Name","signInMessage","signInButton","modalToggle","isAuthenticated","user","RichTextComponent","reviewModal","modal","modalHeader","modalBody","form","inputRow","selectRatingLabel","rating","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","modalFooter","submitButton","cancelButton","createReviewModal","_props$data$accountIn","AccountWelcomeTile","accountInformation","InvoiceDetailsView","setInvoiceDetails","setProducts","getProducts","invDetails","getInvoiceDetails","simpleProductsRes","renderProducts","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","_renderConfigure","configure","ContainerProps","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","errors","select","_renderFindInStore","findInStore","storeSelector","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderQuantity","quantityComponent","extentionResources","quantityLimitsMessages","min","max","applyDefaultOrderSettings","IncrementalQuantity","currentCount","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","input","_renderShopSimilarItem","shopSimilarItem","MediaGalleryContainerProps","ProductInfoContainerProps","price","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","mediaGallery","bulkPurchaseLink","slots","histogramItem","buttonProps","starLabel","bar","percentage","histogramItems","histogramProps","imageListView","indexKey","MagicNumber","FeatureItemViewComponent","renderMosaic","thisProps","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","renderCarousel","MapHeader","OrderTemplateListViewComponent","OrderTemplateList","OrderTemplates","OrderTemplate","statusMessage","orderTemplates","createOrderTemplateButton","templateHeaderStatusMessage","headingForEmptyOrderTemplateList","textForEmptyOrderTemplateList","orderTemplate","renderOrderTemplate","orderTemplateNodeProps","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","removeButton","orderTemplateName","orderTemplateImageElement","currentImageListLength","children","errorMessages","assertive","message","PayInvoiceComponentActions","_event","setDisabled","payInvoices","onClickHandler","useState","innerRef","payInvoiceButtonAriaLabel","payInvoiceButtonText","invoicesToAdd","cartState","getCartState","addInvoicesToCart","_result$errorDetails","_result$errorDetails2","errorDetails","LocalizedMessage","ErrorResourceId","_window","getInvoicesFilterStateResources","filterState","invoicesFilterShowAll","invoiceStatusPaid","invoiceStatusPartiallyPaid","invoiceStatusUnpaid","onStateClick","popoverRef","popoverState","setPopoverState","togglePopover","setFilterState","onFilterStateClick","clickedState","Popover","placement","EnumExtensions","getEnumValues","renderFilterStateItem","stateStringRepresentation","InvoicesTableHeaderComponent","rowClassName","switchCheckedState","onSelectAll","isSelectedAll","headerCells","getMobileHeaderCells","invoiceListSelectAllRadioAriaLabelText","invoicesText","invoiceDateMobileText","getDesktopHeaderCells","invoiceDateText","invoiceUsersText","invoiceAmountText","invoiceDueDateText","invoiceStatusText","invoiceActionsText","onRequestSpecificInvoice","setShowActions","setShowPreviousActions","onClickViewDetails","linkToInvoiceDetails","isShowActions","shouldShowActions","extraActionsPopup","invoiceViewDetailsButtonAriaLabel","invoiceViewDetailsButtonText","invoiceActionsButtonTextAriaLabel","invoiceActionsButtonIsOnBehalfOfTextAriaLabel","showActions","getInvoiceDetailsPageUrlSync","actionsContainerClassName","payInvoiceClassName","wrapperRefiner","refinerRefernce","handleClickOutside","contains","document","addEventListener","removeEventListener","useOutsideClick","payInvoiceReferences","invoiceReferences","InvoicesTableRowComponent","onSelectLine","rowCells","getMobileRowCells","invoiceRowArialabel","invoiceListSelectRadioAriaLabelText","getInvoiceStatusText","getDesktopRowCells","isCurrentUser","customerAccountNumber","invoiceCurrentUser","invoiceStatus","invoiceStatusNone","isMobileView","viewport","device","Type","innerWidth","getViewport","onSelectAllHandler","setIsMobile","updateViewport","all","isAdmin","IsB2bAdmin","MakePaymentComponentActions","hasInvoices","CustomerAccountNumber"],"sourceRoot":""}