{"version":3,"file":"static/js/22.7a7cceaefb3e4df04663.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?8281","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?44e9","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?95ac","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.tsx?4353","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/components/account-generic-tile-links.tsx?2bc7","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty/account-loyalty.tsx?3672","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty/account-loyalty.view.tsx?4d8b","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty/components/account-loyalty-small-components.tsx?c12b","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.tsx?0983","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-button.tsx?8d59","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-description.tsx?54a5","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-error.tsx?a75a","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-input.tsx?d840","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-label.tsx?4560","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-link.tsx?2078","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-loading-icon.tsx?1d7f","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-loading-message.tsx?84ee","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-text.tsx?76b9","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/sign-in.tsx?259c","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/sign-in.view.tsx?2b3e","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec"],"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 { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BSite) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BSite))\n );\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState\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 if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (\n account.Balance === 0 &&\n account.CreditLimit === 0 &&\n account.InvoiceAccountBalance === 0 &&\n account.InvoiceAccountCreditLimit === 0\n ) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\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 { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\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 IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n {error}\n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n {value}\n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n {label}\n {value}\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\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 AccountCustomerBalanceTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-customer-balance-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountCustomerBalanceTileLinks;\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 { BusinessPartnerUsersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n CustomerBalances\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getTelemetryObject, Heading, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { get } from 'lodash';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceData } from './account-customer-balance.data';\nimport { HeadingTag, IAccountCustomerBalanceProps } from './account-customer-balance.props.autogenerated';\nimport {\n AccountLabels,\n AccountValues,\n ActionBar,\n AdminRequestStatementButton,\n AvailableCreditComponent,\n BackButton,\n BalanceOwedComponent,\n CreditExcessComponent,\n RequestStatementModal\n} from './components';\n\nexport interface IAccountCustomerBalanceViewProps extends IAccountCustomerBalanceProps {\n heading: string;\n homeButton: React.ReactNode;\n accountSectionHeading: React.ReactNode;\n accountLabels: React.ReactNode;\n accountValues: React.ReactNode;\n creditSummarySectionHeading: React.ReactNode;\n creditSummaryLabels?: React.ReactNode;\n creditSummaryValues?: React.ReactNode;\n actions: React.ReactNode;\n requestStatementModal: React.ReactNode;\n availableCredit?: React.ReactNode;\n balanceOwed?: React.ReactNode;\n creditExcess?: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceState {\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n}\n\n/**\n *\n * AccountCustomerBalance component.\n * @extends {React.PureComponent>}\n */\nclass AccountCustomerBalance extends React.PureComponent<\n IAccountCustomerBalanceProps,\n IAccountCustomerBalanceState\n> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly requestStatementButtonRef: React.RefObject = React.createRef();\n\n @computed get canSubmitStatementRequest(): boolean {\n return this.state.statementRequestFromDateString !== '' && this.state.statementRequestToDateString !== '';\n }\n\n constructor(props: IAccountCustomerBalanceProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.state = {\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0]\n };\n }\n\n public render(): JSX.Element | null {\n const customer = get(this.props, 'data.customerInformation.result');\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n if ([customer, account].includes(undefined)) {\n this.props.context.telemetry.error('Customer data is unavailable, module will not render');\n return null;\n }\n\n const { config, resources, context } = this.props;\n const { heading } = config;\n const {\n creditSummarySectionHeading,\n accountSectionHeading,\n backToShoppingText,\n customerSincePrefix,\n availableCreditLabel,\n balanceOwedLabel,\n creditExcessLabel,\n requestStatementButtonLabel,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n myAccountStatementLabel,\n fullOrganizationLabel,\n modalAriaLabel\n } = resources;\n\n const {\n isStatementRequestModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n statementRequestMaxDateString\n } = this.state;\n\n const accountNumber = customer.AccountNumber;\n const createdOn = this._formatJoinDate(new Date(customer.CreatedDateTime));\n const name = `${customer.FirstName} ${customer.LastName}`;\n let customerCredit = 0;\n let customerAccountBalance = 0;\n let excess = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n customerAccountBalance = account.Balance;\n excess = account.Balance - account.CreditLimit;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n customerAccountBalance = account.InvoiceAccountBalance;\n excess = account.InvoiceAccountBalance - account.InvoiceAccountCreditLimit;\n }\n\n const creditExcess = excess > 0 ? this._formatCurrency(excess) : null;\n const availableCredit = this._formatCurrency(customerCredit);\n const balanceOwed = this._formatCurrency(customerAccountBalance);\n const backLink = Msdyn365.getUrlSync('home', context.actionContext) || '';\n const emailAddress = customer.Email;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const isB2BAdmin = isB2BSite && customer.IsB2bAdmin;\n\n const actionBar = isB2BAdmin ? (\n \n ) : (\n isB2BSite && (\n \n )\n );\n\n const viewProps = {\n ...this.props,\n heading: ,\n accountSectionHeading: (\n \n ),\n accountLabels: (\n \n ),\n accountValues: ,\n creditSummarySectionHeading: (\n \n ),\n availableCredit: ,\n balanceOwed: ,\n creditExcess: ,\n homeButton: ,\n actions: actionBar,\n requestStatementModal: isB2BSite && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n private _formatCurrency(currency: number): string {\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n\n return `${formatCurrency(currency.toFixed(2), currencyCode)}`;\n }\n\n private _formatJoinDate(date: Date): string {\n const i14nDate = new Intl.DateTimeFormat(this.props.context.actionContext.requestContext.locale, {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n\n return i14nDate.format(date);\n }\n\n private readonly _showRequestStatementModal = (): void => {\n if (!this.state.isStatementRequestModalOpen) {\n this.setState({\n isStatementRequestModalOpen: true\n });\n }\n };\n\n private readonly _toggleModal = (): void => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.requestStatementButtonRef.current?.focus();\n };\n\n private readonly _toggleDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _adminShowRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestAdminDropdownOpen: false\n });\n\n this._showRequestStatementModal();\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const B2BUserId = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType.Email\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this.setState({\n isStatementRequestModalOpen: false\n });\n\n this.requestStatementButtonRef.current?.focus();\n };\n}\n\nexport default AccountCustomerBalance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceActions {\n className?: string;\n buttonReference?: React.RefObject;\n requestStatementButtonLabel: string;\n onRequestStatement(): void;\n}\n\ninterface IAdminRequestStatementProps {\n className?: string;\n requestStatementButtonLabel: string;\n myUserAccountLabel: string;\n fullOrganizationLabel: string;\n isDropdownShowing: boolean;\n buttonReference?: React.RefObject;\n promoteToSellerLabel?: string;\n onToggleDropdown(): void;\n onRequestStatement(isFullOrg: boolean): void;\n onPromoteToSeller?(): void;\n}\n\nexport const ActionBar: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n buttonReference\n}) => {\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n return (\n
\n \n
\n );\n};\n\nexport const AdminRequestStatementButton: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n onToggleDropdown,\n onPromoteToSeller,\n promoteToSellerLabel,\n myUserAccountLabel,\n fullOrganizationLabel,\n isDropdownShowing,\n buttonReference\n}) => {\n const onSelectCustomerAccount = React.useCallback(() => {\n onRequestStatement(false);\n }, [onRequestStatement]);\n\n const onSelectFullOrg = React.useCallback(() => {\n onRequestStatement(true);\n }, [onRequestStatement]);\n\n const onSelectPromoteToSeller = React.useCallback(() => {\n onPromoteToSeller?.();\n }, [onPromoteToSeller]);\n\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n const requestStatementDropdownString = `request-statement-dropdown-id-${Random.Guid.generateGuid()}`;\n return (\n
\n \n {requestStatementButtonLabel}\n \n \n \n {myUserAccountLabel}\n \n \n {promoteToSellerLabel && (\n \n {promoteToSellerLabel}\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 { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * The interface for the props for the account statement request modal.\n */\ninterface IAccountStatementRequestModalProps {\n email: string;\n isModalOpen: boolean;\n fromDateString: string;\n toDateString: string;\n canSubmitRequest: boolean;\n modalHeaderLabel: string;\n sendToEmailLabel: string;\n fromDateLabel: string;\n toDateLabel: string;\n submitRequestLabel: string;\n cancelLabel: string;\n className: string;\n selectedUser: string;\n selectedUserLabel: string;\n toggle(): void;\n onChangeFromDate(newFromDate: string): void;\n onChangeToDate(newToDate: string): void;\n onSubmitRequest(): void;\n modalAriaLabel?: string;\n maxDateString?: string;\n}\n\nexport const RequestStatementModal: React.FC = ({\n className,\n email,\n isModalOpen,\n toggle,\n fromDateString,\n toDateString,\n onChangeFromDate,\n onChangeToDate,\n canSubmitRequest,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n onSubmitRequest,\n selectedUser,\n selectedUserLabel,\n modalAriaLabel,\n maxDateString\n}) => {\n const onChangeFromDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeFromDate(value);\n },\n [onChangeFromDate]\n );\n\n const onChangeToDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeToDate(value);\n },\n [onChangeToDate]\n );\n\n /**\n * If the onBlur is called on the fromDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurFromDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== fromDateString) {\n event.target.focus();\n }\n },\n [fromDateString]\n );\n\n /**\n * If the onBlur is called on the toDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurToDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== toDateString) {\n event.target.focus();\n }\n },\n [toDateString]\n );\n\n return (\n \n {modalHeaderLabel}\n \n {selectedUser && (\n
\n \n
\n
{selectedUser}
\n
\n )}\n \n
\n {email}\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n {submitRequestLabel}\n \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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { AdminRequestStatementButton } from './account-actions';\nimport { RequestStatementModal } from './account-statement-request-modal';\n\nexport * from './account-actions';\nexport * from './account-statement-request-modal';\n\ninterface IAccountLabel {\n name: string;\n accountNumber: string;\n createdOn: string;\n customerSincePrefix: string;\n}\n\ninterface IAccountValues {\n availableCredit: string;\n availableCreditLabel: string;\n}\n\n/**\n * Prop for Available credit component.\n */\ninterface ICreditSummaryAvailableCredit {\n availableCreditLabel: string;\n availableCredit: string;\n}\n\n/**\n * Prop for Balanced owed component.\n */\ninterface ICreditSummaryBalanceOwed {\n balanceOwedLabel: string;\n balanceOwed: string;\n}\n\n/**\n * Prop for credit excess component.\n */\ninterface ICreditSummaryCreditExcess {\n creditExcessLabel: string | null;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryLabel {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryValues {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface IBackButton {\n link: string;\n label: string;\n telemetryContent?: ITelemetryContent;\n}\n\nexport const AccountLabels: React.FC = ({ name, accountNumber, customerSincePrefix, createdOn }) => (\n
\n

{name}

\n
#{accountNumber}
\n
\n {customerSincePrefix} {createdOn}\n
\n
\n);\n\nexport const AccountValues: React.FC = ({ availableCredit, availableCreditLabel }) => (\n
\n
{availableCreditLabel}
\n
{availableCredit}
\n
\n);\n\nexport const CreditSummaryLabels: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
{availableCredit}
\n
{balanceOwed}
\n
{creditExcess}
\n
\n);\n\nexport const CreditSummaryValues: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
{availableCredit}
\n
{balanceOwed}
\n {creditExcess &&
{creditExcess}
}\n
\n);\n\n/**\n * Available credit component.\n * @param props - ICreditSummaryAvailableCredit.\n * @param props.availableCreditLabel - Available credit label.\n * @param props.availableCredit - Available credit value.\n * @returns - React Node for available credit component.\n */\nexport const AvailableCreditComponent: React.FC = ({ availableCreditLabel, availableCredit }) => (\n
\n
\n
{availableCreditLabel}
\n
\n
\n
{availableCredit}
\n
\n
\n);\n\n/**\n * Balance Owed Component.\n * @param props - ICreditSummaryBalanceOwed.\n * @param props.balanceOwedLabel - Balance Owed label.\n * @param props.balanceOwed - Balance Owed value.\n * @returns - React Node for balance owed component.\n */\nexport const BalanceOwedComponent: React.FC = ({ balanceOwedLabel, balanceOwed }) => (\n
\n
\n
{balanceOwedLabel}
\n
\n
\n
{balanceOwed}
\n
\n
\n);\n\n/**\n * Credit Excess Component.\n * @param props - ICreditSummaryCreditExcess.\n * @param props.creditExcessLabel - Credit excess label.\n * @param props.creditExcess - Credit excess value.\n * @returns - React Node for credit excess component.\n */\nexport const CreditExcessComponent: React.FC = ({ creditExcessLabel, creditExcess }) => (\n
\n {creditExcess && (\n
\n
{creditExcessLabel}
\n
\n )}\n
\n {creditExcess &&
{creditExcess}
}\n
\n
\n);\nexport const BackButton: React.FC = ({ link, label, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.BackToShopping);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {label}\n \n );\n};\n\nexport { AdminRequestStatementButton, RequestStatementModal };\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 { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountGenericTileConfig, IAccountGenericTileProps } from './account-generic-tile.props.autogenerated';\nimport LinksComponent from './components/account-generic-tile-links';\n\nexport interface IAccountGenericTileViewProps extends IAccountGenericTileProps {\n AccountGenericTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * AccountGeneric component.\n * @extends {React.PureComponent>}\n */\nclass AccountGenericTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountGenericTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const viewProps = {\n ...this.props,\n className,\n AccountGenericTile: {\n moduleProps: this.props,\n className: classnames('ms-account-generic-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountGenericTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountGenericTileViewProps } from './account-generic-tile';\n\nconst AccountGenericTileView: React.FC = props => {\n const { AccountGenericTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default AccountGenericTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-generic-tile.props.autogenerated';\n\nexport interface IAccountGenericTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountGenericTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-generic-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountGenericTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountLoyaltyTileLinks {\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 AccountLoyaltyTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-loyalty-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountLoyaltyTileLinks;\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 { LoyaltyRewardPoint } from '@msdyn365-commerce/retail-proxy';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileData } from './account-loyalty-tile.data';\nimport { IAccountLoyaltyTileProps } from './account-loyalty-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-loyalty-tile-description';\nimport LinksComponent from './components/account-loyalty-tile-links';\n\nexport interface IAccountLoyaltyTileViewProps extends IAccountLoyaltyTileProps {\n AccountLoyaltyTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.PureComponent>}\n */\nclass AccountLoyaltyTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountLoyaltyTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, data, resources, context } = this.props;\n const { className, heading, signUpLinkText, signUpLinkAriaLabel, viewLinkText, viewLinkAriaLabel } = config;\n const { accountLoyaltySummary, accountLoyaltyMemberSummary } = resources;\n const { loyaltyCard } = data;\n\n let description = accountLoyaltySummary;\n let url = Msdyn365.getUrlSync('loyaltyJoin', context.actionContext) || '';\n const link = { linkText: signUpLinkText, linkUrl: { destinationUrl: url }, ariaLabel: signUpLinkAriaLabel };\n\n if (loyaltyCard && loyaltyCard.result && loyaltyCard.result.CardNumber) {\n const decimalPrecision = 2;\n let points = 0;\n\n if (loyaltyCard.result.RewardPoints && loyaltyCard.result.RewardPoints.length > 0) {\n loyaltyCard.result.RewardPoints.forEach((rewardPoint: LoyaltyRewardPoint) => {\n points += rewardPoint.ActivePoints!;\n });\n }\n link.ariaLabel = viewLinkAriaLabel;\n link.linkText = viewLinkText;\n url = Msdyn365.getUrlSync('loyalty', context.actionContext) || '';\n link.linkUrl.destinationUrl = url;\n description = format(accountLoyaltyMemberSummary, points.toFixed(decimalPrecision));\n }\n\n const viewProps = {\n ...this.props,\n className,\n AccountLoyaltyTile: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty-tile', config.className)\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: \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.signUpLinkText && this.props.config.viewLinkText) {\n this.props.config.viewLinkText = event.target.value;\n }\n };\n}\n\nexport default AccountLoyaltyTile;\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 { IAccountLoyaltyTileViewProps } from './account-loyalty-tile';\n\nconst AccountLoyaltyTileView: React.FC = props => {\n const { AccountLoyaltyTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountLoyaltyTileView;\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 IAccountLoyaltyTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountLoyaltyTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountLoyaltyTileDescription;\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 { LoyaltyCard, LoyaltyRewardPoint, LoyaltyRewardPointActivity } from '@msdyn365-commerce/retail-proxy';\nimport {\n getLoyaltyRewardPointActivityTimelineAsync,\n getLoyaltyRewardPointsExpiringSoonAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyData } from './account-loyalty.data';\nimport { IAccountLoyaltyProps } from './account-loyalty.props.autogenerated';\nimport { AccountLoyaltyLabel, AccountLoyaltyModalLabel } from './components';\n\nexport interface IAccountLoyaltyViewProps extends IAccountLoyaltyProps<{}> {\n AccountLoyalty: IModuleProps;\n className: string;\n totalPoints: number;\n heading?: React.ReactNode;\n Info: INodeProps;\n infoLabel: React.ReactNode;\n cardNumber: React.ReactNode;\n joinDate: React.ReactNode;\n Points: INodeProps;\n pointsLabel: React.ReactNode;\n points: React.ReactNode;\n Breakdown: INodeProps;\n RewardPoints: INodeProps;\n PointsBreakdown: INodeProps;\n rewardPoints?: IAccountLoyaltyRewardPointProps[];\n Button: INodeProps;\n homeButton: React.ReactNode;\n pointsModal: IAccountLoyaltyModalProps;\n}\n\nexport interface IAccountLoyaltyState {\n isModalOpen: boolean;\n currentModalData?: LoyaltyRewardPoint;\n isModalExpiring: boolean;\n modalID: string;\n currentFocus?: React.RefObject;\n pointsActivity: LoyaltyRewardPointActivity[] | undefined;\n}\n\nexport interface IAccountLoyaltyRewardPointProps {\n label: React.ReactNode;\n availableModalLabel: React.ReactNode;\n availableModalTrigger: React.ReactNode;\n expiringModalLabel: React.ReactNode;\n expiringModalTrigger: React.ReactNode;\n}\n\nexport type horizontalModalPosition = 'left' | 'center' | 'right';\nexport type verticalModalPosition = 'top' | 'center' | 'bottom';\n\nexport interface IAccountLoyaltyModalProps {\n isOpen: boolean;\n horizontalPosition?: horizontalModalPosition;\n verticalPosition?: verticalModalPosition;\n modalClassName?: string;\n modalHeaderClassName?: string;\n modalHeader?: string;\n modalBodyClassName?: string;\n ModalBodyTop: INodeProps;\n pointsDescription?: React.ReactNode;\n totalPoints?: React.ReactNode;\n ModalBodyHeaders: INodeProps;\n date?: React.ReactNode;\n balanceLabel?: React.ReactNode;\n rewardPointsActivity?: IAccountLoyaltyActivityProps[];\n returnFocusRef?: React.RefObject;\n onClose(): void;\n onOpened?(): void;\n}\n\nexport interface IAccountLoyaltyActivityProps {\n Activity: INodeProps;\n activityType: React.ReactNode;\n activityDate: React.ReactNode;\n activityPoints: React.ReactNode;\n}\n\nexport interface IProps extends IAccountLoyaltyProps {}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountLoyalty extends React.PureComponent {\n private readonly _buttonAvailableRef: React.RefObject;\n\n private readonly _buttonExpireRef: React.RefObject;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly decimalPrecision = 2;\n\n constructor(props: IAccountLoyaltyProps) {\n super(props);\n this._buttonAvailableRef = React.createRef();\n this._buttonExpireRef = React.createRef();\n this.state = {\n isModalOpen: false,\n currentModalData: undefined,\n isModalExpiring: false,\n modalID: '',\n pointsActivity: undefined\n };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.BackToShopping);\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n const { loyaltyCard } = this.props.data;\n const { loyaltyCardLabel, totalAvailablePointsLabel, backToShoppingText } = this.props.resources;\n const { actionContext } = this.props.context;\n const { isModalOpen } = this.state;\n const backToShopAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n if (!loyaltyCard || !loyaltyCard.result || !loyaltyCard.result.CardNumber) {\n this.props.context.telemetry.error('Loyalty card content is empty, module wont render');\n return null;\n }\n\n const loyaltyCardData = loyaltyCard.result;\n const rewardPoints = loyaltyCard && loyaltyCardData.RewardPoints;\n const homeLink = Msdyn365.getUrlSync('home', actionContext) ?? '';\n\n const viewProps = {\n ...this.props,\n AccountLoyalty: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty', className),\n modalTransition: {\n /**\n * On Entered in Modal function.\n * @param node - The current node element.\n * @param isAppearing - The Boolean value.\n */\n onEntered: (node: HTMLElement, isAppearing: boolean) => {\n const childNode = node.firstChild as HTMLElement;\n if (isAppearing) {\n childNode.focus();\n }\n }\n }\n },\n totalPoints: rewardPoints && this._getTotalPoints(),\n className: classnames('msc-account-loyalty', className),\n rewardPoints:\n loyaltyCardData.RewardPoints && loyaltyCardData.RewardPoints.length > 0 && this._renderRewardPoints(loyaltyCardData),\n pointsModal: (isModalOpen && this._renderModal()) || {\n isOpen: false,\n returnFocusRef: this.state.currentFocus,\n onOpened: this._onOpenModal\n },\n Info: { className: 'ms-account-loyalty__info' },\n Points: { className: 'ms-account-loyalty__points' },\n Breakdown: { className: 'ms-account-loyalty__breakdown' },\n RewardPoints: { className: 'ms-account-loyalty__reward-points' },\n PointsBreakdown: { className: 'ms-account-loyalty__point-breakdown' },\n Button: { className: 'ms-account-loyalty__link' },\n heading: heading && (\n \n ),\n\n // Account info\n infoLabel: ,\n cardNumber: ,\n joinDate: (\n \n ),\n\n // Points\n pointsLabel: ,\n points: rewardPoints && (\n \n ),\n\n homeButton: rewardPoints && (\n \n {backToShoppingText}\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 private _formatJoinDate(date: Date): string {\n return format(\n this.props.resources.joinDateFormatted,\n new Intl.DateTimeFormat(this.props.context.actionContext.requestContext.locale, {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n }).format(new Date(date))\n );\n }\n\n private _renderRewardPoints(loyaltyCard: LoyaltyCard): IAccountLoyaltyRewardPointProps[] {\n return loyaltyCard.RewardPoints!.map((loyaltyPoints, index) => {\n const availableId = (loyaltyPoints.RewardPointId && `${loyaltyPoints.RewardPointId}-available-${index}`) || 'available-points';\n const expiringId = (loyaltyPoints.RewardPointId && `${loyaltyPoints.RewardPointId}-expiring-${index}`) || 'expiring-points';\n const {\n availablePointsLabel,\n availablePointsAriaLabel,\n expiringPointsFormatLabel,\n expiringPointsFormatAriaLabel\n } = this.props.resources;\n this.payLoad.contentAction.etext = TelemetryConstant.AvailablePoints;\n const availablePointsAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.ExpiringPoints;\n const expiringPointsAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const expireDaysDefaultValue = 30;\n\n return {\n label: ,\n availableModalLabel: loyaltyPoints.ActivePoints !== undefined && (\n \n ),\n availableModalTrigger: loyaltyPoints.ActivePoints !== undefined && (\n \n {loyaltyPoints.ActivePoints.toFixed(this.decimalPrecision)}\n \n ),\n expiringModalLabel: loyaltyPoints.PointsExpiringSoon !== undefined && (\n \n ),\n expiringModalTrigger: loyaltyPoints.PointsExpiringSoon !== undefined && (\n \n {loyaltyPoints.PointsExpiringSoon.toFixed(this.decimalPrecision)}\n \n )\n };\n });\n }\n\n private _renderModal(): IAccountLoyaltyModalProps | null {\n const { totalAvailablePointsLabel, loyaltyActivityDateLabel, loyaltyActivityBalanceLabel } = this.props.resources;\n const { isModalOpen, currentModalData } = this.state;\n\n if (!isModalOpen || !currentModalData) {\n // Return empty modal\n this.props.context.telemetry.error('Account loyalty modal content is empty, module wont render');\n return null;\n }\n\n return {\n isOpen: isModalOpen,\n returnFocusRef: this.state.currentFocus,\n horizontalPosition: 'center',\n verticalPosition: 'center',\n modalClassName: 'ms-account-loyalty__points-modal',\n modalHeaderClassName: 'ms-account-loyalty__points-modal-header',\n modalHeader: currentModalData.Description ?? '',\n modalBodyClassName: 'ms-account-loyalty__points-modal-body',\n ModalBodyTop: { className: 'ms-account-loyalty__points-modal-body-top' },\n ModalBodyHeaders: { className: 'ms-account-loyalty__points-modal-body-header' },\n rewardPointsActivity: this._renderPointsActivity(),\n pointsDescription: ,\n totalPoints: ,\n date: ,\n balanceLabel: ,\n onClose: this._closeModal,\n onOpened: this._onOpenModal\n };\n }\n\n private _getTotalPoints(): number {\n const rewardPoints = this.props.data.loyaltyCard.result && this.props.data.loyaltyCard.result.RewardPoints;\n\n let total = 0;\n rewardPoints &&\n rewardPoints.forEach(loyaltyPoints => {\n total += loyaltyPoints.ActivePoints ?? 0;\n });\n\n return total;\n }\n\n private _getPoints(): string {\n const { currentModalData, isModalExpiring } = this.state;\n const rewardPoints: number = (isModalExpiring ? currentModalData!.PointsExpiringSoon : currentModalData!.ActivePoints) ?? 0;\n\n return `${rewardPoints.toFixed(this.decimalPrecision)}`;\n }\n\n private _renderPointsActivity(): IAccountLoyaltyActivityProps[] | undefined {\n const { pointsActivity } = this.state;\n\n if (!pointsActivity) {\n this.props.context.telemetry.error('Points activity content is empty, module wont render');\n return undefined;\n }\n\n return pointsActivity.map(activity => {\n return {\n Activity: { className: 'ms-account-loyalty__points-modal-activity' },\n activityType: (\n \n ),\n activityDate: (\n \n ),\n activityPoints: (\n \n )\n };\n });\n }\n\n private _parseDate(date: Date | string): Date {\n /* Dates for loyalty are coming as formatted strings yyyy-mm-ddT:00:00.000z\n Javascript was interpreting this as an iso format, thus causing the wrong date to be rendered */\n if (typeof date === 'string') {\n let dateString = date.toString();\n dateString = dateString.replace(/-/g, '/');\n dateString = dateString.substring(0, 10);\n return new Date(dateString);\n }\n return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n }\n\n private _getTimelineType(pointActivity: LoyaltyRewardPointActivity): string {\n if (pointActivity.LoyaltyRewardPointTimelineEntryType) {\n return pointActivity.LoyaltyRewardPointTimelineEntryType;\n }\n\n const { earnedPointsLabel, redeemedPointsLabel, adjustedPointsLabel, refundedPointsLabel } = this.props.resources;\n switch (pointActivity.ExtensibleLoyaltyRewardPointActivityEntryTypeValue) {\n case 1:\n return earnedPointsLabel;\n case 2:\n return refundedPointsLabel;\n case 3:\n return redeemedPointsLabel;\n case 5:\n return adjustedPointsLabel;\n default:\n return '';\n }\n }\n\n private readonly _populateModalData = (\n focusRef: React.RefObject,\n loyaltyCard: LoyaltyCard,\n currentLoyaltyPoints: LoyaltyRewardPoint,\n expiring: boolean\n ) => () => {\n if (!loyaltyCard || !loyaltyCard.CardNumber || !currentLoyaltyPoints.RewardPointId) {\n this.props.context.telemetry.error('Modal data is empty, module wont render');\n return null;\n }\n\n const { actionContext } = this.props.context;\n\n // Open modal\n this.setState({\n isModalOpen: true,\n currentModalData: currentLoyaltyPoints,\n isModalExpiring: expiring,\n modalID: '',\n currentFocus: focusRef\n });\n\n if (expiring) {\n getLoyaltyRewardPointsExpiringSoonAsync(\n { callerContext: actionContext, queryResultSettings: {} },\n loyaltyCard.CardNumber,\n currentLoyaltyPoints.RewardPointId,\n 30\n )\n .then((points: LoyaltyRewardPointActivity[]) => {\n this.setState({ pointsActivity: points });\n })\n .catch((error: Error) => {\n this.props.telemetry.exception(error);\n this.props.telemetry.debug('Failed to get reward point activity');\n });\n } else {\n getLoyaltyRewardPointActivityTimelineAsync(\n { callerContext: actionContext, queryResultSettings: {} },\n loyaltyCard.CardNumber,\n currentLoyaltyPoints.RewardPointId\n )\n .then((points: LoyaltyRewardPointActivity[]) => {\n this.setState({ pointsActivity: points });\n })\n .catch((error: Error) => {\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Failed to get reward point activity');\n });\n }\n // eslint-disable-next-line no-useless-return, consistent-return -- Auto-suppressed.\n return;\n };\n\n private readonly _closeModal = () => {\n this.setState({\n isModalOpen: false,\n currentModalData: undefined,\n pointsActivity: undefined\n });\n };\n\n /**\n * On open modal function.\n */\n private readonly _onOpenModal = () => {\n if (this.state.currentFocus?.current) {\n this.state.currentFocus.current.focus();\n }\n };\n}\n\nexport default AccountLoyalty;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyViewProps } from './account-loyalty';\n\nconst AccountLoyaltyView: React.FC = props => {\n const {\n AccountLoyalty,\n Info,\n Points,\n Breakdown,\n RewardPoints,\n PointsBreakdown,\n Button,\n heading,\n infoLabel,\n cardNumber,\n joinDate,\n pointsLabel,\n points,\n rewardPoints,\n homeButton,\n pointsModal\n } = props;\n const { ModalBodyTop, ModalBodyHeaders } = pointsModal;\n return (\n \n {heading}\n \n {infoLabel}\n {cardNumber}\n {joinDate}\n \n \n {pointsLabel}\n {points}\n\n \n {rewardPoints &&\n rewardPoints.map((activity, index) => {\n return (\n \n {activity.label}\n \n {activity.availableModalLabel}\n {activity.availableModalTrigger}\n \n\n \n {activity.expiringModalLabel}\n {activity.expiringModalTrigger}\n \n \n );\n })}\n \n \n\n {homeButton}\n\n {(!pointsModal.isOpen && ) || (\n \n \n {pointsModal.modalHeader}\n \n \n \n {pointsModal.pointsDescription}\n {pointsModal.totalPoints}\n \n \n {pointsModal.date}\n {pointsModal.balanceLabel}\n \n {pointsModal.rewardPointsActivity &&\n pointsModal.rewardPointsActivity.map((activity, index) => {\n const { Activity, activityType, activityDate, activityPoints } = activity;\n return (\n \n {activityType}\n {activityDate}\n {activityPoints}\n \n );\n })}\n \n \n )}\n \n );\n};\n\nexport default AccountLoyaltyView;\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 IAccountLoyaltyLabel {\n className?: string;\n text?: string | number;\n}\n\nexport const AccountLoyaltyLabel: React.FC = ({ className, text }) =>

{text}

;\n\nexport interface IAccountLoyaltyModalLabel {\n className?: string;\n text?: string | number;\n labelFor?: string;\n}\n\nexport const AccountLoyaltyModalLabel: React.FC = ({ className, text, labelFor }) => (\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 { 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 { IAccountProfileEditConfig, IAccountProfileEditProps } from './account-profile-edit.props.autogenerated';\nimport AccountProfileEditButtonComponent from './components/account-profile-edit-button';\nimport AccountProfileEditErrorComponent from './components/account-profile-edit-error';\nimport AccountProfileEditInputComponent from './components/account-profile-edit-input';\nimport AccountProfileEditLabelComponent from './components/account-profile-edit-label';\nimport AccountProfileEditLoadingIconComponent from './components/account-profile-edit-loading-icon';\nimport AccountProfileEditLoadingMessageComponent from './components/account-profile-edit-loading-message';\n\nexport interface IAccountProfileEditViewState {\n isShowLoading: boolean;\n}\n\nexport interface IAccountProfileEditItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IAccountProfileEditLocalAccount {\n localAccount: INodeProps;\n items: IAccountProfileEditItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IAccountProfileEditLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAccountProfileEditViewProps {\n className: string;\n viewState: IAccountProfileEditViewState;\n loading: IAccountProfileEditLoading;\n accountProfileEdit: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n accountProfileEditLocalAccount: IAccountProfileEditLocalAccount;\n}\n\n/**\n *\n * AccountProfileEdit component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfileEdit extends React.Component> {\n private readonly moduleClassName: string = 'ms-account-profile-edit';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private givenName: string;\n\n @observable private surname: string;\n\n @observable private email: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IAccountProfileEditProps) {\n super(props);\n this.givenName = '';\n this.surname = '';\n this.email = '';\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\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: IAccountProfileEditProps,\n nextState: IAccountProfileEditViewState\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 accountProfileEdit: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && config.heading.text && (\n \n ),\n accountProfileEditLocalAccount: 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 public onTextBoxChange = (event: React.ChangeEvent) => {\n const id = event.target.id;\n const value = event.target.value;\n\n switch (id.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.emailRegex = value;\n break;\n }\n default:\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const { resources } = this.props;\n const invalidEmailAddressError = resources.invalidEmailAddressError || 'Please enter a valid email address.';\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PRE: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string }) => {\n const value = obj.PRE ? this._htmlDecode(obj.PRE) : '';\n switch (obj.ID.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.email = value;\n this.emailRegex = obj.PAT;\n obj.PAT_DESC = invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private _htmlDecode(str: string): string {\n const e = document.createElement('div');\n\n e.innerHTML = str;\n return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue || '';\n }\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n required_field: resources.requiredFieldMissingError,\n verifying_blurb: 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(): IAccountProfileEditLocalAccount {\n const { config, resources } = this.props;\n const localAccount = {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', this.givenName, resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', this.surname, resources.lastNameLabelText, resources.lastNameMaxLength)\n ],\n errorMessage: [\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 if (config.showEmail && this.email !== '') {\n localAccount.items.push(\n this._renderInput('email', 'email', this.email, resources.emailAddressLabelText, undefined, this.emailRegex)\n );\n }\n\n return localAccount;\n }\n\n private _renderInput(\n id: string,\n type: string,\n value: string,\n labelText: string,\n maxLength?: string,\n pattern?: string\n ): IAccountProfileEditItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default AccountProfileEdit;\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 IAccountProfileEditItem,\n IAccountProfileEditLoading,\n IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: 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 items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IAccountProfileEditItem) => {\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 {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n const { accountProfileEdit, viewState, loading, defaultAADConainer, aadConainer, heading, accountProfileEditLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(accountProfileEditLocalAccount)}\n \n \n );\n};\n\nexport default AccountProfileEditView;\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 IAccountProfileEditButton {\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 AccountProfileEditButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n disabled,\n telemetryContent,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n );\n};\n\nexport default AccountProfileEditButton;\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 IAccountProfileEditErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst AccountProfileEditError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default AccountProfileEditError;\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 IAccountProfileEditInputProps {\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 IAccountProfileEditInput {\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 AccountProfileEditInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default AccountProfileEditInput;\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 IAccountProfileEditLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst AccountProfileEditLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default AccountProfileEditLabel;\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 IAccountProfileEditLoadingIcon {\n className: string;\n}\n\nconst AccountProfileEditLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default AccountProfileEditLoadingIcon;\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 IAccountProfileEditLoadingMessage {\n className: string;\n message: string;\n}\n\nconst AccountProfileEditLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default AccountProfileEditLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { SignUpText } from './components/loyalty-sign-up-small-components';\nimport { ILoyaltySignUpData } from './loyalty-sign-up.data';\nimport { ILoyaltySignUpProps } from './loyalty-sign-up.props.autogenerated';\n\nexport interface IAccountLoyaltyJoinState {\n clicked: boolean;\n}\nexport interface ILoyaltySignUpViewProps extends ILoyaltySignUpProps {\n LoyaltySignUp: IModuleProps;\n heading: React.ReactNode;\n memberHeading: React.ReactNode;\n signInLink: React.ReactElement;\n signUpText: React.ReactElement;\n signUpButton: React.ReactElement;\n detailsLink: React.ReactElement;\n termsLink: React.ReactElement;\n loading: boolean;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * LoyaltySignUp component.\n * @extends {React.Component>}\n */\n@observer\nclass LoyaltySignUp extends React.Component, IAccountLoyaltyJoinState> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n this.loyaltySignInAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.SignUp;\n this.loyaltySignUpAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyDetailLink;\n this.loyaltyDetailsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsLink;\n this.loyaltyTermsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltySignUpProps, nextState: IAccountLoyaltyJoinState): 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, memberHeading },\n resources,\n context: {\n actionContext,\n request: {\n user: { signInUrl, isAuthenticated }\n }\n },\n data\n } = this.props;\n\n const termsUrl = Msdyn365.getUrlSync('loyaltyTerms', actionContext);\n let loyaltyJoinUrl = `${Msdyn365.getUrlSync('loyaltyJoin', actionContext)}?joiningLoyalty=true`;\n if (MsDyn365.isBrowser) {\n loyaltyJoinUrl = `${window.location.origin}${loyaltyJoinUrl}`;\n }\n const signInurl = `${signInUrl}?ru=${loyaltyJoinUrl}`;\n const completeClass = classname('ms-loyalty-signup', className);\n const loyaltyCard = data.loyaltyCard;\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n const customerInformation = data.customerInformation?.result;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false);\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n loading: !this.props.context.request.params.isEditor && loyaltyCard?.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && (\n \n ),\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && (\n \n {this.props.resources.joinLoyaltyButtonText}\n \n ),\n detailsLink: hasLoyaltyAccount && (\n \n {this.props.resources.viewLoyaltyPageText}\n \n ),\n termsLink: !hasLoyaltyAccount && (\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 handleMemberHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.memberHeading!.text = event.target.value);\n\n private readonly _issueLoyalty = () => {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(() => {\n if (MsDyn365.isBrowser) {\n window.location.assign(Msdyn365.getUrlSync('loyalty', this.props.context.actionContext) || '');\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n };\n}\n\nexport default LoyaltySignUp;\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 { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {\n LoyaltySignUp,\n heading,\n memberHeading,\n signInLink,\n signUpText,\n signUpButton,\n detailsLink,\n termsLink,\n loading,\n infoMessageBar\n } = props;\n\n if (loading) {\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\n return null;\n }\n\n return (\n \n {infoMessageBar}\n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface ILoyaltyTermsModalProps {\n resources: ILoyaltyTermsModalResources;\n returnRef: React.RefObject | undefined;\n checked: boolean;\n isOpen: boolean;\n terms: React.ReactNode;\n telemetryContent?: ITelemetryContent;\n onToggle(): void;\n onSubmit(): void;\n onCheck(): void;\n}\n\nexport interface ILoyaltyTermsModalResources {\n loyaltyTermsHeading: string;\n loyaltyAgreeToTerms: string;\n joinLoyaltyTermsText: string;\n cancelLoyaltyTermsText: string;\n}\n\nexport interface ILoyaltyTermsModalViewProps {\n modal: INodeProps;\n modalHeader: INodeProps;\n modalFooter: INodeProps;\n modalBody: INodeProps;\n heading: React.ReactElement;\n cancelButton: React.ReactElement;\n submitButton: React.ReactElement;\n terms: React.ReactNode;\n checkbox: React.ReactElement;\n agreeText: React.ReactElement;\n agreeSection: INodeProps;\n}\n\nexport const LoyaltyTermsModal = (props: ILoyaltyTermsModalProps): ILoyaltyTermsModalViewProps => {\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.LoyaltyTermsCancel);\n const loyaltyTermCancelAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsSubmit;\n const loyaltyTermSubmitAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsAgree;\n const loyaltyTermCheckboxAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n return {\n modal: {\n tag: Modal,\n className: 'ms-loyalty-terms__modal',\n toggle: props.onToggle,\n applicationNode: 'renderPage',\n isOpen: props.isOpen,\n returnFocusRef: props.returnRef\n },\n modalHeader: { tag: ModalHeader, className: 'ms-loyalty-terms__modal-header', toggle: props.onToggle },\n modalFooter: { tag: ModalFooter, className: 'ms-loyalty-terms__modal-footer' },\n modalBody: { tag: ModalBody, className: 'ms-loyalty-terms__modal-body' },\n cancelButton: (\n \n ),\n submitButton: (\n \n {props.resources.joinLoyaltyTermsText}\n \n ),\n heading:

{props.resources.loyaltyTermsHeading}

,\n terms: props.terms,\n agreeSection: { className: 'ms-loyalty-terms__agree-section' },\n checkbox: (\n \n ),\n agreeText:

{props.resources.loyaltyAgreeToTerms}

\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 { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps, nextState: ILoyaltyTermsState): 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, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: hideToggle !== true && (\n \n ),\n modal:\n isAuthenticated &&\n loyaltyCard.result &&\n loyaltyCard.result.CardNumber === undefined &&\n LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(card => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then(fullCard => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n fullCard\n );\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n card\n );\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\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 { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\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 IPasswordResetButton {\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 PasswordResetButton: React.FC = ({ id, className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetButton;\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 IPasswordResetErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetError;\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 IPasswordResetInputProps {\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 IPasswordResetInput {\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 PasswordResetInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default PasswordResetInput;\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 IPasswordResetLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetLabel;\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 IPasswordResetLoadingIcon {\n className: string;\n}\n\nconst PasswordResetLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default PasswordResetLoadingIcon;\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 IPasswordResetLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetLoadingMessage;\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 { PasswordRegex } 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 PasswordResetButtonComponent from './components/password-reset-button';\nimport PasswordResetErrorComponent from './components/password-reset-error';\nimport PasswordResetInputComponent from './components/password-reset-input';\nimport PasswordResetLabelComponent from './components/password-reset-label';\nimport PasswordResetLoadingIconComponent from './components/password-reset-loading-icon';\nimport PasswordResetLoadingMessageComponent from './components/password-reset-loading-message';\nimport { IPasswordResetConfig, IPasswordResetProps } from './password-reset.props.autogenerated';\n\nexport interface IPasswordResetViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetLocalAccount {\n localAccount: INodeProps;\n items: IPasswordResetItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetViewProps {\n className: string;\n viewState: IPasswordResetViewState;\n loading: IPasswordResetLoading;\n passwordReset: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetLocalAccount: IPasswordResetLocalAccount;\n}\n\n/**\n *\n * PasswordReset component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordReset extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetProps) {\n super(props);\n\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isInitialized = false;\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(nextProps: IPasswordResetProps, nextState: IPasswordResetViewState): 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 passwordReset: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetLocalAccount: 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 readonly _prePopulateData = () => {\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 switch (obj.ID.toLowerCase()) {\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n });\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: 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(): IPasswordResetLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('newPassword', 'password', resources.newPasswordLabelText, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, this.reenterPasswordRegex)\n ],\n errorMessage: [\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(id: string, type: string, labelText: string, pattern?: string): IPasswordResetItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default PasswordReset;\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 { IPasswordResetItem, IPasswordResetLoading, IPasswordResetLocalAccount, IPasswordResetViewProps } from './password-reset';\n\nconst PasswordResetItem: 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 items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IPasswordResetItem) => {\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 {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst PasswordResetLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetView: React.FC = props => {\n const { passwordReset, viewState, loading, defaultAADConainer, aadConainer, heading, passwordResetLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetView;\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 ISignInButton {\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 SignInButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default SignInButton;\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 ISignInDescription {\n className: string;\n description: string;\n}\n\nconst SignInDescription: React.FC = ({ className, description }) =>

{description}

;\n\nexport default SignInDescription;\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 ISignInErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignInError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignInError;\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 ISignInInputProps {\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 ariaLabel?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignInInput {\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 SignInInput: React.FC = ({ id, type, value, pattern, className, maxLength, ariaLabel, onChange }) => (\n \n);\n\nexport default SignInInput;\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 ISignInLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignInLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignInLabel;\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 } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInLink {\n id?: string;\n className: string;\n href: string;\n ariaLabel: string;\n text: string;\n telemetryContent?: ITelemetryContent;\n}\n\nconst SignInLink: React.FC = ({ id, className, href, telemetryContent, ariaLabel, text }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n \n );\n};\n\nexport default SignInLink;\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 ISignInLoadingIcon {\n className: string;\n}\n\nconst SignInLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignInLoadingIcon;\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 ISignInLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignInLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignInLoadingMessage;\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 ISignInText {\n className: string;\n text: string;\n}\n\nconst SignInText: React.FC = ({ className, text }) => {text};\n\nexport default SignInText;\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 SignInButtonComponent from './components/sign-in-button';\nimport SignInDescriptionComponent from './components/sign-in-description';\nimport SignInErrorComponent from './components/sign-in-error';\nimport SignInInputComponent from './components/sign-in-input';\nimport SignInLabelComponent from './components/sign-in-label';\nimport SignInLinkComponent from './components/sign-in-link';\nimport SignInLoadingIconComponent from './components/sign-in-loading-icon';\nimport SignInLoadingMessageComponent from './components/sign-in-loading-message';\nimport SignInTextComponent from './components/sign-in-text';\nimport { ISignInConfig, ISignInProps, ISignInResources } from './sign-in.props.autogenerated';\n\nexport interface ISignInViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignInItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n error: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignInSocialItem {\n key: string;\n button: INodeProps;\n image: React.ReactNode;\n text: React.ReactNode;\n}\n\nexport interface ISignInB2BItem {\n key: string;\n button: INodeProps;\n text: React.ReactNode;\n}\n\nexport interface ISignInSocialAccount {\n socialAccounts: INodeProps;\n items: ISignInSocialItem[];\n}\n\nexport interface ISignInB2BAccount {\n socialAccounts: INodeProps;\n items: ISignInB2BItem[];\n}\nexport interface ISignInLocalAccount {\n localAccount: INodeProps;\n items: ISignInItem[];\n forgetPassword: React.ReactNode;\n disclaimer: React.ReactNode;\n error: React.ReactNode;\n signInButton: React.ReactNode;\n}\n\nexport interface ISignInLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignInViewProps {\n className: string;\n viewState: ISignInViewState;\n signIn: IModuleProps;\n loading: ISignInLoading;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n signInSection: INodeProps;\n signInSectionHeading: React.ReactNode;\n signInLocalAccount: ISignInLocalAccount;\n signInSocialAccount: ISignInSocialAccount;\n signInB2BAccount: ISignInB2BAccount;\n signUpSection: INodeProps;\n signUpSectionHeading: React.ReactNode;\n signUpDescription: React.ReactNode;\n signUpLink: React.ReactNode;\n}\n\n/**\n * SignIn component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignIn extends React.Component> {\n private readonly moduleClassName: string = 'ms-sign-in';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private emailId: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignInProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.emailId = 'logonIdentifier';\n }\n\n public componentDidMount(): void {\n this._prePopulateData();\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignInProps, nextState: ISignInViewState): 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: ISignInConfig = this.props.config || {};\n const resources: ISignInResources = this.props.resources || {};\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signIn: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n signInSection: {\n className: `${this.moduleClassName}__sign-in-section`\n },\n signInSectionHeading: (\n \n ),\n signInLocalAccount: {\n localAccount: {\n className: `${this.moduleClassName}__account-items localAccount`\n },\n items: [\n this._renderInput(\n this.emailId,\n 'email',\n resources.emailAddressLabelText,\n resources.emailAddressAriaLabel,\n this.emailRegex\n ),\n this._renderInput('password', 'password', resources.passwordLabelText)\n ],\n forgetPassword: (\n \n ),\n disclaimer: config.signInDisclaimer && (\n \n ),\n error: ,\n signInButton: (\n \n )\n },\n signInSocialAccount: {\n socialAccounts: {\n className: `${this.moduleClassName}__social-accounts`\n },\n items: [\n this._renderSocialAccount(\n 'FacebookExchange',\n resources.facebookButtonText,\n resources.facebookButtonAriaLabel,\n config.facebookIcon\n ),\n this._renderSocialAccount(\n 'MicrosoftAccountExchange',\n resources.microsoftButtonText,\n resources.microsoftButtonAriaLabel,\n config.microsoftIcon\n )\n ]\n },\n signInB2BAccount: {\n socialAccounts: {\n className: `${this.moduleClassName}__b2b-social-accounts`\n },\n items: [\n this._renderB2BSocialAccount(\n 'StoreManagerB2BSignin',\n resources.b2bButtonText,\n resources.b2bButtonAriaLabel,\n config.displayB2bAccountManagerSignin\n )\n ]\n },\n signUpSection: {\n className: `${this.moduleClassName}__sign-up-section`\n },\n signUpSectionHeading: (\n \n ),\n signUpDescription: (\n \n ),\n signUpLink: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.signInDisclaimer = event.target.value);\n\n public handleSignInHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.signInHeading.text = event.target.value);\n\n public handleSignUpHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.signUpHeading.text = event.target.value);\n\n private readonly _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['CONTENT'] && window['CONTENT']['email_pattern']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n this.emailRegex = window['CONTENT']['email_pattern'];\n }\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // @ts-expect-error\n this.emailId = (window.SA_FIELDS.AttributeFields || [])[0].ID || this.emailId;\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignInResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n requiredField_email: resources.requriedEmailError,\n requiredField_password: resources.requriedPasswordError,\n invalid_email: resources.invalidEmailError,\n invalid_password: resources.invalidPasswordError,\n unknown_error: resources.unknownError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private _renderInput(id: string, type: string, labelText: string, ariaLabel?: string, pattern?: string): ISignInItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n error: (\n \n ),\n input: (\n \n )\n };\n }\n\n private _renderSocialAccount(id: string, text: string, ariaLabel: string, iconImage?: Msdyn365.IImageData): ISignInSocialItem {\n return {\n key: id,\n button: {\n id,\n tag: 'button',\n className: classnames(\n `${this.moduleClassName}__social-account`,\n `${this.moduleClassName}__social-account-${id}`,\n 'accountButton',\n 'msc-btn'\n ),\n 'aria-label': ariaLabel\n },\n image: this._createImageMarkup(iconImage),\n text: \n };\n }\n\n private _renderB2BSocialAccount(\n id: string,\n text: string,\n ariaLabel: string,\n _displayB2bAccountManagerSignin: boolean | undefined\n ): ISignInB2BItem | null {\n if (_displayB2bAccountManagerSignin) {\n return {\n key: id,\n button: {\n id,\n tag: 'button',\n className: classnames(\n `${this.moduleClassName}__social-account`,\n `${this.moduleClassName}__social-account-${id}`,\n 'accountButton',\n 'msc-btn'\n ),\n 'aria-label': ariaLabel\n },\n text: \n };\n }\n return null;\n }\n\n private _createImageMarkup(iconImage?: Msdyn365.IImageData): React.ReactNode | null {\n if (iconImage) {\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings || {},\n imageSettings: iconImage && iconImage.imageSettings\n };\n const pictureClassName = `${this.moduleClassName}__social-account-picture`;\n return (\n
\n \n
\n );\n }\n return null;\n }\n}\n\nexport default SignIn;\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 ISignInItem,\n ISignInLoading,\n ISignInLocalAccount,\n ISignInSocialAccount,\n ISignInSocialItem,\n ISignInB2BAccount,\n ISignInB2BItem,\n ISignInViewProps\n} from './sign-in';\n\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\n return (\n \n {items &&\n items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInB2BItem) => {\n return (\n item && (\n \n {item.text}\n \n )\n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignInView: React.FC = props => {\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signInB2BAccount,\n signUpDescription,\n signUpLink\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n {B2BAccount(signInB2BAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpLink}\n \n \n \n );\n};\n\nexport default SignInView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignUpButton: React.FC = ({ id, className, text, ariaLabel, disabled, onClick }) => (\n \n);\n\nexport default SignUpButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignUpError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpInputProps {\n id?: string;\n hasFocus?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignUpInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignUpInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default SignUpInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingIcon {\n className: string;\n}\n\nconst SignUpLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignUpLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignUpLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignUpLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default SignUpSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex, PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignUpButtonComponent from './components/sign-up-button';\nimport SignUpErrorComponent from './components/sign-up-error';\nimport SignUpInputComponent from './components/sign-up-input';\nimport SignUpLabelComponent from './components/sign-up-label';\nimport SignUpLoadingIconComponent from './components/sign-up-loading-icon';\nimport SignUpLoadingMessageComponent from './components/sign-up-loading-message';\nimport SignUpSuccessComponent from './components/sign-up-success';\nimport { ISignUpConfig, ISignUpProps, ISignUpResources } from './sign-up.props.autogenerated';\n\nexport interface ISignUpViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignUpItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignUpEmailVerification {\n isRequired: boolean;\n email: ISignUpItem;\n buttonWrapper: INodeProps;\n buttons: React.ReactNode[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Given Name Verification Interface.\n */\nexport interface ISignUpGivenNameVerification {\n isRequired: boolean;\n givenName: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Surname Verification Interface.\n */\nexport interface ISignUpSurnameVerification {\n isRequired: boolean;\n surname: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\nexport interface ISignUpLocalAccount {\n localAccount: INodeProps;\n items: ISignUpItem[];\n emailVerification: ISignUpEmailVerification;\n givenNameVerification: ISignUpGivenNameVerification;\n surnameVerification: ISignUpSurnameVerification;\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface ISignUpLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignUpViewProps {\n className: string;\n viewState: ISignUpViewState;\n loading: ISignUpLoading;\n signUp: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n signUpLocalAccount: ISignUpLocalAccount;\n}\n\n/**\n *\n * SignUp component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignUp extends React.Component> {\n @observable private isGivenNameVerificationRequried: boolean;\n\n @observable private isSurnameVerificationRequried: boolean;\n\n private readonly moduleClassName: string = 'ms-sign-up';\n\n @observable private emailRegex: string;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isEmailVerificationRequried: boolean;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignUpProps) {\n super(props);\n\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isEmailVerificationRequried = false;\n this.isGivenNameVerificationRequried = false;\n this.isSurnameVerificationRequried = false;\n this.isInitialized = false;\n this.templateVersion = '';\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignUpProps, nextState: ISignUpViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n signUpLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n * @returns - Heading Text.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n * @returns - Paragraph Text.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.disclaimer = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\n switch (obj.ID.toLowerCase()) {\n case 'emailverificationcontrol': {\n this.isEmailVerificationRequried = true;\n this.templateVersion = 'v2';\n break;\n }\n case 'email': {\n this.emailRegex = obj.PAT;\n this.isEmailVerificationRequried = obj.VERIFY;\n this.templateVersion = 'v1';\n break;\n }\n case 'givennameverificationcontrol': {\n this.isGivenNameVerificationRequried = true;\n break;\n }\n case 'givenname': {\n this.isGivenNameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'surnameverificationcontrol': {\n this.isEmailVerificationRequried = true;\n break;\n }\n case 'surname': {\n this.isSurnameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n\n switch (obj.UX_INPUT_TYPE.toLowerCase()) {\n case 'password': {\n obj.PAT_DESC = resources.invalidPasswordError;\n break;\n }\n case 'emailbox': {\n obj.PAT_DESC = resources.invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n required_field: resources.requiredFieldMissingError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n\n private _renderLocalAccount(): ISignUpLocalAccount {\n const { config, resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', resources.lastNameLabelText, resources.lastNameMaxLength),\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, undefined, this.reenterPasswordRegex)\n ],\n emailVerification: {\n isRequired: this.isEmailVerificationRequried,\n email: this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n buttonWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n buttons: [\n ,\n ,\n ,\n \n ],\n successMessage: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n \n ]\n },\n givenNameVerification: {\n isRequired: this.isGivenNameVerificationRequried,\n givenName: this._renderInput(\n this.getValue('givenName_ver_input', 'givenNameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'givenNameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n surnameVerification: {\n isRequired: this.isSurnameVerificationRequried,\n surname: this._renderInput(\n this.getValue('surname_ver_input', 'surnameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'surnameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n buttons: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): ISignUpItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default SignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignUpEmailVerification,\n ISignUpGivenNameVerification,\n ISignUpItem,\n ISignUpLoading,\n ISignUpLocalAccount,\n ISignUpSurnameVerification,\n ISignUpViewProps\n} from './sign-up';\n\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\n return (\n <>\n {successMessage &&\n successMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {errorMessage &&\n errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode) => {\n return <>{button};\n })}\n \n \n );\n};\n\n/**\n * Handles validation of sign-up givenName.\n * @param event - Content editable event.\n * @param event.givenName - Event Given Name.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for Given Name.\n */\nconst SignUpGivenNameVerificationComponent: React.FC = ({ givenName, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\n/**\n * Handles validation of signUp surname.\n * @param event - Content editable event.\n * @param event.surname - Event surname.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for surname.\n */\nconst SignUpSurnameVerificationComponent: React.FC = ({ surname, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n emailVerification,\n givenNameVerification,\n surnameVerification,\n buttons,\n errorMessage,\n disclaimer\n}) => {\n return (\n \n {items &&\n items.map((item: ISignUpItem) => {\n if (item.key === 'email' && emailVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'surname' && surnameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n );\n};\n\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignUpView: React.FC = props => {\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading, signUpLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(signUpLocalAccount)}\n \n \n );\n};\n\nexport default SignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext, getUrlSync } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading, showBecomeSellerLink } = config;\n const {\n businessUserActionButtonText,\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n promoteToSellerActionLabel,\n requestAccountStatementActionLabel,\n requestOrganizationStatementActionLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

\n };\n\n return this.props.renderView(errorProps) as React.ReactElement;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n modalState: isModalOpen,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n organizationListTable: ,\n toggleModal: this._toggleModal,\n formType,\n form:\n isFormActive && isModalOpen && (formType === FormType.Add || formType === FormType.Edit)\n ? this._renderUserForm()\n : this._renderUserDetails(),\n formItems,\n requestAccountStatementButton: showBecomeSellerLink ? (\n \n ) : (\n \n ),\n requestStatementModal: (\n \n )\n } as IBusinessOrganizationListViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n // _createTableProps: creates the props for the organization list table\n private _createTableProps(): IDataTableProps {\n const { config, resources, context } = this.props;\n const { tableSort, showPagination, paginationItemPerPage } = config;\n const {\n businessUserPaginationNextButtonText,\n businessUserPaginationPreviousButtonText,\n businessUserEditButtonText,\n businessUserViewUserButtonText,\n businessUserDeleteButtonText,\n businessUserActionButtonText,\n businessUserPaginationAriaLabel,\n columnSortAriaLabel\n } = resources;\n\n const tableData = this._createTableItems();\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row.map(item => {\n if (this.isMobile && this.mobileExcludedColumns.includes(item.id)) {\n return undefined;\n }\n return {\n name: item.id,\n sortable: (tableSort && tableSort) || false,\n ariaLabel: columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources,\n headings: tableHeading,\n rows: tableData,\n className: `${this.moduleClassName}__table`,\n editLinkText: this.isMobile ? businessUserEditButtonText : '', // '' === showing just icon\n deleteLinkText: this.isMobile ? businessUserDeleteButtonText : '', // '' === showing just icon\n viewLinkText: businessUserViewUserButtonText,\n editLinkTooltip: businessUserEditButtonText,\n deleteLinkTooltip: businessUserDeleteButtonText,\n viewLinkTooltip: businessUserViewUserButtonText,\n enableToModify: true,\n actionLinkText: businessUserActionButtonText,\n showCheckBoxes: true,\n isSortable: tableSort,\n resourcePrefix: 'businessUser',\n showPagination,\n minifyActions: this.isMobile,\n excludedColumns: this.isMobile ? this.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context &&\n context.request &&\n context.request.query &&\n context.request.query.skip &&\n !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: paginationItemPerPage || 10,\n prevText: businessUserPaginationPreviousButtonText,\n nextText: businessUserPaginationNextButtonText,\n paginationText: businessUserPaginationAriaLabel,\n url: (context && this._getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n tableAriaLabel: resources.tableAriaLabel,\n tableTabIndex: 0,\n businessUserSelectCheckBoxAriaLabelText: resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: resources.sortByAscending,\n sortByDescending: resources.sortByDescending,\n actions: {\n onDelete: this._handleDeleteIcon,\n onEdit: this._handleEditIcon,\n onView: (this.isMobile && this._handleViewDetails) || undefined\n },\n formatPrice: this._formatPrice,\n checkBoxCallback: this._onSelectRow\n };\n }\n\n // _createTableItems: converts users recieved from the data-action(IBusinessParterUser[]) to tableRows(ITableItemProps[])\n private _createTableItems(): ITableRowProps[] {\n const {\n resources,\n data: { users }\n } = this.props;\n const { businessUserActiveStatusText, businessUserPendingStatusText, businessUserRemovedStatusText } = resources;\n const usersList = users && users.result;\n\n if (!ArrayExtensions.hasElements(usersList)) {\n return [];\n }\n\n return usersList.map((user, index) => {\n let statusString = '';\n this.userFormEditReference[index] = React.createRef();\n this.userFormDeleteReference[index] = React.createRef();\n\n switch (user.StatusValue) {\n case 0:\n statusString = businessUserPendingStatusText;\n break;\n case 1:\n statusString = businessUserActiveStatusText;\n break;\n case 2:\n default:\n statusString = businessUserRemovedStatusText;\n }\n\n return {\n row: [\n {\n id: InputID.FullName,\n type: TableDataType.Text,\n value: `${user.FirstName} ${user.LastName}`,\n user\n } as IUserTableItemProps,\n {\n id: InputID.Email,\n type: TableDataType.Text,\n value: user.Email || '',\n className: `${this.moduleClassName}__padRight`\n } as IUserTableItemProps,\n {\n id: InputID.Status,\n type: TableDataType.Text,\n value: statusString\n } as IUserTableItemProps,\n {\n id: InputID.SpendingLimit,\n type: TableDataType.Price,\n value: user.SpendingLimit || 0\n } as IUserTableItemProps\n ],\n isSelected: false,\n buttonReferences: {\n edit: this.userFormEditReference[index],\n delete: this.userFormDeleteReference[index]\n }\n };\n });\n }\n\n // _toggleModal: closes the modal and resets the form states\n private _toggleModal(): void {\n this.state.referenceBack?.focus();\n this.setState({\n isModalOpen: false,\n isFormActive: false,\n referenceBack: undefined,\n formType: FormType.None\n });\n }\n\n // _handleAddUserButtonClicked: resets input fields, opens the modal, and sets the form states\n private readonly _handleAddUserButtonClicked = () => {\n // Reset form\n const newForm = this.state.formItems;\n newForm.forEach(input => {\n if (input.id === InputID.Email) {\n // Make sure email input is re enabled (it gets disabled when admin is editing user)\n input.isDisabled = false;\n }\n\n input.value = '';\n });\n\n const newUser = { B2BUserId: Random.Guid.generateGuid() } as BusinessPartnerUser;\n\n this.setState({\n formItems: newForm,\n isFormActive: true,\n formType: FormType.Add,\n referenceBack: this.addUserButtonReference.current,\n isModalOpen: true,\n hasFormError: false,\n hasActionError: false,\n selectedUserData: newUser\n });\n };\n\n // _handleAddEditFormSaveButton: triggered on the save button for both add/edit forms. Calls the appropriate data-action and reloads the page when successful\n private readonly _handleAddEditFormSaveButton = async () => {\n const { context } = this.props;\n const { formType, formItems } = this.state;\n\n const updatedUser = this._createBusinessPartner(formItems);\n\n if (formType === FormType.Edit) {\n editOrganizationUser(new EditOrganizationUserInput(updatedUser), context.actionContext)\n .then(() => {\n window.location.reload(false);\n })\n .catch(error => {\n context.telemetry.trace(error);\n this.setState({\n hasActionError: true\n });\n });\n } else {\n addOrganizationUser(new AddOrganizationUserInput(updatedUser), context.actionContext)\n .then(() => {\n window.location.reload(false);\n })\n .catch(error => {\n context.telemetry.trace(error);\n this.setState({\n hasActionError: true,\n businessUserActionRetailErrorMsg: error.message\n });\n });\n }\n };\n\n // _createBusinessPartner: attempts to convert input values(IUserFormItem) to a new user(BusinessPartnerUser)\n private readonly _createBusinessPartner = (inputs: IUserFormItem[]): BusinessPartnerUser => {\n const newUser: BusinessPartnerUser = { ...this.state.selectedUserData! };\n\n inputs.forEach(input => {\n // Deals with input values need need to be converted into numbers\n if (input.id === InputID.SpendingLimit) {\n newUser[input.id] = Number.parseFloat(input.value) || 0;\n } else {\n newUser[input.id] = input.value;\n }\n });\n\n return newUser;\n };\n\n // _handleEditIcon: converts the table row data(ITableItemProps[]) to input fields(IUserFormItem) and opens the edit form\n private readonly _handleEditIcon = (userData: ITableItemProps[], referenceBack?: HTMLButtonElement | null) => {\n // Split full name into first and last\n const possibleName = userData.find(cell => {\n return cell.id === 'Name';\n });\n const fullName = (possibleName && (possibleName.value as string)) || '';\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n const firstName = fullName.substring(0, lastSpaceIndex);\n\n const lastName = fullName.substring(lastSpaceIndex + 1);\n\n // Create clone of formItems, map users information, update state\n const { formItems } = this.state;\n const newForm = formItems;\n\n newForm.forEach(input => {\n switch (input.id) {\n case InputID.FirstName:\n input.value = firstName;\n break;\n case InputID.LastName:\n input.value = lastName;\n break;\n case InputID.Email: // Email can never be null/undefined as it is a required field\n input.isDisabled = true;\n const possibleCell = userData.find(cell => {\n return input.id === cell.id;\n });\n input.value = (possibleCell && (possibleCell.value as string)) || '';\n break;\n default:\n const dataCell = userData.find(cell => {\n return input.id === cell.id;\n });\n input.value = (dataCell && (dataCell.value as string)) || '';\n }\n });\n\n this.setState({\n formItems: newForm,\n isFormActive: true,\n referenceBack,\n formType: FormType.Edit,\n isModalOpen: true,\n hasFormError: false,\n hasActionError: false,\n selectedUserData: (userData[0] as IUserTableItemProps).user\n });\n };\n\n // _handleDeleteIcon: opens removeUser confirmation window\n private readonly _handleDeleteIcon = (userData: ITableItemProps[], referenceBack?: HTMLButtonElement | null) => {\n const newUser: BusinessPartnerUser = { ...(userData[0] as IUserTableItemProps).user };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const displayedUserData: any = {};\n\n userData.forEach((cell: ITableItemProps) => {\n if (cell.id === 'Name') {\n // Split full name into first and last\n const fullName = cell.value as string;\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n displayedUserData.FirstName = fullName.substring(0, lastSpaceIndex);\n\n displayedUserData.LastName = fullName.substring(lastSpaceIndex + 1);\n } else if (cell.type === TableDataType.Price) {\n displayedUserData[cell.id] = this.props.context.cultureFormatter.formatCurrency(cell.value as string);\n } else {\n displayedUserData[cell.id] = cell.value;\n }\n });\n\n this.setState({\n displayedUserData,\n referenceBack,\n selectedUserData: newUser,\n formType: FormType.Remove,\n isModalOpen: true,\n isFormActive: false\n });\n };\n\n // _handleViewDetails: opens user details window\n private readonly _handleViewDetails = (userData: ITableItemProps[]) => {\n const newUser: BusinessPartnerUser = { ...(userData[0] as IUserTableItemProps).user };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const displayedUserData: any = {};\n\n userData.forEach((cell: ITableItemProps) => {\n if (cell.id === 'Name') {\n // Split full name into first and last\n const fullName = cell.value as string;\n const lastSpaceIndex = fullName.lastIndexOf(' ');\n displayedUserData.FirstName = fullName.substring(0, lastSpaceIndex);\n\n displayedUserData.LastName = fullName.substring(lastSpaceIndex + 1);\n } else if (cell.type === TableDataType.Price) {\n displayedUserData[cell.id] = this.props.context.cultureFormatter.formatCurrency(cell.value as string);\n } else {\n displayedUserData[cell.id] = cell.value;\n }\n });\n\n this.setState({\n displayedUserData,\n selectedUserData: newUser,\n formType: FormType.View,\n isModalOpen: true,\n isFormActive: false\n });\n };\n\n // _handleRemoveUserButton: triggered on confirmation of removing a user.\n private readonly _handleRemoveUserButton = () => {\n // TODO\n const { context } = this.props;\n const { selectedUserData: deleteUserData } = this.state;\n\n if (deleteUserData) {\n deleteOrganizationUser(new DeleteOrganizationUserInput(deleteUserData), context.actionContext)\n .then(() => {\n window.location.reload(false);\n })\n .catch(error => {\n context.telemetry.trace(error);\n });\n }\n this.setState({\n formType: FormType.None,\n isModalOpen: false\n });\n };\n\n private readonly callbackRemoveButton = () => {\n this._handleRemoveUserButton();\n };\n\n // _renderUserDetails: creates the remove/view form props\n private _renderUserDetails(): IFormViewProps {\n const { resources } = this.props;\n const { formType, displayedUserData } = this.state;\n const {\n businessUserRemoveModalHeaderText,\n businessUserRemoveModalDescription,\n businessUserViewModalHeaderText,\n businessUserCancelButtonText,\n businessUserCancelRemoveUserButtonText,\n businessUserRemoveUserButtonText,\n businessUserErrorUpdatingUsersMessage\n } = resources;\n\n const formClassName = `${this.moduleClassName}__form`;\n const typeClassName = formType === FormType.Remove ? 'type-remove' : 'type-view';\n const handleRemoveButton = this.callbackRemoveButton;\n\n return {\n modalClassName: classnames(`${this.moduleClassName}__modal`, typeClassName),\n FormWrapper: {\n className: formClassName\n },\n modalHeading: formType === FormType.Remove ? businessUserRemoveModalHeaderText : businessUserViewModalHeaderText,\n modalDescription: formType === FormType.Remove && (\n

{businessUserRemoveModalDescription}

\n ),\n selectedUser: displayedUserData,\n buttons: [\n formType === FormType.Remove && (\n \n {businessUserRemoveUserButtonText}\n \n ),\n \n ],\n errorMessage: [\n \n ],\n resources\n };\n }\n\n // _renderUserForm: creates the add/edit form props\n private _renderUserForm(): IFormViewProps {\n const { resources } = this.props;\n const { formType, formItems, hasFormError, hasActionError, isReady, businessUserActionRetailErrorMsg } = this.state;\n const {\n businessUserEditUserFormHeadingText,\n businessUserAddUserFormHeadingText,\n businessUserSaveButtonArialabel,\n businessUserSaveButtonText,\n businessUserCancelButtonArialabel,\n businessUserCancelButtonText,\n businessUserFieldIncorrectErrorText,\n businessUserActionErrorText,\n businessUserAllFieldsRequiredMessage,\n asteriskAfterLabel\n } = resources;\n\n const formClassName = `${this.moduleClassName}__form`;\n const typeClassName = formType === FormType.Add ? 'type-add' : 'type-edit';\n\n return {\n modalClassName: classnames(`${this.moduleClassName}__modal`, typeClassName),\n FormWrapper: {\n className: formClassName\n },\n modalHeading: formType === FormType.Add ? businessUserAddUserFormHeadingText : businessUserEditUserFormHeadingText,\n modalDescription: formType === FormType.Add && (\n

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\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 (MsDyn365.isBrowser && 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\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _promoteToSeller = () => {\n const promoteToSellerUrl = getUrlSync('businessPartnerPromotion', this.props.context.actionContext);\n if (promoteToSellerUrl && MsDyn365.isBrowser) {\n window.location.href = promoteToSellerUrl;\n }\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from './business-organization-list';\nimport { IBusinessFormItem } from './components/small-components';\n\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n const { FirstName, LastName } = selectedUser;\n const userFullName = `${FirstName} ${LastName}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = resources[`table${data}HeadingText`] || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst _getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\nconst _renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\nconst BusinessOrganizationList: React.FC = props => {\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const ButtonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && _getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InputType } from '../business-organization-list';\n\nexport interface IBusinessForm {\n FormWrapper: INodeProps;\n message?: React.ReactNode;\n items: IBusinessFormItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n}\n\nexport interface IBusinessFormItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IBusinessFormInput {\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IUserFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n isDisabled?: boolean;\n customClass?: string;\n fieldReference?: React.RefObject;\n}\n\nexport interface IBusinessFormInputProps {\n id?: string;\n type: string;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n isDisabled?: boolean;\n placeholder?: string;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport const FormInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n isDisabled,\n onChange,\n fieldReference,\n placeholder\n}) => (\n \n);\n\nexport interface IBusinessFormLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n asteriskText: string;\n}\n\nexport const FormLabel: React.FC = ({ id, forId, className, text, asteriskText }) => (\n \n);\n\nexport interface IBusinessFormButton {\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\nexport const FormButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport interface IBusinessFormErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const FormFieldError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBusinessFormItem,\n IBusinessOrganizationListViewProps,\n IFormViewProps,\n InputID\n} from '@msdyn365-commerce-modules/business-organization-list';\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBusinessOrganizationListProps,\n IBusinessOrganizationListResources\n} from '../definition-extensions/business-organization-list.ext.props.autogenerated';\n\n/**\n * Business Form Item component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\n const { wrapper, label, errorMessage, input } = props;\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\n/**\n * To render modal.\n * @param className - The modal classname.\n * @param isModalOpen - The boolean for modal open status.\n * @param headingSection - The heading section of modal.\n * @param bodySection - The body section of modal.\n * @param footerSection - The footer section of modal.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\n/**\n * Business User Form component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * Selected user interface.\n */\ninterface ISelectedUser {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n FirstName?: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n LastName?: string;\n}\n\n/**\n * Business User Details component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n const selectedUser = props.selectedUser as ISelectedUser | string;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { FirstName, LastName } = selectedUser as ISelectedUser;\n const userFullName = `${FirstName as string} ${LastName as string}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = (resources[`table${data}HeadingText`] as string) || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * To get form.\n * @param type - The type of form.\n * @param formProps - The form props.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\n/**\n * Business Organization List component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessOrganizationListComponent: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const buttonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n \n \n {props.resources.headingForEmptyUserOrganizationList}\n \n \n {props.resources.textForEmptyUserOrganizationList}\n \n {buttonList}\n \n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {buttonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationListComponent;\n"],"names":["AccountCustomerBalanceTile","React","constructor","props","super","this","telemetryContent","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","state","_objectSpread","_initState","reaction","hasError","error","setState","content","ErrorComponent","value","resources","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","shouldComponentUpdate","nextProps","nextState","data","render","isCustomerAccountPaymentEnabled","className","heading","links","config","viewProps","moduleProps","classnames","Heading","headingTag","tag","text","isDetailsLinkDisplayed","LinksComponent","Object","assign","onTextChange","index","event","requestContext","renderView","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","formatCurrency","customerCredit","customerCreditFormatted","toFixed","CreditComponent","verbagePrefix","verbagePostfix","__decorate","computed","Module","_ref","_ref2","_mapEditableLinks","linkdata","length","editableLinks","payLoad","getPayloadObject","forEach","link","contentAction","etext","linkText","attributes","getTelemetryAttributes","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","push","Msdyn365","editProps","AccountCustomerBalance","requestStatementButtonRef","_showRequestStatementModal","isStatementRequestModalOpen","_toggleModal","_this$requestStatemen","current","focus","_toggleDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_adminShowRequestStatementModal","isFullOrg","statementRequestFullOrg","_requestStatement","_this$props$data$b2bU","_this$requestStatemen2","customer","customerInformation","result","B2BUserId","b2bUserInformation","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","Email","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","actionContext","BusinessPartnerUsersDataActions","statementRequestMaxDateString","toISOString","split","_get","includes","undefined","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","customerSincePrefix","availableCreditLabel","balanceOwedLabel","creditExcessLabel","requestStatementButtonLabel","modalHeaderLabel","sendToEmailLabel","fromDateLabel","toDateLabel","submitRequestLabel","cancelLabel","myAccountStatementLabel","fullOrganizationLabel","modalAriaLabel","accountNumber","AccountNumber","createdOn","_formatJoinDate","CreatedDateTime","name","FirstName","LastName","customerAccountBalance","excess","creditExcess","_formatCurrency","availableCredit","balanceOwed","backLink","emailAddress","actionBar","IsB2bAdmin","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","ActionBar","accountLabels","AccountLabels","accountValues","AccountValues","AvailableCreditComponent","BalanceOwedComponent","CreditExcessComponent","homeButton","BackButton","label","actions","requestStatementModal","RequestStatementModal","email","isModalOpen","toggle","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","onSubmitRequest","selectedUser","selectedUserLabel","maxDateString","currency","date","Intl","DateTimeFormat","locale","month","day","year","format","popoverReference","Button","innerRef","onClick","onPromoteToSeller","promoteToSellerLabel","onSelectCustomerAccount","onSelectFullOrg","onSelectPromoteToSeller","requestStatementDropdownString","Random","Guid","generateGuid","id","Popover","isOpen","placement","target","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","onBlurToDate","Modal","horizontalPosition","verticalPosition","autoFocus","fade","ModalHeader","ModalBody","htmlFor","type","onBlur","onChange","max","min","ModalFooter","disabled","_ref5","_ref6","_ref7","_ref8","TelemetryConstant","BackToShopping","href","AccountGenericTile","handleHeadingChange","handleLinkTextChange","linkIndex","onEdit","AccountLoyaltyTile","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","loyaltyCard","description","url","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","DescriptionComponent","AccountLoyalty","_populateModalData","focusRef","currentLoyaltyPoints","expiring","RewardPointId","currentModalData","isModalExpiring","modalID","currentFocus","getLoyaltyRewardPointsExpiringSoonAsync","queryResultSettings","then","pointsActivity","catch","exception","debug","getLoyaltyRewardPointActivityTimelineAsync","message","_closeModal","_onOpenModal","_this$state$currentFo","_buttonAvailableRef","_buttonExpireRef","_Msdyn365$getUrlSync","_heading$tag","loyaltyCardLabel","totalAvailablePointsLabel","backToShopAttributes","loyaltyCardData","rewardPoints","homeLink","modalTransition","onEntered","node","isAppearing","childNode","firstChild","totalPoints","_getTotalPoints","_renderRewardPoints","pointsModal","_renderModal","returnFocusRef","onOpened","Info","Points","Breakdown","PointsBreakdown","infoLabel","AccountLoyaltyLabel","cardNumber","joinDate","_parseDate","LoyaltyEnrollmentDateLocal","pointsLabel","title","joinDateFormatted","map","loyaltyPoints","availableId","expiringId","availablePointsLabel","availablePointsAriaLabel","expiringPointsFormatLabel","expiringPointsFormatAriaLabel","AvailablePoints","availablePointsAttributes","ExpiringPoints","expiringPointsAttributes","AccountLoyaltyModalLabel","Description","availableModalLabel","labelFor","availableModalTrigger","color","expiringModalLabel","PointsExpiringSoon","expiringModalTrigger","_currentModalData$Des","loyaltyActivityDateLabel","loyaltyActivityBalanceLabel","modalClassName","modalHeaderClassName","modalHeader","modalBodyClassName","ModalBodyTop","ModalBodyHeaders","rewardPointsActivity","_renderPointsActivity","pointsDescription","_getPoints","balanceLabel","onClose","total","_loyaltyPoints$Active","activity","_toFixed","Activity","activityType","_getTimelineType","activityDate","cultureFormatter","formatDate","ActivityDate","activityPoints","LoyaltyPoints","dateString","toString","replace","substring","getUTCFullYear","getUTCMonth","getUTCDate","pointActivity","LoyaltyRewardPointTimelineEntryType","earnedPointsLabel","redeemedPointsLabel","adjustedPointsLabel","refundedPointsLabel","ExtensibleLoyaltyRewardPointActivityEntryTypeValue","observer","Node","key","zIndex","onClosed","AccountProfileEdit","moduleClassName","onTextBoxChange","toLowerCase","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","PAT","PAT_DESC","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","source","componentDidMount","componentDidUpdate","viewState","isShowLoading","accountProfileEdit","loading","modal","modalBody","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","aadConainer","accountProfileEditLocalAccount","_renderLocalAccount","str","e","document","createElement","innerHTML","childNodes","nodeValue","localAccount","items","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","errorMessage","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","labelText","maxLength","pattern","wrapper","AccountProfileEditLabelComponent","forId","input","AccountProfileEditInputComponent","observable","AccountProfileEditItem","AccountProfileEditLoading","_ref3","item","button","LocalAccount","errorClassName","GetMaxLength","parsedMaxLength","Number","parseInt","isNaN","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","IssueLoyaltyInput","apiSettings","issueLoyalty","MsDyn365","isBrowser","location","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","hasLoyaltyAccount","CardTenderTypeValue","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","onToggle","applicationNode","returnRef","modalFooter","cancelButton","cancelLoyaltyTermsText","submitButton","onSubmit","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","bind","_submit","_checkboxChecked","toggleRef","search","requestUrl","isJoining","qsps","qsp","splitQsp","hideToggle","slots","serviceTerms","modalToggle","joinLoyaltytermsToggleText","card","redirectToLoyalty","getUrlSync","getLoyaltyCardAsync","fullCard","update","GetLoyaltyCardInput","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","handleParagraphChange","signInDisclaimer","handleSignInHeadingChange","signInHeading","handleSignUpHeadingChange","signUpHeading","emailId","SA_FIELDS","AttributeFields","errorMessages","requiredField_email","requriedEmailError","requiredField_password","requriedPasswordError","invalid_email","invalidEmailError","invalid_password","invalidPasswordError","unknown_error","unknownError","signIn","SignInLoadingIconComponent","SignInLoadingMessageComponent","signInSection","signInSectionHeading","signInLocalAccount","emailAddressAriaLabel","passwordLabelText","forgetPassword","SignInLinkComponent","forgotPasswordButtonAriaLabel","forgotPasswordButtonText","disclaimer","SignInErrorComponent","signInButton","SignInButtonComponent","loginButtonAriaLabel","loginButtonText","signInSocialAccount","socialAccounts","_renderSocialAccount","facebookButtonText","facebookButtonAriaLabel","facebookIcon","microsoftButtonText","microsoftButtonAriaLabel","microsoftIcon","signInB2BAccount","_renderB2BSocialAccount","b2bButtonText","b2bButtonAriaLabel","displayB2bAccountManagerSignin","signUpSection","signUpSectionHeading","signUpDescription","SignInDescriptionComponent","signUpDescriptionText","signUpLink","signUpButtonAriaLabel","signUpButtonText","SignInLabelComponent","SignInInputComponent","iconImage","image","_createImageMarkup","SignInTextComponent","_displayB2bAccountManagerSignin","imageProps","gridSettings","imageSettings","pictureClassName","shouldSkipToMainImage","SignInLoading","_ref4","SocialAccount","B2BAccount","successClassName","isEmailVerificationRequried","templateVersion","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","UX_INPUT_TYPE","getValue","v1Value","v2Value","signUp","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","signUpLocalAccount","emailVerification","isRequired","verificationCodeLabelText","verificationControlWrapper","buttonWrapper","SignUpButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","successMessage","SignUpSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","SignUpErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","givenNameVerification","surnameVerification","signUpButtonArialabel","cancelButtonArialabel","cssClassName","SignUpLabelComponent","SignUpInputComponent","SignUpItem","SignUpEmailVerification","SignUpGivenNameVerificationComponent","SignUpSurnameVerificationComponent","SignUpLoading","FormType","InputType","InputID","renderInputSection","inputs","asteriskAfterLabel","onInputChange","element","customClass","maxChars","isDisabled","fieldReference","FormLabel","asteriskText","FormFieldError","FormInput","placeholder","BusinessOrganizationList","_this$props$config","BusinessFormDefaultInputs","Text","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","isFormActive","formType","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","async","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","find","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","TableDataType","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","_getCurrentUrl","reqContext","URL","_getViewport","device","Type","innerWidth","xs","w","sm","md","lg","_toggleStatementRequestDropdown","_promoteToSeller","promoteToSellerUrl","currentUser","users","_getB2BUserId","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","isSelected","row","mobileExcludedColumns","Status","_viewport","_updateViewport","submitButtonReference","addedReference","StringExtensions","isNullOrWhitespace","businessUserSelectedUserDisplayName","addEventListener","componentWillUnmount","removeEventListener","_this$formChildRefere","_this$submitButtonRef","_this$props$data$cust","showBecomeSellerLink","businessUserActionButtonText","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","promoteToSellerActionLabel","requestAccountStatementActionLabel","requestOrganizationStatementActionLabel","statementRequestModalHeaderLabel","hasUsers","AddUser","addUserAttributes","errorProps","OrganizationUserList","moduleContainer","addUserButton","noUsersText","modalState","organizationListTable","Table","_createTableProps","toggleModal","form","_renderUserForm","_renderUserDetails","requestAccountStatementButton","selectedOrganizationLabel","selectedUserName","tableSort","showPagination","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","columnSortAriaLabel","tableData","_createTableItems","headings","ArrayExtensions","hasElements","isMobile","sortable","rows","editLinkText","deleteLinkText","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","enableToModify","actionLinkText","showCheckBoxes","isSortable","resourcePrefix","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","nextText","paginationText","isSingleSelectOnly","tableAriaLabel","tableTabIndex","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","onDelete","onView","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","StatusValue","FullName","buttonReferences","edit","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","FormWrapper","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","BusinessFormItem","BusinessUserForm","BusinessUserDetails","userFullName","keys","headingSection","bodySection","footerSection","wrapClassName","ButtonList","_getForm","formProps","ref","BusinessFormItemComponent","renderModal","BusinessUserFormComponent","BusinessUserDetailsComponent","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm"],"sourceRoot":""}