{"version":3,"file":"static/js/3.4600a579e18280ece78b.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/modules/account-address-tile/account-address-tile.tsx?2f8c","webpack://Citta2.0/./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","webpack://Citta2.0/./src/modules/account-address-tile/components/account-address-tile-description.tsx?4911","webpack://Citta2.0/./src/modules/account-address-tile/components/account-address-tile-links.tsx?bee7","webpack://Citta2.0/./src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?8281","webpack://Citta2.0/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://Citta2.0/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?44e9","webpack://Citta2.0/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?95ac","webpack://Citta2.0/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://Citta2.0/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://Citta2.0/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://Citta2.0/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://Citta2.0/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://Citta2.0/./src/modules/account-generic-tile/account-generic-tile.tsx?4353","webpack://Citta2.0/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://Citta2.0/./src/modules/account-generic-tile/components/account-generic-tile-links.tsx?2bc7","webpack://Citta2.0/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://Citta2.0/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://Citta2.0/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://Citta2.0/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://Citta2.0/./src/modules/account-loyalty/account-loyalty.tsx?3672","webpack://Citta2.0/./src/modules/account-loyalty/account-loyalty.view.tsx?4d8b","webpack://Citta2.0/./src/modules/account-loyalty/components/account-loyalty-small-components.tsx?c12b","webpack://Citta2.0/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://Citta2.0/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://Citta2.0/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://Citta2.0/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://Citta2.0/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://Citta2.0/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Citta2.0/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://Citta2.0/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://Citta2.0/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://Citta2.0/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://Citta2.0/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://Citta2.0/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://Citta2.0/./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack://Citta2.0/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://Citta2.0/./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://Citta2.0/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://Citta2.0/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://Citta2.0/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://Citta2.0/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://Citta2.0/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://Citta2.0/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://Citta2.0/./src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?d6f5","webpack://Citta2.0/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","webpack://Citta2.0/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://Citta2.0/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://Citta2.0/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://Citta2.0/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://Citta2.0/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://Citta2.0/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://Citta2.0/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://Citta2.0/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://Citta2.0/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://Citta2.0/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://Citta2.0/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://Citta2.0/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://Citta2.0/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://Citta2.0/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://Citta2.0/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://Citta2.0/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://Citta2.0/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://Citta2.0/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://Citta2.0/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://Citta2.0/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://Citta2.0/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://Citta2.0/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://Citta2.0/./src/modules/password-reset/password-reset.tsx?0983","webpack://Citta2.0/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://Citta2.0/./src/modules/sign-in/components/sign-in-button.tsx?8d59","webpack://Citta2.0/./src/modules/sign-in/components/sign-in-description.tsx?54a5","webpack://Citta2.0/./src/modules/sign-in/components/sign-in-error.tsx?a75a","webpack://Citta2.0/./src/modules/sign-in/components/sign-in-input.tsx?d840","webpack://Citta2.0/./src/modules/sign-in/components/sign-in-label.tsx?4560","webpack://Citta2.0/./src/modules/sign-in/components/sign-in-link.tsx?2078","webpack://Citta2.0/./src/modules/sign-in/components/sign-in-loading-icon.tsx?1d7f","webpack://Citta2.0/./src/modules/sign-in/components/sign-in-loading-message.tsx?84ee","webpack://Citta2.0/./src/modules/sign-in/components/sign-in-text.tsx?76b9","webpack://Citta2.0/./src/modules/sign-in/sign-in.tsx?259c","webpack://Citta2.0/./src/modules/sign-in/sign-in.view.tsx?2b3e","webpack://Citta2.0/./src/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://Citta2.0/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://Citta2.0/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://Citta2.0/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://Citta2.0/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://Citta2.0/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://Citta2.0/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://Citta2.0/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://Citta2.0/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://Citta2.0/./src/modules/business-sign-up/components/sign-up-button.tsx?e1d9","webpack://Citta2.0/./src/modules/business-sign-up/components/sign-up-error.tsx?7f8a","webpack://Citta2.0/./src/modules/business-sign-up/components/sign-up-input.tsx?5bbe","webpack://Citta2.0/./src/modules/business-sign-up/components/sign-up-label.tsx?4988","webpack://Citta2.0/./src/modules/business-sign-up/components/sign-up-radio-button.tsx?f8c1","webpack://Citta2.0/./src/modules/business-sign-up/business-sign-up.tsx?13a2","webpack://Citta2.0/./src/modules/business-sign-up/business-sign-up.view.tsx?e2f8","webpack://Citta2.0/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://Citta2.0/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://Citta2.0/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://Citta2.0/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.match.js?f0c8"],"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 { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountAddressTileData } from './account-address-tile.data';\nimport { IAccountAddressTileProps } from './account-address-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-address-tile-description';\nimport LinksComponent from './components/account-address-tile-links';\n\nexport interface IAccountAddressTileViewProps extends IAccountAddressTileProps {\n AccountAddressTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountAddress component.\n * @extends {React.PureComponent>}\n */\nclass AccountAddressTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountAddressTileProps) {\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, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountAddressTileDescriptionForSingleAddress, accountAddressTileDescriptionForMultipleAddresses } = resources;\n const { address } = data;\n const addressCount = (address && address.result && address.result.length) || 0;\n const accountAddressTileDescription =\n addressCount === 1 ? accountAddressTileDescriptionForSingleAddress : accountAddressTileDescriptionForMultipleAddresses;\n const description = format(accountAddressTileDescription, addressCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountAddressTile: {\n moduleProps: this.props,\n className: classnames('ms-account-address-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\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.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountAddressTile;\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 { IAccountAddressTileViewProps } from './account-address-tile';\n\nconst AccountAddressTileView: React.FC = props => {\n const { AccountAddressTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountAddressTileView;\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 IAccountAddressTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountAddressTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountAddressTileDescription;\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-address-tile.props.autogenerated';\n\nexport interface IAccountAddressTileLinks {\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 AccountAddressTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n\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-address-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 AccountAddressTileLinks;\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 { 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\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 };\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}\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 { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceViewProps } from './account-customer-balance';\n\nexport default (props: IAccountCustomerBalanceViewProps) => {\n const {\n heading,\n accountSectionHeading,\n creditSummarySectionHeading,\n accountLabels,\n accountValues,\n creditSummaryLabels,\n creditSummaryValues,\n homeButton,\n actions,\n requestStatementModal,\n availableCredit,\n balanceOwed,\n creditExcess\n } = props;\n\n return (\n \n {heading}\n {requestStatementModal}\n {actions}\n {accountSectionHeading}\n
\n {accountLabels}\n {accountValues}\n
\n {creditSummarySectionHeading}\n
\n {creditSummaryLabels}\n {creditSummaryValues}\n {availableCredit}\n {balanceOwed}\n {creditExcess}\n
\n {homeButton}\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 { 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 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 = ({ className, onRequestStatement, requestStatementButtonLabel }) => {\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 React from 'react';\n\nexport interface IAccountOrderTemplatesTileDescription {\n description: string;\n}\n\nexport const AccountOrderTemplatesTileDescription: React.FC = ({ description }) => (\n

{description}

\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\nimport { ILinksData } from '../account-order-templates-tile.props.autogenerated';\n\nexport interface IAccountOrderTemplatesTileLinks {\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\nexport const AccountOrderTemplatesTileLinks: React.FC = ({\n links,\n onTextChange,\n telemetryContent,\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};\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-order-templates-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","/*!\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 { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileData } from './account-order-templates-tile.data';\nimport { IAccountOrderTemplatesTileProps } from './account-order-templates-tile.props.autogenerated';\nimport { AccountOrderTemplatesTileDescription, AccountOrderTemplatesTileLinks } from './components';\n\nexport interface IAccountOrderTemplatesTileViewProps extends IAccountOrderTemplatesTileProps {\n AccountOrderTemplatesTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountOrderTemplatesTile component.\n * @extends {React.PureComponent>}\n */\nexport class AccountOrderTemplatesTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountOrderTemplatesTileProps) {\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, resources, data } = this.props;\n\n if (!this.props.context.request.params.isEditor && !isChannelTypeB2B(this.props.context.request)) {\n return <>;\n }\n\n const { className, heading, links } = config;\n const { accountOrderTemplatesTileDescription } = resources;\n const orderTemplates = data.orderTemplates;\n\n const orderTemplatesCount = (orderTemplates?.result || []).length;\n const description = format(accountOrderTemplatesTileDescription, orderTemplatesCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountOrderTemplatesTile: {\n moduleProps: this.props,\n className: classnames('ms-account-order-templates-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\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 AccountOrderTemplatesTile;\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 { IAccountOrderTemplatesTileViewProps } from './account-order-templates-tile';\n\nconst AccountOrderTemplatesTileView: React.FC = props => {\n const { AccountOrderTemplatesTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountOrderTemplatesTileView;\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileData } from './account-welcome-tile.data';\nimport { IAccountWelcomeTileProps } from './account-welcome-tile.props.autogenerated';\n\nexport interface IAccountWelcomeTileViewProps extends IAccountWelcomeTileProps {\n AccountWelcomeTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AccountWelcome component.\n * @extends {React.PureComponent>}\n */\nclass AccountWelcomeTile extends React.PureComponent> {\n public render(): JSX.Element {\n const { config, data } = this.props;\n const { className } = config;\n\n const accountInfo = data.accountInformation.result;\n const heading = {\n ...config.heading,\n ...{\n text: `${config.heading.text ? config.heading.text : ''} ${\n accountInfo && accountInfo.FirstName ? accountInfo.FirstName : ''\n }`\n }\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountWelcomeTile: {\n moduleProps: this.props,\n className: classnames('ms-account-welcome-tile', config.className)\n },\n heading: heading && heading.text && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n}\n\nexport default AccountWelcomeTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileViewProps } from './account-welcome-tile';\n\nconst AccountWelcomeTileView: React.FC = props => {\n const { AccountWelcomeTile, heading } = props;\n\n return {heading};\n};\n\nexport default AccountWelcomeTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountWishlistTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountWishlistTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountWishlistTileDescription;\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-wishlist-tile.props.autogenerated';\n\nexport interface IAccountWishlistTileLinks {\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 AccountWishlistTileLinks: 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};\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-wishlist-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 AccountWishlistTileLinks;\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 { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileData } from './account-wishlist-tile.data';\nimport { IAccountWishlistTileProps } from './account-wishlist-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-wishlist-tile-description';\nimport LinksComponent from './components/account-wishlist-tile-links';\n\nexport interface IAccountWishlistTileViewProps extends IAccountWishlistTileProps {\n AccountWishlistTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountWishlist component.\n * @extends {React.PureComponent>}\n */\nclass AccountWishlistTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccountWishlistTileProps) {\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, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountWishlistTileDescription } = resources;\n const wishlists = data.wishlists.result;\n\n const wishlistsCount = ((wishlists && wishlists.length && wishlists[0].CommerceListLines) || []).length;\n const description = format(accountWishlistTileDescription || 'You have {0} items in the Wishlist.', wishlistsCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountWishlistTile: {\n moduleProps: this.props,\n className: classnames('ms-account-wishlist-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\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.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountWishlistTile;\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 { IAccountWishlistTileViewProps } from './account-wishlist-tile';\n\nconst AccountWishlistTileView: React.FC = props => {\n const { AccountWishlistTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountWishlistTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { ICoreContext, IDateFormatOptions, IRequestContext } from '@msdyn365-commerce/core';\nimport { BusinessPartnerOperationRequest, BusinessPartnerOperationRequestDetails } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n IDataTableProps,\n IHeadingsProperty,\n ITableItemProps,\n ITableRowProps,\n Table,\n TableDataType\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsStatusData } from '../b2b-requests-status.data';\nimport { IB2bRequestsStatusProps } from '../b2b-requests-status.props.autogenerated';\n\nexport interface IB2bRequestsTableProps {\n moduleProps: IB2bRequestsStatusProps;\n isMobile: boolean;\n mobileExcludedColumns: string[];\n}\n\nexport interface IB2bRequestsTableResources {\n b2bRequestsTypeCreateProspect: string;\n b2bRequestsTypeAddUser: string;\n b2bRequestsTypeEditUser: string;\n b2bRequestsTypeDeleteUser: string;\n b2bRequestsTypeRequestAccountStatement: string;\n b2bRequestsTypeRequestInvoiceCopy: string;\n b2bRequestsTypeUnknown: string;\n b2bRequestsStatusRequested: string;\n b2bRequestsStatusProcessed: string;\n b2bRequestsStatusError: string;\n b2bRequestsNumberOfItems: string;\n b2bRequestsNumberOfItemsSingular: string;\n b2bRequestsNameDisplay: string;\n b2bRequestsPreviousText: string;\n b2bRequestsNextText: string;\n b2bRequestsUserColumn: string;\n b2bRequestsStatusColumn: string;\n b2bRequestsRequestDateColumn: string;\n b2bRequestsTypeColumn: string;\n b2bRequestsDescriptionColumn: string;\n b2bRequestsAccountStatementDetails: string;\n b2bRequestsInvoiceCopyDetails: string;\n businessUserSelectCheckBoxAriaLabelText?: string;\n sortByAscending?: string;\n sortByDescending?: string;\n}\n\nexport enum RequestsTableColumnHeader {\n Name = 'User',\n Status = 'Status',\n RequestDate = 'Request date',\n Type = 'Request type',\n Description = 'Request detail'\n}\n\nconst getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n};\n\nconst getUserName = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources) => {\n if (StringExtensions.isNullOrEmpty(request.UserFirstName)) {\n if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return '';\n }\n\n return request.UserLastName;\n } else if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return request.UserFirstName;\n }\n\n return resources.b2bRequestsNameDisplay.replace('{0}', request.UserFirstName!).replace('{1}', request.UserLastName!);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Gets the value to display for the request details.\n * @param request - The request to parse for the details.\n * @param resources - The resources.\n * @param context - The context.\n * @returns The string to display.\n */\nconst getDetails = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources, context: ICoreContext) => {\n if (!request.Details) {\n return '';\n }\n\n const requestDetails: BusinessPartnerOperationRequestDetails = request.Details;\n\n const accountStatementStartDateTime = formatDate(context, requestDetails.AccountStatementStartDateTime) || '';\n const accountStatementEndDateTime = formatDate(context, requestDetails.AccountStatementEndDateTime) || '';\n const invoiceId = requestDetails.InvoiceId ?? '';\n\n switch (request.TypeValue) {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 5:\n if (\n !StringExtensions.isNullOrEmpty(accountStatementStartDateTime) &&\n !StringExtensions.isNullOrEmpty(accountStatementEndDateTime)\n ) {\n return resources.b2bRequestsAccountStatementDetails\n .replace('{0}', accountStatementStartDateTime)\n .replace('{1}', accountStatementEndDateTime);\n }\n\n return '';\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 6:\n if (!StringExtensions.isNullOrEmpty(invoiceId)) {\n return resources.b2bRequestsInvoiceCopyDetails.replace('{0}', invoiceId);\n }\n\n return '';\n default:\n return '';\n }\n};\n\nconst createTableItems = (\n operationRequests: BusinessPartnerOperationRequest[] | undefined,\n props: IB2bRequestsStatusProps\n): ITableRowProps[] => {\n if (!ArrayExtensions.hasElements(operationRequests)) {\n return [];\n }\n\n return operationRequests.map(request => {\n return {\n row: [\n {\n id: props.resources.b2bRequestsTypeColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyTypeValue(request.TypeValue ?? 0, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsRequestDateColumn,\n type: TableDataType.Text,\n value: formatDate(props.context, request.CreatedDateTime)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsDescriptionColumn,\n type: TableDataType.Text,\n value: getDetails(request, props.resources, props.context)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsUserColumn,\n type: TableDataType.Text,\n value: getUserName(request, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsStatusColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyStatusValue(request.StatusValue ?? 0, props.resources)\n } as ITableItemProps\n ],\n isSelected: false,\n className: props.config.className\n };\n });\n};\n\nconst getDisplayFriendlyTypeValue = (typeValue: number, resources: IB2bRequestsTableResources): string => {\n switch (typeValue) {\n case 1:\n return resources.b2bRequestsTypeCreateProspect;\n case 2:\n return resources.b2bRequestsTypeAddUser;\n case 3:\n return resources.b2bRequestsTypeDeleteUser;\n case 4:\n return resources.b2bRequestsTypeEditUser;\n case 5:\n return resources.b2bRequestsTypeRequestAccountStatement;\n case 6:\n return resources.b2bRequestsTypeRequestInvoiceCopy;\n default:\n return resources.b2bRequestsTypeUnknown;\n }\n};\n\nconst getDisplayFriendlyStatusValue = (statusValue: number, resources: IB2bRequestsTableResources): string => {\n switch (statusValue) {\n case 1:\n return resources.b2bRequestsStatusProcessed;\n case 2:\n return resources.b2bRequestsStatusError;\n default:\n return resources.b2bRequestsStatusRequested;\n }\n};\n\nconst createTableProps = (tableProps: IB2bRequestsTableProps) => {\n const { context, data, resources } = tableProps.moduleProps;\n\n const tableData = createTableItems(data.operationRequests.result, tableProps.moduleProps);\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row\n .filter(item => {\n // Check that this is either not mobile or the column should be displayed when mobile.\n return !tableProps.isMobile || !tableProps.mobileExcludedColumns.includes(item.id);\n })\n .map(item => {\n return {\n name: item.id,\n sortable: true,\n ariaLabel: resources.columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources: {},\n headings: tableHeading,\n rows: tableData,\n className: `${tableProps.moduleProps.config.className}__table`,\n editLinkText: '',\n deleteLinkText: '',\n viewLinkText: '',\n enableToModify: false,\n actionLinkText: '',\n showCheckBoxes: false,\n isSortable: true,\n showPagination: true,\n minifyActions: tableProps.isMobile,\n excludedColumns: tableProps.isMobile ? tableProps.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context.request.query?.skip && !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: 10,\n prevText: resources.b2bRequestsPreviousText,\n nextText: resources.b2bRequestsNextText,\n paginationText: '',\n url: (context && getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n actions: {\n onDelete: undefined,\n onEdit: undefined,\n onView: undefined\n },\n businessUserSelectCheckBoxAriaLabelText: tableProps.moduleProps.resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: tableProps.moduleProps.resources.sortByAscending,\n sortByDescending: tableProps.moduleProps.resources.sortByDescending\n } as IDataTableProps;\n};\n\nexport const B2bRequestsTable: React.FC = (tableProps: IB2bRequestsTableProps) => {\n return ;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { format, Heading, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport { computed } from 'mobx';\nimport * as React from 'react';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\n\nimport { IB2bRequestsStatusData } from './b2b-requests-status.data';\nimport { IB2bRequestsStatusProps, IHeadingData } from './b2b-requests-status.props.autogenerated';\nimport { B2bRequestsTable } from './components/b2b-requests-table';\n\nexport interface IB2bRequestsStatusViewProps extends IB2bRequestsStatusProps {\n b2bRequestsStatus: IModuleProps;\n heading?: React.ReactNode;\n table: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsStatus component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsStatus extends React.PureComponent> {\n @computed get isMobile(): boolean {\n const size = isMobile({ variant: VariantType.Viewport, context: this.props.context.request });\n return size === 'xs';\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const className = config.className || '';\n\n const viewProps = {\n ...this.props,\n b2bRequestsStatus: {\n moduleProps: this.props,\n className\n },\n heading: this.renderHeader(className, config.heading),\n table: this.renderTable()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly renderHeader = (className: string, headingData: IHeadingData): React.ReactNode => {\n const itemCount = this.props.data.operationRequests.result?.length ?? 0;\n\n return (\n
\n \n {this.getItemNumberDisplayString(itemCount)}\n
\n );\n };\n\n /**\n * Returns columns that needs to be excluded for mobile view.\n * @returns Array of column names.\n */\n private readonly _retrieveExcludedColumns = (): string[] => {\n const { resources } = this.props;\n return [resources.b2bRequestsRequestDateColumn, resources.b2bRequestsDescriptionColumn, resources.b2bRequestsUserColumn];\n };\n\n private readonly renderTable = (): React.ReactNode => {\n return (\n \n );\n };\n\n private readonly getItemNumberDisplayString = (itemCount: number): string => {\n switch (itemCount) {\n case 0:\n return '';\n case 1:\n return format(this.props.resources.b2bRequestsNumberOfItemsSingular, itemCount);\n default:\n return format(this.props.resources.b2bRequestsNumberOfItems, itemCount);\n }\n };\n}\n\nexport default B2bRequestsStatus;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IB2bRequestsStatusViewProps } from './b2b-requests-status';\n\nconst B2bRequestsStatusView: React.FC = props => {\n const { b2bRequestsStatus, heading, table } = props;\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../../..';\n\nexport interface IB2bRequestsTileLinksProps {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst defaultClassName = 'ms-account-b2b-requests-tile';\n\nexport const B2bRequestsTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (!ArrayExtensions.hasElements(links)) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n return linkdata.map(link => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return {\n ariaLabel: link.ariaLabel,\n className: `${defaultClassName}__link`,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n } as Msdyn365.ILinksData;\n });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileData } from './b2b-requests-tile.data';\nimport { IB2bRequestsTileProps } from './b2b-requests-tile.props.autogenerated';\nimport { B2bRequestsTileLinks } from './components/account-b2b-requests-tile-links';\n\nexport interface IB2bRequestsTileViewProps extends IB2bRequestsTileProps {\n b2bRequestsTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsTile component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IB2bRequestsTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const defaultClassName = 'ms-account-b2b-requests-tile';\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n b2bRequestsTile: {\n moduleProps: this.props,\n className: classnames(defaultClassName, config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: ArrayExtensions.hasElements(links) && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default B2bRequestsTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileViewProps } from './b2b-requests-tile';\n\nconst B2bRequestsTileView: React.FC = props => {\n const { b2bRequestsTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default B2bRequestsTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport 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 IPasswordResetVerificationButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetVerificationButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetVerificationButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetVerificationInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetVerificationInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default PasswordResetVerificationInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetVerificationLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetVerificationLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetVerificationLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetVerificationLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetVerificationButtonComponent from './components/password-reset-verification-button';\nimport PasswordResetVerificationErrorComponent from './components/password-reset-verification-error';\nimport PasswordResetVerificationInputComponent from './components/password-reset-verification-input';\nimport PasswordResetVerificationLabelComponent from './components/password-reset-verification-label';\nimport PasswordResetVerificationLoadingIconComponent from './components/password-reset-verification-loading-icon';\nimport PasswordResetVerificationLoadingMessageComponent from './components/password-reset-verification-loading-message';\nimport PasswordResetVerificationSuccessComponent from './components/password-reset-verification-success';\nimport { IPasswordResetVerificationConfig, IPasswordResetVerificationProps } from './password-reset-verification.props.autogenerated';\n\nexport interface IPasswordResetVerificationViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetVerificationItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationLocalAccount {\n localAccount: INodeProps;\n verificationControlWrapper: INodeProps;\n items: IPasswordResetVerificationItem[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationButtonsWrapper: INodeProps;\n verificationButtons: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetVerificationLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationViewProps {\n className: string;\n viewState: IPasswordResetVerificationViewState;\n loading: IPasswordResetVerificationLoading;\n passwordResetVerification: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetVerificationLocalAccount: IPasswordResetVerificationLocalAccount;\n}\n\n/**\n *\n * PasswordResetVerification component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordResetVerification extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset-verification';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetVerificationProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.templateVersion = '';\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IPasswordResetVerificationProps,\n nextState: IPasswordResetVerificationViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordResetVerification: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: (\n \n )\n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetVerificationLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private _prePopulateData(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n if (obj.ID.toLowerCase() === 'email') {\n this.emailRegex = obj.PAT;\n } else if (obj.ID.toLowerCase() === 'emailverificationcontrol') {\n this.templateVersion = 'v2';\n }\n });\n if (!this.templateVersion) {\n this.templateVersion = 'v1';\n }\n }\n }\n\n private _updateErrorMessage(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: this.props.resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n }\n\n private _renderLocalAccount(): IPasswordResetVerificationLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n items: [\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n )\n ],\n successMessage: [\n ,\n\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n \n ],\n verificationButtonsWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n verificationButtons: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): IPasswordResetVerificationItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n}\n\nexport default PasswordResetVerification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IPasswordResetVerificationItem,\n IPasswordResetVerificationLoading,\n IPasswordResetVerificationLocalAccount,\n IPasswordResetVerificationViewProps\n} from './password-reset-verification';\n\nconst PasswordResetVerificationItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n verificationControlWrapper,\n items,\n successMessage,\n errorMessage,\n verificationButtonsWrapper,\n verificationButtons,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n \n {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {verificationButtons &&\n verificationButtons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n \n );\n};\n\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetVerificationView: React.FC = props => {\n const {\n passwordResetVerification,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n passwordResetVerificationLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetVerificationLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetVerificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IBusinessSignUpButtonProps {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n link?: string;\n telemetryContent: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const SignUpButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n link,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent, text);\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\n return (\n \n {text}\n \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 IBusinessSignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n

{message}

\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\nimport { InputType } from '../business-sign-up';\n\nexport interface IBusinessSignUpInputProps {\n id?: string;\n type: InputType;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IBusinessSignUpInput {\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\nexport const SignUpInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n onChange,\n fieldReference\n}) => {\n if (type === InputType.TextArea) {\n return (\n \n );\n }\n\n return (\n \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 IBusinessSignUpLabelProps {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nexport const 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 IBusinessSignUpRadioButtonProps {\n id: string;\n isRequired: boolean;\n options: IBusinessSignUpRadioButtonOptionProps[];\n}\n\nexport interface IBusinessSignUpRadioButtonOptionProps {\n id: string;\n name: string;\n value: string;\n label: string;\n className: string;\n onChange(event: React.ChangeEvent): void;\n}\n\nexport const BusinessSignUpRadioButtonOption: React.FC = props => {\n const { id, name, value, label, className, onChange } = props;\n return (\n
\n \n \n
\n );\n};\n\nexport default BusinessSignUpRadioButtonOption;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent, getUrlSync, RichTextComponent, Text } from '@msdyn365-commerce/core';\nimport { Address, BusinessPartnerProspect } from '@msdyn365-commerce/retail-proxy';\nimport { createProspectAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBusinessSignUpConfig, IBusinessSignUpProps } from './business-sign-up.props.autogenerated';\nimport { SignUpButton, SignUpError, SignUpInput, SignUpLabel } from './components';\nimport { IBusinessSignUpRadioButtonOptionProps, BusinessSignUpRadioButtonOption } from './components/sign-up-radio-button';\n\nexport interface IBusinessSignUpExtendedProps extends IBusinessSignUpProps {\n formItems?: IFormItem[];\n}\n\nexport interface IBusinessSignUpItem {\n wrapper: INodeProps;\n isAddressInput?: boolean;\n id: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input?: React.ReactNode;\n}\n\nexport interface IBusinessState {\n isReady: boolean;\n formItems: IFormItem[];\n addressHasErrors: boolean;\n showAddressErrors: boolean;\n hasSubmitErrors: boolean;\n}\n\nexport interface IBusinessSignUpLocalAccount {\n FormWrapper: INodeProps;\n items: IBusinessSignUpItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface IBusinessSignUpViewProps {\n className: string;\n businessSignUp: IModuleProps;\n ContainerWrapper: INodeProps;\n heading: React.ReactNode;\n businessSignUpForm: IBusinessSignUpLocalAccount;\n formItems: IFormItem[];\n}\n\nexport interface IFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n address?: Address;\n customClass?: string;\n fieldReference?: React.RefObject;\n radioButtonOptions?: IBusinessSignUpRadioButtonOptionProps[];\n radioButtonGroupClass?: string;\n}\n\nexport enum InputType {\n // eslint-disable-next-line @typescript-eslint/no-shadow -- Text enum doesn't override the imported Text\n Text = 'text',\n Address = 'address',\n Email = 'email',\n TextArea = 'textarea',\n RadioButton = 'radiobutton'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n Email = 'CompanyEmail',\n CompanyName = 'CompanyName',\n Address = 'CompanyAddress',\n JobTitle = 'JobTitle',\n Size = 'CompanySize',\n Department = 'Department',\n Comment = 'Comment',\n ProspectType = 'ProspectType'\n}\n\nexport const renderInputSection = (\n inputs: IFormItem[],\n className: string,\n needToReset: boolean,\n onInputChange: (event: React.ChangeEvent) => void,\n showErrors: boolean,\n addressForm?: React.ReactNode,\n updateAddress?: (errors: boolean, currAddress?: Address) => void\n): IBusinessSignUpItem[] => {\n return inputs.map((element, index) => {\n const {\n id,\n type,\n label,\n maxChars,\n isRequired,\n pattern,\n customClass,\n value,\n fieldReference,\n radioButtonOptions,\n radioButtonGroupClass\n } = element;\n\n const baseSignUpItem: IBusinessSignUpItem = {\n wrapper: {\n className: classnames(className, `${className}-${id}`, customClass)\n },\n id,\n label: ,\n errorMessage: \n };\n\n if (type === InputType.Address) {\n if (addressForm) {\n baseSignUpItem.isAddressInput = true;\n baseSignUpItem.input = (\n <>\n {React.cloneElement(addressForm as React.ReactElement, {\n updateForm: updateAddress,\n hasError: showErrors,\n isRequired: isRequired === undefined ? false : isRequired,\n resetAddress: needToReset\n })}\n \n );\n } else {\n // If the address slot is not filled, remove this input from the form\n inputs.splice(index, 1);\n }\n } else if (type === InputType.RadioButton) {\n baseSignUpItem.input = (\n
\n {radioButtonOptions &&\n radioButtonOptions.map((element, index) => {\n return ;\n })}\n
\n );\n } else {\n baseSignUpItem.input = (\n \n );\n }\n\n return baseSignUpItem;\n });\n};\n\n/**\n *\n * Business Request Form Modules\n * Form that a business can use to submit a request to become a partner with Microsoft.\n * @extends {React.Component>}\n */\nclass BusinessSignUp extends React.Component {\n private readonly moduleClassName: string = 'ms-business-sign-up';\n private readonly prospectRadioButtonName: string = 'business-sign-up-radio-button';\n\n // Used as default data\n // eslint-disable-next-line @typescript-eslint/member-ordering\n public BusinessSignUpDefaultInputs: IFormItem[] = [\n {\n id: InputID.ProspectType,\n type: InputType.RadioButton,\n label: this.props.resources.prospectTypeLabel,\n value: '',\n isRequired: true,\n customClass: 'width-100',\n radioButtonGroupClass: 'radio-option-container',\n radioButtonOptions: [\n {\n id: `${InputID.ProspectType}-buyer`,\n name: this.prospectRadioButtonName,\n value: '1', // Buyer\n label: this.props.resources.prospectTypeBuyerLabel,\n className: `${this.moduleClassName}__form-item-radio-button-option`,\n onChange: this._onInputChange.bind(this)\n },\n {\n id: `${InputID.ProspectType}-seller`,\n name: this.prospectRadioButtonName,\n value: '2', // Seller\n className: `${this.moduleClassName}__form-item-radio-button-option`,\n label: this.props.resources.prospectTypeSellerLabel,\n onChange: this._onInputChange.bind(this)\n }\n ]\n },\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.firstNameLabel,\n value: '',\n isRequired: true,\n customClass: 'width-25'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.lastNameLabel,\n value: '',\n isRequired: true,\n customClass: 'width-25'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.emailAddressLabel,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-50'\n },\n {\n id: InputID.CompanyName,\n type: InputType.Text,\n label: this.props.resources.companyLabel,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Department,\n type: InputType.Text,\n label: this.props.resources.departmentLabel,\n value: '',\n isRequired: false,\n customClass: 'width-50'\n },\n {\n id: InputID.JobTitle,\n type: InputType.Text,\n label: this.props.resources.jobTitleLabel,\n value: '',\n isRequired: false,\n customClass: 'width-50'\n },\n {\n id: InputID.Size,\n type: InputType.Text,\n label: this.props.resources.companySizeLabel,\n value: '',\n isRequired: false,\n customClass: 'width-50'\n },\n {\n id: InputID.Address,\n type: InputType.Address,\n label: this.props.resources.companyAddressLabel,\n value: '',\n isRequired: false,\n customClass: 'width-100'\n },\n {\n id: InputID.Comment,\n type: InputType.TextArea,\n label: this.props.resources.commentLabel,\n value: '',\n isRequired: false,\n customClass: 'width-100'\n }\n ];\n\n private readonly formChildReference: React.RefObject = React.createRef();\n\n private needsToReset: boolean = false;\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IBusinessSignUpExtendedProps) {\n super(props);\n\n this.state = {\n isReady: false,\n formItems: this.props.formItems || this._addedReference(),\n addressHasErrors: false,\n showAddressErrors: false,\n hasSubmitErrors: false\n };\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.formChildReference.current?.focus();\n }\n\n public shouldComponentUpdate(nextProps: IBusinessSignUpExtendedProps, nextState: IBusinessState): 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 } = this.props;\n const { formItems } = this.state;\n const { className, heading } = config;\n\n const viewProps = {\n ...this.props,\n businessSignUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n ContainerWrapper: {\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n businessSignUpForm: this._renderForm(),\n formItems\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle the heading change event.\n * @param event - Content Editable Event.\n */\n public handleHeadingChange = (event: ContentEditableEvent): void => {\n this.props.config.heading.text = event.target.value;\n };\n\n private _renderForm(): IBusinessSignUpLocalAccount {\n const { config, resources, slots } = this.props;\n const { showAddressErrors, hasSubmitErrors, isReady, formItems } = this.state;\n const {\n signUpButtonArialabel,\n signUpButtonText,\n cancelButtonArialabel,\n cancelButtonText,\n errorMessage,\n partialAddressErrorMessage\n } = resources;\n const addressForm = (slots && slots.addressSlot && slots.addressSlot.length > 0 && slots.addressSlot[0]) || undefined;\n\n const form = {\n FormWrapper: {\n className: `${this.moduleClassName}__form `\n },\n items: renderInputSection(\n formItems,\n `${this.moduleClassName}__form-item`,\n this.needsToReset,\n this._onInputChange.bind(this),\n showAddressErrors,\n addressForm,\n this._onAddressChange\n ),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasSubmitErrors && ,\n showAddressErrors && (\n \n )\n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n\n if (this.needsToReset) {\n this.needsToReset = false;\n }\n\n return form;\n }\n\n private _onInputChange(event: React.ChangeEvent): void {\n const newForm = this.state.formItems;\n newForm.forEach(item => {\n if (item.type === InputType.RadioButton && event.target.name === this.prospectRadioButtonName) {\n item.value = event.target.value;\n } else if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Check if form is ready, update state object with latest values, values have changed so reset hasSubmitErrros\n this.setState({\n isReady: this._isFormReady(),\n formItems: newForm,\n hasSubmitErrors: false\n });\n }\n\n private _addedReference(): IFormItem[] {\n const newFormFields = this.BusinessSignUpDefaultInputs;\n newFormFields[0].fieldReference = this.formChildReference;\n return newFormFields;\n }\n\n private readonly _onAddressChange = (errors: boolean, currentAddress?: Address): void => {\n // Find address item\n const newForm = this.state.formItems;\n const addressItem = newForm.find(item => {\n return item.type === InputType.Address;\n });\n\n // If found --> set to currentAddress\n if (addressItem) {\n addressItem.address = currentAddress;\n\n // Update state with new values and set errors to false if address is not required field\n this.setState(\n {\n formItems: newForm,\n addressHasErrors: errors,\n showAddressErrors: false\n },\n () => {\n this.setState({ isReady: this._isFormReady() });\n }\n );\n }\n };\n\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const currentInput of formItems) {\n // Will return FALSE if:\n // - input field is required\n // IF is address AND addressHasErrors === true\n // ELSE value is undefined OR empty\n // OR\n // - pattern provided and value does not match pattern\n\n if (currentInput.isRequired) {\n if (currentInput.type === InputType.Address) {\n if (this.state.addressHasErrors) {\n return false;\n }\n } else if (currentInput.value === undefined || currentInput.value === '') {\n return false;\n }\n }\n if (currentInput.pattern !== undefined && currentInput.value.match(currentInput.pattern) === null) {\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _onSubmit = (event: React.MouseEvent) => {\n if (this.state.addressHasErrors) {\n this.setState({\n showAddressErrors: true\n });\n\n event.preventDefault();\n return;\n }\n\n const { config, context } = this.props;\n\n // Check for matching id and if not empty\n const firstName = this._getItem(InputID.FirstName);\n const lastName = this._getItem(InputID.LastName);\n const companyName = this._getItem(InputID.CompanyName);\n const companyEmail = this._getItem(InputID.Email);\n const companyAddress = this._getItem(InputID.Address, true);\n const jobTitle = this._getItem(InputID.JobTitle);\n const department = this._getItem(InputID.Department);\n const companySize = this._getItem(InputID.Size);\n const comments = this._getItem(InputID.Comment);\n const prospectType = this._getItem(InputID.ProspectType);\n\n // API gets email as part of the address object, but I do not use the email input from the address component, thus we need to copy it over\n if (companyEmail && companyEmail.value && companyAddress && companyAddress.address) {\n companyAddress.address.Email = companyEmail.value;\n }\n\n const newPartner: BusinessPartnerProspect = {\n FirstName: firstName && firstName.value,\n LastName: lastName && lastName.value,\n CompanyName: companyName && companyName.value,\n Address: companyAddress && companyAddress.address && companyAddress.address,\n JobTitle: jobTitle && jobTitle.value,\n Department: department && department.value,\n CompanySize: (companySize && Number.parseInt(companySize.value, 10)) || 0,\n Comments: comments && comments.value,\n ProspectTypeValue: (prospectType && Number.parseInt(prospectType.value, 10)) || 0\n };\n\n this.setState({\n isReady: false\n });\n\n // Create business partner request\n createProspectAsync({ callerContext: context.actionContext }, newPartner)\n .then(() => {\n const successPageURL =\n (config.confirmationLink && config.confirmationLink.linkUrl && config.confirmationLink.linkUrl.destinationUrl) ||\n getUrlSync('home', this.props.context.actionContext) ||\n '';\n window.location.href = successPageURL;\n })\n .catch(() => {\n this.setState({\n hasSubmitErrors: true\n });\n });\n };\n\n private readonly _onCancel = () => {\n // Reset values of the form\n const cleanForm = this.state.formItems;\n cleanForm.forEach(input => {\n input.value = '';\n });\n\n // Set reset flag so address input will get reset on next renderInputSection() call\n this.needsToReset = true;\n\n this.setState({\n isReady: false,\n formItems: cleanForm,\n addressHasErrors: true,\n showAddressErrors: false,\n hasSubmitErrors: false\n });\n };\n\n private readonly _getItem = (id: string, isAddress: boolean = false) => {\n if (isAddress) {\n return this.state.formItems.find(item => {\n return item.id === id && item.address;\n });\n }\n return this.state.formItems.find(item => {\n return item.id === id && item.value !== '';\n });\n };\n}\n\nexport default BusinessSignUp;\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 { IBusinessSignUpItem, IBusinessSignUpViewProps } from './business-sign-up';\n\nconst BusinessSignUpItem: React.FC = ({ wrapper, label, errorMessage, input, isAddressInput }) => {\n // Hide label and error message if rendering address section\n return (\n \n {!isAddressInput && label}\n {!isAddressInput && errorMessage}\n {input}\n \n );\n};\n\nconst BusinesSignUpView: React.FC = props => {\n const { businessSignUp, ContainerWrapper, heading, businessSignUpForm } = props;\n\n const { FormWrapper, buttons, items, errorMessage, disclaimer } = businessSignUpForm;\n\n return (\n \n \n {heading}\n \n {items &&\n items.map((item: IBusinessSignUpItem) => {\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 );\n};\n\nexport default BusinesSignUpView;\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 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","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n"],"names":["AccountAddressTile","React","constructor","props","super","handleHeadingChange","event","this","config","heading","text","target","value","handleLinkTextChange","linkIndex","links","linkText","telemetryContent","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","render","resources","data","className","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","address","addressCount","result","length","accountAddressTileDescription","description","format","viewProps","_objectSpread","moduleProps","classnames","Msdyn365","tag","editProps","onEdit","requestContext","LinksComponent","Object","assign","onTextChange","DescriptionComponent","renderView","Module","_ref","_mapEditableLinks","linkdata","editableLinks","payLoad","getPayloadObject","forEach","link","index","contentAction","etext","attributes","getTelemetryAttributes","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","push","AccountCustomerBalanceTile","state","_initState","reaction","hasError","error","setState","content","ErrorComponent","apiGenericErrorMessage","get","isCustomerAccountPaymentEnabled","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","shouldComponentUpdate","nextProps","nextState","Heading","headingTag","isDetailsLinkDisplayed","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","formatCurrency","customerCredit","customerCreditFormatted","toFixed","CreditComponent","verbagePrefix","verbagePostfix","__decorate","computed","_ref2","AccountCustomerBalance","_showRequestStatementModal","isStatementRequestModalOpen","_toggleModal","_toggleDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_adminShowRequestStatementModal","isFullOrg","statementRequestFullOrg","_requestStatement","_this$props$data$b2bU","customer","customerInformation","B2BUserId","b2bUserInformation","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","Email","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","actionContext","BusinessPartnerUsersDataActions","statementRequestMaxDateString","toISOString","split","canSubmitStatementRequest","_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","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","onSubmitRequest","selectedUser","selectedUserLabel","maxDateString","currency","date","Intl","DateTimeFormat","locale","month","day","year","creditSummaryLabels","creditSummaryValues","Node","Button","onClick","onPromoteToSeller","promoteToSellerLabel","buttonReference","onSelectCustomerAccount","onSelectFullOrg","onSelectPromoteToSeller","popoverReference","requestStatementDropdownString","Random","Guid","generateGuid","innerRef","id","Popover","isOpen","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","focus","onBlurToDate","Modal","horizontalPosition","verticalPosition","autoFocus","fade","ModalHeader","ModalBody","htmlFor","type","onBlur","onChange","max","min","ModalFooter","disabled","_ref5","_ref6","_ref7","_ref8","TelemetryConstant","BackToShopping","href","AccountGenericTile","AccountLoyaltyTile","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","loyaltyCard","url","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","AccountLoyalty","_populateModalData","focusRef","currentLoyaltyPoints","expiring","RewardPointId","currentModalData","isModalExpiring","modalID","currentFocus","getLoyaltyRewardPointsExpiringSoonAsync","queryResultSettings","then","pointsActivity","catch","exception","debug","getLoyaltyRewardPointActivityTimelineAsync","message","_closeModal","_onOpenModal","_this$state$currentFo","current","_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","key","zIndex","onClosed","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","params","isEditor","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","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","AccountWelcomeTile","accountInfo","accountInformation","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","RequestsTableColumnHeader","getUserName","StringExtensions","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","getDetails","_requestDetails$Invoi","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","invoiceId","InvoiceId","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","_context$request$quer","tableData","operationRequests","ArrayExtensions","hasElements","_request$TypeValue","_request$StatusValue","row","b2bRequestsTypeColumn","TableDataType","Text","b2bRequestsRequestDateColumn","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","StatusValue","isSelected","createTableItems","headings","filter","isMobile","mobileExcludedColumns","sortable","columnSortAriaLabel","rows","editLinkText","deleteLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","showPagination","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","b2bRequestsPreviousText","nextText","b2bRequestsNextText","paginationText","reqContext","MsDyn365","isBrowser","URL","location","requestUrl","isSingleSelectOnly","onDelete","onView","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","B2bRequestsTable","Table","B2bRequestsStatus","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","Viewport","b2bRequestsStatus","table","defaultClassName","B2bRequestsTileLinks","B2bRequestsTile","b2bRequestsTile","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","IssueLoyaltyInput","apiSettings","issueLoyalty","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","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","isJoining","qsps","qsp","splitQsp","hideToggle","slots","serviceTerms","modalToggle","joinLoyaltytermsToggleText","card","redirectToLoyalty","getUrlSync","getLoyaltyCardAsync","fullCard","update","GetLoyaltyCardInput","successClassName","PasswordResetVerification","getValue","v1Value","v2Value","templateVersion","passwordResetVerification","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","passwordResetVerificationLocalAccount","verificationControlWrapper","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cssClassName","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","PasswordResetVerificationItem","PasswordResetVerificationLoading","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","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","isEmailVerificationRequried","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","UX_INPUT_TYPE","signUp","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","signUpLocalAccount","emailVerification","isRequired","buttonWrapper","SignUpButtonComponent","SignUpSuccessComponent","SignUpErrorComponent","givenNameVerification","surnameVerification","signUpButtonArialabel","cancelButtonArialabel","SignUpLabelComponent","SignUpInputComponent","SignUpItem","SignUpEmailVerification","SignUpGivenNameVerificationComponent","SignUpSurnameVerificationComponent","SignUpLoading","SignUpButton","SignUpError","SignUpInput","fieldReference","InputType","TextArea","ref","SignUpLabel","BusinessSignUpRadioButtonOption","InputID","renderInputSection","inputs","needToReset","onInputChange","showErrors","addressForm","updateAddress","element","maxChars","customClass","radioButtonOptions","radioButtonGroupClass","baseSignUpItem","Address","isAddressInput","updateForm","resetAddress","splice","RadioButton","BusinessSignUp","_this","prospectRadioButtonName","BusinessSignUpDefaultInputs","ProspectType","prospectTypeLabel","prospectTypeBuyerLabel","_onInputChange","prospectTypeSellerLabel","firstNameLabel","lastNameLabel","emailAddressLabel","CompanyName","companyLabel","Department","departmentLabel","JobTitle","jobTitleLabel","Size","companySizeLabel","companyAddressLabel","Comment","commentLabel","formChildReference","needsToReset","_onAddressChange","errors","currentAddress","newForm","formItems","addressItem","find","addressHasErrors","showAddressErrors","isReady","_isFormReady","currentInput","match","_onSubmit","preventDefault","firstName","_getItem","lastName","companyName","companyEmail","companyAddress","jobTitle","department","companySize","comments","prospectType","newPartner","CompanySize","Comments","ProspectTypeValue","createProspectAsync","successPageURL","confirmationLink","hasSubmitErrors","_onCancel","cleanForm","isAddress","arguments","_addedReference","_this$formChildRefere","businessSignUp","ContainerWrapper","businessSignUpForm","_renderForm","partialAddressErrorMessage","addressSlot","form","FormWrapper","RichTextComponent","newFormFields","BusinessSignUpItem","FormInput","isDisabled","placeholder","FormLabel","asteriskText","FormButton","FormFieldError","FormType","asteriskAfterLabel","BusinessOrganizationList","_this$props$config","BusinessFormDefaultInputs","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","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","cell","fullName","lastSpaceIndex","lastIndexOf","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","prev","refresh","formItem","_formatPrice","price","_getCurrentUrl","_getViewport","device","Type","innerWidth","xs","w","sm","md","lg","_toggleStatementRequestDropdown","_promoteToSeller","promoteToSellerUrl","currentUser","users","_getB2BUserId","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","Status","_viewport","_updateViewport","submitButtonReference","addedReference","isNullOrWhitespace","selectedUserName","businessUserSelectedUserDisplayName","addEventListener","componentWillUnmount","removeEventListener","_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","_createTableProps","toggleModal","_renderUserForm","_renderUserDetails","requestAccountStatementButton","selectedOrganizationLabel","tableSort","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","_createTableItems","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","resourcePrefix","tableAriaLabel","tableTabIndex","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","FullName","buttonReferences","edit","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","BusinessFormItem","BusinessUserForm","BusinessUserDetails","userFullName","keys","headingSection","bodySection","footerSection","wrapClassName","ButtonList","_getForm","formProps","call","fixRegExpWellKnownSymbolLogic","anObject","isNullOrUndefined","toLength","requireObjectCoercible","getMethod","advanceStringIndex","regExpExec","MATCH","nativeMatch","maybeCallNative","regexp","O","matcher","RegExp","string","rx","S","res","done","global","fullUnicode","unicode","lastIndex","A","n","matchStr"],"sourceRoot":""}