{"version":3,"file":"static/js/16.fb5a2c70fb7f55c575e6.chunk.js","mappings":"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","sources":["webpack://lds-commerce/./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack://lds-commerce/./src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?d6f5","webpack://lds-commerce/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","webpack://lds-commerce/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://lds-commerce/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://lds-commerce/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://lds-commerce/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://lds-commerce/./src/modules/invoices-list/components/request-invoice-modal.tsx?f9b5","webpack://lds-commerce/./src/modules/invoices-list/invoices-list.tsx?2d55","webpack://lds-commerce/./src/modules/invoices-list/invoices-list.view.tsx?8b51","webpack://lds-commerce/./src/modules/breadcrumb/components/link.tsx?d232","webpack://lds-commerce/./src/modules/breadcrumb/components/separator.tsx?92bb","webpack://lds-commerce/./src/modules/breadcrumb/breadcrumb.tsx?efcc","webpack://lds-commerce/./src/modules/invoice-details/components/invoice-details-header.tsx?a6c6","webpack://lds-commerce/./src/modules/invoice-details/components/invoice-details-payment-summary.tsx?3434","webpack://lds-commerce/./src/modules/invoice-details/components/invoice-details-products.tsx?8f29","webpack://lds-commerce/./src/modules/invoice-details/helpers/invoice-data.ts?608f","webpack://lds-commerce/./src/modules/invoice-details/invoice-details.tsx?b51a","webpack://lds-commerce/./src/modules/map/map.tsx?6111","webpack://lds-commerce/./src/themes/fabrikam/views/account-profile.view.tsx?50c8","webpack://lds-commerce/./src/themes/fabrikam/views/buybox.view.tsx?e8f6","webpack://lds-commerce/./src/themes/fabrikam/views/content-block.view.tsx?4879","webpack://lds-commerce/./src/modules/breadcrumb/breadcrumb.view.tsx?4b3d","webpack://lds-commerce/./src/modules/fabrikam/views/buybox.view.tsx?aec4","webpack://lds-commerce/./src/modules/invoice-details/invoice-details.view.tsx?3784","webpack://lds-commerce/./src/modules/map/map.view.tsx?5db9","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://lds-commerce/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://lds-commerce/./src/modules/invoices-list/components/invoice-error-component.tsx?2ff9","webpack://lds-commerce/./src/modules/invoices-list/components/pay-invoice-component.tsx?6f61","webpack://lds-commerce/./src/modules/invoices-list/helpers/pay-invoices.ts?30c0","webpack://lds-commerce/./src/modules/invoices-list/components/invoices-filter-component.tsx?5fd4","webpack://lds-commerce/./src/modules/invoices-list/components/invoices-table/components/invoices-table-header-component.tsx?f5e1","webpack://lds-commerce/./src/modules/invoices-list/components/invoices-table/components/invoices-table-row-component.tsx?48db","webpack://lds-commerce/./src/modules/invoices-list/helpers/invoice-status.ts?5841","webpack://lds-commerce/./src/modules/invoices-list/components/invoices-table/invoices-table-component.tsx?9790","webpack://lds-commerce/./src/modules/invoices-list/components/make-payment-component.tsx?1427","webpack://lds-commerce/./src/modules/invoices-list/helpers/invoice-data.ts?00b1","webpack://lds-commerce/./src/modules/invoices-list/components/request-invoice-button.tsx?9eb0"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileData } from './account-welcome-tile.data';\nimport { IAccountWelcomeTileProps } from './account-welcome-tile.props.autogenerated';\n\nexport interface IAccountWelcomeTileViewProps extends IAccountWelcomeTileProps {\n AccountWelcomeTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AccountWelcome component.\n * @extends {React.PureComponent>}\n */\nclass AccountWelcomeTile extends React.PureComponent> {\n public render(): JSX.Element {\n const { config, data } = this.props;\n const { className } = config;\n\n const accountInfo = data.accountInformation.result;\n const heading = {\n ...config.heading,\n ...{\n text: `${config.heading.text ? config.heading.text : ''} ${\n accountInfo && accountInfo.FirstName ? accountInfo.FirstName : ''\n }`\n }\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountWelcomeTile: {\n moduleProps: this.props,\n className: classnames('ms-account-welcome-tile', config.className)\n },\n heading: heading && heading.text && (\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\nexport default AccountWelcomeTile;\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 } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../../..';\n\nexport interface IB2bRequestsTileLinksProps {\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 defaultClassName = 'ms-account-b2b-requests-tile';\n\nexport const B2bRequestsTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (!ArrayExtensions.hasElements(links)) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n return linkdata.map(link => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return {\n ariaLabel: link.ariaLabel,\n className: `${defaultClassName}__link`,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n } as Msdyn365.ILinksData;\n });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileData } from './b2b-requests-tile.data';\nimport { IB2bRequestsTileProps } from './b2b-requests-tile.props.autogenerated';\nimport { B2bRequestsTileLinks } from './components/account-b2b-requests-tile-links';\n\nexport interface IB2bRequestsTileViewProps extends IB2bRequestsTileProps {\n b2bRequestsTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsTile component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IB2bRequestsTileProps) {\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 | null {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const defaultClassName = 'ms-account-b2b-requests-tile';\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n b2bRequestsTile: {\n moduleProps: this.props,\n className: classnames(defaultClassName, config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: ArrayExtensions.hasElements(links) && (\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 B2bRequestsTile;\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 { IAccountWelcomeTileViewProps } from './account-welcome-tile';\n\nconst AccountWelcomeTileView: React.FC = props => {\n const { AccountWelcomeTile, heading } = props;\n\n return {heading};\n};\n\nexport default AccountWelcomeTileView;\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 { IB2bRequestsTileViewProps } from './b2b-requests-tile';\n\nconst B2bRequestsTileView: React.FC = props => {\n const { b2bRequestsTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default B2bRequestsTileView;\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 {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \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 { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\n\n/* ---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InvoiceModel } from '../helpers/invoice-data';\nimport { IInvoicesListResources } from '../invoices-list.props.autogenerated';\n\ninterface IRequestInvoiceModalProps {\n className: string;\n email: string;\n isModalOpen: boolean;\n submitRequestLabel: string;\n modalHeaderLabel: string;\n sendToEmailLabel: string;\n cancelLabel: string;\n searchPlaceholderLabel: string;\n invoices: InvoiceModel[];\n invoicesFoundString: string;\n singleInvoiceFoundString: string;\n searchButtonAltText: string;\n resources: IInvoicesListResources;\n toggle(): void;\n onSubmitRequest(invoiceId: string): void;\n}\n\n/**\n * On submit request click function.\n * @param selectedInvoiceIndex -Check is busy.\n * @param onClosing -On closing function.\n * @param filteredInvoices -Invoice modal.\n * @param onSubmitRequest -On submit request function.\n * @returns Call on submit request.\n */\nconst onSubmitRequestClick = (\n onClosing: () => void,\n filteredInvoices: InvoiceModel[],\n onSubmitRequest: (invoiceId: string) => void,\n checkboxRef: React.MutableRefObject\n) => () => {\n const defaultIndex = 0;\n let closingFlag: number = 0;\n\n filteredInvoices.map((invoice, index) => {\n const inputInvoice = checkboxRef.current[Number(index)] as React.RefObject;\n if (inputInvoice.current?.checked === true && index >= defaultIndex) {\n onSubmitRequest(invoice.id);\n closingFlag = closingFlag + 1;\n }\n });\n if (closingFlag <= filteredInvoices.length) {\n onClosing();\n }\n};\n\n/**\n * On search input change function.\n * @param setSearchInput -Set search input.\n * @returns Set search input function.\n */\nconst searchInputChangedHandler = (setSearchInput: React.Dispatch>) => (\n event: React.ChangeEvent\n) => {\n setSearchInput(event.target.value);\n};\n\n/**\n * Search entered handler.\n * @param invoices -InvoiceModel.\n * @param searchInput -String.\n * @param setFilteredInvoices -InvoiceModel action.\n * @param filteredInvoices -Filtered Invoices.\n * @param setSelectedInvoiceIndex -Selected Invoice Index.\n * @param setShouldShowSearchResults -Show search result action.\n * @param setInvoiceOptions -Invoice options action.\n * @param selectedInvoiceIndex -Selected invoice index.\n * @param className -String.\n * @returns Set invoice options.\n */\nconst searchEnteredHandler = (\n invoices: InvoiceModel[],\n searchInput: string,\n setFilteredInvoices: React.Dispatch>,\n filteredInvoices: InvoiceModel[],\n setSelectedInvoiceIndex: React.Dispatch>,\n setShouldShowSearchResults: React.Dispatch>,\n setInvoiceOptions: React.Dispatch>,\n selectedInvoiceIndex: number,\n className: string,\n checkboxRef: React.MutableRefObject\n) => () => {\n let updatedInvoices = filteredInvoices;\n if (!StringExtensions.isNullOrEmpty(searchInput)) {\n updatedInvoices = invoices.filter(invoice => invoice.id.toLocaleUpperCase().includes(searchInput.toLocaleUpperCase()));\n } else {\n updatedInvoices = invoices;\n }\n\n if (ArrayExtensions.hasElements(updatedInvoices)) {\n setFilteredInvoices(updatedInvoices);\n setSelectedInvoiceIndex(0);\n } else {\n setFilteredInvoices(updatedInvoices);\n setSelectedInvoiceIndex(-1);\n }\n setShouldShowSearchResults(true);\n\n setInvoiceOptions(\n renderInvoiceOptions(\n StringExtensions.isNullOrEmpty(searchInput) ? invoices : updatedInvoices,\n setSelectedInvoiceIndex,\n className,\n checkboxRef\n )\n );\n};\n\n/**\n * On cancel function.\n * @param onClosing -Closing function.\n * @param toggle -Toggle Function.\n * @returns Toggle function.\n */\nconst onCancelHandler = (onClosing: () => void, toggle: () => void) => () => {\n onClosing();\n toggle();\n};\n\n/**\n * On invoice select.\n * @param setSelectedInvoiceIndex -Set Selected Invoice Index.\n * @param index -Number.\n * @returns Set Selected Invoice Index.\n */\nconst onInvoiceSelectHandler = (setSelectedInvoiceIndex: (newIndex: number) => void, index: number) => () => {\n setSelectedInvoiceIndex(index);\n};\n\nconst renderInvoiceOptions = (\n filteredInvoices: InvoiceModel[],\n setSelectedInvoiceIndex: (newIndex: number) => void,\n className: string,\n checkboxRef: React.MutableRefObject\n) => {\n checkboxRef.current = filteredInvoices.map((_invoice, i) => checkboxRef.current[Number(i)] ?? React.createRef());\n return (\n
\n {filteredInvoices.map((invoice, index) => {\n const onInvoiceSelect = onInvoiceSelectHandler(setSelectedInvoiceIndex, index);\n\n const checkboxId = `invoice__${invoice.id}`;\n const checkboxName = `invoiceSelect__${invoice.id}`;\n\n return (\n
\n \n \n
\n );\n })}\n
\n );\n};\n\nexport const RequestInvoiceModal: React.FC = ({\n className,\n email,\n isModalOpen,\n toggle,\n modalHeaderLabel,\n sendToEmailLabel,\n submitRequestLabel,\n cancelLabel,\n onSubmitRequest,\n invoices,\n searchPlaceholderLabel,\n invoicesFoundString,\n singleInvoiceFoundString,\n searchButtonAltText,\n resources\n}) => {\n const [selectedInvoiceIndex, setSelectedInvoiceIndex] = React.useState(-1);\n const [filteredInvoices, setFilteredInvoices] = React.useState(invoices);\n const [searchInput, setSearchInput] = React.useState('');\n const [shouldShowSearchResults, setShouldShowSearchResults] = React.useState(false);\n const focusDelay = 110;\n const checkboxRef = React.useRef([]);\n const invoiceOptionsData = renderInvoiceOptions(filteredInvoices, setSelectedInvoiceIndex, className, checkboxRef);\n const [invoiceOptions, setInvoiceOptions] = React.useState(invoiceOptionsData);\n const focusElement = React.useRef(null);\n React.useEffect(() => {\n if (isModalOpen && focusElement.current) {\n setTimeout(() => {\n focusElement.current?.focus();\n }, focusDelay);\n }\n }, [isModalOpen]);\n\n /**\n * Sets the filtered invoices to the ones that were selected on the main screen.\n */\n const setFilteredInvoicesToSelectedInvoices = () => {\n setSelectedInvoiceIndex(-1);\n const selectedInvoices = invoices.filter(invoice => invoice.isSelected);\n if (ArrayExtensions.hasElements(selectedInvoices)) {\n setFilteredInvoices(selectedInvoices);\n\n // If only one invoice selected, auto select it\n if (selectedInvoices.length === 1) {\n setSelectedInvoiceIndex(0);\n }\n\n setInvoiceOptions(renderInvoiceOptions(selectedInvoices, setSelectedInvoiceIndex, className, checkboxRef));\n } else {\n setFilteredInvoices(invoices);\n setInvoiceOptions(renderInvoiceOptions(invoices, setSelectedInvoiceIndex, className, checkboxRef));\n }\n };\n\n const searchEntered = searchEnteredHandler(\n invoices,\n searchInput,\n setFilteredInvoices,\n filteredInvoices,\n setSelectedInvoiceIndex,\n setShouldShowSearchResults,\n setInvoiceOptions,\n selectedInvoiceIndex,\n className,\n checkboxRef\n );\n\n const onClosing = () => {\n setSelectedInvoiceIndex(-1);\n setFilteredInvoices(invoices);\n setSearchInput('');\n setShouldShowSearchResults(false);\n };\n\n /**\n * Sets the invoices that are possible to select when the dialog is opened.\n */\n const onOpened = () => {\n setSearchInput('');\n setFilteredInvoicesToSelectedInvoices();\n };\n\n const searchResultString = filteredInvoices.length === 1 ? singleInvoiceFoundString : invoicesFoundString;\n const invoicesFoundReplaceIndex = searchResultString.indexOf('{0}');\n\n return (\n \n \n {modalHeaderLabel}\n \n \n
\n \n
\n {email}\n
\n
\n {shouldShowSearchResults && (\n
\n {searchResultString.substring(0, invoicesFoundReplaceIndex)}\n {filteredInvoices.length}\n {searchResultString.substring(invoicesFoundReplaceIndex + 3)}\n
\n )}\n
\n \n \n
\n {invoiceOptions}\n
\n
\n
\n \n \n {submitRequestLabel}\n \n \n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync, isOboRequest } from '@msdyn365-commerce/core';\nimport {\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUsersDataActions,\n InvoicePaidStatus,\n InvoiceSearchCriteria,\n IQueryResultSettings,\n OrderInvoice\n} from '@msdyn365-commerce/retail-proxy';\nimport { getCurrentAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport {\n ArrayExtensions,\n getCustomer,\n GetCustomerInput,\n getInvoices,\n GetInvoicesInput,\n IQueryResultSettingsModuleConfig,\n QueryResultSettingsProxy,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport { Alert, Button, Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\n\nimport { InvoiceErrorComponent } from './components/invoice-error-component';\nimport { InvoicesFilterComponent, InvoicesFilterState } from './components/invoices-filter-component';\nimport { InvoicesTableComponent } from './components/invoices-table/invoices-table-component';\nimport { IMakePaymentResources, MakePaymentComponent } from './components/make-payment-component';\nimport { RequestInvoiceButton } from './components/request-invoice-button';\nimport { RequestInvoiceModal } from './components/request-invoice-modal';\nimport { InvoiceModel } from './helpers/invoice-data';\nimport { IAddInvoicesToCartFailureResult } from './helpers/pay-invoices';\nimport { IInvoicesListData } from './invoices-list.data';\nimport { IInvoicesListProps } from './invoices-list.props.autogenerated';\n\nexport type InvoicesListStatus = 'LOADING' | 'SUCCESS' | 'FAILED' | 'EMPTY';\nexport type InvoiceErrorHost = 'ADDINVOICETOCART';\n\nexport interface IInvoicesListViewProps extends IInvoicesListProps {\n moduleProps: IModuleProps;\n\n header: JSX.Element;\n filter: JSX.Element;\n content?: JSX.Element;\n invoiceRequestModal?: JSX.Element;\n pagination?: JSX.Element;\n}\n\nexport interface IInvoiceErrorState {\n errorHost?: InvoiceErrorHost;\n errorReason?: IAddInvoicesToCartFailureResult;\n errorMessage: string;\n otherError?: string;\n errorCode?: string;\n}\n\nexport interface IInvoicesListState {\n invoices: InvoiceModel[];\n invoicesFilterState: InvoicesFilterState;\n errorState: IInvoiceErrorState;\n isInvoiceRequestModalOpen: boolean;\n isLoading: boolean;\n isOpen: boolean;\n isPageLoaded: boolean;\n payInvoiceErrorModalOpen: boolean;\n selectedButtonElement?: HTMLButtonElement | null;\n}\n\n/**\n * InvoicesList component.\n * @extends {React.Component, IInvoicesListState>}\n */\n@observer\nclass InvoicesList extends React.Component, IInvoicesListState> {\n private readonly _className: string = 'msc-invoices-list';\n\n private readonly payInvoiceRequestReference: React.RefObject;\n\n private readonly makePaymentReference: React.RefObject;\n\n private buttonChildReference: React.RefObject[] = [];\n\n private buttonChildPayButtonReference: React.RefObject[] = [];\n\n private readonly _queryResultSettings: IQueryResultSettings;\n\n private invoiceIds: string[] = [];\n\n constructor(props: IInvoicesListProps) {\n super(props);\n\n this._queryResultSettings = QueryResultSettingsProxy.fromModuleData(\n this.props.context.request,\n this.props.config as IQueryResultSettingsModuleConfig\n ).QueryResultSettings;\n this.payInvoiceRequestReference = React.createRef();\n this.makePaymentReference = React.createRef();\n this._updateInvoicesState = this._updateInvoicesState.bind(this);\n this._onAddToCartFailed = this._onAddToCartFailed.bind(this);\n this._onToggleInvoiceRequestModal = this._onToggleInvoiceRequestModal.bind(this);\n this._handleFilterStateChange = this._handleFilterStateChange.bind(this);\n this._loadMoreInvoices = this._loadMoreInvoices.bind(this);\n this._requestInvoice = this._requestInvoice.bind(this);\n this._requestSpecificInvoice = this._requestSpecificInvoice.bind(this);\n this._setPayInvoiceErrorModalClose = this._setPayInvoiceErrorModalClose.bind(this);\n this.state = {\n invoices: [],\n invoicesFilterState: InvoicesFilterState.ShowAll,\n isLoading: true,\n isOpen: true,\n isPageLoaded: false,\n errorState: { errorMessage: '' },\n isInvoiceRequestModalOpen: false,\n payInvoiceErrorModalOpen: false,\n selectedButtonElement: null\n };\n }\n\n public shouldComponentUpdate(nextProps: IInvoicesListProps, nextState: IInvoicesListState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className = '', heading },\n context: {\n request: { channel },\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n },\n data: { customerBalance },\n resources: { invoicesListTitle, invoicesListDescTitle, invoicesListDescCount }\n } = this.props;\n\n const totalAmount = customerBalance.result?.OpenInvoiceBalance || 0;\n const amountText = `${formatCurrency(totalAmount.toFixed(2), currencyCode)} ${channel?.Currency || 'USD'}`;\n\n const totalCount = customerBalance.result?.OpenInvoiceCount || 0;\n const countText = invoicesListDescCount.replace('{0}', totalCount.toString());\n const invoicesListTitleHeading = heading?.text ?? invoicesListTitle;\n\n const headerClassName = `${this._className}__header`;\n\n const header = (\n
\n \n
\n
{invoicesListDescTitle}
\n
{amountText}
\n
{countText}
\n
\n
\n );\n\n const viewProps: IInvoicesListViewProps = {\n ...(this.props as IInvoicesListProps),\n moduleProps: {\n moduleProps: this.props,\n className: classnames(this._className, className)\n },\n header,\n invoiceRequestModal: this._renderInvoiceRequestModal(),\n filter: this._renderInvoicesFilter(this._className),\n pagination: this._renderPagination()\n };\n\n if (!this.state.isPageLoaded) {\n return this.props.renderView(viewProps);\n }\n\n if (ArrayExtensions.hasElements(this.state.invoices)) {\n viewProps.content = this._renderListContainer();\n } else {\n viewProps.content = this._renderEmptyInvoiceLinesPageContent();\n }\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public async componentDidMount(): Promise {\n await this.props.data.customer;\n const invoicesData = await this.props.data.invoices;\n this._initializeWithInvoices(invoicesData);\n\n reaction(\n () => this.state.isInvoiceRequestModalOpen,\n async () => {\n if (this.invoiceIds && !this.state.isInvoiceRequestModalOpen) {\n const context = { callerContext: this.props.context.actionContext };\n const b2bUserId: string = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\n for (const invoiceId of this.invoiceIds) {\n await BusinessPartnerUsersDataActions.requestInvoiceCopyAsync(\n context,\n b2bUserId,\n invoiceId,\n BusinessPartnerOperationDeliveryType.Email\n );\n }\n this.invoiceIds = [];\n }\n }\n );\n }\n\n private _initializeWithInvoices(invoicesData: OrderInvoice[]): void {\n const invoices = invoicesData.map((invoice, index) => {\n this.buttonChildReference[Number(index)] = React.createRef();\n this.buttonChildPayButtonReference[Number(index)] = React.createRef();\n return new InvoiceModel(invoice);\n });\n this.setState({\n invoices,\n isLoading: false,\n isPageLoaded: true\n });\n }\n\n private _addInvoices(invoicesData: OrderInvoice[]): void {\n const newInvoices = invoicesData.map(invoice => new InvoiceModel(invoice));\n const invoices = this.state.invoices.concat(newInvoices);\n this.setState({\n invoices,\n isLoading: false\n });\n }\n\n private _renderEmptyInvoiceLinesPageContent(): JSX.Element {\n const containerClass = `${this._className}__empty-lines__container`;\n const actionsContainerClass = `${containerClass}__actions`;\n return (\n
\n
{this.props.resources.invoiceEmptyInvoiceLinesTitle}
\n
{this.props.resources.invoiceEmptyInvoiceLinesDescription}
\n
\n \n {this.props.resources.invoiceEmptyInvoiceLinesContinueShoppingButtonText}\n \n
\n
\n );\n }\n\n private _renderListContainer(): JSX.Element {\n const containerClass = `${this._className}__container`;\n const containerHeaderClass = `${containerClass}__header`;\n const containerContentClass = `${containerClass}__content`;\n const isOnBehalfOfRequest = isOboRequest(this.props.context.request);\n\n return (\n
\n
\n {this._renderMakePayment(containerHeaderClass, isOnBehalfOfRequest)}\n {this._renderInvoiceRequestButton()}\n
\n
{this._renderInvoiceErrors()}
\n
{this._renderInvoicesList(containerContentClass)}
\n
\n );\n }\n\n private _updateInvoicesState(): void {\n this.setState({\n invoices: this.state.invoices\n });\n }\n\n private async _getInvoicesSearchCriteria(state: InvoicesFilterState): Promise {\n const searchCriteria: InvoiceSearchCriteria = {};\n\n const context = this.props.context.actionContext;\n\n const businessPartner = await getCurrentAsync({ callerContext: context });\n searchCriteria.BusinessPartnerId = businessPartner?.BusinessPartnerId;\n\n const customer = await getCustomer(new GetCustomerInput(context.requestContext.apiSettings), context);\n searchCriteria.CustomerId = customer?.AccountNumber;\n\n switch (state) {\n case InvoicesFilterState.ShowAll:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.None];\n break;\n case InvoicesFilterState.Paid:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.Paid];\n break;\n case InvoicesFilterState.PartiallyPaid:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.PartiallyPaid];\n break;\n case InvoicesFilterState.Unpaid:\n searchCriteria.InvoicePaidStatusValues = [InvoicePaidStatus.Unpaid];\n break;\n default:\n throw new Error('Failed to process unknown invoices filter state.');\n }\n\n return searchCriteria;\n }\n\n private async _handleFilterStateChange(state: InvoicesFilterState): Promise {\n this.setState({\n invoicesFilterState: state,\n isLoading: true\n });\n\n const searchCriteria = await this._getInvoicesSearchCriteria(state);\n\n if (this._queryResultSettings.Paging) {\n this._queryResultSettings.Paging.Skip = 0;\n }\n\n const invoices = await getInvoices(\n new GetInvoicesInput(searchCriteria, this._queryResultSettings),\n this.props.context.actionContext\n );\n this._initializeWithInvoices(invoices);\n }\n\n private _renderInvoicesFilter(className: string): JSX.Element {\n const containerClass = `${this._className}__container`;\n const containerContentClass = `${containerClass}__content`;\n const filterClassName = `${className}__filter`;\n return (\n
\n
{this._renderInvoiceInCartPaymentMessage()}
\n \n
\n );\n }\n\n private _renderInvoicesList(className: string): JSX.Element {\n const tableClassName = `${className}__table`;\n return (\n \n );\n }\n\n private _onAddToCartFailed(newErrorState: IInvoiceErrorState, reference?: React.RefObject): void {\n const errorState = { ...newErrorState };\n errorState.errorHost = 'ADDINVOICETOCART';\n errorState.errorMessage =\n newErrorState.errorReason?.failureReason === 'EMPTYINPUT'\n ? this.props.resources.invoiceErrorInvoiceIdNotExist\n : this.props.resources.invoiceErrorFailedAddInvoiceToCart;\n\n const shouldShowAdditionalInfoInPopup =\n errorState.errorCode === 'Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines';\n this.setState({ errorState, payInvoiceErrorModalOpen: shouldShowAdditionalInfoInPopup, selectedButtonElement: reference?.current });\n }\n\n private _renderMakePayment(className: string, disabled: boolean): JSX.Element {\n const id = `${className}__make-payment`;\n const makePaymentResources: IMakePaymentResources = {\n makePaymentButtonText: this.props.resources.makePaymentButtonText,\n makePaymentButtonAriaLabel: this.props.resources.makePaymentButtonAriaLabel\n };\n\n const selectedInvoices = this._getSelectedInvoices();\n\n return (\n \n );\n }\n\n private _setPayInvoiceErrorModalClose(): void {\n this.setState({\n payInvoiceErrorModalOpen: false\n });\n this.state.selectedButtonElement?.focus();\n }\n\n private _renderInvoiceErrors(): JSX.Element {\n const {\n resources: {\n payInvoiceErrorDialogHeader,\n payInvoiceErrorDialogBodyErrorTitle,\n payInvoiceErrorDialogBodyErrorDescription,\n payInvoiceErrorDialogFooterGoToCartButtonText,\n payInvoiceErrorDialogFooterCancelButtonText\n }\n } = this.props;\n\n const cartUrl = getUrlSync('cart', this.props.context.actionContext) || '';\n\n const errorClassName = `${this._className}__errors`;\n\n return (\n \n );\n }\n\n private _renderInvoiceInCartPaymentMessage(): JSX.Element {\n const cart = this.props.data.cart?.result;\n\n if (!cart?.hasInvoiceLine) {\n return <>;\n }\n\n return (\n \n \n \n );\n }\n\n // Dismiss alert.\n private readonly _onDismiss = () => {\n this.setState({\n isOpen: false\n });\n };\n\n private _renderPagination(): JSX.Element | undefined {\n const { data, resources } = this.props;\n const invoices = data?.invoices?.result;\n if (!invoices || invoices.length < this._queryResultSettings.Paging!.Top!) {\n return undefined;\n }\n\n return (\n \n {resources.invoicesLoadMore}\n \n );\n }\n\n private async _loadMoreInvoices(): Promise {\n this.setState({ isLoading: true });\n const searchCriteria = await this._getInvoicesSearchCriteria(this.state.invoicesFilterState);\n if (this._queryResultSettings.Paging) {\n this._queryResultSettings.Paging.Skip! += this._queryResultSettings.Paging.Top!;\n }\n const newInvoices = await getInvoices(\n new GetInvoicesInput(searchCriteria, this._queryResultSettings),\n this.props.context.actionContext\n );\n this._addInvoices(newInvoices);\n }\n\n private _renderInvoiceRequestModal(): JSX.Element {\n const customer = this.props.data.customer.result;\n const {\n invoiceRequestModalCancelLabel,\n invoiceRequestModalSubmitLabel,\n invoiceRequestModalHeaderLabel,\n invoiceRequestModalSendToEmailLabel,\n invoiceRequestModalSearch,\n invoiceRequestModalInvoiceSearchDisplay,\n invoiceRequestModalSingleInvoiceSearchDisplay,\n invoiceRequestModalSearchButton\n } = this.props.resources;\n\n return (\n \n );\n }\n\n private _onToggleInvoiceRequestModal(): void {\n this.setState({\n isInvoiceRequestModalOpen: !this.state.isInvoiceRequestModalOpen\n });\n if (this.state.isInvoiceRequestModalOpen) {\n this.state.selectedButtonElement?.focus();\n }\n }\n\n /**\n * Request specific invoice function.\n */\n private readonly _onToggleInvoiceRequestParentModal = () => {\n this.setState(\n {\n selectedButtonElement: this.payInvoiceRequestReference.current\n },\n () => {\n this._onToggleInvoiceRequestModal();\n }\n );\n };\n\n private _renderInvoiceRequestButton(): JSX.Element | null {\n const { invoiceRequestButtonLabel } = this.props.resources;\n const customer = this.props.data.customer.result;\n\n if (StringExtensions.isNullOrWhitespace(customer?.Email)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _requestInvoice(invoiceId: string): void {\n this.invoiceIds.push(invoiceId);\n this._onToggleInvoiceRequestModal();\n }\n\n private _getSelectedInvoices(): InvoiceModel[] {\n let selectedInvoices = this.state.invoices.filter(invoice => invoice.isSelected);\n if (!ArrayExtensions.hasElements(selectedInvoices)) {\n selectedInvoices = this.state.invoices;\n }\n\n return selectedInvoices;\n }\n\n private _requestSpecificInvoice(\n specificInvoice: InvoiceModel,\n requestInvoiceButtonReference: React.RefObject\n ): void {\n this.state.invoices.forEach((invoice: InvoiceModel) => {\n if (invoice === specificInvoice) {\n invoice.isSelected = true;\n } else {\n invoice.isSelected = false;\n }\n });\n this.setState({\n selectedButtonElement: requestInvoiceButtonReference.current\n });\n this._onToggleInvoiceRequestModal();\n }\n}\n\nexport default InvoicesList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IInvoicesListViewProps } from './invoices-list';\n\nexport const InvoiceListView: React.FC = props => {\n const { header, filter, content, invoiceRequestModal, pagination } = props;\n\n return (\n \n {header}\n {invoiceRequestModal}\n {filter}\n {content}\n {pagination}\n \n );\n};\n\nexport default InvoiceListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILink {\n className?: string;\n text?: string;\n href?: string;\n ariaLabel?: string;\n index: string;\n noclick?: boolean;\n telemetryContent: ITelemetryContent;\n}\n\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n\n const linkText = text !== undefined ? text : '';\n payLoad.contentAction.etext = linkText;\n\n // Construct telemetry attribute to render\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n\n return (\n \n {linkText}\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 * as React from 'react';\n\ninterface ISeparator {\n separator: string;\n}\n\nexport const Separator: React.FC = ({ separator }) => (\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbData } from './breadcrumb.data';\nimport { IBreadcrumbProps, ILinksData } from './breadcrumb.props.autogenerated';\nimport { Link } from './components/link';\nimport { Separator } from './components/separator';\n\nexport interface IBreadcrumbViewProps extends IBreadcrumbProps {\n root?: React.ReactNode;\n links?: React.ReactNode[];\n backButton?: React.ReactNode;\n separator?: React.ReactNode;\n BreadcrumbContainer: IModuleProps;\n BreadcrumbList: INodeProps;\n BreadcrumbListItem: INodeProps;\n}\n\n/**\n *\n * Breadcrumb component.\n * @extends {React.PureComponent>}\n */\nclass Breadcrumb extends React.PureComponent> {\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n let rootLink = null;\n let breadcrumbLinks = null;\n let backButtonComponent = null;\n rootLink = this._getRootLink();\n const itemPosition = rootLink ? 1 : 0;\n if (this._pageType === 'Category') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\n }\n } else if (this._pageType === 'Product') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n if (breaCrumbType === 'category') {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'categoryAndBack') {\n backButtonComponent = this._getPDPBackButton();\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'back') {\n backButtonComponent = this._getPDPBackButton();\n if (backButtonComponent === null) {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n }\n }\n } else {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n }\n const linkSeparator = ;\n\n const breadcrumbViewProps = {\n ...this.props,\n BreadcrumbContainer: {\n moduleProps: this.props,\n className: classnames('ms-breadcrumb', className),\n tag: 'nav',\n role: 'navigation'\n },\n BreadcrumbList: {\n tag: 'ol' as NodeTag,\n className: 'ms-breadcrumb_list'\n },\n BreadcrumbListItem: {\n tag: 'li',\n className: 'ms-breadcrumb_item'\n },\n root: rootLink,\n links: breadcrumbLinks,\n backButton: backButtonComponent,\n separator: linkSeparator\n };\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\n }\n\n private readonly _getRootLink = (): JSX.Element | null => {\n const { root } = this.props.config;\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\n return null;\n }\n return (\n \n );\n };\n\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\n const { links } = this.props.config;\n\n if (!links || links.length === 0) {\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\n return null;\n }\n const defaultValueToSubtract = 1;\n return links.map((value: ILinksData, index: number) => {\n itemPosition++;\n const keyIndex = index;\n return index !== links.length - defaultValueToSubtract ? (\n \n ) : (\n
\n {value.linkText}\n
\n );\n });\n };\n\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\n const { data } = this.props;\n const categoryHierarchy = data.categoryHierarchy.result;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\n return null;\n }\n return categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\n itemPosition++;\n\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\n\n return (\n \n );\n });\n };\n\n /**\n * The function to get translation name for the locale.\n * @param locale - The locale information.\n * @param nameTranslations - The name translations names.\n * @returns - The translation name for the locale.\n */\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n // If friendly name for current locale is null, should use default locale.\n if (nameTranslation === undefined && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations[0];\n }\n\n return nameTranslation?.Text;\n };\n\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\n const { data, config } = this.props;\n const categoryHierarchy = data.categoryPaths.result;\n const product = data.product.result;\n const url = this.props.context.request.url.requestUrl.href;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category path content is empty for the product');\n return null;\n }\n const links: JSX.Element[] = [];\n\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\n itemPosition++;\n links.push(\n \n );\n });\n if (product && !config.hideProductName) {\n itemPosition++;\n links.push(\n \n );\n }\n return links;\n };\n\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed =\n this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\n if (!isBackAllowed) {\n return null;\n }\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\n return null;\n }\n return (\n \n {this.props.resources.backToResultsText}\n \n );\n };\n}\n\nexport default Breadcrumb;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, IDateFormatOptions, isOboRequest, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { IInvoiceErrorState, IPayInvoiceResources, PayInvoiceComponent } from '@msdyn365-commerce-modules/invoice';\nimport React from 'react';\n\nimport { InvoiceDetailsModel } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsHeaderData {\n invoiceDetails: InvoiceDetailsModel;\n}\n\nexport interface IInvoiceDetailsHeaderResources extends IPayInvoiceResources {\n invoiceOrderItem: string;\n invoiceOrderItems: string;\n invoiceIdLabel: string;\n invoicePlacedByLabel: string;\n invoiceAmountDueText: string;\n invoicePaymentDueDateText: string;\n}\n\nexport interface IInvoiceDetailsHeaderProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n resources: IInvoiceDetailsHeaderResources;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\nexport interface IInvoiceDetailsHeaderComponent extends IComponent {}\n\nconst formatShortDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'numeric', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst formatLongDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst InvoiceDetailsHeader: React.FC = (props: IInvoiceDetailsHeaderProps): JSX.Element => {\n const {\n className,\n data: { invoiceDetails },\n resources,\n onError\n } = props;\n\n const invoiceNumberText = resources.invoiceIdLabel.replace('{0}', invoiceDetails.id);\n\n const invoiceOrderItemsText =\n invoiceDetails.lines.length === 1\n ? resources.invoiceOrderItem\n : resources.invoiceOrderItems.replace('{0}', invoiceDetails.lines.length.toString());\n\n const invoiceInfoContainerClassName = `${className}__invoice-info-container`;\n const orderInfoContainerClassName = `${invoiceInfoContainerClassName}__order-info-container`;\n const orderInfoClassName = `${orderInfoContainerClassName}__order-info`;\n const orderMainInfoClassName = `${orderInfoClassName}__main-info`;\n const orderDetailsClassName = `${orderInfoClassName}__details`;\n `${className}__actions`;\n const actionsClassName = `${className}__actions`;\n const amountSummaryClassName = `${invoiceInfoContainerClassName}__amount-summary`;\n const orderDate = formatShortDate(props.context, invoiceDetails.invoiceDate);\n\n const dueDate = formatLongDate(props.context, invoiceDetails.dueDate);\n const dueDateText = resources.invoicePaymentDueDateText.replace('{0}', dueDate);\n const isOnBehalfOfRequest = isOboRequest(props.context.request);\n\n return (\n
\n
{invoiceNumberText}
\n
\n
\n
\n
\n
\n {resources.invoicePlacedByLabel}\n {invoiceDetails.customerName}\n
\n
\n
\n
{orderDate}
\n
{invoiceOrderItemsText}
\n
\n
\n
\n
\n
{resources.invoiceAmountDueText}
\n
\n {formatAmount(props.context, invoiceDetails.amountDue, invoiceDetails.currencyCode)}\n
\n
{dueDateText}
\n
\n
\n
\n \n
\n
\n );\n};\n\nexport const InvoiceDetailsHeaderComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsHeaderComponent\n>('InvoiceDetailsHeaderComponent', { component: InvoiceDetailsHeader });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport classnames from 'classnames';\nimport React from 'react';\n\nimport { IInvoicePaymentDetails } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsPaymentDetailsData {\n invoicePaymentDetails: IInvoicePaymentDetails;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsResources {\n invoicePaymentDiscounts: string;\n invoicePaymentSubtotal: string;\n invoicePaymentCharges: string;\n invoicePaymentTax: string;\n invoicePaymentInvoiceTotal: string;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n resources: IInvoiceDetailsPaymentDetailsResources;\n}\n\nexport interface IInvoiceDetailsPaymentDetailsComponent extends IComponent {}\n\ninterface IInvoicePaymentLineProps {\n label: string;\n value: number;\n className: string;\n}\n\nconst InvoiceDetailsPaymentDetails: React.FC = (\n props: IInvoiceDetailsPaymentDetailsProps\n): JSX.Element | null => {\n const {\n className,\n data: { invoicePaymentDetails },\n resources\n } = props;\n\n const lineClassName = `${className}__line`;\n\n const lines: IInvoicePaymentLineProps[] = [];\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalDiscount)) {\n lines.push({\n label: resources.invoicePaymentDiscounts,\n value: invoicePaymentDetails.totalDiscount,\n className: `${lineClassName}-total-discount`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.subtotal)) {\n lines.push({\n label: resources.invoicePaymentSubtotal,\n value: invoicePaymentDetails.subtotal,\n className: `${lineClassName}-subtotal`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalCharges)) {\n lines.push({\n label: resources.invoicePaymentCharges,\n value: invoicePaymentDetails.totalCharges,\n className: `${lineClassName}-total-charges`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalTax)) {\n lines.push({\n label: resources.invoicePaymentTax,\n value: invoicePaymentDetails.totalTax,\n className: `${lineClassName}-total-tax`\n });\n }\n if (!ObjectExtensions.isNullOrUndefined(invoicePaymentDetails.totalAmount)) {\n lines.push({\n label: resources.invoicePaymentInvoiceTotal,\n value: invoicePaymentDetails.totalAmount,\n className: `${lineClassName}-total-amount`\n });\n }\n\n if (!ArrayExtensions.hasElements(lines)) {\n return null;\n }\n\n return (\n
\n {lines.map(line => {\n return (\n
\n
{line.label}
\n
\n {props.context.cultureFormatter.formatCurrency(line.value, invoicePaymentDetails.currencyCode)}\n
\n
\n );\n })}\n
\n );\n};\n\nexport const InvoiceDetailsPaymentDetailsComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsPaymentDetailsComponent\n>('InvoiceDetailsPaymentDetailsComponent', { component: InvoiceDetailsPaymentDetails });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, IImageSettings, Image, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { SalesInvoiceLine } from '@msdyn365-commerce/retail-proxy';\nimport { getFallbackImageUrl, getProductPageUrlSync, ObjectExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React from 'react';\n\nimport { IInvoiceProductLine, InvoiceDetailsModel } from '../helpers/invoice-data';\n\nexport interface IInvoiceDetailsProductsData {\n invoiceDetails: InvoiceDetailsModel;\n}\n\nexport interface IInvoiceDetailsProductsResources {\n invoiceProductColor: string;\n invoiceProductSize: string;\n invoiceProductStyle: string;\n invoiceQuantity: string;\n}\n\nexport interface IInvoiceDetailsProductsProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n imageSettings?: IImageSettings;\n resources: IInvoiceDetailsProductsResources;\n}\n\nexport interface IInvoiceDetailsProductsComponent extends IComponent {}\n\nconst _renderProductDimensions = (\n className: string,\n resources: IInvoiceDetailsProductsResources,\n product: SalesInvoiceLine\n): JSX.Element => {\n return (\n
\n {StringExtensions.isNullOrWhitespace(product.ColorName) ? null : (\n
{resources.invoiceProductColor.replace('{0}', product.ColorName!)}
\n )}\n {StringExtensions.isNullOrWhitespace(product.SizeName) ? null : (\n
{resources.invoiceProductSize.replace('{0}', product.SizeName!)}
\n )}\n {StringExtensions.isNullOrWhitespace(product.StyleName) ? null : (\n
{resources.invoiceProductStyle.replace('{0}', product.StyleName!)}
\n )}\n
\n );\n};\n\nconst _renderProductImage = (\n className: string,\n context: ICoreContext,\n product: IInvoiceProductLine,\n imageSettings?: IImageSettings\n): JSX.Element | null => {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=80&h=94&m=6', w: 0, h: 0 },\n lg: { q: 'w=148&h=174&m=6', w: 0, h: 0 },\n xl: { q: 'w=148&h=174&m=6', w: 0, h: 0 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n if (imageSettings) {\n imageSettings.cropFocalRegion = true;\n }\n\n const fallbackImage = getFallbackImageUrl(\n product.ItemId,\n context.actionContext.requestContext.apiSettings,\n context.request.app?.config?.OmniChannelMedia\n );\n return (\n \n );\n};\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst InvoiceDetailsProducts: React.FC = (props: IInvoiceDetailsProductsProps): JSX.Element => {\n const {\n className,\n data: { invoiceDetails },\n resources\n } = props;\n\n const productLineClass = `${className}__product-line`;\n const productLineInfoContainerClass = `${productLineClass}__product-info-container`;\n const productLineDetailsClass = `${productLineInfoContainerClass}__product-details`;\n const productLineSmallDetailsClass = `${productLineDetailsClass}__small-details`;\n\n return (\n
\n {invoiceDetails.lines.map(product => {\n const quantity = product.Quantity || 1;\n\n let productUrl = '';\n if (!ObjectExtensions.isNullOrUndefined(product.ProductName) && !ObjectExtensions.isNullOrUndefined(product.ProductId)) {\n productUrl = getProductPageUrlSync(product.ProductName, product.ProductId, props.context.actionContext);\n }\n\n return (\n
\n
\n {_renderProductImage(`${productLineInfoContainerClass}__product-image`, props.context, product)}\n
\n \n {product.ProductName}\n \n
\n {_renderProductDimensions(`${productLineSmallDetailsClass}__dimensions`, resources, product)}\n
\n {formatAmount(props.context, product.Price, invoiceDetails.currencyCode)}\n
\n
\n {resources.invoiceQuantity.replace('{0}', quantity.toString())}\n
\n
\n
\n
\n
\n {formatAmount(props.context, product.NetAmount, invoiceDetails.currencyCode)}\n
\n
\n );\n })}\n
\n );\n};\n\nexport const InvoiceDetailsProductsComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoiceDetailsProductsComponent\n>('InvoiceDetailsProductsComponent', { component: InvoiceDetailsProducts });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus, OrderInvoice, SalesInvoice, SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IPayableInvoice } from '@msdyn365-commerce-modules/invoice';\n\nexport interface IInvoicePaymentDetails {\n totalDiscount?: number;\n subtotal?: number;\n totalCharges?: number;\n totalTax?: number;\n totalAmount?: number;\n currencyCode?: string;\n}\n\nexport interface IInvoiceProductLine extends SalesInvoiceLine {\n primaryImageUrl?: string;\n}\n\n/**\n * Represents invoice details data model.\n */\nexport class InvoiceDetailsModel implements IPayableInvoice, IInvoicePaymentDetails {\n public id: string;\n\n public invoiceDate?: Date;\n\n public customerAccountNumber?: string;\n\n public customerName?: string;\n\n public dueDate?: Date;\n\n public amountDue?: number;\n\n public status?: InvoicePaidStatus;\n\n public lines: IInvoiceProductLine[];\n\n public totalDiscount?: number;\n\n public subtotal?: number;\n\n public totalCharges?: number;\n\n public totalTax?: number;\n\n public totalAmount?: number;\n\n public currencyCode?: string;\n\n public constructor(invoice: OrderInvoice, invoiceDetails: SalesInvoice, products: SimpleProduct[]) {\n this.id = invoice.Id || '';\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\n this.customerName = invoice.CustomerName;\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\n this.amountDue = invoice.AmountBalance;\n this.status = invoice.InvoicePaidStatusValue;\n this.lines = (invoiceDetails.SalesInvoiceLine || []).map(line => {\n const productLine: IInvoiceProductLine = {\n ...line,\n primaryImageUrl: products.find(product => product.RecordId === line.ProductId)?.PrimaryImageUrl\n };\n return productLine;\n });\n\n this.totalDiscount = invoiceDetails.TotalDiscount;\n this.subtotal = invoiceDetails.InvoiceSubtotal;\n this.totalCharges = invoiceDetails.TotalCharges;\n this.totalTax = invoiceDetails.TotalTaxAmount;\n this.totalAmount = invoice.TotalAmount;\n this.currencyCode = invoice.CurrencyCode;\n }\n\n public get canBePaid(): boolean {\n return this.status !== InvoicePaidStatus.Paid;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { SalesInvoiceLine, SimpleProduct } from '@msdyn365-commerce/retail-proxy';\nimport { IInvoiceErrorState, InvoiceErrorComponent } from '@msdyn365-commerce-modules/invoice';\nimport { getSimpleProductsAction, ProductInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InvoiceDetailsHeaderComponent } from './components/invoice-details-header';\nimport { InvoiceDetailsPaymentDetailsComponent } from './components/invoice-details-payment-summary';\nimport { InvoiceDetailsProductsComponent } from './components/invoice-details-products';\nimport { InvoiceDetailsModel } from './helpers/invoice-data';\nimport { IInvoiceDetailsData } from './invoice-details.data';\nimport { IInvoiceDetailsProps } from './invoice-details.props.autogenerated';\n\nexport interface IInvoiceDetailsViewState {\n invoiceDetails?: InvoiceDetailsModel;\n payInvoiceErrorModalOpen?: boolean;\n errorState?: IInvoiceErrorState;\n}\n\nexport interface IInvoiceDetailsViewProps extends IInvoiceDetailsProps {\n moduleProps: IModuleProps;\n header: JSX.Element;\n products: JSX.Element;\n paymentDetails: JSX.Element;\n payInvoiceError?: JSX.Element;\n}\n\n/**\n * InvoiceDetails component.\n * @extends {React.PureComponent>}\n */\nclass InvoiceDetails extends React.PureComponent, IInvoiceDetailsViewState> {\n private static readonly _className: string = 'msc-invoice-details';\n\n public constructor(props: IInvoiceDetailsProps) {\n super(props);\n\n this.state = { errorState: { errorMessage: '', otherError: '' } };\n this._onAddToCartFailed = this._onAddToCartFailed.bind(this);\n this._setPayInvoiceErrorModalClose = this._setPayInvoiceErrorModalClose.bind(this);\n }\n\n public async componentDidMount(): Promise {\n const invoice = await this.props.data.invoice;\n const invoiceDetails = await this.props.data.invoiceDetails;\n\n const products = await this._getProducts(invoiceDetails.SalesInvoiceLine, invoiceDetails.ChannelId);\n\n const invoiceDetailsModel = new InvoiceDetailsModel(invoice, invoiceDetails, products);\n\n this.setState({\n invoiceDetails: invoiceDetailsModel,\n payInvoiceErrorModalOpen: false,\n errorState: { errorMessage: '', otherError: '' }\n });\n }\n\n public render(): JSX.Element | null {\n if (!this.state.invoiceDetails) {\n return null;\n }\n\n const header = this._renderHeader();\n const products = this._renderProducts();\n const paymentDetails = this._renderPaymentDetails();\n const payInvoiceError = this._renderInvoiceErrors();\n\n const props: IInvoiceDetailsViewProps = {\n ...(this.props as IInvoiceDetailsProps),\n moduleProps: {\n moduleProps: this.props,\n className: InvoiceDetails._className\n },\n header,\n products,\n paymentDetails,\n payInvoiceError\n };\n\n return this.props.renderView(props);\n }\n\n private async _getProducts(invoiceLines: SalesInvoiceLine[] = [], channelId?: number): Promise {\n const productInputs = invoiceLines\n .filter(product => product.ProductId)\n .map(\n product =>\n new ProductInput(\n product.ProductId!,\n this.props.context.request.apiSettings,\n channelId,\n undefined,\n this.props.context.actionContext.requestContext\n )\n );\n return getSimpleProductsAction(productInputs, this.props.context.actionContext);\n }\n\n private _renderHeader(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n return (\n \n );\n }\n\n private _renderProducts(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n const { imageSettings } = this.props.config;\n return (\n \n );\n }\n\n private _renderPaymentDetails(): JSX.Element {\n const invoiceDetails = this.state.invoiceDetails!;\n return (\n \n );\n }\n\n private _onAddToCartFailed(newErrorState: IInvoiceErrorState): void {\n const errorState = { ...newErrorState };\n errorState.errorHost = 'ADDINVOICETOCART';\n\n // check for errorcode and otherError which contains the LocalizedMessage from API\n if (\n errorState &&\n errorState.errorCode === 'Microsoft_Dynamics_Commerce_Runtime_InvoiceLineAlreadyExistsInCart' &&\n errorState.otherError\n ) {\n this.setState({ errorState: errorState });\n }\n\n this.setState({ payInvoiceErrorModalOpen: true });\n }\n\n private _setPayInvoiceErrorModalClose(): void {\n this.setState({ payInvoiceErrorModalOpen: false });\n }\n\n private _renderInvoiceErrors(): JSX.Element {\n const {\n resources: {\n payInvoiceErrorDialogHeader,\n payInvoiceErrorDialogBodyErrorTitle,\n payInvoiceErrorDialogBodyErrorDescription,\n payInvoiceErrorDialogFooterGoToCartButtonText,\n payInvoiceErrorDialogFooterCancelButtonText\n }\n } = this.props;\n\n const cartUrl = getUrlSync('cart', this.props.context.actionContext) || '';\n\n const errorClassName = `${InvoiceDetails._className}__errors`;\n\n return (\n \n );\n }\n}\n\nexport default InvoiceDetails;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observable, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IMapData } from './map.data';\nimport { IMapProps, IPushpinOptionsData } from './map.props.autogenerated';\n\n/**\n * Header Interface.\n */\nexport interface IHeader {\n headerProps: INodeProps;\n heading: React.ReactNode;\n}\n\n/**\n * MapViewProps Interface.\n */\nexport interface IMapViewProps extends IMapProps {\n ModuleProps: IModuleProps;\n Header: IHeader;\n MapProps: INodeProps;\n Map: Microsoft.Maps.Map | undefined;\n}\n\n/**\n *\n * Map component.\n * @extends {React.Component>}\n */\n@observer\nclass Map extends React.Component> {\n @observable public map: Microsoft.Maps.Map | undefined;\n private timeout: number = 500;\n\n private readonly mapRef: React.RefObject = React.createRef();\n\n public constructor(props: IMapProps) {\n super(props);\n }\n\n public componentDidMount(): void {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n }\n } = this.props;\n\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n const loadMapAPIInput = {\n key: channel?.BingMapsApiKey,\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\n };\n\n if (\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded\n ) {\n this._initMap();\n if (this.props.data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n this._updateMapsForDistributor();\n } else {\n this._updateMap();\n }\n }\n\n when(\n () => !!this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.storeSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n when(\n () => !!this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded,\n () => {\n this.props.data.distributorSelectorStateManager?.result?.setMapModuleLoaded(true);\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.loadMapApi ||\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi,\n () => {\n if (this.props.data.distributorSelectorStateManager?.result?.loadMapApi) {\n this.props.data.distributorSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n } else {\n this.props.data.storeSelectorStateManager?.result?.loadMapApi(loadMapAPIInput);\n }\n }\n );\n\n reaction(\n () =>\n this.props.data.storeSelectorStateManager?.result?.isMapApiLoaded ||\n this.props.data.distributorSelectorStateManager?.result?.isMapApiLoaded,\n () => {\n this._initMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.storeSelectorStateManager.result?.context?.orgUnitStoreInformation,\n this.props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\n this.map\n ];\n },\n () => {\n this._updateMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.distributorSelectorStateManager?.result?.distributorList,\n this.props.data.distributorSelectorStateManager?.result?.selectedDistributorId,\n this.map\n ];\n },\n () => {\n this._updateMapsForDistributor();\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { heading, className },\n data\n } = this.props;\n\n const shouldDisplayMap = data.storeSelectorStateManager?.result?.isDialogOpen\n ? data.storeSelectorStateManager?.result?.listMapViewState.displayMap\n : data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen\n ? data.distributorSelectorStateManager?.result?.listMapViewState.displayMap\n : false;\n\n const viewProps: IMapViewProps = {\n ...this.props,\n ModuleProps: {\n tag: 'div',\n moduleProps: this.props,\n className: classname('ms-map', { show: shouldDisplayMap }, className)\n },\n Header: {\n headerProps: { className: 'ms-map__header' },\n heading: heading?.text && (\n \n )\n },\n MapProps: {\n tag: 'div',\n className: 'ms-map__body',\n ref: this.mapRef\n },\n Map: this.map\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Initialize the map.\n */\n private readonly _initMap = () => {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n }\n },\n data\n } = this.props;\n\n if (data.storeSelectorStateManager?.result?.isMapApiLoaded || data.distributorSelectorStateManager?.result?.isMapApiLoaded) {\n const mapLoadOptions = {\n credentials: channel?.BingMapsApiKey,\n pushpinAccessible: true\n };\n this.map = new Microsoft.Maps.Map(this.mapRef.current as HTMLElement, mapLoadOptions);\n Microsoft.Maps.Events.addHandler(this.map, 'click', async () => {\n if (data.distributorSelectorStateManager?.result?.isDistributorSelectorDialogOpen) {\n // Hide the distributor details that appear below the screen size of 768px.\n data.distributorSelectorStateManager?.result?.updateDistributorMapVisibility(false);\n await data.distributorSelectorStateManager?.result?.setSelectedDistributorId(undefined);\n } else {\n await data.storeSelectorStateManager?.result?.setSelectedStoreLocationId(undefined);\n }\n });\n }\n };\n\n private readonly _updateMapsForDistributor = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n const distributorInfoList = distributorSelectorStateManager?.distributorList;\n const selectedDistributorId = distributorSelectorStateManager?.selectedDistributorId;\n\n if (this.map && ArrayExtensions.hasElements(distributorInfoList)) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const distributorList = distributorInfoList.filter(distributor => distributor.OrgUnit !== undefined);\n\n for (const [index, distributorInfo] of distributorList.entries()) {\n const orgUnit = distributorInfo.OrgUnit;\n\n if (orgUnit?.Latitude && orgUnit.Longitude) {\n const isLocationSelected = selectedDistributorId === orgUnit?.RecordId;\n const options = this._getPushpinOptions(isLocationSelected, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(orgUnit?.Latitude, orgUnit.Longitude), options);\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleDistributorPushpinClick(orgUnit.RecordId);\n });\n isLocationSelected ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isLocationSelected) {\n mapLocation = orgUnit;\n }\n }\n }\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true } as Microsoft.Maps.IMapOptions);\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Update the map.\n */\n private readonly _updateMap = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager?.result;\n const orgUnitStoreInformation = storeSelectorStateManager?.context?.orgUnitStoreInformation;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n\n if (this.map && orgUnitStoreInformation) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const storeLocationList = orgUnitStoreInformation.filter(store => store.OrgUnitAvailability !== undefined);\n\n for (const [index, unitStoreInfo] of storeLocationList.entries()) {\n const storeLocation = unitStoreInfo.OrgUnitAvailability?.OrgUnitLocation;\n\n if (storeLocation?.Latitude && storeLocation.Longitude) {\n const isSelectedLocation = selectedStoreLocationId === storeLocation.OrgUnitNumber;\n const options = this._getPushpinOptions(isSelectedLocation, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(\n new Microsoft.Maps.Location(storeLocation.Latitude, storeLocation.Longitude),\n options\n );\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleClickEvent(storeLocation.OrgUnitNumber);\n });\n isSelectedLocation ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isSelectedLocation) {\n mapLocation = storeLocation;\n }\n }\n }\n\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n // Create a LocationRect from array of pushpins and set the map view.\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect?.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true } as Microsoft.Maps.IMapOptions);\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Handle click event.\n * @param orgUnitNumber - Organization unit number.\n */\n private readonly handleClickEvent = (orgUnitNumber: string | undefined): void => {\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager.result;\n storeSelectorStateManager?.setSelectedStoreLocationId(undefined);\n if (orgUnitNumber) {\n setTimeout(() => {\n storeSelectorStateManager?.setSelectedStoreLocationId(orgUnitNumber);\n }, this.timeout);\n }\n };\n\n /**\n * Handle the click event of the pushpin for distributors on the maps.\n * @param recordId - RecordId.\n */\n private readonly handleDistributorPushpinClick = (recordId: number | undefined): void => {\n const distributorSelectorStateManager = this.props.data.distributorSelectorStateManager?.result;\n // Show the distributor details that appear below the screen size of 768px.\n distributorSelectorStateManager?.updateDistributorMapVisibility(true);\n distributorSelectorStateManager?.setSelectedDistributorId(undefined);\n if (recordId) {\n setTimeout(() => {\n distributorSelectorStateManager?.setSelectedDistributorId(recordId);\n }, this.timeout);\n }\n };\n\n /**\n * Get the pushpin option.\n * @param isSelectedLocation - Is selected location.\n * @param index - Index.\n * @param pushpinOptions - PushpinOptions.\n * @returns - The pushpin options.\n */\n private readonly _getPushpinOptions = (isSelectedLocation: boolean, index: number, pushpinOptions?: IPushpinOptionsData) => {\n const text = pushpinOptions?.showIndex ? (index + 1).toString() : undefined;\n\n const size = pushpinOptions?.size || 1;\n const color = isSelectedLocation ? pushpinOptions?.selectionColor || pushpinOptions?.color : pushpinOptions?.color;\n const icon = this._getSvgIcon(size, color, text);\n\n return {\n // Fallback if icon doesn't render properly\n color: isSelectedLocation ? pushpinOptions?.selectionColor : pushpinOptions?.color,\n icon\n };\n };\n\n private readonly _getSvgIcon = (size: number, color?: string, text?: string) => {\n const baseValue: number = 32;\n return `\n \n ${text ? `${text}` : ''}\n `;\n };\n}\n\nexport default Map;\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n // IAccountPreference,\r\n // IAccountPreferences,\r\n IAccountProfileItem,\r\n IAccountProfileViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/account-profile/./account-profile';\r\n\r\n// const AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\r\n// return (\r\n// \r\n// {heading}\r\n// \r\n// {extraPreferences &&\r\n// extraPreferences.map((preferenceSecton, index) => {\r\n// return ;\r\n// })}\r\n// \r\n// );\r\n// };\r\n\r\n// const AccountPreferenceSection: React.FC = ({\r\n// accountPreference,\r\n// heading,\r\n// description,\r\n// buttonWrapper,\r\n// buttonYesText,\r\n// button,\r\n// buttonNoText\r\n// }) => {\r\n// return (\r\n// \r\n// {heading}\r\n// {description}\r\n// \r\n// {buttonNoText}\r\n// {button}\r\n// {buttonYesText}\r\n// \r\n// \r\n// );\r\n// };\r\n\r\nconst AccountProfileSection: React.FC = props => {\r\n const { AccountProfileItem, heading, description } = props;\r\n return (\r\n \r\n {heading}\r\n {description}\r\n {/* {links} */}\r\n \r\n );\r\n};\r\n\r\nconst AccountProfileView: React.FC = props => {\r\n const {\r\n AccountProfile,\r\n infoMessageBar,\r\n accountProfileWrapper,\r\n heading,\r\n emailSection,\r\n nameSection,\r\n // preferenceSection,\r\n customerAttributesWrapper,\r\n customerAttributesSection\r\n } = props;\r\n\r\n return (\r\n \r\n {infoMessageBar}\r\n {accountProfileWrapper && (\r\n \r\n {heading}\r\n \r\n \r\n {/* */}\r\n \r\n )}\r\n {customerAttributesWrapper && {customerAttributesSection}}\r\n \r\n );\r\n};\r\n\r\nexport default AccountProfileView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n// import { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport {\r\n IBuyboxAddToCartViewProps,\r\n IBuyboxAddToOrderTemplateViewProps,\r\n IBuyboxKeyInPriceViewProps,\r\n IBuyboxProductConfigureDropdownViewProps,\r\n IBuyboxProductConfigureViewProps,\r\n IBuyboxProductQuantityViewProps,\r\n IBuyboxShopSimilarLookViewProps\r\n} from '@msdyn365-commerce-modules/buybox/src/modules/buybox/../../common';\r\nimport { IBuyboxViewProps } from '@msdyn365-commerce-modules/buybox/src/modules/buybox/./buybox';\r\nimport { IBuyboxFindInStoreViewProps } from '@msdyn365-commerce-modules/buybox/src/modules/buybox/./components/buybox-find-in-store';\r\nimport { configure } from 'mobx';\r\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy';\r\n\r\nconfigure({ isolateGlobalState: true });\r\n\r\nconst BuyboxView: React.FC = props => {\r\n const {\r\n ModuleProps,\r\n MediaGalleryContainerProps,\r\n ProductInfoContainerProps,\r\n addToCart,\r\n addToOrderTemplate,\r\n configure,\r\n description,\r\n findInStore,\r\n quantity,\r\n price,\r\n title,\r\n rating,\r\n inventoryLabel,\r\n shopSimilarLook,\r\n keyInPrice,\r\n shopSimilarDescription,\r\n unitOfMeasure,\r\n data\r\n } = props;\r\n\r\n const deliveryOptions = props.data.deliveryOptions.result?.DeliveryOptions;\r\n let showAddToCartButton = true;\r\n\r\n if (deliveryOptions && deliveryOptions.length > 0) {\r\n const isOnlyBopis = deliveryOptions[0].ExtensionProperties?.find(y => y.Key === 'isOnlyBOPIS')?.Value?.BooleanValue;\r\n showAddToCartButton = !isOnlyBopis;\r\n }\r\n\r\n //@ts-ignore\r\n const productData = data.productSpecificationData.result;\r\n\r\n return (\r\n \r\n {props.mediaGallery}\r\n \r\n {title}\r\n {price}\r\n {unitOfMeasure}\r\n {description}\r\n {rating}\r\n {configure && _renderConfigure(configure, productData)}\r\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\r\n {quantity && _renderQuantity(quantity)}\r\n {inventoryLabel}\r\n {_renderCheckoutActions(showAddToCartButton, addToCart, findInStore)}\r\n {addToOrderTemplate && _renderAddToOrderTemplate(addToOrderTemplate)}\r\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\r\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\r\n {_renderMediaLinks(props)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderCheckoutActions = (\r\n showAddToCartButton: boolean,\r\n addToCart: IBuyboxAddToCartViewProps,\r\n findInStore: IBuyboxFindInStoreViewProps | undefined\r\n) => (\r\n <>\r\n {showAddToCartButton && addToCart && _renderAddToCart(addToCart)}\r\n {findInStore && _renderFindInStore(findInStore)}\r\n \r\n);\r\n\r\nconst _renderMediaLinks = (props: IBuyboxViewProps) => {\r\n // @ts-ignore\r\n const productSpecificationData = props.data?.productSpecificationData?.result;\r\n const mediaLinks: AttributeValue[] = [];\r\n productSpecificationData?.map((productData: AttributeValue) => {\r\n if (productData?.TextValue?.startsWith('http')) {\r\n mediaLinks.push(productData);\r\n }\r\n });\r\n return (\r\n <>\r\n {mediaLinks.length > 0 ? (\r\n
\r\n

Other Options

\r\n {mediaLinks.map(link =>\r\n link.TextValue ? (\r\n
\r\n {link.Name}\r\n
\r\n ) : (\r\n ''\r\n )\r\n )}\r\n
\r\n ) : (\r\n ''\r\n )}\r\n \r\n );\r\n};\r\n\r\nconst _renderAddToCart = (addToCart: IBuyboxAddToCartViewProps): JSX.Element => {\r\n const { ContainerProps, errorBlock, button } = addToCart;\r\n\r\n return (\r\n \r\n {errorBlock}\r\n {button}\r\n \r\n );\r\n};\r\n\r\nconst _renderAddToOrderTemplate = (addToOrderTemplate: IBuyboxAddToOrderTemplateViewProps): JSX.Element => {\r\n const { ContainerProps, errorBlock, button } = addToOrderTemplate;\r\n\r\n return (\r\n \r\n {errorBlock}\r\n {button}\r\n \r\n );\r\n};\r\n\r\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps, productSpecificationData: any): JSX.Element => {\r\n const { ContainerProps, dropdowns } = configure;\r\n\r\n const dimColor = productSpecificationData.find((x: { Name: string }) => x.Name === 'DimColor');\r\n const dimSize = productSpecificationData.find((x: { Name: string }) => x.Name === 'dimSize');\r\n const dimStyle = productSpecificationData.find((x: { Name: string }) => x.Name === 'dimStyle');\r\n const dimConfiguration = productSpecificationData.find((x: { Name: string }) => x.Name === 'dimConfiguration');\r\n\r\n dropdowns.map(x => {\r\n // @ts-ignore\r\n if (x?.heading?.props.children === 'Color') {\r\n if (dimColor?.TextValue) {\r\n const headingCopy = React.cloneElement(x.heading as React.ReactElement, { children: dimColor.TextValue });\r\n const selectCopy = React.cloneElement(x.select as React.ReactElement, {\r\n dropdownToggleName: `Choose a ${dimColor.TextValue}`\r\n });\r\n x.heading = headingCopy;\r\n x.select = selectCopy;\r\n }\r\n }\r\n // @ts-ignore\r\n if (x?.heading?.props.children === 'Size') {\r\n if (dimSize?.TextValue) {\r\n const headingCopy = React.cloneElement(x.heading as React.ReactElement, { children: dimSize.TextValue });\r\n const selectCopy = React.cloneElement(x.select as React.ReactElement, {\r\n dropdownToggleName: `Choose a ${dimSize.TextValue}`\r\n });\r\n x.heading = headingCopy;\r\n x.select = selectCopy;\r\n }\r\n }\r\n // @ts-ignore\r\n if (x?.heading?.props.children === 'Style') {\r\n if (dimStyle?.TextValue) {\r\n const headingCopy = React.cloneElement(x.heading as React.ReactElement, { children: dimStyle.TextValue });\r\n const selectCopy = React.cloneElement(x.select as React.ReactElement, {\r\n dropdownToggleName: `Choose a ${dimStyle.TextValue}`\r\n });\r\n x.heading = headingCopy;\r\n x.select = selectCopy;\r\n }\r\n }\r\n // @ts-ignore\r\n if (x?.heading?.props.children === 'Configuration') {\r\n if (dimConfiguration?.TextValue) {\r\n const headingCopy = React.cloneElement(x.heading as React.ReactElement, { children: dimConfiguration.TextValue });\r\n const selectCopy = React.cloneElement(x.select as React.ReactElement, {\r\n dropdownToggleName: `Choose a ${dimConfiguration.TextValue}`\r\n });\r\n x.heading = headingCopy;\r\n x.select = selectCopy;\r\n }\r\n }\r\n return x;\r\n });\r\n\r\n return {dropdowns.map(_renderConfigureDropdown)};\r\n};\r\n\r\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n {select}\r\n \r\n );\r\n};\r\n\r\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\r\n const { ContainerProps, storeSelector, heading, errors, button, modal } = findInStore;\r\n\r\n return (\r\n \r\n {storeSelector}\r\n {heading}\r\n {errors}\r\n {button}\r\n {modal}\r\n \r\n );\r\n};\r\n\r\nconst _renderQuantity = (quantity: IBuyboxProductQuantityViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, input, errors } = quantity;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\r\n\r\n return (\r\n \r\n {heading}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\r\n const { ContainerProps, errors, input } = shopSimilarItem;\r\n\r\n return (\r\n \r\n {errors}\r\n {input}\r\n \r\n );\r\n};\r\nexport default BuyboxView;\r\n","import { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IContentBlockAdditionalContentItemViewProps,\r\n IContentBlockAdditionalContentViewProps\r\n} from '@msdyn365-commerce-modules/content-block/src/modules/content-block/./components/additional-content';\r\nimport { IContentBlockViewProps } from '@msdyn365-commerce-modules/content-block/src/modules/content-block/./content-block';\r\n//@ts-ignore\r\nimport { H2 } from '@churchofjesuschrist/eden-headings';\r\n// import styled from 'styled-components';\r\n\r\n/**\r\n * Render Additional Content.\r\n * @param additionalContent - Additional content view props.\r\n * @returns JSX Element.\r\n */\r\n\r\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\r\n return (\r\n \r\n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\r\n return (\r\n <>\r\n {item.heading}\r\n \r\n {item.text}\r\n {item.links}\r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst ContentBlockView: React.FC = props => {\r\n const {\r\n contentBlockContainer,\r\n imageContainer,\r\n detailsContainer,\r\n title,\r\n text,\r\n links,\r\n image,\r\n // contentBlockAnchorTag,\r\n imageLink,\r\n imageAriaLabel,\r\n additionalContent\r\n } = props;\r\n const imageGradient =\r\n props.context.request.telemetryPageName === 'Homepage' || props.context.request.telemetryPageName === 'ChurchHomePage'\r\n ? 'linear-gradient(rgba(0, 0, 0, 0) 0px, rgba(0, 0, 0, 0.6) 100%)'\r\n : '';\r\n // const ImageText = styled.div`\r\n // background-image: ${imageGradient};\r\n // cursor: pointer;\r\n // @media (max-width: 600px) {\r\n // background-image: none;\r\n // }\r\n // `;\r\n const AdobeOnClick = (linkProps: any) => {\r\n if (\r\n // @ts-ignore\r\n (window && window['digitalData'] && props.context.request.telemetryPageName === 'Homepage') ||\r\n // @ts-ignore\r\n (window && window['digitalData'] && props.context.request.telemetryPageName === 'ChurchHomePage')\r\n ) {\r\n // @ts-ignore\r\n window['digitalData'].push({\r\n event: 'Page View',\r\n page: {\r\n PageLink: {\r\n title: linkProps.image.props.title,\r\n text: linkProps.title.props.text,\r\n link: linkProps.imageLink\r\n }\r\n }\r\n });\r\n }\r\n\r\n window.location.assign(linkProps.imageLink);\r\n };\r\n\r\n if (imageLink) {\r\n return (\r\n \r\n \r\n \r\n AdobeOnClick(props)}\r\n >\r\n {/* {image} */}\r\n {/* @ts-ignore */}\r\n \r\n \r\n
\r\n

\r\n {/* @ts-ignore */}\r\n {title.props.text}\r\n

\r\n
\r\n \r\n
\r\n \r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n \r\n {/* {image} */}\r\n \r\n {/* @ts-ignore */}\r\n \r\n \r\n
\r\n

\r\n {/* @ts-ignore */}\r\n {title.props.text}\r\n

\r\n
\r\n \r\n
\r\n \r\n {/* {title} */}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n
\r\n );\r\n};\r\nexport default ContentBlockView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root && (\n \n {root}\n {links && separator}\n \n )}\n {backButton && {backButton}}\n {links &&\n links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n
\n \n );\n};\n\nexport default BreadCrumbView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n callbacks,\n state,\n resources,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n shopSimilarDescription,\n unitOfMeasure\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {_renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity &&\n _renderQuantity(\n quantity,\n callbacks,\n props,\n state,\n resources,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n telemetryContent\n )}\n {inventoryLabel}\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps\n): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n min: number | undefined,\n max: number | undefined,\n applyDefaultOrderSettings?: boolean,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IInvoiceDetailsViewProps } from './invoice-details';\n\nexport const InvoiceDetailsView: React.FC = props => {\n const { header, products, paymentDetails, payInvoiceError } = props;\n\n return (\n \n {header}\n {products}\n {paymentDetails}\n {payInvoiceError}\n \n );\n};\n\nexport default InvoiceDetailsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IHeader, IMapViewProps } from './map';\n\n/**\n * Render the heading.\n * @param param0 -- Heading props.\n * @param param0.headerProps -- Heading Props.\n * @param param0.heading -- Heading Node.\n * @returns -- Returns the node.\n */\nconst MapHeader: React.FC = ({ headerProps, heading }) => {heading};\n\n/**\n * Renders the map view props.\n * @param param0 -- Map view props.\n * @param param0.ModuleProps -- Module props.\n * @param param0.Header -- Header props.\n * @param param0.MapProps -- Map props.\n * @returns -- Returns the map module.\n */\nconst MapView: React.FC = ({ ModuleProps, Header, MapProps }) => (\n \n {Header && }\n \n \n);\n\nexport default MapView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Alert, Button, Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface IInvoiceErrorProps extends IComponentProps {\n messageHeader?: string;\n errorMessage?: string;\n otherError?: string;\n showError: boolean;\n payInvoiceErrorModalOpen: boolean;\n\n errorDialogHeader: string;\n errorDialogBodyErrorTitle: string;\n errorDialogBodyErrorDescription: string;\n errorDialogFooterGoToCartButtonText: string;\n errorDialogFooterCancelButtonText: string;\n cartUrl: string;\n\n setPayInvoiceErrorModalClose(): void;\n}\n\nexport interface IInvoiceErrorComponent extends IComponent {}\n\nexport const InvoiceError: React.FC = ({\n messageHeader,\n errorMessage,\n otherError,\n showError,\n payInvoiceErrorModalOpen,\n errorDialogHeader,\n errorDialogBodyErrorTitle,\n errorDialogBodyErrorDescription,\n errorDialogFooterGoToCartButtonText,\n errorDialogFooterCancelButtonText,\n cartUrl,\n setPayInvoiceErrorModalClose\n}) => {\n const errorMessages: (string | undefined)[] = [];\n\n if (otherError) {\n errorMessages.push(otherError);\n } else {\n errorMessages.push(errorMessage);\n }\n\n const className = 'msc-pay-invoice-error-dialog';\n\n return (\n <>\n 0} color='danger' assertive aria-label={messageHeader}>\n \n {errorMessages.map((message, index) => {\n return (\n
\n {message}\n
\n );\n })}\n
\n \n \n {errorDialogHeader}\n \n \n
\n
{errorDialogBodyErrorTitle}
\n
{errorDialogBodyErrorDescription}
\n
\n
\n \n \n {errorDialogFooterGoToCartButtonText}\n \n \n {errorDialogFooterCancelButtonText}\n \n \n
\n \n );\n};\n\n// @ts-expect-error\nexport const InvoiceErrorComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'InvoiceError',\n { component: InvoiceError }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport { IPayableInvoice } from '../helpers/invoice-data';\nimport { payInvoices } from '../helpers/pay-invoices';\nimport { IInvoiceErrorState } from '../invoices-list';\n\nexport interface IPayInvoiceData {\n invoice: IPayableInvoice;\n}\n\nexport interface IPayInvoiceResources {\n payInvoiceButtonText: string;\n payInvoiceButtonAriaLabel: string;\n}\n\nexport interface IPayInvoiceProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n reference?: React.RefObject;\n resources: IPayInvoiceResources;\n disabled?: boolean;\n\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\ninterface IPayInvoiceComponent extends IComponent {}\n\nconst onClick = async (\n _event: React.MouseEvent,\n props: IPayInvoiceProps,\n setDisabled: (disabled: boolean) => void\n): Promise => {\n setDisabled(true);\n\n const propagateError = (errorState: IInvoiceErrorState): void => {\n if (props.onError) {\n props.onError(errorState, props.reference);\n }\n setDisabled(false);\n };\n\n await payInvoices([props.data.invoice], props.context.actionContext, propagateError);\n};\n\nconst PayInvoiceComponentActions = {\n onClick\n};\n\n/**\n * On click handler function.\n * @param props -Invoice props.\n * @param setDisabled -Set disabled.\n * @returns Pay invoice component action.\n */\nconst onClickHandler = (props: IPayInvoiceProps, setDisabled: React.Dispatch>) => async (\n event: React.MouseEvent\n) => {\n await PayInvoiceComponentActions.onClick(event, props, setDisabled);\n};\n\nconst PayInvoice: React.FC = (props: IPayInvoiceProps): JSX.Element => {\n const [disabled, setDisabled] = useState(false);\n\n return (\n \n {props.resources.payInvoiceButtonText}\n \n );\n};\n\n// @ts-expect-error\nexport const PayInvoiceComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'PayInvoiceComponent',\n { component: PayInvoice, ...PayInvoiceComponentActions }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync, IActionContext } from '@msdyn365-commerce/core';\nimport { getCartState } from '@msdyn365-commerce/global-state';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\n\nimport { IInvoiceErrorState } from '../invoices-list';\nimport { IPayableInvoice } from './invoice-data';\n\nexport type ICartActionFailureReason = 'EMPTYINPUT' | 'CARTACTIONFAILED';\nexport interface IAddInvoicesToCartFailureResult {\n failureReason: ICartActionFailureReason;\n}\n\nexport const payInvoices = async (\n invoices: IPayableInvoice[],\n actionContext: IActionContext,\n onError: (errorState: IInvoiceErrorState) => void\n) => {\n const invoicesToAdd: string[] = invoices.filter(invoice => invoice.canBePaid).map(invoice => invoice.id);\n\n if (!ArrayExtensions.hasElements(invoicesToAdd)) {\n onError({ errorMessage: '', errorReason: { failureReason: 'EMPTYINPUT' } });\n return;\n }\n\n const cartState = await getCartState(actionContext);\n const result = await cartState.addInvoicesToCart({ invoiceIds: invoicesToAdd });\n\n if (result.status !== 'SUCCESS') {\n onError({\n errorMessage: '',\n errorReason: { failureReason: 'CARTACTIONFAILED' },\n otherError: result.errorDetails?.LocalizedMessage,\n errorCode: result.errorDetails?.ErrorResourceId\n });\n return;\n }\n\n const cartUrl = getUrlSync('cart', actionContext);\n if (cartUrl) {\n window?.location.assign(cartUrl);\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { EnumExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IInvoiceStatusResources } from '../helpers/invoice-status';\n\nexport interface IInvoicesFilterResources extends IInvoiceStatusResources {\n invoicesFilterShowAll: string;\n}\n\nexport interface IInvoicesFilterProps extends IComponentProps {\n className: string;\n disabled: boolean;\n\n resources: IInvoicesFilterResources;\n\n currentState: InvoicesFilterState;\n onFilterStateChanged(state: InvoicesFilterState): void;\n}\n\nexport enum InvoicesFilterState {\n ShowAll,\n Paid,\n PartiallyPaid,\n Unpaid\n}\n\nconst getInvoicesFilterStateResources = (filterState: InvoicesFilterState, resources: IInvoicesFilterResources): string => {\n switch (filterState) {\n case InvoicesFilterState.ShowAll:\n return resources.invoicesFilterShowAll;\n case InvoicesFilterState.Paid:\n return resources.invoiceStatusPaid;\n case InvoicesFilterState.PartiallyPaid:\n return resources.invoiceStatusPartiallyPaid;\n case InvoicesFilterState.Unpaid:\n return resources.invoiceStatusUnpaid;\n default:\n throw new Error('Failed to retrieve resource description for unknown invoices filter state.');\n }\n};\n\n/**\n * On Click function.\n * @param onStateClick -Invoice filter state function.\n * @param filterState -Invoice filter state.\n * @returns Set Invoice filter state.\n */\nconst onClickHandler = (onStateClick: (filterState: InvoicesFilterState) => void, filterState: InvoicesFilterState) => () => {\n onStateClick(filterState);\n};\n\nconst renderFilterStateItem = (\n filterState: InvoicesFilterState,\n resources: IInvoicesFilterResources,\n className: string,\n onStateClick: (filterState: InvoicesFilterState) => void\n): React.ReactNode => {\n const stateStringRepresentation = InvoicesFilterState[filterState];\n\n return (\n \n );\n};\n\nconst InvoicesFilter: React.FC = (props: IInvoicesFilterProps) => {\n const popoverRef = React.createRef();\n const [popoverState, setPopoverState] = React.useState(false);\n const togglePopover = React.useCallback(() => {\n setPopoverState(!popoverState);\n }, [popoverState]);\n\n const [filterState, setFilterState] = React.useState(props.currentState);\n\n const onFilterStateClick = (clickedState: InvoicesFilterState) => {\n setFilterState(clickedState);\n setPopoverState(false);\n props.onFilterStateChanged(clickedState);\n };\n\n return (\n
\n \n {getInvoicesFilterStateResources(filterState, props.resources)}\n \n \n {EnumExtensions.getEnumValues(InvoicesFilterState).map(state => {\n return renderFilterStateItem(state, props.resources, props.className, onFilterStateClick);\n })}\n \n
\n );\n};\n\nexport const InvoicesFilterComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesFilterProps\n>('InvoicesFilterComponent', { component: InvoicesFilter });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport classnames from 'classnames';\nimport React from 'react';\n\nexport interface IInvoicesTableHeaderResources {\n invoicesText: string;\n invoiceNumberText: string;\n invoiceDateMobileText: string;\n invoiceDateText: string;\n invoiceUsersText: string;\n invoiceAmountText: string;\n invoiceDueDateText: string;\n invoiceAmountDueText: string;\n invoiceStatusText: string;\n invoiceActionsText: string;\n invoiceListSelectAllRadioAriaLabelText: string;\n}\n\nexport interface IInvoicesTableHeaderProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n\n isSelectedAll: boolean;\n isMobile: boolean;\n isAdmin: boolean;\n\n resources: IInvoicesTableHeaderResources;\n\n onSelectAll(isSelected: boolean): void;\n}\n\nexport interface IInvoicesTableHeaderComponent extends IComponent {}\n\nconst getDesktopHeaderCells = (props: IInvoicesTableHeaderProps, rowClassName: string, switchCheckedState: () => void) => {\n const { resources } = props;\n return (\n <>\n \n \n \n {resources.invoiceNumberText}\n {resources.invoiceDateText}\n {resources.invoiceUsersText}\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, {\n IComponent,\n IComponentProps,\n ICoreContext,\n IDateFormatOptions,\n isOboRequest,\n msdyn365Commerce\n} from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { getInvoiceDetailsPageUrlSync, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, format } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../../../helpers/invoice-data';\nimport { getInvoiceStatusText, IInvoiceStatusResources } from '../../../helpers/invoice-status';\nimport { IInvoiceErrorState } from '../../../invoices-list';\nimport { IPayInvoiceResources, PayInvoiceComponent } from '../../pay-invoice-component';\nimport { RequestInvoiceButton } from '../../request-invoice-button';\n\ninterface IInvoicesTableRowData {\n invoice: InvoiceModel;\n index: number;\n customer: Customer;\n}\n\nexport interface IInvoicesTableRowResources extends IInvoiceStatusResources, IPayInvoiceResources {\n invoiceCurrentUser: string;\n invoiceViewDetailsButtonText: string;\n invoiceViewDetailsButtonAriaLabel: string;\n invoiceActionsButtonTextAriaLabel?: string;\n invoiceActionsButtonIsOnBehalfOfTextAriaLabel?: string;\n invoiceRequestButtonLabel: string;\n invoiceListSelectRadioAriaLabelText: string;\n}\n\nexport interface IInvoicesTableRowProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n isMobile: boolean;\n invoiceReferences?: React.RefObject;\n payInvoiceReferences?: React.RefObject;\n resources: IInvoicesTableRowResources;\n\n onChange(): void;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n onRequestInvoice?(invoice: InvoiceModel, requestInvoiceButtonReference: React.RefObject): void;\n}\n\nexport interface IInvoicesTableRowComponent extends IComponent {}\n\nconst formatAmount = (context: ICoreContext, amount: number | undefined, currencyCode: string | undefined) => {\n if (amount === undefined) {\n return '';\n }\n return context.cultureFormatter.formatCurrency(amount, currencyCode);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Request specific invoice function.\n * @param props -Invoice table row props.\n * @param requestInvoiceButtonReference -Reference button.\n * @returns Call Request Invoice.\n */\nconst onRequestSpecificInvoice = (\n props: IInvoicesTableRowProps,\n requestInvoiceButtonReference: React.RefObject,\n setShowActions: React.Dispatch>\n) => () => {\n setShowActions(false);\n props.onRequestInvoice!(props.data.invoice, requestInvoiceButtonReference);\n};\n\nconst getDesktopRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\n const {\n data: { invoice, customer }\n } = props;\n\n const isCurrentUser =\n !StringExtensions.isNullOrWhitespace(customer.AccountNumber) && customer.AccountNumber === invoice.customerAccountNumber;\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\n return (\n <>\n \n \n \n \n \n {invoice.id}\n \n \n \n {formatDate(props.context, invoice.invoiceDate)}\n \n \n {invoice.customerName}\n {isCurrentUser ? {props.resources.invoiceCurrentUser} : null}\n \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 {extraActionsPopup(props)}\n \n );\n};\n\nlet setShowPreviousActions: React.Dispatch> | undefined;\n\n/**\n * On Click view details function.\n * @param linkToInvoiceDetails -Link to invoice details.\n * @returns Go to invoice details.\n */\nconst onClickViewDetails = (linkToInvoiceDetails: string) => () => {\n if (MsDyn365.isBrowser) {\n window.location.href = linkToInvoiceDetails;\n }\n return;\n};\n\n/**\n * Toggle function.\n * @param isShowActions -Link to invoice details.\n * @param setShowActions -Link to invoice details.\n * @returns Go to invoice details.\n */\nconst toggle = (isShowActions: boolean, setShowActions: React.Dispatch>) => () => {\n const shouldShowActions = !isShowActions;\n if (shouldShowActions) {\n if (setShowPreviousActions) {\n setShowPreviousActions(false);\n }\n setShowActions(shouldShowActions);\n setShowPreviousActions = setShowActions;\n } else {\n setShowPreviousActions = undefined;\n setShowActions(shouldShowActions);\n }\n};\n\nfunction useOutsideClick(refinerRefernce: React.RefObject, toggle: (event: Event | MouseEvent) => void) {\n function handleClickOutside(event: Event | MouseEvent) {\n if (refinerRefernce.current && !refinerRefernce.current.contains(event.target as Node)) {\n toggle(event);\n }\n }\n\n React.useEffect(() => {\n if (MsDyn365.isBrowser) {\n document.addEventListener('mousedown', handleClickOutside);\n }\n return () => {\n if (MsDyn365.isBrowser) {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n };\n }, [refinerRefernce, toggle]);\n}\n\nconst extraActionsPopup = (props: IInvoicesTableRowProps): JSX.Element | null => {\n const {\n resources: {\n invoiceViewDetailsButtonAriaLabel,\n invoiceViewDetailsButtonText,\n invoiceActionsButtonTextAriaLabel,\n invoiceActionsButtonIsOnBehalfOfTextAriaLabel\n },\n data: { index }\n } = props;\n\n const [showActions, setShowActions] = useState(false);\n const isOnBehalfOfRequest = isOboRequest(props.context.request);\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n\n const className = `${props.className}__extra-actions-cell`;\n const actionsContainerClassName = `${className}__actions-container`;\n const payInvoiceClassName = `${actionsContainerClassName}__pay-invoice`;\n const wrapperRefiner = React.useRef(null);\n useOutsideClick(wrapperRefiner, toggle(showActions && !isOnBehalfOfRequest, setShowActions));\n return (\n
\n \n {showActions && !isOnBehalfOfRequest && (\n
\n \n {invoiceViewDetailsButtonText}\n \n \n \n
\n )}\n
\n );\n};\n\nconst getMobileRowCells = (props: IInvoicesTableRowProps, onSelectLine: () => void) => {\n const {\n data: { invoice }\n } = props;\n\n const linkToInvoiceDetails = getInvoiceDetailsPageUrlSync(props.data.invoice.id, props.context.actionContext);\n const invoiceRowArialabel = format(props.resources.invoiceListSelectRadioAriaLabelText, invoice.id);\n\n return (\n <>\n \n \n \n \n \n {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 { InvoicePaidStatus } from '@msdyn365-commerce/retail-proxy';\n\nexport interface IInvoiceStatusResources {\n invoiceStatusNone: string;\n invoiceStatusUnpaid: string;\n invoiceStatusPartiallyPaid: string;\n invoiceStatusPaid: string;\n}\n\nexport const getInvoiceStatusText = (resources: IInvoiceStatusResources, invoiceStatus: InvoicePaidStatus | undefined) => {\n switch (invoiceStatus) {\n case InvoicePaidStatus.None:\n return resources.invoiceStatusNone;\n\n case InvoicePaidStatus.Unpaid:\n return resources.invoiceStatusUnpaid;\n\n case InvoicePaidStatus.PartiallyPaid:\n return resources.invoiceStatusPartiallyPaid;\n\n case InvoicePaidStatus.Paid:\n return resources.invoiceStatusPaid;\n default:\n return '';\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../../helpers/invoice-data';\nimport { IInvoiceErrorState } from '../../invoices-list';\nimport { IInvoicesTableHeaderResources, InvoicesTableHeaderComponent } from './components/invoices-table-header-component';\nimport { IInvoicesTableRowResources, InvoicesTableRowComponent } from './components/invoices-table-row-component';\n\ninterface IInvoicesTableData {\n invoices: InvoiceModel[];\n customer: Customer;\n}\n\nexport interface IInvoicesTableResources extends IInvoicesTableHeaderResources, IInvoicesTableRowResources {}\n\nexport interface IInvoicesTableProps extends IComponentProps {\n context: ICoreContext;\n className: string;\n invoiceButtonReferences?: React.RefObject[];\n payInvoiceButtonReferences?: React.RefObject[];\n resources: IInvoicesTableResources;\n\n onChange(): void;\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n onRequestInvoice(invoice: InvoiceModel, requestInvoiceButtonReference: React.RefObject): void;\n}\n\nexport interface IInvoicesTableComponent extends IComponent {}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nconst getViewport = (context: ICoreContext): GridSize => {\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (window?.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n};\n\nconst isMobileView = (context: ICoreContext) => {\n const viewport = getViewport(context);\n return viewport === 'xs' || viewport === 'sm';\n};\n\n/**\n * On select all function.\n * @param props -Invoice table props.\n * @returns On change.\n */\nconst onSelectAllHandler = (props: IInvoicesTableProps) => (isSelected: boolean) => {\n props.data.invoices.forEach(invoice => {\n invoice.isSelected = isSelected;\n });\n props.onChange();\n};\n\nconst InvoicesTable: React.FC = (props: IInvoicesTableProps): JSX.Element => {\n const [isMobile, setIsMobile] = useState(isMobileView(props.context));\n\n const updateViewport = () => {\n setIsMobile(isMobileView(props.context));\n };\n\n if (typeof window !== undefined && window.addEventListener) {\n window.addEventListener('resize', updateViewport);\n }\n const rowClassName = `${props.className}__row`;\n const headerClassName = `${props.className}__header`;\n\n return (\n \n invoice.isSelected)}\n isMobile={isMobile}\n isAdmin={props.data.customer.IsB2bAdmin || false}\n onSelectAll={onSelectAllHandler(props)}\n resources={props.resources}\n data={{}}\n />\n {props.data.invoices.map((invoice, index: number) => {\n return (\n \n );\n })}\n
\n );\n};\n\nexport const InvoicesTableComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IInvoicesTableComponent\n>('InvoicesTableComponent', { component: InvoicesTable });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponent, IComponentProps, ICoreContext, ITelemetry, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport React, { useState } from 'react';\n\nimport { InvoiceModel } from '../helpers/invoice-data';\nimport { payInvoices } from '../helpers/pay-invoices';\nimport { IInvoiceErrorState } from '../invoices-list';\n\ninterface IMakePaymentData {\n invoices: InvoiceModel[];\n}\n\nexport interface IMakePaymentResources {\n makePaymentButtonText: string;\n makePaymentButtonAriaLabel: string;\n}\n\nexport interface IMakePaymentProps extends IComponentProps {\n context: ICoreContext;\n itemKey?: string;\n telemetry: ITelemetry;\n moduleId: string;\n moduleTypeName: string;\n telemetryContent?: ITelemetryContent;\n navigationUrl?: string;\n buttonReferences?: React.RefObject;\n resources: IMakePaymentResources;\n disabled?: boolean;\n\n onError?(errorState: IInvoiceErrorState, reference?: React.RefObject): void;\n}\n\nexport interface IMakePaymentComponent extends IComponent {}\n\nconst onClick = async (\n _event: React.MouseEvent,\n props: IMakePaymentProps,\n setDisabled: (disabled: boolean) => void\n): Promise => {\n setDisabled(true);\n\n const propagateError = (errorState: IInvoiceErrorState): void => {\n if (props.onError) {\n props.onError(errorState, props.buttonReferences);\n }\n setDisabled(false);\n };\n\n await payInvoices(props.data.invoices, props.context.actionContext, propagateError);\n};\n\nconst MakePaymentComponentActions = {\n onClick\n};\n\n/**\n * On Click function.\n * @param input -Make payment props.\n * @param setDisabled -Set Disabled.\n * @returns Make payment component on click.\n */\nconst onClickHandler = (input: IMakePaymentProps, setDisabled: React.Dispatch>) => async (\n event: React.MouseEvent\n) => {\n await MakePaymentComponentActions.onClick(event, input, setDisabled);\n};\n\nconst MakePayment: React.FC = (input: IMakePaymentProps): JSX.Element => {\n const {\n data: { invoices }\n } = input;\n // Added condition to enable MakePayment button only if can be paid invoice is selected\n const hasInvoices =\n ArrayExtensions.hasElements(invoices.filter(invoice => invoice.canBePaid)) &&\n ArrayExtensions.hasElements(invoices.filter(invoice => invoice.isSelected));\n const [disabled, setDisabled] = useState(false);\n\n return (\n \n {input.resources.makePaymentButtonText}\n \n );\n};\n\n// @ts-expect-error\nexport const MakePaymentComponent: React.FunctionComponent = msdyn365Commerce.createComponent(\n 'MakePayment',\n { component: MakePayment }\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { InvoicePaidStatus, OrderInvoice } from '@msdyn365-commerce/retail-proxy';\n\nexport interface IPayableInvoice {\n readonly id: string;\n readonly canBePaid: boolean;\n}\n\n/**\n * Represents invoice data model.\n */\nexport class InvoiceModel implements IPayableInvoice {\n public id: string;\n\n public invoiceDate?: Date;\n\n public customerAccountNumber?: string;\n\n public customerName?: string;\n\n public amount?: number;\n\n public dueDate?: Date;\n\n public amountDue?: number;\n\n public status?: InvoicePaidStatus;\n\n public currencyCode?: string;\n\n public isSelected: boolean;\n\n public constructor(invoice: OrderInvoice) {\n this.id = invoice.Id || '';\n this.invoiceDate = invoice.InvoiceDate ? new Date(invoice.InvoiceDate) : undefined;\n this.customerAccountNumber = invoice.CustomerAccountNumber;\n this.customerName = invoice.CustomerName;\n this.amount = invoice.TotalAmount;\n this.dueDate = invoice.InvoiceDueDate ? new Date(invoice.InvoiceDueDate) : undefined;\n this.amountDue = invoice.AmountBalance;\n this.status = invoice.InvoicePaidStatusValue;\n this.currencyCode = invoice.CurrencyCode;\n\n this.isSelected = false;\n }\n\n public get canBePaid(): boolean {\n return this.status !== InvoicePaidStatus.Paid;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IRequestInvoiceButtonProps {\n innerReference?: React.RefObject;\n className: string;\n requestInvoiceButtonLabel: string;\n onClicked(): void;\n}\n\nexport const RequestInvoiceButton: React.FC = ({\n className,\n onClicked,\n requestInvoiceButtonLabel,\n innerReference\n}) => {\n return (\n \n );\n};\n"],"names":["AccountWelcomeTile","React","constructor","handleHeadingChange","event","this","props","config","heading","text","target","value","render","data","className","accountInfo","accountInformation","result","_objectSpread","FirstName","viewProps","moduleProps","classnames","Msdyn365","tag","editProps","onEdit","requestContext","context","request","renderView","defaultClassName","B2bRequestsTileLinks","_ref","links","telemetryContent","onTextChange","ArrayExtensions","hasElements","editableLinks","_mapEditableLinks","linkdata","payLoad","getPayloadObject","map","link","contentAction","etext","linkText","attributes","getTelemetryAttributes","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","B2bRequestsTile","super","handleLinkTextChange","linkIndex","getTelemetryObject","telemetryPageName","friendlyName","telemetry","isChannelTypeB2B","actionContext","b2bRequestsTile","Module","Object","assign","PasswordResetVerification","moduleClassName","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","getValue","v1Value","v2Value","templateVersion","emailRegex","EmailRegex","defaultRegex","source","componentDidMount","componentDidUpdate","shouldComponentUpdate","nextProps","nextState","state","resources","viewState","isShowLoading","passwordResetVerification","loading","modal","Modal","isOpen","modalBody","ModalBody","icon","PasswordResetVerificationLoadingIconComponent","message","PasswordResetVerificationLoadingMessageComponent","loadingMessage","defaultAADConainer","id","style","display","aadConainer","passwordResetVerificationLocalAccount","_renderLocalAccount","obj","ID","toLowerCase","PAT","verifying_blurb","localAccount","verificationControlWrapper","items","_renderInput","emailAddressLabelText","undefined","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","key","verificationCodeSendSuccess","emailAddressVerifiedSuccess","errorMessage","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","type","labelText","maxLength","pattern","cssClassName","wrapper","label","PasswordResetVerificationLabelComponent","forId","input","PasswordResetVerificationInputComponent","__decorate","observable","observer","PasswordResetVerificationItem","Node","PasswordResetVerificationLoading","_ref3","_ref2","index","item","error","button","LocalAccount","onSubmitRequestClick","onClosing","filteredInvoices","onSubmitRequest","checkboxRef","closingFlag","invoice","_inputInvoice$current","current","Number","checked","length","searchInputChangedHandler","setSearchInput","onCancelHandler","toggle","renderInvoiceOptions","setSelectedInvoiceIndex","_invoice","i","_checkboxRef$current$","onInvoiceSelect","onInvoiceSelectHandler","checkboxId","checkboxName","name","ref","isSelected","onChange","htmlFor","RequestInvoiceModal","email","isModalOpen","modalHeaderLabel","sendToEmailLabel","submitRequestLabel","cancelLabel","invoices","searchPlaceholderLabel","invoicesFoundString","singleInvoiceFoundString","searchButtonAltText","selectedInvoiceIndex","setFilteredInvoices","searchInput","shouldShowSearchResults","setShouldShowSearchResults","invoiceOptionsData","invoiceOptions","setInvoiceOptions","focusElement","_focusElement$current","focus","searchEntered","searchEnteredHandler","updatedInvoices","StringExtensions","isNullOrEmpty","filter","toLocaleUpperCase","includes","searchResultString","invoicesFoundReplaceIndex","indexOf","horizontalPosition","verticalPosition","autoFocus","fade","onOpened","setFilteredInvoicesToSelectedInvoices","selectedInvoices","requestInvoiceDialogAriaLabel","ModalHeader","substring","placeholder","onClick","title","ModalFooter","InvoicesList","_className","buttonChildReference","buttonChildPayButtonReference","invoiceIds","_onDismiss","setState","_onToggleInvoiceRequestParentModal","selectedButtonElement","payInvoiceRequestReference","_onToggleInvoiceRequestModal","_queryResultSettings","QueryResultSettingsProxy","fromModuleData","QueryResultSettings","makePaymentReference","_updateInvoicesState","bind","_onAddToCartFailed","_handleFilterStateChange","_loadMoreInvoices","_requestInvoice","_requestSpecificInvoice","_setPayInvoiceErrorModalClose","invoicesFilterState","InvoicesFilterState","ShowAll","isLoading","isPageLoaded","errorState","isInvoiceRequestModalOpen","payInvoiceErrorModalOpen","_customerBalance$resu","_customerBalance$resu2","_heading$text","channel","cultureFormatter","formatCurrency","currencyCode","customerBalance","invoicesListTitle","invoicesListDescTitle","invoicesListDescCount","amountText","OpenInvoiceBalance","toFixed","Currency","totalCount","OpenInvoiceCount","countText","replace","toString","invoicesListTitleHeading","headerClassName","header","Heading","invoiceRequestModal","_renderInvoiceRequestModal","_renderInvoicesFilter","pagination","_renderPagination","content","_renderListContainer","_renderEmptyInvoiceLinesPageContent","async","customer","invoicesData","_initializeWithInvoices","reaction","_this$props$data$b2bU","callerContext","b2bUserId","b2bUserInformation","B2BUserId","invoiceId","BusinessPartnerUsersDataActions","BusinessPartnerOperationDeliveryType","Email","InvoiceModel","_addInvoices","newInvoices","concat","containerClass","actionsContainerClass","invoiceEmptyInvoiceLinesTitle","invoiceEmptyInvoiceLinesDescription","Button","invoiceEmptyInvoiceLinesContinueShoppingButtonAriaLabel","href","getUrlSync","invoiceEmptyInvoiceLinesContinueShoppingButtonText","containerHeaderClass","containerContentClass","isOnBehalfOfRequest","isOboRequest","_renderMakePayment","_renderInvoiceRequestButton","_renderInvoiceErrors","_renderInvoicesList","searchCriteria","businessPartner","getCurrentAsync","BusinessPartnerId","getCustomer","GetCustomerInput","apiSettings","CustomerId","AccountNumber","InvoicePaidStatusValues","InvoicePaidStatus","None","Paid","PartiallyPaid","Unpaid","Error","_getInvoicesSearchCriteria","Paging","Skip","getInvoices","GetInvoicesInput","filterClassName","_renderInvoiceInCartPaymentMessage","InvoicesFilterComponent","typeName","currentState","onFilterStateChanged","disabled","tableClassName","InvoicesTableComponent","invoiceButtonReferences","payInvoiceButtonReferences","onError","onRequestInvoice","newErrorState","reference","_newErrorState$errorR","errorHost","errorReason","failureReason","invoiceErrorInvoiceIdNotExist","invoiceErrorFailedAddInvoiceToCart","shouldShowAdditionalInfoInPopup","errorCode","makePaymentResources","makePaymentButtonText","makePaymentButtonAriaLabel","_getSelectedInvoices","MakePaymentComponent","moduleId","moduleTypeName","navigationUrl","buttonReferences","_this$state$selectedB","payInvoiceErrorDialogHeader","payInvoiceErrorDialogBodyErrorTitle","payInvoiceErrorDialogBodyErrorDescription","payInvoiceErrorDialogFooterGoToCartButtonText","payInvoiceErrorDialogFooterCancelButtonText","cartUrl","errorClassName","InvoiceErrorComponent","messageHeader","invoiceErrorMessageHeader","otherError","showError","errorDialogHeader","errorDialogBodyErrorTitle","errorDialogBodyErrorDescription","errorDialogFooterGoToCartButtonText","errorDialogFooterCancelButtonText","setPayInvoiceErrorModalClose","_this$props$data$cart","cart","hasInvoiceLine","Alert","invoiceInCartPaymentMessage","_data$invoices","Top","invoicesLoadMore","invoiceRequestModalCancelLabel","invoiceRequestModalSubmitLabel","invoiceRequestModalHeaderLabel","invoiceRequestModalSendToEmailLabel","invoiceRequestModalSearch","invoiceRequestModalInvoiceSearchDisplay","invoiceRequestModalSingleInvoiceSearchDisplay","invoiceRequestModalSearchButton","_this$state$selectedB2","invoiceRequestButtonLabel","isNullOrWhitespace","RequestInvoiceButton","innerReference","requestInvoiceButtonLabel","onClicked","push","specificInvoice","requestInvoiceButtonReference","forEach","InvoiceListView","Link","noclick","attribute","onTelemetryClick","itemProp","Separator","separator","Breadcrumb","_pageType","urlTokens","pageType","_getRootLink","root","_getCustomBreadcrumbLinks","itemPosition","keyIndex","_getCategoryHierarchy","categoryHierarchy","_getFriendlyName","locale","NameTranslations","Url","nameTranslations","_nameTranslation","nameTranslation","find","Language","Text","_getPDPLinks","categoryPaths","product","url","requestUrl","Name","hideProductName","_goBack","history","back","_getPDPBackButton","query","MsDyn365","isBrowser","document","referrer","backToResultsText","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","app","breadcrumbType","linkSeparator","breadcrumbViewProps","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","backButton","InvoiceDetailsHeaderComponent","msdyn365Commerce","createComponent","component","invoiceDetails","invoiceNumberText","invoiceIdLabel","invoiceOrderItemsText","lines","invoiceOrderItem","invoiceOrderItems","invoiceInfoContainerClassName","orderInfoContainerClassName","orderInfoClassName","orderMainInfoClassName","orderDetailsClassName","actionsClassName","amountSummaryClassName","orderDate","date","invoiceDate","formatDate","year","month","day","formatShortDate","dueDate","formatLongDate","dueDateText","invoicePaymentDueDateText","invoicePlacedByLabel","customerName","invoiceAmountDueText","formatAmount","amount","amountDue","PayInvoiceComponent","InvoiceDetailsPaymentDetailsComponent","invoicePaymentDetails","lineClassName","ObjectExtensions","isNullOrUndefined","totalDiscount","invoicePaymentDiscounts","subtotal","invoicePaymentSubtotal","totalCharges","invoicePaymentCharges","totalTax","invoicePaymentTax","totalAmount","invoicePaymentInvoiceTotal","line","InvoiceDetailsProductsComponent","productLineClass","productLineInfoContainerClass","productLineDetailsClass","productLineSmallDetailsClass","quantity","Quantity","productUrl","ProductName","ProductId","getProductPageUrlSync","RecordId","_renderProductImage","imageSettings","_context$request$app","cropFocalRegion","fallbackImage","getFallbackImageUrl","ItemId","OmniChannelMedia","Image","altText","src","primaryImageUrl","fallBackSrc","gridSettings","viewports","xs","q","w","h","lg","xl","lazyload","loadFailureBehavior","_renderProductDimensions","ColorName","invoiceProductColor","SizeName","invoiceProductSize","StyleName","invoiceProductStyle","Price","invoiceQuantity","NetAmount","InvoiceDetailsModel","products","Id","InvoiceDate","Date","CustomerName","InvoiceDueDate","AmountBalance","status","InvoicePaidStatusValue","SalesInvoiceLine","_products$find","PrimaryImageUrl","TotalDiscount","InvoiceSubtotal","TotalCharges","TotalTaxAmount","TotalAmount","CurrencyCode","canBePaid","InvoiceDetails","_getProducts","ChannelId","invoiceDetailsModel","_renderHeader","_renderProducts","paymentDetails","_renderPaymentDetails","payInvoiceError","channelId","arguments","productInputs","ProductInput","getSimpleProductsAction","_this$state$errorStat","Map","timeout","mapRef","_initMap","_data$storeSelectorSt","_data$distributorSele","storeSelectorStateManager","isMapApiLoaded","distributorSelectorStateManager","mapLoadOptions","credentials","BingMapsApiKey","pushpinAccessible","Microsoft","Maps","Events","addHandler","_data$distributorSele2","_data$distributorSele3","_data$distributorSele4","_data$storeSelectorSt2","isDistributorSelectorDialogOpen","updateDistributorMapVisibility","setSelectedDistributorId","setSelectedStoreLocationId","_updateMapsForDistributor","_this$props$data$dist","pushpinOptions","distributorInfoList","distributorList","selectedDistributorId","mapLocation","entities","clear","pushpins","distributor","OrgUnit","distributorInfo","entries","orgUnit","Latitude","Longitude","isLocationSelected","options","_getPushpinOptions","pushpin","Pushpin","Location","handleDistributorPushpinClick","unshift","currentLocation","setView","center","_Microsoft$Maps$Locat","bounds","LocationRect","fromShapes","setOptions","_updateMap","_this$props$data$stor","_storeSelectorStateMa","orgUnitStoreInformation","selectedStoreLocationId","storeLocationList","store","OrgUnitAvailability","unitStoreInfo","_unitStoreInfo$OrgUni","storeLocation","OrgUnitLocation","isSelectedLocation","OrgUnitNumber","handleClickEvent","_Microsoft$Maps$Locat2","orgUnitNumber","recordId","_this$props$data$dist2","showIndex","size","color","selectionColor","_getSvgIcon","_this$props$context","_this$props$data$stor2","_this$props$data$dist3","BingMapsEnabled","loadMapAPIInput","lang","market","ChannelCountryRegionISOCode","_this$props$data$dist4","when","_this$props$data$stor3","setMapModuleLoaded","_this$props$data$stor4","_this$props$data$dist5","_this$props$data$dist6","_this$props$data$stor5","_this$props$data$dist7","loadMapApi","_this$props$data$dist8","_this$props$data$dist9","_this$props$data$stor6","_this$props$data$stor7","_this$props$data$dist10","_this$props$data$stor8","_this$props$data$stor9","_this$props$data$dist11","_this$props$data$dist12","_data$storeSelectorSt3","_data$storeSelectorSt4","_data$distributorSele5","_data$distributorSele6","shouldDisplayMap","isDialogOpen","listMapViewState","displayMap","ModuleProps","classname","show","Header","headerProps","MapProps","AccountProfileSection","AccountProfileItem","description","AccountProfile","infoMessageBar","accountProfileWrapper","emailSection","nameSection","customerAttributesWrapper","customerAttributesSection","configure","isolateGlobalState","_renderCheckoutActions","showAddToCartButton","addToCart","findInStore","_renderAddToCart","_renderFindInStore","_renderMediaLinks","_props$data","productSpecificationData","mediaLinks","productData","_productData$TextValu","TextValue","startsWith","ContainerProps","errorBlock","_renderAddToOrderTemplate","addToOrderTemplate","_renderConfigure","dropdowns","dimColor","x","dimSize","dimStyle","dimConfiguration","_x$heading","_x$heading2","_x$heading3","_x$heading4","children","headingCopy","selectCopy","select","dropdownToggleName","_renderConfigureDropdown","dropdown","LabelContainerProps","errors","storeSelector","_renderQuantity","_renderKeyInPrice","keyInPrice","_renderShopSimilarItem","shopSimilarItem","_props$data$deliveryO","MediaGalleryContainerProps","ProductInfoContainerProps","price","rating","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","deliveryOptions","DeliveryOptions","_deliveryOptions$0$Ex","ExtensionProperties","y","Key","Value","BooleanValue","mediaGallery","renderAdditionalContent","additionalContent","_additionalContent$ad","additionalContentNode","additionalContentItems","additionalContentItemContainer","additionalContentItemLinks","contentBlockContainer","imageContainer","detailsContainer","image","imageLink","imageAriaLabel","imageGradient","marginBottom","position","overflow","width","flexDirection","cursor","AdobeOnClick","linkProps","page","PageLink","location","alt","backgroundImage","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToWishlist","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","quantityComponent","extentionResources","quantityLimitsMessages","min","max","applyDefaultOrderSettings","IncrementalQuantity","currentCount","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","bulkPurchaseLink","slots","InvoiceDetailsView","MapHeader","GetMaxLength","parsedMaxLength","parseInt","isNaN","successClassName","errorMessages","assertive","PayInvoiceComponentActions","_event","setDisabled","payInvoices","onClickHandler","useState","innerRef","payInvoiceButtonAriaLabel","payInvoiceButtonText","invoicesToAdd","cartState","getCartState","addInvoicesToCart","_result$errorDetails","_result$errorDetails2","errorDetails","LocalizedMessage","ErrorResourceId","_window","getInvoicesFilterStateResources","filterState","invoicesFilterShowAll","invoiceStatusPaid","invoiceStatusPartiallyPaid","invoiceStatusUnpaid","onStateClick","popoverRef","popoverState","setPopoverState","togglePopover","setFilterState","onFilterStateClick","clickedState","Popover","placement","EnumExtensions","getEnumValues","renderFilterStateItem","stateStringRepresentation","InvoicesTableHeaderComponent","rowClassName","switchCheckedState","onSelectAll","isSelectedAll","headerCells","isMobile","getMobileHeaderCells","invoiceListSelectAllRadioAriaLabelText","invoicesText","invoiceDateMobileText","getDesktopHeaderCells","invoiceDateText","invoiceUsersText","invoiceAmountText","invoiceDueDateText","invoiceStatusText","invoiceActionsText","onRequestSpecificInvoice","setShowActions","setShowPreviousActions","onClickViewDetails","linkToInvoiceDetails","isShowActions","shouldShowActions","extraActionsPopup","invoiceViewDetailsButtonAriaLabel","invoiceViewDetailsButtonText","invoiceActionsButtonTextAriaLabel","invoiceActionsButtonIsOnBehalfOfTextAriaLabel","showActions","getInvoiceDetailsPageUrlSync","actionsContainerClassName","payInvoiceClassName","wrapperRefiner","refinerRefernce","handleClickOutside","contains","addEventListener","removeEventListener","useOutsideClick","payInvoiceReferences","invoiceReferences","InvoicesTableRowComponent","onSelectLine","rowCells","getMobileRowCells","invoiceRowArialabel","format","invoiceListSelectRadioAriaLabelText","getInvoiceStatusText","getDesktopRowCells","isCurrentUser","customerAccountNumber","invoiceCurrentUser","invoiceStatus","invoiceStatusNone","isMobileView","viewport","device","Type","innerWidth","sm","md","getViewport","onSelectAllHandler","setIsMobile","updateViewport","all","isAdmin","IsB2bAdmin","MakePaymentComponentActions","hasInvoices","CustomerAccountNumber"],"sourceRoot":""}