{"version":3,"file":"static/js/13.a69fe250fd0854007ec0.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/aiways/views/header.view.tsx?18e0","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/header.view.tsx?19be","webpack://Msdyn365.Commerce.Online/./src/themes/koelliker/views/search-result-container.view.tsx?149d","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.tsx?4353","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/components/account-generic-tile-links.tsx?2bc7","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://Msdyn365.Commerce.Online/./src/modules/country-picker/country-picker.tsx?4fcb","webpack://Msdyn365.Commerce.Online/./src/modules/country-picker/country-picker.view.tsx?0036","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/invoice-details/invoice-details.view.tsx?3784","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/invoice-error-component.tsx?2ff9","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/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/components/pay-invoice-component.tsx?6f61","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/components/request-invoice-button.tsx?9eb0","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/helpers/invoice-data.ts?00b1","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/helpers/invoice-status.ts?5841","webpack://Msdyn365.Commerce.Online/./src/modules/invoices-list/helpers/pay-invoices.ts?30c0","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/modules/subscribe/subscribe.tsx?9fea","webpack://Msdyn365.Commerce.Online/./src/modules/subscribe/subscribe.view.tsx?19c8","webpack://Msdyn365.Commerce.Online/./src/modules/tab-item/tab-item.tsx?b1b8","webpack://Msdyn365.Commerce.Online/./src/modules/tab-item/tab-item.view.tsx?ee3b","webpack://Msdyn365.Commerce.Online/./src/modules/tab/tab.tsx?9ac6","webpack://Msdyn365.Commerce.Online/./src/modules/tab/tab.view.tsx?a99d","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list-item/components/links.tsx?c969","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list-item/tile-list-item.tsx?114a","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list-item/tile-list-item.view.tsx?19a8"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/* tslint:disable: no-duplicate-imports */\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\r\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { AsyncResult } from '@msdyn365-commerce/core';\r\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\r\n\r\nconst headerView: React.FC = props => {\r\n const {\r\n HeaderTag,\r\n HeaderContainer,\r\n HeaderTopBarContainer,\r\n Divider,\r\n } = props;\r\n return (\r\n \r\n \r\n \r\n {props.navIcon}\r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.preferredStore}\r\n {_renderAccountBlock(props, false)}\r\n {props.wishListIconDesktop}\r\n \r\n {props.cartIcon}\r\n {_renderReactFragment(props.siteOptions)}\r\n \r\n {_renderCollapseMenu(props)}\r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\r\n const {MobileMenuLinksContainer, mobileMenuCollapsed} = props;\r\n return (\r\n \r\n \r\n {_renderReactFragment(props.search)}\r\n {_renderMobileAccountBlock(props, true)}\r\n { props.wishListIconMobile }\r\n {props.siteOptions}\r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n );\r\n}\r\n\r\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\r\n const customer = accountInformation && accountInformation.result;\r\n return (\r\n <>{customer ? customer.FirstName || customer.Name : ''}\r\n );\r\n};\r\n\r\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n signOutLink,\r\n signInLink,\r\n data,\r\n accountLinks} = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames('ms-header__drawer', AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\r\n\r\n if (accountLinks) {\r\n return (\r\n \r\n
\r\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\r\n {signOutLink}\r\n
\r\n
\r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks,\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames(AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\n/* tslint:disable: no-duplicate-imports */\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\r\nimport { Collapse, Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { AsyncResult } from '@msdyn365-commerce/core';\r\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\r\n\r\nconst headerView: React.FC = props => {\r\n const {\r\n HeaderTag,\r\n HeaderContainer,\r\n HeaderTopBarContainer,\r\n Divider,\r\n } = props;\r\n return (\r\n \r\n \r\n \r\n {props.navIcon}\r\n {props.logo}\r\n {_renderReactFragment(props.search)}\r\n {props.preferredStore}\r\n {_renderAccountBlock(props, false)}\r\n {props.wishListIconDesktop}\r\n \r\n {props.cartIcon}\r\n {_renderReactFragment(props.siteOptions)}\r\n \r\n {_renderCollapseMenu(props)}\r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nfunction _renderCollapseMenu(props: IHeaderViewProps): JSX.Element | null {\r\n const {MobileMenuLinksContainer, mobileMenuCollapsed} = props;\r\n return (\r\n \r\n \r\n {_renderReactFragment(props.search)}\r\n {_renderMobileAccountBlock(props, true)}\r\n { props.wishListIconMobile }\r\n {props.siteOptions}\r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n );\r\n}\r\n\r\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\r\n const customer = accountInformation && accountInformation.result;\r\n return (\r\n <>{customer ? customer.FirstName || customer.Name : ''}\r\n );\r\n};\r\n\r\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n signOutLink,\r\n signInLink,\r\n data,\r\n accountLinks} = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames('ms-header__drawer', AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\r\n\r\n if (accountLinks) {\r\n return (\r\n \r\n
\r\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\r\n {signOutLink}\r\n
\r\n
\r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction _renderAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const {\r\n AccountInfoDropdownParentContainer,\r\n AccountInfoDropdownPopoverConentContainer,\r\n accountInfoDropdownButton,\r\n signOutLink,\r\n signInLink,\r\n accountLinks,\r\n } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames(AccountInfoDropdownParentContainer.className, renderForMobile ? 'account-mobile' : 'account-desktop');\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {accountInfoDropdownButton}\r\n \r\n { accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false }\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;","\r\n/* tslint:disable: no-duplicate-imports */\r\nimport { ICategoryHierarchyViewProps, IRefineMenuViewProps, ISearchResultContainerViewProps, ISearchResultModalViewProps, ISortByViewProps, ITitleViewProps } from '@msdyn365-commerce-modules/search-result-container';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst SearchResultContainerView: React.FC = props => {\r\n const { SearchResultContainer, products, pagination, ProductsContainer, ProductSectionContainer, choiceSummary, isMobile, modalToggle, searchResultModal, TitleViewProps,\r\n refineMenu, categoryHierarchy, sortByOptions, CategoryNavContainer, RefineAndProductSectionContainer, errorMessage, FeatureSearchContainer, similarLookProduct } = props;\r\n if (isMobile) {\r\n return (\r\n \r\n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\r\n {renderTitle(TitleViewProps)}\r\n {choiceSummary}\r\n {modalToggle}\r\n {createSearchResultModal(searchResultModal, refineMenu)}\r\n \r\n {similarLookProduct}\r\n \r\n \r\n {errorMessage}\r\n {products}\r\n \r\n {pagination}\r\n \r\n );\r\n }\r\n return (\r\n \r\n {categoryHierarchy &&\r\n \r\n {renderCategoryHierarchy(categoryHierarchy)}\r\n \r\n }\r\n \r\n {refineMenu && renderRefiner(refineMenu)}\r\n \r\n \r\n {similarLookProduct}\r\n \r\n
\r\n {TitleViewProps && renderTitle(TitleViewProps)}\r\n {choiceSummary}\r\n
\r\n
\r\n {sortByOptions && renderSort(sortByOptions)}\r\n
\r\n \r\n {errorMessage}\r\n {products}\r\n \r\n {pagination}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst createSearchResultModal = (modalProps: ISearchResultModalViewProps, refineMenu: IRefineMenuViewProps): JSX.Element | null => {\r\n return React.cloneElement(modalProps.modal, {}, modalProps.modalHeader, createModalBody(modalProps, refineMenu), modalProps.modalFooter);\r\n};\r\n\r\nconst createModalBody = (props: ISearchResultModalViewProps, refineMenu: IRefineMenuViewProps,): JSX.Element | null => {\r\n if (refineMenu) {\r\n return React.cloneElement(props.modalBody, {}, renderRefiner(refineMenu));\r\n } \r\n return null\r\n};\r\n\r\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\r\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\r\n if (refiners) {\r\n return (\r\n \r\n \r\n {refiners.map((submenu, index) => (\r\n \r\n {submenu}\r\n \r\n ))}\r\n \r\n \r\n );\r\n }\r\n return null;\r\n};\r\n\r\nconst renderSort = (props: ISortByViewProps): JSX.Element | null => {\r\n const { SortingContainer, sortByDropDown } = props;\r\n if (sortByDropDown) {\r\n return (\r\n \r\n {sortByDropDown}\r\n \r\n );\r\n }\r\n return null;\r\n};\r\n\r\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\r\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\r\n if (categoryHierarchyList) {\r\n return (\r\n \r\n {categoryHierarchyList.map((category, index) => (\r\n \r\n {category}\r\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\r\n \r\n ))}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\r\n const { title, TitleContainer } = props;\r\n if (title) {\r\n return (\r\n \r\n

\r\n {title.titlePrefix}\r\n {title.titleText}\r\n ({title.titleCount})\r\n

\r\n
\r\n );\r\n }\r\n return null;\r\n};\r\n\r\nexport default SearchResultContainerView;","/*!\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 { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountGenericTileConfig, IAccountGenericTileProps } from './account-generic-tile.props.autogenerated';\nimport LinksComponent from './components/account-generic-tile-links';\n\nexport interface IAccountGenericTileViewProps extends IAccountGenericTileProps {\n AccountGenericTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * AccountGeneric component.\n * @extends {React.PureComponent>}\n */\nclass AccountGenericTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountGenericTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const viewProps = {\n ...this.props,\n className,\n AccountGenericTile: {\n moduleProps: this.props,\n className: classnames('ms-account-generic-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountGenericTile;\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 { IAccountGenericTileViewProps } from './account-generic-tile';\n\nconst AccountGenericTileView: React.FC = props => {\n const { AccountGenericTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default AccountGenericTileView;\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-generic-tile.props.autogenerated';\n\nexport interface IAccountGenericTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountGenericTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-generic-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountGenericTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetVerificationButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetVerificationButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetVerificationInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetVerificationInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default PasswordResetVerificationInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetVerificationLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetVerificationLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetVerificationLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetVerificationLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetVerificationButtonComponent from './components/password-reset-verification-button';\nimport PasswordResetVerificationErrorComponent from './components/password-reset-verification-error';\nimport PasswordResetVerificationInputComponent from './components/password-reset-verification-input';\nimport PasswordResetVerificationLabelComponent from './components/password-reset-verification-label';\nimport PasswordResetVerificationLoadingIconComponent from './components/password-reset-verification-loading-icon';\nimport PasswordResetVerificationLoadingMessageComponent from './components/password-reset-verification-loading-message';\nimport PasswordResetVerificationSuccessComponent from './components/password-reset-verification-success';\nimport { IPasswordResetVerificationConfig, IPasswordResetVerificationProps } from './password-reset-verification.props.autogenerated';\n\nexport interface IPasswordResetVerificationViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetVerificationItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationLocalAccount {\n localAccount: INodeProps;\n verificationControlWrapper: INodeProps;\n items: IPasswordResetVerificationItem[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationButtonsWrapper: INodeProps;\n verificationButtons: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetVerificationLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationViewProps {\n className: string;\n viewState: IPasswordResetVerificationViewState;\n loading: IPasswordResetVerificationLoading;\n passwordResetVerification: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetVerificationLocalAccount: IPasswordResetVerificationLocalAccount;\n}\n\n/**\n *\n * PasswordResetVerification component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordResetVerification extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset-verification';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetVerificationProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.templateVersion = '';\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IPasswordResetVerificationProps,\n nextState: IPasswordResetVerificationViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordResetVerification: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: (\n \n )\n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetVerificationLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private _prePopulateData(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n if (obj.ID.toLowerCase() === 'email') {\n this.emailRegex = obj.PAT;\n } else if (obj.ID.toLowerCase() === 'emailverificationcontrol') {\n this.templateVersion = 'v2';\n }\n });\n if (!this.templateVersion) {\n this.templateVersion = 'v1';\n }\n }\n }\n\n private _updateErrorMessage(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: this.props.resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n }\n\n private _renderLocalAccount(): IPasswordResetVerificationLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n items: [\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n )\n ],\n successMessage: [\n ,\n\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n \n ],\n verificationButtonsWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n verificationButtons: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): IPasswordResetVerificationItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n}\n\nexport default PasswordResetVerification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IPasswordResetVerificationItem,\n IPasswordResetVerificationLoading,\n IPasswordResetVerificationLocalAccount,\n IPasswordResetVerificationViewProps\n} from './password-reset-verification';\n\nconst PasswordResetVerificationItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n verificationControlWrapper,\n items,\n successMessage,\n errorMessage,\n verificationButtonsWrapper,\n verificationButtons,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n \n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {verificationButtons &&\n verificationButtons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n \n );\n};\n\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetVerificationView: React.FC = props => {\n const {\n passwordResetVerification,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n passwordResetVerificationLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetVerificationLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetVerificationView;\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 { ICookieSetOptions, IImageDimension, ILocaleItems } from '@msdyn365-commerce/core-internal';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICountryPickerData } from './country-picker.data';\nimport { IActionLinkData, ICountryPickerProps } from './country-picker.props.autogenerated';\n\n/**\n * CountryPicker view props interface.\n */\nexport interface ICountryPickerViewProps extends ICountryPickerProps {\n modalContainer: IModuleProps;\n modalHeaderContainer: INodeProps;\n modalFooterContainer: INodeProps;\n modalBodyContainer: INodeProps;\n heading?: React.ReactNode;\n subheading?: React.ReactNode;\n link?: React.ReactNode;\n countryList?: React.ReactNode[];\n isModalOpen?: boolean;\n state?: ICountryPickerState;\n stayOnCurrentSiteButton?: React.ReactNode;\n}\n\n/**\n * ICountryPickerState: Interface for Country picker State.\n */\nexport interface ICountryPickerState {\n isModalOpen: boolean;\n}\n\n/**\n *\n * CountryPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CountryPicker extends React.PureComponent, ICountryPickerState> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private readonly _preferredSiteStorageKey: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationTime = 5_184_000;\n\n public constructor(props: ICountryPickerProps) {\n super(props);\n let isCookieValueSet: boolean = false;\n if (props.context.request.cookies.get(this._preferredSiteStorageKey).value) {\n isCookieValueSet = true;\n }\n this.state = {\n isModalOpen: !isCookieValueSet && this.props.context.request.marketSettings !== undefined\n };\n }\n\n public render(): JSX.Element | null {\n const { heading, subheading, countryList, actionLink } = this.props.config;\n\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven) {\n return null;\n }\n\n const countryPickerHeading = heading && (\n \n );\n\n const countryPickerSubHeading = subheading && (\n \n );\n\n const countryPickerActionLink = actionLink && this.createLink(actionLink);\n const currentSiteButton = (\n \n );\n\n const viewprops: ICountryPickerViewProps = {\n ...this.props,\n state: this.state,\n isModalOpen: this.state.isModalOpen,\n modalContainer: {\n moduleProps: this.props,\n tag: Modal,\n className: 'ms-country-picker__dialog',\n isOpen: true,\n 'aria-label': 'country-picker',\n toggle: this.closeModal,\n modalTransition: { timeout: 0 },\n shouldUpdateFocusToFirstElement: true\n },\n modalHeaderContainer: {\n tag: ModalHeader,\n className: 'ms-country-picker__modal-header',\n toggle: this.closeModal,\n closeButtonTabIndex: 1\n },\n modalFooterContainer: {\n tag: ModalFooter,\n className: 'ms-countryPicker__modal-footer'\n },\n modalBodyContainer: {\n tag: ModalBody,\n className: 'ms-counrtyPicker__modal-body'\n },\n heading: countryPickerHeading,\n subheading: countryPickerSubHeading,\n link: countryPickerActionLink,\n countryList: countryList && this.renderCountryList(),\n stayOnCurrentSiteButton: currentSiteButton\n };\n\n return this.props.renderView(viewprops);\n }\n\n /**\n * Initiate close modal.\n */\n public readonly closeModal = (): void => {\n this.setState({\n isModalOpen: false\n });\n };\n\n public handleParagraphChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.subheading = event.target.value;\n }\n\n public handleTextChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.heading!.text = event.target.value;\n }\n\n public handleLinkTextChange(event: MsDyn365.ContentEditableEvent): void {\n if (this.props.config.actionLink?.linkText) {\n this.props.config.actionLink.linkText = event.target.value;\n }\n }\n\n public createLink(link?: IActionLinkData): React.ReactNode | null {\n if (!StringExtensions.isNullOrEmpty(link?.linkUrl.destinationUrl)) {\n const linkText = link?.linkText ?? '';\n const payLoad = getPayloadObject('click', this._telemetryContent, '', '');\n const attributes = getTelemetryAttributes(this._telemetryContent, payLoad);\n const editableLink: MsDyn365.ILinksData = {\n ariaLabel: link?.ariaLabel,\n className: 'ms-countryPicker__link',\n linkText,\n linkUrl: link?.linkUrl.destinationUrl,\n openInNewTab: link?.openInNewTab,\n role: 'link',\n additionalProperties: attributes!,\n onClick: onTelemetryClick(this._telemetryContent, payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n public renderCountryList(): React.ReactNode[] | undefined {\n const marketSettings = this.props.context.request.marketSettings;\n if (!marketSettings) {\n return undefined;\n }\n const localeItems = marketSettings.localeItems;\n const countryLinks = localeItems.map((value: ILocaleItems) => {\n return this.renderCountry(value);\n });\n\n return countryLinks;\n }\n\n public renderCountry(localeItem: ILocaleItems): React.ReactNode | null {\n const countryList = this.props.config.countryList;\n let baseUrl = localeItem.localeBaseUrl;\n baseUrl = this._appendProtocolToUrl(baseUrl);\n const matchedCountryItem = countryList?.find(item => item.url === baseUrl);\n if (!matchedCountryItem) {\n return null;\n }\n const imageSize: IImageDimension = { q: 'w=48&h=48&m=6', w: 0, h: 0 };\n const defaultImageSettings: MsDyn365.IImageSettings = {\n viewports: {\n xs: imageSize,\n lg: imageSize,\n xl: imageSize\n },\n lazyload: true\n };\n const image = matchedCountryItem.image;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings ?? defaultImageSettings\n };\n return (\n \n {image && (\n \n )}\n
\n {matchedCountryItem.displayString}\n {matchedCountryItem.displaySubString}\n
\n \n );\n }\n\n /**\n * Writes the current site base url to cookie and closes the country picker modal dialog.\n */\n private readonly _handleStayOnSiteButtonClick = (): void => {\n const currentBaseUrl = this.props.context.request.marketSettings?.currentBaseUrl;\n if (currentBaseUrl) {\n const urlToStore = this._appendProtocolToUrl(currentBaseUrl);\n this._writeToCookie(this._preferredSiteStorageKey, urlToStore);\n }\n this.closeModal();\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n * @returns - This method just writes the cookie to the browser.\n */\n private readonly _handleClick = (storageKey?: string, storageValue?: string) => () => {\n this._writeToCookie(storageKey, storageValue);\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n */\n private readonly _writeToCookie = (storageKey?: string, storageValue?: string): void => {\n if (!storageKey || !storageValue) {\n return;\n }\n const cookieOptions: ICookieSetOptions = { secure: true, sameSite: 'none' };\n cookieOptions.maxAge = this._cookieExpirationTime;\n this.props.context.request.cookies.set(storageKey, storageValue, cookieOptions);\n };\n\n /**\n * Appends protocol to an url.\n * @param baseUrl - Url to be formatted.\n * @returns - URL after appending protocol.\n */\n private readonly _appendProtocolToUrl = (baseUrl: string): string => {\n return !baseUrl.includes('https://') ? `https://${baseUrl}` : baseUrl;\n };\n}\n\nexport default CountryPicker;\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 { ICountryPickerViewProps } from './country-picker';\n\n/**\n * Functional component which renders country picker module.\n * @param props - Configuration for the country picker component.\n * @returns React.FC - Functional component of the country picker module.\n */\nexport const countryPickerView: React.FC = (props: ICountryPickerViewProps) => {\n const {\n isModalOpen,\n modalContainer,\n modalHeaderContainer,\n modalBodyContainer,\n heading,\n modalFooterContainer,\n subheading,\n link,\n countryList,\n stayOnCurrentSiteButton\n } = props;\n return isModalOpen && countryList ? (\n \n \n {heading}\n {subheading}\n \n \n {countryList.map(country => (\n <>{country}\n ))}\n \n \n {stayOnCurrentSiteButton}\n {link}\n \n \n ) : null;\n};\n\nexport default countryPickerView;\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, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { 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?(): 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\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=315&h=315&m=6', w: 0, h: 0 },\n lg: { q: 'w=315&h=315&m=6', w: 0, h: 0 },\n xl: { q: 'w=315&h=315&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(product.ItemId, context.actionContext.requestContext.apiSettings);\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.RecordId)) {\n productUrl = getProductPageUrlSync(product.ProductName, product.RecordId, 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.RecordId)?.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 { 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}\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 = {};\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 });\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.RecordId)\n .map(\n product =>\n new ProductInput(\n product.RecordId!,\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(): void {\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\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 { 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 { 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 {resources.invoiceNumberText}\n {resources.invoiceDateText}\n {props.isAdmin ? {resources.invoiceUsersText} : null}\n {resources.invoiceAmountText}\n {resources.invoiceDueDateText}\n {resources.invoiceAmountDueText}\n {resources.invoiceStatusText}\n {resources.invoiceActionsText}\n \n );\n};\n\nconst getMobileHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\n const { resources } = props;\n return (\n <>\n \n \n \n {resources.invoicesText}\n {resources.invoiceDateMobileText}\n \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 {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, { IComponent, IComponentProps, ICoreContext, IDateFormatOptions, msdyn365Commerce } 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 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) => () => {\n props.onRequestInvoice!(props.data.invoice, requestInvoiceButtonReference);\n};\n\nconst getDesktopRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\n const {\n data: { invoice, index, customer }\n } = props;\n\n const isCurrentUser =\n !StringExtensions.isNullOrWhitespace(customer.AccountNumber) && customer.AccountNumber === invoice.customerAccountNumber;\n const payInvoiceClassName = `${props.className}__pay-invoice`;\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\n const requestInvoiceButtonReference: React.RefObject = React.createRef();\n const payInvoiceButtonReference: React.RefObject = React.createRef();\n return (\n <>\n \n \n \n \n \n {invoice.id}\n \n \n \n {formatDate(props.context, invoice.invoiceDate)}\n \n {customer.IsB2bAdmin ? (\n \n {invoice.customerName}\n {isCurrentUser ? {props.resources.invoiceCurrentUser} : null}\n \n ) : null}\n {formatAmount(props.context, invoice.amount, invoice.currencyCode)}\n \n {formatDate(props.context, invoice.dueDate)}\n \n {formatAmount(props.context, invoice.amountDue, invoice.currencyCode)}\n \n {getInvoiceStatusText(props.resources, invoice.status)}\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\nconst extraActionsPopup = (props: IInvoicesTableRowProps): JSX.Element | null => {\n const {\n resources: { invoiceViewDetailsButtonAriaLabel, invoiceViewDetailsButtonText, invoiceActionsButtonTextAriaLabel },\n data: { index }\n } = props;\n\n const [showActions, setShowActions] = useState(false);\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 return (\n
\n \n {showActions && (\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 {invoice.id}\n \n
\n {invoice.customerName}\n \n \n {formatDate(props.context, invoice.dueDate)}\n
\n {getInvoiceStatusText(props.resources, invoice.status)}\n \n {extraActionsPopup(props)}\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 { 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 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\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 const hasInvoices = ArrayExtensions.hasElements(invoices.filter(invoice => invoice.canBePaid));\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 { 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\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 { 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","/*!\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 { 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 { 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 { 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 selectedInvoiceIndex: number,\n onClosing: () => void,\n filteredInvoices: InvoiceModel[],\n onSubmitRequest: (invoiceId: string) => void\n) => () => {\n const defaultIndex = 0;\n if (selectedInvoiceIndex >= defaultIndex) {\n onClosing();\n onSubmitRequest(filteredInvoices[selectedInvoiceIndex].id);\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) => () => {\n let updatedInvoices = filteredInvoices;\n if (!StringExtensions.isNullOrEmpty(searchInput)) {\n updatedInvoices = invoices.filter(invoice => invoice.id.toLocaleUpperCase().includes(searchInput.toLocaleUpperCase()));\n }\n\n setFilteredInvoices(updatedInvoices);\n\n if (ArrayExtensions.hasElements(updatedInvoices)) {\n setSelectedInvoiceIndex(0);\n } else {\n setSelectedInvoiceIndex(-1);\n }\n setShouldShowSearchResults(true);\n\n setInvoiceOptions(renderInvoiceOptions(updatedInvoices, setSelectedInvoiceIndex, className, selectedInvoiceIndex));\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 selectedInvoiceIndex: number\n) => {\n return (\n
\n {filteredInvoices.map((invoice, index) => {\n const onInvoiceSelect = onInvoiceSelectHandler(setSelectedInvoiceIndex, index);\n\n const radioButtonId = `invoice__${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 invoiceOptionsData = renderInvoiceOptions(filteredInvoices, setSelectedInvoiceIndex, className, selectedInvoiceIndex);\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, 0));\n } else {\n setFilteredInvoices(invoices);\n setInvoiceOptions(renderInvoiceOptions(invoices, setSelectedInvoiceIndex, className, selectedInvoiceIndex));\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 );\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 } 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 { Button, Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from '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 isPageLoaded: boolean;\n payInvoiceErrorModalOpen: boolean;\n selectedButtonElement?: HTMLButtonElement | null;\n}\n\n/**\n * InvoicesList component.\n * @extends {React.Component, IInvoicesListState>}\n */\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 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 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\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\n return (\n
\n
\n {this._renderMakePayment(containerHeaderClass)}\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 filterClassName = `${className}__filter`;\n return (\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): 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 _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 const context = { callerContext: this.props.context.actionContext };\n const b2bUserId: string = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\n\n BusinessPartnerUsersDataActions.requestInvoiceCopyAsync(context, b2bUserId, invoiceId, BusinessPartnerOperationDeliveryType.Email);\n\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","/*!\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 { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISubscribeConfig, ISubscribeProps } from './subscribe.props.autogenerated';\n\n/**\n * Subscribe view props.\n */\nexport interface ISubscribeViewProps extends ISubscribeProps {\n subscribe: IModuleProps;\n subscribeContainer: INodeProps;\n heading: React.ReactNode;\n text: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n subscribeForm?: INodeProps;\n emailInput?: INodeProps;\n handleText(): void;\n}\n\n/**\n * Subscribe component.\n * @extends {React.PureComponent>}\n */\nexport class Subscribe extends React.PureComponent> {\n private readonly _emailAddressInputRef: React.RefObject;\n\n public constructor(props: ISubscribeViewProps) {\n super(props);\n this._emailAddressInputRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const moduleClassName = 'ms-subscribe';\n\n const subscribeParagraph = paragraph && (\n \n );\n\n const subscribeHeading = heading && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n subscribe: {\n moduleProps: this.props,\n className: moduleClassName\n },\n subscribeContainer: {\n className: 'ms-subscribe__details'\n },\n heading: subscribeHeading,\n text: subscribeParagraph,\n subscribeForm: {\n className: 'ms-subscribe__details__form',\n tag: 'form',\n 'aria-label': this.props.resources.subscribeFormAriaLabel,\n name: 'subscribeForm',\n role: 'form',\n autoComplete: 'off'\n },\n emailInput: {\n className: 'ms-subscribe__details__form__email',\n tag: 'input',\n ref: this._emailAddressInputRef,\n type: 'email',\n 'aria-label': this.props.resources.subscribeFormEmailAriaLabel,\n placeholder: this.props.resources.subscribeEmailPlaceholderText\n },\n submitButton: {\n className: 'ms-subscribe__details__form__submit',\n tag: Button,\n 'aria-label': this.props.resources.subscribeFormSubmitAriaLabel,\n type: 'submit',\n title: this.props.resources.subscribeButtonLabel\n },\n submitButtonLabelText: this.props.resources.subscribeButtonLabel\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n}\n\nexport default Subscribe;\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 { ISubscribeViewProps } from './subscribe';\n\n/**\n * Override form action and button action below.\n * @param event - The form event.\n */\nconst onSubmit = (event: React.FormEvent): void => {\n event.preventDefault();\n};\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns nothing.\n */\nexport const subscribeView: React.FC = props => {\n const { subscribe, subscribeContainer, heading, text, subscribeForm, emailInput, submitButton } = props;\n return (\n \n \n {heading}\n {text}\n \n \n \n {props.submitButtonLabelText}\n \n \n \n \n );\n};\n\nexport default subscribeView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ITabItemData } from './tab-item.data';\nimport { ITabItemProps } from './tab-item.props.autogenerated';\n\nexport interface ITabItemViewProps {\n TabContentContainer: IModuleProps;\n TabHeaderContainer: IModuleProps;\n tabSlots: INodeProps;\n TabItemContent: INodeProps;\n tabItemType?: TabItemType;\n tabHeader: React.ReactNode;\n}\n\nexport interface ITabItemExtentedProps extends ITabItemProps {\n tabItemType?: TabItemType;\n isSelected?: boolean;\n itemIndex?: number;\n tabId?: string;\n}\n\nexport enum TabItemType {\n TabHeader,\n TabContent\n}\n\n/**\n *\n * TabItem component.\n * @extends {React.Component}\n */\n@observer\nclass TabItem extends React.PureComponent {\n private readonly moduleContentClassName: string = 'ms-tab-item-content';\n\n private readonly moduleHeaderClassName: string = 'ms-tab-item-header';\n\n constructor(props: ITabItemProps) {\n super(props);\n this._renderTabHeader = this._renderTabHeader.bind(this);\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data, isSelected, itemIndex } = this.props;\n const index = itemIndex || 0;\n const contentID = getContentID(index, this.props.tabId || '');\n const activeContentIDResult = data && data.activeTabState && data.activeTabState.result;\n const shown =\n activeContentIDResult &&\n activeContentIDResult.tabId === this.props.tabId &&\n activeContentIDResult.activeContentIndex !== undefined\n ? activeContentIDResult.activeContentIndex === index\n : isSelected || false;\n const viewProps = {\n ...this.props,\n TabContentContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleContentClassName, config.className)\n },\n TabHeaderContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleHeaderClassName, config.className)\n },\n TabItemContent: {\n className: 'ms-tab-item-content__content',\n tag: 'section' as NodeTag,\n 'aria-hidden': !shown,\n role: 'tabpanel',\n tabIndex: shown ? 0 : -1,\n id: contentID\n },\n tabHeader: this._renderTabHeader(),\n tabSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n private _renderTabHeader(): React.ReactNode {\n return <>{this.props.config.tabItemTitle};\n }\n}\n\nexport const getContentID = (index: number, id: string) => {\n return `tab-item-content-${id}-${index}`;\n};\n\nexport default TabItem;\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 { ITabItemViewProps, TabItemType } from './tab-item';\n\nconst TabItemView: React.FC = props => {\n const { tabItemType, tabSlots, TabContentContainer, TabHeaderContainer, TabItemContent, tabHeader } = props;\n\n switch (tabItemType) {\n case TabItemType.TabContent:\n return (\n \n \n {tabSlots &&\n tabSlots.tabItemContent &&\n tabSlots.tabItemContent.length &&\n _renderTabItemContent(tabSlots.tabItemContent)}\n \n \n );\n case TabItemType.TabHeader:\n return {tabHeader};\n default:\n return null;\n }\n};\n\nconst _renderTabItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default TabItemView;\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, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createTabStateInput, getContentID, TabItemType } from '../..';\nimport { ITabData } from './tab.data';\nimport { ITabProps } from './tab.props.autogenerated';\n\n/**\n *\n * Tab component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\nexport interface ITabViewProps extends ITabProps<{}> {\n heading?: React.ReactNode;\n TabContainer: IModuleProps;\n headerSection: INodeProps;\n tabHeaderSection: INodeProps;\n tabsSection: INodeProps;\n tabItemContainer: INodeProps;\n tabHeaders: React.ReactNode;\n tabContents: React.ReactNode;\n}\n\nexport interface ITabViewStates {\n currentTabIndex: number;\n}\n\n/**\n *\n * Tab component.\n * @extends {React.Component>}\n */\n@observer\nclass Tab extends React.Component, ITabViewStates> {\n public readonly tabIndexQuery: string = 'activeTab';\n\n private activeLink: HTMLLIElement | null;\n\n constructor(props: ITabProps) {\n super(props);\n const { defaultTabIndex } = this.props.config;\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n let initialIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n let queryTabIndex: number = 0;\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n queryTabIndex = Number.parseInt(arr[1], 10);\n }\n }\n initialIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : initialIndex;\n this.state = { currentTabIndex: initialIndex };\n\n this._getTabHeader = this._getTabHeader.bind(this);\n this._getTabContent = this._getTabContent.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._setGetParameter = this._setGetParameter.bind(this);\n this.activeLink = null;\n }\n\n public shouldComponentUpdate(nextProps: ITabProps, nextState: ITabViewStates): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n\n const headingComponent = heading && (\n \n );\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n // Const queryTabIndex = this.props.context && this.props.context.request && this.props.context.request.query && +this.props.context.request.query.activeTabIndex || 0;\n // let activeIndex = defaultTabIndex && defaultTabIndex <= slotLength && defaultTabIndex > 0 ? defaultTabIndex - 1 : 0;\n // activeIndex = queryTabIndex > 0 && queryTabIndex <= slotLength ? queryTabIndex - 1 : activeIndex;\n\n const tabViewProps = {\n ...this.props,\n TabContainer: {\n moduleProps: this.props,\n className: classnames('ms-tab', className)\n },\n headerSection: { className: 'ms-tab-header-section' },\n tabsSection: { className: 'ms-tab-tabs-section', tag: 'ul' as NodeTag, role: 'tablist' },\n heading: headingComponent,\n config: this.props && this.props.config,\n tabItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-tab-content-section'\n },\n tabContents: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabContent(item, index)),\n tabHeaders: slotLength > 0 && slots.tabItems.map((item: React.ReactNode, index: number) => this._getTabHeader(item, index))\n };\n return this.props.renderView(tabViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: MsDyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public componentDidUpdate(): void {\n const { data } = this.props;\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n if (dataActionTabId) {\n if (this.props.id === dataActionTabId) {\n this.activeLink && this.activeLink.focus();\n }\n } else {\n const queryString: string =\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.query &&\n this.props.context.request.query.activeTab) ||\n '';\n if (queryString.indexOf(':') > 0) {\n const arr = queryString.split(':');\n const moduleId = arr[0];\n if (moduleId === this.props.id) {\n this.activeLink && this.activeLink.focus();\n }\n }\n }\n }\n\n /**\n *Set the activate link value on tab click.\n * @param link -Ref link value.\n */\n private readonly _refHandler = (link: HTMLLIElement | null) => {\n this.activeLink = link;\n };\n\n private _getTabHeader(item: React.ReactNode, index: number): React.ReactNode {\n const { data } = this.props;\n const activeContentIndex =\n data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.activeContentIndex;\n const dataActionTabId = data && data.activeTabState && data.activeTabState.result && data.activeTabState.result.tabId;\n const selected =\n activeContentIndex !== undefined && dataActionTabId === this.props.id\n ? activeContentIndex === index\n : this.state.currentTabIndex === index;\n const contentID = getContentID(index, this.props.id);\n\n return (\n \n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabHeader,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n \n );\n }\n\n private readonly _onClick = (index: number, id: string) => (e: React.MouseEvent) => {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n };\n\n private readonly _onKeyDown = (index: number, id: string) => (e: React.KeyboardEvent) => {\n if (e.keyCode === 13) {\n const activeTabState = { activeContentIndex: index, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 1)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n\n if (e.keyCode === 39 || e.keyCode === 37) {\n const { slots } = this.props;\n const slotLength = (slots && slots.tabItems && slots.tabItems.length) || 0;\n\n if (e.keyCode === 39) {\n // If we're at the end, go to the start\n if (index + 1 === slotLength) {\n index = -1;\n }\n const activeTabState = { activeContentIndex: index + 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index + 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index + 2)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n\n // Move left\n } else if (e.keyCode === 37) {\n // If we're at the start, move to the end\n if (index === 0) {\n index = slotLength;\n }\n const activeTabState = { activeContentIndex: index - 1, tabId: id };\n this.props.context.actionContext.update(createTabStateInput(activeTabState), activeTabState);\n this.setState({ currentTabIndex: index - 1 });\n\n // Update query paramter\n const requestContext = this.props.context.request;\n const newUrl = this._setGetParameter(requestContext, this.tabIndexQuery, `${this.props.id}:${String(index)}`);\n requestContext && window.history.pushState({ path: newUrl }, '', newUrl);\n }\n }\n };\n\n private _getTabContent(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, {\n tabItemType: TabItemType.TabContent,\n isSelected: index === this.state.currentTabIndex,\n itemIndex: index,\n tabId: this.props.id\n })}\n \n );\n }\n\n private _setGetParameter(requestContext: MsDyn365.IRequestContext, paramName: string, paramValue: string): string {\n let url;\n\n if (MsDyn365.msdyn365Commerce.isBrowser) {\n url = new URL(window.location.href);\n } else {\n url = new URL(requestContext.url.requestUrl.href);\n }\n\n const params = new window.URLSearchParams(url.search);\n params.set(paramName, paramValue);\n url.search = decodeURIComponent(params.toString());\n return url.toString();\n }\n}\n\nexport default Tab;\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 { ITabViewProps } from './tab';\n\nconst tabView: React.FC = props => {\n const { heading, TabContainer, tabHeaders, tabContents } = props;\n if (!props.heading && !props.tabHeaders && !props.tabContents) {\n props.context.telemetry.error('Tab content is empty, module wont render');\n return null;\n }\n return (\n \n {heading}\n {tabHeaders}\n {tabContents}\n \n );\n};\n\nexport default tabView;\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 '../tile-list-item.props.autogenerated';\n\n/**\n * Tile List links.\n */\nexport interface ITileListLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ITileListLinks component.\n * @extends {React.PureComponent}\n */\nexport class TileListLinks 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 * ITileListLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!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-tile-list__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 TileListLinks;\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 { TileListLinks } from './components';\nimport { IHeadingData, ITileListItemProps } from './tile-list-item.props.autogenerated';\n\n/**\n * Tile-list-item view props.\n */\nexport interface ITileListItemViewProps extends ITileListItemProps<{}> {\n heading?: React.ReactNode;\n paragraph?: React.ReactNode;\n links?: React.ReactNode;\n backgroundImage?: React.ReactNode;\n thumbnailImage?: React.ReactNode;\n tileListItem: IModuleProps;\n tileListContainer: INodeProps;\n tileListImageContainer: INodeProps;\n tileListThumbnailImageContainer: INodeProps;\n tileListHeadingContainer: INodeProps;\n}\n\n/**\n *\n * TileListItem component.\n * @extends {React.PureComponent>}\n */\nexport class TileListItem 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: ITileListItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element {\n const { heading, paragraph, backgroundImage, thumbnailImage, redirectionUrl, links } = this.props.config;\n const tileListLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n const tileListLinkContainer = {\n tag: 'a' as NodeTag,\n className: 'ms-tile-list-container',\n role: 'link',\n href: redirectionUrl?.linkUrl.destinationUrl,\n 'aria-label': redirectionUrl?.ariaLabel\n };\n\n const tileListButtonContainer = {\n tag: 'button' as NodeTag,\n className: 'ms-tile-list-container'\n };\n const viewProps: ITileListItemViewProps = {\n ...this.props,\n heading: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n backgroundImage: this._renderBackgroundImage(backgroundImage),\n thumbnailImage: this._renderThumbnailImage(thumbnailImage),\n links: tileListLinks,\n tileListItem: {\n moduleProps: this.props,\n className: ''\n },\n tileListContainer: redirectionUrl ? tileListLinkContainer : tileListButtonContainer,\n tileListImageContainer: {\n className: 'ms-tile-list__image'\n },\n tileListThumbnailImageContainer: {\n className: 'ms-tile-list__thumbnail_image',\n 'aria-hidden': 'true'\n },\n tileListHeadingContainer: {\n className: 'ms-tile-list__heading'\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 _renderBackgroundImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=412&m=6', w: 328, h: 412 },\n sm: { q: 'w=328&h=412&m=6', w: 328, h: 412 },\n md: { q: 'w=315&h=412&m=6', w: 315, h: 412 },\n lg: { q: 'w=315&h=412&m=6', w: 315, h: 412 },\n xl: { q: 'w=315&h=412&m=6', w: 315, h: 412 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n\n return (\n \n );\n }\n\n private _renderThumbnailImage(\n item?: Msdyn365.IImageData,\n itemImageSettings?: Msdyn365.IImageSettings,\n isAriaHiddenAttribute?: boolean\n ): React.ReactNode | null {\n if (!item) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(item.src)) {\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default TileListItem;\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 { ITileListItemViewProps } from './tile-list-item';\n\n/**\n *\n * ITileListItemViewProps component.\n * @param props - Component props.\n * @returns TileListView.\n */\nconst renderTileListItemContent = (props: ITileListItemViewProps): JSX.Element => {\n const {\n heading,\n paragraph,\n backgroundImage,\n links,\n thumbnailImage,\n tileListContainer,\n tileListImageContainer,\n tileListThumbnailImageContainer,\n tileListHeadingContainer\n } = props;\n\n return (\n \n {backgroundImage}\n \n {heading}\n {paragraph}\n {links}\n \n {thumbnailImage}\n \n );\n};\n\n/**\n *\n * TileListItemViewProps component.\n * @param props - Component props.\n * @returns TileListView.\n */\nexport const TileListItemViewComponent: React.FC = props => {\n const { tileListItem } = props;\n return {renderTileListItemContent(props)};\n};\n\nexport default TileListItemViewComponent;\n"],"names":["renderCustomerName","accountInformation","customer","result","React","FirstName","Name","_renderReactFragment","items","length","map","slot","index","key","props","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","Module","Node","navIcon","logo","search","preferredStore","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","accountInfoDropdownButton","signOutLink","signInLink","accountLinks","accountClassName","classnames","className","link","_renderAccountBlock","wishListIconDesktop","cartIcon","siteOptions","MobileMenuLinksContainer","mobileMenuCollapsed","Collapse","isOpen","data","Drawer","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","_renderMobileAccountBlock","wishListIconMobile","menuBar","_renderCollapseMenu","createSearchResultModal","modalProps","refineMenu","modal","modalHeader","createModalBody","modalFooter","modalBody","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","submenu","renderSort","SortingContainer","sortByDropDown","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","category","renderTitle","title","TitleContainer","titlePrefix","titleText","titleCount","SearchResultContainer","products","pagination","ProductsContainer","ProductSectionContainer","choiceSummary","isMobile","modalToggle","searchResultModal","TitleViewProps","categoryHierarchy","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","errorMessage","FeatureSearchContainer","similarLookProduct","AccountGenericTile","constructor","super","handleHeadingChange","event","this","config","heading","text","target","value","handleLinkTextChange","linkIndex","links","linkText","telemetryContent","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","render","viewProps","moduleProps","Msdyn365","tag","editProps","onEdit","requestContext","LinksComponent","onTextChange","renderView","_mapEditableLinks","linkdata","editableLinks","payLoad","getPayloadObject","forEach","contentAction","etext","attributes","getTelemetryAttributes","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","push","id","disabled","onClick","Button","type","message","errorClassName","GetMaxLength","maxLength","parsedMaxLength","Number","parseInt","isNaN","pattern","onChange","undefined","forId","htmlFor","successClassName","PasswordResetVerification","moduleClassName","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","getValue","v1Value","v2Value","templateVersion","emailRegex","EmailRegex","componentDidMount","componentDidUpdate","shouldComponentUpdate","nextProps","nextState","state","resources","viewState","isShowLoading","passwordResetVerification","loading","Modal","ModalBody","icon","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","loadingMessage","defaultAADConainer","style","display","aadConainer","passwordResetVerificationLocalAccount","_renderLocalAccount","obj","ID","toLowerCase","PAT","verifying_blurb","Object","assign","localAccount","verificationControlWrapper","_renderInput","emailAddressLabelText","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","buttonsWrapper","buttons","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","labelText","cssClassName","wrapper","label","PasswordResetVerificationLabelComponent","input","PasswordResetVerificationInputComponent","__decorate","observable","observer","PasswordResetVerificationItem","PasswordResetVerificationLoading","item","error","button","LocalAccount","CountryPicker","_telemetryContent","_preferredSiteStorageKey","_cookieExpirationTime","closeModal","setState","isModalOpen","_handleStayOnSiteButtonClick","currentBaseUrl","marketSettings","urlToStore","_appendProtocolToUrl","_writeToCookie","_handleClick","storageKey","storageValue","cookieOptions","secure","sameSite","maxAge","cookies","set","baseUrl","includes","isCookieValueSet","get","subheading","countryList","actionLink","isConsentGiven","countryPickerHeading","MsDyn365","handleTextChange","countryPickerSubHeading","handleParagraphChange","countryPickerActionLink","createLink","currentSiteButton","tabIndex","stayOnCurrentSiteButtonText","viewprops","modalContainer","toggle","modalTransition","timeout","shouldUpdateFocusToFirstElement","modalHeaderContainer","ModalHeader","closeButtonTabIndex","modalFooterContainer","ModalFooter","modalBodyContainer","renderCountryList","stayOnCurrentSiteButton","StringExtensions","onTelemetryClick","localeItems","renderCountry","localeItem","localeBaseUrl","matchedCountryItem","find","url","imageSize","q","w","h","defaultImageSettings","viewports","xs","lg","xl","lazyload","image","imageProps","gridSettings","imageSettings","displayString","href","src","altText","loadFailureBehavior","shouldSkipToMainImage","displaySubString","countryPickerView","country","InvoiceDetailsHeaderComponent","msdyn365Commerce","component","invoiceDetails","onError","invoiceNumberText","invoiceIdLabel","replace","invoiceOrderItemsText","lines","invoiceOrderItem","invoiceOrderItems","toString","invoiceInfoContainerClassName","orderInfoContainerClassName","orderInfoClassName","orderMainInfoClassName","orderDetailsClassName","actionsClassName","amountSummaryClassName","orderDate","date","invoiceDate","cultureFormatter","formatDate","year","month","day","dueDate","formatLongDate","dueDateText","invoicePaymentDueDateText","invoicePlacedByLabel","customerName","invoiceAmountDueText","amount","currencyCode","formatCurrency","formatAmount","amountDue","PayInvoiceComponent","typeName","invoice","InvoiceDetailsPaymentDetailsComponent","invoicePaymentDetails","lineClassName","ObjectExtensions","totalDiscount","invoicePaymentDiscounts","subtotal","invoicePaymentSubtotal","totalCharges","invoicePaymentCharges","totalTax","invoicePaymentTax","totalAmount","invoicePaymentInvoiceTotal","ArrayExtensions","line","InvoiceDetailsProductsComponent","productLineClass","productLineInfoContainerClass","productLineDetailsClass","productLineSmallDetailsClass","product","quantity","Quantity","productUrl","ProductName","RecordId","getProductPageUrlSync","actionContext","cropFocalRegion","fallbackImage","getFallbackImageUrl","ItemId","apiSettings","Image","primaryImageUrl","fallBackSrc","_renderProductImage","ColorName","invoiceProductColor","SizeName","invoiceProductSize","StyleName","invoiceProductStyle","_renderProductDimensions","Price","invoiceQuantity","NetAmount","InvoiceDetailsModel","Id","InvoiceDate","Date","CustomerName","InvoiceDueDate","AmountBalance","status","InvoicePaidStatusValue","SalesInvoiceLine","PrimaryImageUrl","TotalDiscount","InvoiceSubtotal","TotalCharges","TotalTaxAmount","TotalAmount","CurrencyCode","InvoicePaidStatus","InvoiceDetails","_onAddToCartFailed","bind","_setPayInvoiceErrorModalClose","_getProducts","ChannelId","invoiceDetailsModel","payInvoiceErrorModalOpen","header","_renderHeader","_renderProducts","paymentDetails","_renderPaymentDetails","payInvoiceError","_renderInvoiceErrors","_className","channelId","productInputs","invoiceLines","filter","ProductInput","getSimpleProductsAction","payInvoiceErrorDialogHeader","payInvoiceErrorDialogBodyErrorTitle","payInvoiceErrorDialogBodyErrorDescription","payInvoiceErrorDialogFooterGoToCartButtonText","payInvoiceErrorDialogFooterCancelButtonText","cartUrl","getUrlSync","InvoiceErrorComponent","showError","errorDialogHeader","errorDialogBodyErrorTitle","errorDialogBodyErrorDescription","errorDialogFooterGoToCartButtonText","errorDialogFooterCancelButtonText","setPayInvoiceErrorModalClose","InvoiceDetailsView","messageHeader","otherError","errorMessages","Alert","color","assertive","InvoicesFilterState","getInvoicesFilterStateResources","filterState","ShowAll","invoicesFilterShowAll","Paid","invoiceStatusPaid","PartiallyPaid","invoiceStatusPartiallyPaid","Unpaid","invoiceStatusUnpaid","Error","onClickHandler","onStateClick","InvoicesFilterComponent","popoverRef","popoverState","setPopoverState","togglePopover","setFilterState","currentState","onFilterStateClick","clickedState","onFilterStateChanged","innerRef","Popover","placement","EnumExtensions","stateStringRepresentation","renderFilterStateItem","InvoicesTableHeaderComponent","rowClassName","switchCheckedState","onSelectAll","isSelectedAll","headerCells","invoiceListSelectAllRadioAriaLabelText","checked","invoicesText","invoiceDateMobileText","getMobileHeaderCells","invoiceDateText","isAdmin","invoiceUsersText","invoiceAmountText","invoiceDueDateText","invoiceStatusText","invoiceActionsText","getDesktopHeaderCells","onRequestSpecificInvoice","requestInvoiceButtonReference","onRequestInvoice","setShowPreviousActions","onClickViewDetails","linkToInvoiceDetails","location","isShowActions","setShowActions","shouldShowActions","getMobileRowCells","onSelectLine","getInvoiceDetailsPageUrlSync","invoiceRowArialabel","format","invoiceListSelectRadioAriaLabelText","isSelected","getInvoiceStatusText","invoiceViewDetailsButtonAriaLabel","invoiceViewDetailsButtonText","invoiceActionsButtonTextAriaLabel","showActions","useState","actionsContainerClassName","payInvoiceClassName","reference","payInvoiceReferences","RequestInvoiceButton","innerReference","invoiceReferences","requestInvoiceButtonLabel","invoiceRequestButtonLabel","onClicked","extraActionsPopup","InvoicesTableRowComponent","rowCells","isCurrentUser","AccountNumber","customerAccountNumber","payInvoiceButtonReference","IsB2bAdmin","invoiceCurrentUser","getDesktopRowCells","isMobileView","viewport","device","Type","innerWidth","sm","md","getViewport","onSelectAllHandler","invoices","InvoicesTableComponent","setIsMobile","updateViewport","addEventListener","headerClassName","invoiceButtonReferences","payInvoiceButtonReferences","MakePaymentComponentActions","async","_event","setDisabled","payInvoices","errorState","buttonReferences","MakePaymentComponent","hasInvoices","canBePaid","makePaymentButtonAriaLabel","makePaymentButtonText","PayInvoiceComponentActions","payInvoiceButtonAriaLabel","payInvoiceButtonText","InvoiceModel","CustomerAccountNumber","invoiceStatus","invoiceStatusNone","invoicesToAdd","errorReason","failureReason","cartState","getCartState","addInvoicesToCart","invoiceIds","errorDetails","LocalizedMessage","errorCode","ErrorResourceId","onSubmitRequestClick","selectedInvoiceIndex","onClosing","filteredInvoices","onSubmitRequest","searchInputChangedHandler","setSearchInput","onCancelHandler","renderInvoiceOptions","setSelectedInvoiceIndex","onInvoiceSelect","onInvoiceSelectHandler","radioButtonId","name","RequestInvoiceModal","email","modalHeaderLabel","sendToEmailLabel","submitRequestLabel","cancelLabel","searchPlaceholderLabel","invoicesFoundString","singleInvoiceFoundString","searchButtonAltText","setFilteredInvoices","searchInput","shouldShowSearchResults","setShouldShowSearchResults","invoiceOptionsData","invoiceOptions","setInvoiceOptions","focusElement","current","focus","searchEntered","updatedInvoices","toLocaleUpperCase","searchEnteredHandler","searchResultString","invoicesFoundReplaceIndex","indexOf","horizontalPosition","verticalPosition","autoFocus","fade","onOpened","selectedInvoices","setFilteredInvoicesToSelectedInvoices","requestInvoiceDialogAriaLabel","substring","ref","placeholder","InvoicesList","buttonChildReference","buttonChildPayButtonReference","_onToggleInvoiceRequestParentModal","selectedButtonElement","payInvoiceRequestReference","_onToggleInvoiceRequestModal","_queryResultSettings","QueryResultSettingsProxy","QueryResultSettings","makePaymentReference","_updateInvoicesState","_handleFilterStateChange","_loadMoreInvoices","_requestInvoice","_requestSpecificInvoice","invoicesFilterState","isLoading","isPageLoaded","isInvoiceRequestModalOpen","channel","customerBalance","invoicesListTitle","invoicesListDescTitle","invoicesListDescCount","amountText","OpenInvoiceBalance","toFixed","Currency","totalCount","OpenInvoiceCount","countText","invoicesListTitleHeading","Heading","invoiceRequestModal","_renderInvoiceRequestModal","_renderInvoicesFilter","_renderPagination","content","_renderListContainer","_renderEmptyInvoiceLinesPageContent","invoicesData","_initializeWithInvoices","_addInvoices","newInvoices","concat","containerClass","actionsContainerClass","invoiceEmptyInvoiceLinesTitle","invoiceEmptyInvoiceLinesDescription","invoiceEmptyInvoiceLinesContinueShoppingButtonAriaLabel","invoiceEmptyInvoiceLinesContinueShoppingButtonText","containerHeaderClass","containerContentClass","_renderMakePayment","_renderInvoiceRequestButton","_renderInvoicesList","searchCriteria","businessPartner","getCurrentAsync","callerContext","BusinessPartnerId","getCustomer","GetCustomerInput","CustomerId","InvoicePaidStatusValues","_getInvoicesSearchCriteria","Paging","Skip","getInvoices","GetInvoicesInput","filterClassName","tableClassName","newErrorState","errorHost","invoiceErrorInvoiceIdNotExist","invoiceErrorFailedAddInvoiceToCart","shouldShowAdditionalInfoInPopup","makePaymentResources","_getSelectedInvoices","moduleId","moduleTypeName","navigationUrl","invoiceErrorMessageHeader","Top","invoicesLoadMore","invoiceRequestModalCancelLabel","invoiceRequestModalSubmitLabel","invoiceRequestModalHeaderLabel","invoiceRequestModalSendToEmailLabel","invoiceRequestModalSearch","invoiceRequestModalInvoiceSearchDisplay","invoiceRequestModalSingleInvoiceSearchDisplay","invoiceRequestModalSearchButton","Email","invoiceId","b2bUserId","b2bUserInformation","B2BUserId","BusinessPartnerUsersDataActions","BusinessPartnerOperationDeliveryType","specificInvoice","InvoiceListView","Subscribe","paragraph","_emailAddressInputRef","subscribeParagraph","subscribeHeading","handleText","subscribe","subscribeContainer","subscribeForm","subscribeFormAriaLabel","autoComplete","emailInput","subscribeFormEmailAriaLabel","subscribeEmailPlaceholderText","submitButton","subscribeFormSubmitAriaLabel","subscribeButtonLabel","submitButtonLabelText","onSubmit","preventDefault","subscribeView","TabItemType","TabItem","moduleContentClassName","moduleHeaderClassName","_renderTabHeader","slots","itemIndex","contentID","getContentID","tabId","activeContentIDResult","activeTabState","shown","activeContentIndex","TabContentContainer","TabHeaderContainer","TabItemContent","tabHeader","tabSlots","tabItemTitle","_renderTabItemContent","tabItemType","tabItemContent","Tab","tabIndexQuery","_refHandler","activeLink","_onClick","e","update","createTabStateInput","currentTabIndex","newUrl","_setGetParameter","String","history","pushState","path","_onKeyDown","keyCode","slotLength","tabItems","defaultTabIndex","initialIndex","queryString","query","activeTab","queryTabIndex","arr","split","_getTabHeader","_getTabContent","headingComponent","tabViewProps","TabContainer","headerSection","tabsSection","tabItemContainer","tabContents","tabHeaders","dataActionTabId","selected","onKeyDown","paramName","paramValue","URL","requestUrl","params","URLSearchParams","decodeURIComponent","TileListLinks","TileListItem","backgroundImage","thumbnailImage","redirectionUrl","tileListLinks","tileListLinkContainer","_createHeading","_createParagraph","_renderBackgroundImage","_renderThumbnailImage","tileListItem","tileListContainer","tileListImageContainer","tileListThumbnailImageContainer","tileListHeadingContainer","isAriaHiddenAttribute","verifiedImageSettings","moduleType","imagePropertyName","itemImageSettings","layout","msdyn365__moduleLayout","TileListItemViewComponent","renderTileListItemContent"],"sourceRoot":""}