{"version":3,"file":"static/js/24.239522e89bc58827cbb4.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.tsx?2f8c","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/components/account-address-tile-description.tsx?4911","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/components/account-address-tile-links.tsx?bee7","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?8281","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?44e9","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?95ac","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://Msdyn365.Commerce.Online/./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack://Msdyn365.Commerce.Online/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.tsx?0983","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { 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 { 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 { 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 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 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 } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignUpButton: React.FC = ({ id, className, text, ariaLabel, disabled, onClick }) => (\n \n);\n\nexport default SignUpButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignUpError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpInputProps {\n id?: string;\n hasFocus?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignUpInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignUpInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default SignUpInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingIcon {\n className: string;\n}\n\nconst SignUpLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignUpLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignUpLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignUpLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default SignUpSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex, PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignUpButtonComponent from './components/sign-up-button';\nimport SignUpErrorComponent from './components/sign-up-error';\nimport SignUpInputComponent from './components/sign-up-input';\nimport SignUpLabelComponent from './components/sign-up-label';\nimport SignUpLoadingIconComponent from './components/sign-up-loading-icon';\nimport SignUpLoadingMessageComponent from './components/sign-up-loading-message';\nimport SignUpSuccessComponent from './components/sign-up-success';\nimport { ISignUpConfig, ISignUpProps, ISignUpResources } from './sign-up.props.autogenerated';\n\nexport interface ISignUpViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignUpItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignUpEmailVerification {\n isRequired: boolean;\n email: ISignUpItem;\n buttonWrapper: INodeProps;\n buttons: React.ReactNode[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Given Name Verification Interface.\n */\nexport interface ISignUpGivenNameVerification {\n isRequired: boolean;\n givenName: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Surname Verification Interface.\n */\nexport interface ISignUpSurnameVerification {\n isRequired: boolean;\n surname: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\nexport interface ISignUpLocalAccount {\n localAccount: INodeProps;\n items: ISignUpItem[];\n emailVerification: ISignUpEmailVerification;\n givenNameVerification: ISignUpGivenNameVerification;\n surnameVerification: ISignUpSurnameVerification;\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface ISignUpLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignUpViewProps {\n className: string;\n viewState: ISignUpViewState;\n loading: ISignUpLoading;\n signUp: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n signUpLocalAccount: ISignUpLocalAccount;\n}\n\n/**\n *\n * SignUp component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignUp extends React.Component> {\n @observable private isGivenNameVerificationRequried: boolean;\n\n @observable private isSurnameVerificationRequried: boolean;\n\n private readonly moduleClassName: string = 'ms-sign-up';\n\n @observable private emailRegex: string;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isEmailVerificationRequried: boolean;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignUpProps) {\n super(props);\n\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isEmailVerificationRequried = false;\n this.isGivenNameVerificationRequried = false;\n this.isSurnameVerificationRequried = false;\n this.isInitialized = false;\n this.templateVersion = '';\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignUpProps, nextState: ISignUpViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n signUpLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n * @returns - Heading Text.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n * @returns - Paragraph Text.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.disclaimer = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\n switch (obj.ID.toLowerCase()) {\n case 'emailverificationcontrol': {\n this.isEmailVerificationRequried = true;\n this.templateVersion = 'v2';\n break;\n }\n case 'email': {\n this.emailRegex = obj.PAT;\n this.isEmailVerificationRequried = obj.VERIFY;\n this.templateVersion = 'v1';\n break;\n }\n case 'givennameverificationcontrol': {\n this.isGivenNameVerificationRequried = true;\n break;\n }\n case 'givenname': {\n this.isGivenNameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'surnameverificationcontrol': {\n this.isEmailVerificationRequried = true;\n break;\n }\n case 'surname': {\n this.isSurnameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n\n switch (obj.UX_INPUT_TYPE.toLowerCase()) {\n case 'password': {\n obj.PAT_DESC = resources.invalidPasswordError;\n break;\n }\n case 'emailbox': {\n obj.PAT_DESC = resources.invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n required_field: resources.requiredFieldMissingError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n\n private _renderLocalAccount(): ISignUpLocalAccount {\n const { config, resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', resources.lastNameLabelText, resources.lastNameMaxLength),\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, undefined, this.reenterPasswordRegex)\n ],\n emailVerification: {\n isRequired: this.isEmailVerificationRequried,\n email: this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n buttonWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n buttons: [\n ,\n ,\n ,\n \n ],\n successMessage: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n \n ]\n },\n givenNameVerification: {\n isRequired: this.isGivenNameVerificationRequried,\n givenName: this._renderInput(\n this.getValue('givenName_ver_input', 'givenNameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'givenNameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n surnameVerification: {\n isRequired: this.isSurnameVerificationRequried,\n surname: this._renderInput(\n this.getValue('surname_ver_input', 'surnameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'surnameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n buttons: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): ISignUpItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default SignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignUpEmailVerification,\n ISignUpGivenNameVerification,\n ISignUpItem,\n ISignUpLoading,\n ISignUpLocalAccount,\n ISignUpSurnameVerification,\n ISignUpViewProps\n} from './sign-up';\n\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\n return (\n <>\n {successMessage &&\n successMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {errorMessage &&\n errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode) => {\n return <>{button};\n })}\n \n \n );\n};\n\n/**\n * Handles validation of sign-up givenName.\n * @param event - Content editable event.\n * @param event.givenName - Event Given Name.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for Given Name.\n */\nconst SignUpGivenNameVerificationComponent: React.FC = ({ givenName, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\n/**\n * Handles validation of signUp surname.\n * @param event - Content editable event.\n * @param event.surname - Event surname.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for surname.\n */\nconst SignUpSurnameVerificationComponent: React.FC = ({ surname, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n emailVerification,\n givenNameVerification,\n surnameVerification,\n buttons,\n errorMessage,\n disclaimer\n}) => {\n return (\n \n {items &&\n items.map((item: ISignUpItem) => {\n if (item.key === 'email' && emailVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'surname' && surnameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n );\n};\n\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignUpView: React.FC = props => {\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading, signUpLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(signUpLocalAccount)}\n \n \n );\n};\n\nexport default SignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext, getUrlSync } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading, showBecomeSellerLink } = config;\n const {\n businessUserActionButtonText,\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n promoteToSellerActionLabel,\n requestAccountStatementActionLabel,\n requestOrganizationStatementActionLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

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

{businessUserRemoveModalDescription}

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

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n };\n\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _promoteToSeller = () => {\n const promoteToSellerUrl = getUrlSync('businessPartnerPromotion', this.props.context.actionContext);\n if (promoteToSellerUrl && MsDyn365.isBrowser) {\n window.location.href = promoteToSellerUrl;\n }\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from './business-organization-list';\nimport { IBusinessFormItem } from './components/small-components';\n\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n const { FirstName, LastName } = selectedUser;\n const userFullName = `${FirstName} ${LastName}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = resources[`table${data}HeadingText`] || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst _getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\nconst _renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\nconst BusinessOrganizationList: React.FC = props => {\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const ButtonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && _getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InputType } from '../business-organization-list';\n\nexport interface IBusinessForm {\n FormWrapper: INodeProps;\n message?: React.ReactNode;\n items: IBusinessFormItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n}\n\nexport interface IBusinessFormItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IBusinessFormInput {\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IUserFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n isDisabled?: boolean;\n customClass?: string;\n fieldReference?: React.RefObject;\n}\n\nexport interface IBusinessFormInputProps {\n id?: string;\n type: string;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n isDisabled?: boolean;\n placeholder?: string;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport const FormInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n isDisabled,\n onChange,\n fieldReference,\n placeholder\n}) => (\n \n);\n\nexport interface IBusinessFormLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n asteriskText: string;\n}\n\nexport const FormLabel: React.FC = ({ id, forId, className, text, asteriskText }) => (\n \n);\n\nexport interface IBusinessFormButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const FormButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport interface IBusinessFormErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const FormFieldError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBusinessFormItem,\n IBusinessOrganizationListViewProps,\n IFormViewProps,\n InputID\n} from '@msdyn365-commerce-modules/business-organization-list';\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBusinessOrganizationListProps,\n IBusinessOrganizationListResources\n} from '../definition-extensions/business-organization-list.ext.props.autogenerated';\n\n/**\n * Business Form Item component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\n const { wrapper, label, errorMessage, input } = props;\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\n/**\n * To render modal.\n * @param className - The modal classname.\n * @param isModalOpen - The boolean for modal open status.\n * @param headingSection - The heading section of modal.\n * @param bodySection - The body section of modal.\n * @param footerSection - The footer section of modal.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\n/**\n * Business User Form component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * Selected user interface.\n */\ninterface ISelectedUser {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n FirstName?: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n LastName?: string;\n}\n\n/**\n * Business User Details component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n const selectedUser = props.selectedUser as ISelectedUser | string;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { FirstName, LastName } = selectedUser as ISelectedUser;\n const userFullName = `${FirstName as string} ${LastName as string}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = (resources[`table${data}HeadingText`] as string) || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * To get form.\n * @param type - The type of form.\n * @param formProps - The form props.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\n/**\n * Business Organization List component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessOrganizationListComponent: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const buttonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n \n \n {props.resources.headingForEmptyUserOrganizationList}\n \n \n {props.resources.textForEmptyUserOrganizationList}\n \n {buttonList}\n \n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {buttonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationListComponent;\n"],"names":["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","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","shouldComponentUpdate","nextProps","nextState","isCustomerAccountPaymentEnabled","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","_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","canSubmitStatementRequest","onSubmitRequest","selectedUser","selectedUserLabel","maxDateString","currency","date","Intl","DateTimeFormat","locale","month","day","year","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","AccountLoyaltyTile","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","loyaltyCard","url","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","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","map","obj","PRE","_htmlDecode","ID","PAT","PAT_DESC","message","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","key","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","labelText","maxLength","pattern","wrapper","AccountProfileEditLabelComponent","forId","input","AccountProfileEditInputComponent","observable","observer","AccountProfileEditItem","Node","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","replace","formatDate","cultureFormatter","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","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","IssueLoyaltyInput","apiSettings","issueLoyalty","then","catch","debug","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","returnFocusRef","returnRef","modalHeader","modalFooter","cancelButton","cancelLoyaltyTermsText","submitButton","onSubmit","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","bind","_submit","_checkboxChecked","toggleRef","search","isJoining","substring","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","disclaimer","isEmailVerificationRequried","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","UX_INPUT_TYPE","invalidPasswordError","errorMessages","signUp","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","signUpLocalAccount","passwordLabelText","emailVerification","isRequired","buttonWrapper","SignUpButtonComponent","SignUpSuccessComponent","SignUpErrorComponent","givenNameVerification","surnameVerification","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","SignUpLabelComponent","SignUpInputComponent","SignUpItem","SignUpEmailVerification","SignUpGivenNameVerificationComponent","SignUpSurnameVerificationComponent","_ref4","SignUpLoading","FormType","InputType","InputID","renderInputSection","inputs","asteriskAfterLabel","onInputChange","element","customClass","maxChars","isDisabled","fieldReference","FormLabel","asteriskText","FormFieldError","FormInput","placeholder","BusinessOrganizationList","_this$props$config","BusinessFormDefaultInputs","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","isFormActive","formType","Add","referenceBack","addUserButtonReference","current","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","async","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","find","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","toString","_getCurrentUrl","_getViewport","device","Type","innerWidth","gridSettings","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","businessUserSelectedUserDisplayName","addEventListener","componentWillUnmount","removeEventListener","_this$formChildRefere","_this$submitButtonRef","_this$props$data$cust","showBecomeSellerLink","businessUserActionButtonText","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","promoteToSellerActionLabel","requestAccountStatementActionLabel","requestOrganizationStatementActionLabel","statementRequestModalHeaderLabel","hasUsers","AddUser","addUserAttributes","errorProps","OrganizationUserList","moduleContainer","addUserButton","noUsersText","modalState","organizationListTable","_createTableProps","toggleModal","form","_renderUserForm","_renderUserDetails","requestAccountStatementButton","selectedOrganizationLabel","selectedUserName","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","modalClassName","FormWrapper","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","BusinessFormItem","BusinessUserForm","_renderModal","BusinessUserDetails","userFullName","keys","headingSection","bodySection","footerSection","wrapClassName","ButtonList","_getForm","formProps","ref","BusinessFormItemComponent","renderModal","BusinessUserFormComponent","BusinessUserDetailsComponent","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm"],"sourceRoot":""}