{"version":3,"file":"static/js/10.4cf28c11faa471fd60ff.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty/account-loyalty.view.tsx?4d8b","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/account-profile.view.tsx?b964","webpack://Msdyn365.Commerce.Online/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/sign-in.view.tsx?2b3e","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.tsx?2f8c","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?44e9","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?95ac","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?8281","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.tsx?4353","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/account-invoice-tile.tsx?c17e","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty/components/account-loyalty-small-components.tsx?c12b","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty/account-loyalty.tsx?3672","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-text.tsx?8115","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-attributes.tsx?bcc2","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-description.tsx?770a","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-links.tsx?8faf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/account-profile.tsx?fe69","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://Msdyn365.Commerce.Online/./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","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-terms/loyalty-terms.tsx?babd","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.tsx?f5de","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.tsx?0983","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-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/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-up/components/sign-up-button.tsx?33d4","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountAddressTileViewProps } from './account-address-tile';\n\nconst AccountAddressTileView: React.FC = props => {\n const { AccountAddressTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountAddressTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { 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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileViewProps } from './account-loyalty-tile';\n\nconst AccountLoyaltyTileView: React.FC = props => {\n const { AccountLoyaltyTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountLoyaltyTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileViewProps } from './account-order-templates-tile';\n\nconst AccountOrderTemplatesTileView: React.FC = props => {\n const { AccountOrderTemplatesTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountOrderTemplatesTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps } from './account-profile';\n\nconst AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\n return (\n \n {heading}\n \n {extraPreferences &&\n extraPreferences.map((preferenceSecton, index) => {\n return ;\n })}\n \n );\n};\n\nconst AccountPreferenceSection: React.FC = ({\n accountPreference,\n heading,\n description,\n buttonWrapper,\n buttonYesText,\n button,\n buttonNoText\n}) => {\n return (\n \n {heading}\n {description}\n \n {buttonNoText}\n {button}\n {buttonYesText}\n \n \n );\n};\n\nconst AccountProfileSection: React.FC = ({ AccountProfileItem, heading, links, description }) => {\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nconst AccountProfileView: React.FC = props => {\n const {\n AccountProfile,\n infoMessageBar,\n accountProfileWrapper,\n heading,\n emailSection,\n nameSection,\n preferenceSection,\n customerAttributesWrapper,\n customerAttributesSection\n } = props;\n\n return (\n \n {infoMessageBar}\n {accountProfileWrapper && (\n \n {heading}\n \n \n \n \n )}\n {customerAttributesWrapper && {customerAttributesSection}}\n \n );\n};\n\nexport default AccountProfileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileViewProps } from './account-welcome-tile';\n\nconst AccountWelcomeTileView: React.FC = props => {\n const { AccountWelcomeTile, heading } = props;\n\n return {heading};\n};\n\nexport default AccountWelcomeTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileViewProps } from './account-wishlist-tile';\n\nconst AccountWishlistTileView: React.FC = props => {\n const { AccountWishlistTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountWishlistTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IB2bRequestsStatusViewProps } from './b2b-requests-status';\n\nconst B2bRequestsStatusView: React.FC = props => {\n const { b2bRequestsStatus, heading, table } = props;\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { 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 { 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 { 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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IPasswordResetItem, IPasswordResetLoading, IPasswordResetLocalAccount, IPasswordResetViewProps } from './password-reset';\n\nconst PasswordResetItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IPasswordResetItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst PasswordResetLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetView: React.FC = props => {\n const { passwordReset, viewState, loading, defaultAADConainer, aadConainer, heading, passwordResetLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignInItem,\n ISignInLoading,\n ISignInLocalAccount,\n ISignInSocialAccount,\n ISignInSocialItem,\n ISignInB2BAccount,\n ISignInB2BItem,\n ISignInViewProps\n} from './sign-in';\n\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\n return (\n \n {items &&\n items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInB2BItem) => {\n return (\n item && (\n \n {item.text}\n \n )\n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignInView: React.FC = props => {\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signInB2BAccount,\n signUpDescription,\n signUpLink\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n {B2BAccount(signInB2BAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpLink}\n \n \n \n );\n};\n\nexport default SignInView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignUpEmailVerification,\n ISignUpGivenNameVerification,\n ISignUpItem,\n ISignUpLoading,\n ISignUpLocalAccount,\n ISignUpSurnameVerification,\n ISignUpViewProps\n} from './sign-up';\n\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\n return (\n <>\n {successMessage &&\n successMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {errorMessage &&\n errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode) => {\n return <>{button};\n })}\n \n \n );\n};\n\n/**\n * Handles validation of sign-up givenName.\n * @param event - Content editable event.\n * @param event.givenName - Event Given Name.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for Given Name.\n */\nconst SignUpGivenNameVerificationComponent: React.FC = ({ givenName, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\n/**\n * Handles validation of signUp surname.\n * @param event - Content editable event.\n * @param event.surname - Event surname.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for surname.\n */\nconst SignUpSurnameVerificationComponent: React.FC = ({ surname, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n emailVerification,\n givenNameVerification,\n surnameVerification,\n buttons,\n errorMessage,\n disclaimer\n}) => {\n return (\n \n {items &&\n items.map((item: ISignUpItem) => {\n if (item.key === 'email' && emailVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'surname' && surnameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n );\n};\n\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignUpView: React.FC = props => {\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading, signUpLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(signUpLocalAccount)}\n \n \n );\n};\n\nexport default SignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAadGenericData } from './aad-generic.data';\nimport { IAadGenericProps } from './aad-generic.props.autogenerated';\n\nexport interface IAadGenericViewProps extends IAadGenericProps {\n aadGeneric: IModuleProps;\n aadConainer: INodeProps;\n aadAPIConainer: React.ReactNode;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AadGeneric component.\n * @extends {React.Component>}\n */\nclass AadGeneric extends React.Component> {\n private readonly moduleClassName: string = 'ms-aad-generic';\n\n public componentDidMount(): void {\n // @ts-expect-error\n const { $i2e, $element } = window || {};\n\n if ($i2e && $element) {\n $i2e.insertServiceContent($element.getElementContent());\n $element.initialize();\n }\n }\n\n public shouldComponentUpdate(nextProps: IAadGenericViewProps): boolean {\n if (nextProps.config.heading !== this.props.config.heading) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n\n const viewProps = {\n ...this.props,\n aadGeneric: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n aadConainer: {\n className: `${this.moduleClassName}__container`\n },\n aadAPIConainer:
,\n heading: heading && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.heading) {\n this.props.config.heading.text = event.target.value;\n }\n };\n}\n\nexport default AadGeneric;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountAddressTileData } from './account-address-tile.data';\nimport { IAccountAddressTileProps } from './account-address-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-address-tile-description';\nimport LinksComponent from './components/account-address-tile-links';\n\nexport interface IAccountAddressTileViewProps extends IAccountAddressTileProps {\n AccountAddressTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountAddress component.\n * @extends {React.PureComponent>}\n */\nclass AccountAddressTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountAddressTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountAddressTileDescriptionForSingleAddress, accountAddressTileDescriptionForMultipleAddresses } = resources;\n const { address } = data;\n const addressCount = (address && address.result && address.result.length) || 0;\n const accountAddressTileDescription =\n addressCount === 1 ? accountAddressTileDescriptionForSingleAddress : accountAddressTileDescriptionForMultipleAddresses;\n const description = format(accountAddressTileDescription, addressCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountAddressTile: {\n moduleProps: this.props,\n className: classnames('ms-account-address-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountAddressTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceActions {\n className?: string;\n requestStatementButtonLabel: string;\n onRequestStatement(): void;\n}\n\ninterface IAdminRequestStatementProps {\n className?: string;\n requestStatementButtonLabel: string;\n myUserAccountLabel: string;\n fullOrganizationLabel: string;\n isDropdownShowing: boolean;\n buttonReference?: React.RefObject;\n promoteToSellerLabel?: string;\n onToggleDropdown(): void;\n onRequestStatement(isFullOrg: boolean): void;\n onPromoteToSeller?(): void;\n}\n\nexport const ActionBar: React.FC = ({ className, onRequestStatement, requestStatementButtonLabel }) => {\n return (\n
\n \n
\n );\n};\n\nexport const AdminRequestStatementButton: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n onToggleDropdown,\n onPromoteToSeller,\n promoteToSellerLabel,\n myUserAccountLabel,\n fullOrganizationLabel,\n isDropdownShowing,\n buttonReference\n}) => {\n const onSelectCustomerAccount = React.useCallback(() => {\n onRequestStatement(false);\n }, [onRequestStatement]);\n\n const onSelectFullOrg = React.useCallback(() => {\n onRequestStatement(true);\n }, [onRequestStatement]);\n\n const onSelectPromoteToSeller = React.useCallback(() => {\n onPromoteToSeller?.();\n }, [onPromoteToSeller]);\n\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n const requestStatementDropdownString = `request-statement-dropdown-id-${Random.Guid.generateGuid()}`;\n return (\n
\n \n {requestStatementButtonLabel}\n \n \n \n {myUserAccountLabel}\n \n \n {promoteToSellerLabel && (\n \n {promoteToSellerLabel}\n \n )}\n \n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * The interface for the props for the account statement request modal.\n */\ninterface IAccountStatementRequestModalProps {\n email: string;\n isModalOpen: boolean;\n fromDateString: string;\n toDateString: string;\n canSubmitRequest: boolean;\n modalHeaderLabel: string;\n sendToEmailLabel: string;\n fromDateLabel: string;\n toDateLabel: string;\n submitRequestLabel: string;\n cancelLabel: string;\n className: string;\n selectedUser: string;\n selectedUserLabel: string;\n toggle(): void;\n onChangeFromDate(newFromDate: string): void;\n onChangeToDate(newToDate: string): void;\n onSubmitRequest(): void;\n modalAriaLabel?: string;\n maxDateString?: string;\n}\n\nexport const RequestStatementModal: React.FC = ({\n className,\n email,\n isModalOpen,\n toggle,\n fromDateString,\n toDateString,\n onChangeFromDate,\n onChangeToDate,\n canSubmitRequest,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n onSubmitRequest,\n selectedUser,\n selectedUserLabel,\n modalAriaLabel,\n maxDateString\n}) => {\n const onChangeFromDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeFromDate(value);\n },\n [onChangeFromDate]\n );\n\n const onChangeToDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeToDate(value);\n },\n [onChangeToDate]\n );\n\n /**\n * If the onBlur is called on the fromDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurFromDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== fromDateString) {\n event.target.focus();\n }\n },\n [fromDateString]\n );\n\n /**\n * If the onBlur is called on the toDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurToDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== toDateString) {\n event.target.focus();\n }\n },\n [toDateString]\n );\n\n return (\n \n {modalHeaderLabel}\n \n {selectedUser && (\n
\n \n
\n
{selectedUser}
\n
\n )}\n \n
\n {email}\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n {submitRequestLabel}\n \n {` `}\n \n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { AdminRequestStatementButton } from './account-actions';\nimport { RequestStatementModal } from './account-statement-request-modal';\n\nexport * from './account-actions';\nexport * from './account-statement-request-modal';\n\ninterface IAccountLabel {\n name: string;\n accountNumber: string;\n createdOn: string;\n customerSincePrefix: string;\n}\n\ninterface IAccountValues {\n availableCredit: string;\n availableCreditLabel: string;\n}\n\n/**\n * Prop for Available credit component.\n */\ninterface ICreditSummaryAvailableCredit {\n availableCreditLabel: string;\n availableCredit: string;\n}\n\n/**\n * Prop for Balanced owed component.\n */\ninterface ICreditSummaryBalanceOwed {\n balanceOwedLabel: string;\n balanceOwed: string;\n}\n\n/**\n * Prop for credit excess component.\n */\ninterface ICreditSummaryCreditExcess {\n creditExcessLabel: string | null;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryLabel {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryValues {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface IBackButton {\n link: string;\n label: string;\n telemetryContent?: ITelemetryContent;\n}\n\nexport const AccountLabels: React.FC = ({ name, accountNumber, customerSincePrefix, createdOn }) => (\n
\n

{name}

\n
#{accountNumber}
\n
\n {customerSincePrefix} {createdOn}\n
\n
\n);\n\nexport const AccountValues: React.FC = ({ availableCredit, availableCreditLabel }) => (\n
\n
{availableCreditLabel}
\n
{availableCredit}
\n
\n);\n\nexport const CreditSummaryLabels: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
{availableCredit}
\n
{balanceOwed}
\n
{creditExcess}
\n
\n);\n\nexport const CreditSummaryValues: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
{availableCredit}
\n
{balanceOwed}
\n {creditExcess &&
{creditExcess}
}\n
\n);\n\n/**\n * Available credit component.\n * @param props - ICreditSummaryAvailableCredit.\n * @param props.availableCreditLabel - Available credit label.\n * @param props.availableCredit - Available credit value.\n * @returns - React Node for available credit component.\n */\nexport const AvailableCreditComponent: React.FC = ({ availableCreditLabel, availableCredit }) => (\n
\n
\n
{availableCreditLabel}
\n
\n
\n
{availableCredit}
\n
\n
\n);\n\n/**\n * Balance Owed Component.\n * @param props - ICreditSummaryBalanceOwed.\n * @param props.balanceOwedLabel - Balance Owed label.\n * @param props.balanceOwed - Balance Owed value.\n * @returns - React Node for balance owed component.\n */\nexport const BalanceOwedComponent: React.FC = ({ balanceOwedLabel, balanceOwed }) => (\n
\n
\n
{balanceOwedLabel}
\n
\n
\n
{balanceOwed}
\n
\n
\n);\n\n/**\n * Credit Excess Component.\n * @param props - ICreditSummaryCreditExcess.\n * @param props.creditExcessLabel - Credit excess label.\n * @param props.creditExcess - Credit excess value.\n * @returns - React Node for credit excess component.\n */\nexport const CreditExcessComponent: React.FC = ({ creditExcessLabel, creditExcess }) => (\n
\n {creditExcess && (\n
\n
{creditExcessLabel}
\n
\n )}\n
\n {creditExcess &&
{creditExcess}
}\n
\n
\n);\nexport const BackButton: React.FC = ({ link, label, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.BackToShopping);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {label}\n \n );\n};\n\nexport { AdminRequestStatementButton, RequestStatementModal };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { BusinessPartnerUsersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n CustomerBalances\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getTelemetryObject, Heading, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { get } from 'lodash';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceData } from './account-customer-balance.data';\nimport { HeadingTag, IAccountCustomerBalanceProps } from './account-customer-balance.props.autogenerated';\nimport {\n AccountLabels,\n AccountValues,\n ActionBar,\n AdminRequestStatementButton,\n AvailableCreditComponent,\n BackButton,\n BalanceOwedComponent,\n CreditExcessComponent,\n RequestStatementModal\n} from './components';\n\nexport interface IAccountCustomerBalanceViewProps extends IAccountCustomerBalanceProps {\n heading: string;\n homeButton: React.ReactNode;\n accountSectionHeading: React.ReactNode;\n accountLabels: React.ReactNode;\n accountValues: React.ReactNode;\n creditSummarySectionHeading: React.ReactNode;\n creditSummaryLabels?: React.ReactNode;\n creditSummaryValues?: React.ReactNode;\n actions: React.ReactNode;\n requestStatementModal: React.ReactNode;\n availableCredit?: React.ReactNode;\n balanceOwed?: React.ReactNode;\n creditExcess?: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceState {\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n}\n\n/**\n *\n * AccountCustomerBalance component.\n * @extends {React.PureComponent>}\n */\nclass AccountCustomerBalance extends React.PureComponent<\n IAccountCustomerBalanceProps,\n IAccountCustomerBalanceState\n> {\n private readonly telemetryContent?: ITelemetryContent;\n\n @computed get canSubmitStatementRequest(): boolean {\n return this.state.statementRequestFromDateString !== '' && this.state.statementRequestToDateString !== '';\n }\n\n constructor(props: IAccountCustomerBalanceProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.state = {\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0]\n };\n }\n\n public render(): JSX.Element | null {\n const customer = get(this.props, 'data.customerInformation.result');\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n if ([customer, account].includes(undefined)) {\n this.props.context.telemetry.error('Customer data is unavailable, module will not render');\n return null;\n }\n\n const { config, resources, context } = this.props;\n const { heading } = config;\n const {\n creditSummarySectionHeading,\n accountSectionHeading,\n backToShoppingText,\n customerSincePrefix,\n availableCreditLabel,\n balanceOwedLabel,\n creditExcessLabel,\n requestStatementButtonLabel,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n myAccountStatementLabel,\n fullOrganizationLabel,\n modalAriaLabel\n } = resources;\n\n const {\n isStatementRequestModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n statementRequestMaxDateString\n } = this.state;\n\n const accountNumber = customer.AccountNumber;\n const createdOn = this._formatJoinDate(new Date(customer.CreatedDateTime));\n const name = `${customer.FirstName} ${customer.LastName}`;\n let customerCredit = 0;\n let customerAccountBalance = 0;\n let excess = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n customerAccountBalance = account.Balance;\n excess = account.Balance - account.CreditLimit;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n customerAccountBalance = account.InvoiceAccountBalance;\n excess = account.InvoiceAccountBalance - account.InvoiceAccountCreditLimit;\n }\n\n const creditExcess = excess > 0 ? this._formatCurrency(excess) : null;\n const availableCredit = this._formatCurrency(customerCredit);\n const balanceOwed = this._formatCurrency(customerAccountBalance);\n const backLink = Msdyn365.getUrlSync('home', context.actionContext) || '';\n const emailAddress = customer.Email;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const isB2BAdmin = isB2BSite && customer.IsB2bAdmin;\n\n const actionBar = isB2BAdmin ? (\n \n ) : (\n isB2BSite && (\n \n )\n );\n\n const viewProps = {\n ...this.props,\n heading: ,\n accountSectionHeading: (\n \n ),\n accountLabels: (\n \n ),\n accountValues: ,\n creditSummarySectionHeading: (\n \n ),\n availableCredit: ,\n balanceOwed: ,\n creditExcess: ,\n homeButton: ,\n actions: actionBar,\n requestStatementModal: isB2BSite && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n private _formatCurrency(currency: number): string {\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n\n return `${formatCurrency(currency.toFixed(2), currencyCode)}`;\n }\n\n private _formatJoinDate(date: Date): string {\n const i14nDate = new Intl.DateTimeFormat(this.props.context.actionContext.requestContext.locale, {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n\n return i14nDate.format(date);\n }\n\n private readonly _showRequestStatementModal = (): void => {\n if (!this.state.isStatementRequestModalOpen) {\n this.setState({\n isStatementRequestModalOpen: true\n });\n }\n };\n\n private readonly _toggleModal = (): void => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n };\n\n private readonly _toggleDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _adminShowRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestAdminDropdownOpen: false\n });\n\n this._showRequestStatementModal();\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const B2BUserId = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType.Email\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this.setState({\n isStatementRequestModalOpen: false\n });\n };\n}\n\nexport default AccountCustomerBalance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n {error}\n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n {value}\n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n {label}\n {value}\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountCustomerBalanceTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-customer-balance-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountCustomerBalanceTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { 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 * 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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileData } from './account-invoice-tile.data';\nimport { IAccountInvoiceTileProps } from './account-invoice-tile.props.autogenerated';\nimport { AccountInvoiceTileDescription } from './components';\nimport LinksComponent from './components/account-invoice-tile-links';\n\nexport interface IAccountInvoiceTileViewProps extends IAccountInvoiceTileProps {\n AccountInvoiceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountInvoiceTile component.\n * @extends {React.PureComponent>}\n */\nclass AccountInvoiceTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountInvoiceTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const {\n config,\n data,\n resources,\n context: {\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n }\n } = this.props;\n const { className, heading, links } = config;\n const { accountInvoiceTileDescription } = resources;\n\n const openinvoiceAmount = data.customerBalance.result?.OpenInvoiceBalance || 0;\n const invoiceTotalAmount: string | undefined = formatCurrency(openinvoiceAmount.toFixed(2), currencyCode);\n\n const description = invoiceTotalAmount && format(accountInvoiceTileDescription, invoiceTotalAmount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountInvoiceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-invoice-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountInvoiceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\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 { 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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { LoyaltyRewardPoint } from '@msdyn365-commerce/retail-proxy';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileData } from './account-loyalty-tile.data';\nimport { IAccountLoyaltyTileProps } from './account-loyalty-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-loyalty-tile-description';\nimport LinksComponent from './components/account-loyalty-tile-links';\n\nexport interface IAccountLoyaltyTileViewProps extends IAccountLoyaltyTileProps {\n AccountLoyaltyTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.PureComponent>}\n */\nclass AccountLoyaltyTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountLoyaltyTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, data, resources, context } = this.props;\n const { className, heading, signUpLinkText, signUpLinkAriaLabel, viewLinkText, viewLinkAriaLabel } = config;\n const { accountLoyaltySummary, accountLoyaltyMemberSummary } = resources;\n const { loyaltyCard } = data;\n\n let description = accountLoyaltySummary;\n let url = Msdyn365.getUrlSync('loyaltyJoin', context.actionContext) || '';\n const link = { linkText: signUpLinkText, linkUrl: { destinationUrl: url }, ariaLabel: signUpLinkAriaLabel };\n\n if (loyaltyCard && loyaltyCard.result && loyaltyCard.result.CardNumber) {\n const decimalPrecision = 2;\n let points = 0;\n\n if (loyaltyCard.result.RewardPoints && loyaltyCard.result.RewardPoints.length > 0) {\n loyaltyCard.result.RewardPoints.forEach((rewardPoint: LoyaltyRewardPoint) => {\n points += rewardPoint.ActivePoints!;\n });\n }\n link.ariaLabel = viewLinkAriaLabel;\n link.linkText = viewLinkText;\n url = Msdyn365.getUrlSync('loyalty', context.actionContext) || '';\n link.linkUrl.destinationUrl = url;\n description = format(accountLoyaltyMemberSummary, points.toFixed(decimalPrecision));\n }\n\n const viewProps = {\n ...this.props,\n className,\n AccountLoyaltyTile: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty-tile', config.className)\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.signUpLinkText && this.props.config.viewLinkText) {\n this.props.config.viewLinkText = event.target.value;\n }\n };\n}\n\nexport default AccountLoyaltyTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileData } from './account-order-templates-tile.data';\nimport { IAccountOrderTemplatesTileProps } from './account-order-templates-tile.props.autogenerated';\nimport { AccountOrderTemplatesTileDescription, AccountOrderTemplatesTileLinks } from './components';\n\nexport interface IAccountOrderTemplatesTileViewProps extends IAccountOrderTemplatesTileProps {\n AccountOrderTemplatesTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountOrderTemplatesTile component.\n * @extends {React.PureComponent>}\n */\nexport class AccountOrderTemplatesTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountOrderTemplatesTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n\n if (!this.props.context.request.params.isEditor && !isChannelTypeB2B(this.props.context.request)) {\n return <>;\n }\n\n const { className, heading, links } = config;\n const { accountOrderTemplatesTileDescription } = resources;\n const orderTemplates = data.orderTemplates;\n\n const orderTemplatesCount = (orderTemplates?.result || []).length;\n const description = format(accountOrderTemplatesTileDescription, orderTemplatesCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountOrderTemplatesTile: {\n moduleProps: this.props,\n className: classnames('ms-account-order-templates-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountOrderTemplatesTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountProfileText {\n className: string;\n text: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountProfileText: React.FC = ({ className, text }) => {text};\n\nexport default IAccountProfileText;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IDictionary, Text } from '@msdyn365-commerce/core';\nimport { AttributeDefinition, Customer, CustomerAttribute } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { StringExtensions, updateCustomerAttributes, updateCustomerAttributesInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from '../account-profile.data';\nimport { IAccountProfileProps } from '../account-profile.props.autogenerated';\nimport TextComponent from './account-profile-text';\n\ninterface IAttributePropertiesType {\n Name?: string;\n IsMandatory?: boolean;\n}\n\nexport interface IAccountProfileAttributesProps {\n accountProfileProps: IAccountProfileProps;\n}\n\nexport enum AccountAttributeDataTypeValue {\n Decimal = 3,\n Integer = 4,\n Text = 5,\n TrueFalse = 6\n}\n\nexport interface IAttributePayloadData {\n recordId?: number;\n name?: string;\n dataTypeValue?: number;\n isEnumeration?: boolean;\n lowerBoundValue?: number;\n upperBoundValue?: number;\n decimalValue?: number;\n integerValue?: number;\n textValue?: string;\n booleanValue?: boolean;\n isMandatory?: boolean;\n defaultValue?: string;\n}\n\nexport interface IAccountProfileAttributesState extends React.ComponentState {\n editAttributes: boolean;\n phone: string;\n vatNumber: string;\n attributes: IDictionary;\n attributeError: IDictionary;\n}\n\n/**\n *\n * AccountProfileAttributes class.\n * @extends {React.PureComponentIAccountProfileAttributesProps, IAccountProfileAttributesState>}\n */\n@observer\nclass AccountProfileAttributes extends React.Component {\n private readonly attributePayloadData: IAttributePayloadData[];\n\n @observable private isUpdatingAttributes: boolean = false;\n\n @observable private gotException: boolean = false;\n\n private hasError: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private initialAttributes: IDictionary;\n\n private initialCustomerAttributes?: CustomerAttribute[];\n\n private initialPhone: string;\n\n private initialVatNumber: string;\n\n private readonly payLoad: IPayLoad;\n\n private readonly editRef: React.RefObject;\n\n private readonly attributesContainerRef: React.RefObject;\n\n private readonly attributeClassName: string = 'ms-account-profile__attributes-element';\n\n private readonly maxIntegerLimit: number = 2_100_000_000;\n\n private readonly minIntegerLimit: number = -2_100_000_000;\n\n private readonly maxDecimalLimit: number = 7_900_000_000_000;\n\n private readonly minDecimalLimit: number = -7_900_000_000_000;\n\n private readonly maxStringLength: number = 1000;\n\n private readonly maxVATNumberLength: number = 20;\n\n private readonly maxPhoneLength: number = 25;\n\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileAttributesProps) {\n super(props);\n this.state = {\n editAttributes: false,\n phone: '',\n vatNumber: '',\n attributes: {},\n attributeError: {}\n };\n this.initialAttributes = {};\n this.initialCustomerAttributes = [];\n this.initialPhone = '';\n this.initialVatNumber = '';\n this.attributePayloadData = [];\n const telemetryPageName =\n (this.props.accountProfileProps &&\n this.props.accountProfileProps.context &&\n this.props.accountProfileProps.context.request &&\n this.props.accountProfileProps.context.request.telemetryPageName) ||\n '';\n const friendlyName = (this.props.accountProfileProps && this.props.accountProfileProps.friendlyName) || '';\n const telemetry = (this.props.accountProfileProps && this.props.accountProfileProps.telemetry) || {};\n this.telemetryContent = getTelemetryObject(telemetryPageName, friendlyName, telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.editRef = React.createRef();\n this.attributesContainerRef = React.createRef();\n }\n\n public componentDidMount(): void {\n this._buildPayloadData();\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n reaction(\n () => this.props.accountProfileProps.data.customerInformation.result,\n () => {\n const customerInformation = this.props.accountProfileProps.data.customerInformation.result;\n this.initialCustomerAttributes = customerInformation && customerInformation.Attributes;\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n }\n );\n reaction(\n () => this.props.accountProfileProps.data.attributeDefinitions.result,\n () => {\n this._buildPayloadData();\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileAttributesProps, nextState: IAccountProfileAttributesState): boolean {\n if (this.state === nextState && this.props.accountProfileProps.data === nextProps.accountProfileProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n return this._renderAttributes();\n }\n\n private readonly _renderAttributes = (): JSX.Element | null => {\n const { config, data, resources } = this.props.accountProfileProps;\n const attributeDefinitions: AttributeDefinition[] = data.attributeDefinitions.result || [];\n const additionalInformationSectionHeading =\n (config.additionalInformationSectionHeading && config.additionalInformationSectionHeading.text) || '';\n const showAttributes = config.showAttributes || '';\n const attributes = showAttributes.split(',');\n const elements = attributes.map(att => {\n const attributeDefinition: AttributeDefinition = attributeDefinitions.find(\n attribute => attribute.IsHidden === false && attribute.Name!.toLocaleLowerCase() === att.toLocaleLowerCase()\n ) || { RecordId: 0 };\n return this._renderAttribute(attributeDefinition);\n });\n const edit = (this.state && this.state.editAttributes) || false;\n this.payLoad.contentAction.etext = `${resources.attributesEditButtonText} ${additionalInformationSectionHeading}`;\n const editAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesSaveButtonText} ${additionalInformationSectionHeading}`;\n const saveAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesCancelButtonText} ${additionalInformationSectionHeading}`;\n const cancelAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n // Disable the 'Edit' button if the switch is enabled and the customer is async.\n const disableBtn: boolean =\n (this.props.accountProfileProps.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n return (\n \n {config.additionalInformationSectionHeading && (\n \n )}\n {config.showPhone && this._renderPhone()}\n {config.showVatNumber && this._renderVatNumber()}\n {elements}\n {this.gotException && (\n
\n \n
\n )}\n {!edit && (\n \n {resources.attributesEditButtonText}\n \n )}\n {edit && (\n \n {resources.attributesSaveButtonText}\n \n )}\n {edit && (\n \n {resources.attributesCancelButtonText}\n \n )}\n
\n );\n };\n\n private readonly _renderPhone = (): JSX.Element | null => {\n const { phoneSectionHeading } = this.props.accountProfileProps.config;\n const heading = (phoneSectionHeading && phoneSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {phoneSectionHeading && }\n \n {this._renderError('Phone')}\n
\n );\n };\n\n private readonly _renderVatNumber = (): JSX.Element | null => {\n const { vatNumberSectionHeading } = this.props.accountProfileProps.config;\n const heading = (vatNumberSectionHeading && vatNumberSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {vatNumberSectionHeading && }\n \n {this._renderError('VATNumber')}\n
\n );\n };\n\n private readonly _renderAttribute = (customAttribute: AttributeDefinition): JSX.Element | null => {\n const editAttributes = (this.state && this.state.editAttributes) || false;\n const className = (customAttribute.Name && customAttribute.Name.replace(/ /g, '_')) || '';\n switch (customAttribute.ExtDataType && customAttribute.ExtDataType.Value) {\n case AccountAttributeDataTypeValue.Integer:\n case AccountAttributeDataTypeValue.Decimal:\n return this._renderIntegerDecimalInput(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.Text:\n return this._renderTextInputOrSelect(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.TrueFalse:\n return this._renderBoolean(customAttribute, className, editAttributes);\n default:\n return null;\n }\n };\n\n private readonly _renderIntegerDecimalInput = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderTextInputOrSelect = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const isEnumeration: boolean = customAttribute.IsEnumeration || false;\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n if (isEnumeration && customAttribute.EnumerationDetails) {\n const value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n return (\n
\n \n \n {hasNoValue && (\n \n )}\n {customAttribute.EnumerationDetails.map(option => {\n const selected = option.EnumerationValue === this.state.attributes[customAttribute.Name || ''];\n return (\n \n {option.EnumerationValue}\n \n );\n })}\n \n
\n );\n }\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderBoolean = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n let value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n const render = !(hasNoValue && !editAttributes);\n value = value || 'false';\n const toggleState = (value === 'true' && 'enable') || 'disable';\n const arialabel = format(this.props.accountProfileProps.resources.attributeToggleButtonAriaLabel, customAttribute.Name);\n const ariaPressed = (value === 'true' && true) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n let toggleValue = 'false';\n if (value === 'true') {\n toggleValue = 'false';\n } else {\n toggleValue = 'true';\n }\n\n return (\n \n \n {render && (\n \n \n \n \n \n )}\n \n );\n };\n\n private readonly _renderError = (attributeName: string): JSX.Element | null => {\n const error: string = (this.state && this.state.attributeError && this.state.attributeError[attributeName]) || '';\n const hasError = !StringExtensions.isNullOrWhitespace(error);\n if (hasError) {\n return (\n
\n \n
\n );\n }\n return null;\n };\n\n private readonly _getAttributeProps = (attributeName: string): IAttributePropertiesType => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === attributeName);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n return {\n Name: isMandatory ? `${attributeName || ''} *` : attributeName || '',\n IsMandatory: isMandatory\n };\n };\n\n private readonly _onPhoneChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ phone: value });\n };\n\n private readonly _onVatNumberChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ vatNumber: value });\n };\n\n private readonly _enableAttributes = () => {\n this.hasError = false;\n\n // To clear exception messages\n this.gotException = false;\n this.setState({ editAttributes: true, attributeError: {} });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n if (this.attributesContainerRef.current) {\n const attributes: HTMLCollectionOf = this.attributesContainerRef.current.getElementsByClassName(\n this.attributeClassName\n );\n if (attributes && attributes.length > 0) {\n this._setFocus(attributes[0] as HTMLElement);\n }\n }\n }, 0);\n }\n };\n\n private readonly _disableAttributes = () => {\n this.setState({\n editAttributes: false,\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n };\n\n private readonly _onAttributeChange = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.target.value;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeCheck = (attributeDefinition: AttributeDefinition, value: string) => (\n event: React.MouseEvent\n ) => {\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeSelect = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.currentTarget.selectedOptions[0].value;\n const index = event.currentTarget.selectedOptions[0].index;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n },\n selectedIndex: {\n ...this.state.selectedIndex,\n [name]: index\n }\n });\n };\n\n private readonly _getAttributes = () => {\n const { config, data } = this.props.accountProfileProps;\n const showAttributes = config.showAttributes || '';\n const showAttributesArray = showAttributes.split(',');\n const customer = data.customerInformation.result;\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attributes: IDictionary = {};\n\n showAttributesArray.forEach(showAttribute => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === showAttribute);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n const defaultValue = attributePayloadData && attributePayloadData.defaultValue;\n const attribute = custmerAttributes.find(att => att.Name === showAttribute);\n let value: string = '';\n if (attribute && attribute.AttributeValue) {\n const name = (attribute && attribute.Name) || '';\n switch (attribute.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n if (attribute.AttributeValue.IntegerValue) {\n value = String(attribute.AttributeValue.IntegerValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n if (attribute.AttributeValue.DecimalValue) {\n value = String(attribute.AttributeValue.DecimalValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n if (attribute.AttributeValue.StringValue) {\n value = attribute.AttributeValue.StringValue;\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n if (attribute.AttributeValue.BooleanValue !== null) {\n value = String(attribute.AttributeValue.BooleanValue);\n attributes[name] = value;\n }\n break;\n default:\n\n // Do nothing\n }\n }\n if (StringExtensions.isNullOrWhitespace(value) && isMandatory) {\n attributes[showAttribute] = '';\n }\n if (value.length === 0 && defaultValue) {\n attributes[showAttribute] = String(defaultValue);\n }\n });\n if (Object.keys(this.initialAttributes).length === 0) {\n this.initialAttributes = attributes;\n }\n this.setState({ attributes });\n };\n\n // eslint-disable-next-line\n private readonly _addOrUpdateAttribute = (customer: Customer) => {\n const { resources } = this.props.accountProfileProps;\n const { phone, vatNumber } = this.state;\n const attributeError: IDictionary = {};\n let hasError: boolean = false;\n let hasValue: boolean = true;\n for (const [key, value] of Object.entries(this.state.attributes)) {\n const payloadData: IAttributePayloadData = this.attributePayloadData.find(data => data.name === key) || {};\n if (payloadData) {\n switch (payloadData.dataTypeValue) {\n case AccountAttributeDataTypeValue.Decimal:\n const decimalValue = Number(value);\n if (isNaN(decimalValue)) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Decimal');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (decimalValue < payloadData.lowerBoundValue || decimalValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (decimalValue > this.maxDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxDecimalLimit\n );\n hasError = true;\n }\n\n if (decimalValue < this.minDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minDecimalLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.decimalValue = decimalValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Integer:\n const integerValue = Number(value);\n if (isNaN(integerValue) || value.includes('.')) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Integer');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (integerValue < payloadData.lowerBoundValue || integerValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (integerValue > this.maxIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxIntegerLimit\n );\n hasError = true;\n }\n\n if (integerValue < this.minIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minIntegerLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.integerValue = integerValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n let trimValue = '';\n if (!StringExtensions.isNullOrWhitespace(value)) {\n trimValue = value.trim();\n }\n if (trimValue.length > this.maxStringLength) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputStringMaxLengthErrorText,\n payloadData.name,\n this.maxStringLength\n );\n hasError = true;\n }\n if (!hasError) {\n payloadData.textValue = trimValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n payloadData.booleanValue = value === 'true';\n break;\n default:\n\n // Do nothing\n }\n\n if (payloadData.isMandatory && StringExtensions.isNullOrWhitespace(value)) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputMandatoryErrorText, payloadData.name);\n hasError = true;\n }\n\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attribute = custmerAttributes.find(att => att.Name === key);\n const index = custmerAttributes.findIndex(att => att.Name === key);\n\n if (index !== -1 && !hasValue) {\n custmerAttributes.splice(index, 1);\n }\n\n if (!hasError && hasValue) {\n if (attribute) {\n attribute.Attribute = undefined;\n attribute.DataTypeValue = payloadData.dataTypeValue;\n attribute.Name = payloadData.name;\n attribute.RecordId = payloadData.recordId;\n attribute.Units = undefined;\n attribute.AttributeValue = {\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n };\n attribute.ExtensionProperties = [];\n attribute.NameTranslations = [];\n } else {\n custmerAttributes.push({\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerAttribute',\n Attribute: undefined,\n DataTypeValue: payloadData.dataTypeValue,\n KeyName: payloadData.name,\n Name: payloadData.name,\n RecordId: payloadData.recordId,\n Units: undefined,\n AttributeValue: {\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommercePropertyValue',\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n },\n 'ExtensionProperties@odata.type': '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.CommerceProperty)',\n ExtensionProperties: [],\n 'NameTranslations@odata.type':\n '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.TextValueTranslation)',\n NameTranslations: []\n });\n }\n }\n }\n }\n\n if (phone.trim().length > this.maxPhoneLength) {\n attributeError.Phone = format(resources.attributeInputStringMaxLengthErrorText, 'Phone', this.maxPhoneLength);\n hasError = true;\n } else {\n customer.Phone = phone.trim();\n }\n\n if (vatNumber.trim().length > this.maxVATNumberLength) {\n attributeError.VATNumber = format(resources.attributeInputStringMaxLengthErrorText, 'VAT Number', this.maxVATNumberLength);\n hasError = true;\n } else {\n customer.VatNumber = vatNumber.trim();\n }\n\n this.hasError = hasError;\n this.setState({ attributeError });\n };\n\n private readonly _saveAttributes = async () => {\n const { context, data } = this.props.accountProfileProps;\n const customer = data.customerInformation.result;\n\n if (customer && context) {\n this._addOrUpdateAttribute(customer);\n const input = new updateCustomerAttributesInput(\n customer.AccountNumber,\n customer.Attributes || [],\n context.request.apiSettings,\n customer.Phone,\n customer.VatNumber\n );\n\n this.isUpdatingAttributes = true;\n this.gotException = false;\n\n if (!this.hasError) {\n this.setState({ editAttributes: false });\n try {\n await updateCustomerAttributes(input, context.actionContext);\n } catch (error) {\n this.gotException = true;\n customer.Attributes = this.initialCustomerAttributes;\n if (context.telemetry) {\n context.telemetry.exception(error);\n context.telemetry.debug('Unable to update customer attributes');\n }\n this.setState({\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n }\n this.setState({ editAttributes: false });\n if (!this.gotException) {\n this.initialAttributes = this.state.attributes;\n this.initialCustomerAttributes = customer.Attributes;\n this.initialPhone = this.state.phone;\n this.initialVatNumber = this.state.vatNumber;\n }\n }\n\n this.isUpdatingAttributes = false;\n\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n }\n };\n\n private readonly _setFocus = (element: HTMLElement | null) => {\n element?.focus();\n };\n\n private readonly _buildPayloadData = () => {\n const { data } = this.props.accountProfileProps;\n const attributeDefinitions = data.attributeDefinitions.result || [];\n const attributes: IDictionary = {};\n\n attributeDefinitions.forEach(attributeDefinition => {\n const attributePayloadData: IAttributePayloadData = {};\n attributePayloadData.recordId = attributeDefinition.RecordId;\n attributePayloadData.name = attributeDefinition.Name;\n attributePayloadData.dataTypeValue = attributeDefinition.DataTypeValue;\n attributePayloadData.isEnumeration = attributeDefinition.IsEnumeration;\n attributePayloadData.isMandatory = attributeDefinition.IsMandatory;\n switch (attributeDefinition.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n const defaultIntegerValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.IntegerValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.IntegerValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.IntegerValue;\n if (attributePayloadData.name && defaultIntegerValue) {\n attributePayloadData.defaultValue = String(defaultIntegerValue);\n attributes[attributePayloadData.name] = String(defaultIntegerValue);\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n const defaultDecimalValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.DecimalValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.DecimalValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.DecimalValue;\n if (attributePayloadData.name && defaultDecimalValue) {\n attributePayloadData.defaultValue = String(defaultDecimalValue);\n attributes[attributePayloadData.name] = String(defaultDecimalValue);\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n const defaultStringValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.StringValue;\n if (attributePayloadData.name && defaultStringValue) {\n attributePayloadData.defaultValue = defaultStringValue;\n attributes[attributePayloadData.name] = defaultStringValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n const defaultBooleanValue =\n (attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.BooleanValue) || false;\n if (attributePayloadData.name) {\n attributePayloadData.defaultValue = String(defaultBooleanValue);\n attributes[attributePayloadData.name] = String(defaultBooleanValue);\n }\n break;\n default:\n\n // Do nothing\n }\n this.attributePayloadData.push(attributePayloadData);\n });\n Object.keys(attributes).length > 0 && this.setState({ attributes });\n };\n\n private readonly _getCustomerPhoneAndVatNumber = () => {\n const customer = this.props.accountProfileProps.data.customerInformation.result;\n const phone = (customer && customer.Phone) || '';\n const vatNumber = (customer && customer.VatNumber) || '';\n this.setState({ phone, vatNumber });\n if (this.initialPhone.length === 0) {\n this.initialPhone = phone;\n }\n if (this.initialVatNumber.length === 0) {\n this.initialVatNumber = vatNumber;\n }\n };\n}\n\nexport default AccountProfileAttributes;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountProfileDescription {\n className: string;\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountProfileDescription: React.FC = ({ className, description }) => (\n

{description}

\n);\n\nexport default IAccountProfileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n isDisabled?: boolean;\n}\n\nexport interface IAccountProfileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountProfileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\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: link.isDisabled ? 'ms-account-profile__section-link-disable' : 'ms-account-profile__section-link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountProfileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport {\n ArrayExtensions,\n updateCustomerPersonalization,\n updateCustomerPersonalizationInput\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from './account-profile.data';\nimport {\n IAccountProfileProps,\n IEmailAddressSectionHeadingData,\n IHeadingData,\n INameSectionHeadingData\n} from './account-profile.props.autogenerated';\nimport AccountProfileAttributes from './components/account-profile-attributes';\nimport DescriptionComponent from './components/account-profile-description';\nimport LinksComponent, { ILinksData } from './components/account-profile-links';\nimport TextComponent from './components/account-profile-text';\n\nexport interface IAccountPreference {\n accountPreference: INodeProps;\n heading: React.ReactNode;\n buttonWrapper: INodeProps;\n buttonYesText: React.ReactNode;\n buttonNoText: React.ReactNode;\n button: React.ReactNode;\n description: React.ReactNode;\n onUpdateAccountPreference(preferenceType?: string): void;\n}\n\nexport interface IAccountPreferences {\n accountPreferences: INodeProps;\n heading?: React.ReactNode;\n personalization: IAccountPreference;\n extraPreferences?: IAccountPreference[];\n}\n\nexport interface IAccountProfileItem {\n AccountProfileItem: INodeProps;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport interface IAccountCustomerAttributes {\n customerAttributes?: React.ReactNode;\n}\n\nexport interface IAccountProfileViewProps extends IAccountProfileProps {\n AccountProfile: IModuleProps;\n accountProfileWrapper?: INodeProps;\n className: string;\n heading?: React.ReactNode;\n emailSection: IAccountProfileItem;\n nameSection: IAccountProfileItem;\n preferenceSection: IAccountPreferences;\n customerAttributesWrapper?: INodeProps;\n customerAttributesSection?: IAccountCustomerAttributes;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * AccountProfile component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfile extends React.Component> {\n @observable private isUpdatingPreference: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n private readonly payLoad: IPayLoad;\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, emailAddressSectionHeading, nameSectionHeading, showAttributes, showPhone, showVatNumber } = config;\n\n const { editButtonText, editButtonAriaLabel } = resources;\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n\n // As per the design, phone and vat numbers are part of the profile attributes section\n const shouldRenderAttributes = (showAttributes && showAttributes.length > 0) || showPhone || showVatNumber || false;\n const editLink: ILinksData = {\n linkUrl: {\n destinationUrl: get(this.props, 'context.request.user.editProfileUrl', '')\n },\n linkText: editButtonText,\n ariaLabel: editButtonAriaLabel,\n isDisabled: invalidAsyncCustomerState\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountProfile: {\n moduleProps: this.props,\n className: classnames('ms-account-profile', config.className)\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n accountProfileWrapper: {\n className: classnames('ms-account-profile-wrapper')\n },\n heading: heading && (\n \n ),\n emailSection: this._renderEmailSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-email'),\n emailAddressSectionHeading as IEmailAddressSectionHeadingData,\n customerInformation && customerInformation.Email\n ),\n nameSection: this._renderNameSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-name'),\n nameSectionHeading as INameSectionHeadingData,\n this.getDescription(customerInformation),\n Msdyn365.isOboRequest(this.props.context.request) ? undefined : [editLink]\n ),\n preferenceSection: this._renderPreferenceSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-preferences'),\n invalidAsyncCustomerState,\n customerInformation\n ),\n customerAttributesWrapper: {\n className: classnames('ms-account-profile__attributes-wrapper')\n },\n customerAttributesSection: shouldRenderAttributes && this._renderCustomerAttributes()\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleEmailHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.emailAddressSectionHeading!.text = event.target.value);\n\n public handleNameHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.nameSectionHeading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.resources.editButtonText) {\n this.props.resources.editButtonText = event.target.value;\n }\n };\n\n @computed get editProfileUrl(): string {\n return get(this.props, 'context.request.user.editProfileUrl', '');\n }\n\n private getDescription(customerInformation: Customer | undefined): string {\n let description = '';\n if (customerInformation !== undefined) {\n if (customerInformation.FirstName) {\n description += customerInformation.FirstName;\n }\n if (customerInformation.LastName) {\n description += customerInformation.FirstName ? ` ${customerInformation.LastName}` : customerInformation.LastName;\n }\n }\n return description;\n }\n\n private _renderEmailSection(\n className: string,\n heading?: IEmailAddressSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private _renderNameSection(\n className: string,\n heading?: INameSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n if (!ArrayExtensions.hasElements(links)) {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n description: description && (\n \n )\n };\n }\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private readonly onClickEventHandler = (className: string) => async () => {\n return this._updateAccountPersonalization(className);\n };\n\n private _renderPreferenceSection(\n className: string,\n invalidAsyncCustomerState: boolean,\n customerInformation?: Customer\n ): IAccountPreferences | null {\n const {\n personalizationDescription,\n personalizationEnableButtonAriaLabel,\n webTrackingDescription,\n webTrackingEnableButtonAriaLabel\n } = this.props.resources;\n const { preferencesSectionHeading, personalizationSectionHeading, webTrackingSectionHeading } = this.props.config;\n const { enableDataAnalytics } = this.props.context.request.features;\n const extraPreferences: IAccountPreference[] = [];\n\n if (!customerInformation) {\n this.props.context.telemetry.error('Account profile data is empty, module wont render');\n return null;\n }\n\n // Show browser activity login preference if switch is enabled AND a heading is provided\n enableDataAnalytics &&\n webTrackingSectionHeading &&\n extraPreferences.push(\n this._renderPreference(\n 'web-tracking',\n webTrackingSectionHeading as IHeadingData,\n webTrackingEnableButtonAriaLabel,\n webTrackingDescription,\n customerInformation.OptOutWebActivityTracking || false,\n invalidAsyncCustomerState\n )\n );\n\n return {\n accountPreferences: {\n className\n },\n heading: preferencesSectionHeading && (\n \n ),\n personalization: this._renderPreference(\n 'personalization',\n personalizationSectionHeading as IHeadingData,\n personalizationEnableButtonAriaLabel,\n personalizationDescription,\n customerInformation.OptOutPersonalization || false,\n invalidAsyncCustomerState\n ),\n extraPreferences: extraPreferences || undefined\n };\n }\n\n private readonly _renderPreference = (\n className: string,\n sectionHeading: IHeadingData,\n enableAriaLabel: string,\n description: string,\n isOptOut: boolean,\n disableBtn: boolean\n ) => {\n const { toggleDisableText, toggleEnableText } = this.props.resources;\n const toggleState = isOptOut ? 'disable' : 'enable';\n const onClickHandler = this.onClickEventHandler(className);\n this.payLoad.contentAction.etext = sectionHeading.text;\n const attributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n return {\n accountPreference: {\n className: classnames('ms-account-profile__preference', `ms-account-profile__preference-${className}`, {\n 'ms-account-profile__personalization-updating': this.isUpdatingPreference\n })\n },\n heading: sectionHeading && (\n \n ),\n buttonWrapper: {\n className: classnames('ms-account-profile__toggle-wrapper', `ms-account-profile__toggle-${toggleState}`, {\n // Disable the toggle completely if customer is async.\n 'ms-account-profile__toggle-disabled': disableBtn\n })\n },\n buttonYesText: ,\n buttonNoText: ,\n button: (\n \n ),\n description: ,\n onUpdateAccountPreference: async () => this._updateAccountPersonalization(className)\n };\n };\n\n private readonly _updateAccountPersonalization = async (preferenceType?: string) => {\n const customerInformation = this.props.data.customerInformation.result;\n\n if (customerInformation) {\n const {\n telemetry,\n context: { request, actionContext }\n } = this.props;\n\n let isOptOutPersonalization = false;\n let input;\n\n switch (preferenceType) {\n case 'web-tracking':\n isOptOutPersonalization = customerInformation.OptOutWebActivityTracking || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n break;\n case undefined:\n case 'personalization':\n default:\n isOptOutPersonalization = customerInformation.OptOutPersonalization || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n }\n\n this.isUpdatingPreference = true;\n\n try {\n await updateCustomerPersonalization(input, actionContext);\n } catch (error) {\n if (telemetry) {\n telemetry.exception(error);\n telemetry.debug('Unable to update customer personalization');\n }\n }\n\n this.isUpdatingPreference = false;\n }\n };\n\n private readonly _renderCustomerAttributes = (): React.ReactNode => {\n return ;\n };\n}\n\nexport default AccountProfile;\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 { 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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileData } from './account-welcome-tile.data';\nimport { IAccountWelcomeTileProps } from './account-welcome-tile.props.autogenerated';\n\nexport interface IAccountWelcomeTileViewProps extends IAccountWelcomeTileProps {\n AccountWelcomeTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AccountWelcome component.\n * @extends {React.PureComponent>}\n */\nclass AccountWelcomeTile extends React.PureComponent> {\n public render(): JSX.Element {\n const { config, data } = this.props;\n const { className } = config;\n\n const accountInfo = data.accountInformation.result;\n const heading = {\n ...config.heading,\n ...{\n text: `${config.heading.text ? config.heading.text : ''} ${\n accountInfo && accountInfo.FirstName ? accountInfo.FirstName : ''\n }`\n }\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountWelcomeTile: {\n moduleProps: this.props,\n className: classnames('ms-account-welcome-tile', config.className)\n },\n heading: heading && heading.text && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n}\n\nexport default AccountWelcomeTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileData } from './account-wishlist-tile.data';\nimport { IAccountWishlistTileProps } from './account-wishlist-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-wishlist-tile-description';\nimport LinksComponent from './components/account-wishlist-tile-links';\n\nexport interface IAccountWishlistTileViewProps extends IAccountWishlistTileProps {\n AccountWishlistTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountWishlist component.\n * @extends {React.PureComponent>}\n */\nclass AccountWishlistTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccountWishlistTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountWishlistTileDescription } = resources;\n const wishlists = data.wishlists.result;\n\n const wishlistsCount = ((wishlists && wishlists.length && wishlists[0].CommerceListLines) || []).length;\n const description = format(accountWishlistTileDescription || 'You have {0} items in the Wishlist.', wishlistsCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountWishlistTile: {\n moduleProps: this.props,\n className: classnames('ms-account-wishlist-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountWishlistTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { ICoreContext, IDateFormatOptions, IRequestContext } from '@msdyn365-commerce/core';\nimport { BusinessPartnerOperationRequest, BusinessPartnerOperationRequestDetails } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n IDataTableProps,\n IHeadingsProperty,\n ITableItemProps,\n ITableRowProps,\n Table,\n TableDataType\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsStatusData } from '../b2b-requests-status.data';\nimport { IB2bRequestsStatusProps } from '../b2b-requests-status.props.autogenerated';\n\nexport interface IB2bRequestsTableProps {\n moduleProps: IB2bRequestsStatusProps;\n isMobile: boolean;\n mobileExcludedColumns: string[];\n}\n\nexport interface IB2bRequestsTableResources {\n b2bRequestsTypeCreateProspect: string;\n b2bRequestsTypeAddUser: string;\n b2bRequestsTypeEditUser: string;\n b2bRequestsTypeDeleteUser: string;\n b2bRequestsTypeRequestAccountStatement: string;\n b2bRequestsTypeRequestInvoiceCopy: string;\n b2bRequestsTypeUnknown: string;\n b2bRequestsStatusRequested: string;\n b2bRequestsStatusProcessed: string;\n b2bRequestsStatusError: string;\n b2bRequestsNumberOfItems: string;\n b2bRequestsNumberOfItemsSingular: string;\n b2bRequestsNameDisplay: string;\n b2bRequestsPreviousText: string;\n b2bRequestsNextText: string;\n b2bRequestsUserColumn: string;\n b2bRequestsStatusColumn: string;\n b2bRequestsRequestDateColumn: string;\n b2bRequestsTypeColumn: string;\n b2bRequestsDescriptionColumn: string;\n b2bRequestsAccountStatementDetails: string;\n b2bRequestsInvoiceCopyDetails: string;\n businessUserSelectCheckBoxAriaLabelText?: string;\n sortByAscending?: string;\n sortByDescending?: string;\n}\n\nexport enum RequestsTableColumnHeader {\n Name = 'User',\n Status = 'Status',\n RequestDate = 'Request date',\n Type = 'Request type',\n Description = 'Request detail'\n}\n\nconst getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n};\n\nconst getUserName = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources) => {\n if (StringExtensions.isNullOrEmpty(request.UserFirstName)) {\n if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return '';\n }\n\n return request.UserLastName;\n } else if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return request.UserFirstName;\n }\n\n return resources.b2bRequestsNameDisplay.replace('{0}', request.UserFirstName!).replace('{1}', request.UserLastName!);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Gets the value to display for the request details.\n * @param request - The request to parse for the details.\n * @param resources - The resources.\n * @param context - The context.\n * @returns The string to display.\n */\nconst getDetails = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources, context: ICoreContext) => {\n if (!request.Details) {\n return '';\n }\n\n const requestDetails: BusinessPartnerOperationRequestDetails = request.Details;\n\n const accountStatementStartDateTime = formatDate(context, requestDetails.AccountStatementStartDateTime) || '';\n const accountStatementEndDateTime = formatDate(context, requestDetails.AccountStatementEndDateTime) || '';\n const invoiceId = requestDetails.InvoiceId ?? '';\n\n switch (request.TypeValue) {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 5:\n if (\n !StringExtensions.isNullOrEmpty(accountStatementStartDateTime) &&\n !StringExtensions.isNullOrEmpty(accountStatementEndDateTime)\n ) {\n return resources.b2bRequestsAccountStatementDetails\n .replace('{0}', accountStatementStartDateTime)\n .replace('{1}', accountStatementEndDateTime);\n }\n\n return '';\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 6:\n if (!StringExtensions.isNullOrEmpty(invoiceId)) {\n return resources.b2bRequestsInvoiceCopyDetails.replace('{0}', invoiceId);\n }\n\n return '';\n default:\n return '';\n }\n};\n\nconst createTableItems = (\n operationRequests: BusinessPartnerOperationRequest[] | undefined,\n props: IB2bRequestsStatusProps\n): ITableRowProps[] => {\n if (!ArrayExtensions.hasElements(operationRequests)) {\n return [];\n }\n\n return operationRequests.map(request => {\n return {\n row: [\n {\n id: props.resources.b2bRequestsTypeColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyTypeValue(request.TypeValue ?? 0, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsRequestDateColumn,\n type: TableDataType.Text,\n value: formatDate(props.context, request.CreatedDateTime)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsDescriptionColumn,\n type: TableDataType.Text,\n value: getDetails(request, props.resources, props.context)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsUserColumn,\n type: TableDataType.Text,\n value: getUserName(request, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsStatusColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyStatusValue(request.StatusValue ?? 0, props.resources)\n } as ITableItemProps\n ],\n isSelected: false,\n className: props.config.className\n };\n });\n};\n\nconst getDisplayFriendlyTypeValue = (typeValue: number, resources: IB2bRequestsTableResources): string => {\n switch (typeValue) {\n case 1:\n return resources.b2bRequestsTypeCreateProspect;\n case 2:\n return resources.b2bRequestsTypeAddUser;\n case 3:\n return resources.b2bRequestsTypeDeleteUser;\n case 4:\n return resources.b2bRequestsTypeEditUser;\n case 5:\n return resources.b2bRequestsTypeRequestAccountStatement;\n case 6:\n return resources.b2bRequestsTypeRequestInvoiceCopy;\n default:\n return resources.b2bRequestsTypeUnknown;\n }\n};\n\nconst getDisplayFriendlyStatusValue = (statusValue: number, resources: IB2bRequestsTableResources): string => {\n switch (statusValue) {\n case 1:\n return resources.b2bRequestsStatusProcessed;\n case 2:\n return resources.b2bRequestsStatusError;\n default:\n return resources.b2bRequestsStatusRequested;\n }\n};\n\nconst createTableProps = (tableProps: IB2bRequestsTableProps) => {\n const { context, data, resources } = tableProps.moduleProps;\n\n const tableData = createTableItems(data.operationRequests.result, tableProps.moduleProps);\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row\n .filter(item => {\n // Check that this is either not mobile or the column should be displayed when mobile.\n return !tableProps.isMobile || !tableProps.mobileExcludedColumns.includes(item.id);\n })\n .map(item => {\n return {\n name: item.id,\n sortable: true,\n ariaLabel: resources.columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources: {},\n headings: tableHeading,\n rows: tableData,\n className: `${tableProps.moduleProps.config.className}__table`,\n editLinkText: '',\n deleteLinkText: '',\n viewLinkText: '',\n enableToModify: false,\n actionLinkText: '',\n showCheckBoxes: false,\n isSortable: true,\n showPagination: true,\n minifyActions: tableProps.isMobile,\n excludedColumns: tableProps.isMobile ? tableProps.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context.request.query?.skip && !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: 10,\n prevText: resources.b2bRequestsPreviousText,\n nextText: resources.b2bRequestsNextText,\n paginationText: '',\n url: (context && getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n actions: {\n onDelete: undefined,\n onEdit: undefined,\n onView: undefined\n },\n businessUserSelectCheckBoxAriaLabelText: tableProps.moduleProps.resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: tableProps.moduleProps.resources.sortByAscending,\n sortByDescending: tableProps.moduleProps.resources.sortByDescending\n } as IDataTableProps;\n};\n\nexport const B2bRequestsTable: React.FC = (tableProps: IB2bRequestsTableProps) => {\n return ;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { format, Heading, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport { computed } from 'mobx';\nimport * as React from 'react';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\n\nimport { IB2bRequestsStatusData } from './b2b-requests-status.data';\nimport { IB2bRequestsStatusProps, IHeadingData } from './b2b-requests-status.props.autogenerated';\nimport { B2bRequestsTable } from './components/b2b-requests-table';\n\nexport interface IB2bRequestsStatusViewProps extends IB2bRequestsStatusProps {\n b2bRequestsStatus: IModuleProps;\n heading?: React.ReactNode;\n table: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsStatus component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsStatus extends React.PureComponent> {\n @computed get isMobile(): boolean {\n const size = isMobile({ variant: VariantType.Viewport, context: this.props.context.request });\n return size === 'xs';\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const className = config.className || '';\n\n const viewProps = {\n ...this.props,\n b2bRequestsStatus: {\n moduleProps: this.props,\n className\n },\n heading: this.renderHeader(className, config.heading),\n table: this.renderTable()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly renderHeader = (className: string, headingData: IHeadingData): React.ReactNode => {\n const itemCount = this.props.data.operationRequests.result?.length ?? 0;\n\n return (\n
\n \n {this.getItemNumberDisplayString(itemCount)}\n
\n );\n };\n\n /**\n * Returns columns that needs to be excluded for mobile view.\n * @returns Array of column names.\n */\n private readonly _retrieveExcludedColumns = (): string[] => {\n const { resources } = this.props;\n return [resources.b2bRequestsRequestDateColumn, resources.b2bRequestsDescriptionColumn, resources.b2bRequestsUserColumn];\n };\n\n private readonly renderTable = (): React.ReactNode => {\n return (\n \n );\n };\n\n private readonly getItemNumberDisplayString = (itemCount: number): string => {\n switch (itemCount) {\n case 0:\n return '';\n case 1:\n return format(this.props.resources.b2bRequestsNumberOfItemsSingular, itemCount);\n default:\n return format(this.props.resources.b2bRequestsNumberOfItems, itemCount);\n }\n };\n}\n\nexport default B2bRequestsStatus;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 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 { 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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { AccountOrganizationUsersTileDescription, AccountOrganizationUsersTileLinks } from './components';\nimport { IOrganizationUsersTileData } from './organization-users-tile.data';\nimport { IOrganizationUsersTileProps } from './organization-users-tile.props.autogenerated';\n\nexport interface IOrganizationUsersTileViewProps extends IOrganizationUsersTileProps {\n OrganizationUsersTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * OrganizationUsersTile component.\n * @extends {React.PureComponent>}\n */\nclass OrganizationUsersTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IOrganizationUsersTileProps) {\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, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountOrganizationUsersTileDescriptionForSingleUser, accountOrganizationUsersTileDescriptionForMultipleUsers } = resources;\n const numUsers = data.users && data.users.result;\n const accountOrganizationUsersTileDescription =\n numUsers === 1 ? accountOrganizationUsersTileDescriptionForSingleUser : accountOrganizationUsersTileDescriptionForMultipleUsers;\n const customerInformation = data.customerInformation.result;\n\n // Organization-users tile will not be render for non-admin users.\n if (!customerInformation?.IsB2bAdmin) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUsersTile: {\n moduleProps: this.props,\n className: classnames('ms-account-organization-users-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default OrganizationUsersTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetButton: React.FC = ({ id, className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default PasswordResetInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingIcon {\n className: string;\n}\n\nconst PasswordResetLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default PasswordResetLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetButtonComponent from './components/password-reset-button';\nimport PasswordResetErrorComponent from './components/password-reset-error';\nimport PasswordResetInputComponent from './components/password-reset-input';\nimport PasswordResetLabelComponent from './components/password-reset-label';\nimport PasswordResetLoadingIconComponent from './components/password-reset-loading-icon';\nimport PasswordResetLoadingMessageComponent from './components/password-reset-loading-message';\nimport { IPasswordResetConfig, IPasswordResetProps } from './password-reset.props.autogenerated';\n\nexport interface IPasswordResetViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetLocalAccount {\n localAccount: INodeProps;\n items: IPasswordResetItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetViewProps {\n className: string;\n viewState: IPasswordResetViewState;\n loading: IPasswordResetLoading;\n passwordReset: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetLocalAccount: IPasswordResetLocalAccount;\n}\n\n/**\n *\n * PasswordReset component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordReset extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetProps) {\n super(props);\n\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: IPasswordResetProps, nextState: IPasswordResetViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordReset: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n switch (obj.ID.toLowerCase()) {\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n });\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IPasswordResetLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('newPassword', 'password', resources.newPasswordLabelText, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, this.reenterPasswordRegex)\n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(id: string, type: string, labelText: string, pattern?: string): IPasswordResetItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default PasswordReset;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { 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 { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignUpButton: React.FC = ({ id, className, text, ariaLabel, disabled, onClick }) => (\n \n);\n\nexport default SignUpButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignUpError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpInputProps {\n id?: string;\n hasFocus?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignUpInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignUpInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default SignUpInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingIcon {\n className: string;\n}\n\nconst SignUpLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignUpLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignUpLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignUpLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default SignUpSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex, PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignUpButtonComponent from './components/sign-up-button';\nimport SignUpErrorComponent from './components/sign-up-error';\nimport SignUpInputComponent from './components/sign-up-input';\nimport SignUpLabelComponent from './components/sign-up-label';\nimport SignUpLoadingIconComponent from './components/sign-up-loading-icon';\nimport SignUpLoadingMessageComponent from './components/sign-up-loading-message';\nimport SignUpSuccessComponent from './components/sign-up-success';\nimport { ISignUpConfig, ISignUpProps, ISignUpResources } from './sign-up.props.autogenerated';\n\nexport interface ISignUpViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignUpItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignUpEmailVerification {\n isRequired: boolean;\n email: ISignUpItem;\n buttonWrapper: INodeProps;\n buttons: React.ReactNode[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Given Name Verification Interface.\n */\nexport interface ISignUpGivenNameVerification {\n isRequired: boolean;\n givenName: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Surname Verification Interface.\n */\nexport interface ISignUpSurnameVerification {\n isRequired: boolean;\n surname: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\nexport interface ISignUpLocalAccount {\n localAccount: INodeProps;\n items: ISignUpItem[];\n emailVerification: ISignUpEmailVerification;\n givenNameVerification: ISignUpGivenNameVerification;\n surnameVerification: ISignUpSurnameVerification;\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface ISignUpLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignUpViewProps {\n className: string;\n viewState: ISignUpViewState;\n loading: ISignUpLoading;\n signUp: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n signUpLocalAccount: ISignUpLocalAccount;\n}\n\n/**\n *\n * SignUp component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignUp extends React.Component> {\n @observable private isGivenNameVerificationRequried: boolean;\n\n @observable private isSurnameVerificationRequried: boolean;\n\n private readonly moduleClassName: string = 'ms-sign-up';\n\n @observable private emailRegex: string;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isEmailVerificationRequried: boolean;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignUpProps) {\n super(props);\n\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isEmailVerificationRequried = false;\n this.isGivenNameVerificationRequried = false;\n this.isSurnameVerificationRequried = false;\n this.isInitialized = false;\n this.templateVersion = '';\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignUpProps, nextState: ISignUpViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n signUpLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n * @returns - Heading Text.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n * @returns - Paragraph Text.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.disclaimer = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\n switch (obj.ID.toLowerCase()) {\n case 'emailverificationcontrol': {\n this.isEmailVerificationRequried = true;\n this.templateVersion = 'v2';\n break;\n }\n case 'email': {\n this.emailRegex = obj.PAT;\n this.isEmailVerificationRequried = obj.VERIFY;\n this.templateVersion = 'v1';\n break;\n }\n case 'givennameverificationcontrol': {\n this.isGivenNameVerificationRequried = true;\n break;\n }\n case 'givenname': {\n this.isGivenNameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'surnameverificationcontrol': {\n this.isEmailVerificationRequried = true;\n break;\n }\n case 'surname': {\n this.isSurnameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n\n switch (obj.UX_INPUT_TYPE.toLowerCase()) {\n case 'password': {\n obj.PAT_DESC = resources.invalidPasswordError;\n break;\n }\n case 'emailbox': {\n obj.PAT_DESC = resources.invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n required_field: resources.requiredFieldMissingError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n\n private _renderLocalAccount(): ISignUpLocalAccount {\n const { config, resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', resources.lastNameLabelText, resources.lastNameMaxLength),\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, undefined, this.reenterPasswordRegex)\n ],\n emailVerification: {\n isRequired: this.isEmailVerificationRequried,\n email: this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n buttonWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n buttons: [\n ,\n ,\n ,\n \n ],\n successMessage: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n \n ]\n },\n givenNameVerification: {\n isRequired: this.isGivenNameVerificationRequried,\n givenName: this._renderInput(\n this.getValue('givenName_ver_input', 'givenNameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'givenNameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n surnameVerification: {\n isRequired: this.isSurnameVerificationRequried,\n surname: this._renderInput(\n this.getValue('surname_ver_input', 'surnameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'surnameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n buttons: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): ISignUpItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default SignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext, getUrlSync } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading, showBecomeSellerLink } = config;\n const {\n businessUserActionButtonText,\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n promoteToSellerActionLabel,\n requestAccountStatementActionLabel,\n requestOrganizationStatementActionLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

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

{businessUserRemoveModalDescription}

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

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n };\n\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _promoteToSeller = () => {\n const promoteToSellerUrl = getUrlSync('businessPartnerPromotion', this.props.context.actionContext);\n if (promoteToSellerUrl && MsDyn365.isBrowser) {\n window.location.href = promoteToSellerUrl;\n }\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from './business-organization-list';\nimport { IBusinessFormItem } from './components/small-components';\n\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n const { FirstName, LastName } = selectedUser;\n const userFullName = `${FirstName} ${LastName}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = resources[`table${data}HeadingText`] || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst _getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\nconst _renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\nconst BusinessOrganizationList: React.FC = props => {\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const ButtonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && _getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InputType } from '../business-organization-list';\n\nexport interface IBusinessForm {\n FormWrapper: INodeProps;\n message?: React.ReactNode;\n items: IBusinessFormItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n}\n\nexport interface IBusinessFormItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IBusinessFormInput {\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IUserFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n isDisabled?: boolean;\n customClass?: string;\n fieldReference?: React.RefObject;\n}\n\nexport interface IBusinessFormInputProps {\n id?: string;\n type: string;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n isDisabled?: boolean;\n placeholder?: string;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport const FormInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n isDisabled,\n onChange,\n fieldReference,\n placeholder\n}) => (\n \n);\n\nexport interface IBusinessFormLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n asteriskText: string;\n}\n\nexport const FormLabel: React.FC = ({ id, forId, className, text, asteriskText }) => (\n \n);\n\nexport interface IBusinessFormButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const FormButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport interface IBusinessFormErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const FormFieldError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBusinessFormItem,\n IBusinessOrganizationListViewProps,\n IFormViewProps,\n InputID\n} from '@msdyn365-commerce-modules/business-organization-list';\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBusinessOrganizationListProps,\n IBusinessOrganizationListResources\n} from '../definition-extensions/business-organization-list.ext.props.autogenerated';\n\n/**\n * Business Form Item component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\n const { wrapper, label, errorMessage, input } = props;\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\n/**\n * To render modal.\n * @param className - The modal classname.\n * @param isModalOpen - The boolean for modal open status.\n * @param headingSection - The heading section of modal.\n * @param bodySection - The body section of modal.\n * @param footerSection - The footer section of modal.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\n/**\n * Business User Form component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * Selected user interface.\n */\ninterface ISelectedUser {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n FirstName?: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n LastName?: string;\n}\n\n/**\n * Business User Details component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n const selectedUser = props.selectedUser as ISelectedUser | string;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { FirstName, LastName } = selectedUser as ISelectedUser;\n const userFullName = `${FirstName as string} ${LastName as string}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = (resources[`table${data}HeadingText`] as string) || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * To get form.\n * @param type - The type of form.\n * @param formProps - The form props.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\n/**\n * Business Organization List component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessOrganizationListComponent: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const buttonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n \n \n {props.resources.headingForEmptyUserOrganizationList}\n \n \n {props.resources.textForEmptyUserOrganizationList}\n \n {buttonList}\n \n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {buttonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationListComponent;\n"],"names":["props","AccountAddressTile","heading","description","links","React","Module","Object","assign","AccountCustomerBalanceTile","content","AccountGenericTile","AccountLoyaltyTile","AccountLoyalty","Info","Points","Breakdown","RewardPoints","PointsBreakdown","Button","infoLabel","cardNumber","joinDate","pointsLabel","points","rewardPoints","homeButton","pointsModal","ModalBodyTop","ModalBodyHeaders","Node","map","activity","index","key","label","availableModalLabel","availableModalTrigger","expiringModalLabel","expiringModalTrigger","isOpen","Modal","returnFocusRef","tag","autoFocus","fade","horizontalPosition","verticalPosition","className","modalClassName","zIndex","onClosed","onClose","onOpened","toggle","ModalHeader","modalHeaderClassName","modalHeader","ModalBody","modalBodyClassName","pointsDescription","totalPoints","date","balanceLabel","rewardPointsActivity","Activity","activityType","activityDate","activityPoints","AccountOrderTemplatesTile","AccountProfileEditItem","_ref","wrapper","errorMessage","input","AccountProfileEditLoading","_ref3","modal","modalBody","icon","message","accountProfileEdit","viewState","loading","defaultAADConainer","aadConainer","accountProfileEditLocalAccount","isShowLoading","_ref2","localAccount","items","buttonsWrapper","buttons","verificationSuccessModal","verificationSuccessModalMessage","item","error","button","LocalAccount","AccountPreferencesSection","accountPreferences","personalization","extraPreferences","AccountPreferenceSection","preferenceSecton","accountPreference","buttonWrapper","buttonYesText","buttonNoText","AccountProfileSection","AccountProfileItem","AccountProfile","infoMessageBar","accountProfileWrapper","emailSection","nameSection","preferenceSection","customerAttributesWrapper","customerAttributesSection","AccountWelcomeTile","AccountWishlistTile","b2bRequestsStatus","table","b2bRequestsTile","LoyaltySignUp","memberHeading","signInLink","signUpText","signUpButton","detailsLink","termsLink","context","telemetry","LoyaltyTerms","modalToggle","terms","agreeSection","checkbox","agreeText","modalFooter","submitButton","cancelButton","PasswordResetVerificationItem","PasswordResetVerificationLoading","passwordResetVerification","passwordResetVerificationLocalAccount","verificationControlWrapper","successMessage","verificationButtonsWrapper","verificationButtons","PasswordResetItem","PasswordResetLoading","passwordReset","passwordResetLocalAccount","SignInLoading","_ref4","signIn","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signInSocialAccount","signUpSectionHeading","signInB2BAccount","signUpDescription","signUpLink","forgetPassword","disclaimer","signInButton","socialAccounts","image","text","SocialAccount","B2BAccount","SignUpItem","SignUpEmailVerification","email","SignUpGivenNameVerificationComponent","givenName","SignUpSurnameVerificationComponent","surname","SignUpLoading","_ref6","signUp","signUpLocalAccount","_ref5","emailVerification","givenNameVerification","surnameVerification","isRequired","ActionBar","onRequestStatement","requestStatementButtonLabel","onClick","AdminRequestStatementButton","onToggleDropdown","onPromoteToSeller","promoteToSellerLabel","myUserAccountLabel","fullOrganizationLabel","isDropdownShowing","buttonReference","onSelectCustomerAccount","onSelectFullOrg","onSelectPromoteToSeller","popoverReference","undefined","requestStatementDropdownString","Random","Guid","generateGuid","innerRef","id","Popover","placement","target","role","RequestStatementModal","isModalOpen","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","modalHeaderLabel","sendToEmailLabel","fromDateLabel","toDateLabel","submitRequestLabel","cancelLabel","onSubmitRequest","selectedUser","selectedUserLabel","modalAriaLabel","maxDateString","onChangeFromDateEvent","event","value","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","focus","onBlurToDate","htmlFor","type","onBlur","onChange","max","min","ModalFooter","disabled","AccountLabels","name","accountNumber","customerSincePrefix","createdOn","AccountValues","availableCredit","availableCreditLabel","AvailableCreditComponent","BalanceOwedComponent","balanceOwedLabel","balanceOwed","CreditExcessComponent","_ref7","creditExcessLabel","creditExcess","BackButton","_ref8","link","telemetryContent","payLoad","getPayloadObject","TelemetryConstant","BackToShopping","attributes","getTelemetryAttributes","href","AccountCustomerBalance","constructor","super","_showRequestStatementModal","this","state","isStatementRequestModalOpen","setState","_toggleModal","_toggleDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_adminShowRequestStatementModal","isFullOrg","statementRequestFullOrg","_requestStatement","_this$props$data$b2bU","customer","data","customerInformation","result","B2BUserId","b2bUserInformation","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","Email","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","actionContext","BusinessPartnerUsersDataActions","getTelemetryObject","request","telemetryPageName","friendlyName","statementRequestMaxDateString","toISOString","split","render","_get","account","includes","config","resources","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","myAccountStatementLabel","AccountNumber","_formatJoinDate","CreatedDateTime","FirstName","LastName","customerCredit","customerAccountBalance","excess","InvoiceAccountCreditLimit","CreditLimit","Balance","InvoiceAccountBalance","_formatCurrency","backLink","Msdyn365","emailAddress","isB2BSite","isChannelTypeB2B","actionBar","IsB2bAdmin","viewProps","_objectSpread","Heading","accountLabels","accountValues","actions","requestStatementModal","canSubmitStatementRequest","renderView","currency","currencyCode","formatCurrency","toFixed","Intl","DateTimeFormat","requestContext","locale","month","day","year","format","__decorate","computed","ErrorComponent","CreditComponent","verbagePrefix","verbagePostfix","_mapEditableLinks","linkdata","length","editableLinks","forEach","contentAction","etext","linkText","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","additionalProperties","push","onTextChange","editProps","_initState","reaction","hasError","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","enableCustomerAccountPayment","shouldComponentUpdate","nextProps","nextState","isCustomerAccountPaymentEnabled","moduleProps","classnames","headingTag","isDetailsLinkDisplayed","LinksComponent","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","customerCreditFormatted","AccountLoyaltyLabel","AccountLoyaltyModalLabel","labelFor","decimalPrecision","handleHeadingChange","_populateModalData","focusRef","loyaltyCard","currentLoyaltyPoints","expiring","CardNumber","RewardPointId","currentModalData","isModalExpiring","modalID","currentFocus","getLoyaltyRewardPointsExpiringSoonAsync","queryResultSettings","then","pointsActivity","catch","exception","debug","getLoyaltyRewardPointActivityTimelineAsync","_closeModal","_onOpenModal","_this$state$currentFo","current","_buttonAvailableRef","_buttonExpireRef","_Msdyn365$getUrlSync","_heading$tag","loyaltyCardLabel","totalAvailablePointsLabel","backToShopAttributes","loyaltyCardData","homeLink","modalTransition","onEntered","node","isAppearing","childNode","firstChild","_getTotalPoints","_renderRewardPoints","_renderModal","onEdit","_parseDate","LoyaltyEnrollmentDateLocal","title","joinDateFormatted","loyaltyPoints","availableId","expiringId","availablePointsLabel","availablePointsAriaLabel","expiringPointsFormatLabel","expiringPointsFormatAriaLabel","AvailablePoints","availablePointsAttributes","ExpiringPoints","expiringPointsAttributes","Description","ActivePoints","color","PointsExpiringSoon","_currentModalData$Des","loyaltyActivityDateLabel","loyaltyActivityBalanceLabel","_renderPointsActivity","_getPoints","total","_loyaltyPoints$Active","_toFixed","_getTimelineType","cultureFormatter","formatDate","ActivityDate","LoyaltyPoints","dateString","toString","replace","substring","getUTCFullYear","getUTCMonth","getUTCDate","pointActivity","LoyaltyRewardPointTimelineEntryType","earnedPointsLabel","redeemedPointsLabel","adjustedPointsLabel","refundedPointsLabel","ExtensibleLoyaltyRewardPointActivityEntryTypeValue","observer","AccountAttributeDataTypeValue","AccountProfileAttributes","isUpdatingAttributes","gotException","attributeClassName","maxIntegerLimit","minIntegerLimit","maxDecimalLimit","minDecimalLimit","maxStringLength","maxVATNumberLength","maxPhoneLength","editAsyncCustomerFeatureName","isEditAsyncCustomerFeatureEnabled","_renderAttributes","_data$featureState","_this$props$accountPr","accountProfileProps","attributeDefinitions","additionalInformationSectionHeading","elements","showAttributes","att","attributeDefinition","find","attribute","IsHidden","Name","toLocaleLowerCase","RecordId","_renderAttribute","edit","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","featureState","feature","IsEnabled","disableBtn","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","ref","attributesContainerRef","Text","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","_enableAttributes","editRef","_saveAttributes","_disableAttributes","phoneSectionHeading","_onPhoneChange","phone","_renderError","vatNumberSectionHeading","_onVatNumberChange","vatNumber","customAttribute","ExtDataType","Value","Integer","Decimal","_renderIntegerDecimalInput","_renderTextInputOrSelect","TrueFalse","_renderBoolean","attributeProps","_getAttributeProps","displayName","_onAttributeChange","IsMandatory","isEnumeration","IsEnumeration","EnumerationDetails","hasNoValue","_onAttributeSelect","selected","option","EnumerationValue","toggleState","arialabel","attributeToggleButtonAriaLabel","ariaPressed","toggleValue","TextComponent","toggleDisableText","_onAttributeCheck","toggleEnableText","attributeName","attributeError","StringExtensions","isNullOrWhitespace","attributePayloadData","isMandatory","MsDyn365","isBrowser","setTimeout","getElementsByClassName","_setFocus","initialAttributes","initialPhone","initialVatNumber","currentTarget","selectedOptions","selectedIndex","_getAttributes","showAttributesArray","custmerAttributes","Attributes","showAttribute","defaultValue","AttributeValue","DataTypeValue","IntegerValue","String","DecimalValue","StringValue","BooleanValue","keys","_addOrUpdateAttribute","hasValue","entries","payloadData","dataTypeValue","decimalValue","Number","isNaN","typeError","attributeInputTypeErrorText","lowerBoundValue","upperBoundValue","rangeError","attributeInputRangeErrorText","attributeInputValueExceedsMaximumErrorText","attributeInputValueExceedsMinimumErrorText","integerValue","trimValue","trim","attributeInputStringMaxLengthErrorText","textValue","booleanValue","attributeInputMandatoryErrorText","findIndex","splice","Attribute","recordId","Units","ExtensionProperties","NameTranslations","KeyName","Phone","VATNumber","VatNumber","async","updateCustomerAttributesInput","apiSettings","updateCustomerAttributes","initialCustomerAttributes","element","_buildPayloadData","defaultIntegerValue","DefaultValue","LowerBound","UpperBound","defaultDecimalValue","defaultStringValue","defaultBooleanValue","_getCustomerPhoneAndVatNumber","componentDidMount","observable","isDisabled","isUpdatingPreference","handleEmailHeadingChange","emailAddressSectionHeading","handleNameHeadingChange","nameSectionHeading","handleLinkTextChange","linkIndex","editButtonText","onClickEventHandler","_updateAccountPersonalization","_renderPreference","sectionHeading","enableAriaLabel","isOptOut","onClickHandler","DescriptionComponent","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","_this$props$context$a","editButtonAriaLabel","invalidAsyncCustomerState","shouldRenderAttributes","editLink","accountProcessingPendingInfoMessage","_renderEmailSection","_renderNameSection","getDescription","_renderPreferenceSection","ArrayExtensions","hasElements","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","errorClassName","GetMaxLength","maxLength","parsedMaxLength","parseInt","pattern","forId","AccountProfileEdit","moduleClassName","onTextBoxChange","toLowerCase","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","window","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","PAT","PAT_DESC","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","source","componentDidUpdate","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","style","display","_renderLocalAccount","str","e","document","createElement","innerHTML","childNodes","nodeValue","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","showEmail","emailAddressLabelText","labelText","AccountProfileEditLabelComponent","AccountProfileEditInputComponent","RequestsTableColumnHeader","getUserName","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","getDetails","_requestDetails$Invoi","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","invoiceId","InvoiceId","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","_context$request$quer","tableData","operationRequests","_request$TypeValue","_request$StatusValue","row","b2bRequestsTypeColumn","TableDataType","b2bRequestsRequestDateColumn","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","StatusValue","isSelected","createTableItems","headings","filter","isMobile","mobileExcludedColumns","sortable","columnSortAriaLabel","rows","editLinkText","deleteLinkText","viewLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","showPagination","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","b2bRequestsPreviousText","nextText","b2bRequestsNextText","paginationText","url","reqContext","URL","location","requestUrl","isSingleSelectOnly","onDelete","onView","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","B2bRequestsTable","Table","B2bRequestsStatus","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","Viewport","SignUpText","handleMemberHeadingChange","_issueLoyalty","user","isAuthenticated","clicked","IssueLoyaltyInput","issueLoyalty","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","hasLoyaltyAccount","CardTenderTypeValue","params","isEditor","status","joinLoyaltyButtonText","loyaltyProgramText","viewLoyaltyPageText","loyaltyTermsLinkText","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","successClassName","PasswordResetVerification","getValue","v1Value","v2Value","templateVersion","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","verificationCodeLabelText","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cssClassName","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","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","SignInLoadingIconComponent","SignInLoadingMessageComponent","emailAddressAriaLabel","passwordLabelText","SignInLinkComponent","forgotPasswordButtonAriaLabel","forgotPasswordButtonText","SignInErrorComponent","SignInButtonComponent","loginButtonAriaLabel","loginButtonText","_renderSocialAccount","facebookButtonText","facebookButtonAriaLabel","facebookIcon","microsoftButtonText","microsoftButtonAriaLabel","microsoftIcon","_renderB2BSocialAccount","b2bButtonText","b2bButtonAriaLabel","displayB2bAccountManagerSignin","SignInDescriptionComponent","signUpDescriptionText","signUpButtonAriaLabel","signUpButtonText","SignInLabelComponent","SignInInputComponent","iconImage","_createImageMarkup","SignInTextComponent","_displayB2bAccountManagerSignin","imageProps","gridSettings","imageSettings","pictureClassName","shouldSkipToMainImage","isEmailVerificationRequried","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","UX_INPUT_TYPE","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","SignUpButtonComponent","SignUpSuccessComponent","SignUpErrorComponent","signUpButtonArialabel","cancelButtonArialabel","SignUpLabelComponent","SignUpInputComponent","FormType","InputType","InputID","renderInputSection","inputs","asteriskAfterLabel","onInputChange","customClass","maxChars","fieldReference","FormLabel","asteriskText","FormFieldError","FormInput","placeholder","BusinessOrganizationList","_this$props$config","BusinessFormDefaultInputs","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","isFormActive","formType","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","_getCurrentUrl","_getViewport","device","Type","innerWidth","xs","w","sm","md","lg","_toggleStatementRequestDropdown","_promoteToSeller","promoteToSellerUrl","getUrlSync","currentUser","users","_getB2BUserId","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","bind","Status","_viewport","_updateViewport","submitButtonReference","addedReference","businessUserSelectedUserDisplayName","addEventListener","componentWillUnmount","removeEventListener","_this$formChildRefere","_this$submitButtonRef","_this$props$data$cust","showBecomeSellerLink","businessUserActionButtonText","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","promoteToSellerActionLabel","requestAccountStatementActionLabel","requestOrganizationStatementActionLabel","statementRequestModalHeaderLabel","hasUsers","AddUser","addUserAttributes","errorProps","OrganizationUserList","moduleContainer","addUserButton","noUsersText","modalState","organizationListTable","_createTableProps","toggleModal","form","_renderUserForm","_renderUserDetails","requestAccountStatementButton","selectedOrganizationLabel","selectedUserName","tableSort","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","_createTableItems","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","resourcePrefix","tableAriaLabel","tableTabIndex","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","FullName","buttonReferences","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","FormWrapper","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","BusinessFormItem","BusinessUserForm","BusinessUserDetails","userFullName","headingSection","bodySection","footerSection","wrapClassName","applicationNode","ButtonList","_getForm","formProps","BusinessFormItemComponent","renderModal","BusinessUserFormComponent","BusinessUserDetailsComponent","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm"],"sourceRoot":""}