{"version":3,"file":"static/js/3.2bc550eabb0d11b5c887.chunk.js","mappings":"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","sources":["webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/aad-generic/aad-generic.view.tsx?b418","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-address-tile/account-address-tile.tsx?2f8c","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-address-tile/components/account-address-tile-description.tsx?4911","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-address-tile/components/account-address-tile-links.tsx?bee7","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?8281","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?44e9","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?95ac","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-generic-tile/account-generic-tile.tsx?4353","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-generic-tile/components/account-generic-tile-links.tsx?2bc7","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?7378","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?81f3","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-invoice-tile/account-invoice-tile.tsx?c17e","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-loyalty/account-loyalty.tsx?3672","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-loyalty/account-loyalty.view.tsx?4d8b","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-loyalty/components/account-loyalty-small-components.tsx?c12b","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-profile/components/account-profile-attributes.tsx?bcc2","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-profile/components/account-profile-links.tsx?8faf","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-profile/account-profile.tsx?fe69","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-profile/account-profile.view.tsx?b964","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-profile/components/account-profile-description.tsx?770a","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-profile/components/account-profile-text.tsx?8115","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?d6f5","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?3b33","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?f1c7","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/organization-users-tile/organization-users-tile.tsx?f5de","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset/password-reset.tsx?0983","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-in/components/sign-in-button.tsx?8d59","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-in/components/sign-in-description.tsx?54a5","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-in/components/sign-in-error.tsx?a75a","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-in/components/sign-in-input.tsx?d840","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-in/components/sign-in-label.tsx?4560","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-in/components/sign-in-link.tsx?2078","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-in/components/sign-in-loading-icon.tsx?1d7f","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-in/components/sign-in-loading-message.tsx?84ee","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-in/components/sign-in-text.tsx?76b9","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-in/sign-in.tsx?259c","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-in/sign-in.view.tsx?2b3e","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://@msdyn365-commerce-partners/fabrikam/./src/modules/sign-up/sign-up.view.tsx?08eb"],"sourcesContent":["/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAadGenericData } from './aad-generic.data';\nimport { IAadGenericProps } from './aad-generic.props.autogenerated';\n\nexport interface IAadGenericViewProps extends IAadGenericProps {\n aadGeneric: IModuleProps;\n aadConainer: INodeProps;\n aadAPIConainer: React.ReactNode;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AadGeneric component.\n * @extends {React.Component>}\n */\nclass AadGeneric extends React.Component> {\n private readonly moduleClassName: string = 'ms-aad-generic';\n\n public componentDidMount(): void {\n // @ts-expect-error\n const { $i2e, $element } = window || {};\n\n if ($i2e && $element) {\n $i2e.insertServiceContent($element.getElementContent());\n $element.initialize();\n }\n }\n\n public shouldComponentUpdate(nextProps: IAadGenericViewProps): boolean {\n\n if (nextProps.config.heading !== this.props.config.heading) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n\n const viewProps = {\n ...this.props,\n aadGeneric: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n aadConainer: {\n className: `${this.moduleClassName}__container`\n },\n aadAPIConainer:
,\n heading: heading && \n };\n\n return this.props.renderView(viewProps);\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.heading) {\n this.props.config.heading.text = event.target.value;\n }\n };\n}\n\nexport default AadGeneric;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const {\n aadGeneric,\n aadConainer,\n aadAPIConainer,\n heading\n } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\n \n \n );\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountAddressTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\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 customerInformation = data.customerInformation.result;\n const addressCount = (address && address.result && address.result.length) || 0;\n const accountAddressTileDescription = 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 && customerInformation?.IsAsyncCustomer !== true &&\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. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\ninterface IAccountAddressTileDescription {\n description: string;\n}\n\nconst IAccountAddressTileDescription: React.FC = ({ description }) => (\n

\n {description}\n

\n);\n\nexport default IAccountAddressTileDescription;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 ? : 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\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(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\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 isB2BCustomer = customerResult ? customerResult.IsB2b : false;\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BCustomer) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BCustomer))\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState): 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 = 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 (account.Balance === 0 && account.CreditLimit === 0) {\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 const customerCredit = account.CreditLimit - account.Balance;\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. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt 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 \n {error}\n \n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n \n {value}\n \n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n \n {label}\n \n \n {value}\n \n
\n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 = ({ 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 ? : 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { BusinessPartnerUsersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { AccountStatementRequest, BusinessPartnerOperationDeliveryType } 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}\n\n/**\n *\n * AccountCustomerBalance component.\n * @extends {React.PureComponent>}\n */\nclass AccountCustomerBalance extends React.PureComponent, IAccountCustomerBalanceState> {\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(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n this.state = {\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false\n };\n }\n\n public render(): JSX.Element | null {\n const customer = get(this.props, 'data.customerInformation.result');\n const account = 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 } = resources;\n\n const { isStatementRequestModalOpen, statementRequestFromDateString, statementRequestToDateString } = 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 const excess = account.Balance - account.CreditLimit;\n const creditExcess = excess > 0 ? this._formatCurrency(excess) : null;\n const availableCredit = this._formatCurrency(account.CreditLimit - account.Balance);\n const balanceOwed = this._formatCurrency(account.Balance);\n const backLink = Msdyn365.getUrlSync('home', context.actionContext) || '';\n const emailAddress = customer.Email;\n const isB2BUser = customer.IsB2b;\n const isB2BAdmin = isB2BUser && customer.IsB2bAdmin;\n\n const actionBar = isB2BAdmin ? (\n \n ) : isB2BUser && ;\n\n const viewProps = {\n ...this.props,\n heading: ,\n accountSectionHeading: ,\n accountLabels: (\n \n ),\n accountValues: ,\n creditSummarySectionHeading: ,\n availableCredit: (\n \n ),\n balanceOwed: (\n \n ),\n creditExcess: (\n \n ),\n homeButton: ,\n actions: actionBar,\n requestStatementModal: (\n isB2BUser &&\n (\n \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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceViewProps } from './account-customer-balance';\n\nexport default (props: IAccountCustomerBalanceViewProps) => {\n const {\n heading,\n accountSectionHeading,\n creditSummarySectionHeading,\n accountLabels,\n accountValues,\n creditSummaryLabels,\n creditSummaryValues,\n homeButton,\n actions,\n requestStatementModal,\n availableCredit,\n balanceOwed,\n creditExcess\n } = props;\n\n return (\n \n {heading}\n {requestStatementModal}\n {actions}\n {accountSectionHeading}\n
\n {accountLabels}\n {accountValues}\n
\n {creditSummarySectionHeading}\n
\n {creditSummaryLabels}\n {creditSummaryValues}\n {availableCredit}\n {balanceOwed}\n {creditExcess}\n
\n {homeButton}\n
\n );\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\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}\n\ninterface IAdminRequestStatementProps {\n className?: string;\n requestStatementButtonLabel: string;\n myUserAccountLabel: string;\n fullOrganizationLabel: string;\n isDropdownShowing: boolean;\n buttonReference?: React.RefObject;\n onToggleDropdown(): void;\n onRequestStatement(isFullOrg: boolean): 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, onRequestStatement, requestStatementButtonLabel,\n onToggleDropdown, myUserAccountLabel, fullOrganizationLabel,\n isDropdownShowing, 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 popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n\n return (\n
\n \n \n {requestStatementButtonLabel}\n \n \n \n \n {myUserAccountLabel}\n \n \n {fullOrganizationLabel}\n \n \n
\n );\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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}\n\nexport const RequestStatementModal: React.FC = ({ className, email, isModalOpen, toggle, fromDateString, toDateString, onChangeFromDate, onChangeToDate, canSubmitRequest,\n modalHeaderLabel, sendToEmailLabel, fromDateLabel, toDateLabel, submitRequestLabel, cancelLabel, onSubmitRequest, selectedUser, selectedUserLabel }) => {\n\n const onChangeFromDateEvent = React.useCallback((event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeFromDate(value);\n }, [onChangeFromDate]);\n\n const onChangeToDateEvent = React.useCallback((event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeToDate(value);\n }, [onChangeToDate]);\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((event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== fromDateString) {\n event.target.focus();\n }\n }, [fromDateString]);\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((event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== toDateString) {\n event.target.focus();\n }\n }, [toDateString]);\n\n return (\n \n \n {modalHeaderLabel}\n \n \n \n
\n
\n {email}\n
\n {\n selectedUser && (\n
\n {selectedUserLabel}\n \n {selectedUser}\n \n
\n )\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. All rights reserved.\n * See License.txt 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

\n {name}\n

\n
\n #\n {accountNumber}\n
\n
\n {customerSincePrefix}\n {' '}\n {createdOn}\n
\n
\n);\n\nexport const AccountValues: React.FC = ({ availableCredit, availableCreditLabel }) => (\n
\n
\n {availableCreditLabel}\n
\n
\n {availableCredit}\n
\n
\n);\n\nexport const CreditSummaryLabels: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
\n {availableCredit}\n
\n
\n {balanceOwed}\n
\n
\n {creditExcess}\n
\n
\n);\n\nexport const CreditSummaryValues: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
\n {availableCredit}\n
\n
\n {balanceOwed}\n
\n {creditExcess &&
\n {creditExcess}\n
}\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
\n {availableCreditLabel}\n
\n
\n
\n
\n {availableCredit}\n
\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
\n {balanceOwedLabel}\n
\n
\n
\n
\n {balanceOwed}\n
\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 &&
\n {creditExcess}\n
}\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 {\n AdminRequestStatementButton,\n RequestStatementModal\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport {\n IAccountGenericTileConfig, IAccountGenericTileProps\n} from './account-generic-tile.props.autogenerated';\nimport LinksComponent from './components/account-generic-tile-links';\n\nexport interface IAccountGenericTileViewProps extends IAccountGenericTileProps {\n AccountGenericTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * AccountGeneric component.\n * @extends {React.PureComponent>}\n */\nclass AccountGenericTile extends React.PureComponent> {\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountGenericTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const viewProps = {\n ...this.props,\n className,\n AccountGenericTile: {\n moduleProps: this.props,\n className: classnames('ms-account-generic-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading!.text = event.target.value;\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountGenericTile;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountGenericTileViewProps } from './account-generic-tile';\n\nconst AccountGenericTileView: React.FC = props => {\n const { AccountGenericTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default AccountGenericTileView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-generic-tile.props.autogenerated';\n\nexport interface IAccountGenericTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountGenericTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n { editableLinks && editableLinks.length > 0 ? : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-generic-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountGenericTileLinks;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nexport interface IAccountInvoiceTileDescription {\n description: string;\n}\n\nexport const AccountInvoiceTileDescription: React.FC = ({ description }) => (\n

\n {description}\n

\n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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-invoice-tile.props.autogenerated';\n\nexport interface IAccountInvoiceTileLinks {\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 AccountInvoiceTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n { editableLinks && editableLinks.length > 0 ? : 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-invoice-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 AccountInvoiceTileLinks;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 { IAccountInvoiceTileData } from './account-invoice-tile.data';\nimport { IAccountInvoiceTileProps } from './account-invoice-tile.props.autogenerated';\nimport { AccountInvoiceTileDescription } from './components';\nimport LinksComponent from './components/account-invoice-tile-links';\n\nexport interface IAccountInvoiceTileViewProps extends IAccountInvoiceTileProps {\n AccountInvoiceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n\n}\n\n/**\n *\n * AccountInvoiceTile component.\n * @extends {React.PureComponent>}\n */\nclass AccountInvoiceTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountInvoiceTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public render(): JSX.Element {\n const {\n config,\n data,\n resources,\n context: {\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n }\n } = this.props;\n const { className, heading, links } = config;\n const { accountInvoiceTileDescription } = resources;\n\n const openinvoiceAmount = data.customerBalance.result?.OpenInvoiceBalance || 0;\n const invoiceTotalAmount: string | undefined = formatCurrency(openinvoiceAmount.toFixed(2), currencyCode);\n\n const description = invoiceTotalAmount && format(accountInvoiceTileDescription, invoiceTotalAmount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountInvoiceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-invoice-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && ,\n description: 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 AccountInvoiceTile;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 ? : 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. All rights reserved.\n * See License.txt 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\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountLoyaltyTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\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 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}\n\nexport default AccountLoyaltyTile;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\ninterface IAccountLoyaltyTileDescription {\n description: string;\n}\n\nconst IAccountLoyaltyTileDescription: React.FC = ({ description }) => (\n

\n {description}\n

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

\n { text }\n

\n);\n\nexport interface IAccountLoyaltyModalLabel {\n className?: string;\n text?: string | number;\n labelFor?: string;\n}\n\nexport const AccountLoyaltyModalLabel: React.FC = ({ className, text, labelFor }) => (\n \n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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

\n {description}\n

\n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 = ({ links, onTextChange, telemetryContent, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n { editableLinks && editableLinks.length > 0 ? : 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. All rights reserved.\n * See License.txt 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 { 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\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountOrderTemplatesTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const RetailB2BEcommerceFeatureState = this.props.data.featureState.result?.find(featureState => featureState.Name === 'Dynamics.AX.Application.RetailB2BEcommerceFeature');\n if (!this.props.context.request.params.isEditor &&\n (!RetailB2BEcommerceFeatureState?.IsEnabled || !this.props.data.customerInformation.result?.IsB2b)) {\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 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. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt 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 {\n getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody\n} 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 {\n IAccountProfileEditConfig, IAccountProfileEditProps\n} 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\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 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(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\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: IAccountProfileEditProps,\n nextState: IAccountProfileEditViewState): 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\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 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((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\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(this._renderInput('email', 'email', this.email, resources.emailAddressLabelText, undefined, this.emailRegex));\n }\n\n return localAccount;\n }\n\n private _renderInput(id: string, type: string, value: string, labelText: string, maxLength?: string, pattern?: string): IAccountProfileEditItem {\n const className = `${this.moduleClassName}__account-item`;\n return (\n {\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 }\n\n}\n\nexport default AccountProfileEdit;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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, IAccountProfileEditLoading, IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: React.FC = ({\n wrapper,\n label,\n errorMessage,\n input\n}) => {\n\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\n return (\n \n {items && items.map((item: IAccountProfileEditItem) => {\n return (\n\n \n );\n })}\n {errorMessage && errorMessage.map((error: React.ReactNode, index: number) => {\n return (\n \n {error}\n \n );\n })}\n \n {buttons && buttons.map((button: React.ReactNode, index: number) => {\n return (\n \n {button}\n \n );\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({\n modal,\n modalBody,\n icon,\n message\n}) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n\n const {\n accountProfileEdit,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n accountProfileEditLocalAccount\n } = 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. All rights reserved.\n * See License.txt 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 = ({ id, className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n {text}\n );\n};\n\nexport default AccountProfileEditButton;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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};\n\nexport default AccountProfileEditError;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 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 = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default AccountProfileEditInput;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt 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
\n {message}\n
\n);\n\nexport default AccountProfileEditLoadingMessage;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport MsDyn365, { IDictionary, Text } from '@msdyn365-commerce/core';\nimport { AttributeDefinition, Customer, CustomerAttribute } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { StringExtensions, updateCustomerAttributes, updateCustomerAttributesInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, format, getPayloadObject, getTelemetryAttributes, getTelemetryObject, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from '../account-profile.data';\nimport { IAccountProfileProps } from '../account-profile.props.autogenerated';\nimport TextComponent from './account-profile-text';\n\ninterface IAttributePropertiesType {\n Name?: string;\n IsMandatory?: boolean;\n}\n\nexport interface IAccountProfileAttributesProps {\n accountProfileProps: IAccountProfileProps;\n}\n\nexport enum AccountAttributeDataTypeValue {\n Decimal = 3,\n Integer = 4,\n Text = 5,\n TrueFalse = 6\n}\n\nexport interface IAttributePayloadData {\n recordId?: number;\n name?: string;\n dataTypeValue?: number;\n isEnumeration?: boolean;\n lowerBoundValue?: number;\n upperBoundValue?: number;\n decimalValue?: number;\n integerValue?: number;\n textValue?: string;\n booleanValue?: boolean;\n isMandatory?: boolean;\n defaultValue?: string;\n}\n\nexport interface IAccountProfileAttributesState extends React.ComponentState {\n editAttributes: boolean;\n phone: string;\n vatNumber: string;\n attributes: IDictionary;\n attributeError: IDictionary;\n}\n\n/**\n *\n * AccountProfileAttributes class.\n * @extends {React.PureComponentIAccountProfileAttributesProps, IAccountProfileAttributesState>}\n */\n@observer\nclass AccountProfileAttributes extends React.Component {\n private readonly attributePayloadData: IAttributePayloadData[];\n\n @observable private isUpdatingAttributes: boolean = false;\n\n @observable private gotException: boolean = false;\n\n private hasError: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private initialAttributes: IDictionary;\n\n private initialCustomerAttributes?: CustomerAttribute[];\n\n private initialPhone: string;\n\n private initialVatNumber: string;\n\n private readonly payLoad: IPayLoad;\n\n private readonly editRef: React.RefObject;\n\n private readonly attributesContainerRef: React.RefObject;\n\n private readonly attributeClassName: string = 'ms-account-profile__attributes-element';\n\n private readonly maxIntegerLimit: number = 2_100_000_000;\n\n private readonly minIntegerLimit: number = -2_100_000_000;\n\n private readonly maxDecimalLimit: number = 7_900_000_000_000;\n\n private readonly minDecimalLimit: number = -7_900_000_000_000;\n\n private readonly maxStringLength: number = 1000;\n\n private readonly maxVATNumberLength: number = 20;\n\n private readonly maxPhoneLength: number = 25;\n\n constructor(props: IAccountProfileAttributesProps) {\n super(props);\n this.state = {\n editAttributes: false,\n phone: '',\n vatNumber: '',\n attributes: {},\n attributeError: {}\n };\n this.initialAttributes = {};\n this.initialCustomerAttributes = [];\n this.initialPhone = '';\n this.initialVatNumber = '';\n this.attributePayloadData = [];\n const telemetryPageName = this.props.accountProfileProps && this.props.accountProfileProps.context && this.props.accountProfileProps.context.request && this.props.accountProfileProps.context.request.telemetryPageName || '';\n const friendlyName = this.props.accountProfileProps && this.props.accountProfileProps.friendlyName || '';\n const telemetry = this.props.accountProfileProps && this.props.accountProfileProps.telemetry || {};\n this.telemetryContent = getTelemetryObject(telemetryPageName, friendlyName, telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.editRef = React.createRef();\n this.attributesContainerRef = React.createRef();\n }\n\n public componentDidMount(): void {\n this._buildPayloadData();\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n reaction(\n () => this.props.accountProfileProps.data.customerInformation.result,\n () => {\n const customerInformation = this.props.accountProfileProps.data.customerInformation.result;\n this.initialCustomerAttributes = customerInformation && customerInformation.Attributes;\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n }\n );\n reaction(\n () => this.props.accountProfileProps.data.attributeDefinitions.result,\n () => {\n this._buildPayloadData();\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileAttributesProps,\n nextState: IAccountProfileAttributesState): boolean {\n if (this.state === nextState && this.props.accountProfileProps.data === nextProps.accountProfileProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n return this._renderAttributes();\n }\n\n private readonly _renderAttributes = (): JSX.Element | null => {\n const { config, data, resources } = this.props.accountProfileProps;\n const attributeDefinitions: AttributeDefinition[] = data.attributeDefinitions.result || [];\n const additionalInformationSectionHeading = config.additionalInformationSectionHeading && config.additionalInformationSectionHeading.text || '';\n const showAttributes = config.showAttributes || '';\n const attributes = showAttributes.split(',');\n const elements = attributes.map(att => {\n const attributeDefinition: AttributeDefinition = attributeDefinitions.find(attribute => attribute.IsHidden === false && attribute.Name!.toLocaleLowerCase() === att.toLocaleLowerCase()\n ) || { RecordId: 0 };\n return this._renderAttribute(attributeDefinition);\n });\n const edit = this.state && this.state.editAttributes || false;\n this.payLoad.contentAction.etext = `${resources.attributesEditButtonText} ${additionalInformationSectionHeading}`;\n const editAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesSaveButtonText} ${additionalInformationSectionHeading}`;\n const saveAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesCancelButtonText} ${additionalInformationSectionHeading}`;\n const cancelAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n return (\n
\n {config.additionalInformationSectionHeading && (\n \n )}\n {config.showPhone && (\n this._renderPhone()\n )}\n {config.showVatNumber && (\n this._renderVatNumber()\n )}\n {elements}\n {this.gotException && (\n
\n \n
\n )}\n {!edit && (\n \n {resources.attributesEditButtonText}\n \n )}\n {edit && (\n \n {resources.attributesSaveButtonText}\n \n )}\n {edit && (\n \n {resources.attributesCancelButtonText}\n \n )}\n
\n );\n };\n\n private readonly _renderPhone = (): JSX.Element | null => {\n const { phoneSectionHeading } = this.props.accountProfileProps.config;\n const heading = phoneSectionHeading && phoneSectionHeading.text || '';\n const className = heading && heading.replace(/ /g, '_') || '';\n const editAttributes = this.state && this.state.editAttributes || false;\n return (\n
\n {phoneSectionHeading && ()}\n \n {this._renderError('Phone')}\n
\n );\n };\n\n private readonly _renderVatNumber = (): JSX.Element | null => {\n const { vatNumberSectionHeading } = this.props.accountProfileProps.config;\n const heading = vatNumberSectionHeading && vatNumberSectionHeading.text || '';\n const className = heading && heading.replace(/ /g, '_') || '';\n const editAttributes = this.state && this.state.editAttributes || false;\n return (\n
\n {vatNumberSectionHeading && ()}\n \n {this._renderError('VATNumber')}\n
\n );\n };\n\n private readonly _renderAttribute = (customAttribute: AttributeDefinition): JSX.Element | null => {\n const editAttributes = this.state && this.state.editAttributes || false;\n const className = customAttribute.Name && customAttribute.Name.replace(/ /g, '_') || '';\n switch (customAttribute.ExtDataType && customAttribute.ExtDataType.Value) {\n case AccountAttributeDataTypeValue.Integer:\n case AccountAttributeDataTypeValue.Decimal:\n return this._renderIntegerDecimalInput(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.Text:\n return this._renderTextInputOrSelect(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.TrueFalse:\n return this._renderBoolean(customAttribute, className, editAttributes);\n default:\n return null;\n }\n };\n\n private readonly _renderIntegerDecimalInput = (customAttribute: AttributeDefinition, className: string, editAttributes: boolean): JSX.Element | null => {\n const edit = this.state && this.state.editAttributes || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderTextInputOrSelect = (customAttribute: AttributeDefinition, className: string, editAttributes: boolean): JSX.Element | null => {\n const isEnumeration: boolean = customAttribute.IsEnumeration || false;\n const edit = this.state && this.state.editAttributes || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n if (isEnumeration && customAttribute.EnumerationDetails) {\n const value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n return (\n
\n \n \n {hasNoValue && ()}\n {customAttribute.EnumerationDetails.map((option) => {\n const selected = option.EnumerationValue === this.state.attributes[customAttribute.Name || ''];\n return (\n {option.EnumerationValue}\n );\n })}\n \n
\n );\n }\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n\n };\n\n private readonly _renderBoolean = (customAttribute: AttributeDefinition, className: string, editAttributes: boolean): JSX.Element | null => {\n let value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n const render = !((hasNoValue && !editAttributes));\n value = value || 'false';\n const toggleState = value === 'true' && 'enable' || 'disable';\n const arialabel = format(this.props.accountProfileProps.resources.attributeToggleButtonAriaLabel, customAttribute.Name);\n const ariaPressed = value === 'true' && true || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n let toggleValue = 'false';\n if (value === 'true') {\n toggleValue = 'false';\n } else {\n toggleValue = 'true';\n }\n\n return (\n
\n \n {render && (\n
\n\n \n \n \n
\n )}\n
\n );\n };\n\n private readonly _renderError = (attributeName: string): JSX.Element | null => {\n const error: string = this.state && this.state.attributeError && this.state.attributeError[attributeName] || '';\n const hasError = !StringExtensions.isNullOrWhitespace(error);\n if (hasError) {\n return (\n
\n \n
\n );\n }\n return null;\n };\n\n private readonly _getAttributeProps = (attributeName: string): IAttributePropertiesType => {\n const attributePayloadData = this.attributePayloadData.find((att) => att.name === attributeName);\n const isMandatory: boolean = attributePayloadData && attributePayloadData.isMandatory || false;\n return {\n Name: isMandatory ? `${attributeName || ''} *` : attributeName || '',\n IsMandatory: isMandatory\n };\n };\n\n private readonly _onPhoneChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ phone: value });\n };\n\n private readonly _onVatNumberChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ vatNumber: value });\n };\n\n private readonly _enableAttributes = () => {\n this.hasError = false;\n\n // To clear exception messages\n this.gotException = false;\n this.setState({ editAttributes: true, attributeError: {} });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n if (this.attributesContainerRef.current) {\n const attributes: HTMLCollectionOf = this.attributesContainerRef.current.getElementsByClassName(this.attributeClassName);\n if (attributes && attributes.length > 0) {\n this._setFocus(attributes[0] as HTMLElement);\n }\n }\n }, 0);\n }\n };\n\n private readonly _disableAttributes = () => {\n this.setState({ editAttributes: false, attributeError: {}, attributes: this.initialAttributes, phone: this.initialPhone, vatNumber: this.initialVatNumber });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n };\n\n private readonly _onAttributeChange = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.target.value;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeCheck = (attributeDefinition: AttributeDefinition, value: string) => (event: React.MouseEvent) => {\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeSelect = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.currentTarget.selectedOptions[0].value;\n const index = event.currentTarget.selectedOptions[0].index;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n },\n selectedIndex: {\n ...this.state.selectedIndex,\n [name]: index\n }\n });\n };\n\n private readonly _getAttributes = () => {\n const { config, data } = this.props.accountProfileProps;\n const showAttributes = config.showAttributes || '';\n const showAttributesArray = showAttributes.split(',');\n const customer = data.customerInformation.result;\n const custmerAttributes: CustomerAttribute[] = customer && customer.Attributes || [];\n const attributes: IDictionary = {};\n\n showAttributesArray.forEach(showAttribute => {\n const attributePayloadData = this.attributePayloadData.find((att) => att.name === showAttribute);\n const isMandatory: boolean = attributePayloadData && attributePayloadData.isMandatory || false;\n const defaultValue = attributePayloadData && attributePayloadData.defaultValue;\n const attribute = custmerAttributes.find((att) => att.Name === showAttribute);\n let value: string = '';\n if (attribute && attribute.AttributeValue) {\n const name = attribute && attribute.Name || '';\n switch (attribute.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n if (attribute.AttributeValue.IntegerValue) {\n value = String(attribute.AttributeValue.IntegerValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n if (attribute.AttributeValue.DecimalValue) {\n value = String(attribute.AttributeValue.DecimalValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n if (attribute.AttributeValue.StringValue) {\n value = attribute.AttributeValue.StringValue;\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n if (attribute.AttributeValue.BooleanValue !== null) {\n value = String(attribute.AttributeValue.BooleanValue);\n attributes[name] = value;\n }\n break;\n default:\n\n // Do nothing\n }\n }\n if (StringExtensions.isNullOrWhitespace(value) && isMandatory) {\n attributes[showAttribute] = '';\n }\n if (value.length === 0 && defaultValue) {\n attributes[showAttribute] = String(defaultValue);\n }\n });\n if (Object.keys(this.initialAttributes).length === 0) {\n this.initialAttributes = attributes;\n }\n this.setState({ attributes });\n };\n\n private readonly _addOrUpdateAttribute = (customer: Customer) => {\n const { resources } = this.props.accountProfileProps;\n const { phone, vatNumber } = this.state;\n const attributeError: IDictionary = {};\n let hasError: boolean = false;\n let hasValue: boolean = true;\n for (const [key, value] of Object.entries(this.state.attributes)) {\n const payloadData: IAttributePayloadData = this.attributePayloadData.find(data => data.name === key) || {};\n if (payloadData) {\n switch (payloadData.dataTypeValue) {\n case AccountAttributeDataTypeValue.Decimal:\n const decimalValue = Number(value);\n if (isNaN(decimalValue)) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Decimal');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (decimalValue < payloadData.lowerBoundValue || decimalValue > payloadData.upperBoundValue) {\n const rangeError = format(resources.attributeInputRangeErrorText, payloadData.name, payloadData.lowerBoundValue, payloadData.upperBoundValue);\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (decimalValue > this.maxDecimalLimit) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputValueExceedsMaximumErrorText, payloadData.name, this.maxDecimalLimit);\n hasError = true;\n }\n\n if (decimalValue < this.minDecimalLimit) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputValueExceedsMinimumErrorText, payloadData.name, this.minDecimalLimit);\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.decimalValue = decimalValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Integer:\n const integerValue = Number(value);\n if (isNaN(integerValue) || value.includes('.')) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Integer');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (integerValue < payloadData.lowerBoundValue || integerValue > payloadData.upperBoundValue) {\n const rangeError = format(resources.attributeInputRangeErrorText, payloadData.name, payloadData.lowerBoundValue, payloadData.upperBoundValue);\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (integerValue > this.maxIntegerLimit) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputValueExceedsMaximumErrorText, payloadData.name, this.maxIntegerLimit);\n hasError = true;\n }\n\n if (integerValue < this.minIntegerLimit) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputValueExceedsMinimumErrorText, payloadData.name, this.minIntegerLimit);\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.integerValue = integerValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n let trimValue = '';\n if (!StringExtensions.isNullOrWhitespace(value)) {\n trimValue = value.trim();\n }\n if (trimValue.length > this.maxStringLength) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputStringMaxLengthErrorText, payloadData.name, this.maxStringLength);\n hasError = true;\n }\n if (!hasError) {\n payloadData.textValue = trimValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n payloadData.booleanValue = value === 'true';\n break;\n default:\n\n // Do nothing\n }\n\n if (payloadData.isMandatory && StringExtensions.isNullOrWhitespace(value)) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputMandatoryErrorText, payloadData.name);\n hasError = true;\n }\n\n const custmerAttributes: CustomerAttribute[] = customer && customer.Attributes || [];\n const attribute = custmerAttributes.find((att) => att.Name === key);\n const index = custmerAttributes.findIndex((att) => att.Name === key);\n\n if (index !== -1 && !hasValue) {\n custmerAttributes.splice(index, 1);\n }\n\n if (!hasError && hasValue) {\n if (attribute) {\n attribute.Attribute = undefined;\n attribute.DataTypeValue = payloadData.dataTypeValue;\n attribute.Name = payloadData.name;\n attribute.RecordId = payloadData.recordId;\n attribute.Units = undefined;\n attribute.AttributeValue = {\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n };\n attribute.ExtensionProperties = [];\n attribute.NameTranslations = [];\n } else {\n custmerAttributes.push({\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerAttribute',\n Attribute: undefined,\n DataTypeValue: payloadData.dataTypeValue,\n KeyName: payloadData.name,\n Name: payloadData.name,\n RecordId: payloadData.recordId,\n Units: undefined,\n AttributeValue: {\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommercePropertyValue',\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n },\n 'ExtensionProperties@odata.type': '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.CommerceProperty)',\n ExtensionProperties: [],\n 'NameTranslations@odata.type': '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.TextValueTranslation)',\n NameTranslations: []\n });\n }\n }\n }\n }\n\n if (phone.trim().length > this.maxPhoneLength) {\n attributeError.Phone = format(resources.attributeInputStringMaxLengthErrorText, 'Phone', this.maxPhoneLength);\n hasError = true;\n } else {\n customer.Phone = phone.trim();\n }\n\n if (vatNumber.trim().length > this.maxVATNumberLength) {\n attributeError.VATNumber = format(resources.attributeInputStringMaxLengthErrorText, 'VAT Number', this.maxVATNumberLength);\n hasError = true;\n } else {\n customer.VatNumber = vatNumber.trim();\n }\n\n this.hasError = hasError;\n this.setState({ attributeError });\n\n };\n\n private readonly _saveAttributes = async () => {\n const { context, data } = this.props.accountProfileProps;\n const customer = data.customerInformation.result;\n\n if (customer && context) {\n this._addOrUpdateAttribute(customer);\n const input = new updateCustomerAttributesInput(customer.AccountNumber, customer.Attributes || [], context.request.apiSettings, customer.Phone, customer.VatNumber);\n\n this.isUpdatingAttributes = true;\n this.gotException = false;\n\n if (!this.hasError) {\n this.setState({ editAttributes: false });\n try {\n await updateCustomerAttributes(input, context.actionContext);\n } catch (error) {\n this.gotException = true;\n customer.Attributes = this.initialCustomerAttributes;\n if (context.telemetry) {\n context.telemetry.exception(error);\n context.telemetry.debug('Unable to update customer attributes');\n }\n this.setState({ attributeError: {}, attributes: this.initialAttributes, phone: this.initialPhone, vatNumber: this.initialVatNumber });\n }\n this.setState({ editAttributes: false });\n if (!this.gotException) {\n this.initialAttributes = this.state.attributes;\n this.initialCustomerAttributes = customer.Attributes;\n this.initialPhone = this.state.phone;\n this.initialVatNumber = this.state.vatNumber;\n }\n }\n\n this.isUpdatingAttributes = false;\n\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n }\n };\n\n private readonly _setFocus = (element: HTMLElement | null) => {\n element?.focus();\n };\n\n private readonly _buildPayloadData = () => {\n const { data } = this.props.accountProfileProps;\n const attributeDefinitions = data.attributeDefinitions.result || [];\n const attributes: IDictionary = {};\n\n attributeDefinitions.forEach(attributeDefinition => {\n const attributePayloadData: IAttributePayloadData = {};\n attributePayloadData.recordId = attributeDefinition.RecordId;\n attributePayloadData.name = attributeDefinition.Name;\n attributePayloadData.dataTypeValue = attributeDefinition.DataTypeValue;\n attributePayloadData.isEnumeration = attributeDefinition.IsEnumeration;\n attributePayloadData.isMandatory = attributeDefinition.IsMandatory;\n switch (attributeDefinition.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n const defaultIntegerValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.IntegerValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.IntegerValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.IntegerValue;\n if (attributePayloadData.name && defaultIntegerValue) {\n attributePayloadData.defaultValue = String(defaultIntegerValue);\n attributes[attributePayloadData.name] = String(defaultIntegerValue);\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n const defaultDecimalValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.DecimalValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.DecimalValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.DecimalValue;\n if (attributePayloadData.name && defaultDecimalValue) {\n attributePayloadData.defaultValue = String(defaultDecimalValue);\n attributes[attributePayloadData.name] = String(defaultDecimalValue);\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n const defaultStringValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.StringValue;\n if (attributePayloadData.name && defaultStringValue) {\n attributePayloadData.defaultValue = defaultStringValue;\n attributes[attributePayloadData.name] = defaultStringValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n const defaultBooleanValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.BooleanValue || false;\n if (attributePayloadData.name) {\n attributePayloadData.defaultValue = String(defaultBooleanValue);\n attributes[attributePayloadData.name] = String(defaultBooleanValue);\n }\n break;\n default:\n\n // Do nothing\n }\n this.attributePayloadData.push(attributePayloadData);\n });\n Object.keys(attributes).length > 0 && this.setState({ attributes });\n };\n\n private readonly _getCustomerPhoneAndVatNumber = () => {\n const customer = this.props.accountProfileProps.data.customerInformation.result;\n const phone = customer && customer.Phone || '';\n const vatNumber = customer && customer.VatNumber || '';\n this.setState({ phone, vatNumber });\n if (this.initialPhone.length === 0) {\n this.initialPhone = phone;\n }\n if (this.initialVatNumber.length === 0) {\n this.initialVatNumber = vatNumber;\n }\n };\n}\n\nexport default AccountProfileAttributes;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 IAccountProfileLinks {\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 AccountProfileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n { editableLinks && editableLinks.length > 0 ? : 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-profile__section-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 AccountProfileLinks;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { updateCustomerPersonalization, updateCustomerPersonalizationInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getPayloadObject, getTelemetryAttributes, getTelemetryObject, IModuleProps, INodeProps, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from './account-profile.data';\nimport { IAccountProfileProps, IEmailAddressSectionHeadingData, IHeadingData, INameSectionHeadingData } from './account-profile.props.autogenerated';\nimport AccountProfileAttributes from './components/account-profile-attributes';\nimport DescriptionComponent from './components/account-profile-description';\nimport LinksComponent, { ILinksData } from './components/account-profile-links';\nimport TextComponent from './components/account-profile-text';\n\nexport interface IAccountPreference {\n accountPreference: INodeProps;\n heading: React.ReactNode;\n buttonWrapper: INodeProps;\n buttonYesText: React.ReactNode;\n buttonNoText: React.ReactNode;\n button: React.ReactNode;\n description: React.ReactNode;\n onUpdateAccountPreference(preferenceType?: string): void;\n}\n\nexport interface IAccountPreferences {\n accountPreferences: INodeProps;\n heading?: React.ReactNode;\n personalization: IAccountPreference;\n extraPreferences?: IAccountPreference[];\n}\n\nexport interface IAccountProfileItem {\n AccountProfileItem: INodeProps;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport interface IAccountCustomerAttributes {\n customerAttributes?: React.ReactNode;\n}\n\nexport interface IAccountProfileViewProps extends IAccountProfileProps {\n AccountProfile: IModuleProps;\n accountProfileWrapper?: INodeProps;\n className: string;\n heading?: React.ReactNode;\n emailSection: IAccountProfileItem;\n nameSection: IAccountProfileItem;\n preferenceSection: IAccountPreferences;\n customerAttributesWrapper?: INodeProps;\n customerAttributesSection?: IAccountCustomerAttributes;\n}\n\n/**\n *\n * AccountProfile component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfile extends React.Component> {\n @observable private isUpdatingPreference: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IAccountProfileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n\n const { config, resources, data } = this.props;\n const { className, heading, emailAddressSectionHeading, nameSectionHeading, showAttributes, showPhone, showVatNumber } = config;\n\n const { editButtonText, editButtonAriaLabel } = resources;\n const customerInformation = data.customerInformation.result;\n\n // As per the design, phone and vat numbers are part of the profile attributes section\n const shouldRenderAttributes = (showAttributes && showAttributes.length > 0) || showPhone || showVatNumber || false;\n const editLink: ILinksData = {\n linkUrl: {\n destinationUrl: get(this.props, 'context.request.user.editProfileUrl', '')\n },\n linkText: editButtonText,\n ariaLabel: editButtonAriaLabel\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountProfile: {\n moduleProps: this.props,\n className: classnames('ms-account-profile', config.className)\n },\n accountProfileWrapper: {\n className: classnames('ms-account-profile-wrapper')\n },\n heading: heading && (\n ),\n emailSection: this._renderEmailSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-email'),\n emailAddressSectionHeading as IEmailAddressSectionHeadingData,\n customerInformation && customerInformation.Email\n ),\n nameSection: this._renderNameSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-name'),\n nameSectionHeading as INameSectionHeadingData,\n `${customerInformation && customerInformation.FirstName} ${customerInformation && customerInformation.LastName}`,\n [editLink]\n ),\n preferenceSection: this._renderPreferenceSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-preferences'),\n customerInformation\n ),\n customerAttributesWrapper: {\n className: classnames('ms-account-profile__attributes-wrapper')\n },\n customerAttributesSection: shouldRenderAttributes && this._renderCustomerAttributes()\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 handleEmailHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.emailAddressSectionHeading!.text = event.target.value;\n\n public handleNameHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.nameSectionHeading!.text = event.target.value;\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.resources.editButtonText) {\n this.props.resources.editButtonText = event.target.value;\n }\n };\n\n @computed get editProfileUrl(): string {\n return get(this.props, 'context.request.user.editProfileUrl', '');\n }\n\n private _renderEmailSection(className: string, heading?: IEmailAddressSectionHeadingData, description?: string, links?: ILinksData[]): IAccountProfileItem {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n ),\n links: links && links.length > 0 && ,\n description: description && \n };\n }\n\n private _renderNameSection(className: string, heading?: INameSectionHeadingData, description?: string, links?: ILinksData[]): IAccountProfileItem {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n ),\n links: links && links.length > 0 && ,\n description: description && \n };\n }\n\n private readonly onClickEventHandler = (className: string) => async () => {\n return this._updateAccountPersonalization(className);\n };\n\n private _renderPreferenceSection(className: string, customerInformation?: Customer): IAccountPreferences | null {\n const { personalizationDescription, personalizationEnableButtonAriaLabel,\n webTrackingDescription, webTrackingEnableButtonAriaLabel } = this.props.resources;\n const { preferencesSectionHeading, personalizationSectionHeading, webTrackingSectionHeading } = this.props.config;\n const { enableDataAnalytics } = this.props.context.request.features;\n const extraPreferences: IAccountPreference[] = [];\n\n if (!customerInformation) {\n this.props.context.telemetry.error('Account profile data is empty, module wont render');\n return null;\n }\n\n // Show browser activity loggin preference if switch is enabled AND a heading is provided\n enableDataAnalytics && webTrackingSectionHeading &&\n extraPreferences.push(this._renderPreference('web-tracking', webTrackingSectionHeading as IHeadingData, webTrackingEnableButtonAriaLabel,\n webTrackingDescription, customerInformation.OptOutWebActivityTracking || false));\n\n return {\n accountPreferences: {\n className\n },\n heading: preferencesSectionHeading && (\n ),\n personalization: this._renderPreference('personalization', personalizationSectionHeading as IHeadingData, personalizationEnableButtonAriaLabel,\n personalizationDescription, customerInformation.OptOutPersonalization || false),\n extraPreferences: extraPreferences || undefined\n };\n }\n\n private readonly _renderPreference = (className: string, sectionHeading: IHeadingData, enableAriaLabel: string, description: string, isOptOut: boolean) => {\n const { toggleDisableText, toggleEnableText } = this.props.resources;\n const toggleState = isOptOut ? 'disable' : 'enable';\n const onClickHandler = this.onClickEventHandler(className);\n this.payLoad.contentAction.etext = sectionHeading.text;\n const attributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n return {\n accountPreference: {\n className: classnames('ms-account-profile__preference', `ms-account-profile__preference-${className}`, { 'ms-account-profile__personalization-updating': this.isUpdatingPreference })\n },\n heading: sectionHeading && (\n ),\n buttonWrapper: {\n className: classnames('ms-account-profile__toggle-wrapper', `ms-account-profile__toggle-${toggleState}`)\n },\n buttonYesText: ,\n buttonNoText: ,\n button: (\n \n ),\n description: ,\n onUpdateAccountPreference: async () => this._updateAccountPersonalization(className)\n };\n };\n\n private readonly _updateAccountPersonalization = async (preferenceType?: string) => {\n const customerInformation = this.props.data.customerInformation.result;\n\n if (customerInformation) {\n const {\n telemetry,\n context: { request, actionContext }\n } = this.props;\n\n let isOptOutPersonalization = false;\n let input;\n\n switch (preferenceType) {\n case 'web-tracking':\n isOptOutPersonalization = customerInformation.OptOutWebActivityTracking || false;\n input = new updateCustomerPersonalizationInput(customerInformation.AccountNumber, !isOptOutPersonalization, request.apiSettings, preferenceType);\n break;\n case undefined:\n case 'personalization':\n default:\n isOptOutPersonalization = customerInformation.OptOutPersonalization || false;\n input = new updateCustomerPersonalizationInput(customerInformation.AccountNumber, !isOptOutPersonalization, request.apiSettings, preferenceType);\n }\n\n this.isUpdatingPreference = true;\n\n try {\n await updateCustomerPersonalization(input, actionContext);\n } catch (error) {\n if (telemetry) {\n telemetry.exception(error);\n telemetry.debug('Unable to update customer personalization');\n }\n }\n\n this.isUpdatingPreference = false;\n }\n };\n\n private readonly _renderCustomerAttributes = (): React.ReactNode => {\n return (\n \n );\n };\n}\n\nexport default AccountProfile;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps\n} from './account-profile';\n\nconst AccountPreferencesSection: React.FC = ({\n accountPreferences,\n heading,\n personalization,\n extraPreferences\n}) => {\n\n return (\n \n {heading}\n \n {\n extraPreferences && extraPreferences.map((preferenceSecton, index) => {\n return ;\n })\n }\n \n );\n};\n\nconst AccountPreferenceSection: React.FC = ({\n accountPreference,\n heading,\n description,\n buttonWrapper,\n buttonYesText,\n button,\n buttonNoText\n}) => {\n\n return (\n \n {heading}\n {description}\n \n {buttonNoText}\n {button}\n {buttonYesText}\n \n \n );\n};\n\nconst AccountProfileSection: React.FC = ({\n AccountProfileItem,\n heading,\n links,\n description\n}) => {\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nconst AccountProfileView: React.FC = props => {\n const { AccountProfile, accountProfileWrapper, heading, emailSection, nameSection, preferenceSection, customerAttributesWrapper, customerAttributesSection } = props;\n\n return (\n \n {accountProfileWrapper && (\n {heading}\n \n \n \n \n )}\n {customerAttributesWrapper && (\n {customerAttributesSection}\n \n )}\n \n );\n};\n\nexport default AccountProfileView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\ninterface IAccountProfileDescription {\n className: string;\n description: string;\n}\n\nconst IAccountProfileDescription: React.FC = ({ className, description }) => (\n

\n {description}\n

\n);\n\nexport default IAccountProfileDescription;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\ninterface IAccountProfileText {\n className: string;\n text: string;\n}\n\nconst IAccountProfileText: React.FC = ({ className, text }) => (\n \n {text}\n \n);\n\nexport default IAccountProfileText;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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\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} ${accountInfo && accountInfo.FirstName ? accountInfo.FirstName : ''}`\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. All rights reserved.\n * See License.txt 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 (\n \n {heading}\n \n );\n};\n\nexport default AccountWelcomeTileView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\ninterface IAccountWishlistTileDescription {\n description: string;\n}\n\nconst IAccountWishlistTileDescription: React.FC = ({ description }) => (\n

\n {description}\n

\n);\n\nexport default IAccountWishlistTileDescription;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 ? : 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. All rights reserved.\n * See License.txt 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\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccountWishlistTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\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 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. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt 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 { IDataTableProps, IHeadingsProperty, ITableItemProps, ITableRowProps, Table, TableDataType } 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};\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\n .replace('{0}', request.UserFirstName!)\n .replace('{1}', request.UserLastName!);\n\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\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 (!StringExtensions.isNullOrEmpty(accountStatementStartDateTime) && !StringExtensions.isNullOrEmpty(accountStatementEndDateTime)) {\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\n .replace('{0}', invoiceId);\n }\n\n return '';\n default:\n return '';\n }\n};\n\nconst createTableItems = (operationRequests: BusinessPartnerOperationRequest[] | undefined, props: IB2bRequestsStatusProps): ITableRowProps[] => {\n\n if (!ArrayExtensions.hasElements(operationRequests)) {\n return [];\n }\n\n return operationRequests.map((request) => {\n\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 = ArrayExtensions.hasElements(tableData) && tableData[0].row.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 }).map((item) => {\n return {\n name: item.id,\n sortable: true,\n ariaLabel: resources.columnSortAriaLabel\n } as IHeadingsProperty;\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: context.request.query?.skip && !isNaN(Number.parseInt(context.request.query.skip, 10)) ? Number.parseInt(context.request.query.skip, 10) : 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. All rights reserved.\n * See License.txt 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';\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\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, data } = this.props;\n\n if (!data.customerInformation.result?.IsB2b || !data.b2bUserInformation.result?.B2BUserId) {\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 \n {this.getItemNumberDisplayString(itemCount)}\n \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. All rights reserved.\n * See License.txt 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../../..';\n\nexport interface IB2bRequestsTileLinksProps {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst defaultClassName = 'ms-account-b2b-requests-tile';\n\nexport const B2bRequestsTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n\n if (!ArrayExtensions.hasElements(links)) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n { ArrayExtensions.hasElements(editableLinks) ? : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n return linkdata.map((link) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return {\n ariaLabel: link.ariaLabel,\n className: `${defaultClassName}__link`,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n } as Msdyn365.ILinksData;\n });\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileData } from './b2b-requests-tile.data';\nimport { IB2bRequestsTileProps } from './b2b-requests-tile.props.autogenerated';\nimport { B2bRequestsTileLinks } from './components/account-b2b-requests-tile-links';\n\nexport interface IB2bRequestsTileViewProps extends IB2bRequestsTileProps {\n b2bRequestsTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsTile component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsTile extends React.PureComponent> {\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IB2bRequestsTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public render(): JSX.Element | null {\n const { config, data } = this.props;\n const { className, heading, links } = config;\n\n const defaultClassName = 'ms-account-b2b-requests-tile';\n\n if (!data.customerInformation.result?.IsB2b) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n b2bRequestsTile: {\n moduleProps: this.props,\n className: classnames(defaultClassName, config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: ArrayExtensions.hasElements(links) && \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => this.props.config.heading.text = event.target.value;\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default B2bRequestsTile;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileViewProps } from './b2b-requests-tile';\n\nconst B2bRequestsTileView: React.FC = props => {\n const { b2bRequestsTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default B2bRequestsTileView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 (

\n {props.text}\n

);\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 { Button, getPayloadObject, getTelemetryAttributes, getTelemetryObject, IModuleProps, ITelemetryContent, TelemetryConstant } 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}\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\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\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,\n 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: {\n signInUrl,\n isAuthenticated\n }\n }\n },\n data: { loyaltyCard }\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\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && ,\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && ,\n detailsLink: hasLoyaltyAccount &&\n ,\n termsLink: !hasLoyaltyAccount && \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) => 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. All rights reserved.\n * See License.txt 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 { LoyaltySignUp, heading, memberHeading, signInLink, signUpText, signUpButton, detailsLink, termsLink, loading } = 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 {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. All rights reserved.\n * See License.txt 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: { tag: Modal, className: 'ms-loyalty-terms__modal', toggle: props.onToggle, applicationNode: 'renderPage', isOpen: props.isOpen, returnFocusRef: props.returnRef },\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 submitButton: \n {props.resources.joinLoyaltyTermsText}\n ,\n heading:

\n {props.resources.loyaltyTermsHeading}\n

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

\n {props.resources.loyaltyAgreeToTerms}\n

\n };\n};\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 {\n Button,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent\n} 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(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\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,\n 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: {\n isAuthenticated\n }\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 modal: isAuthenticated && loyaltyCard.result && loyaltyCard.result.CardNumber === undefined && 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(new GetLoyaltyCardInput(this.props.context.request.apiSettings), fullCard);\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(new GetLoyaltyCardInput(this.props.context.request.apiSettings), card);\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. All rights reserved.\n * See License.txt 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 \n {modal.heading}\n \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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport * as React from 'react';\n\nexport interface IAccountOrganizationUsersTileDescription {\n description: string;\n}\n\nexport const AccountOrganizationUsersTileDescription: React.FC = ({ description }) => (\n

\n {description}\n

\n);\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 '../organization-users-tile.props.autogenerated';\n\nexport interface IAccountOrganizationUsersTileLinks {\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 AccountOrganizationUsersTileLinks: 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 ? : 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-organization-users-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. All rights reserved.\n * See License.txt 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 { AccountOrganizationUsersTileDescription, AccountOrganizationUsersTileLinks } from './components';\nimport { IOrganizationUsersTileData } from './organization-users-tile.data';\nimport { IOrganizationUsersTileProps } from './organization-users-tile.props.autogenerated';\n\nexport interface IOrganizationUsersTileViewProps extends IOrganizationUsersTileProps {\n OrganizationUsersTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * OrganizationUsersTile component.\n * @extends {React.PureComponent>}\n */\nclass OrganizationUsersTile extends React.PureComponent> {\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IOrganizationUsersTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!, this.props.friendlyName, this.props.telemetry);\n }\n\n public render(): JSX.Element | null {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountOrganizationUsersTileDescriptionForSingleUser, accountOrganizationUsersTileDescriptionForMultipleUsers } = resources;\n const numUsers = data.users && data.users.result;\n const accountOrganizationUsersTileDescription = numUsers === 1 ? accountOrganizationUsersTileDescriptionForSingleUser : accountOrganizationUsersTileDescriptionForMultipleUsers;\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUsersTile: {\n moduleProps: this.props,\n className: classnames('ms-account-organization-users-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && ,\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 OrganizationUsersTile;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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 = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n );\n};\n\nexport default PasswordResetVerificationButton;\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt 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