{"version":3,"file":"static/js/3.10d26b643b4ceb784956.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?8281","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?44e9","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?95ac","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.tsx?4353","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/components/account-generic-tile-links.tsx?2bc7","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty/account-loyalty.tsx?3672","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty/account-loyalty.view.tsx?4d8b","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty/components/account-loyalty-small-components.tsx?c12b","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?d6f5","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-button.tsx?8d59","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-description.tsx?54a5","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-error.tsx?a75a","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-input.tsx?d840","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-label.tsx?4560","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-link.tsx?2078","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-loading-icon.tsx?1d7f","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-loading-message.tsx?84ee","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-text.tsx?76b9","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/sign-in.tsx?259c","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/sign-in.view.tsx?2b3e"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BSite) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BSite))\n );\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (\n account.Balance === 0 &&\n account.CreditLimit === 0 &&\n account.InvoiceAccountBalance === 0 &&\n account.InvoiceAccountCreditLimit === 0\n ) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n {error}\n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n {value}\n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n {label}\n {value}\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountCustomerBalanceTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-customer-balance-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountCustomerBalanceTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountGenericTileConfig, IAccountGenericTileProps } from './account-generic-tile.props.autogenerated';\nimport LinksComponent from './components/account-generic-tile-links';\n\nexport interface IAccountGenericTileViewProps extends IAccountGenericTileProps {\n AccountGenericTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * AccountGeneric component.\n * @extends {React.PureComponent>}\n */\nclass AccountGenericTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountGenericTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const viewProps = {\n ...this.props,\n className,\n AccountGenericTile: {\n moduleProps: this.props,\n className: classnames('ms-account-generic-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountGenericTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountGenericTileViewProps } from './account-generic-tile';\n\nconst AccountGenericTileView: React.FC = props => {\n const { AccountGenericTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default AccountGenericTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-generic-tile.props.autogenerated';\n\nexport interface IAccountGenericTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountGenericTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-generic-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountGenericTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { LoyaltyCard, LoyaltyRewardPoint, LoyaltyRewardPointActivity } from '@msdyn365-commerce/retail-proxy';\nimport {\n getLoyaltyRewardPointActivityTimelineAsync,\n getLoyaltyRewardPointsExpiringSoonAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyData } from './account-loyalty.data';\nimport { IAccountLoyaltyProps } from './account-loyalty.props.autogenerated';\nimport { AccountLoyaltyLabel, AccountLoyaltyModalLabel } from './components';\n\nexport interface IAccountLoyaltyViewProps extends IAccountLoyaltyProps<{}> {\n AccountLoyalty: IModuleProps;\n className: string;\n totalPoints: number;\n heading?: React.ReactNode;\n Info: INodeProps;\n infoLabel: React.ReactNode;\n cardNumber: React.ReactNode;\n joinDate: React.ReactNode;\n Points: INodeProps;\n pointsLabel: React.ReactNode;\n points: React.ReactNode;\n Breakdown: INodeProps;\n RewardPoints: INodeProps;\n PointsBreakdown: INodeProps;\n rewardPoints?: IAccountLoyaltyRewardPointProps[];\n Button: INodeProps;\n homeButton: React.ReactNode;\n pointsModal: IAccountLoyaltyModalProps;\n}\n\nexport interface IAccountLoyaltyState {\n isModalOpen: boolean;\n currentModalData?: LoyaltyRewardPoint;\n isModalExpiring: boolean;\n modalID: string;\n currentFocus?: React.RefObject;\n pointsActivity: LoyaltyRewardPointActivity[] | undefined;\n}\n\nexport interface IAccountLoyaltyRewardPointProps {\n label: React.ReactNode;\n availableModalLabel: React.ReactNode;\n availableModalTrigger: React.ReactNode;\n expiringModalLabel: React.ReactNode;\n expiringModalTrigger: React.ReactNode;\n}\n\nexport type horizontalModalPosition = 'left' | 'center' | 'right';\nexport type verticalModalPosition = 'top' | 'center' | 'bottom';\n\nexport interface IAccountLoyaltyModalProps {\n isOpen: boolean;\n horizontalPosition?: horizontalModalPosition;\n verticalPosition?: verticalModalPosition;\n modalClassName?: string;\n modalHeaderClassName?: string;\n modalHeader?: string;\n modalBodyClassName?: string;\n ModalBodyTop: INodeProps;\n pointsDescription?: React.ReactNode;\n totalPoints?: React.ReactNode;\n ModalBodyHeaders: INodeProps;\n date?: React.ReactNode;\n balanceLabel?: React.ReactNode;\n rewardPointsActivity?: IAccountLoyaltyActivityProps[];\n returnFocusRef?: React.RefObject;\n onClose(): void;\n onOpened?(): void;\n}\n\nexport interface IAccountLoyaltyActivityProps {\n Activity: INodeProps;\n activityType: React.ReactNode;\n activityDate: React.ReactNode;\n activityPoints: React.ReactNode;\n}\n\nexport interface IProps extends IAccountLoyaltyProps {}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountLoyalty extends React.PureComponent {\n private readonly _buttonAvailableRef: React.RefObject;\n\n private readonly _buttonExpireRef: React.RefObject;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly decimalPrecision = 2;\n\n constructor(props: IAccountLoyaltyProps) {\n super(props);\n this._buttonAvailableRef = React.createRef();\n this._buttonExpireRef = React.createRef();\n this.state = {\n isModalOpen: false,\n currentModalData: undefined,\n isModalExpiring: false,\n modalID: '',\n pointsActivity: undefined\n };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.BackToShopping);\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n const { loyaltyCard } = this.props.data;\n const { loyaltyCardLabel, totalAvailablePointsLabel, backToShoppingText } = this.props.resources;\n const { actionContext } = this.props.context;\n const { isModalOpen } = this.state;\n const backToShopAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n if (!loyaltyCard || !loyaltyCard.result || !loyaltyCard.result.CardNumber) {\n this.props.context.telemetry.error('Loyalty card content is empty, module wont render');\n return null;\n }\n\n const loyaltyCardData = loyaltyCard.result;\n const rewardPoints = loyaltyCard && loyaltyCardData.RewardPoints;\n const homeLink = Msdyn365.getUrlSync('home', actionContext) ?? '';\n\n const viewProps = {\n ...this.props,\n AccountLoyalty: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty', className),\n modalTransition: {\n /**\n * On Entered in Modal function.\n * @param node - The current node element.\n * @param isAppearing - The Boolean value.\n */\n onEntered: (node: HTMLElement, isAppearing: boolean) => {\n const childNode = node.firstChild as HTMLElement;\n if (isAppearing) {\n childNode.focus();\n }\n }\n }\n },\n totalPoints: rewardPoints && this._getTotalPoints(),\n className: classnames('msc-account-loyalty', className),\n rewardPoints:\n loyaltyCardData.RewardPoints && loyaltyCardData.RewardPoints.length > 0 && this._renderRewardPoints(loyaltyCardData),\n pointsModal: (isModalOpen && this._renderModal()) || {\n isOpen: false,\n returnFocusRef: this.state.currentFocus,\n onOpened: this._onOpenModal\n },\n Info: { className: 'ms-account-loyalty__info' },\n Points: { className: 'ms-account-loyalty__points' },\n Breakdown: { className: 'ms-account-loyalty__breakdown' },\n RewardPoints: { className: 'ms-account-loyalty__reward-points' },\n PointsBreakdown: { className: 'ms-account-loyalty__point-breakdown' },\n Button: { className: 'ms-account-loyalty__link' },\n heading: heading && (\n \n ),\n\n // Account info\n infoLabel: ,\n cardNumber: ,\n joinDate: (\n \n ),\n\n // Points\n pointsLabel: ,\n points: rewardPoints && (\n \n ),\n\n homeButton: rewardPoints && (\n \n {backToShoppingText}\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n private _formatJoinDate(date: Date): string {\n return format(\n this.props.resources.joinDateFormatted,\n new Intl.DateTimeFormat(this.props.context.actionContext.requestContext.locale, {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n }).format(new Date(date))\n );\n }\n\n private _renderRewardPoints(loyaltyCard: LoyaltyCard): IAccountLoyaltyRewardPointProps[] {\n return loyaltyCard.RewardPoints!.map((loyaltyPoints, index) => {\n const availableId = (loyaltyPoints.RewardPointId && `${loyaltyPoints.RewardPointId}-available-${index}`) || 'available-points';\n const expiringId = (loyaltyPoints.RewardPointId && `${loyaltyPoints.RewardPointId}-expiring-${index}`) || 'expiring-points';\n const {\n availablePointsLabel,\n availablePointsAriaLabel,\n expiringPointsFormatLabel,\n expiringPointsFormatAriaLabel\n } = this.props.resources;\n this.payLoad.contentAction.etext = TelemetryConstant.AvailablePoints;\n const availablePointsAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.ExpiringPoints;\n const expiringPointsAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const expireDaysDefaultValue = 30;\n\n return {\n label: ,\n availableModalLabel: loyaltyPoints.ActivePoints !== undefined && (\n \n ),\n availableModalTrigger: loyaltyPoints.ActivePoints !== undefined && (\n \n {loyaltyPoints.ActivePoints.toFixed(this.decimalPrecision)}\n \n ),\n expiringModalLabel: loyaltyPoints.PointsExpiringSoon !== undefined && (\n \n ),\n expiringModalTrigger: loyaltyPoints.PointsExpiringSoon !== undefined && (\n \n {loyaltyPoints.PointsExpiringSoon.toFixed(this.decimalPrecision)}\n \n )\n };\n });\n }\n\n private _renderModal(): IAccountLoyaltyModalProps | null {\n const { totalAvailablePointsLabel, loyaltyActivityDateLabel, loyaltyActivityBalanceLabel } = this.props.resources;\n const { isModalOpen, currentModalData } = this.state;\n\n if (!isModalOpen || !currentModalData) {\n // Return empty modal\n this.props.context.telemetry.error('Account loyalty modal content is empty, module wont render');\n return null;\n }\n\n return {\n isOpen: isModalOpen,\n returnFocusRef: this.state.currentFocus,\n horizontalPosition: 'center',\n verticalPosition: 'center',\n modalClassName: 'ms-account-loyalty__points-modal',\n modalHeaderClassName: 'ms-account-loyalty__points-modal-header',\n modalHeader: currentModalData.Description ?? '',\n modalBodyClassName: 'ms-account-loyalty__points-modal-body',\n ModalBodyTop: { className: 'ms-account-loyalty__points-modal-body-top' },\n ModalBodyHeaders: { className: 'ms-account-loyalty__points-modal-body-header' },\n rewardPointsActivity: this._renderPointsActivity(),\n pointsDescription: ,\n totalPoints: ,\n date: ,\n balanceLabel: ,\n onClose: this._closeModal,\n onOpened: this._onOpenModal\n };\n }\n\n private _getTotalPoints(): number {\n const rewardPoints = this.props.data.loyaltyCard.result && this.props.data.loyaltyCard.result.RewardPoints;\n\n let total = 0;\n rewardPoints &&\n rewardPoints.forEach(loyaltyPoints => {\n total += loyaltyPoints.ActivePoints ?? 0;\n });\n\n return total;\n }\n\n private _getPoints(): string {\n const { currentModalData, isModalExpiring } = this.state;\n const rewardPoints: number = (isModalExpiring ? currentModalData!.PointsExpiringSoon : currentModalData!.ActivePoints) ?? 0;\n\n return `${rewardPoints.toFixed(this.decimalPrecision)}`;\n }\n\n private _renderPointsActivity(): IAccountLoyaltyActivityProps[] | undefined {\n const { pointsActivity } = this.state;\n\n if (!pointsActivity) {\n this.props.context.telemetry.error('Points activity content is empty, module wont render');\n return undefined;\n }\n\n return pointsActivity.map(activity => {\n return {\n Activity: { className: 'ms-account-loyalty__points-modal-activity' },\n activityType: (\n \n ),\n activityDate: (\n \n ),\n activityPoints: (\n \n )\n };\n });\n }\n\n private _parseDate(date: Date | string): Date {\n /* Dates for loyalty are coming as formatted strings yyyy-mm-ddT:00:00.000z\n Javascript was interpreting this as an iso format, thus causing the wrong date to be rendered */\n if (typeof date === 'string') {\n let dateString = date.toString();\n dateString = dateString.replace(/-/g, '/');\n dateString = dateString.substring(0, 10);\n return new Date(dateString);\n }\n return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n }\n\n private _getTimelineType(pointActivity: LoyaltyRewardPointActivity): string {\n if (pointActivity.LoyaltyRewardPointTimelineEntryType) {\n return pointActivity.LoyaltyRewardPointTimelineEntryType;\n }\n\n const { earnedPointsLabel, redeemedPointsLabel, adjustedPointsLabel, refundedPointsLabel } = this.props.resources;\n switch (pointActivity.ExtensibleLoyaltyRewardPointActivityEntryTypeValue) {\n case 1:\n return earnedPointsLabel;\n case 2:\n return refundedPointsLabel;\n case 3:\n return redeemedPointsLabel;\n case 5:\n return adjustedPointsLabel;\n default:\n return '';\n }\n }\n\n private readonly _populateModalData = (\n focusRef: React.RefObject,\n loyaltyCard: LoyaltyCard,\n currentLoyaltyPoints: LoyaltyRewardPoint,\n expiring: boolean\n ) => () => {\n if (!loyaltyCard || !loyaltyCard.CardNumber || !currentLoyaltyPoints.RewardPointId) {\n this.props.context.telemetry.error('Modal data is empty, module wont render');\n return null;\n }\n\n const { actionContext } = this.props.context;\n\n // Open modal\n this.setState({\n isModalOpen: true,\n currentModalData: currentLoyaltyPoints,\n isModalExpiring: expiring,\n modalID: '',\n currentFocus: focusRef\n });\n\n if (expiring) {\n getLoyaltyRewardPointsExpiringSoonAsync(\n { callerContext: actionContext, queryResultSettings: {} },\n loyaltyCard.CardNumber,\n currentLoyaltyPoints.RewardPointId,\n 30\n )\n .then((points: LoyaltyRewardPointActivity[]) => {\n this.setState({ pointsActivity: points });\n })\n .catch((error: Error) => {\n this.props.telemetry.exception(error);\n this.props.telemetry.debug('Failed to get reward point activity');\n });\n } else {\n getLoyaltyRewardPointActivityTimelineAsync(\n { callerContext: actionContext, queryResultSettings: {} },\n loyaltyCard.CardNumber,\n currentLoyaltyPoints.RewardPointId\n )\n .then((points: LoyaltyRewardPointActivity[]) => {\n this.setState({ pointsActivity: points });\n })\n .catch((error: Error) => {\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Failed to get reward point activity');\n });\n }\n // eslint-disable-next-line no-useless-return, consistent-return -- Auto-suppressed.\n return;\n };\n\n private readonly _closeModal = () => {\n this.setState({\n isModalOpen: false,\n currentModalData: undefined,\n pointsActivity: undefined\n });\n };\n\n /**\n * On open modal function.\n */\n private readonly _onOpenModal = () => {\n if (this.state.currentFocus?.current) {\n this.state.currentFocus.current.focus();\n }\n };\n}\n\nexport default AccountLoyalty;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyViewProps } from './account-loyalty';\n\nconst AccountLoyaltyView: React.FC = props => {\n const {\n AccountLoyalty,\n Info,\n Points,\n Breakdown,\n RewardPoints,\n PointsBreakdown,\n Button,\n heading,\n infoLabel,\n cardNumber,\n joinDate,\n pointsLabel,\n points,\n rewardPoints,\n homeButton,\n pointsModal\n } = props;\n const { ModalBodyTop, ModalBodyHeaders } = pointsModal;\n return (\n \n {heading}\n \n {infoLabel}\n {cardNumber}\n {joinDate}\n \n \n {pointsLabel}\n {points}\n\n \n {rewardPoints &&\n rewardPoints.map((activity, index) => {\n return (\n \n {activity.label}\n \n {activity.availableModalLabel}\n {activity.availableModalTrigger}\n \n\n \n {activity.expiringModalLabel}\n {activity.expiringModalTrigger}\n \n \n );\n })}\n \n \n\n {homeButton}\n\n {(!pointsModal.isOpen && ) || (\n \n \n {pointsModal.modalHeader}\n \n \n \n {pointsModal.pointsDescription}\n {pointsModal.totalPoints}\n \n \n {pointsModal.date}\n {pointsModal.balanceLabel}\n \n {pointsModal.rewardPointsActivity &&\n pointsModal.rewardPointsActivity.map((activity, index) => {\n const { Activity, activityType, activityDate, activityPoints } = activity;\n return (\n \n {activityType}\n {activityDate}\n {activityPoints}\n \n );\n })}\n \n \n )}\n \n );\n};\n\nexport default AccountLoyaltyView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountLoyaltyLabel {\n className?: string;\n text?: string | number;\n}\n\nexport const AccountLoyaltyLabel: React.FC = ({ className, text }) =>

{text}

;\n\nexport interface IAccountLoyaltyModalLabel {\n className?: string;\n text?: string | number;\n labelFor?: string;\n}\n\nexport const AccountLoyaltyModalLabel: React.FC = ({ className, text, labelFor }) => (\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileEditConfig, IAccountProfileEditProps } from './account-profile-edit.props.autogenerated';\nimport AccountProfileEditButtonComponent from './components/account-profile-edit-button';\nimport AccountProfileEditErrorComponent from './components/account-profile-edit-error';\nimport AccountProfileEditInputComponent from './components/account-profile-edit-input';\nimport AccountProfileEditLabelComponent from './components/account-profile-edit-label';\nimport AccountProfileEditLoadingIconComponent from './components/account-profile-edit-loading-icon';\nimport AccountProfileEditLoadingMessageComponent from './components/account-profile-edit-loading-message';\n\nexport interface IAccountProfileEditViewState {\n isShowLoading: boolean;\n}\n\nexport interface IAccountProfileEditItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IAccountProfileEditLocalAccount {\n localAccount: INodeProps;\n items: IAccountProfileEditItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IAccountProfileEditLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAccountProfileEditViewProps {\n className: string;\n viewState: IAccountProfileEditViewState;\n loading: IAccountProfileEditLoading;\n accountProfileEdit: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n accountProfileEditLocalAccount: IAccountProfileEditLocalAccount;\n}\n\n/**\n *\n * AccountProfileEdit component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfileEdit extends React.Component> {\n private readonly moduleClassName: string = 'ms-account-profile-edit';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private givenName: string;\n\n @observable private surname: string;\n\n @observable private email: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IAccountProfileEditProps) {\n super(props);\n this.givenName = '';\n this.surname = '';\n this.email = '';\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountProfileEditProps,\n nextState: IAccountProfileEditViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n accountProfileEdit: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && config.heading.text && (\n \n ),\n accountProfileEditLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public onTextBoxChange = (event: React.ChangeEvent) => {\n const id = event.target.id;\n const value = event.target.value;\n\n switch (id.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.emailRegex = value;\n break;\n }\n default:\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const { resources } = this.props;\n const invalidEmailAddressError = resources.invalidEmailAddressError || 'Please enter a valid email address.';\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PRE: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string }) => {\n const value = obj.PRE ? this._htmlDecode(obj.PRE) : '';\n switch (obj.ID.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.email = value;\n this.emailRegex = obj.PAT;\n obj.PAT_DESC = invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private _htmlDecode(str: string): string {\n const e = document.createElement('div');\n\n e.innerHTML = str;\n return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue || '';\n }\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n required_field: resources.requiredFieldMissingError,\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IAccountProfileEditLocalAccount {\n const { config, resources } = this.props;\n const localAccount = {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', this.givenName, resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', this.surname, resources.lastNameLabelText, resources.lastNameMaxLength)\n ],\n errorMessage: [\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n\n if (config.showEmail && this.email !== '') {\n localAccount.items.push(\n this._renderInput('email', 'email', this.email, resources.emailAddressLabelText, undefined, this.emailRegex)\n );\n }\n\n return localAccount;\n }\n\n private _renderInput(\n id: string,\n type: string,\n value: string,\n labelText: string,\n maxLength?: string,\n pattern?: string\n ): IAccountProfileEditItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default AccountProfileEdit;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IAccountProfileEditItem,\n IAccountProfileEditLoading,\n IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IAccountProfileEditItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n const { accountProfileEdit, viewState, loading, defaultAADConainer, aadConainer, heading, accountProfileEditLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(accountProfileEditLocalAccount)}\n \n \n );\n};\n\nexport default AccountProfileEditView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst AccountProfileEditButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n disabled,\n telemetryContent,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n );\n};\n\nexport default AccountProfileEditButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst AccountProfileEditError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default AccountProfileEditError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IAccountProfileEditInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst AccountProfileEditInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default AccountProfileEditInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst AccountProfileEditLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default AccountProfileEditLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingIcon {\n className: string;\n}\n\nconst AccountProfileEditLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default AccountProfileEditLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingMessage {\n className: string;\n message: string;\n}\n\nconst AccountProfileEditLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default AccountProfileEditLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../../..';\n\nexport interface IB2bRequestsTileLinksProps {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst defaultClassName = 'ms-account-b2b-requests-tile';\n\nexport const B2bRequestsTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (!ArrayExtensions.hasElements(links)) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n return linkdata.map(link => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return {\n ariaLabel: link.ariaLabel,\n className: `${defaultClassName}__link`,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n } as Msdyn365.ILinksData;\n });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileData } from './b2b-requests-tile.data';\nimport { IB2bRequestsTileProps } from './b2b-requests-tile.props.autogenerated';\nimport { B2bRequestsTileLinks } from './components/account-b2b-requests-tile-links';\n\nexport interface IB2bRequestsTileViewProps extends IB2bRequestsTileProps {\n b2bRequestsTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsTile component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IB2bRequestsTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const defaultClassName = 'ms-account-b2b-requests-tile';\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n b2bRequestsTile: {\n moduleProps: this.props,\n className: classnames(defaultClassName, config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: ArrayExtensions.hasElements(links) && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default B2bRequestsTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileViewProps } from './b2b-requests-tile';\n\nconst B2bRequestsTileView: React.FC = props => {\n const { b2bRequestsTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default B2bRequestsTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

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

{props.resources.loyaltyTermsHeading}

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

{props.resources.loyaltyAgreeToTerms}

\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps, nextState: ILoyaltyTermsState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: hideToggle !== true && (\n \n ),\n modal:\n isAuthenticated &&\n loyaltyCard.result &&\n loyaltyCard.result.CardNumber === undefined &&\n LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(card => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then(fullCard => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n fullCard\n );\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n card\n );\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetVerificationButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetVerificationButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetVerificationInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetVerificationInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default PasswordResetVerificationInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetVerificationLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetVerificationLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetVerificationLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetVerificationLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetVerificationButtonComponent from './components/password-reset-verification-button';\nimport PasswordResetVerificationErrorComponent from './components/password-reset-verification-error';\nimport PasswordResetVerificationInputComponent from './components/password-reset-verification-input';\nimport PasswordResetVerificationLabelComponent from './components/password-reset-verification-label';\nimport PasswordResetVerificationLoadingIconComponent from './components/password-reset-verification-loading-icon';\nimport PasswordResetVerificationLoadingMessageComponent from './components/password-reset-verification-loading-message';\nimport PasswordResetVerificationSuccessComponent from './components/password-reset-verification-success';\nimport { IPasswordResetVerificationConfig, IPasswordResetVerificationProps } from './password-reset-verification.props.autogenerated';\n\nexport interface IPasswordResetVerificationViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetVerificationItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationLocalAccount {\n localAccount: INodeProps;\n verificationControlWrapper: INodeProps;\n items: IPasswordResetVerificationItem[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationButtonsWrapper: INodeProps;\n verificationButtons: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetVerificationLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationViewProps {\n className: string;\n viewState: IPasswordResetVerificationViewState;\n loading: IPasswordResetVerificationLoading;\n passwordResetVerification: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetVerificationLocalAccount: IPasswordResetVerificationLocalAccount;\n}\n\n/**\n *\n * PasswordResetVerification component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordResetVerification extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset-verification';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetVerificationProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.templateVersion = '';\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IPasswordResetVerificationProps,\n nextState: IPasswordResetVerificationViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordResetVerification: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: (\n \n )\n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetVerificationLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private _prePopulateData(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n if (obj.ID.toLowerCase() === 'email') {\n this.emailRegex = obj.PAT;\n } else if (obj.ID.toLowerCase() === 'emailverificationcontrol') {\n this.templateVersion = 'v2';\n }\n });\n if (!this.templateVersion) {\n this.templateVersion = 'v1';\n }\n }\n }\n\n private _updateErrorMessage(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: this.props.resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n }\n\n private _renderLocalAccount(): IPasswordResetVerificationLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n items: [\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n )\n ],\n successMessage: [\n ,\n\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n \n ],\n verificationButtonsWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n verificationButtons: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): IPasswordResetVerificationItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n}\n\nexport default PasswordResetVerification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IPasswordResetVerificationItem,\n IPasswordResetVerificationLoading,\n IPasswordResetVerificationLocalAccount,\n IPasswordResetVerificationViewProps\n} from './password-reset-verification';\n\nconst PasswordResetVerificationItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n verificationControlWrapper,\n items,\n successMessage,\n errorMessage,\n verificationButtonsWrapper,\n verificationButtons,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n \n {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {verificationButtons &&\n verificationButtons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n \n );\n};\n\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetVerificationView: React.FC = props => {\n const {\n passwordResetVerification,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n passwordResetVerificationLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetVerificationLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetVerificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignInButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default SignInButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInDescription {\n className: string;\n description: string;\n}\n\nconst SignInDescription: React.FC = ({ className, description }) =>

{description}

;\n\nexport default SignInDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignInErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignInError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignInError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n ariaLabel?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignInInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignInInput: React.FC = ({ id, type, value, pattern, className, maxLength, ariaLabel, onChange }) => (\n \n);\n\nexport default SignInInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignInLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignInLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInLink {\n id?: string;\n className: string;\n href: string;\n ariaLabel: string;\n text: string;\n telemetryContent?: ITelemetryContent;\n}\n\nconst SignInLink: React.FC = ({ id, className, href, telemetryContent, ariaLabel, text }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n \n );\n};\n\nexport default SignInLink;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInLoadingIcon {\n className: string;\n}\n\nconst SignInLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignInLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignInLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignInLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInText {\n className: string;\n text: string;\n}\n\nconst SignInText: React.FC = ({ className, text }) => {text};\n\nexport default SignInText;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignInButtonComponent from './components/sign-in-button';\nimport SignInDescriptionComponent from './components/sign-in-description';\nimport SignInErrorComponent from './components/sign-in-error';\nimport SignInInputComponent from './components/sign-in-input';\nimport SignInLabelComponent from './components/sign-in-label';\nimport SignInLinkComponent from './components/sign-in-link';\nimport SignInLoadingIconComponent from './components/sign-in-loading-icon';\nimport SignInLoadingMessageComponent from './components/sign-in-loading-message';\nimport SignInTextComponent from './components/sign-in-text';\nimport { ISignInConfig, ISignInProps, ISignInResources } from './sign-in.props.autogenerated';\n\nexport interface ISignInViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignInItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n error: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignInSocialItem {\n key: string;\n button: INodeProps;\n image: React.ReactNode;\n text: React.ReactNode;\n}\n\nexport interface ISignInB2BItem {\n key: string;\n button: INodeProps;\n text: React.ReactNode;\n}\n\nexport interface ISignInSocialAccount {\n socialAccounts: INodeProps;\n items: ISignInSocialItem[];\n}\n\nexport interface ISignInB2BAccount {\n socialAccounts: INodeProps;\n items: ISignInB2BItem[];\n}\nexport interface ISignInLocalAccount {\n localAccount: INodeProps;\n items: ISignInItem[];\n forgetPassword: React.ReactNode;\n disclaimer: React.ReactNode;\n error: React.ReactNode;\n signInButton: React.ReactNode;\n}\n\nexport interface ISignInLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignInViewProps {\n className: string;\n viewState: ISignInViewState;\n signIn: IModuleProps;\n loading: ISignInLoading;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n signInSection: INodeProps;\n signInSectionHeading: React.ReactNode;\n signInLocalAccount: ISignInLocalAccount;\n signInSocialAccount: ISignInSocialAccount;\n signInB2BAccount: ISignInB2BAccount;\n signUpSection: INodeProps;\n signUpSectionHeading: React.ReactNode;\n signUpDescription: React.ReactNode;\n signUpLink: React.ReactNode;\n}\n\n/**\n * SignIn component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignIn extends React.Component> {\n private readonly moduleClassName: string = 'ms-sign-in';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private emailId: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignInProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.emailId = 'logonIdentifier';\n }\n\n public componentDidMount(): void {\n this._prePopulateData();\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignInProps, nextState: ISignInViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const config: ISignInConfig = this.props.config || {};\n const resources: ISignInResources = this.props.resources || {};\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signIn: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n signInSection: {\n className: `${this.moduleClassName}__sign-in-section`\n },\n signInSectionHeading: (\n \n ),\n signInLocalAccount: {\n localAccount: {\n className: `${this.moduleClassName}__account-items localAccount`\n },\n items: [\n this._renderInput(\n this.emailId,\n 'email',\n resources.emailAddressLabelText,\n resources.emailAddressAriaLabel,\n this.emailRegex\n ),\n this._renderInput('password', 'password', resources.passwordLabelText)\n ],\n forgetPassword: (\n \n ),\n disclaimer: config.signInDisclaimer && (\n \n ),\n error: ,\n signInButton: (\n \n )\n },\n signInSocialAccount: {\n socialAccounts: {\n className: `${this.moduleClassName}__social-accounts`\n },\n items: [\n this._renderSocialAccount(\n 'FacebookExchange',\n resources.facebookButtonText,\n resources.facebookButtonAriaLabel,\n config.facebookIcon\n ),\n this._renderSocialAccount(\n 'MicrosoftAccountExchange',\n resources.microsoftButtonText,\n resources.microsoftButtonAriaLabel,\n config.microsoftIcon\n )\n ]\n },\n signInB2BAccount: {\n socialAccounts: {\n className: `${this.moduleClassName}__b2b-social-accounts`\n },\n items: [\n this._renderB2BSocialAccount(\n 'StoreManagerB2BSignin',\n resources.b2bButtonText,\n resources.b2bButtonAriaLabel,\n config.displayB2bAccountManagerSignin\n )\n ]\n },\n signUpSection: {\n className: `${this.moduleClassName}__sign-up-section`\n },\n signUpSectionHeading: (\n \n ),\n signUpDescription: (\n \n ),\n signUpLink: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.signInDisclaimer = event.target.value);\n\n public handleSignInHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.signInHeading.text = event.target.value);\n\n public handleSignUpHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.signUpHeading.text = event.target.value);\n\n private readonly _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['CONTENT'] && window['CONTENT']['email_pattern']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n this.emailRegex = window['CONTENT']['email_pattern'];\n }\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // @ts-expect-error\n this.emailId = (window.SA_FIELDS.AttributeFields || [])[0].ID || this.emailId;\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignInResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n requiredField_email: resources.requriedEmailError,\n requiredField_password: resources.requriedPasswordError,\n invalid_email: resources.invalidEmailError,\n invalid_password: resources.invalidPasswordError,\n unknown_error: resources.unknownError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private _renderInput(id: string, type: string, labelText: string, ariaLabel?: string, pattern?: string): ISignInItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n error: (\n \n ),\n input: (\n \n )\n };\n }\n\n private _renderSocialAccount(id: string, text: string, ariaLabel: string, iconImage?: Msdyn365.IImageData): ISignInSocialItem {\n return {\n key: id,\n button: {\n id,\n tag: 'button',\n className: classnames(\n `${this.moduleClassName}__social-account`,\n `${this.moduleClassName}__social-account-${id}`,\n 'accountButton',\n 'msc-btn'\n ),\n 'aria-label': ariaLabel\n },\n image: this._createImageMarkup(iconImage),\n text: \n };\n }\n\n private _renderB2BSocialAccount(\n id: string,\n text: string,\n ariaLabel: string,\n _displayB2bAccountManagerSignin: boolean | undefined\n ): ISignInB2BItem | null {\n if (_displayB2bAccountManagerSignin) {\n return {\n key: id,\n button: {\n id,\n tag: 'button',\n className: classnames(\n `${this.moduleClassName}__social-account`,\n `${this.moduleClassName}__social-account-${id}`,\n 'accountButton',\n 'msc-btn'\n ),\n 'aria-label': ariaLabel\n },\n text: \n };\n }\n return null;\n }\n\n private _createImageMarkup(iconImage?: Msdyn365.IImageData): React.ReactNode | null {\n if (iconImage) {\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings || {},\n imageSettings: iconImage && iconImage.imageSettings\n };\n const pictureClassName = `${this.moduleClassName}__social-account-picture`;\n return (\n
\n \n
\n );\n }\n return null;\n }\n}\n\nexport default SignIn;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignInItem,\n ISignInLoading,\n ISignInLocalAccount,\n ISignInSocialAccount,\n ISignInSocialItem,\n ISignInB2BAccount,\n ISignInB2BItem,\n ISignInViewProps\n} from './sign-in';\n\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\n return (\n \n {items &&\n items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInB2BItem) => {\n return (\n item && (\n \n {item.text}\n \n )\n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignInView: React.FC = props => {\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signInB2BAccount,\n signUpDescription,\n signUpLink\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n {B2BAccount(signInB2BAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpLink}\n \n \n \n );\n};\n\nexport default SignInView;\n"],"names":["AccountCustomerBalanceTile","React","constructor","props","super","this","telemetryContent","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","state","_objectSpread","_initState","reaction","hasError","error","setState","content","ErrorComponent","value","resources","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","shouldComponentUpdate","nextProps","nextState","data","render","isCustomerAccountPaymentEnabled","className","heading","links","config","viewProps","moduleProps","classnames","Heading","headingTag","tag","text","isDetailsLinkDisplayed","LinksComponent","Object","assign","onTextChange","index","event","requestContext","renderView","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","formatCurrency","customerCredit","customerCreditFormatted","toFixed","CreditComponent","verbagePrefix","verbagePostfix","__decorate","computed","Module","_ref","_ref2","_mapEditableLinks","linkdata","length","editableLinks","payLoad","getPayloadObject","forEach","link","contentAction","etext","linkText","attributes","getTelemetryAttributes","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","push","Msdyn365","editProps","AccountGenericTile","handleHeadingChange","target","handleLinkTextChange","linkIndex","onEdit","AccountLoyalty","decimalPrecision","_populateModalData","focusRef","loyaltyCard","currentLoyaltyPoints","expiring","CardNumber","RewardPointId","actionContext","isModalOpen","currentModalData","isModalExpiring","modalID","currentFocus","getLoyaltyRewardPointsExpiringSoonAsync","callerContext","queryResultSettings","then","points","pointsActivity","catch","exception","debug","getLoyaltyRewardPointActivityTimelineAsync","message","_closeModal","undefined","_onOpenModal","_this$state$currentFo","current","focus","_buttonAvailableRef","_buttonExpireRef","TelemetryConstant","BackToShopping","_Msdyn365$getUrlSync","_heading$tag","loyaltyCardLabel","totalAvailablePointsLabel","backToShoppingText","backToShopAttributes","result","loyaltyCardData","rewardPoints","RewardPoints","homeLink","modalTransition","onEntered","node","isAppearing","childNode","firstChild","totalPoints","_getTotalPoints","_renderRewardPoints","pointsModal","_renderModal","isOpen","returnFocusRef","onOpened","Info","Points","Breakdown","PointsBreakdown","Button","infoLabel","AccountLoyaltyLabel","cardNumber","joinDate","_formatJoinDate","_parseDate","LoyaltyEnrollmentDateLocal","pointsLabel","homeButton","href","title","date","format","joinDateFormatted","Intl","DateTimeFormat","locale","month","day","year","Date","map","loyaltyPoints","availableId","expiringId","availablePointsLabel","availablePointsAriaLabel","expiringPointsFormatLabel","expiringPointsFormatAriaLabel","AvailablePoints","availablePointsAttributes","ExpiringPoints","expiringPointsAttributes","label","AccountLoyaltyModalLabel","Description","availableModalLabel","ActivePoints","labelFor","availableModalTrigger","color","onClick","innerRef","expiringModalLabel","PointsExpiringSoon","expiringModalTrigger","_currentModalData$Des","loyaltyActivityDateLabel","loyaltyActivityBalanceLabel","horizontalPosition","verticalPosition","modalClassName","modalHeaderClassName","modalHeader","modalBodyClassName","ModalBodyTop","ModalBodyHeaders","rewardPointsActivity","_renderPointsActivity","pointsDescription","_getPoints","balanceLabel","onClose","total","_loyaltyPoints$Active","activity","_toFixed","Activity","activityType","_getTimelineType","activityDate","cultureFormatter","formatDate","ActivityDate","activityPoints","LoyaltyPoints","dateString","toString","replace","substring","getUTCFullYear","getUTCMonth","getUTCDate","pointActivity","LoyaltyRewardPointTimelineEntryType","earnedPointsLabel","redeemedPointsLabel","adjustedPointsLabel","refundedPointsLabel","ExtensibleLoyaltyRewardPointActivityEntryTypeValue","observer","Node","key","Modal","autoFocus","fade","zIndex","onClosed","toggle","ModalHeader","ModalBody","htmlFor","AccountProfileEdit","moduleClassName","onTextBoxChange","id","toLowerCase","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","email","PAT","PAT_DESC","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","source","componentDidMount","componentDidUpdate","viewState","isShowLoading","accountProfileEdit","loading","modal","modalBody","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","aadConainer","accountProfileEditLocalAccount","_renderLocalAccount","str","e","document","createElement","innerHTML","childNodes","nodeValue","localAccount","items","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","errorMessage","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","type","labelText","maxLength","pattern","wrapper","AccountProfileEditLabelComponent","forId","input","AccountProfileEditInputComponent","onChange","observable","AccountProfileEditItem","AccountProfileEditLoading","_ref3","item","button","LocalAccount","disabled","errorClassName","GetMaxLength","parsedMaxLength","Number","parseInt","isNaN","defaultClassName","B2bRequestsTileLinks","ArrayExtensions","hasElements","B2bRequestsTile","b2bRequestsTile","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","IssueLoyaltyInput","apiSettings","issueLoyalty","MsDyn365","isBrowser","location","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","hasLoyaltyAccount","CardTenderTypeValue","customerInformation","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","onToggle","applicationNode","returnRef","modalFooter","ModalFooter","cancelButton","cancelLoyaltyTermsText","submitButton","onSubmit","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","bind","_submit","_checkboxChecked","toggleRef","search","url","requestUrl","isJoining","qsps","split","qsp","splitQsp","hideToggle","slots","serviceTerms","modalToggle","joinLoyaltytermsToggleText","card","redirectToLoyalty","getUrlSync","getLoyaltyCardAsync","fullCard","update","GetLoyaltyCardInput","successClassName","PasswordResetVerification","getValue","v1Value","v2Value","templateVersion","passwordResetVerification","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","passwordResetVerificationLocalAccount","verificationControlWrapper","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cssClassName","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","PasswordResetVerificationItem","PasswordResetVerificationLoading","description","handleParagraphChange","signInDisclaimer","handleSignInHeadingChange","signInHeading","handleSignUpHeadingChange","signUpHeading","emailId","SA_FIELDS","AttributeFields","errorMessages","requiredField_email","requriedEmailError","requiredField_password","requriedPasswordError","invalid_email","invalid_password","invalidPasswordError","unknown_error","unknownError","signIn","SignInLoadingIconComponent","SignInLoadingMessageComponent","signInSection","signInSectionHeading","signInLocalAccount","emailAddressAriaLabel","passwordLabelText","forgetPassword","SignInLinkComponent","forgotPasswordButtonAriaLabel","forgotPasswordButtonText","disclaimer","SignInErrorComponent","signInButton","SignInButtonComponent","loginButtonAriaLabel","loginButtonText","signInSocialAccount","socialAccounts","_renderSocialAccount","facebookButtonText","facebookButtonAriaLabel","facebookIcon","microsoftButtonText","microsoftButtonAriaLabel","microsoftIcon","signInB2BAccount","_renderB2BSocialAccount","b2bButtonText","b2bButtonAriaLabel","displayB2bAccountManagerSignin","signUpSection","signUpSectionHeading","signUpDescription","SignInDescriptionComponent","signUpDescriptionText","signUpLink","signUpButtonAriaLabel","signUpButtonText","SignInLabelComponent","SignInInputComponent","iconImage","image","_createImageMarkup","SignInTextComponent","_displayB2bAccountManagerSignin","imageProps","gridSettings","imageSettings","pictureClassName","shouldSkipToMainImage","SignInLoading","_ref4","SocialAccount","B2BAccount"],"sourceRoot":""}